<?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>230551</bug_id>
          
          <creation_ts>2021-09-21 06:48:56 -0700</creation_ts>
          <short_desc>[WebDriver] Update w3c and selenium tests</short_desc>
          <delta_ts>2021-11-29 11:39:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230612</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=230614</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=230615</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=230616</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>230549</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>jbedard</cc>
    
    <cc>kevin_neal</cc>
    
    <cc>lmoura</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1795524</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-21 06:48:56 -0700</bug_when>
    <thetext>It&apos;s been a while since the last time we imported w3c and selenium tests. They both now require python3 and a new version of pytest, so it requires changes in our test runner too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795525</commentid>
    <comment_count>1</comment_count>
      <attachid>438811</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-21 06:58:28 -0700</bug_when>
    <thetext>Created attachment 438811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795527</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-21 07:02:49 -0700</bug_when>
    <thetext>I still have to do the gardening, there are a lot of new failures...

In w3c:

Unexpected failures (186)
  imported/w3c/webdriver/tests/switch_to_parent_frame/switch.py::test_switch_from_iframe
  imported/w3c/webdriver/tests/find_elements_from_element/find.py::test_find_elements_link_text[&lt;a href=#&gt;link&lt;br&gt;text&lt;/a&gt;-link\ntext]
  imported/w3c/webdriver/tests/find_elements_from_element/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;partial link&lt;br&gt;text&lt;/a&gt;-k\nt]
  imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/find_element_from_element/find.py::test_find_element_link_text[&lt;a href=#&gt;link&lt;br&gt;text&lt;/a&gt;-link\ntext]
  imported/w3c/webdriver/tests/find_element_from_element/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;partial link&lt;br&gt;text&lt;/a&gt;-k\nt]
  imported/w3c/webdriver/tests/element_clear/clear.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/find_elements/find.py::test_find_elements_link_text[&lt;a href=#&gt;link&lt;br&gt;text&lt;/a&gt;-link\ntext]
  imported/w3c/webdriver/tests/find_elements/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;partial link&lt;br&gt;text&lt;/a&gt;-k\nt]
  imported/w3c/webdriver/tests/bidi/new_session/connect.py::test_websocket_url_connect[capabilities0]
  imported/w3c/webdriver/tests/bidi/new_session/connect.py::test_bidi_session_send
  imported/w3c/webdriver/tests/bidi/new_session/connect.py::test_bidi_session_with_different_capability[capabilities0]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[about]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[blob]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[data]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[file]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[ftp]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[javascript]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[websocket]
  imported/w3c/webdriver/tests/add_cookie/add.py::test_cookie_unsupported_scheme[secure websocket]
  imported/w3c/webdriver/tests/get_computed_label/get.py
  imported/w3c/webdriver/tests/get_element_tag_name/get.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/maximize_window/maximize.py::test_maximize_twice_is_idempotent
  imported/w3c/webdriver/tests/maximize_window/stress.py::test_stress[0]
  imported/w3c/webdriver/tests/maximize_window/stress.py::test_stress[3]
  imported/w3c/webdriver/tests/maximize_window/stress.py::test_stress[4]
  imported/w3c/webdriver/tests/forward/forward.py::test_cross_origin[capabilities0]
  imported/w3c/webdriver/tests/find_element/find.py::test_find_element_link_text[&lt;a href=#&gt;link&lt;br&gt;text&lt;/a&gt;-link\ntext]
  imported/w3c/webdriver/tests/find_element/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;partial link&lt;br&gt;text&lt;/a&gt;-k\nt]
  imported/w3c/webdriver/tests/get_element_text/get.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/get_computed_role/get.py
  imported/w3c/webdriver/tests/set_window_rect/set.py::test_x_y_floats
  imported/w3c/webdriver/tests/set_window_rect/set.py::test_x_y
  imported/w3c/webdriver/tests/set_window_rect/set.py::test_x_as_current
  imported/w3c/webdriver/tests/set_window_rect/set.py::test_y_as_current
  imported/w3c/webdriver/tests/set_window_rect/user_prompts.py::test_accept[capabilities0-alert-None]
  imported/w3c/webdriver/tests/set_window_rect/user_prompts.py::test_accept[capabilities0-confirm-True]
  imported/w3c/webdriver/tests/set_window_rect/user_prompts.py::test_accept[capabilities0-prompt-]
  imported/w3c/webdriver/tests/set_window_rect/user_prompts.py::test_dismiss[capabilities0-alert-None]
  imported/w3c/webdriver/tests/set_window_rect/user_prompts.py::test_dismiss[capabilities0-confirm-False]
  imported/w3c/webdriver/tests/set_window_rect/user_prompts.py::test_dismiss[capabilities0-prompt-None]
  imported/w3c/webdriver/tests/release_actions/release.py::test_no_browsing_context
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_null_parameter_value
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_no_browsing_context
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_using_argument[a]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_using_argument[True]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_using_argument[None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_using_argument[1]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_using_argument[using4]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_using_argument[using5]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_selector_argument[None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_selector_argument[value1]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_invalid_selector_argument[value2]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_detached_shadow_root
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_equivalence
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements[css selector-#linkText]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements[link text-full link text]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements[partial link text-link text]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements[tag name-a]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements[xpath-//a]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_link_text[&lt;a href=#&gt;link text&lt;/a&gt;-link text]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_link_text[&lt;a href=#&gt;&amp;nbsp;link text&amp;nbsp;&lt;/a&gt;-link text]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_link_text[&lt;a href=#&gt;link&lt;br&gt;text&lt;/a&gt;-link\ntext]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_link_text[&lt;a href=#&gt;link&amp;amp;text&lt;/a&gt;-link&amp;text]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_link_text[&lt;a href=#&gt;LINK TEXT&lt;/a&gt;-LINK TEXT]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_link_text[&lt;a href=# style=&apos;text-transform: uppercase&apos;&gt;link text&lt;/a&gt;-LINK TEXT]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;partial link text&lt;/a&gt;-link]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;&amp;nbsp;partial link text&amp;nbsp;&lt;/a&gt;-link]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;partial link text&lt;/a&gt;-k t]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;partial link&lt;br&gt;text&lt;/a&gt;-k\nt]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;partial link&amp;amp;text&lt;/a&gt;-k&amp;t]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_partial_link_text[&lt;a href=#&gt;PARTIAL LINK TEXT&lt;/a&gt;-LINK]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_find_elements_partial_link_text[&lt;a href=# style=&apos;text-transform: uppercase&apos;&gt;partial link text&lt;/a&gt;-LINK]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py::test_no_element[css selector-#wontExist]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_accept[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_accept[capabilities0-confirm-True]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_accept[capabilities0-prompt-]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-confirm-True]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-prompt-]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_dismiss[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_dismiss[capabilities0-confirm-False]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_dismiss[capabilities0-prompt-None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-confirm-False]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-prompt-None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_ignore[capabilities0-alert]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_ignore[capabilities0-confirm]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_ignore[capabilities0-prompt]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_default[alert-None]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_default[confirm-False]
  imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py::test_default[prompt-None]
  imported/w3c/webdriver/tests/switch_to_frame/switch_webelement.py::test_frame_id_webelement_cloned_into_iframe
  imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_null
  imported/w3c/webdriver/tests/get_element_property/get.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/element_click/click.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/element_click/events.py::test_event_mousemove
  imported/w3c/webdriver/tests/get_element_shadow_root/get.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/get_element_shadow_root/get.py::test_no_browsing_context
  imported/w3c/webdriver/tests/get_element_shadow_root/get.py::test_element_not_found
  imported/w3c/webdriver/tests/get_element_shadow_root/get.py::test_element_stale
  imported/w3c/webdriver/tests/get_element_shadow_root/get.py::test_get_shadow_root
  imported/w3c/webdriver/tests/get_element_shadow_root/get.py::test_no_shadow_root
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_accept[capabilities0-alert-None]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_accept[capabilities0-confirm-True]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_accept[capabilities0-prompt-]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-alert-None]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-confirm-True]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-prompt-]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_dismiss[capabilities0-alert-None]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_dismiss[capabilities0-confirm-False]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_dismiss[capabilities0-prompt-None]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-alert-None]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-confirm-False]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-prompt-None]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_ignore[capabilities0-alert]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_ignore[capabilities0-confirm]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_ignore[capabilities0-prompt]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_default[alert-None]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_default[confirm-False]
  imported/w3c/webdriver/tests/get_element_shadow_root/user_prompts.py::test_default[prompt-None]
  imported/w3c/webdriver/tests/perform_actions/pointer.py::test_pen_pointer_properties
  imported/w3c/webdriver/tests/perform_actions/pointer.py::test_touch_pointer_properties
  imported/w3c/webdriver/tests/perform_actions/key_events.py::test_modifier_key_sends_correct_events[\ue052-R_ALT]
  imported/w3c/webdriver/tests/perform_actions/key_events.py::test_special_key_sends_keydown[R_ALT-expected48]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_null_parameter_value
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_no_browsing_context
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_using_argument[a]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_using_argument[True]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_using_argument[None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_using_argument[1]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_using_argument[using4]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_using_argument[using5]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_selector_argument[None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_selector_argument[value1]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_invalid_selector_argument[value2]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_detached_shadow_root
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_found_element_equivalence
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element[css selector-#linkText]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element[link text-full link text]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element[partial link text-link text]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element[tag name-a]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element[xpath-//a]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_link_text[&lt;a href=#&gt;link text&lt;/a&gt;-link text]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_link_text[&lt;a href=#&gt;&amp;nbsp;link text&amp;nbsp;&lt;/a&gt;-link text]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_link_text[&lt;a href=#&gt;link&lt;br&gt;text&lt;/a&gt;-link\ntext]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_link_text[&lt;a href=#&gt;link&amp;amp;text&lt;/a&gt;-link&amp;text]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_link_text[&lt;a href=#&gt;LINK TEXT&lt;/a&gt;-LINK TEXT]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_link_text[&lt;a href=# style=&apos;text-transform: uppercase&apos;&gt;link text&lt;/a&gt;-LINK TEXT]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;partial link text&lt;/a&gt;-link]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;&amp;nbsp;partial link text&amp;nbsp;&lt;/a&gt;-link]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;partial link text&lt;/a&gt;-k t]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;partial link&lt;br&gt;text&lt;/a&gt;-k\nt]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;partial link&amp;amp;text&lt;/a&gt;-k&amp;t]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_partial_link_text[&lt;a href=#&gt;PARTIAL LINK TEXT&lt;/a&gt;-LINK]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_find_element_partial_link_text[&lt;a href=# style=&apos;text-transform: uppercase&apos;&gt;partial link text&lt;/a&gt;-LINK]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py::test_no_element[css selector-#wontExist]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_accept[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_accept[capabilities0-confirm-True]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_accept[capabilities0-prompt-]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-confirm-True]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_accept_and_notify[capabilities0-prompt-]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_dismiss[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_dismiss[capabilities0-confirm-False]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_dismiss[capabilities0-prompt-None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-alert-None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-confirm-False]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_dismiss_and_notify[capabilities0-prompt-None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_ignore[capabilities0-alert]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_ignore[capabilities0-confirm]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_ignore[capabilities0-prompt]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_default[alert-None]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_default[confirm-False]
  imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py::test_default[prompt-None]
  imported/w3c/webdriver/tests/is_element_selected/selected.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/get_element_rect/get.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/back/back.py::test_cross_origin[capabilities0]
  imported/w3c/webdriver/tests/get_element_css_value/get.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/element_send_keys/send_keys.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/switch_to_window/switch.py::test_element_not_found_after_tab_switch
  imported/w3c/webdriver/tests/get_element_attribute/get.py::test_no_top_browsing_context
  imported/w3c/webdriver/tests/get_element_attribute/get.py::test_anchor_href[relative]
  imported/w3c/webdriver/tests/new_session/websocket_url.py::test_websocket_url

Unexpected timeouts (5)
  imported/w3c/webdriver/tests/get_window_handle/get.py::test_navigation_with_coop_headers[capabilities0]
  imported/w3c/webdriver/tests/forward/forward.py::test_cross_origin[capabilities0]
  imported/w3c/webdriver/tests/element_click/navigate.py::test_link_cross_origin[capabilities0]
  imported/w3c/webdriver/tests/navigate_to/navigate.py::test_cross_origin[capabilities0]
  imported/w3c/webdriver/tests/back/back.py::test_cross_origin[capabilities0]


In selenium:

Unexpected failures (20)
  imported/selenium/py/test/alerts_tests.py::testUnexpectedAlertPresentExceptionContainsAlertText[WebKitGTK]
  imported/selenium/py/test/api_example_tests.py::testMoveWindowPosition[WebKitGTK]
  imported/selenium/py/test/interactions_tests.py::testSendingKeysToElement[WebKitGTK]
  imported/selenium/py/test/window_tests.py::test_should_set_the_position_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/window_tests.py::test_should_set_the_rect_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/selenium/alerts_tests.py::testUnexpectedAlertPresentExceptionContainsAlertText[WebKitGTK]
  imported/selenium/py/test/selenium/api_example_tests.py::testMoveWindowPosition[WebKitGTK]
  imported/selenium/py/test/selenium/interactions_tests.py::testSendingKeysToElement[WebKitGTK]
  imported/selenium/py/test/selenium/window_tests.py::test_should_set_the_position_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/selenium/window_tests.py::test_should_set_the_rect_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/alerts_tests.py::testUnexpectedAlertPresentExceptionContainsAlertText[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/api_example_tests.py::testMoveWindowPosition[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/interactions_tests.py::testSendingKeysToElement[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/window_tests.py::test_should_set_the_position_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/window_tests.py::test_should_set_the_rect_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py::testUnexpectedAlertPresentExceptionContainsAlertText[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/common/api_example_tests.py::testMoveWindowPosition[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/common/window_tests.py::test_should_set_the_position_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/common/window_tests.py::test_should_set_the_rect_of_the_current_window[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py::testUnexpectedAlertPresentExceptionContainsAlertText[WebKitGTK]

Unexpected timeouts (4)
  imported/selenium/py/test/frame_switching_tests.py::testShouldFocusOnTheReplacementWhenAFrameFollowsALinkToA_TopTargetedPage[WebKitGTK]
  imported/selenium/py/test/webdriverwait_tests.py::testShouldStillFailToFindAnElementWithExplicitWait[WebKitGTK]
  imported/selenium/py/test/selenium/webdriverwait_tests.py::testShouldStillFailToFindAnElementWithExplicitWait[WebKitGTK]
  imported/selenium/py/test/selenium/webdriver/webdriverwait_tests.py::testShouldStillFailToFindAnElementWithExplicitWait[WebKitGTK]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795528</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-21 07:04:34 -0700</bug_when>
    <thetext>The webkitpy failure is probably due to bug #230549</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796014</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-22 04:17:48 -0700</bug_when>
    <thetext>hmm, EWS still fails, but now only with python2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796027</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-22 05:43:10 -0700</bug_when>
    <thetext>I&apos;ve opened bugs for most of the new failures. There are a few remaining that I need to investigate, but we can probably fix or garden them in follow up patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796032</commentid>
    <comment_count>6</comment_count>
      <attachid>438943</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-22 06:14:14 -0700</bug_when>
    <thetext>Created attachment 438943
Patch

Added test expectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796057</commentid>
    <comment_count>7</comment_count>
      <attachid>438946</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-22 07:09:32 -0700</bug_when>
    <thetext>Created attachment 438946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796068</commentid>
    <comment_count>8</comment_count>
      <attachid>438946</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-22 07:49:06 -0700</bug_when>
    <thetext>Comment on attachment 438946
Patch

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

&gt; Tools/Scripts/webkitpy/__init__.py:74


The Python 2 error is caused by this line, does this module even exist for Python 2? If it doesn&apos;t, we need to conditionalize this line on Python 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796229</commentid>
    <comment_count>9</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-09-22 15:12:41 -0700</bug_when>
    <thetext>Got an error about a missing `tools/wptrunner/wptrunner/wptmanifest/backends/base.py` (trace below).

Maybe it&apos;s missing from the patch? Re-importing the same hash with the import script shows it as untracked. Manually copying it works around this error (but stops at other import errors I&apos;m still tracking).

Traceback (most recent call last):
  File &quot;Tools/Scripts/run-webdriver-tests&quot;, line 30, in &lt;module&gt;
    from webkitpy.webdriver_tests.webdriver_test_runner import WebDriverTestRunner
.....
  File &quot;/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/wptmanifest/backends/static.py&quot;, line 3, in &lt;module&gt;
    from . import base
ImportError: cannot import name &apos;base&apos; from &apos;wptrunner.wptmanifest.backends&apos; (/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/wptmanifest/backends/__init__.py)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796323</commentid>
    <comment_count>10</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-09-22 19:27:43 -0700</bug_when>
    <thetext>The remaining ImportError:

  File &quot;/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py&quot;, line 12, in &lt;module&gt;
    from .browsers.base import OutputHandler
  File &quot;/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/browsers/base.py&quot;, line 7, in &lt;module&gt;
    from ..wptcommandline import require_arg  # noqa: F401
  File &quot;/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py&quot;, line 10, in &lt;module&gt;
    from .formatters import chromium, wptreport, wptscreenshot
ImportError: cannot import name &apos;chromium&apos; from &apos;wptrunner.formatters&apos; (/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/formatters.py)

web_driver_server.py changes introduced this new browser.base import.

Removing the formatters imports (and respective usage inside wptcommandline.py, the test suite runs normally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796327</commentid>
    <comment_count>11</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-09-22 19:42:07 -0700</bug_when>
    <thetext>Sorry, there was a small issue left at the end of the test run. webdriver_test_runner.py trying to write json to a &apos;wb&apos; opened file instead of &apos;w&apos; for py3:

Traceback (most recent call last):
  File &quot;/app/webkit/Tools/Scripts/run-webdriver-tests&quot;, line 90, in &lt;module&gt;
    runner.dump_results_to_json_file(options.json_output)
  File &quot;/app/webkit/Tools/Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py&quot;, line 169, in dump_results_to_json_file
    json.dump(json_results, fp)
  File &quot;/usr/lib/python3.8/json/__init__.py&quot;, line 180, in dump
    fp.write(chunk)
TypeError: a bytes-like object is required, not &apos;str&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796412</commentid>
    <comment_count>12</comment_count>
      <attachid>438946</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-23 01:35:25 -0700</bug_when>
    <thetext>Comment on attachment 438946
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/__init__.py:74
&gt;&gt; +AutoInstall.register(Package(&apos;websockets&apos;, Version(8, 1)))
&gt; 
&gt; The Python 2 error is caused by this line, does this module even exist for Python 2? If it doesn&apos;t, we need to conditionalize this line on Python 2.

That&apos;s the issue, it requires python3, but it&apos;s only needed by pytest that will always be used with python3 after this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796414</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-23 01:36:36 -0700</bug_when>
    <thetext>(In reply to Lauro Moura from comment #9)
&gt; Got an error about a missing
&gt; `tools/wptrunner/wptrunner/wptmanifest/backends/base.py` (trace below).

weird, tests run here.

&gt; Maybe it&apos;s missing from the patch? Re-importing the same hash with the
&gt; import script shows it as untracked. Manually copying it works around this
&gt; error (but stops at other import errors I&apos;m still tracking).

hmm, I&apos;ll check

&gt; Traceback (most recent call last):
&gt;   File &quot;Tools/Scripts/run-webdriver-tests&quot;, line 30, in &lt;module&gt;
&gt;     from webkitpy.webdriver_tests.webdriver_test_runner import
&gt; WebDriverTestRunner
&gt; .....
&gt;   File
&gt; &quot;/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/
&gt; wptrunner/wptmanifest/backends/static.py&quot;, line 3, in &lt;module&gt;
&gt;     from . import base
&gt; ImportError: cannot import name &apos;base&apos; from &apos;wptrunner.wptmanifest.backends&apos;
&gt; (/home/lauro/dev/WebKit-WPE/WebDriverTests/imported/w3c/tools/wptrunner/
&gt; wptrunner/wptmanifest/backends/__init__.py)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796420</commentid>
    <comment_count>14</comment_count>
      <attachid>439024</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-23 01:48:43 -0700</bug_when>
    <thetext>Created attachment 439024
Patch

Added missing files and made websockets python3 only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796449</commentid>
    <comment_count>15</comment_count>
      <attachid>439035</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-23 04:20:33 -0700</bug_when>
    <thetext>Created attachment 439035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796488</commentid>
    <comment_count>16</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-09-23 07:44:08 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #15)
&gt; Created attachment 439035 [details]
&gt; Patch

Working fine for GTK here.

For WPE, running the following test with Cog makes the test suite to hang. With MiniBrowser it timeouts without getting stuck, like GTK. As the tests currently are still run with MiniBrowser, this should not be a blocker.


 * imported/w3c/webdriver/tests/forward/forward.py::test_cross_origin[capabilities0]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796498</commentid>
    <comment_count>17</comment_count>
      <attachid>439035</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-23 08:15:18 -0700</bug_when>
    <thetext>Comment on attachment 439035
Patch

Do not have any objections to this change, but I also won&apos;t be able to review it until next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796775</commentid>
    <comment_count>18</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-09-23 21:55:43 -0700</bug_when>
    <thetext>(In reply to Lauro Moura from comment #16)
&gt; 
&gt; Working fine for GTK here.
&gt; 
&gt; For WPE, running the following test with Cog makes the test suite to hang.
&gt; With MiniBrowser it timeouts without getting stuck, like GTK. As the tests
&gt; currently are still run with MiniBrowser, this should not be a blocker.
&gt; 
&gt; 
&gt;  *
&gt; imported/w3c/webdriver/tests/forward/forward.py::
&gt; test_cross_origin[capabilities0]

The issue with Cog is that during this test the WebDriver loses connection with the browser and retries to launch it during the test teardown. As the previous instance is still running, the newly created Cog&apos;s GApplication just returns normally. Somehow this early return is making the WebDriver/test suite to hang instead of timing out.

Tomorrow I&apos;ll open a detailed bug for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797870</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-28 06:49:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/83620518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797874</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-28 06:54:18 -0700</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801075</commentid>
    <comment_count>21</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-10-06 08:14:52 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #20)
&gt; Ping reviewers.

I this change Python 2 compatible, or do we need to switch over all the bots when it lands?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801076</commentid>
    <comment_count>22</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-06 08:17:48 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #21)
&gt; (In reply to Carlos Garcia Campos from comment #20)
&gt; &gt; Ping reviewers.
&gt; 
&gt; I this change Python 2 compatible, or do we need to switch over all the bots
&gt; when it lands?

hmm, webdriver test runner will now use python3 always, I think. I guess that&apos;s not a problem for the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801102</commentid>
    <comment_count>23</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-10-06 08:44:53 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #22)
&gt; (In reply to Jonathan Bedard from comment #21)
&gt; &gt; (In reply to Carlos Garcia Campos from comment #20)
&gt; &gt; &gt; Ping reviewers.
&gt; &gt; 
&gt; &gt; I this change Python 2 compatible, or do we need to switch over all the bots
&gt; &gt; when it lands?
&gt; 
&gt; hmm, webdriver test runner will now use python3 always, I think. I guess
&gt; that&apos;s not a problem for the bots.

Buildbot specifically invokes this script with &quot;python&quot;, see Tools/CISupport/build-webkit-org/steps.py. It doesn&apos;t respect the she-bang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801534</commentid>
    <comment_count>24</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-07 00:44:10 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #23)
&gt; (In reply to Carlos Garcia Campos from comment #22)
&gt; &gt; (In reply to Jonathan Bedard from comment #21)
&gt; &gt; &gt; (In reply to Carlos Garcia Campos from comment #20)
&gt; &gt; &gt; &gt; Ping reviewers.
&gt; &gt; &gt; 
&gt; &gt; &gt; I this change Python 2 compatible, or do we need to switch over all the bots
&gt; &gt; &gt; when it lands?
&gt; &gt; 
&gt; &gt; hmm, webdriver test runner will now use python3 always, I think. I guess
&gt; &gt; that&apos;s not a problem for the bots.
&gt; 
&gt; Buildbot specifically invokes this script with &quot;python&quot;, see
&gt; Tools/CISupport/build-webkit-org/steps.py. It doesn&apos;t respect the she-bang.

Ah! we need to change that then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801539</commentid>
    <comment_count>25</comment_count>
      <attachid>440486</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-07 01:08:20 -0700</bug_when>
    <thetext>Created attachment 440486
fast-cq-Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801593</commentid>
    <comment_count>26</comment_count>
      <attachid>440486</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-10-07 07:28:40 -0700</bug_when>
    <thetext>Comment on attachment 440486
fast-cq-Patch

r+ing, but holding off on commit-queue until Carlos and I coordinate landing with restarting build.webkit.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802027</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-08 07:21:43 -0700</bug_when>
    <thetext>Committed r283798 (242691@main): &lt;https://commits.webkit.org/242691@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440486.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818355</commentid>
    <comment_count>28</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-11-29 11:39:09 -0800</bug_when>
    <thetext>*** Bug 230097 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438811</attachid>
            <date>2021-09-21 06:58:28 -0700</date>
            <delta_ts>2021-09-22 06:14:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-import-tests.diff</filename>
            <type>text/plain</type>
            <size>724104</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNGRj
MGI5ZjYyNmMuLjUyMDA4NTQ1NDYxOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTIxICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViRHJpdmVyXSBV
cGRhdGUgdzNjIGFuZCBzZWxlbml1bSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHM6IFJ1biB3
aXRoIHB5dGhvbjMKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5OiBVc2Ug
YSBuZXdlciB2ZXJzaW9uIG9mIHB5dGVzdCBhbmQgaXRzIGRlcGVuZGVuY2llcyB0byBtYXRjaCB3
aGF0IHRlc3RzIGV4cGVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90
ZXN0cy9weXRlc3RfcnVubmVyLnB5OgorICAgICAgICAoY29sbGVjdCk6IFVzZSBjb250ZXh0bGli
IHRvIHJlZGlyZWN0IHN0ZG91dCB0byAvZGV2L251bGwgd2hpbGUgY29sbGVjdGluZyB0ZXN0cy4K
KyAgICAgICAgKHJ1bik6IFVzZSBFeGl0Q29kZSBuZXcgZW51bSBhZGRlZCB0byBweXRlc3QuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVu
aXVtX2V4ZWN1dG9yLnB5OgorICAgICAgICAoV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvci5fX2lu
aXRfXyk6IERvIG5vdCBlbmNvZGUgcGF0aHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5OgorICAgICAg
ICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLmNvbGxlY3RfdGVzdHMpOiBVc2UgaXRlbXMo
KSBpbnN0ZWFkIG9mIGl0ZXJpdGVtcygpIHRoYXQgZG9lc24ndCBleGlzdCBpbiBweXRob24zLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2Nf
ZXhlY3V0b3IucHk6CisgICAgICAgIChXZWJLaXREcml2ZXJTZXJ2ZXIuX19pbml0X18pOgorICAg
ICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX19pbml0X18pOgorICAgICAgICAoV2ViRHJpdmVy
VzNDRXhlY3V0b3Iuc2V0dXApOgorICAgICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX3J1bm5l
cik6CisKIDIwMjEtMDktMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFt3ZWJraXRjb3JlcHldIEZhaWwgdG8gcGFyc2UgcHl0aG9uIHJlcXVp
cmVkIHZlcnNpb24gd2hlbiB0aGVyZSdzIGEgc3BhY2UgYmV0d2VlbiBvcGVyYXRvciBhbmQgdmVy
c2lvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4td2ViZHJpdmVyLXRlc3RzIGIvVG9v
bHMvU2NyaXB0cy9ydW4td2ViZHJpdmVyLXRlc3RzCmluZGV4IGY0OTE3NDk2M2Y4ZS4uZTI0Njg0
MzQ1M2ZhIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHMKKysr
IGIvVG9vbHMvU2NyaXB0cy9ydW4td2ViZHJpdmVyLXRlc3RzCkBAIC0xLDQgKzEsNCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCisjIS91c3IvYmluL2VudiBweXRob24zCiAKICMgQ29weXJpZ2h0
IChDKSAyMDE3IElnYWxpYSBTLkwuCiAjCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weQppbmRl
eCBlYjY4MGU1YTQ4OWMuLjE3NjhlODg2YjVkYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L19faW5pdF9f
LnB5CkBAIC01MywxNiArNTMsMTcgQEAgQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnZnVu
Y3NpZ3MnLCBWZXJzaW9uKDEsIDAsIDIpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2Uo
J2ltcG9ydGxpYl9tZXRhZGF0YScsIFZlcnNpb24oMSwgNywgMCkpKQogQXV0b0luc3RhbGwucmVn
aXN0ZXIoUGFja2FnZSgnZ2Vuc2hpJywgVmVyc2lvbigwLCA3LCAzKSwgcHlwaV9uYW1lPSdHZW5z
aGknKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2h0bWw1bGliJywgVmVyc2lvbigx
LCAxKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdpbmljb25maWcnLCBWZXJzaW9u
KDEsIDEsIDEpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21lY2hhbml6ZScsIFZl
cnNpb24oMCwgNCwgNSkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW9yZV9pdGVy
dG9vbHMnLCBWZXJzaW9uKDQsIDIsIDApLCBweXBpX25hbWU9J21vcmUtaXRlcnRvb2xzJykpCi1B
dXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb3pwcm9jZXNzJywgVmVyc2lvbigxLCAyLCAw
KSkpCi1BdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb3psb2cnLCBWZXJzaW9uKDYsIDEp
KSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21venByb2Nlc3MnLCBWZXJzaW9uKDEs
IDMsIDApKSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21vemxvZycsIFZlcnNpb24o
NywgMSwgMCksIHdoZWVsPVRydWUpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW96
dGVybScsIFZlcnNpb24oMSwgMCwgMCkpKQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgn
cGx1Z2d5JywgVmVyc2lvbigwLCA1LCAyKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCdwbHVnZ3knLCBWZXJzaW9uKDAsIDEzLCAxKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNr
YWdlKCdweScsIFZlcnNpb24oMSwgNSwgMikpKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2Fn
ZSgncHl0ZXN0X2FzeW5jaW8nLCBWZXJzaW9uKDAsIDE0KSwgcHlwaV9uYW1lPSdweXRlc3QtYXN5
bmNpbycpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0X3RpbWVvdXQnLCBW
ZXJzaW9uKDEsIDQsIDIpLCBweXBpX25hbWU9J3B5dGVzdC10aW1lb3V0JykpCi0jIFB5dGVzdCBo
ZWxkIHRvIDMueCBkdWUgdG8gV1BUIHdlYmRyaXZlciBjb21wYXRpYmlsaXR5Ci1BdXRvSW5zdGFs
bC5yZWdpc3RlcihQYWNrYWdlKCdweXRlc3QnLCBWZXJzaW9uKDMsIDYsIDIpLCBpbXBsaWNpdF9k
ZXBzPVsncHl0ZXN0X3RpbWVvdXQnXSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdw
eXRlc3QnLCBWZXJzaW9uKDYsIDEsIDIpLCBpbXBsaWNpdF9kZXBzPVsncHl0ZXN0X2FzeW5jaW8n
LCAncHl0ZXN0X3RpbWVvdXQnXSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdweWNv
ZGVzdHlsZScsIFZlcnNpb24oMiwgNSwgMCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2Fn
ZSgnc2NhbmRpcicsIFZlcnNpb24oMSwgMTAsIDApKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBh
Y2thZ2UoJ3NvdXBzaWV2ZScsIFZlcnNpb24oMSwgOSwgNikpKQpAQCAtNzAsNiArNzEsNyBAQCBB
dXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdzZWxlbml1bScsIFZlcnNpb24oMywgMTQxLCAw
KSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCd0b21sJywgVmVyc2lvbigwLCAxMCwg
MSkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnd2N3aWR0aCcsIFZlcnNpb24oMCwg
MiwgNSkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnd2ViZW5jb2RpbmdzJywgVmVy
c2lvbigwLCA1LCAxKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCd3ZWJzb2NrZXRz
JywgVmVyc2lvbig4LCAxKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCd6aXBwJywg
VmVyc2lvbigxLCAyLCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCd6b3BlLmlu
dGVyZmFjZScsIFZlcnNpb24oNSwgMSwgMCksIGFsaWFzZXM9Wyd6b3BlJ10sIHB5cGlfbmFtZT0n
em9wZS1pbnRlcmZhY2UnKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvcHl0ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
d2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkKaW5kZXggMGVjNjVmOTRiZmFjLi5mMWU0
MTQ4NTIyYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rl
c3RzL3B5dGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfdGVzdHMvcHl0ZXN0X3J1bm5lci5weQpAQCAtMjAsNiArMjAsNyBAQAogIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUwogIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IGNvbnRleHRsaWIKIGltcG9ydCBlcnJubwogaW1w
b3J0IG9zCiBpbXBvcnQgc2h1dGlsCkBAIC0yOSw3ICszMCw3IEBAIGltcG9ydCB0ZW1wZmlsZQog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0K
IGZyb20gd2Via2l0cHkuY29tbW9uLndlYmtpdF9maW5kZXIgaW1wb3J0IFdlYktpdEZpbmRlcgog
aW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfSU5URVJOQUxFUlJP
UgorZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgRXhpdENvZGUKIAogCiBjbGFzcyBUZW1wb3Jh
cnlEaXJlY3Rvcnkob2JqZWN0KToKQEAgLTE2OCwxNiArMTY5LDE0IEBAIGNsYXNzIFRlc3RFeHBl
Y3RhdGlvbnNNYXJrZXIob2JqZWN0KToKIAogZGVmIGNvbGxlY3QoZGlyZWN0b3J5LCBhcmdzLCBp
Z25vcmVfcGFyYW09Tm9uZSk6CiAgICAgY29sbGVjdF9yZWNvcmRlciA9IENvbGxlY3RSZWNvcmRl
cihpZ25vcmVfcGFyYW0pCi0gICAgc3Rkb3V0ID0gc3lzLnN0ZG91dAotICAgIHdpdGggb3Blbihv
cy5kZXZudWxsLCAnd2InKSBhcyBkZXZudWxsOgotICAgICAgICBzeXMuc3Rkb3V0ID0gZGV2bnVs
bAotICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9yeToK
LSAgICAgICAgICAgIGNtZCA9IFsnLS1jb2xsZWN0LW9ubHknLAotICAgICAgICAgICAgICAgICAg
ICctLWJhc2V0ZW1wPSVzJyAlIGNhY2hlX2RpcmVjdG9yeV0KLSAgICAgICAgICAgIGNtZC5leHRl
bmQoYXJncykKLSAgICAgICAgICAgIGNtZC5hcHBlbmQoZGlyZWN0b3J5KQotICAgICAgICAgICAg
cHl0ZXN0Lm1haW4oY21kLCBwbHVnaW5zPVtjb2xsZWN0X3JlY29yZGVyXSkKLSAgICBzeXMuc3Rk
b3V0ID0gc3Rkb3V0CisgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZjoKKyAgICAg
ICAgd2l0aCBjb250ZXh0bGliLnJlZGlyZWN0X3N0ZG91dChmKToKKyAgICAgICAgICAgIHdpdGgg
VGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgY2FjaGVfZGlyZWN0b3J5OgorICAgICAgICAgICAgICAg
IGNtZCA9IFsnLS1jb2xsZWN0LW9ubHknLAorICAgICAgICAgICAgICAgICAgICAgICAnLS1iYXNl
dGVtcCcsIGNhY2hlX2RpcmVjdG9yeV0KKyAgICAgICAgICAgICAgICBjbWQuZXh0ZW5kKGFyZ3Mp
CisgICAgICAgICAgICAgICAgY21kLmFwcGVuZChkaXJlY3RvcnkpCisgICAgICAgICAgICAgICAg
cHl0ZXN0Lm1haW4oY21kLCBwbHVnaW5zPVtjb2xsZWN0X3JlY29yZGVyXSkKICAgICByZXR1cm4g
Y29sbGVjdF9yZWNvcmRlci50ZXN0cwogCiAKQEAgLTE5MiwxNiArMTkxLDE2IEBAIGRlZiBydW4o
cGF0aCwgYXJncywgdGltZW91dCwgZW52LCBleHBlY3RhdGlvbnMsIGlnbm9yZV9wYXJhbT1Ob25l
KToKICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9yeToKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgY21kID0gWyctdnYnLAotICAgICAgICAgICAgICAgICAg
ICctLWNhcHR1cmU9bm8nLAotICAgICAgICAgICAgICAgICAgICctLWJhc2V0ZW1wPSVzJyAlIGNh
Y2hlX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJlJywgJ25vJywKKyAg
ICAgICAgICAgICAgICAgICAnLS1iYXNldGVtcCcsIGNhY2hlX2RpcmVjdG9yeSwKICAgICAgICAg
ICAgICAgICAgICAnLS1zaG93bG9jYWxzJywKLSAgICAgICAgICAgICAgICAgICAnLS10aW1lb3V0
PSVzJyAlIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgJy0tdGltZW91dCcsIHN0cih0aW1l
b3V0KSwKICAgICAgICAgICAgICAgICAgICAnLXAnLCAnbm86Y2FjaGVwcm92aWRlciddCiAgICAg
ICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCiAgICAgICAgICAgICBjbWQuYXBwZW5kKHBhdGgpCiAg
ICAgICAgICAgICByZXN1bHQgPSBweXRlc3QubWFpbihjbWQsIHBsdWdpbnM9W2hhcm5lc3NfcmVj
b3JkZXIsIHN1YnRlc3RzX3JlY29yZGVyLCBleHBlY3RhdGlvbnNfbWFya2VyXSkKIAotICAgICAg
ICAgICAgaWYgcmVzdWx0ID09IEVYSVRfSU5URVJOQUxFUlJPUjoKKyAgICAgICAgICAgIGlmIHJl
c3VsdCA9PSBFeGl0Q29kZS5JTlRFUk5BTF9FUlJPUjoKICAgICAgICAgICAgICAgICBoYXJuZXNz
X3JlY29yZGVyLm91dGNvbWUgPSAoJ0VSUk9SJywgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiBhcyBlOgogICAgICAgICAgICAgaGFybmVzc19yZWNvcmRlci5vdXRjb21lID0gKCdFUlJP
UicsIHN0cihlKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVy
X3Rlc3RzL3dlYmRyaXZlcl9zZWxlbml1bV9leGVjdXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9zZWxlbml1bV9leGVjdXRvci5weQppbmRl
eCBmYmQ3NjI2ZjU1OWUuLjVlNTc0ODNkYTYyNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1dG9yLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9zZWxl
bml1bV9leGVjdXRvci5weQpAQCAtNDAsOCArNDAsOCBAQCBjbGFzcyBXZWJEcml2ZXJTZWxlbml1
bUV4ZWN1dG9yKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2VudiA9IGVudgogICAgICAgICBzZWxm
Ll9lbnYudXBkYXRlKGRyaXZlci5icm93c2VyX2VudigpKQogCi0gICAgICAgIHNlbGYuX2FyZ3Mg
PSBbJy0tZHJpdmVyPSVzJyAlIHNlbGYuX2RyaXZlcl9uYW1lLCAnLS1kcml2ZXItYmluYXJ5PSVz
JyAlIGRyaXZlci5iaW5hcnlfcGF0aCgpLmVuY29kZSgpXQotICAgICAgICBicm93c2VyX3BhdGgg
PSBkcml2ZXIuYnJvd3Nlcl9wYXRoKCkuZW5jb2RlKCkKKyAgICAgICAgc2VsZi5fYXJncyA9IFsn
LS1kcml2ZXI9JXMnICUgc2VsZi5fZHJpdmVyX25hbWUsICctLWRyaXZlci1iaW5hcnk9JXMnICUg
ZHJpdmVyLmJpbmFyeV9wYXRoKCldCisgICAgICAgIGJyb3dzZXJfcGF0aCA9IGRyaXZlci5icm93
c2VyX3BhdGgoKQogICAgICAgICBpZiBicm93c2VyX3BhdGg6CiAgICAgICAgICAgICBzZWxmLl9h
cmdzLmV4dGVuZChbJy0tYnJvd3Nlci1iaW5hcnk9JXMnICUgYnJvd3Nlcl9wYXRoXSkKICAgICAg
ICAgYnJvd3Nlcl9hcmdzID0gZHJpdmVyLmJyb3dzZXJfYXJncygpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJf
c2VsZW5pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJk
cml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkKaW5kZXggYjBiZWVhMGY5MTQyLi4wNjUxMmU0
ZmQ3NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3Rz
L3dlYmRyaXZlcl90ZXN0X3J1bm5lcl9zZWxlbml1bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkK
QEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtKG9iamVj
dCk6CiAgICAgICAgICMgQ29sbGVjdGVkIHRlc3RzIGFyZSByZWxhdGl2ZSB0byB0ZXN0IGRpcmVj
dG9yeS4KICAgICAgICAgYmFzZV9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyLCBv
cy5wYXRoLmRpcm5hbWUocmVsYXRpdmVfdGVzdHNfZGlyKSkKICAgICAgICAgY29sbGVjdGVkX3Rl
c3RzID0ge30KLSAgICAgICAgZm9yIHRlc3QsIHN1YnRlc3RzIGluIGV4ZWN1dG9yLmNvbGxlY3Qo
b3MucGF0aC5qb2luKHNlbGYuX3Rlc3RzX2RpciwgcmVsYXRpdmVfdGVzdHNfZGlyKSkuaXRlcml0
ZW1zKCk6CisgICAgICAgIGZvciB0ZXN0LCBzdWJ0ZXN0cyBpbiBleGVjdXRvci5jb2xsZWN0KG9z
LnBhdGguam9pbihzZWxmLl90ZXN0c19kaXIsIHJlbGF0aXZlX3Rlc3RzX2RpcikpLml0ZW1zKCk6
CiAgICAgICAgICAgICBjb2xsZWN0ZWRfdGVzdHNbb3MucGF0aC5qb2luKGJhc2VfZGlyLCB0ZXN0
KV0gPSBzdWJ0ZXN0cwogICAgICAgICBzZWxlbml1bV90ZXN0cyA9IFtdCiAgICAgICAgIGlmIG5v
dCB0ZXN0czoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rl
c3RzL3dlYmRyaXZlcl93M2NfZXhlY3V0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dl
YmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5CmluZGV4IGNjMmQwNzViYzBh
Zi4uMTg0M2RlNTUzNzc5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRy
aXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2NfZXhlY3V0b3IucHkKQEAgLTEx
NSw4ICsxMTUsOCBAQCBjbGFzcyBXZWJLaXREcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToK
ICAgICBkZWZhdWx0X2Jhc2VfcGF0aCA9ICcvJwogICAgIHRlc3RfZW52ID0gTm9uZQogCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PU5vbmUsIHBvcnQ9Tm9uZSwgYmFzZV9w
YXRoPScnLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1h
cmdzLCBlbnY9c2VsZi50ZXN0X2VudikKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
aW5hcnk9Tm9uZSwgcG9ydD1Ob25lLCBiYXNlX3BhdGg9JycsIGVudj1Ob25lLCBhcmdzPU5vbmUp
OgorICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnks
IHBvcnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgZW52PXNlbGYudGVzdF9lbnYsIGFyZ3M9
YXJncykKIAogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2Vs
Zi5iaW5hcnksICctLXBvcnQ9JXMnICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwpAQCAt
MTM1LDggKzEzNSw4IEBAIGNsYXNzIFdlYkRyaXZlclczQ0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9y
KToKICAgICAgICAgc2VydmVyX2NvbmZpZyA9IHsnYnJvd3Nlcl9ob3N0Jzogc2VydmVyLmhvc3Qo
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9tYWlucyc6IHsnJzogeycnOiBzZXJ2ZXIu
aG9zdCgpfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWx0Jzp7ICcn
OiAnMTI3LjAuMC4xJ319LAotICAgICAgICAgICAgICAgICAgICAgICAgICdwb3J0cyc6IHsnaHR0
cCc6IFtzdHIoc2VydmVyLmh0dHBfcG9ydCgpKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdodHRwcyc6IFtzdHIoc2VydmVyLmh0dHBzX3BvcnQoKSldfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAncG9ydHMnOiB7J2h0dHAnOiBbc2VydmVyLmh0dHBfcG9ydCgpXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzJzogW3NlcnZlci5odHRw
c19wb3J0KCldfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jX3Jvb3QnOiBzZXJ2ZXIu
ZG9jdW1lbnRfcm9vdCgpfQogICAgICAgICBzZWxmLnJ1bm5lciA9IFRlc3RSdW5uZXIoKQogICAg
ICAgICBXZHNwZWNFeGVjdXRvci5fX2luaXRfXyhzZWxmLCBzZWxmLnJ1bm5lci5sb2dnZXIsIGRy
aXZlci5icm93c2VyX25hbWUoKSwgc2VydmVyX2NvbmZpZywgZHJpdmVyLmJpbmFyeV9wYXRoKCks
IE5vbmUsIGNhcGFiaWxpdGllcz1kcml2ZXIuY2FwYWJpbGl0aWVzKCkpCkBAIC0xNDcsMTMgKzE0
NywxMyBAQCBjbGFzcyBXZWJEcml2ZXJXM0NFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6CiAgICAg
ICAgIHNlbGYuX3Jlc3VsdF9xdWV1ZSA9IFF1ZXVlKCkKIAogICAgIGRlZiBzZXR1cChzZWxmKToK
LSAgICAgICAgc2VsZi5wcm90b2NvbC5zZXR1cChzZWxmLnJ1bm5lcikKKyAgICAgICAgc3VwZXIo
V2ViRHJpdmVyVzNDRXhlY3V0b3IsIHNlbGYpLnNldHVwKHNlbGYucnVubmVyKQogICAgICAgICBh
cmdzID0gKHNlbGYuX3Rlc3RfcXVldWUsCiAgICAgICAgICAgICAgICAgc2VsZi5fcmVzdWx0X3F1
ZXVlLAogICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbl9jb25maWdbJ2hvc3Qn
XSwKICAgICAgICAgICAgICAgICBzdHIoc2VsZi5wcm90b2NvbC5zZXNzaW9uX2NvbmZpZ1sncG9y
dCddKSwKICAgICAgICAgICAgICAgICBqc29uLmR1bXBzKHNlbGYucHJvdG9jb2wuc2Vzc2lvbl9j
b25maWdbJ2NhcGFiaWxpdGllcyddKSwKLSAgICAgICAgICAgICAgICBqc29uLmR1bXBzKHNlbGYu
c2VydmVyX2NvbmZpZyksCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfY29uZmlnLAogICAg
ICAgICAgICAgICAgIHNlbGYuX3RpbWVvdXQsCiAgICAgICAgICAgICAgICAgc2VsZi5fZXhwZWN0
YXRpb25zKQogICAgICAgICBzZWxmLl9wcm9jZXNzID0gUHJvY2Vzcyh0YXJnZXQ9V2ViRHJpdmVy
VzNDRXhlY3V0b3IuX3J1bm5lciwgYXJncz1hcmdzKQpAQCAtMTc0LDEzICsxNzQsMTggQEAgY2xh
c3MgV2ViRHJpdmVyVzNDRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgogICAgICAgICAgICAgaWYg
dGVzdCA9PSAnVEVBUkRPV04nOgogICAgICAgICAgICAgICAgIGJyZWFrCiAKLSAgICAgICAgICAg
IGVudiA9IHsnV0RfSE9TVCc6IGhvc3QsCi0gICAgICAgICAgICAgICAgICAgJ1dEX1BPUlQnOiBw
b3J0LAotICAgICAgICAgICAgICAgICAgICdXRF9DQVBBQklMSVRJRVMnOiBjYXBhYmlsaXRpZXMs
Ci0gICAgICAgICAgICAgICAgICAgJ1dEX1NFUlZFUl9DT05GSUcnOiBzZXJ2ZXJfY29uZmlnfQot
ICAgICAgICAgICAgZW52LnVwZGF0ZShXZWJLaXREcml2ZXJTZXJ2ZXIudGVzdF9lbnYpCi0gICAg
ICAgICAgICBhcmdzID0gWyctLXN0cmljdCcsICctcCcsICdubzptb3psb2cnXQotICAgICAgICAg
ICAgcmVzdWx0X3F1ZXVlLnB1dChweXRlc3RfcnVubmVyLnJ1bih0ZXN0LCBhcmdzLCB0aW1lb3V0
LCBlbnYsIGV4cGVjdGF0aW9ucykpCisgICAgICAgICAgICB3aXRoIHB5dGVzdF9ydW5uZXIuVGVt
cG9yYXJ5RGlyZWN0b3J5KCkgYXMgY2FjaGVfZGlyZWN0b3J5OgorICAgICAgICAgICAgICAgIHNl
cnZlcl9jb25maWdfcGF0aCA9IG9zLnBhdGguam9pbihjYWNoZV9kaXJlY3RvcnksICd3ZF9zZXJ2
ZXJfY29uZmlnLmpzb24nKQorICAgICAgICAgICAgICAgIHdpdGggb3BlbihzZXJ2ZXJfY29uZmln
X3BhdGgsICd3JykgYXMgZjoKKyAgICAgICAgICAgICAgICAgICAganNvbi5kdW1wKHNlcnZlcl9j
b25maWcsIGYpCisKKyAgICAgICAgICAgICAgICBlbnYgPSB7J1dEX0hPU1QnOiBob3N0LAorICAg
ICAgICAgICAgICAgICAgICAgICAnV0RfUE9SVCc6IHBvcnQsCisgICAgICAgICAgICAgICAgICAg
ICAgICdXRF9DQVBBQklMSVRJRVMnOiBjYXBhYmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICdXRF9TRVJWRVJfQ09ORklHX0ZJTEUnOiBzZXJ2ZXJfY29uZmlnX3BhdGh9CisgICAgICAg
ICAgICAgICAgZW52LnVwZGF0ZShXZWJLaXREcml2ZXJTZXJ2ZXIudGVzdF9lbnYpCisgICAgICAg
ICAgICAgICAgYXJncyA9IFsnLS1zdHJpY3QnLCAnLXAnLCAnbm86bW96bG9nJ10KKyAgICAgICAg
ICAgICAgICByZXN1bHRfcXVldWUucHV0KHB5dGVzdF9ydW5uZXIucnVuKHRlc3QsIGFyZ3MsIHRp
bWVvdXQsIGVudiwgZXhwZWN0YXRpb25zKSkKIAogICAgIGRlZiBydW4oc2VsZiwgdGVzdCk6CiAg
ICAgICAgIHNlbGYuX3Rlc3RfcXVldWUucHV0KHRlc3QpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9DaGFuZ2VMb2cgYi9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTAyYjkyYmZl
ZjliLi4zNzY5MDM4ZWU4M2IgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZwor
KysgYi9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0y
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W1dlYkRyaXZlcl0gVXBkYXRlIHczYyBhbmQgc2VsZW5pdW0gdGVzdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDU1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvamF2YXNjcmlwdFBhZ2UuaHRtbDoKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxl
bml1bS9pbXBvcnRlci5qc29uOgorICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL3B5LzoKKyAg
ICAgICAgKiBpbXBvcnRlZC93M2MvaW1wb3J0ZXIuanNvbjoKKyAgICAgICAgKiBpbXBvcnRlZC93
M2MvdG9vbHMvOgorICAgICAgICAqIGltcG9ydGVkL3czYy93ZWJkcml2ZXIvOgorCiAyMDIxLTA4
LTIyICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdW1dl
YkRyaXZlcl0gQmFzaWMgZnVsbHNjcmVlbiBzdXBwb3J0IGZvciB0aGUgaGVhZGxlc3MgYmFja2Vu
ZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvamF2YXNjcmlwdFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWwKaW5kZXggZmNhYzI1MmU4OTlh
Li4xNjkwYWQwN2RkNzkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvamF2YXNjcmlwdFBhZ2UuaHRtbApA
QCAtODYsNyArODYsNyBAQAogICA8L2Rpdj4KIAogPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAorCiA8ZGl2IGlkPSJmb3JtYWdlZGRvbiI+CiAgICAgPGZvcm0gYWN0aW9u
PSIjIj4KICAgICAgICAgS2V5IFVwOiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImtleVVwIiBvbmtl
eXVwPSJqYXZhc2NyaXB0OnVwZGF0ZUNvbnRlbnQodGhpcykiLz48YnIvPgpAQCAtMTUxLDE1ICsx
NTEsMTUgQEAKICAgICAgICAgICAgLz4KIAogICAgIDxpbnB1dCBpZD0iY2hhbmdlYWJsZSIgbmFt
ZT0iY2hhbmdlYWJsZSIgb25mb2N1cz0iYXBwZW5kTWVzc2FnZSgnZm9jdXMnKSIgb25jaGFuZ2U9
ImFwcGVuZE1lc3NhZ2UoJ2NoYW5nZScpIiBvbmJsdXI9ImFwcGVuZE1lc3NhZ2UoJ2JsdXInKSIv
PgotICAgICAgICAgICAKLSAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InBsYWluQnV0dG9u
IiAKKworICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icGxhaW5CdXR0b24iCiAgICAgCQlv
bmZvY3VzPSJhcHBlbmRNZXNzYWdlKCdmb2N1cycpIgogICAgICAgICAgICAJb25rZXlkb3duPSJh
cHBlbmRNZXNzYWdlKCdrZXlkb3duJykiCiAgICAgICAgICAgIAlvbmtleXByZXNzPSJhcHBlbmRN
ZXNzYWdlKCdrZXlwcmVzcycpIgogICAgICAgICAgICAJb25rZXl1cD0iYXBwZW5kTWVzc2FnZSgn
a2V5dXAnKSIKICAgICAgICAgICAgCW9uYmx1cj0iYXBwZW5kTWVzc2FnZSgnYmx1cicpIgogICAg
ICAgICAgICAJb25jbGljaz0iYXBwZW5kTWVzc2FnZSgnY2xpY2snKSIKLSAgICAgICAgICAgCW9u
bW91c2Vkb3duPSJhcHBlbmRNZXNzYWdlKCdtb3VzZWRvd24gJykiIAorICAgICAgICAgICAJb25t
b3VzZWRvd249ImFwcGVuZE1lc3NhZ2UoJ21vdXNlZG93biAnKSIKICAgICAgICAgICAgCW9ubW91
c2V1cD0iYXBwZW5kTWVzc2FnZSgnbW91c2V1cCAnKSIKICAgICAgICAgICAgIG9ubW91c2VvdmVy
PSJyZWdpc3RlcignbW91c2VvdmVyICcpIgogICAgICAgICAgICAgb25tb3VzZW1vdmU9InJlZ2lz
dGVyKCdtb3VzZW1vdmUgJykiCkBAIC0xNzMsNyArMTczLDcgQEAKICAgICA8YnV0dG9uIHR5cGU9
ImJ1dHRvbiIgb25jbGljaz0idmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c3dpdGNoRm9jdXMnKTsgdmFyIGNsaWNrRXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91
c2VFdmVudHMnKTsgY2xpY2tFdmVudC5pbml0TW91c2VFdmVudCgnY2xpY2snLCB0cnVlLCB0cnVl
LCBudWxsLCAwLCAwLCAwLCAwLCAwLGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBlbGVt
ZW50KTtlbGVtZW50LmRpc3BhdGNoRXZlbnQoY2xpY2tFdmVudCk7Ij5EbyBtYWdpYzwvYnV0dG9u
Pjxici8+CiAgICAgPGxhYmVsIGlkPSJsYWJlbEZvckNoZWNrYm94IiBmb3I9ImxhYmVsZWRDaGVj
a2JveCIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgnbGFiZWxjbGljaycpIj5Ub2dnbGUgY2hlY2ti
b3g8L2xhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImxhYmVsZWRDaGVja2JveCIgb25j
bGljaz0iYXBwZW5kTWVzc2FnZSgnY2hib3hjbGljaycpIi8+CiAgIDwvZm9ybT4KLSAgCisKICAg
PGZvcm0gYWN0aW9uPSJqYXZhc2NyaXB0UGFnZS5odG1sIiBpZD0ic3VibWl0TGlzdGVuaW5nRm9y
bSIgb25zdWJtaXQ9ImFwcGVuZE1lc3NhZ2UoJ2Zvcm0tb25zdWJtaXQgJyk7IHJldHVybiBmYWxz
ZTsiPgogICAgIDxwPgogICAgICAgPGlucHV0IGlkPSJzdWJtaXRMaXN0ZW5pbmdGb3JtLXRleHQi
IHR5cGU9InRleHQiIG9uc3VibWl0PSJhcHBlbmRNZXNzYWdlKCd0ZXh0LW9uc3VibWl0ICcpIiBv
bmNsaWNrPSJhcHBlbmRNZXNzYWdlKCd0ZXh0LW9uY2xpY2sgJyk7IiAvPgpAQCAtMTk4LDcgKzE5
OCw3IEBACiAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJoaWRkZW5saW5rIj5vazwvYT4KICAgICAg
IDwvZGl2PgogICAgIDwvZGl2PgotICAgIAorCiAgICAgPGRpdiBzdHlsZT0idmlzaWJpbGl0eTog
aGlkZGVuOyI+CiAgICAgICA8c3Bhbj4KICAgICAgICAgPGlucHV0IGlkPSJ1bmNsaWNrYWJsZSIg
Lz4KQEAgLTI2NSw3ICsyNjUsNyBAQAogCiA8YSBpZD0ibmV3X3dpbmRvdyIgb25tb3VzZXVwPSJ3
aW5kb3cub3BlbignY2xvc2VhYmxlX3dpbmRvdy5odG1sJywgJ2Nsb3NlX21lJykiIGhyZWY9IiMi
PkNsaWNrIG1lIHRvIG9wZW4gYSBuZXcgd2luZG93PC9hPgogCi08YSBpZD0idGhyb3dpbmctbW91
c2VvdmVyIiBvbm1vdXNlb3Zlcj0idGhyb3cgbmV3IEVycm9yKCkiIGhyZWY9IiN0aHJvd2luZy1t
b3VzZW92ZXIiPk1vdXNlIG92ZXIgbWUgd2lsbCB0aHJvdyBhIEpTIGVycm9yPC9hPgorPGEgaWQ9
InRocm93aW5nLW1vdXNlb3ZlciIgb25tb3VzZW92ZXI9InRocm93IG5ldyBFcnJvcignSSBsaWtl
IGNoZWVzZScpIiBocmVmPSIjdGhyb3dpbmctbW91c2VvdmVyIj5Nb3VzZSBvdmVyIG1lIHdpbGwg
dGhyb3cgYSBKUyBlcnJvcjwvYT4KIAogPGRpdiBpZD0icGFyZW50Ij4KICAgICA8c3BhbiBpZD0i
bW92YWJsZSIgb25tb3VzZW92ZXI9InZhciBwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21v
dmFibGUnKTsgZGlzcGxheU1lc3NhZ2UoJ3BhcmVudCBtYXRjaGVzPyAnICsgKHAgIT0gZXZlbnQu
cmVsYXRlZFRhcmdldCkpOyI+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9pbXBvcnRlci5qc29uIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
aW1wb3J0ZXIuanNvbgppbmRleCBkOTg1YzhlZGFjNzUuLjViYTBjM2E1ZDMwMyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbgorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9pbXBvcnRlci5qc29uCkBAIC0xLDYgKzEs
NiBAQAogewogICAgICJyZXBvc2l0b3J5IjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bUhR
L3NlbGVuaXVtLmdpdCIsCi0gICAgInJldmlzaW9uIjogImQ0ZjlmZTIxM2RkNmU1YjEwYjg5YmUz
NjBiZTYzNTc0N2VkM2UxMzgiLAorICAgICJyZXZpc2lvbiI6ICJlM2ZjZjc5MTIzOWMwZTliYTVj
MDQ2ODYwMjVmNTc4YjU2MWVjZDZmIiwKICAgICAicGF0aHNfdG9faW1wb3J0IjogWwogICAgICAg
ICAiY29tbW9uIiwKICAgICAgICAgInB5L2NvbmZ0ZXN0LnB5IiwKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvY29uZnRlc3QucHkKaW5kZXggNmQ2NGYzZmZlN2MwLi5i
MjM1OGI3ZjY1ZTkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L2NvbmZ0ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L2NvbmZ0ZXN0LnB5CkBAIC0xNiwzMSArMTYsMjUgQEAKICMgdW5kZXIgdGhlIExpY2Vuc2UuCiAK
IGltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgc3VicHJv
Y2VzcwotaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAogaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0
ZXN0LnNraXBwaW5nIGltcG9ydCBNYXJrRXZhbHVhdG9yCiAKIGZyb20gc2VsZW5pdW0gaW1wb3J0
IHdlYmRyaXZlcgogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IERlc2lyZWRDYXBhYmls
aXRpZXMKIGZyb20gdGVzdC5zZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLndlYnNlcnZlciBpbXBv
cnQgU2ltcGxlV2ViU2VydmVyCiBmcm9tIHRlc3Quc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5u
ZXR3b3JrIGltcG9ydCBnZXRfbGFuX2lwCiAKLWlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMzoK
LSAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCi1lbHNlOgotICAgIGZyb20g
dXJsbGliIGltcG9ydCB1cmxvcGVuCitmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVu
CiAKIGRyaXZlcnMgPSAoCi0gICAgJ0JsYWNrQmVycnknLAogICAgICdDaHJvbWUnLAogICAgICdF
ZGdlJywKICAgICAnRmlyZWZveCcsCiAgICAgJ0llJywKLSAgICAnTWFyaW9uZXR0ZScsCiAgICAg
J1JlbW90ZScsCiAgICAgJ1NhZmFyaScsCiAgICAgJ1dlYktpdEdUSycsCkBAIC04MiwxMCArNzYs
MjggQEAgZGVmIGRyaXZlcihyZXF1ZXN0KToKICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVGhpcyB0ZXN0IHJlcXVpcmVzIGEgLS1kcml2ZXIgdG8g
YmUgc3BlY2lmaWVkLicpCiAKKyAgICAjIHNraXAgdGVzdHMgaWYgbm90IGF2YWlsYWJsZSBvbiB0
aGUgcGxhdGZvcm0KKyAgICBfcGxhdGZvcm0gPSBwbGF0Zm9ybS5zeXN0ZW0oKQorICAgIGlmIGRy
aXZlcl9jbGFzcyA9PSAiU2FmYXJpIiBhbmQgX3BsYXRmb3JtICE9ICJEYXJ3aW4iOgorICAgICAg
ICBweXRlc3Quc2tpcCgiU2FmYXJpIHRlc3RzIGNhbiBvbmx5IHJ1biBvbiBhbiBBcHBsZSBPUyIp
CisgICAgaWYgKGRyaXZlcl9jbGFzcyA9PSAiSWUiIG9yIGRyaXZlcl9jbGFzcyA9PSAiRWRnZSIp
IGFuZCBfcGxhdGZvcm0gIT0gIldpbmRvd3MiOgorICAgICAgICBweXRlc3Quc2tpcCgiSUUgYW5k
IEVkZ2VIVE1MIFRlc3RzIGNhbiBvbmx5IHJ1biBvbiBXaW5kb3dzIikKKyAgICBpZiAiV2ViS2l0
IiBpbiBkcml2ZXJfY2xhc3MgYW5kIF9wbGF0Zm9ybSAhPSAiTGludXgiOgorICAgICAgICBweXRl
c3Quc2tpcCgiV2Via2l0IHRlc3RzIGNhbiBvbmx5IHJ1biBvbiBMaW51eCIpCisKICAgICAjIGNv
bmRpdGlvbmFsbHkgbWFyayB0ZXN0cyBhcyBleHBlY3RlZCB0byBmYWlsIGJhc2VkIG9uIGRyaXZl
cgotICAgIHJlcXVlc3Qubm9kZS5fZXZhbHhmYWlsID0gcmVxdWVzdC5ub2RlLl9ldmFseGZhaWwg
b3IgTWFya0V2YWx1YXRvcigKLSAgICAgICAgcmVxdWVzdC5ub2RlLCAneGZhaWxfezB9Jy5mb3Jt
YXQoZHJpdmVyX2NsYXNzLmxvd2VyKCkpKQotICAgIGlmIHJlcXVlc3Qubm9kZS5fZXZhbHhmYWls
LmlzdHJ1ZSgpOgorICAgIG1hcmtlciA9IHJlcXVlc3Qubm9kZS5nZXRfY2xvc2VzdF9tYXJrZXIo
J3hmYWlsX3swfScuZm9ybWF0KGRyaXZlcl9jbGFzcy5sb3dlcigpKSkKKworICAgIGlmIG1hcmtl
ciBpcyBub3QgTm9uZToKKyAgICAgICAgaWYgInJ1biIgaW4gbWFya2VyLmt3YXJnczoKKyAgICAg
ICAgICAgIGlmIG1hcmtlci5rd2FyZ3NbInJ1biJdIGlzIEZhbHNlOgorICAgICAgICAgICAgICAg
IHB5dGVzdC5za2lwKCkKKyAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBpZiAicmFpc2VzIiBpbiBtYXJrZXIua3dhcmdzOgorICAgICAgICAgICAg
bWFya2VyLmt3YXJncy5wb3AoInJhaXNlcyIpCisgICAgICAgIHB5dGVzdC54ZmFpbCgqKm1hcmtl
ci5rd2FyZ3MpCisKICAgICAgICAgZGVmIGZpbigpOgogICAgICAgICAgICAgZ2xvYmFsIGRyaXZl
cl9pbnN0YW5jZQogICAgICAgICAgICAgaWYgZHJpdmVyX2luc3RhbmNlIGlzIG5vdCBOb25lOgpA
QCAtOTMsMjUgKzEwNSwxMiBAQCBkZWYgZHJpdmVyKHJlcXVlc3QpOgogICAgICAgICAgICAgZHJp
dmVyX2luc3RhbmNlID0gTm9uZQogICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCiAK
LSAgICAjIHNraXAgZHJpdmVyIGluc3RhbnRpYXRpb24gaWYgeGZhaWwocnVuPUZhbHNlKQotICAg
IGlmIG5vdCByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oJ3J1bnhmYWlsJyk6Ci0gICAgICAgIGlm
IHJlcXVlc3Qubm9kZS5fZXZhbHhmYWlsLmlzdHJ1ZSgpOgotICAgICAgICAgICAgaWYgcmVxdWVz
dC5ub2RlLl9ldmFseGZhaWwuZ2V0KCdydW4nKSBpcyBGYWxzZToKLSAgICAgICAgICAgICAgICB5
aWVsZAotICAgICAgICAgICAgICAgIHJldHVybgotCiAgICAgZHJpdmVyX3BhdGggPSByZXF1ZXN0
LmNvbmZpZy5vcHRpb24uZXhlY3V0YWJsZQogICAgIG9wdGlvbnMgPSBOb25lCiAKICAgICBnbG9i
YWwgZHJpdmVyX2luc3RhbmNlCiAgICAgaWYgZHJpdmVyX2luc3RhbmNlIGlzIE5vbmU6Ci0gICAg
ICAgIGlmIGRyaXZlcl9jbGFzcyA9PSAnQmxhY2tCZXJyeSc6Ci0gICAgICAgICAgICBrd2FyZ3Mu
dXBkYXRlKHsnZGV2aWNlX3Bhc3N3b3JkJzogJ3Bhc3N3b3JkJ30pCiAgICAgICAgIGlmIGRyaXZl
cl9jbGFzcyA9PSAnRmlyZWZveCc6Ci0gICAgICAgICAgICBrd2FyZ3MudXBkYXRlKHsnY2FwYWJp
bGl0aWVzJzogeydtYXJpb25ldHRlJzogRmFsc2V9fSkKLSAgICAgICAgICAgIG9wdGlvbnMgPSBn
ZXRfb3B0aW9ucyhkcml2ZXJfY2xhc3MsIHJlcXVlc3QuY29uZmlnKQotICAgICAgICBpZiBkcml2
ZXJfY2xhc3MgPT0gJ01hcmlvbmV0dGUnOgotICAgICAgICAgICAgZHJpdmVyX2NsYXNzID0gJ0Zp
cmVmb3gnCiAgICAgICAgICAgICBvcHRpb25zID0gZ2V0X29wdGlvbnMoZHJpdmVyX2NsYXNzLCBy
ZXF1ZXN0LmNvbmZpZykKICAgICAgICAgaWYgZHJpdmVyX2NsYXNzID09ICdSZW1vdGUnOgogICAg
ICAgICAgICAgY2FwYWJpbGl0aWVzID0gRGVzaXJlZENhcGFiaWxpdGllcy5GSVJFRk9YLmNvcHko
KQpAQCAtMTI5LDcgKzEyOCw4IEBAIGRlZiBkcml2ZXIocmVxdWVzdCk6CiAgICAgICAgICAgICBr
d2FyZ3NbJ29wdGlvbnMnXSA9IG9wdGlvbnMKICAgICAgICAgZHJpdmVyX2luc3RhbmNlID0gZ2V0
YXR0cih3ZWJkcml2ZXIsIGRyaXZlcl9jbGFzcykoKiprd2FyZ3MpCiAgICAgeWllbGQgZHJpdmVy
X2luc3RhbmNlCi0gICAgaWYgTWFya0V2YWx1YXRvcihyZXF1ZXN0Lm5vZGUsICdub19kcml2ZXJf
YWZ0ZXJfdGVzdCcpLmlzdHJ1ZSgpOgorCisgICAgaWYgcmVxdWVzdC5ub2RlLmdldF9jbG9zZXN0
X21hcmtlcigibm9fZHJpdmVyX2FmdGVyX3Rlc3QiKToKICAgICAgICAgZHJpdmVyX2luc3RhbmNl
ID0gTm9uZQogCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkKaW5kZXggNGEwNDliODU5MTMyLi4zMjNjYWFlYjc5
MGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL19faW5pdF9fLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL19faW5pdF9fLnB5CkBAIC0xNiw0ICsxNiw0IEBACiAjIHVuZGVyIHRoZSBMaWNl
bnNlLgogCiAKLV9fdmVyc2lvbl9fID0gIjQuMC4wYTYiCitfX3ZlcnNpb25fXyA9ICI0LjAuMGE3
IgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vY29tbW9uL2V4Y2VwdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS9jb21tb24vZXhjZXB0aW9ucy5weQppbmRleCA0Y2IxMWM4OWQ1OGUuLmU4
MjdiMDdlMWUzYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKQEAgLTE1OCw3
ICsxNTgsNyBAQCBjbGFzcyBFbGVtZW50Tm90VmlzaWJsZUV4Y2VwdGlvbihJbnZhbGlkRWxlbWVu
dFN0YXRlRXhjZXB0aW9uKToKIGNsYXNzIEVsZW1lbnROb3RJbnRlcmFjdGFibGVFeGNlcHRpb24o
SW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CiAgICAgIiIiCiAgICAgVGhyb3duIHdoZW4g
YW4gZWxlbWVudCBpcyBwcmVzZW50IGluIHRoZSBET00gYnV0IGludGVyYWN0aW9ucwotICAgIHdp
dGggdGhhdCBlbGVtZW50IHdpbGwgaGl0IGFub3RoZXIgZWxlbWVudCBkbyB0byBwYWludCBvcmRl
cgorICAgIHdpdGggdGhhdCBlbGVtZW50IHdpbGwgaGl0IGFub3RoZXIgZWxlbWVudCBkdWUgdG8g
cGFpbnQgb3JkZXIKICAgICAiIiIKICAgICBwYXNzCiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBjbGFz
cyBTY3JlZW5zaG90RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiBjbGFzcyBFbGVtZW50
Q2xpY2tJbnRlcmNlcHRlZEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgICIiIgog
ICAgIFRoZSBFbGVtZW50IENsaWNrIGNvbW1hbmQgY291bGQgbm90IGJlIGNvbXBsZXRlZCBiZWNh
dXNlIHRoZSBlbGVtZW50IHJlY2VpdmluZyB0aGUgZXZlbnRzCi0gICAgaXMgb2JzY3VyaW5nIHRo
ZSBlbGVtZW50IHRoYXQgd2FzIHJlcXVlc3RlZCBjbGlja2VkLgorICAgIGlzIG9ic2N1cmluZyB0
aGUgZWxlbWVudCB0aGF0IHdhcyByZXF1ZXN0ZWQgdG8gYmUgY2xpY2tlZC4KICAgICAiIiIKICAg
ICBwYXNzCiAKQEAgLTI4OCw3ICsyODgsNyBAQCBjbGFzcyBJbnNlY3VyZUNlcnRpZmljYXRlRXhj
ZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAKIGNsYXNzIEludmFsaWRDb29yZGluYXRlc0V4
Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgICIiIgotICAgIFRoZSBjb29yZGluYXRl
cyBwcm92aWRlZCB0byBhbiBpbnRlcmFjdGlvbnMgb3BlcmF0aW9uIGFyZSBpbnZhbGlkLgorICAg
IFRoZSBjb29yZGluYXRlcyBwcm92aWRlZCB0byBhbiBpbnRlcmFjdGlvbidzIG9wZXJhdGlvbiBh
cmUgaW52YWxpZC4KICAgICAiIiIKICAgICBwYXNzCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9fX2luaXRfXy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9f
X2luaXRfXy5weQppbmRleCA5YjkzZGNjMjg0N2MuLmU3NTc2MzZhYzc1YiAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL19f
aW5pdF9fLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9fX2luaXRfXy5weQpAQCAtMTYsMTQgKzE2LDE0IEBACiAjIHVuZGVyIHRo
ZSBMaWNlbnNlLgogCiBmcm9tIC5zYWZhcmkud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMg
U2FmYXJpICAjIG5vcWEKLWZyb20gLndlYmtpdGd0ay53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZl
ciBhcyBXZWJLaXRHVEsgIyBub3FhCi1mcm9tIC53ZWJraXRndGsub3B0aW9ucyBpbXBvcnQgT3B0
aW9ucyBhcyBXZWJLaXRHVEtPcHRpb25zICMgbm9xYQotZnJvbSAud3Bld2Via2l0LndlYmRyaXZl
ciBpbXBvcnQgV2ViRHJpdmVyIGFzIFdQRVdlYktpdCAjIG5vcWEKLWZyb20gLndwZXdlYmtpdC5v
cHRpb25zIGltcG9ydCBPcHRpb25zIGFzIFdQRVdlYktpdE9wdGlvbnMgIyBub3FhCitmcm9tIC53
ZWJraXRndGsud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgV2ViS2l0R1RLICAjIG5vcWEK
K2Zyb20gLndlYmtpdGd0ay5vcHRpb25zIGltcG9ydCBPcHRpb25zIGFzIFdlYktpdEdUS09wdGlv
bnMgICMgbm9xYQorZnJvbSAud3Bld2Via2l0LndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFz
IFdQRVdlYktpdCAgIyBub3FhCitmcm9tIC53cGV3ZWJraXQub3B0aW9ucyBpbXBvcnQgT3B0aW9u
cyBhcyBXUEVXZWJLaXRPcHRpb25zICAjIG5vcWEKIGZyb20gLnJlbW90ZS53ZWJkcml2ZXIgaW1w
b3J0IFdlYkRyaXZlciBhcyBSZW1vdGUgICMgbm9xYQogZnJvbSAuY29tbW9uLmRlc2lyZWRfY2Fw
YWJpbGl0aWVzIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzICAjIG5vcWEKIGZyb20gLmNvbW1v
bi5hY3Rpb25fY2hhaW5zIGltcG9ydCBBY3Rpb25DaGFpbnMgICMgbm9xYQogZnJvbSAuY29tbW9u
LnRvdWNoX2FjdGlvbnMgaW1wb3J0IFRvdWNoQWN0aW9ucyAgIyBub3FhCiBmcm9tIC5jb21tb24u
cHJveHkgaW1wb3J0IFByb3h5ICAjIG5vcWEKIAotX192ZXJzaW9uX18gPSAnNC4wLjBhNicKK19f
dmVyc2lvbl9fID0gJzQuMC4wYTcnCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL29wdGlvbnMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L29wdGlvbnMucHkKaW5kZXggYmZmMjUxNzI3YjNlLi45MjAzNDgxMjg5ZDIgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vb3B0aW9ucy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL29wdGlvbnMucHkKQEAgLTQ5LDEyICs0OSwxMiBA
QCBjbGFzcyBCYXNlT3B0aW9ucyhvYmplY3QpOgogICAgICAgICAiIiJSZXR1cm4gbWluaW1hbCBj
YXBhYmlsaXRpZXMgbmVjZXNzYXJ5IGFzIGEgZGljdGlvbmFyeS4iIiIKIAogCi0KIGNsYXNzIEFy
Z09wdGlvbnMoQmFzZU9wdGlvbnMpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAg
ICBzdXBlcihBcmdPcHRpb25zLCBzZWxmKS5fX2luaXRfXygpCiAgICAgICAgIHNlbGYuX2FyZ3Vt
ZW50cyA9IFtdCisgICAgICAgIHNlbGYuX2lnbm9yZV9sb2NhbF9wcm94eSA9IEZhbHNlCiAKICAg
ICBAcHJvcGVydHkKICAgICBkZWYgYXJndW1lbnRzKHNlbGYpOgpAQCAtNzUsNiArNzUsMTIgQEAg
Y2xhc3MgQXJnT3B0aW9ucyhCYXNlT3B0aW9ucyk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdhcmd1bWVudCBjYW4gbm90IGJlIG51bGwnKQogCisgICAgZGVm
IGlnbm9yZV9sb2NhbF9wcm94eV9lbnZpcm9ubWVudF92YXJpYWJsZXMoc2VsZik6CisgICAgICAg
ICIiIgorICAgICAgICAgICAgQnkgY2FsbGluZyB0aGlzIHlvdSB3aWxsIGlnbm9yZSBIVFRQX1BS
T1hZIGFuZCBIVFRQU19QUk9YWSBmcm9tIGJlaW5nIHBpY2tlZCB1cCBhbmQgdXNlZC4KKyAgICAg
ICAgIiIiCisgICAgICAgIHNlbGYuX2lnbm9yZV9sb2NhbF9wcm94eSA9IFRydWUKKwogICAgIGRl
ZiB0b19jYXBhYmlsaXRpZXMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9jYXBzCiAKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vc2VydmljZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VydmljZS5weQppbmRleCBkMjBhOTAy
ZmFjN2UuLjhjMzJlMGRiZWNjMSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZXJ2aWNlLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vc2VydmljZS5weQpAQCAtNDYsNiArNDYsOCBAQCBjbGFzcyBTZXJ2aWNlKG9iamVjdCk6CiAK
ICAgICAgICAgc2VsZi5zdGFydF9lcnJvcl9tZXNzYWdlID0gc3RhcnRfZXJyb3JfbWVzc2FnZQog
ICAgICAgICBzZWxmLmxvZ19maWxlID0gbG9nX2ZpbGUKKyAgICAgICAgIyBEZWZhdWx0IHZhbHVl
IGZvciBldmVyeSBweXRob24gc3VicHJvY2Vzczogc3VicHJvY2Vzcy5Qb3BlbiguLi4sIGNyZWF0
aW9uZmxhZ3M9MCkKKyAgICAgICAgc2VsZi5jcmVhdGlvbmZsYWdzID0gMAogICAgICAgICBzZWxm
LmVudiA9IGVudiBvciBvcy5lbnZpcm9uCiAKICAgICBAcHJvcGVydHkKQEAgLTczLDcgKzc1LDgg
QEAgY2xhc3MgU2VydmljZShvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbG9zZV9mZHM9cGxhdGZvcm0uc3lzdGVtKCkgIT0gJ1dpbmRvd3MnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c2VsZi5s
b2dfZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
ZXJyPXNlbGYubG9nX2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0ZGluPVBJUEUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0ZGluPVBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0aW9uZmxhZ3M9c2VsZi5jcmVhdGlvbmZsYWdzKQogICAgICAgICBleGNlcHQg
VHlwZUVycm9yOgogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMg
ZXJyOgpAQCAtOTgsOSArMTAxLDEwIEBAIGNsYXNzIFNlcnZpY2Uob2JqZWN0KToKICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3Nfc3RpbGxfcnVubmluZygpCiAgICAgICAgICAgICBpZiBz
ZWxmLmlzX2Nvbm5lY3RhYmxlKCk6CiAgICAgICAgICAgICAgICAgYnJlYWsKKwogICAgICAgICAg
ICAgY291bnQgKz0gMQotICAgICAgICAgICAgdGltZS5zbGVlcCgxKQotICAgICAgICAgICAgaWYg
Y291bnQgPT0gMzA6CisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuNSkKKyAgICAgICAgICAgIGlm
IGNvdW50ID09IDYwOgogICAgICAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigi
Q2FuIG5vdCBjb25uZWN0IHRvIHRoZSBTZXJ2aWNlICVzIiAlIHNlbGYucGF0aCkKIAogICAgIGRl
ZiBhc3NlcnRfcHJvY2Vzc19zdGlsbF9ydW5uaW5nKHNlbGYpOgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91
dGlscy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vdXRpbHMucHkKaW5kZXggOTU3ZjJmZDI2Njk5Li4xZjYwZTQ0NTczYTIg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91dGlscy5weQpAQCAtMzYsNyAr
MzYsNyBAQCBkZWYgZnJlZV9wb3J0KCk6CiAgICAgRGV0ZXJtaW5lcyBhIGZyZWUgcG9ydCB1c2lu
ZyBzb2NrZXRzLgogICAgICIiIgogICAgIGZyZWVfc29ja2V0ID0gc29ja2V0LnNvY2tldChzb2Nr
ZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQotICAgIGZyZWVfc29ja2V0LmJpbmQoKCcw
LjAuMC4wJywgMCkpCisgICAgZnJlZV9zb2NrZXQuYmluZCgoJzEyNy4wLjAuMScsIDApKQogICAg
IGZyZWVfc29ja2V0Lmxpc3Rlbig1KQogICAgIHBvcnQgPSBmcmVlX3NvY2tldC5nZXRzb2NrbmFt
ZSgpWzFdCiAgICAgZnJlZV9zb2NrZXQuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVf
Y29ubmVjdGlvbi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkKaW5kZXggNmYxYzFiNDcx
MjA3Li4yNDQ4YzFiMDZiNGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3JlbW90ZS9yZW1vdGVfY29ubmVjdGlvbi5weQpAQCAtMTQxLDcgKzE0MSw3IEBAIGNsYXNz
IFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHVybGxpYjMuUG9vbE1h
bmFnZXIoKipwb29sX21hbmFnZXJfaW5pdF9hcmdzKSBpZiBzZWxmLl9wcm94eV91cmwgaXMgTm9u
ZSBlbHNlIFwKICAgICAgICAgICAgIHVybGxpYjMuUHJveHlNYW5hZ2VyKHNlbGYuX3Byb3h5X3Vy
bCwgKipwb29sX21hbmFnZXJfaW5pdF9hcmdzKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
bW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1GYWxzZSwgcmVzb2x2ZV9pcD1Ob25lKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVtb3RlX3NlcnZlcl9hZGRyLCBrZWVwX2FsaXZlPUZhbHNl
LCByZXNvbHZlX2lwPU5vbmUsIGlnbm9yZV9wcm94eT1GYWxzZSk6CiAgICAgICAgIGlmIHJlc29s
dmVfaXAgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpbXBvcnQgd2FybmluZ3MKICAgICAgICAg
ICAgIHdhcm5pbmdzLndhcm4oCkBAIC0xNDksNyArMTQ5LDcgQEAgY2xhc3MgUmVtb3RlQ29ubmVj
dGlvbihvYmplY3QpOgogICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykKICAgICAg
ICAgc2VsZi5rZWVwX2FsaXZlID0ga2VlcF9hbGl2ZQogICAgICAgICBzZWxmLl91cmwgPSByZW1v
dGVfc2VydmVyX2FkZHIKLSAgICAgICAgc2VsZi5fcHJveHlfdXJsID0gc2VsZi5fZ2V0X3Byb3h5
X3VybCgpCisgICAgICAgIHNlbGYuX3Byb3h5X3VybCA9IHNlbGYuX2dldF9wcm94eV91cmwoKSBp
ZiBub3QgaWdub3JlX3Byb3h5IGVsc2UgTm9uZQogICAgICAgICBpZiBrZWVwX2FsaXZlOgogICAg
ICAgICAgICAgc2VsZi5fY29ubiA9IHNlbGYuX2dldF9jb25uZWN0aW9uX21hbmFnZXIoKQogCkBA
IC0xOTcsNyArMTk3LDcgQEAgY2xhc3MgUmVtb3RlQ29ubmVjdGlvbihvYmplY3QpOgogICAgICAg
ICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL3ZhbHVl
JyksCiAgICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZU19UT19BQ1RJVkVfRUxFTUVOVDoKICAg
ICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9rZXlzJyksCi0gICAg
ICAgICAgICBDb21tYW5kLlVQTE9BRF9GSUxFOiAoJ1BPU1QnLCAiL3Nlc3Npb24vJHNlc3Npb25J
ZC9maWxlIiksCisgICAgICAgICAgICBDb21tYW5kLlVQTE9BRF9GSUxFOiAoJ1BPU1QnLCAiL3Nl
c3Npb24vJHNlc3Npb25JZC9zZS9maWxlIiksCiAgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVN
RU5UX1ZBTFVFOgogICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQv
ZWxlbWVudC8kaWQvdmFsdWUnKSwKICAgICAgICAgICAgIENvbW1hbmQuR0VUX0VMRU1FTlRfVEFH
X05BTUU6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZHJpdmVyLnB5
CmluZGV4IDYyMjgyZDUyNjk1Yi4uYzQ4MzEwM2QzYTUwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmRy
aXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmRyaXZlci5weQpAQCAtMjAsMTkgKzIwLDIzIEBACiBmcm9t
IGFiYyBpbXBvcnQgQUJDTWV0YQogaW1wb3J0IGJhc2U2NAogaW1wb3J0IGNvcHkKLWZyb20gY29u
dGV4dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIKK2Zyb20gY29udGV4dGxpYiBpbXBvcnQgKGNv
bnRleHRtYW5hZ2VyLCBhc3luY2NvbnRleHRtYW5hZ2VyKQoraW1wb3J0IGltcG9ydGxpYgogaW1w
b3J0IHBrZ3V0aWwKIGltcG9ydCB3YXJuaW5ncworaW1wb3J0IHN5cwogCiBmcm9tIC5jb21tYW5k
IGltcG9ydCBDb21tYW5kCiBmcm9tIC5lcnJvcmhhbmRsZXIgaW1wb3J0IEVycm9ySGFuZGxlcgog
ZnJvbSAuZmlsZV9kZXRlY3RvciBpbXBvcnQgRmlsZURldGVjdG9yLCBMb2NhbEZpbGVEZXRlY3Rv
cgogZnJvbSAubW9iaWxlIGltcG9ydCBNb2JpbGUKIGZyb20gLnJlbW90ZV9jb25uZWN0aW9uIGlt
cG9ydCBSZW1vdGVDb25uZWN0aW9uCitmcm9tIC5zY3JpcHRfa2V5IGltcG9ydCBTY3JpcHRLZXkK
IGZyb20gLnN3aXRjaF90byBpbXBvcnQgU3dpdGNoVG8KIGZyb20gLndlYmVsZW1lbnQgaW1wb3J0
IFdlYkVsZW1lbnQKIAogZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgKElu
dmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBKYXZhc2NyaXB0RXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYkRyaXZlckV4Y2VwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOb1N1Y2hDb29raWVFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVW5rbm93bk1ldGhvZEV4Y2VwdGlvbikKQEAgLTQ4LDYg
KzUyLDE0IEBAIHRyeToKIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgcGFzcwogCitjZHAgPSBOb25l
CisKKworZGVmIGltcG9ydF9jZHAoKToKKyAgICBnbG9iYWwgY2RwCisgICAgaWYgY2RwIGlzIE5v
bmU6CisgICAgICAgIGNkcCA9IGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlKCJzZWxlbml1bS53ZWJk
cml2ZXIuY29tbW9uLmJpZGkuY2RwIikKKwogCiBfVzNDX0NBUEFCSUxJVFlfTkFNRVMgPSBmcm96
ZW5zZXQoWwogICAgICdhY2NlcHRJbnNlY3VyZUNlcnRzJywKQEAgLTY4LDYgKzgwLDggQEAgX09T
U19XM0NfQ09OVkVSU0lPTiA9IHsKICAgICAncGxhdGZvcm0nOiAncGxhdGZvcm1OYW1lJwogfQog
CitkZXZ0b29scyA9IE5vbmUKKwogCiBkZWYgX21ha2VfdzNjX2NhcHMoY2Fwcyk6CiAgICAgIiIi
TWFrZXMgYSBXM0MgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIG9iamVjdC4KQEAgLTEwMiw3ICsx
MTYsNyBAQCBkZWYgX21ha2VfdzNjX2NhcHMoY2Fwcyk6CiAgICAgcmV0dXJuIHsiZmlyc3RNYXRj
aCI6IFt7fV0sICJhbHdheXNNYXRjaCI6IGFsd2F5c19tYXRjaH0KIAogCi1kZWYgZ2V0X3JlbW90
ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZSk6
CitkZWYgZ2V0X3JlbW90ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29tbWFuZF9leGVjdXRv
ciwga2VlcF9hbGl2ZSwgaWdub3JlX2xvY2FsX3Byb3h5PUZhbHNlKToKICAgICBmcm9tIHNlbGVu
aXVtLndlYmRyaXZlci5zYWZhcmkucmVtb3RlX2Nvbm5lY3Rpb24gaW1wb3J0IFNhZmFyaVJlbW90
ZUNvbm5lY3Rpb24KIAogICAgIGNhbmRpZGF0ZXMgPSBbUmVtb3RlQ29ubmVjdGlvbl0gKyBbU2Fm
YXJpUmVtb3RlQ29ubmVjdGlvbl0KQEAgLTExMSw3ICsxMjUsNyBAQCBkZWYgZ2V0X3JlbW90ZV9j
b25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZSk6CiAg
ICAgICAgIFJlbW90ZUNvbm5lY3Rpb24KICAgICApCiAKLSAgICByZXR1cm4gaGFuZGxlcihjb21t
YW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlPWtlZXBfYWxpdmUpCisgICAgcmV0dXJuIGhhbmRsZXIo
Y29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZlLCBpZ25vcmVfcHJveHk9aWdu
b3JlX2xvY2FsX3Byb3h5KQogCiAKIEBhZGRfbWV0YWNsYXNzKEFCQ01ldGEpCkBAIC0xNjMsOCAr
MTc3LDEwIEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgIC0gb3B0
aW9ucyAtIGluc3RhbmNlIG9mIGEgZHJpdmVyIG9wdGlvbnMuT3B0aW9ucyBjbGFzcwogICAgICAg
ICAiIiIKICAgICAgICAgY2FwYWJpbGl0aWVzID0ge30KKyAgICAgICAgX2lnbm9yZV9sb2NhbF9w
cm94eSA9IEZhbHNlCiAgICAgICAgIGlmIG9wdGlvbnMgaXMgbm90IE5vbmU6CiAgICAgICAgICAg
ICBjYXBhYmlsaXRpZXMgPSBvcHRpb25zLnRvX2NhcGFiaWxpdGllcygpCisgICAgICAgICAgICBf
aWdub3JlX2xvY2FsX3Byb3h5ID0gb3B0aW9ucy5faWdub3JlX2xvY2FsX3Byb3h5CiAgICAgICAg
IGlmIGRlc2lyZWRfY2FwYWJpbGl0aWVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2UoZGVzaXJlZF9jYXBhYmlsaXRpZXMsIGRpY3QpOgogICAgICAgICAgICAgICAg
IHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRGVzaXJlZCBDYXBhYmlsaXRpZXMgbXVzdCBiZSBh
IGRpY3Rpb25hcnkiKQpAQCAtMTcyLDEwICsxODgsMTMgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VX
ZWJEcml2ZXIpOgogICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy51cGRhdGUoZGVzaXJlZF9j
YXBhYmlsaXRpZXMpCiAgICAgICAgIHNlbGYuY29tbWFuZF9leGVjdXRvciA9IGNvbW1hbmRfZXhl
Y3V0b3IKICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmNvbW1hbmRfZXhlY3V0b3IsIChzdHIs
IGJ5dGVzKSk6Ci0gICAgICAgICAgICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IgPSBnZXRfcmVtb3Rl
X2Nvbm5lY3Rpb24oY2FwYWJpbGl0aWVzLCBjb21tYW5kX2V4ZWN1dG9yPWNvbW1hbmRfZXhlY3V0
b3IsIGtlZXBfYWxpdmU9a2VlcF9hbGl2ZSkKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZF9leGVj
dXRvciA9IGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhlY3V0
b3I9Y29tbWFuZF9leGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrZWVwX2FsaXZlPWtlZXBfYWxpdmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2xv
Y2FsX3Byb3h5PV9pZ25vcmVfbG9jYWxfcHJveHkpCiAgICAgICAgIHNlbGYuX2lzX3JlbW90ZSA9
IFRydWUKICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gTm9uZQotICAgICAgICBzZWxmLmNhcGFi
aWxpdGllcyA9IHt9CisgICAgICAgIHNlbGYuY2FwcyA9IHt9CisgICAgICAgIHNlbGYucGlubmVk
X3NjcmlwdHMgPSB7fQogICAgICAgICBzZWxmLmVycm9yX2hhbmRsZXIgPSBFcnJvckhhbmRsZXIo
KQogICAgICAgICBzZWxmLnN0YXJ0X2NsaWVudCgpCiAgICAgICAgIHNlbGYuc3RhcnRfc2Vzc2lv
bihjYXBhYmlsaXRpZXMsIGJyb3dzZXJfcHJvZmlsZSkKQEAgLTIzNSw4ICsyNTQsOCBAQCBjbGFz
cyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAKICAgICAgICAgICAgICAgICBuYW1lID0gZHJp
dmVyLm5hbWUKICAgICAgICAgIiIiCi0gICAgICAgIGlmICdicm93c2VyTmFtZScgaW4gc2VsZi5j
YXBhYmlsaXRpZXM6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5jYXBhYmlsaXRpZXNbJ2Jyb3dz
ZXJOYW1lJ10KKyAgICAgICAgaWYgJ2Jyb3dzZXJOYW1lJyBpbiBzZWxmLmNhcHM6CisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5jYXBzWydicm93c2VyTmFtZSddCiAgICAgICAgIGVsc2U6CiAgICAg
ICAgICAgICByYWlzZSBLZXlFcnJvcignYnJvd3Nlck5hbWUgbm90IHNwZWNpZmllZCBpbiBzZXNz
aW9uIGNhcGFiaWxpdGllcycpCiAKQEAgLTI3OSwxMiArMjk4LDEyIEBAIGNsYXNzIFdlYkRyaXZl
cihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgaWYgJ3Nlc3Npb25JZCcgbm90IGluIHJlc3BvbnNl
OgogICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZVsndmFsdWUnXQogICAgICAgICBzZWxm
LnNlc3Npb25faWQgPSByZXNwb25zZVsnc2Vzc2lvbklkJ10KLSAgICAgICAgc2VsZi5jYXBhYmls
aXRpZXMgPSByZXNwb25zZS5nZXQoJ3ZhbHVlJykKKyAgICAgICAgc2VsZi5jYXBzID0gcmVzcG9u
c2UuZ2V0KCd2YWx1ZScpCiAKICAgICAgICAgIyBpZiBjYXBhYmlsaXRpZXMgaXMgbm9uZSB3ZSBh
cmUgcHJvYmFibHkgc3BlYWtpbmcgdG8KICAgICAgICAgIyBhIFczQyBlbmRwb2ludAotICAgICAg
ICBpZiBzZWxmLmNhcGFiaWxpdGllcyBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5jYXBhYmls
aXRpZXMgPSByZXNwb25zZS5nZXQoJ2NhcGFiaWxpdGllcycpCisgICAgICAgIGlmIHNlbGYuY2Fw
cyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5jYXBzID0gcmVzcG9uc2UuZ2V0KCdjYXBhYmls
aXRpZXMnKQogCiAgICAgICAgICMgRG91YmxlIGNoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIGEgVzND
IENvbXBsaWFudCBicm93c2VyCiAgICAgICAgIHNlbGYudzNjID0gcmVzcG9uc2UuZ2V0KCdzdGF0
dXMnKSBpcyBOb25lCkBAIC02ODksNiArNzA4LDI2IEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2Vi
RHJpdmVyKToKICAgICAgICAgd2FybmluZ3Mud2FybigiZmluZF9lbGVtZW50c19ieV8qIGNvbW1h
bmRzIGFyZSBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGZpbmRfZWxlbWVudHMoKSBpbnN0ZWFkIikK
ICAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5DU1NfU0VMRUNUT1IsIHZh
bHVlPWNzc19zZWxlY3RvcikKIAorICAgIGRlZiBwaW5fc2NyaXB0KHNlbGYsIHNjcmlwdCk6Cisg
ICAgICAgICIiIgorCisgICAgICAgICIiIgorICAgICAgICBzY3JpcHRfa2V5ID0gU2NyaXB0S2V5
KCkKKyAgICAgICAgc2VsZi5waW5uZWRfc2NyaXB0c1tzY3JpcHRfa2V5LmlkXSA9IHNjcmlwdAor
ICAgICAgICByZXR1cm4gc2NyaXB0X2tleQorCisgICAgZGVmIHVucGluKHNlbGYsIHNjcmlwdF9r
ZXkpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5waW5uZWRfc2Ny
aXB0cy5wb3Aoc2NyaXB0X2tleS5pZCkKKworICAgIGRlZiBnZXRfcGlubmVkX3NjcmlwdHMoc2Vs
Zik6CisgICAgICAgICIiIgorCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbGlzdChzZWxm
LnBpbm5lZF9zY3JpcHRzLmtleXMoKSkKKwogICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBz
Y3JpcHQsICphcmdzKToKICAgICAgICAgIiIiCiAgICAgICAgIFN5bmNocm9ub3VzbHkgRXhlY3V0
ZXMgSmF2YVNjcmlwdCBpbiB0aGUgY3VycmVudCB3aW5kb3cvZnJhbWUuCkBAIC03MDIsNiArNzQx
LDEyIEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKIAogICAgICAgICAgICAgICAg
IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIGRvY3VtZW50LnRpdGxlOycpCiAgICAgICAg
ICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKHNjcmlwdCwgU2NyaXB0S2V5KToKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBzY3JpcHQgPSBzZWxmLnBpbm5lZF9zY3JpcHRzW3Nj
cmlwdC5pZF0KKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBy
YWlzZSBKYXZhc2NyaXB0RXhjZXB0aW9uKCJQaW5uZWQgc2NyaXB0IGNvdWxkIG5vdCBiZSBmb3Vu
ZCIpCisKICAgICAgICAgY29udmVydGVkX2FyZ3MgPSBsaXN0KGFyZ3MpCiAgICAgICAgIGNvbW1h
bmQgPSBOb25lCiAgICAgICAgIGlmIHNlbGYudzNjOgpAQCAtMTA2Nyw4ICsxMTEyLDcgQEAgY2xh
c3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgZGVmIGZpbmRfZWxlbWVudChzZWxm
LCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGFuIGVs
ZW1lbnQgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4gUHJlZmVyIHRoZSBmaW5kX2Vs
ZW1lbnRfYnlfKiBtZXRob2RzIHdoZW4KLSAgICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQg
YW4gZWxlbWVudCBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpV
c2FnZToKICAgICAgICAgICAgIDo6CkBAIC0xMDk1LDggKzExMzksNyBAQCBjbGFzcyBXZWJEcml2
ZXIoQmFzZVdlYkRyaXZlcik6CiAKICAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5J
RCwgdmFsdWU9Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGVsZW1lbnRzIGdpdmVu
IGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50c19ieV8q
IG1ldGhvZHMgd2hlbgotICAgICAgICBwb3NzaWJsZS4KKyAgICAgICAgRmluZCBlbGVtZW50cyBn
aXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAgICAg
ICAgICAgIDo6CkBAIC0xMTA4LDcgKzExNTEsNyBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRy
aXZlcik6CiAgICAgICAgIGlmIGlzaW5zdGFuY2UoYnksIFJlbGF0aXZlQnkpOgogICAgICAgICAg
ICAgX3BrZyA9ICcuJy5qb2luKF9fbmFtZV9fLnNwbGl0KCcuJylbOi0xXSkKICAgICAgICAgICAg
IHJhd19mdW5jdGlvbiA9IHBrZ3V0aWwuZ2V0X2RhdGEoX3BrZywgJ2ZpbmRFbGVtZW50cy5qcycp
LmRlY29kZSgndXRmOCcpCi0gICAgICAgICAgICBmaW5kX2VsZW1lbnRfanMgPSAicmV0dXJuICgl
cykuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsiICUgcmF3X2Z1bmN0aW9uCisgICAgICAgICAgICBm
aW5kX2VsZW1lbnRfanMgPSAicmV0dXJuICh7fSkuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsiLmZv
cm1hdChyYXdfZnVuY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlX3Njcmlw
dChmaW5kX2VsZW1lbnRfanMsIGJ5LnRvX2RpY3QoKSkKIAogICAgICAgICBpZiBzZWxmLnczYzoK
QEAgLTExMzUsNyArMTE3OCwxNiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAg
ICAgICAgICIiIgogICAgICAgICByZXR1cm5zIHRoZSBkcml2ZXJzIGN1cnJlbnQgZGVzaXJlZCBj
YXBhYmlsaXRpZXMgYmVpbmcgdXNlZAogICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYu
Y2FwYWJpbGl0aWVzCisgICAgICAgIHdhcm5pbmdzLndhcm4oImRlc2lyZWRfY2FwYWJpbGl0aWVz
IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBjYWxsIGNhcGFiaWxpdGllcy4iLAorICAgICAgICAgICAg
ICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQorICAgICAgICByZXR1
cm4gc2VsZi5jYXBzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY2FwYWJpbGl0aWVzKHNlbGYp
OgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJucyB0aGUgZHJpdmVycyBjdXJyZW50IGNhcGFi
aWxpdGllcyBiZWluZyB1c2VkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuY2Fw
cwogCiAgICAgZGVmIGdldF9zY3JlZW5zaG90X2FzX2ZpbGUoc2VsZiwgZmlsZW5hbWUpOgogICAg
ICAgICAiIiIKQEAgLTE0MTcsMyArMTQ2OSwxMTAgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJE
cml2ZXIpOgogICAgICAgICAgICAgICAgIGRyaXZlci5nZXRfbG9nKCdzZXJ2ZXInKQogICAgICAg
ICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLkdFVF9MT0csIHsndHlw
ZSc6IGxvZ190eXBlfSlbJ3ZhbHVlJ10KKworICAgIEBhc3luY2NvbnRleHRtYW5hZ2VyCisgICAg
YXN5bmMgZGVmIGFkZF9qc19lcnJvcl9saXN0ZW5lcihzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIExpc3RlbnMgZm9yIEpTIGVycm9ycyBhbmQgd2hlbiB0aGUgY29udGV4dG1hbmFnZXIgZXhp
dHMgY2hlY2sgaWYgdGhlcmUgd2VyZSBKUyBFcnJvcnMKKworICAgICAgICA6VXNhZ2U6CisgICAg
ICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGFzeW5jIHdpdGggZHJpdmVyLmFkZF9qc19l
cnJvcl9saXN0ZW5lcigpIGFzIGVycm9yOgorICAgICAgICAgICAgICAgICAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5LklELCAidGhyb3dpbmctbW91c2VvdmVyIikuY2xpY2soKQorICAgICAgICAg
ICAgICAgIGFzc2VydCBlcnJvciBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgIGFzc2VydCBl
cnJvci5leGNlcHRpb25fZGV0YWlscy5zdGFja190cmFjZS5jYWxsX2ZyYW1lc1swXS5mdW5jdGlv
bl9uYW1lID09ICJvbm1vdXNlb3ZlciIKKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBzeXMu
dmVyc2lvbl9pbmZvID49ICgzLCA3KQorICAgICAgICBnbG9iYWwgY2RwCisgICAgICAgIGFzeW5j
IHdpdGggc2VsZi5fZ2V0X2JpZGlfY29ubmVjdGlvbigpOgorICAgICAgICAgICAgZ2xvYmFsIGRl
dnRvb2xzCisgICAgICAgICAgICBzZXNzaW9uID0gY2RwLmdldF9zZXNzaW9uX2NvbnRleHQoJ3Bh
Z2UuZW5hYmxlJykKKyAgICAgICAgICAgIGF3YWl0IHNlc3Npb24uZXhlY3V0ZShkZXZ0b29scy5w
YWdlLmVuYWJsZSgpKQorICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9jb250
ZXh0KCdydW50aW1lLmVuYWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUo
ZGV2dG9vbHMucnVudGltZS5lbmFibGUoKSkKKyAgICAgICAgICAgIGpzX2V4Y2VwdGlvbiA9IGRl
dnRvb2xzLnJ1bnRpbWUuRXhjZXB0aW9uVGhyb3duKE5vbmUsIE5vbmUpCisgICAgICAgICAgICBh
c3luYyB3aXRoIHNlc3Npb24ud2FpdF9mb3IoZGV2dG9vbHMucnVudGltZS5FeGNlcHRpb25UaHJv
d24pIGFzIGV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICB5aWVsZCBqc19leGNlcHRpb24KKyAg
ICAgICAgICAgIGpzX2V4Y2VwdGlvbi50aW1lc3RhbXAgPSBleGNlcHRpb24udmFsdWUudGltZXN0
YW1wCisgICAgICAgICAgICBqc19leGNlcHRpb24uZXhjZXB0aW9uX2RldGFpbHMgPSBleGNlcHRp
b24udmFsdWUuZXhjZXB0aW9uX2RldGFpbHMKKworICAgIEBhc3luY2NvbnRleHRtYW5hZ2VyCisg
ICAgYXN5bmMgZGVmIGFkZF9saXN0ZW5lcihzZWxmLCBldmVudF90eXBlKToKKyAgICAgICAgJycn
CisgICAgICAgIExpc3RlbnMgZm9yIGNlcnRhaW4gZXZlbnRzIHRoYXQgYXJlIHBhc3NlZCBpbi4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZXZlbnRfdHlwZTogVGhlIHR5cGUgb2YgZXZl
bnQgdGhhdCB3ZSB3YW50IHRvIGxvb2sgYXQuCisKKyAgICAgICAgIDpVc2FnZToKKyAgICAgICAg
ICAgICA6OgorCisgICAgICAgICAgICAgICAgYXN5bmMgd2l0aCBkcml2ZXIuYWRkX2xpc3RlbmVy
KENvbnNvbGUubG9nKSBhcyBtZXNzYWdlczoKKyAgICAgICAgICAgICAgICAgICAgZHJpdmVyLmV4
ZWN1dGVfc2NyaXB0KCJjb25zb2xlLmxvZygnSSBsaWtlIGNoZWVzZScpIikKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgbWVzc2FnZXNbIm1lc3NhZ2UiXSA9PSAiSSBsb3ZlIGNoZWVzZSIKKworICAg
ICAgICAnJycKKyAgICAgICAgYXNzZXJ0IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDcpCisgICAg
ICAgIGdsb2JhbCBjZHAKKyAgICAgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJp
ZGkuY29uc29sZSBpbXBvcnQgQ29uc29sZQorCisgICAgICAgIGFzeW5jIHdpdGggc2VsZi5fZ2V0
X2JpZGlfY29ubmVjdGlvbigpOgorICAgICAgICAgICAgZ2xvYmFsIGRldnRvb2xzCisgICAgICAg
ICAgICBzZXNzaW9uID0gY2RwLmdldF9zZXNzaW9uX2NvbnRleHQoJ3BhZ2UuZW5hYmxlJykKKyAg
ICAgICAgICAgIGF3YWl0IHNlc3Npb24uZXhlY3V0ZShkZXZ0b29scy5wYWdlLmVuYWJsZSgpKQor
ICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9jb250ZXh0KCdjb25zb2xlLmVu
YWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUoZGV2dG9vbHMuY29uc29s
ZS5lbmFibGUoKSkKKyAgICAgICAgICAgIGNvbnNvbGUgPSB7CisgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiBOb25lLAorICAgICAgICAgICAgICAgICJsZXZlbCI6IE5vbmUKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGFzeW5jIHdpdGggc2Vzc2lvbi53YWl0X2ZvcihkZXZ0b29scy5jb25z
b2xlLk1lc3NhZ2VBZGRlZCkgYXMgbWVzc2FnZXM6CisgICAgICAgICAgICAgICAgeWllbGQgY29u
c29sZQorICAgICAgICAgICAgaWYgZXZlbnRfdHlwZSA9PSBDb25zb2xlLkVSUk9SOgorICAgICAg
ICAgICAgICAgIGlmIG1lc3NhZ2VzLnZhbHVlLm1lc3NhZ2UubGV2ZWwgPT0gImVycm9yIjoKKyAg
ICAgICAgICAgICAgICAgICAgY29uc29sZVsibWVzc2FnZSJdID0gbWVzc2FnZXMudmFsdWUubWVz
c2FnZS50ZXh0CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbImxldmVsIl0gPSBtZXNzYWdl
cy52YWx1ZS5tZXNzYWdlLmxldmVsCisgICAgICAgICAgICBlbGlmIGV2ZW50X3R5cGUgPT0gQ29u
c29sZS5BTEw6CisgICAgICAgICAgICAgICAgY29uc29sZVsibWVzc2FnZSJdID0gbWVzc2FnZXMu
dmFsdWUubWVzc2FnZS50ZXh0CisgICAgICAgICAgICAgICAgY29uc29sZVsibGV2ZWwiXSA9IG1l
c3NhZ2VzLnZhbHVlLm1lc3NhZ2UubGV2ZWwKKworICAgIEBhc3luY2NvbnRleHRtYW5hZ2VyCisg
ICAgYXN5bmMgZGVmIF9nZXRfYmlkaV9jb25uZWN0aW9uKHNlbGYpOgorICAgICAgICBnbG9iYWwg
Y2RwCisgICAgICAgIGltcG9ydF9jZHAoKQorICAgICAgICB3c191cmwgPSBOb25lCisgICAgICAg
IGlmIHNlbGYuY2Fwcy5nZXQoInNlOm9wdGlvbnMiKToKKyAgICAgICAgICAgIHdzX3VybCA9IHNl
bGYuY2Fwcy5nZXQoInNlOm9wdGlvbnMiKS5nZXQoImNkcCIpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICB2ZXJzaW9uLCB3c191cmwgPSBzZWxmLl9nZXRfY2RwX2RldGFpbHMoKQorCisgICAg
ICAgIGlmIHdzX3VybCBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVyRXhjZXB0
aW9uKCJVbmFibGUgdG8gZmluZCB1cmwgdG8gY29ubmVjdCB0byBmcm9tIGNhcGFiaWxpdGllcyIp
CisKKyAgICAgICAgY2RwLmltcG9ydF9kZXZ0b29scyh2ZXJzaW9uKQorCisgICAgICAgIGdsb2Jh
bCBkZXZ0b29scworICAgICAgICBkZXZ0b29scyA9IGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlKCJz
ZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmRldnRvb2xzLnZ7fSIuZm9ybWF0KHZlcnNpb24pKQor
ICAgICAgICBhc3luYyB3aXRoIGNkcC5vcGVuX2NkcCh3c191cmwpIGFzIGNvbm46CisgICAgICAg
ICAgICB0YXJnZXRzID0gYXdhaXQgY29ubi5leGVjdXRlKGRldnRvb2xzLnRhcmdldC5nZXRfdGFy
Z2V0cygpKQorICAgICAgICAgICAgdGFyZ2V0X2lkID0gdGFyZ2V0c1swXS50YXJnZXRfaWQKKyAg
ICAgICAgICAgIGFzeW5jIHdpdGggY29ubi5vcGVuX3Nlc3Npb24odGFyZ2V0X2lkKSBhcyBzZXNz
aW9uOgorICAgICAgICAgICAgICAgIHlpZWxkIHNlc3Npb24KKworICAgIGRlZiBfZ2V0X2NkcF9k
ZXRhaWxzKHNlbGYpOgorICAgICAgICBpbXBvcnQganNvbgorICAgICAgICBpbXBvcnQgdXJsbGli
MworCisgICAgICAgIGh0dHAgPSB1cmxsaWIzLlBvb2xNYW5hZ2VyKCkKKyAgICAgICAgZGVidWdn
ZXJfYWRkcmVzcyA9IHNlbGYuY2Fwcy5nZXQoInswfTpjaHJvbWVPcHRpb25zIi5mb3JtYXQoc2Vs
Zi52ZW5kb3JfcHJlZml4KSkuZ2V0KCJkZWJ1Z2dlckFkZHJlc3MiKQorICAgICAgICByZXMgPSBo
dHRwLnJlcXVlc3QoJ0dFVCcsICJodHRwOi8vezB9L2pzb24vdmVyc2lvbiIuZm9ybWF0KGRlYnVn
Z2VyX2FkZHJlc3MpKQorICAgICAgICBkYXRhID0ganNvbi5sb2FkcyhyZXMuZGF0YSkKKworICAg
ICAgICBicm93c2VyX3ZlcnNpb24gPSBkYXRhLmdldCgiQnJvd3NlciIpCisgICAgICAgIHdlYnNv
Y2tldF91cmwgPSBkYXRhLmdldCgid2ViU29ja2V0RGVidWdnZXJVcmwiKQorCisgICAgICAgIGlt
cG9ydCByZQorICAgICAgICB2ZXJzaW9uID0gcmUuc2VhcmNoKHIiLiovKFxkKylcLiIsIGJyb3dz
ZXJfdmVyc2lvbikuZ3JvdXAoMSkKKworICAgICAgICByZXR1cm4gdmVyc2lvbiwgd2Vic29ja2V0
X3VybApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJlbGVtZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJlbGVtZW50LnB5
CmluZGV4IDZmM2ViYmNjM2I1NC4uMDkzZTQyYTViYTEzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVs
ZW1lbnQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJlbGVtZW50LnB5CkBAIC01MzQsOSArNTM0LDE0IEBAIGNs
YXNzIFdlYkVsZW1lbnQoQmFzZVdlYkVsZW1lbnQpOgogICAgICAgICAjIHRyYW5zZmVyIGZpbGUg
dG8gYW5vdGhlciBtYWNoaW5lIG9ubHkgaWYgcmVtb3RlIGRyaXZlciBpcyB1c2VkCiAgICAgICAg
ICMgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGZvciBqYXZhIGJpbmRpbmcKICAgICAgICAgaWYgc2Vs
Zi5wYXJlbnQuX2lzX3JlbW90ZToKLSAgICAgICAgICAgIGxvY2FsX2ZpbGUgPSBzZWxmLnBhcmVu
dC5maWxlX2RldGVjdG9yLmlzX2xvY2FsX2ZpbGUoKnZhbHVlKQotICAgICAgICAgICAgaWYgbG9j
YWxfZmlsZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX3VwbG9h
ZChsb2NhbF9maWxlKQorICAgICAgICAgICAgbG9jYWxfZmlsZXMgPSBsaXN0KG1hcChsYW1iZGEg
a2V5c190b19zZW5kOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBh
cmVudC5maWxlX2RldGVjdG9yLmlzX2xvY2FsX2ZpbGUoa2V5c190b19zZW5kKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJycuam9pbih2YWx1ZSkuc3BsaXQoJ1xuJykpKQor
ICAgICAgICAgICAgaWYgTm9uZSBub3QgaW4gbG9jYWxfZmlsZXM6CisgICAgICAgICAgICAgICAg
cmVtb3RlX2ZpbGVzID0gW10KKyAgICAgICAgICAgICAgICBmb3IgZmlsZSBpbiBsb2NhbF9maWxl
czoKKyAgICAgICAgICAgICAgICAgICAgcmVtb3RlX2ZpbGVzLmFwcGVuZChzZWxmLl91cGxvYWQo
ZmlsZSkpCisgICAgICAgICAgICAgICAgdmFsdWUgPSAnXG4nLmpvaW4ocmVtb3RlX2ZpbGVzKQog
CiAgICAgICAgIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5TRU5EX0tFWVNfVE9fRUxFTUVOVCwKICAg
ICAgICAgICAgICAgICAgICAgICB7J3RleHQnOiAiIi5qb2luKGtleXNfdG9fdHlwaW5nKHZhbHVl
KSksCkBAIC03MDQsOCArNzA5LDcgQEAgY2xhc3MgV2ViRWxlbWVudChCYXNlV2ViRWxlbWVudCk6
CiAKICAgICBkZWYgZmluZF9lbGVtZW50KHNlbGYsIGJ5PUJ5LklELCB2YWx1ZT1Ob25lKToKICAg
ICAgICAgIiIiCi0gICAgICAgIEZpbmQgYW4gZWxlbWVudCBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFu
ZCBsb2NhdG9yLiBQcmVmZXIgdGhlIGZpbmRfZWxlbWVudF9ieV8qIG1ldGhvZHMgd2hlbgotICAg
ICAgICBwb3NzaWJsZS4KKyAgICAgICAgRmluZCBhbiBlbGVtZW50IGdpdmVuIGEgQnkgc3RyYXRl
Z3kgYW5kIGxvY2F0b3IuCiAKICAgICAgICAgOlVzYWdlOgogICAgICAgICAgICAgOjoKQEAgLTcz
Miw4ICs3MzYsNyBAQCBjbGFzcyBXZWJFbGVtZW50KEJhc2VXZWJFbGVtZW50KToKIAogICAgIGRl
ZiBmaW5kX2VsZW1lbnRzKHNlbGYsIGJ5PUJ5LklELCB2YWx1ZT1Ob25lKToKICAgICAgICAgIiIi
Ci0gICAgICAgIEZpbmQgZWxlbWVudHMgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4g
UHJlZmVyIHRoZSBmaW5kX2VsZW1lbnRzX2J5XyogbWV0aG9kcyB3aGVuCi0gICAgICAgIHBvc3Np
YmxlLgorICAgICAgICBGaW5kIGVsZW1lbnRzIGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0
b3IuCiAKICAgICAgICAgOlVzYWdlOgogICAgICAgICAgICAgOjoKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkv
cmVtb3RlX2Nvbm5lY3Rpb24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5CmluZGV4IDIy
YzYyM2U2MTBhZi4uZDY5MjQyODk5OGY1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0
aW9uLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9zYWZhcmkvcmVtb3RlX2Nvbm5lY3Rpb24ucHkKQEAgLTIzLDggKzIzLDggQEAg
Y2xhc3MgU2FmYXJpUmVtb3RlQ29ubmVjdGlvbihSZW1vdGVDb25uZWN0aW9uKToKIAogICAgIGJy
b3dzZXJfbmFtZSA9IERlc2lyZWRDYXBhYmlsaXRpZXMuU0FGQVJJWydicm93c2VyTmFtZSddCiAK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVtb3RlX3NlcnZlcl9hZGRyLCBrZWVwX2FsaXZlPVRy
dWUpOgotICAgICAgICBSZW1vdGVDb25uZWN0aW9uLl9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2
ZXJfYWRkciwga2VlcF9hbGl2ZSkKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVtb3RlX3NlcnZl
cl9hZGRyLCBrZWVwX2FsaXZlPVRydWUsIGlnbm9yZV9wcm94eT1GYWxzZSk6CisgICAgICAgIFJl
bW90ZUNvbm5lY3Rpb24uX19pbml0X18oc2VsZiwgcmVtb3RlX3NlcnZlcl9hZGRyLCBrZWVwX2Fs
aXZlLCBpZ25vcmVfcHJveHk9aWdub3JlX3Byb3h5KQogCiAgICAgICAgIHNlbGYuX2NvbW1hbmRz
WyJHRVRfUEVSTUlTU0lPTlMiXSA9ICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBwbGUv
cGVybWlzc2lvbnMnKQogICAgICAgICBzZWxmLl9jb21tYW5kc1siU0VUX1BFUk1JU1NJT05TIl0g
PSAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9hcHBsZS9wZXJtaXNzaW9ucycpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vYXBpX2V4YW1wbGVfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBpX2V4
YW1wbGVfdGVzdHMucHkKaW5kZXggMzk3NDkyNTQ5YzJkLi4yZTdhMDZiNGVmZTggMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9hcGlfZXhhbXBsZV90ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBpX2V4
YW1wbGVfdGVzdHMucHkKQEAgLTEsMjAgKzEsMyBAQAotIyBMaWNlbnNlZCB0byB0aGUgU29mdHdh
cmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKLSMgb3IgbW9yZSBjb250cmli
dXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCi0jIGRpc3RyaWJ1
dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCi0jIHJlZ2FyZGlu
ZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKLSMgdG8g
eW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotIyAiTGljZW5z
ZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCi0jIHdp
dGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
LSMKLSMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMg
VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n
LAotIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbgotIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkKLSMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlCi0jIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQgbGltaXRhdGlvbnMKLSMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KICMgQ29weXJpZ2h0IDIwMDgt
MjAwOSBXZWJEcml2ZXIgY29tbWl0dGVycwogIyBDb3B5cmlnaHQgMjAwOC0yMDA5IEdvb2dsZSBJ
bmMuCiAjCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xsaW5nX3Rlc3RzLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190ZXN0cy5weQppbmRleCBjYTBkMDgwMGEzMmMuLjRj
OTFjMjI3ZjBkYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190ZXN0cy5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xsaW5nX3Rlc3RzLnB5CkBAIC0xNzgsMTQgKzE3
OCwxNCBAQCBkZWYgZ2V0U2Nyb2xsVG9wKGRyaXZlcik6CiAgICAgcmV0dXJuIGRyaXZlci5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIikKIAogCi1AcHl0ZXN0
Lm1hcmsueGZhaWxfZmlyZWZveCgKLSAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViZHJpdmVyL2lzc3Vlcy80MDgnKQotQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZSgKLSAgICBy
ZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lzc3Vlcy80MDgnKQotQHB5
dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrRWxlbWVu
dEluQVRhbGxGcmFtZShkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJzY3JvbGxpbmdf
dGVzdHMvcGFnZV93aXRoX3RhbGxfZnJhbWUuaHRtbCIpCi0gICAgZHJpdmVyLnN3aXRjaF90by5m
cmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJ0YWxsX2ZyYW1lIikpCi0gICAgZWxl
bWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgImNoZWNrYm94IikKLSAgICBlbGVt
ZW50LmNsaWNrKCkKLSAgICBhc3NlcnQgZWxlbWVudC5pc19zZWxlY3RlZCgpCisjIEBweXRlc3Qu
bWFyay54ZmFpbF9maXJlZm94KAorIyAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYmRyaXZlci9pc3N1ZXMvNDA4JykKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZSgKKyMg
ICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcp
CisjIEBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb0Ns
aWNrRWxlbWVudEluQVRhbGxGcmFtZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQo
InNjcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfdGFsbF9mcmFtZS5odG1sIikKKyMgICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAidGFsbF9mcmFt
ZSIpKQorIyAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgImNoZWNr
Ym94IikKKyMgICAgIGVsZW1lbnQuY2xpY2soKQorIyAgICAgYXNzZXJ0IGVsZW1lbnQuaXNfc2Vs
ZWN0ZWQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2ZpbmRpbmdfdGVz
dHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vZHJpdmVyX2VsZW1lbnRfZmluZGluZ190ZXN0cy5weQppbmRleCBk
NmU3ODQyODA1NzMuLjliODAxZGMzMGQ3YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9l
bGVtZW50X2ZpbmRpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2Zp
bmRpbmdfdGVzdHMucHkKQEAgLTMzNSwxNiArMzM1LDE2IEBAIGRlZiB0ZXN0X0ZpbmRpbmdfQUxp
bmtfQnlfWHBhdGhfVXNpbmdfQ29udGFpbnNfS2V5d29yZF9TaG91bGRfV29yayhkcml2ZXIsIHBh
Z2VzCiAgICAgYXNzZXJ0ICJoZWxsbyB3b3JsZCIgaW4gZWxlbWVudC50ZXh0CiAKIAotQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9tZShyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQotQHB5
dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZShyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0
aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPUludmFsaWRTZWxlY3RvckV4
Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPUludmFsaWRTZWxlY3Rv
ckV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkocmFpc2VzPU5vU3VjaEVsZW1l
bnRFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfd2Via2l0Z3RrKHJhaXNlcz1JbnZhbGlk
U2VsZWN0b3JFeGNlcHRpb24pCi1kZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0VsZW1l
bnRfQnlfWFBhdGhfV2l0aF9OYW1lc3BhY2UoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9h
ZCgic3ZnUGFnZS5odG1sIikKLSAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5Y
UEFUSCwgIi8vc3ZnOnN2Zy8vc3ZnOnRleHQiKQotICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0g
IlRlc3QgQ2hhcnQiCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPUludmFsaWRT
ZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZShyYWlz
ZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZv
eChyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
cmVtb3RlKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54
ZmFpbF9zYWZhcmkocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCisjIEBweXRlc3QubWFy
ay54ZmFpbF93ZWJraXRndGsocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgZGVm
IHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9FbGVtZW50X0J5X1hQYXRoX1dpdGhfTmFtZXNw
YWNlKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgic3ZnUGFnZS5odG1sIikKKyMg
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAiLy9zdmc6c3ZnLy9z
dmc6dGV4dCIpCisjICAgICBhc3NlcnQgZWxlbWVudC50ZXh0ID09ICJUZXN0IENoYXJ0IgogCiAK
IGRlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfRWxlbWVudF9CeV9YUGF0aF9Jbl9YbWxf
RG9jdW1lbnQoZHJpdmVyLCBwYWdlcyk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZnJhbWVfc3dp
dGNoaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5weQppbmRl
eCA4YTc1OWI2MDBiOTguLjE4YjM0NjU3NTgxNiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1l
X3N3aXRjaGluZ190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZnJhbWVfc3dpdGNoaW5nX3Rlc3Rz
LnB5CkBAIC0zNjgsMjMgKzM2OCwyMyBAQCBkZWYgdGVzdFNob3VsZEJlQWJsZVRvU3dpdGNoVG9U
aGVUb3BJZlRoZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXNXaXRoV2ViZWxlbWVudAogICAgIFdl
YkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xvY2F0
ZWQoKEJ5LklELCAic3VjY2VzcyIpKSkKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJh
aXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVt
ZWRnZShyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9m
aXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vl
cy82MTQnKQotQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNv
bS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82MTQnKQotQHB5dGVzdC5tYXJrLnhmYWlsX3dl
YmtpdGd0ayhyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFp
bF9zYWZhcmkKLWRlZiB0ZXN0U2hvdWxkTm90QmVBYmxlVG9Eb0FueXRoaW5nVGhlRnJhbWVJc0Rl
bGV0ZWRGcm9tVW5kZXJVcyhkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJmcmFtZV9z
d2l0Y2hpbmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1sIikKLSAgICBkcml2ZXIuc3dpdGNoX3Rv
LmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJpZnJhbWUxIikpCi0KLSAgICBraWxs
SWZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImtpbGxJZnJhbWUiKQotICAgIGtp
bGxJZnJhbWUuY2xpY2soKQotCi0gICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEZyYW1lRXhj
ZXB0aW9uKToKLSAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImtpbGxJZnJhbWUi
KS5jbGljaygpCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPU5vU3VjaEVsZW1l
bnRFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2VzPU5v
U3VjaEVsZW1lbnRFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNl
cz1XZWJEcml2ZXJFeGNlcHRpb24sCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNv
bj0naHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIvaXNzdWVzLzYxNCcpCisj
IEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyMg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3pp
bGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82MTQnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfd2Via2l0
Z3RrKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
c2FmYXJpCisjIGRlZiB0ZXN0U2hvdWxkTm90QmVBYmxlVG9Eb0FueXRoaW5nVGhlRnJhbWVJc0Rl
bGV0ZWRGcm9tVW5kZXJVcyhkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoImZyYW1l
X3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lLmh0bWwiKQorIyAgICAgZHJpdmVyLnN3aXRj
aF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIpKQorCisjICAg
ICBraWxsSWZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImtpbGxJZnJhbWUiKQor
IyAgICAga2lsbElmcmFtZS5jbGljaygpCisKKyMgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hGcmFtZUV4Y2VwdGlvbik6CisjICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwg
ImtpbGxJZnJhbWUiKS5jbGljaygpCiAKIAogZGVmIHRlc3RTaG91bGRSZXR1cm5XaW5kb3dUaXRs
ZUluQUZyYW1lc2V0KGRyaXZlciwgcGFnZXMpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2Vf
bG9hZGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVzdHMucHkKaW5kZXgg
MTQxMWVlNTlkYTFiLi45YmM3YTViNTBlY2QgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xv
YWRpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZGluZ190ZXN0cy5weQpAQCAt
MTUsMTIgKzE1LDEyIEBACiAjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQgbGltaXRhdGlvbnMKICMgdW5kZXIgdGhlIExpY2Vuc2UuCiAKLWltcG9ydCBweXRlc3QK
LQotZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0
aW9uCi1mcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Ci1mcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQgaW1wb3J0IFdlYkRyaXZlcldhaXQKLWZyb20g
c2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMg
RUMKKyMgaW1wb3J0IHB5dGVzdAorIworIyBmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25z
IGltcG9ydCBXZWJEcml2ZXJFeGNlcHRpb24KKyMgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29t
bW9uLmJ5IGltcG9ydCBCeQorIyBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQg
aW1wb3J0IFdlYkRyaXZlcldhaXQKKyMgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBp
bXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBhcyBFQwogCiAKIGRlZiB0ZXN0U2hvdWxkV2FpdEZv
ckRvY3VtZW50VG9CZUxvYWRlZChkcml2ZXIsIHBhZ2VzKToKQEAgLTQwLDI1ICs0MCwyNSBAQCBk
ZWYgdGVzdFNob3VsZFdhaXRGb3JEb2N1bWVudFRvQmVMb2FkZWQoZHJpdmVyLCBwYWdlcyk6CiAj
ICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIEFycml2ZSBIZXJlIgogCiAKLWRlZiB0ZXN0
U2hvdWxkQmVBYmxlVG9HZXRBRnJhZ21lbnRPblRoZUN1cnJlbnRQYWdlKGRyaXZlciwgcGFnZXMp
OgotICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKLSAgICBsb2NhdGlvbiA9IGRyaXZl
ci5jdXJyZW50X3VybAotICAgIGRyaXZlci5nZXQobG9jYXRpb24gKyAiI3RleHQiKQotICAgIGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpZDEiKQorIyBkZWYgdGVzdFNob3Vs
ZEJlQWJsZVRvR2V0QUZyYWdtZW50T25UaGVDdXJyZW50UGFnZShkcml2ZXIsIHBhZ2VzKToKKyMg
ICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyMgICAgIGxvY2F0aW9uID0gZHJpdmVy
LmN1cnJlbnRfdXJsCisjICAgICBkcml2ZXIuZ2V0KGxvY2F0aW9uICsgIiN0ZXh0IikKKyMgICAg
IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpZDEiKQogCiAKLUBweXRlc3Qu
bWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1AcHl0ZXN0Lm1h
cmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1kZWYgdGVzdFNob3Vs
ZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90UmVzb2x2ZShkcml2ZXIpOgotICAgICMg
IE9mIGNvdXJzZSwgd2UncmUgdXAgdGhlIGNyZWVrIGlmIHRoaXMgZXZlciBkb2VzIGdldCByZWdp
c3RlcmVkCi0gICAgZHJpdmVyLmdldCgiaHR0cDovL3d3dy50aGlzdXJsZG9lc25vdGV4aXN0LmNv
bXgvIikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2Vw
dGlvbikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0
aW9uKQorIyBkZWYgdGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90UmVz
b2x2ZShkcml2ZXIpOgorIyAgICAgIyAgT2YgY291cnNlLCB3ZSdyZSB1cCB0aGUgY3JlZWsgaWYg
dGhpcyBldmVyIGRvZXMgZ2V0IHJlZ2lzdGVyZWQKKyMgICAgIGRyaXZlci5nZXQoImh0dHA6Ly93
d3cudGhpc3VybGRvZXNub3RleGlzdC5jb214LyIpCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2Zp
cmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9yZW1v
dGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKLWRlZiB0ZXN0U2hvdWxkUmV0dXJuV2hlbkdl
dHRpbmdBVXJsVGhhdERvZXNOb3RDb25uZWN0KGRyaXZlcik6Ci0gICAgIyAgSGVyZSdzIGhvcGlu
ZyB0aGF0IHRoZXJlJ3Mgbm90aGluZyBoZXJlLiBUaGVyZSBzaG91bGRuJ3QgYmUKLSAgICBkcml2
ZXIuZ2V0KCJodHRwOi8vbG9jYWxob3N0OjMwMDEiKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmly
ZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVt
b3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCisjIGRlZiB0ZXN0U2hvdWxkUmV0dXJuV2hl
bkdldHRpbmdBVXJsVGhhdERvZXNOb3RDb25uZWN0KGRyaXZlcik6CisjICAgICAjICBIZXJlJ3Mg
aG9waW5nIHRoYXQgdGhlcmUncyBub3RoaW5nIGhlcmUuIFRoZXJlIHNob3VsZG4ndCBiZQorIyAg
ICAgZHJpdmVyLmdldCgiaHR0cDovL2xvY2FsaG9zdDozMDAxIikKIAogIyBkZWYgdGVzdFNob3Vs
ZEJlQWJsZVRvTG9hZEFQYWdlV2l0aEZyYW1lc2V0c0FuZFdhaXRVbnRpbEFsbEZyYW1lc0FyZUxv
YWRlZCgpIHsKICMgICAgIGRyaXZlci5nZXQocGFnZXMuZnJhbWVzZXRQYWdlKQpAQCAtODEsNTUg
KzgxLDU1IEBAIGRlZiB0ZXN0U2hvdWxkUmV0dXJuV2hlbkdldHRpbmdBVXJsVGhhdERvZXNOb3RD
b25uZWN0KGRyaXZlcik6CiAjICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci50aXRsZSwgYW55
T2YoZXF1YWxUbyhvcmlnaW5hbFRpdGxlKSwgZXF1YWxUbygiV2UgTGVhdmUgRnJvbSBIZXJlIikp
KTsKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNob3VsZEJlQWJsZVRv
TmF2aWdhdGVCYWNrSW5UaGVCcm93c2VySGlzdG9yeShkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdl
cy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBk
ZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdhdGVCYWNrSW5UaGVCcm93c2VySGlzdG9yeShkcml2
ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQogCi0gICAgZHJp
dmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkK
LSAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2
ZSBIZXJlIikpCisjICAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaW1h
Z2VCdXR0b24iKS5zdWJtaXQoKQorIyAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGls
KEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQogCi0gICAgZHJpdmVyLmJhY2soKQotICAg
IGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIExlYXZlIEZyb20gSGVyZSIKKyMgICAgIGRyaXZl
ci5iYWNrKCkKKyMgICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIExlYXZlIEZyb20gSGVy
ZSIKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNob3VsZEJlQWJsZVRv
TmF2aWdhdGVCYWNrSW5UaGVCcm93c2VySGlzdG9yeUluUHJlc2VuY2VPZklmcmFtZXMoZHJpdmVy
LCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorIyBAcHl0ZXN0Lm1h
cmsueGZhaWxfc2FmYXJpCisjIGRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9OYXZpZ2F0ZUJhY2tJblRo
ZUJyb3dzZXJIaXN0b3J5SW5QcmVzZW5jZU9mSWZyYW1lcyhkcml2ZXIsIHBhZ2VzKToKKyMgICAg
IHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKIAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQo
Ynk9QnkuTkFNRSwgdmFsdWU9InNhbWVXaW5kb3ciKS5jbGljaygpCisjICAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50KGJ5PUJ5Lk5BTUUsIHZhbHVlPSJzYW1lV2luZG93IikuY2xpY2soKQogCi0gICAg
YXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiVGhpcyBwYWdlIGhhcyBpZnJhbWVzIgorIyAgICAgYXNz
ZXJ0IGRyaXZlci50aXRsZSA9PSAiVGhpcyBwYWdlIGhhcyBpZnJhbWVzIgogCi0gICAgZHJpdmVy
LmJhY2soKQotICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlhIVE1MIFRlc3QgUGFnZSIKKyMg
ICAgIGRyaXZlci5iYWNrKCkKKyMgICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlhIVE1MIFRl
c3QgUGFnZSIKIAogCi1kZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdhdGVGb3J3YXJkc0luVGhl
QnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgiZm9ybVBhZ2Uu
aHRtbCIpCisjIGRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9OYXZpZ2F0ZUZvcndhcmRzSW5UaGVCcm93
c2VySGlzdG9yeShkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0
bWwiKQogCi0gICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0
dG9uIikuc3VibWl0KCkKLSAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMudGl0
bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisjICAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5
LklELCB2YWx1ZT0iaW1hZ2VCdXR0b24iKS5zdWJtaXQoKQorIyAgICAgV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQogCi0gICAgZHJp
dmVyLmJhY2soKQotICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIExlYXZlIEZyb20gSGVy
ZSIKKyMgICAgIGRyaXZlci5iYWNrKCkKKyMgICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldl
IExlYXZlIEZyb20gSGVyZSIKIAotICAgIGRyaXZlci5mb3J3YXJkKCkKLSAgICBhc3NlcnQgZHJp
dmVyLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIKKyMgICAgIGRyaXZlci5mb3J3YXJkKCkKKyMg
ICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIEFycml2ZSBIZXJlIgogCiAKLUBweXRlc3Qu
bWFyay54ZmFpbF9pZQotQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocnVuPUZhbHNlKQotQHB5
dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShydW49RmFsc2UpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hy
b21lKHJ1bj1GYWxzZSkKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocnVuPUZhbHNl
KQotZGVmIHRlc3RTaG91bGROb3RIYW5naWZEb2N1bWVudE9wZW5DYWxsSXNOZXZlckZvbGxvd2Vk
QnlEb2N1bWVudENsb3NlQ2FsbChkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJkb2N1
bWVudF93cml0ZV9pbl9vbmxvYWQuaHRtbCIpCi0gICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5Y
UEFUSCwgIi8vYm9keSIpCisjIEBweXRlc3QubWFyay54ZmFpbF9pZQorIyBAcHl0ZXN0Lm1hcmsu
eGZhaWxfZmlyZWZveChydW49RmFsc2UpCisjIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocnVu
PUZhbHNlKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJ1bj1GYWxzZSkKKyMgQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZShydW49RmFsc2UpCisjIGRlZiB0ZXN0U2hvdWxkTm90
SGFuZ2lmRG9jdW1lbnRPcGVuQ2FsbElzTmV2ZXJGb2xsb3dlZEJ5RG9jdW1lbnRDbG9zZUNhbGwo
ZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJkb2N1bWVudF93cml0ZV9pbl9vbmxv
YWQuaHRtbCIpCisjICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAiLy9ib2R5IikK
IAogCi1kZWYgdGVzdFNob3VsZEJlQWJsZVRvUmVmcmVzaEFQYWdlKGRyaXZlciwgcGFnZXMpOgot
ICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVU
b1JlZnJlc2hBUGFnZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoInhodG1sVGVz
dC5odG1sIikKIAotICAgIGRyaXZlci5yZWZyZXNoKCkKKyMgICAgIGRyaXZlci5yZWZyZXNoKCkK
IAotICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlhIVE1MIFRlc3QgUGFnZSIKKyMgICAgIGFz
c2VydCBkcml2ZXIudGl0bGUgPT0gIlhIVE1MIFRlc3QgUGFnZSIKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9zY3JpcHRfcGlubmluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zY3JpcHRfcGlubmluZ190
ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVlZjljZTNh
N2Y1ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zY3JpcHRfcGlubmluZ190ZXN0cy5w
eQpAQCAtMCwwICsxLDY5IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENv
bnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2Ug
YWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlz
IHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBv
d25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5z
ZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWly
ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJl
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJB
UyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBL
SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUK
KyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9u
cworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVt
LmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBKYXZhc2NyaXB0RXhjZXB0aW9uCisKKworZGVmIHRl
c3Rfc2hvdWxkX2FsbG93X3NjcmlwdF9waW5uaW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnBpbm5lZF9zY3JpcHRzID0ge30K
KyAgICBzY3JpcHRfa2V5ID0gZHJpdmVyLnBpbl9zY3JpcHQoInJldHVybiAnaSBsaWtlIGNoZWVz
ZSc7IikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdChzY3JpcHRfa2V5KQor
CisgICAgYXNzZXJ0IHJlc3VsdCA9PSAnaSBsaWtlIGNoZWVzZScKKworCitkZWYgdGVzdF9zaG91
bGRfYWxsb3dfcGlubmVkX3NjcmlwdHNfdG9fdGFrZV9hcmd1bWVudHMoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBkcml2ZXIucGlubmVkX3Nj
cmlwdHMgPSB7fQorICAgIGhlbGxvID0gZHJpdmVyLnBpbl9zY3JpcHQoInJldHVybiBhcmd1bWVu
dHNbMF0iKQorCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KGhlbGxvLCAiY2hl
ZXNlIikKKworICAgIGFzc2VydCByZXN1bHQgPT0gImNoZWVzZSIKKworCitkZWYgdGVzdF9zaG91
bGRfbGlzdF9hbGxfcGlubmVkX3NjcmlwdHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBkcml2ZXIucGlubmVkX3NjcmlwdHMgPSB7fQorICAg
IGV4cGVjdGVkID0gW10KKyAgICBleHBlY3RlZC5hcHBlbmQoZHJpdmVyLnBpbl9zY3JpcHQoInJl
dHVybiBhcmd1bWVudHNbMF07IikuaWQpCisgICAgZXhwZWN0ZWQuYXBwZW5kKGRyaXZlci5waW5f
c2NyaXB0KCJyZXR1cm4gJ2NoZWVzZSc7IikuaWQpCisgICAgZXhwZWN0ZWQuYXBwZW5kKGRyaXZl
ci5waW5fc2NyaXB0KCJyZXR1cm4gNDI7IikuaWQpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZ2V0
X3Bpbm5lZF9zY3JpcHRzKCkKKyAgICBhc3NlcnQgZXhwZWN0ZWQgPT0gcmVzdWx0CisKKworZGVm
IHRlc3Rfc2hvdWxkX2FsbG93X3NjcmlwdHNfdG9fYmVfdW5waW5uZWQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBkcml2ZXIucGlubmVkX3Nj
cmlwdHMgPSB7fQorICAgIGNoZWVzZSA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gJ2NoZWVz
ZSc7IikKKyAgICBkcml2ZXIudW5waW4oY2hlZXNlKQorICAgIHJlc3VsdHMgPSBkcml2ZXIuZ2V0
X3Bpbm5lZF9zY3JpcHRzKCkKKyAgICBhc3NlcnQgY2hlZXNlIG5vdCBpbiByZXN1bHRzCisKKwor
ZGVmIHRlc3RfY2FsbGluZ191bnBpbm5lZF9zY3JpcHRfY2F1c2VzX2Vycm9yKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgY2hlZXNlID0gZHJp
dmVyLnBpbl9zY3JpcHQoInJldHVybiAnYnJpZSc7IikKKyAgICBkcml2ZXIudW5waW4oY2hlZXNl
KQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhKYXZhc2NyaXB0RXhjZXB0aW9uKToKKyAgICAgICAg
ZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KGNoZWVzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZWxl
Y3RfY2xhc3NfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2NsYXNzX3Rlc3RzLnB5CmluZGV4
IDUyYjdkOWI5OGUxYy4uMzE1MjZhZDQyY2QyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0
X2NsYXNzX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZWxlY3RfY2xhc3NfdGVzdHMucHkKQEAg
LTkxLDIwICs5MSwyMCBAQCBkZWYgdGVzdFNlbGVjdEJ5VmlzaWJsZVRleHRTaW5nbGUoZHJpdmVy
LCBwYWdlcyk6CiAgICAgICAgICAgICBhc3NlcnQgc2VsLmZpcnN0X3NlbGVjdGVkX29wdGlvbi50
ZXh0ID09IHNlbGVjdFsndmFsdWVzJ11beF0KIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21l
KAotICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9p
c3N1ZXMvZGV0YWlsP2lkPTgyMicpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKAot
ICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1
ZXMvZGV0YWlsP2lkPTgyMicpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNl
bGVjdEJ5VmlzaWJsZVRleHRTaG91bGROb3JtYWxpemVTcGFjZXMoZHJpdmVyLCBwYWdlcyk6Ci0g
ICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCi0KLSAgICBmb3Igc2VsZWN0IGluIFtzaW5n
bGVTZWxlY3RWYWx1ZXNXaXRoU3BhY2VzXToKLSAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKQotICAgICAgICBmb3IgeCBpbiBy
YW5nZShsZW4oc2VsZWN0Wyd2YWx1ZXMnXSkpOgotICAgICAgICAgICAgcHJpbnQoc2VsZWN0Wyd2
YWx1ZXMnXVt4XSkKLSAgICAgICAgICAgIHNlbC5zZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVj
dFsndmFsdWVzJ11beF0pCi0gICAgICAgICAgICBhc3NlcnQgc2VsLmZpcnN0X3NlbGVjdGVkX29w
dGlvbi50ZXh0ID09IHNlbGVjdFsndmFsdWVzJ11beF0KKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2No
cm9tZSgKKyMgICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRy
aXZlci9pc3N1ZXMvZGV0YWlsP2lkPTgyMicpCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1
bWVkZ2UoCisjICAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVk
cml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJp
CisjIGRlZiB0ZXN0U2VsZWN0QnlWaXNpYmxlVGV4dFNob3VsZE5vcm1hbGl6ZVNwYWNlcyhkcml2
ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorCisjICAgICBm
b3Igc2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXNXaXRoU3BhY2VzXToKKyMgICAgICAgICBz
ZWwgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkp
CisjICAgICAgICAgZm9yIHggaW4gcmFuZ2UobGVuKHNlbGVjdFsndmFsdWVzJ10pKToKKyMgICAg
ICAgICAgICAgcHJpbnQoc2VsZWN0Wyd2YWx1ZXMnXVt4XSkKKyMgICAgICAgICAgICAgc2VsLnNl
bGVjdF9ieV92aXNpYmxlX3RleHQoc2VsZWN0Wyd2YWx1ZXMnXVt4XSkKKyMgICAgICAgICAgICAg
YXNzZXJ0IHNlbC5maXJzdF9zZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcydd
W3hdCiAKIAogQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmVhc29uPSdodHRwczovL2J1Z3pp
bGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5NDAzJykKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi93aW5kb3dfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5CmluZGV4
IDg1ZWIyNDdiMjk4Ni4uOTg1MDliMTQxNTI1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93
X3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3dfdGVzdHMucHkKQEAgLTE0LDMwICsxNCwz
MCBAQAogIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKICMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucwogIyB1bmRlciB0aGUgTGljZW5zZS4KLWltcG9ydCBvcworCiBpbXBvcnQgcHl0
ZXN0CiAKIGZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4
Y2VwdGlvbgogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJE
cml2ZXJXYWl0CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2llCi1AcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21pdW1lZGdlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKLUBweXRlc3QubWFyay54ZmFp
bF9maXJlZm94KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKLUBweXRlc3QubWFyay54ZmFpbF9y
ZW1vdGUocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQotZGVmIHRlc3RTaG91bGRNYXhpbWl6ZVRo
ZVdpbmRvdyhkcml2ZXIpOgotICAgIHJlc2l6ZV90aW1lb3V0ID0gNQotICAgIHdhaXQgPSBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgcmVzaXplX3RpbWVvdXQpCi0gICAgb2xkX3NpemUgPSBkcml2ZXIu
Z2V0X3dpbmRvd19zaXplKCkKLSAgICBkcml2ZXIuc2V0X3dpbmRvd19zaXplKDIwMCwgMjAwKQot
ICAgIHdhaXQudW50aWwoCi0gICAgICAgIGxhbWJkYSBkcjogZHIuZ2V0X3dpbmRvd19zaXplKCkg
IT0gb2xkX3NpemUgaWYgb2xkX3NpemVbIndpZHRoIl0gIT0gMjAwIGFuZCBvbGRfc2l6ZVsiaGVp
Z2h0Il0gIT0gMjAwIGVsc2UgVHJ1ZSkKLSAgICBzaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6
ZSgpCi0gICAgZHJpdmVyLm1heGltaXplX3dpbmRvdygpCi0gICAgd2FpdC51bnRpbChsYW1iZGEg
ZHI6IGRyLmdldF93aW5kb3dfc2l6ZSgpICE9IHNpemUpCi0gICAgbmV3X3NpemUgPSBkcml2ZXIu
Z2V0X3dpbmRvd19zaXplKCkKLSAgICBhc3NlcnQgbmV3X3NpemVbIndpZHRoIl0gPiBzaXplWyJ3
aWR0aCJdCi0gICAgYXNzZXJ0IG5ld19zaXplWyJoZWlnaHQiXSA+IHNpemVbImhlaWdodCJdCisj
IEBweXRlc3QubWFyay54ZmFpbF9pZQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdl
KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3go
cmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJl
YXNvbj0iRmFpbHMgb24gVHJhdmlzIikKKyMgZGVmIHRlc3RTaG91bGRNYXhpbWl6ZVRoZVdpbmRv
dyhkcml2ZXIpOgorIyAgICAgcmVzaXplX3RpbWVvdXQgPSA1CisjICAgICB3YWl0ID0gV2ViRHJp
dmVyV2FpdChkcml2ZXIsIHJlc2l6ZV90aW1lb3V0KQorIyAgICAgb2xkX3NpemUgPSBkcml2ZXIu
Z2V0X3dpbmRvd19zaXplKCkKKyMgICAgIGRyaXZlci5zZXRfd2luZG93X3NpemUoMjAwLCAyMDAp
CisjICAgICB3YWl0LnVudGlsKAorIyAgICAgICAgIGxhbWJkYSBkcjogZHIuZ2V0X3dpbmRvd19z
aXplKCkgIT0gb2xkX3NpemUgaWYgb2xkX3NpemVbIndpZHRoIl0gIT0gMjAwIGFuZCBvbGRfc2l6
ZVsiaGVpZ2h0Il0gIT0gMjAwIGVsc2UgVHJ1ZSkKKyMgICAgIHNpemUgPSBkcml2ZXIuZ2V0X3dp
bmRvd19zaXplKCkKKyMgICAgIGRyaXZlci5tYXhpbWl6ZV93aW5kb3coKQorIyAgICAgd2FpdC51
bnRpbChsYW1iZGEgZHI6IGRyLmdldF93aW5kb3dfc2l6ZSgpICE9IHNpemUpCisjICAgICBuZXdf
c2l6ZSA9IGRyaXZlci5nZXRfd2luZG93X3NpemUoKQorIyAgICAgYXNzZXJ0IG5ld19zaXplWyJ3
aWR0aCJdID4gc2l6ZVsid2lkdGgiXQorIyAgICAgYXNzZXJ0IG5ld19zaXplWyJoZWlnaHQiXSA+
IHNpemVbImhlaWdodCJdCiAKIAogZGVmIHRlc3Rfc2hvdWxkX2dldF90aGVfc2l6ZV9vZl90aGVf
Y3VycmVudF93aW5kb3coZHJpdmVyKToKQEAgLTExMiwzNyArMTEyLDM3IEBAIGRlZiB0ZXN0X3No
b3VsZF9zZXRfdGhlX3JlY3Rfb2ZfdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CiAgICAgYXNz
ZXJ0IG5ld19yZWN0LmdldCgnaGVpZ2h0JykgPT0gdGFyZ2V0X2hlaWdodAogCiAKLUBweXRlc3Qu
bWFyay54ZmFpbF9zYWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgbm90IGltcGxlbWVudGVk
JykKLUBweXRlc3QubWFyay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0cnVl
JywKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgY2F1c2Vz
IFRyYXZpcyB0byBoYW5nJykKLUBweXRlc3QubWFyay5ub19kcml2ZXJfYWZ0ZXJfdGVzdAotZGVm
IHRlc3Rfc2hvdWxkX2Z1bGxzY3JlZW5fdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6Ci0gICAg
c3RhcnRfd2lkdGggPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJX
aWR0aDsnKQotICAgIHN0YXJ0X2hlaWdodCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJu
IHdpbmRvdy5pbm5lckhlaWdodDsnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNl
cz1XZWJEcml2ZXJFeGNlcHRpb24sCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSdGdWxsc2NyZWVuIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKKyMgQHB5dGVzdC5tYXJrLnNr
aXBpZihvcy5lbnZpcm9uLmdldCgnVFJBVklTJykgPT0gJ3RydWUnLAorIyAgICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycp
CisjIEBweXRlc3QubWFyay5ub19kcml2ZXJfYWZ0ZXJfdGVzdAorIyBkZWYgdGVzdF9zaG91bGRf
ZnVsbHNjcmVlbl90aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToKKyMgICAgIHN0YXJ0X3dpZHRo
ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykKKyMg
ICAgIHN0YXJ0X2hlaWdodCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5p
bm5lckhlaWdodDsnKQogCi0gICAgZHJpdmVyLmZ1bGxzY3JlZW5fd2luZG93KCkKKyMgICAgIGRy
aXZlci5mdWxsc2NyZWVuX3dpbmRvdygpCiAKLSAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMilc
Ci0gICAgICAgIC51bnRpbChsYW1iZGEgZDogZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4g
d2luZG93LmlubmVyV2lkdGg7JykgPiBzdGFydF93aWR0aCkKKyMgICAgIFdlYkRyaXZlcldhaXQo
ZHJpdmVyLCAyKVwKKyMgICAgICAgICAudW50aWwobGFtYmRhIGQ6IGRyaXZlci5leGVjdXRlX3Nj
cmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpID4gc3RhcnRfd2lkdGgpCiAKLSAgICBl
bmRfd2lkdGggPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0
aDsnKQotICAgIGVuZF9oZWlnaHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5k
b3cuaW5uZXJIZWlnaHQ7JykKKyMgICAgIGVuZF93aWR0aCA9IGRyaXZlci5leGVjdXRlX3Njcmlw
dCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpCisjICAgICBlbmRfaGVpZ2h0ID0gZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0OycpCiAKLSAgICBkcml2
ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4ndCBydW5uaW5nIGZ1bGxzY3JlZW4g
YWZ0ZXIKKyMgICAgIGRyaXZlci5xdWl0KCkgICMgS2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1
bm5pbmcgZnVsbHNjcmVlbiBhZnRlcgogCi0gICAgYXNzZXJ0IGVuZF93aWR0aCA+IHN0YXJ0X3dp
ZHRoCi0gICAgYXNzZXJ0IGVuZF9oZWlnaHQgPiBzdGFydF9oZWlnaHQKKyMgICAgIGFzc2VydCBl
bmRfd2lkdGggPiBzdGFydF93aWR0aAorIyAgICAgYXNzZXJ0IGVuZF9oZWlnaHQgPiBzdGFydF9o
ZWlnaHQKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJFeGNl
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFu
ZCBub3QgaW1wbGVtZW50ZWQnKQotQHB5dGVzdC5tYXJrLnNraXBpZihvcy5lbnZpcm9uLmdldCgn
VFJBVklTJykgPT0gJ3RydWUnLAotICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXpl
IGNvbW1hbmQgY2F1c2VzIFRyYXZpcyB0byBoYW5nJykKLUBweXRlc3QubWFyay5ub19kcml2ZXJf
YWZ0ZXJfdGVzdAotZGVmIHRlc3Rfc2hvdWxkX21pbmltaXplX3RoZV9jdXJyZW50X3dpbmRvdyhk
cml2ZXIpOgotICAgIGRyaXZlci5taW5pbWl6ZV93aW5kb3coKQotICAgIG1pbmltaXplZCA9IGRy
aXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIGRvY3VtZW50LmhpZGRlbjsnKQotICAgIGRyaXZl
ci5xdWl0KCkgICMgS2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1bm5pbmcgbWluaW1pemVkIGFm
dGVyCi0KLSAgICBhc3NlcnQgbWluaW1pemVkIGlzIFRydWUKKyMgQHB5dGVzdC5tYXJrLnhmYWls
X3NhZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQorIyBAcHl0
ZXN0Lm1hcmsuc2tpcGlmKG9zLmVudmlyb24uZ2V0KCdUUkFWSVMnKSA9PSAndHJ1ZScsCisjICAg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSdNaW5pbWl6ZSBjb21tYW5kIGNhdXNlcyBUcmF2aXMg
dG8gaGFuZycpCisjIEBweXRlc3QubWFyay5ub19kcml2ZXJfYWZ0ZXJfdGVzdAorIyBkZWYgdGVz
dF9zaG91bGRfbWluaW1pemVfdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CisjICAgICBkcml2
ZXIubWluaW1pemVfd2luZG93KCkKKyMgICAgIG1pbmltaXplZCA9IGRyaXZlci5leGVjdXRlX3Nj
cmlwdCgncmV0dXJuIGRvY3VtZW50LmhpZGRlbjsnKQorIyAgICAgZHJpdmVyLnF1aXQoKSAgIyBL
aWxsIGRyaXZlciBzbyB3ZSBhcmVuJ3QgcnVubmluZyBtaW5pbWl6ZWQgYWZ0ZXIKKworIyAgICAg
YXNzZXJ0IG1pbmltaXplZCBpcyBUcnVlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvaW1wb3J0ZXIuanNvbiBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy9pbXBv
cnRlci5qc29uCmluZGV4IGY0MDBlZjVhMzk1Ny4uZWFhODAxODcyMzA1IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvaW1wb3J0ZXIuanNvbgorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvaW1wb3J0ZXIuanNvbgpAQCAtMSw2ICsxLDYgQEAKIHsKICAgICAi
cmVwb3NpdG9yeSI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy5n
aXQiLAotICAgICJyZXZpc2lvbiI6ICJiNTdkYTk3ZmMwNWU1NDQwYWU2NzUwMjdkZDQ1YTI2YmU0
OGUyZGJkIiwKKyAgICAicmV2aXNpb24iOiAiZWI4YmRjZTU1MmEyYTliMTAwMTBmNzc1NWVkOWQ4
ZDA3NzNkNTQ4ZSIsCiAgICAgInBhdGhzX3RvX2ltcG9ydCI6IFsKICAgICAgICAgInRvb2xzL3dl
YmRyaXZlciIsCiAgICAgICAgICJ0b29scy93cHRydW5uZXIiLApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18u
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci9fX2luaXRfXy5weQppbmRleCBkODYwYjllYTI1MzMuLmE4MTc1MTQwN2U3MCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIv
X19pbml0X18ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTYsNiArNiw3IEBAIGZyb20gLmNsaWVudCBp
bXBvcnQgKAogICAgIEZpbmQsCiAgICAgRnJhbWUsCiAgICAgU2Vzc2lvbiwKKyAgICBTaGFkb3dS
b290LAogICAgIFRpbWVvdXRzLAogICAgIFdpbmRvdykKIGZyb20gLmVycm9yIGltcG9ydCAoCkBA
IC0zNCwzICszNSw1IEBAIGZyb20gLmVycm9yIGltcG9ydCAoCiAgICAgVW5rbm93bk1ldGhvZEV4
Y2VwdGlvbiwKICAgICBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiwKICAgICBXZWJEcml2
ZXJFeGNlcHRpb24pCitmcm9tIC5iaWRpIGltcG9ydCAoCisgICAgQmlkaVNlc3Npb24pCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRy
aXZlci9iaWRpLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZl
ci93ZWJkcml2ZXIvYmlkaS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLjBiY2Q0ODljZDM1ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkucHkKQEAgLTAsMCArMSw1NiBA
QAoraW1wb3J0IGNvcHkKK2ltcG9ydCB3ZWJzb2NrZXRzCisKK2Zyb20gLiBpbXBvcnQgY2xpZW50
CisKK2NsYXNzIEJpZGlTZXNzaW9uKGNsaWVudC5TZXNzaW9uKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwKKyAgICAgICAgICAgICAgICAgaG9zdCwKKyAgICAgICAgICAgICAgICAgcG9ydCwKKyAg
ICAgICAgICAgICAgICAgdXJsX3ByZWZpeD0iLyIsCisgICAgICAgICAgICAgICAgIGNhcGFiaWxp
dGllcz1Ob25lLAorICAgICAgICAgICAgICAgICBleHRlbnNpb249Tm9uZSk6CisgICAgICAgICIi
IgorICAgICAgICBBZGQgYSBjYXBhYmlsaXR5IG9mICJ3ZWJTb2NrZXRVcmwiOiBUcnVlIHRvIGVu
YWJsZQorICAgICAgICBCaWRpcmVjdGlvbmFsIGNvbm5lY3Rpb24gaW4gc2Vzc2lvbiBjcmVhdGlv
bi4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydCA9IE5vbmUK
KyAgICAgICAgY2FwYWJpbGl0aWVzID0gc2VsZi5fZW5hYmxlX3dlYnNvY2tldChjYXBhYmlsaXRp
ZXMpCisgICAgICAgIHN1cGVyKCkuX19pbml0X18oaG9zdCwgcG9ydCwgdXJsX3ByZWZpeCwgY2Fw
YWJpbGl0aWVzLCBleHRlbnNpb24pCisKKyAgICBkZWYgX2VuYWJsZV93ZWJzb2NrZXQoc2VsZiwg
Y2Fwcyk6CisgICAgICAgIGlmIGNhcHM6CisgICAgICAgICAgICBjYXBzLnNldGRlZmF1bHQoImFs
d2F5c01hdGNoIiwge30pLnVwZGF0ZSh7IndlYlNvY2tldFVybCI6IFRydWV9KQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgY2FwcyA9IHsiYWx3YXlzTWF0Y2giOiB7IndlYlNvY2tldFVybCI6
IFRydWV9fQorICAgICAgICByZXR1cm4gY2FwcworCisgICAgZGVmIG1hdGNoKHNlbGYsIGNhcGFi
aWxpdGllcyk6CisgICAgICAgICIiIkV4cGVuc2l2ZSBtYXRjaCB0byBzZWUgaWYgY2FwYWJpbGl0
aWVzIGlzIHRoZSBzYW1lIGFzIHByZXZpb3VzbHkKKyAgICAgICAgcmVxdWVzdGVkIGNhcGFiaWxp
dGllcyBpZiB3ZWJzb2NrZXQgd291bGQgYmUgZW5hYmxlZC4KKworICAgICAgICA6cmV0dXJuIEJv
b2xlYW4uCisgICAgICAgICIiIgorICAgICAgICBjYXBzID0gY29weS5kZWVwY29weShjYXBhYmls
aXRpZXMpCisgICAgICAgIGNhcHMgPSBzZWxmLl9lbmFibGVfd2Vic29ja2V0KGNhcHMpCisgICAg
ICAgIHJldHVybiBzdXBlcigpLm1hdGNoKGNhcHMpCisKKyAgICBhc3luYyBkZWYgc3RhcnQoc2Vs
Zik6CisgICAgICAgICIiIlN0YXJ0IGEgbmV3IFdlYkRyaXZlciBCaWRpcmVjdGlvbmFsIHNlc3Np
b24KKyAgICAgICAgd2l0aCB3ZWJzb2NrZXQgY29ubmVjdGVkLgorCisgICAgICAgIDpyZXR1cm46
IERpY3Rpb25hcnkgd2l0aCBgY2FwYWJpbGl0aWVzYCBhbmQgYHNlc3Npb25JZGAuCisgICAgICAg
ICIiIgorICAgICAgICB2YWx1ZSA9IHN1cGVyKCkuc3RhcnQoKQorCisgICAgICAgIGlmIG5vdCBz
ZWxmLndlYnNvY2tldF90cmFuc3BvcnQgb3Igbm90IHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydC5v
cGVuOgorICAgICAgICAgICAgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0ID0gYXdhaXQgd2Vic29j
a2V0cy5jb25uZWN0KHNlbGYuY2FwYWJpbGl0aWVzWyJ3ZWJTb2NrZXRVcmwiXSkKKyAgICAgICAg
cmV0dXJuIHZhbHVlCisKKyAgICBhc3luYyBkZWYgZW5kKHNlbGYpOgorICAgICAgICAiIiJDbG9z
ZSB3ZWJzb2NrZXQgY29ubmVjdGlvbiBmaXJzdCBiZWZvcmUgY2xvc2luZyBzZXNzaW9uLgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0OgorICAgICAgICAg
ICAgYXdhaXQgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0LmNsb3NlKCkKKyAgICAgICAgICAgIHNl
bGYud2Vic29ja2V0X3RyYW5zcG9ydCA9IE5vbmUKKyAgICAgICAgc3VwZXIoKS5lbmQoKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvYmlkaS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lN2M1NjMzMmY5MDIKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRp
L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMyBAQAorIyBmbGFrZTg6IG5vcWEKKworZnJvbSAuY2xp
ZW50IGltcG9ydCBCaWRpU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9jbGllbnQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVu
dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQzMDlhMjVlMzg3
MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvY2xpZW50LnB5CkBAIC0wLDAgKzEsMzkzIEBACitpbXBv
cnQgYXN5bmNpbworaW1wb3J0IGZ1bmN0b29scworaW1wb3J0IGpzb24KK2ltcG9ydCBsb2dnaW5n
CitpbXBvcnQgc3lzCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorZnJvbSB0
eXBpbmcgaW1wb3J0IEFueSwgQXdhaXRhYmxlLCBDYWxsYWJsZSwgQ29yb3V0aW5lLCBMaXN0LCBP
cHRpb25hbCwgTWFwcGluZywgTXV0YWJsZU1hcHBpbmcKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9y
dCB1cmxqb2luLCB1cmxwYXJzZQorCitpbXBvcnQgd2Vic29ja2V0cworCisKK2xvZ2dlciA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJkcml2ZXIuYmlkaSIpCisKKworY2xhc3MgQmlkaUV4Y2VwdGlv
bihFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlcnI6IHN0ciwgbXNnOiBzdHIs
IHN0YWNrOiBPcHRpb25hbFtzdHJdID0gTm9uZSk6CisgICAgICAgIHNlbGYuZXJyID0gZXJyCisg
ICAgICAgIHNlbGYubXNnID0gbXNnCisgICAgICAgIHNlbGYuc3RhY2sgPSBzdGFjaworCisKK2Rl
ZiBnZXRfcnVubmluZ19sb29wKCkgLT4gYXN5bmNpby5BYnN0cmFjdEV2ZW50TG9vcDoKKyAgICBp
ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA3KToKKyAgICAgICAgcmV0dXJuIGFzeW5jaW8uZ2V0
X3J1bm5pbmdfbG9vcCgpCisgICAgIyBVbmxpa2UgdGhlIGFib3ZlLCB0aGlzIHdpbGwgYWN0dWFs
bHkgY3JlYXRlIGFuIGV2ZW50IGxvb3AKKyAgICAjIGlmIHRoZXJlIGlzbid0IG9uZTsgaG9wZWZ1
bGx5IHJ1bm5pbmcgdGVzdHMgaW4gUHl0aG9uID49IDMuNworICAgICMgd2lsbCBhbGxvdyB1cyB0
byBjYXRjaCBhbnkgYmVoYXZpb3VyIGRpZmZlcmVuY2UKKyAgICByZXR1cm4gYXN5bmNpby5nZXRf
ZXZlbnRfbG9vcCgpCisKKworY2xhc3MgQmlkaVNlc3Npb246CisgICAgIiIiQSBXZWJEcml2ZXIg
QmlEaSBzZXNzaW9uLgorCisgICAgVGhpcyBpcyB0aGUgbWFpbiByZXByZXNlbnRhdGlvbiBvZiBh
IEJpRGkgc2Vzc2lvbiBhbmQgcHJvdmlkZXMgdGhlCisgICAgaW50ZXJmYWNlIGZvciBydW5uaW5n
IGNvbW1hbmRzIGluIHRoZSBzZXNzaW9uLCBhbmQgZm9yIGF0dGFjaGluZworICAgIGV2ZW50IGhh
bmRsZXJzIHRvIHRoZSBzZXNzaW9uLiBGb3IgZXhhbXBsZToKKworICAgIGFzeW5jIGRlZiBvbl9s
b2coZGF0YSk6CisgICAgICAgIHByaW50KGRhdGEpCisKKyAgICBzZXNzaW9uID0gQmlkaVNlc3Np
b24oIndzOi8vbG9jYWxob3N0OjQ0NDUiLCBjYXBhYmlsaXRpZXMpCisgICAgc2Vzc2lvbi5hZGRf
ZXZlbnRfbGlzdGVuZXIoImxvZy5lbnRyeUFkZGVkIiwgb25fbG9nKQorICAgIGF3YWl0IHNlc3Np
b24uc3RhcnQoKQorICAgIGF3YWl0IHNlc3Npb24uc3Vic2NyaWJlKCJsb2cuZW50cnlBZGRlZCIp
CisgICAgIyBEbyBzb21lIHN0dWZmIHdpdGggdGhlIHNlc3Npb24KKyAgICBzZXNzaW9uLmVuZCgp
CisKKyAgICBJZiB0aGUgc2Vzc2lvbiBpZCBpcyBwcm92aWRlZCBpdCdzIGFzc3VtZWQgdGhhdCB0
aGUgdW5kZXJseWluZworICAgIFdlYkRyaXZlciBzZXNzaW9uIHdhcyBhbHJlYWR5IGNyZWF0ZWQs
IGFuZCB0aGUgV2ViU29ja2V0IFVSTCB3YXMKKyAgICB0YWtlbiBmcm9tIHRoZSBuZXcgc2Vzc2lv
biByZXNwb25zZS4gSWYgbm8gc2Vzc2lvbiBpZCBpcyBwcm92aWRlZCwgaXQncworICAgIGFzc3Vt
ZWQgdGhhdCBhIEJpRGktb25seSBzZXNzaW9uIHNob3VsZCBiZSBjcmVhdGVkIHdoZW4gc3RhcnQo
KSBpcyBjYWxsZWQuCisKKyAgICBJdCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgY29udGV4dCBtYW5h
Z2VyLCB3aXRoIHRoZSBXZWJTb2NrZXQgdHJhbnNwb3J0CisgICAgaW1wbGljdGx5IGJlaW5nIGNy
ZWF0ZWQgd2hlbiB0aGUgY29udGV4dCBpcyBlbnRlcmVkLCBhbmQgY2xvc2VkIHdoZW4KKyAgICB0
aGUgY29udGV4dCBpcyBleGl0ZWQuCisKKyAgICA6cGFyYW0gd2Vic29ja2V0X3VybDogV2ViU29j
a2V0cyBVUkwgb24gd2hpY2ggdG8gY29ubmVjdCB0byB0aGUgc2Vzc2lvbi4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgVGhpcyBleGNsdWRlcyBhbnkgcGF0aCBjb21wb25lbnQuCisgICAgOnBh
cmFtIHNlc3Npb25faWQ6IFN0cmluZyBpZCBvZiBleGlzdGluZyBIVFRQIHNlc3Npb24KKyAgICA6
cGFyYW0gY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXMgcmVzcG9uc2Ugb2YgZXhpc3Rpbmcgc2Vz
c2lvbgorICAgIDpwYXJhbSByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzOiBEaWN0aW9uYXJ5IHJlcHJl
c2VudGluZyB0aGUgY2FwYWJpbGl0aWVzIHJlcXVlc3QuCisKKyAgICAiIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICB3ZWJzb2NrZXRfdXJsOiBzdHIsCisgICAg
ICAgICAgICAgICAgIHNlc3Npb25faWQ6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAgICAgICAg
ICAgICAgICBjYXBhYmlsaXRpZXM6IE9wdGlvbmFsW01hcHBpbmdbc3RyLCBBbnldXSA9IE5vbmUs
CisgICAgICAgICAgICAgICAgIHJlcXVlc3RlZF9jYXBhYmlsaXRpZXM6IE9wdGlvbmFsW01hcHBp
bmdbc3RyLCBBbnldXSA9IE5vbmUsCisgICAgICAgICAgICAgICAgIGxvb3A6IE9wdGlvbmFsW2Fz
eW5jaW8uQWJzdHJhY3RFdmVudExvb3BdID0gTm9uZSk6CisgICAgICAgIHNlbGYudHJhbnNwb3J0
OiBPcHRpb25hbFtUcmFuc3BvcnRdID0gTm9uZQorCisgICAgICAgICMgVGhlIGZ1bGwgVVJMIGZv
ciBhIHdlYnNvY2tldCBsb29rcyBsaWtlCisgICAgICAgICMgd3M6Ly88aG9zdD46PHBvcnQ+L3Nl
c3Npb24gd2hlbiB3ZSdyZSBjcmVhdGluZyBhIHNlc3Npb24gYW5kCisgICAgICAgICMgd3M6Ly88
aG9zdD46PHBvcnQ+L3Nlc3Npb24vPHNlc3Npb25pZD4gd2hlbiB3ZSdyZSBjb25uZWN0aW5nIHRv
IGFuIGV4aXN0aW5nIHNlc3Npb24uCisgICAgICAgICMgVG8gYmUgdXNlciBmcmllbmRseSwgaGFu
ZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBjbGFzcyB3YXMgY3JlYXRlZCB3aXRoIGVpdGhlciBhCisg
ICAgICAgICMgZnVsbCBVUkwgaW5jbHVkaW5nIHRoZSBwYXRoLCBhbmQgYWxzbyB0aGUgY2FzZSB3
aGVyZSBqdXN0IGEgc2VydmVyIHVybCBpcyBwYXNzZWQgaW4uCisgICAgICAgIHBhcnNlZF91cmwg
PSB1cmxwYXJzZSh3ZWJzb2NrZXRfdXJsKQorICAgICAgICBpZiBwYXJzZWRfdXJsLnBhdGggPT0g
IiIgb3IgcGFyc2VkX3VybC5wYXRoID09ICIvIjoKKyAgICAgICAgICAgIGlmIHNlc3Npb25faWQg
aXMgTm9uZToKKyAgICAgICAgICAgICAgICB3ZWJzb2NrZXRfdXJsID0gdXJsam9pbih3ZWJzb2Nr
ZXRfdXJsLCAic2Vzc2lvbiIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHdl
YnNvY2tldF91cmwgPSB1cmxqb2luKHdlYnNvY2tldF91cmwsIGYic2Vzc2lvbi97c2Vzc2lvbl9p
ZH0iKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2Vzc2lvbl9pZCBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICAgICBpZiBwYXJzZWRfdXJsLnBhdGggIT0gZiIvc2Vzc2lvbi97c2Vz
c2lvbl9pZH0iOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiV2ViU29j
a2V0IFVSTCB7c2Vzc2lvbl9pZH0gZG9lc24ndCBtYXRjaCBzZXNzaW9uIGlkIikKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5wYXRoICE9ICIvc2Vzc2lv
biI6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJXZWJTb2NrZXQgVVJM
IHtzZXNzaW9uX2lkfSBkb2Vzbid0IG1hdGNoIHNlc3Npb24gdXJsIikKKworICAgICAgICBpZiBz
ZXNzaW9uX2lkIGlzIE5vbmUgYW5kIGNhcGFiaWxpdGllcyBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRyaWVkIHRvIGNyZWF0ZSBCaURpLW9ubHkgc2Vzc2lvbiB3
aXRoIGV4aXN0aW5nIGNhcGFiaWxpdGllcyIpCisKKyAgICAgICAgc2VsZi53ZWJzb2NrZXRfdXJs
ID0gd2Vic29ja2V0X3VybAorICAgICAgICBzZWxmLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMgPSBy
ZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzCisgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gY2FwYWJp
bGl0aWVzCisgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IHNlc3Npb25faWQKKworICAgICAgICBz
ZWxmLmNvbW1hbmRfaWQgPSAwCisgICAgICAgIHNlbGYucGVuZGluZ19jb21tYW5kczogTXV0YWJs
ZU1hcHBpbmdbaW50LCAiYXN5bmNpby5GdXR1cmVbQW55XSJdID0ge30KKyAgICAgICAgc2VsZi5l
dmVudF9saXN0ZW5lcnM6IE11dGFibGVNYXBwaW5nW09wdGlvbmFsW3N0cl0sIExpc3RbQ2FsbGFi
bGVbW3N0ciwgTWFwcGluZ1tzdHIsIEFueV1dLCBBbnldXV0gPSBkZWZhdWx0ZGljdChsaXN0KQor
CisgICAgICAgICMgTW9kdWxlcy4KKyAgICAgICAgIyBGb3IgZWFjaCBtb2R1bGUsIGhhdmUgYSBw
cm9wZXJ0eSByZXByZXNlbnRpbmcgdGhhdCBtb2R1bGUKKyAgICAgICAgc2VsZi5zZXNzaW9uID0g
U2Vzc2lvbihzZWxmKQorCisgICAgICAgIGlmIGxvb3AgaXMgTm9uZToKKyAgICAgICAgICAgIGxv
b3AgPSBnZXRfcnVubmluZ19sb29wKCkKKyAgICAgICAgc2VsZi5sb29wID0gbG9vcAorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21faHR0cChjbHMsCisgICAgICAgICAgICAgICAgICBz
ZXNzaW9uX2lkOiBzdHIsCisgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM6IE1hcHBpbmdb
c3RyLCBBbnldLAorICAgICAgICAgICAgICAgICAgbG9vcDogT3B0aW9uYWxbYXN5bmNpby5BYnN0
cmFjdEV2ZW50TG9vcF0gPSBOb25lKSAtPiAiQmlkaVNlc3Npb24iOgorICAgICAgICAiIiJDcmVh
dGUgYSBCaURpIHNlc3Npb24gZnJvbSBhbiBleGlzdGluZyBIVFRQIHNlc3Npb24KKworICAgICAg
ICA6cGFyYW0gc2Vzc2lvbl9pZDogU3RyaW5nIGlkIG9mIHRoZSBzZXNzaW9uCisgICAgICAgIDpw
YXJhbSBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcyByZXR1cm5lZCBpbiB0aGUgTmV3IFNlc3Np
b24gSFRUUCByZXNwb25zZS4iIiIKKyAgICAgICAgd2Vic29ja2V0X3VybCA9IGNhcGFiaWxpdGll
cy5nZXQoIndlYlNvY2tldFVybCIpCisgICAgICAgIGlmIHdlYnNvY2tldF91cmwgaXMgTm9uZToK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIHdlYlNvY2tldFVybCBmb3VuZCBpbiBj
YXBhYmlsaXRpZXMiKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh3ZWJzb2NrZXRfdXJsLCBz
dHIpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigid2ViU29ja2V0VXJsIGlzIG5vdCBh
IHN0cmluZyIpCisgICAgICAgIHJldHVybiBjbHMod2Vic29ja2V0X3VybCwgc2Vzc2lvbl9pZD1z
ZXNzaW9uX2lkLCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzLCBsb29wPWxvb3ApCisKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgYmlkaV9vbmx5KGNscywKKyAgICAgICAgICAgICAgICAgIHdl
YnNvY2tldF91cmw6IHN0ciwKKyAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZF9jYXBhYmlsaXRp
ZXM6IE9wdGlvbmFsW01hcHBpbmdbc3RyLCBBbnldXSwKKyAgICAgICAgICAgICAgICAgIGxvb3A6
IE9wdGlvbmFsW2FzeW5jaW8uQWJzdHJhY3RFdmVudExvb3BdID0gTm9uZSkgLT4gIkJpZGlTZXNz
aW9uIjoKKyAgICAgICAgIiIiQ3JlYXRlIGEgQmlEaSBzZXNzaW9uIHdoZXJlIHRoZXJlIGlzIG5v
IGV4aXN0aW5nIEhUVFAgc2Vzc2lvbgorCisgICAgICAgIDpwYXJhbSB3ZWJkb2NrZXRfdXJsOiBV
UkwgdG8gdGhlIFdlYlNvY2tldCBzZXJ2ZXIgbGlzdGVuaW5nIGZvciBCaURpIGNvbm5lY3Rpb25z
CisgICAgICAgIDpwYXJhbSByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXMgcmVx
dWVzdCBmb3IgZXN0YWJsaXNoaW5nIHRoZSBzZXNzaW9uLiIiIgorICAgICAgICByZXR1cm4gY2xz
KHdlYnNvY2tldF91cmwsIHJlcXVlc3RlZF9jYXBhYmlsaXRpZXM9cmVxdWVzdGVkX2NhcGFiaWxp
dGllcywgbG9vcD1sb29wKQorCisgICAgYXN5bmMgZGVmIF9fYWVudGVyX18oc2VsZikgLT4gIkJp
ZGlTZXNzaW9uIjoKKyAgICAgICAgYXdhaXQgc2VsZi5zdGFydCgpCisgICAgICAgIHJldHVybiBz
ZWxmCisKKyAgICBhc3luYyBkZWYgX19hZXhpdF9fKHNlbGYsICphcmdzOiBBbnkpIC0+IE5vbmU6
CisgICAgICAgIGF3YWl0IHNlbGYuZW5kKCkKKworICAgIGFzeW5jIGRlZiBzdGFydChzZWxmKSAt
PiBOb25lOgorICAgICAgICAiIiJDb25uZWN0IHRvIHRoZSBXZWJEcml2ZXIgQmlEaSByZW1vdGUg
dmlhIFdlYlNvY2tldHMiIiIKKyAgICAgICAgc2VsZi50cmFuc3BvcnQgPSBUcmFuc3BvcnQoc2Vs
Zi53ZWJzb2NrZXRfdXJsLCBzZWxmLm9uX21lc3NhZ2UsIGxvb3A9c2VsZi5sb29wKQorCisgICAg
ICAgIGlmIHNlbGYuc2Vzc2lvbl9pZCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5zZXNzaW9u
X2lkLCBzZWxmLmNhcGFiaWxpdGllcyA9IGF3YWl0IHNlbGYuc2Vzc2lvbi5uZXcoc2VsZi5yZXF1
ZXN0ZWRfY2FwYWJpbGl0aWVzKQorCisgICAgICAgIGF3YWl0IHNlbGYudHJhbnNwb3J0LnN0YXJ0
KCkKKworICAgIGFzeW5jIGRlZiBzZW5kX2NvbW1hbmQoc2VsZiwgbWV0aG9kOiBzdHIsIHBhcmFt
czogTWFwcGluZ1tzdHIsIEFueV0pIC0+IEF3YWl0YWJsZVtNYXBwaW5nW3N0ciwgQW55XV06Cisg
ICAgICAgICIiIlNlbmQgYSBjb21tYW5kIHRvIHRoZSByZW1vdGUgc2VydmVyIiIiCisgICAgICAg
ICMgdGhpcyBpc24ndCB0aHJlYWRzYWZlCisgICAgICAgIHNlbGYuY29tbWFuZF9pZCArPSAxCisg
ICAgICAgIGNvbW1hbmRfaWQgPSBzZWxmLmNvbW1hbmRfaWQKKworICAgICAgICBib2R5ID0gewor
ICAgICAgICAgICAgImlkIjogY29tbWFuZF9pZCwKKyAgICAgICAgICAgICJtZXRob2QiOiBtZXRo
b2QsCisgICAgICAgICAgICAicGFyYW1zIjogcGFyYW1zCisgICAgICAgIH0KKyAgICAgICAgYXNz
ZXJ0IGNvbW1hbmRfaWQgbm90IGluIHNlbGYucGVuZGluZ19jb21tYW5kcworICAgICAgICBzZWxm
LnBlbmRpbmdfY29tbWFuZHNbY29tbWFuZF9pZF0gPSBzZWxmLmxvb3AuY3JlYXRlX2Z1dHVyZSgp
CisgICAgICAgIGFzc2VydCBzZWxmLnRyYW5zcG9ydCBpcyBub3QgTm9uZQorICAgICAgICBhd2Fp
dCBzZWxmLnRyYW5zcG9ydC5zZW5kKGJvZHkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYucGVuZGlu
Z19jb21tYW5kc1tjb21tYW5kX2lkXQorCisgICAgYXN5bmMgZGVmIG9uX21lc3NhZ2Uoc2VsZiwg
ZGF0YTogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE5vbmU6CisgICAgICAgICIiIkhhbmRsZSBhIG1l
c3NhZ2UgZnJvbSB0aGUgcmVtb3RlIHNlcnZlciIiIgorICAgICAgICBpZiAiaWQiIGluIGRhdGE6
CisgICAgICAgICAgICAjIFRoaXMgaXMgYSBjb21tYW5kIHJlc3BvbnNlIG9yIGVycm9yCisgICAg
ICAgICAgICBmdXR1cmUgPSBzZWxmLnBlbmRpbmdfY29tbWFuZHMuZ2V0KGRhdGFbImlkIl0pCisg
ICAgICAgICAgICBpZiBmdXR1cmUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKGYiTm8gcGVuZGluZyBjb21tYW5kIHdpdGggaWQge2RhdGFbJ2lkJ119IikKKyAgICAg
ICAgICAgIGlmICJyZXN1bHQiIGluIGRhdGE6CisgICAgICAgICAgICAgICAgZnV0dXJlLnNldF9y
ZXN1bHQoZGF0YVsicmVzdWx0Il0pCisgICAgICAgICAgICBlbGlmICJlcnJvciIgaW4gZGF0YSBh
bmQgIm1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
ZGF0YVsiZXJyb3IiXSwgc3RyKQorICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRh
dGFbIm1lc3NhZ2UiXSwgc3RyKQorICAgICAgICAgICAgICAgIGZ1dHVyZS5zZXRfZXhjZXB0aW9u
KEJpZGlFeGNlcHRpb24oZGF0YVsiZXJyb3IiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbIm1lc3NhZ2UiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0KCJzdGFja3RyYWNl
IikpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KGYiVW5leHBlY3RlZCBtZXNzYWdlOiB7ZGF0YSFyfSIpCisgICAgICAgIGVsaWYgIm1ldGhvZCIg
aW4gZGF0YSBhbmQgInBhcmFtcyIgaW4gZGF0YToKKyAgICAgICAgICAgICMgVGhpcyBpcyBhbiBl
dmVudAorICAgICAgICAgICAgbWV0aG9kID0gZGF0YVsibWV0aG9kIl0KKyAgICAgICAgICAgIGxp
c3RlbmVycyA9IHNlbGYuZXZlbnRfbGlzdGVuZXJzLmdldChtZXRob2QsIFtdKQorICAgICAgICAg
ICAgaWYgbm90IGxpc3RlbmVyczoKKyAgICAgICAgICAgICAgICBsaXN0ZW5lcnMgPSBzZWxmLmV2
ZW50X2xpc3RlbmVycy5nZXQoTm9uZSwgW10pCisgICAgICAgICAgICBmb3IgbGlzdGVuZXIgaW4g
bGlzdGVuZXJzOgorICAgICAgICAgICAgICAgIGF3YWl0IGxpc3RlbmVyKG1ldGhvZCwgZGF0YVsi
cGFyYW1zIl0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYi
VW5leHBlY3RlZCBtZXNzYWdlOiB7ZGF0YSFyfSIpCisKKyAgICBhc3luYyBkZWYgZW5kKHNlbGYp
IC0+IE5vbmU6CisgICAgICAgICIiIkNsb3NlIHdlYnNvY2tldCBjb25uZWN0aW9uLiIiIgorICAg
ICAgICBhc3NlcnQgc2VsZi50cmFuc3BvcnQgaXMgbm90IE5vbmUKKyAgICAgICAgYXdhaXQgc2Vs
Zi50cmFuc3BvcnQuZW5kKCkKKworICAgIGRlZiBhZGRfZXZlbnRfbGlzdGVuZXIoc2VsZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IE9wdGlvbmFsW3N0cl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbjogQ2FsbGFibGVbW3N0ciwgTWFwcGluZ1tzdHIsIEFueV1dLCBB
d2FpdGFibGVbQW55XV0pIC0+IE5vbmU6CisgICAgICAgICIiIkFkZCBhIGxpc3RlbmVyIGZvciB0
aGUgZXZlbnQgd2l0aCBhIGdpdmVuIG5hbWUuCisKKyAgICAgICAgSWYgbmFtZSBpcyBOb25lLCB0
aGUgbGlzdGVuZXIgaXMgY2FsbGVkIGZvciBhbGwgbWVzc2FnZXMgdGhhdCBhcmUgbm90IG90aGVy
d2lzZQorICAgICAgICBoYW5kbGVkLgorCisgICAgICAgIDpwYXJhbSBuYW1lOiBOYW1lIG9mIGV2
ZW50IHRvIGxpc3RlbiBmb3Igb3IgTm9uZSB0byByZWdpc3RlciBhIGRlZmF1bHQgaGFuZGxlcgor
ICAgICAgICA6cGFyYW0gZm46IEFzeW5jIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMg
ZXZlbnQgZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5ldmVudF9saXN0ZW5lcnNbbmFt
ZV0uYXBwZW5kKGZuKQorCisKK2NsYXNzIFRyYW5zcG9ydDoKKyAgICAiIiJMb3cgbGV2ZWwgbWVz
c2FnZSBoYW5kbGVyIGZvciB0aGUgV2ViU29ja2V0cyBjb25uZWN0aW9uIiIiCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHVybDogc3RyLAorICAgICAgICAgICAgICAgICBtc2dfaGFuZGxlcjogQ2Fs
bGFibGVbW01hcHBpbmdbc3RyLCBBbnldXSwgQ29yb3V0aW5lW0FueSwgQW55LCBOb25lXV0sCisg
ICAgICAgICAgICAgICAgIGxvb3A6IE9wdGlvbmFsW2FzeW5jaW8uQWJzdHJhY3RFdmVudExvb3Bd
ID0gTm9uZSk6CisgICAgICAgIHNlbGYudXJsID0gdXJsCisgICAgICAgIHNlbGYuY29ubmVjdGlv
bjogT3B0aW9uYWxbd2Vic29ja2V0cy5XZWJTb2NrZXRDbGllbnRQcm90b2NvbF0gPSBOb25lCisg
ICAgICAgIHNlbGYubXNnX2hhbmRsZXIgPSBtc2dfaGFuZGxlcgorICAgICAgICBzZWxmLnNlbmRf
YnVmOiBMaXN0W01hcHBpbmdbc3RyLCBBbnldXSA9IFtdCisKKyAgICAgICAgaWYgbG9vcCBpcyBO
b25lOgorICAgICAgICAgICAgbG9vcCA9IGdldF9ydW5uaW5nX2xvb3AoKQorICAgICAgICBzZWxm
Lmxvb3AgPSBsb29wCisKKyAgICAgICAgc2VsZi5yZWFkX21lc3NhZ2VfdGFzazogT3B0aW9uYWxb
YXN5bmNpby5UYXNrW0FueV1dID0gTm9uZQorCisgICAgYXN5bmMgZGVmIHN0YXJ0KHNlbGYpIC0+
IE5vbmU6CisgICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IGF3YWl0IHdlYnNvY2tldHMuY2xpZW50
LmNvbm5lY3Qoc2VsZi51cmwpCisgICAgICAgIHNlbGYucmVhZF9tZXNzYWdlX3Rhc2sgPSBzZWxm
Lmxvb3AuY3JlYXRlX3Rhc2soc2VsZi5yZWFkX21lc3NhZ2VzKCkpCisKKyAgICAgICAgZm9yIG1z
ZyBpbiBzZWxmLnNlbmRfYnVmOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5fc2VuZChzZWxmLmNv
bm5lY3Rpb24sIG1zZykKKworICAgIGFzeW5jIGRlZiBzZW5kKHNlbGYsIGRhdGE6IE1hcHBpbmdb
c3RyLCBBbnldKSAtPiBOb25lOgorICAgICAgICBpZiBzZWxmLmNvbm5lY3Rpb24gaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBhd2FpdCBzZWxmLl9zZW5kKHNlbGYuY29ubmVjdGlvbiwgZGF0YSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2VuZF9idWYuYXBwZW5kKGRhdGEpCisK
KyAgICBAc3RhdGljbWV0aG9kCisgICAgYXN5bmMgZGVmIF9zZW5kKGNvbm5lY3Rpb246IHdlYnNv
Y2tldHMuV2ViU29ja2V0Q2xpZW50UHJvdG9jb2wsIGRhdGE6IE1hcHBpbmdbc3RyLCBBbnldKSAt
PiBOb25lOgorICAgICAgICBtc2cgPSBqc29uLmR1bXBzKGRhdGEpCisgICAgICAgIGxvZ2dlci5k
ZWJ1Zygi4oaSICVzIiwgbXNnKQorICAgICAgICBhd2FpdCBjb25uZWN0aW9uLnNlbmQobXNnKQor
CisgICAgYXN5bmMgZGVmIGhhbmRsZShzZWxmLCBtc2c6IHN0cikgLT4gTm9uZToKKyAgICAgICAg
bG9nZ2VyLmRlYnVnKCLihpAgJXMiLCBtc2cpCisgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKG1z
ZykKKyAgICAgICAgYXdhaXQgc2VsZi5tc2dfaGFuZGxlcihkYXRhKQorCisgICAgYXN5bmMgZGVm
IGVuZChzZWxmKSAtPiBOb25lOgorICAgICAgICBpZiBzZWxmLmNvbm5lY3Rpb246CisgICAgICAg
ICAgICBhd2FpdCBzZWxmLmNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5jb25u
ZWN0aW9uID0gTm9uZQorCisgICAgYXN5bmMgZGVmIHJlYWRfbWVzc2FnZXMoc2VsZikgLT4gTm9u
ZToKKyAgICAgICAgYXNzZXJ0IHNlbGYuY29ubmVjdGlvbiBpcyBub3QgTm9uZQorICAgICAgICBh
c3luYyBmb3IgbXNnIGluIHNlbGYuY29ubmVjdGlvbjoKKyAgICAgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKG1zZywgc3RyKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJHb3Qg
YSBiaW5hcnkgbWVzc2FnZSIpCisgICAgICAgICAgICBhd2FpdCBzZWxmLmhhbmRsZShtc2cpCisK
KworY2xhc3MgY29tbWFuZDoKKyAgICAiIiJEZWNvcmF0b3IgZm9yIGltcGxlbWVudGluZyBiaWRp
IGNvbW1hbmRzCisKKyAgICBJbXBsZW1lbnRpbmcgYSBjb21tYW5kIGludm9sdmVzIHNwZWNpZnlp
bmcgYW4gYXN5bmMgZnVuY3Rpb24gdGhhdAorICAgIGJ1aWxkcyB0aGUgcGFyYW1ldGVycyB0byB0
aGUgY29tbWFuZC4gVGhlIGRlY29yYXRvciBhcnJhbmdlcyB0aG9zZQorICAgIHBhcmFtZXRlcnMg
dG8gYmUgdHVybmVkIGludG8gYSBzZW5kX2NvbW1hbmQgY2FsbCwgdXNpbmcgdGhlIGNsYXNzCisg
ICAgYW5kIG1ldGhvZCBuYW1lcyB0byBkZXRlcm1pbmUgdGhlIG1ldGhvZCBpbiB0aGUgY2FsbC4K
KworICAgIENvbW1hbmRzIGRlY29yYXRlZCBpbiB0aGlzIHdheSBkb24ndCByZXR1cm4gYSBmdXR1
cmUsIGJ1dCBhd2FpdAorICAgIHRoZSBhY3R1YWwgcmVzcG9uc2UuIEluIHNvbWUgY2FzZXMgaXQg
Y2FuIGJlIHVzZWZ1bCB0bworICAgIHBvc3QtcHJvY2VzcyB0aGlzIHJlc3BvbnNlIGJlZm9yZSBy
ZXR1cm5pbmcgaXQgdG8gdGhlIGNsaWVudC4gVGhpcworICAgIGNhbiBiZSBkb25lIGJ5IHNwZWNp
ZnlpbmcgYSBzZWNvbmQgZGVjb3JhdGVkIG1ldGhvZCBsaWtlCisgICAgQGNvbW1hbmRfbmFtZS5y
ZXN1bHQuIFRoYXQgbWV0aG9kIHdpbGwgdGhlbiBiZSBjYWxsZWQgb25jZSB0aGUKKyAgICByZXN1
bHQgb2YgdGhlIG9yaWdpbmFsIGNvbW1hbmQgaXMga25vd24sIGFuZCB0aGUgcmV0dXJuIHZhbHVl
IG9mCisgICAgdGhlIG1ldGhvZCB1c2VkIGFzIHRoZSByZXNwb25zZSBvZiB0aGUgY29tbWFuZC4K
KworICAgIFNvIGZvciBhbiBleGFtcGxlLCBpZiB3ZSBoYWQgYSBjb21tYW5kIHRlc3QudGVzdE1l
dGhvZCwgd2hpY2gKKyAgICByZXR1cm5lZCBhIHJlc3VsdCB3aGljaCB3ZSB3YW50IHRvIGNvbnZl
cnQgdG8gYSBUZXN0UmVzdWx0IHR5cGUsCisgICAgdGhlIGltcGxlbWVudGF0aW9uIG1pZ2h0IGxv
b2sgbGlrZToKKworICAgIGNsYXNzIFRlc3QoQmlkaU1vZHVsZSk6CisgICAgICAgIEBjb21tYW5k
CisgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmLCB0ZXN0X2RhdGE9Tm9uZSk6CisgICAgICAg
ICAgICByZXR1cm4geyJ0ZXN0RGF0YSI6IHRlc3RfZGF0YX0KKworICAgICAgIEB0ZXN0X21ldGhv
ZC5yZXN1bHQKKyAgICAgICBkZWYgY29udmVydF90ZXN0X21ldGhvZF9yZXN1bHQoc2VsZiwgcmVz
dWx0KToKKyAgICAgICAgICAgcmV0dXJuIFRlc3REYXRhKCoqcmVzdWx0KQorICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGZuOiBDYWxsYWJsZVsuLi4sIE1hcHBpbmdbc3RyLCBBbnld
XSk6CisgICAgICAgIHNlbGYucGFyYW1zX2ZuID0gZm4KKyAgICAgICAgc2VsZi5yZXN1bHRfZm46
IE9wdGlvbmFsW0NhbGxhYmxlWy4uLiwgQW55XV0gPSBOb25lCisKKyAgICBkZWYgcmVzdWx0KHNl
bGYsIGZuOiBDYWxsYWJsZVtbQW55LCBNdXRhYmxlTWFwcGluZ1tzdHIsIEFueV1dLCBNYXBwaW5n
W3N0ciwgQW55XV0pIC0+IE5vbmU6CisgICAgICAgIHNlbGYucmVzdWx0X2ZuID0gZm4KKworICAg
IGRlZiBfX3NldF9uYW1lX18oc2VsZiwgb3duZXI6IEFueSwgbmFtZTogc3RyKSAtPiBOb25lOgor
ICAgICAgICAjIFRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIGNsYXNzIGlzIGNyZWF0ZWQKKyAgICAg
ICAgIyBzZWUgaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0
bWwjb2JqZWN0Ll9fc2V0X25hbWVfXworICAgICAgICBwYXJhbXNfZm4gPSBzZWxmLnBhcmFtc19m
bgorICAgICAgICByZXN1bHRfZm4gPSBzZWxmLnJlc3VsdF9mbgorCisgICAgICAgIEBmdW5jdG9v
bHMud3JhcHMocGFyYW1zX2ZuKQorICAgICAgICBhc3luYyBkZWYgaW5uZXIoc2VsZjogQW55LCAq
Kmt3YXJnczogQW55KSAtPiBBbnk6CisgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXNfZm4oc2Vs
ZiwgKiprd2FyZ3MpCisKKyAgICAgICAgICAgICMgQ29udmVydCB0aGUgY2xhc3NuYW1lIGFuZCB0
aGUgbWV0aG9kIG5hbWUgdG8gYSBiaWRpIGNvbW1hbmQgbmFtZQorICAgICAgICAgICAgbW9kX25h
bWUgPSBvd25lci5fX25hbWVfXy5sb3dlcigpCisgICAgICAgICAgICBpZiBoYXNhdHRyKG93bmVy
LCAicHJlZml4Iik6CisgICAgICAgICAgICAgICAgbW9kX25hbWUgPSBmIntvd25lci5wcmVmaXh9
Onttb2RfbmFtZX0iCisgICAgICAgICAgICBjbWRfbmFtZSA9IGYie21vZF9uYW1lfS57dG9fY2Ft
ZWxjYXNlKG5hbWUpfSIKKworICAgICAgICAgICAgZnV0dXJlID0gYXdhaXQgc2VsZi5zZXNzaW9u
LnNlbmRfY29tbWFuZChjbWRfbmFtZSwgcGFyYW1zKQorICAgICAgICAgICAgcmVzdWx0ID0gYXdh
aXQgZnV0dXJlCisKKyAgICAgICAgICAgIGlmIHJlc3VsdF9mbiBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgICAgICAjIENvbnZlcnQgdGhlIHJlc3VsdCBpZiB3ZSBoYXZlIGEgY29udmVyc2lvbiBm
dW5jdGlvbiBkZWZpbmVkCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0X2ZuKHNlbGYs
IHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICAjIE92ZXJ3cml0
ZSB0aGUgbWV0aG9kIG9uIHRoZSBvd25lciBjbGFzcyB3aXRoIHRoZSB3cmFwcGVyCisgICAgICAg
IHNldGF0dHIob3duZXIsIG5hbWUsIGlubmVyKQorCisgICAgZGVmIF9fY2FsbF9fKCphcmdzOiBB
bnksICoqa3dhcmdzOiBBbnkpIC0+IEF3YWl0YWJsZVtBbnldOgorICAgICAgICAjIFRoaXMgaXNu
J3QgcmVhbGx5IHVzZWQsIGJ1dCBteXB5IGRvZXNuJ3QgdW5kZXJzdGFuZCBfX3NldF9uYW1lX18K
KyAgICAgICAgcGFzcworCisKK2RlZiB0b19jYW1lbGNhc2UobmFtZTogc3RyKSAtPiBzdHI6Cisg
ICAgIiIiQ29udmVydCBhIHB5dGhvbiBzdHlsZSBtZXRob2QgbmFtZSBmb29fYmFyIHRvIGEgQmlE
aSBjb21tYW5kIG5hbWUgZm9vQmFyIiIiCisgICAgcGFydHMgPSBuYW1lLnNwbGl0KCJfIikKKyAg
ICBwYXJ0c1swXSA9IHBhcnRzWzBdLmxvd2VyKCkKKyAgICBmb3IgaSBpbiByYW5nZSgxLCBsZW4o
cGFydHMpKToKKyAgICAgICAgcGFydHNbaV0gPSBwYXJ0c1tpXS50aXRsZSgpCisgICAgcmV0dXJu
ICIiLmpvaW4ocGFydHMpCisKKworY2xhc3MgQmlkaU1vZHVsZToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgc2Vzc2lvbjogQmlkaVNlc3Npb24pOgorICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNz
aW9uCisKKworY2xhc3MgU2Vzc2lvbihCaWRpTW9kdWxlKToKKyAgICBAY29tbWFuZAorICAgIGRl
ZiBuZXcoc2VsZiwgY2FwYWJpbGl0aWVzOiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gTWFwcGluZ1tz
dHIsIE1hcHBpbmdbc3RyLCBBbnldXToKKyAgICAgICAgcmV0dXJuIHsiY2FwYWJpbGl0aWVzIjog
Y2FwYWJpbGl0aWVzfQorCisgICAgQG5ldy5yZXN1bHQKKyAgICBkZWYgX25ldyhzZWxmLCByZXN1
bHQ6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBBbnk6CisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0
KCJzZXNzaW9uX2lkIiksIHJlc3VsdC5nZXQoImNhcGFiaWxpdGllcyIsIHt9KQorCisgICAgQGNv
bW1hbmQKKyAgICBkZWYgc3Vic2NyaWJlKHNlbGYsCisgICAgICAgICAgICAgICAgICBldmVudHM6
IE9wdGlvbmFsW0xpc3Rbc3RyXV0gPSBOb25lLAorICAgICAgICAgICAgICAgICAgY29udGV4dHM6
IE9wdGlvbmFsW0xpc3Rbc3RyXV0gPSBOb25lKSAtPiBNYXBwaW5nW3N0ciwgQW55XToKKyAgICAg
ICAgcGFyYW1zOiBNdXRhYmxlTWFwcGluZ1tzdHIsIEFueV0gPSB7ImV2ZW50cyI6IGV2ZW50cyBp
ZiBldmVudHMgaXMgbm90IE5vbmUgZWxzZSBbXX0KKyAgICAgICAgaWYgY29udGV4dHMgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBwYXJhbXNbImNvbnRleHRzIl0gPSBjb250ZXh0cworICAgICAg
ICByZXR1cm4gcGFyYW1zCisKKyAgICBAY29tbWFuZAorICAgIGRlZiB1bnN1YnNjcmliZShzZWxm
LAorICAgICAgICAgICAgICAgICAgICBldmVudHM6IE9wdGlvbmFsW0xpc3Rbc3RyXV0gPSBOb25l
LAorICAgICAgICAgICAgICAgICAgICBjb250ZXh0czogT3B0aW9uYWxbTGlzdFtzdHJdXSA9IE5v
bmUpIC0+IE1hcHBpbmdbc3RyLCBBbnldOgorICAgICAgICBwYXJhbXM6IE11dGFibGVNYXBwaW5n
W3N0ciwgQW55XSA9IHsiZXZlbnRzIjogZXZlbnRzIGlmIGV2ZW50cyBpcyBub3QgTm9uZSBlbHNl
IFtdfQorICAgICAgICBpZiBjb250ZXh0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHBhcmFt
c1siY29udGV4dHMiXSA9IGNvbnRleHRzCisgICAgICAgIHJldHVybiBwYXJhbXMKKworCitjbGFz
cyBUZXN0KEJpZGlNb2R1bGUpOgorICAgICIiIlZlcnkgdGVtcG9yYXJ5IG1vZHVsZSB0aGF0IGRv
ZXMgbm90aGluZywgZXhjZXB0IGRlbW9uc3RyYXRlIGEgdmVuZG9yIHByZWZpeCBhbmQKKyAgICBw
cm92aWRlIGEgd2F5IHRvIHdvcmsgd2l0aCBHZWNrbydzIGN1cnJlbnQgc2tlbGV0b24gaW1wbGVt
ZW50YXRpb24uIiIiCisKKyAgICBwcmVmaXggPSAibW96IgorCisgICAgQGNvbW1hbmQKKyAgICBk
ZWYgdGVzdF9tZXRob2Qoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4ga3dhcmdzCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dl
YmRyaXZlci9jbGllbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2Vi
ZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKaW5kZXggZjRlM2M3NjM3OTVlLi4yYzdiMWM1ZGJl
YjEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2
ZXIvd2ViZHJpdmVyL2NsaWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKQEAgLTEsOSArMSw5IEBACiBmcm9t
IC4gaW1wb3J0IGVycm9yCiBmcm9tIC4gaW1wb3J0IHByb3RvY29sCiBmcm9tIC4gaW1wb3J0IHRy
YW5zcG9ydAorZnJvbSAuYmlkaS5jbGllbnQgaW1wb3J0IEJpZGlTZXNzaW9uCiAKLWZyb20gc2l4
IGltcG9ydCBzdHJpbmdfdHlwZXMKLWZyb20gc2l4Lm1vdmVzLnVybGxpYiBpbXBvcnQgcGFyc2Ug
YXMgdXJscGFyc2UKK2Zyb20gdXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQogCiAKIGRl
ZiBjb21tYW5kKGZ1bmMpOgpAQCAtMTE2LDE0ICsxMTYsNDkgQEAgY2xhc3MgQWN0aW9uU2VxdWVu
Y2Uob2JqZWN0KToKICAgICBkZWYgX2tleV9hY3Rpb24oc2VsZiwgc3VidHlwZSwgdmFsdWUpOgog
ICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5cGUiOiBzdWJ0eXBlLCAidmFsdWUiOiB2
YWx1ZX0pCiAKLSAgICBkZWYgX3BvaW50ZXJfYWN0aW9uKHNlbGYsIHN1YnR5cGUsIGJ1dHRvbik6
Ci0gICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsidHlwZSI6IHN1YnR5cGUsICJidXR0b24i
OiBidXR0b259KQorICAgIGRlZiBfcG9pbnRlcl9hY3Rpb24oc2VsZiwgc3VidHlwZSwgYnV0dG9u
PU5vbmUsIHg9Tm9uZSwgeT1Ob25lLCBkdXJhdGlvbj1Ob25lLCBvcmlnaW49Tm9uZSwgd2lkdGg9
Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1Ob25lLCBwcmVzc3VyZT1Ob25l
LCB0YW5nZW50aWFsX3ByZXNzdXJlPU5vbmUsIHRpbHRfeD1Ob25lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgdGlsdF95PU5vbmUsIHR3aXN0PU5vbmUsIGFsdGl0dWRlX2FuZ2xlPU5vbmUsIGF6
aW11dGhfYW5nbGU9Tm9uZSk6CisgICAgICAgIGFjdGlvbiA9IHsKKyAgICAgICAgICAgICJ0eXBl
Ijogc3VidHlwZQorICAgICAgICB9CisgICAgICAgIGlmIGJ1dHRvbiBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIGFjdGlvblsiYnV0dG9uIl0gPSBidXR0b24KKyAgICAgICAgaWYgeCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGFjdGlvblsieCJdID0geAorICAgICAgICBpZiB5IGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgYWN0aW9uWyJ5Il0gPSB5CisgICAgICAgIGlmIGR1cmF0aW9uIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJkdXJhdGlvbiJdID0gZHVyYXRpb24KKyAg
ICAgICAgaWYgb3JpZ2luIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4i
XSA9IG9yaWdpbgorICAgICAgICBpZiB3aWR0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFj
dGlvblsid2lkdGgiXSA9IHdpZHRoCisgICAgICAgIGlmIGhlaWdodCBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIGFjdGlvblsiaGVpZ2h0Il0gPSBoZWlnaHQKKyAgICAgICAgaWYgcHJlc3N1cmUg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bInByZXNzdXJlIl0gPSBwcmVzc3VyZQor
ICAgICAgICBpZiB0YW5nZW50aWFsX3ByZXNzdXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
YWN0aW9uWyJ0YW5nZW50aWFsUHJlc3N1cmUiXSA9IHRhbmdlbnRpYWxfcHJlc3N1cmUKKyAgICAg
ICAgaWYgdGlsdF94IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJ0aWx0WCJdID0g
dGlsdF94CisgICAgICAgIGlmIHRpbHRfeSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlv
blsidGlsdFkiXSA9IHRpbHRfeQorICAgICAgICBpZiB0d2lzdCBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGFjdGlvblsidHdpc3QiXSA9IHR3aXN0CisgICAgICAgIGlmIGFsdGl0dWRlX2FuZ2xl
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJhbHRpdHVkZUFuZ2xlIl0gPSBhbHRp
dHVkZV9hbmdsZQorICAgICAgICBpZiBhemltdXRoX2FuZ2xlIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgYWN0aW9uWyJhemltdXRoQW5nbGUiXSA9IGF6aW11dGhfYW5nbGUKKyAgICAgICAgc2Vs
Zi5fYWN0aW9ucy5hcHBlbmQoYWN0aW9uKQogCiAgICAgZGVmIHBhdXNlKHNlbGYsIGR1cmF0aW9u
KToKICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjogInBhdXNlIiwgImR1cmF0
aW9uIjogZHVyYXRpb259KQogICAgICAgICByZXR1cm4gc2VsZgogCi0gICAgZGVmIHBvaW50ZXJf
bW92ZShzZWxmLCB4LCB5LCBkdXJhdGlvbj1Ob25lLCBvcmlnaW49Tm9uZSk6CisgICAgZGVmIHBv
aW50ZXJfbW92ZShzZWxmLCB4LCB5LCBkdXJhdGlvbj1Ob25lLCBvcmlnaW49Tm9uZSwgd2lkdGg9
Tm9uZSwgaGVpZ2h0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZT1Ob25lLCB0
YW5nZW50aWFsX3ByZXNzdXJlPU5vbmUsIHRpbHRfeD1Ob25lLCB0aWx0X3k9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgICAgIHR3aXN0PU5vbmUsIGFsdGl0dWRlX2FuZ2xlPU5vbmUsIGF6aW11dGhf
YW5nbGU9Tm9uZSk6CiAgICAgICAgICIiIlF1ZXVlIGEgcG9pbnRlck1vdmUgYWN0aW9uLgogCiAg
ICAgICAgIDpwYXJhbSB4OiBEZXN0aW5hdGlvbiB4LWF4aXMgY29vcmRpbmF0ZSBvZiBwb2ludGVy
IGluIENTUyBwaXhlbHMuCkBAIC0xMzMsMTYgKzE2OCwxMCBAQCBjbGFzcyBBY3Rpb25TZXF1ZW5j
ZShvYmplY3QpOgogICAgICAgICA6cGFyYW0gb3JpZ2luOiBPcmlnaW4gb2YgY29vcmRpbmF0ZXMs
IGVpdGhlciAidmlld3BvcnQiLCAicG9pbnRlciIgb3IKICAgICAgICAgICAgICAgICAgICAgICAg
YW4gRWxlbWVudC4gSWYgTm9uZSwgcmVtb3RlIGVuZCBkZWZhdWx0cyB0byAidmlld3BvcnQiLgog
ICAgICAgICAiIiIKLSAgICAgICAgYWN0aW9uID0gewotICAgICAgICAgICAgInR5cGUiOiAicG9p
bnRlck1vdmUiLAotICAgICAgICAgICAgIngiOiB4LAotICAgICAgICAgICAgInkiOiB5Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgZHVyYXRpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBhY3Rp
b25bImR1cmF0aW9uIl0gPSBkdXJhdGlvbgotICAgICAgICBpZiBvcmlnaW4gaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBhY3Rpb25bIm9yaWdpbiJdID0gb3JpZ2luCi0gICAgICAgIHNlbGYuX2Fj
dGlvbnMuYXBwZW5kKGFjdGlvbikKKyAgICAgICAgc2VsZi5fcG9pbnRlcl9hY3Rpb24oInBvaW50
ZXJNb3ZlIiwgeD14LCB5PXksIGR1cmF0aW9uPWR1cmF0aW9uLCBvcmlnaW49b3JpZ2luLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD13aWR0aCwgaGVpZ2h0PWhlaWdodCwgcHJl
c3N1cmU9cHJlc3N1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdlbnRpYWxf
cHJlc3N1cmU9dGFuZ2VudGlhbF9wcmVzc3VyZSwgdGlsdF94PXRpbHRfeCwgdGlsdF95PXRpbHRf
eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdpc3Q9dHdpc3QsIGFsdGl0dWRlX2Fu
Z2xlPWFsdGl0dWRlX2FuZ2xlLCBhemltdXRoX2FuZ2xlPWF6aW11dGhfYW5nbGUpCiAgICAgICAg
IHJldHVybiBzZWxmCiAKICAgICBkZWYgcG9pbnRlcl91cChzZWxmLCBidXR0b249MCk6CkBAIC0x
NTEsMTYgKzE4MCwyMSBAQCBjbGFzcyBBY3Rpb25TZXF1ZW5jZShvYmplY3QpOgogICAgICAgICA6
cGFyYW0gYnV0dG9uOiBQb2ludGVyIGJ1dHRvbiB0byBwZXJmb3JtIGFjdGlvbiB3aXRoLgogICAg
ICAgICAgICAgICAgICAgICAgICBEZWZhdWx0OiAwLCB3aGljaCByZXByZXNlbnRzIG1haW4gZGV2
aWNlIGJ1dHRvbi4KICAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJw
b2ludGVyVXAiLCBidXR0b24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVy
VXAiLCBidXR0b249YnV0dG9uKQogICAgICAgICByZXR1cm4gc2VsZgogCi0gICAgZGVmIHBvaW50
ZXJfZG93bihzZWxmLCBidXR0b249MCk6CisgICAgZGVmIHBvaW50ZXJfZG93bihzZWxmLCBidXR0
b249MCwgd2lkdGg9Tm9uZSwgaGVpZ2h0PU5vbmUsIHByZXNzdXJlPU5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICB0YW5nZW50aWFsX3ByZXNzdXJlPU5vbmUsIHRpbHRfeD1Ob25lLCB0aWx0X3k9
Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIHR3aXN0PU5vbmUsIGFsdGl0dWRlX2FuZ2xlPU5v
bmUsIGF6aW11dGhfYW5nbGU9Tm9uZSk6CiAgICAgICAgICIiIlF1ZXVlIGEgcG9pbnRlckRvd24g
YWN0aW9uIGZvciBgYnV0dG9uYC4KIAogICAgICAgICA6cGFyYW0gYnV0dG9uOiBQb2ludGVyIGJ1
dHRvbiB0byBwZXJmb3JtIGFjdGlvbiB3aXRoLgogICAgICAgICAgICAgICAgICAgICAgICBEZWZh
dWx0OiAwLCB3aGljaCByZXByZXNlbnRzIG1haW4gZGV2aWNlIGJ1dHRvbi4KICAgICAgICAgIiIi
Ci0gICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVyRG93biIsIGJ1dHRvbikKKyAg
ICAgICAgc2VsZi5fcG9pbnRlcl9hY3Rpb24oInBvaW50ZXJEb3duIiwgYnV0dG9uPWJ1dHRvbiwg
d2lkdGg9d2lkdGgsIGhlaWdodD1oZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByZXNzdXJlPXByZXNzdXJlLCB0YW5nZW50aWFsX3ByZXNzdXJlPXRhbmdlbnRpYWxfcHJlc3N1
cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRfeD10aWx0X3gsIHRpbHRfeT10
aWx0X3ksIHR3aXN0PXR3aXN0LCBhbHRpdHVkZV9hbmdsZT1hbHRpdHVkZV9hbmdsZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXppbXV0aF9hbmdsZT1hemltdXRoX2FuZ2xlKQogICAg
ICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIGNsaWNrKHNlbGYsIGVsZW1lbnQ9Tm9uZSwgYnV0
dG9uPTApOgpAQCAtMjczLDE5ICszMDcsMjIgQEAgY2xhc3MgV2luZG93KG9iamVjdCk6CiAKICAg
ICAgICAgcmV0dXJuIGhhbmRsZXMKIAotICAgIEBwcm9wZXJ0eQorICAgICMgVGhlIG1hbnkgInR5
cGU6IGlnbm9yZSIgY29tbWVudHMgaGVyZSBhbmQgYmVsb3cgYXJlIHRvIHNpbGVuY2UgbXlweSdz
CisgICAgIyAiRGVjb3JhdGVkIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWQiIGVycm9yLCB3aGljaCBp
cyBkdWUgdG8gYSBsaW1pdGF0aW9uCisgICAgIyBpbiBteXB5LCBzZWUgaHR0cHM6Ly9naXRodWIu
Y29tL3B5dGhvbi9teXB5L2lzc3Vlcy8xMzYyLgorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25v
cmUKICAgICBAY29tbWFuZAogICAgIGRlZiByZWN0KHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAid2luZG93L3JlY3QiKQogCi0g
ICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5k
CiAgICAgZGVmIHNpemUoc2VsZik6CiAgICAgICAgICIiIkdldHMgdGhlIHdpbmRvdyBzaXplIGFz
IGEgdHVwbGUgb2YgYCh3aWR0aCwgaGVpZ2h0KWAuIiIiCiAgICAgICAgIHJlY3QgPSBzZWxmLnJl
Y3QKICAgICAgICAgcmV0dXJuIChyZWN0WyJ3aWR0aCJdLCByZWN0WyJoZWlnaHQiXSkKIAotICAg
IEBzaXplLnNldHRlcgorICAgIEBzaXplLnNldHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29t
bWFuZAogICAgIGRlZiBzaXplKHNlbGYsIG5ld19zaXplKToKICAgICAgICAgIiIiU2V0IHdpbmRv
dyBzaXplIGJ5IHBhc3NpbmcgYSB0dXBsZSBvZiBgKHdpZHRoLCBoZWlnaHQpYC4iIiIKQEAgLTI5
MywxNCArMzMwLDE0IEBAIGNsYXNzIFdpbmRvdyhvYmplY3QpOgogICAgICAgICBib2R5ID0geyJ3
aWR0aCI6IHdpZHRoLCAiaGVpZ2h0IjogaGVpZ2h0fQogICAgICAgICBzZWxmLnNlc3Npb24uc2Vu
ZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAid2luZG93L3JlY3QiLCBib2R5KQogCi0gICAgQHBy
b3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAg
ZGVmIHBvc2l0aW9uKHNlbGYpOgogICAgICAgICAiIiJHZXRzIHRoZSB3aW5kb3cgcG9zaXRpb24g
YXMgYSB0dXBsZSBvZiBgKHgsIHkpYC4iIiIKICAgICAgICAgcmVjdCA9IHNlbGYucmVjdAogICAg
ICAgICByZXR1cm4gKHJlY3RbIngiXSwgcmVjdFsieSJdKQogCi0gICAgQHBvc2l0aW9uLnNldHRl
cgorICAgIEBwb3NpdGlvbi5zZXR0ZXIgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAg
ICBkZWYgcG9zaXRpb24oc2VsZiwgbmV3X3Bvc2l0aW9uKToKICAgICAgICAgIiIiU2V0IHdpbmRv
dyBwb3NpdGlvbiBieSBwYXNzaW5nIGEgdHVwbGUgb2YgYCh4LCB5KWAuIiIiCkBAIC0zMzgsNiAr
Mzc1LDQyIEBAIGNsYXNzIEZyYW1lKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBjbHModXVpZCwg
c2Vzc2lvbikKIAogCitjbGFzcyBTaGFkb3dSb290KG9iamVjdCk6CisgICAgaWRlbnRpZmllciA9
ICJzaGFkb3ctNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHNlc3Npb24sIGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIENvbnN0cnVjdCBhIG5l
dyBzaGFkb3cgcm9vdCByZXByZXNlbnRhdGlvbi4KKworICAgICAgICA6cGFyYW0gaWQ6IFNoYWRv
dyByb290IFVVSUQgd2hpY2ggbXVzdCBiZSB1bmlxdWUgYWNyb3NzCisgICAgICAgICAgICBhbGwg
YnJvd3NpbmcgY29udGV4dHMuCisgICAgICAgIDpwYXJhbSBzZXNzaW9uOiBDdXJyZW50IGBgd2Vi
ZHJpdmVyLlNlc3Npb25gYC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuaWQgPSBpZAorICAg
ICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYg
ZnJvbV9qc29uKGNscywganNvbiwgc2Vzc2lvbik6CisgICAgICAgIHV1aWQgPSBqc29uW1NoYWRv
d1Jvb3QuaWRlbnRpZmllcl0KKyAgICAgICAgcmV0dXJuIGNscyh1dWlkLCBzZXNzaW9uKQorCisg
ICAgZGVmIHNlbmRfc2hhZG93X2NvbW1hbmQoc2VsZiwgbWV0aG9kLCB1cmksIGJvZHk9Tm9uZSk6
CisgICAgICAgIHVybCA9ICJzaGFkb3cve30ve30iLmZvcm1hdChzZWxmLmlkLCB1cmkpCisgICAg
ICAgIHJldHVybiBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9uX2NvbW1hbmQobWV0aG9kLCB1cmws
IGJvZHkpCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBmaW5kX2VsZW1lbnQoc2VsZiwgc3RyYXRl
Z3ksIHNlbGVjdG9yKToKKyAgICAgICAgYm9keSA9IHsidXNpbmciOiBzdHJhdGVneSwKKyAgICAg
ICAgICAgICAgICAidmFsdWUiOiBzZWxlY3Rvcn0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9z
aGFkb3dfY29tbWFuZCgiUE9TVCIsICJlbGVtZW50IiwgYm9keSkKKworICAgIEBjb21tYW5kCisg
ICAgZGVmIGZpbmRfZWxlbWVudHMoc2VsZiwgc3RyYXRlZ3ksIHNlbGVjdG9yKToKKyAgICAgICAg
Ym9keSA9IHsidXNpbmciOiBzdHJhdGVneSwKKyAgICAgICAgICAgICAgICAidmFsdWUiOiBzZWxl
Y3Rvcn0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zaGFkb3dfY29tbWFuZCgiUE9TVCIsICJl
bGVtZW50cyIsIGJvZHkpCisKKwogY2xhc3MgRmluZChvYmplY3QpOgogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBzZXNzaW9uKToKICAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgpAQCAtMzY1
LDcgKzQzOCw3IEBAIGNsYXNzIENvb2tpZXMob2JqZWN0KToKICAgICAgICAgY29va2llID0geyJu
YW1lIjogbmFtZSwKICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IE5vbmV9CiAKLSAgICAgICAg
aWYgaXNpbnN0YW5jZShuYW1lLCBzdHJpbmdfdHlwZXMpOgorICAgICAgICBpZiBpc2luc3RhbmNl
KG5hbWUsIHN0cik6CiAgICAgICAgICAgICBjb29raWVbInZhbHVlIl0gPSB2YWx1ZQogICAgICAg
ICBlbGlmIGhhc2F0dHIodmFsdWUsICJ2YWx1ZSIpOgogICAgICAgICAgICAgY29va2llWyJ2YWx1
ZSJdID0gdmFsdWUudmFsdWUKQEAgLTM4NCwxMiArNDU3LDEyIEBAIGNsYXNzIFVzZXJQcm9tcHQo
b2JqZWN0KToKICAgICBkZWYgYWNjZXB0KHNlbGYpOgogICAgICAgICBzZWxmLnNlc3Npb24uc2Vu
ZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAiYWxlcnQvYWNjZXB0IikKIAotICAgIEBwcm9wZXJ0
eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB0
ZXh0KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21t
YW5kKCJHRVQiLCAiYWxlcnQvdGV4dCIpCiAKLSAgICBAdGV4dC5zZXR0ZXIKKyAgICBAdGV4dC5z
ZXR0ZXIgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgdGV4dChzZWxmLCB2
YWx1ZSk6CiAgICAgICAgIGJvZHkgPSB7InRleHQiOiB2YWx1ZX0KQEAgLTQwMSw4ICs0NzQsMTYg
QEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgICAgICAgICAgICAgICBob3N0LAogICAgICAg
ICAgICAgICAgICBwb3J0LAogICAgICAgICAgICAgICAgICB1cmxfcHJlZml4PSIvIiwKKyAgICAg
ICAgICAgICAgICAgZW5hYmxlX2JpZGk9RmFsc2UsCiAgICAgICAgICAgICAgICAgIGNhcGFiaWxp
dGllcz1Ob25lLAogICAgICAgICAgICAgICAgICBleHRlbnNpb249Tm9uZSk6CisKKyAgICAgICAg
aWYgZW5hYmxlX2JpZGk6CisgICAgICAgICAgICBpZiBjYXBhYmlsaXRpZXMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzLnNldGRlZmF1bHQoImFsd2F5c01hdGNoIiwg
e30pLnVwZGF0ZSh7IndlYlNvY2tldFVybCI6IFRydWV9KQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSB7ImFsd2F5c01hdGNoIjogeyJ3ZWJTb2NrZXRV
cmwiOiBUcnVlfX0KKwogICAgICAgICBzZWxmLnRyYW5zcG9ydCA9IHRyYW5zcG9ydC5IVFRQV2ly
ZVByb3RvY29sKGhvc3QsIHBvcnQsIHVybF9wcmVmaXgpCiAgICAgICAgIHNlbGYucmVxdWVzdGVk
X2NhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcwogICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9
IE5vbmUKQEAgLTQxMCw2ICs0OTEsOCBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAg
IHNlbGYudGltZW91dHMgPSBOb25lCiAgICAgICAgIHNlbGYud2luZG93ID0gTm9uZQogICAgICAg
ICBzZWxmLmZpbmQgPSBOb25lCisgICAgICAgIHNlbGYuZW5hYmxlX2JpZGkgPSBlbmFibGVfYmlk
aQorICAgICAgICBzZWxmLmJpZGlfc2Vzc2lvbiA9IE5vbmUKICAgICAgICAgc2VsZi5leHRlbnNp
b24gPSBOb25lCiAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX2NscyA9IGV4dGVuc2lvbgogCkBAIC00
MzYsNiArNTE5LDkgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgIGRlZiBfX2RlbF9fKHNl
bGYpOgogICAgICAgICBzZWxmLmVuZCgpCiAKKyAgICBkZWYgbWF0Y2goc2VsZiwgY2FwYWJpbGl0
aWVzKToKKyAgICAgICAgcmV0dXJuIHNlbGYucmVxdWVzdGVkX2NhcGFiaWxpdGllcyA9PSBjYXBh
YmlsaXRpZXMKKwogICAgIGRlZiBzdGFydChzZWxmKToKICAgICAgICAgIiIiU3RhcnQgYSBuZXcg
V2ViRHJpdmVyIHNlc3Npb24uCiAKQEAgLTQ1OCw2ICs1NDQsMTQgQEAgY2xhc3MgU2Vzc2lvbihv
YmplY3QpOgogICAgICAgICBzZWxmLnNlc3Npb25faWQgPSB2YWx1ZVsic2Vzc2lvbklkIl0KICAg
ICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSB2YWx1ZVsiY2FwYWJpbGl0aWVzIl0KIAorICAgICAg
ICBpZiAid2ViU29ja2V0VXJsIiBpbiBzZWxmLmNhcGFiaWxpdGllczoKKyAgICAgICAgICAgIHNl
bGYuYmlkaV9zZXNzaW9uID0gQmlkaVNlc3Npb24uZnJvbV9odHRwKHNlbGYuc2Vzc2lvbl9pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuY2FwYWJpbGl0aWVzKQorICAgICAgICBlbGlmIHNlbGYuZW5hYmxlX2JpZGk6CisgICAgICAg
ICAgICBzZWxmLmVuZCgpCisgICAgICAgICAgICByYWlzZSBlcnJvci5TZXNzaW9uTm90Q3JlYXRl
ZEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiUmVxdWVzdGVkIGJpZGkgc2Vzc2lvbiwgYnV0
IHdlYlNvY2tldFVybCBjYXBhYmlsaXR5IG5vdCBmb3VuZCIpCisKICAgICAgICAgaWYgc2VsZi5l
eHRlbnNpb25fY2xzOgogICAgICAgICAgICAgc2VsZi5leHRlbnNpb24gPSBzZWxmLmV4dGVuc2lv
bl9jbHMoc2VsZikKIApAQCAtNDcwLDcgKzU2NCw3IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToK
IAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnNlbmRfY29tbWFuZCgiREVMRVRFIiwg
InNlc3Npb24vJXMiICUgc2VsZi5zZXNzaW9uX2lkKQotICAgICAgICBleGNlcHQgZXJyb3IuSW52
YWxpZFNlc3Npb25JZEV4Y2VwdGlvbjoKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBlcnJvci5J
bnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9uKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZmlu
YWxseToKICAgICAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUKQEAgLTU0NSwxMiArNjM5
LDEyIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgdXJsID0gdXJscGFyc2UudXJs
am9pbigic2Vzc2lvbi8lcy8iICUgc2VsZi5zZXNzaW9uX2lkLCB1cmkpCiAgICAgICAgIHJldHVy
biBzZWxmLnNlbmRfY29tbWFuZChtZXRob2QsIHVybCwgYm9keSwgdGltZW91dCkKIAotICAgIEBw
cm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAg
IGRlZiB1cmwoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5k
KCJHRVQiLCAidXJsIikKIAotICAgIEB1cmwuc2V0dGVyCisgICAgQHVybC5zZXR0ZXIgICMgdHlw
ZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgdXJsKHNlbGYsIHVybCk6CiAgICAgICAg
IGlmIHVybHBhcnNlLnVybHNwbGl0KHVybCkubmV0bG9jIGlzIE5vbmU6CkBAIC01NzAsMTIgKzY2
NCwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgZGVmIHJlZnJlc2goc2VsZik6CiAg
ICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgInJlZnJlc2gi
KQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBj
b21tYW5kCiAgICAgZGVmIHRpdGxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nl
c3Npb25fY29tbWFuZCgiR0VUIiwgInRpdGxlIikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9w
ZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiBzb3VyY2Uoc2VsZik6
CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAic291cmNl
IikKQEAgLTU4NywxMiArNjgxLDEyIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKIAogICAgICAg
ICByZXR1cm4gdmFsdWVbImhhbmRsZSJdCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkg
ICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgd2luZG93X2hhbmRsZShzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ3aW5k
b3ciKQogCi0gICAgQHdpbmRvd19oYW5kbGUuc2V0dGVyCisgICAgQHdpbmRvd19oYW5kbGUuc2V0
dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHdpbmRvd19oYW5kbGUo
c2VsZiwgaGFuZGxlKToKICAgICAgICAgYm9keSA9IHsiaGFuZGxlIjogaGFuZGxlfQpAQCAtNjA4
LDEyICs3MDIsMTIgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBz
ZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgdXJsLCBib2R5KQogCi0gICAgQHByb3Bl
cnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVm
IGhhbmRsZXMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5k
KCJHRVQiLCAid2luZG93L2hhbmRsZXMiKQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5
ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIGFjdGl2ZV9lbGVtZW50KHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgImVs
ZW1lbnQvYWN0aXZlIikKQEAgLTY4Myw3ICs3NzcsNiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6
CiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vz
c2lvbl9jb21tYW5kKCJHRVQiLCAic2NyZWVuc2hvdCIpCiAKLQogY2xhc3MgRWxlbWVudChvYmpl
Y3QpOgogICAgICIiIgogICAgIFJlcHJlc2VudGF0aW9uIG9mIGEgd2ViIGVsZW1lbnQuCkBAIC03
NDIsMTIgKzgzNSwxMiBAQCBjbGFzcyBFbGVtZW50KG9iamVjdCk6CiAgICAgZGVmIHNlbmRfa2V5
cyhzZWxmLCB0ZXh0KToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQo
IlBPU1QiLCAidmFsdWUiLCB7InRleHQiOiB0ZXh0fSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBw
cm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB0ZXh0KHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInRleHQi
KQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBj
b21tYW5kCiAgICAgZGVmIG5hbWUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxl
bWVudF9jb21tYW5kKCJHRVQiLCAibmFtZSIpCkBAIC03NTYsMTIgKzg0OSwxMiBAQCBjbGFzcyBF
bGVtZW50KG9iamVjdCk6CiAgICAgZGVmIHN0eWxlKHNlbGYsIHByb3BlcnR5X25hbWUpOgogICAg
ICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgImNzcy8lcyIgJSBw
cm9wZXJ0eV9uYW1lKQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGln
bm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHJlY3Qoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAicmVjdCIpCiAKLSAgICBAcHJvcGVydHkK
KyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgc2Vs
ZWN0ZWQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJH
RVQiLCAic2VsZWN0ZWQiKQpAQCAtNzcwLDYgKzg2MywxMSBAQCBjbGFzcyBFbGVtZW50KG9iamVj
dCk6CiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRf
ZWxlbWVudF9jb21tYW5kKCJHRVQiLCAic2NyZWVuc2hvdCIpCiAKKyAgICBAcHJvcGVydHkgICMg
dHlwZTogaWdub3JlCisgICAgQGNvbW1hbmQKKyAgICBkZWYgc2hhZG93X3Jvb3Qoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAic2hhZG93IikK
KwogICAgIEBjb21tYW5kCiAgICAgZGVmIGF0dHJpYnV0ZShzZWxmLCBuYW1lKToKICAgICAgICAg
cmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJhdHRyaWJ1dGUvJXMiICUg
bmFtZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJk
cml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkKaW5kZXggODM3OTY1NmQ3M2RkLi5hNDEz
YTk1MGQ0OGUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5CkBAIC0xLDEyICsxLDE3IEBA
CiBpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBqc29uCiAKLWZyb20gc2l4IGltcG9ydCBpdGVy
dmFsdWVzCitmcm9tIHR5cGluZyBpbXBvcnQgQ2xhc3NWYXIsIERlZmF1bHREaWN0LCBUeXBlCiAK
IAogY2xhc3MgV2ViRHJpdmVyRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgaHR0cF9zdGF0dXMg
PSBOb25lCi0gICAgc3RhdHVzX2NvZGUgPSBOb25lCisgICAgIyBUaGUgc3RhdHVzX2NvZGUgY2xh
c3MgdmFyaWFibGUgaXMgdXNlZCB0byBtYXAgdGhlIEpTT04gRXJyb3IgQ29kZSAoc2VlCisgICAg
IyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyLyNlcnJvcnMpIHRvIGEgV2ViRHJpdmVy
RXhjZXB0aW9uIHN1YmNsYXNzLgorICAgICMgSG93ZXZlciwgaHR0cF9zdGF0dXMgbmVlZCBub3Qg
bWF0Y2gsIGFuZCBib3RoIGFyZSBzZXQgYXMgaW5zdGFuY2UKKyAgICAjIHZhcmlhYmxlcywgc2hh
ZG93aW5nIHRoZSBjbGFzcyB2YXJpYWJsZXMuIFRPRE86IE1hdGNoIG9uIGJvdGggaHR0cF9zdGF0
dXMKKyAgICAjIGFuZCBzdGF0dXNfY29kZSBhbmQgbGV0IHRoZXNlIGJlIGNsYXNzIHZhcmlhYmxl
cyBvbmx5LgorICAgIGh0dHBfc3RhdHVzID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltpbnRdCisg
ICAgc3RhdHVzX2NvZGUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW3N0cl0KIAogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBodHRwX3N0YXR1cz1Ob25lLCBzdGF0dXNfY29kZT1Ob25lLCBtZXNzYWdl
PU5vbmUsIHN0YWNrdHJhY2U9Tm9uZSk6CiAgICAgICAgIHN1cGVyKFdlYkRyaXZlckV4Y2VwdGlv
biwgc2VsZikKQEAgLTM0LDYgKzM5LDExIEBAIGNsYXNzIFdlYkRyaXZlckV4Y2VwdGlvbihFeGNl
cHRpb24pOgogICAgICAgICByZXR1cm4gbWVzc2FnZQogCiAKK2NsYXNzIERldGFjaGVkU2hhZG93
Um9vdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA0
CisgICAgc3RhdHVzX2NvZGUgPSAiZGV0YWNoZWQgc2hhZG93IHJvb3QiCisKKwogY2xhc3MgRWxl
bWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICBo
dHRwX3N0YXR1cyA9IDQwMAogICAgIHN0YXR1c19jb2RlID0gImVsZW1lbnQgY2xpY2sgaW50ZXJj
ZXB0ZWQiCkBAIC0xMTQsNiArMTI0LDExIEBAIGNsYXNzIE5vU3VjaEZyYW1lRXhjZXB0aW9uKFdl
YkRyaXZlckV4Y2VwdGlvbik6CiAgICAgc3RhdHVzX2NvZGUgPSAibm8gc3VjaCBmcmFtZSIKIAog
CitjbGFzcyBOb1N1Y2hTaGFkb3dSb290RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6Cisg
ICAgaHR0cF9zdGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29kZSA9ICJubyBzdWNoIHNoYWRvdyBy
b290IgorCisKIGNsYXNzIE5vU3VjaFdpbmRvd0V4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24p
OgogICAgIGh0dHBfc3RhdHVzID0gNDA0CiAgICAgc3RhdHVzX2NvZGUgPSAibm8gc3VjaCB3aW5k
b3ciCkBAIC0yMDksNyArMjI0LDcgQEAgZGVmIGdldChlcnJvcl9jb2RlKToKICAgICByZXR1cm4g
X2Vycm9ycy5nZXQoZXJyb3JfY29kZSwgV2ViRHJpdmVyRXhjZXB0aW9uKQogCiAKLV9lcnJvcnMg
PSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdCgpCi1mb3IgaXRlbSBpbiBsaXN0KGl0ZXJ2YWx1ZXMo
bG9jYWxzKCkpKToKK19lcnJvcnM6IERlZmF1bHREaWN0W3N0ciwgVHlwZVtXZWJEcml2ZXJFeGNl
cHRpb25dXSA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KCkKK2ZvciBpdGVtIGluIGxpc3QobG9j
YWxzKCkudmFsdWVzKCkpOgogICAgIGlmIHR5cGUoaXRlbSkgPT0gdHlwZSBhbmQgaXNzdWJjbGFz
cyhpdGVtLCBXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgICAgICBfZXJyb3JzW2l0ZW0uc3RhdHVz
X2NvZGVdID0gaXRlbQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9wcm90b2NvbC5weQppbmRleCBjODEx
ZjZmMjZkYjcuLmU3MWUwMWQ2MjA4MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wu
cHkKQEAgLTIsOCArMiw2IEBAIGltcG9ydCBqc29uCiAKIGltcG9ydCB3ZWJkcml2ZXIKIAotZnJv
bSBzaXggaW1wb3J0IGl0ZXJpdGVtcwotCiAKICIiIldlYkRyaXZlciB3aXJlIHByb3RvY29sIGNv
ZGVjcy4iIiIKIApAQCAtMjIsNiArMjAsOCBAQCBjbGFzcyBFbmNvZGVyKGpzb24uSlNPTkVuY29k
ZXIpOgogICAgICAgICAgICAgcmV0dXJuIHt3ZWJkcml2ZXIuRnJhbWUuaWRlbnRpZmllcjogb2Jq
LmlkfQogICAgICAgICBlbGlmIGlzaW5zdGFuY2Uob2JqLCB3ZWJkcml2ZXIuV2luZG93KToKICAg
ICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLkZyYW1lLmlkZW50aWZpZXI6IG9iai5pZH0KKyAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgd2ViZHJpdmVyLlNoYWRvd1Jvb3QpOgorICAgICAg
ICAgICAgcmV0dXJuIHt3ZWJkcml2ZXIuU2hhZG93Um9vdC5pZGVudGlmaWVyOiBvYmouaWR9CiAg
ICAgICAgIHJldHVybiBzdXBlcihFbmNvZGVyLCBzZWxmKS5kZWZhdWx0KG9iaikKIAogCkBAIC00
MCw2ICs0MCw4IEBAIGNsYXNzIERlY29kZXIoanNvbi5KU09ORGVjb2Rlcik6CiAgICAgICAgICAg
ICByZXR1cm4gd2ViZHJpdmVyLkZyYW1lLmZyb21fanNvbihwYXlsb2FkLCBzZWxmLnNlc3Npb24p
CiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShwYXlsb2FkLCBkaWN0KSBhbmQgd2ViZHJpdmVyLldp
bmRvdy5pZGVudGlmaWVyIGluIHBheWxvYWQ6CiAgICAgICAgICAgICByZXR1cm4gd2ViZHJpdmVy
LldpbmRvdy5mcm9tX2pzb24ocGF5bG9hZCwgc2VsZi5zZXNzaW9uKQorICAgICAgICBlbGlmIGlz
aW5zdGFuY2UocGF5bG9hZCwgZGljdCkgYW5kIHdlYmRyaXZlci5TaGFkb3dSb290LmlkZW50aWZp
ZXIgaW4gcGF5bG9hZDoKKyAgICAgICAgICAgIHJldHVybiB3ZWJkcml2ZXIuU2hhZG93Um9vdC5m
cm9tX2pzb24ocGF5bG9hZCwgc2VsZi5zZXNzaW9uKQogICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo
cGF5bG9hZCwgZGljdCk6Ci0gICAgICAgICAgICByZXR1cm4ge2s6IHNlbGYub2JqZWN0X2hvb2so
dikgZm9yIGssIHYgaW4gaXRlcml0ZW1zKHBheWxvYWQpfQorICAgICAgICAgICAgcmV0dXJuIHtr
OiBzZWxmLm9iamVjdF9ob29rKHYpIGZvciBrLCB2IGluIHBheWxvYWQuaXRlbXMoKX0KICAgICAg
ICAgcmV0dXJuIHBheWxvYWQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weQppbmRl
eCBlODM2YjE5YTE1OGQuLjVhMWNlMjg5ZWMwOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Ry
YW5zcG9ydC5weQpAQCAtMSwxMCArMSw5IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHNlbGVjdAog
Ci1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlLCBQWTMKLWZyb20gc2l4Lm1vdmVzLmNvbGxlY3Rp
b25zX2FiYyBpbXBvcnQgTWFwcGluZwotZnJvbSBzaXgubW92ZXMuaHR0cF9jbGllbnQgaW1wb3J0
IEhUVFBDb25uZWN0aW9uCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVy
bHBhcnNlCitmcm9tIGh0dHAuY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgorZnJvbSB0eXBp
bmcgaW1wb3J0IERpY3QsIExpc3QsIE1hcHBpbmcsIFNlcXVlbmNlLCBUdXBsZQorZnJvbSB1cmxs
aWIgaW1wb3J0IHBhcnNlIGFzIHVybHBhcnNlCiAKIGZyb20gLiBpbXBvcnQgZXJyb3IKIApAQCAt
MTQsNyArMTMsNyBAQCBmcm9tIC4gaW1wb3J0IGVycm9yCiBtaXNzaW5nID0gb2JqZWN0KCkKIAog
Ci1jbGFzcyBSZXNwb25zZUhlYWRlcnMoTWFwcGluZyk6CitjbGFzcyBSZXNwb25zZUhlYWRlcnMo
TWFwcGluZ1tzdHIsIHN0cl0pOgogICAgICIiIlJlYWQtb25seSBkaWN0aW9uYXJ5LWxpa2UgQVBJ
IGZvciBhY2Nlc3NpbmcgcmVzcG9uc2UgaGVhZGVycy4KIAogICAgIFRoaXMgY2xhc3M6CkBAIC0y
MywxMSArMjIsOSBAQCBjbGFzcyBSZXNwb25zZUhlYWRlcnMoTWFwcGluZyk6CiAgICAgICAqIEhh
cyBjYXNlLWluc2Vuc2l0aXZlIGhlYWRlciBsb29rdXAuCiAgICAgICAqIEFsd2F5cyByZXR1cm5z
IGFsbCBoZWFkZXIgdmFsdWVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBuYW1lLCBzZXBhcmF0ZWQgYnkK
ICAgICAgICAgY29tbWFzLgotCi0gICAgSXQgZG9lcyBub3QgZW5zdXJlIGhlYWRlciB0eXBlcyAo
ZS5nLiBiaW5hcnkgdnMgc3RyaW5nKS4KICAgICAiIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
aXRlbXMpOgotICAgICAgICBzZWxmLmhlYWRlcnNfZGljdCA9IHt9CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGl0ZW1zOiBTZXF1ZW5jZVtUdXBsZVtzdHIsIHN0cl1dKToKKyAgICAgICAgc2VsZi5o
ZWFkZXJzX2RpY3Q6IERpY3Rbc3RyLCBMaXN0W3N0cl1dID0ge30KICAgICAgICAgZm9yIGtleSwg
dmFsdWUgaW4gaXRlbXM6CiAgICAgICAgICAgICBrZXkgPSBrZXkubG93ZXIoKQogICAgICAgICAg
ICAgaWYga2V5IG5vdCBpbiBzZWxmLmhlYWRlcnNfZGljdDoKQEAgLTE0NSwxNSArMTQyLDE4IEBA
IGNsYXNzIEhUVFBXaXJlUHJvdG9jb2wob2JqZWN0KToKICAgICBkZWYgY2xvc2Uoc2VsZik6CiAg
ICAgICAgICIiIkNsb3NlcyB0aGUgY3VycmVudCBIVFRQIGNvbm5lY3Rpb24sIGlmIHRoZXJlIGlz
IG9uZS4iIiIKICAgICAgICAgaWYgc2VsZi5fY29ubjoKLSAgICAgICAgICAgIHNlbGYuX2Nvbm4u
Y2xvc2UoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm4uY2xv
c2UoKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgIyBUaGUg
cmVtb3RlIGNsb3NlZCB0aGUgY29ubmVjdGlvbgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgc2VsZi5fY29ubiA9IE5vbmUKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBjb25uZWN0aW9u
KHNlbGYpOgogICAgICAgICAiIiJHZXRzIHRoZSBjdXJyZW50IEhUVFAgY29ubmVjdGlvbiwgb3Ig
bGF6aWx5IGNyZWF0ZXMgb25lLiIiIgogICAgICAgICBpZiBub3Qgc2VsZi5fY29ubjoKICAgICAg
ICAgICAgIGNvbm5fa3dhcmdzID0ge30KLSAgICAgICAgICAgIGlmIG5vdCBQWTM6Ci0gICAgICAg
ICAgICAgICAgY29ubl9rd2FyZ3NbInN0cmljdCJdID0gVHJ1ZQogICAgICAgICAgICAgIyBXZSBh
cmUgbm90IHNldHRpbmcgYW4gSFRUUCB0aW1lb3V0IG90aGVyIHRoYW4gdGhlIGRlZmF1bHQgd2hl
biB0aGUKICAgICAgICAgICAgICMgY29ubmVjdGlvbiBpdHMgY3JlYXRlZC4gVGhlIHNlbmQgbWV0
aG9kIGhhcyBhIHRpbWVvdXQgdmFsdWUgaWYgbmVlZGVkLgogICAgICAgICAgICAgc2VsZi5fY29u
biA9IEhUVFBDb25uZWN0aW9uKHNlbGYuaG9zdCwgc2VsZi5wb3J0LCAqKmNvbm5fa3dhcmdzKQpA
QCAtMjM1LDcgKzIzNSw3IEBAIGNsYXNzIEhUVFBXaXJlUHJvdG9jb2wob2JqZWN0KToKICAgICAg
ICAgcmV0dXJuIFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSwgZGVjb2Rlcj1kZWNvZGVyLCAq
KmNvZGVjX2t3YXJncykKIAogICAgIGRlZiBfcmVxdWVzdChzZWxmLCBtZXRob2QsIHVyaSwgcGF5
bG9hZCwgaGVhZGVycz1Ob25lLCB0aW1lb3V0PU5vbmUpOgotICAgICAgICBpZiBpc2luc3RhbmNl
KHBheWxvYWQsIHRleHRfdHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgc3Ry
KToKICAgICAgICAgICAgIHBheWxvYWQgPSBwYXlsb2FkLmVuY29kZSgidXRmLTgiKQogCiAgICAg
ICAgIGlmIGhlYWRlcnMgaXMgTm9uZToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAppbmRleCAwYWRmMGE5NGIxNWQuLjRh
MDc5YzcyNWJkNiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci9SRUFETUUucnN0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvUkVBRE1FLnJzdApAQCAtNiw3ICs2LDYgQEAgd3B0cnVubmVyIGlzIGEg
aGFybmVzcyBmb3IgcnVubmluZyB0aGUgVzNDIGB3ZWItcGxhdGZvcm0tdGVzdHMgdGVzdHN1aXRl
YF8uCiAuLiB0b2N0cmVlOjoKICAgIDptYXhkZXB0aDogMgogCi0gICBkb2NzL3VzYWdlCiAgICBk
b2NzL2V4cGVjdGF0aW9uCiAgICBkb2NzL2Rlc2lnbgogICAgZG9jcy9pbnRlcm5hbHMKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvZG9jcy91
c2FnZS5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL2Rv
Y3MvdXNhZ2UucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NWZkOTdiZjZjMTIu
LjAwMDAwMDAwMDAwMAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL2RvY3MvdXNhZ2UucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMjQyICswLDAgQEAKLUdl
dHRpbmcgU3RhcnRlZAotPT09PT09PT09PT09PT09Ci0KLUluc3RhbGxpbmcgd3B0cnVubmVyCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgZWFzaWVzdCB3YXkgdG8gaW5zdGFsbCB3cHRydW5u
ZXIgaXMgaW50byBhIHZpcnR1YWxlbnYsIHVzaW5nIHBpcDo6Ci0KLSAgdmlydHVhbGVudiB3cHRy
dW5uZXIKLSAgY2Qgd3B0cnVubmVyCi0gIHNvdXJjZSBiaW4vYWN0aXZhdGUKLSAgcGlwIGluc3Rh
bGwgd3B0cnVubmVyCi0KLVRoaXMgd2lsbCBpbnN0YWxsIHRoZSBiYXNlIGRlcGVuZGVuY2llcyBm
b3Igd3B0cnVubmVyLCBidXQgbm90IGFueQotZXh0cmEgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIHRv
IHRlc3QgYWdhaW5zdCBzcGVjaWZpYyBicm93c2Vycy4gSW4KLW9yZGVyIHRvIGRvIHRoaXMgeW91
IG11c3QgdXNlIHVzZSB0aGUgZXh0cmEgcmVxdWlyZW1lbnRzIGZpbGVzIGluCi1gYCRWSVJUVUFM
X0VOVi9yZXF1aXJlbWVudHMvcmVxdWlyZW1lbnRzX2Jyb3dzZXIudHh0YGAuIEZvciBleGFtcGxl
LAotaW4gb3JkZXIgdG8gdGVzdCBhZ2FpbnN0IEZpcmVmb3ggeW91IHdvdWxkIGhhdmUgdG8gcnVu
OjoKLQotICBwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMvcmVxdWlyZW1lbnRzX2ZpcmVmb3gu
dHh0Ci0KLUlmIHlvdSBpbnRlbmQgdG8gd29yayBvbiB0aGUgY29kZSwgdGhlIGBgLWVgYCBvcHRp
b24gdG8gcGlwIHNob3VsZCBiZQotdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGEgc291cmNlIGNo
ZWNrb3V0IGkuZS4gaW5zaWRlIGEgdmlydHVhbAotZW52aXJvbm1lbnQgY3JlYXRlZCBhcyBhYm92
ZTo6Ci0KLSAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd3B0cnVubmVyLmdpdAot
ICBjZCB3cHRydW5uZXIKLSAgcGlwIGluc3RhbGwgLWUgLi8KLQotSW4gYWRkaXRpb24gdG8gdGhl
IGRlcGVuZGVuY2llcyBpbnN0YWxsZWQgYnkgcGlwLCB3cHRydW5uZXIgcmVxdWlyZXMKLWEgY29w
eSBvZiB0aGUgd2ViLXBsYXRmb3JtLXRlc3RzIHJlcG9zaXRvcnkuIFRoaXMgY2FuIGJlIGxvY2F0
ZWQKLWFueXdoZXJlIG9uIHRoZSBmaWxlc3lzdGVtLCBidXQgdGhlIGVhc2llc3Qgb3B0aW9uIGlz
IHRvIHB1dCBpdAotdW5kZXIgdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhcyB0aGUgd3B0cnVu
bmVyIGNoZWNrb3V0OjoKLQotICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQuZ2l0Ci0KLUl0IGlzIGFsc28gbmVjZXNzYXJ5IHRvIGdlbmVyYXRlIGEg
d2ViLXBsYXRmb3JtLXRlc3RzIGBgTUFOSUZFU1QuanNvbmBgCi1maWxlLiBJdCdzIHJlY29tbWVu
ZGVkIHRvIGFsc28gcHV0IHRoYXQgdW5kZXIgdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhcwot
dGhlIHdwdHJ1bm5lciBjaGVja291dCwgaW4gYSBkaXJlY3RvcnkgbmFtZWQgYGBtZXRhYGA6Ogot
Ci0gIG1rZGlyIG1ldGEKLSAgY2Qgd2ViLXBsYXRmb3JtLXRlc3RzCi0gIHB5dGhvbiBtYW5pZmVz
dCAtLXBhdGggLi4vbWV0YS9NQU5JRkVTVC5qc29uCi0KLVRoZSBgYE1BTklGRVNULmpzb25gYCBm
aWxlIG5lZWRzIHRvIGJlIHJlZ2VuZXJhdGVkIGVhY2ggdGltZSB0aGUKLXdlYi1wbGF0Zm9ybS10
ZXN0cyBjaGVja291dCBpcyB1cGRhdGVkLiBUbyBhaWQgd2l0aCB0aGUgdXBkYXRlIHByb2Nlc3MK
LXRoZXJlIGlzIGEgdG9vbCBjYWxsZWQgYGB3cHR1cGRhdGVgYCwgd2hpY2ggaXMgZGVzY3JpYmVk
IGluCi06cmVmOmB3cHR1cGRhdGUtbGFiZWxgLgotCi1SdW5uaW5nIHRoZSBUZXN0cwotLS0tLS0t
LS0tLS0tLS0tLS0KLQotQSB0ZXN0IHJ1biBpcyBzdGFydGVkIHVzaW5nIHRoZSBgYHdwdHJ1bm5l
cmBgIGNvbW1hbmQuICBUaGUgY29tbWFuZAotdGFrZXMgbXVsdGlwbGUgb3B0aW9ucywgb2Ygd2hp
Y2ggdGhlIGZvbGxvd2luZyBhcmUgbW9zdCBzaWduaWZpY2FudDoKLQotYGAtLXByb2R1Y3RgYCAo
ZGVmYXVsdHMgdG8gYGZpcmVmb3hgKQotICBUaGUgcHJvZHVjdCB0byB0ZXN0IGFnYWluc3Q6IGBj
aHJvbWVgLCBgZmlyZWZveGAsIG9yIGBzZXJ2b2AuCi0KLWBgLS1iaW5hcnlgYCAocmVxdWlyZWQg
aWYgcHJvZHVjdCBpcyBgZmlyZWZveGAgb3IgYHNlcnZvYCkKLSAgVGhlIHBhdGggdG8gYSBiaW5h
cnkgZmlsZSBmb3IgdGhlIHByb2R1Y3QgKGJyb3dzZXIpIHRvIHRlc3QgYWdhaW5zdC4KLQotYGAt
LXdlYmRyaXZlci1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBgY2hyb21lYCkKLSAg
VGhlIHBhdGggdG8gYSBgKmRyaXZlcmAgYmluYXJ5OyBlLmcuLCBhIGBjaHJvbWVkcml2ZXJgIGJp
bmFyeS4KLQotYGAtLWNlcnR1dGlsLWJpbmFyeWBgIChyZXF1aXJlZCBpZiBwcm9kdWN0IGlzIGBm
aXJlZm94YCBbI11fKQotICBUaGUgcGF0aCB0byBhIGBjZXJ0dXRpbGAgYmluYXJ5IChmb3IgdGVz
dHMgdGhhdCBtdXN0IGJlIHJ1biBvdmVyIGh0dHBzKS4KLQotYGAtLW1ldGFkYXRhYGAgKHJlcXVp
cmVkIG9ubHkgd2hlbiBub3QgYHVzaW5nIGRlZmF1bHQgcGF0aHNgXykKLSAgVGhlIHBhdGggdG8g
YSBkaXJlY3RvcnkgY29udGFpbmluZyB0ZXN0IG1ldGFkYXRhLiBbI11fCi0KLWBgLS10ZXN0c2Bg
IChyZXF1aXJlZCBvbmx5IHdoZW4gbm90IGB1c2luZyBkZWZhdWx0IHBhdGhzYF8pCi0gIFRoZSBw
YXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYSB3ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tv
dXQuCi0KLWBgLS1wcmVmcy1yb290YGAgKHJlcXVpcmVkIG9ubHkgd2hlbiB0ZXN0aW5nIGEgRmly
ZWZveCBiaW5hcnkpCi0gIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRmlyZWZv
eCB0ZXN0LWhhcm5lc3MgcHJlZmVyZW5jZXMuIFsjXV8KLQotYGAtLWNvbmZpZ2BgIChzaG91bGQg
ZGVmYXVsdCB0byBgd3B0cnVubmVyLmRlZmF1bHQuaW5pYCkKLSAgVGhlIHBhdGggdG8gdGhlIGNv
bmZpZyAoaW5pKSBmaWxlLgotCi0uLiBbI10gVGhlIGBgLS1jZXJ0dXRpbC1iaW5hcnlgYCBvcHRp
b24gaXMgcmVxdWlyZWQgd2hlbiB0aGUgcHJvZHVjdCBpcwotICAgYGBmaXJlZm94YGAgdW5sZXNz
IGBgLS1zc2wtdHlwZT1ub25lYGAgaXMgc3BlY2lmaWVkLgotCi0uLiBbI10gVGhlIGBgLS1tZXRh
ZGF0YWBgIHBhdGggaXMgdG8gYSBkaXJlY3RvcnkgdGhhdCBjb250YWluczoKLQotICAqIGEgYGBN
QU5JRkVTVC5qc29uYGAgZmlsZSAodGhlIHdlYi1wbGF0Zm9ybS10ZXN0cyBkb2N1bWVudGF0aW9u
IGhhcwotICAgIGluc3RydWN0aW9ucyBvbiBnZW5lcmF0aW5nIHRoaXMgZmlsZSkKLSAgKiAob3B0
aW9uYWxseSkgYW55IGV4cGVjdGF0aW9uIGZpbGVzIChzZWUgOnJlZjpgd3B0dXBkYXRlLWxhYmVs
YCkKLQotLi4gWyNdIEV4YW1wbGUgYGAtLXByZWZzLXJvb3RgYCB2YWx1ZTogYGB+L21vemlsbGEt
Y2VudHJhbC90ZXN0aW5nL3Byb2ZpbGVzYGAuCi0KLVRoZXJlIGFyZSBhbHNvIGEgdmFyaWV0eSBv
ZiBvdGhlciBjb21tYW5kLWxpbmUgb3B0aW9ucyBhdmFpbGFibGU7IHVzZQotYGAtLWhlbHBgYCB0
byBsaXN0IHRoZW0uCi0KLVRoZSBmb2xsb3dpbmcgZXhhbXBsZXMgc2hvdyBob3cgdG8gc3RhcnQg
d3B0cnVubmVyIHdpdGggdmFyaW91cyBvcHRpb25zLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0KLVN0
YXJ0aW5nIHdwdHJ1bm5lcgotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBleGFtcGxlcyBiZWxv
dyBhc3N1bWUgdGhlIGZvbGxvd2luZyBkaXJlY3RvcnkgbGF5b3V0LAotdGhvdWdoIG5vIHNwZWNp
ZmljIGZvbGRlciBzdHJ1Y3R1cmUgaXMgcmVxdWlyZWQ6OgotCi0gIH4vdGVzdHR3Zi93cHRydW5u
ZXIgICAgICAgICAgIyB3cHRydW5uZXIgY2hlY2tvdXQKLSAgfi90ZXN0dHdmL3dlYi1wbGF0Zm9y
bS10ZXN0cyAjIHdlYi1wbGF0Zm9ybS10ZXN0cyBjaGVja291dAotICB+L3Rlc3R0d2YvbWV0YSAg
ICAgICAgICAgICAgICMgbWV0YWRhdGEKLQotVG8gdGVzdCBhIEZpcmVmb3ggTmlnaHRseSBidWls
ZCBpbiBhbiBPUyBYIGVudmlyb25tZW50LCB5b3UgbWlnaHQgc3RhcnQKLXdwdHJ1bm5lciB1c2lu
ZyBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIGV4YW1wbGU6OgotCi0gIHdwdHJ1
bm5lciAtLW1ldGFkYXRhPX4vdGVzdHR3Zi9tZXRhLyAtLXRlc3RzPX4vdGVzdHR3Zi93ZWItcGxh
dGZvcm0tdGVzdHMvIFwKLSAgICAtLWJpbmFyeT1+L21vemlsbGEtY2VudHJhbC9vYmoteDg2XzY0
LWFwcGxlLWRhcndpbjE0LjMuMC9kaXN0L05pZ2h0bHkuYXBwL0NvbnRlbnRzL01hY09TL2ZpcmVm
b3ggXAotICAgIC0tY2VydHV0aWwtYmluYXJ5PX4vbW96aWxsYS1jZW50cmFsL29iai14ODZfNjQt
YXBwbGUtZGFyd2luMTQuMy4wL3NlY3VyaXR5L25zcy9jbWQvY2VydHV0aWwvY2VydHV0aWwgXAot
ICAgIC0tcHJlZnMtcm9vdD1+L21vemlsbGEtY2VudHJhbC90ZXN0aW5nL3Byb2ZpbGVzCi0KLQot
QW5kIHRvIHRlc3QgYSBDaHJvbWl1bSBidWlsZCBpbiBhbiBPUyBYIGVudmlyb25tZW50LCB5b3Ug
bWlnaHQgc3RhcnQKLXdwdHJ1bm5lciB1c2luZyBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgZm9s
bG93aW5nIGV4YW1wbGU6OgotCi0gIHdwdHJ1bm5lciAtLW1ldGFkYXRhPX4vdGVzdHR3Zi9tZXRh
LyAtLXRlc3RzPX4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVzdHMvIFwKLSAgICAtLWJpbmFyeT1+
L2Nocm9taXVtL3NyYy9vdXQvUmVsZWFzZS9DaHJvbWl1bS5hcHAvQ29udGVudHMvTWFjT1MvQ2hy
b21pdW0gXAotICAgIC0td2ViZHJpdmVyLWJpbmFyeT0vdXNyL2xvY2FsL2Jpbi9jaHJvbWVkcml2
ZXIgLS1wcm9kdWN0PWNocm9tZQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUnVubmluZyB0ZXN0
IHN1YnNldHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRvIHJlc3RyaWN0IGEgdGVzdCBydW4g
anVzdCB0byB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgd2ViLXBsYXRmb3JtLXRlc3RzCi1zdWJkaXJl
Y3RvcnksIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSBuYW1lIGluIHRoZSBwb3NpdGlvbmFsIGFyZ3Vt
ZW50cyBhZnRlcgotdGhlIG9wdGlvbnM7IGZvciBleGFtcGxlLCBydW4ganVzdCB0aGUgdGVzdHMg
aW4gdGhlIGBkb21gIHN1YmRpcmVjdG9yeTo6Ci0KLSAgd3B0cnVubmVyIC0tbWV0YWRhdGE9fi90
ZXN0dHdmL21ldGEgLS10ZXN0cz1+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRlc3RzLyBcCi0gICAg
LS1iaW5hcnk9L3BhdGgvdG8vZmlyZWZveCAtLWNlcnR1dGlsLWJpbmFyeT0vcGF0aC90by9jZXJ0
dXRpbCBcCi0gICAgLS1wcmVmcy1yb290PS9wYXRoL3RvL3Rlc3RpbmcvcHJvZmlsZXMgXAotICAg
IGRvbQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SdW5uaW5nIGluIHBhcmFsbGVsCi0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KLVRvIHNwZWVkIHVwIHRoZSB0ZXN0aW5nIHByb2Nlc3MsIHVzZSB0aGUg
YGAtLXByb2Nlc3Nlc2BgIG9wdGlvbiB0byBoYXZlCi13cHRydW5uZXIgcnVuIG11bHRpcGxlIGJy
b3dzZXIgaW5zdGFuY2VzIGluIHBhcmFsbGVsLiBGb3IgZXhhbXBsZSwgdG8KLWhhdmUgd3B0cnVu
bmVyIGF0dGVtcHQgdG8gcnVuIHRlc3RzIGFnYWluc3Qgd2l0aCBzaXggYnJvd3NlciBpbnN0YW5j
ZXMKLWluIHBhcmFsbGVsLCBzcGVjaWZ5IGBgLS1wcm9jZXNzZXM9NmBgLiBCdXQgbm90ZSB0aGF0
IGJlaGF2aW91ciBpbiB0aGlzCi1tb2RlIGlzIG5lY2Vzc2FyaWx5IGxlc3MgZGV0ZXJtaW5pc3Rp
YyB0aGFuIHdpdGggYGAtLXByb2Nlc3Nlcz0xYGAgKHRoZQotZGVmYXVsdCksIHNvIHRoZXJlIG1h
eSBiZSBtb3JlIG5vaXNlIGluIHRoZSB0ZXN0IHJlc3VsdHMuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVVzaW5nIGRlZmF1bHQgcGF0aHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIChvdGhl
cndpc2UtcmVxdWlyZWQpIGBgLS10ZXN0c2BgIGFuZCBgYC0tbWV0YWRhdGFgYCBjb21tYW5kLWxp
bmUKLW9wdGlvbnMvZmxhZ3MgYmUgb21pdHRlZCBpZiBhbnkgY29uZmlndXJhdGlvbiBmaWxlIGlz
IGZvdW5kIHRoYXQKLWNvbnRhaW5zIGEgc2VjdGlvbiBzcGVjaWZ5aW5nIHRoZSBgYHRlc3RzYGAg
YW5kIGBgbWV0YWRhdGFgYCBrZXlzLgotCi1TZWUgdGhlIGBDb25maWd1cmF0aW9uIEZpbGVgXyBz
ZWN0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0Ci1jb25maWd1cmF0aW9uIGZpbGVzLCBp
bmNsdWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlaXIgZXhwZWN0ZWQKLWxvY2F0aW9ucy4KLQot
VGhlIGNvbnRlbnQgb2YgdGhlIGBgd3B0cnVubmVyLmRlZmF1bHQuaW5pYGAgZGVmYXVsdCBjb25m
aWd1cmF0aW9uIGZpbGUKLW1ha2VzIHdwdHJ1bm5lciBsb29rIGZvciB0ZXN0cyAodGhhdCBpcywg
YSB3ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQpCi1hcyBhIHN1YmRpcmVjdG9yeSBvZiB0aGUg
Y3VycmVudCBkaXJlY3RvcnkgbmFtZWQgYGB0ZXN0c2BgLCBhbmQgZm9yCi1tZXRhZGF0YSBmaWxl
cyBpbiBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgbmFtZWQgYGBtZXRh
YGAuCi0KLU91dHB1dAotLS0tLS0tCi0KLXdwdHJ1bm5lciB1c2VzIGB0aGUgbW96bG9nIHBhY2th
Z2UKLTxodHRwczovL2ZpcmVmb3gtc291cmNlLWRvY3MubW96aWxsYS5vcmcvbW96YmFzZS9tb3ps
b2cuaHRtbD5gXykgZm9yCi1vdXRwdXQuIFRoaXMgc3RydWN0dXJlcyBldmVudHMgc3VjaCBhcyB0
ZXN0IHJlc3VsdHMgb3IgbG9nIG1lc3NhZ2VzIGFzCi1KU09OIG9iamVjdHMgdGhhdCBjYW4gdGhl
biBiZSBmZWQgdG8gb3RoZXIgdG9vbHMgZm9yCi1pbnRlcnByZXRhdGlvbi4gTW9yZSBkZXRhaWxz
IGFib3V0IHRoZSBtZXNzYWdlIGZvcm1hdCBhcmUgZ2l2ZW4gaW4KLWB0aGUgbW96bG9nIGRvY3Vt
ZW50YXRpb24KLTxodHRwczovL2ZpcmVmb3gtc291cmNlLWRvY3MubW96aWxsYS5vcmcvbW96YmFz
ZS9tb3psb2cuaHRtbD5gXy4KLQotQnkgZGVmYXVsdCB0aGUgcmF3IEpTT04gbWVzc2FnZXMgYXJl
IGR1bXBlZCB0byBzdGRvdXQuIFRoaXMgaXMKLWNvbnZlbmllbnQgZm9yIHBpcGluZyBpbnRvIG90
aGVyIHRvb2xzLCBidXQgbm90IGlkZWFsIGZvciBodW1hbnMKLXJlYWRpbmcgdGhlIG91dHB1dC4g
YG1vemxvZwotPGh0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9yZy9tb3piYXNl
L21vemxvZy5odG1sPmBfIGNvbWVzCi13aXRoIHNldmVyYWwgb3RoZXIgZm9ybWF0dGVycywgd2hp
Y2ggYXJlIGFjY2Vzc2libGUgdGhyb3VnaCBjb21tYW5kCi1saW5lIG9wdGlvbnMuIFRoZSBnZW5l
cmFsIGZvcm1hdCBvZiB0aGVzZSBvcHRpb25zIGlzCi1gYC0tbG9nLW5hbWU9ZGVzdGBgLCB3aGVy
ZSBgYG5hbWVgYCBpcyB0aGUgbmFtZSBvZiB0aGUgZm9ybWF0IGFuZAotYGBkZXN0YGAgaXMgYSBw
YXRoIHRvIGEgZGVzdGluYXRpb24gZmlsZSwgb3IgYGAtYGAgZm9yIHN0ZG91dC4gVGhlIHJhdwot
SlNPTiBkYXRhIGlzIHdyaXR0ZW4gYnkgdGhlIGBgcmF3YGAgZm9ybWF0dGVyIHNvLCB0aGUgZGVm
YXVsdCBzZXR1cAotY29ycmVzcG9uZHMgdG8gYGAtLWxvZy1yYXc9LWBgLgotCi1BIHJlYXNvbmFi
bGUgb3V0cHV0IGZvcm1hdCBmb3IgaHVtYW5zIGlzIHByb3ZpZGVkIGFzIGBgbWFjaGBgLiBTbyBp
bgotb3JkZXIgdG8gb3V0cHV0IHRoZSBmdWxsIHJhdyBsb2cgdG8gYSBmaWxlIGFuZCBhIGh1bWFu
LXJlYWRhYmxlCi1zdW1tYXJ5IHRvIHN0ZG91dCwgb25lIG1pZ2h0IHBhc3MgdGhlIG9wdGlvbnM6
OgotCi0gIC0tbG9nLXJhdz1vdXRwdXQubG9nIC0tbG9nLW1hY2g9LQotCi1Db25maWd1cmF0aW9u
IEZpbGUKLS0tLS0tLS0tLS0tLS0tLS0tLQotCi13cHRydW5uZXIgdXNlcyBhIGBgLmluaWBgIGZp
bGUgdG8gY29udHJvbCBzb21lIGNvbmZpZ3VyYXRpb24KLXNlY3Rpb25zLiBUaGUgZmlsZSBoYXMg
dGhyZWUgc2VjdGlvbnM7IGBgW3Byb2R1Y3RzXWBgLAotYGBbbWFuaWZlc3Q6ZGVmYXVsdF1gYCBh
bmQgYGBbd2ViLXBsYXRmb3JtLXRlc3RzXWBgLgotCi1gYFtwcm9kdWN0c11gYCBpcyB1c2VkIHRv
Ci1kZWZpbmUgdGhlIHNldCBvZiBhdmFpbGFibGUgcHJvZHVjdHMuIEJ5IGRlZmF1bHQgdGhpcyBz
ZWN0aW9uIGlzIGVtcHR5Ci13aGljaCBtZWFucyB0aGF0IGFsbCB0aGUgcHJvZHVjdHMgZGlzdHJp
YnV0ZWQgd2l0aCB3cHRydW5uZXIgYXJlCi1lbmFibGVkIChhbHRob3VnaCB0aGVpciBkZXBlbmRl
bmNpZXMgbWF5IG5vdCBiZSBpbnN0YWxsZWQpLiBUaGUgc2V0Ci1vZiBlbmFibGVkIHByb2R1Y3Rz
IGNhbiBiZSBzZXQgYnkgdXNpbmcgdGhlIHByb2R1Y3QgbmFtZSBhcyB0aGUKLWtleS4gRm9yIGJ1
aWx0IGluIHByb2R1Y3RzIHRoZSB2YWx1ZSBpcyBlbXB0eS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0
bwotcHJvdmlkZSB0aGUgcGF0aCB0byBhIHNjcmlwdCBpbXBsZW1lbnRpbmcgdGhlIGJyb3dzZXIg
ZnVuY3Rpb25hbGl0eQotZS5nLjo6Ci0KLSAgW3Byb2R1Y3RzXQotICBjaHJvbWUgPQotICBuZXRz
Y2FwZTQgPSBwYXRoL3RvL25ldHNjYXBlLnB5Ci0KLWBgW21hbmlmZXN0OmRlZmF1bHRdYGAgc3Bl
Y2lmaWVzIHRoZSBkZWZhdWx0IHBhdGhzIGZvciB0aGUgdGVzdHMgYW5kIG1ldGFkYXRhLAotcmVs
YXRpdmUgdG8gdGhlIGNvbmZpZyBmaWxlLiBGb3IgZXhhbXBsZTo6Ci0KLSAgW21hbmlmZXN0OmRl
ZmF1bHRdCi0gIHRlc3RzID0gfi90ZXN0dHdmL3dlYi1wbGF0Zm9ybS10ZXN0cwotICBtZXRhZGF0
YSA9IH4vdGVzdHR3Zi9tZXRhCi0KLQotYGBbd2ViLXBsYXRmb3JtLXRlc3RzXWBgIGlzIHVzZWQg
dG8gc2V0IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSB1cHN0cmVhbQotcmVwb3NpdG9yeSB3aGVuIHVw
ZGF0aW5nIHRoZSBwYXRocy4gYGByZW1vdGVfdXJsYGAgc3BlY2lmaWVzIHRoZSBnaXQKLXVybCB0
byBwdWxsIGZyb207IGBgYnJhbmNoYGAgdGhlIGJyYW5jaCB0byBzeW5jIGFnYWluc3QgYW5kCi1g
YHN5bmNfcGF0aGBgIHRoZSBsb2NhbCBwYXRoLCByZWxhdGl2ZSB0byB0aGUgY29uZmlndXJhdGlv
biBmaWxlLCB0bwotdXNlIHdoZW4gY2hlY2tpbmcgb3V0IHRoZSB0ZXN0cyBlLmcuOjoKLQotICBb
d2ViLXBsYXRmb3JtLXRlc3RzXQotICByZW1vdGVfdXJsID0gaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0Ci0gIGJyYW5jaCA9IG1hc3RlcgotICBzeW5jX3BhdGgg
PSBzeW5jCi0KLUEgY29uZmlndXJhdGlvbiBmaWxlIG11c3QgY29udGFpbiBhbGwgdGhlIGFib3Zl
IGZpZWxkczsgZmFsbGluZyBiYWNrCi10byB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHVuc3BlY2lm
aWVkIGZpZWxkcyBpcyBub3QgeWV0IHN1cHBvcnRlZC4KLQotVGhlIGBgd3B0cnVubmVyYGAgYW5k
IGBgd3B0dXBkYXRlYGAgY29tbWFuZHMgd2lsbCB1c2UgY29uZmlndXJhdGlvbgotZmlsZXMgaW4g
dGhlIGZvbGxvd2luZyBvcmRlcjoKLQotICogQW55IHBhdGggc3VwcGxpZWQgd2l0aCBhIGBgLS1j
b25maWdgYCBmbGFnIHRvIHRoZSBjb21tYW5kLgotCi0gKiBBIGZpbGUgY2FsbGVkIGBgd3B0cnVu
bmVyLmluaWBgIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeQotCi0gKiBUaGUgZGVmYXVsdCBjb25m
aWd1cmF0aW9uIGZpbGUgKGBgd3B0cnVubmVyLmRlZmF1bHQuaW5pYGAgaW4gdGhlCi0gICBzb3Vy
Y2UgZGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CmluZGV4IDFlYmExMTRhMzFjMi4u
ODM1NmM0Nzg1ZGMwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CkBAIC0xLDkgKzEsOCBAQAog
aHRtbDVsaWI9PTEuMQotbW96aW5mbz09MS4yLjEgICMgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxh
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyMTIyNgotbW96bG9nPT02LjEKLW1vemRlYnVnPT0wLjIK
LSMgUGlsbG93IDcgcmVxdWlyZXMgUHl0aG9uIDMKLXBpbGxvdz09Ni4yLjIgICMgcHl1cDogPDcu
MAotdXJsbGliM1tzZWN1cmVdPT0xLjI1LjEwCi1yZXF1ZXN0cz09Mi4yNC4wCi1zaXg9PTEuMTUu
MAorbW96aW5mbz09MS4yLjIgICMgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYyMTIyNgorbW96bG9nPT03LjEuMAorbW96ZGVidWc9PTAuMy4wCitwaWxsb3c9
PTguMy4xCit1cmxsaWIzW3NlY3VyZV09PTEuMjYuNgorcmVxdWVzdHM9PTIuMjUuMQorc2l4PT0x
LjE2LjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CmluZGV4IGU3ZTcxNjFi
MTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50
eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMApkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfY2hyb21lX2FuZHJvaWQudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQudHh0CmluZGV4IGU3
ZTcxNjFiMTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfY2hyb21lX2FuZHJvaWQudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAor
bW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQKaW5kZXgg
MGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Vk
Z2UudHh0CkBAIC0xLDIgKzEsMiBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEu
My4wCiBzZWxlbml1bT09My4xNDEuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94
LnR4dAppbmRleCA4YjQ1NzAzYTU1OTYuLjZiZjI4MGM0N2M5MiAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmlyZWZv
eC50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9y
ZXF1aXJlbWVudHNfZmlyZWZveC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIG1hcmlvbmV0dGVfZHJp
dmVyPT0zLjEuMAotbW96Y3Jhc2g9PTIuMC4wCi1tb3ppbnN0YWxsPT0yLjAuMAorbW96Y3Jhc2g9
PTIuMS4wCittb3ppbnN0YWxsPT0yLjAuMQogbW96bGVhaz09MC4yCiBtb3puZXR3b3JrPT0xLjEu
MAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCiBtb3pwcm9maWxlPT0yLjUu
MAotbW96cnVubmVyPT04LjAuMAorbW96cnVubmVyPT04LjIuMQogbW96dmVyc2lvbj09Mi4zLjAK
LXBzdXRpbD09NS43LjIKK3BzdXRpbD09NS44LjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4
dAppbmRleCAwYTYxMjA4ZDc3YzEuLjdhZDAxODBiODU0NSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfaWUudHh0Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2llLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNz
PT0xLjMuMAogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJh
LnR4dAppbmRleCAwYTYxMjA4ZDc3YzEuLjdhZDAxODBiODU0NSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEu
dHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX29wZXJhLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCitt
b3pwcm9jZXNzPT0xLjMuMAogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50
eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19zYWZhcmkudHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNjViNzZhYTg1Y2M0IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19zYWZhcmkudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKQEAgLTEgKzEsMiBAQAotbW96cHJvY2Vz
cz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCitwc3V0aWw9PTUuOC4wCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19z
YXVjZS50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19zYXVjZS50eHQKaW5kZXggMzRjNjZlZTIzOGI2Li5kMWQwZjdlMmJlZTIgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX3NhdWNlLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQKQEAgLTEsMyArMSwzIEBACi1tb3pw
cm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCi1yZXF1
ZXN0cz09Mi4yNC4wCityZXF1ZXN0cz09Mi4yNS4xCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19z
ZXJ2by50eHQKaW5kZXggZTdlNzE2MWIxNDI2Li43OTYxOTU1OGE1ZGMgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3Nl
cnZvLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19zZXJ2by50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCitt
b3pwcm9jZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Via2l0LnR4dCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKaW5k
ZXggZTdlNzE2MWIxNDI2Li43OTYxOTU1OGE1ZGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfd2Via2l0LnR4dApAQCAtMSArMSBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9
PTEuMy4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3NldHVwLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci9zZXR1cC5weQppbmRleCBhNDU5ZTJjNDcxNDEuLmMyMDk1NTg0OGRiZiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3NldHVwLnB5
CkBAIC0yLDggKzIsNiBAQAogIyBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBM
IHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIGZpbGUsCiAjIFlvdSBjYW4gb2J0YWluIG9u
ZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uCiAKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KLQogaW1wb3J0IGdsb2IKIGltcG9ydCBvcwogaW1wb3J0IHN5cwpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci90
b3guaW5pIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci90b3gu
aW5pCmluZGV4IDc5OGY2NGEzZTQyMi4uYzQ5ZTc1OWVhZDhjIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCkBAIC0yLDE2ICsy
LDEyIEBACiB4ZmFpbF9zdHJpY3Q9dHJ1ZQogCiBbdG94XQotZW52bGlzdCA9IHB5Mjcte2Jhc2Us
Y2hyb21lLGVkZ2UsZmlyZWZveCxpZSxvcGVyYSxzYWZhcmksc2F1Y2Usc2Vydm8sd2Via2l0LHdl
YmtpdGd0a19taW5pYnJvd3NlcixlcGlwaGFueX0se3B5MzUscHkzNixweTM3LHB5Mzh9LWJhc2UK
K2Vudmxpc3QgPSBweTM5LXtiYXNlLGNocm9tZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2FmYXJp
LHNhdWNlLHNlcnZvLHdlYmtpdCx3ZWJraXRndGtfbWluaWJyb3dzZXIsZXBpcGhhbnl9LHtweTM2
LHB5MzcscHkzOH0tYmFzZQogc2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9IEZhbHNlCiAKIFt0
ZXN0ZW52XQogZGVwcyA9Ci0gICAgIHB5dGVzdD49Mi45Ci0gICAgIHB5dGVzdC1jb3YKLSAgICAg
cHl0ZXN0LXhkaXN0Ci0gICAgICMgbW9jayBubyBsb25nZXIgc3VwcG9ydHMgUHl0aG9uIDIgc2lu
Y2UgdjQKLSAgICAgbW9jaz09My4qCisgICAgIC1ye3RveGluaWRpcn0vLi4vcmVxdWlyZW1lbnRz
X3B5dGVzdC50eHQKICAgICAgLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHMudHh0CiAgICAgIGNo
cm9tZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAogICAgICBlZGdlOiAt
cnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19lZGdlLnR4dApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5k
cm9pZF93ZWJsYXllci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKaW5kZXggNjExMDQ1
MGI3MjgyLi40YmQ4NzFkMWZiZDUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJsYXllci5weQpAQCAtMSw5ICsxLDggQEAKLWltcG9y
dCBzdWJwcm9jZXNzCi0KLWZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3Nl
ciwgcmVxdWlyZV9hcmcKLWZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIg
ICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0
MDEKK2Zyb20gLmJhc2UgaW1wb3J0IHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRf
dGltZW91dF9tdWx0aXBsaWVyICAjIG5vcWE6IEY0MDEKIGZyb20gLmNocm9tZSBpbXBvcnQgZXhl
Y3V0b3Jfa3dhcmdzIGFzIGNocm9tZV9leGVjdXRvcl9rd2FyZ3MKLWZyb20gLi53ZWJkcml2ZXJf
c2VydmVyIGltcG9ydCBDaHJvbWVEcml2ZXJTZXJ2ZXIKK2Zyb20gLmNocm9tZV9hbmRyb2lkIGlt
cG9ydCBDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3
ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBG
NDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVy
UmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9y
Y2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCkBA
IC0xMSw3ICsxMCw4IEBAIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENo
cm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9
IHsicHJvZHVjdCI6ICJhbmRyb2lkX3dlYmxheWVyIiwKICAgICAgICAgICAgICAgICAgImNoZWNr
X2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIldlYmxh
eWVyU2hlbGwiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiV2VibGF5ZXJT
aGVsbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dz
ZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJE
cml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAid2RzcGVjIjogIkNocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCkBA
IC0yOCwyMyArMjgsMjQgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVf
YXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0
ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAg
ImRldmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKICAgICAgICAgICAgICJ3
ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCi0gICAgICAgICAg
ICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorICAgICAg
ICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKSwKKyAg
ICAgICAgICAgICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzLmdldCgic3RhY2t3YWxrX2JpbmFy
eSIpLAorICAgICAgICAgICAgInN5bWJvbHNfcGF0aCI6IGt3YXJncy5nZXQoInN5bWJvbHNfcGF0
aCIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBj
YWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIs
IHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAg
ICAgICAgICAgKiprd2FyZ3MpOgogICAgICMgVXNlIHVwZGF0ZSgpIHRvIG1vZGlmeSB0aGUgZ2xv
YmFsIGxpc3QgaW4gcGxhY2UuCiAgICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0ZShzZXQoCi0gICAg
ICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRz
J11bJ2h0dHBzJ10gKwotICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3cyddICsgc2Vy
dmVyX2NvbmZpZ1sncG9ydHMnXVsnd3NzJ10KKyAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25m
aWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydo
dHRwcyddICsKKyAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ3dzJ10g
KyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMnXVsnd3NzJ10KICAgICApKQogCi0gICAg
ZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
YWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9t
ZV9leGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1
bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKmt3YXJncykKICAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29v
ZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KICAgICBjYXBhYmlsaXRpZXMgPSBleGVjdXRvcl9r
d2FyZ3NbImNhcGFiaWxpdGllcyJdCkBAIC03NCw2MSArNzUsMjIgQEAgZGVmIGVudl9vcHRpb25z
KCk6CiAgICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiAiMTI3LjAuMC4xIn0KIAogCi0jVE9ETzog
cmVmYWN0b3IgY29tbW9uIGVsZW1lbnRzIG9mIFdlYmxheWVyU2hlbGwgYW5kIENocm9tZUFuZHJv
aWRCcm93c2VyCi1jbGFzcyBXZWJsYXllclNoZWxsKEJyb3dzZXIpOgorY2xhc3MgV2VibGF5ZXJT
aGVsbChDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UpOgogICAgICIiIkNocm9tZSBpcyBiYWNrZWQg
YnkgY2hyb21lZHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCiAgICAgYGB3cHRydW5u
ZXIud2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBgLgogICAgICIiIgogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2
ZXIiLAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwKKyAgICAgICAgICAg
ICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAg
cmVtb3RlX3F1ZXVlPU5vbmUsCiAgICAgICAgICAgICAgICAgIGRldmljZV9zZXJpYWw9Tm9uZSwK
LSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgICAgICAgICAgICAg
IHdlYmRyaXZlcl9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIHN0YWNrd2Fsa19iaW5hcnk9
Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5vbmUpOgogICAgICAgICAiIiJD
cmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1
bWVudCBnaXZlcwogICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5n
LiIiIgotICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc3Vw
ZXIoV2VibGF5ZXJTaGVsbCwgc2VsZikuX19pbml0X18obG9nZ2VyLAorICAgICAgICAgICAgICAg
IHdlYmRyaXZlcl9iaW5hcnksIHJlbW90ZV9xdWV1ZSwgZGV2aWNlX3NlcmlhbCwKKyAgICAgICAg
ICAgICAgICB3ZWJkcml2ZXJfYXJncywgc3RhY2t3YWxrX2JpbmFyeSwgc3ltYm9sc19wYXRoKQog
ICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQotICAgICAgICBzZWxmLmRldmljZV9zZXJpYWwg
PSBkZXZpY2Vfc2VyaWFsCi0gICAgICAgIHNlbGYuc2VydmVyID0gQ2hyb21lRHJpdmVyU2VydmVy
KHNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
aW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKLSAgICAgICAgc2VsZi5zZXR1cF9hZGJfcmV2
ZXJzZSgpCi0KLSAgICBkZWYgX2FkYl9ydW4oc2VsZiwgYXJncyk6Ci0gICAgICAgIGNtZCA9IFsn
YWRiJ10KLSAgICAgICAgaWYgc2VsZi5kZXZpY2Vfc2VyaWFsOgotICAgICAgICAgICAgY21kLmV4
dGVuZChbJy1zJywgc2VsZi5kZXZpY2Vfc2VyaWFsXSkKLSAgICAgICAgY21kLmV4dGVuZChhcmdz
KQotICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCcgJy5qb2luKGNtZCkpCi0gICAgICAgIHN1YnBy
b2Nlc3MuY2hlY2tfY2FsbChjbWQpCi0KLSAgICBkZWYgc2V0dXBfYWRiX3JldmVyc2Uoc2VsZik6
Ci0gICAgICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1kZXZpY2UnXSkKLSAgICAgICAgc2Vs
Zi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10pCi0gICAgICAgIHNlbGYuX2Fk
Yl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICAjICJhZGIgcmV2ZXJz
ZSIgYmFzaWNhbGx5IGZvcndhcmRzIG5ldHdvcmsgY29ubmVjdGlvbiBmcm9tIGRldmljZSB0bwot
ICAgICAgICAjIGhvc3QuCi0gICAgICAgIGZvciBwb3J0IGluIF93cHRzZXJ2ZV9wb3J0czoKLSAg
ICAgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJ3RjcDolZCcgJSBwb3J0LCAndGNw
OiVkJyAlIHBvcnRdKQotCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAg
c2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3Jj
ZT1GYWxzZSk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCi0KLSAgICBk
ZWYgcGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCi0KLSAgICBkZWYg
aXNfYWxpdmUoc2VsZik6Ci0gICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVz
IHRoZSBkcml2ZXIgaXMgYWxpdmUsCi0gICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5n
IGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KLSAgICAgICAgIyBpcyBhY3RpdmUuCi0g
ICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCi0KLSAgICBkZWYgY2xlYW51cChz
ZWxmKToKLSAgICAgICAgc2VsZi5zdG9wKCkKLSAgICAgICAgc2VsZi5fYWRiX3J1bihbJ2Zvcndh
cmQnLCAnLS1yZW1vdmUtYWxsJ10pCi0gICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywg
Jy0tcmVtb3ZlLWFsbCddKQotCi0gICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVy
LnVybH0KKyAgICAgICAgc2VsZi53cHRzZXJ2ZXJfcG9ydHMgPSBfd3B0c2VydmVfcG9ydHMKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CmluZGV4IDk5ZjZlNWNmZjRj
OC4uMjgyZTJkN2FkNWVlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jh
c2UucHkKQEAgLTEsMzQgKzEsMTQgQEAKK2ltcG9ydCBlbnVtCiBpbXBvcnQgb3MKIGltcG9ydCBw
bGF0Zm9ybQogaW1wb3J0IHNvY2tldAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0
bWV0aG9kCi1mcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5Ci1mcm9tIHNpeCBpbXBvcnQgaXRlcml0
ZW1zCiAKIGZyb20gLi53cHRjb21tYW5kbGluZSBpbXBvcnQgcmVxdWlyZV9hcmcgICMgbm9xYTog
RjQwMQogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCiAKLWRlZiBpbmhlcml0
KHN1cGVyX21vZHVsZSwgY2hpbGRfZ2xvYmFscywgcHJvZHVjdF9uYW1lKToKLSAgICBzdXBlcl93
cHRydW5uZXIgPSBzdXBlcl9tb2R1bGUuX193cHRydW5uZXJfXwotICAgIGNoaWxkX2dsb2JhbHNb
Il9fd3B0cnVubmVyX18iXSA9IGNoaWxkX3dwdHJ1bm5lciA9IGRlZXBjb3B5KHN1cGVyX3dwdHJ1
bm5lcikKLQotICAgIGNoaWxkX3dwdHJ1bm5lclsicHJvZHVjdCJdID0gcHJvZHVjdF9uYW1lCi0K
LSAgICBmb3IgayBpbiAoImNoZWNrX2FyZ3MiLCAiYnJvd3NlciIsICJicm93c2VyX2t3YXJncyIs
ICJleGVjdXRvcl9rd2FyZ3MiLAotICAgICAgICAgICAgICAiZW52X2V4dHJhcyIsICJlbnZfb3B0
aW9ucyIsICJ0aW1lb3V0X211bHRpcGxpZXIiKToKLSAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1
bm5lcltrXQotICAgICAgICBjaGlsZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1
bGUsIGF0dHIpCi0KLSAgICBmb3IgdiBpbiBzdXBlcl9tb2R1bGUuX193cHRydW5uZXJfX1siZXhl
Y3V0b3IiXS52YWx1ZXMoKToKLSAgICAgICAgY2hpbGRfZ2xvYmFsc1t2XSA9IGdldGF0dHIoc3Vw
ZXJfbW9kdWxlLCB2KQotCi0gICAgaWYgInJ1bl9pbmZvX2V4dHJhcyIgaW4gc3VwZXJfd3B0cnVu
bmVyOgotICAgICAgICBhdHRyID0gc3VwZXJfd3B0cnVubmVyWyJydW5faW5mb19leHRyYXMiXQot
ICAgICAgICBjaGlsZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIGF0dHIp
Ci0KLQogZGVmIGNtZF9hcmcobmFtZSwgdmFsdWU9Tm9uZSk6CiAgICAgcHJlZml4ID0gIi0iIGlm
IHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIiBlbHNlICItLSIKICAgICBydiA9IHByZWZp
eCArIG5hbWUKQEAgLTY1LDcgKzQ1LDcgQEAgZGVmIGdldF9mcmVlX3BvcnQoKToKICAgICAgICAg
cyA9IHNvY2tldC5zb2NrZXQoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzLmJpbmQoKCIx
MjcuMC4wLjEiLCAwKSkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhj
ZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgcmV0dXJuIHMuZ2V0c29ja25hbWUoKVsxXQpAQCAtMTI2LDYgKzEwNiwxMiBAQCBjbGFz
cyBCcm93c2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBzZXR0aW5ncyhzZWxm
LCB0ZXN0KToKKyAgICAgICAgIiIiRGljdGlvbmFyeSBvZiBtZXRhZGF0YSB0aGF0IGlzIGNvbnN0
YW50IGZvciBhIHNwZWNpZmljIGxhdW5jaCBvZiBhIGJyb3dzZXIuCisKKyAgICAgICAgVGhpcyBp
cyB1c2VkIHRvIGRldGVybWluZSB3aGVuIHRoZSBicm93c2VyIGluc3RhbmNlIGNvbmZpZ3VyYXRp
b24gY2hhbmdlcywgcmVxdWlyaW5nCisgICAgICAgIGEgcmVsYXVuY2ggb2YgdGhlIGJyb3dzZXIu
IFRoZSB0ZXN0IHJ1bm5lciBjYWxscyB0aGlzIG1ldGhvZCBmb3IgZWFjaCB0ZXN0LCBhbmQgaWYg
dGhlCisgICAgICAgIHJldHVybmVkIHZhbHVlIGRpZmZlcnMgZnJvbSB0aGF0IGZvciB0aGUgcHJl
dmlvdXMgdGVzdCwgdGhlIGJyb3dzZXIgaXMgcmVsYXVuY2hlZC4KKyAgICAgICAgIiIiCiAgICAg
ICAgIHJldHVybiB7fQogCiAgICAgQGFic3RyYWN0bWV0aG9kCkBAIC0xNTcsNiArMTQzLDEwIEBA
IGNsYXNzIEJyb3dzZXIob2JqZWN0KToKICAgICAgICAgd2l0aCB3aGljaCBpdCBzaG91bGQgYmUg
aW5zdGFudGlhdGVkIiIiCiAgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHt9CiAKKyAg
ICBkZWYgbWF5YmVfcGFyc2VfdG9tYnN0b25lKHNlbGYpOgorICAgICAgICAiIiJQb3NzaWJseSBw
YXJzZSB0b21ic3RvbmVzIG9uIEFuZHJvaWQgZGV2aWNlIGZvciBBbmRyb2lkIHRhcmdldCIiIgor
ICAgICAgICBwYXNzCisKICAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6
CiAgICAgICAgICIiIkNoZWNrIGlmIGEgY3Jhc2ggb2NjdXJlZCBhbmQgb3V0cHV0IGFueSB1c2Vm
dWwgaW5mb3JtYXRpb24gdG8gdGhlCiAgICAgICAgIGxvZy4gUmV0dXJucyBhIGJvb2xlYW4gaW5k
aWNhdGluZyB3aGV0aGVyIGEgY3Jhc2ggb2NjdXJlZC4iIiIKQEAgLTE4MiwxMSArMTcyLDggQEAg
Y2xhc3MgTnVsbEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAg
ICAgICByZXR1cm4gVHJ1ZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0KLWNsYXNzIEV4ZWN1dG9yQnJvd3Nlcihv
YmplY3QpOgorY2xhc3MgRXhlY3V0b3JCcm93c2VyOgogICAgICIiIlZpZXcgb2YgdGhlIEJyb3dz
ZXIgdXNlZCBieSB0aGUgRXhlY3V0b3Igb2JqZWN0LgogICAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1
c2UgdGhlIEV4ZWN1dG9yIHJ1bnMgaW4gYSBjaGlsZCBwcm9jZXNzIGFuZAogICAgIHdlIGNhbid0
IHNoaXAgQnJvd3NlciBpbnN0YW5jZXMgYmV0d2VlbiBwcm9jZXNzZXMgb24gV2luZG93cy4KQEAg
LTE5Niw1ICsxODMsOTUgQEAgY2xhc3MgRXhlY3V0b3JCcm93c2VyKG9iamVjdCk6CiAgICAgdXAg
dGhlIGJyb3dzZXIgZnJvbSB0aGUgcnVubmVyIHByb2Nlc3MuCiAgICAgIiIiCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgZm9yIGssIHYgaW4gaXRlcml0ZW1zKGt3
YXJncyk6CisgICAgICAgIGZvciBrLCB2IGluIGt3YXJncy5pdGVtcygpOgogICAgICAgICAgICAg
c2V0YXR0cihzZWxmLCBrLCB2KQorCisKK0BlbnVtLnVuaXF1ZQorY2xhc3MgT3V0cHV0SGFuZGxl
clN0YXRlKGVudW0uSW50RW51bSk6CisgICAgQkVGT1JFX1BST0NFU1NfU1RBUlQgPSAxCisgICAg
QUZURVJfUFJPQ0VTU19TVEFSVCA9IDIKKyAgICBBRlRFUl9IQU5ETEVSX1NUQVJUID0gMworICAg
IEFGVEVSX1BST0NFU1NfU1RPUCA9IDQKKworCitjbGFzcyBPdXRwdXRIYW5kbGVyOgorICAgICIi
IkNsYXNzIGZvciBoYW5kbGluZyBvdXRwdXQgZnJvbSBhIGJyb3dzZXIgcHJvY2Vzcy4KKworICAg
IFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGNvbnN1bWluZyB0aGUgbG9nZ2luZyBmcm9t
IGEgYnJvd3NlciBwcm9jZXNzCisgICAgYW5kIHBhc3NpbmcgaXQgaW50byB0aGUgcmVsZXZhbnQg
bG9nZ2VyLiBBIGNsYXNzIGluc3RhbmNlIGlzIGRlc2lnbmVkIHRvCisgICAgYmUgcGFzc2VkIGFz
IHRoZSBwcm9jZXNzT3V0cHV0TGluZSBhcmd1bWVudCB0byBtb3pwcm9jZXNzLlByb2Nlc3NIYW5k
bGVyLgorCisgICAgVGhlIHNldHVwIG9mIHRoaXMgY2xhc3MgaXMgY29tcGxleCBmb3IgdmFyaW91
cyByZWFzb25zOgorCisgICAgKiBXZSBuZWVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUg
Y2xhc3MgYmVmb3JlIHN0YXJ0aW5nIHRoZSBwcm9jZXNzCisgICAgKiBXZSB3YW50IGFjY2VzcyB0
byBkYXRhIGFib3V0IHRoZSBydW5uaW5nIHByb2Nlc3MgZS5nLiB0aGUgcGlkCisgICAgKiBXZSB3
YW50IHRvIGxhdW5jaCB0aGUgcHJvY2VzcyBhbmQgbGF0ZXIgc2V0dXAgYWRkaXRpb25hbCBsb2cg
aGFuZGxpbmcKKyAgICAgIHdoaWNoIGlzIHJlc3Ryb3NwZWN0aXZlbHkgYXBwbGllZCB0byBhbnkg
ZXhpc3Rpbmcgb3V0cHV0ICh0aGlzIHN1cHBvcnRzCisgICAgICBwcmVsYXVuY2hpbmcgYnJvd3Nl
cnMgZm9yIHBlcmZvcm1hbmNlLCBidXQgaGF2aW5nIGxvZyBvdXRwdXQgZGVwZW5kIG9uIHRoZQor
ICAgICAgdGVzdHMgdGhhdCBhcmUgcnVuIGUuZy4gZm9yIGxlYWsgc3VwcHJlc3Npb24pLgorCisg
ICAgVGhlcmVmb3JlIHRoZSBsaWZlY3ljbGUgaXMgYXMgZm9sbG93czo6CisKKyAgICAgIG91dHB1
dF9oYW5kbGVyID0gT3V0cHV0SGFuZGxlcihsb2dnZXIsIGNvbW1hbmQsICoqb3V0cHV0X2hhbmRs
ZXJfa3dhcmdzKQorICAgICAgcHJvYyA9IFByb2Nlc3NIYW5kbGVyKGNvbW1hbmQsIC4uLiwgcHJv
Y2Vzc091dHB1dExpbmU9b3V0cHV0X2hhbmRsZXIpCisgICAgICBvdXRwdXRfaGFuZGxlci5hZnRl
cl9wcm9jZXNzX3N0YXJ0KHByb2MucGlkKQorICAgICAgWy4uLl0KKyAgICAgICMgQWxsIGxvZ2dp
bmcgdG8gdGhpcyBwb2ludCB3YXMgYnVmZmVyZWQgaW4tbWVtb3J5LCBidXQgYWZ0ZXIgc3RhcnQo
KQorICAgICAgIyBpdCdzIGFjdHVhbGx5IHNlbnQgdG8gdGhlIGxvZ2dlci4KKyAgICAgIG91dHB1
dF9oYW5kbGVyLnN0YXJ0KCoqb3V0cHV0X2xvZ2dlcl9zdGFydF9rd2FyZ3MpCisgICAgICBbLi4u
XQorICAgICAgcHJvYy53YWl0KCkKKyAgICAgIG91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nf
c3RvcCgpCisKKyAgICBTaW5jZSB0aGUgcHJvY2VzcyBsaWZldGltZSBhbmQgdGhlIG91dHB1dCBo
YW5kbGVyIGxpZmV0aW1lIGFyZSBjb3VwbGVkIChpdCBkb2Vzbid0CisgICAgd29yayB0byByZXVz
ZSBhbiBvdXRwdXQgaGFuZGxlciBmb3IgbXVsdGlwbGUgcHJvY2Vzc2VzKSwgaXQgbWlnaHQgbWFr
ZSBzZW5zZSB0byBoYXZlCisgICAgYSBzaW5nbGUgY2xhc3MgdGhhdCBvd25zIHRoZSBwcm9jZXNz
IGFuZCB0aGUgb3V0cHV0IHByb2Nlc3NpbmcgZm9yIHRoZSBwcm9jZXNzLgorICAgIFRoaXMgaXMg
Y29tcGxpY2F0ZWQgYnkgdGhlIGZhY3QgdGhhdCB3ZSBkb24ndCBhbHdheXMgcnVuIHRoZSBwcm9j
ZXNzIGRpcmVjdGx5LAorICAgIGJ1dCBzb21ldGltZXMgdXNlIGEgd3JhcHBlciBlLmcuIG1venJ1
bm5lci4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGNvbW1hbmQs
ICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5j
b21tYW5kID0gY29tbWFuZAorICAgICAgICBzZWxmLnBpZCA9IE5vbmUKKyAgICAgICAgc2VsZi5z
dGF0ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5CRUZPUkVfUFJPQ0VTU19TVEFSVAorICAgICAgICBz
ZWxmLmxpbmVfYnVmZmVyID0gW10KKworICAgIGRlZiBhZnRlcl9wcm9jZXNzX3N0YXJ0KHNlbGYs
IHBpZCk6CisgICAgICAgIGFzc2VydCBzZWxmLnN0YXRlID09IE91dHB1dEhhbmRsZXJTdGF0ZS5C
RUZPUkVfUFJPQ0VTU19TVEFSVAorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiT3V0cHV0SGFu
ZGxlci5hZnRlcl9wcm9jZXNzX3N0YXJ0IikKKyAgICAgICAgc2VsZi5waWQgPSBwaWQKKyAgICAg
ICAgc2VsZi5zdGF0ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9QUk9DRVNTX1NUQVJUCisK
KyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBhc3NlcnQgc2VsZi5zdGF0
ZSA9PSBPdXRwdXRIYW5kbGVyU3RhdGUuQUZURVJfUFJPQ0VTU19TVEFSVAorICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiT3V0cHV0SGFuZGxlci5zdGFydCIpCisgICAgICAgICMgTmVlZCB0byBj
aGFuZ2UgdGhlIHN0YXRlIGhlcmUgYmVmb3JlIHdlIHRyeSB0byBlbXB0eSB0aGUgYnVmZmVyCisg
ICAgICAgICMgb3Igd2UnbGwganVzdCByZS1idWZmZXIgdGhlIGV4aXN0aW5nIG91dHB1dC4KKyAg
ICAgICAgc2VsZi5zdGF0ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9IQU5ETEVSX1NUQVJU
CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYubGluZV9idWZmZXI6CisgICAgICAgICAgICBzZWxm
KGl0ZW0pCisgICAgICAgIHNlbGYubGluZV9idWZmZXIgPSBOb25lCisKKyAgICBkZWYgYWZ0ZXJf
cHJvY2Vzc19zdG9wKHNlbGYsIGNsZWFuX3NodXRkb3duPVRydWUpOgorICAgICAgICAjIElmIHdl
IGRpZG4ndCBnZXQgYXMgZmFyIGFzIGNvbmZpZ3VyZSwganVzdAorICAgICAgICAjIGR1bXAgYWxs
IGxvZ3Mgd2l0aCBubyBjb25maWd1cmF0aW9uCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJP
dXRwdXRIYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcCIpCisgICAgICAgIGlmIHNlbGYuc3RhdGUg
PCBPdXRwdXRIYW5kbGVyU3RhdGUuQUZURVJfSEFORExFUl9TVEFSVDoKKyAgICAgICAgICAgIHNl
bGYuc3RhcnQoKQorICAgICAgICBzZWxmLnN0YXRlID0gT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVS
X1BST0NFU1NfU1RPUAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGxpbmUpOgorICAgICAgICBp
ZiBzZWxmLnN0YXRlIDwgT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX0hBTkRMRVJfU1RBUlQ6Cisg
ICAgICAgICAgICBzZWxmLmxpbmVfYnVmZmVyLmFwcGVuZChsaW5lKQorICAgICAgICAgICAgcmV0
dXJuCisKKyAgICAgICAgIyBDb3VsZCBhc3NlcnQgdGhhdCB0aGVyZSdzIG5vIG91dHB1dCBoYW5k
bGVkIG9uY2Ugd2UncmUgaW4gdGhlCisgICAgICAgICMgYWZ0ZXJfcHJvY2Vzc19zdG9wIHBoYXNl
LCBhbHRob3VnaCB0ZWNobmljYWxseSB0aGVyZSdzIGEgcmFjZSBjb25kaXRpb24KKyAgICAgICAg
IyBoZXJlIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB0aGUgbG9nZ2luZyB0aHJlYWQgaGFzIGZpbmlz
aGVkIGRyYWluaW5nIHRoZQorICAgICAgICAjIGxvZ3MuIFRoZSBzb2x1dGlvbiBtaWdodCBiZSB0
byBtb3ZlIHRoaXMgaW50byBtb3pwcm9jZXNzIGl0c2VsZi4KKworICAgICAgICBzZWxmLmxvZ2dl
ci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFuZCkgaWYgc2VsZi5j
b21tYW5kIGVsc2UgIiIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJv
bWUucHkKaW5kZXggZmQyNTFhNDMxYzMwLi4wYjZhMGM2MThkZmMgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2Nocm9tZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKQEAgLTEsNSArMSw2IEBACiBmcm9tIC4g
aW1wb3J0IGNocm9tZV9zcGtpX2NlcnRzCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVj
dXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAg
IyBub3FhOiBGNDAxCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAg
IyBub3FhOiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVy
U2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9l
eGVjdXRvcl9rd2FyZ3MKQEAgLTEyLDcgKzEzLDggQEAgZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRv
cmNocm9tZSBpbXBvcnQgKENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAK
IAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJjaHJvbWUiLAogICAgICAgICAgICAgICAg
ICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIi
OiAiQ2hyb21lQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJD
aHJvbWVCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJO
dWxsQnJvd3NlciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNz
IjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJwcmludC1yZWZ0ZXN0IjogIkNocm9tZURyaXZlclByaW50
UmVmVGVzdEV4ZWN1dG9yIiwKQEAgLTI4LDE2ICszMCwxNSBAQCBkZWYgY2hlY2tfYXJncygqKmt3
YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAot
ZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3
YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmlu
YXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVy
X2JpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2Vi
ZHJpdmVyX2FyZ3MiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVy
X2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2Fy
Z3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNl
X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUs
IHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9z
ZV9hZnRlcl9kb25lIl0gPSBUcnVlCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdl
cl9wYWdlbG9hZCJdID0gRmFsc2UKQEAgLTgxLDkgKzgyLDMxIEBAIGRlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LAogICAgICMgUG9pbnQgYWxsIC50ZXN0IGRvbWFpbnMgdG8gbG9jYWxob3N0IGZvciBDaHJvbWUK
ICAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1ob3N0LXJlc29sdmVyLXJ1bGVz
PU1BUCBub25leGlzdGVudC4qLnRlc3Qgfk5PVEZPVU5ELCBNQVAgKi50ZXN0IDEyNy4wLjAuMSIp
CiAKKyAgICAjIENsYXNzaWZ5IGBodHRwLXByaXZhdGVgLCBgaHR0cC1wdWJsaWNgIGFuZCBodHRw
cyB2YXJpYW50cyBpbiB0aGUKKyAgICAjIGFwcHJvcHJpYXRlIElQIGFkZHJlc3Mgc3BhY2VzLgor
ICAgICMgRm9yIG1vcmUgZGV0YWlscywgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3JmY3MvYmxvYi9tYXN0ZXIvcmZjcy9hZGRyZXNzX3NwYWNlX292ZXJyaWRlcy5t
ZAorICAgIGFkZHJlc3Nfc3BhY2Vfb3ZlcnJpZGVzX3BvcnRzID0gWworICAgICAgICAoImh0dHAt
cHJpdmF0ZSIsICJwcml2YXRlIiksCisgICAgICAgICgiaHR0cC1wdWJsaWMiLCAicHVibGljIiks
CisgICAgICAgICgiaHR0cHMtcHJpdmF0ZSIsICJwcml2YXRlIiksCisgICAgICAgICgiaHR0cHMt
cHVibGljIiwgInB1YmxpYyIpLAorICAgIF0KKyAgICBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19h
cmcgPSAiLCIuam9pbigKKyAgICAgICAgIjEyNy4wLjAuMTp7fT17fSIuZm9ybWF0KHBvcnRfbnVt
YmVyLCBhZGRyZXNzX3NwYWNlKQorICAgICAgICBmb3IgcG9ydF9uYW1lLCBhZGRyZXNzX3NwYWNl
IGluIGFkZHJlc3Nfc3BhY2Vfb3ZlcnJpZGVzX3BvcnRzCisgICAgICAgIGZvciBwb3J0X251bWJl
ciBpbiB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZy5wb3J0cy5nZXQocG9ydF9uYW1lLCBbXSkKKyAg
ICApCisgICAgaWYgYWRkcmVzc19zcGFjZV9vdmVycmlkZXNfYXJnOgorICAgICAgICBjaHJvbWVf
b3B0aW9uc1siYXJncyJdLmFwcGVuZCgKKyAgICAgICAgICAgICItLWlwLWFkZHJlc3Mtc3BhY2Ut
b3ZlcnJpZGVzPSIgKyBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19hcmcpCisKICAgICBpZiBrd2Fy
Z3NbImVuYWJsZV9tb2pvanMiXToKICAgICAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBl
bmQoIi0tZW5hYmxlLWJsaW5rLWZlYXR1cmVzPU1vam9KUyxNb2pvSlNUZXN0IikKIAorICAgIGlm
IGt3YXJnc1siZW5hYmxlX3N3aWZ0c2hhZGVyIl06CisgICAgICAgICMgaHR0cHM6Ly9jaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYy8rL0hFQUQvZG9jcy9ncHUvc3dpZnRzaGFk
ZXIubWQKKyAgICAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5leHRlbmQoWyItLXVzZS1nbD1h
bmdsZSIsICItLXVzZS1hbmdsZT1zd2lmdHNoYWRlciJdKQorCiAgICAgIyBDb3B5IG92ZXIgYW55
IG90aGVyIGZsYWdzIHRoYXQgd2VyZSBwYXNzZWQgaW4gdmlhIC0tYmluYXJ5X2FyZ3MKICAgICBp
ZiBrd2FyZ3NbImJpbmFyeV9hcmdzIl0gaXMgbm90IE5vbmU6CiAgICAgICAgIGNocm9tZV9vcHRp
b25zWyJhcmdzIl0uZXh0ZW5kKGt3YXJnc1siYmluYXJ5X2FyZ3MiXSkKQEAgLTExMyw3ICsxMzYs
NyBAQCBjbGFzcyBDaHJvbWVCcm93c2VyKEJyb3dzZXIpOgogICAgICIiIgogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2
ZXIiLAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgICAg
ICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJDcmVhdGVz
IGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBn
aXZlcwogICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgog
ICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2Nocm9tZV9hbmRyb2lkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKaW5kZXggNDg1Yjk2
ZjMxZTdkLi4zYmEwMTU4OGIyOTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CkBAIC0xLDcgKzEsOSBAQAoraW1wb3J0IG1v
enByb2Nlc3MKIGltcG9ydCBzdWJwcm9jZXNzCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIs
IEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1l
b3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93
c2VyICAjIG5vcWE6IEY0MDEKIGZyb20gLmNocm9tZSBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFz
IGNocm9tZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBD
aHJvbWVEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1w
b3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCkBAIC0xMSw3
ICsxMyw4IEBAIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURy
aXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsicHJv
ZHVjdCI6ICJjaHJvbWVfYW5kcm9pZCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjog
ImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVBbmRyb2lk
QnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJDaHJvbWVBbmRy
b2lkQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVs
bEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6
ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkNocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9y
In0sCkBAIC0yOSwyMyArMzIsMjQgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJl
cXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3
YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJy
b3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoq
a3dhcmdzKToKICAgICByZXR1cm4geyJwYWNrYWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFt
ZSJdLAogICAgICAgICAgICAgImRldmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwi
XSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmlu
YXJ5Il0sCi0gICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2
ZXJfYXJncyIpfQorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2Vi
ZHJpdmVyX2FyZ3MiKSwKKyAgICAgICAgICAgICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzLmdl
dCgic3RhY2t3YWxrX2JpbmFyeSIpLAorICAgICAgICAgICAgInN5bWJvbHNfcGF0aCI6IGt3YXJn
cy5nZXQoInN5bWJvbHNfcGF0aCIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1
dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9f
ZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgICMgVXNlIHVwZGF0ZSgp
IHRvIG1vZGlmeSB0aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCiAgICAgX3dwdHNlcnZlX3BvcnRz
LnVwZGF0ZShzZXQoCi0gICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHNl
cnZlcl9jb25maWdbJ3BvcnRzJ11bJ2h0dHBzJ10gKwotICAgICAgICBzZXJ2ZXJfY29uZmlnWydw
b3J0cyddWyd3cyddICsgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3NzJ10KKyAgICAgICAgdGVz
dF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHRlc3RfZW52aXJvbm1lbnQu
Y29uZmlnWydwb3J0cyddWydodHRwcyddICsKKyAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25m
aWdbJ3BvcnRzJ11bJ3dzJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMnXVsnd3Nz
J10KICAgICApKQogCi0gICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgIGV4ZWN1
dG9yX2t3YXJncyA9IGNocm9tZV9leGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRl
c3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICAjIFJlbW92ZSB1bnN1cHBvcnRlZCBv
cHRpb25zIG9uIG1vYmlsZS4KICAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMi
XVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KQEAgLTY5LDIwICs3Myw4MiBAQCBkZWYg
ZW52X29wdGlvbnMoKToKICAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEifQog
CiAKLWNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgotICAgICIiIkNocm9tZSBp
cyBiYWNrZWQgYnkgY2hyb21lZHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCi0gICAg
YGB3cHRydW5uZXIud2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBgLgotICAgICIiIgorY2xh
c3MgTG9nY2F0UnVubmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YnJvd3NlciwgcmVtb3RlX3F1ZXVlKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAg
ICAgICAgc2VsZi5icm93c2VyID0gYnJvd3NlcgorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9
IHJlbW90ZV9xdWV1ZQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBzZWxmLl9ydW4oKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Cisg
ICAgICAgICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVmIF9ydW4oc2VsZik6CisgICAgICAgIHRy
eToKKyAgICAgICAgICAgICMgVE9ETzogYWRiIGxvZ2NhdCAtYyBmYWlsIHJhbmRvbWx5IHdpdGgg
bWVzc2FnZQorICAgICAgICAgICAgIyAiZmFpbGVkIHRvIGNsZWFyIHRoZSAnbWFpbicgbG9nIgor
ICAgICAgICAgICAgc2VsZi5icm93c2VyLmNsZWFyX2xvZygpCisgICAgICAgIGV4Y2VwdCBzdWJw
cm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9y
KCJGYWlsZWQgdG8gY2xlYXIgbG9nY2F0IGJ1ZmZlciIpCisKKyAgICAgICAgc2VsZi5fY21kID0g
c2VsZi5icm93c2VyLmxvZ2NhdF9jbWQoKQorICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vz
cy5Qcm9jZXNzSGFuZGxlcigKKyAgICAgICAgICAgIHNlbGYuX2NtZCwKKyAgICAgICAgICAgIHBy
b2Nlc3NPdXRwdXRMaW5lPXNlbGYub25fb3V0cHV0LAorICAgICAgICAgICAgc3RvcmVPdXRwdXQ9
RmFsc2UpCisgICAgICAgIHNlbGYuX3Byb2MucnVuKCkKKworICAgIGRlZiBfc2VuZF9tZXNzYWdl
KHNlbGYsIGNvbW1hbmQsICphcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5y
ZW1vdGVfcXVldWUucHV0KChjb21tYW5kLCBhcmdzKSkKKyAgICAgICAgZXhjZXB0IEFzc2VydGlv
bkVycm9yOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRXJyb3Igd2hlbiBzZW5k
IHRvIHJlbW90ZSBxdWV1ZSIpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwYWNr
YWdlX25hbWUsIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCi0gICAgICAgICAgICAg
ICAgIGRldmljZV9zZXJpYWw9Tm9uZSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6Ci0gICAgICAgIEJy
b3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9
IHBhY2thZ2VfbmFtZQorICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAg
aWYgc2VsZi5pc19hbGl2ZSgpOgorICAgICAgICAgICAga2lsbF9yZXN1bHQgPSBzZWxmLl9wcm9j
LmtpbGwoKQorICAgICAgICAgICAgaWYgZm9yY2UgYW5kIGtpbGxfcmVzdWx0ICE9IDA6CisgICAg
ICAgICAgICAgICAgc2VsZi5fcHJvYy5raWxsKDkpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6
CisgICAgICAgIHJldHVybiBoYXNhdHRyKHNlbGYuX3Byb2MsICJwcm9jIikgYW5kIHNlbGYuX3By
b2MucG9sbCgpIGlzIE5vbmUKKworICAgIGRlZiBvbl9vdXRwdXQoc2VsZiwgbGluZSk6CisgICAg
ICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiYWN0aW9uIjogInByb2Nlc3Nfb3V0cHV0IiwKKyAg
ICAgICAgICAgICJwcm9jZXNzIjogIkxPR0NBVCIsCisgICAgICAgICAgICAiY29tbWFuZCI6ICJs
b2djYXQiLAorICAgICAgICAgICAgImRhdGEiOiBsaW5lCisgICAgICAgIH0KKyAgICAgICAgc2Vs
Zi5fc2VuZF9tZXNzYWdlKCJsb2ciLCBkYXRhKQorCisKK2NsYXNzIENocm9tZUFuZHJvaWRCcm93
c2VyQmFzZShCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLAorICAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAorICAgICAgICAgICAg
ICAgICByZW1vdGVfcXVldWUgPSBOb25lLAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFs
PU5vbmUsCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsCisgICAgICAgICAg
ICAgICAgIHN0YWNrd2Fsa19iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19w
YXRoPU5vbmUpOgorICAgICAgICBzdXBlcihDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UsIHNlbGYp
Ll9faW5pdF9fKGxvZ2dlcikKICAgICAgICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3Nl
cmlhbAorICAgICAgICBzZWxmLnN0YWNrd2Fsa19iaW5hcnkgPSBzdGFja3dhbGtfYmluYXJ5Cisg
ICAgICAgIHNlbGYuc3ltYm9sc19wYXRoID0gc3ltYm9sc19wYXRoCisgICAgICAgIHNlbGYucmVt
b3RlX3F1ZXVlID0gcmVtb3RlX3F1ZXVlCiAgICAgICAgIHNlbGYuc2VydmVyID0gQ2hyb21lRHJp
dmVyU2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKyAgICAgICAgaWYgc2VsZi5y
ZW1vdGVfcXVldWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5uZXIg
PSBMb2djYXRSdW5uZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLCBzZWxmLnJlbW90ZV9xdWV1ZSkKKworICAgIGRlZiBzZXR1cChz
ZWxmKToKICAgICAgICAgc2VsZi5zZXR1cF9hZGJfcmV2ZXJzZSgpCisgICAgICAgIGlmIHNlbGYu
cmVtb3RlX3F1ZXVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2djYXRfcnVubmVy
LnN0YXJ0KCkKIAogICAgIGRlZiBfYWRiX3J1bihzZWxmLCBhcmdzKToKICAgICAgICAgY21kID0g
WydhZGInXQpAQCAtOTIsMTQgKzE1OCw2IEBAIGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJy
b3dzZXIpOgogICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCcgJy5qb2luKGNtZCkpCiAgICAgICAg
IHN1YnByb2Nlc3MuY2hlY2tfY2FsbChjbWQpCiAKLSAgICBkZWYgc2V0dXBfYWRiX3JldmVyc2Uo
c2VsZik6Ci0gICAgICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1kZXZpY2UnXSkKLSAgICAg
ICAgc2VsZi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10pCi0gICAgICAgIHNl
bGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICAjICJhZGIg
cmV2ZXJzZSIgZm9yd2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20gZGV2aWNlIHRvIGhvc3Qu
Ci0gICAgICAgIGZvciBwb3J0IGluIF93cHRzZXJ2ZV9wb3J0czoKLSAgICAgICAgICAgIHNlbGYu
X2FkYl9ydW4oWydyZXZlcnNlJywgJ3RjcDolZCcgJSBwb3J0LCAndGNwOiVkJyAlIHBvcnRdKQot
CiAgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3Rh
cnQoYmxvY2s9RmFsc2UpCiAKQEAgLTExOSw2ICsxNzcsNjAgQEAgY2xhc3MgQ2hyb21lQW5kcm9p
ZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuc3RvcCgpCiAgICAgICAgIHNlbGYuX2Fk
Yl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQogICAgICAgICBzZWxmLl9hZGJfcnVu
KFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgaWYgc2VsZi5yZW1vdGVfcXVl
dWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5uZXIuc3RvcChmb3Jj
ZT1UcnVlKQogCiAgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIHJldHVy
biBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KKwor
ICAgIGRlZiBjbGVhcl9sb2coc2VsZik6CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydsb2djYXQn
LCAnLWMnXSkKKworICAgIGRlZiBsb2djYXRfY21kKHNlbGYpOgorICAgICAgICBjbWQgPSBbJ2Fk
YiddCisgICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAgICAgICAgICAgIGNtZC5leHRl
bmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCisgICAgICAgIGNtZC5leHRlbmQoWydsb2dj
YXQnLCAnKjpEJ10pCisgICAgICAgIHJldHVybiBjbWQKKworICAgIGRlZiBjaGVja19jcmFzaChz
ZWxmLCBwcm9jZXNzLCB0ZXN0KToKKyAgICAgICAgc2VsZi5tYXliZV9wYXJzZV90b21ic3RvbmUo
KQorICAgICAgICAjIEV4aXN0ZW5jZSBvZiBhIHRvbWJzdG9uZSBkb2VzIG5vdCBuZWNlc3Nhcmls
eSBtZWFuIHRlc3QgdGFyZ2V0IGhhcworICAgICAgICAjIGNyYXNoZWQuIEFsd2F5cyByZXR1cm4g
RmFsc2Ugc28gd2UgZG9uJ3QgY2hhbmdlIHRoZSB0ZXN0IHJlc3VsdHMuCisgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgZGVmIG1heWJlX3BhcnNlX3RvbWJzdG9uZShzZWxmKToKKyAgICAgICAg
aWYgc2VsZi5zdGFja3dhbGtfYmluYXJ5OgorICAgICAgICAgICAgY21kID0gW3NlbGYuc3RhY2t3
YWxrX2JpbmFyeSwgIi1hIiwgIi13Il0KKyAgICAgICAgICAgIGlmIHNlbGYuZGV2aWNlX3Nlcmlh
bDoKKyAgICAgICAgICAgICAgICBjbWQuZXh0ZW5kKFsiLS1kZXZpY2UiLCBzZWxmLmRldmljZV9z
ZXJpYWxdKQorICAgICAgICAgICAgY21kLmV4dGVuZChbIi0tb3V0cHV0LWRpcmVjdG9yeSIsIHNl
bGYuc3ltYm9sc19wYXRoXSkKKyAgICAgICAgICAgIHJhd19vdXRwdXQgPSBzdWJwcm9jZXNzLmNo
ZWNrX291dHB1dChjbWQpCisgICAgICAgICAgICBmb3IgbGluZSBpbiByYXdfb3V0cHV0LnNwbGl0
bGluZXMoKToKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dCgiVFJB
Q0UiLCBsaW5lLCAibG9nY2F0IikKKworICAgIGRlZiBzZXR1cF9hZGJfcmV2ZXJzZShzZWxmKToK
KyAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3dhaXQtZm9yLWRldmljZSddKQorICAgICAgICBzZWxm
Ll9hZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgc2VsZi5fYWRi
X3J1bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgICMgImFkYiByZXZlcnNl
IiBmb3J3YXJkcyBuZXR3b3JrIGNvbm5lY3Rpb24gZnJvbSBkZXZpY2UgdG8gaG9zdC4KKyAgICAg
ICAgZm9yIHBvcnQgaW4gc2VsZi53cHRzZXJ2ZXJfcG9ydHM6CisgICAgICAgICAgICBzZWxmLl9h
ZGJfcnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKKwor
Y2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKKyAg
ICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQg
dGhyb3VnaAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4K
KyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHBhY2thZ2VfbmFtZSwK
KyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAg
ICAgICAgICAgICAgcmVtb3RlX3F1ZXVlID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgZGV2aWNl
X3NlcmlhbD1Ob25lLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAg
ICAgICAgICAgICAgICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5
bWJvbHNfcGF0aD1Ob25lKToKKyAgICAgICAgc3VwZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXIsIHNl
bGYpLl9faW5pdF9fKGxvZ2dlciwKKyAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCBy
ZW1vdGVfcXVldWUsIGRldmljZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Fy
Z3MsIHN0YWNrd2Fsa19iaW5hcnksIHN5bWJvbHNfcGF0aCkKKyAgICAgICAgc2VsZi5wYWNrYWdl
X25hbWUgPSBwYWNrYWdlX25hbWUKKyAgICAgICAgc2VsZi53cHRzZXJ2ZXJfcG9ydHMgPSBfd3B0
c2VydmVfcG9ydHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5Cmlu
ZGV4IGJkYjM3YjNmODRjMi4uMzEwMWU5YzdiZWEzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2VkZ2UucHkKQEAgLTEsNyArMSw3IEBACi1mcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgdGltZQogaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20g
LmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20g
LmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDEKIGZyb20gLi53ZWJkcml2ZXJf
c2VydmVyIGltcG9ydCBFZGdlRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBl
eGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMu
ZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwgICMg
bm9xYTogRjQwMQpAQCAtMTAsNyArMTAsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yZWRn
ZSBpbXBvcnQgRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRy
dW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2Fy
Z3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIkVkZ2VCcm93
c2VyIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VCcm93c2VyIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAog
ICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVz
dGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVz
dCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAid2RzcGVjIjogIkVkZ2VEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMzQsNyArMzUs
NyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAi
d2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2Vy
LCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVy
biB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAg
ICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiksCiAg
ICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0
ZXN0X3R5cGUsCkBAIC00MiwxMCArNDMsOSBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBl
LCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKX0KIAogCi1kZWYg
ZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRl
c3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0
b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25t
ZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3Nl
X2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBleGVjdXRvcl9rd2FyZ3NbInRpbWVvdXRfbXVsdGlw
bGllciJdID0gZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm9fZGF0YSwKQEAgLTY1LDEwICs2NSwxMCBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogCiBj
bGFzcyBFZGdlQnJvd3NlcihCcm93c2VyKToKLSAgICB1c2VkX3BvcnRzID0gc2V0KCkKICAgICBp
bml0X3RpbWVvdXQgPSA2MAogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJp
dmVyX2JpbmFyeSwgdGltZW91dF9tdWx0aXBsaWVyPU5vbmUsIHdlYmRyaXZlcl9hcmdzPU5vbmUp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnksCisgICAg
ICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9Tm9uZSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKipr
d2FyZ3MpOgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAgICAgICAg
c2VsZi5zZXJ2ZXIgPSBFZGdlRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5
CmluZGV4IGMyNTQ1ZGU0NmYwYi4uZTU5NDlmZTNlNTdmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
X3dlYmRyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQpAQCAtMSwxMiArMSwy
OCBAQAotZnJvbSAuYmFzZSBpbXBvcnQgaW5oZXJpdAotZnJvbSAuIGltcG9ydCBlZGdlCitmcm9t
IC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCitmcm9tIC5lZGdlIGltcG9y
dCAoRWRnZUJyb3dzZXIsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBFZGdlRHJp
dmVyV2RzcGVjRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBjaGVj
a19hcmdzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3Ms
ICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MsICAjIG5v
cWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBlbnZfZXh0cmFzLCAgIyBub3FhOiBGNDAxCisg
ICAgICAgICAgICAgICAgICAgZW52X29wdGlvbnMsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAg
ICAgICAgICBydW5faW5mb19leHRyYXMsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAg
ICBnZXRfdGltZW91dF9tdWx0aXBsaWVyKSAgIyBub3FhOiBGNDAxCiAKIGZyb20gLi5leGVjdXRv
cnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9y
LCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCiAKIAotaW5oZXJpdChl
ZGdlLCBnbG9iYWxzKCksICJlZGdlX3dlYmRyaXZlciIpCi0KLSMgX193cHRydW5uZXJfXyBtYWdp
Y2FsbHkgYXBwZWFycyBmcm9tIGluaGVyaXQsIEY4MjEgaXMgdW5kZWZpbmVkIG5hbWUKLV9fd3B0
cnVubmVyX19bImV4ZWN1dG9yIl1bInRlc3RoYXJuZXNzIl0gPSAiV2ViRHJpdmVyVGVzdGhhcm5l
c3NFeGVjdXRvciIgICMgbm9xYTogRjgyMQotX193cHRydW5uZXJfX1siZXhlY3V0b3IiXVsicmVm
dGVzdCJdID0gIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIgICMgbm9xYTogRjgyMQorX193cHRy
dW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlX3dlYmRyaXZlciIsCisgICAgICAgICAgICAgICAg
ICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6
IHtOb25lOiAiRWRnZUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2Rz
cGVjIjogIk51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVz
dGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJFZGdlRHJpdmVyV2RzcGVj
RXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJf
a3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9r
d2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAg
ICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAg
ICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAg
ICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKaW5kZXggMTUxNTMw
ODk3ZDliLi5hYzI3NDUzMTI3YWIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvZmlyZWZveC5weQpAQCAtMSw5ICsxLDEyIEBACitpbXBvcnQgYmFzZTY0CitpbXBvcnQg
aW8KIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHNpZ25h
bAogaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0
IHppcGZpbGUKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAogCiBpbXBv
cnQgbW96aW5mbwpAQCAtMTUsMjYgKzE4LDMwIEBAIGZyb20gbW96cnVubmVyIGltcG9ydCBGaXJl
Zm94UnVubmVyCiBmcm9tIG1venJ1bm5lci51dGlscyBpbXBvcnQgdGVzdF9lbnZpcm9ubWVudCwg
Z2V0X3N0YWNrX2ZpeGVyX2Z1bmN0aW9uCiBmcm9tIG1vemNyYXNoIGltcG9ydCBtb3pjcmFzaAog
Ci1mcm9tIC5iYXNlIGltcG9ydCAoZ2V0X2ZyZWVfcG9ydCwKLSAgICAgICAgICAgICAgICAgICBC
cm93c2VyLAorZnJvbSAuYmFzZSBpbXBvcnQgKEJyb3dzZXIsCiAgICAgICAgICAgICAgICAgICAg
RXhlY3V0b3JCcm93c2VyLAotICAgICAgICAgICAgICAgICAgIHJlcXVpcmVfYXJnLAorICAgICAg
ICAgICAgICAgICAgIE51bGxCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIE91dHB1dEhhbmRs
ZXIsCisgICAgICAgICAgICAgICAgICAgT3V0cHV0SGFuZGxlclN0YXRlLAorICAgICAgICAgICAg
ICAgICAgIGJyb3dzZXJfY29tbWFuZCwKICAgICAgICAgICAgICAgICAgICBjbWRfYXJnLAotICAg
ICAgICAgICAgICAgICAgIGJyb3dzZXJfY29tbWFuZCkKKyAgICAgICAgICAgICAgICAgICBnZXRf
ZnJlZV9wb3J0LAorICAgICAgICAgICAgICAgICAgIHJlcXVpcmVfYXJnKQogZnJvbSAuLmV4ZWN1
dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9ybWFyaW9uZXR0ZSBpbXBvcnQgKE1hcmlvbmV0dGVUZXN0aGFy
bmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVBy
aW50UmVmVGVzdEV4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVXZHNwZWNFeGVjdXRvciwgICMgbm9xYTog
RjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25l
dHRlQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKLWZyb20gLi5wcm9jZXNzIGltcG9y
dCBjYXN0X2VudgorZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFdlYkRyaXZlclNlcnZl
cgogCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAKIF9fd3B0cnVubmVyX18g
PSB7InByb2R1Y3QiOiAiZmlyZWZveCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjog
ImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJGaXJlZm94QnJvd3Nl
ciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJGaXJlZm94QnJvd3NlciIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiRmlyZWZveFdkU3BlY0Jy
b3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJjcmFzaHRlc3QiOiAiTWFy
aW9uZXR0ZUNyYXNodGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0ZXN0aGFybmVzcyI6ICJNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJNYXJpb25ldHRlUmVmVGVzdEV4ZWN1
dG9yIiwKQEAgLTUzLDExICs2MCwxMSBAQCBkZWYgZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0ZXN0
X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKICAgICBpZiBrd2FyZ3NbInRpbWVvdXRf
bXVsdGlwbGllciJdIGlzIG5vdCBOb25lOgogICAgICAgICByZXR1cm4ga3dhcmdzWyJ0aW1lb3V0
X211bHRpcGxpZXIiXQogICAgIGlmIHRlc3RfdHlwZSA9PSAicmVmdGVzdCI6Ci0gICAgICAgIGlm
IHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKToKKyAg
ICAgICAgaWYgcnVuX2luZm9fZGF0YVsiZGVidWciXSBvciBydW5faW5mb19kYXRhLmdldCgiYXNh
biIpIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJ0c2FuIik6CiAgICAgICAgICAgICByZXR1cm4gNAog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIDIKLSAgICBlbGlmIHJ1bl9pbmZvX2Rh
dGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKToKKyAgICBlbGlmIHJ1bl9p
bmZvX2RhdGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKSBvciBydW5faW5m
b19kYXRhLmdldCgidHNhbiIpOgogICAgICAgICBpZiBydW5faW5mb19kYXRhLmdldCgiY2NvdiIp
OgogICAgICAgICAgICAgcmV0dXJuIDQKICAgICAgICAgZWxzZToKQEAgLTc2LDcgKzgzLDcgQEAg
ZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgImJpbmFy
eSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29u
ZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1
bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7ImJpbmFyeSI6IGt3
YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICAgICAicHJlZnNfcm9vdCI6IGt3YXJnc1sicHJlZnNf
cm9vdCJdLAogICAgICAgICAgICAgImV4dHJhX3ByZWZzIjoga3dhcmdzWyJleHRyYV9wcmVmcyJd
LApAQCAtMTAxLDEzICsxMDgsMjQgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICAgICAiY29uZmlnIjogY29u
ZmlnLAogICAgICAgICAgICAgImJyb3dzZXJfY2hhbm5lbCI6IGt3YXJnc1siYnJvd3Nlcl9jaGFu
bmVsIl0sCiAgICAgICAgICAgICAiaGVhZGxlc3MiOiBrd2FyZ3NbImhlYWRsZXNzIl0sCi0gICAg
ICAgICAgICAicHJlbG9hZF9icm93c2VyIjoga3dhcmdzWyJwcmVsb2FkX2Jyb3dzZXIiXX0KKyAg
ICAgICAgICAgICJwcmVsb2FkX2Jyb3dzZXIiOiBrd2FyZ3NbInByZWxvYWRfYnJvd3NlciJdIGFu
ZCBub3Qga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gYW5kIG5vdCBrd2FyZ3NbIm51bV90ZXN0
X2dyb3VwcyJdID09IDEsCisgICAgICAgICAgICAic3BlY2lhbHBvd2Vyc19wYXRoIjoga3dhcmdz
WyJzcGVjaWFscG93ZXJzX3BhdGgiXX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2NsYXNzIFdk
U3BlY1Byb2ZpbGUob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcHJvZmlsZSk6Cisg
ICAgICAgIHNlbGYucHJvZmlsZSA9IHByb2ZpbGUKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoq
a3dhcmdzKToKKyAgICAgICAgc2VsZi5wcm9maWxlLmNsZWFudXAoKQorCisKK2RlZiBleGVjdXRv
cl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2Rh
dGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3Mg
PSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdz
WyJjbG9zZV9hZnRlcl9kb25lIl0gPSB0ZXN0X3R5cGUgIT0gInJlZnRlc3QiCiAgICAgZXhlY3V0
b3Jfa3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSA9IGdldF90aW1lb3V0X211bHRpcGxpZXIo
dGVzdF90eXBlLApAQCAtMTIxLDIyICsxMzksNjMgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAg
ICAgIGV4ZWN1dG9yX2t3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdID0ga3dhcmdzWyJyZWZ0ZXN0
X2ludGVybmFsIl0KICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3Qi
XSA9IGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0KICAgICBpZiB0ZXN0X3R5cGUgPT0gIndk
c3BlYyI6Ci0gICAgICAgIG9wdGlvbnMgPSB7fQorICAgICAgICBvcHRpb25zID0geyJhcmdzIjog
W119CiAgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il06CiAgICAgICAgICAgICBvcHRpb25zWyJi
aW5hcnkiXSA9IGt3YXJnc1siYmluYXJ5Il0KICAgICAgICAgaWYga3dhcmdzWyJiaW5hcnlfYXJn
cyJdOgogICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdID0ga3dhcmdzWyJiaW5hcnlfYXJncyJd
Ci0gICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToKLSAgICAgICAgICAgIGlmICJhcmdzIiBu
b3QgaW4gb3B0aW9uczoKLSAgICAgICAgICAgICAgICBvcHRpb25zWyJhcmdzIl0gPSBbXQotICAg
ICAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBvcHRpb25zWyJhcmdzIl06Ci0gICAgICAg
ICAgICAgICAgb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpCi0gICAgICAgIG9w
dGlvbnNbInByZWZzIl0gPSB7Ci0gICAgICAgICAgICAibmV0d29yay5kbnMubG9jYWxEb21haW5z
IjogIiwiLmpvaW4oc2VydmVyX2NvbmZpZy5kb21haW5zX3NldCkKLSAgICAgICAgfQotICAgICAg
ICBmb3IgcHJlZiwgdmFsdWUgaW4ga3dhcmdzWyJleHRyYV9wcmVmcyJdOgotICAgICAgICAgICAg
b3B0aW9uc1sicHJlZnMiXS51cGRhdGUoe3ByZWY6IFByZWZlcmVuY2VzLmNhc3QodmFsdWUpfSkK
KworICAgICAgICBwcm9maWxlX2NyZWF0b3IgPSBQcm9maWxlQ3JlYXRvcihsb2dnZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicHJlZnNfcm9vdCJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25t
ZW50LmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nb
ImV4dHJhX3ByZWZzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGt3YXJnc1siZ2Vja29fZTEwcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBrd2FyZ3NbImVuYWJsZV9maXNzaW9uIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siY2VydHV0aWxfYmluYXJ5
Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZW52aXJv
bm1lbnQuY29uZmlnLnNzbF9jb25maWdbImNhX2NlcnRfcGF0aCJdKQorICAgICAgICBpZiBrd2Fy
Z3NbInByb2Nlc3NlcyJdID4gMToKKyAgICAgICAgICAgICMgV2l0aCBtdWx0aXBsZSBwcm9jZXNz
ZXMsIHdlIHdvdWxkIG5lZWQgYSBwcm9maWxlIGRpcmVjdG9yeSBwZXIgcHJvY2VzcywgYnV0IHdl
CisgICAgICAgICAgICAjIGRvbid0IGhhdmUgYW4gZWFzeSB3YXkgdG8gZG8gdGhhdCwgc28gaW5j
bHVkZSB0aGUgcHJvZmlsZSBpbiB0aGUgY2FwYWJpbHRpZXMKKyAgICAgICAgICAgICMgZGlyZWN0
bHkgaW5zdGVhZC4gVGhpcyBtZWFucyByZWNyZWF0aW5nIGl0IHBlciBzZXNzaW9uLCB3aGljaCBp
cyBzbG93CisgICAgICAgICAgICBvcHRpb25zWyJwcm9maWxlIl0gPSBwcm9maWxlX2NyZWF0b3Iu
Y3JlYXRlX2Jhc2U2NCgpCisgICAgICAgICAgICBwcm9maWxlID0gTm9uZQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgcHJvZmlsZSA9IHByb2ZpbGVfY3JlYXRvci5jcmVhdGUoKQorICAgICAg
ICAgICAgb3B0aW9uc1siYXJncyJdLmV4dGVuZChbIi0tcHJvZmlsZSIsIHByb2ZpbGUucHJvZmls
ZV0pCisgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmVudl9leHRyYXNfY21zLmFwcGVuZChX
ZFNwZWNQcm9maWxlKHByb2ZpbGUpKQorCiAgICAgICAgIGNhcGFiaWxpdGllc1sibW96OmZpcmVm
b3hPcHRpb25zIl0gPSBvcHRpb25zCisKKyAgICAgICAgIyBUaGlzIGdldHMgcmV1c2VkIGZvciBm
aXJlZm94X2FuZHJvaWQsIGJ1dCB0aGUgZW52aXJvbm1lbnQgc2V0dXAKKyAgICAgICAgIyBpc24n
dCByZXF1aXJlZCBpbiB0aGF0IGNhc2UKKyAgICAgICAgaWYga3dhcmdzWyJiaW5hcnkiXToKKyAg
ICAgICAgICAgIGVudmlyb24gPSBnZXRfZW52aXJvbihsb2dnZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX2luZm8iXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbInN0eWxvX3RocmVhZHMiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrd2FyZ3NbImhlYWRsZXNzIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga3dhcmdzWyJlbmFibGVfd2VicmVuZGVyIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJjaGFvc19tb2RlX2ZsYWdzIl0pCisgICAgICAg
ICAgICBsZWFrX3JlcG9ydF9maWxlID0gc2V0dXBfbGVha19yZXBvcnQoa3dhcmdzWyJsZWFrX2No
ZWNrIl0sIHByb2ZpbGUsIGVudmlyb24pCisKKyAgICAgICAgICAgICMgVGhpcyBkb2Vzbid0IHdv
cmsgd2l0aCB3ZHNwZWMgdGVzdHMKKyAgICAgICAgICAgICMgSW4gcGFydGljdWxhciB0ZXN0cyBj
YW4gY3JlYXRlIGEgc2Vzc2lvbiB3aXRob3V0IHBhc3NpbmcgaW4gdGhlIGNhcGFiaWxpdGVzCisg
ICAgICAgICAgICAjIGFuZCBpbiB0aG9zZSBjYXNlcyB3ZSBnZXQgdGhlIGRlZmF1bHQgZ2Vja29k
cml2ZXIgcHJvZmlsZSB3aGljaCBkb2Vzbid0CisgICAgICAgICAgICAjIGd1YXJhbnRlZSB6ZXJv
IG5ldHdvcmsgYWNjZXNzCisgICAgICAgICAgICBkZWwgZW52aXJvblsiTU9aX0RJU0FCTEVfTk9O
TE9DQUxfQ09OTkVDVElPTlMiXQorICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJlbnZpcm9u
Il0gPSBlbnZpcm9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBrd2FyZ3NbImhlYWRs
ZXNzIl0gYW5kICItLWhlYWRsZXNzIiBub3QgaW4gb3B0aW9uc1siYXJncyJdOgorICAgICAgICAg
ICAgICAgIG9wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxlc3MiKQorICAgICAgICAgICAg
bGVha19yZXBvcnRfZmlsZSA9IE5vbmUKKworICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInN0YWNr
Zml4X2RpciJdID0ga3dhcmdzWyJzdGFja2ZpeF9kaXIiXSwKKyAgICAgICAgZXhlY3V0b3Jfa3dh
cmdzWyJsZWFrX3JlcG9ydF9maWxlIl0gPSBsZWFrX3JlcG9ydF9maWxlCisgICAgICAgIGV4ZWN1
dG9yX2t3YXJnc1siYXNhbiJdID0gcnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKQorCiAgICAgaWYg
a3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSBpcyBOb25lOgogICAgICAgICBjYXBhYmlsaXRpZXNb
ImFjY2VwdEluc2VjdXJlQ2VydHMiXSA9IFRydWUKICAgICBpZiBjYXBhYmlsaXRpZXM6CkBAIC0x
NDQsNiArMjAzLDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJk
ZWJ1ZyJdID0gcnVuX2luZm9fZGF0YVsiZGVidWciXQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2Nv
diJdID0gcnVuX2luZm9fZGF0YS5nZXQoImNjb3YiLCBGYWxzZSkKICAgICBleGVjdXRvcl9rd2Fy
Z3NbImJyb3dzZXJfdmVyc2lvbiJdID0gcnVuX2luZm9fZGF0YS5nZXQoImJyb3dzZXJfdmVyc2lv
biIpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJkZWJ1Z190ZXN0Il0gPSBrd2FyZ3NbImRlYnVnX3Rl
c3QiXQogICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIAogCkBAIC0xNzcsMTYgKzIzNywxMSBA
QCBkZWYgcnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKToKICAgICAgICAgICAid2FzbSI6IGt3YXJn
cy5nZXQoIndhc20iLCBUcnVlKSwKICAgICAgICAgICAidmVyaWZ5Ijoga3dhcmdzWyJ2ZXJpZnki
XSwKICAgICAgICAgICAiaGVhZGxlc3MiOiBrd2FyZ3MuZ2V0KCJoZWFkbGVzcyIsIEZhbHNlKSBv
ciAiTU9aX0hFQURMRVNTIiBpbiBvcy5lbnZpcm9uLAotICAgICAgICAgICJzdy1lMTBzIjogVHJ1
ZSwKLSAgICAgICAgICAiZmlzc2lvbiI6IGt3YXJncy5nZXQoImVuYWJsZV9maXNzaW9uIikgb3Ig
Z2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5hdXRvc3RhcnQiKX0KLQotICAgICMgVGhlIHZhbHVlIG9m
IGBzdy1lMTBzYCBkZWZhdWx0cyB0byB3aGV0aGVyIHRoZSAicGFyZW50X2ludGVyY2VwdCIKLSAg
ICAjIGltcGxlbWVudGF0aW9uIGlzIGVuYWJsZWQgZm9yIHRoZSBjdXJyZW50IGJ1aWxkLiBUaGlz
IHZhbHVlLCBob3dldmVyLAotICAgICMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZXhwbGljaXRseSBz
ZXR0aW5nIHRoZSBwcmVmIHdpdGggdGhlIGAtLXNldHByZWZgIENMSQotICAgICMgZmxhZywgd2hp
Y2ggaXMgY2hlY2tlZCBoZXJlLgotICAgIHN3X2UxMHNfb3ZlcnJpZGUgPSBnZXRfYm9vbF9wcmVm
X2lmX2V4aXN0cygiZG9tLnNlcnZpY2VXb3JrZXJzLnBhcmVudF9pbnRlcmNlcHQiKQotICAgIGlm
IHN3X2UxMHNfb3ZlcnJpZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJ2WyJzdy1lMTBzIl0gPSBz
d19lMTBzX292ZXJyaWRlCisgICAgICAgICAgImZpc3Npb24iOiBrd2FyZ3MuZ2V0KCJlbmFibGVf
Zmlzc2lvbiIpIG9yIGdldF9ib29sX3ByZWYoImZpc3Npb24uYXV0b3N0YXJ0IiksCisgICAgICAg
ICAgInNlc3Npb25IaXN0b3J5SW5QYXJlbnQiOiAoa3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24i
KSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9ib29sX3ByZWYo
ImZpc3Npb24uYXV0b3N0YXJ0Iikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLnNlc3Npb25IaXN0b3J5SW5QYXJlbnQiKSksCisg
ICAgICAgICAgInN3Z2wiOiBnZXRfYm9vbF9wcmVmKCJnZngud2VicmVuZGVyLnNvZnR3YXJlIil9
CiAKICAgICBydi51cGRhdGUocnVuX2luZm9fYnJvd3Nlcl92ZXJzaW9uKCoqa3dhcmdzKSkKIApA
QCAtMjA4LDExICsyNjMsNDYgQEAgZGVmIHJ1bl9pbmZvX2Jyb3dzZXJfdmVyc2lvbigqKmt3YXJn
cyk6CiAKIAogZGVmIHVwZGF0ZV9wcm9wZXJ0aWVzKCk6Ci0gICAgcmV0dXJuIChbIm9zIiwgImRl
YnVnIiwgIndlYnJlbmRlciIsICJmaXNzaW9uIiwgImUxMHMiLCAic3ctZTEwcyIsICJwcm9jZXNz
b3IiXSwKKyAgICByZXR1cm4gKFsib3MiLCAiZGVidWciLCAid2VicmVuZGVyIiwgImZpc3Npb24i
LCAiZTEwcyIsICJwcm9jZXNzb3IiLCAic3dnbCJdLAogICAgICAgICAgICAgeyJvcyI6IFsidmVy
c2lvbiJdLCAicHJvY2Vzc29yIjogWyJiaXRzIl19KQogCiAKLWNsYXNzIEZpcmVmb3hJbnN0YW5j
ZU1hbmFnZXIob2JqZWN0KToKK2RlZiBnZXRfZW52aXJvbihsb2dnZXIsIGJpbmFyeSwgZGVidWdf
aW5mbywgc3R5bG9fdGhyZWFkcywgaGVhZGxlc3MsIGVuYWJsZV93ZWJyZW5kZXIsCisgICAgICAg
ICAgICAgICAgY2hhb3NfbW9kZV9mbGFncz1Ob25lKToKKyAgICBlbnYgPSB0ZXN0X2Vudmlyb25t
ZW50KHhyZVBhdGg9b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShiaW5hcnkpKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnZ2VyPWRlYnVnX2luZm8gaXMgbm90IE5vbmUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VMU2FuPVRydWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2c9bG9nZ2VyKQorCisgICAgZW52WyJTVFlMT19USFJFQURTIl0gPSBz
dHIoc3R5bG9fdGhyZWFkcykKKyAgICBpZiBjaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgor
ICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0cihjaGFvc19tb2RlX2ZsYWdzKQorICAg
IGlmIGhlYWRsZXNzOgorICAgICAgICBlbnZbIk1PWl9IRUFETEVTUyJdID0gIjEiCisgICAgaWYg
ZW5hYmxlX3dlYnJlbmRlcjoKKyAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMSIKKyAg
ICAgICAgZW52WyJNT1pfQUNDRUxFUkFURUQiXSA9ICIxIgorICAgIGVsc2U6CisgICAgICAgIGVu
dlsiTU9aX1dFQlJFTkRFUiJdID0gIjAiCisgICAgcmV0dXJuIGVudgorCisKK2RlZiBzZXR1cF9s
ZWFrX3JlcG9ydChsZWFrX2NoZWNrLCBwcm9maWxlLCBlbnYpOgorICAgIGxlYWtfcmVwb3J0X2Zp
bGUgPSBOb25lCisgICAgaWYgbGVha19jaGVjazoKKyAgICAgICAgZmlsZW5hbWUgPSAicnVudGVz
dHNfbGVha3NfJXMubG9nIiAlIG9zLmdldHBpZCgpCisgICAgICAgIGlmIHByb2ZpbGUgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBsZWFrX3JlcG9ydF9maWxlID0gb3MucGF0aC5qb2luKHByb2Zp
bGUucHJvZmlsZSwgZmlsZW5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsZWFrX3Jl
cG9ydF9maWxlID0gb3MucGF0aC5qb2luKHRlbXBmaWxlLmdldHRlbXBkaXIoKSwgZmlsZW5hbWUp
CisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGxlYWtfcmVwb3J0X2ZpbGUpOgorICAgICAgICAg
ICAgb3MucmVtb3ZlKGxlYWtfcmVwb3J0X2ZpbGUpCisgICAgICAgIGVudlsiWFBDT01fTUVNX0JM
T0FUX0xPRyJdID0gbGVha19yZXBvcnRfZmlsZQorCisgICAgcmV0dXJuIGxlYWtfcmVwb3J0X2Zp
bGUKKworCitjbGFzcyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyOgogICAgIF9fbWV0YWNsYXNzX18g
PSBBQkNNZXRhCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGJpbmFy
eV9hcmdzLCBwcm9maWxlX2NyZWF0b3IsIGRlYnVnX2luZm8sCkBAIC0yNjcsMjAgKzM1Nyw4IEBA
IGNsYXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgbWFyaW9uZXR0
ZV9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCiAgICAgICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVuY2Vz
KHsibWFyaW9uZXR0ZS5wb3J0IjogbWFyaW9uZXR0ZV9wb3J0fSkKIAotICAgICAgICBlbnYgPSB0
ZXN0X2Vudmlyb25tZW50KHhyZVBhdGg9b3MucGF0aC5kaXJuYW1lKHNlbGYuYmluYXJ5KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dlcj1zZWxmLmRlYnVnX2luZm8gaXMg
bm90IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlTFNhbj1UcnVlLCBs
b2c9c2VsZi5sb2dnZXIpCi0KLSAgICAgICAgZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc2Vs
Zi5zdHlsb190aHJlYWRzKQotICAgICAgICBpZiBzZWxmLmNoYW9zX21vZGVfZmxhZ3MgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0cihzZWxmLmNoYW9z
X21vZGVfZmxhZ3MpCi0gICAgICAgIGlmIHNlbGYuaGVhZGxlc3M6Ci0gICAgICAgICAgICBlbnZb
Ik1PWl9IRUFETEVTUyJdID0gIjEiCi0gICAgICAgIGlmIHNlbGYuZW5hYmxlX3dlYnJlbmRlcjoK
LSAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjEiCi0gICAgICAgICAgICBlbnZb
Ik1PWl9BQ0NFTEVSQVRFRCJdID0gIjEiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBlbnZb
Ik1PWl9XRUJSRU5ERVIiXSA9ICIwIgorICAgICAgICBlbnYgPSBnZXRfZW52aXJvbihzZWxmLmxv
Z2dlciwgc2VsZi5iaW5hcnksIHNlbGYuZGVidWdfaW5mbywgc2VsZi5zdHlsb190aHJlYWRzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmhlYWRsZXNzLCBzZWxmLmVuYWJsZV93ZWJy
ZW5kZXIsIHNlbGYuY2hhb3NfbW9kZV9mbGFncykKIAogICAgICAgICBhcmdzID0gc2VsZi5iaW5h
cnlfYXJnc1s6XSBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10KICAgICAgICAgYXJncyArPSBb
Y21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXQpAQCAtMjg5LDI2ICszNjcsMjYg
QEAgY2xhc3MgRmlyZWZveEluc3RhbmNlTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykKIAotICAgICAgICBpZiBzZWxmLmxl
YWtfY2hlY2s6Ci0gICAgICAgICAgICBsZWFrX3JlcG9ydF9maWxlID0gb3MucGF0aC5qb2luKHBy
b2ZpbGUucHJvZmlsZSwgInJ1bnRlc3RzX2xlYWtzXyVzLmxvZyIgJSBvcy5nZXRwaWQoKSkKLSAg
ICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGxlYWtfcmVwb3J0X2ZpbGUpOgotICAgICAgICAg
ICAgICAgIG9zLnJlbW92ZShsZWFrX3JlcG9ydF9maWxlKQotICAgICAgICAgICAgZW52WyJYUENP
TV9NRU1fQkxPQVRfTE9HIl0gPSBsZWFrX3JlcG9ydF9maWxlCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBsZWFrX3JlcG9ydF9maWxlID0gTm9uZQotCi0gICAgICAgIG91dHB1dF9oYW5kbGVy
ID0gT3V0cHV0SGFuZGxlcihzZWxmLmxvZ2dlciwgc2VsZi5zdGFja2ZpeF9kaXIsIHNlbGYuc3lt
Ym9sc19wYXRoLCBzZWxmLmFzYW4pCisgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGUgPSBzZXR1cF9s
ZWFrX3JlcG9ydChzZWxmLmxlYWtfY2hlY2ssIHByb2ZpbGUsIGVudikKKyAgICAgICAgb3V0cHV0
X2hhbmRsZXIgPSBGaXJlZm94T3V0cHV0SGFuZGxlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tmaXhfZGlyPXNlbGYuc3RhY2tmaXhf
ZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJv
bHNfcGF0aD1zZWxmLnN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc2FuPXNlbGYuYXNhbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZWFrX3JlcG9ydF9maWxlPWxlYWtfcmVwb3J0X2ZpbGUp
CiAgICAgICAgIHJ1bm5lciA9IEZpcmVmb3hSdW5uZXIocHJvZmlsZT1wcm9maWxlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT1jbWRbMF0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY21kYXJncz1jbWRbMTpdLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVudj1jYXN0X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudj1lbnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc19jbGFzcz1Q
cm9jZXNzSGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX2Fy
Z3M9eyJwcm9jZXNzT3V0cHV0TGluZSI6IFtvdXRwdXRfaGFuZGxlcl19KQogICAgICAgICBpbnN0
YW5jZSA9IEJyb3dzZXJJbnN0YW5jZShzZWxmLmxvZ2dlciwgcnVubmVyLCBtYXJpb25ldHRlX3Bv
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9oYW5kbGVyLCBs
ZWFrX3JlcG9ydF9maWxlKQogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBG
aXJlZm94IikKLSAgICAgICAgcnVubmVyLnN0YXJ0KGRlYnVnX2FyZ3M9ZGVidWdfYXJncywgaW50
ZXJhY3RpdmU9c2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmUp
CisgICAgICAgIHJ1bm5lci5zdGFydChkZWJ1Z19hcmdzPWRlYnVnX2FyZ3MsCisgICAgICAgICAg
ICAgICAgICAgICBpbnRlcmFjdGl2ZT1zZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5m
by5pbnRlcmFjdGl2ZSkKKyAgICAgICAgb3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFy
dChydW5uZXIucHJvY2Vzc19oYW5kbGVyLnBpZCkKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IkZpcmVmb3ggU3RhcnRlZCIpCiAKICAgICAgICAgcmV0dXJuIGluc3RhbmNlCkBAIC0zMzAsNiAr
NDA4LDcgQEAgY2xhc3MgU2luZ2xlSW5zdGFuY2VNYW5hZ2VyKEZpcmVmb3hJbnN0YW5jZU1hbmFn
ZXIpOgogICAgICAgICAgICAgaWYgaW5zdGFuY2U6CiAgICAgICAgICAgICAgICAgaW5zdGFuY2Uu
c3RvcChmb3JjZSkKICAgICAgICAgICAgICAgICBpbnN0YW5jZS5jbGVhbnVwKCkKKyAgICAgICAg
c2VsZi5iYXNlX3Byb2ZpbGUuY2xlYW51cCgpCiAKIAogY2xhc3MgUHJlbG9hZEluc3RhbmNlTWFu
YWdlcihGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKToKQEAgLTM1MiwxNSArNDMxLDE2IEBAIGNsYXNz
IFByZWxvYWRJbnN0YW5jZU1hbmFnZXIoRmlyZWZveEluc3RhbmNlTWFuYWdlcik6CiAgICAgICAg
IHJldHVybiBzZWxmLmN1cnJlbnQKIAogICAgIGRlZiB0ZWFyZG93bihzZWxmLCBmb3JjZT1GYWxz
ZSk6Ci0gICAgICAgIGZvciBpbnN0YW5jZSwgc2tpcF9tYXJpb25ldHRlIGluIFsoc2VsZi5wcmV2
aW91cywgRmFsc2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHNlbGYuY3VycmVudCwgRmFsc2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHNlbGYucGVuZGluZywgVHJ1ZSldOgorICAgICAgICBmb3IgaW5zdGFuY2UsIHVu
dXNlZCBpbiBbKHNlbGYucHJldmlvdXMsIEZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzZWxmLmN1cnJlbnQsIEZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzZWxmLnBlbmRpbmcsIFRydWUpXToKICAgICAgICAgICAgIGlmIGluc3RhbmNl
OgotICAgICAgICAgICAgICAgIGluc3RhbmNlLnN0b3AoZm9yY2UsIHNraXBfbWFyaW9uZXR0ZT1z
a2lwX21hcmlvbmV0dGUpCisgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc3RvcChmb3JjZSwgdW51
c2VkKQogICAgICAgICAgICAgICAgIGluc3RhbmNlLmNsZWFudXAoKQorICAgICAgICBzZWxmLmJh
c2VfcHJvZmlsZS5jbGVhbnVwKCkKIAogCi1jbGFzcyBCcm93c2VySW5zdGFuY2Uob2JqZWN0KToK
K2NsYXNzIEJyb3dzZXJJbnN0YW5jZToKICAgICBzaHV0ZG93bl90aW1lb3V0ID0gNzAKIAogICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHJ1bm5lciwgbWFyaW9uZXR0ZV9wb3J0LCBvdXRw
dXRfaGFuZGxlciwgbGVha19yZXBvcnRfZmlsZSk6CkBAIC0zNzEsMjUgKzQ1MSwzNSBAQCBjbGFz
cyBCcm93c2VySW5zdGFuY2Uob2JqZWN0KToKICAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlciA9
IG91dHB1dF9oYW5kbGVyCiAgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IGxlYWtfcmVw
b3J0X2ZpbGUKIAotICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlLCBza2lwX21hcmlvbmV0
dGU9RmFsc2UpOgotICAgICAgICAiIiJTdG9wIEZpcmVmb3giIiIKKyAgICBkZWYgc3RvcChzZWxm
LCBmb3JjZT1GYWxzZSwgdW51c2VkPUZhbHNlKToKKyAgICAgICAgIiIiU3RvcCBGaXJlZm94CisK
KyAgICAgICAgOnBhcmFtIGZvcmNlOiBTaWduYWwgdGhlIGZpcmVmb3ggcHJvY2VzcyB3aXRob3V0
IHdhaXRpbmcgZm9yIGEgY2xlYW4gc2h1dGRvd24KKyAgICAgICAgOnBhcmFtIHVudXNlZDogVGhp
cyBpbnN0YW5jZSB3YXMgbm90IHVzZWQgZm9yIHJ1bm5pbmcgdGVzdHMgYW5kIHNvCisgICAgICAg
ICAgICAgICAgICAgICAgIGRvZXNuJ3QgaGF2ZSBhbiBhY3RpdmUgbWFyaW9uZXR0ZSBzZXNzaW9u
IGFuZCBkb2Vzbid0IHJlcXVpcmUKKyAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0IHBvc3Rw
cm9jZXNzaW5nLgorICAgICAgICAiIiIKICAgICAgICAgaXNfcnVubmluZyA9IHNlbGYucnVubmVy
IGlzIG5vdCBOb25lIGFuZCBzZWxmLnJ1bm5lci5pc19ydW5uaW5nKCkKICAgICAgICAgaWYgaXNf
cnVubmluZzoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdG9wcGluZyBGaXJlZm94
ICVzIiAlIHNlbGYucGlkKCkpCiAgICAgICAgICAgICBzaHV0ZG93bl9tZXRob2RzID0gWyhUcnVl
LCBsYW1iZGE6IHNlbGYucnVubmVyLndhaXQoc2VsZi5zaHV0ZG93bl90aW1lb3V0KSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChGYWxzZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci5z
dG9wKHNpZ25hbC5TSUdURVJNKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChG
YWxzZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci5zdG9wKHNpZ25hbC5TSUdLSUxMKSldCi0gICAgICAg
ICAgICBpZiBza2lwX21hcmlvbmV0dGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChGYWxzZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci5zdG9wKHNpZ25hbC5TSUdURVJNLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnNodXRkb3duX3RpbWVvdXQpKV0KKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2lnbmFs
LCAiU0lHS0lMTCIpOgorICAgICAgICAgICAgICAgIHNodXRkb3duX21ldGhvZHMuYXBwZW5kKChG
YWxzZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci5zdG9wKHNpZ25hbC5TSUdLSUxMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuc2h1dGRvd25fdGltZW91dCkpKQorICAgICAgICAgICAgaWYgdW51c2VkIG9y
IGZvcmNlOgorICAgICAgICAgICAgICAgICMgRG9uJ3Qgd2FpdCBmb3IgdGhlIGluc3RhbmNlIHRv
IGNsb3NlIGl0c2VsZgogICAgICAgICAgICAgICAgIHNodXRkb3duX21ldGhvZHMgPSBzaHV0ZG93
bl9tZXRob2RzWzE6XQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICMgRm9yIEZp
cmVmb3ggd2UgYXNzdW1lIHRoYXQgc3RvcHBpbmcgdGhlIHJ1bm5lciBwcm9tcHRzIHRoZQogICAg
ICAgICAgICAgICAgICMgYnJvd3NlciB0byBzaHV0IGRvd24uIFRoaXMgYWxsb3dzIHRoZSBsZWFr
IGxvZyB0byBiZSB3cml0dGVuCi0gICAgICAgICAgICAgICAgZm9yIGNsZWFuLCBzdG9wX2YgaW4g
c2h1dGRvd25fbWV0aG9kczoKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGZvcmNlIG9yIG5v
dCBjbGVhbjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldGNvZGUgPSBzdG9wX2YoKQotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgcmV0Y29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJCcm93c2VyIGV4aXRlZCB3aXRoIHJl
dHVybiBjb2RlICVzIiAlIHJldGNvZGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWsKKyAgICAgICAgICAgICAgICBmb3IgaSwgKGNsZWFuLCBzdG9wX2YpIGluIGVudW1lcmF0ZShz
aHV0ZG93bl9tZXRob2RzKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IlNodXR0aW5nIGRvd24gYXR0ZW1wdCAlaS8laSIgJSAoaSArIDEsIGxlbihzaHV0ZG93bl9tZXRo
b2RzKSkpCisgICAgICAgICAgICAgICAgICAgIHJldGNvZGUgPSBzdG9wX2YoKQorICAgICAgICAg
ICAgICAgICAgICBpZiByZXRjb2RlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiQnJvd3NlciBleGl0ZWQgd2l0aCByZXR1cm4gY29kZSAlcyIg
JSByZXRjb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgIGV4
Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIG9uIFdpbmRv
d3MgaWYgdGhlIHByb2Nlc3MgaXMgYWxyZWFkeSBkZWFkCiAgICAgICAgICAgICAgICAgcGFzcwpA
QCAtMzk3LDggKzQ4Nyw4IEBAIGNsYXNzIEJyb3dzZXJJbnN0YW5jZShvYmplY3QpOgogICAgICAg
ICAgICAgIyBUaGUgYnJvd3NlciB3YXMgYWxyZWFkeSBzdG9wcGVkLCB3aGljaCB3ZSBhc3N1bWUg
d2FzIGEgY3Jhc2gKICAgICAgICAgICAgICMgVE9ETzogU2hvdWxkIHdlIGNoZWNrIHRoZSBleGl0
IGNvZGUgaGVyZT8KICAgICAgICAgICAgIGNsZWFuID0gRmFsc2UKLSAgICAgICAgaWYgbm90IHNr
aXBfbWFyaW9uZXR0ZToKLSAgICAgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIuYWZ0ZXJfc3Rv
cChjbGVhbl9zaHV0ZG93bj1jbGVhbikKKyAgICAgICAgaWYgbm90IHVudXNlZDoKKyAgICAgICAg
ICAgIHNlbGYub3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdG9wKGNsZWFuX3NodXRkb3du
PWNsZWFuKQogCiAgICAgZGVmIHBpZChzZWxmKToKICAgICAgICAgaWYgc2VsZi5ydW5uZXIucHJv
Y2Vzc19oYW5kbGVyIGlzIE5vbmU6CkBAIC00MTUsMTIgKzUwNSwxMyBAQCBjbGFzcyBCcm93c2Vy
SW5zdGFuY2Uob2JqZWN0KToKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICBkZWYgY2xlYW51
cChzZWxmKToKLSAgICAgICAgIyBtb3pwcm9maWxlIGhhbmRsZXMgZGVsZXRpbmcgdGhlIHByb2Zp
bGUgd2hlbiB0aGUgcmVmY291bnQgcmVhY2hlcyAwCisgICAgICAgIHNlbGYucnVubmVyLmNsZWFu
dXAoKQogICAgICAgICBzZWxmLnJ1bm5lciA9IE5vbmUKIAogCi1jbGFzcyBPdXRwdXRIYW5kbGVy
KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgc3RhY2tmaXhfZGlyLCBz
eW1ib2xzX3BhdGgsIGFzYW4pOgorY2xhc3MgRmlyZWZveE91dHB1dEhhbmRsZXIoT3V0cHV0SGFu
ZGxlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgY29tbWFuZCwgc3ltYm9sc19w
YXRoPU5vbmUsIHN0YWNrZml4X2Rpcj1Ob25lLCBhc2FuPUZhbHNlLAorICAgICAgICAgICAgICAg
ICBsZWFrX3JlcG9ydF9maWxlPU5vbmUpOgogICAgICAgICAiIiJGaWx0ZXIgZm9yIGhhbmRsaW5n
IEZpcmVmb3ggcHJvY2VzcyBvdXRwdXQuCiAKICAgICAgICAgVGhpcyByZWNlaXZlcyBGaXJlZm94
IHByb2Nlc3Mgb3V0cHV0IGluIHRoZSBfX2NhbGxfXyBmdW5jdGlvbiwgZG9lcwpAQCAtNDMxLDkg
KzUyMiw3IEBAIGNsYXNzIE91dHB1dEhhbmRsZXIob2JqZWN0KToKICAgICAgICAgb2YgdGhlIG91
dHB1dCBoYW5kbGVycy4KICAgICAgICAgIiIiCiAKLSAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dn
ZXIKLSAgICAgICAgIyBUaGVzZSBhcmUgZmlsbGVkIGluIGFmdGVyIHNldHVwKCkgaXMgY2FsbGVk
Ci0gICAgICAgIHNlbGYuaW5zdGFuY2UgPSBOb25lCisgICAgICAgIHN1cGVyKCkuX19pbml0X18o
bG9nZ2VyLCBjb21tYW5kKQogCiAgICAgICAgIHNlbGYuc3ltYm9sc19wYXRoID0gc3ltYm9sc19w
YXRoCiAgICAgICAgIGlmIHN0YWNrZml4X2RpcjoKQEAgLTQ0NSwyMSArNTM0LDE4IEBAIGNsYXNz
IE91dHB1dEhhbmRsZXIob2JqZWN0KToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYu
c3RhY2tfZml4ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuYXNhbiA9IGFzYW4KKyAgICAgICAgc2Vs
Zi5sZWFrX3JlcG9ydF9maWxlID0gbGVha19yZXBvcnRfZmlsZQogCisgICAgICAgICMgVGhlc2Ug
YXJlIGZpbGxlZCBpbiBhZnRlciBjb25maWd1cmVfaGFuZGxlcnMoKSBpcyBjYWxsZWQKICAgICAg
ICAgc2VsZi5sc2FuX2hhbmRsZXIgPSBOb25lCiAgICAgICAgIHNlbGYubW96bGVha19hbGxvd2Vk
ID0gTm9uZQogICAgICAgICBzZWxmLm1vemxlYWtfdGhyZXNob2xkcyA9IE5vbmUKICAgICAgICAg
c2VsZi5ncm91cF9tZXRhZGF0YSA9IHt9CiAKLSAgICAgICAgc2VsZi5saW5lX2J1ZmZlciA9IFtd
Ci0gICAgICAgIHNlbGYuc2V0dXBfcmFuID0gRmFsc2UKLQotICAgIGRlZiBzZXR1cChzZWxmLCBp
bnN0YW5jZT1Ob25lLCBncm91cF9tZXRhZGF0YT1Ob25lLCBsc2FuX2Rpc2FibGVkPUZhbHNlLAot
ICAgICAgICAgICAgICBsc2FuX2FsbG93ZWQ9Tm9uZSwgbHNhbl9tYXhfc3RhY2tfZGVwdGg9Tm9u
ZSwgbW96bGVha19hbGxvd2VkPU5vbmUsCi0gICAgICAgICAgICAgIG1vemxlYWtfdGhyZXNob2xk
cz1Ob25lLCAqKmt3YXJncyk6CisgICAgZGVmIHN0YXJ0KHNlbGYsIGdyb3VwX21ldGFkYXRhPU5v
bmUsIGxzYW5fZGlzYWJsZWQ9RmFsc2UsIGxzYW5fYWxsb3dlZD1Ob25lLAorICAgICAgICAgICAg
ICBsc2FuX21heF9zdGFja19kZXB0aD1Ob25lLCBtb3psZWFrX2FsbG93ZWQ9Tm9uZSwgbW96bGVh
a190aHJlc2hvbGRzPU5vbmUsCisgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICAgICAgIiIi
Q29uZmlndXJlIHRoZSBvdXRwdXQgaGFuZGxlciIiIgotICAgICAgICBzZWxmLmluc3RhbmNlID0g
aW5zdGFuY2UKLQogICAgICAgICBpZiBncm91cF9tZXRhZGF0YSBpcyBOb25lOgogICAgICAgICAg
ICAgZ3JvdXBfbWV0YWRhdGEgPSB7fQogICAgICAgICBzZWxmLmdyb3VwX21ldGFkYXRhID0gZ3Jv
dXBfbWV0YWRhdGEKQEAgLTQ3NSwxOCArNTYxLDEzIEBAIGNsYXNzIE91dHB1dEhhbmRsZXIob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWxsb3dBbGw9bHNhbl9kaXNhYmxlZCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYu
bHNhbl9oYW5kbGVyID0gTm9uZQorICAgICAgICBzdXBlcigpLnN0YXJ0KCkKIAotICAgICAgICBz
ZWxmLnNldHVwX3JhbiA9IFRydWUKLQotICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVfYnVm
ZmVyOgotICAgICAgICAgICAgc2VsZi5fX2NhbGxfXyhsaW5lKQotICAgICAgICBzZWxmLmxpbmVf
YnVmZmVyID0gW10KLQotICAgIGRlZiBhZnRlcl9zdG9wKHNlbGYsIGNsZWFuX3NodXRkb3duPVRy
dWUpOgotICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJQUk9DRVNTIExFQUtTICVzIiAlIHNlbGYu
aW5zdGFuY2UubGVha19yZXBvcnRfZmlsZSkKKyAgICBkZWYgYWZ0ZXJfcHJvY2Vzc19zdG9wKHNl
bGYsIGNsZWFuX3NodXRkb3duPVRydWUpOgorICAgICAgICBzdXBlcigpLmFmdGVyX3Byb2Nlc3Nf
c3RvcChjbGVhbl9zaHV0ZG93bikKICAgICAgICAgaWYgc2VsZi5sc2FuX2hhbmRsZXI6CiAgICAg
ICAgICAgICBzZWxmLmxzYW5faGFuZGxlci5wcm9jZXNzKCkKLSAgICAgICAgaWYgc2VsZi5pbnN0
YW5jZS5sZWFrX3JlcG9ydF9maWxlIGlzIG5vdCBOb25lOgorICAgICAgICBpZiBzZWxmLmxlYWtf
cmVwb3J0X2ZpbGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpZiBub3QgY2xlYW5fc2h1dGRv
d246CiAgICAgICAgICAgICAgICAgIyBJZiB3ZSBkaWRuJ3QgZ2V0IGEgY2xlYW4gc2h1dGRvd24g
dGhlcmUgcHJvYmFibHkgaXNuJ3QgYSBsZWFrIHJlcG9ydCBmaWxlCiAgICAgICAgICAgICAgICAg
c2VsZi5sb2dnZXIud2FybmluZygiRmlyZWZveCBkaWRuJ3QgZXhpdCBjbGVhbmx5LCBub3QgcHJv
Y2Vzc2luZyBsZWFrIGxvZ3MiKQpAQCAtNDk0LDIxICs1NzUsMjQgQEAgY2xhc3MgT3V0cHV0SGFu
ZGxlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICMgV2UgaGF2ZSB0byBpZ25vcmUgbWlzc2lu
ZyBsZWFrcyBpbiB0aGUgdGFiIGJlY2F1c2UgaXQgY2FuIGhhcHBlbiB0aGF0IHRoZQogICAgICAg
ICAgICAgICAgICMgY29udGVudCBwcm9jZXNzIGNyYXNoZWQgYW5kIGluIHRoYXQgY2FzZSB3ZSBk
b24ndCB3YW50IHRoZSB0ZXN0IHRvIGZhaWwuCiAgICAgICAgICAgICAgICAgIyBJZGVhbGx5IHdl
IHdvdWxkIHJlY29yZCB3aGljaCBjb250ZW50IHByb2Nlc3MgY3Jhc2hlZCBhbmQganVzdCBza2lw
IHRob3NlLgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlBST0NFU1MgTEVBS1Mg
JXMiICUgc2VsZi5sZWFrX3JlcG9ydF9maWxlKQogICAgICAgICAgICAgICAgIG1vemxlYWsucHJv
Y2Vzc19sZWFrX2xvZygKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5pbnN0YW5jZS5sZWFrX3Jl
cG9ydF9maWxlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUsCiAg
ICAgICAgICAgICAgICAgICAgIGxlYWtfdGhyZXNob2xkcz1zZWxmLm1vemxlYWtfdGhyZXNob2xk
cywKICAgICAgICAgICAgICAgICAgICAgaWdub3JlX21pc3NpbmdfbGVha3M9WyJ0YWIiLCAiZ21w
bHVnaW4iXSwKICAgICAgICAgICAgICAgICAgICAgbG9nPXNlbGYubG9nZ2VyLAogICAgICAgICAg
ICAgICAgICAgICBzdGFja19maXhlcj1zZWxmLnN0YWNrX2ZpeGVyLAogICAgICAgICAgICAgICAg
ICAgICBzY29wZT1zZWxmLmdyb3VwX21ldGFkYXRhLmdldCgic2NvcGUiKSwKICAgICAgICAgICAg
ICAgICAgICAgYWxsb3dlZD1zZWxmLm1vemxlYWtfYWxsb3dlZCkKKyAgICAgICAgICAgIGlmIG9z
LnBhdGguZXhpc3RzKHNlbGYubGVha19yZXBvcnRfZmlsZSk6CisgICAgICAgICAgICAgICAgb3Mu
dW5saW5rKHNlbGYubGVha19yZXBvcnRfZmlsZSkKIAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBs
aW5lKToKICAgICAgICAgIiIiV3JpdGUgYSBsaW5lIG9mIG91dHB1dCBmcm9tIHRoZSBmaXJlZm94
IHByb2Nlc3MgdG8gdGhlIGxvZyIiIgogICAgICAgICBpZiBiIkdMaWItR09iamVjdC1DUklUSUNB
TCIgaW4gbGluZToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBpZiBsaW5lOgotICAgICAg
ICAgICAgaWYgbm90IHNlbGYuc2V0dXBfcmFuOgorICAgICAgICAgICAgaWYgc2VsZi5zdGF0ZSA8
IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9IQU5ETEVSX1NUQVJUOgogICAgICAgICAgICAgICAg
IHNlbGYubGluZV9idWZmZXIuYXBwZW5kKGxpbmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuCiAg
ICAgICAgICAgICBkYXRhID0gbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpCkBAIC01MTcs
MTQgKzYwMSwxMiBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBp
ZiBzZWxmLmxzYW5faGFuZGxlcjoKICAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5sc2FuX2hh
bmRsZXIubG9nKGRhdGEpCiAgICAgICAgICAgICBpZiBkYXRhIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KHNlbGYuaW5zdGFuY2UgYW5kCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbnN0YW5jZS5y
dW5uZXIucHJvY2Vzc19oYW5kbGVyIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuaW5zdGFuY2UucnVubmVyLnByb2Nlc3NfaGFuZGxlci5waWQsCisg
ICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuaW5z
dGFuY2UucnVubmVyLmNvbW1hbmQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5jb21tYW5kKSkKIAogCi1jbGFzcyBQcm9m
aWxlQ3JlYXRvcihvYmplY3QpOgorY2xhc3MgUHJvZmlsZUNyZWF0b3I6CiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgY29uZmlnLCB0ZXN0X3R5cGUsIGV4dHJhX3By
ZWZzLCBlMTBzLAogICAgICAgICAgICAgICAgICBlbmFibGVfZmlzc2lvbiwgYnJvd3Nlcl9jaGFu
bmVsLCBiaW5hcnksIGNlcnR1dGlsX2JpbmFyeSwgY2FfY2VydGlmaWNhdGVfcGF0aCk6CiAgICAg
ICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCkBAIC01NDAsMTggKzYyMiwzOCBAQCBjbGFzcyBQcm9m
aWxlQ3JlYXRvcihvYmplY3QpOgogICAgICAgICBzZWxmLmNlcnR1dGlsX2JpbmFyeSA9IGNlcnR1
dGlsX2JpbmFyeQogICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBjYV9jZXJ0aWZp
Y2F0ZV9wYXRoCiAKLSAgICBkZWYgY3JlYXRlKHNlbGYpOgorICAgIGRlZiBjcmVhdGUoc2VsZiwg
Kiprd2FyZ3MpOgogICAgICAgICAiIiJDcmVhdGUgYSBGaXJlZm94IHByb2ZpbGUgYW5kIHJldHVy
biB0aGUgbW96cHJvZmlsZSBQcm9maWxlIG9iamVjdCBwb2ludGluZyBhdCB0aGF0Ci0gICAgICAg
IHByb2ZpbGUiIiIKKyAgICAgICAgcHJvZmlsZQorCisgICAgICAgIDpwYXJhbSBrd2FyZ3M6IEFk
ZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgaW50byB0aGUgcHJvZmlsZSBjb25zdHJ1Y3Rvcgor
ICAgICAgICAiIiIKICAgICAgICAgcHJlZmVyZW5jZXMgPSBzZWxmLl9sb2FkX3ByZWZzKCkKIAot
ICAgICAgICBwcm9maWxlID0gRmlyZWZveFByb2ZpbGUocHJlZmVyZW5jZXM9cHJlZmVyZW5jZXMp
CisgICAgICAgIHByb2ZpbGUgPSBGaXJlZm94UHJvZmlsZShwcmVmZXJlbmNlcz1wcmVmZXJlbmNl
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmU9RmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICAgICAgc2VsZi5fc2V0
X3JlcXVpcmVkX3ByZWZzKHByb2ZpbGUpCiAgICAgICAgIGlmIHNlbGYuY2FfY2VydGlmaWNhdGVf
cGF0aCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYuX3NldHVwX3NzbChwcm9maWxlKQog
CiAgICAgICAgIHJldHVybiBwcm9maWxlCiAKKyAgICBkZWYgY3JlYXRlX2Jhc2U2NChzZWxmLCAq
Kmt3YXJncyk6CisgICAgICAgIHByb2ZpbGUgPSBzZWxmLmNyZWF0ZSgqKmt3YXJncykKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBpby5CeXRlc0lPKCkgYXMgYnVmOgorICAgICAgICAg
ICAgICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKGJ1ZiwgInciLCBjb21wcmVzc2lvbj16aXBmaWxl
LlpJUF9ERUZMQVRFRCkgYXMgemlwZjoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGRpcnBhdGgs
IF8sIGZpbGVuYW1lcyBpbiBvcy53YWxrKHByb2ZpbGUucHJvZmlsZSk6CisgICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNyY19wYXRoID0gb3MucGF0aC5qb2luKGRpcnBhdGgsIGZpbGVuYW1lKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfcGF0aCA9IG9zLnBhdGgucmVscGF0aChzcmNf
cGF0aCwgcHJvZmlsZS5wcm9maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGgg
b3BlbihzcmNfcGF0aCwgInJiIikgYXMgZjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgemlwZi53cml0ZXN0cihkZXN0X3BhdGgsIGYucmVhZCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBiYXNlNjQuYjY0ZW5jb2RlKGJ1Zi5nZXR2YWx1ZSgpKS5kZWNvZGUoImFzY2lpIikuc3Ry
aXAoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcHJvZmlsZS5jbGVhbnVwKCkKKwog
ICAgIGRlZiBfbG9hZF9wcmVmcyhzZWxmKToKICAgICAgICAgcHJlZnMgPSBQcmVmZXJlbmNlcygp
CiAKQEAgLTY0MSwxNCArNzQzLDEzIEBAIGNsYXNzIFByb2ZpbGVDcmVhdG9yKG9iamVjdCk6CiAK
IAogICAgICAgICBlbnZbZW52X3Zhcl0gPSAob3MucGF0aC5wYXRoc2VwLmpvaW4oW2NlcnR1dGls
X2RpciwgZW52W2Vudl92YXJdXSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGVudl92YXIg
aW4gZW52IGVsc2UgY2VydHV0aWxfZGlyKS5lbmNvZGUoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpIG9yICd1dGYtOCcsICdyZXBsYWNlJykK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGVudl92YXIgaW4gZW52IGVsc2UgY2VydHV0aWxf
ZGlyKQogCiAgICAgICAgIGRlZiBjZXJ0dXRpbCgqYXJncyk6CiAgICAgICAgICAgICBjbWQgPSBb
c2VsZi5jZXJ0dXRpbF9iaW5hcnldICsgbGlzdChhcmdzKQogICAgICAgICAgICAgc2VsZi5sb2dn
ZXIucHJvY2Vzc19vdXRwdXQoImNlcnR1dGlsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGNtZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0
X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW52PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9V
VCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIuam9pbihjbWQp
KQogCkBAIC02NzAsNyArNzcxLDYgQEAgY2xhc3MgUHJvZmlsZUNyZWF0b3Iob2JqZWN0KToKICAg
ICAgICAgY2VydHV0aWwoIi1MIiwgIi1kIiwgY2VydF9kYl9wYXRoKQogCiAKLQogY2xhc3MgRmly
ZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0ID0gNzAKIApAQCAtNjc5LDcg
Kzc3OSw4IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAgICAg
ICBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUsIGUxMHM9RmFsc2UsIGVuYWJsZV93ZWJyZW5kZXI9
RmFsc2UsIGVuYWJsZV9maXNzaW9uPUZhbHNlLAogICAgICAgICAgICAgICAgICBzdGFja2ZpeF9k
aXI9Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwgdGltZW91dF9tdWx0aXBsaWVyPU5vbmUsIGxlYWtf
Y2hlY2s9RmFsc2UsCiAgICAgICAgICAgICAgICAgIGFzYW49RmFsc2UsIHN0eWxvX3RocmVhZHM9
MSwgY2hhb3NfbW9kZV9mbGFncz1Ob25lLCBjb25maWc9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
YnJvd3Nlcl9jaGFubmVsPSJuaWdodGx5IiwgaGVhZGxlc3M9Tm9uZSwgcHJlbG9hZF9icm93c2Vy
PUZhbHNlLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2hhbm5lbD0ibmln
aHRseSIsIGhlYWRsZXNzPU5vbmUsIHByZWxvYWRfYnJvd3Nlcj1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgc3BlY2lhbHBvd2Vyc19wYXRoPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgQnJvd3Nl
ci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAKICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIK
QEAgLTY4OCw2ICs3ODksNyBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKICAgICAg
ICAgICAgIHNlbGYuaW5pdF90aW1lb3V0ID0gc2VsZi5pbml0X3RpbWVvdXQgKiB0aW1lb3V0X211
bHRpcGxpZXIKIAogICAgICAgICBzZWxmLmluc3RhbmNlID0gTm9uZQorICAgICAgICBzZWxmLl9z
ZXR0aW5ncyA9IE5vbmUKIAogICAgICAgICBzZWxmLnN0YWNrZml4X2RpciA9IHN0YWNrZml4X2Rp
cgogICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0aApAQCAtNjk2LDYgKzc5
OCw4IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLmFzYW4g
PSBhc2FuCiAgICAgICAgIHNlbGYubGVha19jaGVjayA9IGxlYWtfY2hlY2sKIAorICAgICAgICBz
ZWxmLnNwZWNpYWxwb3dlcnNfcGF0aCA9IHNwZWNpYWxwb3dlcnNfcGF0aAorCiAgICAgICAgIHBy
b2ZpbGVfY3JlYXRvciA9IFByb2ZpbGVDcmVhdG9yKGxvZ2dlciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJlZnNfcm9vdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uZmlnLApAQCAtNzI2LDE5ICs4MzAsMTkgQEAgY2xhc3Mg
RmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNhbikKIAotCiAgICAgZGVmIHNldHRp
bmdzKHNlbGYsIHRlc3QpOgotICAgICAgICByZXR1cm4geyJjaGVja19sZWFrcyI6IHNlbGYubGVh
a19jaGVjayBhbmQgbm90IHRlc3QubGVha3MsCi0gICAgICAgICAgICAgICAgImxzYW5fZGlzYWJs
ZWQiOiB0ZXN0LmxzYW5fZGlzYWJsZWQsCi0gICAgICAgICAgICAgICAgImxzYW5fYWxsb3dlZCI6
IHRlc3QubHNhbl9hbGxvd2VkLAotICAgICAgICAgICAgICAgICJsc2FuX21heF9zdGFja19kZXB0
aCI6IHRlc3QubHNhbl9tYXhfc3RhY2tfZGVwdGgsCi0gICAgICAgICAgICAgICAgIm1vemxlYWtf
YWxsb3dlZCI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX2FsbG93ZWQsCi0gICAg
ICAgICAgICAgICAgIm1vemxlYWtfdGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVz
dC5tb3psZWFrX3RocmVzaG9sZH0KKyAgICAgICAgc2VsZi5fc2V0dGluZ3MgPSB7ImNoZWNrX2xl
YWtzIjogc2VsZi5sZWFrX2NoZWNrIGFuZCBub3QgdGVzdC5sZWFrcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgImxzYW5fZGlzYWJsZWQiOiB0ZXN0LmxzYW5fZGlzYWJsZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJsc2FuX2FsbG93ZWQiOiB0ZXN0LmxzYW5fYWxsb3dlZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgImxzYW5fbWF4X3N0YWNrX2RlcHRoIjogdGVzdC5sc2Fu
X21heF9zdGFja19kZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vemxlYWtfYWxs
b3dlZCI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX2FsbG93ZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJtb3psZWFrX3RocmVzaG9sZHMiOiBzZWxmLmxlYWtfY2hlY2sg
YW5kIHRlc3QubW96bGVha190aHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJz
cGVjaWFsX3Bvd2VycyI6IHNlbGYuc3BlY2lhbHBvd2Vyc19wYXRoIGFuZCB0ZXN0LnVybF9iYXNl
ID09ICIvX21vemlsbGEvIn0KKyAgICAgICAgcmV0dXJuIHNlbGYuX3NldHRpbmdzCiAKICAgICBk
ZWYgc3RhcnQoc2VsZiwgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBz
ZWxmLmluc3RhbmNlID0gc2VsZi5pbnN0YW5jZV9tYW5hZ2VyLmdldCgpCi0gICAgICAgIHNlbGYu
aW5zdGFuY2Uub3V0cHV0X2hhbmRsZXIuc2V0dXAoc2VsZi5pbnN0YW5jZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cF9tZXRhZGF0YSwKKyAgICAgICAg
c2VsZi5pbnN0YW5jZS5vdXRwdXRfaGFuZGxlci5zdGFydChncm91cF9tZXRhZGF0YSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKIAogICAgIGRl
ZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKQEAgLTc1Niw3ICs4NjAsMTEgQEAgY2xhc3MgRmly
ZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAKICAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToK
ICAgICAgICAgYXNzZXJ0IHNlbGYuaW5zdGFuY2UgaXMgbm90IE5vbmUKLSAgICAgICAgcmV0dXJu
IEV4ZWN1dG9yQnJvd3NlciwgeyJtYXJpb25ldHRlX3BvcnQiOiBzZWxmLmluc3RhbmNlLm1hcmlv
bmV0dGVfcG9ydH0KKyAgICAgICAgZXh0ZW5zaW9ucyA9IFtdCisgICAgICAgIGlmIHNlbGYuX3Nl
dHRpbmdzLmdldCgic3BlY2lhbF9wb3dlcnMiLCBGYWxzZSk6CisgICAgICAgICAgICBleHRlbnNp
b25zLmFwcGVuZChzZWxmLnNwZWNpYWxwb3dlcnNfcGF0aCkKKyAgICAgICAgcmV0dXJuIEV4ZWN1
dG9yQnJvd3NlciwgeyJtYXJpb25ldHRlX3BvcnQiOiBzZWxmLmluc3RhbmNlLm1hcmlvbmV0dGVf
cG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHRlbnNpb25zIjogZXh0
ZW5zaW9uc30KIAogICAgIGRlZiBjaGVja19jcmFzaChzZWxmLCBwcm9jZXNzLCB0ZXN0KToKICAg
ICAgICAgZHVtcF9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5pbnN0YW5jZS5ydW5uZXIucHJvZmls
ZS5wcm9maWxlLCAibWluaWR1bXBzIikKQEAgLTc3MSwzICs4NzksMzkgQEAgY2xhc3MgRmlyZWZv
eEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAgICAg
c2VsZi5sb2dnZXIud2FybmluZygiTG9va2luZyBmb3IgY3Jhc2ggZHVtcCBmaWxlcyBmYWlsZWQi
KQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKworY2xhc3MgRmlyZWZveFdkU3BlY0Jyb3dz
ZXIoTnVsbEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGxlYWtfY2hl
Y2s9RmFsc2UsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhsb2dnZXIsICoq
a3dhcmdzKQorICAgICAgICBzZWxmLmxlYWtfY2hlY2sgPSBsZWFrX2NoZWNrCisKKyAgICBkZWYg
c2V0dGluZ3Moc2VsZiwgdGVzdCk6CisgICAgICAgIHJldHVybiB7ImNoZWNrX2xlYWtzIjogc2Vs
Zi5sZWFrX2NoZWNrIGFuZCBub3QgdGVzdC5sZWFrcywKKyAgICAgICAgICAgICAgICAibHNhbl9k
aXNhYmxlZCI6IHRlc3QubHNhbl9kaXNhYmxlZCwKKyAgICAgICAgICAgICAgICAibHNhbl9hbGxv
d2VkIjogdGVzdC5sc2FuX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgImxzYW5fbWF4X3N0YWNr
X2RlcHRoIjogdGVzdC5sc2FuX21heF9zdGFja19kZXB0aCwKKyAgICAgICAgICAgICAgICAibW96
bGVha19hbGxvd2VkIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1vemxlYWtfYWxsb3dlZCwK
KyAgICAgICAgICAgICAgICAibW96bGVha190aHJlc2hvbGRzIjogc2VsZi5sZWFrX2NoZWNrIGFu
ZCB0ZXN0Lm1vemxlYWtfdGhyZXNob2xkfQorCisKK2NsYXNzIEdlY2tvRHJpdmVyU2VydmVyKFdl
YkRyaXZlclNlcnZlcik6CisgICAgb3V0cHV0X2hhbmRsZXJfY2xzID0gRmlyZWZveE91dHB1dEhh
bmRsZXIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIG1hcmlvbmV0dGVfcG9ydD0y
ODI4LCBiaW5hcnk9ImdlY2tvZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAgaG9zdD0iMTI3LjAu
MC4xIiwgcG9ydD1Ob25lLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAgICAgaWYgZW52IGlz
IE5vbmU6CisgICAgICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICBlbnZb
IlJVU1RfQkFDS1RSQUNFIl0gPSAiMSIKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aG9zdD1ob3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9YXJncykKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlX3Bv
cnQgPSBtYXJpb25ldHRlX3BvcnQKKworICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAg
ICAgIHJldHVybiBbc2VsZi5iaW5hcnksCisgICAgICAgICAgICAgICAgIi0tbWFyaW9uZXR0ZS1w
b3J0Iiwgc3RyKHNlbGYubWFyaW9uZXR0ZV9wb3J0KSwKKyAgICAgICAgICAgICAgICAiLS1ob3N0
Iiwgc2VsZi5ob3N0LAorICAgICAgICAgICAgICAgICItLXBvcnQiLCBzdHIoc2VsZi5wb3J0KV0g
KyBzZWxmLl9hcmdzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5CmluZGV4
IDc4YzIyYjkwOWFjZi4uYzg1MWRhZjBiNjNjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9pZS5weQpAQCAtMSwxMiArMSwxMSBAQAotZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3Nl
ciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwotZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIg
aW1wb3J0IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IHJl
cXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3RpbWVvdXRfbXVs
dGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9r
d2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3Jp
bnRlcm5ldGV4cGxvcmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0
b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImllIiwKICAg
ICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAg
ICAgICJicm93c2VyIjogIkludGVybmV0RXhwbG9yZXJCcm93c2VyIiwKKyAgICAgICAgICAgICAg
ICAgImJyb3dzZXIiOiAiTnVsbEJyb3dzZXIiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Ii
OiB7Indkc3BlYyI6ICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKICAg
ICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAg
ICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLApAQCAtMTgs
MTggKzE3LDE3IEBAIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiaWUiLAogZGVmIGNoZWNr
X2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5h
cnkiKQogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25m
aWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVyX2Jp
bmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZl
cl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KIAotZGVmIGV4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25t
ZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAg
b3B0aW9ucyA9IHt9CiAgICAgb3B0aW9uc1sicmVxdWlyZVdpbmRvd0ZvY3VzIl0gPSBUcnVlCiAg
ICAgY2FwYWJpbGl0aWVzID0ge30KICAgICBjYXBhYmlsaXRpZXNbInNlOmllT3B0aW9ucyJdID0g
b3B0aW9ucwotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKKyAgICBleGVj
dXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJv
bm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xv
c2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVz
Il0gPSBjYXBhYmlsaXRpZXMKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCkBAIC0zOSwzNSAr
MzcsMyBAQCBkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CiAKIGRlZiBlbnZfb3B0aW9ucygpOgog
ICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjogRmFsc2V9Ci0KLWNsYXNzIEludGVybmV0
RXhwbG9yZXJCcm93c2VyKEJyb3dzZXIpOgotICAgIHVzZWRfcG9ydHMgPSBzZXQoKQotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2Fy
Z3M9Tm9uZSk6Ci0gICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQotICAgICAg
ICBzZWxmLnNlcnZlciA9IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5h
cnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0gICAgICAgIHNlbGYud2ViZHJp
dmVyX2hvc3QgPSAibG9jYWxob3N0IgotICAgICAgICBzZWxmLndlYmRyaXZlcl9wb3J0ID0gc2Vs
Zi5zZXJ2ZXIucG9ydAotCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAg
c2VsZi5zZXJ2ZXIuc3RhcnQoKQotCi0gICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgot
ICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQotCi0gICAgZGVmIHBpZChzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAotCi0gICAgZGVmIGlzX2FsaXZlKHNl
bGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgc2VydmVy
IGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0
aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1
cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAg
ICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKLSAgICAg
ICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIu
dXJsfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQppbmRleCA4
MDVmZWRlZTYzNmMuLmYzYTI5MjljZThlYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvb3BlcmEucHkKQEAgLTEsNCArMSw1IEBACiBmcm9tIC5iYXNlIGltcG9ydCBCcm93
c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxs
QnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0
aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgT3Bl
cmFEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBh
cyBiYXNlX2V4ZWN1dG9yX2t3YXJncwpAQCAtOSw3ICsxMCw4IEBAIGZyb20gLi5leGVjdXRvcnMu
ZXhlY3V0b3JvcGVyYSBpbXBvcnQgT3BlcmFEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBG
NDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAib3BlcmEiLAogICAgICAgICAgICAg
ICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiAiT3BlcmFCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTog
Ik9wZXJhQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAi
TnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVz
cyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJPcGVyYURyaXZlcldkc3BlY0V4ZWN1dG9y
In0sCkBAIC0yNCwxOCArMjYsMTcgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJl
cXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3
YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJy
b3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoq
a3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAg
ICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAg
ICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9
CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVz
dF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAg
ICAgICAqKmt3YXJncyk6CiAgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IERlc2ly
ZWRDYXBhYmlsaXRpZXMKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dh
cmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykK
KyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRl
c3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3
YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGNhcGFiaWxpdGllcyA9IGRpY3Qo
RGVzaXJlZENhcGFiaWxpdGllcy5PUEVSQS5pdGVtcygpKQogICAgIGNhcGFiaWxpdGllcy5zZXRk
ZWZhdWx0KCJvcGVyYU9wdGlvbnMiLCB7fSlbInByZWZzIl0gPSB7CkBAIC03MSw3ICs3Miw3IEBA
IGNsYXNzIE9wZXJhQnJvd3NlcihCcm93c2VyKToKICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0ib3BlcmFkcml2ZXIiLAot
ICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgICAgICAgICAg
d2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJDcmVhdGVzIGEgbmV3
IHJlcHJlc2VudGF0aW9uIG9mIE9wZXJhLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzCiAg
ICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiCiAgICAgICAg
IEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJp
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvc2FmYXJpLnB5CmluZGV4IGNiMmIxNzVkNGRmYi4uMjBhNTQ3NWFjZjBiIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CkBAIC0xLDQg
KzEsMTEgQEAKK2ltcG9ydCBvcworaW1wb3J0IHBsaXN0bGliCitmcm9tIGRpc3R1dGlscy5zcGF3
biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCisKK2ltcG9ydCBwc3V0aWwKKwogZnJvbSAuYmFzZSBp
bXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBp
bXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIg
aW1wb3J0IFNhZmFyaURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0
b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCkBAIC0xMCw3ICsxNyw4IEBAIGZyb20g
Li5leGVjdXRvcnMuZXhlY3V0b3JzYWZhcmkgaW1wb3J0IFNhZmFyaURyaXZlcldkc3BlY0V4ZWN1
dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJzYWZhcmki
LAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAg
ICAgICAgICAgImJyb3dzZXIiOiAiU2FmYXJpQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJi
cm93c2VyIjoge05vbmU6ICJTYWZhcmlCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0
b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4
ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiU2FmYXJp
RHJpdmVyV2RzcGVjRXhlY3V0b3IiLApAQCAtMjYsMTUgKzM0LDE0IEBAIGRlZiBjaGVja19hcmdz
KCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikK
IAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFy
eSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAotICAgICAgICAgICAgIndlYmRyaXZlcl9h
cmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKyAgICAgICAgICAgICJ3ZWJkcml2
ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiksCisgICAgICAgICAgICAia2ls
bF9zYWZhcmkiOiBrd2FyZ3MuZ2V0KCJraWxsX3NhZmFyaSIsIEZhbHNlKX0KIAogCi1kZWYgZXhl
Y3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVu
X2luZm9fZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgotICAgIGV4ZWN1dG9y
X2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2Vy
LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAg
ICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3Rf
ZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3YXJn
c1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJp
bGl0aWVzIl0gPSB7fQogICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgpAQCAtNTgs
MTUgKzY1LDYwIEBAIGNsYXNzIFNhZmFyaUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgYGB3cHRydW5u
ZXIud2ViZHJpdmVyLlNhZmFyaURyaXZlclNlcnZlcmBgLgogICAgICIiIgogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9u
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSwga2lsbF9zYWZhcmk9RmFsc2UsICoqa3dhcmdzKToKICAgICAgICAg
IiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBTYWZhcmkuICBUaGUgYHdlYmRyaXZl
cl9iaW5hcnlgCiAgICAgICAgIGFyZ3VtZW50IGdpdmVzIHRoZSBXZWJEcml2ZXIgYmluYXJ5IHRv
IHVzZSBmb3IgdGVzdGluZy4gKFRoZSBicm93c2VyCiAgICAgICAgIGJpbmFyeSBsb2NhdGlvbiBj
YW5ub3QgYmUgc3BlY2lmaWVkLCBhcyBTYWZhcmkgYW5kIFNhZmFyaURyaXZlciBhcmUKLSAgICAg
ICAgY291cGxlZC4pIiIiCisgICAgICAgIGNvdXBsZWQuKSBJZiBga2lsbF9zYWZhcmlgIGlzIFRy
dWUsIHRoZW4gYEJyb3dzZXIuc3RvcGAgd2lsbCBzdG9wIFNhZmFyaS4iIiIKICAgICAgICAgQnJv
d3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAgICAgIHNlbGYuc2VydmVyID0gU2FmYXJp
RHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKyAgICAgICAgaWYgIi8i
IG5vdCBpbiB3ZWJkcml2ZXJfYmluYXJ5OgorICAgICAgICAgICAgd2RfcGF0aCA9IGZpbmRfZXhl
Y3V0YWJsZSh3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2Rf
cGF0aCA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgc2VsZi5zYWZhcmlfcGF0aCA9IHNlbGYu
X2ZpbmRBc3NvY2lhdGVkU2FmYXJpRXhlY3V0YWJsZSh3ZF9wYXRoKQorCisgICAgICAgIGxvZ2dl
ci5kZWJ1ZygiV2ViRHJpdmVyIGV4ZWN1dGFibGUgcGF0aDogJXMiICUgd2RfcGF0aCkKKyAgICAg
ICAgbG9nZ2VyLmRlYnVnKCJTYWZhcmkgZXhlY3V0YWJsZSBwYXRoOiAlcyIgJSBzZWxmLnNhZmFy
aV9wYXRoKQorCisgICAgICAgIHNlbGYua2lsbF9zYWZhcmkgPSBraWxsX3NhZmFyaQorCisgICAg
ZGVmIF9maW5kQXNzb2NpYXRlZFNhZmFyaUV4ZWN1dGFibGUoc2VsZiwgd2RfcGF0aCk6CisgICAg
ICAgIGJ1bmRsZV9wYXRocyA9IFsKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRp
cm5hbWUod2RfcGF0aCksICIuLiIsICIuLiIpLCAgIyBidW5kbGVkIFNhZmFyaSAoZS5nLiBTVFAp
CisgICAgICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHdkX3BhdGgpLCAiU2Fm
YXJpLmFwcCIpLCAgIyBsb2NhbCBTYWZhcmkgYnVpbGQKKyAgICAgICAgICAgICIvQXBwbGljYXRp
b25zL1NhZmFyaS5hcHAiLCAgIyBzeXN0ZW0gU2FmYXJpCisgICAgICAgIF0KKworICAgICAgICBm
b3IgYnVuZGxlX3BhdGggaW4gYnVuZGxlX3BhdGhzOgorICAgICAgICAgICAgaW5mb19wYXRoID0g
b3MucGF0aC5qb2luKGJ1bmRsZV9wYXRoLCAiQ29udGVudHMiLCAiSW5mby5wbGlzdCIpCisgICAg
ICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoaW5mb19wYXRoKToKKyAgICAgICAgICAgICAg
ICBjb250aW51ZQorCisgICAgICAgICAgICB3aXRoIG9wZW4oaW5mb19wYXRoLCAicmIiKSBhcyBm
cDoKKyAgICAgICAgICAgICAgICBpbmZvID0gcGxpc3RsaWIubG9hZChmcCkKKworICAgICAgICAg
ICAgIyBjaGVjayB3ZSBoYXZlIGEgU2FmYXJpIGZhbWlseSBidW5kbGUKKyAgICAgICAgICAgIGlm
ICJDRkJ1bmRsZUlkZW50aWZpZXIiIG5vdCBpbiBpbmZvOgorICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICBpZGVudCA9IGluZm9bIkNGQnVuZGxlSWRlbnRpZmllciJdCisgICAg
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpZGVudCwgc3RyKSBvciBub3QgaWRlbnQuc3RhcnRz
d2l0aCgiY29tLmFwcGxlLlNhZmFyaSIpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAg
ICAgICAgICAgICMgZ2V0IHRoZSBleGVjdXRhYmxlIG5hbWUKKyAgICAgICAgICAgIGlmICJDRkJ1
bmRsZUV4ZWN1dGFibGUiIG5vdCBpbiBpbmZvOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICBleGUgPSBpbmZvWyJDRkJ1bmRsZUV4ZWN1dGFibGUiXQorICAgICAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UoZXhlLCBzdHIpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisK
KyAgICAgICAgICAgIGV4ZV9wYXRoID0gb3MucGF0aC5qb2luKGJ1bmRsZV9wYXRoLCAiQ29udGVu
dHMiLCAiTWFjT1MiLCBleGUpCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoZXhl
X3BhdGgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHJldHVybiBl
eGVfcGF0aAogCiAgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5z
ZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCkBAIC03NCw2ICsxMjYsMjAgQEAgY2xhc3MgU2FmYXJp
QnJvd3NlcihCcm93c2VyKToKICAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CiAgICAg
ICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCiAKKyAgICAgICAgaWYgc2VsZi5raWxs
X3NhZmFyaToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb2luZyB0byBzdG9wIFNh
ZmFyaSIpCisgICAgICAgICAgICBmb3IgcHJvYyBpbiBwc3V0aWwucHJvY2Vzc19pdGVyKGF0dHJz
PVsiZXhlIl0pOgorICAgICAgICAgICAgICAgIGlmIHByb2MuaW5mb1siZXhlIl0gaXMgbm90IE5v
bmUgYW5kIG9zLnBhdGguc2FtZWZpbGUocHJvYy5pbmZvWyJleGUiXSwgc2VsZi5zYWZhcmlfcGF0
aCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdG9wcGluZyBTYWZh
cmkgJXMiICUgcHJvYy5waWQpCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByb2MudGVybWluYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLndhaXQoMTApCisgICAgICAgICAg
ICAgICAgICAgICAgICBleGNlcHQgcHN1dGlsLlRpbWVvdXRFeHBpcmVkOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb2Mua2lsbCgpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBw
c3V0aWwuTm9TdWNoUHJvY2VzczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKKwogICAg
IGRlZiBwaWQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKIApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvc2F1Y2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQppbmRleCBjNTdhYzk0MmVkNGUu
LjQ5MTMxOTkxNzU5OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1
Y2UucHkKQEAgLTEyLDcgKzEyLDcgQEAgaW1wb3J0IHRpbWUKIAogaW1wb3J0IHJlcXVlc3RzCiAK
LWZyb20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KK2Zyb20gaW8gaW1w
b3J0IFN0cmluZ0lPCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3Nl
ciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIg
ICAjIG5vcWE6IEY0MDEKQEAgLTk1LDE2ICs5NSwxNSBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAic2F1Y2Vfa2V5IikKIAogCi1kZWYgYnJvd3Nl
cl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2Rl
ZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmln
LCAqKmt3YXJncyk6CiAgICAgc2F1Y2VfY29uZmlnID0gZ2V0X3NhdWNlX2NvbmZpZygqKmt3YXJn
cykKIAogICAgIHJldHVybiB7InNhdWNlX2NvbmZpZyI6IHNhdWNlX2NvbmZpZ30KIAogCi1kZWYg
ZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRl
c3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0
b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25t
ZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKIAogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2Fw
YWJpbGl0aWVzIl0gPSBnZXRfY2FwYWJpbGl0aWVzKCoqa3dhcmdzKQogCkBAIC0yMjgsNyArMjI3
LDcgQEAgY2xhc3MgU2F1Y2VFeGNlcHRpb24oRXhjZXB0aW9uKToKIGNsYXNzIFNhdWNlQnJvd3Nl
cihCcm93c2VyKToKICAgICBpbml0X3RpbWVvdXQgPSAzMDAKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIHNhdWNlX2NvbmZpZyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgc2F1Y2VfY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2Vs
ZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLnNhdWNlX2NvbmZpZyA9IHNhdWNlX2NvbmZpZwogCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9zZXJ2by5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5CmluZGV4IGI5NDc2NTQw
YWM3Yy4uMTc5MWMxZGEyNzA2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9zZXJ2by5weQpAQCAtMzMsNyArMzMsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAg
ICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3Mo
dGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2Vy
X2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJn
cyk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCiAg
ICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCkBAIC00MywxMCArNDMs
OSBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICB9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRh
LAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgcnYgPSBiYXNlX2V4ZWN1dG9y
X2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKKyAgICBydiA9
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgcnZbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IGt3YXJnc1si
cGF1c2VfYWZ0ZXJfdGVzdCJdCiAgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgogICAgICAg
ICBydlsiY2FwYWJpbGl0aWVzIl0gPSB7fQpAQCAtNzEsNyArNzAsNyBAQCBkZWYgdXBkYXRlX3By
b3BlcnRpZXMoKToKIAogY2xhc3MgU2Vydm9Ccm93c2VyKE51bGxCcm93c2VyKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGRlYnVnX2luZm89Tm9uZSwgYmluYXJ5X2Fy
Z3M9Tm9uZSwKLSAgICAgICAgICAgICAgICAgdXNlcl9zdHlsZXNoZWV0cz1Ob25lLCBjYV9jZXJ0
aWZpY2F0ZV9wYXRoPU5vbmUpOgorICAgICAgICAgICAgICAgICB1c2VyX3N0eWxlc2hlZXRzPU5v
bmUsIGNhX2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBOdWxsQnJv
d3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5
CiAgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3NlcnZvZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkKaW5kZXggNDM3OTRlNDE3MDZk
Li45YTZhMWE0MDJiMzYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL3NlcnZvZHJpdmVyLnB5CkBAIC02LDEyICs2LDE2IEBAIGZyb20gbW96cHJvY2VzcyBpbXBv
cnQgUHJvY2Vzc0hhbmRsZXIKIAogZnJvbSB0b29scy5zZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9o
b3N0c19maWxlCiAKLWZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIHJlcXVpcmVfYXJnLCBnZXRf
ZnJlZV9wb3J0LCBicm93c2VyX2NvbW1hbmQsIEV4ZWN1dG9yQnJvd3NlcgorZnJvbSAuYmFzZSBp
bXBvcnQgKEJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgRXhlY3V0b3JCcm93c2VyLAorICAg
ICAgICAgICAgICAgICAgIE91dHB1dEhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgcmVxdWly
ZV9hcmcsCisgICAgICAgICAgICAgICAgICAgZ2V0X2ZyZWVfcG9ydCwKKyAgICAgICAgICAgICAg
ICAgICBicm93c2VyX2NvbW1hbmQpCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0
aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9r
d2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3Jz
ZXJ2b2RyaXZlciBpbXBvcnQgKFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMg
bm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKLWZyb20gLi5wcm9j
ZXNzIGltcG9ydCBjYXN0X2VudgogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQog
CkBAIC0zNiw3ICs0MCw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJl
X2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUs
IHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICBy
ZXR1cm4gewogICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKICAgICAgICAgImJp
bmFyeV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJdLApAQCAtNDcsOSArNTEsOCBAQCBkZWYg
YnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKICAgICB9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKLSAgICBydiA9IGJh
c2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdz
KQorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVu
dCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIHJ2ID0gYmFzZV9leGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykK
ICAgICByZXR1cm4gcnYKIAogCkBAIC03Nyw3ICs4MCw4IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVy
QnJvd3NlcihCcm93c2VyKToKICAgICBpbml0X3RpbWVvdXQgPSAzMDAgICMgTGFyZ2UgdGltZW91
dCBmb3IgY2FzZXMgd2hlcmUgd2UncmUgYm9vdGluZyBhbiBBbmRyb2lkIGVtdWxhdG9yCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGRlYnVnX2luZm89Tm9uZSwgd2Vi
ZHJpdmVyX2hvc3Q9IjEyNy4wLjAuMSIsCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWc9
Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwgdXNlcl9zdHlsZXNoZWV0cz1Ob25lLCBoZWFkbGVzcz1O
b25lKToKKyAgICAgICAgICAgICAgICAgc2VydmVyX2NvbmZpZz1Ob25lLCBiaW5hcnlfYXJncz1O
b25lLAorICAgICAgICAgICAgICAgICB1c2VyX3N0eWxlc2hlZXRzPU5vbmUsIGhlYWRsZXNzPU5v
bmUsICoqa3dhcmdzKToKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAg
ICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CiAgICAgICAgIHNlbGYuYmluYXJ5X2FyZ3MgPSBi
aW5hcnlfYXJncyBvciBbXQpAQCAtOTEsNiArOTUsNyBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJy
b3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYudXNlcl9zdHlsZXNoZWV0cyA9IHVzZXJfc3R5
bGVzaGVldHMgaWYgdXNlcl9zdHlsZXNoZWV0cyBlbHNlIFtdCiAgICAgICAgIHNlbGYuaGVhZGxl
c3MgPSBoZWFkbGVzcyBpZiBoZWFkbGVzcyBlbHNlIEZhbHNlCiAgICAgICAgIHNlbGYuY2FfY2Vy
dGlmaWNhdGVfcGF0aCA9IHNlcnZlcl9jb25maWcuc3NsX2NvbmZpZ1siY2FfY2VydF9wYXRoIl0K
KyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlciA9IE5vbmUKIAogICAgIGRlZiBzdGFydChzZWxm
LCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYud2ViZHJpdmVyX3BvcnQgPSBnZXRfZnJlZV9wb3J0
KCkKQEAgLTEyOSwxMyArMTM0LDE2IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyQnJvd3NlcihCcm93
c2VyKToKICAgICAgICAgc2VsZi5jb21tYW5kID0gZGVidWdfYXJncyArIHNlbGYuY29tbWFuZAog
CiAgICAgICAgIGlmIG5vdCBzZWxmLmRlYnVnX2luZm8gb3Igbm90IHNlbGYuZGVidWdfaW5mby5p
bnRlcmFjdGl2ZToKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIgPSBPdXRwdXRIYW5k
bGVyKHNlbGYubG9nZ2VyLCBzZWxmLmNvbW1hbmQpCiAgICAgICAgICAgICBzZWxmLnByb2MgPSBQ
cm9jZXNzSGFuZGxlcihzZWxmLmNvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1bc2VsZi5vbl9vdXRwdXRdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWNhc3RfZW52KGVudiksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFsc2UpCiAgICAgICAgICAgICBz
ZWxmLnByb2MucnVuKCkKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJv
Y2Vzc19zdGFydChzZWxmLnByb2MucGlkKQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxl
ci5zdGFydCgpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9j
ZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICBz
ZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWVudikKIAogICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU2Vydm8gU3RhcnRlZCIpCiAKQEAgLTE0Nyw2ICsxNTUs
OCBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICBl
eGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAjIFRoaXMgY2FuIGhhcHBlbiBvbiBXaW5k
b3dzIGlmIHRoZSBwcm9jZXNzIGlzIGFscmVhZHkgZGVhZAogICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgaWYgc2VsZi5vdXRwdXRfaGFuZGxlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHNlbGYub3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdG9wKCkKIAogICAgIGRlZiBwaWQo
c2VsZik6CiAgICAgICAgIGlmIHNlbGYucHJvYyBpcyBOb25lOgpAQCAtMTU3LDEyICsxNjcsNiBA
QCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvcjoKICAgICAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBkZWYgb25fb3V0
cHV0KHNlbGYsIGxpbmUpOgotICAgICAgICAiIiJXcml0ZSBhIGxpbmUgb2Ygb3V0cHV0IGZyb20g
dGhlIHByb2Nlc3MgdG8gdGhlIGxvZyIiIgotICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291
dHB1dChzZWxmLnBpZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
LmRlY29kZSgidXRmOCIsICJyZXBsYWNlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5jb21tYW5kKSkKLQogICAgIGRlZiBpc19hbGl2
ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYucHJvYy5wb2xsKCkgaXMgTm9uZQogCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy93ZWJraXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKaW5kZXggZGE5M2NmMTY0
Mzk5Li5hZDI0NzcxYWM5Y2UgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy93ZWJraXQucHkKQEAgLTEsNSArMSw1IEBACiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBF
eGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91
dF9tdWx0aXBsaWVyLCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCAgIyBub3FhOiBGNDAxCitmcm9t
IC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgY2VydGlm
aWNhdGVfZG9tYWluX2xpc3QgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQg
ZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwg
ICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQpAQCAtMTAsNyArMTAsOCBA
QCBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViS2l0RHJpdmVyU2VydmVyCiAKIF9f
d3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAid2Via2l0IiwKICAgICAgICAgICAgICAgICAgImNo
ZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIldl
YktpdEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiV2ViS2l0
QnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJy
b3dzZXIifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dh
cmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJE
cml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCkBAIC0yOSw3ICszMCw3IEBA
IGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJr
aXRfcG9ydCIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7ImJpbmFy
eSI6IGt3YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3
YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjog
a3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KQEAgLTU0LDEyICs1NSwxMSBAQCBkZWYgY2Fw
YWJpbGl0aWVzX2Zvcl9wb3J0KHNlcnZlcl9jb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4g
e30KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2Fj
aGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3Mp
CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0
ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKICAgICBleGVjdXRvcl9r
d2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKLSAgICBleGVjdXRvcl9rd2FyZ3NbImNh
cGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzX2Zvcl9wb3J0KHNlcnZlcl9jb25maWcsCisgICAg
ZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllc19mb3JfcG9ydCh0
ZXN0X2Vudmlyb25tZW50LmNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIHJldHVybiBleGVjdXRv
cl9rd2FyZ3MKIApAQCAtODIsNyArODIsNyBAQCBjbGFzcyBXZWJLaXRCcm93c2VyKEJyb3dzZXIp
OgogICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJk
cml2ZXJfYmluYXJ5PU5vbmUsCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUp
OgorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLCAqKmt3YXJncyk6CiAgICAg
ICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLmJpbmFyeSA9
IGJpbmFyeQogICAgICAgICBzZWxmLnNlcnZlciA9IFdlYktpdERyaXZlclNlcnZlcihzZWxmLmxv
Z2dlciwgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9jb25maWcucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9jb25maWcu
cHkKaW5kZXggZDQ2YmViOGU3MWRiLi44YTliZGJmNzMwZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2NvbmZpZy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9jb25maWcucHkKQEAgLTEsMTEgKzEsMTIgQEAKLWZyb20gc2l4Lm1vdmVzLmNvbmZpZ3BhcnNl
ciBpbXBvcnQgU2FmZUNvbmZpZ1BhcnNlcgorZnJvbSBjb25maWdwYXJzZXIgaW1wb3J0IENvbmZp
Z1BhcnNlcgogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBP
cmRlcmVkRGljdAorZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgRGljdAogCiBoZXJlID0gb3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKQogCi1jbGFzcyBDb25maWdEaWN0KGRpY3QpOgorY2xhc3MgQ29u
ZmlnRGljdChEaWN0W3N0ciwgQW55XSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJhc2VfcGF0
aCwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgK
ICAgICAgICAgZGljdC5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCkBAIC0yMCw3ICsy
MSw3IEBAIGNsYXNzIENvbmZpZ0RpY3QoZGljdCk6CiBkZWYgcmVhZChjb25maWdfcGF0aCk6CiAg
ICAgY29uZmlnX3BhdGggPSBvcy5wYXRoLmFic3BhdGgoY29uZmlnX3BhdGgpCiAgICAgY29uZmln
X3Jvb3QgPSBvcy5wYXRoLmRpcm5hbWUoY29uZmlnX3BhdGgpCi0gICAgcGFyc2VyID0gU2FmZUNv
bmZpZ1BhcnNlcigpCisgICAgcGFyc2VyID0gQ29uZmlnUGFyc2VyKCkKICAgICBzdWNjZXNzID0g
cGFyc2VyLnJlYWQoY29uZmlnX3BhdGgpCiAgICAgYXNzZXJ0IGNvbmZpZ19wYXRoIGluIHN1Y2Nl
c3MsIHN1Y2Nlc3MKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQppbmRl
eCAyNTI3ZDI2ZDM5MWQuLjNmZTk3MTQ1NmVkNiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZW52aXJvbm1lbnQucHkKQEAgLTEsMTUgKzEsMTQgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MK
LWltcG9ydCBtdWx0aXByb2Nlc3NpbmcKIGltcG9ydCBzaWduYWwKIGltcG9ydCBzb2NrZXQKIGlt
cG9ydCBzeXMKIGltcG9ydCB0aW1lCi1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKLWZyb20g
bW96bG9nIGltcG9ydCBnZXRfZGVmYXVsdF9sb2dnZXIsIGhhbmRsZXJzLCBwcm94eQorZnJvbSBt
b3psb2cgaW1wb3J0IGdldF9kZWZhdWx0X2xvZ2dlciwgaGFuZGxlcnMKIAotZnJvbSAud3B0bG9n
Z2luZyBpbXBvcnQgTG9nTGV2ZWxSZXdyaXRlcgorZnJvbSAuIGltcG9ydCBtcGNvbnRleHQKK2Zy
b20gLndwdGxvZ2dpbmcgaW1wb3J0IExvZ0xldmVsUmV3cml0ZXIsIFF1ZXVlSGFuZGxlciwgTG9n
UXVldWVUaHJlYWQKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIHJlcG9fcm9v
dCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJk
aXIsIG9zLnBhcmRpcikpCkBAIC01MCwyNCArNDksNTggQEAgY2xhc3MgVGVzdEVudmlyb25tZW50
RXJyb3IoRXhjZXB0aW9uKToKICAgICBwYXNzCiAKIAorZGVmIGdldF9zZXJ2ZXJfbG9nZ2VyKCk6
CisgICAgbG9nZ2VyID0gZ2V0X2RlZmF1bHRfbG9nZ2VyKGNvbXBvbmVudD0id3B0c2VydmUiKQor
ICAgIGxvZ19maWx0ZXIgPSBoYW5kbGVycy5Mb2dMZXZlbEZpbHRlcihsYW1iZGEgeDogeCwgImlu
Zm8iKQorICAgICMgRG93bmdyYWRlIGVycm9ycyB0byB3YXJuaW5ncyBmb3IgdGhlIHNlcnZlcgor
ICAgIGxvZ19maWx0ZXIgPSBMb2dMZXZlbFJld3JpdGVyKGxvZ19maWx0ZXIsIFsiZXJyb3IiXSwg
Indhcm5pbmciKQorICAgIGxvZ2dlci5jb21wb25lbnRfZmlsdGVyID0gbG9nX2ZpbHRlcgorICAg
IHJldHVybiBsb2dnZXIKKworCitjbGFzcyBQcm94eUxvZ2dpbmdDb250ZXh0OgorICAgICIiIkNv
bnRleHQgbWFuYWdlciBvYmplY3QgdGhhdCBoYW5kbGVzIHNldHVwIGFuZCB0ZWFyZG93biBvZiBh
IGxvZyBxdWV1ZQorICAgIGZvciBoYW5kbGluZyBsb2dnaW5nIG1lc3NhZ2VzIGZyb20gd3B0c2Vy
dmUuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyKToKKyAgICAgICAgbXBfY29u
dGV4dCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHNlbGYubG9nX3F1ZXVlID0g
bXBfY29udGV4dC5RdWV1ZSgpCisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQgPSBMb2dRdWV1
ZVRocmVhZChzZWxmLmxvZ19xdWV1ZSwgbG9nZ2VyKQorICAgICAgICBzZWxmLmxvZ2dlcl9oYW5k
bGVyID0gUXVldWVIYW5kbGVyKHNlbGYubG9nX3F1ZXVlKQorCisgICAgZGVmIF9fZW50ZXJfXyhz
ZWxmKToKKyAgICAgICAgc2VsZi5sb2dnaW5nX3RocmVhZC5zdGFydCgpCisgICAgICAgIHJldHVy
biBzZWxmLmxvZ2dlcl9oYW5kbGVyCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MpOgor
ICAgICAgICBzZWxmLmxvZ19xdWV1ZS5wdXQoTm9uZSkKKyAgICAgICAgIyBXYWl0IGZvciB0aHJl
YWQgdG8gc2h1dCBkb3duIGJ1dCBub3QgZm9yIHRvbyBsb25nIHNpbmNlIGl0J3MgYSBkYWVtb24K
KyAgICAgICAgc2VsZi5sb2dnaW5nX3RocmVhZC5qb2luKDEpCisKKwogY2xhc3MgVGVzdEVudmly
b25tZW50KG9iamVjdCk6CiAgICAgIiIiQ29udGV4dCBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdGVz
dCBlbnZpcm9ubWVudCBpLmUuIHRoZSBodHRwIGFuZAogICAgIHdlYnNvY2tldHMgc2VydmVycyIi
IgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X3BhdGhzLCB0ZXN0aGFybmVzc190aW1lb3V0
X211bHRpcGxlciwKLSAgICAgICAgICAgICAgICAgcGF1c2VfYWZ0ZXJfdGVzdCwgZGVidWdfaW5m
bywgb3B0aW9ucywgc3NsX2NvbmZpZywgZW52X2V4dHJhcywKKyAgICAgICAgICAgICAgICAgcGF1
c2VfYWZ0ZXJfdGVzdCwgZGVidWdfdGVzdCwgZGVidWdfaW5mbywgb3B0aW9ucywgc3NsX2NvbmZp
ZywgZW52X2V4dHJhcywKICAgICAgICAgICAgICAgICAgZW5hYmxlX3F1aWM9RmFsc2UsIG1vam9q
c19wYXRoPU5vbmUpOgorCiAgICAgICAgIHNlbGYudGVzdF9wYXRocyA9IHRlc3RfcGF0aHMKICAg
ICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuY29uZmlnX2N0eCA9IE5vbmUK
ICAgICAgICAgc2VsZi5jb25maWcgPSBOb25lCisgICAgICAgIHNlbGYuc2VydmVyX2xvZ2dlciA9
IGdldF9zZXJ2ZXJfbG9nZ2VyKCkKKyAgICAgICAgc2VsZi5zZXJ2ZXJfbG9nZ2luZ19jdHggPSBQ
cm94eUxvZ2dpbmdDb250ZXh0KHNlbGYuc2VydmVyX2xvZ2dlcikKICAgICAgICAgc2VsZi50ZXN0
aGFybmVzc190aW1lb3V0X211bHRpcGxlciA9IHRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVy
CiAgICAgICAgIHNlbGYucGF1c2VfYWZ0ZXJfdGVzdCA9IHBhdXNlX2FmdGVyX3Rlc3QKKyAgICAg
ICAgc2VsZi5kZWJ1Z190ZXN0ID0gZGVidWdfdGVzdAogICAgICAgICBzZWxmLnRlc3Rfc2VydmVy
X3BvcnQgPSBvcHRpb25zLnBvcCgidGVzdF9zZXJ2ZXJfcG9ydCIsIFRydWUpCiAgICAgICAgIHNl
bGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KICAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0aW9u
cyBpZiBvcHRpb25zIGlzIG5vdCBOb25lIGVsc2Uge30KIAotICAgICAgICBzZWxmLmNhY2hlX21h
bmFnZXIgPSBtdWx0aXByb2Nlc3NpbmcuTWFuYWdlcigpCi0gICAgICAgIHNlbGYuc3Rhc2ggPSBz
ZXJ2ZS5zdGFzaC5TdGFzaFNlcnZlcigpCisgICAgICAgIG1wX2NvbnRleHQgPSBtcGNvbnRleHQu
Z2V0X2NvbnRleHQoKQorICAgICAgICBzZWxmLmNhY2hlX21hbmFnZXIgPSBtcF9jb250ZXh0Lk1h
bmFnZXIoKQorICAgICAgICBzZWxmLnN0YXNoID0gc2VydmUuc3Rhc2guU3Rhc2hTZXJ2ZXIobXBf
Y29udGV4dD1tcF9jb250ZXh0KQogICAgICAgICBzZWxmLmVudl9leHRyYXMgPSBlbnZfZXh0cmFz
CiAgICAgICAgIHNlbGYuZW52X2V4dHJhc19jbXMgPSBOb25lCiAgICAgICAgIHNlbGYuc3NsX2Nv
bmZpZyA9IHNzbF9jb25maWcKQEAgLTc1LDYgKzEwOCw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVu
dChvYmplY3QpOgogICAgICAgICBzZWxmLm1vam9qc19wYXRoID0gbW9qb2pzX3BhdGgKIAogICAg
IGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlcnZlcl9sb2dfaGFuZGxlciA9IHNlbGYu
c2VydmVyX2xvZ2dpbmdfY3R4Ll9fZW50ZXJfXygpCiAgICAgICAgIHNlbGYuY29uZmlnX2N0eCA9
IHNlbGYuYnVpbGRfY29uZmlnKCkKIAogICAgICAgICBzZWxmLmNvbmZpZyA9IHNlbGYuY29uZmln
X2N0eC5fX2VudGVyX18oKQpAQCAtODIsOCArMTE2LDYgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuc3Rhc2guX19lbnRlcl9fKCkKICAgICAgICAgc2VsZi5j
YWNoZV9tYW5hZ2VyLl9fZW50ZXJfXygpCiAKLSAgICAgICAgc2VsZi5zZXR1cF9zZXJ2ZXJfbG9n
Z2luZygpCi0KICAgICAgICAgYXNzZXJ0IHNlbGYuZW52X2V4dHJhc19jbXMgaXMgTm9uZSwgKAog
ICAgICAgICAgICAgIkEgVGVzdEVudmlyb25tZW50IG9iamVjdCBjYW5ub3QgYmUgbmVzdGVkIikK
IApAQCAtOTQsOCArMTI2LDExIEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAg
ICAgICAgICAgY20uX19lbnRlcl9fKCkKICAgICAgICAgICAgIHNlbGYuZW52X2V4dHJhc19jbXMu
YXBwZW5kKGNtKQogCi0gICAgICAgIHNlbGYuc2VydmVycyA9IHNlcnZlLnN0YXJ0KHNlbGYuY29u
ZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9yb3V0ZXMo
KSkKKyAgICAgICAgc2VsZi5zZXJ2ZXJzID0gc2VydmUuc3RhcnQoc2VsZi5zZXJ2ZXJfbG9nZ2Vy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5nZXRfcm91dGVzKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wX2NvbnRleHQ9bXBjb250ZXh0LmdldF9jb250
ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ19oYW5kbGVycz1b
c2VydmVyX2xvZ19oYW5kbGVyXSkKIAogICAgICAgICBpZiBzZWxmLm9wdGlvbnMuZ2V0KCJzdXBw
b3J0c19kZWJ1Z2dlciIpIGFuZCBzZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5mby5p
bnRlcmFjdGl2ZToKICAgICAgICAgICAgIHNlbGYuaWdub3JlX2ludGVycnVwdHMoKQpAQCAtMTA0
LDkgKzEzOSw5IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgIGRlZiBfX2V4
aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKToKICAgICAgICAgc2VsZi5wcm9j
ZXNzX2ludGVycnVwdHMoKQogCi0gICAgICAgIGZvciBzY2hlbWUsIHNlcnZlcnMgaW4gaXRlcml0
ZW1zKHNlbGYuc2VydmVycyk6CisgICAgICAgIGZvciBzY2hlbWUsIHNlcnZlcnMgaW4gc2VsZi5z
ZXJ2ZXJzLml0ZW1zKCk6CiAgICAgICAgICAgICBmb3IgcG9ydCwgc2VydmVyIGluIHNlcnZlcnM6
Ci0gICAgICAgICAgICAgICAgc2VydmVyLmtpbGwoKQorICAgICAgICAgICAgICAgIHNlcnZlci5z
dG9wKCkKICAgICAgICAgZm9yIGNtIGluIHNlbGYuZW52X2V4dHJhc19jbXM6CiAgICAgICAgICAg
ICBjbS5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQogCkBAIC0xMTUsNiArMTUw
LDcgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgIHNlbGYuY2FjaGVf
bWFuYWdlci5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQogICAgICAgICBzZWxm
LnN0YXNoLl9fZXhpdF9fKCkKICAgICAgICAgc2VsZi5jb25maWdfY3R4Ll9fZXhpdF9fKGV4Y190
eXBlLCBleGNfdmFsLCBleGNfdGIpCisgICAgICAgIHNlbGYuc2VydmVyX2xvZ2dpbmdfY3R4Ll9f
ZXhpdF9fKGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpCiAKICAgICBkZWYgaWdub3JlX2ludGVy
cnVwdHMoc2VsZik6CiAgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0lOVCwgc2lnbmFs
LlNJR19JR04pCkBAIC0xMjUsMTEgKzE2MSwxNSBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2Jq
ZWN0KToKICAgICBkZWYgYnVpbGRfY29uZmlnKHNlbGYpOgogICAgICAgICBvdmVycmlkZV9wYXRo
ID0gb3MucGF0aC5qb2luKHNlcnZlX3BhdGgoc2VsZi50ZXN0X3BhdGhzKSwgImNvbmZpZy5qc29u
IikKIAotICAgICAgICBjb25maWcgPSBzZXJ2ZS5Db25maWdCdWlsZGVyKCkKKyAgICAgICAgY29u
ZmlnID0gc2VydmUuQ29uZmlnQnVpbGRlcihzZWxmLnNlcnZlcl9sb2dnZXIpCiAKICAgICAgICAg
cG9ydHMgPSB7CiAgICAgICAgICAgICAiaHR0cCI6IFs4MDAwLCA4MDAxXSwKKyAgICAgICAgICAg
ICJodHRwLXByaXZhdGUiOiBbODAwMl0sCisgICAgICAgICAgICAiaHR0cC1wdWJsaWMiOiBbODAw
M10sCiAgICAgICAgICAgICAiaHR0cHMiOiBbODQ0MywgODQ0NF0sCisgICAgICAgICAgICAiaHR0
cHMtcHJpdmF0ZSI6IFs4NDQ1XSwKKyAgICAgICAgICAgICJodHRwcy1wdWJsaWMiOiBbODQ0Nl0s
CiAgICAgICAgICAgICAid3MiOiBbODg4OF0sCiAgICAgICAgICAgICAid3NzIjogWzg4ODldLAog
ICAgICAgICAgICAgImgyIjogWzkwMDBdLApAQCAtMTYwLDI0ICsyMDAsNiBAQCBjbGFzcyBUZXN0
RW52aXJvbm1lbnQob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gY29uZmlnCiAKLSAgICBkZWYg
c2V0dXBfc2VydmVyX2xvZ2dpbmcoc2VsZik6Ci0gICAgICAgIHNlcnZlcl9sb2dnZXIgPSBnZXRf
ZGVmYXVsdF9sb2dnZXIoY29tcG9uZW50PSJ3cHRzZXJ2ZSIpCi0gICAgICAgIGFzc2VydCBzZXJ2
ZXJfbG9nZ2VyIGlzIG5vdCBOb25lCi0gICAgICAgIGxvZ19maWx0ZXIgPSBoYW5kbGVycy5Mb2dM
ZXZlbEZpbHRlcihsYW1iZGEgeDogeCwgImluZm8iKQotICAgICAgICAjIERvd25ncmFkZSBlcnJv
cnMgdG8gd2FybmluZ3MgZm9yIHRoZSBzZXJ2ZXIKLSAgICAgICAgbG9nX2ZpbHRlciA9IExvZ0xl
dmVsUmV3cml0ZXIobG9nX2ZpbHRlciwgWyJlcnJvciJdLCAid2FybmluZyIpCi0gICAgICAgIHNl
cnZlcl9sb2dnZXIuY29tcG9uZW50X2ZpbHRlciA9IGxvZ19maWx0ZXIKLQotICAgICAgICBzZXJ2
ZXJfbG9nZ2VyID0gcHJveHkuUXVldWVkUHJveHlMb2dnZXIoc2VydmVyX2xvZ2dlcikKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAjIFNldCBhcyB0aGUgZGVmYXVsdCBsb2dnZXIgZm9yIHdw
dHNlcnZlCi0gICAgICAgICAgICBzZXJ2ZS5zZXRfbG9nZ2VyKHNlcnZlcl9sb2dnZXIpCi0gICAg
ICAgICAgICBzZXJ2ZS5sb2dnZXIgPSBzZXJ2ZXJfbG9nZ2VyCi0gICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246Ci0gICAgICAgICAgICAjIFRoaXMgaGFwcGVucyBpZiBsb2dnaW5nIGhhcyBhbHJlYWR5
IGJlZW4gc2V0IHVwIGZvciB3cHRzZXJ2ZQotICAgICAgICAgICAgcGFzcwotCiAgICAgZGVmIGdl
dF9yb3V0ZXMoc2VsZik6CiAgICAgICAgIHJvdXRlX2J1aWxkZXIgPSBzZXJ2ZS5Sb3V0ZXNCdWls
ZGVyKCkKIApAQCAtMTkxLDcgKzIxMyw4IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3Qp
OgogICAgICAgICAgICAgICAgIChzZWxmLm9wdGlvbnMuZ2V0KCJ0ZXN0aGFybmVzc3JlcG9ydCIs
ICJ0ZXN0aGFybmVzc3JlcG9ydC5qcyIpLAogICAgICAgICAgICAgICAgICB7Im91dHB1dCI6IHNl
bGYucGF1c2VfYWZ0ZXJfdGVzdCwKICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxp
ZXIiOiBzZWxmLnRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyLAotICAgICAgICAgICAgICAg
ICAgImV4cGxpY2l0X3RpbWVvdXQiOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBO
b25lIGVsc2UgImZhbHNlIn0sCisgICAgICAgICAgICAgICAgICAiZXhwbGljaXRfdGltZW91dCI6
ICJ0cnVlIiBpZiBzZWxmLmRlYnVnX2luZm8gaXMgbm90IE5vbmUgZWxzZSAiZmFsc2UiLAorICAg
ICAgICAgICAgICAgICAgImRlYnVnIjogInRydWUiIGlmIHNlbGYuZGVidWdfdGVzdCBlbHNlICJm
YWxzZSJ9LAogICAgICAgICAgICAgICAgICAidGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmOCIs
CiAgICAgICAgICAgICAgICAgICIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIildOgog
ICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKGhlcmUsIHBh
dGgpKQpAQCAtMjA5LDcgKzIzMiw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgog
ICAgICAgICByb3V0ZV9idWlsZGVyLmFkZF9oYW5kbGVyKCJHRVQiLCAiL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdIYW5k
bGVyKGRhdGEsICJ0ZXh0L2phdmFzY3JpcHQiKSkKIAotICAgICAgICBmb3IgdXJsX2Jhc2UsIHBh
dGhzIGluIGl0ZXJpdGVtcyhzZWxmLnRlc3RfcGF0aHMpOgorICAgICAgICBmb3IgdXJsX2Jhc2Us
IHBhdGhzIGluIHNlbGYudGVzdF9wYXRocy5pdGVtcygpOgogICAgICAgICAgICAgaWYgdXJsX2Jh
c2UgPT0gIi8iOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICByb3V0ZV9i
dWlsZGVyLmFkZF9tb3VudF9wb2ludCh1cmxfYmFzZSwgcGF0aHNbInRlc3RzX3BhdGgiXSkKQEAg
LTI0MSwxMyArMjY0LDEzIEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAg
ICBmYWlsZWQgPSBbXQogICAgICAgICBwZW5kaW5nID0gW10KICAgICAgICAgaG9zdCA9IHNlbGYu
Y29uZmlnWyJzZXJ2ZXJfaG9zdCJdCi0gICAgICAgIGZvciBzY2hlbWUsIHNlcnZlcnMgaW4gaXRl
cml0ZW1zKHNlbGYuc2VydmVycyk6CisgICAgICAgIGZvciBzY2hlbWUsIHNlcnZlcnMgaW4gc2Vs
Zi5zZXJ2ZXJzLml0ZW1zKCk6CiAgICAgICAgICAgICBmb3IgcG9ydCwgc2VydmVyIGluIHNlcnZl
cnM6CiAgICAgICAgICAgICAgICAgaWYgbm90IHNlcnZlci5pc19hbGl2ZSgpOgogICAgICAgICAg
ICAgICAgICAgICBmYWlsZWQuYXBwZW5kKChzY2hlbWUsIHBvcnQpKQogCiAgICAgICAgIGlmIG5v
dCBmYWlsZWQgYW5kIHNlbGYudGVzdF9zZXJ2ZXJfcG9ydDoKLSAgICAgICAgICAgIGZvciBzY2hl
bWUsIHNlcnZlcnMgaW4gaXRlcml0ZW1zKHNlbGYuc2VydmVycyk6CisgICAgICAgICAgICBmb3Ig
c2NoZW1lLCBzZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgICAg
ICMgVE9ETyhIZXhjbGVzKTogRmluZCBhIHdheSB0byB0ZXN0IFFVSUMncyBVRFAgcG9ydC4KICAg
ICAgICAgICAgICAgICBpZiBzY2hlbWUgPT0gInF1aWMtdHJhbnNwb3J0IjoKICAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKQEAgLTI1Niw3ICsyNzksNyBAQCBjbGFzcyBUZXN0RW52aXJvbm1l
bnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgcy5zZXR0aW1lb3V0KDAuMSkKICAgICAg
ICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgcy5jb25uZWN0KCho
b3N0LCBwb3J0KSkKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAg
ICAgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBwZW5kaW5nLmFwcGVuZCgoaG9zdCwgcG9ydCkpCiAgICAgICAgICAgICAgICAgICAgIGZpbmFs
bHk6CiAgICAgICAgICAgICAgICAgICAgICAgICBzLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9hY3Rpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL2FjdGlvbnMucHkKaW5kZXggYjExZDMwYmI5NGFhLi45NjNl
ZDMzN2ZkZTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rp
b25zLnB5CkBAIC0xMyw2ICsxMywxOCBAQCBjbGFzcyBDbGlja0FjdGlvbihvYmplY3QpOgogICAg
ICAgICBzZWxmLnByb3RvY29sLmNsaWNrLmVsZW1lbnQoZWxlbWVudCkKIAogCitjbGFzcyBEZWxl
dGVBbGxDb29raWVzQWN0aW9uKG9iamVjdCk6CisgICAgbmFtZSA9ICJkZWxldGVfYWxsX2Nvb2tp
ZXMiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAg
IHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAor
CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiRGVsZXRpbmcgYWxsIGNvb2tpZXMiKQorICAgICAgICBzZWxmLnByb3RvY29sLmNvb2tp
ZXMuZGVsZXRlX2FsbF9jb29raWVzKCkKKworCiBjbGFzcyBTZW5kS2V5c0FjdGlvbihvYmplY3Qp
OgogICAgIG5hbWUgPSAic2VuZF9rZXlzIgogCkBAIC0xNzEsNiArMTgzLDcgQEAgY2xhc3MgU2V0
VXNlclZlcmlmaWVkQWN0aW9uKG9iamVjdCk6CiAKIAogYWN0aW9ucyA9IFtDbGlja0FjdGlvbiwK
KyAgICAgICAgICAgRGVsZXRlQWxsQ29va2llc0FjdGlvbiwKICAgICAgICAgICAgU2VuZEtleXNB
Y3Rpb24sCiAgICAgICAgICAgIEFjdGlvblNlcXVlbmNlQWN0aW9uLAogICAgICAgICAgICBHZW5l
cmF0ZVRlc3RSZXBvcnRBY3Rpb24sCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9iYXNlLnB5CmluZGV4IDRjMzg5MWMxY2I2Ny4uYTg4YWI4MmU3OGQzIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvYmFzZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQpAQCAtOCwyOSArOCwzMCBAQCBpbXBv
cnQgdHJhY2ViYWNrCiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgc3lzCiBmcm9tIGFiYyBpbXBvcnQg
QUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKLWZyb20g
c2l4Lm1vdmVzLmh0dHBfY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgotZnJvbSBzaXgubW92
ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxpdCwgdXJsdW5zcGxpdAorZnJv
bSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KK2Zyb20gdHlwaW5nIGltcG9ydCBB
bnksIENhbGxhYmxlLCBDbGFzc1ZhciwgT3B0aW9uYWwsIFR1cGxlLCBUeXBlLCBUWVBFX0NIRUNL
SU5HCitmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJsc3BsaXQsIHVybHVuc3Bs
aXQKIAotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKIGZyb20gLmFjdGlvbnMgaW1wb3J0
IGFjdGlvbnMKIGZyb20gLnByb3RvY29sIGltcG9ydCBQcm90b2NvbCwgQmFzZVByb3RvY29sUGFy
dAogCitpZiBUWVBFX0NIRUNLSU5HOgorICAgIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9y
dCBXZWJEcml2ZXJTZXJ2ZXIKKwogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAog
Ci1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFu
YWdlciwgcnVuX2luZm9fZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorZGVm
IGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2Rh
dGEsICoqa3dhcmdzKToKICAgICB0aW1lb3V0X211bHRpcGxpZXIgPSBrd2FyZ3NbInRpbWVvdXRf
bXVsdGlwbGllciJdCiAgICAgaWYgdGltZW91dF9tdWx0aXBsaWVyIGlzIE5vbmU6CiAgICAgICAg
IHRpbWVvdXRfbXVsdGlwbGllciA9IDEKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IHsic2VydmVy
X2NvbmZpZyI6IHNlcnZlcl9jb25maWcsCisgICAgZXhlY3V0b3Jfa3dhcmdzID0geyJzZXJ2ZXJf
Y29uZmlnIjogdGVzdF9lbnZpcm9ubWVudC5jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICJ0aW1lb3V0X211bHRpcGxpZXIiOiB0aW1lb3V0X211bHRpcGxpZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZvIl19CiAKICAgICBpZiB0
ZXN0X3R5cGUgaW4gKCJyZWZ0ZXN0IiwgInByaW50LXJlZnRlc3QiKToKLSAgICAgICAgZXhlY3V0
b3Jfa3dhcmdzWyJzY3JlZW5zaG90X2NhY2hlIl0gPSBjYWNoZV9tYW5hZ2VyLmRpY3QoKQorICAg
ICAgICBleGVjdXRvcl9rd2FyZ3NbInNjcmVlbnNob3RfY2FjaGUiXSA9IHRlc3RfZW52aXJvbm1l
bnQuY2FjaGVfbWFuYWdlci5kaWN0KCkKIAogICAgIGlmIHRlc3RfdHlwZSA9PSAid2RzcGVjIjoK
ICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJiaW5hcnkiXSA9IGt3YXJncy5nZXQoImJpbmFyeSIp
CkBAIC00Miw3ICs0Myw3IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJf
Y29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICMgd2FudCB0byB2aWV3
IHRoZSByZXN1bHRzLCBob3dldmVyLCB0aGUgZXhlY3V0b3IgaGFzIHRvIHNraXAgdGhhdCBjbGVh
bnVwLgogICAgIGlmIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdIG9yIGt3YXJnc1sicGF1c2Vf
b25fdW5leHBlY3RlZCJdOgogICAgICAgICBleGVjdXRvcl9rd2FyZ3NbImNsZWFudXBfYWZ0ZXJf
dGVzdCJdID0gRmFsc2UKLQorICAgIGV4ZWN1dG9yX2t3YXJnc1siZGVidWdfdGVzdCJdID0ga3dh
cmdzWyJkZWJ1Z190ZXN0Il0KICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKIApAQCAtMTgw
LDExICsxODEsMTEgQEAgY2xhc3MgVGltZWRSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5y
ZXN1bHRfZmxhZyA9IHRocmVhZGluZy5FdmVudCgpCiAKICAgICBkZWYgcnVuKHNlbGYpOgotICAg
ICAgICBpZiBzZWxmLnNldF90aW1lb3V0KCkgaXMgU3RvcDoKLSAgICAgICAgICAgIHJldHVybiBT
dG9wCi0KLSAgICAgICAgaWYgc2VsZi5iZWZvcmVfcnVuKCkgaXMgU3RvcDoKLSAgICAgICAgICAg
IHJldHVybiBTdG9wCisgICAgICAgIGZvciBzZXR1cF9mbiBpbiBbc2VsZi5zZXRfdGltZW91dCwg
c2VsZi5iZWZvcmVfcnVuXToKKyAgICAgICAgICAgIGVyciA9IHNldHVwX2ZuKCkKKyAgICAgICAg
ICAgIGlmIGVycjoKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IChGYWxzZSwgZXJyKQor
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdAogCiAgICAgICAgIGV4ZWN1dG9yID0g
dGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5ydW5fZnVuYykKICAgICAgICAgZXhlY3V0b3Iu
c3RhcnQoKQpAQCAtMjQzLDggKzI0NCwxNCBAQCBjbGFzcyBUZXN0RXhlY3V0b3Iob2JqZWN0KToK
ICAgICAiIiIKICAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQogCi0gICAgdGVzdF90eXBlID0g
Tm9uZQotICAgIGNvbnZlcnRfcmVzdWx0ID0gTm9uZQorICAgIHRlc3RfdHlwZSA9IE5vbmUgICMg
dHlwZTogQ2xhc3NWYXJbc3RyXQorICAgICMgY29udmVydF9yZXN1bHQgaXMgYSBjbGFzcyB2YXJp
YWJsZSBzZXQgdG8gYSBjYWxsYWJsZSBjb252ZXJ0ZXIKKyAgICAjIChlLmcuIHJlZnRlc3RfcmVz
dWx0X2NvbnZlcnRlcikgY29udmVydGluZyBmcm9tIGFuIGluc3RhbmNlIG9mCisgICAgIyBVUkxN
YW5pZmVzdEl0ZW0gKGUuZy4gUmVmVGVzdCkgKyB0eXBlLWRlcGVuZGVudCByZXN1bHRzIG9iamVj
dCArCisgICAgIyB0eXBlLWRlcGVuZGVudCBleHRyYSBkYXRhLCByZXR1cm5pbmcgYSB0dXBsZSBv
ZiBSZXN1bHQgYW5kIGxpc3Qgb2YKKyAgICAjIFN1YnRlc3RSZXN1bHQuIEZvciBub3csIGFueSBj
YWxsYWJsZSBpcyBhY2NlcHRlZC4gVE9ETzogTWFrZSB0aGlzIHR5cGUKKyAgICAjIHN0cmljdGVy
IHdoZW4gbW9yZSBvZiB0aGUgc3Vycm91bmRpbmcgY29kZSBpcyBhbm5vdGF0ZWQuCisgICAgY29u
dmVydF9yZXN1bHQgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW0NhbGxhYmxlWy4uLiwgQW55XV0K
ICAgICBzdXBwb3J0c190ZXN0ZHJpdmVyID0gRmFsc2UKICAgICBzdXBwb3J0c19qc3NoZWxsID0g
RmFsc2UKICAgICAjIEV4dHJhIHRpbWVvdXQgdG8gdXNlIGFmdGVyIGludGVybmFsIHRlc3QgdGlt
ZW91dCBhdCB3aGljaCB0aGUgaGFybmVzcwpAQCAtMjg3LDE4ICsyOTQsMTUgQEAgY2xhc3MgVGVz
dEV4ZWN1dG9yKG9iamVjdCk6CiAgICAgICAgICIiIlJ1biBhIHBhcnRpY3VsYXIgdGVzdC4KIAog
ICAgICAgICA6cGFyYW0gdGVzdDogVGhlIHRlc3QgdG8gcnVuIiIiCi0gICAgICAgIGlmIHRlc3Qu
ZW52aXJvbm1lbnQgIT0gc2VsZi5sYXN0X2Vudmlyb25tZW50OgotICAgICAgICAgICAgc2VsZi5v
bl9lbnZpcm9ubWVudF9jaGFuZ2UodGVzdC5lbnZpcm9ubWVudCkKICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgaWYgdGVzdC5lbnZpcm9ubWVudCAhPSBzZWxmLmxhc3RfZW52aXJvbm1lbnQ6Cisg
ICAgICAgICAgICAgICAgc2VsZi5vbl9lbnZpcm9ubWVudF9jaGFuZ2UodGVzdC5lbnZpcm9ubWVu
dCkKICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZG9fdGVzdCh0ZXN0KQogICAgICAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICBleGNlcHRpb25fc3RyaW5nID0gdHJhY2Vi
YWNrLmZvcm1hdF9leGMoKQogICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZyhleGNlcHRp
b25fc3RyaW5nKQogICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5yZXN1bHRfZnJvbV9leGNlcHRp
b24odGVzdCwgZSwgZXhjZXB0aW9uX3N0cmluZykKIAotICAgICAgICBpZiByZXN1bHQgaXMgU3Rv
cDoKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQKLQogICAgICAgICAjIGxvZyByZXN1bHQgb2Yg
cGFyZW50IHRlc3QKICAgICAgICAgaWYgcmVzdWx0WzBdLnN0YXR1cyA9PSAiRVJST1IiOgogICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcocmVzdWx0WzBdLm1lc3NhZ2UpCkBAIC0zMDcsMTQg
KzMxMSwxOCBAQCBjbGFzcyBUZXN0RXhlY3V0b3Iob2JqZWN0KToKIAogICAgICAgICBzZWxmLnJ1
bm5lci5zZW5kX21lc3NhZ2UoInRlc3RfZW5kZWQiLCB0ZXN0LCByZXN1bHQpCiAKLSAgICBkZWYg
c2VydmVyX3VybChzZWxmLCBwcm90b2NvbCk6CisgICAgZGVmIHNlcnZlcl91cmwoc2VsZiwgcHJv
dG9jb2wsIHN1YmRvbWFpbj1GYWxzZSk6CiAgICAgICAgIHNjaGVtZSA9ICJodHRwcyIgaWYgcHJv
dG9jb2wgPT0gImgyIiBlbHNlIHByb3RvY29sCi0gICAgICAgIHJldHVybiAiJXM6Ly8lczolcyIg
JSAoc2NoZW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2Nv
bmZpZ1siYnJvd3Nlcl9ob3N0Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zZXJ2ZXJfY29uZmlnWyJwb3J0cyJdW3Byb3RvY29sXVswXSkKKyAgICAgICAgaG9zdCA9IHNl
bGYuc2VydmVyX2NvbmZpZ1siYnJvd3Nlcl9ob3N0Il0KKyAgICAgICAgaWYgc3ViZG9tYWluOgor
ICAgICAgICAgICAgIyBUaGUgb25seSBzdXBwb3J0ZWQgc3ViZG9tYWluIGZpbGVuYW1lIGZsYWcg
aXMgInd3dyIuCisgICAgICAgICAgICBob3N0ID0gIntzdWJkb21haW59Lntob3N0fSIuZm9ybWF0
KHN1YmRvbWFpbj0id3d3IiwgaG9zdD1ob3N0KQorICAgICAgICByZXR1cm4gIntzY2hlbWV9Oi8v
e2hvc3R9Ontwb3J0fSIuZm9ybWF0KHNjaGVtZT1zY2hlbWUsIGhvc3Q9aG9zdCwKKyAgICAgICAg
ICAgIHBvcnQ9c2VsZi5zZXJ2ZXJfY29uZmlnWyJwb3J0cyJdW3Byb3RvY29sXVswXSkKIAogICAg
IGRlZiB0ZXN0X3VybChzZWxmLCB0ZXN0KToKLSAgICAgICAgcmV0dXJuIHVybGpvaW4oc2VsZi5z
ZXJ2ZXJfdXJsKHRlc3QuZW52aXJvbm1lbnRbInByb3RvY29sIl0pLCB0ZXN0LnVybCkKKyAgICAg
ICAgcmV0dXJuIHVybGpvaW4oc2VsZi5zZXJ2ZXJfdXJsKHRlc3QuZW52aXJvbm1lbnRbInByb3Rv
Y29sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LnN1YmRv
bWFpbiksIHRlc3QudXJsKQogCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIGRvX3Rlc3Qo
c2VsZiwgdGVzdCk6CkBAIC0zMzIsNyArMzQwLDcgQEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9iamVj
dCk6CiAgICAgICAgICAgICBzdGF0dXMgPSBlLnN0YXR1cwogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgc3RhdHVzID0gIklOVEVSTkFMLUVSUk9SIgotICAgICAgICBtZXNzYWdlID0gdGV4dF90
eXBlKGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikpCisgICAgICAgIG1lc3NhZ2UgPSBzdHIoZ2V0
YXR0cihlLCAibWVzc2FnZSIsICIiKSkKICAgICAgICAgaWYgbWVzc2FnZToKICAgICAgICAgICAg
IG1lc3NhZ2UgKz0gIlxuIgogICAgICAgICBtZXNzYWdlICs9IGV4Y2VwdGlvbl9zdHJpbmcKQEAg
LTQyMyw3ICs0MzEsNyBAQCBjbGFzcyBSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKIAog
ICAgICAgICBpZiBsZW4obGhzX2hhc2hlcykgIT0gbGVuKHJoc19oYXNoZXMpOgogICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiR290IGRpZmZlcmVudCBudW1iZXIgb2YgcGFnZXMiKQotICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICByZXR1cm4gcmVsYXRpb24gPT0gIiE9
IiwgTm9uZQogCiAgICAgICAgIGFzc2VydCBsZW4obGhzX3NjcmVlbnNob3RzKSA9PSBsZW4obGhz
X2hhc2hlcykgPT0gbGVuKHJoc19zY3JlZW5zaG90cykgPT0gbGVuKHJoc19oYXNoZXMpCiAKQEAg
LTU5MCwxMSArNTk4LDExIEBAIGNsYXNzIFJlZlRlc3RJbXBsZW1lbnRhdGlvbihvYmplY3QpOgog
CiBjbGFzcyBXZHNwZWNFeGVjdXRvcihUZXN0RXhlY3V0b3IpOgogICAgIGNvbnZlcnRfcmVzdWx0
ID0gcHl0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIKLSAgICBwcm90b2NvbF9jbHMgPSBOb25lCisgICAg
cHJvdG9jb2xfY2xzID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltUeXBlW1Byb3RvY29sXV0KIAog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHdl
YmRyaXZlcl9iaW5hcnksCiAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCB0aW1lb3V0
X211bHRpcGxpZXI9MSwgY2FwYWJpbGl0aWVzPU5vbmUsCi0gICAgICAgICAgICAgICAgIGRlYnVn
X2luZm89Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUs
IGVudmlyb249Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLmRvX2RlbGF5ZWRfaW1wb3J0
cygpCiAgICAgICAgIFRlc3RFeGVjdXRvci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIs
IHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211
bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLApAQCAtNjAzLDcgKzYxMSwxMyBAQCBjbGFzcyBX
ZHNwZWNFeGVjdXRvcihUZXN0RXhlY3V0b3IpOgogICAgICAgICBzZWxmLndlYmRyaXZlcl9hcmdz
ID0gd2ViZHJpdmVyX2FyZ3MKICAgICAgICAgc2VsZi50aW1lb3V0X211bHRpcGxpZXIgPSB0aW1l
b3V0X211bHRpcGxpZXIKICAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMK
LSAgICAgICAgc2VsZi5wcm90b2NvbCA9IHNlbGYucHJvdG9jb2xfY2xzKHNlbGYsIGJyb3dzZXIp
CisgICAgICAgIHNlbGYuZW52aXJvbiA9IGVudmlyb24gaWYgZW52aXJvbiBpcyBub3QgTm9uZSBl
bHNlIHt9CisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdzID0gTm9uZQorICAgICAg
ICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IE5vbmUKKworICAgIGRlZiBzZXR1
cChzZWxmLCBydW5uZXIpOgorICAgICAgICBzZWxmLnByb3RvY29sID0gc2VsZi5wcm90b2NvbF9j
bHMoc2VsZiwgc2VsZi5icm93c2VyKQorICAgICAgICBzdXBlcigpLnNldHVwKHJ1bm5lcikKIAog
ICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wuaXNf
YWxpdmUoKQpAQCAtNzA2LDcgKzcyMCw3IEBAIGNsYXNzIENvbm5lY3Rpb25sZXNzUHJvdG9jb2wo
UHJvdG9jb2wpOgogCiAKIGNsYXNzIFdkc3BlY1Byb3RvY29sKFByb3RvY29sKToKLSAgICBzZXJ2
ZXJfY2xzID0gTm9uZQorICAgIHNlcnZlcl9jbHMgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW09w
dGlvbmFsW1R5cGVbV2ViRHJpdmVyU2VydmVyXV1dCiAKICAgICBpbXBsZW1lbnRzID0gW0Nvbm5l
Y3Rpb25sZXNzQmFzZVByb3RvY29sUGFydF0KIApAQCAtNzE3LDE0ICs3MzEsMjEgQEAgY2xhc3Mg
V2RzcGVjUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IHNl
bGYuZXhlY3V0b3IuY2FwYWJpbGl0aWVzCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9jb25maWcgPSBO
b25lCiAgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQorICAgICAgICBzZWxmLmVudmlyb24gPSBv
cy5lbnZpcm9uLmNvcHkoKQorICAgICAgICBzZWxmLmVudmlyb24udXBkYXRlKGV4ZWN1dG9yLmVu
dmlyb24pCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdzID0gZXhlY3V0b3Iub3V0
cHV0X2hhbmRsZXJfa3dhcmdzCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dh
cmdzID0gZXhlY3V0b3Iub3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzCiAKICAgICBkZWYgY29u
bmVjdChzZWxmKToKICAgICAgICAgIiIiQ29ubmVjdCB0byBicm93c2VyIHZpYSB0aGUgSFRUUCBz
ZXJ2ZXIuIiIiCiAgICAgICAgIHNlbGYuc2VydmVyID0gc2VsZi5zZXJ2ZXJfY2xzKAogICAgICAg
ICAgICAgc2VsZi5sb2dnZXIsCiAgICAgICAgICAgICBiaW5hcnk9c2VsZi53ZWJkcml2ZXJfYmlu
YXJ5LAotICAgICAgICAgICAgYXJncz1zZWxmLndlYmRyaXZlcl9hcmdzKQotICAgICAgICBzZWxm
LnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkKKyAgICAgICAgICAgIGFyZ3M9c2VsZi53ZWJkcml2
ZXJfYXJncywKKyAgICAgICAgICAgIGVudj1zZWxmLmVudmlyb24pCisgICAgICAgIHNlbGYuc2Vy
dmVyLnN0YXJ0KGJsb2NrPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRf
aGFuZGxlcl9rd2FyZ3M9c2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncz1zZWxmLm91dHB1dF9oYW5k
bGVyX3N0YXJ0X2t3YXJncykKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygKICAgICAgICAgICAg
ICJXZWJEcml2ZXIgSFRUUCBzZXJ2ZXIgbGlzdGVuaW5nIGF0ICVzIiAlIHNlbGYuc2VydmVyLnVy
bCkKICAgICAgICAgc2VsZi5zZXNzaW9uX2NvbmZpZyA9IHsiaG9zdCI6IHNlbGYuc2VydmVyLmhv
c3QsCkBAIC03NjIsNyArNzgzLDcgQEAgY2xhc3MgQ2FsbGJhY2tIYW5kbGVyKG9iamVjdCk6CiAg
ICAgV2ViRHJpdmVyLiBUaGluZ3MgdGhhdCBhcmUgbW9yZSBkaWZmZXJlbnQgdG8gV2ViRHJpdmVy
IG1heSBuZWVkIHRvIGNyZWF0ZSBhCiAgICAgZnVsbHkgY3VzdG9tIGltcGxlbWVudGF0aW9uLiIi
IgogCi0gICAgdW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50ZWRFcnJvciwpCisgICAg
dW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50ZWRFcnJvciwpICAjIHR5cGU6IENsYXNz
VmFyW1R1cGxlW1R5cGVbRXhjZXB0aW9uXSwgLi4uXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdyk6CiAgICAgICAgIHNlbGYucHJvdG9jb2wg
PSBwcm90b2NvbApAQCAtODMxLDcgKzg1Miw3IEBAIGNsYXNzIEFjdGlvbkNvbnRleHQob2JqZWN0
KToKIAogICAgICAgICBzZWxmLmluaXRpYWxfd2luZG93ID0gc2VsZi5wcm90b2NvbC5iYXNlLmN1
cnJlbnRfd2luZG93CiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTd2l0Y2hpbmcgdG8gd2lu
ZG93ICVzIiAlIHNlbGYuY29udGV4dCkKLSAgICAgICAgc2VsZi5wcm90b2NvbC50ZXN0ZHJpdmVy
LnN3aXRjaF90b193aW5kb3coc2VsZi5jb250ZXh0KQorICAgICAgICBzZWxmLnByb3RvY29sLnRl
c3Rkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhzZWxmLmNvbnRleHQsIHNlbGYuaW5pdGlhbF93aW5k
b3cpCiAKICAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MpOgogICAgICAgICBpZiBzZWxmLmNv
bnRleHQgaXMgTm9uZToKQEAgLTgzOSw1ICs4NjAsNCBAQCBjbGFzcyBBY3Rpb25Db250ZXh0KG9i
amVjdCk6CiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN3aXRjaGluZyBiYWNrIHRvIGlu
aXRpYWwgd2luZG93IikKICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3coc2Vs
Zi5pbml0aWFsX3dpbmRvdykKLSAgICAgICAgc2VsZi5wcm90b2NvbC50ZXN0ZHJpdmVyLl9zd2l0
Y2hfdG9fZnJhbWUoTm9uZSkKICAgICAgICAgc2VsZi5pbml0aWFsX3dpbmRvdyA9IE5vbmUKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9t
ZS5weQppbmRleCAzYTcwNDc1NDEzN2YuLjQzMWQzOThlYmQyNyAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9yY2hyb21lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQpAQCAtMSw3
ICsxLDcgQEAKIGltcG9ydCBvcwogaW1wb3J0IHRyYWNlYmFjawogCi1mcm9tIHNpeC5tb3Zlcy51
cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxq
b2luCiAKIGZyb20gLmJhc2UgaW1wb3J0IFdkc3BlY1Byb3RvY29sLCBXZHNwZWNFeGVjdXRvciwg
Z2V0X3BhZ2VzCiBmcm9tIC5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyUHJvdG9j
b2wsIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwgV2ViRHJpdmVyUnVuCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5w
eQppbmRleCA3ZTJjYzhlMzhhNDQuLjI1YTMzNjBiN2Q4MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4
ZWN1dG9ybWFyaW9uZXR0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5CkBA
IC01LDggKzUsNyBAQCBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHV1aWQK
IAotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgaXRlcmtleXMKLWZyb20gc2l4Lm1vdmVzLnVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpv
aW4KIAogZXJyb3JzID0gTm9uZQogbWFyaW9uZXR0ZSA9IE5vbmUKQEAgLTMzLDI3ICszMiwyMiBA
QCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBTdG9yYWdlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBTZWxlY3RvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQ2xp
Y2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZXNQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRLZXlzUHJvdG9jb2xQYXJ0LAogICAgICAg
ICAgICAgICAgICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBDb3ZlcmFnZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgR2Vu
ZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBWaXJ0
dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU2V0
UGVybWlzc2lvblByb3RvY29sUGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRQcm90
b2NvbFBhcnQpCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAotZnJvbSAuLndlYmRyaXZl
cl9zZXJ2ZXIgaW1wb3J0IEdlY2tvRHJpdmVyU2VydmVyCisgICAgICAgICAgICAgICAgICAgICAg
IFByaW50UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29s
UGFydCkKIAogCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6Ci0gICAgZ2xvYmFsIGVycm9ycywg
bWFyaW9uZXR0ZQorICAgIGdsb2JhbCBlcnJvcnMsIG1hcmlvbmV0dGUsIEFkZG9ucwogCi0gICAg
IyBNYXJpb25ldHRlIGNsaWVudCB1c2VkIHRvIGJlIGNhbGxlZCBtYXJpb25ldHRlLCByZWNlbnRs
eSBpdCBjaGFuZ2VkCi0gICAgIyB0byBtYXJpb25ldHRlX2RyaXZlciBmb3IgdW5mYXRob21hYmxl
IHJlYXNvbnMKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBtYXJpb25ldHRlCi0gICAgICAgIGZy
b20gbWFyaW9uZXR0ZSBpbXBvcnQgZXJyb3JzCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAg
ICAgICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyIGltcG9ydCBtYXJpb25ldHRlLCBlcnJvcnMKKyAg
ICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyIGltcG9ydCBtYXJpb25ldHRlLCBlcnJvcnMKKyAgICBm
cm9tIG1hcmlvbmV0dGVfZHJpdmVyLmFkZG9ucyBpbXBvcnQgQWRkb25zCiAKIAogZGVmIF9zd2l0
Y2hfdG9fd2luZG93KG1hcmlvbmV0dGUsIGhhbmRsZSk6CkBAIC0xMzMsNyArMTI3LDcgQEAgY2xh
c3MgTWFyaW9uZXR0ZUJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAgICAgICAg
ICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5KYXZhc2NyaXB0RXhjZXB0
aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBoYXBwZW4gaWYgd2UgbmF2aWdh
dGUsIGJ1dCBqdXN0IGtlZXAgZ29pbmcKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZyhlLm1lc3NhZ2UpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZSkKICAgICAg
ICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU29ja2V0IGNsb3NlZCIpCkBAIC00NDEsNiArNDM1LDE1
IEBAIGNsYXNzIE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFydChDbGlja1Byb3RvY29sUGFydCk6
CiAgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKIAogCitjbGFzcyBNYXJpb25ldHRlQ29v
a2llc1Byb3RvY29sUGFydChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2Vs
Zik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKKwor
ICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmlu
Zm8oIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAgICAgcmV0dXJuIHNlbGYubWFyaW9uZXR0
ZS5kZWxldGVfYWxsX2Nvb2tpZXMoKQorCisKIGNsYXNzIE1hcmlvbmV0dGVTZW5kS2V5c1Byb3Rv
Y29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAg
ICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCkBAIC00NzMsOCAr
NDc2LDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFRlc3REcml2
ZXJQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgb2JqWyJtZXNzYWdlIl0gPSBzdHIobWVzc2Fn
ZSkKICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgid2luZG93LnBvc3RN
ZXNzYWdlKCVzLCAnKicpIiAlIGpzb24uZHVtcHMob2JqKSkKIAotICAgIGRlZiBfc3dpdGNoX3Rv
X2ZyYW1lKHNlbGYsIGZyYW1lX251bWJlcik6Ci0gICAgICAgIHNlbGYubWFyaW9uZXR0ZS5zd2l0
Y2hfdG9fZnJhbWUoZnJhbWVfbnVtYmVyKQorICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYs
IGluZGV4X29yX2VsZW0pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0
dGUuc3dpdGNoX3RvX2ZyYW1lKGluZGV4X29yX2VsZW0pCisgICAgICAgIGV4Y2VwdCAoZXJyb3Jz
Lk5vU3VjaEZyYW1lRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgIGVycm9ycy5TdGFsZUVsZW1l
bnRFeGNlcHRpb24pIGFzIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yIGZyb20gZQog
CiAgICAgZGVmIF9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlbGYpOgogICAgICAgICBzZWxmLm1h
cmlvbmV0dGUuc3dpdGNoX3RvX3BhcmVudF9mcmFtZSgpCkBAIC00ODksNyArNDk2LDcgQEAgY2xh
c3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToK
ICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIHNjcmlwdCA9ICIiIgotICAgICAgICAgICAg
Y29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0aWxzLmltcG9ydCgiY2hyb21l
Oi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0aWxzLmpzbSIpOworICAgICAg
ICAgICAgY29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0aWxzLmltcG9ydCgi
Y2hyb21lOi8vcmVtb3RlL2NvbnRlbnQvbWFyaW9uZXR0ZS9QZXJUZXN0Q292ZXJhZ2VVdGlscy5q
c20iKTsKICAgICAgICAgICAgIHJldHVybiBQZXJUZXN0Q292ZXJhZ2VVdGlscy5lbmFibGVkOwog
ICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRl
eHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTQ5OSw3ICs1MDYsNyBAQCBj
bGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJhZ2VQcm90b2NvbFBhcnQp
OgogICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3Vt
ZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0
Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTovL21hcmlvbmV0dGUv
Y29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20iKTsKKyAgICAgICAgICAgIGNvbnN0IHtQ
ZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTovL3JlbW90
ZS9jb250ZW50L21hcmlvbmV0dGUvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7CiAgICAgICAg
ICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5iZWZvcmVUZXN0KCkudGhlbihjYWxsYmFjaywgY2Fs
bGJhY2spOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVz
aW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTUxOSw3ICs1
MjYsNyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJhZ2VQcm90
b2NvbFBhcnQpOgogICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAgIHZhciBjYWxsYmFj
ayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAgICAgICAgIGNvbnN0
IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTovL21h
cmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20iKTsKKyAgICAgICAgICAg
IGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9t
ZTovL3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7
CiAgICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5hZnRlclRlc3QoKS50aGVuKGNhbGxi
YWNrLCBjYWxsYmFjayk7CiAgICAgICAgICAgICAiIiIKICAgICAgICAgd2l0aCBzZWxmLm1hcmlv
bmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpOgpAQCAt
NTYzLDEyICs1NzAsMjIgQEAgY2xhc3MgTWFyaW9uZXR0ZVZpcnR1YWxBdXRoZW50aWNhdG9yUHJv
dG9jb2xQYXJ0KFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXIKICAgICBkZWYgc2V0X3Vz
ZXJfdmVyaWZpZWQoc2VsZiwgYXV0aGVudGljYXRvcl9pZCwgdXYpOgogICAgICAgICByYWlzZSBO
b3RJbXBsZW1lbnRlZEVycm9yKCJzZXRfdXNlcl92ZXJpZmllZCBub3QgeWV0IGltcGxlbWVudGVk
IikKIAorCiBjbGFzcyBNYXJpb25ldHRlU2V0UGVybWlzc2lvblByb3RvY29sUGFydChTZXRQZXJt
aXNzaW9uUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYu
bWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKIAotICAgIGRlZiBzZXRfcGVybWlz
c2lvbihzZWxmLCBuYW1lLCBzdGF0ZSwgb25lX3JlYWxtKToKLSAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcigic2V0X3Blcm1pc3Npb24gbm90IHlldCBpbXBsZW1lbnRlZCIpCisgICAg
ZGVmIHNldF9wZXJtaXNzaW9uKHNlbGYsIGRlc2NyaXB0b3IsIHN0YXRlLCBvbmVfcmVhbG0pOgor
ICAgICAgICBib2R5ID0geworICAgICAgICAgICAgImRlc2NyaXB0b3IiOiBkZXNjcmlwdG9yLAor
ICAgICAgICAgICAgInN0YXRlIjogc3RhdGUsCisgICAgICAgIH0KKyAgICAgICAgaWYgb25lX3Jl
YWxtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYm9keVsib25lUmVhbG0iXSA9IG9uZV9yZWFs
bQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuX3NlbmRfbWVzc2Fn
ZSgiV2ViRHJpdmVyOlNldFBlcm1pc3Npb24iLCBib2R5KQorICAgICAgICBleGNlcHQgZXJyb3Jz
LlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uOgorICAgICAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcigic2V0X3Blcm1pc3Npb24gbm90IHlldCBpbXBsZW1lbnRlZCIpCiAKIAog
Y2xhc3MgTWFyaW9uZXR0ZVByaW50UHJvdG9jb2xQYXJ0KFByaW50UHJvdG9jb2xQYXJ0KToKQEAg
LTYyMSw2ICs2MzgsMzAgQEAgcmVuZGVyKCclcycpLnRoZW4ocmVzdWx0ID0+IGNhbGxiYWNrKHJl
c3VsdCkpIiIiICUgcGRmX2Jhc2U2NCwgbmV3X3NhbmRib3g9RmFsc2UKICAgICAgICAgZmluYWxs
eToKICAgICAgICAgICAgIF9zd2l0Y2hfdG9fd2luZG93KHNlbGYubWFyaW9uZXR0ZSwgaGFuZGxl
KQogCisKK2NsYXNzIE1hcmlvbmV0dGVEZWJ1Z1Byb3RvY29sUGFydChEZWJ1Z1Byb3RvY29sUGFy
dCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxm
LnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAg
ICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09O
VEVYVF9DSFJPTUUpOgorICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3Njcmlw
dCgiIiIKK2NvbnN0IHsgcmVxdWlyZSB9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJyZXNvdXJjZTov
L2RldnRvb2xzL3NoYXJlZC9Mb2FkZXIuanNtIik7Citjb25zdCB7IFRhcmdldEZhY3RvcnkgfSA9
IHJlcXVpcmUoImRldnRvb2xzL2NsaWVudC9mcmFtZXdvcmsvdGFyZ2V0Iik7Citjb25zdCB7IGdE
ZXZUb29scyB9ID0gcmVxdWlyZSgiZGV2dG9vbHMvY2xpZW50L2ZyYW1ld29yay9kZXZ0b29scyIp
OworCitjb25zdCBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CisK
K2FzeW5jIGZ1bmN0aW9uIGxvYWREZXZUb29scygpIHsKKyAgICBjb25zdCB0YXJnZXQgPSBhd2Fp
dCBUYXJnZXRGYWN0b3J5LmZvclRhYih3aW5kb3cuZ0Jyb3dzZXIuc2VsZWN0ZWRUYWIpOworICAg
IGF3YWl0IGdEZXZUb29scy5zaG93VG9vbGJveCh0YXJnZXQsICJ3ZWJjb25zb2xlIiwgIndpbmRv
dyIpOworfQorCitsb2FkRGV2VG9vbHMoKS5jYXRjaCgoKSA9PiBkdW1wKCJEZXZ0b29scyBmYWls
ZWQgdG8gbG9hZCIpKQorICAgICAgICAgICAgICAudGhlbihjYWxsYmFjayk7CisiIiIsIGFzeW5j
aHJvbm91cz1UcnVlKQorCisKIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90b2NvbCk6CiAg
ICAgaW1wbGVtZW50cyA9IFtNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgIE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKQEAgLTYyOCw2ICs2Njks
NyBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAg
ICAgTWFyaW9uZXR0ZVN0b3JhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJp
b25ldHRlU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRl
Q2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQ29va2llc1By
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTZW5kS2V5c1Byb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVBY3Rpb25TZXF1ZW5jZVByb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0
LApAQCAtNjM2LDcgKzY3OCw4IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90b2NvbCk6
CiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlR2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQ
YXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVZpcnR1YWxBdXRoZW50aWNhdG9yUHJv
dG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNldFBlcm1pc3Npb25Qcm90
b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2NvbFBhcnRd
CisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2NvbFBhcnQsCisgICAgICAg
ICAgICAgICAgICBNYXJpb25ldHRlRGVidWdQcm90b2NvbFBhcnRdCiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcz1Ob25lLCB0aW1lb3V0X211
bHRpcGxpZXI9MSwgZTEwcz1UcnVlLCBjY292PUZhbHNlKToKICAgICAgICAgZG9fZGVsYXllZF9p
bXBvcnRzKCkKQEAgLTY4MCwxMSArNzIzLDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQ
cm90b2NvbCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5tYXJpb25l
dHRlLl9yZXF1ZXN0X2luX2FwcF9zaHV0ZG93bigpCiAgICAgICAgICAgICAgICAgc2VsZi5tYXJp
b25ldHRlLmRlbGV0ZV9zZXNzaW9uKHNlbmRfcmVxdWVzdD1GYWxzZSkKKyAgICAgICAgICAgICAg
ICBzZWxmLm1hcmlvbmV0dGUuY2xlYW51cCgpCiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgogICAgICAgICAgICAgICAgICMgVGhpcyBpcyB0eXBpY2FsbHkgYmVjYXVzZSB0aGUgc2Vzc2lv
biBuZXZlciBzdGFydGVkCiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBpZiBzZWxmLm1h
cmlvbmV0dGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkZWwgc2VsZi5tYXJpb25ldHRlCisg
ICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBOb25lCiAgICAgICAgIHN1cGVyKE1hcmlvbmV0
dGVQcm90b2NvbCwgc2VsZikudGVhcmRvd24oKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgpA
QCAtNjk2LDIwICs3NDAsMTkgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3RvY29sKToK
IAogICAgIGRlZiBvbl9lbnZpcm9ubWVudF9jaGFuZ2Uoc2VsZiwgb2xkX2Vudmlyb25tZW50LCBu
ZXdfZW52aXJvbm1lbnQpOgogICAgICAgICAjVW5zZXQgYWxsIHRoZSBvbGQgcHJlZnMKLSAgICAg
ICAgZm9yIG5hbWUgaW4gaXRlcmtleXMob2xkX2Vudmlyb25tZW50LmdldCgicHJlZnMiLCB7fSkp
OgorICAgICAgICBmb3IgbmFtZSBpbiBvbGRfZW52aXJvbm1lbnQuZ2V0KCJwcmVmcyIsIHt9KS5r
ZXlzKCk6CiAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuZXhlY3V0b3Iub3JpZ2luYWxfcHJlZl92
YWx1ZXNbbmFtZV0KICAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgICAg
ICAgc2VsZi5wcmVmcy5jbGVhcihuYW1lKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAg
ICAgICBzZWxmLnByZWZzLnNldChuYW1lLCB2YWx1ZSkKIAotICAgICAgICBmb3IgbmFtZSwgdmFs
dWUgaW4gaXRlcml0ZW1zKG5ld19lbnZpcm9ubWVudC5nZXQoInByZWZzIiwge30pKToKKyAgICAg
ICAgZm9yIG5hbWUsIHZhbHVlIGluIG5ld19lbnZpcm9ubWVudC5nZXQoInByZWZzIiwge30pLml0
ZW1zKCk6CiAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yLm9yaWdpbmFsX3ByZWZfdmFsdWVzW25h
bWVdID0gc2VsZi5wcmVmcy5nZXQobmFtZSkKICAgICAgICAgICAgIHNlbGYucHJlZnMuc2V0KG5h
bWUsIHZhbHVlKQogCiAKIGNsYXNzIEV4ZWN1dGVBc3luY1NjcmlwdFJ1bihUaW1lZFJ1bm5lcik6
Ci0KICAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CiAgICAgICAgIHRpbWVvdXQgPSBzZWxmLnRp
bWVvdXQKIApAQCAtNzIyLDggKzc2NSw5IEBAIGNsYXNzIEV4ZWN1dGVBc3luY1NjcmlwdFJ1bihU
aW1lZFJ1bm5lcik6CiAgICAgICAgICAgICAgICAgIyB0aW1lb3V0IGlzIHNldCB0b28gaGlnaC4g
VGhpcyB3b3JrcyBhdCBsZWFzdC4KICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uu
c2V0X3RpbWVvdXQoMioqMjggLSAxKQogICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBiZWZvcmUg
c3RhcnRpbmcgdGVzdCIpCi0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICAgICAgbXNn
ID0gIkxvc3QgbWFyaW9uZXR0ZSBjb25uZWN0aW9uIGJlZm9yZSBzdGFydGluZyB0ZXN0IgorICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgcmV0dXJuICgiSU5U
RVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICBkZWYgYmVmb3JlX3J1bihzZWxmKToKICAgICAgICAg
aW5kZXggPSBzZWxmLnVybC5yZmluZCgiL3N0b3JhZ2UvIikKQEAgLTc0Nyw3ICs3OTEsNyBAQCBj
bGFzcyBFeGVjdXRlQXN5bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgogICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbygiTm9TdWNoV2luZG93RXhjZXB0aW9uIG9uIGNvbW1hbmQsIHNldHRpbmcg
c3RhdHVzIHRvIENSQVNIIikKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JB
U0giLCBOb25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKGUsIGVycm9ycy5KYXZhc2NyaXB0RXhjZXB0aW9uKSBhbmQgZS5tZXNzYWdl
LnN0YXJ0c3dpdGgoIkRvY3VtZW50IHdhcyB1bmxvYWRlZCIpOgorICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShlLCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbikgYW5kIHN0cihlKS5zdGFydHN3
aXRoKCJEb2N1bWVudCB3YXMgdW5sb2FkZWQiKToKICAgICAgICAgICAgICAgICBtZXNzYWdlID0g
IkRvY3VtZW50IHVubG9hZGVkOyBtYXliZSB0ZXN0IG5hdmlnYXRlZCB0aGUgdG9wLWxldmVsLWJy
b3dzaW5nIGNvbnRleHQ/IgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBtZXNz
YWdlID0gZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKQpAQCAtNzY1LDcgKzgwOSw3IEBAIGNsYXNz
IE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGlt
ZW91dF9tdWx0aXBsaWVyPTEsCiAgICAgICAgICAgICAgICAgIGNsb3NlX2FmdGVyX2RvbmU9VHJ1
ZSwgZGVidWdfaW5mbz1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
ZGVidWc9RmFsc2UsIGNjb3Y9RmFsc2UsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgZGVi
dWc9RmFsc2UsIGNjb3Y9RmFsc2UsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToKICAgICAg
ICAgIiIiTWFyaW9uZXR0ZS1iYXNlZCBleGVjdXRvciBmb3IgdGVzdGhhcm5lc3MuanMgdGVzdHMi
IiIKICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJy
b3dzZXIsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKQEAgLTc4MSw2ICs4MjUs
OSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1
dG9yKToKICAgICAgICAgc2VsZi5jbG9zZV9hZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9uZQog
ICAgICAgICBzZWxmLndpbmRvd19pZCA9IHN0cih1dWlkLnV1aWQ0KCkpCiAgICAgICAgIHNlbGYu
ZGVidWcgPSBkZWJ1ZworICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1Z190ZXN0CisKKyAg
ICAgICAgc2VsZi5pbnN0YWxsX2V4dGVuc2lvbnMgPSBicm93c2VyLmV4dGVuc2lvbnMKIAogICAg
ICAgICBzZWxmLm9yaWdpbmFsX3ByZWZfdmFsdWVzID0ge30KIApAQCAtNzg5LDYgKzgzNiwxMSBA
QCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9y
KToKIAogICAgIGRlZiBzZXR1cChzZWxmLCBydW5uZXIpOgogICAgICAgICBzdXBlcihNYXJpb25l
dHRlVGVzdGhhcm5lc3NFeGVjdXRvciwgc2VsZikuc2V0dXAocnVubmVyKQorICAgICAgICBmb3Ig
ZXh0ZW5zaW9uX3BhdGggaW4gc2VsZi5pbnN0YWxsX2V4dGVuc2lvbnM6CisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5pbmZvKCJJbnN0YWxsaW5nIGV4dGVuc2lvbiBmcm9tICVzIiAlIGV4dGVuc2lv
bl9wYXRoKQorICAgICAgICAgICAgYWRkb25zID0gQWRkb25zKHNlbGYucHJvdG9jb2wubWFyaW9u
ZXR0ZSkKKyAgICAgICAgICAgIGFkZG9ucy5pbnN0YWxsKGV4dGVuc2lvbl9wYXRoKQorCiAgICAg
ICAgIHNlbGYucHJvdG9jb2wudGVzdGhhcm5lc3MubG9hZF9ydW5uZXIoc2VsZi5sYXN0X2Vudmly
b25tZW50WyJwcm90b2NvbCJdKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgpAQCAtODQyLDYg
Kzg5NCw5IEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNz
RXhlY3V0b3IpOgogICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3dpbmRvdyh0ZXN0X3dp
bmRvdykKICAgICAgICAgcHJvdG9jb2wudGVzdGhhcm5lc3MudGVzdF93aW5kb3dfbG9hZGVkKCkK
IAorICAgICAgICBpZiBzZWxmLmRlYnVnX3Rlc3Q6CisgICAgICAgICAgICBzZWxmLnByb3RvY29s
LmRlYnVnLmxvYWRfZGV2dG9vbHMoKQorCiAgICAgICAgIGhhbmRsZXIgPSBDYWxsYmFja0hhbmRs
ZXIoc2VsZi5sb2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdykKICAgICAgICAgcHJvdG9jb2wu
bWFyaW9uZXR0ZS5uYXZpZ2F0ZSh1cmwpCiAgICAgICAgIHdoaWxlIFRydWU6CkBAIC04NjgsNyAr
OTIzLDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3Ip
OgogICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIHJlZnRlc3RfaW50ZXJuYWw9RmFs
c2UsCiAgICAgICAgICAgICAgICAgIHJlZnRlc3Rfc2NyZWVuc2hvdD0idW5leHBlY3RlZCIsIGNj
b3Y9RmFsc2UsCiAgICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5vbmUsIGNhcGFiaWxp
dGllcz1Ob25lLCBkZWJ1Zz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgYnJvd3Nlcl92ZXJzaW9u
PU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgYnJvd3Nlcl92ZXJzaW9uPU5vbmUs
IGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToKICAgICAgICAgIiIiTWFyaW9uZXR0ZS1iYXNl
ZCBleGVjdXRvciBmb3IgcmVmdGVzdHMiIiIKICAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLl9faW5p
dF9fKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIsCkBAIC04
OTEsNiArOTQ2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhl
Y3V0b3IpOgogICAgICAgICBzZWxmLm9yaWdpbmFsX3ByZWZfdmFsdWVzID0ge30KICAgICAgICAg
c2VsZi5ncm91cF9tZXRhZGF0YSA9IGdyb3VwX21ldGFkYXRhCiAgICAgICAgIHNlbGYuZGVidWcg
PSBkZWJ1ZworICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1Z190ZXN0CiAKICAgICAgICAg
d2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAicmVmdGVzdC5qcyIpKSBhcyBmOgogICAgICAg
ICAgICAgc2VsZi5zY3JpcHQgPSBmLnJlYWQoKQpAQCAtOTUzLDcgKzEwMDksMTIgQEAgY2xhc3Mg
TWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAgICAgICAg
YXNzZXJ0aW9uX2NvdW50ID0gc2VsZi5wcm90b2NvbC5hc3NlcnRzLmdldCgpCiAgICAgICAgICAg
ICBpZiAiZXh0cmEiIG5vdCBpbiByZXN1bHQ6CiAgICAgICAgICAgICAgICAgcmVzdWx0WyJleHRy
YSJdID0ge30KLSAgICAgICAgICAgIHJlc3VsdFsiZXh0cmEiXVsiYXNzZXJ0aW9uX2NvdW50Il0g
PSBhc3NlcnRpb25fY291bnQKKyAgICAgICAgICAgIGlmIGFzc2VydGlvbl9jb3VudCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICByZXN1bHRbImV4dHJhIl1bImFzc2VydGlvbl9jb3VudCJd
ID0gYXNzZXJ0aW9uX2NvdW50CisKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190ZXN0IGFuZCByZXN1
bHRbInN0YXR1cyJdIGluIFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIl0gYW5kICJleHRyYSIgaW4g
cmVzdWx0OgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3coc2VsZi5w
cm90b2NvbC5iYXNlLndpbmRvd19oYW5kbGVzKClbMF0pCisgICAgICAgICAgICBzZWxmLnByb3Rv
Y29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXplcih0ZXN0LCByZXN1bHQpCiAKICAgICAgICAg
cmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQogCkBAIC0xMDAwLDggKzEw
NjEsNyBAQCBjbGFzcyBJbnRlcm5hbFJlZlRlc3RJbXBsZW1lbnRhdGlvbihSZWZUZXN0SW1wbGVt
ZW50YXRpb24pOgogICAgICAgICBkYXRhID0geyJzY3JlZW5zaG90Ijogc2NyZWVuc2hvdCwgImlz
UHJpbnQiOiBzZWxmLmV4ZWN1dG9yLmlzX3ByaW50fQogICAgICAgICBpZiBzZWxmLmV4ZWN1dG9y
Lmdyb3VwX21ldGFkYXRhIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZGF0YVsidXJsQ291bnQi
XSA9IHt1cmxqb2luKHNlbGYuZXhlY3V0b3Iuc2VydmVyX3VybChrZXlbMF0pLCBrZXlbMV0pOnZh
bHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGl0
ZXJpdGVtcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0
b3IuZ3JvdXBfbWV0YWRhdGEuZ2V0KCJ1cmxfY291bnQiLCB7fSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYuZXhlY3V0b3IuZ3JvdXBfbWV0
YWRhdGEuZ2V0KCJ1cmxfY291bnQiLCB7fSkuaXRlbXMoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiB2YWx1ZSA+IDF9CiAgICAgICAgIHNlbGYuY2hyb21lX3Njb3BlID0gY2hy
b21lX3Njb3BlCiAgICAgICAgIGlmIGNocm9tZV9zY29wZToKQEAgLTEwNTMsMTIgKzExMTMsMzIg
QEAgY2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24oUmVmVGVzdEltcGxlbWVudGF0
aW9uKToKIAogCiBjbGFzcyBHZWNrb0RyaXZlclByb3RvY29sKFdkc3BlY1Byb3RvY29sKToKLSAg
ICBzZXJ2ZXJfY2xzID0gR2Vja29Ecml2ZXJTZXJ2ZXIKKyAgICBzZXJ2ZXJfY2xzID0gTm9uZSAg
IyBUbyBhdm9pZCBjaXJjdWxhciBpbXBvcnRzIHdlIHNldCB0aGlzIGF0IHJ1bnRpbWUKIAogCiBj
bGFzcyBNYXJpb25ldHRlV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgogICAgIHByb3Rv
Y29sX2NscyA9IEdlY2tvRHJpdmVyUHJvdG9jb2wKIAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHdlYmRyaXZlcl9iaW5hcnksCisgICAgICAg
ICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCB0aW1lb3V0X211bHRpcGxpZXI9MSwgY2FwYWJpbGl0
aWVzPU5vbmUsCisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgZW52aXJvbj1Ob25l
LCBzdGFja2ZpeF9kaXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5vbmUs
IGxlYWtfcmVwb3J0X2ZpbGU9Tm9uZSwgYXNhbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZ3Jv
dXBfbWV0YWRhdGE9Tm9uZSwgYnJvd3Nlcl9zZXR0aW5ncz1Ob25lLCAqKmt3YXJncyk6CisKKyAg
ICAgICAgZnJvbSAuLmJyb3dzZXJzLmZpcmVmb3ggaW1wb3J0IEdlY2tvRHJpdmVyU2VydmVyCisg
ICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB3
ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdz
LCB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsIGRlYnVnX2luZm89ZGVidWdfaW5m
bywKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uPWVudmlyb24sICoqa3dhcmdzKQor
ICAgICAgICBzZWxmLnByb3RvY29sX2Nscy5zZXJ2ZXJfY2xzID0gR2Vja29Ecml2ZXJTZXJ2ZXIK
KyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MgPSB7InN0YWNrZml4X2RpciI6IHN0
YWNrZml4X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN5bWJv
bHNfcGF0aCI6IHN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFzYW4iOiBhc2FuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibGVha19yZXBvcnRfZmlsZSI6IGxlYWtfcmVwb3J0X2ZpbGV9CisgICAgICAgIHNlbGYub3V0
cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0geyJncm91cF9tZXRhZGF0YSI6IGdyb3VwX21ldGFk
YXRhfQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncy51cGRhdGUoYnJv
d3Nlcl9zZXR0aW5ncykKKworCiAKIGNsYXNzIE1hcmlvbmV0dGVDcmFzaHRlc3RFeGVjdXRvcihD
cmFzaHRlc3RFeGVjdXRvcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nl
ciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3JzZWxlbml1bS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5CmluZGV4
IGZmMjYzNTFmODRlZC4uOWQ2NzVjYjNlZjg3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jz
ZWxlbml1bS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQpAQCAtMSw0ICsxLDMg
QEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CiBpbXBvcnQganNvbgog
aW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0CkBAIC02LDcgKzUsNyBAQCBpbXBvcnQgdGhyZWFkaW5n
CiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHV1aWQKLWZyb20gc2l4Lm1v
dmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0
IHVybGpvaW4KIAogZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwKICAgICAgICAg
ICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCkBAIC0xOSwxMCArMTgsMTAgQEAgZnJvbSAucHJv
dG9jb2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBQ
cm90b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgIENsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAg
ICAgICAgICBDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTZW5k
S2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uU2VxdWVuY2VQ
cm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3REcml2ZXJQcm90b2NvbFBh
cnQpCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogCiBoZXJlID0gb3MucGF0aC5kaXJu
YW1lKF9fZmlsZV9fKQogCkBAIC0xODMsNiArMTgyLDE1IEBAIGNsYXNzIFNlbGVuaXVtQ2xpY2tQ
cm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4gZWxlbWVudC5j
bGljaygpCiAKIAorY2xhc3MgU2VsZW5pdW1Db29raWVzUHJvdG9jb2xQYXJ0KENvb2tpZXNQcm90
b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIg
PSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMoc2Vs
Zik6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAg
ICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmRlbGV0ZV9hbGxfY29va2llcygpCisKKwogY2xh
c3MgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAg
ICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50
LndlYmRyaXZlcgpAQCAtMjE5LDYgKzIyNyw3IEBAIGNsYXNzIFNlbGVuaXVtUHJvdG9jb2woUHJv
dG9jb2wpOgogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1UZXN0aGFybmVzc1Byb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAg
ICAgU2VsZW5pdW1Db29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgU2VsZW5p
dW1TZW5kS2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtVGVzdERy
aXZlclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQWN0aW9uU2VxdWVu
Y2VQcm90b2NvbFBhcnRdCkBAIC0yNjcsOCArMjc2LDkgQEAgY2xhc3MgU2VsZW5pdW1SdW4oVGlt
ZWRSdW5uZXIpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uu
c2V0X3RpbWVvdXQodGltZW91dCArIHNlbGYuZXh0cmFfdGltZW91dCkKICAgICAgICAgZXhjZXB0
IGV4Y2VwdGlvbnMuRXJyb3JJblJlc3BvbnNlRXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi5s
b2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVyIGNvbm5lY3Rpb24iKQotICAgICAgICAgICAgcmV0
dXJuIFN0b3AKKyAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIgor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgcmV0dXJuICgi
SU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICBkZWYgcnVuX2Z1bmMoc2VsZik6CiAgICAgICAg
IHRyeToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9yc2Vydm8ucHkKaW5kZXggZWZlOTNhYmM2OWM3Li5mMzIyNDIxYmQzZmEgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CkBA
IC0xLDQgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1w
b3J0IGJhc2U2NAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwpAQCAtNyw3ICs2LDYgQEAgaW1wb3J0
IHRlbXBmaWxlCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQgdXVp
ZAotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9zdHIsIGl0ZXJpdGVtcwogCiBmcm9tIG1venByb2Nl
c3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAKQEAgLTIzLDcgKzIxLDYgQEAgZnJvbSAuYmFzZSBp
bXBvcnQgKENvbm5lY3Rpb25sZXNzUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgV2RzcGVj
UHJvdG9jb2wpCiBmcm9tIC5wcm9jZXNzIGltcG9ydCBQcm9jZXNzVGVzdEV4ZWN1dG9yCiBmcm9t
IC4uYnJvd3NlcnMuYmFzZSBpbXBvcnQgYnJvd3Nlcl9jb21tYW5kCi1mcm9tIC4ucHJvY2VzcyBp
bXBvcnQgY2FzdF9lbnYKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTZXJ2b0RyaXZl
clNlcnZlcgogCiAKQEAgLTQ4LDcgKzQ1LDcgQEAgZGVmIGJ1aWxkX3NlcnZvX2NvbW1hbmQodGVz
dCwgdGVzdF91cmxfZnVuYywgYnJvd3NlciwgYmluYXJ5LCBwYXVzZV9hZnRlcl90ZXN0LAogICAg
ICAgICBhcmdzICs9IFsiLVoiLCBkZWJ1Z19vcHRzXQogICAgIGZvciBzdHlsZXNoZWV0IGluIGJy
b3dzZXIudXNlcl9zdHlsZXNoZWV0czoKICAgICAgICAgYXJncyArPSBbIi0tdXNlci1zdHlsZXNo
ZWV0Iiwgc3R5bGVzaGVldF0KLSAgICBmb3IgcHJlZiwgdmFsdWUgaW4gaXRlcml0ZW1zKHRlc3Qu
ZW52aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KSk6CisgICAgZm9yIHByZWYsIHZhbHVlIGluIHRl
c3QuZW52aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KS5pdGVtcygpOgogICAgICAgICBhcmdzICs9
IFsiLS1wcmVmIiwgIiVzPSVzIiAlIChwcmVmLCB2YWx1ZSldCiAgICAgaWYgYnJvd3Nlci5jYV9j
ZXJ0aWZpY2F0ZV9wYXRoOgogICAgICAgICBhcmdzICs9IFsiLS1jZXJ0aWZpY2F0ZS1wYXRoIiwg
YnJvd3Nlci5jYV9jZXJ0aWZpY2F0ZV9wYXRoXQpAQCAtMTAzLDExICsxMDAsMTEgQEAgY2xhc3Mg
U2Vydm9UZXN0aGFybmVzc0V4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgogICAgICAgICAg
ICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9W3NlbGYub25fb3V0
cHV0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmluaXNoPXNl
bGYub25fZmluaXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVPdXRw
dXQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5jb21tYW5kLCBlbnY9
Y2FzdF9lbnYoZW52KSkKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4o
c2VsZi5jb21tYW5kLCBlbnY9ZW52KQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHRpbWVv
dXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllcgpAQCAtMjM1LDcgKzIz
Miw3IEBAIGNsYXNzIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgog
ICAgICAgICAgICAgaWYgbm90IHNlbGYuaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPVtzZWxmLm9uX291dHB1
dF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWNhc3Rf
ZW52KGVudikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWVudikKIAogCiAgICAgICAgICAgICAgICAgdHJ5OgpAQCAtMjQ3LDcgKzI0NCw3IEBAIGNsYXNz
IFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgogICAgICAgICAgICAg
ICAgICAgICByYWlzZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBzZWxmLnBy
b2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKICAgICAgICAgICAgICAg
ICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHJ2ID0gc2VsZi5wcm9jLndhaXQoKQogICAgICAg
ICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKQEAgLTI2NCw3ICsyNjEsOSBAQCBj
bGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKICAgICAgICAg
ICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwgInJiIikgYXMgZjoKICAgICAgICAgICAgICAgICAj
IE1pZ2h0IG5lZWQgdG8gc3RyaXAgdmFyaWFibGUgaGVhZGVycyBvciBzb21ldGhpbmcgaGVyZQog
ICAgICAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQotICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlLCBbZW5zdXJlX3N0cihiYXNlNjQuYjY0ZW5jb2RlKGRhdGEpKV0KKyAgICAgICAgICAgICAg
ICAjIFJldHVybmluZyB0aGUgc2NyZWVuc2hvdCBhcyBhIHN0cmluZyBjb3VsZCBwb3RlbnRpYWxs
eSBiZSBhdm9pZGVkLAorICAgICAgICAgICAgICAgICMgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODkyOS4KKyAgICAgICAgICAgICAgICByZXR1
cm4gVHJ1ZSwgW2Jhc2U2NC5iNjRlbmNvZGUoZGF0YSkuZGVjb2RlKCldCiAKICAgICBkZWYgZG9f
dGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAgcmVzdWx0ID0gc2VsZi5pbXBsZW1lbnRhdGlvbi5y
dW5fdGVzdCh0ZXN0KQpAQCAtMzU3LDExICszNTYsMTEgQEAgY2xhc3MgU2Vydm9DcmFzaHRlc3RF
eGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKIAogICAgICAgICBpZiBub3Qgc2VsZi5pbnRl
cmFjdGl2ZToKICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKGNvbW1hbmQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZU91dHB1dD1GYWxzZSkKICAg
ICAgICAgICAgIHNlbGYucHJvYy5ydW4oKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2Vs
Zi5wcm9jID0gc3VicHJvY2Vzcy5Qb3Blbihjb21tYW5kLCBlbnY9Y2FzdF9lbnYoZW52KSkKKyAg
ICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwgZW52PWVudikK
IAogICAgICAgICBzZWxmLnByb2Mud2FpdCgpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cnNlcnZvZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKaW5kZXggMmNk
MWRiZjNhZDA2Li4wMzliY2QxNGUyYmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZv
ZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5CkBAIC0xMCw3ICsx
MCw2IEBAIGZyb20gLmJhc2UgaW1wb3J0IChQcm90b2NvbCwKICAgICAgICAgICAgICAgICAgICBU
ZXN0aGFybmVzc0V4ZWN1dG9yLAogICAgICAgICAgICAgICAgICAgIFRpbWVkUnVubmVyLAogICAg
ICAgICAgICAgICAgICAgIHN0cmlwX3NlcnZlcikKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBT
dG9wCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgd2FpdF9mb3Jfc2VydmljZQogCiB3
ZWJkcml2ZXIgPSBOb25lCkBAIC0xODQsOCArMTgzLDkgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJU
ZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgICAgICAgICAgICAg
IHNlbGYucHJvdG9jb2wuc2Vzc2lvbi50aW1lb3V0cy5zY3JpcHQgPSB0aW1lb3V0CiAgICAgICAg
ICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAogICAgICAgICAgICAgZXhjZXB0IElPRXJy
b3I6Ci0gICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3Qgd2ViZHJpdmVyIGNv
bm5lY3Rpb24iKQotICAgICAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgICAgICAgICAg
bXNnID0gIkxvc3QgV2ViRHJpdmVyIGNvbm5lY3Rpb24iCisgICAgICAgICAgICAgICAgc2VsZi5s
b2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9S
IiwgbXNnKQogCiAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBTZXJ2b1dlYkRyaXZlclJ1bihzZWxm
LmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
ZG9fdGVzdGhhcm5lc3MsCkBAIC0yNzYsOCArMjc2LDkgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJS
ZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICBzZWxmLnBy
b3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0ID0gdGltZW91dAogICAgICAgICAgICAgICAg
IHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9u
IikKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICAgICAgICAgIG1zZyA9ICJM
b3N0IHdlYmRyaXZlciBjb25uZWN0aW9uIgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVy
cm9yKG1zZykKKyAgICAgICAgICAgICAgICByZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIsIG1zZykK
IAogICAgICAgICByZXR1cm4gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5sb2dnZXIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zY3JlZW5zaG90LApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5
CmluZGV4IGJhZDVmZDA3MjIzNy4uNmQ1OTE2YTZhZmJjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3J3ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5CkBAIC0x
LDQgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKIGltcG9y
dCBqc29uCiBpbXBvcnQgb3MKIGltcG9ydCBzb2NrZXQKQEAgLTYsNyArNSw3IEBAIGltcG9ydCB0
aHJlYWRpbmcKIGltcG9ydCB0aW1lCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQgdXVpZAotZnJv
bSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCitmcm9tIHVybGxpYi5wYXJz
ZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC5iYXNlIGltcG9ydCAoQ2FsbGJhY2tIYW5kbGVyLAog
ICAgICAgICAgICAgICAgICAgIENyYXNodGVzdEV4ZWN1dG9yLApAQCAtMjAsMjIgKzE5LDIzIEBA
IGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJvdG9j
b2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAg
ICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlv
blNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJpdmVy
UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZVRlc3RSZXBvcnRQ
cm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNldFBlcm1pc3Npb25Qcm90b2Nv
bFBhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9j
b2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKKyAgICAgICAgICAgICAgICAg
ICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAg
ICAgICAgIERlYnVnUHJvdG9jb2xQYXJ0KQogCi1pbXBvcnQgd2ViZHJpdmVyIGFzIGNsaWVudAor
ZnJvbSB3ZWJkcml2ZXIuY2xpZW50IGltcG9ydCBTZXNzaW9uCiBmcm9tIHdlYmRyaXZlciBpbXBv
cnQgZXJyb3IKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAogCiBjbGFzcyBX
ZWJEcml2ZXJDYWxsYmFja0hhbmRsZXIoQ2FsbGJhY2tIYW5kbGVyKToKLSAgICB1bmltcGxlbWVu
dGVkX2V4YyA9IChOb3RJbXBsZW1lbnRlZEVycm9yLCBjbGllbnQuVW5rbm93bkNvbW1hbmRFeGNl
cHRpb24pCisgICAgdW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50ZWRFcnJvciwgZXJy
b3IuVW5rbm93bkNvbW1hbmRFeGNlcHRpb24pCiAKIAogY2xhc3MgV2ViRHJpdmVyQmFzZVByb3Rv
Y29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgV2ViRHJp
dmVyQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0X3RpbWVv
dXQoc2VsZiwgdGltZW91dCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYud2ViZHJp
dmVyLnRpbWVvdXRzLnNjcmlwdCA9IHRpbWVvdXQKLSAgICAgICAgZXhjZXB0IGNsaWVudC5XZWJE
cml2ZXJFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCBlcnJvci5XZWJEcml2ZXJFeGNlcHRpb246
CiAgICAgICAgICAgICAjIHdvcmthcm91bmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2No
cm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTIwNTcKICAgICAgICAgICAgIGJvZHkgPSB7InR5
cGUiOiAic2NyaXB0IiwgIm1zIjogdGltZW91dCAqIDEwMDB9CiAgICAgICAgICAgICBzZWxmLndl
YmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ0aW1lb3V0cyIsIGJvZHkpCkBA
IC03MSwxNiArNzEsMTYgQEAgY2xhc3MgV2ViRHJpdmVyQmFzZVByb3RvY29sUGFydChCYXNlUHJv
dG9jb2xQYXJ0KToKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIHRyeToKICAgICAg
ICAgICAgICAgICBzZWxmLndlYmRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgiIikKLSAgICAg
ICAgICAgIGV4Y2VwdCAoY2xpZW50LlRpbWVvdXRFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAg
ICAgIGNsaWVudC5TY3JpcHRUaW1lb3V0RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICBj
bGllbnQuSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uKToKKyAgICAgICAgICAgIGV4Y2VwdCAoZXJy
b3IuVGltZW91dEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IuU2NyaXB0VGlt
ZW91dEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IuSmF2YXNjcmlwdEVycm9y
RXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICAjIEEgSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9u
IHdpbGwgaGFwcGVuIHdoZW4gd2UgbmF2aWdhdGU7CiAgICAgICAgICAgICAgICAgIyBieSBpZ25v
cmluZyBpdCBpdCdzIHBvc3NpYmxlIHRvIHJlbG9hZCB0aGUgdGVzdCB3aGlsc3QgdGhlCiAgICAg
ICAgICAgICAgICAgIyBoYXJuZXNzIHJlbWFpbnMgcGF1c2VkCiAgICAgICAgICAgICAgICAgcGFz
cwogICAgICAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwKLSAgICAgICAgICAgICAgICAg
ICAgY2xpZW50Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgY2xp
ZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IuTm9T
dWNoV2luZG93RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICBlcnJvci5Vbmtub3duRXJy
b3JFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAgICAgIElPRXJyb3IpOgogICAgICAgICAgICAg
ICAgIGJyZWFrCiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgpAQCAtMTE2LDcgKzExNiw3
IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KFRlc3RoYXJuZXNzUHJv
dG9jb2xQYXJ0KToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLndlYmRy
aXZlci53aW5kb3dfaGFuZGxlID0gaGFuZGxlCiAgICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2
ZXIud2luZG93LmNsb3NlKCkKLSAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQuTm9TdWNoV2luZG93
RXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjZXB0IGVycm9yLk5vU3VjaFdpbmRvd0V4Y2VwdGlv
bjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYud2ViZHJpdmVyLndpbmRvd19o
YW5kbGUgPSBzZWxmLnJ1bm5lcl9oYW5kbGUKICAgICAgICAgcmV0dXJuIHNlbGYucnVubmVyX2hh
bmRsZQpAQCAtMTkwLDYgKzE5MCwxNSBAQCBjbGFzcyBXZWJEcml2ZXJDbGlja1Byb3RvY29sUGFy
dChDbGlja1Byb3RvY29sUGFydCk6CiAgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKIAog
CitjbGFzcyBXZWJEcml2ZXJDb29raWVzUHJvdG9jb2xQYXJ0KENvb2tpZXNQcm90b2NvbFBhcnQp
OgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBh
cmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMoc2VsZik6CisgICAg
ICAgIHNlbGYubG9nZ2VyLmluZm8oIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAgICAgcmV0
dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJERUxFVEUiLCAiY29va2ll
IikKKworCiBjbGFzcyBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3Rv
Y29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9
IHNlbGYucGFyZW50LndlYmRyaXZlcgpAQCAtMTk3LDcgKzIwNiw3IEBAIGNsYXNzIFdlYkRyaXZl
clNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2Vu
ZF9rZXlzKHNlbGYsIGVsZW1lbnQsIGtleXMpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBy
ZXR1cm4gZWxlbWVudC5zZW5kX2tleXMoa2V5cykKLSAgICAgICAgZXhjZXB0IGNsaWVudC5Vbmtu
b3duRXJyb3JFeGNlcHRpb24gYXMgZToKKyAgICAgICAgZXhjZXB0IGVycm9yLlVua25vd25FcnJv
ckV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGh0dHBzOi8vYnVncy5j
aHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xOTk5CiAgICAgICAg
ICAgICBpZiAoZS5odHRwX3N0YXR1cyAhPSA1MDAgb3IKICAgICAgICAgICAgICAgICBlLnN0YXR1
c19jb2RlICE9ICJ1bmtub3duIGVycm9yIik6CkBAIC0yMjcsOCArMjM2LDEyIEBAIGNsYXNzIFdl
YkRyaXZlclRlc3REcml2ZXJQcm90b2NvbFBhcnQoVGVzdERyaXZlclByb3RvY29sUGFydCk6CiAg
ICAgICAgICAgICBvYmpbIm1lc3NhZ2UiXSA9IHN0cihtZXNzYWdlKQogICAgICAgICBzZWxmLndl
YmRyaXZlci5leGVjdXRlX3NjcmlwdCgid2luZG93LnBvc3RNZXNzYWdlKCVzLCAnKicpIiAlIGpz
b24uZHVtcHMob2JqKSkKIAotICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGZyYW1lX251
bWJlcik6Ci0gICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9mcmFtZShmcmFtZV9udW1iZXIp
CisgICAgZGVmIF9zd2l0Y2hfdG9fZnJhbWUoc2VsZiwgaW5kZXhfb3JfZWxlbSk6CisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9mcmFtZShpbmRleF9vcl9l
bGVtKQorICAgICAgICBleGNlcHQgKGVycm9yLlN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlv
biwKKyAgICAgICAgICAgICAgICBlcnJvci5Ob1N1Y2hGcmFtZUV4Y2VwdGlvbikgYXMgZToKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IgZnJvbSBlCiAKICAgICBkZWYgX3N3aXRjaF90b19w
YXJlbnRfZnJhbWUoc2VsZik6CiAgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9mcmFtZSgi
cGFyZW50IikKQEAgLTI4MywxNyArMjk2LDI0IEBAIGNsYXNzIFdlYkRyaXZlclZpcnR1YWxBdXRo
ZW50aWNhdG9yUHJvdG9jb2xQYXJ0KFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0CiAg
ICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIs
ICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL3V2IiAlIGF1dGhlbnRpY2F0b3JfaWQsIHV2KQog
CiAKK2NsYXNzIFdlYkRyaXZlckRlYnVnUHJvdG9jb2xQYXJ0KERlYnVnUHJvdG9jb2xQYXJ0KToK
KyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcigpCisKKwogY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAgIGlt
cGxlbWVudHMgPSBbV2ViRHJpdmVyQmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAg
IFdlYkRyaXZlclRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2Vi
RHJpdmVyU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJD
bGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckNvb2tpZXNQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0
LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVGVzdERyaXZlclByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgIFdlYkRyaXZlckdlbmVyYXRlVGVzdFJlcG9ydFByb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCi0g
ICAgICAgICAgICAgICAgICBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFy
dF0KKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9j
b2xQYXJ0LAorICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyRGVidWdQcm90b2NvbFBhcnRdCiAK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcywg
Kiprd2FyZ3MpOgogICAgICAgICBzdXBlcihXZWJEcml2ZXJQcm90b2NvbCwgc2VsZikuX19pbml0
X18oZXhlY3V0b3IsIGJyb3dzZXIpCkBAIC0zMDgsNyArMzI4LDcgQEAgY2xhc3MgV2ViRHJpdmVy
UHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICBob3N0LCBwb3J0ID0gc2VsZi51cmwuc3BsaXQo
IjoiKVsxXS5zdHJpcCgiLyIpLCBzZWxmLnVybC5zcGxpdCgnOicpWy0xXS5zdHJpcCgiLyIpCiAK
ICAgICAgICAgY2FwYWJpbGl0aWVzID0geyJhbHdheXNNYXRjaCI6IHNlbGYuY2FwYWJpbGl0aWVz
fQotICAgICAgICBzZWxmLndlYmRyaXZlciA9IGNsaWVudC5TZXNzaW9uKGhvc3QsIHBvcnQsIGNh
cGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gU2Vzc2lv
bihob3N0LCBwb3J0LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQogICAgICAgICBzZWxmLndl
YmRyaXZlci5zdGFydCgpCiAKICAgICBkZWYgdGVhcmRvd24oc2VsZik6CkBAIC0zMzEsNyArMzUx
LDcgQEAgY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgIyA1
IHNlY29uZHMgb2YgZXh0cmFfdGltZW91dCB3ZSBoYXZlIGFzIG1heGltdW0gdG8gZW5kIHRoZSB0
ZXN0IGJlZm9yZQogICAgICAgICAgICAgIyB0aGUgZXh0ZXJuYWwgdGltZW91dCBmcm9tIHRlc3Ry
dW5uZXIgdHJpZ2dlcnMuCiAgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25f
Y29tbWFuZCgiR0VUIiwgIndpbmRvdyIsIHRpbWVvdXQ9MikKLSAgICAgICAgZXhjZXB0IChzb2Nr
ZXQudGltZW91dCwgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwgY2xpZW50LkludmFsaWRT
ZXNzaW9uSWRFeGNlcHRpb24pOgorICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBlcnJv
ci5Vbmtub3duRXJyb3JFeGNlcHRpb24sIGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb24p
OgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJldHVybiBUcnVlCiAKQEAgLTM0
MywxOSArMzYzLDIwIEBAIGNsYXNzIFdlYkRyaXZlclJ1bihUaW1lZFJ1bm5lcik6CiAgICAgZGVm
IHNldF90aW1lb3V0KHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnByb3Rv
Y29sLmJhc2Uuc2V0X3RpbWVvdXQoc2VsZi50aW1lb3V0ICsgc2VsZi5leHRyYV90aW1lb3V0KQot
ICAgICAgICBleGNlcHQgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbjoKLSAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIikKLSAgICAgICAg
ICAgIHJldHVybiBTdG9wCisgICAgICAgIGV4Y2VwdCBlcnJvci5Vbmtub3duRXJyb3JFeGNlcHRp
b246CisgICAgICAgICAgICBtc2cgPSAiTG9zdCBXZWJEcml2ZXIgY29ubmVjdGlvbiIKKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgIHJldHVybiAoIklOVEVS
TkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIHJ1bl9mdW5jKHNlbGYpOgogICAgICAgICB0cnk6
CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUsIHNlbGYuZnVuYyhzZWxmLnByb3RvY29s
LCBzZWxmLnVybCwgc2VsZi50aW1lb3V0KQotICAgICAgICBleGNlcHQgKGNsaWVudC5UaW1lb3V0
RXhjZXB0aW9uLCBjbGllbnQuU2NyaXB0VGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIGV4Y2Vw
dCAoZXJyb3IuVGltZW91dEV4Y2VwdGlvbiwgZXJyb3IuU2NyaXB0VGltZW91dEV4Y2VwdGlvbik6
CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBO
b25lKQotICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBjbGllbnQuVW5rbm93bkVycm9y
RXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgZXJyb3IuVW5rbm93
bkVycm9yRXhjZXB0aW9uKToKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JB
U0giLCBOb25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBp
ZiAoaXNpbnN0YW5jZShlLCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uKSBhbmQKKyAgICAgICAg
ICAgIGlmIChpc2luc3RhbmNlKGUsIGVycm9yLldlYkRyaXZlckV4Y2VwdGlvbikgYW5kCiAgICAg
ICAgICAgICAgICAgICAgIGUuaHR0cF9zdGF0dXMgPT0gNDA4IGFuZAogICAgICAgICAgICAgICAg
ICAgICBlLnN0YXR1c19jb2RlID09ICJhc3luY2hyb25vdXMgc2NyaXB0IHRpbWVvdXQiKToKICAg
ICAgICAgICAgICAgICAjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcv
cC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDAxCkBAIC00NDksNyArNDcwLDcgQEAg
Y2xhc3MgV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToK
ICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkgb3IgbGVuKHJlc3Vs
dCkgIT0gMjoKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIGlzX2Fs
aXZlID0gc2VsZi5pc19hbGl2ZSgpCi0gICAgICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5XZWJE
cml2ZXJFeGNlcHRpb246CisgICAgICAgICAgICAgICAgZXhjZXB0IGVycm9yLldlYkRyaXZlckV4
Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAgICAgaXNfYWxpdmUgPSBGYWxzZQogCiAgICAgICAg
ICAgICAgICAgaWYgbm90IGlzX2FsaXZlOgpAQCAtNDgzLDcgKzUwNCw3IEBAIGlmIChsb2NhdGlv
bi5ocmVmID09PSAiYWJvdXQ6YmxhbmsiKSB7CiB9IGVsc2UgewogICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIiwgKCkgPT4ge2lmIChkb2N1bWVudC5yZWFkeVN0
YXRlICE9PSAibG9hZGluZyIpIHtjYWxsYmFjayh0cnVlKX19KTsKIH0iIiIsIGFzeW5jaHJvbm91
cz1UcnVlKQotICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5KYXZhc2NyaXB0RXJyb3JFeGNlcHRp
b246CisgICAgICAgICAgICBleGNlcHQgZXJyb3IuSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uOgog
ICAgICAgICAgICAgICAgICMgV2UgY2FuIGdldCBhbiBlcnJvciBoZXJlIGlmIHRoZSBzY3JpcHQg
cnVucyBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuawogICAgICAgICAgICAgICAgICMgZG9jdW1l
bnQgYmVmb3JlIGl0IGhhcyBuYXZpZ2F0ZWQsIHdpdGggdGhlIGRyaXZlciByZXR1cm5pbmcgYW4g
ZXJyb3IKICAgICAgICAgICAgICAgICAjIGluZGljYXRpbmcgdGhhdCB0aGUgZG9jdW1lbnQgd2Fz
IHVubG9hZGVkCkBAIC00OTcsNyArNTE4LDcgQEAgY2xhc3MgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1
dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
cm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKICAgICAgICAgICAg
ICAgICAgc2NyZWVuc2hvdF9jYWNoZT1Ob25lLCBjbG9zZV9hZnRlcl9kb25lPVRydWUsCi0gICAg
ICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsICoqa3dhcmdz
KToKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwg
ZGVidWdfdGVzdD1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJXZWJEcml2ZXItYmFzZWQg
ZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCiAgICAgICAgIFJlZlRlc3RFeGVjdXRvci5fX2luaXRf
XyhzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLApAQCAtNTEy
LDYgKzUzMyw3IEBAIGNsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0
b3IpOgogICAgICAgICBzZWxmLmltcGxlbWVudGF0aW9uID0gUmVmVGVzdEltcGxlbWVudGF0aW9u
KHNlbGYpCiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3NlX2FmdGVyX2RvbmUK
ICAgICAgICAgc2VsZi5oYXNfd2luZG93ID0gRmFsc2UKKyAgICAgICAgc2VsZi5kZWJ1Z190ZXN0
ID0gZGVidWdfdGVzdAogCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRl
c3Qtd2FpdC5qcyIpKSBhcyBmOgogICAgICAgICAgICAgc2VsZi53YWl0X3NjcmlwdCA9IGYucmVh
ZCgpICUgeyJjbGFzc25hbWUiOiAicmVmdGVzdC13YWl0In0KQEAgLTUyOSwxMyArNTUxLDE2IEBA
IGNsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAg
ICApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLndp
bmRvdy5wb3NpdGlvbiA9ICgwLCAwKQotICAgICAgICBleGNlcHQgY2xpZW50LkludmFsaWRBcmd1
bWVudEV4Y2VwdGlvbjoKKyAgICAgICAgZXhjZXB0IGVycm9yLkludmFsaWRBcmd1bWVudEV4Y2Vw
dGlvbjoKICAgICAgICAgICAgICMgU2FmYXJpIDEyIHRocm93cyB3aXRoIDAgb3IgMSwgdHJlYXRp
bmcgdGhlbSBhcyBib29sczsgZml4ZWQgaW4gU1RQCiAgICAgICAgICAgICBzZWxmLnByb3RvY29s
LndlYmRyaXZlci53aW5kb3cucG9zaXRpb24gPSAoMiwgMikKICAgICAgICAgc2VsZi5wcm90b2Nv
bC53ZWJkcml2ZXIud2luZG93LnNpemUgPSAoODAwICsgd2lkdGhfb2Zmc2V0LCA2MDAgKyBoZWln
aHRfb2Zmc2V0KQogCiAgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rl
c3QodGVzdCkKIAorICAgICAgICBpZiBzZWxmLmRlYnVnX3Rlc3QgYW5kIHJlc3VsdFsic3RhdHVz
Il0gaW4gWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiXSBhbmQgImV4dHJhIiBpbiByZXN1bHQ6Cisg
ICAgICAgICAgICBzZWxmLnByb3RvY29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXplcih0ZXN0
LCByZXN1bHQpCisKICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVz
dWx0KQogCiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBp
LCBwYWdlX3Jhbmdlcyk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
cHJvdG9jb2wucHkKaW5kZXggYmQ3NjhiMTA3M2M3Li5mOTU0N2FkOTA0YmMgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9wcm90b2NvbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKQEAgLTEsNiArMSw3
IEBACiBpbXBvcnQgdHJhY2ViYWNrCiAKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFj
dG1ldGhvZAorZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBMaXN0LCBUeXBlCiAKIAogY2xh
c3MgUHJvdG9jb2wob2JqZWN0KToKQEAgLTE2LDcgKzE3LDcgQEAgY2xhc3MgUHJvdG9jb2wob2Jq
ZWN0KToKICAgICA6cGFyYW0gQnJvd3NlciBicm93c2VyOiBUaGUgQnJvd3NlciB1c2luZyB0aGlz
IHByb3RvY29sIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKIAotICAgIGltcGxlbWVu
dHMgPSBbXQorICAgIGltcGxlbWVudHMgPSBbXSAgIyB0eXBlOiBDbGFzc1ZhcltMaXN0W1R5cGVb
UHJvdG9jb2xQYXJ0XV1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dz
ZXIpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKQEAgLTgyLDcgKzgzLDcgQEAg
Y2xhc3MgUHJvdG9jb2xQYXJ0KG9iamVjdCk6CiAgICAgOnBhcmFtIFByb3RvY29sIHBhcmVudDog
VGhlIHBhcmVudCBwcm90b2NvbCIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCiAKLSAg
ICBuYW1lID0gTm9uZQorICAgIG5hbWUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW3N0cl0KIAog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgogICAgICAgICBzZWxmLnBhcmVudCA9IHBh
cmVudApAQCAtMjgxLDYgKzI4MiwxOCBAQCBjbGFzcyBDbGlja1Byb3RvY29sUGFydChQcm90b2Nv
bFBhcnQpOgogICAgICAgICBwYXNzCiAKIAorY2xhc3MgQ29va2llc1Byb3RvY29sUGFydChQcm90
b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9yIG1hbmFnaW5nIGNvb2tpZXMiIiIK
KyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJjb29raWVzIgorCisg
ICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGRlbGV0ZV9hbGxfY29va2llcyhzZWxmKToKKyAg
ICAgICAgIiIiRGVsZXRlIGFsbCBjb29raWVzLiIiIgorICAgICAgICBwYXNzCisKKwogY2xhc3Mg
U2VuZEtleXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAiIiJQcm90b2NvbCBwYXJ0
IGZvciBwZXJmb3JtaW5nIHRydXN0ZWQgY2xpY2tzIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFC
Q01ldGEKQEAgLTM1OCw0MyArMzcxLDcyIEBAIGNsYXNzIFRlc3REcml2ZXJQcm90b2NvbFBhcnQo
UHJvdG9jb2xQYXJ0KToKICAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiBBZGRpdGlvbmFsIGRh
dGEgdG8gYWRkIHRvIHRoZSBtZXNzYWdlLiIiIgogICAgICAgICBwYXNzCiAKLSAgICBkZWYgc3dp
dGNoX3RvX3dpbmRvdyhzZWxmLCB3cHRydW5uZXJfaWQpOgorICAgIGRlZiBzd2l0Y2hfdG9fd2lu
ZG93KHNlbGYsIHdwdHJ1bm5lcl9pZCwgaW5pdGlhbF93aW5kb3c9Tm9uZSk6CiAgICAgICAgICIi
IlN3aXRjaCB0byBhIHdpbmRvdyBnaXZlbiBhIHdwdHJ1bm5lciB3aW5kb3cgaWQKIAotICAgICAg
ICA6cGFyYW0gc3RyIHdwdHJ1bm5lcl9pZDogd2luZG93IGlkIiIiCisgICAgICAgIDpwYXJhbSBz
dHIgd3B0cnVubmVyX2lkOiBUZXN0ZHJpdmVyLXNwZWNpZmljIGlkIGZvciB0aGUgdGFyZ2V0IHdp
bmRvdworICAgICAgICA6cGFyYW0gc3RyIGluaXRpYWxfd2luZG93OiBXZWJEcml2ZXIgd2luZG93
IGlkIGZvciB0aGUgdGVzdCB3aW5kb3ciIiIKICAgICAgICAgaWYgd3B0cnVubmVyX2lkIGlzIE5v
bmU6CiAgICAgICAgICAgICByZXR1cm4KIAorICAgICAgICBpZiBpbml0aWFsX3dpbmRvdyBpcyBO
b25lOgorICAgICAgICAgICAgaW5pdGlhbF93aW5kb3cgPSBzZWxmLnBhcmVudC5iYXNlLmN1cnJl
bnRfd2luZG93CisKICAgICAgICAgc3RhY2sgPSBbc3RyKGl0ZW0pIGZvciBpdGVtIGluIHNlbGYu
cGFyZW50LmJhc2Uud2luZG93X2hhbmRsZXMoKV0KKyAgICAgICAgZmlyc3QgPSBUcnVlCiAgICAg
ICAgIHdoaWxlIHN0YWNrOgogICAgICAgICAgICAgaXRlbSA9IHN0YWNrLnBvcCgpCisKICAgICAg
ICAgICAgIGlmIGl0ZW0gaXMgTm9uZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZmlyc3QgaXMg
RmFsc2UKICAgICAgICAgICAgICAgICBzZWxmLl9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKCkKICAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGl0ZW0s
IHN0cik6Ci0gICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5zZXRfd2luZG93KGl0ZW0p
CisKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgc3RyKToKKyAgICAgICAgICAgICAg
ICBpZiBub3QgZmlyc3Qgb3IgaXRlbSAhPSBpbml0aWFsX3dpbmRvdzoKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5wYXJlbnQuYmFzZS5zZXRfd2luZG93KGl0ZW0pCisgICAgICAgICAgICAgICAg
Zmlyc3QgPSBGYWxzZQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9z
d2l0Y2hfdG9fZnJhbWUoaXRlbSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgZmlyc3QgaXMgRmFs
c2UKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3N3aXRj
aF90b19mcmFtZShpdGVtKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAg
ICAgICAgICAgICAgICAgICAjIFRoZSBmcmFtZSBubyBsb25nZXIgZXhpc3RzLCBvciBkb2Vzbid0
IGhhdmUgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCwgc28gY29udGludWUKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhh
bmRsZV93aW5kb3dfaWQgPSBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4g
d2luZG93Ll9fd3B0cnVubmVyX2lkIikKLSAgICAgICAgICAgICAgICBpZiBzdHIoaGFuZGxlX3dp
bmRvd19pZCkgPT0gd3B0cnVubmVyX2lkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAg
ICAgICAgICAgICAgICAjIEdldCB0aGUgd2luZG93IGlkIGFuZCBhIGxpc3Qgb2YgZWxlbWVudHMg
Y29udGFpbmluZyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMuCisgICAgICAgICAgICAgICAgIyBG
b3IgZW1iZWQgd2UgY2FuJ3QgdGVsbCBmcHIgc3VyZSBpZiB0aGVyZSdzIGEgbmVzdGVkIGJyb3dz
aW5nIGNvbnRleHQsIHNvIGFsd2F5cyByZXR1cm4gaXQKKyAgICAgICAgICAgICAgICAjIGFuZCBm
YWlsIGxhdGVyIGlmIHRoZXJlIGlzbid0CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5w
YXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgiIiIKKyAgICAgICAgICAgICAgICBsZXQgY29udGV4
dFBhcmVudHMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImZyYW1lLCBp
ZnJhbWUsIGVtYmVkLCBvYmplY3QiKSkKKyAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihlbGVt
ID0+IGVsZW0ubG9jYWxOYW1lICE9PSAiZW1iZWQiID8gKGVsZW0uY29udGVudFdpbmRvdyAhPT0g
bnVsbCkgOiB0cnVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gW3dpbmRvdy5fX3dwdHJ1bm5l
cl9pZCwgY29udGV4dFBhcmVudHNdIiIiKQogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
LSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBmcmFtZV9jb3VudCA9IHNlbGYucGFy
ZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3cubGVuZ3RoIikKLSAgICAgICAg
ICAgICMgTm9uZSBoZXJlIG1ha2VzIHVzIHN3aXRjaCBiYWNrIHRvIHRoZSBwYXJlbnQgYWZ0ZXIg
d2UndmUgcHJvY2Vzc2VkIGFsbCB0aGUgc3ViZnJhbWVzCi0gICAgICAgICAgICBzdGFjay5hcHBl
bmQoTm9uZSkKLSAgICAgICAgICAgIGlmIGZyYW1lX2NvdW50OgotICAgICAgICAgICAgICAgIHN0
YWNrLmV4dGVuZChyZXZlcnNlZChyYW5nZSgwLCBmcmFtZV9jb3VudCkpKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIHJlc3VsdCBpcyBOb25lOgorICAgICAgICAg
ICAgICAgICMgV2l0aCBtYXJpb25ldHRlIGF0IGxlYXN0IHRoaXMgaXMgcG9zc2libGUgaWYgdGhl
IGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVkLiBOb3QgcXVpdGUKKyAgICAgICAgICAgICAgICAjIHN1
cmUgaG93IHdlIHdhbnQgdG8gaGFuZGxlIHRoYXQgY2FzZS4KKyAgICAgICAgICAgICAgICBjb250
aW51ZQorCisgICAgICAgICAgICBoYW5kbGVfd2luZG93X2lkLCBuZXN0ZWRfY29udGV4dF9jb250
YWluZXJzID0gcmVzdWx0CisKKyAgICAgICAgICAgIGlmIGhhbmRsZV93aW5kb3dfaWQgYW5kIHN0
cihoYW5kbGVfd2luZG93X2lkKSA9PSB3cHRydW5uZXJfaWQ6CisgICAgICAgICAgICAgICAgcmV0
dXJuCisKKyAgICAgICAgICAgIGZvciBlbGVtIGluIHJldmVyc2VkKG5lc3RlZF9jb250ZXh0X2Nv
bnRhaW5lcnMpOgorICAgICAgICAgICAgICAgICMgTm9uZSBoZXJlIG1ha2VzIHVzIHN3aXRjaCBi
YWNrIHRvIHRoZSBwYXJlbnQgYWZ0ZXIgd2UndmUgcHJvY2Vzc2VkIHRoZSBmcmFtZQorICAgICAg
ICAgICAgICAgIHN0YWNrLmFwcGVuZChOb25lKQorICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVu
ZChlbGVtKQogCiAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiV2luZG93IHdpdGggaWQgJXMgbm90
IGZvdW5kIiAlIHdwdHJ1bm5lcl9pZCkKIAogICAgIEBhYnN0cmFjdG1ldGhvZAotICAgIGRlZiBf
c3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGluZGV4KToKKyAgICBkZWYgX3N3aXRjaF90b19mcmFtZShz
ZWxmLCBpbmRleF9vcl9lbGVtKToKICAgICAgICAgIiIiU3dpdGNoIHRvIGEgZnJhbWUgaW4gdGhl
IGN1cnJlbnQgd2luZG93CiAKLSAgICAgICAgOnBhcmFtIGludCBpbmRleDogRnJhbWUgaWQiIiIK
KyAgICAgICAgOnBhcmFtIGludCBpbmRleF9vcl9lbGVtOiBGcmFtZSBpZCBvciBjb250YWluZXIg
ZWxlbWVudCIiIgogICAgICAgICBwYXNzCiAKICAgICBAYWJzdHJhY3RtZXRob2QKQEAgLTUwMywz
ICs1NDUsMzIgQEAgY2xhc3MgUHJpbnRQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICBk
ZWYgcmVuZGVyX2FzX3BkZihzZWxmLCB3aWR0aCwgaGVpZ2h0KToKICAgICAgICAgIiIiT3V0cHV0
IGRvY3VtZW50IGFzIFBERiIiIgogICAgICAgICBwYXNzCisKKworY2xhc3MgRGVidWdQcm90b2Nv
bFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBkZWJ1Z2dpbmcg
dGVzdCBmYWlsdXJlcy4iIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgbmFt
ZSA9ICJkZWJ1ZyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBsb2FkX2RldnRvb2xz
KHNlbGYpOgorICAgICAgICAiIiJMb2FkIGRldnRvb2xzIGluIHRoZSBjdXJyZW50IHdpbmRvdyIi
IgorICAgICAgICBwYXNzCisKKyAgICBkZWYgbG9hZF9yZWZ0ZXN0X2FuYWx5emVyKHNlbGYsIHRl
c3QsIHJlc3VsdCk6CisgICAgICAgIGltcG9ydCBpbworICAgICAgICBpbXBvcnQgbW96bG9nCisg
ICAgICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCBxdW90ZSwgdXJsam9pbgorCisgICAgICAg
IGRlYnVnX3Rlc3RfbG9nZ2VyID0gbW96bG9nLnN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dl
cigiZGVidWdfdGVzdCIpCisgICAgICAgIG91dHB1dCA9IGlvLlN0cmluZ0lPKCkKKyAgICAgICAg
ZGVidWdfdGVzdF9sb2dnZXIuc3VpdGVfc3RhcnQoW10pCisgICAgICAgIGRlYnVnX3Rlc3RfbG9n
Z2VyLmFkZF9oYW5kbGVyKG1vemxvZy5oYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgZm9y
bWF0dGVyPW1vemxvZy5mb3JtYXR0ZXJzLlRicGxGb3JtYXR0ZXIoKSkpCisgICAgICAgIGRlYnVn
X3Rlc3RfbG9nZ2VyLnRlc3Rfc3RhcnQodGVzdC5pZCkKKyAgICAgICAgIyBBbHdheXMgdXNlIFBB
U1MgYXMgdGhlIGV4cGVjdGVkIHZhbHVlIHNvIHdlIGdldCBvdXRwdXQgZXZlbiBmb3IgZXhwZWN0
ZWQgZmFpbHVyZXMKKyAgICAgICAgZGVidWdfdGVzdF9sb2dnZXIudGVzdF9lbmQodGVzdC5pZCwg
cmVzdWx0WyJzdGF0dXMiXSwgIlBBU1MiLCBleHRyYT1yZXN1bHQuZ2V0KCJleHRyYSIpKQorCisg
ICAgICAgIHNlbGYucGFyZW50LmJhc2UubG9hZCh1cmxqb2luKHNlbGYucGFyZW50LmV4ZWN1dG9y
LnNlcnZlcl91cmwoImh0dHBzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL2Nv
bW1vbi90aGlyZF9wYXJ0eS9yZWZ0ZXN0LWFuYWx5emVyLnhodG1sI2xvZz0lcyIgJQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlKG91dHB1dC5nZXR2YWx1ZSgpKSkpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRlc3RydW5u
ZXIvcnVubmVyLnB5CmluZGV4IDNkMzI5MTc2NTliMy4uNTA4MTlhOTM1ODk5IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVy
L3J1bm5lci5weQpAQCAtMjQsNyArMjQsNyBAQCBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6CiAg
ICAgaW1wb3J0IHB5dGVzdAogCiAKLWRlZiBydW4ocGF0aCwgc2VydmVyX2NvbmZpZywgc2Vzc2lv
bl9jb25maWcsIHRpbWVvdXQ9MCk6CitkZWYgcnVuKHBhdGgsIHNlcnZlcl9jb25maWcsIHNlc3Np
b25fY29uZmlnLCB0aW1lb3V0PTAsIGVudmlyb249Tm9uZSk6CiAgICAgIiIiCiAgICAgUnVuIFB5
dGhvbiB0ZXN0IGF0IGBgcGF0aGBgIGluIHB5dGVzdC4gIFRoZSBwcm92aWRlZCBgYHNlc3Npb25g
YAogICAgIGlzIGV4cG9zZWQgYXMgYSBmaXh0dXJlIGF2YWlsYWJsZSBpbiB0aGUgc2NvcGUgb2Yg
dGhlIHRlc3QgZnVuY3Rpb25zLgpAQCAtNDEsMjggKzQxLDQwIEBAIGRlZiBydW4ocGF0aCwgc2Vy
dmVyX2NvbmZpZywgc2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCk6CiAgICAgaWYgcHl0ZXN0IGlz
IE5vbmU6CiAgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCiAKLSAgICBvcy5lbnZpcm9uWyJX
RF9IT1NUIl0gPSBzZXNzaW9uX2NvbmZpZ1siaG9zdCJdCi0gICAgb3MuZW52aXJvblsiV0RfUE9S
VCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCi0gICAgb3MuZW52aXJvblsiV0RfQ0FQ
QUJJTElUSUVTIl0gPSBqc29uLmR1bXBzKHNlc3Npb25fY29uZmlnWyJjYXBhYmlsaXRpZXMiXSkK
LSAgICBvcy5lbnZpcm9uWyJXRF9TRVJWRVJfQ09ORklHIl0gPSBqc29uLmR1bXBzKHNlcnZlcl9j
b25maWcuYXNfZGljdF9mb3Jfd2RfZW52X3ZhcmlhYmxlKCkpCi0KLSAgICBoYXJuZXNzID0gSGFy
bmVzc1Jlc3VsdFJlY29yZGVyKCkKLSAgICBzdWJ0ZXN0cyA9IFN1YnRlc3RSZXN1bHRSZWNvcmRl
cigpCi0KLSAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBweXRlc3QubWFpbihbIi0tc3RyaWN0IiwgICMgdHVybiB3YXJuaW5n
cyBpbnRvIGVycm9ycwotICAgICAgICAgICAgICAgICAgICAgICAgICItdnYiLCAgIyBzaG93IGVh
Y2ggaW5kaXZpZHVhbCBzdWJ0ZXN0IGFuZCBmdWxsIGZhaWx1cmUgbG9ncwotICAgICAgICAgICAg
ICAgICAgICAgICAgICItLWNhcHR1cmUiLCAibm8iLCAgIyBlbmFibGUgc3Rkb3V0L3N0ZGVyciBm
cm9tIHRlc3RzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmFzZXRlbXAiLCBjYWNoZSwg
ICMgdGVtcG9yYXJ5IGRpcmVjdG9yeQotICAgICAgICAgICAgICAgICAgICAgICAgICItLXNob3ds
b2NhbHMiLCAgIyBkaXNwbGF5IGNvbnRlbnRzIG9mIHZhcmlhYmxlcyBpbiBsb2NhbCBzY29wZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICItcCIsICJubzptb3psb2ciLCAgIyB1c2UgdGhlIFdQ
VCByZXN1bHQgcmVjb3JkZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAibm86Y2Fj
aGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUgcHJlc2VydmF0aW9uIGFjcm9zcyBpbnZvY2F0
aW9ucwotICAgICAgICAgICAgICAgICAgICAgICAgICItbz1jb25zb2xlX291dHB1dF9zdHlsZT1j
bGFzc2ljIiwgICMgZGlzYWJsZSB0ZXN0IHByb2dyZXNzIGJhcgotICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhdGhdLAotICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucz1baGFybmVzcywg
c3VidGVzdHNdKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBo
YXJuZXNzLm91dGNvbWUgPSAoIklOVEVSTkFMLUVSUk9SIiwgc3RyKGUpKQorICAgIG9sZF9lbnZp
cm9uID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICB0cnk6CisgICAgICAgIHdpdGggVGVtcG9yYXJ5
RGlyZWN0b3J5KCkgYXMgY2FjaGU6CisgICAgICAgICAgICBvcy5lbnZpcm9uWyJXRF9IT1NUIl0g
PSBzZXNzaW9uX2NvbmZpZ1siaG9zdCJdCisgICAgICAgICAgICBvcy5lbnZpcm9uWyJXRF9QT1JU
Il0gPSBzdHIoc2Vzc2lvbl9jb25maWdbInBvcnQiXSkKKyAgICAgICAgICAgIG9zLmVudmlyb25b
IldEX0NBUEFCSUxJVElFUyJdID0ganNvbi5kdW1wcyhzZXNzaW9uX2NvbmZpZ1siY2FwYWJpbGl0
aWVzIl0pCisKKyAgICAgICAgICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5qb2luKGNhY2hlLCAi
d2Rfc2VydmVyX2NvbmZpZy5qc29uIikKKyAgICAgICAgICAgIG9zLmVudmlyb25bIldEX1NFUlZF
Ul9DT05GSUdfRklMRSJdID0gY29uZmlnX3BhdGgKKyAgICAgICAgICAgIHdpdGggb3Blbihjb25m
aWdfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGpzb24uZHVtcChzZXJ2ZXJfY29u
ZmlnLmFzX2RpY3QoKSwgZikKKworICAgICAgICAgICAgaWYgZW52aXJvbjoKKyAgICAgICAgICAg
ICAgICBvcy5lbnZpcm9uLnVwZGF0ZShlbnZpcm9uKQorCisgICAgICAgICAgICBoYXJuZXNzID0g
SGFybmVzc1Jlc3VsdFJlY29yZGVyKCkKKyAgICAgICAgICAgIHN1YnRlc3RzID0gU3VidGVzdFJl
c3VsdFJlY29yZGVyKCkKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHB5dGVz
dC5tYWluKFsiLS1zdHJpY3QiLCAgIyB0dXJuIHdhcm5pbmdzIGludG8gZXJyb3JzCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItdnYiLCAgIyBzaG93IGVhY2ggaW5kaXZpZHVhbCBzdWJ0
ZXN0IGFuZCBmdWxsIGZhaWx1cmUgbG9ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
LS1jYXB0dXJlIiwgIm5vIiwgICMgZW5hYmxlIHN0ZG91dC9zdGRlcnIgZnJvbSB0ZXN0cworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1iYXNldGVtcCIsIGNhY2hlLCAgIyB0ZW1wb3Jh
cnkgZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLXNob3dsb2NhbHMi
LCAgIyBkaXNwbGF5IGNvbnRlbnRzIG9mIHZhcmlhYmxlcyBpbiBsb2NhbCBzY29wZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAibm86bW96bG9nIiwgICMgdXNlIHRoZSBXUFQg
cmVzdWx0IHJlY29yZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItcCIsICJubzpj
YWNoZXByb3ZpZGVyIiwgICMgZGlzYWJsZSBzdGF0ZSBwcmVzZXJ2YXRpb24gYWNyb3NzIGludm9j
YXRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbz1jb25zb2xlX291dHB1dF9z
dHlsZT1jbGFzc2ljIiwgICMgZGlzYWJsZSB0ZXN0IHByb2dyZXNzIGJhcgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVn
aW5zPVtoYXJuZXNzLCBzdWJ0ZXN0c10pCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz
IGU6CisgICAgICAgICAgICAgICAgaGFybmVzcy5vdXRjb21lID0gKCJJTlRFUk5BTC1FUlJPUiIs
IHN0cihlKSkKKworICAgIGZpbmFsbHk6CisgICAgICAgIG9zLmVudmlyb24gPSBvbGRfZW52aXJv
bgogCiAgICAgcmV0dXJuIChoYXJuZXNzLm91dGNvbWUsIHN1YnRlc3RzLnJlc3VsdHMpCiAKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2ZvbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9mb250LnB5CmluZGV4IDkxMDM1OGY1MTU5Ni4uMzllMjQ4YjI1MWIwIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb250LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKQEAgLTc3LDEzICs3NywxNSBAQCBjbGFzcyBGb250
SW5zdGFsbGVyKG9iamVjdCk6CiAKICAgICAgICAgIyBQZXIgaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXN1bHRzLWNvbGxlY3Rpb24vaXNzdWVzLzIxOAogICAgICAgICAj
IGluc3RhbGxpbmcgQWhlbSBvbiBtYWNPUyBpcyBmbGFreSwgc28gY2hlY2sgaWYgaXQgYWN0dWFs
bHkgaW5zdGFsbGVkCi0gICAgICAgIGZvbnRzID0gY2hlY2tfb3V0cHV0KFsnL3Vzci9zYmluL3N5
c3RlbV9wcm9maWxlcicsICcteG1sJywgJ1NQRm9udHNEYXRhVHlwZSddKQorICAgICAgICB3aXRo
IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBmOgorICAgICAgICAgICAgZm9udHMgPSBjaGVja19v
dXRwdXQoWycvdXNyL3NiaW4vc3lzdGVtX3Byb2ZpbGVyJywgJy14bWwnLCAnU1BGb250c0RhdGFU
eXBlJ10sIHN0ZGVycj1mKQorCiAgICAgICAgIHRyeToKICAgICAgICAgICAgICMgaWYgcHkzCi0g
ICAgICAgICAgICByZWFkUGxpc3RGcm9tQnl0ZXMgPSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tQnl0
ZXMKKyAgICAgICAgICAgIGxvYWRfcGxpc3QgPSBwbGlzdGxpYi5sb2FkcwogICAgICAgICBleGNl
cHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICByZWFkUGxpc3RGcm9tQnl0ZXMgPSBwbGlz
dGxpYi5yZWFkUGxpc3RGcm9tU3RyaW5nCi0gICAgICAgIGZvbnRzID0gcmVhZFBsaXN0RnJvbUJ5
dGVzKGZvbnRzKQorICAgICAgICAgICAgbG9hZF9wbGlzdCA9IHBsaXN0bGliLnJlYWRQbGlzdEZy
b21TdHJpbmcKKyAgICAgICAgZm9udHMgPSBsb2FkX3BsaXN0KGZvbnRzKQogICAgICAgICBhc3Nl
cnQgbGVuKGZvbnRzKSA9PSAxCiAgICAgICAgIGZvciBmb250IGluIGZvbnRzWzBdWydfaXRlbXMn
XToKICAgICAgICAgICAgIGlmIGZvbnRbJ3BhdGgnXSA9PSBpbnN0YWxsZWRfZm9udF9wYXRoOgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZm9ybWF0dGVycy90ZXN0cy9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvX19p
bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNjlkZTI5
YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2luc3RydW1lbnRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvaW5zdHJ1bWVudHMucHkKaW5kZXggYTg4N2Nm
NGZkYTcyLi40ZTNlMDEzYWVjNDMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1lbnRzLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1l
bnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogaW1wb3J0IHRpbWUKIGltcG9ydCB0aHJlYWRpbmcKLWZy
b20gc2l4Lm1vdmVzLnF1ZXVlIGltcG9ydCBRdWV1ZQorZnJvbSBxdWV1ZSBpbXBvcnQgUXVldWUK
IAogIiIiSW5zdHJ1bWVudGF0aW9uIGZvciBtZWFzdXJpbmcgaGlnaC1sZXZlbCB0aW1lIHNwZW50
IG9uIHZhcmlvdXMgdGFza3MgaW5zaWRlIHRoZSBydW5uZXIuCiAKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0
ZXhwZWN0ZWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CmluZGV4IDMxYzU3ZTljYjczNC4uMWNkMDM1
YTNiMjQzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQu
cHkKQEAgLTEsOCArMSw2IEBACiBpbXBvcnQgb3MKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRl
cXVlCi1mcm9tIHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzLCB0ZXh0X3R5cGUKLWZyb20gc2l4Lm1v
dmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgotCitmcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsam9pbgogCiBmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgc3RhdGljCiBm
cm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcy5iYXNlIGltcG9ydCBNYW5pZmVzdEl0ZW0KQEAgLTQ5
LDcgKzQ3LDcgQEAgZGVmIGxpc3RfcHJvcChuYW1lLCBub2RlKToKICAgICAiIiJMaXN0IHByb3Bl
cnR5IiIiCiAgICAgdHJ5OgogICAgICAgICBsaXN0X3Byb3AgPSBub2RlLmdldChuYW1lKQotICAg
ICAgICBpZiBpc2luc3RhbmNlKGxpc3RfcHJvcCwgc3RyaW5nX3R5cGVzKToKKyAgICAgICAgaWYg
aXNpbnN0YW5jZShsaXN0X3Byb3AsIHN0cik6CiAgICAgICAgICAgICByZXR1cm4gW2xpc3RfcHJv
cF0KICAgICAgICAgcmV0dXJuIGxpc3QobGlzdF9wcm9wKQogICAgIGV4Y2VwdCBLZXlFcnJvcjoK
QEAgLTU5LDcgKzU3LDcgQEAgZGVmIGxpc3RfcHJvcChuYW1lLCBub2RlKToKIGRlZiBzdHJfcHJv
cChuYW1lLCBub2RlKToKICAgICB0cnk6CiAgICAgICAgIHByb3AgPSBub2RlLmdldChuYW1lKQot
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwcm9wLCBzdHJpbmdfdHlwZXMpOgorICAgICAgICBp
ZiBub3QgaXNpbnN0YW5jZShwcm9wLCBzdHIpOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cgogICAgICAgICByZXR1cm4gcHJvcAogICAgIGV4Y2VwdCBLZXlFcnJvcjoKQEAgLTcwLDcgKzY4
LDcgQEAgZGVmIHRhZ3Mobm9kZSk6CiAgICAgIiIiU2V0IG9mIHRhZ3MgdGhhdCBoYXZlIGJlZW4g
YXBwbGllZCB0byB0aGUgdGVzdCIiIgogICAgIHRyeToKICAgICAgICAgdmFsdWUgPSBub2RlLmdl
dCgidGFncyIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSk6CisgICAg
ICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CiAgICAgICAgICAgICByZXR1cm4ge3ZhbHVl
fQogICAgICAgICByZXR1cm4gc2V0KHZhbHVlKQogICAgIGV4Y2VwdCBLZXlFcnJvcjoKQEAgLTc5
LDcgKzc3LDcgQEAgZGVmIHRhZ3Mobm9kZSk6CiAKIGRlZiBwcmVmcyhub2RlKToKICAgICBkZWYg
dmFsdWUoaW5pX3ZhbHVlKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShpbmlfdmFsdWUsIHRleHRf
dHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoaW5pX3ZhbHVlLCBzdHIpOgogICAgICAgICAg
ICAgcmV0dXJuIHR1cGxlKHByZWZfcGllY2Uuc3RyaXAoKSBmb3IgcHJlZl9waWVjZSBpbiBpbmlf
dmFsdWUuc3BsaXQoJzonLCAxKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgdGhpcyBz
aG91bGQgYmUgdGhpbmdzIGxpa2UgQFJlc2V0LCB3aGljaCBhcmUgYXBwYXJlbnRseSB0eXBlICdv
YmplY3QnCkBAIC04Nyw3ICs4NSw3IEBAIGRlZiBwcmVmcyhub2RlKToKIAogICAgIHRyeToKICAg
ICAgICAgbm9kZV9wcmVmcyA9IG5vZGUuZ2V0KCJwcmVmcyIpCi0gICAgICAgIGlmIGlzaW5zdGFu
Y2Uobm9kZV9wcmVmcywgdGV4dF90eXBlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX3By
ZWZzLCBzdHIpOgogICAgICAgICAgICAgcnYgPSBkaWN0KHZhbHVlKG5vZGVfcHJlZnMpKQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgcnYgPSBkaWN0KHZhbHVlKGl0ZW0pIGZvciBpdGVtIGlu
IG5vZGVfcHJlZnMpCkBAIC05OSw3ICs5Nyw3IEBAIGRlZiBwcmVmcyhub2RlKToKIGRlZiBzZXRf
cHJvcChuYW1lLCBub2RlKToKICAgICB0cnk6CiAgICAgICAgIG5vZGVfaXRlbXMgPSBub2RlLmdl
dChuYW1lKQotICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHRleHRfdHlwZSk6Cisg
ICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9pdGVtcywgc3RyKToKICAgICAgICAgICAgIHJ2ID0g
e25vZGVfaXRlbXN9CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydiA9IHNldChub2RlX2l0
ZW1zKQpAQCAtMTEyLDcgKzExMCw3IEBAIGRlZiBsZWFrX3RocmVzaG9sZChub2RlKToKICAgICBy
diA9IHt9CiAgICAgdHJ5OgogICAgICAgICBub2RlX2l0ZW1zID0gbm9kZS5nZXQoImxlYWstdGhy
ZXNob2xkIikKLSAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1zLCB0ZXh0X3R5cGUpOgor
ICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHN0cik6CiAgICAgICAgICAgICBub2Rl
X2l0ZW1zID0gW25vZGVfaXRlbXNdCiAgICAgICAgIGZvciBpdGVtIGluIG5vZGVfaXRlbXM6CiAg
ICAgICAgICAgICBwcm9jZXNzLCB2YWx1ZSA9IGl0ZW0ucnNwbGl0KCI6IiwgMSkKQEAgLTE0MCw3
ICsxMzgsNyBAQCBkZWYgZnV6enlfcHJvcChub2RlKToKICAgICAgIG1heERpZmZlcmVuY2VzPTEw
O3RvdGFsUGl4ZWxzPTEwLTIwCiAKICAgICAgIHNwZWNpZmllcyB0aGF0IGZvciBhbnkgdGVzdC9y
ZWYgcGFpciBmb3Igd2hpY2ggbm8gb3RoZXIgcnVsZSBpcyBzdXBwbGllZCwKLSAgICAgIHRoZXJl
IG11c3QgYmUgYSBtYXhpbXVtIHBpeGVsIGRpZmZlcmVuY2Ugb2YgZXhhY3RseSAxMCwgYW5kIGJl
dHdlbiAxMCBhbmQKKyAgICAgIHRoZXJlIG11c3QgYmUgYSBtYXhpbXVtIHBpeGVsIGRpZmZlcmVu
Y2Ugb2YgZXhhY3RseSAxMCwgYW5kIGJldHdlZW4gMTAgYW5kCiAgICAgICAyMCB0b3RhbCBwaXhl
bHMgZGlmZmVyZW50LgogCiAgICAgICB0ZXN0Lmh0bWw9PXJlZi5odG06MTA7MjAKQEAgLTE2OSw3
ICsxNjcsNyBAQCBkZWYgZnV6enlfcHJvcChub2RlKToKICAgICBpZiBub3QgaXNpbnN0YW5jZSh2
YWx1ZSwgbGlzdCk6CiAgICAgICAgIHZhbHVlID0gW3ZhbHVlXQogICAgIGZvciBpdGVtIGluIHZh
bHVlOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCB0ZXh0X3R5cGUpOgorICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgogICAgICAgICAgICAgcnYuYXBwZW5kKGl0
ZW0pCiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBwYXJ0cyA9IGl0ZW0ucnNwbGl0KCI6
IiwgMSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weQppbmRl
eCA3OWI1YjE5YjNhM2YuLjk3MzQ4ZTZkNTJmOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL21hbmlmZXN0aW5jbHVkZS5weQpAQCAtNiw4ICs2LDcgQEAgYmUgaW5jbHVkZWQgb3IgZXhj
bHVkZWQuCiAiIiIKIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKLWZyb20gc2l4IGltcG9ydCBpdGVy
aXRlbXMKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UsIHVybHNw
bGl0Citmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UsIHVybHNwbGl0CiAKIGZyb20g
LndwdG1hbmlmZXN0Lm5vZGUgaW1wb3J0IERhdGFOb2RlCiBmcm9tIC53cHRtYW5pZmVzdC5iYWNr
ZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKQEAgLTk1LDcgKzk0LDcgQEAgY2xhc3MgSW5jbHVkZU1h
bmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAgICAgICAgIGlmIHBhdGhzOgogICAgICAgICAgICAgdXJs
cyA9IFtdCiAgICAgICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKLSAgICAgICAgICAgICAgICBm
b3IgbWFuaWZlc3QsIGRhdGEgaW4gaXRlcml0ZW1zKHRlc3RfbWFuaWZlc3RzKToKKyAgICAgICAg
ICAgICAgICBmb3IgbWFuaWZlc3QsIGRhdGEgaW4gdGVzdF9tYW5pZmVzdHMuaXRlbXMoKToKICAg
ICAgICAgICAgICAgICAgICAgZm91bmQgPSBGYWxzZQogICAgICAgICAgICAgICAgICAgICByZWxf
cGF0aCA9IG9zLnBhdGgucmVscGF0aChwYXRoLCBkYXRhWyJ0ZXN0c19wYXRoIl0pCiAgICAgICAg
ICAgICAgICAgICAgIGl0ZXJhdG9yID0gbWFuaWZlc3QuaXRlcnBhdGggaWYgb3MucGF0aC5pc2Zp
bGUocGF0aCkgZWxzZSBtYW5pZmVzdC5pdGVyZGlyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L21hbmlmZXN0dXBkYXRlLnB5CmluZGV4IDEyOTQ1N2IzZmQxMi4uYjI1ZDQ5YjBmYjdjIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9tYW5pZmVzdHVwZGF0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQpAQCAtMSw5ICsxLDgg
QEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBvcwotZnJv
bSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxpdAorZnJvbSB1
cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHNwbGl0CiBmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBuYW1lZHR1cGxlLCBkZWZhdWx0ZGljdCwgZGVxdWUKIGZyb20gbWF0aCBpbXBvcnQgY2Vp
bAotZnJvbSBzaXggaW1wb3J0IGludGVnZXJfdHlwZXMsIGl0ZXJrZXlzLCBpdGVydmFsdWVzLCBp
dGVyaXRlbXMsIHN0cmluZ190eXBlcywgdGV4dF90eXBlCitmcm9tIHR5cGluZyBpbXBvcnQgQW55
LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKIAogZnJvbSAud3B0bWFuaWZlc3QgaW1w
b3J0IHNlcmlhbGl6ZQogZnJvbSAud3B0bWFuaWZlc3Qubm9kZSBpbXBvcnQgKERhdGFOb2RlLCBD
b25kaXRpb25hbE5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLApAQCAtNzYsNyArNzUsNyBAQCBj
bGFzcyBVcGRhdGVQcm9wZXJ0aWVzKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBuYW1lIGluIHNl
bGYuX2NsYXNzZXMKIAogICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAgZm9yIG5hbWUg
aW4gaXRlcmtleXMoc2VsZi5fY2xhc3Nlcyk6CisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX2Ns
YXNzZXMua2V5cygpOgogICAgICAgICAgICAgeWllbGQgZ2V0YXR0cihzZWxmLCBuYW1lKQogCiAK
QEAgLTMxMywxOCArMzEyLDIxIEBAIGRlZiBidWlsZF9jb25kaXRpb25hbF90cmVlKF8sIHJ1bl9p
bmZvX3Byb3BlcnRpZXMsIHJlc3VsdHMpOgogCiBkZWYgYnVpbGRfdW5jb25kaXRpb25hbF90cmVl
KF8sIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHJlc3VsdHMpOgogICAgIHJvb3QgPSBleHBlY3RlZHRy
ZWUuTm9kZShOb25lLCBOb25lKQotICAgIGZvciBydW5faW5mbywgdmFsdWVzIGluIGl0ZXJpdGVt
cyhyZXN1bHRzKToKLSAgICAgICAgZm9yIHZhbHVlLCBjb3VudCBpbiBpdGVyaXRlbXModmFsdWVz
KToKKyAgICBmb3IgcnVuX2luZm8sIHZhbHVlcyBpbiByZXN1bHRzLml0ZW1zKCk6CisgICAgICAg
IGZvciB2YWx1ZSwgY291bnQgaW4gdmFsdWVzLml0ZW1zKCk6CiAgICAgICAgICAgICByb290LnJl
c3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CiAgICAgICAgIHJvb3QucnVuX2luZm8uYWRkKHJ1
bl9pbmZvKQogICAgIHJldHVybiByb290CiAKIAogY2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0
KToKLSAgICBwcm9wZXJ0eV9uYW1lID0gTm9uZQotICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gTm9u
ZQotICAgIHZhbHVlX3R5cGUgPSBOb25lCi0gICAgcHJvcGVydHlfYnVpbGRlciA9IE5vbmUKKyAg
ICBwcm9wZXJ0eV9uYW1lID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltzdHJdCisgICAgY2xzX2Rl
ZmF1bHRfdmFsdWUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW0FueV0KKyAgICB2YWx1ZV90eXBl
ID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zhclt0eXBlXQorICAgICMgcHJvcGVydHlfYnVpbGRlciBp
cyBhIGNsYXNzIHZhcmlhYmxlIHNldCB0byBlaXRoZXIgYnVpbGRfY29uZGl0aW9uYWxfdHJlZQor
ICAgICMgb3IgYnVpbGRfdW5jb25kaXRpb25hbF90cmVlLiBUT0RPOiBNYWtlIHRoaXMgdHlwZSBz
dHJpY3RlciB3aGVuIHRob3NlCisgICAgIyBtZXRob2RzIGFyZSBhbm5vdGF0ZWQuCisgICAgcHJv
cGVydHlfYnVpbGRlciA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbQ2FsbGFibGVbLi4uLCBBbnld
XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUpOgogICAgICAgICBzZWxmLm5vZGUgPSBu
b2RlCkBAIC00MTEsNyArNDEzLDcgQEAgY2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0KToKICAg
ICAgICAgZm9yIGUgaW4gZXJyb3JzOgogICAgICAgICAgICAgaWYgZGlzYWJsZV9pbnRlcm1pdHRl
bnQ6CiAgICAgICAgICAgICAgICAgY29uZGl0aW9uID0gZS5jb25kLmNoaWxkcmVuWzBdIGlmIGUu
Y29uZCBlbHNlIE5vbmUKLSAgICAgICAgICAgICAgICBtc2cgPSBkaXNhYmxlX2ludGVybWl0dGVu
dCBpZiBpc2luc3RhbmNlKGRpc2FibGVfaW50ZXJtaXR0ZW50LCBzdHJpbmdfdHlwZXMrKHRleHRf
dHlwZSwpKSBlbHNlICJ1bnN0YWJsZSIKKyAgICAgICAgICAgICAgICBtc2cgPSBkaXNhYmxlX2lu
dGVybWl0dGVudCBpZiBpc2luc3RhbmNlKGRpc2FibGVfaW50ZXJtaXR0ZW50LCBzdHIpIGVsc2Ug
InVuc3RhYmxlIgogICAgICAgICAgICAgICAgIHNlbGYubm9kZS5zZXQoImRpc2FibGVkIiwgbXNn
LCBjb25kaXRpb24pCiAgICAgICAgICAgICAgICAgc2VsZi5ub2RlLm5ld19kaXNhYmxlZCA9IFRy
dWUKICAgICAgICAgICAgIGVsc2U6CkBAIC00OTksNyArNTAxLDcgQEAgY2xhc3MgUHJvcGVydHlV
cGRhdGUob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHJ1bl9pbmZvIGlu
IG5vZGUucnVuX2luZm99CiAKICAgICAgICAgbm9kZV9ieV9ydW5faW5mbyA9IHtydW5faW5mbzog
bm9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocnVuX2luZm8sIG5vZGUpIGlu
IGl0ZXJpdGVtcyhydW5faW5mb19pbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgKHJ1bl9pbmZvLCBub2RlKSBpbiBydW5faW5mb19pbmRleC5pdGVtcygpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgbm9kZS5yZXN1bHRfdmFsdWVzfQogCiAgICAgICAgIHJ1bl9p
bmZvX2J5X2NvbmRpdGlvbiA9IHNlbGYucnVuX2luZm9fYnlfY29uZGl0aW9uKHJ1bl9pbmZvX2lu
ZGV4LApAQCAtNTEyLDcgKzUxNCw3IEBAIGNsYXNzIFByb3BlcnR5VXBkYXRlKG9iamVjdCk6CiAg
ICAgICAgICAgICAjIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIHdlJ3ZlIHNwZWNpZmllZCBhbmQgbm90
IG1hdGNoaW5nIGFueSBydW5faW5mbwogICAgICAgICAgICAgdG9wX2xldmVsX3Byb3BzLCBkZXBl
bmRlbnRfcHJvcHMgPSBzZWxmLm5vZGUucm9vdC5ydW5faW5mb19wcm9wZXJ0aWVzCiAgICAgICAg
ICAgICB1cGRhdGVfcHJvcGVydGllcyA9IHNldCh0b3BfbGV2ZWxfcHJvcHMpCi0gICAgICAgICAg
ICBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKGRlcGVuZGVudF9wcm9wcyk6CisgICAgICAgICAgICBm
b3IgaXRlbSBpbiBkZXBlbmRlbnRfcHJvcHMudmFsdWVzKCk6CiAgICAgICAgICAgICAgICAgdXBk
YXRlX3Byb3BlcnRpZXMgfD0gc2V0KGl0ZW0pCiAgICAgICAgICAgICBmb3IgY29uZGl0aW9uIGlu
IGN1cnJlbnRfY29uZGl0aW9uczoKICAgICAgICAgICAgICAgICBpZiAoKG5vdCBjb25kaXRpb24u
dmFyaWFibGVzLmlzc3Vic2V0KHVwZGF0ZV9wcm9wZXJ0aWVzKSBhbmQKQEAgLTYxNCw3ICs2MTYs
OCBAQCBjbGFzcyBQcm9wZXJ0eVVwZGF0ZShvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBl
eGNlcHQgQ29uZGl0aW9uRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICAgICBleHByID0gbWFr
ZV9leHByKHByb3Bfc2V0LCB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0g
Q29uZGl0aW9uRXJyb3IoZXhwcikKLSAgICAgICAgICAgICAgICAgICAgZXhwciA9IG1ha2VfZXhw
cihwcm9wX3NldCwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgICAgICBleHByID0gbWFrZV9leHByKHByb3Bfc2V0LCB2YWx1ZSkKICAgICAgICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAjIFRoZSByb290IG5vZGUgbmVlZHMg
c3BlY2lhbCBoYW5kbGluZwogICAgICAgICAgICAgICAgICAgICBleHByID0gTm9uZQpAQCAtNjk1
LDcgKzY5OCw3IEBAIGNsYXNzIEV4cGVjdGVkVXBkYXRlKFByb3BlcnR5VXBkYXRlKToKICAgICAg
ICAgICAgIHJhaXNlIENvbmRpdGlvbkVycm9yCiAKICAgICAgICAgY291bnRzID0ge30KLSAgICAg
ICAgZm9yIHN0YXR1cywgY291bnQgaW4gaXRlcml0ZW1zKG5ldyk6CisgICAgICAgIGZvciBzdGF0
dXMsIGNvdW50IGluIG5ldy5pdGVtcygpOgogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzdGF0
dXMsIHR1cGxlKToKICAgICAgICAgICAgICAgICBjb3VudHNbc3RhdHVzWzBdXSA9IGNvdW50CiAg
ICAgICAgICAgICAgICAgY291bnRzLnVwZGF0ZSh7aW50ZXJtaXR0ZW50OiAwIGZvciBpbnRlcm1p
dHRlbnQgaW4gc3RhdHVzWzE6XSBpZiBpbnRlcm1pdHRlbnQgbm90IGluIGNvdW50c30pCkBAIC03
MDksMjQgKzcxMiwyNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CiAg
ICAgICAgICMgQ291bnRzIHdpdGggMCBhcmUgY29uc2lkZXJlZCBpbnRlcm1pdHRlbnQuCiAgICAg
ICAgIHN0YXR1c2VzID0gWyJPSyIsICJQQVNTIiwgIkZBSUwiLCAiRVJST1IiLCAiVElNRU9VVCIs
ICJDUkFTSCJdCiAgICAgICAgIHN0YXR1c19wcmlvcml0eSA9IHt2YWx1ZTogaSBmb3IgaSwgdmFs
dWUgaW4gZW51bWVyYXRlKHN0YXR1c2VzKX0KLSAgICAgICAgc29ydGVkX25ldyA9IHNvcnRlZChp
dGVyaXRlbXMoY291bnRzKSwga2V5PWxhbWJkYSB4OigtMSAqIHhbMV0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19wcmlv
cml0eS5nZXQoeFswXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0eSkpKSkKKyAgICAgICAgc29ydGVk
X25ldyA9IHNvcnRlZChjb3VudHMuaXRlbXMoKSwga2V5PWxhbWJkYSB4OigtMSAqIHhbMV0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXR1c19wcmlvcml0eS5nZXQoeFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0eSkpKSkKICAgICAgICAg
ZXhwZWN0ZWQgPSBbXQogICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBpbiBzb3J0ZWRfbmV3Ogog
ICAgICAgICAgICAgIyBJZiB3ZSBhcmUgbm90IHJlbW92aW5nIGV4aXN0aW5nIHJlY29yZGVkIGlu
dGVybWl0dGVudHMsIHdpdGggYSBjb3VudCBvZiAwLAogICAgICAgICAgICAgIyBhZGQgdGhlbSBp
biB0byBleHBlY3RlZC4KICAgICAgICAgICAgIGlmIGNvdW50ID4gMCBvciBub3Qgc2VsZi5yZW1v
dmVfaW50ZXJtaXR0ZW50OgogICAgICAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZChzdGF0dXMp
CisKKyAgICAgICAgIyBJZiB0aGUgbmV3IGludGVybWl0dGVudCBpcyBhIHN1YnNldCBvZiB0aGUg
ZXhpc3Rpbmcgb25lLCBqdXN0IHVzZSB0aGUgZXhpc3Rpbmcgb25lCisgICAgICAgICMgVGhpcyBw
cmV2ZW50cyBmcmVxdWVudCBmbGlwLWZsb3BwaW5nIG9mIHJlc3VsdHMgYmV0d2VlbiBlLmcuIFtP
SywgVElNRU9VVF0gYW5kCisgICAgICAgICMgW1RJTUVPVVQsIE9LXQorICAgICAgICBpZiBjdXJy
ZW50IGFuZCBzZXQoZXhwZWN0ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50KSk6CisgICAgICAgICAg
ICByZXR1cm4gY3VycmVudAorCiAgICAgICAgIGlmIHNlbGYudXBkYXRlX2ludGVybWl0dGVudDoK
ICAgICAgICAgICAgIGlmIGxlbihleHBlY3RlZCkgPT0gMToKICAgICAgICAgICAgICAgICByZXR1
cm4gZXhwZWN0ZWRbMF0KICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZAogCi0gICAgICAgICMg
SWYgbm90aGluZyBoYXMgY2hhbmdlZCBhbmQgbm90IHNlbGYudXBkYXRlX2ludGVybWl0dGVudCwg
cHJlc2VydmUgZXhpc3RpbmcKLSAgICAgICAgIyBpbnRlcm1pdHRlbnQuCi0gICAgICAgIGlmIHNl
dChleHBlY3RlZCkuaXNzdWJzZXQoc2V0KGN1cnJlbnQpKToKLSAgICAgICAgICAgIHJldHVybiBj
dXJyZW50CiAgICAgICAgICMgSWYgd2UgYXJlIG5vdCB1cGRhdGluZyBpbnRlcm1pdHRlbnRzLCBy
ZXR1cm4gdGhlIHN0YXR1cyB3aXRoIHRoZSBoaWdoZXN0IG9jY3VyZW5jZS4KICAgICAgICAgcmV0
dXJuIGV4cGVjdGVkWzBdCiAKQEAgLTc2Miw3ICs3NjgsNyBAQCBjbGFzcyBNaW5Bc3NlcnRzVXBk
YXRlKFByb3BlcnR5VXBkYXRlKToKIAogCiBjbGFzcyBBcHBlbmRPbmx5TGlzdFVwZGF0ZShQcm9w
ZXJ0eVVwZGF0ZSk6Ci0gICAgY2xzX2RlZmF1bHRfdmFsdWUgPSBbXQorICAgIGNsc19kZWZhdWx0
X3ZhbHVlID0gW10gICMgdHlwZTogQ2xhc3NWYXJbTGlzdFtzdHJdXQogICAgIHByb3BlcnR5X2J1
aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKIAogICAgIGRlZiB1cGRhdGVkX3ZhbHVl
KHNlbGYsIGN1cnJlbnQsIG5ldyk6CkBAIC03NzQsNyArNzgwLDcgQEAgY2xhc3MgQXBwZW5kT25s
eUxpc3RVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgogICAgICAgICBmb3IgaXRlbSBpbiBuZXc6CiAg
ICAgICAgICAgICBpZiBpdGVtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAg
ICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpdGVtLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAg
ZWxpZiBpc2luc3RhbmNlKGl0ZW0sIHN0cik6CiAgICAgICAgICAgICAgICAgcnYuYWRkKGl0ZW0p
CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJ2IHw9IGl0ZW0KQEAgLTgxNSwx
NCArODIxLDE0IEBAIGNsYXNzIExlYWtPYmplY3RVcGRhdGUoQXBwZW5kT25seUxpc3RVcGRhdGUp
OgogCiBjbGFzcyBMZWFrVGhyZXNob2xkVXBkYXRlKFByb3BlcnR5VXBkYXRlKToKICAgICBwcm9w
ZXJ0eV9uYW1lID0gImxlYWstdGhyZXNob2xkIgotICAgIGNsc19kZWZhdWx0X3ZhbHVlID0ge30K
KyAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IHt9ICAjIHR5cGU6IENsYXNzVmFyW0RpY3Rbc3RyLCBp
bnRdXQogICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKIAog
ICAgIGRlZiBmcm9tX3Jlc3VsdF92YWx1ZShzZWxmLCByZXN1bHQpOgogICAgICAgICByZXR1cm4g
cmVzdWx0CiAKICAgICBkZWYgdG9faW5pX3ZhbHVlKHNlbGYsIGRhdGEpOgotICAgICAgICByZXR1
cm4gWyIlczolcyIgJSBpdGVtIGZvciBpdGVtIGluIHNvcnRlZChpdGVyaXRlbXMoZGF0YSkpXQor
ICAgICAgICByZXR1cm4gWyIlczolcyIgJSBpdGVtIGZvciBpdGVtIGluIHNvcnRlZChkYXRhLml0
ZW1zKCkpXQogCiAgICAgZGVmIGZyb21faW5pX3ZhbHVlKHNlbGYsIGRhdGEpOgogICAgICAgICBy
diA9IHt9CkBAIC04OTcsMTAgKzkwMywxMCBAQCBkZWYgbWFrZV9leHByKHByb3Bfc2V0LCByaHMp
OgogCiAKIGRlZiBtYWtlX25vZGUodmFsdWUpOgotICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGlu
dGVnZXJfdHlwZXMrKGZsb2F0LCkpOgorICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIChpbnQsIGZs
b2F0LCkpOgogICAgICAgICBub2RlID0gTnVtYmVyTm9kZSh2YWx1ZSkKLSAgICBlbGlmIGlzaW5z
dGFuY2UodmFsdWUsIHRleHRfdHlwZSk6Ci0gICAgICAgIG5vZGUgPSBTdHJpbmdOb2RlKHRleHRf
dHlwZSh2YWx1ZSkpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICBu
b2RlID0gU3RyaW5nTm9kZShzdHIodmFsdWUpKQogICAgIGVsaWYgaGFzYXR0cih2YWx1ZSwgIl9f
aXRlcl9fIik6CiAgICAgICAgIG5vZGUgPSBMaXN0Tm9kZSgpCiAgICAgICAgIGZvciBpdGVtIGlu
IHZhbHVlOgpAQCAtOTA5LDE0ICs5MTUsMTQgQEAgZGVmIG1ha2Vfbm9kZSh2YWx1ZSk6CiAKIAog
ZGVmIG1ha2VfdmFsdWVfbm9kZSh2YWx1ZSk6Ci0gICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaW50
ZWdlcl90eXBlcysoZmxvYXQsKSk6CisgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKGludCwgZmxv
YXQsKSk6CiAgICAgICAgIG5vZGUgPSBWYWx1ZU5vZGUodmFsdWUpCi0gICAgZWxpZiBpc2luc3Rh
bmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgotICAgICAgICBub2RlID0gVmFsdWVOb2RlKHRleHRfdHlw
ZSh2YWx1ZSkpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICBub2Rl
ID0gVmFsdWVOb2RlKHN0cih2YWx1ZSkpCiAgICAgZWxpZiBoYXNhdHRyKHZhbHVlLCAiX19pdGVy
X18iKToKICAgICAgICAgbm9kZSA9IExpc3ROb2RlKCkKICAgICAgICAgZm9yIGl0ZW0gaW4gdmFs
dWU6Ci0gICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX25vZGUoaXRlbSkpCisgICAgICAgICAg
ICBub2RlLmFwcGVuZChtYWtlX3ZhbHVlX25vZGUoaXRlbSkpCiAgICAgZWxzZToKICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiRG9uJ3Qga25vdyBob3cgdG8gY29udmVydCAlcyBpbnRvIG5vZGUi
ICUgdHlwZSh2YWx1ZSkpCiAgICAgcmV0dXJuIG5vZGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWV0
YWRhdGEucHkKaW5kZXggYWI4ZDQ3NDBmM2ZjLi45YzU0ZTU3MGMwMWIgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFk
YXRhLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL21ldGFkYXRhLnB5CkBAIC0xLDEyICsxLDExIEBACi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgYXJyYXkKIGltcG9ydCBvcwotaW1wb3J0IHN5
cwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QsIG5hbWVkdHVwbGUKK2Zyb20g
dHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBUdXBsZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgc3Ry
dWN0dXJlZGxvZwotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9zdHIsIGVuc3VyZV90ZXh0LCBpdGVy
aXRlbXMsIGl0ZXJrZXlzLCBpdGVydmFsdWVzLCB0ZXh0X3R5cGUKLWZyb20gc2l4Lm1vdmVzIGlt
cG9ydCBpbnRlcm4sIHJhbmdlCitmcm9tIHNpeCBpbXBvcnQgZW5zdXJlX3N0ciwgZW5zdXJlX3Rl
eHQKK2Zyb20gc3lzIGltcG9ydCBpbnRlcm4KIAogZnJvbSAuIGltcG9ydCBtYW5pZmVzdHVwZGF0
ZQogZnJvbSAuIGltcG9ydCB0ZXN0bG9hZGVyCkBAIC0yMiw3ICsyMSw3IEBAIGxvZ2dlciA9IHN0
cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigid2ViLXBsYXRmb3JtLXRlc3RzIikKIHRyeToK
ICAgICBpbXBvcnQgdWpzb24gYXMganNvbgogZXhjZXB0IEltcG9ydEVycm9yOgotICAgIGltcG9y
dCBqc29uCisgICAgaW1wb3J0IGpzb24gICMgdHlwZTogaWdub3JlCiAKIAogY2xhc3MgUnVuSW5m
byhvYmplY3QpOgpAQCAtNDUsMTEgKzQ0LDExIEBAIGNsYXNzIFJ1bkluZm8ob2JqZWN0KToKICAg
ICAgICAgcmV0dXJuIHNlbGYuY2Fub25pY2FsX3JlcHIgPT0gb3RoZXIuY2Fub25pY2FsX3JlcHIK
IAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0gICAgICAgIGZvciBrZXksIHZhbHVlIGluIGl0
ZXJpdGVtcyhzZWxmLmRhdGEpOgorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLmRhdGEu
aXRlbXMoKToKICAgICAgICAgICAgIHlpZWxkIGtleSwgdmFsdWUKIAogICAgIGRlZiBpdGVtcyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIGxpc3QoaXRlcml0ZW1zKHNlbGYpKQorICAgICAgICByZXR1
cm4gbGlzdChzZWxmLml0ZW1zKCkpCiAKIAogZGVmIHVwZGF0ZV9leHBlY3RlZCh0ZXN0X3BhdGhz
LCBzZXJ2ZV9yb290LCBsb2dfZmlsZV9uYW1lcywKQEAgLTkzLDcgKzkyLDcgQEAgZGVmIHVwZGF0
ZV9leHBlY3RlZCh0ZXN0X3BhdGhzLCBzZXJ2ZV9yb290LCBsb2dfZmlsZV9uYW1lcywKIAogZGVm
IGRvX2RlbGF5ZWRfaW1wb3J0cyhzZXJ2ZV9yb290PU5vbmUpOgogICAgIGdsb2JhbCBtYW5pZmVz
dCwgbWFuaWZlc3RpdGVtCi0gICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QsIGl0ZW0g
YXMgbWFuaWZlc3RpdGVtCisgICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QsIGl0ZW0g
YXMgbWFuaWZlc3RpdGVtICAjIHR5cGU6IGlnbm9yZQogCiAKIGRlZiBmaWxlc19pbl9yZXBvKHJl
cG9fcm9vdCk6CkBAIC0xMjksNyArMTI4LDcgQEAgZGVmIHVuZXhwZWN0ZWRfY2hhbmdlcyhtYW5p
ZmVzdHMsIGNoYW5nZV9kYXRhLCBmaWxlc19jaGFuZ2VkKToKICAgICBmaWxlc19jaGFuZ2VkID0g
c2V0KGZpbGVzX2NoYW5nZWQpCiAKICAgICByb290X21hbmlmZXN0ID0gTm9uZQotICAgIGZvciBt
YW5pZmVzdCwgcGF0aHMgaW4gaXRlcml0ZW1zKG1hbmlmZXN0cyk6CisgICAgZm9yIG1hbmlmZXN0
LCBwYXRocyBpbiBtYW5pZmVzdHMuaXRlbXMoKToKICAgICAgICAgaWYgcGF0aHNbInVybF9iYXNl
Il0gPT0gIi8iOgogICAgICAgICAgICAgcm9vdF9tYW5pZmVzdCA9IG1hbmlmZXN0CiAgICAgICAg
ICAgICBicmVhawpAQCAtMTcwLDkgKzE2OSwxMCBAQCBjbGFzcyBJbnRlcm5lZERhdGEob2JqZWN0
KToKICAgICB0eXBlX2NvbnYgPSBOb25lCiAgICAgcmV2X3R5cGVfY29udiA9IE5vbmUKIAotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBtYXhfYml0cz04KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bWF4X2JpdHM6IGludCA9IDgpOgogICAgICAgICBzZWxmLm1heF9pZHggPSAyKiptYXhfYml0cyAt
IDIKICAgICAgICAgIyBSZXNlcnZlIDAgYXMgYSBzZW50aW5hbAorICAgICAgICBzZWxmLl9kYXRh
OiBUdXBsZVtMaXN0W29iamVjdF0sIERpY3RbaW50LCBvYmplY3RdXQogICAgICAgICBzZWxmLl9k
YXRhID0gW05vbmVdLCB7fQogCiAgICAgZGVmIGNsZWFyKHNlbGYpOgpAQCAtMjQwLDcgKzI0MCw3
IEBAIGRlZiBwYWNrX3Jlc3VsdChkYXRhKToKIGRlZiB1bnBhY2tfcmVzdWx0KGRhdGEpOgogICAg
IGlmIGlzaW5zdGFuY2UoZGF0YSwgaW50KToKICAgICAgICAgcmV0dXJuIChzdGF0dXNfaW50ZXJu
LmdldChkYXRhKSwgTm9uZSkKLSAgICBpZiBpc2luc3RhbmNlKGRhdGEsIHRleHRfdHlwZSk6Cisg
ICAgaWYgaXNpbnN0YW5jZShkYXRhLCBzdHIpOgogICAgICAgICByZXR1cm4gKGRhdGEsIE5vbmUp
CiAgICAgIyBVbnBhY2sgbXVsdGlwbGUgc3RhdHVzZXMgaW50byBhIHR1cGxlIHRvIGJlIHVzZWQg
aW4gdGhlIFJlc3VsdHMgbmFtZWQgdHVwbGUgYmVsb3csCiAgICAgIyBzZXBhcmF0aW5nIGBzdGF0
dXNgIGFuZCBga25vd25faW50ZXJtaXR0ZW50YC4KQEAgLTI1OSw3ICsyNTksNyBAQCBkZWYgbG9h
ZF90ZXN0X2RhdGEodGVzdF9wYXRocyk6CiAgICAgbWFuaWZlc3RzID0gbWFuaWZlc3RfbG9hZGVy
LmxvYWQoKQogCiAgICAgaWRfdGVzdF9tYXAgPSB7fQotICAgIGZvciB0ZXN0X21hbmlmZXN0LCBw
YXRocyBpbiBpdGVyaXRlbXMobWFuaWZlc3RzKToKKyAgICBmb3IgdGVzdF9tYW5pZmVzdCwgcGF0
aHMgaW4gbWFuaWZlc3RzLml0ZW1zKCk6CiAgICAgICAgIGlkX3Rlc3RfbWFwLnVwZGF0ZShjcmVh
dGVfdGVzdF90cmVlKHBhdGhzWyJtZXRhZGF0YV9wYXRoIl0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWFuaWZlc3QpKQogICAgIHJldHVybiBpZF90
ZXN0X21hcApAQCAtMjg3LDEwICsyODcsMTAgQEAgZGVmIHVwZGF0ZV9yZXN1bHRzKGlkX3Rlc3Rf
bWFwLAogICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50LAogICAgICAgICAg
ICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCiAgICAgICAgICAgICAgICAgICAgcmVtb3Zl
X2ludGVybWl0dGVudCk6Ci0gICAgdGVzdF9maWxlX2l0ZW1zID0gc2V0KGl0ZXJ2YWx1ZXMoaWRf
dGVzdF9tYXApKQorICAgIHRlc3RfZmlsZV9pdGVtcyA9IHNldChpZF90ZXN0X21hcC52YWx1ZXMo
KSkKIAogICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZSA9IHt9Ci0gICAgZm9yIHRlc3RfdHlw
ZSwgdGVzdF9jbHMgaW4gaXRlcml0ZW1zKHdwdHRlc3QubWFuaWZlc3RfdGVzdF9jbHMpOgorICAg
IGZvciB0ZXN0X3R5cGUsIHRlc3RfY2xzIGluIHdwdHRlc3QubWFuaWZlc3RfdGVzdF9jbHMuaXRl
bXMoKToKICAgICAgICAgaWYgdGVzdF9jbHMucmVzdWx0X2NsczoKICAgICAgICAgICAgIGRlZmF1
bHRfZXhwZWN0ZWRfYnlfdHlwZVsodGVzdF90eXBlLCBGYWxzZSldID0gdGVzdF9jbHMucmVzdWx0
X2Nscy5kZWZhdWx0X2V4cGVjdGVkCiAgICAgICAgIGlmIHRlc3RfY2xzLnN1YnRlc3RfcmVzdWx0
X2NsczoKQEAgLTMyNywxMCArMzI3LDcgQEAgZGVmIHdyaXRlX25ld19leHBlY3RlZChtZXRhZGF0
YV9wYXRoLCBleHBlY3RlZCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHdpdGggb3Blbih0
bXBfcGF0aCwgIndiIikgYXMgZjoKICAgICAgICAgICAgICAgICBmLndyaXRlKG1hbmlmZXN0X3N0
ci5lbmNvZGUoInV0ZjgiKSkKLSAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs
IDMpOgotICAgICAgICAgICAgICAgIG9zLnJlcGxhY2UodG1wX3BhdGgsIHBhdGgpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG9zLnJlbmFtZSh0bXBfcGF0aCwgcGF0aCkKKyAg
ICAgICAgICAgIG9zLnJlcGxhY2UodG1wX3BhdGgsIHBhdGgpCiAgICAgICAgIGV4Y2VwdCAoRXhj
ZXB0aW9uLCBLZXlib2FyZEludGVycnVwdCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAg
ICAgICAgb3MudW5saW5rKHRtcF9wYXRoKQpAQCAtNDMxLDcgKzQyOCw3IEBAIGNsYXNzIEV4cGVj
dGVkVXBkYXRlcihvYmplY3QpOgogICAgICAgICAgICAgYWN0aW9uX21hcFsibHNhbl9sZWFrIl0o
aXRlbSkKIAogICAgICAgICBtb3psZWFrX2RhdGEgPSBkYXRhLmdldCgibW96bGVhayIsIHt9KQot
ICAgICAgICBmb3Igc2NvcGUsIHNjb3BlX2RhdGEgaW4gaXRlcml0ZW1zKG1vemxlYWtfZGF0YSk6
CisgICAgICAgIGZvciBzY29wZSwgc2NvcGVfZGF0YSBpbiBtb3psZWFrX2RhdGEuaXRlbXMoKToK
ICAgICAgICAgICAgIGZvciBrZXksIGFjdGlvbiBpbiBbKCJvYmplY3RzIiwgIm1vemxlYWtfb2Jq
ZWN0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidG90YWwiLCAibW96bGVh
a190b3RhbCIpXToKICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBzY29wZV9kYXRhLmdldChr
ZXksIFtdKToKQEAgLTY2OCwxMSArNjY1LDExIEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmplY3Qp
OgogICAgICAgICAjIFJldHVybiBzdWJ0ZXN0IG5vZGVzIHByZXNlbnQgaW4gdGhlIGV4cGVjdGVk
IGZpbGUsIGJ1dCBtaXNzaW5nIGZyb20gdGhlIGRhdGEKICAgICAgICAgcnYgPSBbXQogCi0gICAg
ICAgIGZvciB0ZXN0X2lkLCBzdWJ0ZXN0cyBpbiBpdGVyaXRlbXMoc2VsZi5kYXRhKToKKyAgICAg
ICAgZm9yIHRlc3RfaWQsIHN1YnRlc3RzIGluIHNlbGYuZGF0YS5pdGVtcygpOgogICAgICAgICAg
ICAgdGVzdCA9IGV4cGVjdGVkLmdldF90ZXN0KGVuc3VyZV90ZXh0KHRlc3RfaWQpKQogICAgICAg
ICAgICAgaWYgbm90IHRlc3Q6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IHNlZW5fc3VidGVzdHMgPSBzZXQoZW5zdXJlX3RleHQoaXRlbSkgZm9yIGl0ZW0gaW4gaXRlcmtl
eXMoc3VidGVzdHMpIGlmIGl0ZW0gaXMgbm90IE5vbmUpCisgICAgICAgICAgICBzZWVuX3N1YnRl
c3RzID0gc2V0KGVuc3VyZV90ZXh0KGl0ZW0pIGZvciBpdGVtIGluIHN1YnRlc3RzLmtleXMoKSBp
ZiBpdGVtIGlzIG5vdCBOb25lKQogICAgICAgICAgICAgbWlzc2luZ19zdWJ0ZXN0cyA9IHNldCh0
ZXN0LnN1YnRlc3RzLmtleXMoKSkgLSBzZWVuX3N1YnRlc3RzCiAgICAgICAgICAgICBmb3IgaXRl
bSBpbiBtaXNzaW5nX3N1YnRlc3RzOgogICAgICAgICAgICAgICAgIGV4cGVjdGVkX3N1YnRlc3Qg
PSB0ZXN0LmdldF9zdWJ0ZXN0KGl0ZW0pCkBAIC02OTEsNyArNjg4LDcgQEAgY2xhc3MgVGVzdEZp
bGVEYXRhKG9iamVjdCk6CiAgICAgICAgICMgc2luY2UgcmVtb3ZpbmcgdGhlc2UgbWF5IGJlIGlu
YXBwcm9wcmlhdGUKICAgICAgICAgdG9wX2xldmVsX3Byb3BzLCBkZXBlbmRlbnRfcHJvcHMgPSB1
cGRhdGVfcHJvcGVydGllcwogICAgICAgICBhbGxfcHJvcGVydGllcyA9IHNldCh0b3BfbGV2ZWxf
cHJvcHMpCi0gICAgICAgIGZvciBpdGVtIGluIGl0ZXJ2YWx1ZXMoZGVwZW5kZW50X3Byb3BzKToK
KyAgICAgICAgZm9yIGl0ZW0gaW4gZGVwZW5kZW50X3Byb3BzLnZhbHVlcygpOgogICAgICAgICAg
ICAgYWxsX3Byb3BlcnRpZXMgfD0gc2V0KGl0ZW0pCiAKICAgICAgICAgZmlsdGVyZWQgPSBbXQpA
QCAtNzQxLDkgKzczOCw5IEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmplY3QpOgogICAgICAgICAg
ICAgdGVzdF9leHBlY3RlZCA9IGV4cGVjdGVkLmdldF90ZXN0KHRlc3RfaWQpCiAgICAgICAgICAg
ICBleHBlY3RlZF9ieV90ZXN0W3Rlc3RfaWRdID0gdGVzdF9leHBlY3RlZAogCi0gICAgICAgIGZv
ciB0ZXN0X2lkLCB0ZXN0X2RhdGEgaW4gaXRlcml0ZW1zKHNlbGYuZGF0YSk6CisgICAgICAgIGZv
ciB0ZXN0X2lkLCB0ZXN0X2RhdGEgaW4gc2VsZi5kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICB0
ZXN0X2lkID0gZW5zdXJlX3N0cih0ZXN0X2lkKQotICAgICAgICAgICAgZm9yIHN1YnRlc3RfaWQs
IHJlc3VsdHNfbGlzdCBpbiBpdGVyaXRlbXModGVzdF9kYXRhKToKKyAgICAgICAgICAgIGZvciBz
dWJ0ZXN0X2lkLCByZXN1bHRzX2xpc3QgaW4gdGVzdF9kYXRhLml0ZW1zKCk6CiAgICAgICAgICAg
ICAgICAgZm9yIHByb3AsIHJ1bl9pbmZvLCB2YWx1ZSBpbiByZXN1bHRzX2xpc3Q6CiAgICAgICAg
ICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIGRpcmVjdG9yeSBtZXRhZGF0YQogICAgICAgICAg
ICAgICAgICAgICBpZiBzdWJ0ZXN0X2lkIGlzIE5vbmUgYW5kIHRlc3RfaWQuZW5kc3dpdGgoIl9f
ZGlyX18iKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1MGMwNDc4MmE2NQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L21wY29udGV4dC5weQpAQCAtMCwwICsxLDExIEBACitpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCisK
K19jb250ZXh0ID0gTm9uZQorCisKK2RlZiBnZXRfY29udGV4dCgpOgorICAgIGdsb2JhbCBfY29u
dGV4dAorCisgICAgaWYgX2NvbnRleHQgaXMgTm9uZToKKyAgICAgICAgX2NvbnRleHQgPSBtdWx0
aXByb2Nlc3NpbmcuZ2V0X2NvbnRleHQoInNwYXduIikKKyAgICByZXR1cm4gX2NvbnRleHQKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Byb2Nlc3MucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4YTJiODk0Y2I3NGQuLjAwMDAwMDAwMDAwMAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMTEgKzAsMCBAQAotaW1wb3J0IHN5cwotCi1pbXBvcnQgc2l4Ci0KLQotZGVmIGNhc3Rf
ZW52KGVudik6Ci0gICAgIiIiRW5jb2RlIGFsbCB0aGUgZW52aXJvbm1lbnQgdmFsdWVzIGFzIHRo
ZSBhcHByb3ByaWF0ZSB0eXBlIGZvciBlYWNoIFB5dGhvbiB2ZXJzaW9uCi0gICAgVGhpcyBhc3N1
bWVzIHRoYXQgYWxsIHRoZSBkYXRhIGlzIG9yIGNhbiBiZSByZXByZXNlbnRlZCBhcyBVVEY4IiIi
Ci0KLSAgICBlbnZfdHlwZSA9IHNpeC5lbnN1cmVfYmluYXJ5IGlmIHN5cy52ZXJzaW9uX2luZm9b
MF0gPCAzIGVsc2Ugc2l4LmVuc3VyZV9zdHIKLSAgICByZXR1cm4ge2Vudl90eXBlKGtleSk6IGVu
dl90eXBlKHZhbHVlKSBmb3Iga2V5LCB2YWx1ZSBpbiBzaXguaXRlcml0ZW1zKGVudil9CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9wcm9kdWN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5CmluZGV4IGFiZDg0MDk0YmIzMy4uZTY1ZGY1ZWU4
OTkzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQpAQCAtMSw2ICsxLDUgQEAK
IGltcG9ydCBpbXBvcnRsaWIKIGltcG9ydCBpbXAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMK
IAogZnJvbSAuYnJvd3NlcnMgaW1wb3J0IHByb2R1Y3RfbGlzdAogCkBAIC0zNCwzNCArMzMsMjkg
QEAgY2xhc3MgUHJvZHVjdChvYmplY3QpOgogICAgICAgICBtb2R1bGUgPSBwcm9kdWN0X21vZHVs
ZShjb25maWcsIHByb2R1Y3QpCiAgICAgICAgIGRhdGEgPSBtb2R1bGUuX193cHRydW5uZXJfXwog
ICAgICAgICBzZWxmLm5hbWUgPSBwcm9kdWN0CisgICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YVsi
YnJvd3NlciJdLCBzdHIpOgorICAgICAgICAgICAgc2VsZi5fYnJvd3Nlcl9jbHMgPSB7Tm9uZTog
Z2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXIiXSl9CisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzZWxmLl9icm93c2VyX2NscyA9IHtrZXk6IGdldGF0dHIobW9kdWxlLCB2YWx1ZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGRhdGFbImJy
b3dzZXIiXS5pdGVtcygpfQogICAgICAgICBzZWxmLmNoZWNrX2FyZ3MgPSBnZXRhdHRyKG1vZHVs
ZSwgZGF0YVsiY2hlY2tfYXJncyJdKQotICAgICAgICBzZWxmLmJyb3dzZXJfY2xzID0gZ2V0YXR0
cihtb2R1bGUsIGRhdGFbImJyb3dzZXIiXSkKICAgICAgICAgc2VsZi5nZXRfYnJvd3Nlcl9rd2Fy
Z3MgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiYnJvd3Nlcl9rd2FyZ3MiXSkKICAgICAgICAgc2Vs
Zi5nZXRfZXhlY3V0b3Jfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImV4ZWN1dG9yX2t3
YXJncyJdKQogICAgICAgICBzZWxmLmVudl9vcHRpb25zID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFb
ImVudl9vcHRpb25zIl0pKCkKICAgICAgICAgc2VsZi5nZXRfZW52X2V4dHJhcyA9IGdldGF0dHIo
bW9kdWxlLCBkYXRhWyJlbnZfZXh0cmFzIl0pCiAgICAgICAgIHNlbGYucnVuX2luZm9fZXh0cmFz
ID0gKGdldGF0dHIobW9kdWxlLCBkYXRhWyJydW5faW5mb19leHRyYXMiXSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICJydW5faW5mb19leHRyYXMiIGluIGRhdGEgZWxzZSBsYW1iZGEg
Kiprd2FyZ3M6e30pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJydW5faW5m
b19leHRyYXMiIGluIGRhdGEgZWxzZSBsYW1iZGEgKiprd2FyZ3M6e30pCiAgICAgICAgIHNlbGYu
Z2V0X3RpbWVvdXRfbXVsdGlwbGllciA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJ0aW1lb3V0X211
bHRpcGxpZXIiXSkKIAogICAgICAgICBzZWxmLmV4ZWN1dG9yX2NsYXNzZXMgPSB7fQotICAgICAg
ICBmb3IgdGVzdF90eXBlLCBjbHNfbmFtZSBpbiBpdGVyaXRlbXMoZGF0YVsiZXhlY3V0b3IiXSk6
CisgICAgICAgIGZvciB0ZXN0X3R5cGUsIGNsc19uYW1lIGluIGRhdGFbImV4ZWN1dG9yIl0uaXRl
bXMoKToKICAgICAgICAgICAgIGNscyA9IGdldGF0dHIobW9kdWxlLCBjbHNfbmFtZSkKICAgICAg
ICAgICAgIHNlbGYuZXhlY3V0b3JfY2xhc3Nlc1t0ZXN0X3R5cGVdID0gY2xzCiAKLQotZGVmIGxv
YWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QsIGxvYWRfY2xzPUZhbHNlKToKLSAgICBydiA9IFBy
b2R1Y3QoY29uZmlnLCBwcm9kdWN0KQotICAgIGlmIG5vdCBsb2FkX2NsczoKLSAgICAgICAgcmV0
dXJuIChydi5jaGVja19hcmdzLAotICAgICAgICAgICAgICAgIHJ2LmJyb3dzZXJfY2xzLAotICAg
ICAgICAgICAgICAgIHJ2LmdldF9icm93c2VyX2t3YXJncywKLSAgICAgICAgICAgICAgICBydi5l
eGVjdXRvcl9jbGFzc2VzLAotICAgICAgICAgICAgICAgIHJ2LmdldF9leGVjdXRvcl9rd2FyZ3Ms
Ci0gICAgICAgICAgICAgICAgcnYuZW52X29wdGlvbnMsCi0gICAgICAgICAgICAgICAgcnYuZ2V0
X2Vudl9leHRyYXMsCi0gICAgICAgICAgICAgICAgcnYucnVuX2luZm9fZXh0cmFzKQotICAgIHJl
dHVybiBydgorICAgIGRlZiBnZXRfYnJvd3Nlcl9jbHMoc2VsZiwgdGVzdF90eXBlKToKKyAgICAg
ICAgaWYgdGVzdF90eXBlIGluIHNlbGYuX2Jyb3dzZXJfY2xzOgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX2Jyb3dzZXJfY2xzW3Rlc3RfdHlwZV0KKyAgICAgICAgcmV0dXJuIHNlbGYuX2Jyb3dz
ZXJfY2xzW05vbmVdCiAKIAogZGVmIGxvYWRfcHJvZHVjdF91cGRhdGUoY29uZmlnLCBwcm9kdWN0
KToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weQppbmRleCA4OGQxYzIzMmJmYjUu
LmVlYjVhZjIzMDAyOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weQpAQCAt
NSw3ICs1LDYgQEAgaW1wb3J0IGlvCiBpbXBvcnQgb3MKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0
IE9yZGVyZWREaWN0LCBkZWZhdWx0ZGljdAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUK
LWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAogZnJvbSBtb3psb2cgaW1wb3J0IHJlYWRlcgog
ZnJvbSBtb3psb2cuZm9ybWF0dGVycyBpbXBvcnQgSlNPTkZvcm1hdHRlcgpAQCAtMTMsOCArMTIs
OCBAQCBmcm9tIG1vemxvZy5oYW5kbGVycyBpbXBvcnQgQmFzZUhhbmRsZXIsIFN0cmVhbUhhbmRs
ZXIsIExvZ0xldmVsRmlsdGVyCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiBs
b2NhbHBhdGhzID0gaW1wLmxvYWRfc291cmNlKCJsb2NhbHBhdGhzIiwgb3MucGF0aC5hYnNwYXRo
KG9zLnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRpciwgImxvY2FscGF0aHMucHki
KSkpCi1mcm9tIGNpLnRjLmdpdGh1Yl9jaGVja3Nfb3V0cHV0IGltcG9ydCBnZXRfZ2hfY2hlY2tz
X291dHB1dHRlcgotZnJvbSB3cHQubWFya2Rvd24gaW1wb3J0IG1hcmtkb3duX2FkanVzdCwgdGFi
bGUKK2Zyb20gY2kudGMuZ2l0aHViX2NoZWNrc19vdXRwdXQgaW1wb3J0IGdldF9naF9jaGVja3Nf
b3V0cHV0dGVyICAjIHR5cGU6IGlnbm9yZQorZnJvbSB3cHQubWFya2Rvd24gaW1wb3J0IG1hcmtk
b3duX2FkanVzdCwgdGFibGUgICMgdHlwZTogaWdub3JlCiAKIAogIyBJZiBhIHRlc3QgdGFrZXMg
bW9yZSB0aGFuIChGTEFLWV9USFJFU0hPTEQqdGltZW91dCkgYW5kIGRvZXMgbm90IGNvbnNpc3Rl
bnRseQpAQCAtMjIsNyArMjEsNyBAQCBmcm9tIHdwdC5tYXJrZG93biBpbXBvcnQgbWFya2Rvd25f
YWRqdXN0LCB0YWJsZQogRkxBS1lfVEhSRVNIT0xEID0gMC44CiAKIAotY2xhc3MgTG9nQWN0aW9u
RmlsdGVyKEJhc2VIYW5kbGVyKToKK2NsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6
ICAjIHR5cGU6IGlnbm9yZQogCiAgICAgIiIiSGFuZGxlciB0aGF0IGZpbHRlcnMgb3V0IG1lc3Nh
Z2VzIG5vdCBvZiBhIGdpdmVuIHNldCBvZiBhY3Rpb25zLgogCkBAIC00NCw3ICs0Myw3IEBAIGNs
YXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CiAgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5pbm5lcihpdGVtKQogCiAKLWNsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRsZXIpOgor
Y2xhc3MgTG9nSGFuZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6ICAjIHR5cGU6IGlnbm9yZQogCiAg
ICAgIiIiSGFuZGxlIHVwZGF0aW5nIHRlc3QgYW5kIHN1YnRlc3Qgc3RhdHVzIGluIGxvZy4KIApA
QCAtMTQyLDEwICsxNDEsMTAgQEAgZGVmIHByb2Nlc3NfcmVzdWx0cyhsb2csIGl0ZXJhdGlvbnMp
OgogICAgIGhhbmRsZXIgPSBMb2dIYW5kbGVyKCkKICAgICByZWFkZXIuaGFuZGxlX2xvZyhyZWFk
ZXIucmVhZChsb2cpLCBoYW5kbGVyKQogICAgIHJlc3VsdHMgPSBoYW5kbGVyLnJlc3VsdHMKLSAg
ICBmb3IgdGVzdF9uYW1lLCB0ZXN0IGluIGl0ZXJpdGVtcyhyZXN1bHRzKToKKyAgICBmb3IgdGVz
dF9uYW1lLCB0ZXN0IGluIHJlc3VsdHMuaXRlbXMoKToKICAgICAgICAgaWYgaXNfaW5jb25zaXN0
ZW50KHRlc3RbInN0YXR1cyJdLCBpdGVyYXRpb25zKToKICAgICAgICAgICAgIGluY29uc2lzdGVu
dC5hcHBlbmQoKHRlc3RfbmFtZSwgTm9uZSwgdGVzdFsic3RhdHVzIl0sIFtdKSkKLSAgICAgICAg
Zm9yIHN1YnRlc3RfbmFtZSwgc3VidGVzdCBpbiBpdGVyaXRlbXModGVzdFsic3VidGVzdHMiXSk6
CisgICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gdGVzdFsic3VidGVzdHMiXS5p
dGVtcygpOgogICAgICAgICAgICAgaWYgaXNfaW5jb25zaXN0ZW50KHN1YnRlc3RbInN0YXR1cyJd
LCBpdGVyYXRpb25zKToKICAgICAgICAgICAgICAgICBpbmNvbnNpc3RlbnQuYXBwZW5kKCh0ZXN0
X25hbWUsIHN1YnRlc3RfbmFtZSwgc3VidGVzdFsic3RhdHVzIl0sIHN1YnRlc3RbIm1lc3NhZ2Vz
Il0pKQogCkBAIC0yMzUsNyArMjM0LDcgQEAgZGVmIHdyaXRlX3Jlc3VsdHMobG9nLCByZXN1bHRz
LCBpdGVyYXRpb25zLCBwcl9udW1iZXI9Tm9uZSwgdXNlX2RldGFpbHM9RmFsc2UpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdHMiIGlmIGxl
bihyZXN1bHRzKSA+IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzZSAidGVzdCIpKQogCi0gICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiBpdGVy
aXRlbXMocmVzdWx0cyk6CisgICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiByZXN1bHRzLml0ZW1z
KCk6CiAgICAgICAgIGJhc2V1cmwgPSAiaHR0cDovL3czYy10ZXN0Lm9yZy9zdWJtaXNzaW9ucyIK
ICAgICAgICAgaWYgImh0dHBzIiBpbiBvcy5wYXRoLnNwbGl0ZXh0KHRlc3RfbmFtZSlbMF0uc3Bs
aXQoIi4iKVsxOl06CiAgICAgICAgICAgICBiYXNldXJsID0gImh0dHBzOi8vdzNjLXRlc3Qub3Jn
L3N1Ym1pc3Npb25zIgpAQCAtMzA1LDcgKzMwNCw3IEBAIGRlZiBnZXRfc3RlcHMobG9nZ2VyLCBy
ZXBlYXRfbG9vcCwgcmVwZWF0X3Jlc3RhcnQsIGt3YXJnc19leHRyYXMpOgogICAgIGZvciBrd2Fy
Z3NfZXh0cmEgaW4ga3dhcmdzX2V4dHJhczoKICAgICAgICAgaWYga3dhcmdzX2V4dHJhOgogICAg
ICAgICAgICAgZmxhZ3Nfc3RyaW5nID0gIiB3aXRoIGZsYWdzICVzIiAlICIgIi5qb2luKAotICAg
ICAgICAgICAgICAgICIlcz0lcyIgJSBpdGVtIGZvciBpdGVtIGluIGl0ZXJpdGVtcyhrd2FyZ3Nf
ZXh0cmEpKQorICAgICAgICAgICAgICAgICIlcz0lcyIgJSBpdGVtIGZvciBpdGVtIGluIGt3YXJn
c19leHRyYS5pdGVtcygpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZmxhZ3Nfc3RyaW5n
ID0gIiIKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMK
aW5kZXggOWMwYzY5YWYzYTNmLi44NDJhYmY0MTFmOTAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0
cmEuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcwpAQCAtMzQsNyArMzQsNyBAQAogICAgICAgICB9
IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gInRlc3Rkcml2ZXItY29tcGxldGUiKSB7CiAgICAgICAg
ICAgICBjb25zdCBjbWRfaWQgPSBkYXRhLmNtZF9pZDsKICAgICAgICAgICAgIGNvbnN0IFtvbl9z
dWNjZXNzLCBvbl9mYWlsdXJlXSA9IHBlbmRpbmcuZ2V0KGNtZF9pZCk7Ci0gICAgICAgICAgICBw
ZW5kaW5nLmNsZWFyKGNtZF9pZCk7CisgICAgICAgICAgICBwZW5kaW5nLmRlbGV0ZShjbWRfaWQp
OwogICAgICAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSBkYXRhLnN0YXR1cyA9PT0gInN1Y2Nlc3Mi
ID8gb25fc3VjY2VzcyA6IG9uX2ZhaWx1cmU7CiAgICAgICAgICAgICByZXNvbHZlcihkYXRhKTsK
ICAgICAgICAgICAgIGlmIChpc190ZXN0X2NvbnRleHQpIHsKQEAgLTEzNiw2ICsxMzYsOSBAQAog
ICAgICAgICAgICAgaWYgKHRlc3RoYXJuZXNzX2NvbnRleHQgPT09IG51bGwpIHsKICAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRyaWVkIHRvIHJ1biBpbiBhIG5vbi10ZXN0aGFybmVz
cyB3aW5kb3cgd2l0aG91dCBhIGNhbGwgdG8gc2V0X3Rlc3RfY29udGV4dCIpOwogICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKGFjdGlvbl9tc2cuY29udGV4dCA9PT0gbnVsbCkgeworICAg
ICAgICAgICAgICAgIGFjdGlvbl9tc2cuY29udGV4dCA9IGdldF93aW5kb3dfaWQod2luZG93KTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNtZF9pZCA9IGN0eF9jbWRfaWQrKzsKICAgICAg
ICAgICAgIGFjdGlvbl9tc2cuY21kX2lkID0gY21kX2lkOwogICAgICAgICAgICAgd2luZG93LnRl
c3RfZHJpdmVyLm1lc3NhZ2VfdGVzdCh7dHlwZTogInRlc3Rkcml2ZXItY29tbWFuZCIsCkBAIC0x
NjksNiArMTcyLDEwIEBACiAgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJjbGljayIsIHtz
ZWxlY3RvciwgY29udGV4dH0pOwogICAgIH07CiAKKyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50
ZXJuYWwuZGVsZXRlX2FsbF9jb29raWVzID0gZnVuY3Rpb24oY29udGV4dD1udWxsKSB7CisgICAg
ICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJkZWxldGVfYWxsX2Nvb2tpZXMiLCB7Y29udGV4dH0p
OworICAgIH07CisKICAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2VuZF9rZXlzID0g
ZnVuY3Rpb24oZWxlbWVudCwga2V5cykgewogICAgICAgICBjb25zdCBzZWxlY3RvciA9IGdldF9z
ZWxlY3RvcihlbGVtZW50KTsKICAgICAgICAgY29uc3QgY29udGV4dCA9IGdldF9jb250ZXh0KGVs
ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3Jl
cG9ydC1zZXJ2by5qcwppbmRleCBhMTBiNjlkZjU1MDQuLjRhMjdkYzI3ZWY2ZiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMK
QEAgLTEsNCArMSw0IEBACi12YXIgcHJvcHMgPSB7b3V0cHV0OiUob3V0cHV0KWR9OwordmFyIHBy
b3BzID0ge291dHB1dDolKG91dHB1dClkLCBkZWJ1ZzogJShkZWJ1ZylzfTsKIHZhciBzdGFydF9s
b2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiBzdGFydF9sb2MuaHJlZiA9IGxvY2F0
aW9uLmhyZWY7CiBzZXR1cChwcm9wcyk7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2
b2RyaXZlci5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvZHJpdmVyLmpzCmluZGV4IGM4ODg0MTM2
MDQ3MC4uNzgxOTUzOGRiYjhmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZl
ci5qcworKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcwpAQCAtMSw0ICsxLDQgQEAK
LXNldHVwKHtvdXRwdXQ6JShvdXRwdXQpZH0pOworc2V0dXAoe291dHB1dDolKG91dHB1dClkLCBk
ZWJ1ZzogJShkZWJ1ZylzfSk7CiAKIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkg
ewogICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgc3RhdHVzKSB7
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCmluZGV4
IDljZDY4MGUxNGFlZC4uZDM4NTY5MjQ0NWM1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5q
cworKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcwpAQCAtNzMsNiArNzMsNyBAQCB3aW5kb3cuX193cHRy
dW5uZXJfcHJvY2Vzc19uZXh0X2V2ZW50ID0gZnVuY3Rpb24oKSB7CiAgIHZhciBwcm9wcyA9IHtv
dXRwdXQ6ICUob3V0cHV0KWQsCiAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI6ICUo
dGltZW91dF9tdWx0aXBsaWVyKXMsCiAgICAgICAgICAgICAgICBleHBsaWNpdF90aW1lb3V0OiAl
KGV4cGxpY2l0X3RpbWVvdXQpcywKKyAgICAgICAgICAgICAgIGRlYnVnOiAlKGRlYnVnKXMsCiAg
ICAgICAgICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJjb21wbGV0aW9uIl19OwogCiAgIGFkZF9j
b21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgewpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdGxvYWRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKaW5kZXggNGEzZmE0MjczNjU0Li45NDky
YThiYzM4ZTYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQpAQCAtMSwx
NiArMSwxNCBAQAogaW1wb3J0IGhhc2hsaWIKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKLWZyb20g
c2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQKK2Zyb20gdXJsbGliLnBhcnNl
IGltcG9ydCB1cmxzcGxpdAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9k
Ci1mcm9tIHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gcXVldWUgaW1wb3J0IEVt
cHR5CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdCwgZGVxdWUKLWZyb20gbXVs
dGlwcm9jZXNzaW5nIGltcG9ydCBRdWV1ZQotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9iaW5hcnks
IGl0ZXJpdGVtcwotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCiAKIGZyb20gLiBpbXBvcnQg
bWFuaWZlc3RpbmNsdWRlCiBmcm9tIC4gaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQKK2Zyb20gLiBp
bXBvcnQgbXBjb250ZXh0CiBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKIGZyb20gbW96bG9nIGltcG9y
dCBzdHJ1Y3R1cmVkCiAKQEAgLTIyLDkgKzIwLDkgQEAgZG93bmxvYWRfZnJvbV9naXRodWIgPSBO
b25lCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6CiAgICAgIyBUaGlzIHJlbGllcyBvbiBhbiBh
bHJlYWR5IGxvYWRlZCBtb2R1bGUgaGF2aW5nIHNldCB0aGUgc3lzLnBhdGggY29ycmVjdGx5IDoo
CiAgICAgZ2xvYmFsIG1hbmlmZXN0LCBtYW5pZmVzdF91cGRhdGUsIGRvd25sb2FkX2Zyb21fZ2l0
aHViCi0gICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QKKyAgICBmcm9tIG1hbmlmZXN0
IGltcG9ydCBtYW5pZmVzdCAgIyB0eXBlOiBpZ25vcmUKICAgICBmcm9tIG1hbmlmZXN0IGltcG9y
dCB1cGRhdGUgYXMgbWFuaWZlc3RfdXBkYXRlCi0gICAgZnJvbSBtYW5pZmVzdC5kb3dubG9hZCBp
bXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIKKyAgICBmcm9tIG1hbmlmZXN0LmRvd25sb2FkIGlt
cG9ydCBkb3dubG9hZF9mcm9tX2dpdGh1YiAgIyB0eXBlOiBpZ25vcmUKIAogCiBjbGFzcyBUZXN0
R3JvdXBzRmlsZShvYmplY3QpOgpAQCAtNDEsNyArMzksNyBAQCBjbGFzcyBUZXN0R3JvdXBzRmls
ZShvYmplY3QpOgogICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICBzZWxmLmdyb3VwX2J5X3Rl
c3QgPSB7fQotICAgICAgICBmb3IgZ3JvdXAsIHRlc3RfaWRzIGluIGl0ZXJpdGVtcyhzZWxmLl9k
YXRhKToKKyAgICAgICAgZm9yIGdyb3VwLCB0ZXN0X2lkcyBpbiBzZWxmLl9kYXRhLml0ZW1zKCk6
CiAgICAgICAgICAgICBmb3IgdGVzdF9pZCBpbiB0ZXN0X2lkczoKICAgICAgICAgICAgICAgICBz
ZWxmLmdyb3VwX2J5X3Rlc3RbdGVzdF9pZF0gPSBncm91cAogCkBAIC01MSw2ICs0OSwxNiBAQCBj
bGFzcyBUZXN0R3JvdXBzRmlsZShvYmplY3QpOgogICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBr
ZXkpOgogICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtrZXldCiAKK2RlZiByZWFkX2luY2x1ZGVf
ZnJvbV9maWxlKGZpbGUpOgorICAgIG5ld19pbmNsdWRlID0gW10KKyAgICB3aXRoIG9wZW4oZmls
ZSkgYXMgZjoKKyAgICAgICAgZm9yIGxpbmUgaW4gZjoKKyAgICAgICAgICAgIGxpbmUgPSBsaW5l
LnN0cmlwKCkKKyAgICAgICAgICAgICMgQWxsb3cgd2hvbGUtbGluZSBjb21tZW50czsKKyAgICAg
ICAgICAgICMgZnJhZ21lbnRzIG1lYW4gd2UgY2FuJ3QgaGF2ZSBwYXJ0aWFsIGxpbmUgIy1iYXNl
ZCBjb21tZW50cworICAgICAgICAgICAgaWYgbGVuKGxpbmUpID4gMCBhbmQgbm90IGxpbmUuc3Rh
cnRzd2l0aCgiIyIpOgorICAgICAgICAgICAgICAgIG5ld19pbmNsdWRlLmFwcGVuZChsaW5lKQor
ICAgIHJldHVybiBuZXdfaW5jbHVkZQogCiBkZWYgdXBkYXRlX2luY2x1ZGVfZm9yX2dyb3Vwcyh0
ZXN0X2dyb3VwcywgaW5jbHVkZSk6CiAgICAgaWYgaW5jbHVkZSBpcyBOb25lOgpAQCAtOTMsNyAr
MTAxLDcgQEAgY2xhc3MgSGFzaENodW5rZXIoVGVzdENodW5rZXIpOgogICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCBtYW5pZmVzdCk6CiAgICAgICAgIGNodW5rX2luZGV4ID0gc2VsZi5jaHVua19udW1i
ZXIgLSAxCiAgICAgICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMgaW4gbWFuaWZl
c3Q6Ci0gICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGVuc3VyZV9iaW5hcnkodGVzdF9w
YXRoKSkuaGV4ZGlnZXN0KCksIDE2KQorICAgICAgICAgICAgaCA9IGludChoYXNobGliLm1kNSh0
ZXN0X3BhdGguZW5jb2RlKCkpLmhleGRpZ2VzdCgpLCAxNikKICAgICAgICAgICAgIGlmIGggJSBz
ZWxmLnRvdGFsX2NodW5rcyA9PSBjaHVua19pbmRleDoKICAgICAgICAgICAgICAgICB5aWVsZCB0
ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMKIApAQCAtMTEyLDcgKzEyMCw3IEBAIGNsYXNzIERp
cmVjdG9yeUhhc2hDaHVua2VyKFRlc3RDaHVua2VyKToKICAgICAgICAgICAgICAgICBoYXNoX3Bh
dGggPSBvcy5wYXRoLnNlcC5qb2luKG9zLnBhdGguZGlybmFtZSh0ZXN0X3BhdGgpLnNwbGl0KG9z
LnBhdGguc2VwLCBkZXB0aClbOmRlcHRoXSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAgICAgaGFzaF9wYXRoID0gb3MucGF0aC5kaXJuYW1lKHRlc3RfcGF0aCkKLSAgICAgICAgICAg
IGggPSBpbnQoaGFzaGxpYi5tZDUoZW5zdXJlX2JpbmFyeShoYXNoX3BhdGgpKS5oZXhkaWdlc3Qo
KSwgMTYpCisgICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGhhc2hfcGF0aC5lbmNvZGUo
KSkuaGV4ZGlnZXN0KCksIDE2KQogICAgICAgICAgICAgaWYgaCAlIHNlbGYudG90YWxfY2h1bmtz
ID09IGNodW5rX2luZGV4OgogICAgICAgICAgICAgICAgIHlpZWxkIHRlc3RfdHlwZSwgdGVzdF9w
YXRoLCB0ZXN0cwogCkBAIC0xNzMsNyArMTgxLDcgQEAgY2xhc3MgTWFuaWZlc3RMb2FkZXIob2Jq
ZWN0KToKIAogICAgIGRlZiBsb2FkKHNlbGYpOgogICAgICAgICBydiA9IHt9Ci0gICAgICAgIGZv
ciB1cmxfYmFzZSwgcGF0aHMgaW4gaXRlcml0ZW1zKHNlbGYudGVzdF9wYXRocyk6CisgICAgICAg
IGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gc2VsZi50ZXN0X3BhdGhzLml0ZW1zKCk6CiAgICAgICAg
ICAgICBtYW5pZmVzdF9maWxlID0gc2VsZi5sb2FkX21hbmlmZXN0KHVybF9iYXNlPXVybF9iYXNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnBhdGhz
KQogICAgICAgICAgICAgcGF0aF9kYXRhID0geyJ1cmxfYmFzZSI6IHVybF9iYXNlfQpAQCAtMzkw
LDcgKzM5OCw4IEBAIGNsYXNzIEdyb3VwZWRTb3VyY2UoVGVzdFNvdXJjZSk6CiAKICAgICBAY2xh
c3NtZXRob2QKICAgICBkZWYgbWFrZV9xdWV1ZShjbHMsIHRlc3RzLCAqKmt3YXJncyk6Ci0gICAg
ICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250
ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1wLlF1ZXVlKCkKICAgICAgICAgZ3JvdXBzID0g
W10KIAogICAgICAgICBzdGF0ZSA9IHt9CkBAIC00MjMsNyArNDMyLDggQEAgY2xhc3MgR3JvdXBl
ZFNvdXJjZShUZXN0U291cmNlKToKIGNsYXNzIFNpbmdsZVRlc3RTb3VyY2UoVGVzdFNvdXJjZSk6
CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0ZXN0cywgKiprd2Fy
Z3MpOgotICAgICAgICB0ZXN0X3F1ZXVlID0gUXVldWUoKQorICAgICAgICBtcCA9IG1wY29udGV4
dC5nZXRfY29udGV4dCgpCisgICAgICAgIHRlc3RfcXVldWUgPSBtcC5RdWV1ZSgpCiAgICAgICAg
IHByb2Nlc3NlcyA9IGt3YXJnc1sicHJvY2Vzc2VzIl0KICAgICAgICAgcXVldWVzID0gW2RlcXVl
KFtdKSBmb3IgXyBpbiByYW5nZShwcm9jZXNzZXMpXQogICAgICAgICBtZXRhZGF0YXMgPSBbY2xz
Lmdyb3VwX21ldGFkYXRhKE5vbmUpIGZvciBfIGluIHJhbmdlKHByb2Nlc3NlcyldCkBAIC00Njcs
OSArNDc3LDEwIEBAIGNsYXNzIEdyb3VwRmlsZVRlc3RTb3VyY2UoVGVzdFNvdXJjZSk6CiAKICAg
ICAgICAgaWRzX3RvX3Rlc3RzID0ge3Rlc3QuaWQ6IHRlc3QgZm9yIHRlc3QgaW4gdGVzdHN9CiAK
LSAgICAgICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgbXAgPSBtcGNvbnRleHQuZ2V0
X2NvbnRleHQoKQorICAgICAgICB0ZXN0X3F1ZXVlID0gbXAuUXVldWUoKQogCi0gICAgICAgIGZv
ciBncm91cF9uYW1lLCB0ZXN0X2lkcyBpbiBpdGVyaXRlbXModGVzdHNfYnlfZ3JvdXApOgorICAg
ICAgICBmb3IgZ3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gdGVzdHNfYnlfZ3JvdXAuaXRlbXMoKToK
ICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0geyJzY29wZSI6IGdyb3VwX25hbWV9CiAgICAg
ICAgICAgICBncm91cCA9IGRlcXVlKCkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5u
ZXIucHkKaW5kZXggMGJkZTViYTM0OGVhLi40ZGExMjU1ZDEzYjcgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5u
ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHJ1bm5lci5weQpAQCAtMSwxNCArMSwxMiBAQAotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCi0KLWltcG9ydCBtdWx0aXByb2Nlc3NpbmcKIGltcG9y
dCB0aHJlYWRpbmcKIGltcG9ydCB0cmFjZWJhY2sKLWZyb20gc2l4Lm1vdmVzLnF1ZXVlIGltcG9y
dCBFbXB0eQorZnJvbSBxdWV1ZSBpbXBvcnQgRW1wdHkKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0
IG5hbWVkdHVwbGUKLWZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQcm9jZXNzLCBjdXJyZW50
X3Byb2Nlc3MsIFF1ZXVlCiAKIGZyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVkbG9nLCBjYXB0
dXJlCiAKK2Zyb20gLiBpbXBvcnQgbXBjb250ZXh0CisKICMgU3BlY2lhbCB2YWx1ZSB1c2VkIGFz
IGEgc2VudGluYWwgaW4gdmFyaW91cyBjb21tYW5kcwogU3RvcCA9IG9iamVjdCgpCiAKQEAgLTI0
LDMwICsyMiwxMiBAQCBkZWYgcmVsZWFzZV9tb3psb2dfbG9jaygpOgogICAgICAgICBwYXNzCiAK
IAotY2xhc3MgTWVzc2FnZUxvZ2dlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBt
ZXNzYWdlX2Z1bmMpOgotICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSA9IG1lc3NhZ2VfZnVuYwot
Ci0gICAgZGVmIF9sb2dfZGF0YShzZWxmLCBhY3Rpb24sICoqa3dhcmdzKToKLSAgICAgICAgc2Vs
Zi5zZW5kX21lc3NhZ2UoImxvZyIsIGFjdGlvbiwga3dhcmdzKQotCi0gICAgZGVmIHByb2Nlc3Nf
b3V0cHV0KHNlbGYsIHByb2Nlc3MsIGRhdGEsIGNvbW1hbmQpOgotICAgICAgICBzZWxmLl9sb2df
ZGF0YSgicHJvY2Vzc19vdXRwdXQiLCBwcm9jZXNzPXByb2Nlc3MsIGRhdGE9ZGF0YSwgY29tbWFu
ZD1jb21tYW5kKQotCitjbGFzcyBMb2dNZXNzYWdlSGFuZGxlcjoKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgc2VuZF9tZXNzYWdlKToKKyAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UgPSBzZW5kX21l
c3NhZ2UKIAotZGVmIF9sb2dfZnVuYyhsZXZlbF9uYW1lKToKLSAgICBkZWYgbG9nKHNlbGYsIG1l
c3NhZ2UpOgotICAgICAgICBzZWxmLl9sb2dfZGF0YShsZXZlbF9uYW1lLmxvd2VyKCksIG1lc3Nh
Z2U9bWVzc2FnZSkKLSAgICBsb2cuX19kb2NfXyA9ICIiIkxvZyBhIG1lc3NhZ2Ugd2l0aCBsZXZl
bCAlcwotCi06cGFyYW0gbWVzc2FnZTogVGhlIHN0cmluZyBtZXNzYWdlIHRvIGxvZwotIiIiICUg
bGV2ZWxfbmFtZQotICAgIGxvZy5fX25hbWVfXyA9IHN0cihsZXZlbF9uYW1lKS5sb3dlcigpCi0g
ICAgcmV0dXJuIGxvZwotCi0jIENyZWF0ZSBhbGwgdGhlIG1ldGhvZHMgb24gU3RydWN0dXJlZExv
ZyBmb3IgZGVidWcgbGV2ZWxzCi1mb3IgbGV2ZWxfbmFtZSBpbiBzdHJ1Y3R1cmVkbG9nLmxvZ19s
ZXZlbHM6Ci0gICAgc2V0YXR0cihNZXNzYWdlTG9nZ2VyLCBsZXZlbF9uYW1lLmxvd2VyKCksIF9s
b2dfZnVuYyhsZXZlbF9uYW1lKSkKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZGF0YSk6CisgICAg
ICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJsb2ciLCBkYXRhKQogCiAKIGNsYXNzIFRlc3RSdW5uZXIo
b2JqZWN0KToKQEAgLTY4LDcgKzQ4LDcgQEAgY2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogICAg
ICAgICBzZWxmLnJlc3VsdF9xdWV1ZSA9IHJlc3VsdF9xdWV1ZQogCiAgICAgICAgIHNlbGYuZXhl
Y3V0b3IgPSBleGVjdXRvcgotICAgICAgICBzZWxmLm5hbWUgPSBjdXJyZW50X3Byb2Nlc3MoKS5u
YW1lCisgICAgICAgIHNlbGYubmFtZSA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpLmN1cnJlbnRf
cHJvY2VzcygpLm5hbWUKICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKIAogICAgIGRlZiBf
X2VudGVyX18oc2VsZik6CkBAIC05OCw3ICs3OCwxMiBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVj
dCk6CiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgIiIiTWFpbiBsb29wIGFjY2VwdGluZyBj
b21tYW5kcyBvdmVyIHRoZSBwaXBlIGFuZCB0cmlnZ2VyaW5nCiAgICAgICAgIHRoZSBhc3NvY2lh
dGVkIG1ldGhvZHMiIiIKLSAgICAgICAgc2VsZi5zZXR1cCgpCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHNlbGYuc2V0dXAoKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAg
ICAgc2VsZi5sb2dnZXIud2FybmluZygiQW4gZXJyb3Igb2NjdXJlZCBkdXJpbmcgZXhlY3V0b3Ig
c2V0dXA6XG4lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2su
Zm9ybWF0X2V4YygpKQorICAgICAgICAgICAgcmFpc2UKICAgICAgICAgY29tbWFuZHMgPSB7InJ1
bl90ZXN0Ijogc2VsZi5ydW5fdGVzdCwKICAgICAgICAgICAgICAgICAgICAgInJlc2V0Ijogc2Vs
Zi5yZXNldCwKICAgICAgICAgICAgICAgICAgICAgInN0b3AiOiBzZWxmLnN0b3AsCkBAIC0xNTMs
NyArMTM4LDkgQEAgZGVmIHN0YXJ0X3J1bm5lcihydW5uZXJfY29tbWFuZF9xdWV1ZSwgcnVubmVy
X3Jlc3VsdF9xdWV1ZSwKICAgICAjIGluIHRoZSBsb2dnaW5nIG1vZHVsZSB1bmxvY2tlZAogICAg
IHJlbGVhc2VfbW96bG9nX2xvY2soKQogCi0gICAgbG9nZ2VyID0gTWVzc2FnZUxvZ2dlcihzZW5k
X21lc3NhZ2UpCisgICAgcHJvY19uYW1lID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkuY3VycmVu
dF9wcm9jZXNzKCkubmFtZQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExv
Z2dlcihwcm9jX25hbWUpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKExvZ01lc3NhZ2VIYW5kbGVy
KHNlbmRfbWVzc2FnZSkpCiAKICAgICB3aXRoIGNhcHR1cmUuQ2FwdHVyZUlPKGxvZ2dlciwgY2Fw
dHVyZV9zdGRpbyk6CiAgICAgICAgIHRyeToKQEAgLTI2NSw3ICsyNTIsNyBAQCBjbGFzcyBCcm93
c2VyTWFuYWdlcihvYmplY3QpOgogCiBjbGFzcyBfUnVubmVyTWFuYWdlclN0YXRlKG9iamVjdCk6
CiAgICAgYmVmb3JlX2luaXQgPSBuYW1lZHR1cGxlKCJiZWZvcmVfaW5pdCIsIFtdKQotICAgIGlu
aXRpYWxpemluZyA9IG5hbWVkdHVwbGUoImluaXRpYWxpemluZ19icm93c2VyIiwKKyAgICBpbml0
aWFsaXppbmcgPSBuYW1lZHR1cGxlKCJpbml0aWFsaXppbmciLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBfbWV0YWRhdGEiLCAiZmFp
bHVyZV9jb3VudCJdKQogICAgIHJ1bm5pbmcgPSBuYW1lZHR1cGxlKCJydW5uaW5nIiwgWyJ0ZXN0
IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBfbWV0YWRhdGEiXSkKICAgICByZXN0YXJ0aW5nID0gbmFt
ZWR0dXBsZSgicmVzdGFydGluZyIsIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwgImdyb3VwX21ldGFk
YXRhIl0pCkBAIC0zMDYsOSArMjkzLDExIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVh
ZGluZy5UaHJlYWQpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yX2NscyA9IGV4ZWN1dG9yX2Nscwog
ICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJncyA9IGV4ZWN1dG9yX2t3YXJncwogCisgICAgICAg
IG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKwogICAgICAgICAjIEZsYWdzIHVzZWQgdG8g
c2h1dCBkb3duIHRoaXMgdGhyZWFkIGlmIHdlIGdldCBhIHNpZ2ludAogICAgICAgICBzZWxmLnBh
cmVudF9zdG9wX2ZsYWcgPSBzdG9wX2ZsYWcKLSAgICAgICAgc2VsZi5jaGlsZF9zdG9wX2ZsYWcg
PSBtdWx0aXByb2Nlc3NpbmcuRXZlbnQoKQorICAgICAgICBzZWxmLmNoaWxkX3N0b3BfZmxhZyA9
IG1wLkV2ZW50KCkKIAogICAgICAgICBzZWxmLnJlcnVuID0gcmVydW4KICAgICAgICAgc2VsZi5y
dW5fY291bnQgPSAwCkBAIC0zMjEsOCArMzEwLDggQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIo
dGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIGFzc2VydCByZWNvcmRpbmcgaXMgbm90IE5vbmUK
ICAgICAgICAgc2VsZi5yZWNvcmRpbmcgPSByZWNvcmRpbmcKIAotICAgICAgICBzZWxmLmNvbW1h
bmRfcXVldWUgPSBRdWV1ZSgpCi0gICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gUXVldWUoKQor
ICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgpCisgICAgICAgIHNlbGYucmVt
b3RlX3F1ZXVlID0gbXAuUXVldWUoKQogCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYyA9
IE5vbmUKIApAQCAtMzMyLDYgKzMyMSw3IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVh
ZGluZy5UaHJlYWQpOgogCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCA9IDAKICAgICAgICAgc2Vs
Zi51bmV4cGVjdGVkX2NvdW50ID0gMAorICAgICAgICBzZWxmLnVuZXhwZWN0ZWRfcGFzc19jb3Vu
dCA9IDAKIAogICAgICAgICAjIFRoaXMgbWF5IG5vdCByZWFsbHkgYmUgd2hhdCB3ZSB3YW50CiAg
ICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1ZQpAQCAtMzU0LDcgKzM0NCw4IEBAIGNsYXNzIFRlc3RS
dW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBzcGlucy4iIiIKICAgICAg
ICAgc2VsZi5yZWNvcmRpbmcuc2V0KFsidGVzdHJ1bm5lciIsICJzdGFydHVwIl0pCiAgICAgICAg
IHNlbGYubG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKHNlbGYuc3VpdGVf
bmFtZSkKLSAgICAgICAgd2l0aCBzZWxmLmJyb3dzZXJfY2xzKHNlbGYubG9nZ2VyLCAqKnNlbGYu
YnJvd3Nlcl9rd2FyZ3MpIGFzIGJyb3dzZXI6CisgICAgICAgIHdpdGggc2VsZi5icm93c2VyX2Ns
cyhzZWxmLmxvZ2dlciwgcmVtb3RlX3F1ZXVlPXNlbGYuY29tbWFuZF9xdWV1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICoqc2VsZi5icm93c2VyX2t3YXJncykgYXMgYnJvd3NlcjoK
ICAgICAgICAgICAgIHNlbGYuYnJvd3NlciA9IEJyb3dzZXJNYW5hZ2VyKHNlbGYubG9nZ2VyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3NlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZSwK
QEAgLTQ5NCw2ICs0ODUsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhy
ZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuc3RhdGUuZmFpbHVyZV9jb3VudCArIDEpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBzZWxmLmV4ZWN1dG9yX2t3YXJnc1siZ3JvdXBfbWV0YWRhdGEiXSA9IHNlbGYuc3RhdGUuZ3Jv
dXBfbWV0YWRhdGEKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3Jfa3dhcmdzWyJicm93c2VyX3Nl
dHRpbmdzIl0gPSBzZWxmLmJyb3dzZXIuYnJvd3Nlcl9zZXR0aW5ncwogICAgICAgICAgICAgc2Vs
Zi5zdGFydF90ZXN0X3J1bm5lcigpCiAKICAgICBkZWYgc3RhcnRfdGVzdF9ydW5uZXIoc2VsZik6
CkBAIC01MTQsOSArNTA2LDExIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5U
aHJlYWQpOgogICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2Jyb3dzZXJfa3dhcmdzLAogICAgICAg
ICAgICAgICAgIHNlbGYuY2FwdHVyZV9zdGRpbywKICAgICAgICAgICAgICAgICBzZWxmLmNoaWxk
X3N0b3BfZmxhZykKLSAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jID0gUHJvY2Vzcyh0YXJn
ZXQ9c3RhcnRfcnVubmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ3M9YXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l
PSJUZXN0UnVubmVyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisKKyAgICAgICAgbXAgPSBt
cGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBt
cC5Qcm9jZXNzKHRhcmdldD1zdGFydF9ydW5uZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWU9IlRlc3RSdW5uZXItJWkiICUgc2VsZi5tYW5hZ2VyX251bWJl
cikKICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnN0YXJ0KCkKICAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIlRlc3QgcnVubmVyIHN0YXJ0ZWQiKQogICAgICAgICAjIE5vdyB3ZSB3YWl0
IGZvciBlaXRoZXIgYW4gaW5pdF9zdWNjZWVkZWQgZXZlbnQgb3IgYW4gaW5pdF9mYWlsZWQgZXZl
bnQKQEAgLTYwNSw2ICs1OTksNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcu
VGhyZWFkKToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBpZiBzZWxmLnRpbWVyIGlzIG5v
dCBOb25lOgogICAgICAgICAgICAgc2VsZi50aW1lci5jYW5jZWwoKQorCiAgICAgICAgICMgV3Jp
dGUgdGhlIHJlc3VsdCBvZiBlYWNoIHN1YnRlc3QKICAgICAgICAgZmlsZV9yZXN1bHQsIHRlc3Rf
cmVzdWx0cyA9IHJlc3VsdHMKICAgICAgICAgc3VidGVzdF91bmV4cGVjdGVkID0gRmFsc2UKQEAg
LTYyNSw2ICs2MjAsMTEgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVh
ZCk6CiAgICAgICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX2NvdW50ICs9IDEKICAgICAgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3RlZCBjb3VudCBpbiB0aGlzIHRocmVh
ZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCiAgICAgICAgICAgICAgICAgc3VidGVzdF91
bmV4cGVjdGVkID0gVHJ1ZQorCisgICAgICAgICAgICBpc191bmV4cGVjdGVkX3Bhc3MgPSBpc191
bmV4cGVjdGVkIGFuZCByZXN1bHQuc3RhdHVzID09ICJQQVNTIgorICAgICAgICAgICAgaWYgaXNf
dW5leHBlY3RlZF9wYXNzOgorICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9wYXNzX2Nv
dW50ICs9IDEKKwogICAgICAgICAgICAgc2VsZi5sb2dnZXIudGVzdF9zdGF0dXModGVzdC5pZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5uYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnN0YXR1cywKQEAgLTYzMywzNCAr
NjMzLDQwIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga25vd25faW50ZXJtaXR0ZW50PWtub3du
X2ludGVybWl0dGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNr
PXJlc3VsdC5zdGFjaykKIAotICAgICAgICAjIFdlIGhhdmUgYSBjb3VwbGUgb2Ygc3RhdHVzIGNv
ZGVzIHRoYXQgYXJlIHVzZWQgaW50ZXJuYWxseSwgYnV0IG5vdCBleHBvc2VkIHRvIHRoZQotICAg
ICAgICAjIHVzZXIuIFRoZXNlIGFyZSB1c2VkIHRvIGluZGljYXRlIHRoYXQgc29tZSBwb3NzaWJs
eS1icm9rZW4gc3RhdGUgd2FzIHJlYWNoZWQKLSAgICAgICAgIyBhbmQgd2Ugc2hvdWxkIHJlc3Rh
cnQgdGhlIHJ1bm5lciBiZWZvcmUgdGhlIG5leHQgdGVzdC4KLSAgICAgICAgIyBJTlRFUk5BTC1F
UlJPUiBpbmRpY2F0ZXMgYSBQeXRob24gZXhjZXB0aW9uIHdhcyBjYXVnaHQgaW4gdGhlIGhhcm5l
c3MKLSAgICAgICAgIyBFWFRFUk5BTC1USU1FT1VUIGluZGljYXRlcyB3ZSBoYWQgdG8gZm9yY2li
bHkga2lsbCB0aGUgYnJvd3NlciBmcm9tIHRoZSBoYXJuZXNzCi0gICAgICAgICMgYmVjYXVzZSB0
aGUgdGVzdCBkaWRuJ3QgcmV0dXJuIGEgcmVzdWx0IGFmdGVyIHJlYWNoaW5nIHRoZSB0ZXN0LWlu
dGVybmFsIHRpbWVvdXQKLSAgICAgICAgc3RhdHVzX3N1Ym5zID0geyJJTlRFUk5BTC1FUlJPUiI6
ICJFUlJPUiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiRVhURVJOQUwtVElNRU9VVCI6ICJU
SU1FT1VUIn0KICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVkKCkKICAgICAgICAga25v
d25faW50ZXJtaXR0ZW50ID0gdGVzdC5rbm93bl9pbnRlcm1pdHRlbnQoKQotICAgICAgICBzdGF0
dXMgPSBzdGF0dXNfc3VibnMuZ2V0KGZpbGVfcmVzdWx0LnN0YXR1cywgZmlsZV9yZXN1bHQuc3Rh
dHVzKQorICAgICAgICBzdGF0dXMgPSBmaWxlX3Jlc3VsdC5zdGF0dXMKIAogICAgICAgICBpZiBz
ZWxmLmJyb3dzZXIuY2hlY2tfY3Jhc2godGVzdC5pZCkgYW5kIHN0YXR1cyAhPSAiQ1JBU0giOgot
ICAgICAgICAgICAgaWYgdGVzdC50ZXN0X3R5cGUgPT0gImNyYXNodGVzdCI6CisgICAgICAgICAg
ICBpZiB0ZXN0LnRlc3RfdHlwZSA9PSAiY3Jhc2h0ZXN0IiBvciBzdGF0dXMgPT0gIkVYVEVSTkFM
LVRJTUVPVVQiOgogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkZvdW5kIGEgY3Jh
c2ggZHVtcCBmaWxlOyBjaGFuZ2luZyBzdGF0dXMgdG8gQ1JBU0giKQogICAgICAgICAgICAgICAg
IHN0YXR1cyA9ICJDUkFTSCIKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIud2FybmluZygiRm91bmQgYSBjcmFzaCBkdW1wOyBzaG91bGQgY2hhbmdlIHN0YXR1
cyBmcm9tICVzIHRvIENSQVNIIGJ1dCB0aGlzIGNhdXNlcyBpbnN0YWJpbGl0eSIgJSAoc3RhdHVz
LCkpCiAKKyAgICAgICAgIyBXZSBoYXZlIGEgY291cGxlIG9mIHN0YXR1cyBjb2RlcyB0aGF0IGFy
ZSB1c2VkIGludGVybmFsbHksIGJ1dCBub3QgZXhwb3NlZCB0byB0aGUKKyAgICAgICAgIyB1c2Vy
LiBUaGVzZSBhcmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHNvbWUgcG9zc2libHktYnJva2VuIHN0
YXRlIHdhcyByZWFjaGVkCisgICAgICAgICMgYW5kIHdlIHNob3VsZCByZXN0YXJ0IHRoZSBydW5u
ZXIgYmVmb3JlIHRoZSBuZXh0IHRlc3QuCisgICAgICAgICMgSU5URVJOQUwtRVJST1IgaW5kaWNh
dGVzIGEgUHl0aG9uIGV4Y2VwdGlvbiB3YXMgY2F1Z2h0IGluIHRoZSBoYXJuZXNzCisgICAgICAg
ICMgRVhURVJOQUwtVElNRU9VVCBpbmRpY2F0ZXMgd2UgaGFkIHRvIGZvcmNpYmx5IGtpbGwgdGhl
IGJyb3dzZXIgZnJvbSB0aGUgaGFybmVzcworICAgICAgICAjIGJlY2F1c2UgdGhlIHRlc3QgZGlk
bid0IHJldHVybiBhIHJlc3VsdCBhZnRlciByZWFjaGluZyB0aGUgdGVzdC1pbnRlcm5hbCB0aW1l
b3V0CisgICAgICAgIHN0YXR1c19zdWJucyA9IHsiSU5URVJOQUwtRVJST1IiOiAiRVJST1IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIkVYVEVSTkFMLVRJTUVPVVQiOiAiVElNRU9VVCJ9Cisg
ICAgICAgIHN0YXR1cyA9IHN0YXR1c19zdWJucy5nZXQoc3RhdHVzLCBzdGF0dXMpCisKICAgICAg
ICAgc2VsZi50ZXN0X2NvdW50ICs9IDEKICAgICAgICAgaXNfdW5leHBlY3RlZCA9IGV4cGVjdGVk
ICE9IHN0YXR1cyBhbmQgc3RhdHVzIG5vdCBpbiBrbm93bl9pbnRlcm1pdHRlbnQKICAgICAgICAg
aWYgaXNfdW5leHBlY3RlZDoKICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCArPSAx
CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3RlZCBjb3VudCBpbiB0aGlz
IHRocmVhZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCiAKKyAgICAgICAgaXNfdW5leHBl
Y3RlZF9wYXNzID0gaXNfdW5leHBlY3RlZCBhbmQgc3RhdHVzID09ICJPSyIKKyAgICAgICAgaWYg
aXNfdW5leHBlY3RlZF9wYXNzOgorICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX3Bhc3NfY291
bnQgKz0gMQorCiAgICAgICAgIGlmICJhc3NlcnRpb25fY291bnQiIGluIGZpbGVfcmVzdWx0LmV4
dHJhOgotICAgICAgICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gZmlsZV9yZXN1bHQuZXh0cmEucG9w
KCJhc3NlcnRpb25fY291bnQiKQotICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2NvdW50ID4gMDoK
KyAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IGZpbGVfcmVzdWx0LmV4dHJhWyJhc3NlcnRp
b25fY291bnQiXQorICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2NvdW50IGlzIG5vdCBOb25lIGFu
ZCBhc3NlcnRpb25fY291bnQgPiAwOgogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmFzc2Vy
dGlvbl9jb3VudCh0ZXN0LmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQoYXNzZXJ0aW9uX2NvdW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdC5taW5fYXNzZXJ0aW9uX2NvdW50LApAQCAtNzIyLDggKzcy
OCw4IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAg
ICBzZWxmLnN0b3BfcnVubmVyKCkKICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5p
bml0aWFsaXppbmcoc2VsZi5zdGF0ZS50ZXN0LCBzZWxmLnN0YXRlLnRlc3RfZ3JvdXAsIHNlbGYu
c3RhdGUuZ3JvdXBfbWV0YWRhdGEsIDApCiAKLSAgICBkZWYgbG9nKHNlbGYsIGFjdGlvbiwga3dh
cmdzKToKLSAgICAgICAgZ2V0YXR0cihzZWxmLmxvZ2dlciwgYWN0aW9uKSgqKmt3YXJncykKKyAg
ICBkZWYgbG9nKHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxmLmxvZ2dlci5sb2dfcmF3KGRhdGEp
CiAKICAgICBkZWYgZXJyb3Ioc2VsZiwgbWVzc2FnZSk6CiAgICAgICAgIHNlbGYubG9nZ2VyLmVy
cm9yKG1lc3NhZ2UpCkBAIC03NjEsMjAgKzc2NywyNiBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdl
cih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIndhaXRpbmcg
Zm9yIHJ1bm5lciBwcm9jZXNzIHRvIGVuZCIpCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJv
Yy5qb2luKDEwKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0ZXIgam9pbiIpCisgICAg
ICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKICAgICAgICAgaWYgc2VsZi50ZXN0X3J1
bm5lcl9wcm9jLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICAjIFRoaXMgbWlnaHQgbGVhayBhIGZp
bGUgaGFuZGxlIGZyb20gdGhlIHF1ZXVlCiAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5n
KCJGb3JjaWJseSB0ZXJtaW5hdGluZyBydW5uZXIgcHJvY2VzcyIpCiAgICAgICAgICAgICBzZWxm
LnRlc3RfcnVubmVyX3Byb2MudGVybWluYXRlKCkKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKCJBZnRlciB0ZXJtaW5hdGluZyBydW5uZXIgcHJvY2VzcyIpCiAKICAgICAgICAgICAgICMg
TXVsdGlwcm9jZXNzaW5nIHF1ZXVlcyBhcmUgYmFja2VkIGJ5IG9wZXJhdGluZyBzeXN0ZW0gcGlw
ZXMuIElmCiAgICAgICAgICAgICAjIHRoZSBwaXBlIGluIHRoZSBjaGlsZCBwcm9jZXNzIGhhZCBi
dWZmZXJlZCBkYXRhIGF0IHRoZSB0aW1lIG9mCiAgICAgICAgICAgICAjIGZvcmNlZCB0ZXJtaW5h
dGlvbiwgdGhlIHF1ZXVlIGlzIG5vIGxvbmdlciBpbiBhIHVzYWJsZSBzdGF0ZQogICAgICAgICAg
ICAgIyAoc3Vic2VxdWVudCBhdHRlbXB0cyB0byByZXRyaWV2ZSBpdGVtcyBtYXkgYmxvY2sgaW5k
ZWZpbml0ZWx5KS4KICAgICAgICAgICAgICMgRGlzY2FyZCB0aGUgcG90ZW50aWFsbHktY29ycnVw
dGVkIHF1ZXVlIGFuZCBjcmVhdGUgYSBuZXcgb25lLgorICAgICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIlJlY3JlYXRpbmcgY29tbWFuZCBxdWV1ZSIpCisgICAgICAgICAgICBzZWxmLmNvbW1h
bmRfcXVldWUuY2FuY2VsX2pvaW5fdGhyZWFkKCkKICAgICAgICAgICAgIHNlbGYuY29tbWFuZF9x
dWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBRdWV1ZSgpCisg
ICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgpCisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygiUmVjcmVhdGluZyByZW1vdGUgcXVldWUiKQorICAgICAgICAgICAg
c2VsZi5yZW1vdGVfcXVldWUuY2FuY2VsX2pvaW5fdGhyZWFkKCkKICAgICAgICAgICAgIHNlbGYu
cmVtb3RlX3F1ZXVlLmNsb3NlKCkKLSAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gUXVl
dWUoKQorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSBtcC5RdWV1ZSgpCiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUnVubmVyIHByb2Nlc3MgZXhp
dGVkIHdpdGggY29kZSAlaSIgJSBzZWxmLnRlc3RfcnVubmVyX3Byb2MuZXhpdGNvZGUpCiAKQEAg
LTkxNSwzICs5MjcsNiBAQCBjbGFzcyBNYW5hZ2VyR3JvdXAob2JqZWN0KToKIAogICAgIGRlZiB1
bmV4cGVjdGVkX2NvdW50KHNlbGYpOgogICAgICAgICByZXR1cm4gc3VtKG1hbmFnZXIudW5leHBl
Y3RlZF9jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBvb2wpCisKKyAgICBkZWYgdW5leHBlY3Rl
ZF9wYXNzX2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc3VtKG1hbmFnZXIudW5leHBlY3Rl
ZF9wYXNzX2NvdW50IGZvciBtYW5hZ2VyIGluIHNlbGYucG9vbCkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jy
b3dzZXJzL3Rlc3Rfc2F1Y2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5CmluZGV4IGUx
ZTE4ZWM1ZTljZC4uMzI0NWQxMjVjNTM0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3Nh
dWNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKQEAgLTEsNiArMSw3IEBACitp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IHN5cworZnJvbSB1bml0dGVzdCBpbXBvcnQgbW9jawogCi1p
bXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRp
cm5hbWUKQEAgLTExLDYgKzEyLDggQEAgc2F1Y2UgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJ3cHRy
dW5uZXIuYnJvd3NlcnMuc2F1Y2UiKQogCiBmcm9tIHdwdHNlcnZlLmNvbmZpZyBpbXBvcnQgQ29u
ZmlnQnVpbGRlcgogCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKIAogZGVmIHRlc3Rf
c2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKICAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KHNhdWNl
LlNhdWNlQ29ubmVjdCwgInVwbG9hZF9wcmVydW5fZXhlYyIpLFwKQEAgLTI5LDcgKzMyLDcgQEAg
ZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKICAgICAgICAgICAgIHNhdWNlX2Nvbm5l
Y3RfYmluYXJ5PSJkZGQiLAogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtdKQogCi0g
ICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMg
ZW52X2NvbmZpZzoKKyAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGxvZ2dlciwgYnJvd3Nlcl9o
b3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAgICAgICAgICAgICBzYXVjZV9jb25u
ZWN0KE5vbmUsIGVudl9jb25maWcpCiAgICAgICAgICAgICB3aXRoIHNhdWNlX2Nvbm5lY3Q6CiAg
ICAgICAgICAgICAgICAgcGFzcwpAQCAtNTksNyArNjIsNyBAQCBkZWYgdGVzdF9zYXVjZWNvbm5l
Y3RfZmFpbHVyZV9leGl0KHJlYWR5ZmlsZSwgcmV0dXJuY29kZSk6CiAgICAgICAgICAgICBzYXVj
ZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYXJncz1b
XSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5l
dCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihsb2dnZXIsIGJy
b3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgogICAgICAgICAgICAgc2F1
Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQogICAgICAgICAgICAgd2l0aCBweXRlc3QucmFp
c2VzKHNhdWNlLlNhdWNlRXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICB3aXRoIHNhdWNlX2Nv
bm5lY3Q6CkBAIC04OCw3ICs5MSw3IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9jbGVhbnVwKCk6
CiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAgICAgICAgIHNh
dWNlX2Nvbm5lY3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nl
cl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdpdGggQ29uZmln
QnVpbGRlcihsb2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmln
OgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQogICAgICAgICAg
ICAgd2l0aCBzYXVjZV9jb25uZWN0OgogICAgICAgICAgICAgICAgIFBvcGVuLnJldHVybl92YWx1
ZS5wb2xsLnJldHVybl92YWx1ZSA9IE5vbmUKQEAgLTExMiw3ICsxMTUsNyBAQCBkZWYgdGVzdF9z
YXVjZWNvbm5lY3RfZmFpbHVyZV9uZXZlcl9yZWFkeSgpOgogICAgICAgICAgICAgc2F1Y2VfY29u
bmVjdF9iaW5hcnk9ImRkZCIsCiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAK
LSAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBh
cyBlbnZfY29uZmlnOgorICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIobG9nZ2VyLCBicm93c2Vy
X2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKICAgICAgICAgICAgIHNhdWNlX2Nv
bm5lY3QoTm9uZSwgZW52X2NvbmZpZykKICAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhz
YXVjZS5TYXVjZUV4Y2VwdGlvbik6CiAgICAgICAgICAgICAgICAgd2l0aCBzYXVjZV9jb25uZWN0
OgpAQCAtMTQxLDcgKzE0NCw4IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF90dW5uZWxfZG9tYWlu
cygpOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCiAgICAgICAgICAg
ICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJy
b3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiLAorICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIobG9n
Z2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5l
dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVfaG9zdHM9eyJhbHQiOiAi
ZXhhbXBsZS5vcmcifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmRvbWFpbnM9eyJh
IiwgImIifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdF9zdWJkb21haW5zPXsieCIs
ICJ5In0pIGFzIGVudl9jb25maWc6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtp
dGd0ay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5CmluZGV4IDYxNTBkNTBhY2Y5
My4uYjIwZDM1NzY2NzRlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weQpAQCAtMSwzICsxLDQgQEAKK2lt
cG9ydCBsb2dnaW5nCiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRpcm5hbWUKIAogaW1wb3J0
IHB5dGVzdApAQCAtOSw2ICsxMCw4IEBAIGZyb20gd3B0cnVubmVyIGltcG9ydCBlbnZpcm9ubWVu
dCwgcHJvZHVjdHMKIHRlc3RfcGF0aHMgPSB7Ii8iOiB7InRlc3RzX3BhdGgiOiBqb2luKGRpcm5h
bWUoX19maWxlX18pLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iKX19ICAjIHJlcG8gcm9v
dAogZW52aXJvbm1lbnQuZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRlc3RfcGF0aHMpCiAKK2xv
Z2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKwogCiBAYWN0aXZlX3Byb2R1Y3RzKCJwcm9kdWN0
IikKIGRlZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChwcm9kdWN0KToK
QEAgLTIyLDEwICsyNSw3IEBAIGRlZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0ZV9kb21haW5f
bGlzdChwcm9kdWN0KToKICAgICBpZiBwcm9kdWN0IG5vdCBpbiBbImVwaXBoYW55IiwgIndlYmtp
dCIsICJ3ZWJraXRndGtfbWluaWJyb3dzZXIiXToKICAgICAgICAgcHl0ZXN0LnNraXAoIiVzIGRv
ZXNuJ3Qgc3VwcG9ydCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCIgJSBwcm9kdWN0KQogCi0gICAg
KGNoZWNrX2FyZ3MsCi0gICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdz
LAotICAgICBleGVjdXRvcl9jbGFzc2VzLCBnZXRfZXhlY3V0b3Jfa3dhcmdzLAotICAgICBlbnZf
b3B0aW9ucywgZ2V0X2Vudl9leHRyYXMsIHJ1bl9pbmZvX2V4dHJhcykgPSBwcm9kdWN0cy5sb2Fk
X3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisgICAgcHJvZHVjdF9kYXRhID0gcHJvZHVjdHMuUHJvZHVj
dCh7fSwgcHJvZHVjdCkKIAogICAgIGNlcnRfZmlsZSA9ICIvaG9tZS91c2VyL3dwdC90b29scy9j
ZXJ0cy9jYWNlcnQucGVtIgogICAgIHZhbGlkX2RvbWFpbnNfdGVzdCA9IFsiYS5leGFtcGxlLm9y
ZyIsICJiLmV4YW1wbGUub3JnIiwgImV4YW1wbGUub3JnIiwKQEAgLTQxLDEyICs0MSwyNSBAQCBk
ZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNhdGVfZG9tYWluX2xpc3QocHJvZHVjdCk6CiAgICAg
a3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSBOb25lCiAgICAga3dhcmdzWyJwYXVzZV9hZnRl
cl90ZXN0Il0gPSBGYWxzZQogICAgIGt3YXJnc1sicGF1c2Vfb25fdW5leHBlY3RlZCJdID0gRmFs
c2UKLSAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIsCisg
ICAga3dhcmdzWyJkZWJ1Z190ZXN0Il0gPSBGYWxzZQorICAgIHdpdGggQ29uZmlnQnVpbGRlcihs
b2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQi
LAogICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVfaG9zdHM9eyJhbHQiOiAiZXhhbXBs
ZS5vcmcifSwKICAgICAgICAgICAgICAgICAgICAgICAgc3ViZG9tYWlucz17ImEiLCAiYiJ9LAog
ICAgICAgICAgICAgICAgICAgICAgICBub3Rfc3ViZG9tYWlucz17IngiLCAieSJ9KSBhcyBlbnZf
Y29uZmlnOgogCi0gICAgICAgIGV4ZWN1dG9yX2FyZ3MgPSBnZXRfZXhlY3V0b3Jfa3dhcmdzKE5v
bmUsIGVudl9jb25maWcsIE5vbmUsIE5vbmUsICoqa3dhcmdzKQorICAgICAgICAjIFdlIGRvbid0
IHdhbnQgdG8gYWN0dWFsbHkgY3JlYXRlIGEgdGVzdCBlbnZpcm9ubWVudDsgdGhlIGdldF9leGVj
dXRvcl9rd2FyZ3MKKyAgICAgICAgIyBmdW5jdGlvbiBvbmx5IHJlYWxseSB3YW50cyBhbiBvYmpl
Y3Qgd2l0aCB0aGUgY29uZmlnIGtleQorCisgICAgICAgIGNsYXNzIE1vY2tFbnZpcm9ubWVudDoK
KyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgorICAgICAgICAgICAgICAg
IHNlbGYuY29uZmlnID0gY29uZmlnCisKKyAgICAgICAgZXhlY3V0b3JfYXJncyA9IHByb2R1Y3Rf
ZGF0YS5nZXRfZXhlY3V0b3Jfa3dhcmdzKE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9ja0Vudmlyb25tZW50KGVu
dl9jb25maWcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAge30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICAgICAgYXNzZXJ0KCdjYXBhYmlsaXRpZXMn
IGluIGV4ZWN1dG9yX2FyZ3MpCiAgICAgICAgIGFzc2VydCgnd2Via2l0Z3RrOmJyb3dzZXJPcHRp
b25zJyBpbiBleGVjdXRvcl9hcmdzWydjYXBhYmlsaXRpZXMnXSkKICAgICAgICAgYXNzZXJ0KCdj
ZXJ0aWZpY2F0ZXMnIGluIGV4ZWN1dG9yX2FyZ3NbJ2NhcGFiaWxpdGllcyddWyd3ZWJraXRndGs6
YnJvd3Nlck9wdGlvbnMnXSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L3Rlc3RfZm9ybWF0dGVycy5weQppbmRleCA2MGIxYjBhNWE4NzguLjA0NTI2ZGE3MDJiYSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdGVzdF9mb3JtYXR0ZXJzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5w
eQpAQCAtMSwxMiArMSw5IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHRpbWUKLWZyb20gc2l4Lm1v
dmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KLQotaW1wb3J0IG1vY2sKK2Zyb20gaW8g
aW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gbW96bG9nIGltcG9ydCBoYW5kbGVycywgc3RydWN0dXJl
ZGxvZwogCi1mcm9tIC4uZm9ybWF0dGVycyBpbXBvcnQgd3B0cmVwb3J0CiBmcm9tIC4uZm9ybWF0
dGVycy53cHRzY3JlZW5zaG90IGltcG9ydCBXcHRzY3JlZW5zaG90Rm9ybWF0dGVyCiBmcm9tIC4u
Zm9ybWF0dGVycy53cHRyZXBvcnQgaW1wb3J0IFdwdHJlcG9ydEZvcm1hdHRlcgogCkBAIC05Nyw0
NSArOTQsNiBAQCBkZWYgdGVzdF93cHRyZXBvcnRfbG9uZV9zdXJyb2dhdGUoY2FwZmQpOgogICAg
IGFzc2VydCBzdWJ0ZXN0WyJtZXNzYWdlIl0gPT0gdSJcVTAwMDFGNjAxIFUrZGUwYVUrZDgzZCIK
IAogCi1kZWYgdGVzdF93cHRyZXBvcnRfbG9uZV9zdXJyb2dhdGVfdWNzMihjYXBmZCk6Ci0gICAg
IyBTaW5jZSBVQ1M0IGlzIGEgc3VwZXJzZXQgb2YgVUNTMiB3ZSBjYW4gbWVhbmluZ2Z1bGx5IHRl
c3QgdGhlIFVDUzIgY29kZSBvbiBhCi0gICAgIyBVQ1M0IGJ1aWxkLCBidXQgbm90IHRoZSByZXZl
cnNlLiBIb3dldmVyIFVDUzIgaXMgaGFyZGVyIHRvIGhhbmRsZSBhbmQgVUNTNCBpcwotICAgICMg
dGhlIGNvbW1vbmVzdCAoYW5kIHNlbnNpYmxlKSBjb25maWd1cmF0aW9uLCBzbyB0aGF0J3MgT0su
Ci0gICAgb3V0cHV0ID0gU3RyaW5nSU8oKQotICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3Ry
dWN0dXJlZExvZ2dlcigidGVzdF9hIikKLSAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMu
U3RyZWFtSGFuZGxlcihvdXRwdXQsIFdwdHJlcG9ydEZvcm1hdHRlcigpKSkKLQotICAgIHdpdGgg
bW9jay5wYXRjaC5vYmplY3Qod3B0cmVwb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3N1cnJvZ2F0ZV9yZXBsYWNlbWVudCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB3cHRy
ZXBvcnQuU3Vycm9nYXRlUmVwbGFjZW1lbnRVY3MyKCkpOgotICAgICAgICAjIG91dHB1dCBhIGJ1
bmNoIG9mIHN0dWZmCi0gICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRlc3QtaWQtMSJdKSAg
IyBubyBydW5faW5mbyBhcmchCi0gICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0ZXN0LWlkLTEi
KQotICAgICAgICBsb2dnZXIudGVzdF9zdGF0dXMoInRlc3QtaWQtMSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdWJ0ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVx1RDgwMCIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IkZBSUwiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZT11IlxVMDAwMUY2MDEgXHVERTBBXHVEODNEIFx1RDgzRFx1REUwQSIp
Ci0gICAgICAgIGxvZ2dlci50ZXN0X2VuZCgidGVzdC1pZC0xIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1cz0iUEFTUyIsCi0gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXUi
XHVERTBBXHVEODNEIFx1RDgzRFx1REUwQSBcVTAwMDFGNjAxIikKLSAgICAgICAgbG9nZ2VyLnN1
aXRlX2VuZCgpCi0KLSAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRvdXQvc3Rk
ZXJyCi0gICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVyaW5nIGhh
bmRsaW5nIHRvIHN0ZGVyciEpCi0gICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKLSAg
ICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCi0gICAgYXNzZXJ0IGNhcHR1cmVkLmVyciA9PSAi
IgotCi0gICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVyCi0gICAg
b3V0cHV0LnNlZWsoMCkKLSAgICBvdXRwdXRfb2JqID0ganNvbi5sb2FkKG91dHB1dCkKLSAgICB0
ZXN0ID0gb3V0cHV0X29ialsicmVzdWx0cyJdWzBdCi0gICAgYXNzZXJ0IHRlc3RbIm1lc3NhZ2Ui
XSA9PSB1IlUrZGUwYVUrZDgzZCBcVTAwMDFmNjBhIFxVMDAwMUY2MDEiCi0gICAgc3VidGVzdCA9
IHRlc3RbInN1YnRlc3RzIl1bMF0KLSAgICBhc3NlcnQgc3VidGVzdFsibmFtZSJdID09IHUiTmFt
ZSB3aXRoIHN1cnJvZ2F0ZVUrZDgwMCIKLSAgICBhc3NlcnQgc3VidGVzdFsibWVzc2FnZSJdID09
IHUiXFUwMDAxRjYwMSBVK2RlMGFVK2Q4M2QgXFUwMDAxZjYwYSIKLQotCiBkZWYgdGVzdF93cHRy
ZXBvcnRfa25vd25faW50ZXJtaXR0ZW50KGNhcGZkKToKICAgICBvdXRwdXQgPSBTdHJpbmdJTygp
CiAgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkKaW5k
ZXggNWQyYmNmMDc1ZDBmLi4xMjBjN2U3MmM2M2YgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVj
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQpAQCAtMSw2ICsxLDYgQEAKIGZyb20gb3Mu
cGF0aCBpbXBvcnQgam9pbiwgZGlybmFtZQorZnJvbSB1bml0dGVzdCBpbXBvcnQgbW9jawogCi1p
bXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIC5iYXNlIGltcG9ydCBhbGxfcHJvZHVj
dHMsIGFjdGl2ZV9wcm9kdWN0cwpAQCAtMTQsNyArMTQsNyBAQCBlbnZpcm9ubWVudC5kb19kZWxh
eWVkX2ltcG9ydHMoTm9uZSwgdGVzdF9wYXRocykKIEBhY3RpdmVfcHJvZHVjdHMoInByb2R1Y3Qi
KQogZGVmIHRlc3RfbG9hZF9hY3RpdmVfcHJvZHVjdChwcm9kdWN0KToKICAgICAiIiJ0ZXN0IHdl
IGNhbiBzdWNjZXNzZnVsbHkgbG9hZCB0aGUgcHJvZHVjdCBvZiB0aGUgY3VycmVudCB0ZXN0ZW52
IiIiCi0gICAgcHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0KQorICAgIHByb2R1Y3Rz
LlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAgICAgIyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IHRo
cm93CiAKIApAQCAtMjIsNyArMjIsNyBAQCBkZWYgdGVzdF9sb2FkX2FjdGl2ZV9wcm9kdWN0KHBy
b2R1Y3QpOgogZGVmIHRlc3RfbG9hZF9hbGxfcHJvZHVjdHMocHJvZHVjdCk6CiAgICAgIiIidGVz
dCBldmVyeSBwcm9kdWN0IGVpdGhlciBsb2FkcyBvciB0aHJvd3MgSW1wb3J0RXJyb3IiIiIKICAg
ICB0cnk6Ci0gICAgICAgIHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVjdCkKKyAgICAg
ICAgcHJvZHVjdHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKICAgICBleGNlcHQgSW1wb3J0RXJyb3I6
CiAgICAgICAgIHBhc3MKIApAQCAtMzEsMjYgKzMxLDI0IEBAIGRlZiB0ZXN0X2xvYWRfYWxsX3By
b2R1Y3RzKHByb2R1Y3QpOgogICAgICJzYXVjZSI6IHB5dGVzdC5tYXJrLnNraXAoIm5lZWRzIGVu
diBleHRyYXMga3dhcmdzIiksCiB9KQogZGVmIHRlc3Rfc2VydmVyX3N0YXJ0X2NvbmZpZyhwcm9k
dWN0KToKLSAgICAoY2hlY2tfYXJncywKLSAgICAgdGFyZ2V0X2Jyb3dzZXJfY2xzLCBnZXRfYnJv
d3Nlcl9rd2FyZ3MsCi0gICAgIGV4ZWN1dG9yX2NsYXNzZXMsIGdldF9leGVjdXRvcl9rd2FyZ3Ms
Ci0gICAgIGVudl9vcHRpb25zLCBnZXRfZW52X2V4dHJhcywgcnVuX2luZm9fZXh0cmFzKSA9IHBy
b2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVjdCkKKyAgICBwcm9kdWN0X2RhdGEgPSBwcm9k
dWN0cy5Qcm9kdWN0KHt9LCBwcm9kdWN0KQogCi0gICAgZW52X2V4dHJhcyA9IGdldF9lbnZfZXh0
cmFzKCkKKyAgICBlbnZfZXh0cmFzID0gcHJvZHVjdF9kYXRhLmdldF9lbnZfZXh0cmFzKCkKIAog
ICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3QoZW52aXJvbm1lbnQuc2VydmUsICJzdGFydCIpIGFz
IHN0YXJ0OgogICAgICAgICB3aXRoIGVudmlyb25tZW50LlRlc3RFbnZpcm9ubWVudCh0ZXN0X3Bh
dGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudl9vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9kdWN0X2RhdGEuZW52X29wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsidHlwZSI6ICJub25lIn0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVudl9leHRyYXMpOgogICAgICAgICAgICAgc3RhcnQuYXNz
ZXJ0X2NhbGxlZF9vbmNlKCkKICAgICAgICAgICAgIGFyZ3MgPSBzdGFydC5jYWxsX2FyZ3MKLSAg
ICAgICAgICAgIGNvbmZpZyA9IGFyZ3NbMF1bMF0KLSAgICAgICAgICAgIGlmICJzZXJ2ZXJfaG9z
dCIgaW4gZW52X29wdGlvbnM6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZ1sic2VydmVy
X2hvc3QiXSA9PSBlbnZfb3B0aW9uc1sic2VydmVyX2hvc3QiXQorICAgICAgICAgICAgY29uZmln
ID0gYXJnc1swXVsxXQorICAgICAgICAgICAgaWYgInNlcnZlcl9ob3N0IiBpbiBwcm9kdWN0X2Rh
dGEuZW52X29wdGlvbnM6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZ1sic2VydmVyX2hv
c3QiXSA9PSBwcm9kdWN0X2RhdGEuZW52X29wdGlvbnNbInNlcnZlcl9ob3N0Il0KICAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZ1sic2VydmVyX2hvc3QiXSA9
PSBjb25maWdbImJyb3dzZXJfaG9zdCJdCiAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b25maWdbImJpbmRfYWRkcmVzcyJdLCBib29sKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9h
ZGVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5CmluZGV4IDM5NGQyYTAwMTc3Yi4uNzdjZDg1
YjgyMGQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90
ZXN0bG9hZGVyLnB5CkBAIC0xLDUgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmlj
b2RlX2xpdGVyYWxzCi0KIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCkBA
IC04LDYgKzYsNyBAQCBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1
cmVkCiBmcm9tIC4udGVzdGxvYWRlciBpbXBvcnQgVGVzdEZpbHRlciBhcyBGaWx0ZXIsIFRlc3RM
b2FkZXIgYXMgTG9hZGVyCitmcm9tIC4udGVzdGxvYWRlciBpbXBvcnQgcmVhZF9pbmNsdWRlX2Zy
b21fZmlsZQogZnJvbSAudGVzdF93cHR0ZXN0IGltcG9ydCBtYWtlX21vY2tfbWFuaWZlc3QKIAog
aGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKQEAgLTU4LDYgKzU3LDI4IEBAIGRlZiB0
ZXN0X2xvYWRlcl9oMl90ZXN0cygpOgogICAgIGFzc2VydCBsZW4obG9hZGVyLmRpc2FibGVkX3Rl
c3RzWyJ0ZXN0aGFybmVzcyJdKSA9PSAxCiAgICAgYXNzZXJ0IGxvYWRlci5kaXNhYmxlZF90ZXN0
c1sidGVzdGhhcm5lc3MiXVswXS51cmwgPT0gIi9hL2Jhci5oMi5odG1sIgogCitAcHl0ZXN0Lm1h
cmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJOYW1lZFRlbXBvcmFyeUZpbGUgY2Fubm90IGJlIHJlb3BlbmVkIG9uIFdpbjMyIikKK2Rl
ZiB0ZXN0X2luY2x1ZGVfZmlsZSgpOgorICAgIHRlc3RfY2FzZXMgPSAiIiIKKyMgVGhpcyBpcyBh
IGNvbW1lbnQKKy9mb28vYmFyLWVycm9yLmh0dHBzLmh0bWwKKy9mb28vYmFyLXN1Y2Nlc3MuaHR0
cHMuaHRtbAorL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS5odG1sCisvZm9vL2lkbGhhcm5lc3Mu
aHR0cHMuYW55Lndvcmtlci5odG1sCisgICAgIiIiCisKKyAgICB3aXRoIHRlbXBmaWxlLk5hbWVk
VGVtcG9yYXJ5RmlsZShtb2RlPSJ3dCIpIGFzIGY6CisgICAgICAgIGYud3JpdGUodGVzdF9jYXNl
cykKKyAgICAgICAgZi5mbHVzaCgpCisKKyAgICAgICAgaW5jbHVkZSA9IHJlYWRfaW5jbHVkZV9m
cm9tX2ZpbGUoZi5uYW1lKQorCisgICAgICAgIGFzc2VydCBsZW4oaW5jbHVkZSkgPT0gNAorICAg
ICAgICBhc3NlcnQgIi9mb28vYmFyLWVycm9yLmh0dHBzLmh0bWwiIGluIGluY2x1ZGUKKyAgICAg
ICAgYXNzZXJ0ICIvZm9vL2Jhci1zdWNjZXNzLmh0dHBzLmh0bWwiIGluIGluY2x1ZGUKKyAgICAg
ICAgYXNzZXJ0ICIvZm9vL2lkbGhhcm5lc3MuaHR0cHMuYW55Lmh0bWwiIGluIGluY2x1ZGUKKyAg
ICAgICAgYXNzZXJ0ICIvZm9vL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci5odG1sIiBpbiBp
bmNsdWRlCiAKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKICAg
ICAgICAgICAgICAgICAgICByZWFzb249Ik5hbWVkVGVtcG9yYXJ5RmlsZSBjYW5ub3QgYmUgcmVv
cGVuZWQgb24gV2luMzIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0
X3VwZGF0ZS5weQppbmRleCBhMWJhOGRlMjg3ODAuLjgwNGY3NTEyNTE4MCAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvdGVzdF91cGRhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKQEAgLTEsMTEgKzEsMTIg
QEAKIGltcG9ydCBqc29uCi1pbXBvcnQgbW9jawogaW1wb3J0IG9zCi1pbXBvcnQgcHl0ZXN0CiBp
bXBvcnQgc3lzCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitmcm9tIHVuaXR0ZXN0IGltcG9ydCBt
b2NrCisKK2ltcG9ydCBweXRlc3QKIAotZnJvbSAuLiBpbXBvcnQgbWV0YWRhdGEsIG1hbmlmZXN0
dXBkYXRlCitmcm9tIC4uIGltcG9ydCBtZXRhZGF0YSwgbWFuaWZlc3R1cGRhdGUsIHdwdG1hbmlm
ZXN0CiBmcm9tIC4udXBkYXRlLnVwZGF0ZSBpbXBvcnQgV1BUVXBkYXRlCiBmcm9tIC4udXBkYXRl
LmJhc2UgaW1wb3J0IFN0ZXBSdW5uZXIsIFN0ZXAKIGZyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1
cmVkbG9nLCBoYW5kbGVycywgZm9ybWF0dGVycwpAQCAtNDQyLDcgKzQ0Myw3IEBAIGRlZiB0ZXN0
X3VwZGF0ZV9yZW9yZGVyX2V4cGVjdGVkKCk6CiAKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVz
dC5pc19lbXB0eQogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hp
bGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSBb
IkZBSUwiLCAiUEFTUyJdCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09
IFsiUEFTUyIsICJGQUlMIl0KIAogCiBkZWYgdGVzdF91cGRhdGVfYW5kX3ByZXNlcnZlX3VuY2hh
bmdlZF9leHBlY3RlZF9pbnRlcm1pdHRlbnQoKToKQEAgLTE2NzIsMyArMTY3MywxMDUgQEAgZGVm
IHRlc3RfdXBkYXRlX3BpY2tsZSgpOgogICAgIHdwdHVwZGF0ZSA9IFdQVFVwZGF0ZShsb2dnZXIs
ICoqYXJnczIpCiAgICAgd3B0dXBkYXRlID0gV1BUVXBkYXRlKGxvZ2dlciwgcnVubmVyX2Nscz1V
cGRhdGVSdW5uZXIsICoqYXJncykKICAgICB3cHR1cGRhdGUucnVuKCkKKworCitkZWYgdGVzdF91
cGRhdGVfc2VyaWFsaXplX3F1b3RlZCgpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0
bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAgYiIiIlt0ZXN0Lmh0
bV0KKyAgZXhwZWN0ZWQ6ICJFUlJPUiIKKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOgorICAgICBp
ZiBvcyA9PSAibGludXgiOiBbIlBBU1MiLCAiRkFJTCJdCisgICAgICJFUlJPUiIKKyIiIildCisK
KyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0p
LAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0
ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25f
aW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5m
bz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIs
IHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1
cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAg
ICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1IiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkKKyAgICBsb2dfMiA9IHN1
aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAg
ICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJFUlJPUiJ9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkVSUk9SIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAg
ICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogIndpbiJ9KQorCisgICAgdXBkYXRl
ZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBsb2dfMiwgZnVsbF91cGRhdGU9VHJ1ZSwg
dXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorCisKKyAgICBtYW5pZmVzdF9zdHIgPSB3cHRtYW5p
ZmVzdC5zZXJpYWxpemUodXBkYXRlZFswXVsxXS5ub2RlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBza2lwX2VtcHR5X2RhdGE9VHJ1ZSkKKyAgICBhc3NlcnQgbWFu
aWZlc3Rfc3RyID09ICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOgorICAg
ICAgaWYgb3MgPT0gImxpbnV4IjogW1BBU1MsIEZBSUxdCisgICAgICBFUlJPUgorIiIiCisKKwor
ZGVmIHRlc3RfdXBkYXRlX3NlcmlhbGl6ZV91bnF1b3RlZCgpOgorICAgIHRlc3RzID0gWygicGF0
aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAg
YiIiIlt0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6IEVSUk9SCisgIFt0ZXN0MV0KKyAgICBleHBlY3Rl
ZDoKKyAgICAgaWYgb3MgPT0gImxpbnV4IjogW1BBU1MsIEZBSUxdCisgICAgIEVSUk9SCisiIiIp
XQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3Qi
OiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtu
b3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm89eyJvcyI6ICJsaW51eCJ9KQorICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3Rh
cnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9z
dGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkVSUk9SIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAg
ICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzIg
PSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRVJST1IifSks
CisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0s
CisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJ3aW4ifSkKKworICAgIHVw
ZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIGZ1bGxfdXBkYXRlPVRy
dWUsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworCisgICAgbWFuaWZlc3Rfc3RyID0gd3B0
bWFuaWZlc3Quc2VyaWFsaXplKHVwZGF0ZWRbMF1bMV0ubm9kZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9lbXB0eV9kYXRhPVRydWUpCisgICAgYXNzZXJ0
IG1hbmlmZXN0X3N0ciA9PSAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDoK
KyAgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlMXQorICAgICAgRVJST1IKKyIiIgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CmluZGV4
IDRlZWU5Y2NiMWI2OS4uNTlhYTYzNmE5MDM3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3dwdHRlc3Qu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CkBAIC0xLDUgKzEsNSBAQAotaW1wb3J0IG1vY2sK
IGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KK2Zyb20gdW5pdHRlc3QgaW1wb3J0IG1vY2sKIAogZnJv
bSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QgYXMgd3B0bWFuaWZlc3QKIGZyb20gbWFuaWZlc3Qu
aXRlbSBpbXBvcnQgVGVzdGhhcm5lc3NUZXN0LCBSZWZUZXN0CkBAIC0yMDIsMTQgKzIwMiwxNiBA
QCBkZWYgdGVzdF9leHBlY3RfYW55X3N1YnRlc3Rfc3RhdHVzKCk6CiAKIAogZGVmIHRlc3RfbWV0
YWRhdGFfZnV6enkoKToKLSAgICBpdGVtID0gUmVmVGVzdCgiLiIsICJhL2Z1enp5Lmh0bWwiLCAi
LyIsICJhL2Z1enp5Lmh0bWwiLAorICAgIGl0ZW0gPSBSZWZUZXN0KHRlc3RzX3Jvb3Q9Ii4iLAor
ICAgICAgICAgICAgICAgICAgIHBhdGg9ImEvZnV6enkuaHRtbCIsCisgICAgICAgICAgICAgICAg
ICAgdXJsX2Jhc2U9Ii8iLAorICAgICAgICAgICAgICAgICAgIHVybD0iYS9mdXp6eS5odG1sIiwK
ICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzPVtbIi9hL2Z1enp5LXJlZi5odG1sIiwgIj09
Il1dLAogICAgICAgICAgICAgICAgICAgIGZ1enp5PVtbWyIvYS9mdXp6eS5odG1sIiwgJy9hL2Z1
enp5LXJlZi5odG1sJywgJz09J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbWzIsIDNd
LCBbMTAsIDE1XV1dXSkKICAgICBzID0gbW9jay5Nb2NrKHJlbF9wYXRoPSJhL2Z1enp5Lmh0bWwi
LCByZWxfcGF0aF9wYXJ0cz0oImEiLCAiZnV6enkuaHRtbCIpLCBoYXNoPSIwIio0MCkKICAgICBz
Lm1hbmlmZXN0X2l0ZW1zID0gbW9jay5Nb2NrKHJldHVybl92YWx1ZT0oaXRlbS5pdGVtX3R5cGUs
IFtpdGVtXSkpCiAKLQogICAgIG1hbmlmZXN0ID0gd3B0bWFuaWZlc3QuTWFuaWZlc3QoIiIpCiAK
ICAgICB0cmVlLCBzb3VyY2VmaWxlX21vY2sgPSB0cmVlX2FuZF9zb3VyY2VmaWxlX21vY2tzKFso
cywgTm9uZSwgVHJ1ZSldKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL2Jhc2UucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvYmFzZS5weQpp
bmRleCA1NDc4MDhlNTI5MzMuLjQ3ZWE3ZmZiNDFmMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL2Jhc2UucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdXBkYXRlL2Jhc2UucHkKQEAgLTEsOSArMSwxMSBAQAorZnJvbSB0eXBpbmcgaW1wb3J0IENs
YXNzVmFyLCBMaXN0LCBUeXBlCisKIGV4aXRfdW5jbGVhbiA9IG9iamVjdCgpCiBleGl0X2NsZWFu
ID0gb2JqZWN0KCkKIAogCiBjbGFzcyBTdGVwKG9iamVjdCk6Ci0gICAgcHJvdmlkZXMgPSBbXQor
ICAgIHByb3ZpZGVzID0gW10gICMgdHlwZTogQ2xhc3NWYXJbTGlzdFtzdHJdXQogCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6CiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCkBA
IC00NSw3ICs0Nyw3IEBAIGNsYXNzIFN0ZXAob2JqZWN0KToKIAogCiBjbGFzcyBTdGVwUnVubmVy
KG9iamVjdCk6Ci0gICAgc3RlcHMgPSBbXQorICAgIHN0ZXBzID0gW10gICMgdHlwZTogQ2xhc3NW
YXJbTGlzdFtUeXBlW1N0ZXBdXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHN0
YXRlKToKICAgICAgICAgIiIiQ2xhc3MgdGhhdCBydW5zIGEgc3BlY2lmaWVkIHNlcmllcyBvZiBT
dGVwcyB3aXRoIGEgY29tbW9uIFN0YXRlIiIiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRh
dGUvc3RhdGUucHkKaW5kZXggYmRiMjNmZWQ5OWUxLi5hNTI2YzI0Yzk1OWYgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Vw
ZGF0ZS9zdGF0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKQEAgLTEsNSArMSw1IEBACiBpbXBvcnQg
b3MKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBjUGlja2xlIGFzIHBpY2tsZSAgIyBub3FhOiBOODEz
CitpbXBvcnQgcGlja2xlCiAKIGhlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1l
KF9fZmlsZV9fKSkKIApAQCAtOTcsNyArOTcsNyBAQCBjbGFzcyBTYXZlZFN0YXRlKEJhc2VTdGF0
ZSk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShjbHMu
ZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICB3aXRo
IG9wZW4oY2xzLmZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgd2l0aCBvcGVuKGNscy5maWxl
bmFtZSwgInJiIikgYXMgZjoKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAg
ICAgIHJ2ID0gcGlja2xlLmxvYWQoZikKICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVn
KCJMb2FkaW5nIGRhdGEgJXIiICUgKHJ2Ll9kYXRhLCkpCkBAIC0xMTEsNyArMTExLDcgQEAgY2xh
c3MgU2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgogCiAgICAgZGVmIHNhdmUoc2VsZik6CiAgICAgICAg
ICIiIldyaXRlIHRoZSBzdGF0ZSB0byBkaXNrIiIiCi0gICAgICAgIHdpdGggb3BlbihzZWxmLmZp
bGVuYW1lLCAidyIpIGFzIGY6CisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAid2Ii
KSBhcyBmOgogICAgICAgICAgICAgcGlja2xlLmR1bXAoc2VsZiwgZikKIAogICAgIGRlZiBjbGVh
cihzZWxmKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N5bmMucHkKaW5kZXggZjg3
ODc1MmY0NTE0Li4yYzk4MzRjNjcyZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS9zeW5jLnB5CkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIFVwZGF0ZUNoZWNrb3V0KFN0ZXApOgog
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmxvY2FsX2JyYW5jaCkKICAgICAgICAgc3lu
Y19wYXRoID0gb3MucGF0aC5hYnNwYXRoKHN5bmNfdHJlZS5yb290KQogICAgICAgICBpZiBzeW5j
X3BhdGggbm90IGluIHN5cy5wYXRoOgotICAgICAgICAgICAgZnJvbSB1cGRhdGUgaW1wb3J0IHNl
dHVwX3BhdGhzCisgICAgICAgICAgICBmcm9tIC51cGRhdGUgaW1wb3J0IHNldHVwX3BhdGhzCiAg
ICAgICAgICAgICBzZXR1cF9wYXRocyhzeW5jX3BhdGgpCiAKICAgICBkZWYgcmVzdG9yZShzZWxm
LCBzdGF0ZSk6CkBAIC05OCw3ICs5OCw3IEBAIGNsYXNzIFVwZGF0ZU1hbmlmZXN0KFN0ZXApOgog
ICAgIHByb3ZpZGVzID0gWyJtYW5pZmVzdF9wYXRoIiwgInRlc3RfbWFuaWZlc3QiXQogCiAgICAg
ZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6Ci0gICAgICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1h
bmlmZXN0CisgICAgICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0ICAjIHR5cGU6IGln
bm9yZQogICAgICAgICBzdGF0ZS5tYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2luKHN0YXRlLm1l
dGFkYXRhX3BhdGgsICJNQU5JRkVTVC5qc29uIikKICAgICAgICAgc3RhdGUudGVzdF9tYW5pZmVz
dCA9IG1hbmlmZXN0LmxvYWRfYW5kX3VwZGF0ZShzdGF0ZS5zeW5jWyJwYXRoIl0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUubWFu
aWZlc3RfcGF0aCwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS90cmVlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3RyZWUucHkKaW5kZXgg
ZjM2Mjc3MGZmMTZkLi4yZjQzYmFjZDE1YmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS90cmVlLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Vw
ZGF0ZS90cmVlLnB5CkBAIC0zLDggKzMsNiBAQCBpbXBvcnQgcmUKIGltcG9ydCBzdWJwcm9jZXNz
CiBpbXBvcnQgdGVtcGZpbGUKIAotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCi0KIGZyb20g
Li4gaW1wb3J0IHZjcwogZnJvbSAuLnZjcyBpbXBvcnQgZ2l0LCBoZwogCkBAIC04Nyw3ICs4NSw3
IEBAIGNsYXNzIEhnVHJlZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2Ns
ZWFuKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5oZygic3RhdHVzIikuc3RyaXAoKSA9PSAi
IgorICAgICAgICByZXR1cm4gc2VsZi5oZygic3RhdHVzIikuc3RyaXAoKSA9PSBiIiIKIAogICAg
IGRlZiBhZGRfbmV3KHNlbGYsIHByZWZpeD1Ob25lKToKICAgICAgICAgaWYgcHJlZml4IGlzIG5v
dCBOb25lOgpAQCAtMTA1LDcgKzEwMyw3IEBAIGNsYXNzIEhnVHJlZShvYmplY3QpOgogICAgICAg
ICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CiAgICAgICAgICAgICBwYXNz
CiAKLSAgICAgICAgcGF0Y2hfbmFtZXMgPSBbaXRlbS5zdHJpcCgpIGZvciBpdGVtIGluIHNlbGYu
aGcoInFzZXJpZXMiKS5zcGxpdCgiXG4iKSBpZiBpdGVtLnN0cmlwKCldCisgICAgICAgIHBhdGNo
X25hbWVzID0gW2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBzZWxmLmhnKCJxc2VyaWVzIikuc3Bs
aXQoYiJcbiIpIGlmIGl0ZW0uc3RyaXAoKV0KIAogICAgICAgICBzdWZmaXggPSAwCiAgICAgICAg
IHRlc3RfbmFtZSA9IHBhdGNoX25hbWUKQEAgLTE0Miw3ICsxNDAsNyBAQCBjbGFzcyBHaXRUcmVl
KG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdD1Ob25lLCBsb2dfZXJyb3I9
VHJ1ZSk6CiAgICAgICAgIGlmIHJvb3QgaXMgTm9uZToKLSAgICAgICAgICAgIHJvb3QgPSBnaXQo
InJldi1wYXJzZSIsICItLXNob3ctdG9wbGV2ZWwiLCBsb2dfZXJyb3I9bG9nX2Vycm9yKS5zdHJp
cCgpCisgICAgICAgICAgICByb290ID0gZ2l0KCJyZXYtcGFyc2UiLCAiLS1zaG93LXRvcGxldmVs
IiwgbG9nX2Vycm9yPWxvZ19lcnJvcikuc3RyaXAoKS5kZWNvZGUoJ3V0Zi04JykKICAgICAgICAg
c2VsZi5yb290ID0gcm9vdAogICAgICAgICBzZWxmLmdpdCA9IHZjcy5iaW5kX3RvX3JlcG8oZ2l0
LCBzZWxmLnJvb3QsIGxvZ19lcnJvcj1sb2dfZXJyb3IpCiAgICAgICAgIHNlbGYubWVzc2FnZSA9
IE5vbmUKQEAgLTE3OCw3ICsxNzYsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAKICAgICBA
cHJvcGVydHkKICAgICBkZWYgaXNfY2xlYW4oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmdp
dCgic3RhdHVzIikuc3RyaXAoKSA9PSAiIgorICAgICAgICByZXR1cm4gc2VsZi5naXQoInN0YXR1
cyIpLnN0cmlwKCkgPT0gYiIiCiAKICAgICBkZWYgYWRkX25ldyhzZWxmLCBwcmVmaXg9Tm9uZSk6
CiAgICAgICAgICIiIkFkZCBmaWxlcyB0byB0aGUgc3RhZ2luZyBhcmVhLgpAQCAtMjAzLDcgKzIw
MSw3IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgICAgIGYuc2VlaygwKQogICAg
ICAgICAgICAgaWdub3JlZF9maWxlcyA9IHN5bmNfdHJlZS5naXQoImNoZWNrLWlnbm9yZSIsICIt
LW5vLWluZGV4IiwgIi0tc3RkaW4iLCAiLXoiLCBzdGRpbj1mKQogICAgICAgICBhcmdzID0gW10K
LSAgICAgICAgZm9yIGVudHJ5IGluIGlnbm9yZWRfZmlsZXMuc3BsaXQoJ1wwJyk6CisgICAgICAg
IGZvciBlbnRyeSBpbiBpZ25vcmVkX2ZpbGVzLmRlY29kZSgndXRmLTgnKS5zcGxpdCgnXDAnKToK
ICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKG9zLnBhdGguam9pbihwcmVmaXgsIGVudHJ5KSkKICAg
ICAgICAgaWYgYXJnczoKICAgICAgICAgICAgIHNlbGYuZ2l0KCJhZGQiLCAiLS1mb3JjZSIsICph
cmdzKQpAQCAtMjE5LDcgKzIxNyw3IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAg
ICAgIGFyZ3MuYXBwZW5kKHJlZl9maWx0ZXIpCiAgICAgICAgIGRhdGEgPSBzZWxmLmdpdCgic2hv
dy1yZWYiLCAqYXJncykKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGluZSBpbiBkYXRh
LnNwbGl0KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0KGIiXG4iKToKICAg
ICAgICAgICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6CiAgICAgICAgICAgICAgICAgY29udGludWUK
ICAgICAgICAgICAgIHNoYTEsIHJlZiA9IGxpbmUuc3BsaXQoKQpAQCAtMjM3LDcgKzIzNSw3IEBA
IGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKHJlZl9maWx0
ZXIpCiAgICAgICAgIGRhdGEgPSBzZWxmLmdpdCgibHMtcmVtb3RlIiwgcmVtb3RlLCAqYXJncykK
ICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0KCJcbiIpOgor
ICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0KGIiXG4iKToKICAgICAgICAgICAgIGlmIG5v
dCBsaW5lLnN0cmlwKCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIHNo
YTEsIHJlZiA9IGxpbmUuc3BsaXQoKQpAQCAtMjUwLDggKzI0OCw4IEBAIGNsYXNzIEdpdFRyZWUo
b2JqZWN0KToKICAgICAgICAgOnBhcmFtIHJlbW90ZTogdGhlIHJlbW90ZSBVUkwKICAgICAgICAg
OnBhcmFtIGJyYW5jaDogdGhlIGJyYW5jaCBuYW1lIiIiCiAgICAgICAgIGZvciBzaGExLCByZWYg
aW4gc2VsZi5saXN0X3JlbW90ZShyZW1vdGUsIGJyYW5jaCk6Ci0gICAgICAgICAgICBpZiByZWYg
PT0gInJlZnMvaGVhZHMvJXMiICUgYnJhbmNoOgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxm
LmNvbW1pdF9jbHMoc2VsZiwgc2hhMSkKKyAgICAgICAgICAgIGlmIHJlZi5kZWNvZGUoJ3V0Zi04
JykgPT0gInJlZnMvaGVhZHMvJXMiICUgYnJhbmNoOgorICAgICAgICAgICAgICAgIHJldHVybiBz
ZWxmLmNvbW1pdF9jbHMoc2VsZiwgc2hhMS5kZWNvZGUoJ3V0Zi04JykpCiAgICAgICAgIGFzc2Vy
dCBGYWxzZQogCiAgICAgZGVmIGNyZWF0ZV9wYXRjaChzZWxmLCBwYXRjaF9uYW1lLCBtZXNzYWdl
KToKQEAgLTI5OSw4ICsyOTcsOCBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAKICAgICAgICAg
YXJncyA9IFtdCiAgICAgICAgIGlmIGJyYW5jaDoKLSAgICAgICAgICAgIGJyYW5jaGVzID0gW3Jl
ZltsZW4oInJlZnMvaGVhZHMvIik6XSBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZWZzKCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKCJyZWZzL2hlYWRzLyIp
XQorICAgICAgICAgICAgYnJhbmNoZXMgPSBbcmVmW2xlbigicmVmcy9oZWFkcy8iKTpdLmRlY29k
ZSgndXRmLTgnKSBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZWZzKCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKGIicmVmcy9oZWFkcy8iKV0KICAgICAgICAg
ICAgIGJyYW5jaCA9IGdldF91bmlxdWVfbmFtZShicmFuY2hlcywgYnJhbmNoKQogCiAgICAgICAg
ICAgICBhcmdzICs9IFsiLWIiLCBicmFuY2hdCkBAIC0zMzYsOCArMzM0LDggQEAgY2xhc3MgR2l0
VHJlZShvYmplY3QpOgogICAgICAgICBydiA9IFtdCiAKICAgICAgICAgZm9yIHJlcG9fcGF0aCBp
biByZXBvX3BhdGhzOgotICAgICAgICAgICAgcGF0aHMgPSB2Y3MuZ2l0KCJscy10cmVlIiwgIi1y
IiwgIi0tbmFtZS1vbmx5IiwgIkhFQUQiLCByZXBvPXJlcG9fcGF0aCkuc3BsaXQoIlxuIikKLSAg
ICAgICAgICAgIHJ2LmV4dGVuZChvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKHJlcG9fcGF0
aCwgaXRlbSksIHNlbGYucm9vdCkgZm9yIGl0ZW0gaW4gcGF0aHMKKyAgICAgICAgICAgIHBhdGhz
ID0gdmNzLmdpdCgibHMtdHJlZSIsICItciIsICItLW5hbWUtb25seSIsICJIRUFEIiwgcmVwbz1y
ZXBvX3BhdGgpLnNwbGl0KGIiXG4iKQorICAgICAgICAgICAgcnYuZXh0ZW5kKG9zLnBhdGgucmVs
cGF0aChvcy5wYXRoLmpvaW4ocmVwb19wYXRoLCBpdGVtLmRlY29kZSgndXRmLTgnKSksIHNlbGYu
cm9vdCkgZm9yIGl0ZW0gaW4gcGF0aHMKICAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVtLnN0
cmlwKCkpCiAgICAgICAgIHJldHVybiBydgogCkBAIC0zNDUsMTEgKzM0MywxMSBAQCBjbGFzcyBH
aXRUcmVlKG9iamVjdCk6CiAgICAgICAgICIiIkxpc3Qgc3VibW9kdWxlIGRpcmVjdG9yaWVzIiIi
CiAgICAgICAgIG91dHB1dCA9IHNlbGYuZ2l0KCJzdWJtb2R1bGUiLCAic3RhdHVzIiwgIi0tcmVj
dXJzaXZlIikKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGluZSBpbiBvdXRwdXQuc3Bs
aXQoIlxuIik6CisgICAgICAgIGZvciBsaW5lIGluIG91dHB1dC5zcGxpdChiIlxuIik6CiAgICAg
ICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCiAgICAgICAgICAgICBpZiBub3QgbGluZToKICAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgcGFydHMgPSBsaW5lLnNwbGl0KCIg
IikKKyAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdChiIiAiKQogICAgICAgICAgICAgcnYu
YXBwZW5kKHBhcnRzWzFdKQogICAgICAgICByZXR1cm4gcnYKIApAQCAtNDAzLDUgKzQwMSw1IEBA
IGNsYXNzIENvbW1pdChvYmplY3QpOgogICAgICAgICBzZWxmLmdpdCA9IHNlbGYudHJlZS5naXQK
IAogICAgIGRlZiBfZ2V0X21ldGEoc2VsZik6Ci0gICAgICAgIGF1dGhvciwgZW1haWwsIG1lc3Nh
Z2UgPSBzZWxmLmdpdCgic2hvdyIsICItcyIsICItLWZvcm1hdD1mb3JtYXQ6JWFuXG4lYWVcbiVC
Iiwgc2VsZi5zaGExKS5zcGxpdCgiXG4iLCAyKQorICAgICAgICBhdXRob3IsIGVtYWlsLCBtZXNz
YWdlID0gc2VsZi5naXQoInNob3ciLCAiLXMiLCAiLS1mb3JtYXQ9Zm9ybWF0OiVhblxuJWFlXG4l
QiIsIHNlbGYuc2hhMSkuZGVjb2RlKCd1dGYtOCcpLnNwbGl0KCJcbiIsIDIpCiAgICAgICAgIHJl
dHVybiBhdXRob3IsIGVtYWlsLCBzZWxmLm1zZ19jbHMobWVzc2FnZSkKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS91cGRhdGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CmluZGV4IDgwZTUwOWRkMzgzYi4uMjY1YTMzMTFi
ZWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91cGRhdGUucHkKQEAgLTEs
OCArMSw2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIAotZnJvbSBzaXggaW1wb3J0IGl0ZXJ2
YWx1ZXMKLQogZnJvbSAubWV0YWRhdGEgaW1wb3J0IE1ldGFkYXRhVXBkYXRlUnVubmVyCiBmcm9t
IC5zeW5jIGltcG9ydCBTeW5jRnJvbVVwc3RyZWFtUnVubmVyCiBmcm9tIC50cmVlIGltcG9ydCBH
aXRUcmVlLCBIZ1RyZWUsIE5vVkNTVHJlZQpAQCAtMTExLDcgKzEwOSw3IEBAIGNsYXNzIFJlbW92
ZU9ic29sZXRlKFN0ZXApOgogICAgICAgICBzdGF0ZS50ZXN0c19wYXRoID0gc3RhdGUucGF0aHNb
Ii8iXVsidGVzdHNfcGF0aCJdCiAgICAgICAgIHN0YXRlLm1ldGFkYXRhX3BhdGggPSBzdGF0ZS5w
YXRoc1siLyJdWyJtZXRhZGF0YV9wYXRoIl0KIAotICAgICAgICBmb3IgdXJsX3BhdGhzIGluIGl0
ZXJ2YWx1ZXMocGF0aHMpOgorICAgICAgICBmb3IgdXJsX3BhdGhzIGluIHBhdGhzLnZhbHVlcygp
OgogICAgICAgICAgICAgdGVzdHNfcGF0aCA9IHVybF9wYXRoc1sidGVzdHNfcGF0aCJdCiAgICAg
ICAgICAgICBtZXRhZGF0YV9wYXRoID0gdXJsX3BhdGhzWyJtZXRhZGF0YV9wYXRoIl0KICAgICAg
ICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGluIG9zLndhbGsobWV0YWRh
dGFfcGF0aCk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKaW5kZXggODk2ZDhhMGQyYzZlLi4zNDE5
YTUwN2RiYWUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Zjcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKQEAgLTEsNSArMSw2IEBACiBpbXBv
cnQgc3VicHJvY2VzcwogZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKK2Zyb20gdHlwaW5n
IGltcG9ydCBDYWxsYWJsZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1bHRfbG9nZ2Vy
CiAKQEAgLTcsNyArOCw3IEBAIGZyb20gd3B0c2VydmUudXRpbHMgaW1wb3J0IGlzb21vcnBoaWNf
ZGVjb2RlCiAKIGxvZ2dlciA9IE5vbmUKIAotZGVmIHZjcyhiaW5fbmFtZSk6CitkZWYgdmNzKGJp
bl9uYW1lOiBzdHIpIC0+IENhbGxhYmxlWy4uLiwgTm9uZV06CiAgICAgZGVmIGlubmVyKGNvbW1h
bmQsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIGdsb2JhbCBsb2dnZXIKIApkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
d2ViZHJpdmVyX3NlcnZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKaW5kZXggZGZhZTA1N2ZkMzMy
Li41NjVlM2Q0ZTQzYmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd2ViZHJpdmVy
X3NlcnZlci5weQpAQCAtNSwxNCArNSwxNSBAQCBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzb2Nr
ZXQKIGltcG9ydCB0aW1lCiBpbXBvcnQgdHJhY2ViYWNrCitmcm9tIHR5cGluZyBpbXBvcnQgQ2xh
c3NWYXIsIFR5cGUKIAogaW1wb3J0IG1venByb2Nlc3MKIAotZnJvbSAucHJvY2VzcyBpbXBvcnQg
Y2FzdF9lbnYKK2Zyb20gLmJyb3dzZXJzLmJhc2UgaW1wb3J0IE91dHB1dEhhbmRsZXIKIAogCiBf
X2FsbF9fID0gWyJTZWxlbml1bVNlcnZlciIsICJDaHJvbWVEcml2ZXJTZXJ2ZXIiLCAiQ1dUQ2hy
b21lRHJpdmVyU2VydmVyIiwKLSAgICAgICAgICAgIkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlciIs
ICJPcGVyYURyaXZlclNlcnZlciIsICJHZWNrb0RyaXZlclNlcnZlciIsCisgICAgICAgICAgICJF
ZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIiLAogICAgICAgICAg
ICAiSW50ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlciIsICJFZGdlRHJpdmVyU2VydmVyIiwKICAg
ICAgICAgICAgIlNlcnZvRHJpdmVyU2VydmVyIiwgIldlYktpdERyaXZlclNlcnZlciIsICJXZWJE
cml2ZXJTZXJ2ZXIiXQogCkBAIC0yMSw2ICsyMiw3IEBAIGNsYXNzIFdlYkRyaXZlclNlcnZlcihv
YmplY3QpOgogICAgIF9fbWV0YWNsYXNzX18gPSBhYmMuQUJDTWV0YQogCiAgICAgZGVmYXVsdF9i
YXNlX3BhdGggPSAiLyIKKyAgICBvdXRwdXRfaGFuZGxlcl9jbHMgPSBPdXRwdXRIYW5kbGVyICAj
IHR5cGU6IENsYXNzVmFyW1R5cGVbT3V0cHV0SGFuZGxlcl1dCiAKICAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9IjEyNy4wLjAuMSIsIHBvcnQ9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKQEAgLTMxLDEy
ICszMywxNCBAQCBjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5s
b2dnZXIgPSBsb2dnZXIKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKICAgICAgICAgc2Vs
Zi5ob3N0ID0gaG9zdAorCiAgICAgICAgIGlmIGJhc2VfcGF0aCA9PSAiIjoKICAgICAgICAgICAg
IHNlbGYuYmFzZV9wYXRoID0gc2VsZi5kZWZhdWx0X2Jhc2VfcGF0aAogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgKICAgICAgICAgc2VsZi5lbnYg
PSBvcy5lbnZpcm9uLmNvcHkoKSBpZiBlbnYgaXMgTm9uZSBlbHNlIGVudgogCisgICAgICAgIHNl
bGYuX291dHB1dF9oYW5kbGVyID0gTm9uZQogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAg
ICAgICBzZWxmLl9jbWQgPSBOb25lCiAgICAgICAgIHNlbGYuX2FyZ3MgPSBhcmdzIGlmIGFyZ3Mg
aXMgbm90IE5vbmUgZWxzZSBbXQpAQCAtNDYsMTggKzUwLDI4IEBAIGNsYXNzIFdlYkRyaXZlclNl
cnZlcihvYmplY3QpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgICIiIlJl
dHVybnMgdGhlIGZ1bGwgY29tbWFuZCBmb3Igc3RhcnRpbmcgdGhlIHNlcnZlciBwcm9jZXNzIGFz
IGEgbGlzdC4iIiIKIAotICAgIGRlZiBzdGFydChzZWxmLCBibG9jaz1GYWxzZSk6CisgICAgZGVm
IHN0YXJ0KHNlbGYsCisgICAgICAgICAgICAgIGJsb2NrPUZhbHNlLAorICAgICAgICAgICAgICBv
dXRwdXRfaGFuZGxlcl9rd2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJf
c3RhcnRfa3dhcmdzPU5vbmUpOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9ydW4o
YmxvY2spCisgICAgICAgICAgICBzZWxmLl9ydW4oYmxvY2ssIG91dHB1dF9oYW5kbGVyX2t3YXJn
cywgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzKQogICAgICAgICBleGNlcHQgS2V5Ym9hcmRJ
bnRlcnJ1cHQ6CiAgICAgICAgICAgICBzZWxmLnN0b3AoKQogCi0gICAgZGVmIF9ydW4oc2VsZiwg
YmxvY2spOgorICAgIGRlZiBfcnVuKHNlbGYsIGJsb2NrLCBvdXRwdXRfaGFuZGxlcl9rd2FyZ3Ms
IG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyk6CisgICAgICAgIGlmIG91dHB1dF9oYW5kbGVy
X2t3YXJncyBpcyBOb25lOgorICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzID0ge30K
KyAgICAgICAgaWYgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzIGlzIE5vbmU6CisgICAgICAg
ICAgICBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSB7fQogICAgICAgICBzZWxmLl9jbWQg
PSBzZWxmLm1ha2VfY29tbWFuZCgpCisgICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gc2Vs
Zi5vdXRwdXRfaGFuZGxlcl9jbHMoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY21kLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqb3V0cHV0X2hhbmRs
ZXJfa3dhcmdzKQogICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vzcy5Qcm9jZXNzSGFuZGxl
cigKICAgICAgICAgICAgIHNlbGYuX2NtZCwKLSAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5l
PXNlbGYub25fb3V0cHV0LAotICAgICAgICAgICAgZW52PWNhc3RfZW52KHNlbGYuZW52KSwKKyAg
ICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPXNlbGYuX291dHB1dF9oYW5kbGVyLAorICAgICAg
ICAgICAgZW52PXNlbGYuZW52LAogICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFsc2UpCiAKICAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIFdlYkRyaXZlcjogJXMiICUgJyAnLmpv
aW4oc2VsZi5fY21kKSkKQEAgLTY4LDYgKzgyLDcgQEAgY2xhc3MgV2ViRHJpdmVyU2VydmVyKG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKICAgICAgICAgICAgICAgICAg
ICAgIldlYkRyaXZlciBleGVjdXRhYmxlIG5vdCBmb3VuZDogJXMiICUgc2VsZi5iaW5hcnkpCiAg
ICAgICAgICAgICByYWlzZQorICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9j
ZXNzX3N0YXJ0KHNlbGYuX3Byb2MucGlkKQogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKAog
ICAgICAgICAgICAgIldhaXRpbmcgZm9yIFdlYkRyaXZlciB0byBiZWNvbWUgYWNjZXNzaWJsZTog
JXMiICUgc2VsZi51cmwpCkBAIC03OCwyNyArOTMsMjggQEAgY2xhc3MgV2ViRHJpdmVyU2VydmVy
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIldlYkRyaXZlciB3YXMgbm90IGFjY2Vzc2libGUg
IgogICAgICAgICAgICAgICAgICJ3aXRoaW4gdGhlIHRpbWVvdXQ6XG4lcyIgJSB0cmFjZWJhY2su
Zm9ybWF0X2V4YygpKQogICAgICAgICAgICAgcmFpc2UKLQorICAgICAgICBzZWxmLl9vdXRwdXRf
aGFuZGxlci5zdGFydCgqKm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncykKICAgICAgICAgaWYg
YmxvY2s6CiAgICAgICAgICAgICBzZWxmLl9wcm9jLndhaXQoKQogCiAgICAgZGVmIHN0b3Aoc2Vs
ZiwgZm9yY2U9RmFsc2UpOgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RvcHBpbmcgV2Vi
RHJpdmVyIikKKyAgICAgICAgY2xlYW4gPSBUcnVlCiAgICAgICAgIGlmIHNlbGYuaXNfYWxpdmUo
KToKICAgICAgICAgICAgIGtpbGxfcmVzdWx0ID0gc2VsZi5fcHJvYy5raWxsKCkKICAgICAgICAg
ICAgIGlmIGZvcmNlIGFuZCBraWxsX3Jlc3VsdCAhPSAwOgotICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmLl9wcm9jLmtpbGwoOSkKLSAgICAgICAgICAgIHJldHVybiBraWxsX3Jlc3VsdAotICAg
ICAgICByZXR1cm4gbm90IHNlbGYuaXNfYWxpdmUoKQorICAgICAgICAgICAgICAgIGNsZWFuID0g
RmFsc2UKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jLmtpbGwoOSkKKyAgICAgICAgc3VjY2Vz
cyA9IG5vdCBzZWxmLmlzX2FsaXZlKCkKKyAgICAgICAgaWYgc3VjY2VzcyBhbmQgc2VsZi5fb3V0
cHV0X2hhbmRsZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIE9ubHkgdHJ5IHRvIGRvIG91
dHB1dCBwb3N0LXByb2Nlc3NpbmcgaWYgd2UgbWFuYWdlZCB0byBzaHV0IGRvd24KKyAgICAgICAg
ICAgIHNlbGYuX291dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcChjbGVhbikKKyAgICAg
ICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gTm9uZQorICAgICAgICByZXR1cm4gc3VjY2Vz
cwogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4gaGFzYXR0cihzZWxm
Ll9wcm9jLCAicHJvYyIpIGFuZCBzZWxmLl9wcm9jLnBvbGwoKSBpcyBOb25lCiAKLSAgICBkZWYg
b25fb3V0cHV0KHNlbGYsIGxpbmUpOgotICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1
dChzZWxmLnBpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5kZWNv
ZGUoInV0ZjgiLCAicmVwbGFjZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21tYW5kPSIgIi5qb2luKHNlbGYuX2NtZCkpCi0KICAgICBAcHJvcGVydHkKICAgICBkZWYg
cGlkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9wcm9jIGlzIG5vdCBOb25lOgpAQCAtMTIzLDg4
ICsxMzksNDIgQEAgY2xhc3MgU2VsZW5pdW1TZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKIAogCiBj
bGFzcyBDaHJvbWVEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9ImNocm9tZWRyaXZlciIsIHBvcnQ9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJT
ZXJ2ZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1w
b3J0LCBiYXNlX3BhdGg9YmFzZV9wYXRoLCBhcmdzPWFyZ3MpCi0KICAgICBkZWYgbWFrZV9jb21t
YW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAg
IGNtZF9hcmcoInBvcnQiLCBzdHIoc2VsZi5wb3J0KSksCiAgICAgICAgICAgICAgICAgY21kX2Fy
ZygidXJsLWJhc2UiLCBzZWxmLmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIiwK
ICAgICAgICAgICAgICAgICBjbWRfYXJnKCJlbmFibGUtY2hyb21lLWxvZ3MiKV0gKyBzZWxmLl9h
cmdzCiAKLWNsYXNzIENXVENocm9tZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1Ob25lLCBhcmdzPU5vbmUp
OgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnks
IHBvcnQ9cG9ydCwgYXJncz1hcmdzKQogCitjbGFzcyBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIoV2Vi
RHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1
cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYu
cG9ydCldICsgc2VsZi5fYXJncwogCi1jbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIoV2Vi
RHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Im1z
ZWRnZWRyaXZlciIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBh
cmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0gICAgICAgICAg
ICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFzZV9wYXRoLCBh
cmdzPWFyZ3MpCiAKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2
ZXIpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5i
aW5hcnksCiAgICAgICAgICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0cihzZWxmLnBvcnQpKSwK
ICAgICAgICAgICAgICAgICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYuYmFzZV9wYXRoKSBpZiBz
ZWxmLmJhc2VfcGF0aCBlbHNlICIiXSArIHNlbGYuX2FyZ3MKIAotY2xhc3MgRWRnZURyaXZlclNl
cnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJp
bmFyeT0ibWljcm9zb2Z0d2ViZHJpdmVyLmV4ZSIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgYmFzZV9wYXRoPSIiLCBob3N0PSJsb2NhbGhvc3QiLCBhcmdzPU5vbmUpOgotICAgICAgICBX
ZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFy
eSwgaG9zdD1ob3N0LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKIAorY2xhc3MgRWRnZURyaXZlclNl
cnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAg
ICAgIHJldHVybiBbc2VsZi5iaW5hcnksCiAgICAgICAgICAgICAgICAgIi0tcG9ydD0lcyIgJSBz
dHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCiAKLWNsYXNzIE9wZXJhRHJpdmVyU2VydmVyKENo
cm9tZURyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5
PSJvcGVyYWRyaXZlciIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIi
LCBhcmdzPU5vbmUpOgotICAgICAgICBDaHJvbWVEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0gICAg
ICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFzZV9w
YXRoLCBhcmdzPWFyZ3MpCiAKK2NsYXNzIE9wZXJhRHJpdmVyU2VydmVyKENocm9tZURyaXZlclNl
cnZlcik6CisgICAgcGFzcwogCiBjbGFzcyBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVyKFdl
YkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJJ
RURyaXZlclNlcnZlci5leGUiLCBwb3J0PU5vbmUsCi0gICAgICAgICAgICAgICAgIGJhc2VfcGF0
aD0iIiwgaG9zdD0ibG9jYWxob3N0IiwgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2Vy
dmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9aG9z
dCwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCi0KICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgog
ICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgICItLXBvcnQ9JXMi
ICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCiAKLWNsYXNzIEdlY2tvRHJpdmVyU2Vy
dmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgbWFy
aW9uZXR0ZV9wb3J0PTI4MjgsIGJpbmFyeT0iZ2Vja29kcml2ZXIiLAotICAgICAgICAgICAgICAg
ICBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsIGFyZ3M9Tm9uZSk6Ci0gICAgICAgIGVudiA9
IG9zLmVudmlyb24uY29weSgpCi0gICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgot
ICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0PWhvc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3J0PXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9YXJncykKLSAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBtYXJpb25ldHRl
X3BvcnQKLQotICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbc2Vs
Zi5iaW5hcnksCi0gICAgICAgICAgICAgICAgIi0tbWFyaW9uZXR0ZS1wb3J0Iiwgc3RyKHNlbGYu
bWFyaW9uZXR0ZV9wb3J0KSwKLSAgICAgICAgICAgICAgICAiLS1ob3N0Iiwgc2VsZi5ob3N0LAot
ICAgICAgICAgICAgICAgICItLXBvcnQiLCBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCi0K
LQogY2xhc3MgU2FmYXJpRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJzYWZhcmlkcml2ZXIiLCBwb3J0PU5vbmUsIGFy
Z3M9Tm9uZSk6Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKLSAgICAgICAgICAg
IHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKLQogICAgIGRlZiBt
YWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksCiAgICAgICAg
ICAgICAgICAgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCkBAIC0y
MTIsMTMgKzE4MiwxMyBAQCBjbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVy
KToKIAogY2xhc3MgU2Vydm9Ecml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9InNlcnZvIiwgYmluYXJ5X2FyZ3M9Tm9uZSwg
aG9zdD0iMTI3LjAuMC4xIiwKLSAgICAgICAgICAgICAgICAgcG9ydD1Ob25lLCBhcmdzPU5vbmUp
OgotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICAgICAgICAgICBwb3J0
PU5vbmUsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgorICAgICAgICBlbnYgPSBlbnYgaWYgZW52IGlz
IG5vdCBOb25lIGVsc2Ugb3MuZW52aXJvbi5jb3B5KCkKICAgICAgICAgZW52WyJSVVNUX0JBQ0tU
UkFDRSJdID0gIjEiCiAgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIGJpbmFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9aG9zdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9ydCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW52PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9YXJncykKICAgICAgICAgc2VsZi5iaW5hcnlfYXJncyA9IGJpbmFyeV9hcmdzCiAK
QEAgLTIzMyw5ICsyMDMsNiBAQCBjbGFzcyBTZXJ2b0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2
ZXIpOgogCiAKIGNsYXNzIFdlYktpdERyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCBwb3J0PU5vbmUsIGFyZ3M9
Tm9uZSk6Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJp
bmFyeSwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCi0KICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYp
OgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCAiLS1wb3J0PSVzIiAlIHN0cihzZWxmLnBv
cnQpXSArIHNlbGYuX2FyZ3MKIApAQCAtMjU0LDcgKzIyMSw3IEBAIGRlZiBnZXRfZnJlZV9wb3J0
KCk6CiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6
CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIHJldHVybiBzLmdldHNvY2tuYW1lKClbMV0KQEAgLTI2NSw3ICsy
MzIsNyBAQCBkZWYgZ2V0X2ZyZWVfcG9ydCgpOgogZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwg
dGltZW91dD02MCk6CiAgICAgIiIiV2FpdHMgdW50aWwgbmV0d29yayBzZXJ2aWNlIGdpdmVuIGFz
IGEgdHVwbGUgb2YgKGhvc3QsIHBvcnQpIGJlY29tZXMKICAgICBhdmFpbGFibGUgb3IgdGhlIGB0
aW1lb3V0YCBkdXJhdGlvbiBpcyByZWFjaGVkLCBhdCB3aGljaCBwb2ludAotICAgIGBgc29ja2V0
LmVycm9yYGAgaXMgcmFpc2VkLiIiIgorICAgIGBgc29ja2V0LnRpbWVvdXRgYCBpcyByYWlzZWQu
IiIiCiAgICAgZW5kID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CiAgICAgd2hpbGUgZW5kID4gdGlt
ZS50aW1lKCk6CiAgICAgICAgIHNvID0gc29ja2V0LnNvY2tldCgpCkBAIC0yNzMsNyArMjQwLDcg
QEAgZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwgdGltZW91dD02MCk6CiAgICAgICAgICAgICBz
by5jb25uZWN0KGFkZHIpCiAgICAgICAgIGV4Y2VwdCBzb2NrZXQudGltZW91dDoKICAgICAgICAg
ICAgIHBhc3MKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICBleGNl
cHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FQ09OTlJF
RlVTRUQ6CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZWxzZToKQEAgLTI4MSw0ICsy
NDgsNCBAQCBkZWYgd2FpdF9mb3Jfc2VydmljZShhZGRyLCB0aW1lb3V0PTYwKToKICAgICAgICAg
ZmluYWxseToKICAgICAgICAgICAgIHNvLmNsb3NlKCkKICAgICAgICAgdGltZS5zbGVlcCgwLjUp
Ci0gICAgcmFpc2Ugc29ja2V0LmVycm9yKCJTZXJ2aWNlIGlzIHVuYXZhaWxhYmxlOiAlczolaSIg
JSBhZGRyKQorICAgIHJhaXNlIHNvY2tldC50aW1lb3V0KCJTZXJ2aWNlIGlzIHVuYXZhaWxhYmxl
OiAlczolaSIgJSBhZGRyKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGlu
ZS5weQppbmRleCA5ZDFkNDA0ODA5NTQuLmM3MDUwZWI4MGMyYiAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFu
ZGxpbmUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKQEAgLTEsMTEgKzEsOSBAQAotZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgYXJn
cGFyc2UKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3Jk
ZXJlZERpY3QKIGZyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKIGZy
b20gZGF0ZXRpbWUgaW1wb3J0IHRpbWVkZWx0YQotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV90ZXh0
LCBpdGVya2V5cywgaXRlcnZhbHVlcywgaXRlcml0ZW1zCiAKIGZyb20gLiBpbXBvcnQgY29uZmln
CiBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKQEAgLTE2LDcgKzE0LDcgQEAgZGVmIGFic19wYXRoKHBh
dGgpOgogCiAKIGRlZiB1cmxfb3JfcGF0aChwYXRoKToKLSAgICBmcm9tIHNpeC5tb3Zlcy51cmxs
aWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCisgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVy
bHBhcnNlCiAKICAgICBwYXJzZWQgPSB1cmxwYXJzZShwYXRoKQogICAgIGlmIGxlbihwYXJzZWQu
c2NoZW1lKSA+IDI6CkBAIC03Miw2ICs3MCwxMCBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIp
CiAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSJmYWlsX29uX3VuZXhwZWN0ZWQiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iRXhpdCB3aXRoIHN0YXR1cyBjb2RlIDAgd2hlbiB0ZXN0IGV4cGVjdGF0aW9ucyBh
cmUgdmlvbGF0ZWQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbm8tZmFpbC1vbi11bmV4
cGVjdGVkLXBhc3MiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9ImZhaWxfb25f
dW5leHBlY3RlZF9wYXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkV4aXQgd2l0
aCBzdGF0dXMgY29kZSAwIHdoZW4gYWxsIHVuZXhwZWN0ZWQgcmVzdWx0cyBhcmUgUEFTUyIpCiAK
ICAgICBtb2RlX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiTW9kZSIpCiAgICAg
bW9kZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tbGlzdC10ZXN0LWdyb3VwcyIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsCkBAIC0xMzEsNiArMTMzLDggQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJUZXN0IHR5cGVzIHRv
IHJ1biIpCiAgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUi
LCBhY3Rpb249ImFwcGVuZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IlVSTCBwcmVmaXggdG8gaW5jbHVkZSIpCisgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLWluY2x1ZGUtZmlsZSIsIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJBIGZpbGUgbGlzdGluZyBVUkwgcHJl
Zml4IGZvciB0ZXN0cyIpCiAgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCIt
LWV4Y2x1ZGUiLCBhY3Rpb249ImFwcGVuZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlVSTCBwcmVmaXggdG8gZXhjbHVkZSIpCiAgICAgdGVzdF9zZWxlY3Rp
b25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUtbWFuaWZlc3QiLCB0eXBlPWFic19wYXRo
LApAQCAtMTcwLDYgKzE3NCw4IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkhhbHQgdGhlIHRlc3QgcnVubmVyIGFmdGVy
IGVhY2ggdGVzdCAodGhpcyBoYXBwZW5zIGJ5IGRlZmF1bHQgaWYgb25seSBhIHNpbmdsZSB0ZXN0
IGlzIHJ1bikiKQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tbm8tcGF1c2Ut
YWZ0ZXItdGVzdCcsIGRlc3Q9InBhdXNlX2FmdGVyX3Rlc3QiLCBhY3Rpb249InN0b3JlX2ZhbHNl
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0IGhhbHQgdGhl
IHRlc3QgcnVubmVyIGlycmVzcGVjdGl2ZSBvZiB0aGUgbnVtYmVyIG9mIHRlc3RzIHJ1biIpCisg
ICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1bWVudCgnLS1kZWJ1Zy10ZXN0JywgZGVzdD0iZGVi
dWdfdGVzdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJSdW4gdGVzdHMgd2l0aCBhZGRpdGlvbmFsIGRlYnVnZ2luZyBmZWF0dXJl
cyBlbmFibGVkIikKIAogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tcGF1c2Ut
b24tdW5leHBlY3RlZCcsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJIYWx0IHRoZSB0ZXN0IHJ1bm5lciB3aGVuIGFuIHVuZXhwZWN0
ZWQgcmVzdWx0IGlzIGVuY291bnRlcmVkIikKQEAgLTE4MSw3ICsxODcsNiBAQCBzY2hlbWUgaG9z
dCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQ
YXRoIG9yIHVybCB0byBzeW1ib2xzIGZpbGUgdXNlZCB0byBhbmFseXNlIGNyYXNoIG1pbmlkdW1w
cy4iKQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tc3RhY2t3YWxrLWJpbmFy
eSIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iUGF0aCB0byBzdGFja3dhbGtlciBwcm9ncmFtIHVzZWQgdG8gYW5h
bHlzZSBtaW5pZHVtcHMuIikKLQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoIi0t
cGRiIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IkRyb3AgaW50byBwZGIgb24gcHl0aG9uIGV4Y2VwdGlvbiIpCiAKQEAgLTE5Niw2
ICsyMDEsOCBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgY29uZmlnX2dyb3VwLmFk
ZF9hcmd1bWVudCgnLS13ZWJkcml2ZXItYXJnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0id2ViZHJpdmVyX2FyZ3MiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRXh0cmEgYXJndW1lbnQgZm9yIHRo
ZSBXZWJEcml2ZXIgYmluYXJ5IikKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWFk
Yi1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IlBhdGggdG8gYWRiIGJpbmFyeSB0byB1c2UiKQogICAgIGNvbmZpZ19ncm91cC5hZGRf
YXJndW1lbnQoIi0tcGFja2FnZS1uYW1lIiwgYWN0aW9uPSJzdG9yZSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJBbmRyb2lkIHBhY2thZ2UgbmFtZSB0byBydW4gdGVzdHMg
YWdhaW5zdCIpCiAgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1kZXZpY2Utc2VyaWFs
IiwgYWN0aW9uPSJzdG9yZSIsCkBAIC0yODQsNiArMjkxLDggQEAgc2NoZW1lIGhvc3QgYW5kIHBv
cnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNhYmxlIGZpc3Np
b24gaW4gR2Vja28uIikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tc3RhY2tmaXgt
ZGlyIiwgZGVzdD0ic3RhY2tmaXhfZGlyIiwgYWN0aW9uPSJzdG9yZSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgYXNzZXJ0
aW9uIHN0YWNrIGZpeGluZyBzY3JpcHRzIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQo
Ii0tc3BlY2lhbHBvd2Vycy1wYXRoIiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc3BlY2lhbFBvd2VycyBleHRlbnNpb24geHBpIGZp
bGUiKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zZXRwcmVmIiwgZGVzdD0iZXh0
cmFfcHJlZnMiLCBhY3Rpb249J2FwcGVuZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9W10sIG1ldGF2YXI9IlBSRUY9VkFMVUUiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJEZWZpbmVzIGFuIGV4dHJhIHVzZXIgcHJlZmVyZW5jZSAob3ZlcnJpZGVz
IHRob3NlIGluIHByZWZzX3Jvb3QpIikKQEAgLTMxMiwxNCArMzIxLDE3IEBAIHNjaGVtZSBob3N0
IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bXSwg
YWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJ1c2VyX3N0eWxlc2hlZXRzIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iSW5qZWN0IGEgdXNlciBDU1Mgc3R5bGVzaGVldCBpbnRvIGV2
ZXJ5IHRlc3QuIikKIAotICAgIHNlcnZvX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91
cCgiQ2hyb21lLXNwZWNpZmljIikKLSAgICBzZXJ2b19ncm91cC5hZGRfYXJndW1lbnQoIi0tZW5h
YmxlLW1vam9qcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgY2hy
b21lX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiQ2hyb21lLXNwZWNpZmljIikK
KyAgICBjaHJvbWVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWVuYWJsZS1tb2pvanMiLCBhY3Rpb249
InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJFbmFibGUgTW9qb0pTIGZvciB0ZXN0aW5nLiBOb3RlIHRoYXQgdGhpcyBmbGFnIGlz
IHVzYWxseSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmFibGVkIGF1dG9tYXRp
Y2FsbHkgYnkgYHdwdCBydW5gLCBpZiBpdCBzdWNjZWVkcyBpbiBkb3dubG9hZGluZyAiCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgcmlnaHQgdmVyc2lvbiBvZiBtb2pvanMuemlw
IG9yIGlmIC0tbW9qb2pzLXBhdGggaXMgc3BlY2lmaWVkLiIpCi0gICAgc2Vydm9fZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLW1vam9qcy1wYXRoIiwKKyAgICBjaHJvbWVfZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLW1vam9qcy1wYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0
aCB0byBtb2pvanMgZ2VuLyBkaXJlY3RvcnkuIElmIGl0IGlzIG5vdCBzcGVjaWZpZWQsIGB3cHQg
cnVuYCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWxsIGRvd25sb2FkIGFuZCBl
eHRyYWN0IG1vam9qcy56aXAgaW50byBfdmVudjIvbW9qb2pzL2dlbi4iKQorICAgIGNocm9tZV9n
cm91cC5hZGRfYXJndW1lbnQoIi0tZW5hYmxlLXN3aWZ0c2hhZGVyIiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
RW5hYmxlIFN3aWZ0U2hhZGVyIGZvciBDUFUtYmFzZWQgM0QgZ3JhcGhpY3MuIFRoaXMgY2FuIGJl
IHVzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4gZW52aXJvbm1lbnRzIHdp
dGggbm8gaGFyZHdhcmUgR1BVIGF2YWlsYWJsZS4iKQogCiAgICAgc2F1Y2VfZ3JvdXAgPSBwYXJz
ZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTYXVjZSBMYWJzLXNwZWNpZmljIikKICAgICBzYXVjZV9n
cm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtYnJvd3NlciIsIGRlc3Q9InNhdWNlX2Jyb3dzZXIi
LApAQCAtMzU0LDEzICszNjYsMTcgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogCiAgICAg
dGFza2NsdXN0ZXJfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJUYXNrY2x1c3Rl
ci1zcGVjaWZpYyIpCiAgICAgdGFza2NsdXN0ZXJfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWdpdGh1
Yi1jaGVja3MtdGV4dC1maWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZT1lbnN1cmVfdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZT1zdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8g
R2l0SHViIGNoZWNrcyBvdXRwdXQgZmlsZSIpCiAKICAgICB3ZWJraXRfZ3JvdXAgPSBwYXJzZXIu
YWRkX2FyZ3VtZW50X2dyb3VwKCJXZWJLaXQtc3BlY2lmaWMiKQogICAgIHdlYmtpdF9ncm91cC5h
ZGRfYXJndW1lbnQoIi0td2Via2l0LXBvcnQiLCBkZXN0PSJ3ZWJraXRfcG9ydCIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJXZWJLaXQgcG9ydCIpCiAKKyAgICBzYWZhcmlf
Z3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTYWZhcmktc3BlY2lmaWMiKQorICAg
IHNhZmFyaV9ncm91cC5hZGRfYXJndW1lbnQoIi0ta2lsbC1zYWZhcmkiLCBkZXN0PSJraWxsX3Nh
ZmFyaSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJLaWxsIFNhZmFyaSB3aGVuIHN0b3BwaW5nIHRoZSBicm93
c2VyIikKKwogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInRlc3RfbGlzdCIsIG5hcmdzPSIqIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgVVJMcyBmb3IgdGVzdHMgdG8g
cnVuLCBvciBwYXRocyBpbmNsdWRpbmcgdGVzdHMgdG8gcnVuLiAiCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIoZXF1aXZhbGVudCB0byAtLWluY2x1ZGUpIikKQEAgLTQwMiw3ICs0MTgs
NyBAQCBkZWYgc2V0X2Zyb21fY29uZmlnKGt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAgICgi
aG9zdF9jZXJ0X3BhdGgiLCAiaG9zdF9jZXJ0X3BhdGgiLCBUcnVlKSwKICAgICAgICAgICAgICAg
ICAgICAgKCJob3N0X2tleV9wYXRoIiwgImhvc3Rfa2V5X3BhdGgiLCBUcnVlKV19CiAKLSAgICBm
b3Igc2VjdGlvbiwgdmFsdWVzIGluIGl0ZXJpdGVtcyhrZXlzKToKKyAgICBmb3Igc2VjdGlvbiwg
dmFsdWVzIGluIGtleXMuaXRlbXMoKToKICAgICAgICAgZm9yIGNvbmZpZ192YWx1ZSwga3dfdmFs
dWUsIGlzX3BhdGggaW4gdmFsdWVzOgogICAgICAgICAgICAgaWYga3dfdmFsdWUgaW4ga3dhcmdz
IGFuZCBrd2FyZ3Nba3dfdmFsdWVdIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgaWYgbm90IGlz
X3BhdGg6CkBAIC00MzgsNyArNDU0LDcgQEAgZGVmIGdldF90ZXN0X3BhdGhzKGNvbmZpZyk6CiAg
ICAgIyBTZXQgdXAgdGVzdF9wYXRocwogICAgIHRlc3RfcGF0aHMgPSBPcmRlcmVkRGljdCgpCiAK
LSAgICBmb3Igc2VjdGlvbiBpbiBpdGVya2V5cyhjb25maWcpOgorICAgIGZvciBzZWN0aW9uIGlu
IGNvbmZpZy5rZXlzKCk6CiAgICAgICAgIGlmIHNlY3Rpb24uc3RhcnRzd2l0aCgibWFuaWZlc3Q6
Iik6CiAgICAgICAgICAgICBtYW5pZmVzdF9vcHRzID0gY29uZmlnLmdldChzZWN0aW9uKQogICAg
ICAgICAgICAgdXJsX2Jhc2UgPSBtYW5pZmVzdF9vcHRzLmdldCgidXJsX2Jhc2UiLCAiLyIpCkBA
IC00NjQsNyArNDgwLDcgQEAgZGVmIGV4ZV9wYXRoKG5hbWUpOgogCiAKIGRlZiBjaGVja19wYXRo
cyhrd2FyZ3MpOgotICAgIGZvciB0ZXN0X3BhdGhzIGluIGl0ZXJ2YWx1ZXMoa3dhcmdzWyJ0ZXN0
X3BhdGhzIl0pOgorICAgIGZvciB0ZXN0X3BhdGhzIGluIGt3YXJnc1sidGVzdF9wYXRocyJdLnZh
bHVlcygpOgogICAgICAgICBpZiBub3QgKCJ0ZXN0c19wYXRoIiBpbiB0ZXN0X3BhdGhzIGFuZAog
ICAgICAgICAgICAgICAgICJtZXRhZGF0YV9wYXRoIiBpbiB0ZXN0X3BhdGhzKToKICAgICAgICAg
ICAgIHByaW50KCJGYXRhbDogbXVzdCBzcGVjaWZ5IGJvdGggYSB0ZXN0IHBhdGggYW5kIG1ldGFk
YXRhIHBhdGgiKQpAQCAtNDcyLDcgKzQ4OCw3IEBAIGRlZiBjaGVja19wYXRocyhrd2FyZ3MpOgog
ICAgICAgICBpZiAibWFuaWZlc3RfcGF0aCIgbm90IGluIHRlc3RfcGF0aHM6CiAgICAgICAgICAg
ICB0ZXN0X3BhdGhzWyJtYW5pZmVzdF9wYXRoIl0gPSBvcy5wYXRoLmpvaW4odGVzdF9wYXRoc1si
bWV0YWRhdGFfcGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJNQU5JRkVTVC5qc29uIikKLSAgICAgICAgZm9yIGtleSwgcGF0aCBp
biBpdGVyaXRlbXModGVzdF9wYXRocyk6CisgICAgICAgIGZvciBrZXksIHBhdGggaW4gdGVzdF9w
YXRocy5pdGVtcygpOgogICAgICAgICAgICAgbmFtZSA9IGtleS5zcGxpdCgiXyIsIDEpWzBdCiAK
ICAgICAgICAgICAgIGlmIG5hbWUgPT0gIm1hbmlmZXN0IjoKQEAgLTU4OCw3ICs2MDQsNyBAQCBk
ZWYgY2hlY2tfYXJncyhrd2FyZ3MpOgogICAgICAgICBrd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwi
XSA9IFRydWUKIAogICAgIGlmIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gaXMgTm9uZToK
LSAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9ICJ1bmV4cGVjdGVkIgorICAg
ICAgICBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdID0gInVuZXhwZWN0ZWQiIGlmIG5vdCBr
d2FyZ3NbImRlYnVnX3Rlc3QiXSBlbHNlICJhbHdheXMiCiAKICAgICBpZiBrd2FyZ3NbImVuYWJs
ZV93ZWJyZW5kZXIiXSBpcyBOb25lOgogICAgICAgICBrd2FyZ3NbImVuYWJsZV93ZWJyZW5kZXIi
XSA9IEZhbHNlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRsb2dnaW5nLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQppbmRleCA0NDRk
MWQ5NjJkMjUuLmI1Y2I1ODg4MWZkMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRsb2dn
aW5nLnB5CkBAIC0xLDQgKzEsNSBAQAogaW1wb3J0IGxvZ2dpbmcKK2Zyb20gdGhyZWFkaW5nIGlt
cG9ydCBUaHJlYWQKIAogZnJvbSBtb3psb2cgaW1wb3J0IGNvbW1hbmRsaW5lLCBzdGRhZGFwdGVy
LCBzZXRfZGVmYXVsdF9sb2dnZXIKIGZyb20gbW96bG9nLnN0cnVjdHVyZWRsb2cgaW1wb3J0IFN0
cnVjdHVyZWRMb2dnZXIsIGxvZ19sZXZlbHMKQEAgLTY1LDMgKzY2LDQyIEBAIGNsYXNzIExvZ2dl
ZEFib3ZlTGV2ZWxIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBub3Qgc2VsZi5oYXNfbG9n
IGFuZAogICAgICAgICAgICAgbG9nX2xldmVsc1tkYXRhWyJsZXZlbCJdXSA8PSBzZWxmLm1pbl9s
ZXZlbCk6CiAgICAgICAgICAgICBzZWxmLmhhc19sb2cgPSBUcnVlCisKKworY2xhc3MgUXVldWVI
YW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1ZXVlLCBs
ZXZlbD1sb2dnaW5nLk5PVFNFVCk6CisgICAgICAgIHNlbGYucXVldWUgPSBxdWV1ZQorICAgICAg
ICBsb2dnaW5nLkhhbmRsZXIuX19pbml0X18oc2VsZiwgbGV2ZWw9bGV2ZWwpCisKKyAgICBkZWYg
Y3JlYXRlTG9jayhzZWxmKToKKyAgICAgICAgIyBUaGUgcXVldWUgcHJvdmlkZXMgaXRzIG93biBs
b2NraW5nCisgICAgICAgIHNlbGYubG9jayA9IE5vbmUKKworICAgIGRlZiBlbWl0KHNlbGYsIHJl
Y29yZCk6CisgICAgICAgIG1zZyA9IHNlbGYuZm9ybWF0KHJlY29yZCkKKyAgICAgICAgZGF0YSA9
IHsiYWN0aW9uIjogImxvZyIsCisgICAgICAgICAgICAgICAgImxldmVsIjogcmVjb3JkLmxldmVs
bmFtZSwKKyAgICAgICAgICAgICAgICAidGhyZWFkIjogcmVjb3JkLnRocmVhZE5hbWUsCisgICAg
ICAgICAgICAgICAgInBpZCI6IHJlY29yZC5wcm9jZXNzLAorICAgICAgICAgICAgICAgICJzb3Vy
Y2UiOiBzZWxmLm5hbWUsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiBtc2d9CisgICAgICAg
IHNlbGYucXVldWUucHV0KGRhdGEpCisKKworY2xhc3MgTG9nUXVldWVUaHJlYWQoVGhyZWFkKToK
KyAgICAiIiJUaHJlYWQgZm9yIGhhbmRsaW5nIGxvZyBtZXNzYWdlcyBmcm9tIGEgcXVldWUiIiIK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgcXVldWUsIGxvZ2dlcik6CisgICAgICAgIHNlbGYucXVl
dWUgPSBxdWV1ZQorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzdXBlcigp
Ll9faW5pdF9fKG5hbWU9IlRocmVhZC1Mb2ciKQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAg
ICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkYXRhID0g
c2VsZi5xdWV1ZS5nZXQoKQorICAgICAgICAgICAgZXhjZXB0IChFT0ZFcnJvciwgSU9FcnJvcik6
CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIGRhdGEgaXMgTm9uZToKKyAg
ICAgICAgICAgICAgICAjIEEgTm9uZSBtZXNzYWdlIGlzIHVzZWQgdG8gc2h1dCBkb3duIHRoZSBs
b2dnaW5nIHRocmVhZAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBzZWxmLmxv
Z2dlci5sb2dfcmF3KGRhdGEpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRp
b25hbC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2NvbmRpdGlvbmFsLnB5CmluZGV4IDNiMTFlODMw
MTJhYi4uMzBkZDE0NDkxNTZlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRp
b25hbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weQpAQCAtMSw1ICsx
LDUgQEAKIGltcG9ydCBvcGVyYXRvcgotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV90ZXh0LCBpdGVy
aXRlbXMsIGl0ZXJrZXlzLCB0ZXh0X3R5cGUKK2Zyb20gc2l4IGltcG9ydCBlbnN1cmVfdGV4dAog
CiBmcm9tIC4ubm9kZSBpbXBvcnQgTm9kZVZpc2l0b3IsIERhdGFOb2RlLCBDb25kaXRpb25hbE5v
ZGUsIEtleVZhbHVlTm9kZSwgTGlzdE5vZGUsIFZhbHVlTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5v
ZGUsIFZhcmlhYmxlTm9kZQogZnJvbSAuLnBhcnNlciBpbXBvcnQgcGFyc2UKQEAgLTMwMCw5ICsz
MDAsOSBAQCBjbGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKICAgICAgICAgaWYgaXNpbnN0YW5j
ZSh2YWx1ZSwgbGlzdCk6CiAgICAgICAgICAgICB2YWx1ZV9ub2RlID0gTGlzdE5vZGUoKQogICAg
ICAgICAgICAgZm9yIGl0ZW0gaW4gdmFsdWU6Ci0gICAgICAgICAgICAgICAgdmFsdWVfbm9kZS5h
cHBlbmQoVmFsdWVOb2RlKHRleHRfdHlwZShpdGVtKSkpCisgICAgICAgICAgICAgICAgdmFsdWVf
bm9kZS5hcHBlbmQoVmFsdWVOb2RlKHN0cihpdGVtKSkpCiAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICB2YWx1ZV9ub2RlID0gVmFsdWVOb2RlKHRleHRfdHlwZSh2YWx1ZSkpCisgICAgICAgICAg
ICB2YWx1ZV9ub2RlID0gVmFsdWVOb2RlKHN0cih2YWx1ZSkpCiAgICAgICAgIGlmIGNvbmRpdGlv
biBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbmRpdGlvbiwg
Q29uZGl0aW9uYWxOb2RlKToKICAgICAgICAgICAgICAgICBjb25kaXRpb25hbF9ub2RlID0gQ29u
ZGl0aW9uYWxOb2RlKCkKQEAgLTM2OCwxNyArMzY4LDE3IEBAIGNsYXNzIE1hbmlmZXN0SXRlbShv
YmplY3QpOgogICAgIGRlZiBfZmxhdHRlbihzZWxmKToKICAgICAgICAgcnYgPSB7fQogICAgICAg
ICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKLSAgICAgICAgICAgIGZvciBuYW1lLCB2
YWx1ZSBpbiBpdGVyaXRlbXMobm9kZS5fZGF0YSk6CisgICAgICAgICAgICBmb3IgbmFtZSwgdmFs
dWUgaW4gbm9kZS5fZGF0YS5pdGVtcygpOgogICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGlu
IHJ2OgogICAgICAgICAgICAgICAgICAgICBydltuYW1lXSA9IHZhbHVlCiAgICAgICAgIHJldHVy
biBydgogCiAgICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKLSAgICAgICAgZm9yIGl0ZW0gaW4gaXRl
cml0ZW1zKHNlbGYuX2ZsYXR0ZW4oKSk6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2ZsYXR0
ZW4oKS5pdGVtcygpOgogICAgICAgICAgICAgeWllbGQgaXRlbQogCiAgICAgZGVmIGl0ZXJrZXlz
KHNlbGYpOgotICAgICAgICBmb3IgaXRlbSBpbiBpdGVya2V5cyhzZWxmLl9mbGF0dGVuKCkpOgor
ICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkua2V5cygpOgogICAgICAgICAgICAg
eWllbGQgaXRlbQogCiAgICAgZGVmIGl0ZXJfcHJvcGVydGllcyhzZWxmKToKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L25vZGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5CmluZGV4IDBmODJkNzAwNmI2OS4u
NWU5ZDJiNjQyNzQ0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L25vZGUucHkKQEAgLTEsNSArMSwzIEBACi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgcmFuZ2UKLQog
Y2xhc3MgTm9kZVZpc2l0b3Iob2JqZWN0KToKICAgICBkZWYgdmlzaXQoc2VsZiwgbm9kZSk6CiAg
ICAgICAgICMgVGhpcyBpcyB1Z2x5IGFzIGhlbGwsIGJ1dCB3ZSBkb24ndCBoYXZlIG11bHRpbWV0
aG9kcyBhbmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNl
ci5weQppbmRleCA5MTFlZmFjODBmMjcuLjRjOTdjNjkxNDEzOSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvcGFyc2VyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weQpAQCAtMTIsMTAgKzEyLDcgQEAK
IAogIyBUT0RPOiBrZWVwIGNvbW1lbnRzIGluIHRoZSB0cmVlCiAKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgdW5pY29kZV9saXRlcmFscwotCi1mcm9tIHNpeCBpbXBvcnQgYmluYXJ5X3R5cGUsIHRl
eHRfdHlwZSwgQnl0ZXNJTywgdW5pY2hyCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgcmFuZ2UKK2Zy
b20gaW8gaW1wb3J0IEJ5dGVzSU8KIAogZnJvbSAubm9kZSBpbXBvcnQgKE5vZGUsIEF0b21Ob2Rl
LCBCaW5hcnlFeHByZXNzaW9uTm9kZSwgQmluYXJ5T3BlcmF0b3JOb2RlLAogICAgICAgICAgICAg
ICAgICAgIENvbmRpdGlvbmFsTm9kZSwgRGF0YU5vZGUsIEluZGV4Tm9kZSwgS2V5VmFsdWVOb2Rl
LCBMaXN0Tm9kZSwKQEAgLTUwLDcgKzQ3LDcgQEAgYXRvbXMgPSB7IlRydWUiOiBUcnVlLAogICAg
ICAgICAgIlJlc2V0Ijogb2JqZWN0KCl9CiAKIGRlZiBkZWNvZGUocyk6Ci0gICAgYXNzZXJ0IGlz
aW5zdGFuY2UocywgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHMsIHN0cikKICAg
ICByZXR1cm4gcwogCiAKQEAgLTU5LDcgKzU2LDcgQEAgZGVmIHByZWNlZGVuY2Uob3BlcmF0b3Jf
bm9kZSk6CiAKIAogY2xhc3MgVG9rZW5UeXBlcyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKKyAgICBkZWYgX19pbml0X18oc2VsZikgLT4gTm9uZToKICAgICAgICAgZm9yIHR5cGUg
aW4gWyJncm91cF9zdGFydCIsICJncm91cF9lbmQiLCAicGFyZW4iLCAibGlzdF9zdGFydCIsICJs
aXN0X2VuZCIsICJzZXBhcmF0b3IiLCAiaWRlbnQiLCAic3RyaW5nIiwgIm51bWJlciIsICJhdG9t
IiwgImVvZiJdOgogICAgICAgICAgICAgc2V0YXR0cihzZWxmLCB0eXBlLCB0eXBlKQogCkBAIC03
OSw3ICs3Niw3IEBAIGNsYXNzIFRva2VuaXplcihvYmplY3QpOgogCiAgICAgZGVmIHRva2VuaXpl
KHNlbGYsIHN0cmVhbSk6CiAgICAgICAgIHNlbGYucmVzZXQoKQotICAgICAgICBhc3NlcnQgbm90
IGlzaW5zdGFuY2Uoc3RyZWFtLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBub3QgaXNpbnN0
YW5jZShzdHJlYW0sIHN0cikKICAgICAgICAgaWYgaXNpbnN0YW5jZShzdHJlYW0sIGJ5dGVzKToK
ICAgICAgICAgICAgIHN0cmVhbSA9IEJ5dGVzSU8oc3RyZWFtKQogICAgICAgICBpZiBub3QgaGFz
YXR0cihzdHJlYW0sICJuYW1lIik6CkBAIC04OSw3ICs4Niw3IEBAIGNsYXNzIFRva2VuaXplcihv
YmplY3QpOgogCiAgICAgICAgIHNlbGYubmV4dF9saW5lX3N0YXRlID0gc2VsZi5saW5lX3N0YXJ0
X3N0YXRlCiAgICAgICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShzdHJlYW0pOgotICAgICAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGluZSwgYmluYXJ5X3R5cGUpCisgICAgICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShsaW5lLCBieXRlcykKICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBz
ZWxmLm5leHRfbGluZV9zdGF0ZQogICAgICAgICAgICAgYXNzZXJ0IHNlbGYuc3RhdGUgaXMgbm90
IE5vbmUKICAgICAgICAgICAgIHN0YXRlcyA9IFtdCkBAIC05Nyw3ICs5NCw3IEBAIGNsYXNzIFRv
a2VuaXplcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5saW5lX251bWJlciA9IGkgKyAxCiAg
ICAgICAgICAgICBzZWxmLmluZGV4ID0gMAogICAgICAgICAgICAgc2VsZi5saW5lID0gbGluZS5k
ZWNvZGUoJ3V0Zi04JykucnN0cmlwKCkKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNl
bGYubGluZSwgdGV4dF90eXBlKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2VsZi5s
aW5lLCBzdHIpCiAgICAgICAgICAgICB3aGlsZSBzZWxmLnN0YXRlICE9IHNlbGYuZW9sX3N0YXRl
OgogICAgICAgICAgICAgICAgIHN0YXRlcy5hcHBlbmQoc2VsZi5zdGF0ZSkKICAgICAgICAgICAg
ICAgICB0b2tlbnMgPSBzZWxmLnN0YXRlKCkKQEAgLTUwNSw3ICs1MDIsNyBAQCBjbGFzcyBUb2tl
bml6ZXIob2JqZWN0KToKICAgICAgICAgICAgIHZhbHVlICs9IHNlbGYuZXNjYXBlX3ZhbHVlKGMp
CiAgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQogCi0gICAgICAgIHJldHVybiB1bmljaHIodmFs
dWUpCisgICAgICAgIHJldHVybiBjaHIodmFsdWUpCiAKICAgICBkZWYgZXNjYXBlX3ZhbHVlKHNl
bGYsIGMpOgogICAgICAgICBpZiAnMCcgPD0gYyA8PSAnOSc6CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC9zZXJpYWxpemVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQppbmRleCBlYzhkODBlZDZm
NzEuLmUzMWE2MDc5MWVhNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5CkBAIC0xLDQgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCiBmcm9tIHNpeCBpbXBvcnQgZW5zdXJlX3RleHQKIAog
ZnJvbSAubm9kZSBpbXBvcnQgTm9kZVZpc2l0b3IsIFZhbHVlTm9kZSwgTGlzdE5vZGUsIEJpbmFy
eUV4cHJlc3Npb25Ob2RlCkBAIC0zNCw2ICszMyw3IEBAIGNsYXNzIE1hbmlmZXN0U2VyaWFsaXpl
cihOb2RlVmlzaXRvcik6CiAgICAgICAgIHJ2ID0gIlxuIi5qb2luKHNlbGYudmlzaXQocm9vdCkp
CiAgICAgICAgIGlmIG5vdCBydjoKICAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICBydiA9
IHJ2LnN0cmlwKCkKICAgICAgICAgaWYgcnZbLTFdICE9ICJcbiI6CiAgICAgICAgICAgICBydiA9
IHJ2ICsgIlxuIgogICAgICAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3Rz
L3Rlc3Rfc2VyaWFsaXplci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQpp
bmRleCBiMjQ3ODU1ODAxZWEuLjAyZTUyODE1ZGJkYyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVz
dHMvdGVzdF9zZXJpYWxpemVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXpl
ci5weQpAQCAtMSw4ICsxLDUgQEAKLWltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAogCi1pbXBv
cnQgcHl0ZXN0Ci0KIGZyb20gLi4gaW1wb3J0IHBhcnNlciwgc2VyaWFsaXplcgogCiAKQEAgLTE5
Miw3ICsxODksNiBAQCBjbGFzcyBUb2tlbml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgICAgICAgICAgICAgIHIiIiJrZXk6ICIjIgogIiIiKQogCi0gICAgQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy5tYXh1bmljb2RlID09IDB4RkZGRiwgcmVhc29uPSJuYXJyb3cgdW5pY29kZSIp
CiAgICAgZGVmIHRlc3RfZXNjYXBlXzkoc2VsZik6CiAgICAgICAgIHNlbGYuY29tcGFyZShiciIi
ImtleTogXFUxMEZGRkZhYmMiIiIsCiAgICAgICAgICAgICAgICAgICAgICB1IiIia2V5OiBcVTAw
MTBGRkZGYWJjCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKaW5kZXggZTFkOWVm
OGIxYTkxLi4yNWEyNTE1ZWY2ZjggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIu
cHkKQEAgLTEsMTUgKzEsMTMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rp
b24sIHVuaWNvZGVfbGl0ZXJhbHMKLQogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHN5
cwotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgaXRlcnZhbHVlcwogCiBpbXBvcnQgd3B0c2Vy
dmUKIGZyb20gd3B0c2VydmUgaW1wb3J0IHNzbHV0aWxzCiAKIGZyb20gLiBpbXBvcnQgZW52aXJv
bm1lbnQgYXMgZW52CiBmcm9tIC4gaW1wb3J0IGluc3RydW1lbnRzCitmcm9tIC4gaW1wb3J0IG1w
Y29udGV4dAogZnJvbSAuIGltcG9ydCBwcm9kdWN0cwogZnJvbSAuIGltcG9ydCB0ZXN0bG9hZGVy
CiBmcm9tIC4gaW1wb3J0IHdwdGNvbW1hbmRsaW5lCkBAIC0xOCw3ICsxNiw2IEBAIGZyb20gLiBp
bXBvcnQgd3B0dGVzdAogZnJvbSBtb3psb2cgaW1wb3J0IGNhcHR1cmUsIGhhbmRsZXJzCiBmcm9t
IC5mb250IGltcG9ydCBGb250SW5zdGFsbGVyCiBmcm9tIC50ZXN0cnVubmVyIGltcG9ydCBNYW5h
Z2VyR3JvdXAKLWZyb20gLmJyb3dzZXJzLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyCiAKIGhlcmUg
PSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAKQEAgLTY1LDYgKzYyLDkgQEAgZGVmIGdldF9s
b2FkZXIodGVzdF9wYXRocywgcHJvZHVjdCwgZGVidWc9Tm9uZSwgcnVuX2luZm9fZXh0cmFzPU5v
bmUsIGNodW5rZXJfa3cKICAgICBtYW5pZmVzdF9maWx0ZXJzID0gW10KIAogICAgIGluY2x1ZGUg
PSBrd2FyZ3NbImluY2x1ZGUiXQorICAgIGlmIGt3YXJnc1siaW5jbHVkZV9maWxlIl06CisgICAg
ICAgIGluY2x1ZGUgPSBpbmNsdWRlIG9yIFtdCisgICAgICAgIGluY2x1ZGUuZXh0ZW5kKHRlc3Rs
b2FkZXIucmVhZF9pbmNsdWRlX2Zyb21fZmlsZShrd2FyZ3NbImluY2x1ZGVfZmlsZSJdKSkKICAg
ICBpZiB0ZXN0X2dyb3VwczoKICAgICAgICAgaW5jbHVkZSA9IHRlc3Rsb2FkZXIudXBkYXRlX2lu
Y2x1ZGVfZm9yX2dyb3Vwcyh0ZXN0X2dyb3VwcywgaW5jbHVkZSkKIApAQCAtOTYsNyArOTYsNyBA
QCBkZWYgZ2V0X2xvYWRlcih0ZXN0X3BhdGhzLCBwcm9kdWN0LCBkZWJ1Zz1Ob25lLCBydW5faW5m
b19leHRyYXM9Tm9uZSwgY2h1bmtlcl9rdwogZGVmIGxpc3RfdGVzdF9ncm91cHModGVzdF9wYXRo
cywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgIGVudi5kb19kZWxheWVkX2ltcG9ydHMobG9nZ2Vy
LCB0ZXN0X3BhdGhzKQogCi0gICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMubG9hZF9wcm9k
dWN0KGt3YXJnc1siY29uZmlnIl0sIHByb2R1Y3QpWy0xXSgqKmt3YXJncykKKyAgICBydW5faW5m
b19leHRyYXMgPSBwcm9kdWN0cy5Qcm9kdWN0KGt3YXJnc1siY29uZmlnIl0sIHByb2R1Y3QpLnJ1
bl9pbmZvX2V4dHJhcygqKmt3YXJncykKIAogICAgIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlciA9IGdl
dF9sb2FkZXIodGVzdF9wYXRocywgcHJvZHVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvX2V4dHJhcz1ydW5faW5mb19leHRyYXMsICoqa3dhcmdzKQpA
QCAtMTEwLDEyICsxMTAsMTIgQEAgZGVmIGxpc3RfZGlzYWJsZWQodGVzdF9wYXRocywgcHJvZHVj
dCwgKiprd2FyZ3MpOgogCiAgICAgcnYgPSBbXQogCi0gICAgcnVuX2luZm9fZXh0cmFzID0gcHJv
ZHVjdHMubG9hZF9wcm9kdWN0KGt3YXJnc1siY29uZmlnIl0sIHByb2R1Y3QpWy0xXSgqKmt3YXJn
cykKKyAgICBydW5faW5mb19leHRyYXMgPSBwcm9kdWN0cy5Qcm9kdWN0KGt3YXJnc1siY29uZmln
Il0sIHByb2R1Y3QpLnJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncykKIAogICAgIHJ1bl9pbmZvLCB0
ZXN0X2xvYWRlciA9IGdldF9sb2FkZXIodGVzdF9wYXRocywgcHJvZHVjdCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2V4dHJhcz1ydW5faW5mb19leHRy
YXMsICoqa3dhcmdzKQogCi0gICAgZm9yIHRlc3RfdHlwZSwgdGVzdHMgaW4gaXRlcml0ZW1zKHRl
c3RfbG9hZGVyLmRpc2FibGVkX3Rlc3RzKToKKyAgICBmb3IgdGVzdF90eXBlLCB0ZXN0cyBpbiB0
ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0cy5pdGVtcygpOgogICAgICAgICBmb3IgdGVzdCBpbiB0
ZXN0czoKICAgICAgICAgICAgIHJ2LmFwcGVuZCh7InRlc3QiOiB0ZXN0LmlkLCAicmVhc29uIjog
dGVzdC5kaXNhYmxlZCgpfSkKICAgICBwcmludChqc29uLmR1bXBzKHJ2LCBpbmRlbnQ9MikpCkBA
IC0xMjQsNyArMTI0LDcgQEAgZGVmIGxpc3RfZGlzYWJsZWQodGVzdF9wYXRocywgcHJvZHVjdCwg
Kiprd2FyZ3MpOgogZGVmIGxpc3RfdGVzdHModGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3Mp
OgogICAgIGVudi5kb19kZWxheWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQogCi0gICAg
cnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMubG9hZF9wcm9kdWN0KGt3YXJnc1siY29uZmlnIl0s
IHByb2R1Y3QpWy0xXSgqKmt3YXJncykKKyAgICBydW5faW5mb19leHRyYXMgPSBwcm9kdWN0cy5Q
cm9kdWN0KGt3YXJnc1siY29uZmlnIl0sIHByb2R1Y3QpLnJ1bl9pbmZvX2V4dHJhcygqKmt3YXJn
cykKIAogICAgIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlciA9IGdldF9sb2FkZXIodGVzdF9wYXRocywg
cHJvZHVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZv
X2V4dHJhcz1ydW5faW5mb19leHRyYXMsICoqa3dhcmdzKQpAQCAtMTM5LDggKzEzOSwxMCBAQCBk
ZWYgZ2V0X3BhdXNlX2FmdGVyX3Rlc3QodGVzdF9sb2FkZXIsICoqa3dhcmdzKToKICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQogICAgICAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06CiAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYga3dhcmdzWyJkZWJ1Z190ZXN0Il06CisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICB0ZXN0cyA9IHRlc3RfbG9hZGVyLnRlc3RzCi0g
ICAgICAgIGlzX3NpbmdsZV90ZXN0aGFybmVzcyA9IChzdW0obGVuKGl0ZW0pIGZvciBpdGVtIGlu
IGl0ZXJ2YWx1ZXModGVzdHMpKSA9PSAxIGFuZAorICAgICAgICBpc19zaW5nbGVfdGVzdGhhcm5l
c3MgPSAoc3VtKGxlbihpdGVtKSBmb3IgaXRlbSBpbiB0ZXN0cy52YWx1ZXMoKSkgPT0gMSBhbmQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbih0ZXN0cy5nZXQoInRlc3RoYXJu
ZXNzIiwgW10pKSA9PSAxKQogICAgICAgICBpZiBrd2FyZ3NbInJlcGVhdCJdID09IDEgYW5kIGt3
YXJnc1sicmVydW4iXSA9PSAxIGFuZCBpc19zaW5nbGVfdGVzdGhhcm5lc3M6CiAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQpAQCAtMTUxLDE1ICsxNTMsMTggQEAgZGVmIGdldF9wYXVzZV9hZnRlcl90
ZXN0KHRlc3RfbG9hZGVyLCAqKmt3YXJncyk6CiBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9w
YXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICIiIlNldCB1cCB0aGUgdGVzdCBlbnZpcm9u
bWVudCwgbG9hZCB0aGUgbGlzdCBvZiB0ZXN0cyB0byBiZSBleGVjdXRlZCwgYW5kCiAgICAgaW52
b2tlIHRoZSByZW1haW5kZXIgb2YgdGhlIGNvZGUgdG8gZXhlY3V0ZSB0ZXN0cyIiIgorICAgIG1w
ID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKICAgICBpZiBrd2FyZ3NbImluc3RydW1lbnRfdG9f
ZmlsZSJdIGlzIE5vbmU6CiAgICAgICAgIHJlY29yZGVyID0gaW5zdHJ1bWVudHMuTnVsbEluc3Ry
dW1lbnQoKQogICAgIGVsc2U6CiAgICAgICAgIHJlY29yZGVyID0gaW5zdHJ1bWVudHMuSW5zdHJ1
bWVudChrd2FyZ3NbImluc3RydW1lbnRfdG9fZmlsZSJdKQotICAgIHdpdGggcmVjb3JkZXIgYXMg
cmVjb3JkaW5nLCBjYXB0dXJlLkNhcHR1cmVJTyhsb2dnZXIsIG5vdCBrd2FyZ3NbIm5vX2NhcHR1
cmVfc3RkaW8iXSk6CisgICAgd2l0aCByZWNvcmRlciBhcyByZWNvcmRpbmcsIGNhcHR1cmUuQ2Fw
dHVyZUlPKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm90IGt3YXJnc1sibm9fY2FwdHVyZV9zdGRpbyJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcF9jb250ZXh0PW1wKToKICAgICAg
ICAgcmVjb3JkaW5nLnNldChbInN0YXJ0dXAiXSkKICAgICAgICAgZW52LmRvX2RlbGF5ZWRfaW1w
b3J0cyhsb2dnZXIsIHRlc3RfcGF0aHMpCiAKLSAgICAgICAgcHJvZHVjdCA9IHByb2R1Y3RzLmxv
YWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QsIGxvYWRfY2xzPVRydWUpCisgICAgICAgIHByb2R1
Y3QgPSBwcm9kdWN0cy5Qcm9kdWN0KGNvbmZpZywgcHJvZHVjdCkKIAogICAgICAgICBlbnZfZXh0
cmFzID0gcHJvZHVjdC5nZXRfZW52X2V4dHJhcygqKmt3YXJncykKIApAQCAtMTk0LDYgKzE5OSw3
IEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6
CiAgICAgICAgIHNraXBwZWRfdGVzdHMgPSAwCiAgICAgICAgIHRlc3RfdG90YWwgPSAwCiAgICAg
ICAgIHVuZXhwZWN0ZWRfdG90YWwgPSAwCisgICAgICAgIHVuZXhwZWN0ZWRfcGFzc190b3RhbCA9
IDAKIAogICAgICAgICBpZiBsZW4odGVzdF9sb2FkZXIudGVzdF9pZHMpID09IDAgYW5kIGt3YXJn
c1sidGVzdF9saXN0Il06CiAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIlVuYWJsZSB0byBm
aW5kIGFueSB0ZXN0cyBhdCB0aGUgcGF0aChzKToiKQpAQCAtMjE5LDYgKzIyNSw3IEBAIGRlZiBy
dW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgICAg
IHdpdGggZW52LlRlc3RFbnZpcm9ubWVudCh0ZXN0X3BhdGhzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfdGVzdCJdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0LmVudl9vcHRpb25zLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3NsX2NvbmZpZywKQEAgLTIyOSw3ICsyMzYsNyBAQCBk
ZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAg
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuZW5zdXJlX3N0
YXJ0ZWQoKQogICAgICAgICAgICAgZXhjZXB0IGVudi5UZXN0RW52aXJvbm1lbnRFcnJvciBhcyBl
OgotICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiRXJyb3Igc3RhcnRpbmcgdGVzdCBl
bnZpcm9ubWVudDogJXMiICUgZS5tZXNzYWdlKQorICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0
aWNhbCgiRXJyb3Igc3RhcnRpbmcgdGVzdCBlbnZpcm9ubWVudDogJXMiICUgZSkKICAgICAgICAg
ICAgICAgICByYWlzZQogCiAgICAgICAgICAgICByZWNvcmRpbmcuc2V0KFsic3RhcnR1cCJdKQpA
QCAtMjQ3LDYgKzI1NCw3IEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9k
dWN0LCAqKmt3YXJncyk6CiAKICAgICAgICAgICAgICAgICB0ZXN0X2NvdW50ID0gMAogICAgICAg
ICAgICAgICAgIHVuZXhwZWN0ZWRfY291bnQgPSAwCisgICAgICAgICAgICAgICAgdW5leHBlY3Rl
ZF9wYXNzX2NvdW50ID0gMAogCiAgICAgICAgICAgICAgICAgdGVzdHMgPSBbXQogICAgICAgICAg
ICAgICAgIGZvciB0ZXN0X3R5cGUgaW4gdGVzdF9sb2FkZXIudGVzdF90eXBlczoKQEAgLTI2NSwy
NSArMjczLDE5IEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAq
Kmt3YXJncyk6CiAgICAgICAgICAgICAgICAgZm9yIHRlc3RfdHlwZSBpbiBrd2FyZ3NbInRlc3Rf
dHlwZXMiXToKICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJ1bm5pbmcgJXMgdGVz
dHMiICUgdGVzdF90eXBlKQogCi0gICAgICAgICAgICAgICAgICAgICMgV2ViRHJpdmVyIHRlc3Rz
IG1heSBjcmVhdGUgYW5kIGRlc3Ryb3kgbXVsdGlwbGUgYnJvd3NlcgotICAgICAgICAgICAgICAg
ICAgICAjIHByb2Nlc3NlcyBhcyBwYXJ0IG9mIHRoZWlyIGV4cGVjdGVkIGJlaGF2aW9yLiBUaGVz
ZQotICAgICAgICAgICAgICAgICAgICAjIHByb2Nlc3NlcyBhcmUgbWFuYWdlZCBieSBhIFdlYkRy
aXZlciBzZXJ2ZXIgYmluYXJ5LiBUaGlzCi0gICAgICAgICAgICAgICAgICAgICMgb2J2aWF0ZXMg
dGhlIG5lZWQgZm9yIHdwdHJ1bm5lciB0byBwcm92aWRlIGEgYnJvd3Nlciwgc28KLSAgICAgICAg
ICAgICAgICAgICAgIyB0aGUgTnVsbEJyb3dzZXIgaXMgdXNlZCBpbiBwbGFjZSBvZiB0aGUgInRh
cmdldCIgYnJvd3NlcgotICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0X3R5cGUgPT0gIndkc3Bl
YyI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscyA9IE51bGxCcm93c2VyCi0g
ICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicm93c2Vy
X2NscyA9IHByb2R1Y3QuYnJvd3Nlcl9jbHMKKyAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9j
bHMgPSBwcm9kdWN0LmdldF9icm93c2VyX2Nscyh0ZXN0X3R5cGUpCiAKLSAgICAgICAgICAgICAg
ICAgICAgYnJvd3Nlcl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9icm93c2VyX2t3YXJncyh0ZXN0X3R5
cGUsCisgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRfYnJv
d3Nlcl9rd2FyZ3MobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWc9dGVzdF9lbnZpcm9ubWVudC5jb25maWcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtX3Rlc3Rf
Z3JvdXBzPWxlbih0ZXN0X2dyb3VwcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKICAgICAgICAgICAg
ICAgICAgICAgZXhlY3V0b3JfY2xzID0gcHJvZHVjdC5leGVjdXRvcl9jbGFzc2VzLmdldCh0ZXN0
X3R5cGUpCi0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncyA9IHByb2R1Y3QuZ2V0
X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNv
bmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY2FjaGVfbWFuYWdlciwKKyAgICAgICAg
ICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzID0gcHJvZHVjdC5nZXRfZXhlY3V0b3Jfa3dhcmdz
KGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZW52aXJvbm1lbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5faW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCkBAIC0zMzQsMTAgKzMz
NiwxMyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2Fy
Z3MpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudGVzdF9jb3VudCgpCiAgICAgICAg
ICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudW5leHBl
Y3RlZF9jb3VudCgpCisgICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfY291
bnQgKz0gbWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX3Bhc3NfY291bnQoKQogICAgICAgICAgICAg
ICAgIHJlY29yZGluZy5zZXQoWyJhZnRlci1lbmQiXSkKICAgICAgICAgICAgICAgICB0ZXN0X3Rv
dGFsICs9IHRlc3RfY291bnQKICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3RvdGFsICs9IHVu
ZXhwZWN0ZWRfY291bnQKLSAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiR290ICVpIHVuZXhw
ZWN0ZWQgcmVzdWx0cyIgJSB1bmV4cGVjdGVkX2NvdW50KQorICAgICAgICAgICAgICAgIHVuZXhw
ZWN0ZWRfcGFzc190b3RhbCArPSB1bmV4cGVjdGVkX3Bhc3NfY291bnQKKyAgICAgICAgICAgICAg
ICBsb2dnZXIuaW5mbygiR290ICVpIHVuZXhwZWN0ZWQgcmVzdWx0cywgd2l0aCAlaSB1bmV4cGVj
dGVkIHBhc3NlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bmV4cGVjdGVkX2Nv
dW50LCB1bmV4cGVjdGVkX3Bhc3NfY291bnQpKQogICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0
ZV9lbmQoKQogICAgICAgICAgICAgICAgIGlmIHJlcGVhdF91bnRpbF91bmV4cGVjdGVkIGFuZCB1
bmV4cGVjdGVkX3RvdGFsID4gMDoKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKQEAgLTM1OSw2
ICszNjQsMTMgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoq
a3dhcmdzKToKICAgICAgICAgbG9nZ2VyLmluZm8oIlRvbGVyYXRpbmcgJXMgdW5leHBlY3RlZCBy
ZXN1bHRzIiAlIHVuZXhwZWN0ZWRfdG90YWwpCiAgICAgICAgIHJldHVybiBUcnVlCiAKKyAgICBh
bGxfdW5leHBlY3RlZF9wYXNzZWQgPSAodW5leHBlY3RlZF90b3RhbCBhbmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF90b3RhbCA9PSB1bmV4cGVjdGVkX3Bhc3NfdG90
YWwpCisgICAgaWYgYWxsX3VuZXhwZWN0ZWRfcGFzc2VkIGFuZCBub3Qga3dhcmdzWyJmYWlsX29u
X3VuZXhwZWN0ZWRfcGFzcyJdOgorICAgICAgICBsb2dnZXIuaW5mbygiVG9sZXJhdGluZyAlaSB1
bmV4cGVjdGVkIHJlc3VsdHMgYmVjYXVzZSB0aGV5IGFsbCBQQVNTIiAlCisgICAgICAgICAgICAg
ICAgICAgIHVuZXhwZWN0ZWRfcGFzc190b3RhbCkKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAg
IHJldHVybiB1bmV4cGVjdGVkX3RvdGFsID09IDAKIAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHR0ZXN0LnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
dGVzdC5weQppbmRleCAzMWIyNDU2MTJiZTAuLjBjZDcyZTI4NWIwMCAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVz
dC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHR0ZXN0LnB5CkBAIC0xLDkgKzEsOSBAQAogaW1wb3J0IG9zCiBpbXBvcnQgc3Vi
cHJvY2VzcwogaW1wb3J0IHN5cwotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1
cmxqb2luCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAotZnJvbSBzaXggaW1w
b3J0IGl0ZXJpdGVtcywgc3RyaW5nX3R5cGVzCitmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFz
c1ZhciwgRGljdCwgVHlwZQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJv
bSAud3B0bWFuaWZlc3QucGFyc2VyIGltcG9ydCBhdG9tcwogCkBAIC04Myw3ICs4Myw3IEBAIGRl
ZiBnZXRfcnVuX2luZm8obWV0YWRhdGFfcm9vdCwgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgIHJl
dHVybiBSdW5JbmZvKG1ldGFkYXRhX3Jvb3QsIHByb2R1Y3QsICoqa3dhcmdzKQogCiAKLWNsYXNz
IFJ1bkluZm8oZGljdCk6CitjbGFzcyBSdW5JbmZvKERpY3Rbc3RyLCBBbnldKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgbWV0YWRhdGFfcm9vdCwgcHJvZHVjdCwgZGVidWcsCiAgICAgICAgICAg
ICAgICAgIGJyb3dzZXJfdmVyc2lvbj1Ob25lLAogICAgICAgICAgICAgICAgICBicm93c2VyX2No
YW5uZWw9Tm9uZSwKQEAgLTE1MCwyMiArMTUwLDI4IEBAIGRlZiBzZXJ2ZXJfcHJvdG9jb2wobWFu
aWZlc3RfaXRlbSk6CiAKIGNsYXNzIFRlc3Qob2JqZWN0KToKIAotICAgIHJlc3VsdF9jbHMgPSBO
b25lCi0gICAgc3VidGVzdF9yZXN1bHRfY2xzID0gTm9uZQotICAgIHRlc3RfdHlwZSA9IE5vbmUK
KyAgICByZXN1bHRfY2xzID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltUeXBlW1Jlc3VsdF1dCisg
ICAgc3VidGVzdF9yZXN1bHRfY2xzID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltUeXBlW1N1YnRl
c3RSZXN1bHRdXQorICAgIHRlc3RfdHlwZSA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbc3RyXQog
CiAgICAgZGVmYXVsdF90aW1lb3V0ID0gMTAgICMgc2Vjb25kcwogICAgIGxvbmdfdGltZW91dCA9
IDYwICAjIHNlY29uZHMKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmws
IGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsCi0gICAgICAgICAgICAgICAgIHRpbWVv
dXQ9Tm9uZSwgcGF0aD1Ob25lLCBwcm90b2NvbD0iaHR0cCIsIHF1aWM9RmFsc2UpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFk
YXRhLCB0ZXN0X21ldGFkYXRhLAorICAgICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9
Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLCBzdWJkb21haW49RmFsc2UsCisgICAgICAgICAgICAgICAg
IHF1aWM9RmFsc2UpOgorICAgICAgICBzZWxmLnVybF9iYXNlID0gdXJsX2Jhc2UKICAgICAgICAg
c2VsZi50ZXN0c19yb290ID0gdGVzdHNfcm9vdAogICAgICAgICBzZWxmLnVybCA9IHVybAogICAg
ICAgICBzZWxmLl9pbmhlcml0X21ldGFkYXRhID0gaW5oZXJpdF9tZXRhZGF0YQogICAgICAgICBz
ZWxmLl90ZXN0X21ldGFkYXRhID0gdGVzdF9tZXRhZGF0YQogICAgICAgICBzZWxmLnRpbWVvdXQg
PSB0aW1lb3V0IGlmIHRpbWVvdXQgaXMgbm90IE5vbmUgZWxzZSBzZWxmLmRlZmF1bHRfdGltZW91
dAogICAgICAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgICAgIHNlbGYuZW52aXJvbm1lbnQgPSB7
InByb3RvY29sIjogcHJvdG9jb2wsICJwcmVmcyI6IHNlbGYucHJlZnMsICJxdWljIjogcXVpY30K
KyAgICAgICAgc2VsZi5zdWJkb21haW4gPSBzdWJkb21haW4KKyAgICAgICAgc2VsZi5lbnZpcm9u
bWVudCA9IHsidXJsX2Jhc2UiOiB1cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicHJvdG9jb2wiOiBwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJl
ZnMiOiBzZWxmLnByZWZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJxdWljIjogcXVp
Y30KIAogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgogICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShvdGhlciwgVGVzdCk6CkBAIC0xODQsMTMgKzE5MCwxNSBAQCBjbGFzcyBUZXN0KG9iamVj
dCk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21fbWFuaWZlc3QoY2xzLCBtYW5pZmVz
dF9maWxlLCBtYW5pZmVzdF9pdGVtLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToK
ICAgICAgICAgdGltZW91dCA9IGNscy5sb25nX3RpbWVvdXQgaWYgbWFuaWZlc3RfaXRlbS50aW1l
b3V0ID09ICJsb25nIiBlbHNlIGNscy5kZWZhdWx0X3RpbWVvdXQKLSAgICAgICAgcmV0dXJuIGNs
cyhtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgIHJldHVybiBjbHMobWFuaWZlc3Rf
ZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jv
b3QsCiAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfaXRlbS51cmwsCiAgICAgICAgICAgICAg
ICAgICAgaW5oZXJpdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0ZXN0X21ldGFkYXRh
LAogICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9dGltZW91dCwKICAgICAgICAgICAgICAgICAg
ICBwYXRoPW9zLnBhdGguam9pbihtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsIG1hbmlmZXN0X2l0
ZW0ucGF0aCksCi0gICAgICAgICAgICAgICAgICAgcHJvdG9jb2w9c2VydmVyX3Byb3RvY29sKG1h
bmlmZXN0X2l0ZW0pKQorICAgICAgICAgICAgICAgICAgIHByb3RvY29sPXNlcnZlcl9wcm90b2Nv
bChtYW5pZmVzdF9pdGVtKSwKKyAgICAgICAgICAgICAgICAgICBzdWJkb21haW49bWFuaWZlc3Rf
aXRlbS5zdWJkb21haW4pCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaWQoc2VsZik6CkBAIC0y
OTksNyArMzA3LDcgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAgICAgICBydiA9IHt9CiAgICAg
ICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoTm9uZSk6CiAgICAgICAgICAgICB0aHJlc2hv
bGQgPSBtZXRhLmxlYWtfdGhyZXNob2xkCi0gICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBp
dGVyaXRlbXModGhyZXNob2xkKToKKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHRocmVz
aG9sZC5pdGVtcygpOgogICAgICAgICAgICAgICAgIGlmIGtleSBub3QgaW4gcnY6CiAgICAgICAg
ICAgICAgICAgICAgIHJ2W2tleV0gPSB2YWx1ZQogICAgICAgICByZXR1cm4gcnYKQEAgLTM0MSw3
ICszNDksNyBAQCBjbGFzcyBUZXN0KG9iamVjdCk6CiAKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgZXhwZWN0ZWQgPSBtZXRhZGF0YS5nZXQoImV4cGVjdGVkIikKLSAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UoZXhwZWN0ZWQsIHN0cmluZ190eXBlcyk6CisgICAgICAgICAgICBpZiBpc2luc3Rh
bmNlKGV4cGVjdGVkLCBzdHIpOgogICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZAogICAg
ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBsaXN0KToKICAgICAgICAgICAgICAg
ICByZXR1cm4gZXhwZWN0ZWRbMF0KQEAgLTM5MywxMSArNDAxLDExIEBAIGNsYXNzIFRlc3RoYXJu
ZXNzVGVzdChUZXN0KToKICAgICBzdWJ0ZXN0X3Jlc3VsdF9jbHMgPSBUZXN0aGFybmVzc1N1YnRl
c3RSZXN1bHQKICAgICB0ZXN0X3R5cGUgPSAidGVzdGhhcm5lc3MiCiAKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRh
LAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhl
cml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICB0aW1lb3V0PU5v
bmUsIHBhdGg9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLCB0ZXN0ZHJpdmVyPUZhbHNlLAotICAgICAg
ICAgICAgICAgICBqc3NoZWxsPUZhbHNlLCBzY3JpcHRzPU5vbmUsIHF1aWM9RmFsc2UpOgotICAg
ICAgICBUZXN0Ll9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSwgdGltZW91dCwKLSAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBw
cm90b2NvbCwgcXVpYykKKyAgICAgICAgICAgICAgICAganNzaGVsbD1GYWxzZSwgc2NyaXB0cz1O
b25lLCBzdWJkb21haW49RmFsc2UsIHF1aWM9RmFsc2UpOgorICAgICAgICBUZXN0Ll9faW5pdF9f
KHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3Rf
bWV0YWRhdGEsIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2ws
IHN1YmRvbWFpbiwgcXVpYykKIAogICAgICAgICBzZWxmLnRlc3Rkcml2ZXIgPSB0ZXN0ZHJpdmVy
CiAgICAgICAgIHNlbGYuanNzaGVsbCA9IGpzc2hlbGwKQEAgLTQxMiw3ICs0MjAsOCBAQCBjbGFz
cyBUZXN0aGFybmVzc1Rlc3QoVGVzdCk6CiAgICAgICAgIHNjcmlwdF9tZXRhZGF0YSA9IG1hbmlm
ZXN0X2l0ZW0uc2NyaXB0X21ldGFkYXRhIG9yIFtdCiAgICAgICAgIHNjcmlwdHMgPSBbdiBmb3Ig
KGssIHYpIGluIHNjcmlwdF9tZXRhZGF0YQogICAgICAgICAgICAgICAgICAgIGlmIGsgPT0gInNj
cmlwdCJdCi0gICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAorICAg
ICAgICByZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAg
ICAgbWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0
X2l0ZW0udXJsLAogICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAgICAg
ICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwKQEAgLTQyMiw2ICs0MzEsNyBAQCBjbGFzcyBUZXN0
aGFybmVzc1Rlc3QoVGVzdCk6CiAgICAgICAgICAgICAgICAgICAgdGVzdGRyaXZlcj10ZXN0ZHJp
dmVyLAogICAgICAgICAgICAgICAgICAgIGpzc2hlbGw9anNzaGVsbCwKICAgICAgICAgICAgICAg
ICAgICBzY3JpcHRzPXNjcmlwdHMsCisgICAgICAgICAgICAgICAgICAgc3ViZG9tYWluPW1hbmlm
ZXN0X2l0ZW0uc3ViZG9tYWluLAogICAgICAgICAgICAgICAgICAgIHF1aWM9cXVpYykKIAogICAg
IEBwcm9wZXJ0eQpAQCAtNDUyLDExICs0NjIsMTEgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6
CiAgICAgcmVzdWx0X2NscyA9IFJlZnRlc3RSZXN1bHQKICAgICB0ZXN0X3R5cGUgPSAicmVmdGVz
dCIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0
YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMsCi0gICAgICAgICAgICAgICAgIHRpbWVv
dXQ9Tm9uZSwgcGF0aD1Ob25lLCB2aWV3cG9ydF9zaXplPU5vbmUsIGRwaT1Ob25lLCBmdXp6eT1O
b25lLCBwcm90b2NvbD0iaHR0cCIsCi0gICAgICAgICAgICAgICAgIHF1aWM9RmFsc2UpOgotICAg
ICAgICBUZXN0Ll9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSwgdGltZW91dCwKLSAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBw
cm90b2NvbCwgcXVpYykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jv
b3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgcmVmZXJlbmNlcywKKyAg
ICAgICAgICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHZpZXdwb3J0X3NpemU9Tm9u
ZSwgZHBpPU5vbmUsIGZ1enp5PU5vbmUsCisgICAgICAgICAgICAgICAgIHByb3RvY29sPSJodHRw
Iiwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAgICAgICAgVGVzdC5fX2luaXRfXyhz
ZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21l
dGFkYXRhLCB0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIHByb3RvY29sLCBz
dWJkb21haW4sIHF1aWMpCiAKICAgICAgICAgZm9yIF8sIHJlZl90eXBlIGluIHJlZmVyZW5jZXM6
CiAgICAgICAgICAgICBpZiByZWZfdHlwZSBub3QgaW4gKCI9PSIsICIhPSIpOgpAQCAtNDg2LDEz
ICs0OTYsMTUgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAKICAgICAgICAgdXJsID0gbWFu
aWZlc3RfdGVzdC51cmwKIAotICAgICAgICBub2RlID0gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNf
cm9vdCwKKyAgICAgICAgbm9kZSA9IGNscyhtYW5pZmVzdF9maWxlLnVybF9iYXNlLAorICAgICAg
ICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAg
ICBtYW5pZmVzdF90ZXN0LnVybCwKICAgICAgICAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRh
LAogICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAg
W10sCiAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAogICAgICAgICAgICAgICAg
ICAgIHBhdGg9bWFuaWZlc3RfdGVzdC5wYXRoLAorICAgICAgICAgICAgICAgICAgIHN1YmRvbWFp
bj1tYW5pZmVzdF90ZXN0LnN1YmRvbWFpbiwKICAgICAgICAgICAgICAgICAgICBxdWljPXF1aWMs
CiAgICAgICAgICAgICAgICAgICAgKipjbHMuY2xzX2t3YXJncyhtYW5pZmVzdF90ZXN0KSkKIApA
QCAtNTA3LDIwICs1MTksMjMgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgICAgICMg
UGVyIHRoZSBsb2dpYyBkb2N1bWVudGVkIGFib3ZlLCB0aGlzIG1lYW5zIHRoYXQgbm9uZSBvZiB0
aGUgbWlzbWF0Y2hlcyBwcm92aWRlZCBtYXRjaCwKICAgICAgICAgbWlzbWF0Y2hfd2FsayA9IE5v
bmUKICAgICAgICAgaWYgcmVmc19ieV90eXBlWyIhPSJdOgotICAgICAgICAgICAgbWlzbWF0Y2hf
d2FsayA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAg
IG1pc21hdGNoX3dhbGsgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnVybF9iYXNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNf
cm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZzX2J5X3R5
cGVbIiE9Il1bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSkKICAgICAgICAgICAgIGNtcF9yZWYg
PSBtaXNtYXRjaF93YWxrCiAgICAgICAgICAgICBmb3IgcmVmX3VybCBpbiByZWZzX2J5X3R5cGVb
IiE9Il1bMTpdOgotICAgICAgICAgICAgICAgIGNtcF9zZWxmID0gUmVmdGVzdFRlc3QobWFuaWZl
c3RfZmlsZS50ZXN0c19yb290LAorICAgICAgICAgICAgICAgIGNtcF9zZWxmID0gUmVmdGVzdFRl
c3QobWFuaWZlc3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKQogICAgICAgICAgICAg
ICAgIGNtcF9yZWYucmVmZXJlbmNlcy5hcHBlbmQoKGNtcF9zZWxmLCAiIT0iKSkKLSAgICAgICAg
ICAgICAgICBjbXBfcmVmID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAor
ICAgICAgICAgICAgICAgIGNtcF9yZWYgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnVybF9i
YXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxl
LnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl91
cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLApAQCAtNTM2LDcgKzU1MSw4IEBAIGNs
YXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogICAgICAgICAgICAgIyBGb3IgZWFjaCA9PSByZWYsIGFk
ZCBhIHJlZmVyZW5jZSB0byB0aGlzIG5vZGUgd2hvc2UgdGFpbCBpcyB0aGUgbWlzbWF0Y2ggbGlz
dC4KICAgICAgICAgICAgICMgUGVyIHRoZSBsb2dpYyBkb2N1bWVudGVkIGFib3ZlLCB0aGlzIG1l
YW5zIGFueSBvbmUgb2YgdGhlIG1hdGNoZXMgbXVzdCBwYXNzIHBsdXMgYWxsIHRoZSBtaXNtYXRj
aGVzLgogICAgICAgICAgICAgZm9yIHJlZl91cmwgaW4gcmVmc19ieV90eXBlWyI9PSJdOgotICAg
ICAgICAgICAgICAgIHJlZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwK
KyAgICAgICAgICAgICAgICByZWYgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnVybF9iYXNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNf
cm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZfdXJsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5vbmUsCkBAIC02MDUsMTIgKzYyMSwxMiBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChU
ZXN0KToKIGNsYXNzIFByaW50UmVmdGVzdFRlc3QoUmVmdGVzdFRlc3QpOgogICAgIHRlc3RfdHlw
ZSA9ICJwcmludC1yZWZ0ZXN0IgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3Qs
IHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgcmVmZXJlbmNlcywKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRh
ZGF0YSwgdGVzdF9tZXRhZGF0YSwgcmVmZXJlbmNlcywKICAgICAgICAgICAgICAgICAgdGltZW91
dD1Ob25lLCBwYXRoPU5vbmUsIHZpZXdwb3J0X3NpemU9Tm9uZSwgZHBpPU5vbmUsIGZ1enp5PU5v
bmUsCi0gICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2VzPU5vbmUsIHByb3RvY29sPSJodHRwIiwg
cXVpYz1GYWxzZSk6Ci0gICAgICAgIHN1cGVyKFByaW50UmVmdGVzdFRlc3QsIHNlbGYpLl9faW5p
dF9fKHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKKyAg
ICAgICAgICAgICAgICAgcGFnZV9yYW5nZXM9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLCBzdWJkb21h
aW49RmFsc2UsIHF1aWM9RmFsc2UpOgorICAgICAgICBzdXBlcihQcmludFJlZnRlc3RUZXN0LCBz
ZWxmKS5fX2luaXRfXyh1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRh
LCB0ZXN0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWZlcmVuY2VzLCB0aW1lb3V0LCBwYXRoLCB2aWV3cG9ydF9zaXplLCBkcGksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1enp5LCBwcm90
b2NvbCwgcXVpYz1xdWljKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdXp6eSwgcHJvdG9jb2wsIHN1YmRvbWFpbj1zdWJkb21haW4sIHF1aWM9cXVpYykK
ICAgICAgICAgc2VsZi5fcGFnZV9yYW5nZXMgPSBwYWdlX3JhbmdlcwogCiAgICAgQGNsYXNzbWV0
aG9kCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2FjY2VwdF9hbGVydC9hY2NlcHQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2FjY2VwdF9hbGVydC9hY2NlcHQucHkKaW5kZXggNzExYWQ1YWY3OWYy
Li5iODM0NzdlNWNhNzIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvYWNjZXB0X2FsZXJ0L2FjY2VwdC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2FjY2VwdF9hbGVydC9hY2NlcHQucHkKQEAg
LTEsNyArMSw5IEBACitpbXBvcnQgcHl0ZXN0CisKIGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9y
dCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgd2FpdF9m
b3JfbmV3X2hhbmRsZQogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBA
IC0xMCw3ICsxMiw3IEBAIGRlZiBhY2NlcHRfYWxlcnQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NU
IiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2FsZXJ0L2FjY2VwdCIuZm9ybWF0KCoqdmFycyhzZXNz
aW9uKSkpCiAKIAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCB1cmwpOgor
ZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5hbGVydCgnSGVsbG8nKTs8L3NjcmlwdD4i
KQogCiAgICAgcmVzcG9uc2UgPSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKQEAgLTMzLDI3ICszNSw0
MSBAQCBkZWYgdGVzdF9ub191c2VyX3Byb21wdChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIGFsZXJ0IikKIAogCi1kZWYgdGVzdF9hY2NlcHRfYWxlcnQoc2Vz
c2lvbik6CitkZWYgdGVzdF9hY2NlcHRfYWxlcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+
IikKKwogICAgIHJlc3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UpCiAKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNl
cHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogCi1kZWYgdGVzdF9hY2NlcHRf
Y29uZmlybShzZXNzaW9uKToKK2RlZiB0ZXN0X2FjY2VwdF9jb25maXJtKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LnJlc3VsdCA9IHdp
bmRvdy5jb25maXJtKCdIZWxsbycpOzwvc2NyaXB0PiIpCisKICAgICByZXNwb25zZSA9IGFjY2Vw
dF9hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0
aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5h
bGVydC50ZXh0CisKICAgICBhc3NlcnQgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdp
bmRvdy5yZXN1bHQiKSBpcyBUcnVlCiAKIAotZGVmIHRlc3RfYWNjZXB0X3Byb21wdChzZXNzaW9u
KToKK2RlZiB0ZXN0X2FjY2VwdF9wcm9tcHQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICB3aW5kb3cucmVz
dWx0ID0gd2luZG93LnByb21wdCgnRW50ZXIgWW91ciBOYW1lOiAnLCAnRmVkZXJlcicpOwogICAg
ICAgICA8L3NjcmlwdD4KICAgICAgICAgIiIiKQorCiAgICAgcmVzcG9uc2UgPSBhY2NlcHRfYWxl
cnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNlc3Npb24uYWxlcnQu
dGV4dAorCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3cu
cmVzdWx0IikgPT0gIkZlZGVyZXIiCiAKIApAQCAtNjgsMyArODQsMjcgQEAgZGVmIHRlc3RfdW5l
eHBlY3RlZF9hbGVydChzZXNzaW9uKToKIAogICAgIHJlc3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNl
c3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQK
KworCitkZWYgdGVzdF9hY2NlcHRfaW5fcG9wdXBfd2luZG93KHNlc3Npb24sIGlubGluZSk6Cisg
ICAgb3JpZ19oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCisKKyAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiIiIKKyAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJ3aW5kb3cub3BlbignYWJvdXQ6Ymxh
bmsnLCAnX2JsYW5rJywgJ3dpZHRoPTUwMDsgaGVpZ2h0PTIwMDtyZXNpemFibGU9eWVzJyk7Ij5v
cGVuPC9idXR0b24+CisgICAgICAgICIiIikKKyAgICBidXR0b24gPSBzZXNzaW9uLmZpbmQuY3Nz
KCJidXR0b24iLCBhbGw9RmFsc2UpCisgICAgYnV0dG9uLmNsaWNrKCkKKworICAgIHNlc3Npb24u
d2luZG93X2hhbmRsZSA9IHdhaXRfZm9yX25ld19oYW5kbGUoc2Vzc2lvbiwgb3JpZ19oYW5kbGVz
KQorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgorICAgICAgICA8c2NyaXB0PndpbmRvdy5h
bGVydCgiSGVsbG8iKTwvc2NyaXB0PgorICAgICAgICAiIiIpCisKKyAgICByZXNwb25zZSA9IGFj
Y2VwdF9hbGVydChzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lv
bi5hbGVydC50ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2FkZF9jb29raWUvYWRkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weQppbmRleCBmMDUxNTM3OTAyNjEu
LjNhMTk0MzJmYzZhMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2FkZF9jb29raWUvYWRkLnB5CkBAIC0xLDEzICsxLDEz
IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1l
ZGVsdGEKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKIAogZnJvbSB3ZWJkcml2ZXIudHJhbnNw
b3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMg
aW1wb3J0IGNsZWFyX2FsbF9jb29raWVzCiAKKwogZGVmIGFkZF9jb29raWUoc2Vzc2lvbiwgY29v
a2llKToKICAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKICAgICAgICAgIlBPU1Qi
LCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vY29va2llIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSwK
QEAgLTU0LDYgKzU0LDQzIEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRv
dyIpCiAKIAorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICJwYWdlIiwKKyAgICBbCisg
ICAgICAgICJhYm91dDpibGFuayIsCisgICAgICAgICJibG9iOmZvby9iYXIiLAorICAgICAgICAi
ZGF0YTp0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCw8cD5mb288L3A+IiwKKyAgICAgICAgImZpbGU6
Ly8vZm9vL2JhciIsCisgICAgICAgICJmdHA6Ly9leGFtcGxlLm9yZyIsCisgICAgICAgICJqYXZh
c2NyaXB0OmZvbyIsCisgICAgICAgICJ3czovL2V4YW1wbGUub3JnIiwKKyAgICAgICAgIndzczov
L2V4YW1wbGUub3JnIiwKKyAgICBdLAorICAgIGlkcz1bCisgICAgICAgICJhYm91dCIsCisgICAg
ICAgICJibG9iIiwKKyAgICAgICAgImRhdGEiLAorICAgICAgICAiZmlsZSIsCisgICAgICAgICJm
dHAiLAorICAgICAgICAiamF2YXNjcmlwdCIsCisgICAgICAgICJ3ZWJzb2NrZXQiLAorICAgICAg
ICAic2VjdXJlIHdlYnNvY2tldCIsCisgICAgXSwKKykKK2RlZiB0ZXN0X2Nvb2tpZV91bnN1cHBv
cnRlZF9zY2hlbWUoc2Vzc2lvbiwgcGFnZSk6CisgICAgbmV3X2Nvb2tpZSA9IHsKKyAgICAgICAg
Im5hbWUiOiAiaGVsbG8iLAorICAgICAgICAidmFsdWUiOiAid29ybGQiLAorICAgICAgICAiZG9t
YWluIjogcGFnZSwKKyAgICAgICAgInBhdGgiOiAiLyIsCisgICAgICAgICJodHRwT25seSI6IEZh
bHNlLAorICAgICAgICAic2VjdXJlIjogRmFsc2UKKyAgICB9CisKKyAgICByZXN1bHQgPSBhZGRf
Y29va2llKHNlc3Npb24sIG5ld19jb29raWUpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgImlu
dmFsaWQgY29va2llIGRvbWFpbiIpCisKKwogZGVmIHRlc3RfYWRkX2RvbWFpbl9jb29raWUoc2Vz
c2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnKToKICAgICBuZXdfY29va2llID0gewogICAgICAgICAi
bmFtZSI6ICJoZWxsbyIsCkBAIC03MiwxMSArMTA5LDExIEBAIGRlZiB0ZXN0X2FkZF9kb21haW5f
Y29va2llKHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZyk6CiAKICAgICBjb29raWUgPSBzZXNz
aW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgImRvbWFpbiIgaW4gY29va2llCi0gICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgdGV4dF90eXBlKQorICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0sIHN0cikKICAgICBhc3NlcnQgIm5hbWUiIGlu
IGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUp
CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQg
InZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0s
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikK
IAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tp
ZVsidmFsdWUiXSA9PSAid29ybGQiCkBAIC0xMDIsMTEgKzEzOSwxMSBAQCBkZWYgdGVzdF9hZGRf
Y29va2llX2Zvcl9pcChzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcsIGNvbmZpZ3VyYXRpb24p
OgogCiAgICAgY29va2llID0gc2Vzc2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0ICJu
YW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4
dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAg
YXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2
YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJd
LCBzdHIpCiAgICAgYXNzZXJ0ICJkb21haW4iIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsiZG9tYWluIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b29raWVbImRvbWFpbiJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImhl
bGxvIgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gIndvcmxkIgpAQCAtMTMxLDkgKzE2
OCw5IEBAIGRlZiB0ZXN0X2FkZF9ub25fc2Vzc2lvbl9jb29raWUoc2Vzc2lvbiwgdXJsKToKIAog
ICAgIGNvb2tpZSA9IHNlc3Npb24uY29va2llcygiaGVsbG8iKQogICAgIGFzc2VydCAibmFtZSIg
aW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlw
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2Vy
dCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUi
XSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3Ry
KQogICAgIGFzc2VydCAiZXhwaXJ5IiBpbiBjb29raWUKICAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b29raWVbImV4cGlyeSJdLCBpbnQpCiAKQEAgLTE1Niw5ICsxOTMsOSBAQCBkZWYgdGVzdF9hZGRf
c2Vzc2lvbl9jb29raWUoc2Vzc2lvbiwgdXJsKToKIAogICAgIGNvb2tpZSA9IHNlc3Npb24uY29v
a2llcygiaGVsbG8iKQogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlz
aW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5j
ZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAg
IGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGlmICJleHBpcnkiIGluIGNv
b2tpZToKICAgICAgICAgYXNzZXJ0IGNvb2tpZS5nZXQoImV4cGlyeSIpIGlzIE5vbmUKIApAQCAt
MTgxLDExICsyMTgsMTEgQEAgZGVmIHRlc3RfYWRkX3Nlc3Npb25fY29va2llX3dpdGhfbGVhZGlu
Z19kb3RfY2hhcmFjdGVyX2luX2RvbWFpbihzZXNzaW9uLCB1cmwsIHMKIAogICAgIGNvb2tpZSA9
IHNlc3Npb24uY29va2llcygiaGVsbG8iKQogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0g
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGlu
IGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBl
KQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2Vy
dCAiZG9tYWluIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFp
biJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwg
c3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFtZSJdID09ICJoZWxsbyIKICAgICBhc3NlcnQg
Y29va2llWyJ2YWx1ZSJdID09ICJ3b3JsZCIKQEAgLTIwOSwxMSArMjQ2LDExIEBAIGRlZiB0ZXN0
X2FkZF9jb29raWVfd2l0aF92YWxpZF9zYW1lc2l0ZV9mbGFnKHNlc3Npb24sIHVybCwgc2FtZV9z
aXRlKToKIAogICAgIGNvb2tpZSA9IHNlc3Npb24uY29va2llcygiaGVsbG8iKQogICAgIGFzc2Vy
dCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0s
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQog
ICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFs
dWUiXSwgc3RyKQogICAgIGFzc2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQotICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFt
ZSJdID09ICJoZWxsbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09ICJ3b3JsZCIKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmFj
ay9iYWNrLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9i
YWNrL2JhY2sucHkKaW5kZXggOWNhNTJlOGYyMjNlLi44NmFkMjI3OGFiMzkgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmFjay9iYWNrLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmFjay9i
YWNrLnB5CkBAIC0xLDQgKzEsNiBAQAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCitpbXBvcnQgcHl0ZXN0Citmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKKwogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nl
c3MKIAogCkBAIC03LDcgKzksNyBAQCBkZWYgYmFjayhzZXNzaW9uKToKICAgICAgICAgIlBPU1Qi
LCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vYmFjayIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAK
IAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxf
cmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGRpdj4iKQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD4iKQogCkBAIC0zMSw3ICsz
Myw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2hpc3Rvcnkoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X3N1Y2Nlc3MocmVzcG9uc2UpCiAKIAotZGVmIHRlc3RfZGF0YV91cmxzKHNlc3Npb24pOgorZGVm
IHRlc3RfZGF0YV91cmxzKHNlc3Npb24sIGlubGluZSk6CiAgICAgdGVzdF9wYWdlcyA9IFsKICAg
ICAgICAgaW5saW5lKCI8cCBpZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCkBA
IC00Niw3ICs0OCw3IEBAIGRlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uKToKICAgICBhc3NlcnQg
c2Vzc2lvbi51cmwgPT0gdGVzdF9wYWdlc1swXQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZv
cmV1bmxvYWQoc2Vzc2lvbik6CitkZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNlc3Np
b24sIGlubGluZSk6CiAgICAgdXJsX2JlZm9yZXVubG9hZCA9IGlubGluZSgiIiIKICAgICAgIDxp
bnB1dCB0eXBlPSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CkBAIC04OCw3ICs5MCw3IEBAIGRlZiB0
ZXN0X2ZyYWdtZW50cyhzZXNzaW9uLCB1cmwpOgogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSB0
ZXN0X3BhZ2VzWzBdCiAKIAotZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgdXJs
KToKK2RlZiB0ZXN0X2hpc3RvcnlfcHVzaHN0YXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAgcHVz
aHN0YXRlX3BhZ2UgPSBpbmxpbmUoIiIiCiAgICAgICA8c2NyaXB0PgogICAgICAgICBmdW5jdGlv
biBwdXNoU3RhdGUoKSB7CkBAIC0xMDksMyArMTExLDQyIEBAIGRlZiB0ZXN0X2hpc3RvcnlfcHVz
aHN0YXRlKHNlc3Npb24sIHVybCk6CiAKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gcHVzaHN0
YXRlX3BhZ2UKICAgICBhc3NlcnQgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGhpc3Rv
cnkuc3RhdGU7IikgaXMgTm9uZQorCisKK2RlZiB0ZXN0X3JlbW92ZWRfaWZyYW1lKHNlc3Npb24s
IHVybCwgaW5saW5lKToKKyAgICBwYWdlID0gaW5saW5lKCI8cD5mb28iKQorCisgICAgc2Vzc2lv
bi51cmwgPSBwYWdlCisgICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9odG1sL2ZyYW1lc19ub19iZmNhY2hlLmh0bWwiKQorCisgICAgc3ViZnJhbWUgPSBzZXNz
aW9uLmZpbmQuY3NzKCIjc3ViLWZyYW1lIiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24uc3dpdGNo
X2ZyYW1lKHN1YmZyYW1lKQorCisgICAgcmVzcG9uc2UgPSBiYWNrKHNlc3Npb24pCisgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gcGFnZQor
CisKKyMgQ2FwYWJpbGl0eSBuZWVkZWQgYXMgbG9uZyBhcyBubyB2YWxpZCBjZXJ0aWZpY2F0ZSBp
cyBhdmFpbGFibGU6CisjICAgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaXNzdWVzLzI4ODQ3CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0SW5zZWN1
cmVDZXJ0cyI6IFRydWV9KQorZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIHVybCk6Cisg
ICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5o
dG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBw
cm90b2NvbD0iaHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9j
b2w9Imh0dHBzIiwgZG9tYWluPSJhbHQiKQorCisgICAgc2Vzc2lvbi51cmwgPSBmaXJzdF9wYWdl
CisgICAgc2Vzc2lvbi51cmwgPSBzZWNvbmRfcGFnZQorCisgICAgZWxlbSA9IHNlc3Npb24uZmlu
ZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCisKKyAgICByZXNwb25zZSA9IGJhY2soc2Vzc2lv
bikKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGFzc2VydCBzZXNzaW9uLnVy
bCA9PSBmaXJzdF9wYWdlCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXJyb3IuU3RhbGVFbGVt
ZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbS5jbGljaygpCisgICAgZWxlbSA9
IHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JhY2svdXNlcl9wcm9tcHRz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iYWNrL3Vz
ZXJfcHJvbXB0cy5weQppbmRleCA3MTIxZjdjNmIyYTYuLjlkMDRmMGY0YWIxMiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iYWNrL3VzZXJf
cHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2JhY2svdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVk
LCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgYmFjayhzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAg
ZGVmIGJhY2soc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgcGFnZXMoc2Vzc2lv
bik6CitkZWYgcGFnZXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBwYWdlcyA9IFsKICAgICAgICAg
aW5saW5lKCI8cCBpZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JpZGkvbmV3
X3Nlc3Npb24vX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2JpZGkvbmV3X3Nlc3Npb24vX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmlkaS9uZXdfc2Vzc2lvbi9jb25u
ZWN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRp
L25ld19zZXNzaW9uL2Nvbm5lY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4zNTdkYTMxYmE4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JpZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weQpA
QCAtMCwwICsxLDM0IEBACitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgYXN5bmNpbworaW1wb3J0IHdl
YnNvY2tldHMKK2ltcG9ydCB3ZWJkcml2ZXIKKworIyBjbGFzc2ljIHNlc3Npb24gdG8gZW5hYmxl
IGJpZGkgY2FwYWJpbGl0eSBtYW51YWxseQorIyBJbnRlbmRlZCB0byBiZSB0aGUgZmlyc3QgdGVz
dCBpbiB0aGlzIGZpbGUKK0BweXRlc3QubWFyay5hc3luY2lvCitAcHl0ZXN0Lm1hcmsuY2FwYWJp
bGl0aWVzKHsid2ViU29ja2V0VXJsIjogVHJ1ZX0pCithc3luYyBkZWYgdGVzdF93ZWJzb2NrZXRf
dXJsX2Nvbm5lY3Qoc2Vzc2lvbik6CisgICAgd2Vic29ja2V0X3VybCA9IHNlc3Npb24uY2FwYWJp
bGl0aWVzWyJ3ZWJTb2NrZXRVcmwiXQorICAgIGFzeW5jIHdpdGggd2Vic29ja2V0cy5jb25uZWN0
KHdlYnNvY2tldF91cmwpIGFzIHdlYnNvY2tldDoKKyAgICAgICAgYXdhaXQgd2Vic29ja2V0LnNl
bmQoIkhlbGxvIHdvcmxkISIpCisKKyMgdGVzdCBiaWRpX3Nlc3Npb24gc2VuZAorIyB1c2luZyBi
aWRpX3Nlc3Npb24gaXMgdGhlIHJlY29tbWVuZGVkIHdheSB0byB0ZXN0IGJpZGkKK0BweXRlc3Qu
bWFyay5hc3luY2lvCithc3luYyBkZWYgdGVzdF9iaWRpX3Nlc3Npb25fc2VuZChiaWRpX3Nlc3Np
b24pOgorICAgIGF3YWl0IGJpZGlfc2Vzc2lvbi5zZW5kX2NvbW1hbmQoInRlc3QudGVzdCIsIHt9
KQorCisjIGJpZGkgc2Vzc2lvbiBmb2xsb3dpbmcgYSBiaWRpIHNlc3Npb24gd2l0aCBhIGRpZmZl
cmVudCBjYXBhYmlsaXRpZXMKKyMgdG8gdGVzdCBzZXNzaW9uIHJlY3JlYXRpb24KK0BweXRlc3Qu
bWFyay5hc3luY2lvCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0SW5zZWN1cmVD
ZXJ0cyI6IFRydWV9KQorYXN5bmMgZGVmIHRlc3RfYmlkaV9zZXNzaW9uX3dpdGhfZGlmZmVyZW50
X2NhcGFiaWxpdHkoYmlkaV9zZXNzaW9uKToKKyAgICBhd2FpdCBiaWRpX3Nlc3Npb24uc2VuZF9j
b21tYW5kKCJ0ZXN0LnRlc3QiLCB7fSkKKworIyBjbGFzc2ljIHNlc3Npb24gZm9sbG93aW5nIGEg
YmlkaSBzZXNzaW9uIHRvIHRlc3Qgc2Vzc2lvbgorIyByZWNyZWF0aW9uCisjIEludGVuZGVkIHRv
IGJlIHRoZSBsYXN0IHRlc3QgaW4gdGhpcyBmaWxlIHRvIG1ha2Ugc3VyZQorIyBjbGFzc2ljIHNl
c3Npb24gaXMgbm90IGltcGFjdGVkIGJ5IGJpZGkgdGVzdHMKK0BweXRlc3QubWFyay5hc3luY2lv
CitkZWYgdGVzdF9jbGFzc2ljX2FmdGVyX2JpZGlfc2Vzc2lvbihzZXNzaW9uKToKKyAgICBhc3Nl
cnQgbm90IGlzaW5zdGFuY2Uoc2Vzc2lvbiwgd2ViZHJpdmVyLmJpZGkuQmlkaVNlc3Npb24pCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Ns
b3NlX3dpbmRvdy9jbG9zZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvY2xvc2Vfd2luZG93L2Nsb3NlLnB5CmluZGV4IDUzYWY1NzMwZjgzZi4uN2IzODJm
YTliYmNiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2Nsb3NlX3dpbmRvdy9jbG9zZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Nsb3NlX3dpbmRvdy9jbG9zZS5weQpAQCAtMiw3ICsyLDYg
QEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgY2xvc2Uoc2Vz
c2lvbik6CkBAIC00Niw3ICs0NSw3IEBAIGRlZiB0ZXN0X2Nsb3NlX2Jyb3dzaW5nX2NvbnRleHQo
c2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5ld19oYW5kbGUgbm90IGluIGhhbmRsZXMKIAogCi1kZWYg
dGVzdF9jbG9zZV9icm93c2luZ19jb250ZXh0X3dpdGhfZGlzbWlzc2VkX2JlZm9yZXVubG9hZF9w
cm9tcHQoc2Vzc2lvbik6CitkZWYgdGVzdF9jbG9zZV9icm93c2luZ19jb250ZXh0X3dpdGhfZGlz
bWlzc2VkX2JlZm9yZXVubG9hZF9wcm9tcHQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBvcmlnaW5h
bF9oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCiAKICAgICBuZXdfaGFuZGxlID0gc2Vzc2lvbi5u
ZXdfd2luZG93KCkKQEAgLTgxLDMgKzgwLDIzIEBAIGRlZiB0ZXN0X2Nsb3NlX2xhc3RfYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uKToKIAogICAgICMgV2l0aCBubyBtb3JlIG9wZW4gdG9wLWxldmVs
IGJyb3dzaW5nIGNvbnRleHRzLCB0aGUgc2Vzc2lvbiBpcyBjbG9zZWQuCiAgICAgc2Vzc2lvbi5z
ZXNzaW9uX2lkID0gTm9uZQorCisKK2RlZiB0ZXN0X2VsZW1lbnRfdXNhZ2VfYWZ0ZXJfY2xvc2lu
Z19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxwIGlkPSdhJz5mb28iKQorICAgIGEgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxs
PUZhbHNlKQorICAgIGZpcnN0ID0gc2Vzc2lvbi53aW5kb3dfaGFuZGxlCisKKyAgICBzZWNvbmQg
PSBzZXNzaW9uLm5ld193aW5kb3codHlwZV9oaW50PSJ0YWIiKQorICAgIHNlc3Npb24ud2luZG93
X2hhbmRsZSA9IHNlY29uZAorCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPSdiJz5v
dGhlciIpCisgICAgYiA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisKKyAgICBz
ZXNzaW9uLndpbmRvd19oYW5kbGUgPSBmaXJzdAorICAgIHJlc3BvbnNlID0gY2xvc2Uoc2Vzc2lv
bikKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnQgbGVuKHNlc3Npb24u
aGFuZGxlcykgPT0gMQorCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gc2Vjb25kCisgICAg
YXNzZXJ0IGIuYXR0cmlidXRlKCJpZCIpID09ICJiIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9kZWxldGVfc2Vzc2lvbi9kZWxldGUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2RlbGV0ZV9zZXNz
aW9uL2RlbGV0ZS5weQppbmRleCBkMGI0ZDc5NjMwOGUuLmEzMDMyY2MxMzQ3NSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9kZWxldGVfc2Vz
c2lvbi9kZWxldGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9kZWxldGVfc2Vzc2lvbi9kZWxldGUucHkKQEAgLTIsNyArMiw2IEBAIGltcG9ydCBw
eXRlc3QKIGZyb20gd2ViZHJpdmVyIGltcG9ydCBlcnJvcgogCiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBkZWxldGVfc2Vzc2lvbihzZXNzaW9uKToKQEAgLTE5LDcg
KzE4LDcgQEAgZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKICAgICBzZXNz
aW9uLmVuZCgpCiAKIAotZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZF9wcm9tcHQoc2Vz
c2lvbik6CitkZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkX3Byb21wdChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPGlucHV0IHR5cGU9
InRleHQiPgogICAgICAgPHNjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGlzbWlzc19hbGVydC9kaXNtaXNzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9kaXNtaXNzX2FsZXJ0L2Rpc21p
c3MucHkKaW5kZXggZGE2NWJhYzM4OGRmLi5hMjhkZWM3Njg3NTAgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGlzbWlzc19hbGVydC9kaXNt
aXNzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZGlzbWlzc19hbGVydC9kaXNtaXNzLnB5CkBAIC0xLDcgKzEsOSBAQAoraW1wb3J0IHB5dGVzdAor
CiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nl
c3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0cy5z
dXBwb3J0LmhlbHBlcnMgaW1wb3J0IHdhaXRfZm9yX25ld19oYW5kbGUKIGZyb20gdGVzdHMuc3Vw
cG9ydC5zeW5jIGltcG9ydCBQb2xsCiAKIApAQCAtMTAsNyArMTIsNyBAQCBkZWYgZGlzbWlzc19h
bGVydChzZXNzaW9uKToKICAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vYWxl
cnQvZGlzbWlzcyIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3RfbnVsbF9y
ZXNwb25zZV92YWx1ZShzZXNzaW9uLCB1cmwpOgorZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1
ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0Pndp
bmRvdy5hbGVydCgnSGVsbG8nKTs8L3NjcmlwdD4iKQogCiAgICAgcmVzcG9uc2UgPSBkaXNtaXNz
X2FsZXJ0KHNlc3Npb24pCkBAIC0zMywyOCArMzUsNDUgQEAgZGVmIHRlc3Rfbm9fdXNlcl9wcm9t
cHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIp
CiAKIAotZGVmIHRlc3RfZGlzbWlzc19hbGVydChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21pc3Nf
YWxlcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlw
dD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+IikKKwogICAgIHJlc3BvbnNlID0gZGlz
bWlzc19hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lv
bi5hbGVydC50ZXh0CisKIAotZGVmIHRlc3RfZGlzbWlzc19jb25maXJtKHNlc3Npb24pOgorZGVm
IHRlc3RfZGlzbWlzc19jb25maXJtKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LnJlc3VsdCA9IHdpbmRvdy5jb25maXJtKCdIZWxsbycp
Ozwvc2NyaXB0PiIpCisKICAgICByZXNwb25zZSA9IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKICAg
ICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dAorCiAgICAgYXNz
ZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3cucmVzdWx0OyIpIGlzIEZh
bHNlCiAKIAotZGVmIHRlc3RfZGlzbWlzc19wcm9tcHQoc2Vzc2lvbik6Ci0gICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LnJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVy
IFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4iKQorZGVmIHRlc3RfZGlzbWlzc19w
cm9tcHQoc2Vzc2lvbiwgaW5saW5lKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKKyAg
ICAgICAgPHNjcmlwdD53aW5kb3cucmVzdWx0ID0gd2luZG93LnByb21wdCgnRW50ZXIgWW91ciBO
YW1lOiAnLCAnRmVkZXJlcicpOzwvc2NyaXB0PgorICAgICAgICAiIiIpCisKICAgICByZXNwb25z
ZSA9IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkK
KworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAg
IHNlc3Npb24uYWxlcnQudGV4dAorCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQo
InJldHVybiB3aW5kb3cucmVzdWx0IikgaXMgTm9uZQogCiAKIGRlZiB0ZXN0X3VuZXhwZWN0ZWRf
YWxlcnQoc2Vzc2lvbik6CiAgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgic2V0VGltZW91dChm
dW5jdGlvbigpIHsgYWxlcnQoJ0hlbGxvJyk7IH0sIDEwMCk7IikKKwogICAgIHdhaXQgPSBQb2xs
KAogICAgICAgICBzZXNzaW9uLAogICAgICAgICB0aW1lb3V0PTUsCkBAIC02NCwzICs4MywyNyBA
QCBkZWYgdGVzdF91bmV4cGVjdGVkX2FsZXJ0KHNlc3Npb24pOgogCiAgICAgcmVzcG9uc2UgPSBk
aXNtaXNzX2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNz
aW9uLmFsZXJ0LnRleHQKKworCitkZWYgdGVzdF9kaXNtaXNzX2luX3BvcHVwX3dpbmRvdyhzZXNz
aW9uLCBpbmxpbmUpOgorICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcworCisgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCisgICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93
Lm9wZW4oJ2Fib3V0OmJsYW5rJywgJ19ibGFuaycsICd3aWR0aD01MDA7IGhlaWdodD0yMDA7cmVz
aXphYmxlPXllcycpOyI+b3BlbjwvYnV0dG9uPgorICAgICAgICAiIiIpCisgICAgYnV0dG9uID0g
c2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQorICAgIGJ1dHRvbi5jbGljaygp
CisKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNlc3Np
b24sIG9yaWdfaGFuZGxlcykKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKKyAgICAgICAg
PHNjcmlwdD53aW5kb3cuYWxlcnQoIkhlbGxvIik8L3NjcmlwdD4KKyAgICAgICAgIiIiKQorCisg
ICAgcmVzcG9uc2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24p
OgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci9jbGVhci5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci9j
bGVhci5weQppbmRleCAwMTg5YzM4YzI3NzAuLmI2NWY0NDNhYTc1OCAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsZWFyL2Ns
ZWFyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9jbGVhci9jbGVhci5weQpAQCAtMTEsNyArMTEsNiBAQCBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFzc2VydF9pbl9ldmVudHMsCiAgICAgYXNzZXJ0X3N1
Y2Nlc3MsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBA
cHl0ZXN0LmZpeHR1cmUKQEAgLTM3LDcgKzM2LDcgQEAgZGVmIHRleHRfZmlsZSh0bXBkaXJfZmFj
dG9yeSk6CiAgICAgcmV0dXJuIGZoCiAKIAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShz
ZXNzaW9uKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC00OCwxMCArNDcsMTcgQEAgZGVm
IHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKIAogZGVmIHRlc3Rfbm9fdG9wX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgZWxlbWVudCA9IEVs
ZW1lbnQoImZvbyIsIHNlc3Npb24pCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsZWFyKHNlc3Np
b24sIGVsZW1lbnQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQogCisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJl
c3BvbnNlID0gZWxlbWVudF9jbGVhcihzZXNzaW9uLCBlbGVtZW50KQogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRs
ZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGVhcihzZXNzaW9u
LCBlbGVtZW50KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIp
CisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUp
OgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQpAQCAtNjAsNyArNjYsNyBA
QCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0
X2Nvbm5lY3RlZF9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfY29ubmVjdGVkX2VsZW1lbnQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC02
OSw3ICs3NSw3IEBAIGRlZiB0ZXN0X2Nvbm5lY3RlZF9lbGVtZW50KHNlc3Npb24pOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYg
dGVzdF9wb2ludGVyX2ludGVyYWN0YWJsZShzZXNzaW9uKToKK2RlZiB0ZXN0X3BvaW50ZXJfaW50
ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dCBzdHlsZT0nbWFyZ2luLWxlZnQ6IC0xMDAwcHgnIHZhbHVlPWZvb2Jhcj4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtNzcsNyAr
ODMsNyBAQCBkZWYgdGVzdF9wb2ludGVyX2ludGVyYWN0YWJsZShzZXNzaW9uKToKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0
ZXN0X2tleWJvYXJkX2ludGVyYWN0YWJsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2tleWJvYXJkX2lu
dGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIi
IgogICAgICAgICA8aW5wdXQgdmFsdWU9Zm9vYmFyPgogICAgICAgICA8ZGl2PjwvZGl2PgpAQCAt
MTE0LDcgKzEyMCw3IEBAIGRlZiB0ZXN0X2tleWJvYXJkX2ludGVyYWN0YWJsZShzZXNzaW9uKToK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0aW1lIiwgIjE5OjQ4IiwgIiIpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAoIm1vbnRoIiwgIjIwMTctMTEiLCAiIiksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgid2VlayIsICIyMDE3LVc1MiIsICIiKV0pCi1kZWYgdGVzdF9pbnB1
dChzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgdHlwZSwgdmFs
dWUsIGRlZmF1bHQpOgorZGVmIHRlc3RfaW5wdXQoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZlbnRf
bGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgdHlwZSwgdmFsdWUsIGRlZmF1bHQpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT0lcyB2YWx1ZT0nJXMnPiIgJSAodHlwZSwg
dmFsdWUpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKICAgICBhZGRfZXZlbnRfbGlzdGVuZXJzKGVsZW1lbnQsIHRyYWNrZWRfZXZlbnRzKQpAQCAt
MTQ0LDcgKzE1MCw3IEBAIGRlZiB0ZXN0X2lucHV0KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5l
cnMsIHRyYWNrZWRfZXZlbnRzLCB0eXBlLCB2YWx1ZSwgZGVmYXVsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJtb250aCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZWVrIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUiXSkKLWRlZiB0ZXN0X2lucHV0X2Rpc2FibGVk
KHNlc3Npb24sIHR5cGUpOgorZGVmIHRlc3RfaW5wdXRfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5l
LCB0eXBlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9JXMgZGlzYWJs
ZWQ+IiAlIHR5cGUpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxs
PUZhbHNlKQogCkBAIC0xNjksNyArMTc1LDcgQEAgZGVmIHRlc3RfaW5wdXRfZGlzYWJsZWQoc2Vz
c2lvbiwgdHlwZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb250aCIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3ZWVrIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImZp
bGUiXSkKLWRlZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIHR5cGUpOgorZGVmIHRlc3Rf
aW5wdXRfcmVhZG9ubHkoc2Vzc2lvbiwgaW5saW5lLCB0eXBlKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0IHR5cGU9JXMgcmVhZG9ubHk+IiAlIHR5cGUpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0xNzcsNyArMTgzLDcg
QEAgZGVmIHRlc3RfaW5wdXRfcmVhZG9ubHkoc2Vzc2lvbiwgdHlwZSk6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVzdF90ZXh0
YXJlYShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYg
dGVzdF90ZXh0YXJlYShzZXNzaW9uLCBpbmxpbmUsIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNr
ZWRfZXZlbnRzKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRleHRhcmVhPmZvb2Jhcjwv
dGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBh
bGw9RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0cmFja2VkX2V2ZW50
cykKQEAgLTE4OSw3ICsxOTUsNyBAQCBkZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uLCBhZGRfZXZl
bnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgYXNzZXJ0X2luX2V2ZW50cyhzZXNz
aW9uLCBbImZvY3VzIiwgImNoYW5nZSIsICJibHVyIl0pCiAKIAotZGVmIHRlc3RfdGV4dGFyZWFf
ZGlzYWJsZWQoc2Vzc2lvbik6CitkZWYgdGVzdF90ZXh0YXJlYV9kaXNhYmxlZChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGV4dGFyZWEgZGlzYWJsZWQ+PC90
ZXh0YXJlYT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJ0ZXh0YXJlYSIsIGFs
bD1GYWxzZSkKIApAQCAtMTk3LDcgKzIwMyw3IEBAIGRlZiB0ZXN0X3RleHRhcmVhX2Rpc2FibGVk
KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBz
dGF0ZSIpCiAKIAotZGVmIHRlc3RfdGV4dGFyZWFfcmVhZG9ubHkoc2Vzc2lvbik6CitkZWYgdGVz
dF90ZXh0YXJlYV9yZWFkb25seShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8dGV4dGFyZWEgcmVhZG9ubHk+PC90ZXh0YXJlYT4iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJ0ZXh0YXJlYSIsIGFsbD1GYWxzZSkKIApAQCAtMjA1LDcgKzIxMSw3
IEBAIGRlZiB0ZXN0X3RleHRhcmVhX3JlYWRvbmx5KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRlc3RfaW5wdXRf
ZmlsZShzZXNzaW9uLCB0ZXh0X2ZpbGUpOgorZGVmIHRlc3RfaW5wdXRfZmlsZShzZXNzaW9uLCB0
ZXh0X2ZpbGUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBl
PWZpbGU+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCiAgICAgZWxlbWVudC5zZW5kX2tleXMoc3RyKHRleHRfZmlsZSkpCkBAIC0yMTUsNyArMjIx
LDcgQEAgZGVmIHRlc3RfaW5wdXRfZmlsZShzZXNzaW9uLCB0ZXh0X2ZpbGUpOgogICAgIGFzc2Vy
dCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIpID09ICIiCiAKIAotZGVmIHRlc3RfaW5wdXRfZmls
ZV9tdWx0aXBsZShzZXNzaW9uLCB0ZXh0X2ZpbGUpOgorZGVmIHRlc3RfaW5wdXRfZmlsZV9tdWx0
aXBsZShzZXNzaW9uLCB0ZXh0X2ZpbGUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxpbnB1dCB0eXBlPWZpbGUgbXVsdGlwbGU+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgZWxlbWVudC5zZW5kX2tleXMoc3RyKHRl
eHRfZmlsZSkpCkBAIC0yMjYsNyArMjMyLDcgQEAgZGVmIHRlc3RfaW5wdXRfZmlsZV9tdWx0aXBs
ZShzZXNzaW9uLCB0ZXh0X2ZpbGUpOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1
ZSIpID09ICIiCiAKIAotZGVmIHRlc3Rfc2VsZWN0KHNlc3Npb24pOgorZGVmIHRlc3Rfc2VsZWN0
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAg
IDxzZWxlY3Q+CiAgICAgICAgICAgPG9wdGlvbj5mb28KQEAgLTI0MSw3ICsyNDcsNyBAQCBkZWYg
dGVzdF9zZWxlY3Qoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxp
ZCBlbGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVzdF9idXR0b24oc2Vzc2lvbik6CitkZWYgdGVz
dF9idXR0b24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1
dHRvbj48L2J1dHRvbj4iKQogICAgIGJ1dHRvbiA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIs
IGFsbD1GYWxzZSkKIApAQCAtMjQ5LDcgKzI1NSw3IEBAIGRlZiB0ZXN0X2J1dHRvbihzZXNzaW9u
KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQog
CiAKLWRlZiB0ZXN0X2J1dHRvbl93aXRoX3N1YnRyZWUoc2Vzc2lvbik6CitkZWYgdGVzdF9idXR0
b25fd2l0aF9zdWJ0cmVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgIiIiCiAgICAgRWxlbWVudHMg
aW5zaWRlIGJ1dHRvbiBlbGVtZW50cyBhcmUgaW50ZXJhY3RhYmxlLgogICAgICIiIgpAQCAtMjY0
LDcgKzI3MCw3IEBAIGRlZiB0ZXN0X2J1dHRvbl93aXRoX3N1YnRyZWUoc2Vzc2lvbik6CiAgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKIAotZGVmIHRlc3RfY29udGVudGVkaXRhYmxlKHNl
c3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKToKK2RlZiB0ZXN0X2Nv
bnRlbnRlZGl0YWJsZShzZXNzaW9uLCBpbmxpbmUsIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNr
ZWRfZXZlbnRzKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAgY29udGVudGVkaXRhYmxl
PmZvb2JhcjwvcD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZh
bHNlKQogICAgIGFkZF9ldmVudF9saXN0ZW5lcnMoZWxlbWVudCwgdHJhY2tlZF9ldmVudHMpCkBA
IC0yNzcsNyArMjgzLDcgQEAgZGVmIHRlc3RfY29udGVudGVkaXRhYmxlKHNlc3Npb24sIGFkZF9l
dmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKToKICAgICBhc3NlcnRfZWxlbWVudF9oYXNf
Zm9jdXMoc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmJvZHkiKSkKIAog
Ci1kZWYgdGVzdF9kZXNpZ25tb2RlKHNlc3Npb24pOgorZGVmIHRlc3RfZGVzaWdubW9kZShzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJmb29iYXIiKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJib2R5IiwgYWxsPUZhbHNlKQogICAgIGFzc2VydCBl
bGVtZW50LnByb3BlcnR5KCJpbm5lckhUTUwiKSA9PSAiZm9vYmFyIgpAQCAtMjg5LDcgKzI5NSw3
IEBAIGRlZiB0ZXN0X2Rlc2lnbm1vZGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2VsZW1lbnRfaGFz
X2ZvY3VzKHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5ib2R5IikpCiAK
IAotZGVmIHRlc3RfcmVzZXR0YWJsZV9lbGVtZW50X2ZvY3VzX3doZW5fZW1wdHkoc2Vzc2lvbiwg
YWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgorZGVmIHRlc3RfcmVzZXR0YWJs
ZV9lbGVtZW50X2ZvY3VzX3doZW5fZW1wdHkoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZlbnRfbGlz
dGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
ICAgICBhZGRfZXZlbnRfbGlzdGVuZXJzKGVsZW1lbnQsIHRyYWNrZWRfZXZlbnRzKQpAQCAtMzEz
LDcgKzMxOSw3IEBAIGRlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9mb2N1c193aGVuX2VtcHR5
KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgidGltZSIsICJmb28iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJtb250
aCIsICJmb28iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ3ZWVrIiwgImZvbyIpXSkK
LWRlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9kb2VzX25vdF9zYXRpc2Z5X3ZhbGlkYXRpb25f
Y29uc3RyYWludHMoc2Vzc2lvbiwgdHlwZSwgaW52YWxpZF92YWx1ZSk6CitkZWYgdGVzdF9yZXNl
dHRhYmxlX2VsZW1lbnRfZG9lc19ub3Rfc2F0aXNmeV92YWxpZGF0aW9uX2NvbnN0cmFpbnRzKHNl
c3Npb24sIGlubGluZSwgdHlwZSwgaW52YWxpZF92YWx1ZSk6CiAgICAgIiIiCiAgICAgU29tZSBV
QXMgYWxsb3cgaW52YWxpZCBpbnB1dCB0byBjZXJ0YWluIHR5cGVzIG9mIGNvbnN0cmFpbmVkCiAg
ICAgZm9ybSBjb250cm9scy4gIEZvciBleGFtcGxlLCBHZWNrbyBhbGxvd3Mgbm9uLXZhbGlkIGNo
YXJhY3RlcnMKQEAgLTM1MCw3ICszNTYsNyBAQCBkZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRf
ZG9lc19ub3Rfc2F0aXNmeV92YWxpZGF0aW9uX2NvbnN0cmFpbnRzKHNlc3Npb24sIHR5cAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VibWl0IiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbWFnZSJdKQotZGVmIHRl
c3Rfbm9uX2VkaXRhYmxlX2lucHV0cyhzZXNzaW9uLCB0eXBlKToKK2RlZiB0ZXN0X25vbl9lZGl0
YWJsZV9pbnB1dHMoc2Vzc2lvbiwgaW5saW5lLCB0eXBlKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IHR5cGU9JXM+IiAlIHR5cGUpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0zNTgsNyArMzY0LDcgQEAgZGVmIHRlc3Rf
bm9uX2VkaXRhYmxlX2lucHV0cyhzZXNzaW9uLCB0eXBlKToKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0ZXN0X3Njcm9sbF9pbnRv
X3ZpZXcoc2Vzc2lvbik6CitkZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dCB2YWx1ZT1m
b29iYXI+CiAgICAgICAgIDxkaXYgc3R5bGU9J2hlaWdodDogMjAwdmg7IHdpZHRoOiA1MDAwdmgn
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X2NsZWFyL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkKaW5kZXgg
Y2ZiODUwZTA4ZDVhLi43YTg1NjRhNjg0YTcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsZWFyL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxlbWVudCk6CkBA
IC0xNCw3ICsxMyw3IEBAIGRlZiBlbGVtZW50X2NsZWFyKHNlc3Npb24sIGVsZW1lbnQpOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5
cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCkBAIC0zNSw3ICszNCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTU2LDcg
KzU1LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9j
bG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9idWJibGluZy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9i
dWJibGluZy5weQppbmRleCBhMDY5YTVhNWRmM2QuLjc2MjBlYzMyMjRmYyAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNr
L2J1YmJsaW5nLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9jbGljay9idWJibGluZy5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwg
ZWxlbWVudCk6CkBAIC05LDcgKzgsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVt
ZW50KToKICAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRlc3Rf
Y2xpY2tfZXZlbnRfYnViYmxlc190b19wYXJlbnRzKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tf
ZXZlbnRfYnViYmxlc190b19wYXJlbnRzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzdHlsZT4KICAgICAgICAgYm9keSAqIHsKQEAgLTQ1
LDcgKzQ0LDcgQEAgZGVmIHRlc3RfY2xpY2tfZXZlbnRfYnViYmxlc190b19wYXJlbnRzKHNlc3Np
b24pOgogICAgIGFzc2VydCB0aHJlZSBpbiBjbGlja3MKIAogCi1kZWYgdGVzdF9zcGluX2V2ZW50
X2xvb3Aoc2Vzc2lvbik6CitkZWYgdGVzdF9zcGluX2V2ZW50X2xvb3Aoc2Vzc2lvbiwgaW5saW5l
KToKICAgICAiIiIKICAgICBXYWl0IHVudGlsIHRoZSB1c2VyIGFnZW50IGV2ZW50IGxvb3AgaGFz
IHNwdW4gZW5vdWdoIHRpbWVzIHRvCiAgICAgcHJvY2VzcyB0aGUgRE9NIGV2ZW50cyBnZW5lcmF0
ZWQgYnkgY2xpY2tpbmcuCkBAIC04Niw3ICs4NSw3IEBAIGRlZiB0ZXN0X3NwaW5fZXZlbnRfbG9v
cChzZXNzaW9uKToKICAgICBhc3NlcnQgdGhyZWUgaW4gZGVsYXllZF9jbGlja3MKIAogCi1kZWYg
dGVzdF9lbGVtZW50X2Rpc2FwcGVhcnNfZHVyaW5nX2NsaWNrKHNlc3Npb24pOgorZGVmIHRlc3Rf
ZWxlbWVudF9kaXNhcHBlYXJzX2R1cmluZ19jbGljayhzZXNzaW9uLCBpbmxpbmUpOgogICAgICIi
IgogICAgIFdoZW4gYW4gZWxlbWVudCBpbiB0aGUgZXZlbnQgYnViYmxpbmcgb3JkZXIgZGlzYXBw
ZWFycyAoaXRzIENTUwogICAgIGRpc3BsYXkgc3R5bGUgaXMgc2V0IHRvICJub25lIikgZHVyaW5n
IGEgY2xpY2ssIEdlY2tvIGFuZCBCbGluawpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NlbnRlcl9wb2ludC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGlj
ay9jZW50ZXJfcG9pbnQucHkKaW5kZXggZGE2MGEwODcyNzdkLi5lZjBjOWE3ZmUyN2QgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9jZW50ZXJfcG9pbnQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NlbnRlcl9wb2ludC5weQpAQCAtMiw3ICsy
LDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMg
aW1wb3J0IGNlbnRlcl9wb2ludAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMiw3ICsx
MSw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAgICAgICAg
ZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1kZWYgc3F1YXJlKHNpemUpOgorZGVmIHNxdWFy
ZShpbmxpbmUsIHNpemUpOgogICAgIHJldHVybiBpbmxpbmUoIiIiCiAgICAgICAgIDxzdHlsZT4K
ICAgICAgICAgYm9keSB7eyBtYXJnaW46IDAgfX0KQEAgLTQxLDggKzQwLDggQEAgZGVmIGFzc2Vy
dF9vbmVfY2xpY2soc2Vzc2lvbik6CiAgICAgcmV0dXJuIHR1cGxlKGNsaWNrc1swXSkKIAogCi1k
ZWYgdGVzdF9lbnRpcmVseV9pbl92aWV3KHNlc3Npb24pOgotICAgIHNlc3Npb24udXJsID0gc3F1
YXJlKDQ0NCkKK2RlZiB0ZXN0X2VudGlyZWx5X2luX3ZpZXcoc2Vzc2lvbiwgaW5saW5lKToKKyAg
ICBzZXNzaW9uLnVybCA9IHNxdWFyZShpbmxpbmUsIDQ0NCkKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiI3RhcmdldCIsIGFsbD1GYWxzZSkKIAogICAgIHJlc3BvbnNlID0gZWxlbWVu
dF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQpAQCAtNTMsOCArNTIsOCBAQCBkZWYgdGVzdF9lbnRp
cmVseV9pbl92aWV3KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2l6
ZSIsIHJhbmdlKDEsIDExKSkKLWRlZiB0ZXN0X2Nzc19waXhlbF9yb3VuZGluZyhzZXNzaW9uLCBz
aXplKToKLSAgICBzZXNzaW9uLnVybCA9IHNxdWFyZShzaXplKQorZGVmIHRlc3RfY3NzX3BpeGVs
X3JvdW5kaW5nKHNlc3Npb24sIGlubGluZSwgc2l6ZSk6CisgICAgc2Vzc2lvbi51cmwgPSBzcXVh
cmUoaW5saW5lLCBzaXplKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjdGFyZ2V0
IiwgYWxsPUZhbHNlKQogICAgIGV4cGVjdGVkX2NsaWNrX3BvaW50ID0gY2VudGVyX3BvaW50KGVs
ZW1lbnQpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jbGljay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jbGljay5weQppbmRleCAzYTVkNzM3
MjE2ZDkuLmIxYjEwMTYyZTRkNiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NsaWNrLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jbGljay5w
eQpAQCAtMSw3ICsxLDYgQEAKIGZyb20gd2ViZHJpdmVyIGltcG9ydCBFbGVtZW50CiAKIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNz
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZWxlbWVu
dF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKQEAgLTExLDcgKzEwLDcgQEAgZGVmIGVsZW1lbnRf
Y2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQu
aWQpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVz
dF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxwPmZvbyIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBh
bGw9RmFsc2UpCiAKQEAgLTIyLDEwICsyMSwxNyBAQCBkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3Zh
bHVlKHNlc3Npb24pOgogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9u
LCBjbG9zZWRfd2luZG93KToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikK
KyAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKKyAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBvcmlnaW5hbF9oYW5k
bGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNr
KHNlc3Npb24sIGVsZW1lbnQpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3
aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisg
ICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpCisgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgZWxlbWVudCA9IEVsZW1l
bnQoImZvbyIsIHNlc3Npb24pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZXZlbnRzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2V2ZW50cy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmUzZDMyYzFiY2I0NAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9jbGljay9ldmVudHMucHkKQEAgLTAsMCArMSwzMyBAQAorZnJvbSB3ZWJkcml2
ZXIgaW1wb3J0IEVsZW1lbnQKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfc3VjY2VzcworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0
CisKK2RlZiBnZXRfZXZlbnRzKHNlc3Npb24pOgorICAgICIiIlJldHVybiBsaXN0IG9mIG1vdXNl
IGV2ZW50cyByZWNvcmRlZCBpbiB0aGUgZml4dHVyZS4iIiIKKyAgICByZXR1cm4gc2Vzc2lvbi5l
eGVjdXRlX3NjcmlwdCgicmV0dXJuIGFsbEV2ZW50cy5ldmVudHM7Iikgb3IgW10KKworZGVmIGVs
ZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNw
b3J0LnNlbmQoCisgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1lbnQv
e2VsZW1lbnRfaWR9L2NsaWNrIi5mb3JtYXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Np
b24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCisKK2Rl
ZiB0ZXN0X2V2ZW50X21vdXNlbW92ZShzZXNzaW9uLCB1cmwpOgorICAgIHNlc3Npb24udXJsID0g
dXJsKCIvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC90ZXN0X2NsaWNrX3dk
c3BlYy5odG1sIikKKworICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCcjb3V0ZXInLCBh
bGw9RmFsc2UpCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQp
CisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBldmVudHMgPSBnZXRfZXZlbnRz
KHNlc3Npb24pCisgICAgYXNzZXJ0IGxlbihldmVudHMpID09IDQKKworICAgIGV4cGVjdGVkID0g
WworICAgICAgICB7InR5cGUiOiAibW91c2Vtb3ZlIiwgImJ1dHRvbnMiOiAwLCAiYnV0dG9uIjog
MH0sCisgICAgICAgIHsidHlwZSI6ICJtb3VzZWRvd24iLCAiYnV0dG9ucyI6IDEsICJidXR0b24i
OiAwfSwKKyAgICAgICAgeyJ0eXBlIjogIm1vdXNldXAiLCAiYnV0dG9ucyI6IDAsICJidXR0b24i
OiAwfSwKKyAgICAgICAgeyJ0eXBlIjogImNsaWNrIiwgImJ1dHRvbnMiOiAwLCAiYnV0dG9uIjog
MH0sCisgICAgXQorICAgIGZpbHRlcmVkX2V2ZW50cyA9IFtmaWx0ZXJfZGljdChlLCBleHBlY3Rl
ZFswXSkgZm9yIGUgaW4gZXZlbnRzXQorCisgICAgYXNzZXJ0IGV4cGVjdGVkID09IGZpbHRlcmVk
X2V2ZW50cwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9lbGVtZW50X2NsaWNrL2ZpbGVfdXBsb2FkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2ZpbGVfdXBsb2FkLnB5Cmlu
ZGV4IGNkNWJiNDM0MjA0ZC4uNzM4MzJkMGY4NWFlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZmlsZV91cGxvYWQu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL2ZpbGVfdXBsb2FkLnB5CkBAIC0xLDUgKzEsNSBAQAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNl
c3Npb24sIGVsZW1lbnQpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKApAQCAt
OCw3ICs4LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAg
ICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiB0ZXN0X2ZpbGVfdXBsb2FkX3N0
YXRlKHNlc3Npb24pOgorZGVmIHRlc3RfZmlsZV91cGxvYWRfc3RhdGUoc2Vzc2lvbixpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlPiIpCiAKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xp
Y2svaW50ZXJhY3RhYmlsaXR5LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weQppbmRleCA3NDYzZDQ5
M2UzZDguLmQ1NTg2MGM4NzQ2ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xp
Y2svaW50ZXJhY3RhYmlsaXR5LnB5CkBAIC0xLDcgKzEsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVs
ZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiBlbGVt
ZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVt
ZW50LmlkKSkKIAogCi1kZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbik6CitkZWYgdGVzdF9k
aXNwbGF5X25vbmUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiI8YnV0dG9uIHN0eWxlPSJkaXNwbGF5OiBub25lIj5mb29iYXI8L2J1dHRvbj4iIiIpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKIApAQCAtMTks
NyArMTgsNyBAQCBkZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF92
aXNpYmlsaXR5X2hpZGRlbihzZXNzaW9uKToKK2RlZiB0ZXN0X3Zpc2liaWxpdHlfaGlkZGVuKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGJ1dHRvbiBzdHls
ZT0idmlzaWJpbGl0eTogaGlkZGVuIj5mb29iYXI8L2J1dHRvbj4iIiIpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKIApAQCAtMjcsNyArMjYsNyBA
QCBkZWYgdGVzdF92aXNpYmlsaXR5X2hpZGRlbihzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2hpZGRl
bihzZXNzaW9uKToKK2RlZiB0ZXN0X2hpZGRlbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8YnV0dG9uIGhpZGRlbj5mb29iYXI8L2J1dHRvbj4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAKQEAgLTM1LDcg
KzM0LDcgQEAgZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3RfZGlzYWJsZWQo
c2Vzc2lvbik6CitkZWYgdGVzdF9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIjxidXR0b24gZGlzYWJsZWQ+Zm9vYmFyPC9idXR0b24+IiIiKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAKQEAg
LTQ0LDcgKzQzLDcgQEAgZGVmIHRlc3RfZGlzYWJsZWQoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJ0cmFuc2Zvcm0iLCBbInRyYW5zbGF0ZSgtMTAwcHgsIC0xMDBweCki
LCAicm90YXRlKDUwZGVnKSJdKQotZGVmIHRlc3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX2Nz
c190cmFuc2Zvcm0oc2Vzc2lvbiwgdHJhbnNmb3JtKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X2lu
dGVyYWN0YWJsZV9jc3NfdHJhbnNmb3JtKHNlc3Npb24sIGlubGluZSwgdHJhbnNmb3JtKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUw
MHB4OyBoZWlnaHQ6IDEwMHB4OwogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsg
dHJhbnNmb3JtOiB7dHJhbnNmb3JtfTsiPgpAQCAtNTUsNyArNTQsNyBAQCBkZWYgdGVzdF9lbGVt
ZW50X25vdF9pbnRlcmFjdGFibGVfY3NzX3RyYW5zZm9ybShzZXNzaW9uLCB0cmFuc2Zvcm0pOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAK
IAotZGVmIHRlc3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX291dF9vZl92aWV3KHNlc3Npb24p
OgorZGVmIHRlc3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX291dF9vZl92aWV3KHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzdHlsZT4K
ICAgICAgICAgaW5wdXQgewpAQCAtNzMsNyArNzIsNyBAQCBkZWYgdGVzdF9lbGVtZW50X25vdF9p
bnRlcmFjdGFibGVfb3V0X29mX3ZpZXcoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJ0YWdfbmFtZSIsIFsiZGl2IiwgInNwYW4iXSkKLWRlZiB0ZXN0X3plcm9fc2l6ZWRf
ZWxlbWVudChzZXNzaW9uLCB0YWdfbmFtZSk6CitkZWYgdGVzdF96ZXJvX3NpemVkX2VsZW1lbnQo
c2Vzc2lvbiwgaW5saW5lLCB0YWdfbmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7
MH0+PC97MH0+Ii5mb3JtYXQodGFnX25hbWUpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKHRhZ19uYW1lLCBhbGw9RmFsc2UpCiAKQEAgLTgxLDcgKzgwLDcgQEAgZGVmIHRlc3RfemVy
b19zaXplZF9lbGVtZW50KHNlc3Npb24sIHRhZ19uYW1lKToKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRf
aW50ZXJjZXB0ZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2ludGVyY2VwdGVkKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzdHls
ZT4KICAgICAgICAgZGl2IHsKQEAgLTEwMiwxNCArMTAxLDE0IEBAIGRlZiB0ZXN0X2VsZW1lbnRf
aW50ZXJjZXB0ZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVu
dCBjbGljayBpbnRlcmNlcHRlZCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9pbnRlcmNlcHRlZF9u
b19wb2ludGVyX2V2ZW50cyhzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfaW50ZXJjZXB0ZWRf
bm9fcG9pbnRlcl9ldmVudHMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiIiI8aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9Um9nZXIgc3R5bGU9InBvaW50ZXItZXZl
bnRzOiBub25lIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50
KQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgY2xpY2sgaW50ZXJjZXB0ZWQi
KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X3Zpc2libGVfb3ZlcmZsb3dfaGlkZGVuKHNlc3Np
b24pOgorZGVmIHRlc3RfZWxlbWVudF9ub3RfdmlzaWJsZV9vdmVyZmxvd19oaWRkZW4oc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHN0eWxl
PgogICAgICAgICBkaXYgewpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL25hdmlnYXRlLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL25hdmlnYXRlLnB5
CmluZGV4IGQ3NzZhMWViODRlNi4uNDkyNzE4MjkyYTE3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svbmF2aWdhdGUu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL25hdmlnYXRlLnB5CkBAIC0xLDUgKzEsOSBAQAoraW1wb3J0IHB5dGVzdAorCitm
cm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgorCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMg
aW1wb3J0IHdhaXRfZm9yX25ld19oYW5kbGUKIGZyb20gdGVzdHMuc3VwcG9ydC5zeW5jIGltcG9y
dCBQb2xsCiAKIApAQCAtMTAsNyArMTQsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBl
bGVtZW50KToKICAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRl
c3RfbnVtYmVyc19saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgorZGVmIHRlc3RfbnVtYmVy
c19saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcsIGlubGluZSk6CiAgICAgbGluayA9ICIvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC9pbnB1dC5odG1sIgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8YSBocmVmPXt1cmx9PjEyMzQ1NjwvYT4iLmZvcm1hdCh1cmw9bGlu
aykpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImEiLCBhbGw9RmFsc2UpCkBAIC0y
Miw3ICsyNiw3IEBAIGRlZiB0ZXN0X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmln
KToKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gImh0dHA6Ly97aG9zdH06e3BvcnR9e3VybH0i
LmZvcm1hdChob3N0PWhvc3QsIHBvcnQ9cG9ydCwgdXJsPWxpbmspCiAKIAotZGVmIHRlc3RfbXVs
dGlfbGluZV9saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgorZGVmIHRlc3RfbXVsdGlfbGlu
ZV9saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcsIGlubGluZSk6CiAgICAgbGluayA9ICIvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC9pbnB1dC5odG1sIgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog
eWVsbG93OyB3aWR0aDogNTBweDsiPgpAQCAtMzcsNyArNDEsNyBAQCBkZWYgdGVzdF9tdWx0aV9s
aW5lX2xpbmsoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJs
ID09ICJodHRwOi8ve2hvc3R9Ontwb3J0fXt1cmx9Ii5mb3JtYXQoaG9zdD1ob3N0LCBwb3J0PXBv
cnQsIHVybD1saW5rKQogCiAKLWRlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2ZW50KHNlc3Npb24sIHNl
cnZlcl9jb25maWcpOgorZGVmIHRlc3RfbGlua191bmxvYWRfZXZlbnQoc2Vzc2lvbiwgc2VydmVy
X2NvbmZpZywgaW5saW5lKToKICAgICBsaW5rID0gIi93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9j
bGljay9zdXBwb3J0L2lucHV0Lmh0bWwiCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAg
ICAgICAgIDxib2R5IG9udW5sb2FkPSJjaGVja1VubG9hZCgpIj4KQEAgLTY4LDcgKzcyLDcgQEAg
ZGVmIHRlc3RfbGlua191bmxvYWRfZXZlbnQoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAg
YXNzZXJ0IHJlc3BvbnNlIGlzIFRydWUKIAogCi1kZWYgdGVzdF9saW5rX2hhc2goc2Vzc2lvbik6
CitkZWYgdGVzdF9saW5rX2hhc2goc2Vzc2lvbiwgaW5saW5lKToKICAgICBpZCA9ICJhbmNob3Ii
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxhIGhyZWY9IiN7dXJsfSI+
YWFhYTwvYT4KQEAgLTkzLDM0ICs5Nyw5NCBAQCBkZWYgdGVzdF9saW5rX2hhc2goc2Vzc2lvbik6
CiAgICAgICAgICAgICAiIiIsIGFyZ3M9KGVsZW1lbnQsKSkgaXMgVHJ1ZQogCiAKLWRlZiB0ZXN0
X2xpbmtfb3Blbl90YXJnZXRfaW5fbmV3X3dpbmRvdyhzZXNzaW9uLCB1cmwpOgotICAgIG9yaWdf
aGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0YXJn
ZXQiLCBbCisgICAgIiIsCisgICAgIl9ibGFuayIsCisgICAgIl9wYXJlbnQiLAorICAgICJfc2Vs
ZiIsCisgICAgIl90b3AiLAorXSkKK2RlZiB0ZXN0X2xpbmtfZnJvbV90b3BsZXZlbF9jb250ZXh0
X3dpdGhfdGFyZ2V0KHNlc3Npb24sIGlubGluZSwgdGFyZ2V0KToKKyAgICB0YXJnZXRfcGFnZSA9
IGlubGluZSgiPHAgaWQ9J2Zvbyc+Zm9vPC9wPiIpCiAKLSAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKLSAgICAgICAgPGEgaHJlZj0ie30iIHRhcmdldD0iX2JsYW5rIj5PcGVuIGluIG5ldyB3
aW5kb3c8L2E+Ci0gICAgIiIiLmZvcm1hdChpbmxpbmUoIjxwIGlkPWZvbyIpKSkKKyAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0ne30nIHRhcmdldD0ne30nPmNsaWNrPC9hPiIuZm9y
bWF0KHRhcmdldF9wYWdlLCB0YXJnZXQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJhIiwgYWxsPUZhbHNlKQogCisgICAgb3JpZ19oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCisK
ICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKICAgICBhc3Nl
cnRfc3VjY2VzcyhyZXNwb25zZSkKIAotICAgIGRlZiBmaW5kX25ld19oYW5kbGUoc2Vzc2lvbik6
Ci0gICAgICAgIG5ld19oYW5kbGVzID0gbGlzdChzZXQoc2Vzc2lvbi5oYW5kbGVzKSAtIHNldChv
cmlnX2hhbmRsZXMpKQotICAgICAgICBpZiBuZXdfaGFuZGxlcyBhbmQgbGVuKG5ld19oYW5kbGVz
KSA9PSAxOgotICAgICAgICAgICAgcmV0dXJuIG5ld19oYW5kbGVzWzBdCi0gICAgICAgIHJldHVy
biBOb25lCisgICAgaWYgdGFyZ2V0ID09ICJfYmxhbmsiOgorICAgICAgICBzZXNzaW9uLndpbmRv
d19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNlc3Npb24sIG9yaWdfaGFuZGxlcykKIAog
ICAgIHdhaXQgPSBQb2xsKAogICAgICAgICBzZXNzaW9uLAogICAgICAgICB0aW1lb3V0PTUsCi0g
ICAgICAgIG1lc3NhZ2U9Ik5vIG5ldyB3aW5kb3cgaGFzIGJlZW4gb3BlbmVkIikKLSAgICBuZXdf
aGFuZGxlID0gd2FpdC51bnRpbChmaW5kX25ld19oYW5kbGUpCisgICAgICAgIGlnbm9yZWRfZXhj
ZXB0aW9ucz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uLAorICAgICAgICBtZXNzYWdlPSJFeHBlY3Rl
ZCBlbGVtZW50IGhhcyBub3QgYmVlbiBmb3VuZCIpCisgICAgd2FpdC51bnRpbChsYW1iZGEgczog
cy5maW5kLmNzcygiI2ZvbyIpKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFyZ2V0
IiwgWworICAgICIiLAorICAgICJfYmxhbmsiLAorICAgICJfcGFyZW50IiwKKyAgICAiX3NlbGYi
LAorICAgICJfdG9wIiwKK10pCitkZWYgdGVzdF9saW5rX2Zyb21fbmVzdGVkX2NvbnRleHRfd2l0
aF90YXJnZXQoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIHRhcmdldCk6CisgICAgdGFyZ2V0X3Bh
Z2UgPSBpbmxpbmUoIjxwIGlkPSdmb28nPmZvbzwvcD4iKQorCisgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoaWZyYW1lKCI8YSBocmVmPSd7fScgdGFyZ2V0PSd7fSc+Y2xpY2s8L2E+Ii5mb3JtYXQo
dGFyZ2V0X3BhZ2UsIHRhcmdldCkpKQorICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZy
YW1lIiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKGZyYW1lKQorICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIi5mb3JtYXQodGFyZ2V0KSwgYWxsPUZhbHNlKQog
Ci0gICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gbmV3X2hhbmRsZQotICAgIHNlc3Npb24uZmlu
ZC5jc3MoIiNmb28iKQorICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcworCisgICAg
cmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpCisgICAgYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBpZiB0YXJnZXQgPT0gIl9ibGFuayI6CisgICAgICAgIHNl
c3Npb24ud2luZG93X2hhbmRsZSA9IHdhaXRfZm9yX25ld19oYW5kbGUoc2Vzc2lvbiwgb3JpZ19o
YW5kbGVzKQorCisgICAgIyBXaXRoIHRoZSBjdXJyZW50IGJyb3dzaW5nIGNvbnRleHQgcmVtb3Zl
ZCB0aGUgbmF2aWdhdGlvbiBzaG91bGQKKyAgICAjIG5vdCB0aW1lb3V0LiBTd2l0Y2ggdG8gdGhl
IHRhcmdldCBjb250ZXh0LCBhbmQgd2FpdCB1bnRpbCB0aGUgZXhwZWN0ZWQKKyAgICAjIGVsZW1l
bnQgaXMgYXZhaWxhYmxlLgorICAgIGlmIHRhcmdldCA9PSAiX3BhcmVudCI6CisgICAgICAgIHNl
c3Npb24uc3dpdGNoX2ZyYW1lKCJwYXJlbnQiKQorICAgIGVsaWYgdGFyZ2V0ID09ICJfdG9wIjoK
KyAgICAgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoTm9uZSkKKworICAgIHdhaXQgPSBQb2xsKAor
ICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUsCisgICAgICAgIGlnbm9yZWRfZXhj
ZXB0aW9ucz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uLAorICAgICAgICBtZXNzYWdlPSJFeHBlY3Rl
ZCBlbGVtZW50IGhhcyBub3QgYmVlbiBmb3VuZCIpCisgICAgd2FpdC51bnRpbChsYW1iZGEgczog
cy5maW5kLmNzcygiI2ZvbyIpKQorCisKKyMgQ2FwYWJpbGl0eSBuZWVkZWQgYXMgbG9uZyBhcyBu
byB2YWxpZCBjZXJ0aWZpY2F0ZSBpcyBhdmFpbGFibGU6CisjICAgaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzI4ODQ3CitAcHl0ZXN0Lm1hcmsuY2FwYWJp
bGl0aWVzKHsiYWNjZXB0SW5zZWN1cmVDZXJ0cyI6IFRydWV9KQorZGVmIHRlc3RfbGlua19jcm9z
c19vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCB1cmwpOgorICAgIGJhc2VfcGF0aCA9ICgiL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvc3ViZnJhbWUuaHRtbCIgKworICAgICAgICAgICAgICAg
ICAiP3BpcGU9aGVhZGVyKENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5LHNhbWUtb3JpZ2luIikK
KyAgICB0YXJnZXRfcGFnZSA9IHVybChiYXNlX3BhdGgsIHByb3RvY29sPSJodHRwcyIsIGRvbWFp
bj0iYWx0IikKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Y2xpY2sg
bWU8L2E+Ii5mb3JtYXQodGFyZ2V0X3BhZ2UpLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIGxpbmsg
PSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBlbGVt
ZW50X2NsaWNrKHNlc3Npb24sIGxpbmspCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisK
KyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gdGFyZ2V0X3BhZ2UKKworICAgIHNlc3Npb24uZmlu
ZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCiAKIAotZGVmIHRlc3RfbGlua19jbG9zZXNfd2lu
ZG93KHNlc3Npb24pOgorZGVmIHRlc3RfbGlua19jbG9zZXNfd2luZG93KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgbmV3X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCiAgICAgc2Vzc2lvbi53
aW5kb3dfaGFuZGxlID0gbmV3X2hhbmRsZQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2Nyb2xsX2ludG9fdmll
dy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9zY3JvbGxfaW50b192aWV3LnB5CmluZGV4IDRiMDI2ZTk4NmEyMS4uYzJkYzY0ODUy
ODZlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfY2xpY2svc2Nyb2xsX2ludG9fdmlldy5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2Nyb2xsX2ludG9f
dmlldy5weQpAQCAtMiw3ICsyLDcgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0
cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGNlbnRlcl9wb2ludAotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCisKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxl
bWVudCk6CiAgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCkBAIC0xOCw3ICsxOCw3
IEBAIGRlZiBhc3NlcnRfb25lX2NsaWNrKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBsZShjbGlj
a3NbMF0pCiAKIAotZGVmIHRlc3Rfc2Nyb2xsX2ludG9fdmlldyhzZXNzaW9uKToKK2RlZiB0ZXN0
X3Njcm9sbF9pbnRvX3ZpZXcoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiIiIKICAgICAgICAgPGlucHV0IHR5cGU9dGV4dCB2YWx1ZT1GZWRlcmVyCiAgICAgICAg
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDB2aDsgdG9wOiA1MDB2aCI+IiIiKQpA
QCAtMzgsNyArMzgsNyBAQCBkZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24pOgogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgib2Zmc2V0IiwgcmFuZ2UoOSwgMCwgLTEpKQotZGVm
IHRlc3RfcGFydGlhbGx5X3Zpc2libGVfZG9lc19ub3Rfc2Nyb2xsKHNlc3Npb24sIG9mZnNldCk6
CitkZWYgdGVzdF9wYXJ0aWFsbHlfdmlzaWJsZV9kb2VzX25vdF9zY3JvbGwoc2Vzc2lvbiwgb2Zm
c2V0LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c3R5
bGU+CiAgICAgICAgIGJvZHkge3sKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zZWxlY3QucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2VsZWN0LnB5
CmluZGV4IGRjZjkyZTY0NTg5NC4uNjJkNDA3NTViNTliIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2VsZWN0LnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9zZWxlY3QucHkKQEAgLTEsNyArMSw0IEBACi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKLQotCi1kZWYgdGVzdF9jbGlja19vcHRpb24oc2Vzc2lvbik6Citk
ZWYgdGVzdF9jbGlja19vcHRpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAgICAgICAgIDxvcHRpb24+Zmlyc3QKQEAgLTE3
LDcgKzE0LDcgQEAgZGVmIHRlc3RfY2xpY2tfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBu
b3Qgb3B0aW9uc1swXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X2NsaWNrX211bHRpcGxlX29wdGlv
bihzZXNzaW9uKToKK2RlZiB0ZXN0X2NsaWNrX211bHRpcGxlX29wdGlvbihzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdCBtdWx0aXBs
ZT4KICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtMzMsNyArMzAsNyBAQCBkZWYgdGVzdF9jbGlj
a19tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBvcHRpb25zWzFdLnNl
bGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24pOgor
ZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAgICA8b3B0aW9u
PmZpcnN0CkBAIC01Myw3ICs1MCw3IEBAIGRlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX29wdGlv
bihzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IG9wdGlvbnNbMV0uc2VsZWN0ZWQKIAogCi1kZWYg
dGVzdF9jbGlja19wcmVzZWxlY3RlZF9tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbik6CitkZWYgdGVz
dF9jbGlja19wcmVzZWxlY3RlZF9tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3QgbXVsdGlwbGU+CiAgICAg
ICAgIDxvcHRpb24+Zmlyc3QKQEAgLTczLDcgKzcwLDcgQEAgZGVmIHRlc3RfY2xpY2tfcHJlc2Vs
ZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBub3Qgb3B0aW9uc1sx
XS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X2NsaWNrX2Rlc2VsZWN0c19vdGhlcnMoc2Vzc2lvbik6
CitkZWYgdGVzdF9jbGlja19kZXNlbGVjdHNfb3RoZXJzKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAgICA8b3B0aW9u
PmZpcnN0CkBAIC05Miw3ICs4OSw3IEBAIGRlZiB0ZXN0X2NsaWNrX2Rlc2VsZWN0c19vdGhlcnMo
c2Vzc2lvbik6CiAgICAgYXNzZXJ0IG9wdGlvbnNbMF0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9j
bGlja19tdWx0aXBsZV9kb2VzX25vdF9kZXNlbGVjdF9vdGhlcnMoc2Vzc2lvbik6CitkZWYgdGVz
dF9jbGlja19tdWx0aXBsZV9kb2VzX25vdF9kZXNlbGVjdF9vdGhlcnMoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3QgbXVsdGlwbGU+
CiAgICAgICAgIDxvcHRpb24+Zmlyc3QKQEAgLTExMiw3ICsxMDksNyBAQCBkZWYgdGVzdF9jbGlj
a19tdWx0aXBsZV9kb2VzX25vdF9kZXNlbGVjdF9vdGhlcnMoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
IG9wdGlvbnNbMl0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19zZWxlY3RlZF9vcHRpb24o
c2Vzc2lvbik6CitkZWYgdGVzdF9jbGlja19zZWxlY3RlZF9vcHRpb24oc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAgICAgICAg
IDxvcHRpb24+Zmlyc3QKQEAgLTEzMCw3ICsxMjcsNyBAQCBkZWYgdGVzdF9jbGlja19zZWxlY3Rl
ZF9vcHRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG9wdGlvbnNbMV0uc2VsZWN0ZWQKIAogCi1k
ZWYgdGVzdF9jbGlja19zZWxlY3RlZF9tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbik6CitkZWYgdGVz
dF9jbGlja19zZWxlY3RlZF9tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3QgbXVsdGlwbGU+CiAgICAgICAg
IDxvcHRpb24+Zmlyc3QKQEAgLTE1Miw3ICsxNDksNyBAQCBkZWYgdGVzdF9jbGlja19zZWxlY3Rl
ZF9tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBvcHRpb25zWzFdLnNl
bGVjdGVkCiAKIAotZGVmIHRlc3Rfb3V0X29mX3ZpZXdfZHJvcGRvd24oc2Vzc2lvbik6CitkZWYg
dGVzdF9vdXRfb2Zfdmlld19kcm9wZG93bihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdD4KICAgICAgICAgPG9wdGlvbj4xCkBAIC0x
ODIsNyArMTc5LDcgQEAgZGVmIHRlc3Rfb3V0X29mX3ZpZXdfZHJvcGRvd24oc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0IG9wdGlvbnNbMTRdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3Rfb3V0X29mX3ZpZXdf
bXVsdGlwbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9vdXRfb2Zfdmlld19tdWx0aXBsZShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdCBt
dWx0aXBsZT4KICAgICAgICAgPG9wdGlvbj4xCkBAIC0yMTMsNyArMjEwLDcgQEAgZGVmIHRlc3Rf
b3V0X29mX3ZpZXdfbXVsdGlwbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGxhc3Rfb3B0aW9uLnNl
bGVjdGVkCiAKIAotZGVmIHRlc3Rfb3B0aW9uX2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3Rf
b3B0aW9uX2Rpc2FibGVkKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiCiAgICAgICAgIDxzZWxlY3Q+CiAgICAgICAgICAgPG9wdGlvbiBkaXNhYmxlZD5mb28K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9jbGljay9zaGFkb3dfZG9tLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3NoYWRvd19kb20ucHkKaW5kZXggYjUyZjI3
NDI5YzE5Li40NTQ5M2I3MzBkNjkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zaGFkb3dfZG9tLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9z
aGFkb3dfZG9tLnB5CkBAIC0xLDYgKzEsNSBAQAotZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQogaW1wb3J0IHB5dGVzdAorZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCiBkZWYgZWxlbWVu
dF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKQEAgLTEwLDcgKzksOCBAQCBkZWYgZWxlbWVudF9j
bGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5p
ZCkpCiAKIAotZGVmIGdldF9jaGVja2JveF9kb20oKToKK0BweXRlc3QuZml4dHVyZQorZGVmIGdl
dF9jaGVja2JveF9kb20oaW5saW5lKToKICAgICByZXR1cm4gaW5saW5lKCIiIgogICAgICAgICA8
c3R5bGU+CiAgICAgICAgICAgICBjdXN0b20tY2hlY2tib3gtZWxlbWVudCB7CkBAIC0zMiw4ICsz
Miw4IEBAIGRlZiBnZXRfY2hlY2tib3hfZG9tKCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJjbGlja19vbiIsIFsiY3VzdG9tX2VsZW1lbnQiLCAiY2hlY2tib3hfZWxlbWVudCJdKQot
ZGVmIHRlc3Rfc2hhZG93X2VsZW1lbnRfY2xpY2soc2Vzc2lvbiwgY2xpY2tfb24pOgotICAgIHNl
c3Npb24udXJsID0gZ2V0X2NoZWNrYm94X2RvbSgpCitkZWYgdGVzdF9zaGFkb3dfZWxlbWVudF9j
bGljayhzZXNzaW9uLCBnZXRfY2hlY2tib3hfZG9tLCBjbGlja19vbik6CisgICAgc2Vzc2lvbi51
cmwgPSBnZXRfY2hlY2tib3hfZG9tCiAgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJjdXN0b20tY2hlY2tib3gtZWxlbWVudCIsIGFsbD1GYWxzZSkKICAgICBjaGVja2JveF9l
bGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCkBAIC00Nyw3ICs0
Nyw4IEBAIGRlZiB0ZXN0X3NoYWRvd19lbGVtZW50X2NsaWNrKHNlc3Npb24sIGNsaWNrX29uKToK
ICAgICBhc3NlcnQgaXNfcG9zdF9jaGVja2VkID09IFRydWUKIAogCi1kZWYgZ2V0X25lc3RlZF9z
aGFkb3dfY2hlY2tib3hfZG9tKCk6CitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBnZXRfbmVzdGVkX3No
YWRvd19jaGVja2JveF9kb20oaW5saW5lKToKICAgICByZXR1cm4gaW5saW5lKCIiIgogICAgICAg
ICA8c3R5bGU+CiAgICAgICAgICAgICBjdXN0b20tbmVzdGluZy1lbGVtZW50IHsKQEAgLTgzLDgg
Kzg0LDggQEAgZGVmIGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpOgogCiAKIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiY2xpY2tfb24iLCBbIm91dGVyX2VsZW1lbnQiLCAiaW5uZXJf
ZWxlbWVudCIsICJjaGVja2JveF9lbGVtZW50Il0pCi1kZWYgdGVzdF9uZXN0ZWRfc2hhZG93X2Vs
ZW1lbnRfY2xpY2soc2Vzc2lvbiwgY2xpY2tfb24pOgotICAgIHNlc3Npb24udXJsID0gZ2V0X25l
c3RlZF9zaGFkb3dfY2hlY2tib3hfZG9tKCkKK2RlZiB0ZXN0X25lc3RlZF9zaGFkb3dfZWxlbWVu
dF9jbGljayhzZXNzaW9uLCBnZXRfbmVzdGVkX3NoYWRvd19jaGVja2JveF9kb20sIGNsaWNrX29u
KToKKyAgICBzZXNzaW9uLnVybCA9IGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbQogICAg
IG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tbmVzdGluZy1lbGVtZW50
IiwgYWxsPUZhbHNlKQogICAgIGlubmVyX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignY3VzdG9tLWNo
ZWNrYm94LWVsZW1lbnQnKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXJncz0ob3V0ZXJfZWxlbWVudCwpKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N0YWxlLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N0
YWxlLnB5CmluZGV4IGNkMjRkZDcwNjAzZC4uOGQyYWUzNDhlZjRmIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3Rh
bGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
bGVtZW50X2NsaWNrL3N0YWxlLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvcgotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBA
IC05LDcgKzgsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAg
ICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRlc3RfaXNfc3RhbGUoc2Vz
c2lvbik6CitkZWYgdGVzdF9pc19zdGFsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8YnV0dG9uPmZvbzwvYnV0dG9uPiIpCiAgICAgYnV0dG9uID0gc2Vzc2lv
bi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8YnV0dG9uPmJhcjwvYnV0dG9uPiIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC90ZXN0X2NsaWNr
X3dkc3BlYy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvdGVzdF9jbGlja193ZHNwZWMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE5NDUxZWM4MmJlYwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9zdXBwb3J0L3Rlc3RfY2xpY2tfd2RzcGVjLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAK
KzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHRpdGxlPlRlc3QgRWxlbWVudCBDbGljazwvdGl0bGU+CisgICAgPHN0eWxlPgorICAgICAg
ZGl2IHsgcGFkZGluZzowcHg7IG1hcmdpbjogMHB4OyB9CisgICAgICAjdHJhY2tQb2ludGVyIHsg
cG9zaXRpb246IGZpeGVkOyB9CisgICAgICAjcmVzdWx0Q29udGFpbmVyIHsgd2lkdGg6IDYwMHB4
OyBoZWlnaHQ6IDYwcHg7IH0KKyAgICAgIC5hcmVhIHsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUw
cHg7IGJhY2tncm91bmQtY29sb3I6ICNjY2M7IH0KKyAgICAgIC5ibG9jayB7IHdpZHRoOiA1cHg7
IGhlaWdodDogNXB4OyBib3JkZXI6IHNvbGlkIDFweCByZWQ7IH0KKyAgICA8L3N0eWxlPgorICAg
IDxzY3JpcHQ+CisgICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgdmFyIGVscyA9IHt9Owor
ICAgICAgICB2YXIgYWxsRXZlbnRzID0geyBldmVudHM6IFtdIH07CisgICAgICAgIGZ1bmN0aW9u
IGRpc3BsYXlNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJldmVudHMiKS5pbm5lckhUTUwgPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9wPiI7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhcHBlbmRNZXNzYWdlKG1lc3NhZ2UpIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJldmVudHMiKS5pbm5lckhUTUwgKz0g
IjxwPiIgKyBtZXNzYWdlICsgIjwvcD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cmVjb3JkUG9pbnRlckV2ZW50KGV2ZW50KSB7CisgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09
ICJjb250ZXh0bWVudSIpIHsKKyAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgICAgICAgfQorICAgICAgICAgIGFsbEV2ZW50cy5ldmVudHMucHVzaCh7CisgICAgICAgICAg
ICAidHlwZSI6IGV2ZW50LnR5cGUsCisgICAgICAgICAgICAiYnV0dG9uIjogZXZlbnQuYnV0dG9u
LAorICAgICAgICAgICAgImJ1dHRvbnMiOiBldmVudC5idXR0b25zLAorICAgICAgICAgICAgInBh
Z2VYIjogZXZlbnQucGFnZVgsCisgICAgICAgICAgICAicGFnZVkiOiBldmVudC5wYWdlWSwKKyAg
ICAgICAgICAgICJjdHJsS2V5IjogZXZlbnQuY3RybEtleSwKKyAgICAgICAgICAgICJtZXRhS2V5
IjogZXZlbnQubWV0YUtleSwKKyAgICAgICAgICAgICJhbHRLZXkiOiBldmVudC5hbHRLZXksCisg
ICAgICAgICAgICAic2hpZnRLZXkiOiBldmVudC5zaGlmdEtleSwKKyAgICAgICAgICAgICJ0YXJn
ZXQiOiBldmVudC50YXJnZXQuaWQKKyAgICAgICAgICB9KTsKKyAgICAgICAgICBhcHBlbmRNZXNz
YWdlKGV2ZW50LnR5cGUgKyAiICIgKworICAgICAgICAgICAgICAiYnV0dG9uOiAiICsgZXZlbnQu
YnV0dG9uICsgIiwgIiArCisgICAgICAgICAgICAgICJwYWdlWDogIiArIGV2ZW50LnBhZ2VYICsg
IiwgIiArCisgICAgICAgICAgICAgICJwYWdlWTogIiArIGV2ZW50LnBhZ2VZICsgIiwgIiArCisg
ICAgICAgICAgICAgICJidXR0b246ICIgKyBldmVudC5idXR0b24gKyAiLCAiICsKKyAgICAgICAg
ICAgICAgImJ1dHRvbnM6ICIgKyBldmVudC5idXR0b25zICsgIiwgIiArCisgICAgICAgICAgICAg
ICJjdHJsS2V5OiAiICsgZXZlbnQuY3RybEtleSArICIsICIgKworICAgICAgICAgICAgICAiYWx0
S2V5OiAiICsgZXZlbnQuYWx0S2V5ICsgIiwgIiArCisgICAgICAgICAgICAgICJtZXRhS2V5OiAi
ICsgZXZlbnQubWV0YUtleSArICIsICIgKworICAgICAgICAgICAgICAic2hpZnRLZXk6ICIgKyBl
dmVudC5zaGlmdEtleSArICIsICIgKworICAgICAgICAgICAgICAidGFyZ2V0IGlkOiAiICsgZXZl
bnQudGFyZ2V0LmlkKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlY29yZEZpcnN0
UG9pbnRlck1vdmUoZXZlbnQpIHsKKyAgICAgICAgICByZWNvcmRQb2ludGVyRXZlbnQoZXZlbnQp
OworICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCByZWNv
cmRGaXJzdFBvaW50ZXJNb3ZlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0
RXZlbnRzKCkgeworICAgICAgICAgIGFsbEV2ZW50cy5ldmVudHMubGVuZ3RoID0gMDsKKyAgICAg
ICAgICBkaXNwbGF5TWVzc2FnZSgiIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBt
b3ZlKGVsLCBvZmZzZXRYLCBvZmZzZXRZLCB0aW1lb3V0KSB7CisgICAgICAgICAgcmV0dXJuIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICBlbC5zdHlsZS50b3AgPSBldmVudC5jbGllbnRZICsgb2Zmc2V0WSArICJweCI7
CisgICAgICAgICAgICAgIGVsLnN0eWxlLmxlZnQgPSBldmVudC5jbGllbnRYICsgb2Zmc2V0WCAr
ICJweCI7CisgICAgICAgICAgICB9LCB0aW1lb3V0KTsKKyAgICAgICAgICB9OworICAgICAgICB9
CisKKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBvdXRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvdXRlciIpOworICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1v
dmUiLCByZWNvcmRGaXJzdFBvaW50ZXJNb3ZlKTsKKyAgICAgICAgICBvdXRlci5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAgb3V0ZXIuYWRk
RXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAg
IG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHJlY29yZFBvaW50ZXJFdmVudCk7
CisgICAgICAgICAgb3V0ZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHJlY29yZFBvaW50
ZXJFdmVudCk7CisgICAgICAgICAgb3V0ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUi
LCByZWNvcmRQb2ludGVyRXZlbnQpOworCisgICAgICAgICAgLy92aXN1YWwgY3VlIGZvciBtb3Vz
ZW1vdmUKKyAgICAgICAgICB2YXIgcG9pbnRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
cmFja1BvaW50ZXIiKTsKKyAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vt
b3ZlIiwgbW92ZShwb2ludGVyLCAxNSwgMTUsIDMwKSk7CisgICAgICAgIH0pOworICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InRyYWNrUG9pbnRlciIgY2xhc3M9ImJs
b2NrIj48L2Rpdj4KKyAgPGRpdj4KKyAgICA8aDI+Q2xpY2tSZXBvcnRlcjwvaDI+CisgICAgPGRp
diBpZD0ib3V0ZXIiIGNsYXNzPSJhcmVhIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYg
aWQ9InJlc3VsdENvbnRhaW5lciI+CisgICAgPGgyPkV2ZW50czwvaDI+CisgICAgPGRpdiBpZD0i
ZXZlbnRzIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2sv
dXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X2NsaWNrL3VzZXJfcHJvbXB0cy5weQppbmRleCBiMzcwNmZlNGFmMTYuLjE0
MGFjZWIzY2VkZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svdXNlcl9wcm9t
cHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKQEAgLTE0LDcgKzEzLDcgQEAg
ZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5maXh0dXJl
Ci1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAg
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTMy
LDcgKzMxLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtNTAsNyArNDksNyBAQCBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywg
aW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0
eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9jb250ZW50X2VkaXRhYmxlLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9j
b250ZW50X2VkaXRhYmxlLnB5CmluZGV4IDE2ZWJjMmQwMThmYi4uN2Y2MjhmOTZhNTNhIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfc2VuZF9rZXlzL2NvbnRlbnRfZWRpdGFibGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9jb250ZW50X2VkaXRh
YmxlLnB5CkBAIC0xLDkgKzEsNCBAQAotaW1wb3J0IHB5dGVzdAotCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKLQotCi1kZWYgdGVzdF9zZXRzX2luc2VydGlvbl9wb2lu
dF90b19lbmQoc2Vzc2lvbik6CitkZWYgdGVzdF9zZXRzX2luc2VydGlvbl9wb2ludF90b19lbmQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgnPGRpdiBjb250ZW50
ZWRpdGFibGU9dHJ1ZT5IZWxsbyw8L2Rpdj4nKQogICAgIGlucHV0ID0gc2Vzc2lvbi5maW5kLmNz
cygiZGl2IiwgYWxsPUZhbHNlKQogICAgIGlucHV0LnNlbmRfa2V5cygnIHdvcmxkIScpCkBAIC0x
NSw3ICsxMCw3IEBAIGRlZiB0ZXN0X3NldHNfaW5zZXJ0aW9uX3BvaW50X3RvX2VuZChzZXNzaW9u
KToKICMKICMgMTMuIFNldCB0aGUgdGV4dCBpbnNlcnRpb24gY2FyZXQgdXNpbmcgc2V0IHNlbGVj
dGlvbiByYW5nZSB1c2luZyBjdXJyZW50CiAjICAgICB0ZXh0IGxlbmd0aCBmb3IgYm90aCB0aGUg
c3RhcnQgYW5kIGVuZCBwYXJhbWV0ZXJzLgotZGVmIHRlc3Rfc2V0c19pbnNlcnRpb25fcG9pbnRf
dG9fYWZ0ZXJfbGFzdF90ZXh0X25vZGUoc2Vzc2lvbik6CitkZWYgdGVzdF9zZXRzX2luc2VydGlv
bl9wb2ludF90b19hZnRlcl9sYXN0X3RleHRfbm9kZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCc8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlPkhlbDxzcGFuPmxv
PC9zcGFuPiw8L2Rpdj4nKQogICAgIGlucHV0ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxs
PUZhbHNlKQogICAgIGlucHV0LnNlbmRfa2V5cygiIHdvcmxkISIpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlz
L2V2ZW50cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9zZW5kX2tleXMvZXZlbnRzLnB5CmluZGV4IDQxYjAwZWYzN2ZhMi4uNGJlMTQzMmJm
M2MyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfc2VuZF9rZXlzL2V2ZW50cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2V2ZW50cy5weQpAQCAt
NSw3ICs1LDYgQEAgZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3Nl
cnRfZXZlbnRzX2VxdWFsLAogICAgIGFzc2VydF9zdWNjZXNzLAogKQotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgbWFwX2ZpbGVzX3RvX211
bHRpbGluZV90ZXh0CiAKQEAgLTMxLDcgKzMwLDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNl
c3Npb24sIGVsZW1lbnQsIHRleHQpOgogICAgICAgICB7InRleHQiOiB0ZXh0fSkKIAogCi1kZWYg
dGVzdF9maWxlX3VwbG9hZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGFkZF9ldmVudF9saXN0ZW5l
cnMsIHRyYWNrZWRfZXZlbnRzKToKK2RlZiB0ZXN0X2ZpbGVfdXBsb2FkKHNlc3Npb24sIGNyZWF0
ZV9maWxlcywgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIGlubGluZSk6CiAg
ICAgZXhwZWN0ZWRfZXZlbnRzID0gWwogICAgICAgICAiaW5wdXQiLAogICAgICAgICAiY2hhbmdl
IiwKQEAgLTUwLDcgKzQ5LDcgQEAgZGVmIHRlc3RfZmlsZV91cGxvYWQoc2Vzc2lvbiwgY3JlYXRl
X2ZpbGVzLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cykKIAogCiBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInRhZyIsIFsiaW5wdXQiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0
X2Zvcm1fY29udHJvbF9zZW5kX3RleHQoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJh
Y2tlZF9ldmVudHMsIHRhZyk6CitkZWYgdGVzdF9mb3JtX2NvbnRyb2xfc2VuZF90ZXh0KHNlc3Np
b24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCBpbmxpbmUsIHRhZyk6CiAg
ICAgZXhwZWN0ZWRfZXZlbnRzID0gWwogICAgICAgICAiZm9jdXMiLAogICAgICAgICAia2V5ZG93
biIsCkBAIC03Nyw3ICs3Niw3IEBAIGRlZiB0ZXN0X2Zvcm1fY29udHJvbF9zZW5kX3RleHQoc2Vz
c2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHRhCiAKIAogQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJ0YWciLCBbImlucHV0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVz
dF9ub3RfYmx1cnJlZChzZXNzaW9uLCB0YWcpOgorZGVmIHRlc3Rfbm90X2JsdXJyZWQoc2Vzc2lv
biwgaW5saW5lLCB0YWcpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8JXM+IiAlIHRhZykK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWcsIGFsbD1GYWxzZSkKIApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X3NlbmRfa2V5cy9maWxlX3VwbG9hZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkKaW5kZXggN2Zi
YWI4YTY2YWE0Li5lZjc5MmY0ZGQ4NTUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X3NlbmRfa2V5cy9maWxlX3VwbG9hZC5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X2ZpbGVzX3VwbG9hZGVkLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgbWFwX2ZpbGVzX3RvX211bHRpbGluZV90
ZXh0CiAKQEAgLTE0LDcgKzEzLDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVs
ZW1lbnQsIHRleHQpOgogICAgICAgICB7InRleHQiOiB0ZXh0fSkKIAogCi1kZWYgdGVzdF9lbXB0
eV90ZXh0KHNlc3Npb24pOgorZGVmIHRlc3RfZW1wdHlfdGV4dChzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlPiIpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0yMiw3ICsyMSw3
IEBAIGRlZiB0ZXN0X2VtcHR5X3RleHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAiaW52YWxpZCBhcmd1bWVudCIpCiAKIAotZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXMoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxlX2ZpbGVzKHNlc3Npb24sIGNy
ZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJi
YXIiXSkKIAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIG11bHRp
cGxlPiIpCkBAIC0zNSw3ICszNCw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzKHNlc3Npb24s
IGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1l
bnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX2xhc3RfcGF0aF9ub3RfZm91
bmQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX2xhc3Rf
cGF0aF9ub3RfZm91bmQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVz
ID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogICAgIGZpbGVzLmFwcGVuZCgiZm9vIGJh
ciIpCiAKQEAgLTQ5LDcgKzQ4LDcgQEAgZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfbGFzdF9wYXRo
X25vdF9mb3VuZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxv
YWRlZChzZXNzaW9uLCBlbGVtZW50LCBbXSkKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxlc193
aXRob3V0X211bHRpcGxlX2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRl
c3RfbXVsdGlwbGVfZmlsZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3Jl
YXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJh
ciJdKQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKQEAg
LTYyLDcgKzYxLDcgQEAgZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfd2l0aG91dF9tdWx0aXBsZV9h
dHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2Fk
ZWQoc2Vzc2lvbiwgZWxlbWVudCwgW10pCiAKIAotZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfc2Vu
ZF90d2ljZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNf
c2VuZF90d2ljZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlyc3RfZmls
ZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAgICAgc2Vjb25kX2ZpbGVzID0gY3Jl
YXRlX2ZpbGVzKFsiam9obiIsICJkb2UiXSkKIApAQCAtODAsNyArNzksNyBAQCBkZWYgdGVzdF9t
dWx0aXBsZV9maWxlc19zZW5kX3R3aWNlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNz
ZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpcnN0X2ZpbGVzICsgc2Vjb25k
X2ZpbGVzKQogCiAKLWRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3Jlc2V0X3dpdGhfZWxlbWVudF9j
bGVhcihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfcmVz
ZXRfd2l0aF9lbGVtZW50X2NsZWFyKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAg
ICBmaXJzdF9maWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKICAgICBzZWNvbmRf
ZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJqb2huIiwgImRvZSJdKQogCkBAIC0xMDIsNyArMTAxLDcg
QEAgZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfcmVzZXRfd2l0aF9lbGVtZW50X2NsZWFyKHNlc3Np
b24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVs
ZW1lbnQsIHNlY29uZF9maWxlcykKIAogCi1kZWYgdGVzdF9zaW5nbGVfZmlsZShzZXNzaW9uLCBj
cmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc2luZ2xlX2ZpbGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVz
LCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0pCiAKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZT4iKQpAQCAtMTE0LDcgKzExMyw3IEBA
IGRlZiB0ZXN0X3NpbmdsZV9maWxlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0
X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X3Np
bmdsZV9maWxlX3JlcGxhY2VzX3dpdGhvdXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNy
ZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9zaW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRp
cGxlX2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMg
PSBjcmVhdGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0IHR5cGU9ZmlsZT4iKQpAQCAtMTI5LDcgKzEyOCw3IEBAIGRlZiB0ZXN0X3Npbmds
ZV9maWxlX3JlcGxhY2VzX3dpdGhvdXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0
ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIFtm
aWxlc1sxXV0pCiAKIAotZGVmIHRlc3Rfc2luZ2xlX2ZpbGVfYXBwZW5kc193aXRoX211bHRpcGxl
X2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc2luZ2xlX2ZpbGVf
YXBwZW5kc193aXRoX211bHRpcGxlX2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlu
bGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtMTQ0
LDcgKzE0Myw3IEBAIGRlZiB0ZXN0X3NpbmdsZV9maWxlX2FwcGVuZHNfd2l0aF9tdWx0aXBsZV9h
dHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2Fk
ZWQoc2Vzc2lvbiwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRlc3RfdHJhbnNwYXJlbnQoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3RyYW5zcGFyZW50KHNlc3Npb24sIGNyZWF0
ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWZpbGUgc3R5bGU9Im9wYWNpdHk6
IDAiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCkBAIC0xNTQsNyArMTUzLDcgQEAgZGVmIHRlc3RfdHJhbnNwYXJlbnQoc2Vzc2lvbiwgY3Jl
YXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwg
ZmlsZXMpCiAKIAotZGVmIHRlc3Rfb2JzY3VyZWQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2Rl
ZiB0ZXN0X29ic2N1cmVkKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxl
cyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgog
ICAgICAgICA8c3R5bGU+CkBAIC0xNzgsNyArMTc3LDcgQEAgZGVmIHRlc3Rfb2JzY3VyZWQoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwg
ZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRlc3Rfb3V0c2lkZV92aWV3cG9ydChzZXNzaW9uLCBj
cmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfb3V0c2lkZV92aWV3cG9ydChzZXNzaW9uLCBjcmVhdGVf
ZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgdHlwZT1maWxlIHN0eWxlPSJtYXJnaW4tbGVm
dDogLTEwMHZoIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQpAQCAtMTg4LDcgKzE4Nyw3IEBAIGRlZiB0ZXN0X291dHNpZGVfdmlld3BvcnQo
c2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lv
biwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24sIGNyZWF0ZV9m
aWxlcyk6CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgog
ICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0pCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxpbnB1dCB0eXBlPWZpbGUgaGlkZGVuPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMTk4LDcgKzE5Nyw3IEBAIGRlZiB0ZXN0X2hp
ZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChz
ZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lv
biwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uLCBjcmVhdGVf
ZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgdHlwZT1maWxlIHN0eWxlPSJkaXNwbGF5OiBu
b25lIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZh
bHNlKQpAQCAtMjA5LDcgKzIwOCw3IEBAIGRlZiB0ZXN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uLCBj
cmVhdGVfZmlsZXMpOgogCiAKIEBweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJzdHJpY3RGaWxl
SW50ZXJhY3RhYmlsaXR5IjogVHJ1ZX0pCi1kZWYgdGVzdF9zdHJpY3RfaGlkZGVuKHNlc3Npb24s
IGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9zdHJpY3RfaGlkZGVuKHNlc3Npb24sIGNyZWF0ZV9m
aWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIGhpZGRlbj4iKQogICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTIxOSw3ICsyMTgs
NyBAQCBkZWYgdGVzdF9zdHJpY3RfaGlkZGVuKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAKIAog
QHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InN0cmljdEZpbGVJbnRlcmFjdGFiaWxpdHkiOiBU
cnVlfSkKLWRlZiB0ZXN0X3N0cmljdF9kaXNwbGF5X25vbmUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVz
KToKK2RlZiB0ZXN0X3N0cmljdF9kaXNwbGF5X25vbmUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBp
bmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0pCiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9ZmlsZSBzdHlsZT0iZGlzcGxheTogbm9uZSI+IiIi
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9zZW5kX2tleXMvZm9ybV9jb250cm9scy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZm9ybV9jb250cm9scy5weQpp
bmRleCBlNTNkMDYxMGYxZWQuLjA0MDNkYzkyMzcyZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9mb3JtX2Nv
bnRyb2xzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9zZW5kX2tleXMvZm9ybV9jb250cm9scy5weQpAQCAtMSw1ICsxLDQgQEAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZWxlbWVudF9oYXNfZm9jdXMK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50
X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKQEAgLTEwLDcgKzksNyBAQCBkZWYg
ZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4
dCI6IHRleHR9KQogCiAKLWRlZiB0ZXN0X2lucHV0KHNlc3Npb24pOgorZGVmIHRlc3RfaW5wdXQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGFz
c2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIpID09ICIiCkBAIC0yMCw3ICsxOSw3IEBAIGRl
ZiB0ZXN0X2lucHV0KHNlc3Npb24pOgogICAgIGFzc2VydF9lbGVtZW50X2hhc19mb2N1cyhlbGVt
ZW50KQogCiAKLWRlZiB0ZXN0X3RleHRhcmVhKHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFyZWEo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRleHRhcmVhPiIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInRleHRhcmVhIiwgYWxsPUZhbHNlKQog
ICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIpID09ICIiCkBAIC0zMCw3ICsyOSw3
IEBAIGRlZiB0ZXN0X3RleHRhcmVhKHNlc3Npb24pOgogICAgIGFzc2VydF9lbGVtZW50X2hhc19m
b2N1cyhlbGVtZW50KQogCiAKLWRlZiB0ZXN0X2lucHV0X2FwcGVuZChzZXNzaW9uKToKK2RlZiB0
ZXN0X2lucHV0X2FwcGVuZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgdmFsdWU9YT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9
PSAiYSIKQEAgLTQyLDcgKzQxLDcgQEAgZGVmIHRlc3RfaW5wdXRfYXBwZW5kKHNlc3Npb24pOgog
ICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIpID09ICJhYmMiCiAKIAotZGVmIHRl
c3RfdGV4dGFyZWFfYXBwZW5kKHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFyZWFfYXBwZW5kKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0ZXh0YXJlYT5hPC90
ZXh0YXJlYT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJ0ZXh0YXJlYSIsIGFs
bD1GYWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiYSIKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9zZW5kX2tleXMvaW50ZXJhY3RhYmlsaXR5LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9pbnRlcmFjdGFiaWxpdHku
cHkKaW5kZXggMDcxNzUzN2FlNWQ4Li4yNzM4NDNmYjdiNDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvaW50
ZXJhY3RhYmlsaXR5LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvaW50ZXJhY3RhYmlsaXR5LnB5CkBAIC0xLDUgKzEs
NCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5s
aW5lCiAKIAogZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgpA
QCAtMTAsNyArOSw3IEBAIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0
ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0pCiAKIAotZGVmIHRlc3RfYm9keV9pc19pbnRl
cmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9ib2R5X2lzX2ludGVyYWN0YWJsZShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keSBv
bmtleXByZXNzPSJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlICs9IGV2ZW50
LmtleSI+CiAgICAgICAgICAgPGlucHV0PgpAQCAtMjksNyArMjgsNyBAQCBkZWYgdGVzdF9ib2R5
X2lzX2ludGVyYWN0YWJsZShzZXNzaW9uKToKICAgICBhc3NlcnQgcmVzdWx0LnByb3BlcnR5KCJ2
YWx1ZSIpID09ICJmb28iCiAKIAotZGVmIHRlc3RfZG9jdW1lbnRfZWxlbWVudF9pc19pbnRlcmFj
dGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9kb2N1bWVudF9lbGVtZW50X2lzX2ludGVyYWN0YWJs
ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAg
ICA8aHRtbCBvbmtleXByZXNzPSJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVl
ICs9IGV2ZW50LmtleSI+CiAgICAgICAgICAgPGlucHV0PgpAQCAtNDksNyArNDgsNyBAQCBkZWYg
dGVzdF9kb2N1bWVudF9lbGVtZW50X2lzX2ludGVyYWN0YWJsZShzZXNzaW9uKToKICAgICBhc3Nl
cnQgcmVzdWx0LnByb3BlcnR5KCJ2YWx1ZSIpID09ICJmb28iCiAKIAotZGVmIHRlc3RfaWZyYW1l
X2lzX2ludGVyYWN0YWJsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2lmcmFtZV9pc19pbnRlcmFjdGFi
bGUoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlm
cmFtZSgiIiIKICAgICAgICAgPGJvZHkgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignaW5wdXQnKS52YWx1ZSArPSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAgLTcz
LDcgKzcyLDcgQEAgZGVmIHRlc3RfaWZyYW1lX2lzX2ludGVyYWN0YWJsZShzZXNzaW9uKToKICAg
ICBhc3NlcnQgcmVzdWx0LnByb3BlcnR5KCJ2YWx1ZSIpID09ICJmb28iCiAKIAotZGVmIHRlc3Rf
dHJhbnNwYXJlbnRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3RyYW5zcGFyZW50X2VsZW1l
bnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQg
c3R5bGU9Im9wYWNpdHk6IDAiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTgyLDcgKzgxLDcgQEAgZGVmIHRlc3RfdHJhbnNwYXJl
bnRfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUi
KSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0X3JlYWRvbmx5X2VsZW1lbnQoc2Vzc2lvbik6CitkZWYg
dGVzdF9yZWFkb25seV9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dCByZWFkb25seT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtOTEsNyArOTAsNyBAQCBkZWYgdGVzdF9yZWFk
b25seV9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1
ZSIpID09ICIiCiAKIAotZGVmIHRlc3Rfb2JzY3VyZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0
ZXN0X29ic2N1cmVkX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiIKICAgICAgIDxpbnB1dD4KICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZTsgdG9wOiAtM2VtOyBoZWlnaHQ6IDVlbTsgYmFja2dyb3VuZDogYmx1ZTsiPjwvZGl2
PgpAQCAtMTAzLDcgKzEwMiw3IEBAIGRlZiB0ZXN0X29ic2N1cmVkX2VsZW1lbnQoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0gImZvbyIKIAogCi1kZWYg
dGVzdF9ub3RfYV9mb2N1c2FibGVfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X25vdF9hX2Zv
Y3VzYWJsZV9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxkaXY+Zm9vPC9kaXY+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2
IiwgYWxsPUZhbHNlKQogCkBAIC0xMTEsNyArMTEwLDcgQEAgZGVmIHRlc3Rfbm90X2FfZm9jdXNh
YmxlX2VsZW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVu
dCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbik6
CitkZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiIiI8aW5wdXQgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPiIiIikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTExOSw3ICsx
MTgsNyBAQCBkZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF92aXNp
YmlsaXR5X2hpZGRlbihzZXNzaW9uKToKK2RlZiB0ZXN0X3Zpc2liaWxpdHlfaGlkZGVuKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJ2
aXNpYmlsaXR5OiBoaWRkZW4iPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTEyNyw3ICsxMjYsNyBAQCBkZWYgdGVzdF92aXNpYmls
aXR5X2hpZGRlbihzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50
IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2hpZGRlbihzZXNzaW9uKToKK2RlZiB0
ZXN0X2hpZGRlbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgaGlkZGVuPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogCkBAIC0xMzUsNyArMTM0LDcgQEAgZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24p
OgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIp
CiAKIAotZGVmIHRlc3RfZGlzYWJsZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9kaXNhYmxlZChzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBkaXNhYmxl
ZD4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNl
KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfc2VuZF9rZXlzL3Njcm9sbF9pbnRvX3ZpZXcucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3Njcm9sbF9p
bnRvX3ZpZXcucHkKaW5kZXggMThmODdmZmFhZWM2Li4yMDVjNGUzMGUxZWQgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5k
X2tleXMvc2Nyb2xsX2ludG9fdmlldy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3Njcm9sbF9pbnRvX3ZpZXcucHkK
QEAgLTEsNiArMSw2IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBpc19lbGVtZW50X2lu
X3ZpZXdwb3J0Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKKwogCiBk
ZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgcmV0dXJu
IHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCkBAIC0xMCw3ICsxMCw3IEBAIGRlZiBlbGVtZW50X3Nl
bmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0p
CiAKIAotZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX25vdF9zY3JvbGxhYmxlX3ZpZXdwb3J0
KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX25vdF9zY3JvbGxhYmxlX3Zp
ZXdwb3J0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dCBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogLTk5OTlweDtcIj4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMjAsNyAr
MjAsNyBAQCBkZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfbm90X3Njcm9sbGFibGVfdmlld3Bv
cnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBpc19lbGVtZW50X2luX3ZpZXdwb3J0KHNlc3Np
b24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVf
dmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfc2Nyb2xsYWJs
ZV92aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMDJ2aDtcIj4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzAsNyArMzAsNyBAQCBkZWYg
dGVzdF9lbGVtZW50X291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKICAg
ICBhc3NlcnQgaXNfZWxlbWVudF9pbl92aWV3cG9ydChzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRl
ZiB0ZXN0X29wdGlvbl9zZWxlY3RfY29udGFpbmVyX291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3
cG9ydChzZXNzaW9uKToKK2RlZiB0ZXN0X29wdGlvbl9zZWxlY3RfY29udGFpbmVyX291dHNpZGVf
b2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0IHN0eWxlPSJtYXJnaW4tdG9wOiAxMDJ2aDsi
PgogICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImZvbyI+Zm9vPC9vcHRpb24+CkBAIC00Nyw3ICs0
Nyw3IEBAIGRlZiB0ZXN0X29wdGlvbl9zZWxlY3RfY29udGFpbmVyX291dHNpZGVfb2Zfc2Nyb2xs
YWJsZV92aWV3cG9ydChzZXNzaW9uKToKICAgICBhc3NlcnQgaXNfZWxlbWVudF9pbl92aWV3cG9y
dChzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X29wdGlvbl9zdGF5c19vdXRzaWRlX29m
X3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9vcHRpb25fc3RheXNfb3V0
c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzZWxlY3QgbXVsdGlwbGUgc3R5bGU9ImhlaWdo
dDogMTA1dmg7IG1hcmdpbi10b3A6IDEwMHZoOyI+CiAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i
Zm9vIiBpZD0iZm9vIiBzdHlsZT0iaGVpZ2h0OiAxMDB2aDsiPmZvbzwvb3B0aW9uPgpAQCAtNjYs
NyArNjYsNyBAQCBkZWYgdGVzdF9vcHRpb25fc3RheXNfb3V0c2lkZV9vZl9zY3JvbGxhYmxlX3Zp
ZXdwb3J0KHNlc3Npb24pOgogICAgIGFzc2VydCBub3QgaXNfZWxlbWVudF9pbl92aWV3cG9ydChz
ZXNzaW9uLCBvcHRpb25fYmFyKQogCiAKLWRlZiB0ZXN0X2NvbnRlbnRlZGl0YWJsZV9lbGVtZW50
X291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKK2RlZiB0ZXN0X2NvbnRl
bnRlZGl0YWJsZV9lbGVtZW50X291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2IGNvbnRlbnRlZGl0YWJs
ZSBzdHlsZT1cIm1hcmdpbi10b3A6IDEwMnZoO1wiPjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zZW5k
X2tleXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Vs
ZW1lbnRfc2VuZF9rZXlzL3NlbmRfa2V5cy5weQppbmRleCBlZGY5MWU3NzYxNDguLmFhMzkzZTE2
ZDgxNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zZW5kX2tleXMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zZW5kX2tleXMu
cHkKQEAgLTQsNyArNCw2IEBAIGZyb20gd2ViZHJpdmVyIGltcG9ydCBFbGVtZW50CiBmcm9tIHdl
YmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vz
c2lvbiwgZWxlbWVudCwgdGV4dCk6CkBAIC0xNSw3ICsxNCw3IEBAIGRlZiBlbGVtZW50X3NlbmRf
a2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0pCiAK
IAotZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCk6CitkZWYgdGVz
dF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTI1LDcgKzI0LDcgQEAgZGVmIHRlc3RfbnVsbF9w
YXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCk6CiAgICAgICAgIGFzc2VydF9lcnJvcihSZXNw
b25zZS5mcm9tX2h0dHAocmVzcG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCiAKIAotZGVmIHRl
c3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2Vf
dmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQog
CkBAIC0zNiwxMCArMzUsMTcgQEAgZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9u
KToKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dp
bmRvdyk6CiAgICAgZWxlbWVudCA9IEVsZW1lbnQoImZvbyIsIHNlc3Npb24pCisgICAgcmVzcG9u
c2UgPSBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCAiZm9vIikKKyAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBvcmlnaW5hbF9oYW5k
bGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X3NlbmRf
a2V5cyhzZXNzaW9uLCBlbGVtZW50LCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5h
bF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1l
bnQsICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIp
CisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUp
OgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQpAQCAtNDksNyArNTUsNyBA
QCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAK
IAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFtUcnVlLCBOb25lLCAxLCBbXSwg
e31dKQotZGVmIHRlc3RfaW52YWxpZF90ZXh0X3R5cGUoc2Vzc2lvbiwgdmFsdWUpOgorZGVmIHRl
c3RfaW52YWxpZF90ZXh0X3R5cGUoc2Vzc2lvbiwgaW5saW5lLCB2YWx1ZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtNTcsNyArNjMsNyBAQCBkZWYgdGVzdF9pbnZhbGlk
X3RleHRfdHlwZShzZXNzaW9uLCB2YWx1ZSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
aW52YWxpZCBhcmd1bWVudCIpCiAKIAotZGVmIHRlc3Rfc3RhbGVfZWxlbWVudChzZXNzaW9uKToK
K2RlZiB0ZXN0X3N0YWxlX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlu
cHV0IiwgYWxsPUZhbHNlKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3VzZXJfcHJvbXB0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tl
eXMvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDYyMWJkZmZhNjY0Mi4uYzEwNDY4NDBmYTRlIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfc2VuZF9rZXlzL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3VzZXJfcHJvbXB0cy5weQpA
QCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2Vy
dHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVs
ZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgpAQCAtMTUsNyArMTQsNyBA
QCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAKIAogQHB5
dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAg
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5
cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10
ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1G
YWxzZSkKQEAgLTMzLDcgKzMyLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtNTEsNyArNTAs
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxpbnB1dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9jb2xsZWN0aW9ucy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9h
c3luY19zY3JpcHQvY29sbGVjdGlvbnMucHkKaW5kZXggNDg0YTI0N2NmZmQ5Li4yZGM5YjlhMDA5
YWMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvY29sbGVjdGlvbnMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9jb2xs
ZWN0aW9ucy5weQpAQCAtMSw5ICsxLDYgQEAKIGltcG9ydCBvcwogCi1mcm9tIHNpeCBpbXBvcnQg
dGV4dF90eXBlCi0KIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc2Ft
ZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiAKIAogZGVmIGV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNlc3Npb24sIHNjcmlwdCwg
YXJncz1Ob25lKToKQEAgLTM1LDcgKzMyLDcgQEAgZGVmIHRlc3RfYXJyYXkoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIFsxLCAyXSkKIAogCi1kZWYgdGVzdF9maWxlX2xp
c3Qoc2Vzc2lvbiwgdG1wZGlyKToKK2RlZiB0ZXN0X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIs
IGlubGluZSk6CiAgICAgZmlsZXMgPSBbdG1wZGlyLmpvaW4oImZvby50eHQiKSwgdG1wZGlyLmpv
aW4oImJhci50eHQiKV0KIAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1m
aWxlIG11bHRpcGxlPiIpCkBAIC01NCwxMSArNTEsMTEgQEAgZGVmIHRlc3RfZmlsZV9saXN0KHNl
c3Npb24sIHRtcGRpcik6CiAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwgaW4gemlwKGZpbGVzLCB2
YWx1ZSk6CiAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFjdHVhbCwgZGljdCkKICAgICAgICAg
YXNzZXJ0ICJuYW1lIiBpbiBhY3R1YWwKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWN0dWFs
WyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWN0dWFsWyJu
YW1lIl0sIHN0cikKICAgICAgICAgYXNzZXJ0IG9zLnBhdGguYmFzZW5hbWUoc3RyKGV4cGVjdGVk
KSkgPT0gYWN0dWFsWyJuYW1lIl0KIAogCi1kZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9uKHNl
c3Npb24pOgorZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+
YmFyCkBAIC04Niw3ICs4Myw3IEBAIGRlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24oc2Vzc2lv
bik6CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBwc1sxXSwgdmFsdWVbNV0pCiAK
IAotZGVmIHRlc3RfaHRtbF9jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9jb2xs
ZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAg
ICAgICAgIDxwPmZvbwogICAgICAgICA8cD5iYXIKQEAgLTEwNCw3ICsxMDEsNyBAQCBkZWYgdGVz
dF9odG1sX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQo
c2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAogCi1kZWYgdGVzdF9odG1sX2Zvcm1fY29udHJv
bHNfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfZm9ybV9jb250cm9sc19jb2xs
ZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAg
ICAgICAgIDxmb3JtPgogICAgICAgICAgICAgPGlucHV0PgpAQCAtMTI0LDcgKzEyMSw3IEBAIGRl
ZiB0ZXN0X2h0bWxfZm9ybV9jb250cm9sc19jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAgICBh
c3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVmIHRl
c3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1sX29wdGlv
bnNfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAgICAgPG9wdGlvbj4KQEAgLTE0NCw3ICsx
NDEsNyBAQCBkZWYgdGVzdF9odG1sX29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAg
ICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRl
ZiB0ZXN0X25vZGVfbGlzdChzZXNzaW9uKToKK2RlZiB0ZXN0X25vZGVfbGlzdChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAg
ICAgICAgPHA+YmFyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2V4ZWN1dGVfYXN5bmMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2Ny
aXB0L2V4ZWN1dGVfYXN5bmMucHkKaW5kZXggYzc2OWNhODExZWUwLi41NzQ2ZWQ2ZjA1ZjMgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhl
Y3V0ZV9hc3luY19zY3JpcHQvZXhlY3V0ZV9hc3luYy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2V4ZWN1dGVf
YXN5bmMucHkKQEAgLTEsOCArMSwxMCBAQAogaW1wb3J0IHB5dGVzdAogCitmcm9tIHdlYmRyaXZl
ci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5z
cG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5zeW5jIGlt
cG9ydCBQb2xsCiAKIAogZGVmIGV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNlc3Npb24sIHNjcmlwdCwg
YXJncz1Ob25lKToKQEAgLTUwLDkgKzUyLDE2IEBAIGRlZiB0ZXN0X2Fib3J0X2J5X3VzZXJfcHJv
bXB0X3R3aWNlKHNlc3Npb24sIGRpYWxvZ190eXBlKToKIAogICAgIHNlc3Npb24uYWxlcnQuYWNj
ZXB0KCkKIAotICAgICMgVGhlIGZpcnN0IGFsZXJ0IGhhcyBiZWVuIGFjY2VwdGVkIGJ5IHRoZSB1
c2VyIHByb21wdCBoYW5kbGVyLCB0aGUgc2Vjb25kIG9uZSByZW1haW5zLgotICAgICMgRklYTUU6
IHRoaXMgaXMgaG93IGJyb3dzZXJzIGN1cnJlbnRseSB3b3JrLCBidXQgdGhlIHNwZWMgc2hvdWxk
IGNsYXJpZnkgaWYgdGhpcyBpcyB0aGUKLSAgICAjICAgICAgICBleHBlY3RlZCBiZWhhdmlvciwg
c2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lzc3Vlcy8xMTUzLgotICAgIGFz
c2VydCBzZXNzaW9uLmFsZXJ0LnRleHQgPT0gIkJ5ZSIKKyAgICAjIFRoZSBmaXJzdCBhbGVydCBo
YXMgYmVlbiBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9tcHQgaGFuZGxlciwgdGhlIHNlY29uZAor
ICAgICMgYWxlcnQgd2lsbCBzdGlsbCBiZSBvcGVuZWQgYmVjYXVzZSB0aGUgY3VycmVudCBzdGVw
IGlzbid0IGFib3J0ZWQuCisgICAgd2FpdCA9IFBvbGwoCisgICAgICAgIHNlc3Npb24sCisgICAg
ICAgIHRpbWVvdXQ9NSwKKyAgICAgICAgbWVzc2FnZT0iU2Vjb25kIGFsZXJ0IGhhcyBub3QgYmVl
biBvcGVuZWQiLAorICAgICAgICBpZ25vcmVkX2V4Y2VwdGlvbnM9Tm9TdWNoQWxlcnRFeGNlcHRp
b24KKyAgICApCisgICAgdGV4dCA9IHdhaXQudW50aWwobGFtYmRhIHM6IHMuYWxlcnQudGV4dCkK
KworICAgIGFzc2VydCB0ZXh0ID09ICJCeWUiCiAKICAgICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2V4ZWN1dGVfYXN5bmNfc2NyaXB0L3Byb3BlcnRpZXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L3Byb3BlcnRpZXMu
cHkKaW5kZXggMzk0YWUzMjk0Y2QzLi5lNTFiM2UzZWE1NzkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQv
cHJvcGVydGllcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L3Byb3BlcnRpZXMucHkKQEAgLTEsNSArMSw0IEBA
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3NhbWVfZWxlbWVudCwg
YXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQog
CiAKIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6
CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZXNzaW9uLCBzY3Jp
cHQsIGFyZ3M9Tm9uZSk6CiAgICAgICAgIGJvZHkpCiAKIAotZGVmIHRlc3RfY29udGVudF9hdHRy
aWJ1dGUoc2Vzc2lvbik6CitkZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vYmFyPiIpCiAg
ICAgcmVzcG9uc2UgPSBleGVjdXRlX2FzeW5jX3NjcmlwdChzZXNzaW9uLCAiIiIKICAgICAgICAg
Y29uc3QgcmVzb2x2ZSA9IGFyZ3VtZW50c1swXTsKQEAgLTIxLDcgKzIwLDcgQEAgZGVmIHRlc3Rf
Y29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Us
ICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CitkZWYgdGVz
dF9pZGxfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiCiAgICAgICAgIDxpbnB1dD4KICAgICAgICAgPHNjcmlwdD4KQEAgLTM3LDcgKzM2LDcg
QEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSwgImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50KHNl
c3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwPmZvbwogICAgICAgICA8
cD5iYXIKQEAgLTU5LDcgKzU4LDcgQEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50KHNl
c3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgYmFyLCB2YWx1ZSkKIAog
Ci1kZWYgdGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbik6CitkZWYgdGVzdF9z
Y3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgiIiIKICAg
ICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpOwpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVj
dXRlX3NjcmlwdC9jb2xsZWN0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkKaW5kZXggYmUwYjNh
MDE4YzUwLi44MjkxZmQ3MTM4OGIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3Njcmlw
dC9jb2xsZWN0aW9ucy5weQpAQCAtMSw5ICsxLDYgQEAKIGltcG9ydCBvcwogCi1mcm9tIHNpeCBp
bXBvcnQgdGV4dF90eXBlCi0KIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGV4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIHNjcmlwdCwg
YXJncz1Ob25lKToKQEAgLTMxLDcgKzI4LDcgQEAgZGVmIHRlc3RfYXJyYXkoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIFsxLCAyXSkKIAogCi1kZWYgdGVzdF9maWxlX2xp
c3Qoc2Vzc2lvbiwgdG1wZGlyKToKK2RlZiB0ZXN0X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIs
IGlubGluZSk6CiAgICAgZmlsZXMgPSBbdG1wZGlyLmpvaW4oImZvby50eHQiKSwgdG1wZGlyLmpv
aW4oImJhci50eHQiKV0KIAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1m
aWxlIG11bHRpcGxlPiIpCkBAIC00NywxMSArNDQsMTEgQEAgZGVmIHRlc3RfZmlsZV9saXN0KHNl
c3Npb24sIHRtcGRpcik6CiAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwgaW4gemlwKGZpbGVzLCB2
YWx1ZSk6CiAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFjdHVhbCwgZGljdCkKICAgICAgICAg
YXNzZXJ0ICJuYW1lIiBpbiBhY3R1YWwKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWN0dWFs
WyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWN0dWFsWyJu
YW1lIl0sIHN0cikKICAgICAgICAgYXNzZXJ0IG9zLnBhdGguYmFzZW5hbWUoc3RyKGV4cGVjdGVk
KSkgPT0gYWN0dWFsWyJuYW1lIl0KIAogCi1kZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9uKHNl
c3Npb24pOgorZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+
YmFyCkBAIC03Niw3ICs3Myw3IEBAIGRlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24oc2Vzc2lv
bik6CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBwc1sxXSwgdmFsdWVbNV0pCiAK
IAotZGVmIHRlc3RfaHRtbF9jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9jb2xs
ZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAg
ICAgICAgIDxwPmZvbwogICAgICAgICA8cD5iYXIKQEAgLTkxLDcgKzg4LDcgQEAgZGVmIHRlc3Rf
aHRtbF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNl
c3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xz
X2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1sX2Zvcm1fY29udHJvbHNfY29sbGVj
dGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAg
ICAgICA8Zm9ybT4KICAgICAgICAgICAgIDxpbnB1dD4KQEAgLTEwOCw3ICsxMDUsNyBAQCBkZWYg
dGVzdF9odG1sX2Zvcm1fY29udHJvbHNfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAgYXNz
ZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0
X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9vcHRpb25z
X2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgICAgPHNlbGVjdD4KICAgICAgICAgICAgIDxvcHRpb24+CkBAIC0xMjUsNyArMTIy
LDcgQEAgZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAgICAgICAg
IGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAogCi1kZWYg
dGVzdF9ub2RlX2xpc3Qoc2Vzc2lvbik6CitkZWYgdGVzdF9ub2RlX2xpc3Qoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAg
ICAgIDxwPmJhcgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9jeWNsaWMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2N5Y2xpYy5weQppbmRleCAx
NmJkY2RkMWRlYTUuLmUzMDk0Zjg5ZjNiNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9jeWNsaWMucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3Njcmlw
dC9jeWNsaWMucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2Vzcwot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGV4ZWN1dGVf
c2NyaXB0KHNlc3Npb24sIHNjcmlwdCwgYXJncz1Ob25lKToKQEAgLTQ5LDcgKzQ4LDcgQEAgZGVm
IHRlc3Rfb2JqZWN0X2luX2FycmF5KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgImphdmFzY3JpcHQgZXJyb3IiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfaW5fY29sbGVjdGlv
bihzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfaW5fY29sbGVjdGlvbihzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjwvZGl2PiIpCiAgICAgZGl2cyA9
IHNlc3Npb24uZmluZC5jc3MoImRpdiIpCiAKQEAgLTYzLDcgKzYyLDcgQEAgZGVmIHRlc3RfZWxl
bWVudF9pbl9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50
KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9pbl9vYmpl
Y3Qoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2luX29iamVjdChzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjwvZGl2PiIpCiAgICAgZGl2ID0gc2Vz
c2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2V4ZWN1dGUu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVf
c2NyaXB0L2V4ZWN1dGUucHkKaW5kZXggYmQ3MTliMjc4NTllLi4wZjkzNGNiYjQ0NTAgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0
ZV9zY3JpcHQvZXhlY3V0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2V4ZWN1dGUucHkKQEAgLTEsOSArMSw5IEBACiBp
bXBvcnQgcHl0ZXN0CiAKK2Zyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4
Y2VwdGlvbgogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1
cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTM0LDcgKzM0LDcgQEAgZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9vcGVuaW5nX25ld193
aW5kb3dfa2VlcHNfY3VycmVudF93aW5kb3dfaGFuZGxlKHNlc3Npb24pOgorZGVmIHRlc3Rfb3Bl
bmluZ19uZXdfd2luZG93X2tlZXBzX2N1cnJlbnRfd2luZG93X2hhbmRsZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIG9yaWdpbmFsX2hhbmRsZSA9IHNlc3Npb24ud2luZG93X2hhbmRsZQogICAgIG9y
aWdpbmFsX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKIApAQCAtNTcsNyArNTcsNyBAQCBkZWYg
dGVzdF9lbmRpbmdfY29tbWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSwgMSkKIAogCi1kZWYgdGVzdF9vdmVycmlkZV9saXN0ZW5lcnMoc2Vzc2lvbik6CitkZWYgdGVz
dF9vdmVycmlkZV9saXN0ZW5lcnMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiIKIDxzY3JpcHQ+CiBjYWxsZWQgPSBbXTsKQEAgLTg4LDkgKzg4LDE2IEBAIGRl
ZiB0ZXN0X2Fib3J0X2J5X3VzZXJfcHJvbXB0X3R3aWNlKHNlc3Npb24sIGRpYWxvZ190eXBlKToK
IAogICAgIHNlc3Npb24uYWxlcnQuYWNjZXB0KCkKIAotICAgICMgVGhlIGZpcnN0IGFsZXJ0IGhh
cyBiZWVuIGFjY2VwdGVkIGJ5IHRoZSB1c2VyIHByb21wdCBoYW5kbGVyLCB0aGUgc2Vjb25kIG9u
ZSByZW1haW5zLgotICAgICMgRklYTUU6IHRoaXMgaXMgaG93IGJyb3dzZXJzIGN1cnJlbnRseSB3
b3JrLCBidXQgdGhlIHNwZWMgc2hvdWxkIGNsYXJpZnkgaWYgdGhpcyBpcyB0aGUKLSAgICAjICAg
ICAgICBleHBlY3RlZCBiZWhhdmlvciwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJp
dmVyL2lzc3Vlcy8xMTUzLgotICAgIGFzc2VydCBzZXNzaW9uLmFsZXJ0LnRleHQgPT0gIkJ5ZSIK
KyAgICAjIFRoZSBmaXJzdCBhbGVydCBoYXMgYmVlbiBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9t
cHQgaGFuZGxlciwgdGhlIHNlY29uZAorICAgICMgYWxlcnQgd2lsbCBzdGlsbCBiZSBvcGVuZWQg
YmVjYXVzZSB0aGUgY3VycmVudCBzdGVwIGlzbid0IGFib3J0ZWQuCisgICAgd2FpdCA9IFBvbGwo
CisgICAgICAgIHNlc3Npb24sCisgICAgICAgIHRpbWVvdXQ9NSwKKyAgICAgICAgbWVzc2FnZT0i
U2Vjb25kIGFsZXJ0IGhhcyBub3QgYmVlbiBvcGVuZWQiLAorICAgICAgICBpZ25vcmVkX2V4Y2Vw
dGlvbnM9Tm9TdWNoQWxlcnRFeGNlcHRpb24KKyAgICApCisgICAgdGV4dCA9IHdhaXQudW50aWwo
bGFtYmRhIHM6IHMuYWxlcnQudGV4dCkKKworICAgIGFzc2VydCB0ZXh0ID09ICJCeWUiCiAKICAg
ICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L3Byb3BlcnRpZXMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0
L3Byb3BlcnRpZXMucHkKaW5kZXggMmJlNGYxZjNjY2M5Li41MTk5OTkzNmU3MWEgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9z
Y3JpcHQvcHJvcGVydGllcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L3Byb3BlcnRpZXMucHkKQEAgLTEsNSArMSw0IEBA
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3NhbWVfZWxlbWVudCwg
YXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQog
CiAKIGRlZiBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC0x
MSw3ICsxMCw3IEBAIGRlZiBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9u
ZSk6CiAgICAgICAgIGJvZHkpCiAKIAotZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lv
bik6CitkZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vYmFyPiIpCiAgICAgcmVzcG9uc2Ug
PSBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCAiIiIKICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpOwpAQCAtMjAsNyArMTksNyBAQCBkZWYgdGVzdF9j
b250ZW50X2F0dHJpYnV0ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwg
ImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToKK2RlZiB0ZXN0
X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPGlucHV0PgogICAgICAgICA8c2NyaXB0PgpAQCAtMzUsNyArMzQsNyBA
QCBkZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRlX2VsZW1lbnQoc2Vz
c2lvbik6CitkZWYgdGVzdF9pZGxfYXR0cmlidXRlX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAgICAgIDxw
PmJhcgpAQCAtNTYsNyArNTUsNyBAQCBkZWYgdGVzdF9pZGxfYXR0cmlidXRlX2VsZW1lbnQoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBiYXIsIHZhbHVlKQogCiAK
LWRlZiB0ZXN0X3NjcmlwdF9kZWZpbmluZ19wcm9wZXJ0eShzZXNzaW9uKToKK2RlZiB0ZXN0X3Nj
cmlwdF9kZWZpbmluZ19wcm9wZXJ0eShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCAiIiIKICAg
ICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpOwpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5k
X2VsZW1lbnQvZmluZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50L2ZpbmQucHkKaW5kZXggOWYwOTExZDU2ZGMwLi40NTEwNjE3ZGE1
YTYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50L2ZpbmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnQvZmluZC5weQpAQCAtMyw3ICszLDYgQEAgaW1w
b3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2Ft
ZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgpA
QCAtNDgsNyArNDcsNyBAQCBkZWYgdGVzdF9pbnZhbGlkX3NlbGVjdG9yX2FyZ3VtZW50KHNlc3Np
b24sIHZhbHVlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4
dCIsICJsaW5rIHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIs
ICJhIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy9hIildKQotZGVm
IHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9maW5k
X2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0g
OQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBs
aW5rIHRleHQ8L2E+IikKIApAQCAtNjQsNyArNjMsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnQo
c2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+Iiwg
IkxJTksgVEVYVCIpLAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBw
ZXJjYXNlJz5saW5rIHRleHQ8L2E+IiwgIkxJTksgVEVYVCIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRf
ZWxlbWVudF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2Zp
bmRfZWxlbWVudF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFsdWUpOgog
ICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGRvY3VtZW50KQogCkBA
IC04MSw3ICs4MCw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3RleHQoc2Vzc2lvbiwg
ZG9jdW1lbnQsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4i
LCAiTElOSyIpLAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJj
YXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRf
ZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVm
IHRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9j
dW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZShkb2N1bWVudCkKIApAQCAtMTAyLDcgKzEwMSw3IEBAIGRlZiB0ZXN0X25vX2VsZW1lbnQoc2Vz
c2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFs
IGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
YWcgbmFtZSIsICJhIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy8q
W25hbWUoKT0nYSddIildKQotZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5n
LCB2YWx1ZSk6CitkZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgaW5saW5lLCB1c2lu
ZywgdmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxhIGhyZWY9IiMiIGlkPSJs
aW5rVGV4dCI+ZnVsbCBsaW5rIHRleHQ8L2E+IiIiLAogICAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3R5cGU9InhodG1sIikKICAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQo
InJldHVybiBkb2N1bWVudC5saW5rc1swXSIpCkBAIC0xMTYsNyArMTE1LDcgQEAgZGVmIHRlc3Rf
eGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgWygiY3NzIHNlbGVjdG9yIiwgIjpyb290IiksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgidGFnIG5hbWUiLCAiaHRtbCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAo
InhwYXRoIiwgIi9odG1sIildKQotZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Npb24sIHVzaW5n
LCB2YWx1ZSk6CitkZWYgdGVzdF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywg
dmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIHJlc3BvbnNlID0gZmlu
ZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSkKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQppbmRl
eCA2MTM0NjZiNjJiNTEuLmFkYThlOGViZWUzMyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9l
bGVtZW50L3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAgZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfc3VjY2VzcywKICAgICBhc3NlcnRfZGlhbG9n
X2hhbmRsZWQsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CkBAIC0xOCw3ICsxNyw3
IEBAIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwg
cmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJhcjwvcD4iKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKQEAgLTM2LDcg
KzM1LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxwPmJhcjwvcD4iKQogCkBAIC01MSw3ICs1MCw3IEBAIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlh
bG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+YmFyPC9wPiIpCiAK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZmluZF9lbGVtZW50X2Zyb21fZWxlbWVudC9maW5kLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L2ZpbmQucHkK
aW5kZXggYWE2NDgxMTc5NzZiLi44NzlkZTM3MTNmOTkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fZWxlbWVu
dC9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50X2Zyb21fZWxlbWVudC9maW5kLnB5CkBAIC0zLDcgKzMsNiBAQCBpbXBv
cnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1l
X2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKIAogCiBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIGVsZW1lbnRfaWQsIHVzaW5n
LCB2YWx1ZSk6CkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgZWxl
bWVudF9pZCwgdXNpbmcsIHZhbHVlKToKICAgICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFsdWUi
OiB2YWx1ZX0pCiAKIAotZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0
cCk6CitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5m
dWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJkaXYiLCBhbGw9RmFsc2UpCiAKQEAgLTU0LDcgKzUzLDcgQEAgZGVmIHRlc3RfaW52YWxpZF9z
ZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAo
InhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywg
dmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZh
bHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48
YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNzAsNyArNjksNyBA
QCBkZWYgdGVzdF9maW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICAoIjxh
IGhyZWY9Iz5MSU5LIFRFWFQ8L2E+IiwgIkxJTksgVEVYVCIpLAogICAgICgiPGEgaHJlZj0jIHN0
eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5saW5rIHRleHQ8L2E+IiwgIkxJTksgVEVY
VCIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1l
bnQsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3RleHQoc2Vzc2lvbiwgaW5s
aW5lLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8ZGl2PnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtODgsNyArODcsNyBAQCBk
ZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6
CiAgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJTksiKSwKICAgICAo
IjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5r
IHRleHQ8L2E+IiwgIkxJTksiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9s
aW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVu
dF9wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAg
ICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+ezB9PC9kaXY+
Ii5mb3JtYXQoZG9jdW1lbnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYi
LCBhbGw9RmFsc2UpCkBAIC05OCw3ICs5Nyw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0
aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgogCiAKIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLCBbKCJjc3Mgc2VsZWN0b3IiLCAiI3dvbnRFeGlz
dCIpXSkKLWRlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0
ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3Rl
cCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjwvZGl2PiIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTExMiw3ICsxMTEs
NyBAQCBkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vKltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3ho
dG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFt
ZXNwYWNlKHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiI8cD48YSBocmVmPSIjIiBpZD0ibGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9h
PjwvcD4iIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQogICAg
IGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIicmV0dXJuIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoInAiKSIiIikKQEAgLTEyMyw3ICsxMjIsNyBAQCBkZWYgdGVzdF94aHRt
bF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICBhc3NlcnRfc2FtZV9lbGVt
ZW50KHNlc3Npb24sIHZhbHVlLCBleHBlY3RlZCkKIAogCi1kZWYgdGVzdF9wYXJlbnRfaHRtbGRv
Y3VtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcGFyZW50X2h0bWxkb2N1bWVudChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIGZyb21fZWxlbWVudCA9
IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
ImJvZHkiKSIiIikKICAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQiKQpAQCAtMTMzLDcgKzEzMiw3IEBAIGRlZiB0ZXN0
X3BhcmVudF9odG1sZG9jdW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChz
ZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQpCiAKIAotZGVmIHRlc3RfcGFyZW50X29mX2RvY3VtZW50
X25vZGVfZXJyb3JzKHNlc3Npb24pOgorZGVmIHRlc3RfcGFyZW50X29mX2RvY3VtZW50X25vZGVf
ZXJyb3JzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIpCiAg
ICAgZnJvbV9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudCIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fZWxlbWVudC91c2VyX3Byb21w
dHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudF9mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDNmZGFmNGU0N2VkNy4u
MDUzN2E3ODYxODljIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50X2Zyb21fZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nlc3MsCiAgICAgYXNz
ZXJ0X2RpYWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBlbGVtZW50X2lkLCB1c2luZywg
dmFsdWUpOgpAQCAtMjAsNyArMTksNyBAQCBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIGVsZW1l
bnRfaWQsIHVzaW5nLCB2YWx1ZSk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCiAgICAgICAgIG91dGVyX2Vs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC0zOSw3ICszOCw3
IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCiAgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC01NSw3ICs1NCw3IEBAIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBp
bmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRp
b24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5i
YXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
ZGl2IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50X2Zyb21fc2hhZG93X3Jvb3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi5iOGZjOTMzMTlmNDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3No
YWRvd19yb290L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMTkgQEAKK2ltcG9ydCBweXRlc3QKKwor
QHB5dGVzdC5maXh0dXJlCitkZWYgZ2V0X3NoYWRvd19wYWdlKGlubGluZSk6CisgICAgZGVmIGdl
dF9zaGFkb3dfcGFnZShzaGFkb3dfY29udGVudCk6CisgICAgICAgIHJldHVybiBpbmxpbmUoIiIi
CisgICAgICAgICAgICA8Y3VzdG9tLXNoYWRvdy1lbGVtZW50PjwvY3VzdG9tLXNoYWRvdy1lbGVt
ZW50PgorICAgICAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgICAgICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoJ2N1c3RvbS1zaGFkb3ctZWxlbWVudCcsCisgICAgICAgICAgICAgICAgICAgIGNs
YXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQge3sKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
cnVjdG9yKCkge3sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdHRhY2hTaGFkb3coe3ttb2RlOiAn
b3Blbid9fSkuaW5uZXJIVE1MID0gYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAge3sgezB9IH19CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfX0KKyAgICAgICAgICAgICAgICAgICAgfX0pOworICAgICAg
ICAgICAgPC9zY3JpcHQ+IiIiLmZvcm1hdChzaGFkb3dfY29udGVudCkpCisgICAgcmV0dXJuIGdl
dF9zaGFkb3dfcGFnZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC9maW5kLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJv
bV9zaGFkb3dfcm9vdC9maW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uODc5NDFkNDk1ZTEzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC9m
aW5kLnB5CkBAIC0wLDAgKzEsMTQxIEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gd2ViZHJpdmVy
LnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MK
KworCitkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZhbHVlKToK
KyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAic2Vz
c2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnQiLmZvcm1hdCgKKyAg
ICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAgc2hh
ZG93X2lkPXNoYWRvd19pZCksCisgICAgICAgIHsidXNpbmciOiB1c2luZywgInZhbHVlIjogdmFs
dWV9KQorCisKK2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHAsIGdl
dF9zaGFkb3dfcGFnZSk6CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+
PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCisgICAgY3Vz
dG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBh
bGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAor
CisgICAgcGF0aCA9ICIvc2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2Vs
ZW1lbnQiLmZvcm1hdCgKKyAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsIHNo
YWRvd19pZD1zaGFkb3dfcm9vdC5pZCkKKyAgICB3aXRoIGh0dHAucG9zdChwYXRoLCBOb25lKSBh
cyByZXNwb25zZToKKyAgICAgICAgYXNzZXJ0X2Vycm9yKFJlc3BvbnNlLmZyb21faHR0cChyZXNw
b25zZSksICJpbnZhbGlkIGFyZ3VtZW50IikKKworCitkZWYgdGVzdF9ub190b3BfYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICByZXNwb25zZSA9IGZpbmRfZWxl
bWVudChzZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCAiZm9vIikKKyAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKworZGVmIHRlc3Rfbm9fYnJv
d3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorICAgIHJlc3BvbnNlID0gZmlu
ZF9lbGVtZW50KHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInVzaW5nIiwgWyJhIiwgVHJ1ZSwgTm9uZSwgMSwgW10sIHt9XSkKK2Rl
ZiB0ZXN0X2ludmFsaWRfdXNpbmdfYXJndW1lbnQoc2Vzc2lvbiwgdXNpbmcpOgorICAgICMgU3Rl
cCAxIC0gMgorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sICJub3RSZWFsIiwg
dXNpbmcsICJ2YWx1ZSIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBhcmd1
bWVudCIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFtOb25lLCBbXSwg
e31dKQorZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6
CisgICAgIyBTdGVwIDMgLSA0CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwg
Im5vdFJlYWwiLCAiY3NzIHNlbGVjdG9yIiwgdmFsdWUpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVmIHRlc3RfZGV0YWNoZWRfc2hhZG93X3Jv
b3Qoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFk
b3dfcGFnZSgiPGRpdj48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz48L2Rpdj4iKQorICAgIGN1c3Rv
bV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxs
PUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAg
ICBzZXNzaW9uLnJlZnJlc2goKQorCisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lv
biwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAiaW5wdXQiKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgImRldGFjaGVkIHNoYWRvdyByb290IikKKworCitkZWYgdGVzdF9mb3VuZF9lbGVtZW50
X2VxdWl2YWxlbmNlKHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAgc2Vzc2lvbi51cmwg
PSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+PC9kaXY+IikK
KyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxl
bWVudCIsIGFsbD1GYWxzZSkKKyAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQo
InJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1l
bnQsKSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisgICAg
cmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAi
aW5wdXQiKQorICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0
X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQpCisKKworQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJ1c2luZyx2YWx1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgWygi
Y3NzIHNlbGVjdG9yIiwgIiNsaW5rVGV4dCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAo
ImxpbmsgdGV4dCIsICJmdWxsIGxpbmsgdGV4dCIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4
cGF0aCIsICIvL2EiKV0pCitkZWYgdGVzdF9maW5kX2VsZW1lbnQoc2Vzc2lvbiwgZ2V0X3NoYWRv
d19wYWdlLCB1c2luZywgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJs
ID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsg
dGV4dDwvYT48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
Y3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIGV4cGVjdGVkID0gc2Vzc2lv
bi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJyNsaW5rVGV4dCcpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXJncz0oY3VzdG9tX2VsZW1lbnQsKSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVt
ZW50LnNoYWRvd19yb290CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hh
ZG93X3Jvb3QuaWQsIHVzaW5nLCB2YWx1ZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkK
KyAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIHZhbHVlLCBleHBlY3RlZCkKKworCitA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRvY3VtZW50LHZhbHVlIiwgWworICAgICgiPGEgaHJl
Zj0jPmxpbmsgdGV4dDwvYT4iLCAibGluayB0ZXh0IiksCisgICAgKCI8YSBocmVmPSM+Jm5ic3A7
bGluayB0ZXh0Jm5ic3A7PC9hPiIsICJsaW5rIHRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5saW5r
PGJyPnRleHQ8L2E+IiwgImxpbmtcbnRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5saW5rJmFtcDt0
ZXh0PC9hPiIsICJsaW5rJnRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+Iiwg
IkxJTksgVEVYVCIpLAorICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBw
ZXJjYXNlJz5saW5rIHRleHQ8L2E+IiwgIkxJTksgVEVYVCIpLAorXSkKK2RlZiB0ZXN0X2ZpbmRf
ZWxlbWVudF9saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVudCwgdmFs
dWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdl
KCI8ZGl2PnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKKyAgICBjdXN0b21fZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAg
ICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0u
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdhJylbMF0iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQorICAgIHNoYWRvd19y
b290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHJlc3BvbnNlID0gZmluZF9l
bGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAibGluayB0ZXh0IiwgdmFsdWUpCisgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9u
LCB2YWx1ZSwgZXhwZWN0ZWQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVu
dCx2YWx1ZSIsIFsKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAibGlu
ayIpLAorICAgICgiPGEgaHJlZj0jPiZuYnNwO3BhcnRpYWwgbGluayB0ZXh0Jm5ic3A7PC9hPiIs
ICJsaW5rIiksCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgImsgdCIp
LAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPiIsICJrXG50IiksCisg
ICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rJmFtcDt0ZXh0PC9hPiIsICJrJnQiKSwKKyAgICAo
IjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4iLCAiTElOSyIpLAorICAgICgiPGEgaHJl
Zj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwv
YT4iLCAiTElOSyIpLAorXSkKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4
dChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UsIGRvY3VtZW50LCB2YWx1ZSk6CisgICAgIyBTdGVw
IDggLSA5CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+ezB9PC9kaXY+
Ii5mb3JtYXQoZG9jdW1lbnQpKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIGV4cGVjdGVkID0gc2Vz
c2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3JBbGwoJ2EnKVswXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxl
bWVudC5zaGFkb3dfcm9vdAorCisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwg
c2hhZG93X3Jvb3QuaWQsICJwYXJ0aWFsIGxpbmsgdGV4dCIsIHZhbHVlKQorICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUs
IGV4cGVjdGVkKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLCBb
KCJjc3Mgc2VsZWN0b3IiLCAiI3dvbnRFeGlzdCIpXSkKK2RlZiB0ZXN0X25vX2VsZW1lbnQoc2Vz
c2lvbiwgZ2V0X3NoYWRvd19wYWdlLCB1c2luZywgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQor
ICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjwvZGl2PiIpCisgICAgY3Vz
dG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBh
bGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAor
CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsIHVz
aW5nLCB2YWx1ZSkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQi
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3No
YWRvd19yb290L3VzZXJfcHJvbXB0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjM4MTNhN2RmNWQzMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jv
b3QvdXNlcl9wcm9tcHRzLnB5CkBAIC0wLDAgKzEsMTI5IEBACisjIE1FVEE6IHRpbWVvdXQ9bG9u
ZworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAo
CisgICAgYXNzZXJ0X2Vycm9yLAorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQsCisgICAgYXNzZXJ0
X3N1Y2Nlc3MsCisgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAorKQorCisKK2RlZiBmaW5kX2Vs
ZW1lbnQoc2Vzc2lvbiwgc2hhZG93X2lkLCB1c2luZywgdmFsdWUpOgorICAgIHJldHVybiBzZXNz
aW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lk
fS9zaGFkb3cve3NoYWRvd19pZH0vZWxlbWVudCIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lv
bl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPXNoYWRvd19p
ZCksCisgICAgICAgIHsidXNpbmciOiB1c2luZywgInZhbHVlIjogdmFsdWV9KQorCisKK0BweXRl
c3QuZml4dHVyZQorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwv
cD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0
b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0
ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorICAgICAgICBpbm5lcl9lbGVtZW50ID0gc2Vzc2lvbi5l
eGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ3AnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ3M9KG91dGVyX2VsZW1lbnQsKSkKKworICAgICAgICBjcmVhdGVfZGlhbG9nKGRpYWxvZ190
eXBlLCB0ZXh0PWRpYWxvZ190eXBlKQorCisgICAgICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50
KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAgICB2
YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgICAgIGFzc2VydF9kaWFsb2df
aGFuZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9yZXR2
YWw9cmV0dmFsKQorCisgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUs
IGlubmVyX2VsZW1lbnQpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFk
b3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93
X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICAg
ICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNoYWRvd19yb290CisKKyAgICAgICAgY3Jl
YXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAgICByZXNw
b25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyBzZWxlY3Rv
ciIsICJwIikKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAidW5leHBlY3RlZCBhbGVy
dCBvcGVuIikKKworICAgICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0
ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0ZWRfcmV0dmFsPXJldHZhbCkKKworICAgIHJldHVy
biBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24KKworCitAcHl0ZXN0LmZp
eHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKKyAgICAgICAg
c2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAg
ICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxl
bWVudCIsIGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNo
YWRvd19yb290CisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFs
b2dfdHlwZSkKKworICAgICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFk
b3dfcm9vdC5pZCwgImNzcyBzZWxlY3RvciIsICJwIikKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAidW5leHBlY3RlZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3NlcnQgc2Vzc2lv
bi5hbGVydC50ZXh0ID09IGRpYWxvZ190eXBlCisgICAgICAgIHNlc3Npb24uYWxlcnQuZGlzbWlz
cygpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2
aW9yIjogImFjY2VwdCJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwg
cmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBUcnVlKSwK
KyAgICAoInByb21wdCIsICIiKSwKK10pCitkZWYgdGVzdF9hY2NlcHQoY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJl
dHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVo
YXZpb3IiOiAiYWNjZXB0IGFuZCBub3RpZnkifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
ZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25m
aXJtIiwgVHJ1ZSksCisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3RfYWNjZXB0X2Fu
ZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2df
dHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsi
dW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlzbWlzcyJ9KQorQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAg
ICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVz
dF9kaXNtaXNzKGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlh
bG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxp
dGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRpc21pc3MgYW5kIG5vdGlmeSJ9KQor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgi
YWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBO
b25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzX2FuZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKwor
CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAi
aWdub3JlIn0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlIiwgWyJhbGVy
dCIsICJjb25maXJtIiwgInByb21wdCJdKQorZGVmIHRlc3RfaWdub3JlKGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUpOgorICAgIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSkKKworCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVy
dCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUp
LAorXSkKK2RlZiB0ZXN0X2RlZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy9maW5k
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2Vs
ZW1lbnRzL2ZpbmQucHkKaW5kZXggYzEzODFhMGU4MmFjLi40N2YwMDk3MzkzODUgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50cy9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50cy9maW5kLnB5CkBAIC0zLDcgKzMsNiBAQCBpbXBvcnQgcHl0ZXN0
CiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQs
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpOgpAQCAtNDgsNyAr
NDcsNyBAQCBkZWYgdGVzdF9pbnZhbGlkX3NlbGVjdG9yX2FyZ3VtZW50KHNlc3Npb24sIHZhbHVl
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5r
IHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy9hIildKQotZGVmIHRlc3RfZmlu
ZF9lbGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50
cyhzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4
dDwvYT4iKQogCkBAIC02NSw3ICs2NCw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lv
biwgdXNpbmcsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+IiwgIkxJTksg
VEVYVCIpLAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNl
Jz5saW5rIHRleHQ8L2E+IiwgIkxJTksgVEVYVCIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVu
dHNfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2Vs
ZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAg
IyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9Iz5ub3Qgd2Fu
dGVkPC9hPjxici8+ezB9Ii5mb3JtYXQoZG9jdW1lbnQpKQogICAgIGV4cGVjdGVkID0gc2Vzc2lv
bi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmxpbmtzWzFdOyIpCkBAIC04OCw3ICs4
Nyw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50
LCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJTksi
KSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFy
dGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRz
X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9m
aW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQs
IHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEg
aHJlZj0jPm5vdCB3YW50ZWQ8L2E+PGJyLz57MH0iLmZvcm1hdChkb2N1bWVudCkpCiAgICAgZXhw
ZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQubGlua3NbMV07
IikKQEAgLTExNiw3ICsxMTUsNyBAQCBkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIHVzaW5n
LCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQi
LCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAi
YSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vKltuYW1lKCk9J2En
XSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgor
ZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8YSBocmVmPSIjIiBpZD0ibGlua1RleHQiPmZ1
bGwgbGluayB0ZXh0PC9hPiIiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0eXBlPSJ4
aHRtbCIpCiAgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9j
dW1lbnQubGlua3NbMF07IikKQEAgLTEzNCw3ICsxMzMsNyBAQCBkZWYgdGVzdF94aHRtbF9uYW1l
c3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICAgICAgICAgICAgICAgICAgICAgICBb
KCJjc3Mgc2VsZWN0b3IiLCAiOnJvb3QiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
YWcgbmFtZSIsICJodG1sIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAi
L2h0bWwiKV0pCi1kZWYgdGVzdF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToK
K2RlZiB0ZXN0X2h0bWxkb2N1bWVudChzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIpCiAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRz
KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3Bv
bnNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9maW5kX2VsZW1lbnRzL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkKaW5k
ZXggMDFlYjhmZjNjODYzLi5mOWE0NWU1Mjc1MTUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5k
X2VsZW1lbnRzL3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAgZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfc3VjY2VzcywKICAgICBhc3NlcnRfZGlh
bG9nX2hhbmRsZWQsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpOgpAQCAtMTgsNyAr
MTcsNyBAQCBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAg
ICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+YmFyPC9wPiIp
CiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQpAQCAt
MzgsNyArMzcsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPHA+YmFyPC9wPiIpCiAKQEAgLTUzLDcgKzUyLDcgQEAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5iYXI8L3A+
IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxlbWVudC9maW5kLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxlbWVudC9m
aW5kLnB5CmluZGV4IDVjMjY3YmE2NDc5ZS4uYWU2Zjk3NmU5Zjk3IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJv
bV9lbGVtZW50L2ZpbmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxlbWVudC9maW5kLnB5CkBAIC0zLDcgKzMs
NiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3Bv
bnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBlbGVtZW50
X2lkLCB1c2luZywgdmFsdWUpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZmluZF9lbGVtZW50cyhz
ZXNzaW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgogICAgICAgICB7InVzaW5nIjogdXNp
bmcsICJ2YWx1ZSI6IHZhbHVlfSkKIAogCi1kZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShz
ZXNzaW9uLCBodHRwKToKK2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0
dHAsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jIGlk
PWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApAQCAtNTQsNyArNTMsNyBAQCBkZWYgdGVz
dF9pbnZhbGlkX3NlbGVjdG9yX2FyZ3VtZW50KHNlc3Npb24sIHZhbHVlKToKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgieHBhdGgiLCAiLy9hIildKQotZGVmIHRlc3RfZmluZF9lbGVtZW50cyhzZXNz
aW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50cyhzZXNzaW9uLCBpbmxp
bmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2
PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAg
LTcwLDcgKzY5LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFs
dWUpOgogICAgICgiPGEgaHJlZj0jPkxJTksgVEVYVDwvYT4iLCAiTElOSyBURVhUIiksCiAgICAg
KCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwv
YT4iLCAiTElOSyBURVhUIiksCiBdKQotZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQo
c2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfbGlua190
ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48YSBocmVmPSM+bm90IHdhbnRlZDwvYT48
YnIvPnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtOTQsNyArOTMsNyBAQCBkZWYgdGVzdF9maW5k
X2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICgiPGEg
aHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9hPiIsICJMSU5LIiksCiAgICAgKCI8YSBocmVmPSMg
c3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIs
ICJMSU5LIiksCiBdKQotZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChz
ZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFs
X2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVw
IDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jPm5vdCB3YW50
ZWQ8L2E+PGJyLz57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTExMCw3ICsxMDksNyBAQCBkZWYg
dGVzdF9maW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2
YWx1ZSk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyx2YWx1ZSIsIFsoImNz
cyBzZWxlY3RvciIsICIjd29udEV4aXN0IildKQotZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9u
LCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIHVz
aW5nLCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxkaXY+PC9kaXY+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxs
PUZhbHNlKQpAQCAtMTI0LDcgKzEyMyw3IEBAIGRlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwg
dXNpbmcsIHZhbHVlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsg
dGV4dCIsICJsaW5rIHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFt
ZSIsICJhIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy8qW25hbWUo
KT0nYSddIildKQotZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1
ZSk6CitkZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFs
dWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxwPjxhIGhyZWY9IiMiIGlkPSJsaW5r
VGV4dCI+ZnVsbCBsaW5rIHRleHQ8L2E+PC9wPiIiIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb2N0eXBlPSJ4aHRtbCIpCiAgICAgZnJvbV9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3Nj
cmlwdCgiIiJyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigicCIpIiIiKQpAQCAtMTM5LDcg
KzEzOCw3IEBAIGRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUp
OgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZm91bmRfZWxlbWVudCwgZXhwZWN0
ZWQpCiAKIAotZGVmIHRlc3RfcGFyZW50X2h0bWxkb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0
X3BhcmVudF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIikKICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIi
InJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikiIiIpCiAgICAgZXhwZWN0ZWQg
PSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
IikKQEAgLTE1Myw3ICsxNTIsNyBAQCBkZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Np
b24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZm91bmRfZWxlbWVudCwgZXhw
ZWN0ZWQpCiAKIAotZGVmIHRlc3RfcGFyZW50X29mX2RvY3VtZW50X25vZGVfZXJyb3JzKHNlc3Np
b24pOgorZGVmIHRlc3RfcGFyZW50X29mX2RvY3VtZW50X25vZGVfZXJyb3JzKHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIpCiAgICAgZnJvbV9lbGVtZW50ID0g
c2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCIp
CiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxl
bWVudC91c2VyX3Byb21wdHMucHkKaW5kZXggY2E3YmM3NzM1ZDA4Li40NjdiZWMwOWExYmQgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmlu
ZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1l
bnQvdXNlcl9wcm9tcHRzLnB5CkBAIC04LDcgKzgsNiBAQCBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgKAogICAgIGFzc2VydF9zdWNjZXNzLAogICAgIGFzc2VydF9kaWFsb2dfaGFu
ZGxlZCwKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRl
ZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIGVsZW1lbnRfaWQsIHVzaW5nLCB2YWx1ZSk6CkBAIC0y
MCw3ICsxOSw3IEBAIGRlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIGVsZW1lbnRfaWQsIHVzaW5n
LCB2YWx1ZSk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCiAgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC00MSw3ICs0MCw3IEBAIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxp
bmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlh
bG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2Pjxw
PmJhcjwvcD48ZGl2PiIpCiAgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJkaXYiLCBhbGw9RmFsc2UpCkBAIC01Nyw3ICs1Niw3IEBAIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5
dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9j
bG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAg
IGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5
cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4i
KQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZh
bHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvY29uZnRlc3QucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9z
aGFkb3dfcm9vdC9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmI4ZmM5MzMxOWY0MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290
L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMTkgQEAKK2ltcG9ydCBweXRlc3QKKworQHB5dGVzdC5m
aXh0dXJlCitkZWYgZ2V0X3NoYWRvd19wYWdlKGlubGluZSk6CisgICAgZGVmIGdldF9zaGFkb3df
cGFnZShzaGFkb3dfY29udGVudCk6CisgICAgICAgIHJldHVybiBpbmxpbmUoIiIiCisgICAgICAg
ICAgICA8Y3VzdG9tLXNoYWRvdy1lbGVtZW50PjwvY3VzdG9tLXNoYWRvdy1lbGVtZW50PgorICAg
ICAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUo
J2N1c3RvbS1zaGFkb3ctZWxlbWVudCcsCisgICAgICAgICAgICAgICAgICAgIGNsYXNzIGV4dGVu
ZHMgSFRNTEVsZW1lbnQge3sKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkg
e3sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdHRhY2hTaGFkb3coe3ttb2RlOiAnb3Blbid9fSku
aW5uZXJIVE1MID0gYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgezB9
IH19CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfX0KKyAgICAgICAgICAgICAgICAgICAgfX0pOworICAgICAgICAgICAgPC9z
Y3JpcHQ+IiIiLmZvcm1hdChzaGFkb3dfY29udGVudCkpCisgICAgcmV0dXJuIGdldF9zaGFkb3df
cGFnZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRv
d19yb290L2ZpbmQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5m
NzBhNGI0NWFhZGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC9maW5kLnB5
CkBAIC0wLDAgKzEsMTQ0IEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gd2ViZHJpdmVyLnRyYW5z
cG9ydCBpbXBvcnQgUmVzcG9uc2UKKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKKworCitk
ZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBzaGFkb3dfaWQsIHVzaW5nLCB2YWx1ZSk6CisgICAg
cmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJQT1NUIiwgInNlc3Npb24v
e3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lkfS9lbGVtZW50cyIuZm9ybWF0KAorICAgICAg
ICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBzaGFkb3df
aWQ9c2hhZG93X2lkKSwKKyAgICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0p
CisKKworZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCwgaW5saW5l
KToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48YSBocmVmPSMgaWQ9bGlua1RleHQ+
ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3df
cm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisKKyAgICBwYXRoID0gIi9zZXNzaW9u
L3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRvd19pZH0vZWxlbWVudHMiLmZvcm1hdCgKKyAgICAg
ICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsIHNoYWRvd19pZD1zaGFkb3dfcm9vdC5p
ZCkKKyAgICB3aXRoIGh0dHAucG9zdChwYXRoLCBOb25lKSBhcyByZXNwb25zZToKKyAgICAgICAg
YXNzZXJ0X2Vycm9yKFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSksICJpbnZhbGlkIGFyZ3Vt
ZW50IikKKworCitkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9z
ZWRfd2luZG93KToKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgIm5vdFJl
YWwiLCAiY3NzIHNlbGVjdG9yIiwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCB3aW5kb3ciKQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX2ZyYW1lKToKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwg
Im5vdFJlYWwiLCAiY3NzIHNlbGVjdG9yIiwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCB3aW5kb3ciKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNp
bmciLCBbKCJhIiksIChUcnVlKSwgKE5vbmUpLCAoMSksIChbXSksICh7fSldKQorZGVmIHRlc3Rf
aW52YWxpZF91c2luZ19hcmd1bWVudChzZXNzaW9uLCB1c2luZyk6CisgICAgIyBTdGVwIDEgLSAy
CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sICJub3RSZWFsIiwgdXNpbmcs
ICJ2YWx1ZSIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBhcmd1bWVudCIp
CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFtOb25lLCBbXSwge31dKQor
ZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6CisgICAg
IyBTdGVwIDMgLSA0CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sICJub3RS
ZWFsIiwgImNzcyBzZWxlY3RvciIsIHZhbHVlKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
ImludmFsaWQgYXJndW1lbnQiKQorCisKK2RlZiB0ZXN0X2RldGFjaGVkX3NoYWRvd19yb290KHNl
c3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3Bh
Z2UoIjxkaXY+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+PC9kaXY+IikKKyAgICBjdXN0b21fZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxz
ZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisgICAgc2Vz
c2lvbi5yZWZyZXNoKCkKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCBz
aGFkb3dfcm9vdC5pZCwgImNzcyIsICJpbnB1dCIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNl
LCAiZGV0YWNoZWQgc2hhZG93IHJvb3QiKQorCisKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfZXF1
aXZhbGVuY2Uoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBzZXNzaW9uLnVybCA9IGdl
dF9zaGFkb3dfcGFnZSgiPGRpdj48aW5wdXQgaWQ9J2NoZWNrJyB0eXBlPSdjaGVja2JveCcvPjxp
bnB1dCBpZD0ndGV4dCcvPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jv
b3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVt
ZW50cyhzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyIsICJpbnB1dCIpCisgICAgYXNzZXJ0
X3N1Y2Nlc3MocmVzcG9uc2UpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyx2
YWx1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgWygiY3NzIHNlbGVjdG9yIiwgIiNsaW5r
VGV4dCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoImxpbmsgdGV4dCIsICJmdWxsIGxp
bmsgdGV4dCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0
IiwgImxpbmsgdGV4dCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwg
ImEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvL2EiKV0pCitkZWYg
dGVzdF9maW5kX2VsZW1lbnRzKHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVl
KToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgi
PGRpdj48YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKKyAg
ICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVu
dCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19y
b290CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19yb290Lmlk
LCB1c2luZywgdmFsdWUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKworQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2YWx1ZSIsIFsKKyAgICAoIjxhIGhyZWY9Iz5s
aW5rIHRleHQ8L2E+IiwgImxpbmsgdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPiZuYnNwO2xpbmsg
dGV4dCZuYnNwOzwvYT4iLCAibGluayB0ZXh0IiksCisgICAgKCI8YSBocmVmPSM+bGluazxicj50
ZXh0PC9hPiIsICJsaW5rXG50ZXh0IiksCisgICAgKCI8YSBocmVmPSM+bGluayZhbXA7dGV4dDwv
YT4iLCAibGluayZ0ZXh0IiksCisgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5L
IFRFWFQiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2Fz
ZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKK10pCitkZWYgdGVzdF9maW5kX2VsZW1l
bnRzX2xpbmtfdGV4dChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UsIGRvY3VtZW50LCB2YWx1ZSk6
CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxk
aXY+PGEgaHJlZj0jPm5vdCB3YW50ZWQ8L2E+PGJyLz57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVu
dCkpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKKyAg
ICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVu
dCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19y
b290CisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1l
bnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnYScpWzFdIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1lbnQsKSkKKworICAg
IHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImxpbmsg
dGV4dCIsIHZhbHVlKQorICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAg
YXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpCisgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0g
MQorCisgICAgZm91bmRfZWxlbWVudCA9IHZhbHVlWzBdCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVu
dChzZXNzaW9uLCBmb3VuZF9lbGVtZW50LCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImRvY3VtZW50LHZhbHVlIiwgWworICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGlu
ayB0ZXh0PC9hPiIsICJsaW5rIiksCisgICAgKCI8YSBocmVmPSM+Jm5ic3A7cGFydGlhbCBsaW5r
IHRleHQmbmJzcDs8L2E+IiwgImxpbmsiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbmsg
dGV4dDwvYT4iLCAiayB0IiksCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8
L2E+IiwgImtcbnQiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbmsmYW1wO3RleHQ8L2E+
IiwgImsmdCIpLAorICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9hPiIsICJMSU5L
IiksCisgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPnBh
cnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCitdKQorZGVmIHRlc3RfZmluZF9lbGVtZW50
c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UsIGRvY3VtZW50LCB2
YWx1ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3Bh
Z2UoIjxkaXY+PGEgaHJlZj0jPm5vdCB3YW50ZWQ8L2E+PGJyLz57MH08L2Rpdj4iLmZvcm1hdChk
b2N1bWVudCkpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxz
ZSkKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ct
ZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNo
YWRvd19yb290CisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4g
YXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnYScpWzFdIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1lbnQsKSkK
KworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwg
InBhcnRpYWwgbGluayB0ZXh0IiwgdmFsdWUpCisgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCkKKyAgICBhc3NlcnQg
bGVuKHZhbHVlKSA9PSAxCisKKyAgICBmb3VuZF9lbGVtZW50ID0gdmFsdWVbMF0KKyAgICBhc3Nl
cnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZvdW5kX2VsZW1lbnQsIGV4cGVjdGVkKQorCisKK0Bw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLCBbKCJjc3Mgc2VsZWN0b3IiLCAi
I3dvbnRFeGlzdCIpXSkKK2RlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19w
YWdlLCB1c2luZywgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0g
Z2V0X3NoYWRvd19wYWdlKCI8ZGl2PjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hh
ZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmlu
ZF9lbGVtZW50cyhzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgdXNpbmcsIHZhbHVlKQorICAgIGFz
c2VydCByZXNwb25zZS5ib2R5WyJ2YWx1ZSJdID09IFtdCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFk
b3dfcm9vdC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jNGI5MDNjODM2ZWYK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKQEAg
LTAsMCArMSwxMzEgQEAKKyMgTUVUQTogdGltZW91dD1sb25nCisKK2ltcG9ydCBweXRlc3QKKwor
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKKyAgICBhc3NlcnRfZXJyb3IsCisg
ICAgYXNzZXJ0X3NhbWVfZWxlbWVudCwKKyAgICBhc3NlcnRfc3VjY2VzcywKKyAgICBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQsCispCisKKworZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93
X2lkLCB1c2luZywgdmFsdWUpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAor
ICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRvd19pZH0v
ZWxlbWVudHMiLmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9u
X2lkLAorICAgICAgICAgICAgZWxlbWVudF9pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5n
IjogdXNpbmcsICJ2YWx1ZSI6IHZhbHVlfSkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgICAgICBzZXNzaW9u
LnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQorICAgICAgICBv
dXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50Iiwg
YWxsPUZhbHNlKQorICAgICAgICBzaGFkb3dfcm9vdCA9IG91dGVyX2VsZW1lbnQuc2hhZG93X3Jv
b3QKKyAgICAgICAgaW5uZXJfZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdwJykiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShvdXRlcl9lbGVtZW50
LCkpCisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlw
ZSkKKworICAgICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jv
b3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KQorICAg
ICAgICBhc3NlcnQgbGVuKHZhbHVlKSA9PSAxCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1y
ZXR2YWwpCisKKyAgICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2YWx1ZVswXSwg
aW5uZXJfZWxlbWVudCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgZ2V0X3NoYWRv
d19wYWdlKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3df
cGFnZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQorICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgICAg
ICBzaGFkb3dfcm9vdCA9IG91dGVyX2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgICAgICBjcmVh
dGVfZGlhbG9nKGRpYWxvZ190eXBlLCB0ZXh0PWRpYWxvZ190eXBlKQorCisgICAgICAgIHJlc3Bv
bnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyBzZWxlY3Rv
ciIsICJwIikKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAidW5leHBlY3RlZCBhbGVy
dCBvcGVuIikKKworICAgICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0
ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0ZWRfcmV0dmFsPXJldHZhbCkKKworICAgIHJldHVy
biBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24KKworCitAcHl0ZXN0LmZp
eHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKKyAgICAgICAg
c2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAg
ICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxl
bWVudCIsIGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNo
YWRvd19yb290CisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFs
b2dfdHlwZSkKKworICAgICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hh
ZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0IHNlc3Np
b24uYWxlcnQudGV4dCA9PSBkaWFsb2dfdHlwZQorICAgICAgICBzZXNzaW9uLmFsZXJ0LmRpc21p
c3MoKQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbgorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhh
dmlvciI6ICJhY2NlcHQifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUs
IHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgVHJ1ZSks
CisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3RfYWNjZXB0KGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCBy
ZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJl
aGF2aW9yIjogImFjY2VwdCBhbmQgbm90aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29u
ZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2FjY2VwdF9h
bmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9n
X3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7
InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRpc21pc3MifSkKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisg
ICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRl
c3RfZGlzbWlzcyhjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRp
YWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmls
aXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIGFuZCBub3RpZnkifSkK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAo
ImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0Iiwg
Tm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzc19hbmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisK
KworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjog
Imlnbm9yZSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSIsIFsiYWxl
cnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2RlZiB0ZXN0X2lnbm9yZShjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24sIGRpYWxvZ190eXBlKToKKyAgICBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpCisKKworQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxl
cnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25l
KSwKK10pCitkZWYgdGVzdF9kZWZhdWx0KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQvZm9yd2FyZC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZm9yd2FyZC9m
b3J3YXJkLnB5CmluZGV4IDRhMWUyMTU4MTUxOC4uOTdhOTM1YzhjZDgzIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQvZm9yd2Fy
ZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zv
cndhcmQvZm9yd2FyZC5weQpAQCAtMSw1ICsxLDcgQEAKK2ltcG9ydCBweXRlc3QKK2Zyb20gd2Vi
ZHJpdmVyIGltcG9ydCBlcnJvcgorCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiAKIAogZGVmIGZvcndhcmQoc2Vzc2lvbik6CkBAIC03LDcgKzksNyBAQCBk
ZWYgZm9yd2FyZChzZXNzaW9uKToKICAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9p
ZH0vZm9yd2FyZCIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3RfbnVsbF9y
ZXNwb25zZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj4iKQogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8cD4iKQogICAgIHNlc3Npb24uYmFjaygpCkBAIC0yNyw3ICsy
OSw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1l
KToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKIAogCi1kZWYgdGVzdF9ub19icm93c2lu
Z19oaXN0b3J5KHNlc3Npb24pOgorZGVmIHRlc3Rfbm9fYnJvd3NpbmdfaGlzdG9yeShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKIAogICAgIHNlc3Np
b24udXJsID0gdXJsCkBAIC00MCw3ICs0Miw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2hpc3Rv
cnkoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoImlkIikgPT0gImZvbyIK
IAogCi1kZWYgdGVzdF9kYXRhX3VybHMoc2Vzc2lvbik6CitkZWYgdGVzdF9kYXRhX3VybHMoc2Vz
c2lvbiwgaW5saW5lKToKICAgICB0ZXN0X3BhZ2VzID0gWwogICAgICAgICBpbmxpbmUoIjxwIGlk
PTE+IiksCiAgICAgICAgIGlubGluZSgiPHAgaWQ9Mj4iKSwKQEAgLTU3LDcgKzU5LDcgQEAgZGVm
IHRlc3RfZGF0YV91cmxzKHNlc3Npb24pOgogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSB0ZXN0
X3BhZ2VzWzFdCiAKIAotZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9uKToK
K2RlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICB1
cmxfYmVmb3JldW5sb2FkID0gaW5saW5lKCIiIgogICAgICAgPGlucHV0IHR5cGU9InRleHQiPgog
ICAgICAgPHNjcmlwdD4KQEAgLTEwNSw3ICsxMDcsNyBAQCBkZWYgdGVzdF9mcmFnbWVudHMoc2Vz
c2lvbiwgdXJsKToKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gdGVzdF9wYWdlc1syXQogCiAK
LWRlZiB0ZXN0X2hpc3RvcnlfcHVzaHN0YXRlKHNlc3Npb24sIHVybCk6CitkZWYgdGVzdF9oaXN0
b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHB1c2hzdGF0ZV9wYWdlID0gaW5s
aW5lKCIiIgogICAgICAgPHNjcmlwdD4KICAgICAgICAgZnVuY3Rpb24gcHVzaFN0YXRlKCkgewpA
QCAtMTMwLDMgKzEzMiw0NSBAQCBkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1
cmwpOgogCiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09ICJ7fSNwdXNoc3RhdGUiLmZvcm1hdChw
dXNoc3RhdGVfcGFnZSkKICAgICBhc3NlcnQgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJu
IGhpc3Rvcnkuc3RhdGU7IikgPT0geyJmb28iOiAiYmFyIn0KKworCitkZWYgdGVzdF9yZW1vdmVk
X2lmcmFtZShzZXNzaW9uLCB1cmwsIGlubGluZSk6CisgICAgcGFnZSA9IGlubGluZSgiPHA+Zm9v
IikKKworICAgIHNlc3Npb24udXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRt
bC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sIikKKyAgICBzZXNzaW9uLnVybCA9IHBhZ2UKKworICAg
IHNlc3Npb24uYmFjaygpCisKKyAgICBzdWJmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoIiNzdWIt
ZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoc3ViZnJhbWUpCisK
KyAgICByZXNwb25zZSA9IGZvcndhcmQoc2Vzc2lvbikKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKKworICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSBwYWdlCisKKworIyBDYXBhYmlsaXR5
IG5lZWRlZCBhcyBsb25nIGFzIG5vIHZhbGlkIGNlcnRpZmljYXRlIGlzIGF2YWlsYWJsZToKKyMg
ICBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjg4NDcK
K0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJhY2NlcHRJbnNlY3VyZUNlcnRzIjogVHJ1ZX0p
CitkZWYgdGVzdF9jcm9zc19vcmlnaW4oc2Vzc2lvbiwgdXJsKToKKyAgICBiYXNlX3BhdGggPSAo
Ii93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1YmZyYW1lLmh0bWwiICsKKyAgICAgICAg
ICAgICAgICAgIj9waXBlPWhlYWRlcihDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSxzYW1lLW9y
aWdpbiIpCisgICAgZmlyc3RfcGFnZSA9IHVybChiYXNlX3BhdGgsIHByb3RvY29sPSJodHRwcyIp
CisgICAgc2Vjb25kX3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiLCBkb21h
aW49ImFsdCIpCisKKyAgICBzZXNzaW9uLnVybCA9IGZpcnN0X3BhZ2UKKyAgICBzZXNzaW9uLnVy
bCA9IHNlY29uZF9wYWdlCisgICAgc2Vzc2lvbi5iYWNrKCkKKworICAgIGVsZW0gPSBzZXNzaW9u
LmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBmb3J3YXJk
KHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vz
c2lvbi51cmwgPT0gc2Vjb25kX3BhZ2UKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhlcnJvci5T
dGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgorICAgICAgICBlbGVtLmNsaWNrKCkKKyAg
ICBlbGVtID0gc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZm9yd2FyZC91
c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZvcndhcmQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGU1ZWVhOGY0NDU3MS4uM2VlYWY2ZTcx
Y2RiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZvcndhcmQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZm9yd2FyZC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2
IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmb3J3YXJkKHNlc3Np
b24pOgpAQCAtMTIsNyArMTEsNyBAQCBkZWYgZm9yd2FyZChzZXNzaW9uKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBwYWdlcyhzZXNzaW9uKToKK2RlZiBwYWdlcyhzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHBhZ2VzID0gWwogICAgICAgICBpbmxpbmUoIjxwIGlkPTE+IiksCiAgICAgICAgIGlu
bGluZSgiPHAgaWQ9Mj4iKSwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVtZW50L2dldC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVtZW50L2dldC5w
eQppbmRleCA3ZjgyMWYzYTQwZDUuLjEwODVhZDgyZjE4ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWN0aXZlX2VsZW1lbnQvZ2V0
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2FjdGl2ZV9lbGVtZW50L2dldC5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9pc19hY3RpdmVfZWxlbWVudCwg
YXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQog
CiAKIGRlZiByZWFkX2dsb2JhbChzZXNzaW9uLCBuYW1lKToKQEAgLTIxLDcgKzIwLDcgQEAgZGVm
IHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9zdWNj
ZXNzX2RvY3VtZW50KHNlc3Npb24pOgorZGVmIHRlc3Rfc3VjY2Vzc19kb2N1bWVudChzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keT4K
ICAgICAgICAgICAgIDxoMT5IZWFkaW5nPC9oMT4KQEAgLTM2LDcgKzM1LDcgQEAgZGVmIHRlc3Rf
c3VjY2Vzc19kb2N1bWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQo
c2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9zdWNlc3NfaW5wdXQoc2Vzc2lvbik6Citk
ZWYgdGVzdF9zdWNlc3NfaW5wdXQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiIKICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICA8aDE+SGVhZGluZzwvaDE+
CkBAIC01MCw3ICs0OSw3IEBAIGRlZiB0ZXN0X3N1Y2Vzc19pbnB1dChzZXNzaW9uKToKICAgICBh
c3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9z
dWNlc3NfaW5wdXRfbm9uX2ludGVyYWN0YWJsZShzZXNzaW9uKToKK2RlZiB0ZXN0X3N1Y2Vzc19p
bnB1dF9ub25faW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCiAgICAgICAgIDxib2R5PgogICAgICAgICAgICAgPGgxPkhlYWRpbmc8L2gx
PgpAQCAtNjQsNyArNjMsNyBAQCBkZWYgdGVzdF9zdWNlc3NfaW5wdXRfbm9uX2ludGVyYWN0YWJs
ZShzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbiwgZWxlbWVu
dCkKIAogCi1kZWYgdGVzdF9zdWNjZXNzX2V4cGxpY2l0X2ZvY3VzKHNlc3Npb24pOgorZGVmIHRl
c3Rfc3VjY2Vzc19leHBsaWNpdF9mb2N1cyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keT4KICAgICAgICAgICAgIDxoMT5IZWFkaW5n
PC9oMT4KQEAgLTEwNSw3ICsxMDQsNyBAQCBkZWYgdGVzdF9zdWNjZXNzX2V4cGxpY2l0X2ZvY3Vz
KHNlc3Npb24pOgogICAgIGFzc2VydF9pc19hY3RpdmVfZWxlbWVudChzZXNzaW9uLCBlbGVtZW50
KQogCiAKLWRlZiB0ZXN0X3N1Y2Nlc3NfaWZyYW1lX2NvbnRlbnQoc2Vzc2lvbik6CitkZWYgdGVz
dF9zdWNjZXNzX2lmcmFtZV9jb250ZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxib2R5PjwvYm9keT4iKQogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQo
IiIiCiAgICAgICAgIGxldCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUn
KTsKQEAgLTEyMCw3ICsxMTksNyBAQCBkZWYgdGVzdF9zdWNjZXNzX2lmcmFtZV9jb250ZW50KHNl
c3Npb24pOgogICAgIGFzc2VydF9pc19hY3RpdmVfZWxlbWVudChzZXNzaW9uLCBlbGVtZW50KQog
CiAKLWRlZiB0ZXN0X21pc3NpbmdfZG9jdW1lbnRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0
X21pc3NpbmdfZG9jdW1lbnRfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8Ym9keT48L2JvZHk+IikKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCIiIgogICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5yZW1vdmUpIHsKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVt
ZW50L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQppbmRleCA3ZmE3YmUx
ZGRlOTkuLjFmZjc3Njk3YjcwNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWN0aXZlX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2
ZV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAgZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQsCiAgICAg
YXNzZXJ0X3N1Y2Nlc3MKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKIGRlZiBnZXRfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbik6CkBAIC0xNyw3ICsxNiw3IEBA
IGRlZiBnZXRfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAKQEAgLTM0
LDcgKzMzLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikKIApAQCAtNDksNyArNDgsNyBAQCBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9j
bG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
ZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dCB0eXBlPXRleHQ+IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfYWxlcnRfdGV4dC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hbGVydF90ZXh0L2dldC5weQppbmRleCBi
NjQ2Nzg2NTNlMDguLjdlZTdmZjE4MDhmOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWxlcnRfdGV4dC9nZXQucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWxlcnRfdGV4dC9n
ZXQucHkKQEAgLTEsOSArMSw2IEBACi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCi0KIGZyb20g
d2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgogCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQu
c3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTI3LDM2ICsyNCwzNiBAQCBkZWYgdGVzdF9ub191c2Vy
X3Byb21wdChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGFs
ZXJ0IikKIAogCi1kZWYgdGVzdF9nZXRfYWxlcnRfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2dl
dF9hbGVydF90ZXh0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxzY3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwvc2NyaXB0PiIpCiAgICAgcmVzcG9uc2Ug
PSBnZXRfYWxlcnRfdGV4dChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQog
ICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLmJvZHksIGRpY3QpCiAgICAgYXNzZXJ0ICJ2
YWx1ZSIgaW4gcmVzcG9uc2UuYm9keQogICAgIGFsZXJ0X3RleHQgPSByZXNwb25zZS5ib2R5WyJ2
YWx1ZSJdCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWxlcnRfdGV4dCwgdGV4dF90eXBlKQorICAg
IGFzc2VydCBpc2luc3RhbmNlKGFsZXJ0X3RleHQsIHN0cikKICAgICBhc3NlcnQgYWxlcnRfdGV4
dCA9PSAiSGVsbG8iCiAKIAotZGVmIHRlc3RfZ2V0X2NvbmZpcm1fdGV4dChzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2dldF9jb25maXJtX3RleHQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuY29uZmlybSgnSGVsbG8nKTs8L3NjcmlwdD4iKQog
ICAgIHJlc3BvbnNlID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2Vz
cyhyZXNwb25zZSkKICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBkaWN0KQog
ICAgIGFzc2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBjb25maXJtX3RleHQgPSBy
ZXNwb25zZS5ib2R5WyJ2YWx1ZSJdCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29uZmlybV90ZXh0
LCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29uZmlybV90ZXh0LCBzdHIpCiAg
ICAgYXNzZXJ0IGNvbmZpcm1fdGV4dCA9PSAiSGVsbG8iCiAKIAotZGVmIHRlc3RfZ2V0X3Byb21w
dF90ZXh0KHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X3Byb21wdF90ZXh0KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LnByb21wdCgnRW50
ZXIgWW91ciBOYW1lOiAnLCAnRmVkZXJlcicpOzwvc2NyaXB0PiIpCiAgICAgcmVzcG9uc2UgPSBn
ZXRfYWxlcnRfdGV4dChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogICAg
IGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLmJvZHksIGRpY3QpCiAgICAgYXNzZXJ0ICJ2YWx1
ZSIgaW4gcmVzcG9uc2UuYm9keQogICAgIHByb21wdF90ZXh0ID0gcmVzcG9uc2UuYm9keVsidmFs
dWUiXQotICAgIGFzc2VydCBpc2luc3RhbmNlKHByb21wdF90ZXh0LCB0ZXh0X3R5cGUpCisgICAg
YXNzZXJ0IGlzaW5zdGFuY2UocHJvbXB0X3RleHQsIHN0cikKICAgICBhc3NlcnQgcHJvbXB0X3Rl
eHQgPT0gIkVudGVyIFlvdXIgTmFtZTogIgogCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX2xhYmVsL19faW5pdF9f
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29t
cHV0ZWRfbGFiZWwvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX2xhYmVsL2dldC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX2xhYmVsL2dl
dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM5MDRjNmNlNDFm
NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX2xhYmVsL2dldC5weQpAQCAtMCwwICsxLDM2IEBACitpbXBv
cnQgcHl0ZXN0CisKK2Zyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2Vw
dGlvbgorCitmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBh
c3NlcnRfc3VjY2VzcworZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCisK
KworZGVmIGdldF9jb21wdXRlZF9sYWJlbChzZXNzaW9uLCBlbGVtZW50KToKKyAgICByZXR1cm4g
c2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9u
X2lkfS9lbGVtZW50L3tlbGVtZW50X2lkfS9jb21wdXRlZGxhYmVsIi5mb3JtYXQoCisgICAgICAg
ICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRf
aWQ9ZWxlbWVudCkpCisKKworZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBj
bG9zZWRfd2luZG93KToKKyAgICByZXNwb25zZSA9IGdldF9jb21wdXRlZF9sYWJlbChzZXNzaW9u
KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYg
dGVzdF9ub191c2VyX3Byb21wdChzZXNzaW9uKToKKyAgICByZXNwb25zZSA9IGdldF9jb21wdXRl
ZF9sYWJlbChzZXNzaW9uKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggYWxl
cnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaHRtbCx0YWcsbGFiZWwiLCBbCisg
ICAgKCI8YnV0dG9uPm9rPC9idXR0b24+IiwgImJ1dHRvbiIsICJvayIpLAorICAgICgiPGJ1dHRv
biBhcmlhLWxhYmVsbGVkYnk9XCJvbmUgdHdvXCI+PC9idXR0b24+PGRpdiBpZD1vbmU+b2s8L2Rp
dj48ZGl2IGlkPXR3bz5nbzwvZGl2PiIsICJidXR0b24iLCAib2sgZ28iKSwKKyAgICAoIjxidXR0
b24gYXJpYS1sYWJlbD1mb28+YmFyPC9idXR0b24+IiwgImJ1dHRvbiIsICJmb28iKSwKKyAgICAo
IjxsYWJlbD48aW5wdXQ+IGZvbzwvbGFiZWw+IiwgImlucHV0IiwgImZvbyIpLAorICAgICgiPGxh
YmVsIGZvcj1iPmZvbzxsYWJlbD48aW5wdXQgaWQ9Yj4iLCAiaW5wdXQiLCAiZm9vIildKQorZGVm
IHRlc3RfZ2V0X2NvbXB1dGVkX2xhYmVsKHNlc3Npb24sIGh0bWwsIHRhZywgbGFiZWwpOgorICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCJ7MH0iLmZvcm1hdCh0YWcpKQorICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKHRhZywgYWxsPUZhbHNlKQorICAgIHJlc3VsdCA9IGdldF9jb21wdXRl
ZF9sYWJlbChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwg
bGFiZWwpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9jb21wdXRlZF9yb2xlL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9fX2luaXRfXy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
Y29tcHV0ZWRfcm9sZS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9jb21wdXRlZF9yb2xlL2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjEwZmQ2MjhmMTU2YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX3JvbGUv
Z2V0LnB5CkBAIC0wLDAgKzEsMzQgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIu
ZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCisKK2Zyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCitmcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKKworCitkZWYgZ2V0X2NvbXB1dGVkX3JvbGUoc2Vz
c2lvbiwgZWxlbWVudCk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAg
ICAgICJHRVQiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vY29t
cHV0ZWRyb2xlIi5mb3JtYXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lv
bl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudCkpCisKKworZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICByZXNwb25zZSA9
IGdldF9jb21wdXRlZF9yb2xlKHNlc3Npb24sICJpZCIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCB3aW5kb3ciKQorCisKK2RlZiB0ZXN0X25vX3VzZXJfcHJvbXB0KHNlc3Np
b24pOgorICAgIHJlc3BvbnNlID0gZ2V0X2NvbXB1dGVkX3JvbGUoc2Vzc2lvbiwgImlkIikKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGFsZXJ0IikKKworCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoImh0bWwsdGFnLGV4cGVjdGVkIiwgWworICAgICgiPGxpIHJvbGU9bWVu
dWl0ZW0+Zm9vIiwgImxpIiwgIm1lbnUiKSwKKyAgICAoIjxpbnB1dCByb2xlPXNlYXJjaGJveD4i
LCAiaW5wdXQiLCAic2VhcmNoYm94IiksCisgICAgKCI8aW1nIHJvbGU9cHJlc2VudGF0aW9uPiIs
ICJpbWciLCAicHJlc2VudGF0aW9uIildKQorZGVmIHRlc3RfY29tcHV0ZWRfcm9sZXMoc2Vzc2lv
biwgaHRtbCwgdGFnLCBleHBlY3RlZCk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaHRtbCkK
KyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWcsIGFsbD1GYWxzZSkKKyAgICByZXN1
bHQgPSBnZXRfY29tcHV0ZWRfcm9sZShzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9z
dWNjZXNzKHJlc3VsdCwgZXhwZWN0ZWQpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC9nZXQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC9nZXQu
cHkKaW5kZXggMDM4M2E4YWJhOWU5Li4xY2ExM2ExYTZkNWUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2dldC5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9j
dXJyZW50X3VybC9nZXQucHkKQEAgLTEsMTEgKzEsMTIgQEAKLWZyb20gc2l4IGltcG9ydCB0ZXh0
X3R5cGUKK2ltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0IGltcG9ydCBwbGF0Zm9y
bV9uYW1lCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAK
LWRvYyA9IGlubGluZSgiPHA+ZnJhbWUiKQotYWxlcnRfZG9jID0gaW5saW5lKCI8c2NyaXB0Pndp
bmRvdy5hbGVydCgpPC9zY3JpcHQ+IikKKworQHB5dGVzdC5maXh0dXJlCitkZWYgZG9jKGlubGlu
ZSk6CisgICAgcmV0dXJuIGlubGluZSgiPHA+ZnJhbWUiKQogCiAKIGRlZiBnZXRfY3VycmVudF91
cmwoc2Vzc2lvbik6CkBAIC0xOCwxNCArMTksMTQgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQo
c2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX2ZyYW1lLCBkb2MpOgogICAgIHNlc3Npb24udXJsID0gZG9jCiAKICAgICBy
ZXNwb25zZSA9IGdldF9jdXJyZW50X3VybChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlLCBkb2MpCiAKIAotZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX21hdGNoZXNfbG9jYXRp
b24oc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfY3VycmVudF91cmxfbWF0Y2hlc19sb2NhdGlvbihz
ZXNzaW9uLCBkb2MpOgogICAgIHNlc3Npb24udXJsID0gZG9jCiAKICAgICByZXNwb25zZSA9IGdl
dF9jdXJyZW50X3VybChzZXNzaW9uKQpAQCAtMzcsNyArMzgsNyBAQCBkZWYgdGVzdF9nZXRfY3Vy
cmVudF91cmxfcGF5bG9hZChzZXNzaW9uKToKIAogICAgIHJlc3BvbnNlID0gZ2V0X2N1cnJlbnRf
dXJsKHNlc3Npb24pCiAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNl
KHZhbHVlLCBzdHIpCiAKIAogZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX3NwZWNpYWxfcGFnZXMo
c2Vzc2lvbik6CkBAIC03Niw3ICs3Nyw3IEBAIGRlZiB0ZXN0X3NldF9tYWxmb3JtZWRfdXJsKHNl
c3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQog
CiAKLWRlZiB0ZXN0X2dldF9jdXJyZW50X3VybF9hZnRlcl9tb2RpZmllZF9sb2NhdGlvbihzZXNz
aW9uKToKK2RlZiB0ZXN0X2dldF9jdXJyZW50X3VybF9hZnRlcl9tb2RpZmllZF9sb2NhdGlvbihz
ZXNzaW9uLCBkb2MpOgogICAgIHNlc3Npb24udXJsID0gZG9jCiAKICAgICByZXNwb25zZSA9IGdl
dF9jdXJyZW50X3VybChzZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvaWZyYW1lLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvaWZy
YW1lLnB5CmluZGV4IDk0NGU2MWI1ODNmZC4uODBhOTYwY2U4YTE1IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC9p
ZnJhbWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfY3VycmVudF91cmwvaWZyYW1lLnB5CkBAIC0xLDcgKzEsNiBAQAogaW1wb3J0IHB5dGVz
dAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAKIAogIiIiCkBA
IC0xNSw5ICsxNCwyMCBAQCBhbHNvIGVuZm9yY2UgcHJvY2VzcyBpc29sYXRpb24gYmFzZWQgb24g
c2l0ZSBvcmlnaW4uCiBUaGlzIGlzIGtub3duIHRvIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcyBm
b3IgV2ViRHJpdmVyIGltcGxlbWVudGF0aW9ucy4KICIiIgogCi1mcmFtZV9kb2MgPSBpbmxpbmUo
IjxwPmZyYW1lIikKLW9uZV9mcmFtZV9kb2MgPSBpbmxpbmUoIjxpZnJhbWUgc3JjPSclcyc+PC9p
ZnJhbWU+IiAlIGZyYW1lX2RvYykKLW5lc3RlZF9mcmFtZXNfZG9jID0gaW5saW5lKCI8aWZyYW1l
IHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBvbmVfZnJhbWVfZG9jKQorCitAcHl0ZXN0LmZpeHR1cmUK
K2RlZiBmcmFtZV9kb2MoaW5saW5lKToKKyAgICByZXR1cm4gaW5saW5lKCI8cD5mcmFtZSIpCisK
KworQHB5dGVzdC5maXh0dXJlCitkZWYgb25lX2ZyYW1lX2RvYyhpbmxpbmUsIGZyYW1lX2RvYyk6
CisgICAgcmV0dXJuIGlubGluZSgiPGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgZnJhbWVf
ZG9jKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG5lc3RlZF9mcmFtZXNfZG9jKGlubGluZSwg
b25lX2ZyYW1lX2RvYyk6CisgICAgcmV0dXJuIGlubGluZSgiPGlmcmFtZSBzcmM9JyVzJz48L2lm
cmFtZT4iICUgb25lX2ZyYW1lX2RvYykKIAogCiBkZWYgZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24p
OgpAQCAtMjUsNyArMzUsNyBAQCBkZWYgZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pOgogICAgICAg
ICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L3VybCIuZm9ybWF0KCoqdmFycyhzZXNzaW9u
KSkpCiAKIAotZGVmIHRlc3RfaWZyYW1lKHNlc3Npb24pOgorZGVmIHRlc3RfaWZyYW1lKHNlc3Np
b24sIG9uZV9mcmFtZV9kb2MpOgogICAgIHRvcF9sZXZlbF9kb2MgPSBvbmVfZnJhbWVfZG9jCiAg
ICAgc2Vzc2lvbi51cmwgPSB0b3BfbGV2ZWxfZG9jCiAKQEAgLTM3LDcgKzQ3LDcgQEAgZGVmIHRl
c3RfaWZyYW1lKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCB0b3BfbGV2
ZWxfZG9jKQogCiAKLWRlZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vzc2lvbik6CitkZWYgdGVzdF9u
ZXN0ZWRfaWZyYW1lKHNlc3Npb24sIG5lc3RlZF9mcmFtZXNfZG9jKToKICAgICBzZXNzaW9uLnVy
bCA9IG5lc3RlZF9mcmFtZXNfZG9jCiAgICAgdG9wX2xldmVsX2RvYyA9IHNlc3Npb24udXJsCiAK
QEAgLTUzLDcgKzYzLDcgQEAgZGVmIHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uKToKIAogCiBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRvbWFpbiIsIFsiIiwgImFsdCJdLCBpZHM9WyJzYW1l
X29yaWdpbiIsICJjcm9zc19vcmlnaW4iXSkKLWRlZiB0ZXN0X29yaWdpbihzZXNzaW9uLCBkb21h
aW4sIHVybCk6CitkZWYgdGVzdF9vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGRvbWFp
bik6CiAgICAgdG9wX2xldmVsX2RvYyA9IGlubGluZShpZnJhbWUoIjxwPmZyYW1lIiwgZG9tYWlu
PWRvbWFpbikpCiAKICAgICBzZXNzaW9uLnVybCA9IHRvcF9sZXZlbF9kb2MKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRf
dXJsL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL3VzZXJfcHJvbXB0cy5weQppbmRleCBmMGU5NWQxMmYx
NGUuLmQ2NTdjMTg4MjQxZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJs
L3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0
ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGdldF9jdXJyZW50X3VybChzZXNzaW9uKToKQEAgLTExLDcgKzEwLDcg
QEAgZGVmIGdldF9jdXJyZW50X3VybChzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAg
ICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPTE+IikKICAgICAgICAgZXhwZWN0ZWRf
dXJsID0gc2Vzc2lvbi51cmwKQEAgLTI3LDcgKzI2LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBA
cHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPTE+IikKIApAQCAtNDIs
NyArNDEsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxwIGlkPTE+IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvZ2V0LnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRy
aWJ1dGUvZ2V0LnB5CmluZGV4IGIxOGQ5Y2E4YjIyYS4uNTI4Y2JkMjlmMDIwIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50
X2F0dHJpYnV0ZS9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvZ2V0LnB5CkBAIC0xLDcgKzEsNiBAQAog
aW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LCBh
dHRyKToKQEAgLTEzLDggKzEyLDE0IEBAIGRlZiBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lv
biwgZWxlbWVudCwgYXR0cik6CiAKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQo
c2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0g
Y2xvc2VkX3dpbmRvdworICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Np
b24sIGVsZW1lbnQuaWQsICJpZCIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3Vj
aCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24s
ICJmb28iLCAiaWQiKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93
IikKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNw
b25zZSA9IGdldF9lbGVtZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaWQiKQor
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAogZGVmIHRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgpAQCAtMjgsNyAr
MzMsNyBAQCBkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9uKToKICAgICBhc3NlcnRf
ZXJyb3IocmVzdWx0LCAibm8gc3VjaCBlbGVtZW50IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X3N0
YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVz
aCgpCkBAIC0zNiw3ICs0MSw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1k
ZWYgdGVzdF9ub3JtYWwoc2Vzc2lvbik6CitkZWYgdGVzdF9ub3JtYWwoc2Vzc2lvbiwgaW5saW5l
KToKICAgICAjIDEzLjIgU3RlcCA1CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0
eXBlPWNoZWNrYm94PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQpAQCAtNzMsNyArNzgsNyBAQCBkZWYgdGVzdF9ub3JtYWwoc2Vzc2lvbik6CiAg
ICAgKCJ0cmFjayIsIFsiZGVmYXVsdCJdKSwKICAgICAoInZpZGVvIiwgWyJhdXRvcGxheSIsICJj
b250cm9scyIsICJsb29wIiwgIm11dGVkIl0pCiBdKQotZGVmIHRlc3RfYm9vbGVhbl9hdHRyaWJ1
dGUoc2Vzc2lvbiwgdGFnLCBhdHRycyk6CitkZWYgdGVzdF9ib29sZWFuX2F0dHJpYnV0ZShzZXNz
aW9uLCBpbmxpbmUsIHRhZywgYXR0cnMpOgogICAgIGZvciBhdHRyIGluIGF0dHJzOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHswfSB7MX0+Ii5mb3JtYXQodGFnLCBhdHRyKSkKICAg
ICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBhbGw9RmFsc2UpCkBAIC04MSw3
ICs4Niw3IEBAIGRlZiB0ZXN0X2Jvb2xlYW5fYXR0cmlidXRlKHNlc3Npb24sIHRhZywgYXR0cnMp
OgogICAgICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJ0cnVlIikKIAogCi1kZWYgdGVzdF9n
bG9iYWxfYm9vbGVhbl9hdHRyaWJ1dGVzKHNlc3Npb24pOgorZGVmIHRlc3RfZ2xvYmFsX2Jvb2xl
YW5fYXR0cmlidXRlcyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8cCBoaWRkZW4+Zm9vIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFs
bD1GYWxzZSkKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgZWxl
bWVudC5pZCwgImhpZGRlbiIpCkBAIC0xMDMsMyArMTA4LDE0IEBAIGRlZiB0ZXN0X2dsb2JhbF9i
b29sZWFuX2F0dHJpYnV0ZXMoc2Vzc2lvbik6CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoInAiLCBhbGw9RmFsc2UpCiAgICAgcmVzdWx0ID0gZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNl
c3Npb24sIGVsZW1lbnQuaWQsICJpdGVtc2NvcGUiKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3Vs
dCwgTm9uZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImlzX3JlbGF0aXZlIiwgW1Ry
dWUsIEZhbHNlXSwgaWRzPVsicmVsYXRpdmUiLCAiYWJzb2x1dGUiXSkKK2RlZiB0ZXN0X2FuY2hv
cl9ocmVmKHNlc3Npb24sIGlubGluZSwgdXJsLCBpc19yZWxhdGl2ZSk6CisgICAgaHJlZiA9ICIv
Zm9vLmh0bWwiIGlmIGlzX3JlbGF0aXZlIGVsc2UgdXJsKCIvZm9vLmh0bWwiKQorCisgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9J3t9Jz5mb288L2E+Ii5mb3JtYXQoaHJlZikpCisg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImEiLCBhbGw9RmFsc2UpCisKKyAgICByZXNw
b25zZSA9IGdldF9lbGVtZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaHJlZiIp
CisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIGhyZWYpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0
ZS91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0ZS91c2VyX3Byb21wdHMucHkKaW5kZXggNWVlNzky
OWFmZGY4Li4wMDljYjFlNWZhMWUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL3VzZXJfcHJvbXB0cy5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9l
bGVtZW50X2F0dHJpYnV0ZS91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQg
cHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3Is
IGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vz
c2lvbiwgZWxlbWVudCwgYXR0cik6CkBAIC0xNSw3ICsxNCw3IEBAIGRlZiBnZXRfZWxlbWVudF9h
dHRyaWJ1dGUoc2Vzc2lvbiwgZWxlbWVudCwgYXR0cik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtMzEsNyArMzAs
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBA
cHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAg
ICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2df
dHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAg
ICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
ZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5CmluZGV4IDRlODcwNGQ1
MGFmOS4uMzY5Y2E5YzY5OWY4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2Nzc192YWx1ZS9nZXQucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3Nf
dmFsdWUvZ2V0LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lv
biwgZWxlbWVudF9pZCwgcHJvcCk6CkBAIC0xNCw5ICsxMywxNiBAQCBkZWYgZ2V0X2VsZW1lbnRf
Y3NzX3ZhbHVlKHNlc3Npb24sIGVsZW1lbnRfaWQsIHByb3ApOgogCiAKIGRlZiB0ZXN0X25vX3Rv
cF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFs
X2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVt
ZW50X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiZGlzcGxheSIpCisgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2Vs
ZW1lbnRfY3NzX3ZhbHVlKHNlc3Npb24sICJmb28iLCAiYmFyIikKICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUg
PSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X2Nzc192YWx1ZShz
ZXNzaW9uLCBlbGVtZW50LmlkLCAiZGlzcGxheSIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNl
LCAibm8gc3VjaCBlbGVtZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9jc3NfdmFs
dWUoc2Vzc2lvbiwgImZvbyIsICJiYXIiKQpAQCAtMjgsNyArMzQsNyBAQCBkZWYgdGVzdF9lbGVt
ZW50X25vdF9mb3VuZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAibm8gc3Vj
aCBlbGVtZW50IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgorZGVmIHRl
c3RfZWxlbWVudF9zdGFsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTM3LDcgKzQzLDcgQEAgZGVmIHRl
c3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAic3Rh
bGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAKLWRlZiB0ZXN0X3Byb3BlcnR5X25hbWVfdmFsdWUo
c2Vzc2lvbik6CitkZWYgdGVzdF9wcm9wZXJ0eV9uYW1lX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9j
ayI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKIApAQCAtNDUsNyArNTEsNyBAQCBkZWYgdGVzdF9wcm9wZXJ0eV9uYW1lX3ZhbHVlKHNlc3Np
b24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgImJsb2NrIikKIAogCi1kZWYgdGVzdF9w
cm9wZXJ0eV9uYW1lX25vdF9leGlzdGVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3Byb3BlcnR5X25h
bWVfbm90X2V4aXN0ZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFs
bD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFs
dWUvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDUyOWI2YWU5MTgzZC4uYjFmOWEzZmIwYTAwIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9l
bGVtZW50X2Nzc192YWx1ZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvdXNlcl9wcm9t
cHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2Rp
YWxvZ19oYW5kbGVkCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlKHNlc3Npb24sIGVsZW1lbnRfaWQsIHByb3ApOgpA
QCAtMTgsNyArMTcsNyBAQCBkZWYgZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlKHNlc3Npb24sIGVsZW1l
bnRfaWQsIHByb3ApOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiI8aW5wdXQgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4iIiIpCiAgICAgICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTM0LDcgKzMz
LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9jayI+IiIiKQogICAgICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC01MCw3ICs0OSw3
IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiI8aW5wdXQgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4iIiIpCiAgICAgICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVy
dHkvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9wcm9wZXJ0eS9nZXQucHkKaW5kZXggNWMwMjQ3ZWRiNzAyLi4xMGY3YTA4YWU3
M2UgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5CkBAIC0x
LDcgKzEsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24s
IGVsZW1lbnRfaWQsIHByb3ApOgpAQCAtMTMsOSArMTIsMTYgQEAgZGVmIGdldF9lbGVtZW50X3By
b3BlcnR5KHNlc3Npb24sIGVsZW1lbnRfaWQsIHByb3ApOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hh
bmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50
X3Byb3BlcnR5KHNlc3Npb24sIGVsZW1lbnQuaWQsICJ2YWx1ZSIpCisgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRf
cHJvcGVydHkoc2Vzc2lvbiwgImZvbyIsICJpZCIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNl
LCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2lu
YWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBl
bGVtZW50LmlkLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
ZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9z
ZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwg
ImZvbyIsICJpZCIpCkBAIC0yNyw3ICszMyw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfbm90X2ZvdW5k
KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIp
CiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRf
c3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IGlkPWZvb2Jhcj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFs
bD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtMzYsNyArNDIsNyBAQCBkZWYgdGVz
dF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInN0
YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9wcm9wZXJ0eV9ub25fZXhpc3Rl
bnQoc2Vzc2lvbik6CitkZWYgdGVzdF9wcm9wZXJ0eV9ub25fZXhpc3RlbnQoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC00NSw3ICs1MSw3IEBA
IGRlZiB0ZXN0X3Byb3BlcnR5X25vbl9leGlzdGVudChzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vz
c2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5mb28iLCBhcmdzPShlbGVt
ZW50LCkpIGlzIE5vbmUKIAogCi1kZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uKToK
K2RlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dCB2YWx1ZT1mb29iYXI+IikKICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTUzLDcgKzU5LDcgQEAgZGVm
IHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6Citk
ZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dCB2YWx1ZT1mb28+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgiIiJh
cmd1bWVudHNbMF0udmFsdWUgPSAiYmFyIjsiIiIsIGFyZ3M9KGVsZW1lbnQsKSkKQEAgLTcwLDcg
Kzc2LDcgQEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToKICAgICAoIm51bGwiLCBO
b25lKSwKICAgICAoInVuZGVmaW5lZCIsIE5vbmUpLAogXSkKLWRlZiB0ZXN0X3ByaW1pdGl2ZXMo
c2Vzc2lvbiwganNfcHJpbWl0aXZlLCBweV9wcmltaXRpdmUpOgorZGVmIHRlc3RfcHJpbWl0aXZl
cyhzZXNzaW9uLCBpbmxpbmUsIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGlucHV0PgogCkBAIC05Myw3ICs5OSw3IEBA
IGRlZiB0ZXN0X3ByaW1pdGl2ZXMoc2Vzc2lvbiwganNfcHJpbWl0aXZlLCBweV9wcmltaXRpdmUp
OgogICAgICgibnVsbCIsIE5vbmUpLAogICAgICgidW5kZWZpbmVkIiwgTm9uZSksCiBdKQotZGVm
IHRlc3RfcHJpbWl0aXZlc19zZXRfYnlfZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwganNfcHJpbWl0
aXZlLCBweV9wcmltaXRpdmUpOgorZGVmIHRlc3RfcHJpbWl0aXZlc19zZXRfYnlfZXhlY3V0ZV9z
Y3JpcHQoc2Vzc2lvbiwgaW5saW5lLCBqc19wcmltaXRpdmUsIHB5X3ByaW1pdGl2ZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJh
cmd1bWVudHNbMF0uZm9vYmFyID0ge30iLmZvcm1hdChqc19wcmltaXRpdmUpLCBhcmdzPShlbGVt
ZW50LCkpCkBAIC0xMDIsNyArMTA4LDcgQEAgZGVmIHRlc3RfcHJpbWl0aXZlc19zZXRfYnlfZXhl
Y3V0ZV9zY3JpcHQoc2Vzc2lvbiwganNfcHJpbWl0aXZlLCBweV9wcmltaXRpdmUpOgogICAgIGFz
c2VydF9zdWNjZXNzKHJlc3BvbnNlLCBweV9wcmltaXRpdmUpCiAKIAotZGVmIHRlc3RfbXV0YXRl
ZF9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfbXV0YXRlZF9lbGVtZW50KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWNoZWNrYm94PiIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAg
IGVsZW1lbnQuY2xpY2soKQpAQCAtMTE0LDMgKzEyMCwxNCBAQCBkZWYgdGVzdF9tdXRhdGVkX2Vs
ZW1lbnQoc2Vzc2lvbik6CiAKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3Byb3BlcnR5KHNl
c3Npb24sIGVsZW1lbnQuaWQsICJjaGVja2VkIikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSwgVHJ1ZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImlzX3JlbGF0aXZlIiwgW1Ry
dWUsIEZhbHNlXSwgaWRzPVsicmVsYXRpdmUiLCAiYWJzb2x1dGUiXSkKK2RlZiB0ZXN0X2FuY2hv
cl9ocmVmKHNlc3Npb24sIGlubGluZSwgdXJsLCBpc19yZWxhdGl2ZSk6CisgICAgaHJlZiA9ICIv
Zm9vLmh0bWwiIGlmIGlzX3JlbGF0aXZlIGVsc2UgdXJsKCIvZm9vLmh0bWwiKQorCisgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9J3t9Jz5mb288L2E+Ii5mb3JtYXQoaHJlZikpCisg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImEiLCBhbGw9RmFsc2UpCisKKyAgICByZXNw
b25zZSA9IGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24sIGVsZW1lbnQuaWQsICJocmVmIikK
KyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgdXJsKCIvZm9vLmh0bWwiKSkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfcHJvcGVydHkvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9wcm9wZXJ0eS91c2VyX3Byb21wdHMucHkKaW5k
ZXggMTZhMDk4NTM2ZmRlLi5lNWU3Njk0Nzg2M2UgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvdXNlcl9w
cm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAog
aW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfcHJvcGVy
dHkoc2Vzc2lvbiwgZWxlbWVudF9pZCwgbmFtZSk6CkBAIC0xMyw3ICsxMiw3IEBAIGRlZiBnZXRf
ZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBuYW1lKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwg
cmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikK
ICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBA
IC0yOSw3ICsyOCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtNDUsNyArNDQsNyBAQCBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywg
aW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBp
ZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9
RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X3JlY3QvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L2dldC5weQppbmRleCA0OTRjNDVm
OGU0NWIuLjlhYjRkYjRjNjA0ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L2dldC5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3JlY3QvZ2V0
LnB5CkBAIC0xLDYgKzEsNSBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGlt
cG9ydCBlbGVtZW50X3JlY3QKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKIGRlZiBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAtMTQs
OSArMTMsMTYgQEAgZGVmIGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAK
IAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRv
dyk6CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdworICAgIHJl
c3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9l
bGVtZW50X3JlY3Qoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxf
aGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sIGVsZW1lbnQu
aWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50IikKKwogCiBk
ZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAg
cmVzcG9uc2UgPSBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sICJmb28iKQpAQCAtMjgsNyArMzQs
NyBAQCBkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJy
b3IocmVzdWx0LCAibm8gc3VjaCBlbGVtZW50IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X3N0YWxl
KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTM3
LDcgKzQzLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRf
ZXJyb3IocmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAKLWRlZiB0ZXN0X2Jh
c2ljKHNlc3Npb24pOgorZGVmIHRlc3RfYmFzaWMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImlucHV0IiwgYWxsPUZhbHNlKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3JlY3QvdXNlcl9wcm9tcHRzLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVu
dF9yZWN0L3VzZXJfcHJvbXB0cy5weQppbmRleCBjNTE4NjZjYjg3NTguLjIwMTMxNjAzMzgxYiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9yZWN0L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3JlY3QvdXNlcl9wcm9tcHRzLnB5
CkBAIC00LDcgKzQsNiBAQCBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hh
bmRsZWQKIGZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBlbGVtZW50X3JlY3QKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVu
dF9yZWN0KHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAtMTgsNyArMTcsNyBAQCBkZWYgZ2V0X2Vs
ZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAg
ICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgICAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0zNCw3ICszMyw3IEBAIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
LCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxs
PUZhbHNlKQpAQCAtNTAsNyArNDksNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290
L2NvbmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLmFmYzBjOTFjM2QzZgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hh
ZG93X3Jvb3QvY29uZnRlc3QucHkKQEAgLTAsMCArMSwyMiBAQAoraW1wb3J0IHB5dGVzdAorCitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja2JveF9kb20oaW5saW5lKToKKyAgICByZXR1cm4gaW5s
aW5lKCIiIgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBjdXN0b20tY2hlY2tib3gtZWxl
bWVudCB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsgd2lkdGg6MjBweDsgaGVpZ2h0
OjIwcHg7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxjdXN0b20t
Y2hlY2tib3gtZWxlbWVudD48L2N1c3RvbS1jaGVja2JveC1lbGVtZW50PgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjdXN0b20tY2hlY2tib3gt
ZWxlbWVudCcsCisgICAgICAgICAgICAgICAgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdHRhY2hT
aGFkb3coe21vZGU6ICdvcGVuJ30pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdj48aW5wdXQgdHlwZT0iY2hlY2tib3giLz48L2Rpdj4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBgOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICA8L3NjcmlwdD4iIiIpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19y
b290L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uODJlNTI0MjBhMmMwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9v
dC9nZXQucHkKQEAgLTAsMCArMSw2MCBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBh
c3NlcnRfc3VjY2VzcworCisKK2RlZiBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudF9p
ZCk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQiLCAi
c2Vzc2lvbi97c2Vzc2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vc2hhZG93Ii5mb3JtYXQo
CisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAg
IGVsZW1lbnRfaWQ9ZWxlbWVudF9pZCkpCisKKworZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2Nv
bnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVt
ZW50ID0gY2xvc2VkX3dpbmRvdworICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290KHNlc3Np
b24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5k
b3ciKQorICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290KHNlc3Npb24sICJmb28iKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworICAgIHNlc3Npb24u
d2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRv
d19yb290KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCBlbGVtZW50IikKKworCitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Np
b24sIGNsb3NlZF9mcmFtZSk6CisgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lv
biwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQor
CisKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgorICAgIHJlc3VsdCA9IGdl
dF9zaGFkb3dfcm9vdChzZXNzaW9uLCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAi
bm8gc3VjaCBlbGVtZW50IikKKworCitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGNo
ZWNrYm94X2RvbSk6CisgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9kb20KKyAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQiLCBhbGw9RmFsc2Up
CisgICAgc2Vzc2lvbi5yZWZyZXNoKCkKKworICAgIHJlc3VsdCA9IGdldF9zaGFkb3dfcm9vdChz
ZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVt
ZW50IHJlZmVyZW5jZSIpCisKKworZGVmIHRlc3RfZ2V0X3NoYWRvd19yb290KHNlc3Npb24sIGNo
ZWNrYm94X2RvbSk6CisgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9kb20KKyAgICBleHBlY3Rl
ZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICJyZXR1cm4gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQnKS5zaGFkb3dSb290Lmhvc3QiKQor
ICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVs
ZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lv
biwgY3VzdG9tX2VsZW1lbnQuaWQpCisgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCkKKyAgICBhc3NlcnQgInNoYWRv
dy02MDY2LTExZTQtYTUyZS00ZjczNTQ2NmNlY2YiIGluIHZhbHVlCisgICAgYXNzZXJ0X3NhbWVf
ZWxlbWVudChzZXNzaW9uLCBjdXN0b21fZWxlbWVudCwgZXhwZWN0ZWQpCisKKworZGVmIHRlc3Rf
bm9fc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgaW5saW5lKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGRpdj48cD5ubyBzaGFkb3cgcm9vdDwvcD48L2Rpdj4iKQorICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCisgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93
X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIHNoYWRvdyByb290IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxl
bWVudF9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi4zMjY3MWI5NWE1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19y
b290L3VzZXJfcHJvbXB0cy5weQpAQCAtMCwwICsxLDExNyBAQAorIyBNRVRBOiB0aW1lb3V0PWxv
bmcKKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCisKKwor
ZGVmIGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50X2lkKToKKyAgICByZXR1cm4gc2Vz
c2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lk
fS9lbGVtZW50L3tlbGVtZW50X2lkfS9zaGFkb3ciLmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Np
b25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50
X2lkKSkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgY2hlY2tib3hfZG9tKToK
KyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGNoZWNrYm94X2RvbQorICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQi
LCBhbGw9RmFsc2UpCisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1k
aWFsb2dfdHlwZSkKKworICAgICAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChzZXNzaW9u
LCBlbGVtZW50LmlkKQorICAgICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCkKKworICAgICAgICBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0
ZWRfcmV0dmFsPXJldHZhbCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgY2hlY2ti
b3hfZG9tKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGNoZWNrYm94X2Rv
bQorICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVs
ZW1lbnQiLCBhbGw9RmFsc2UpCisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwg
dGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChz
ZXNzaW9uLCBlbGVtZW50LmlkKQorICAgICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJ1bmV4
cGVjdGVkIGFsZXJ0IG9wZW4iKQorCisgICAgICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNz
aW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQor
CisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbgorCisK
K0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBjaGVja2JveF9kb20pOgorICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgor
ICAgICAgICBzZXNzaW9uLnVybCA9IGNoZWNrYm94X2RvbQorICAgICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisKKyAg
ICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAg
ICAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAg
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJ1bmV4cGVjdGVkIGFsZXJ0IG9wZW4iKQorCisg
ICAgICAgIGFzc2VydCBzZXNzaW9uLmFsZXJ0LnRleHQgPT0gZGlhbG9nX3R5cGUKKyAgICAgICAg
c2Vzc2lvbi5hbGVydC5kaXNtaXNzKCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24KKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsi
dW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAg
ICgiY29uZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2Fj
Y2VwdChjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRpYWxvZ190
eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMo
eyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJhY2NlcHQgYW5kIG5vdGlmeSJ9KQorQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQi
LCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10p
CitkZWYgdGVzdF9hY2NlcHRfYW5kX25vdGlmeShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3Qu
bWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIn0p
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAg
KCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIs
IE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3MoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitA
cHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlz
bWlzcyBhbmQgbm90aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBl
LCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNl
KSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3NfYW5kX25vdGlm
eShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCBy
ZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRs
ZWRQcm9tcHRCZWhhdmlvciI6ICJpZ25vcmUifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
ZGlhbG9nX3R5cGUiLCBbImFsZXJ0IiwgImNvbmZpcm0iLCAicHJvbXB0Il0pCitkZWYgdGVzdF9p
Z25vcmUoY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uLCBkaWFsb2df
dHlwZSk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJl
dHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAor
ICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGVmYXVsdChjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF90YWdfbmFtZS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1lL2dldC5weQppbmRleCBmZmU2
ZGQ2NDFlODIuLmNmYzYzYmQ3ODhkZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS9nZXQucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90
YWdfbmFtZS9nZXQucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Np
b24sIGVsZW1lbnRfaWQpOgpAQCAtMTAsOSArOSwxNiBAQCBkZWYgZ2V0X2VsZW1lbnRfdGFnX25h
bWUoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2Nv
bnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVt
ZW50ID0gY2xvc2VkX3dpbmRvdworICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGFnX25hbWUo
c2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCAi
Zm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAg
ICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9
IGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93c2lu
Z19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgcmVzcG9uc2UgPSBnZXRfZWxl
bWVudF90YWdfbmFtZShzZXNzaW9uLCAiZm9vIikKQEAgLTI0LDcgKzMwLDcgQEAgZGVmIHRlc3Rf
ZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5v
IHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtMzMsNyArMzks
NyBAQCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihy
ZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfZ2V0X2VsZW1l
bnRfdGFnX25hbWUoc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfZWxlbWVudF90YWdfbmFtZShzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9lbGVtZW50X3RhZ19uYW1lL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvdXNlcl9wcm9tcHRz
LnB5CmluZGV4IDEyYTdkNDQ4NDIxZS4uODk2OTdkMGFkNmEyIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1l
L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1lL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICsz
LDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50
X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAtMTIsNyArMTEsNyBAQCBkZWYgZ2V0
X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAg
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtMjgs
NyArMjcsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ0LDcgKzQzLDcgQEAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
IAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9v
PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNl
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF90ZXh0L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkKaW5kZXggNWYxNjlhM2EyMzNi
Li43MmRjMGNmNzM1ZTUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90ZXh0L2dldC5weQpA
QCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAg
LTEwLDI5ICs5LDMyIEBAIGRlZiBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnRfaWQp
OgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93
aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAg
ICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBn
ZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdp
bmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVt
ZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisK
IAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgog
ICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCAiZm9vIikKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3RfZ2V0dGlu
Z190ZXh0X29mX2Ffbm9uX2V4aXN0YW50X2VsZW1lbnRfaXNfYW5fZXJyb3Ioc2Vzc2lvbik6Citk
ZWYgdGVzdF9nZXR0aW5nX3RleHRfb2ZfYV9ub25fZXhpc3RhbnRfZWxlbWVudF9pc19hbl9lcnJv
cihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxib2R5Pkhl
bGxvIHdvcmxkPC9ib2R5PiIiIikKIAogICAgIHJlc3VsdCA9IGdldF9lbGVtZW50X3RleHQoc2Vz
c2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIp
CiAKIAotZGVmIHRlc3RfcmVhZF9lbGVtZW50X3RleHQoc2Vzc2lvbik6Ci0gICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiCi0gICAgICAgIDxib2R5PgotICAgICAgICAgIE5vaXNlIGJlZm9yZSA8
c3BhbiBpZD0naWQnPlRoaXMgaGFzIGFuIElEPC9zcGFuPi4gTm9pc2UgYWZ0ZXIKLSAgICAgICAg
PC9ib2R5PiIiIikKLQorZGVmIHRlc3RfcmVhZF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgaW5saW5l
KToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiQmVmb3JlIGY8c3BhbiBpZD0naWQnPm9vPC9z
cGFuPiBhZnRlciIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNpZCIsIGFsbD1G
YWxzZSkKIAogICAgIHJlc3VsdCA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxlbWVudC5p
ZCkKLSAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJUaGlzIGhhcyBhbiBJRCIpCisgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzdWx0LCAib28iKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90ZXh0L3VzZXJfcHJvbXB0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfdGV4dC91c2VyX3Byb21wdHMucHkKaW5kZXggMWVlNWNkZTRkYTUyLi45ZjBiYjM4NmNkZjUg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfdGV4dC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90ZXh0L3VzZXJfcHJvbXB0cy5w
eQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2df
aGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVm
IGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xNCw3ICsxMyw3IEBA
IGRlZiBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRlc3Qu
Zml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCBy
ZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAgaWQ9Zm9vPmJhcjwvcD4i
KQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkK
QEAgLTMwLDcgKzI5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPWZvbz5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00Niw3ICs0NSw3IEBAIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAg
aWQ9Zm9vPmJhcjwvcD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2Zv
byIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X25hbWVkX2Nvb2tpZS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0LnB5CmluZGV4
IDEwMmMxOGYwMjc1Yy4uZDFlODNiNmE4MTUyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0LnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X25hbWVkX2Nv
b2tpZS9nZXQucHkKQEAgLTEsMTIgKzEsMTAgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSBkYXRl
dGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQotZnJvbSBzaXggaW1wb3J0IGludGVnZXJf
dHlwZXMsIHRleHRfdHlwZQogCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBp
bXBvcnQgY2xlYXJfYWxsX2Nvb2tpZXMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBnZXRfbmFtZWRfY29va2llKHNlc3Npb24sIG5hbWUpOgpAQCAtMzgs
MTMgKzM2LDEzIEBAIGRlZiB0ZXN0X2dldF9uYW1lZF9zZXNzaW9uX2Nvb2tpZShzZXNzaW9uLCB1
cmwpOgogICAgICMgdGFibGUgZm9yIGNvb2tpZSBjb252ZXJzaW9uCiAgICAgIyBodHRwczovL3cz
Yy5naXRodWIuaW8vd2ViZHJpdmVyLyNkZm4tdGFibGUtZm9yLWNvb2tpZS1jb252ZXJzaW9uCiAg
ICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
Im5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJd
LCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29v
a2llWyJ2YWx1ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJwYXRoIiBpbiBjb29raWUKLSAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbInBhdGgiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsicGF0aCJdLCBzdHIpCiAgICAgYXNzZXJ0ICJkb21haW4iIGluIGNvb2tp
ZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0sIHRleHRfdHlwZSkKKyAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCBzdHIpCiAgICAgYXNzZXJ0ICJz
ZWN1cmUiIGluIGNvb2tpZQogICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsic2VjdXJlIl0s
IGJvb2wpCiAgICAgYXNzZXJ0ICJodHRwT25seSIgaW4gY29va2llCkBAIC01Miw3ICs1MCw3IEBA
IGRlZiB0ZXN0X2dldF9uYW1lZF9zZXNzaW9uX2Nvb2tpZShzZXNzaW9uLCB1cmwpOgogICAgIGlm
ICJleHBpcnkiIGluIGNvb2tpZToKICAgICAgICAgYXNzZXJ0IGNvb2tpZS5nZXQoImV4cGlyeSIp
IGlzIE5vbmUKICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUi
XSA9PSAiZm9vIgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gImJhciIKQEAgLTcyLDEz
ICs3MCwxMyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfY29va2llKHNlc3Npb24sIHVybCk6CiAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29va2llLCBkaWN0KQogCiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBj
b29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4dF90eXBlKQor
ICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2
YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0
ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCBzdHIpCiAg
ICAgYXNzZXJ0ICJleHBpcnkiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsiZXhwaXJ5Il0sIGludGVnZXJfdHlwZXMpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2ll
WyJleHBpcnkiXSwgaW50KQogICAgIGFzc2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQotICAgIGFz
c2VydCBpc2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tp
ZVsibmFtZSJdID09ICJmb28iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAiYmFyIgpA
QCAtODcsNyArODUsNyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfY29va2llKHNlc3Npb24sIHVybCk6
CiAgICAgICAgIGNvb2tpZVsiZXhwaXJ5Il0pLnN0cmZ0aW1lKHV0Y19zdHJpbmdfZm9ybWF0KSA9
PSBhX2RheV9mcm9tX25vdwogCiAKLWRlZiB0ZXN0X2R1cGxpY2F0ZWRfY29va2llKHNlc3Npb24s
IHVybCwgc2VydmVyX2NvbmZpZyk6CitkZWYgdGVzdF9kdXBsaWNhdGVkX2Nvb2tpZShzZXNzaW9u
LCB1cmwsIHNlcnZlcl9jb25maWcsIGlubGluZSk6CiAgICAgbmV3X2Nvb2tpZSA9IHsKICAgICAg
ICAgIm5hbWUiOiAiaGVsbG8iLAogICAgICAgICAidmFsdWUiOiAid29ybGQiLApAQCAtMTEzLDEx
ICsxMTEsMTEgQEAgZGVmIHRlc3RfZHVwbGljYXRlZF9jb29raWUoc2Vzc2lvbiwgdXJsLCBzZXJ2
ZXJfY29uZmlnKToKICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWUsIGRpY3QpCiAKICAgICBh
c3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFt
ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0
cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
InZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBjb29raWUKLSAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQg
aXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVb
Im5hbWUiXSA9PSBuZXdfY29va2llWyJuYW1lIl0KICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJd
ID09ICJuZXd3b3JsZCIKQEAgLTEzNiwxMSArMTM0LDExIEBAIGRlZiB0ZXN0X2dldF9jb29raWVf
d2l0aF9zYW1lX3NpdGVfZmxhZyhzZXNzaW9uLCB1cmwsIHNhbWVfc2l0ZSk6CiAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UoY29va2llLCBkaWN0KQogCiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUK
LSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFz
c2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIg
aW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5
cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCBzdHIpCiAgICAgYXNz
ZXJ0ICJzYW1lU2l0ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJz
YW1lU2l0ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1l
U2l0ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImZvbyIKICAgICBh
c3NlcnQgY29va2llWyJ2YWx1ZSJdID09ICJiYXIiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9wYWdlX3NvdXJjZS9zb3VyY2UucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9wYWdlX3Nv
dXJjZS9zb3VyY2UucHkKaW5kZXggNTQ4NGNjYmYyZWVmLi5jYzRlMjA4ODM1YzggMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vf
c291cmNlL3NvdXJjZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9wYWdlX3NvdXJjZS9zb3VyY2UucHkKQEAgLTEsNSArMSw0IEBACiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9w
YWdlX3NvdXJjZShzZXNzaW9uKToKQEAgLTE3LDcgKzE2LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9zb3VyY2VfbWF0Y2hlc19vdXRl
cl9odG1sKHNlc3Npb24pOgorZGVmIHRlc3Rfc291cmNlX21hdGNoZXNfb3V0ZXJfaHRtbChzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aHRtbD48aGVhZD48dGl0
bGU+Q2hlZXNlPC90aXRsZT48Ym9keT5QZWFzIikKIAogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5l
eGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vdXRlckhUTUwi
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfcGFnZV9zb3VyY2UvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2UvdXNlcl9wcm9tcHRzLnB5Cmlu
ZGV4IDNiMGNkZmY5N2RkOS4uMTNjYjMxNTk1ZTYxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9wYWdlX3NvdXJjZS91c2VyX3Byb21w
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfcGFnZV9zb3VyY2UvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5
dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBh
c3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X3BhZ2Vfc291cmNlKHNlc3Npb24pOgpA
QCAtMTIsNyArMTEsNyBAQCBkZWYgZ2V0X3BhZ2Vfc291cmNlKHNlc3Npb24pOgogCiAKIEBweXRl
c3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBl
LCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdi8+IikKICAgICAg
ICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50Lm91dGVySFRNTCIpCkBAIC0yOCw3ICsyNyw3IEBAIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5
cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2Lz4iKQogCkBA
IC00Myw3ICs0Miw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGRpdi8+IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvZ2V0LnB5CmluZGV4IDM0
NDA1Nzc0YmEwNi4uZTY5NmVjMzQwMzM5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9nZXQucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvZ2V0LnB5CkBAIC0x
LDcgKzEsNCBAQAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF90aXRsZShzZXNzaW9u
KToKQEAgLTE0LDcgKzExLDcgQEAgZGVmIHRlc3RfcGF5bG9hZChzZXNzaW9uKToKIAogICAgIHJl
c3BvbnNlID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSkKLSAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgdGV4dF90eXBlKQorICAgIGFz
c2VydCBpc2luc3RhbmNlKHZhbHVlLCBzdHIpCiAKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CkBAIC0yMiwyOCArMTksMjggQEAgZGVm
IHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0
X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKK2RlZiB0ZXN0X25v
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Rm9vPC90aXRsZT4iKQogCiAgICAgcmVzcG9uc2Ug
PSBnZXRfdGl0bGUoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgIkZvbyIp
CiAKIAotZGVmIHRlc3Rfd2l0aF9kdXBsaWNhdGVkX3RpdGxlKHNlc3Npb24pOgorZGVmIHRlc3Rf
d2l0aF9kdXBsaWNhdGVkX3RpdGxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjx0aXRsZT5GaXJzdDwvdGl0bGU+PHRpdGxlPlNlY29uZDwvdGl0bGU+IikKIAog
ICAgIHJlc3VsdCA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3Vs
dCwgIkZpcnN0IikKIAogCi1kZWYgdGVzdF93aXRob3V0X3RpdGxlKHNlc3Npb24pOgorZGVmIHRl
c3Rfd2l0aG91dF90aXRsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aDI+SGVsbG88L2gyPiIpCiAKICAgICByZXN1bHQgPSBnZXRfdGl0bGUoc2Vzc2lvbikK
ICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICIiKQogCiAKLWRlZiB0ZXN0X2FmdGVyX21vZGlm
aWNhdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2FmdGVyX21vZGlmaWNhdGlvbihzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+SW5pdGlhbDwvdGl0bGU+
PGgyPkhlbGxvPC9oMj4iKQogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoImRvY3VtZW50LnRp
dGxlID0gJ1VwZGF0ZWQnIikKIApAQCAtNTEsNyArNDgsNyBAQCBkZWYgdGVzdF9hZnRlcl9tb2Rp
ZmljYXRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiVXBkYXRlZCIp
CiAKIAotZGVmIHRlc3Rfc3RyaXBfYW5kX2NvbGxhcHNlKHNlc3Npb24pOgorZGVmIHRlc3Rfc3Ry
aXBfYW5kX2NvbGxhcHNlKHNlc3Npb24sIGlubGluZSk6CiAgICAgZG9jdW1lbnQgPSAiPHRpdGxl
PiAgIGEgYlx0Y1xuZFx0IFxuIGVcdFxuIDwvdGl0bGU+PGgyPkhlbGxvPC9oMj4iCiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoZG9jdW1lbnQpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2lmcmFtZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2lmcmFtZS5w
eQppbmRleCA1OTkxYmYzNTkwNjkuLjljNWFiMGI1OTVkMyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvaWZyYW1lLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxl
L2lmcmFtZS5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpZnJhbWUsIGlubGluZQogCiAKICIiIgpAQCAtMTUsOSArMTQsMjAgQEAg
YWxzbyBlbmZvcmNlIHByb2Nlc3MgaXNvbGF0aW9uIGJhc2VkIG9uIHNpdGUgb3JpZ2luLgogVGhp
cyBpcyBrbm93biB0byBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMgZm9yIFdlYkRyaXZlciBpbXBs
ZW1lbnRhdGlvbnMuCiAiIiIKIAotZnJhbWVfZG9jID0gaW5saW5lKCI8dGl0bGU+Y2hlZXNlPC90
aXRsZT48cD5mcmFtZSIpCi1vbmVfZnJhbWVfZG9jID0gaW5saW5lKCI8dGl0bGU+YmFyPC90aXRs
ZT48aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCi1uZXN0ZWRfZnJhbWVz
X2RvYyA9IGlubGluZSgiPHRpdGxlPmZvbzwvdGl0bGU+PGlmcmFtZSBzcmM9JyVzJz48L2lmcmFt
ZT4iICUgb25lX2ZyYW1lX2RvYykKKworQHB5dGVzdC5maXh0dXJlCitkZWYgZnJhbWVfZG9jKGlu
bGluZSk6CisgICAgcmV0dXJuIGlubGluZSgiPHRpdGxlPmNoZWVzZTwvdGl0bGU+PHA+ZnJhbWUi
KQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG9uZV9mcmFtZV9kb2MoaW5saW5lLCBmcmFtZV9k
b2MpOgorICAgIHJldHVybiBpbmxpbmUoIjx0aXRsZT5iYXI8L3RpdGxlPjxpZnJhbWUgc3JjPScl
cyc+PC9pZnJhbWU+IiAlIGZyYW1lX2RvYykKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBuZXN0
ZWRfZnJhbWVzX2RvYyhpbmxpbmUsIG9uZV9mcmFtZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUo
Ijx0aXRsZT5mb288L3RpdGxlPjxpZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIG9uZV9mcmFt
ZV9kb2MpCiAKIAogZGVmIGdldF90aXRsZShzZXNzaW9uKToKQEAgLTI1LDE0ICszNSwxNCBAQCBk
ZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgogICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25f
aWR9L3RpdGxlIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSkKIAogCi1kZWYgdGVzdF9ub19pZnJh
bWUoc2Vzc2lvbik6CitkZWYgdGVzdF9ub19pZnJhbWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvb2JhcjwvdGl0bGU+PGgyPkhlbGxvPC9oMj4i
KQogCiAgICAgcmVzdWx0ID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzdWx0LCAiRm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZnJhbWUoc2Vzc2lvbik6CitkZWYgdGVz
dF9pZnJhbWUoc2Vzc2lvbiwgb25lX2ZyYW1lX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvbmVf
ZnJhbWVfZG9jCiAKICAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1G
YWxzZSkKQEAgLTQzLDcgKzUzLDcgQEAgZGVmIHRlc3RfaWZyYW1lKHNlc3Npb24pOgogICAgIGFz
c2VydF9zdWNjZXNzKHJlc3BvbnNlLCAiYmFyIikKIAogCi1kZWYgdGVzdF9uZXN0ZWRfaWZyYW1l
KHNlc3Npb24pOgorZGVmIHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uLCBuZXN0ZWRfZnJhbWVz
X2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBuZXN0ZWRfZnJhbWVzX2RvYwogCiAgICAgb3V0ZXJf
ZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCkBAIC01OCw3ICs2
OCw3IEBAIGRlZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJkb21haW4iLCBbIiIsICJhbHQiXSwgaWRzPVsic2FtZV9vcmlnaW4iLCAi
Y3Jvc3Nfb3JpZ2luIl0pCi1kZWYgdGVzdF9vcmlnaW4oc2Vzc2lvbiwgZG9tYWluLCB1cmwpOgor
ZGVmIHRlc3Rfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBkb21haW4pOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Zm9vPC90aXRsZT57fSIuZm9ybWF0KAogICAgICAg
ICBpZnJhbWUoIjx0aXRsZT5iYXI8L3RpdGxlPjxwPmZyYW1lIiwgZG9tYWluPWRvbWFpbikpKQog
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF90aXRsZS91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS91c2VyX3Byb21wdHMucHkKaW5kZXggNzZkNjVjMDg4
YTBiLi4wZmQ1MWU0NmYzMmEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS91c2VyX3Byb21w
dHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAK
IGRlZiBnZXRfdGl0bGUoc2Vzc2lvbik6CkBAIC0xMiw3ICsxMSw3IEBAIGRlZiBnZXRfdGl0bGUo
c2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8dGl0bGU+Rm9vPC90aXRsZT4iKQogICAgICAgICBleHBlY3RlZF90aXRsZSA9IHNlc3Np
b24udGl0bGUKQEAgLTI4LDcgKzI3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAg
ICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb288L3RpdGxlPiIpCiAKQEAgLTQz
LDcgKzQyLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8dGl0bGU+Rm9vPC90aXRsZT4iKQogCkBAIC0xMTcsNyArMTE2LDcgQEAgZGVm
IHRlc3RfZGVmYXVsdChjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRp
YWxvZ190eXBlLCByZXR2YWwpOgogIyB0cmlnZ2VyIHRoZSBjcmVhdGlvbiBvZiBhIGRpYWxvZyBh
dCBhbGwuIFRoZXJlZm9yZSwgdGhpcyB0ZXN0IHNob3VsZCBvbmx5IGJlCiAjIHJ1biBpbiBjb250
ZXh0cyB0aGF0IHN1cHBvcnQgdGhlIGRpYWxvZyAoYSBjb25kaXRpb24gdGhhdCBtYXkgbm90IGJl
CiAjIGRldGVybWluZWQgYXV0b21hdGljYWxseSkuCi0jIGRlZiB0ZXN0X3RpdGxlX3dpdGhfbm9u
X3NpbXBsZV9kaWFsb2coc2Vzc2lvbik6CisjIGRlZiB0ZXN0X3RpdGxlX3dpdGhfbm9uX3NpbXBs
ZV9kaWFsb2coc2Vzc2lvbiwgaW5saW5lKToKICMgICAgZG9jdW1lbnQgPSAiPHRpdGxlPldpdGgg
bm9uLXNpbXBsZSBkaWFsb2c8L3RpdGxlPjxoMj5IZWxsbzwvaDI+IgogIyAgICBzcGF3biA9ICIi
IgogIyAgICAgICAgdmFyIGRvbmUgPSBhcmd1bWVudHNbMF07CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfaGFuZGxlL2dl
dC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dp
bmRvd19oYW5kbGUvZ2V0LnB5CmluZGV4IDhjMjYyMDMzYzM4My4uNjg0NDFkYTVlZjg0IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93
aW5kb3dfaGFuZGxlL2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfaGFuZGxlL2dldC5weQpAQCAtMSwzICsxLDUgQEAKK2lt
cG9ydCBweXRlc3QKKwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9l
cnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0xOSwzICsyMSwyMyBAQCBkZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiBkZWYgdGVzdF9iYXNpYyhz
ZXNzaW9uKToKICAgICByZXNwb25zZSA9IGdldF93aW5kb3dfaGFuZGxlKHNlc3Npb24pCiAgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIHNlc3Npb24ud2luZG93X2hhbmRsZSkKKworCisjIENh
cGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxh
YmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vl
cy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMi
OiBUcnVlfSkKK2RlZiB0ZXN0X25hdmlnYXRpb25fd2l0aF9jb29wX2hlYWRlcnMoc2Vzc2lvbiwg
dXJsKToKKyAgICBiYXNlX3BhdGggPSAoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1
YmZyYW1lLmh0bWwiICsKKyAgICAgICAgICAgICAgICAgIj9waXBlPWhlYWRlcihDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSxzYW1lLW9yaWdpbiIpCisKKyAgICBzZXNzaW9uLnVybCA9IHVybChi
YXNlX3BhdGgsIHByb3RvY29sPSJodHRwcyIpCisgICAgcmVzcG9uc2UgPSBnZXRfd2luZG93X2hh
bmRsZShzZXNzaW9uKQorICAgIGZpcnN0X2hhbmRsZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQorCisgICAgIyBuYXZpZ2F0aW5nIHRvIGFub3RoZXIgZG9tYWluIHdpdGggQ09PUCBoZWFkZXJz
IHdpbGwgZm9yY2UgYSBwcm9jZXNzIGNoYW5nZQorICAgICMgaW4gbW9zdCBicm93c2VycworICAg
IHNlc3Npb24udXJsID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBzIiwgZG9tYWluPSJh
bHQiKQorICAgIHJlc3BvbnNlID0gZ2V0X3dpbmRvd19oYW5kbGUoc2Vzc2lvbikKKyAgICBzZWNv
bmRfaGFuZGxlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgZmlyc3Rf
aGFuZGxlID09IHNlY29uZF9oYW5kbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dpbmRvd19yZWN0L2dldC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dpbmRvd19yZWN0L2dldC5w
eQppbmRleCA3OTM2NTBmZWVmNDYuLmY3NTkyYTMwZTA2NyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X3JlY3QvZ2V0LnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dp
bmRvd19yZWN0L2dldC5weQpAQCAtMSw4ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKLQotCi1hbGVydF9kb2MgPSBpbmxpbmUoIjxzY3JpcHQ+
d2luZG93LmFsZXJ0KCk8L3NjcmlwdD4iKQogCiAKIGRlZiBnZXRfd2luZG93X3JlY3Qoc2Vzc2lv
bik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2lkbGhhcm5lc3MuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvaWRsaGFybmVzcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
MDQ5ZDgzNWYyZmMuLjAwMDAwMDAwMDAwMAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5lc3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIz
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8iPgotPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL1dlYklETFBhcnNlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
aWRsaGFybmVzcy5qcz48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSAgInVzZSBzdHJpY3QiOwotCi0g
IHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7Ci0gICAgY29uc3QgaWRsX2FycmF5ID0gbmV3IElk
bEFycmF5KCk7Ci0gICAgY29uc3QgaWRsID0gYXdhaXQgZmV0Y2goIi9pbnRlcmZhY2VzL3dlYmRy
aXZlci5pZGwiKS50aGVuKHIgPT4gci50ZXh0KCkpOwotICAgIGNvbnN0IGh0bWwgPSBhd2FpdCBm
ZXRjaCgiL2ludGVyZmFjZXMvaHRtbC5pZGwiKS50aGVuKHIgPT4gci50ZXh0KCkpOwotICAgIGlk
bF9hcnJheS5hZGRfaWRscyhpZGwpOwotICAgIGlkbF9hcnJheS5hZGRfZGVwZW5kZW5jeV9pZGxz
KGh0bWwpOwotICAgIGlkbF9hcnJheS5hZGRfb2JqZWN0cyh7Ci0gICAgICBOYXZpZ2F0b3I6IFsi
bmF2aWdhdG9yIl0KLSAgICB9KTsKLSAgICBpZGxfYXJyYXkudGVzdCgpOwotICB9LCAiVGVzdCBJ
REwgaW1wbGVtZW50YXRpb24gb2Ygd2ViZHJpdmVyIEFQSSIpOwotPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5l
c3Mud2luZG93LmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9pZGxoYXJuZXNzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmU5MmUxNTFkODk4MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaWRsaGFybmVzcy53aW5kb3cuanMKQEAgLTAsMCAr
MSwxNiBAQAorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzCisvLyBN
RVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby93ZWJkcml2ZXIvCisKKyJ1c2Ugc3RyaWN0IjsKKworaWRsX3Rlc3QoCisgIFsid2Vi
ZHJpdmVyIl0sCisgIFsiaHRtbCJdLAorICBpZGxfYXJyYXkgPT4geworICAgIGlkbF9hcnJheS5h
ZGRfb2JqZWN0cyh7CisgICAgICBOYXZpZ2F0b3I6IFsibmF2aWdhdG9yIl0KKyAgICB9KTsKKyAg
fQorKTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL2VuYWJsZWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5Cmlu
ZGV4IDg4YjE1MzRkZWQxYS4uNGE1YTkyYmE1ZTkxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVk
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNf
ZWxlbWVudF9lbmFibGVkL2VuYWJsZWQucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQgcHl0ZXN0
CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBk
ZWYgaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAtMTUsMTYgKzE0
LDIzIEBAIGRlZiBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAog
ZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6
CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdworICAgIHJlc3Bv
bnNlID0gaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gaXNfZWxl
bWVudF9lbmFibGVkKHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFs
X2hhbmRsZQorICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sIGVsZW1l
bnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50IikKKwog
CiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAg
ICAgcmVzcG9uc2UgPSBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X2VsZW1l
bnRfc3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2go
KQpAQCAtMzQsNyArNDAsNyBAQCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIsIFsiYnV0dG9uIiwgImlucHV0Iiwg
InNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfZm9ybV9jb250cm9sX2Rpc2FibGVkKHNl
c3Npb24sIGVsZW1lbnQpOgorZGVmIHRlc3RfZm9ybV9jb250cm9sX2Rpc2FibGVkKHNlc3Npb24s
IGlubGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7fSBkaXNhYmxl
ZC8+Ii5mb3JtYXQoZWxlbWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxl
bWVudCwgYWxsPUZhbHNlKQogCkBAIC00Myw3ICs0OSw3IEBAIGRlZiB0ZXN0X2Zvcm1fY29udHJv
bF9kaXNhYmxlZChzZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImVsZW1lbnQiLCBbImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkK
LWRlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnQpOgorZGVmIHRl
c3RfZm9ybV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPHt9Lz4iLmZvcm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2UpCiAKQEAgLTUyLDcgKzU4LDcg
QEAgZGVmIHRlc3RfZm9ybV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAog
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAi
c2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVzdF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5k
YW50KHNlc3Npb24sIGVsZW1lbnQpOgorZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2Vu
ZGFudChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8ZmllbGRzZXQgZGlzYWJsZWQ+PHt9Lz48L2ZpZWxkc2V0PiIuZm9ybWF0KGVsZW1lbnQpKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAt
NjEsNyArNjcsNyBAQCBkZWYgdGVzdF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5kYW50KHNlc3Np
b24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIsIFsi
YnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfZmllbGRz
ZXRfZW5hYmxlZF9kZXNjZW5kYW50KHNlc3Npb24sIGVsZW1lbnQpOgorZGVmIHRlc3RfZmllbGRz
ZXRfZW5hYmxlZF9kZXNjZW5kYW50KHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxmaWVsZHNldD48e30vPjwvZmllbGRzZXQ+Ii5mb3JtYXQoZWxl
bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNl
KQogCkBAIC03MCw3ICs3Niw3IEBAIGRlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFu
dChzZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1l
bnQiLCBbImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0
X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNlc3Npb24sIGVsZW1lbnQpOgor
ZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vzc2lvbiwgaW5s
aW5lLCBlbGVtZW50KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGZpZWxkc2V0IGRpc2Fi
bGVkPjxsZWdlbmQ+PHt9Lz48L2xlZ2VuZD48L2ZpZWxkc2V0PiIuZm9ybWF0KGVsZW1lbnQpKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAt
NzksNyArODUsNyBAQCBkZWYgdGVzdF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5kYW50X2xlZ2Vu
ZChzZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1l
bnQiLCBbImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0
X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vzc2lvbiwgZWxlbWVudCk6Citk
ZWYgdGVzdF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNlc3Npb24sIGlubGlu
ZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxmaWVsZHNldD48bGVnZW5k
Pjx7fS8+PC9sZWdlbmQ+PC9maWVsZHNldD4iLmZvcm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2UpCiAKQEAgLTg4LDcgKzk0LDcg
QEAgZGVmIHRlc3RfZmllbGRzZXRfZW5hYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChzZXNzaW9uLCBl
bGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQiLCBbImJ1dHRv
biIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X3hodG1sX2Zvcm1f
Y29udHJvbF9kaXNhYmxlZChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X3hodG1sX2Zvcm1f
Y29udHJvbF9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIjx7fSBkaXNhYmxlZD0iZGlzYWJsZWQiLz4iIiIuZm9ybWF0KGVsZW1l
bnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3R5cGU9InhodG1sIikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2UpCkBAIC05OCw3ICsxMDQs
NyBAQCBkZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVu
dCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAi
aW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRy
b2xfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X3hodG1sX2Zvcm1fY29udHJv
bF9lbmFibGVkKHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiPHt9Lz4iIiIuZm9ybWF0KGVsZW1lbnQpLCBkb2N0eXBlPSJ4aHRtbCIpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNlKQogCkBAIC0xMDYs
NyArMTEyLDcgQEAgZGVmIHRlc3RfeGh0bWxfZm9ybV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwg
ZWxlbWVudCk6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBUcnVlKQogCiAKLWRlZiB0ZXN0
X3htbF9hbHdheXNfbm90X2VuYWJsZWQoc2Vzc2lvbik6CitkZWYgdGVzdF94bWxfYWx3YXlzX25v
dF9lbmFibGVkKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIi
PG5vdGU+PC9ub3RlPiIiIiwgZG9jdHlwZT0ieG1sIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygibm90ZSIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvdXNlcl9wcm9t
cHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19l
bGVtZW50X2VuYWJsZWQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGJkOGJjODFiZGZjYy4uNWRkN2Q1
ODJiZDNkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvdXNl
cl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfZGlhbG9nX2hhbmRs
ZWQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogCiBkZWYgaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAt
MTcsNyArMTYsNyBAQCBkZWYgaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnRfaWQp
OgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0IGlkPWZvbyBkaXNhYmxlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTMzLDcgKzMyLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAog
CiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwg
cmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gZGlz
YWJsZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9
RmFsc2UpCkBAIC00OSw3ICs0OCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJl
Ci1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbyBkaXNhYmxlZD4iKQogICAgICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVu
dF9zZWxlY3RlZC9zZWxlY3RlZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC9zZWxlY3RlZC5weQppbmRleCA3OWExNjE1
ZGQ5ZmQuLjZjOGU4MTU1Y2FiMSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3NlbGVjdGVkLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9z
ZWxlY3RlZC9zZWxlY3RlZC5weQpAQCAtMSwxMiArMSwxOCBAQAoraW1wb3J0IHB5dGVzdAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nl
c3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKLWNoZWNrX2Rv
YyA9IGlubGluZSgiIiIKK0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX2RvYyhpbmxpbmUpOgor
ICAgIHJldHVybiBpbmxpbmUoIiIiCiAgICAgPGlucHV0IGlkPWNoZWNrZWQgdHlwZT1jaGVja2Jv
eCBjaGVja2VkPgogICAgIDxpbnB1dCBpZD1ub3RDaGVja2VkIHR5cGU9Y2hlY2tib3g+CiAgICAg
IiIiKQotb3B0aW9uX2RvYyA9IGlubGluZSgiIiIKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBv
cHRpb25fZG9jKGlubGluZSk6CisgICAgcmV0dXJuIGlubGluZSgiIiIKICAgICA8c2VsZWN0Pgog
ICAgICAgPG9wdGlvbiBpZD1ub3RTZWxlY3RlZD5yLQogICAgICAgPG9wdGlvbiBpZD1zZWxlY3Rl
ZCBzZWxlY3RlZD5yKwpAQCAtMjIsMTYgKzI4LDI0IEBAIGRlZiBpc19lbGVtZW50X3NlbGVjdGVk
KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250
ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVu
dCA9IGNsb3NlZF93aW5kb3cKKworICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9zZWxlY3RlZChz
ZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
d2luZG93IikKICAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgImZv
byIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAg
c2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBp
c19lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93c2luZ19j
b250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgcmVzcG9uc2UgPSBpc19lbGVtZW50
X3NlbGVjdGVkKHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgorZGVm
IHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uLCBjaGVja19kb2MpOgogICAgIHNlc3Npb24udXJs
ID0gY2hlY2tfZG9jCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNjaGVja2VkIiwg
YWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC00MCw3ICs1NCw3IEBAIGRlZiB0
ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0
YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X2NoZWNrZWQoc2Vz
c2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2NoZWNrZWQoc2Vzc2lvbiwgY2hlY2tfZG9jKToKICAg
ICBzZXNzaW9uLnVybCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCIjY2hlY2tlZCIsIGFsbD1GYWxzZSkKIApAQCAtNDgsNyArNjIsNyBAQCBkZWYgdGVzdF9lbGVt
ZW50X2NoZWNrZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBUcnVlKQog
CiAKLWRlZiB0ZXN0X2NoZWNrYm94X25vdF9zZWxlY3RlZChzZXNzaW9uKToKK2RlZiB0ZXN0X2No
ZWNrYm94X25vdF9zZWxlY3RlZChzZXNzaW9uLCBjaGVja19kb2MpOgogICAgIHNlc3Npb24udXJs
ID0gY2hlY2tfZG9jCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNub3RDaGVja2Vk
IiwgYWxsPUZhbHNlKQogCkBAIC01Niw3ICs3MCw3IEBAIGRlZiB0ZXN0X2NoZWNrYm94X25vdF9z
ZWxlY3RlZChzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsIEZhbHNlKQogCiAK
LWRlZiB0ZXN0X2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X3Nl
bGVjdGVkKHNlc3Npb24sIG9wdGlvbl9kb2MpOgogICAgIHNlc3Npb24udXJsID0gb3B0aW9uX2Rv
YwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjc2VsZWN0ZWQiLCBhbGw9RmFsc2Up
CiAKQEAgLTY0LDcgKzc4LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uKToK
ICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsIFRydWUpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9u
b3Rfc2VsZWN0ZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X25vdF9zZWxlY3RlZChzZXNz
aW9uLCBvcHRpb25fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9wdGlvbl9kb2MKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI25vdFNlbGVjdGVkIiwgYWxsPUZhbHNlKQogCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2Vs
ZW1lbnRfc2VsZWN0ZWQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5weQpp
bmRleCA2NzRmODBjNWM3NWIuLjk2ZGEyYzA4YmQ3ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJf
cHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAog
aW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgaXNfZWxlbWVudF9zZWxlY3Rl
ZChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE0LDcgKzEzLDcgQEAgZGVmIGlzX2VsZW1lbnRf
c2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAg
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIHR5cGU9Y2hlY2tib3ggY2hl
Y2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1G
YWxzZSkKQEAgLTMxLDcgKzMwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gdHlwZT1jaGVja2JveCBjaGVj
a2VkPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZh
bHNlKQpAQCAtNDcsNyArNDYsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gdHlwZT1jaGVja2JveCBjaGVja2Vk
PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNl
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9tYXhpbWl6ZV93aW5kb3cvbWF4aW1pemUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL21heGltaXplX3dpbmRvdy9tYXhpbWl6ZS5weQppbmRleCA2OTAz
ZWVjZTcwZDAuLmUyMzNlNDVhMTBkNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9tYXhpbWl6ZV93aW5kb3cvbWF4aW1pemUucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9tYXhpbWl6ZV93aW5k
b3cvbWF4aW1pemUucHkKQEAgLTg0LDYgKzg0LDcgQEAgZGVmIHRlc3RfbWF4aW1pemVfd2hlbl9y
ZXNpemVkX3RvX21heF9zaXplKHNlc3Npb24pOgogICAgIHNlc3Npb24uZW5kKCkKICAgICBzZXNz
aW9uLndpbmRvdy5tYXhpbWl6ZSgpCiAgICAgYXZhaWxhYmxlID0gc2Vzc2lvbi53aW5kb3cuc2l6
ZQorICAgIHNlc3Npb24ud2luZG93LnNpemUgPSAoODAwLCA2MDApCiAgICAgc2Vzc2lvbi5lbmQo
KQogCiAgICAgc2Vzc2lvbi53aW5kb3cuc2l6ZSA9IGF2YWlsYWJsZQpAQCAtOTUsNCArOTYsNSBA
QCBkZWYgdGVzdF9tYXhpbWl6ZV93aGVuX3Jlc2l6ZWRfdG9fbWF4X3NpemUoc2Vzc2lvbik6CiAg
ICAgIyBpdHMgZXhwZWN0ZWQgZGltZW5zaW9ucy4KICAgICBiZWZvcmUgPSBzZXNzaW9uLndpbmRv
dy5zaXplCiAgICAgc2Vzc2lvbi53aW5kb3cubWF4aW1pemUoKQotICAgIGFzc2VydCBzZXNzaW9u
LndpbmRvdy5zaXplID09IGJlZm9yZQorICAgIGFmdGVyID0gc2Vzc2lvbi53aW5kb3cuc2l6ZQor
ICAgIGFzc2VydCBhZnRlciA9PSBiZWZvcmUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmF2aWdhdGVfdG8vbmF2aWdhdGUucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL25hdmln
YXRlLnB5CmluZGV4IDI4OWU0MzIxMDExZi4uMjVkNzY4MTY3YWEwIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL25hdmln
YXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
bmF2aWdhdGVfdG8vbmF2aWdhdGUucHkKQEAgLTEsOCArMSwxMSBAQAotZnJvbSB0ZXN0cy5zdXBw
b3J0IGltcG9ydCBwbGF0Zm9ybV9uYW1lCitpbXBvcnQgdGltZQorCitpbXBvcnQgcHl0ZXN0Citm
cm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBv
cnQgUmVzcG9uc2UKIAorZnJvbSB0ZXN0cy5zdXBwb3J0IGltcG9ydCBwbGF0Zm9ybV9uYW1lCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIG5h
dmlnYXRlX3RvKHNlc3Npb24sIHVybCk6CkBAIC0xNyw3ICsyMCw3IEBAIGRlZiB0ZXN0X251bGxf
cGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgogICAgICAgICBhc3NlcnRfZXJyb3IoUmVz
cG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0
ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNl
X3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgcmVzcG9uc2UgPSBuYXZpZ2F0ZV90byhzZXNz
aW9uLCBpbmxpbmUoIjxkaXYvPiIpKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UpCiAgICAgYXNzZXJ0IHZhbHVlIGlzIE5vbmUKQEAgLTI4LDcgKzMxLDcgQEAgZGVmIHRlc3Rf
bm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X25vX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKK2RlZiB0ZXN0X25vX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpbmxpbmUpOgogICAgIGRvYyA9IGlu
bGluZSgiPHA+Zm9vIikKIAogICAgIHJlc3BvbnNlID0gbmF2aWdhdGVfdG8oc2Vzc2lvbiwgZG9j
KQpAQCAtNTIsMyArNTUsNDggQEAgZGVmIHRlc3RfZmlsZV9wcm90b2NvbChzZXNzaW9uLCBzZXJ2
ZXJfY29uZmlnKToKICAgICBpZiBzZXNzaW9uLnVybC5lbmRzd2l0aCgnLycpOgogICAgICAgICB1
cmwgKz0gJy8nCiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHVybAorCisKKyMgQ2FwYWJpbGl0
eSBuZWVkZWQgYXMgbG9uZyBhcyBubyB2YWxpZCBjZXJ0aWZpY2F0ZSBpcyBhdmFpbGFibGU6Cisj
ICAgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzI4ODQ3
CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0SW5zZWN1cmVDZXJ0cyI6IFRydWV9
KQorZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgdXJsKToKKyAgICBiYXNl
X3BhdGggPSAoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1YmZyYW1lLmh0bWwiICsK
KyAgICAgICAgICAgICAgICAgIj9waXBlPWhlYWRlcihDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSxzYW1lLW9yaWdpbiIpCisgICAgZmlyc3RfcGFnZSA9IHVybChiYXNlX3BhdGgsIHByb3RvY29s
PSJodHRwcyIpCisgICAgc2Vjb25kX3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0
cHMiLCBkb21haW49ImFsdCIpCisKKyAgICByZXNwb25zZSA9IG5hdmlnYXRlX3RvKHNlc3Npb24s
IGZpcnN0X3BhZ2UpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQg
c2Vzc2lvbi51cmwgPT0gZmlyc3RfcGFnZQorICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIj
ZGVsZXRlIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBuYXZpZ2F0ZV90byhzZXNzaW9u
LCBzZWNvbmRfcGFnZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGFzc2Vy
dCBzZXNzaW9uLnVybCA9PSBzZWNvbmRfcGFnZQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhlcnJv
ci5TdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgorICAgICAgICBlbGVtLmNsaWNrKCkK
KworICAgIHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCisKKworQHB5dGVz
dC5tYXJrLmNhcGFiaWxpdGllcyh7InBhZ2VMb2FkU3RyYXRlZ3kiOiAiZWFnZXIifSkKK2RlZiB0
ZXN0X3V0ZjhfbWV0YV90YWdfYWZ0ZXJfMTAyNF9ieXRlcyhzZXNzaW9uLCB1cmwpOgorICAgIHBh
Z2UgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL21ldGEtdXRmOC1hZnRlci0x
MDI0LWJ5dGVzLmh0bWwiKQorCisgICAgIyBMb2FkaW5nIHRoZSBwYWdlIHdpbGwgY2F1c2UgYSBy
ZWFsIHBhcnNlIGNvbW1lbmNpbmcsIGFuZCBhIHJlbmF2aWdhdGlvbgorICAgICMgdG8gdGhlIHNh
bWUgVVJMIGdldHRpbmcgdHJpZ2dlcmVkIHN1YnNlcXVlbnRseS4gVGVzdCB0aGF0IHRoZSBuYXZp
Z2F0ZQorICAgICMgY29tbWFuZCB3YWl0cyBsb25nIGVub3VnaC4KKyAgICByZXNwb25zZSA9IG5h
dmlnYXRlX3RvKHNlc3Npb24sIHBhZ2UpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisK
KyAgICAjIElmIHRoZSBjb21tYW5kIHJldHVybnMgdG9vIGVhcmx5IHRoZSBwcm9wZXJ0eSB3aWxs
IGJlIHJlc2V0IGR1ZSB0byB0aGUKKyAgICAjIHN1YnNlcXVlbnQgcGFnZSBsb2FkLgorICAgIHNl
c3Npb24uZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5mb28gPSAnYmFyJyIpCisKKyAgICAjIFVzZSBk
ZWxheSB0byBhbGxvdyBhIHBvc3NpYmxlIG1pc3Npbmcgc3Vic2VxdWVudCBuYXZpZ2F0aW9uIHRv
IHN0YXJ0CisgICAgdGltZS5zbGVlcCgxKQorCisgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9z
Y3JpcHQoInJldHVybiB3aW5kb3cuZm9vIikgPT0gImJhciIKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmF2aWdhdGVfdG8vdXNlcl9wcm9t
cHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZp
Z2F0ZV90by91c2VyX3Byb21wdHMucHkKaW5kZXggNmE5NGMxMWJmMWQzLi42ODJiYzQwZjRmZTkg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
bmF2aWdhdGVfdG8vdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvbmF2aWdhdGVfdG8vdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcg
KzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCi1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgbmF2aWdhdGVf
dG8oc2Vzc2lvbiwgdXJsKToKQEAgLTEzLDcgKzEyLDcgQEAgZGVmIG5hdmlnYXRlX3RvKHNlc3Np
b24sIHVybCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHVybCA9IGlubGluZSgiPGRp
di8+IikKIApAQCAtMzAsNyArMjksNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICB1cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHVybCA9IGlubGluZSgiPGRpdi8+IikKIApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vz
c2lvbi9yZXNwb25zZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvbmV3X3Nlc3Npb24vcmVzcG9uc2UucHkKaW5kZXggY2JlOWU3ZDdmYjE0Li40M2E4ZDU3
OTMxMTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvbmV3X3Nlc3Npb24vcmVzcG9uc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi9yZXNwb25zZS5weQpAQCAtMSwyOSAr
MSwyNyBAQAogaW1wb3J0IHV1aWQKIGltcG9ydCBweXRlc3QKIAotZnJvbSBzaXggaW1wb3J0IHN0
cmluZ190eXBlcwotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1
Y2Nlc3MKIAogCiBkZWYgdGVzdF9zZXNzaW9uaWQobmV3X3Nlc3Npb24sIGFkZF9icm93c2VyX2Nh
cGFiaWxpdGllcyk6CiAgICAgcmVzcG9uc2UsIF8gPSBuZXdfc2Vzc2lvbih7ImNhcGFiaWxpdGll
cyI6IHsiYWx3YXlzTWF0Y2giOiBhZGRfYnJvd3Nlcl9jYXBhYmlsaXRpZXMoe30pfX0pCiAgICAg
dmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKLSAgICBhc3NlcnQgaXNpbnN0YW5jZSh2
YWx1ZVsic2Vzc2lvbklkIl0sIHN0cmluZ190eXBlcykKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2
YWx1ZVsic2Vzc2lvbklkIl0sIHN0cikKICAgICB1dWlkLlVVSUQoaGV4PXZhbHVlWyJzZXNzaW9u
SWQiXSkKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNhcGFiaWxpdHksIHR5cGUiLCBb
Ci0gICAgKCJicm93c2VyTmFtZSIsIHN0cmluZ190eXBlcyksCi0gICAgKCJicm93c2VyVmVyc2lv
biIsIHN0cmluZ190eXBlcyksCi0gICAgKCJwbGF0Zm9ybU5hbWUiLCBzdHJpbmdfdHlwZXMpLAor
ICAgICgiYnJvd3Nlck5hbWUiLCBzdHIpLAorICAgICgiYnJvd3NlclZlcnNpb24iLCBzdHIpLAor
ICAgICgicGxhdGZvcm1OYW1lIiwgc3RyKSwKICAgICAoImFjY2VwdEluc2VjdXJlQ2VydHMiLCBi
b29sKSwKLSAgICAoInBhZ2VMb2FkU3RyYXRlZ3kiLCBzdHJpbmdfdHlwZXMpLAorICAgICgicGFn
ZUxvYWRTdHJhdGVneSIsIHN0ciksCiAgICAgKCJwcm94eSIsIGRpY3QpLAogICAgICgic2V0V2lu
ZG93UmVjdCIsIGJvb2wpLAogICAgICgidGltZW91dHMiLCBkaWN0KSwKICAgICAoInN0cmljdEZp
bGVJbnRlcmFjdGFiaWxpdHkiLCBib29sKSwKLSAgICAoInVuaGFuZGxlZFByb21wdEJlaGF2aW9y
Iiwgc3RyaW5nX3R5cGVzKSwKKyAgICAoInVuaGFuZGxlZFByb21wdEJlaGF2aW9yIiwgc3RyKSwK
IF0pCiBkZWYgdGVzdF9jYXBhYmlsaXR5X3R5cGUoc2Vzc2lvbiwgY2FwYWJpbGl0eSwgdHlwZSk6
CiAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2Vzc2lvbi5jYXBhYmlsaXRpZXMsIGRpY3QpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19z
ZXNzaW9uL3dlYnNvY2tldF91cmwucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3dlYnNvY2tldF91cmwucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NTJkZWNjOTBhYTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9u
L3dlYnNvY2tldF91cmwucHkKQEAgLTAsMCArMSw3IEBACitmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKKworZGVmIHRlc3Rfd2Vic29ja2V0X3VybChuZXdf
c2Vzc2lvbiwgYWRkX2Jyb3dzZXJfY2FwYWJpbGl0aWVzKToKKyAgICByZXNwb25zZSwgXyA9IG5l
d19zZXNzaW9uKHsiY2FwYWJpbGl0aWVzIjogeworICAgICAgICAiYWx3YXlzTWF0Y2giOiBhZGRf
YnJvd3Nlcl9jYXBhYmlsaXRpZXMoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSl9fSkKKyAgICB2YWx1
ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydCB2YWx1ZVsiY2FwYWJpbGl0
aWVzIl1bIndlYlNvY2tldFVybCJdLnN0YXJ0c3dpdGgoIndzOi8vIikKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdf
dGFiLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdf
d2luZG93L25ld190YWIucHkKaW5kZXggOTMwMGIwNGM0NWZhLi4yNzBlNGI1MWI4OGYgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dp
bmRvdy9uZXdfdGFiLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfdGFiLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBvcGVuZXIsIHdpbmRvd19u
YW1lCiAKQEAgLTMyLDcgKzMxLDcgQEAgZGVmIHRlc3Rfa2VlcHNfY3VycmVudF93aW5kb3dfaGFu
ZGxlKHNlc3Npb24pOgogICAgIGFzc2VydCBzZXNzaW9uLndpbmRvd19oYW5kbGUgPT0gb3JpZ2lu
YWxfaGFuZGxlCiAKIAotZGVmIHRlc3Rfb3BlbnNfYWJvdXRfYmxhbmtfaW5fbmV3X3RhYihzZXNz
aW9uKToKK2RlZiB0ZXN0X29wZW5zX2Fib3V0X2JsYW5rX2luX25ld190YWIoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICB1cmwgPSBpbmxpbmUoIjxwPmZvbyIpCiAgICAgc2Vzc2lvbi51cmwgPSB1cmwK
IApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9uZXdfd2luZG93L25ld193aW5kb3cucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3dpbmRvdy5weQppbmRleCBiMzQ4NTRjYzJm
M2YuLmQzYzIyNDUwMjcwNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9uZXdfd2luZG93L25ld193aW5kb3cucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfd2luZG93L25ld193aW5kb3cu
cHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBm
cm9tIC4gaW1wb3J0IG9wZW5lciwgd2luZG93X25hbWUKIApAQCAtMzIsNyArMzEsNyBAQCBkZWYg
dGVzdF9rZWVwc19jdXJyZW50X3dpbmRvd19oYW5kbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHNl
c3Npb24ud2luZG93X2hhbmRsZSA9PSBvcmlnaW5hbF9oYW5kbGUKIAogCi1kZWYgdGVzdF9vcGVu
c19hYm91dF9ibGFua19pbl9uZXdfd2luZG93KHNlc3Npb24pOgorZGVmIHRlc3Rfb3BlbnNfYWJv
dXRfYmxhbmtfaW5fbmV3X3dpbmRvdyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHVybCA9IGlubGlu
ZSgiPHA+Zm9vIikKICAgICBzZXNzaW9uLnVybCA9IHVybAogCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9jb25m
dGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVy
Zm9ybV9hY3Rpb25zL2NvbmZ0ZXN0LnB5CmluZGV4IDk3MGY3YjdkZDliZS4uMTg4ZjhkZGJiNWVm
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3BlcmZvcm1fYWN0aW9ucy9jb25mdGVzdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9jb25mdGVzdC5weQpAQCAtMzIs
NiArMzIsMjIgQEAgZGVmIG1vdXNlX2NoYWluKHNlc3Npb24pOgogICAgICAgICB7InBvaW50ZXJU
eXBlIjogIm1vdXNlIn0pCiAKIAorQHB5dGVzdC5maXh0dXJlCitkZWYgdG91Y2hfY2hhaW4oc2Vz
c2lvbik6CisgICAgcmV0dXJuIHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgKKyAgICAgICAgInBv
aW50ZXIiLAorICAgICAgICAicG9pbnRlcl9pZCIsCisgICAgICAgIHsicG9pbnRlclR5cGUiOiAi
dG91Y2gifSkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBwZW5fY2hhaW4oc2Vzc2lvbik6Cisg
ICAgcmV0dXJuIHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgKKyAgICAgICAgInBvaW50ZXIiLAor
ICAgICAgICAicG9pbnRlcl9pZCIsCisgICAgICAgIHsicG9pbnRlclR5cGUiOiAicGVuIn0pCisK
KwogQHB5dGVzdC5maXh0dXJlCiBkZWYgbm9uZV9jaGFpbihzZXNzaW9uKToKICAgICByZXR1cm4g
c2Vzc2lvbi5hY3Rpb25zLnNlcXVlbmNlKCJub25lIiwgIm5vbmVfaWQiKQpAQCAtNjYsMyArODIs
OCBAQCBkZWYgdGVzdF9hY3Rpb25zX3BhZ2Uoc2Vzc2lvbiwgdXJsKToKIEBweXRlc3QuZml4dHVy
ZQogZGVmIHRlc3RfYWN0aW9uc19zY3JvbGxfcGFnZShzZXNzaW9uLCB1cmwpOgogICAgIHNlc3Np
b24udXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3Rl
c3RfYWN0aW9uc19zY3JvbGxfd2RzcGVjLmh0bWwiKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVm
IHRlc3RfYWN0aW9uc19wb2ludGVyX3BhZ2Uoc2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLnVy
bCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC90ZXN0X2Fj
dGlvbnNfcG9pbnRlcl93ZHNwZWMuaHRtbCIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9rZXlfZXZlbnRzLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMva2V5X2V2ZW50cy5weQppbmRleCBjMzk1ODAxNWJmZDQuLjhkYmUwMjRkMTgzOSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJm
b3JtX2FjdGlvbnMva2V5X2V2ZW50cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9rZXlfZXZlbnRzLnB5CkBAIC01LDcg
KzUsOCBAQCBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAogaW1wb3J0IHB5dGVz
dAogCiBmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LmtleXMgaW1wb3J0IEFMTF9F
VkVOVFMsIEtleXMsIEFMVEVSTkFUSVZFX0tFWV9OQU1FUwotZnJvbSB0ZXN0cy5wZXJmb3JtX2Fj
dGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzLCBnZXRf
a2V5cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdl
dF9ldmVudHMsIGdldF9rZXlzCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmls
dGVyX2RpY3QKIAogCiBkZWYgdGVzdF9rZXl1cF9vbmx5X3NlbmRzX25vX2V2ZW50cyhzZXNzaW9u
LCBrZXlfcmVwb3J0ZXIsIGtleV9jaGFpbik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlv
bnMvcG9pbnRlci5weQppbmRleCBhZDU0NjkyMTQ2MGUuLjY3NGQ0NmQ3YjYxMCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMvcG9pbnRlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyLnB5CkBAIC01LDE3ICs1LDEyIEBAIGlt
cG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hXaW5kb3dFeGNl
cHRpb24KIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5tb3VzZSBpbXBvcnQg
Z2V0X2ludmlld19jZW50ZXIsIGdldF92aWV3cG9ydF9yZWN0Ci1mcm9tIHRlc3RzLnBlcmZvcm1f
YWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zy
b20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRz
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X21vdmVfdG9fY29vcmRp
bmF0ZXMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0
cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiBmcm9tIHRlc3RzLnN1cHBvcnQu
c3luYyBpbXBvcnQgUG9sbAogCiAKLWRlZiBsaW5rX2RvYyhkZXN0KToKLSAgICBjb250ZW50ID0g
IjxhIGhyZWY9XCJ7fVwiIGlkPVwibGlua1wiPmRlc3RpbmF0aW9uPC9hPiIuZm9ybWF0KGRlc3Qp
Ci0gICAgcmV0dXJuIGlubGluZShjb250ZW50KQotCi0KIGRlZiB0ZXN0X251bGxfcmVzcG9uc2Vf
dmFsdWUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgIHZhbHVlID0gbW91c2VfY2hhaW4uY2xp
Y2soKS5wZXJmb3JtKCkKICAgICBhc3NlcnQgdmFsdWUgaXMgTm9uZQpAQCAtOTUsOSArOTAsOSBA
QCBkZWYgdGVzdF9jbGlja19lbGVtZW50X2NlbnRlcihzZXNzaW9uLCB0ZXN0X2FjdGlvbnNfcGFn
ZSwgbW91c2VfY2hhaW4pOgogICAgICAgICAgICAgYXNzZXJ0IGVbInRhcmdldCJdID09ICJvdXRl
ciIKIAogCi1kZWYgdGVzdF9jbGlja19uYXZpZ2F0aW9uKHNlc3Npb24sIHVybCk6CitkZWYgdGVz
dF9jbGlja19uYXZpZ2F0aW9uKHNlc3Npb24sIHVybCwgaW5saW5lKToKICAgICBkZXN0aW5hdGlv
biA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9hY3Rpb25zL3N1cHBvcnQvdGVzdF9hY3Rpb25zX3dk
c3BlYy5odG1sIikKLSAgICBzdGFydCA9IGxpbmtfZG9jKGRlc3RpbmF0aW9uKQorICAgIHN0YXJ0
ID0gaW5saW5lKCI8YSBocmVmPVwie31cIiBpZD1cImxpbmtcIj5kZXN0aW5hdGlvbjwvYT4iLmZv
cm1hdChkZXN0aW5hdGlvbikpCiAKICAgICBkZWYgY2xpY2sobGluayk6CiAgICAgICAgIG1vdXNl
X2NoYWluID0gc2Vzc2lvbi5hY3Rpb25zLnNlcXVlbmNlKApAQCAtMTE1LDYgKzExMCw4NSBAQCBk
ZWYgdGVzdF9jbGlja19uYXZpZ2F0aW9uKHNlc3Npb24sIHVybCk6CiAgICAgUG9sbChzZXNzaW9u
LCBtZXNzYWdlPWVycm9yX21lc3NhZ2UpLnVudGlsKGxhbWJkYSBzOiBzLnVybCA9PSBkZXN0aW5h
dGlvbikKIAogCitkZWYgdGVzdF9wZW5fcG9pbnRlcl9wcm9wZXJ0aWVzKHNlc3Npb24sIHRlc3Rf
YWN0aW9uc19wb2ludGVyX3BhZ2UsIHBlbl9jaGFpbik6CisgICAgcG9pbnRlckFyZWEgPSBzZXNz
aW9uLmZpbmQuY3NzKCIjcG9pbnRlckFyZWEiLCBhbGw9RmFsc2UpCisgICAgY2VudGVyID0gZ2V0
X2ludmlld19jZW50ZXIocG9pbnRlckFyZWEucmVjdCwgZ2V0X3ZpZXdwb3J0X3JlY3Qoc2Vzc2lv
bikpCisgICAgcGVuX2NoYWluLnBvaW50ZXJfbW92ZSgwLCAwLCBvcmlnaW49cG9pbnRlckFyZWEp
IFwKKyAgICAgICAgLnBvaW50ZXJfZG93bihwcmVzc3VyZT0wLjM2LCB0aWx0X3g9LTcyLCB0aWx0
X3k9OSwgdHdpc3Q9ODYpIFwKKyAgICAgICAgLnBvaW50ZXJfbW92ZSgxMCwgMTAsIG9yaWdpbj1w
b2ludGVyQXJlYSkgXAorICAgICAgICAucG9pbnRlcl91cCgpIFwKKyAgICAgICAgLnBvaW50ZXJf
bW92ZSg4MCwgNTAsIG9yaWdpbj1wb2ludGVyQXJlYSkgXAorICAgICAgICAucGVyZm9ybSgpCisg
ICAgZXZlbnRzID0gZ2V0X2V2ZW50cyhzZXNzaW9uKQorICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9
PSAxMAorICAgIGV2ZW50X3R5cGVzID0gW2VbInR5cGUiXSBmb3IgZSBpbiBldmVudHNdCisgICAg
YXNzZXJ0IFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJtb3ZlIiwgInBv
aW50ZXJkb3duIiwKKyAgICAgICAgICAgICJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAi
cG9pbnRlcm1vdmUiLCAicG9pbnRlcnVwIiwKKyAgICAgICAgICAgICJwb2ludGVyb3V0IiwgInBv
aW50ZXJsZWF2ZSJdID09IGV2ZW50X3R5cGVzCisgICAgYXNzZXJ0IGV2ZW50c1szXVsidHlwZSJd
ID09ICJwb2ludGVyZG93biIKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJwYWdlWCJdID09IHB5dGVz
dC5hcHByb3goY2VudGVyWyJ4Il0sIGFicz0xLjApCisgICAgYXNzZXJ0IGV2ZW50c1szXVsicGFn
ZVkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBl
dmVudHNbM11bInRhcmdldCJdID09ICJwb2ludGVyQXJlYSIKKyAgICBhc3NlcnQgZXZlbnRzWzNd
WyJwb2ludGVyVHlwZSJdID09ICJwZW4iCisgICAgIyBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB3aWR0
aCBhbmQgaGVpZ2h0IGZvciBtb3VzZSBhbmQgcGVuIGlucHV0cyBpcyAxCisgICAgYXNzZXJ0IHJv
dW5kKGV2ZW50c1szXVsid2lkdGgiXSwgMikgPT0gMQorICAgIGFzc2VydCByb3VuZChldmVudHNb
M11bImhlaWdodCJdLCAyKSA9PSAxCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1szXVsicHJlc3N1
cmUiXSwgMikgPT0gMC4zNgorICAgIGFzc2VydCBldmVudHNbM11bInRpbHRYIl0gPT0gLTcyCisg
ICAgYXNzZXJ0IGV2ZW50c1szXVsidGlsdFkiXSA9PSA5CisgICAgYXNzZXJ0IGV2ZW50c1szXVsi
dHdpc3QiXSA9PSA4NgorICAgIGFzc2VydCBldmVudHNbNl1bInR5cGUiXSA9PSAicG9pbnRlcm1v
dmUiCisgICAgYXNzZXJ0IGV2ZW50c1s2XVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRl
clsieCJdKzEwLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbNl1bInBhZ2VZIl0gPT0gcHl0
ZXN0LmFwcHJveChjZW50ZXJbInkiXSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzZd
WyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50c1s2XVsicG9pbnRl
clR5cGUiXSA9PSAicGVuIgorICAgIGFzc2VydCByb3VuZChldmVudHNbNl1bIndpZHRoIl0sIDIp
ID09IDEKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzZdWyJoZWlnaHQiXSwgMikgPT0gMQorICAg
ICMgVGhlIGRlZmF1bHQgdmFsdWUgb2YgcHJlc3N1cmUgZm9yIGFsbCBpbnB1dHMgaXMgMC41LCBv
dGhlciBwcm9wZXJ0aWVzIGFyZSAwCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1s2XVsicHJlc3N1
cmUiXSwgMikgPT0gMC41CisgICAgYXNzZXJ0IGV2ZW50c1s2XVsidGlsdFgiXSA9PSAwCisgICAg
YXNzZXJ0IGV2ZW50c1s2XVsidGlsdFkiXSA9PSAwCisgICAgYXNzZXJ0IGV2ZW50c1s2XVsidHdp
c3QiXSA9PSAwCisKKworZGVmIHRlc3RfdG91Y2hfcG9pbnRlcl9wcm9wZXJ0aWVzKHNlc3Npb24s
IHRlc3RfYWN0aW9uc19wb2ludGVyX3BhZ2UsIHRvdWNoX2NoYWluKToKKyAgICBwb2ludGVyQXJl
YSA9IHNlc3Npb24uZmluZC5jc3MoIiNwb2ludGVyQXJlYSIsIGFsbD1GYWxzZSkKKyAgICBjZW50
ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihwb2ludGVyQXJlYS5yZWN0LCBnZXRfdmlld3BvcnRfcmVj
dChzZXNzaW9uKSkKKyAgICB0b3VjaF9jaGFpbi5wb2ludGVyX21vdmUoMCwgMCwgb3JpZ2luPXBv
aW50ZXJBcmVhKSBcCisgICAgICAgIC5wb2ludGVyX2Rvd24od2lkdGg9MjMsIGhlaWdodD0zMSwg
cHJlc3N1cmU9MC43OCwgdGlsdF94PTIxLCB0aWx0X3k9LTgsIHR3aXN0PTM1NSkgXAorICAgICAg
ICAucG9pbnRlcl9tb3ZlKDEwLCAxMCwgb3JpZ2luPXBvaW50ZXJBcmVhLCB3aWR0aD0zOSwgaGVp
Z2h0PTM1LCBwcmVzc3VyZT0wLjkxLCB0aWx0X3g9LTE5LCB0aWx0X3k9NjIsIHR3aXN0PTM0NSkg
XAorICAgICAgICAucG9pbnRlcl91cCgpIFwKKyAgICAgICAgLnBvaW50ZXJfbW92ZSg4MCwgNTAs
IG9yaWdpbj1wb2ludGVyQXJlYSkgXAorICAgICAgICAucGVyZm9ybSgpCisgICAgZXZlbnRzID0g
Z2V0X2V2ZW50cyhzZXNzaW9uKQorICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9PSA3CisgICAgZXZl
bnRfdHlwZXMgPSBbZVsidHlwZSJdIGZvciBlIGluIGV2ZW50c10KKyAgICBhc3NlcnQgWyJwb2lu
dGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcmRvd24iLCAicG9pbnRlcm1vdmUiLAor
ICAgICAgICAgICAgInBvaW50ZXJ1cCIsICJwb2ludGVyb3V0IiwgInBvaW50ZXJsZWF2ZSJdID09
IGV2ZW50X3R5cGVzCisgICAgYXNzZXJ0IGV2ZW50c1syXVsidHlwZSJdID09ICJwb2ludGVyZG93
biIKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJwYWdlWCJdID09IHB5dGVzdC5hcHByb3goY2VudGVy
WyJ4Il0sIGFicz0xLjApCisgICAgYXNzZXJ0IGV2ZW50c1syXVsicGFnZVkiXSA9PSBweXRlc3Qu
YXBwcm94KGNlbnRlclsieSJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbMl1bInRhcmdl
dCJdID09ICJwb2ludGVyQXJlYSIKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJwb2ludGVyVHlwZSJd
ID09ICJ0b3VjaCIKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJ3aWR0aCJdLCAyKSA9PSAy
MworICAgIGFzc2VydCByb3VuZChldmVudHNbMl1bImhlaWdodCJdLCAyKSA9PSAzMQorICAgIGFz
c2VydCByb3VuZChldmVudHNbMl1bInByZXNzdXJlIl0sIDIpID09IDAuNzgKKyAgICBhc3NlcnQg
ZXZlbnRzWzJdWyJ0aWx0WCJdID09IDIxCisgICAgYXNzZXJ0IGV2ZW50c1syXVsidGlsdFkiXSA9
PSAtOAorICAgIGFzc2VydCBldmVudHNbMl1bInR3aXN0Il0gPT0gMzU1CisgICAgYXNzZXJ0IGV2
ZW50c1szXVsidHlwZSJdID09ICJwb2ludGVybW92ZSIKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJw
YWdlWCJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ4Il0rMTAsIGFicz0xLjApCisgICAgYXNz
ZXJ0IGV2ZW50c1szXVsicGFnZVkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdKzEwLCBh
YnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbM11bInRhcmdldCJdID09ICJwb2ludGVyQXJlYSIK
KyAgICBhc3NlcnQgZXZlbnRzWzNdWyJwb2ludGVyVHlwZSJdID09ICJ0b3VjaCIKKyAgICBhc3Nl
cnQgcm91bmQoZXZlbnRzWzNdWyJ3aWR0aCJdLCAyKSA9PSAzOQorICAgIGFzc2VydCByb3VuZChl
dmVudHNbM11bImhlaWdodCJdLCAyKSA9PSAzNQorICAgIGFzc2VydCByb3VuZChldmVudHNbM11b
InByZXNzdXJlIl0sIDIpID09IDAuOTEKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WCJdID09
IC0xOQorICAgIGFzc2VydCBldmVudHNbM11bInRpbHRZIl0gPT0gNjIKKyAgICBhc3NlcnQgZXZl
bnRzWzNdWyJ0d2lzdCJdID09IDM0NQorCisKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZHJh
Z19kdXJhdGlvbiIsIFswLCAzMDAsIDgwMF0pCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImR4
LCBkeSIsIFsKICAgICAoMjAsIDApLCAoMCwgMTUpLCAoMTAsIDE1KSwgKC0yMCwgMCksICgxMCwg
LTE1KSwgKC0xMCwgLTE1KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9jb250ZXh0bWVudS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rp
b25zL3BvaW50ZXJfY29udGV4dG1lbnUucHkKaW5kZXggZmRhM2YxOGJiYzFjLi41MGY2ODQzMjdm
MmEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfY29udGV4dG1lbnUucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRl
cl9jb250ZXh0bWVudS5weQpAQCAtMSw3ICsxLDggQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0
ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5rZXlzIGltcG9ydCBLZXlzCi1mcm9tIHRlc3Rz
LnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9l
dmVudHMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBn
ZXRfZXZlbnRzCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QK
IAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm1vZGlmaWVyLCBwcm9wIiwgWwpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvcG9pbnRlcl9kYmxjbGljay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkKaW5k
ZXggOGM4OWNlZjVmMzgwLi41YmU2MzVhNGQ1NjAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJs
Y2xpY2sucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9kYmxjbGljay5weQpAQCAtMSw3ICsxLDggQEAKIGlt
cG9ydCBweXRlc3QKIAotZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUg
aW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9u
cy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50cwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9tb3ZlX3RvX2Nvb3JkaW5hdGVzCitmcm9tIHRlc3RzLnN1cHBv
cnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImNsaWNrX3BhdXNlIiwgWzAsIDIwMF0pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX21vZGlm
aWVyX2NsaWNrLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGljay5weQppbmRleCBiYTgxZjZk
MDkwYjIuLjI4YzQwODZlMGY4YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGlj
ay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Bl
cmZvcm1fYWN0aW9ucy9wb2ludGVyX21vZGlmaWVyX2NsaWNrLnB5CkBAIC0xLDcgKzEsOCBAQAog
aW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LmtleXMg
aW1wb3J0IEtleXMKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGlt
cG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMu
c3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxw
ZXJzIGltcG9ydCBmaWx0ZXJfZGljdAogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgibW9k
aWZpZXIsIHByb3AiLCBbCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX29yaWdpbi5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3Bv
aW50ZXJfb3JpZ2luLnB5CmluZGV4IDRjOWRjODc5ZTk5OS4uYzRlNWRiN2EwMDE3IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1f
YWN0aW9ucy9wb2ludGVyX29yaWdpbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX29yaWdpbi5weQpAQCAt
MywyMyArMywyNSBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgTW92ZVRh
cmdldE91dE9mQm91bmRzRXhjZXB0aW9uCiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1
cHBvcnQubW91c2UgaW1wb3J0IGdldF9pbnZpZXdfY2VudGVyLCBnZXRfdmlld3BvcnRfcmVjdAot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAotZGVmIG9yaWdpbl9k
b2MoaW5uZXJfc3R5bGUsIG91dGVyX3N0eWxlPSIiKToKLSAgICByZXR1cm4gaW5saW5lKCIiIgot
ICAgICAgPGRpdiBpZD0ib3V0ZXIiIHN0eWxlPSJ7MX0iCi0gICAgICAgICAgIG9ubW91c2Vtb3Zl
PSJ3aW5kb3cuY29vcmRzID0ge3t4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZfX0i
PgotICAgICAgICA8ZGl2IGlkPSJpbm5lciIgc3R5bGU9InswfSI+PC9kaXY+Ci0gICAgICA8L2Rp
dj4KLSAgICAiIiIuZm9ybWF0KGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZSkpCitAcHl0ZXN0LmZp
eHR1cmUKK2RlZiBvcmlnaW5fZG9jKGlubGluZSk6CisgICAgZGVmIG9yaWdpbl9kb2MoaW5uZXJf
c3R5bGUsIG91dGVyX3N0eWxlPSIiKToKKyAgICAgICAgcmV0dXJuIGlubGluZSgiIiIKKyAgICAg
ICAgICA8ZGl2IGlkPSJvdXRlciIgc3R5bGU9InsxfSIKKyAgICAgICAgICAgICAgIG9ubW91c2Vt
b3ZlPSJ3aW5kb3cuY29vcmRzID0ge3t4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZ
fX0iPgorICAgICAgICAgICAgPGRpdiBpZD0iaW5uZXIiIHN0eWxlPSJ7MH0iPjwvZGl2PgorICAg
ICAgICAgIDwvZGl2PgorICAgICAgICAiIiIuZm9ybWF0KGlubmVyX3N0eWxlLCBvdXRlcl9zdHls
ZSkpCisgICAgcmV0dXJuIG9yaWdpbl9kb2MKIAogCiBkZWYgZ2V0X2NsaWNrX2Nvb3JkaW5hdGVz
KHNlc3Npb24pOgogICAgIHJldHVybiBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2lu
ZG93LmNvb3JkczsiKQogCiAKLWRlZiB0ZXN0X3ZpZXdwb3J0X2luc2lkZShzZXNzaW9uLCBtb3Vz
ZV9jaGFpbik6CitkZWYgdGVzdF92aWV3cG9ydF9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4s
IG9yaWdpbl9kb2MpOgogICAgIHBvaW50ID0geyJ4IjogNTAsICJ5IjogNTB9CiAKICAgICBzZXNz
aW9uLnVybCA9IG9yaWdpbl9kb2MoIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3Jv
dW5kOiBncmVlbjsiKQpAQCAtMzksNyArNDEsNyBAQCBkZWYgdGVzdF92aWV3cG9ydF9vdXRzaWRl
KHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICAgICAgICAgIC5wZXJmb3JtKCkKIAogCi1kZWYg
dGVzdF9wb2ludGVyX2luc2lkZShzZXNzaW9uLCBtb3VzZV9jaGFpbik6CitkZWYgdGVzdF9wb2lu
dGVyX2luc2lkZShzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAgICAgc3RhcnRf
cG9pbnQgPSB7IngiOiA1MCwgInkiOiA1MH0KICAgICBvZmZzZXQgPSB7IngiOiAxMCwgInkiOiA1
fQogCkBAIC02MSw3ICs2Myw3IEBAIGRlZiB0ZXN0X3BvaW50ZXJfb3V0c2lkZShzZXNzaW9uLCBt
b3VzZV9jaGFpbik6CiAgICAgICAgICAgICAucGVyZm9ybSgpCiAKIAotZGVmIHRlc3RfZWxlbWVu
dF9jZW50ZXJfcG9pbnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9j
ZW50ZXJfcG9pbnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHNlc3Np
b24udXJsID0gb3JpZ2luX2RvYygid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91
bmQ6IGdyZWVuOyIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1G
YWxzZSkKICAgICBjZW50ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihlbGVtLnJlY3QsIGdldF92aWV3
cG9ydF9yZWN0KHNlc3Npb24pKQpAQCAtNzUsNyArNzcsNyBAQCBkZWYgdGVzdF9lbGVtZW50X2Nl
bnRlcl9wb2ludChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgYXNzZXJ0IGNsaWNrX2Nvb3Jk
c1sieSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0sIGFicyA9IDEuMCkKIAogCi1kZWYg
dGVzdF9lbGVtZW50X2NlbnRlcl9wb2ludF93aXRoX29mZnNldChzZXNzaW9uLCBtb3VzZV9jaGFp
bik6CitkZWYgdGVzdF9lbGVtZW50X2NlbnRlcl9wb2ludF93aXRoX29mZnNldChzZXNzaW9uLCBt
b3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3
aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgYmFja2dyb3VuZDogZ3JlZW47IikKICAgICBlbGVt
ID0gc2Vzc2lvbi5maW5kLmNzcygiI2lubmVyIiwgYWxsPUZhbHNlKQogICAgIGNlbnRlciA9IGdl
dF9pbnZpZXdfY2VudGVyKGVsZW0ucmVjdCwgZ2V0X3ZpZXdwb3J0X3JlY3Qoc2Vzc2lvbikpCkBA
IC04OSw3ICs5MSw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfY2VudGVyX3BvaW50X3dpdGhfb2Zmc2V0
KHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICBhc3NlcnQgY2xpY2tfY29vcmRzWyJ5Il0gPT0g
cHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSArIDE1LCBhYnMgPSAxLjApCiAKIAotZGVmIHRlc3Rf
ZWxlbWVudF9pbl92aWV3X2NlbnRlcl9wb2ludF9wYXJ0bHlfdmlzaWJsZShzZXNzaW9uLCBtb3Vz
ZV9jaGFpbik6CitkZWYgdGVzdF9lbGVtZW50X2luX3ZpZXdfY2VudGVyX3BvaW50X3BhcnRseV92
aXNpYmxlKHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBzZXNzaW9uLnVy
bCA9IG9yaWdpbl9kb2MoIiIid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6
IGdyZWVuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7IGxlZnQ6IC01MHB4OyB0b3A6IC0yNXB4OyIiIikKICAgICBlbGVtID0gc2Vzc2lvbi5maW5k
LmNzcygiI2lubmVyIiwgYWxsPUZhbHNlKQpAQCAtMTA0LDcgKzEwNiw3IEBAIGRlZiB0ZXN0X2Vs
ZW1lbnRfaW5fdmlld19jZW50ZXJfcG9pbnRfcGFydGx5X3Zpc2libGUoc2Vzc2lvbiwgbW91c2Vf
Y2hhaW4pOgogICAgIGFzc2VydCBjbGlja19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNl
bnRlclsieSJdLCBhYnMgPSAxLjApCiAKIAotZGVmIHRlc3RfZWxlbWVudF9sYXJnZXJfdGhhbl92
aWV3cG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CitkZWYgdGVzdF9lbGVtZW50X2xhcmdlcl90
aGFuX3ZpZXdwb3J0KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBzZXNz
aW9uLnVybCA9IG9yaWdpbl9kb2MoIndpZHRoOiAzMDB2dzsgaGVpZ2h0OiAzMDB2aDsgYmFja2dy
b3VuZDogZ3JlZW47IikKICAgICBlbGVtID0gc2Vzc2lvbi5maW5kLmNzcygiI2lubmVyIiwgYWxs
PUZhbHNlKQogICAgIGNlbnRlciA9IGdldF9pbnZpZXdfY2VudGVyKGVsZW0ucmVjdCwgZ2V0X3Zp
ZXdwb3J0X3JlY3Qoc2Vzc2lvbikpCkBAIC0xMTgsNyArMTIwLDcgQEAgZGVmIHRlc3RfZWxlbWVu
dF9sYXJnZXJfdGhhbl92aWV3cG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgYXNzZXJ0
IGNsaWNrX2Nvb3Jkc1sieSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0sIGFicyA9IDEu
MCkKIAogCi1kZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfdmlld19wb3J0KHNlc3Npb24sIG1v
dXNlX2NoYWluKToKK2RlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl92aWV3X3BvcnQoc2Vzc2lv
biwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHNlc3Npb24udXJsID0gb3JpZ2luX2Rv
YygiIiJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgYmFja2dyb3VuZDogZ3JlZW47CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogLTIw
MHB4OyB0b3A6IC0xMDBweDsiIiIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5l
ciIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfcGF1c2VfZGJsY2xpY2sucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy9wb2ludGVyX3BhdXNlX2RibGNsaWNrLnB5CmluZGV4IDg1Njc5ZjM2MTRhOC4uZDQ2MTc4
YTFkNjUwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3BhdXNlX2RibGNsaWNrLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25z
L3BvaW50ZXJfcGF1c2VfZGJsY2xpY2sucHkKQEAgLTEsNSArMSw2IEBACiBmcm9tIHRlc3RzLnBl
cmZvcm1fYWN0aW9ucy5zdXBwb3J0Lm1vdXNlIGltcG9ydCBnZXRfaW52aWV3X2NlbnRlciwgZ2V0
X3ZpZXdwb3J0X3JlY3QKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5l
IGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlv
bnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKK2Zyb20gdGVzdHMuc3VwcG9ydC5o
ZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGljdAogCiBfREJMQ0xJQ0tfSU5URVJWQUwgPSA2NDAKIApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
ZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl90cmlwbGVjbGljay5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfdHJpcGxl
Y2xpY2sucHkKaW5kZXggODFkNTFiZTFhN2U2Li44MjM5ZmMyYTYwNjIgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25z
L3BvaW50ZXJfdHJpcGxlY2xpY2sucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl90cmlwbGVjbGljay5weQpA
QCAtMSwxMyArMSwxMyBAQAotZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZp
bmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0
aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50cwogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9tb3ZlX3RvX2Nvb3JkaW5hdGVzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGlt
cG9ydCBmaWx0ZXJfZGljdAogCiBsb3RzX29mX3RleHQgPSAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0
IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9y
ICJcCiAgICAgICAgICAgICAgICAiaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25h
IGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCAiXAogICAgICAg
ICAgICAgICAgImV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4
IGVhIGNvbW1vZG8gY29uc2VxdWF0LiIKIAogCi1kZWYgdGVzdF90cmlwbGVjbGlja19hdF9jb29y
ZGluYXRlcyhzZXNzaW9uLCBtb3VzZV9jaGFpbik6CitkZWYgdGVzdF90cmlwbGVjbGlja19hdF9j
b29yZGluYXRlcyhzZXNzaW9uLCBtb3VzZV9jaGFpbiwgaW5saW5lKToKICAgICAiIiIKICAgICAg
ICAgVGhpcyB0ZXN0IGRvZXMgYSB0cmlwbGUgY2xpY2sgb24gYSBjb29yZGluYXRlLiBPbiBkZXNr
dG9wIHBsYXRmb3JtcwogICAgICAgICB0aGlzIHdpbGwgc2VsZWN0IGEgcGFyYWdyYXBoLiBPbiBt
b2JpbGUgdGhpcyB3aWxsIG5vdCBoYXZlIHRoZSBzYW1lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0
L2tleXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Bl
cmZvcm1fYWN0aW9ucy9zdXBwb3J0L2tleXMucHkKaW5kZXggMmQzOGUxZGZmODc2Li45ZTg3ZWJm
YWMxZDcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQva2V5cy5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L2tl
eXMucHkKQEAgLTIxLDcgKzIxLDYgQEAgaW1wb3J0IHN5cwogCiBmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBPcmRlcmVkRGljdAogZnJvbSBpbnNwZWN0IGltcG9ydCBnZXRtZW1iZXJzCi1mcm9tIHNp
eCBpbXBvcnQgdGV4dF90eXBlCiAKIGNsYXNzIEtleXMob2JqZWN0KToKICAgICAiIiIKQEAgLTEw
Nyw3ICsxMDYsNyBAQCBjbGFzcyBLZXlzKG9iamVjdCk6CiAgICAgUl9ERUxFVEUgPSB1Ilx1RTA1
RCIKIAogCi1BTExfS0VZUyA9IGdldG1lbWJlcnMoS2V5cywgbGFtYmRhIHg6IHR5cGUoeCkgPT0g
dGV4dF90eXBlKQorQUxMX0tFWVMgPSBnZXRtZW1iZXJzKEtleXMsIGxhbWJkYSB4OiB0eXBlKHgp
ID09IHN0cikKIAogQUxMX0VWRU5UUyA9IE9yZGVyZWREaWN0KAogICAgIFsKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rp
b25zL3N1cHBvcnQvcmVmaW5lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9yZWZpbmUucHkKaW5kZXggZDVkMjRl
OTM0ZjYxLi4zNWM5NjJiOWVjYmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQvcmVmaW5lLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9h
Y3Rpb25zL3N1cHBvcnQvcmVmaW5lLnB5CkBAIC0yNywxMiArMjcsMyBAQCBkZWYgZ2V0X2tleXMo
aW5wdXRfZWwpOgogICAgICAgICByZXR1cm4gIiIKICAgICBlbHNlOgogICAgICAgICByZXR1cm4g
cnYKLQotCi1kZWYgZmlsdGVyX2RpY3Qoc291cmNlLCBkKToKLSAgICAiIiJGaWx0ZXIgYHNvdXJj
ZWAgZGljdCB0byBvbmx5IGNvbnRhaW4gc2FtZSBrZXlzIGFzIGBkYCBkaWN0LgotCi0gICAgOnBh
cmFtIHNvdXJjZTogZGljdGlvbmFyeSB0byBmaWx0ZXIuCi0gICAgOnBhcmFtIGQ6IGRpY3Rpb25h
cnkgd2hvc2Uga2V5cyBkZXRlcm1pbmUgdGhlIGZpbHRlcmluZy4KLSAgICAiIiIKLSAgICByZXR1
cm4ge2s6IHNvdXJjZVtrXSBmb3IgayBpbiBkLmtleXMoKX0KZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBv
cnQvdGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3Rlc3RfYWN0
aW9uc19wb2ludGVyX3dkc3BlYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uZjFmZDliMmRhM2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC90ZXN0
X2FjdGlvbnNfcG9pbnRlcl93ZHNwZWMuaHRtbApAQCAtMCwwICsxLDEwMiBAQAor77u/PCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0
bGU+VGVzdCBBY3Rpb25zPC90aXRsZT4KKyAgICA8c3R5bGU+CisgICAgICBkaXYgeyBwYWRkaW5n
OjBweDsgbWFyZ2luOiAwcHg7IH0KKyAgICAgICN0cmFja1BvaW50ZXIgeyBwb3NpdGlvbjogZml4
ZWQ7IH0KKyAgICAgICNyZXN1bHRDb250YWluZXIgeyB3aWR0aDogNjAwcHg7IGhlaWdodDogNjBw
eDsgfQorICAgICAgLmFyZWEgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgYmFja2dyb3Vu
ZC1jb2xvcjogI2NjYzsgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgInVz
ZSBzdHJpY3QiOworICAgICAgICB2YXIgZWxzID0ge307CisgICAgICAgIHZhciBhbGxFdmVudHMg
PSB7IGV2ZW50czogW10gfTsKKyAgICAgICAgZnVuY3Rpb24gZGlzcGxheU1lc3NhZ2UobWVzc2Fn
ZSkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV2ZW50cyIpLmlubmVy
SFRNTCA9ICI8cD4iICsgbWVzc2FnZSArICI8L3A+IjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGFwcGVuZE1lc3NhZ2UobWVzc2FnZSkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImV2ZW50cyIpLmlubmVySFRNTCArPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9w
PiI7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZWNvcmRQb2ludGVyRXZlbnQoZXZl
bnQpIHsKKyAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImNvbnRleHRtZW51IikgeworICAg
ICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICB9CisgICAgICAgICAg
YWxsRXZlbnRzLmV2ZW50cy5wdXNoKHsKKyAgICAgICAgICAgICJ0eXBlIjogZXZlbnQudHlwZSwK
KyAgICAgICAgICAgICJidXR0b24iOiBldmVudC5idXR0b24sCisgICAgICAgICAgICAiYnV0dG9u
cyI6IGV2ZW50LmJ1dHRvbnMsCisgICAgICAgICAgICAicGFnZVgiOiBldmVudC5wYWdlWCwKKyAg
ICAgICAgICAgICJwYWdlWSI6IGV2ZW50LnBhZ2VZLAorICAgICAgICAgICAgImN0cmxLZXkiOiBl
dmVudC5jdHJsS2V5LAorICAgICAgICAgICAgIm1ldGFLZXkiOiBldmVudC5tZXRhS2V5LAorICAg
ICAgICAgICAgImFsdEtleSI6IGV2ZW50LmFsdEtleSwKKyAgICAgICAgICAgICJzaGlmdEtleSI6
IGV2ZW50LnNoaWZ0S2V5LAorICAgICAgICAgICAgInRhcmdldCI6IGV2ZW50LnRhcmdldC5pZCwK
KyAgICAgICAgICAgICJwb2ludGVyVHlwZSI6IGV2ZW50LnBvaW50ZXJUeXBlLAorICAgICAgICAg
ICAgIndpZHRoIjogZXZlbnQud2lkdGgsCisgICAgICAgICAgICAiaGVpZ2h0IjogZXZlbnQuaGVp
Z2h0LAorICAgICAgICAgICAgInByZXNzdXJlIjogZXZlbnQucHJlc3N1cmUsCisgICAgICAgICAg
ICAidGFuZ2VudGlhbFByZXNzdXJlIjogZXZlbnQudGFuZ2VudGlhbFByZXNzdXJlLAorICAgICAg
ICAgICAgInRpbHRYIjogZXZlbnQudGlsdFgsCisgICAgICAgICAgICAidGlsdFkiOiBldmVudC50
aWx0WSwKKyAgICAgICAgICAgICJ0d2lzdCI6IGV2ZW50LnR3aXN0LAorICAgICAgICAgICAgImFs
dGl0dWRlQW5nbGUiOiBldmVudC5hbHRpdHVkZUFuZ2xlLAorICAgICAgICAgICAgImF6aW11dGhB
bmdsZSI6IGV2ZW50LmF6aW11dGhBbmdsZQorICAgICAgICAgIH0pOworICAgICAgICAgIGFwcGVu
ZE1lc3NhZ2UoZXZlbnQudHlwZSArICIgIiArCisgICAgICAgICAgICAgICJidXR0b246ICIgKyBl
dmVudC5idXR0b24gKyAiLCAiICsKKyAgICAgICAgICAgICAgInBhZ2VYOiAiICsgZXZlbnQucGFn
ZVggKyAiLCAiICsKKyAgICAgICAgICAgICAgInBhZ2VZOiAiICsgZXZlbnQucGFnZVkgKyAiLCAi
ICsKKyAgICAgICAgICAgICAgImJ1dHRvbjogIiArIGV2ZW50LmJ1dHRvbiArICIsICIgKworICAg
ICAgICAgICAgICAiYnV0dG9uczogIiArIGV2ZW50LmJ1dHRvbnMgKyAiLCAiICsKKyAgICAgICAg
ICAgICAgImN0cmxLZXk6ICIgKyBldmVudC5jdHJsS2V5ICsgIiwgIiArCisgICAgICAgICAgICAg
ICJhbHRLZXk6ICIgKyBldmVudC5hbHRLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgIm1ldGFL
ZXk6ICIgKyBldmVudC5tZXRhS2V5ICsgIiwgIiArCisgICAgICAgICAgICAgICJzaGlmdEtleTog
IiArIGV2ZW50LnNoaWZ0S2V5ICsgIiwgIiArCisgICAgICAgICAgICAgICJ0YXJnZXQgaWQ6ICIg
KyBldmVudC50YXJnZXQuaWQgKyAiLCAiICsKKyAgICAgICAgICAgICAgInBvaW50ZXJUeXBlOiAi
ICsgZXZlbnQucG9pbnRlclR5cGUgKyAiLCAiICsKKyAgICAgICAgICAgICAgIndpZHRoOiAiICsg
ZXZlbnQud2lkdGggKyAiLCAiICsKKyAgICAgICAgICAgICAgImhlaWdodDogIiArIGV2ZW50Lmhl
aWdodCArICIsICIgKworICAgICAgICAgICAgICAicHJlc3N1cmU6ICIgKyBldmVudC5wcmVzc3Vy
ZSArICIsICIgKworICAgICAgICAgICAgICAidGFuZ2VudGlhbFByZXNzdXJlOiAiICsgZXZlbnQu
dGFuZ2VudGlhbFByZXNzdXJlICsgIiwgIiArCisgICAgICAgICAgICAgICJ0aWx0WDogIiArIGV2
ZW50LnRpbHRYICsgIiwgIiArCisgICAgICAgICAgICAgICJ0aWx0WTogIiArIGV2ZW50LnRpbHRZ
ICsgIiwgIiArCisgICAgICAgICAgICAgICJ0d2lzdDogIiArIGV2ZW50LnR3aXN0ICsgIiwgIiAr
CisgICAgICAgICAgICAgICJhbHRpdHVkZUFuZ2xlOiAiICsgZXZlbnQuYWx0aXR1ZGVBbmdsZSAr
ICIsICIgKworICAgICAgICAgICAgICAiYXppbXV0aEFuZ2xlOiAiICsgZXZlbnQuYXppbXV0aEFu
Z2xlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0RXZlbnRzKCkgeworICAg
ICAgICAgIGFsbEV2ZW50cy5ldmVudHMubGVuZ3RoID0gMDsKKyAgICAgICAgICBkaXNwbGF5TWVz
c2FnZSgiIik7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHBvaW50ZXJB
cmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvaW50ZXJBcmVhIik7CisgICAgICAgICAg
cG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCByZWNvcmRQb2ludGVy
RXZlbnQpOworICAgICAgICAgIHBvaW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJt
b3ZlIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVu
dExpc3RlbmVyKCJwb2ludGVydXAiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIHBv
aW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdmVyIiwgcmVjb3JkUG9pbnRlckV2
ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZW50
ZXIiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIHBvaW50ZXJBcmVhLmFkZEV2ZW50
TGlzdGVuZXIoInBvaW50ZXJvdXQiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIHBv
aW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsIHJlY29yZFBvaW50ZXJF
dmVudCk7CisgICAgICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxk
aXYgaWQ9InRyYWNrUG9pbnRlciIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKyAgPGRpdj4KKyAgICA8
aDI+UG9pbnRlclJlcG9ydGVyPC9oMj4KKyAgICA8ZGl2IGlkPSJwb2ludGVyQXJlYSIgY2xhc3M9
ImFyZWEiPgorICAgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBpZD0icmVzdWx0Q29udGFpbmVy
Ij4KKyAgICA8aDI+RXZlbnRzPC9oMj4KKyAgICA8ZGl2IGlkPSJldmVudHMiPjwvZGl2PgorICA8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3doZWVsLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvd2hl
ZWwucHkKaW5kZXggZmM4NGYyZjJlMDE0Li42NzczNDgwMGIxOWQgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3do
ZWVsLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cGVyZm9ybV9hY3Rpb25zL3doZWVsLnB5CkBAIC0yLDggKzIsOSBAQCBpbXBvcnQgcHl0ZXN0CiAK
IGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hXaW5kb3dFeGNlcHRpb24KIAotZnJv
bSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0
LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBp
bXBvcnQgZ2V0X2V2ZW50cwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9tb3ZlX3RvX2Nvb3JkaW5hdGVzCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQg
ZmlsdGVyX2RpY3QKIAogCiBkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIHdo
ZWVsX2NoYWluKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvcHJpbnQvcHJpbnRjbWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5CmluZGV4IDM0MWUwNjlmN2JiNi4u
ODkyOTZkMmIxNDZiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcHJpbnQvcHJpbnRjbWQucHkKQEAgLTEsMTEgKzEsOCBA
QAotaW1wb3J0IGJhc2U2NAorZnJvbSBiYXNlNjQgaW1wb3J0IGRlY29kZWJ5dGVzCiAKIGltcG9y
dCBweXRlc3QKIAotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9iaW5hcnkKLQogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBkb19wcmludChzZXNz
aW9uLCBvcHRpb25zKToKQEAgLTI3LDExICsyNCwxMSBAQCBkZWYgdGVzdF9ub190b3BfYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKIGRlZiB0ZXN0X25vX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGRvX3ByaW50
KHNlc3Npb24sIHt9KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAg
cGRmID0gYmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5KHZhbHVlKSkKKyAgICBwZGYg
PSBkZWNvZGVieXRlcyh2YWx1ZS5lbmNvZGUoKSkKICAgICBhc3NlcnRfcGRmKHBkZikKIAogCi1k
ZWYgdGVzdF9odG1sX2RvY3VtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9kb2N1bWVudChz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJUZXN0IikKIAogICAg
IHJlc3BvbnNlID0gZG9fcHJpbnQoc2Vzc2lvbiwgewpAQCAtNDAsNyArMzcsNyBAQCBkZWYgdGVz
dF9odG1sX2RvY3VtZW50KHNlc3Npb24pOgogICAgICAgICAic2hyaW5rVG9GaXQiOiBGYWxzZQog
ICAgIH0pCiAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKLSAgICBwZGYgPSBi
YXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkodmFsdWUpKQorICAgIHBkZiA9IGRlY29k
ZWJ5dGVzKHZhbHVlLmVuY29kZSgpKQogICAgICMgVE9ETzogVGVzdCB0aGF0IHRoZSBvdXRwdXQg
aXMgcmVhc29uYWJsZQogICAgIGFzc2VydF9wZGYocGRmKQogCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3VzZXJfcHJvbXB0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcHJpbnQvdXNl
cl9wcm9tcHRzLnB5CmluZGV4IGEzZjdhMTBhYzM3Mi4uMGEyOWI1MThhYzlhIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3VzZXJf
cHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3ByaW50L3VzZXJfcHJvbXB0cy5weQpAQCAtMSwxNyArMSwxNCBAQAogIyBNRVRBOiB0aW1l
b3V0PWxvbmcKLWltcG9ydCBiYXNlNjQKK2Zyb20gYmFzZTY0IGltcG9ydCBkZWNvZGVieXRlcwog
CiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfYmluYXJ5Ci0KIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogZnJvbSAucHJpbnRjbWQgaW1wb3J0IGRvX3ByaW50LCBhc3NlcnRfcGRmCiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIp
CiAKQEAgLTIwLDcgKzE3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKICAgICAgICAgcmVzcG9uc2UgPSBk
b19wcmludChzZXNzaW9uLCB7fSkKICAgICAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKIAotICAgICAgICBwZGYgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnko
dmFsdWUpKQorICAgICAgICBwZGYgPSBkZWNvZGVieXRlcyh2YWx1ZS5lbmNvZGUoKSkKICAgICAg
ICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5
cGUsIGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCiAKICAgICAgICAgYXNzZXJ0X3BkZihwZGYpCkBA
IC0yOSw3ICsyNiw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAKQEAgLTQ0LDcgKzQxLDcgQEAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIp
CiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvcmVmcmVzaC9yZWZyZXNoLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9yZWZyZXNoL3JlZnJlc2gucHkKaW5kZXggZWVmNDEzMDE3ZTVlLi4zMzU5NWQw
ZmY3MWEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcmVmcmVzaC9yZWZyZXNoLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC9yZWZyZXNoLnB5CkBAIC0yLDcgKzIsNiBAQCBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhj
ZXB0aW9uLCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24KIAotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogCiAKQEAgLTExLDcgKzEwLDcgQEAgZGVm
IHJlZnJlc2goc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9
L3JlZnJlc2giLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVz
cG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+IikKIAogICAgIHJl
c3BvbnNlID0gcmVmcmVzaChzZXNzaW9uKQpAQCAtMjQsNyArMjMsNyBAQCBkZWYgdGVzdF9ub190
b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKICAgICBhc3NlcnRf
ZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfbm9fYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorZGVmIHRlc3Rfbm9fYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGlubGluZSk6CiAgICAgdXJsID0gaW5saW5l
KCI8ZGl2IGlkPWZvbz4iKQogCiAgICAgc2Vzc2lvbi51cmwgPSB1cmwKQEAgLTQwLDcgKzM5LDcg
QEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgog
ICAgIGFzc2VydCBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0
ZXN0X2Jhc2ljKHNlc3Npb24pOgorZGVmIHRlc3RfYmFzaWMoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICB1cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAKICAgICBzZXNzaW9uLnVybCA9IHVybApA
QCAtNTYsNyArNTUsNyBAQCBkZWYgdGVzdF9iYXNpYyhzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vz
c2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKIAogCi1kZWYgdGVzdF9kaXNtaXNzZWRf
YmVmb3JldW5sb2FkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHVybF9iZWZvcmV1bmxvYWQgPSBpbmxpbmUoIiIiCiAgICAg
ICA8aW5wdXQgdHlwZT0idGV4dCI+CiAgICAgICA8c2NyaXB0PgpAQCAtNzksNyArNzgsNyBAQCBk
ZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNlc3Npb24pOgogICAgIHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0ZXN0X2hpc3RvcnlfcHVzaHN0YXRl
KHNlc3Npb24sIHVybCk6CitkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHB1c2hzdGF0ZV9wYWdlID0gaW5saW5lKCIiIgogICAgICAgPHNjcmlwdD4KICAg
ICAgICAgZnVuY3Rpb24gcHVzaFN0YXRlKCkgewpAQCAtMTExLDcgKzExMCw3IEBAIGRlZiB0ZXN0
X2hpc3RvcnlfcHVzaHN0YXRlKHNlc3Npb24sIHVybCk6CiAgICAgICAgIGVsZW1lbnQucHJvcGVy
dHkoImlkIikKIAogCi1kZWYgdGVzdF9yZWZyZXNoX3N3aXRjaGVzX3RvX3BhcmVudF9icm93c2lu
Z19jb250ZXh0KHNlc3Npb24sIGNyZWF0ZV9mcmFtZSk6CitkZWYgdGVzdF9yZWZyZXNoX3N3aXRj
aGVzX3RvX3BhcmVudF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNyZWF0ZV9mcmFtZSwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKIAogICAgIHNl
c3Npb24uc3dpdGNoX2ZyYW1lKGNyZWF0ZV9mcmFtZSgpKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWZyZXNoL3VzZXJfcHJvbXB0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC91
c2VyX3Byb21wdHMucHkKaW5kZXggYjhlZjQxOGUxMTVmLi43ZTk0NGI1M2IwOTYgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC91
c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9yZWZyZXNoL3VzZXJfcHJvbXB0cy5weQpAQCAtNCw3ICs0LDYgQEAgaW1wb3J0IHB5
dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgU3RhbGVFbGVtZW50UmVmZXJlbmNl
RXhjZXB0aW9uCiAKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNz
ZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogCiAKQEAgLTE0LDcgKzEzLDcgQEAgZGVmIHJlZnJl
c2goc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTMzLDcgKzMyLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAog
CiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwg
cmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAg
ICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAt
NTEsNyArNTAsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvcmVsZWFzZS5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25z
L3JlbGVhc2UucHkKaW5kZXggMWY0ODZmNzc1OWZkLi41ZGYxZmY0YmU5MDIgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rp
b25zL3JlbGVhc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvcmVsZWFzZS5weQpAQCAtMjAsNCArMjAsNCBAQCBkZWYg
dGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKIAog
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAg
IHJlc3BvbnNlID0gcmVsZWFzZV9hY3Rpb25zKHNlc3Npb24pCi0gICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9y
ZWxlYXNlX2FjdGlvbnMvc2VxdWVuY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zZXF1ZW5jZS5weQppbmRleCAyZDgxNmY4
MDk0YjMuLjc1MTQzZDg1Y2E2MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvc2VxdWVuY2UucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMv
c2VxdWVuY2UucHkKQEAgLTEsNiArMSw3IEBACiAjIE1FVEE6IHRpbWVvdXQ9bG9uZwogCi1mcm9t
IHRlc3RzLnJlbGVhc2VfYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3Qs
IGdldF9ldmVudHMsIGdldF9rZXlzCitmcm9tIHRlc3RzLnJlbGVhc2VfYWN0aW9ucy5zdXBwb3J0
LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50cywgZ2V0X2tleXMKK2Zyb20gdGVzdHMuc3VwcG9ydC5o
ZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGljdAogCiAKIGRlZiB0ZXN0X3JlbGVhc2Vfbm9fYWN0aW9u
c19zZW5kc19ub19ldmVudHMoc2Vzc2lvbiwga2V5X3JlcG9ydGVyKToKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25z
L3N1cHBvcnQvcmVmaW5lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvc3VwcG9ydC9yZWZpbmUucHkKaW5kZXggM2E2ZDYzZTA0
Y2U5Li45MGY3MjI1ODdjM2IgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3N1cHBvcnQvcmVmaW5lLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rp
b25zL3N1cHBvcnQvcmVmaW5lLnB5CkBAIC0yMiwxMiArMjIsMyBAQCBkZWYgZ2V0X2tleXMoaW5w
dXRfZWwpOgogICAgICAgICByZXR1cm4gIiIKICAgICBlbHNlOgogICAgICAgICByZXR1cm4gcnYK
LQotCi1kZWYgZmlsdGVyX2RpY3Qoc291cmNlLCBkKToKLSAgICAiIiJGaWx0ZXIgYHNvdXJjZWAg
ZGljdCB0byBvbmx5IGNvbnRhaW4gc2FtZSBrZXlzIGFzIGBkYCBkaWN0LgotCi0gICAgOnBhcmFt
IHNvdXJjZTogZGljdGlvbmFyeSB0byBmaWx0ZXIuCi0gICAgOnBhcmFtIGQ6IGRpY3Rpb25hcnkg
d2hvc2Uga2V5cyBkZXRlcm1pbmUgdGhlIGZpbHRlcmluZy4KLSAgICAiIiIKLSAgICByZXR1cm4g
e2s6IHNvdXJjZVtrXSBmb3IgayBpbiBkLmtleXMoKX0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc2VuZF9hbGVydF90ZXh0L3NlbmQucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3NlbmRfYWxlcnRf
dGV4dC9zZW5kLnB5CmluZGV4IDVkYTY3NTkwZGEzNC4uZDU4NDZhZDU2YjNiIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3NlbmRfYWxlcnRf
dGV4dC9zZW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc2VuZF9hbGVydF90ZXh0L3NlbmQucHkKQEAgLTQsMTIgKzQsMTEgQEAgZnJvbSB3ZWJk
cml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBmcm9tIHdlYmRyaXZlci50
cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGlt
cG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5zeW5jIGltcG9ydCBQb2xsCiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgcGFnZShzZXNzaW9uKToKK2RlZiBwYWdlKHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzY3JpcHQ+
d2luZG93LnJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ05hbWUn
KTs8L3NjcmlwdD4KICAgICAiIiIpCkBAIC01NSw3ICs1NCw3IEBAIGRlZiB0ZXN0X25vX3VzZXJf
cHJvbXB0KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5
cGUiLCBbImFsZXJ0IiwgImNvbmZpcm0iXSkKLWRlZiB0ZXN0X2FsZXJ0X2VsZW1lbnRfbm90X2lu
dGVyYWN0YWJsZShzZXNzaW9uLCBkaWFsb2dfdHlwZSk6CitkZWYgdGVzdF9hbGVydF9lbGVtZW50
X25vdF9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lLCBkaWFsb2dfdHlwZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93Lnt9KCdIZWxsbycpOzwvc2NyaXB0PiIu
Zm9ybWF0KGRpYWxvZ190eXBlKSkKIAogICAgIHJlc3BvbnNlID0gc2VuZF9hbGVydF90ZXh0KHNl
c3Npb24sICJGZWRlcmVyIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3RhdHVzL3N0YXR1cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3RhdHVzL3N0YXR1cy5weQppbmRleCAxZjBmMWJjNGZl
NzcuLjhjN2FlMjJhNjdiNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zdGF0dXMvc3RhdHVzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3RhdHVzL3N0YXR1cy5weQpAQCAtMSw3ICsxLDUg
QEAKIGltcG9ydCBqc29uCiAKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKLQogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCiAKIApAQCAtMTgsNyArMTYs
NyBAQCBkZWYgdGVzdF9nZXRfc3RhdHVzX25vX3Nlc3Npb24oaHR0cCk6CiAgICAgICAgIHZhbHVl
ID0gcGFyc2VkX29ialsidmFsdWUiXQogCiAgICAgICAgIGFzc2VydCB2YWx1ZVsicmVhZHkiXSBp
biBbVHJ1ZSwgRmFsc2VdCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlWyJtZXNzYWdl
Il0sIHRleHRfdHlwZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWVbIm1lc3NhZ2Ui
XSwgc3RyKQogCiAKIGRlZiB0ZXN0X3N0YXR1c193aXRoX3Nlc3Npb25fcnVubmluZ19vbl9lbmRw
b2ludF9ub2RlKHNlc3Npb24pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2Fzc2VydHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXNzZXJ0cy5weQppbmRleCAzYzNk
Njc3YzkwZWMuLmU2MGQ1M2I2YzZmMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2Fzc2VydHMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2Fzc2VydHMucHkKQEAg
LTEsOCArMSw2IEBACi1pbXBvcnQgYmFzZTY0CiBpbXBvcnQgaW1naGRyCiBpbXBvcnQgc3RydWN0
Ci0KLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfYmluYXJ5LCB0ZXh0X3R5cGUKK2Zyb20gYmFzZTY0
IGltcG9ydCBkZWNvZGVieXRlcwogCiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgRWxlbWVudCwgTm9T
dWNoQWxlcnRFeGNlcHRpb24sIFdlYkRyaXZlckV4Y2VwdGlvbgogCkBAIC01Miw4ICs1MCw4IEBA
IGRlZiBhc3NlcnRfZXJyb3IocmVzcG9uc2UsIGVycm9yX2NvZGUpOgogICAgIGFzc2VydCByZXNw
b25zZS5zdGF0dXMgPT0gZXJyb3JzW2Vycm9yX2NvZGVdCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4g
cmVzcG9uc2UuYm9keQogICAgIGFzc2VydCByZXNwb25zZS5ib2R5WyJ2YWx1ZSJdWyJlcnJvciJd
ID09IGVycm9yX2NvZGUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5WyJ2YWx1
ZSJdWyJtZXNzYWdlIl0sIHRleHRfdHlwZSkKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25z
ZS5ib2R5WyJ2YWx1ZSJdWyJzdGFja3RyYWNlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShyZXNwb25zZS5ib2R5WyJ2YWx1ZSJdWyJtZXNzYWdlIl0sIHN0cikKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5WyJ2YWx1ZSJdWyJzdGFja3RyYWNlIl0sIHN0cikK
ICAgICBhc3NlcnRfcmVzcG9uc2VfaGVhZGVycyhyZXNwb25zZS5oZWFkZXJzKQogCiAKQEAgLTIx
NCw2ICsyMTIsNiBAQCBkZWYgYXNzZXJ0X21vdmVfdG9fY29vcmRpbmF0ZXMocG9pbnQsIHRhcmdl
dCwgZXZlbnRzKToKIAogZGVmIGFzc2VydF9wbmcoc2NyZWVuc2hvdCk6CiAgICAgIiIiVGVzdCB0
aGF0IHNjcmVlbnNob3QgaXMgYSBCYXNlNjQgZW5jb2RlZCBQTkcgZmlsZS4iIiIKLSAgICBpbWFn
ZSA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZW5zdXJlX2JpbmFyeShzY3JlZW5zaG90KSkKKyAgICBp
bWFnZSA9IGRlY29kZWJ5dGVzKHNjcmVlbnNob3QuZW5jb2RlKCkpCiAgICAgbWltZV90eXBlID0g
aW1naGRyLndoYXQoIiIsIGltYWdlKQogICAgIGFzc2VydCBtaW1lX3R5cGUgPT0gInBuZyIsICJF
eHBlY3RlZCBpbWFnZSB0byBiZSBQTkcsIGJ1dCBpdCB3YXMge30iLmZvcm1hdChtaW1lX3R5cGUp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3N1cHBvcnQvYXV0aGVudGljYXRpb24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVudGljYXRpb24ucHkKaW5kZXggMjVhOGViOTVk
MTE0Li45ZGE0YmI3YmU1ZmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hdXRoZW50aWNhdGlvbi5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVudGljYXRp
b24ucHkKQEAgLTEsMTUgKzEsMTIgQEAKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsZW5jb2RlCitmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsZW5jb2RlCiAKIAotZGVm
IGJhc2ljX2F1dGhlbnRpY2F0aW9uKHVzZXJuYW1lPU5vbmUsIHBhc3N3b3JkPU5vbmUsIHByb3Rv
Y29sPSJodHRwIik6Ci0gICAgZnJvbSAuZml4dHVyZXMgaW1wb3J0IHNlcnZlcl9jb25maWcsIHVy
bAotICAgIGJ1aWxkX3VybCA9IHVybChzZXJ2ZXJfY29uZmlnKCkpCi0KK2RlZiBiYXNpY19hdXRo
ZW50aWNhdGlvbih1cmwsIHVzZXJuYW1lPU5vbmUsIHBhc3N3b3JkPU5vbmUsIHByb3RvY29sPSJo
dHRwIik6CiAgICAgcXVlcnkgPSB7fQogCi0gICAgcmV0dXJuIGJ1aWxkX3VybCgiL3dlYmRyaXZl
ci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5IiwKLSAgICAgICAgICAgICAgICAgICAg
IHF1ZXJ5PXVybGVuY29kZShxdWVyeSksCi0gICAgICAgICAgICAgICAgICAgICBwcm90b2NvbD1w
cm90b2NvbCkKKyAgICByZXR1cm4gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVu
dGljYXRpb24ucHkiLAorICAgICAgICAgICAgICAgcXVlcnk9dXJsZW5jb2RlKHF1ZXJ5KSwKKyAg
ICAgICAgICAgICAgIHByb3RvY29sPXByb3RvY29sKQogCiAKIGRlZiBtYWluKHJlcXVlc3QsIHJl
c3BvbnNlKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvc3VwcG9ydC9maXh0dXJlcy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9maXh0dXJlcy5weQppbmRleCA5NTdjNGQwNTg2OGIu
LmRiMzI5MzExMzFkNiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9zdXBwb3J0L2ZpeHR1cmVzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9maXh0dXJlcy5weQpAQCAtMiwxNSAr
MiwxNSBAQCBpbXBvcnQgY29weQogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogCitpbXBvcnQgYXN5
bmNpbwogaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlcgogCi1mcm9tIHNpeCBpbXBvcnQg
c3RyaW5nX3R5cGVzCi0KLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsdW5z
cGxpdAorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHVuc3BsaXQKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0IGltcG9ydCBkZWZhdWx0cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0
IGNsZWFudXBfc2Vzc2lvbgorZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGNsZWFu
dXBfc2Vzc2lvbiwgZGVlcF91cGRhdGUKK2Zyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGJ1aWxkX2lubGluZQogZnJvbSB0ZXN0cy5zdXBwb3J0Lmh0dHBfcmVxdWVzdCBpbXBvcnQgSFRU
UFJlcXVlc3QKIGZyb20gdGVzdHMuc3VwcG9ydC5zeW5jIGltcG9ydCBQb2xsCiAKQEAgLTM4LDYg
KzM4LDE3IEBAIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgogICAgICAgICAg
ICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoImNhcGFiaWxpdGllcyIsIG1hcmtlci5hcmdzLCBpZHM9
Tm9uZSkKIAogCisjIEVuc3VyZSB0aGF0IHRoZSBldmVudCBsb29wIGlzIHJlc3RhcnRlZCBvbmNl
IHBlciBzZXNzaW9uIHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0ICBvZiBvbmNlIHBlciB0ZXN0Cisj
IGlmIHdlIGRvbid0IGRvIHRoaXMsIHRlc3RzIHdpbGwgdHJ5IHRvIHJldXNlIGEgY2xvc2VkIGV2
ZW50IGxvb3AgYW5kIGZhaWwgd2l0aCBhbiBlcnJvciB0aGF0IHRoZSAiZnV0dXJlCisjIGJlbG9u
Z3MgdG8gYSBkaWZmZXJlbnQgbG9vcCIKK0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIp
CitkZWYgZXZlbnRfbG9vcCgpOgorICAgICIiIkNoYW5nZSBldmVudF9sb29wIGZpeHR1cmUgdG8g
c2Vzc2lvbiBsZXZlbC4iIiIKKyAgICBsb29wID0gYXN5bmNpby5nZXRfZXZlbnRfbG9vcF9wb2xp
Y3koKS5uZXdfZXZlbnRfbG9vcCgpCisgICAgeWllbGQgbG9vcAorICAgIGxvb3AuY2xvc2UoKQor
CisKIEBweXRlc3QuZml4dHVyZQogZGVmIGFkZF9ldmVudF9saXN0ZW5lcnMoc2Vzc2lvbik6CiAg
ICAgIiIiUmVnaXN0ZXIgbGlzdGVuZXJzIGZvciB0cmFja2VkIGV2ZW50cyBvbiBlbGVtZW50LiIi
IgpAQCAtOTQsNyArMTA1LDggQEAgZGVmIGh0dHAoY29uZmlndXJhdGlvbik6CiAKIEBweXRlc3Qu
Zml4dHVyZQogZGVmIHNlcnZlcl9jb25maWcoKToKLSAgICByZXR1cm4ganNvbi5sb2Fkcyhvcy5l
bnZpcm9uLmdldCgiV0RfU0VSVkVSX0NPTkZJRyIpKQorICAgIHdpdGggb3Blbihvcy5lbnZpcm9u
LmdldCgiV0RfU0VSVkVSX0NPTkZJR19GSUxFIiksICJyIikgYXMgZjoKKyAgICAgICAgcmV0dXJu
IGpzb24ubG9hZChmKQogCiAKIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCkBAIC0x
MTAsOCArMTIyLDIzIEBAIGRlZiBjb25maWd1cmF0aW9uKCk6CiAgICAgfQogCiAKK2FzeW5jIGRl
ZiByZXNldF9jdXJyZW50X3Nlc3Npb25faWZfbmVjZXNzYXJ5KGNhcHMsIHJlcXVlc3RfYmlkaSk6
CisgICAgZ2xvYmFsIF9jdXJyZW50X3Nlc3Npb24KKworICAgICMgSWYgdGhlcmUgaXMgYSBzZXNz
aW9uIHdpdGggZGlmZmVyZW50IGNhcGFiaWxpdGllcyBhY3RpdmUgb3IgdGhlIGN1cnJlbnQgc2Vz
c2lvbgorICAgICMgaXMgb2YgZGlmZmVyZW50IHR5cGUgdGhhbiB0aGUgb25lIHdlIHdvdWxkIGxp
a2UgdG8gY3JlYXRlLCBlbmQgaXQgbm93LgorICAgIGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgbm90
IE5vbmU6CisgICAgICAgIGlzX2JpZGkgPSBpc2luc3RhbmNlKF9jdXJyZW50X3Nlc3Npb24sIHdl
YmRyaXZlci5CaWRpU2Vzc2lvbikKKyAgICAgICAgaWYgaXNfYmlkaSAhPSByZXF1ZXN0X2JpZGkg
b3Igbm90IF9jdXJyZW50X3Nlc3Npb24ubWF0Y2goY2Fwcyk6CisgICAgICAgICAgICBpZiBpc19i
aWRpOgorICAgICAgICAgICAgICAgIGF3YWl0IF9jdXJyZW50X3Nlc3Npb24uZW5kKCkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbi5lbmQoKQorICAg
ICAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbiA9IE5vbmUKKworCiBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9ImZ1bmN0aW9uIikKLWRlZiBzZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwg
cmVxdWVzdCk6Cithc3luYyBkZWYgc2Vzc2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24s
IHJlcXVlc3QpOgogICAgICIiIkNyZWF0ZSBhbmQgc3RhcnQgYSBzZXNzaW9uIGZvciBhIHRlc3Qg
dGhhdCBkb2VzIG5vdCBpdHNlbGYgdGVzdCBzZXNzaW9uIGNyZWF0aW9uLgogCiAgICAgQnkgZGVm
YXVsdCB0aGUgc2Vzc2lvbiB3aWxsIHN0YXkgb3BlbiBhZnRlciBlYWNoIHRlc3QsIGJ1dCB3ZSBh
bHdheXMgdHJ5IHRvIHN0YXJ0IGEKQEAgLTEyMywxNCArMTUwLDEwIEBAIGRlZiBzZXNzaW9uKGNh
cGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgIyBVcGRhdGUgY29uZmln
dXJhdGlvbiBjYXBhYmlsaXRpZXMgd2l0aCBjdXN0b20gb25lcyBmcm9tIHRoZQogICAgICMgY2Fw
YWJpbGl0aWVzIGZpeHR1cmUsIHdoaWNoIGNhbiBiZSBzZXQgYnkgdGVzdHMKICAgICBjYXBzID0g
Y29weS5kZWVwY29weShjb25maWd1cmF0aW9uWyJjYXBhYmlsaXRpZXMiXSkKLSAgICBjYXBzLnVw
ZGF0ZShjYXBhYmlsaXRpZXMpCisgICAgZGVlcF91cGRhdGUoY2FwcywgY2FwYWJpbGl0aWVzKQog
ICAgIGNhcHMgPSB7ImFsd2F5c01hdGNoIjogY2Fwc30KIAotICAgICMgSWYgdGhlcmUgaXMgYSBz
ZXNzaW9uIHdpdGggZGlmZmVyZW50IGNhcGFiaWxpdGllcyBhY3RpdmUsIGVuZCBpdCBub3cKLSAg
ICBpZiBfY3VycmVudF9zZXNzaW9uIGlzIG5vdCBOb25lIGFuZCAoCi0gICAgICAgICAgICBjYXBz
ICE9IF9jdXJyZW50X3Nlc3Npb24ucmVxdWVzdGVkX2NhcGFiaWxpdGllcyk6Ci0gICAgICAgIF9j
dXJyZW50X3Nlc3Npb24uZW5kKCkKLSAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbiA9IE5vbmUKKyAg
ICBhd2FpdCByZXNldF9jdXJyZW50X3Nlc3Npb25faWZfbmVjZXNzYXJ5KGNhcHMsIEZhbHNlKQog
CiAgICAgaWYgX2N1cnJlbnRfc2Vzc2lvbiBpcyBOb25lOgogICAgICAgICBfY3VycmVudF9zZXNz
aW9uID0gd2ViZHJpdmVyLlNlc3Npb24oCkBAIC0xMzksNiArMTYyLDcgQEAgZGVmIHNlc3Npb24o
Y2FwYWJpbGl0aWVzLCBjb25maWd1cmF0aW9uLCByZXF1ZXN0KToKICAgICAgICAgICAgIGNhcGFi
aWxpdGllcz1jYXBzKQogICAgIHRyeToKICAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbi5zdGFydCgp
CisKICAgICBleGNlcHQgd2ViZHJpdmVyLmVycm9yLlNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0aW9u
OgogICAgICAgICBpZiBub3QgX2N1cnJlbnRfc2Vzc2lvbi5zZXNzaW9uX2lkOgogICAgICAgICAg
ICAgcmFpc2UKQEAgLTE1Miw2ICsxNzYsNDggQEAgZGVmIHNlc3Npb24oY2FwYWJpbGl0aWVzLCBj
b25maWd1cmF0aW9uLCByZXF1ZXN0KToKICAgICBjbGVhbnVwX3Nlc3Npb24oX2N1cnJlbnRfc2Vz
c2lvbikKIAogCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIikKK2FzeW5jIGRlZiBi
aWRpX3Nlc3Npb24oY2FwYWJpbGl0aWVzLCBjb25maWd1cmF0aW9uLCByZXF1ZXN0KToKKyAgICAi
IiJDcmVhdGUgYW5kIHN0YXJ0IGEgYmlkaSBzZXNzaW9uIGZvciBhIHRlc3QgdGhhdCBkb2VzIG5v
dCBpdHNlbGYgdGVzdAorICAgIGJpZGkgc2Vzc2lvbiBjcmVhdGlvbi4KKyAgICBCeSBkZWZhdWx0
IHRoZSBzZXNzaW9uIHdpbGwgc3RheSBvcGVuIGFmdGVyIGVhY2ggdGVzdCwgYnV0IHdlIGFsd2F5
cyB0cnkgdG8gc3RhcnQgYQorICAgIG5ldyBvbmUgYW5kIGFzc3VtZSB0aGF0IGlmIHRoYXQgZmFp
bHMgdGhlcmUgaXMgYWxyZWFkeSBhIHZhbGlkIHNlc3Npb24uIFRoaXMgbWFrZXMgaXQKKyAgICBw
b3NzaWJsZSB0byByZWNvdmVyIGZyb20gc29tZSBlcnJvcnMgdGhhdCBtaWdodCBsZWF2ZSB0aGUg
c2Vzc2lvbiBpbiBhIGJhZCBzdGF0ZSwgYnV0CisgICAgZG9lcyBub3QgZGVtYW5kIHRoYXQgd2Ug
c3RhcnQgYSBuZXcgc2Vzc2lvbiBwZXIgdGVzdC4iIiIKKyAgICBnbG9iYWwgX2N1cnJlbnRfc2Vz
c2lvbgorCisgICAgIyBVcGRhdGUgY29uZmlndXJhdGlvbiBjYXBhYmlsaXRpZXMgd2l0aCBjdXN0
b20gb25lcyBmcm9tIHRoZQorICAgICMgY2FwYWJpbGl0aWVzIGZpeHR1cmUsIHdoaWNoIGNhbiBi
ZSBzZXQgYnkgdGVzdHMKKyAgICBjYXBzID0gY29weS5kZWVwY29weShjb25maWd1cmF0aW9uWyJj
YXBhYmlsaXRpZXMiXSkKKyAgICBkZWVwX3VwZGF0ZShjYXBzLCBjYXBhYmlsaXRpZXMpCisgICAg
Y2FwcyA9IHsiYWx3YXlzTWF0Y2giOiBjYXBzfQorCisgICAgYXdhaXQgcmVzZXRfY3VycmVudF9z
ZXNzaW9uX2lmX25lY2Vzc2FyeShjYXBzLCBUcnVlKQorCisgICAgaWYgX2N1cnJlbnRfc2Vzc2lv
biBpcyBOb25lOgorICAgICAgICBfY3VycmVudF9zZXNzaW9uID0gd2ViZHJpdmVyLlNlc3Npb24o
CisgICAgICAgICAgICBjb25maWd1cmF0aW9uWyJob3N0Il0sCisgICAgICAgICAgICBjb25maWd1
cmF0aW9uWyJwb3J0Il0sCisgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwcywKKyAgICAgICAg
ICAgIGVuYWJsZV9iaWRpPVRydWUpCisKKyAgICB0cnk6CisgICAgICAgIF9jdXJyZW50X3Nlc3Np
b24uc3RhcnQoKQorICAgICAgICBhd2FpdCBfY3VycmVudF9zZXNzaW9uLmJpZGlfc2Vzc2lvbi5z
dGFydCgpCisgICAgZXhjZXB0IHdlYmRyaXZlci5lcnJvci5TZXNzaW9uTm90Q3JlYXRlZEV4Y2Vw
dGlvbjoKKyAgICAgICAgaWYgbm90IF9jdXJyZW50X3Nlc3Npb24uc2Vzc2lvbl9pZDoKKyAgICAg
ICAgICAgIHJhaXNlCisKKyAgICAjIEVuZm9yY2UgYSBmaXhlZCBkZWZhdWx0IHdpbmRvdyBzaXpl
IGFuZCBwb3NpdGlvbgorICAgIF9jdXJyZW50X3Nlc3Npb24ud2luZG93LnNpemUgPSBkZWZhdWx0
cy5XSU5ET1dfU0laRQorICAgIF9jdXJyZW50X3Nlc3Npb24ud2luZG93LnBvc2l0aW9uID0gZGVm
YXVsdHMuV0lORE9XX1BPU0lUSU9OCisKKyAgICB5aWVsZCBfY3VycmVudF9zZXNzaW9uLmJpZGlf
c2Vzc2lvbgorCisgICAgYXdhaXQgX2N1cnJlbnRfc2Vzc2lvbi5iaWRpX3Nlc3Npb24uZW5kKCkK
KyAgICBjbGVhbnVwX3Nlc3Npb24oX2N1cnJlbnRfc2Vzc2lvbikKKworCiBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9ImZ1bmN0aW9uIikKIGRlZiBjdXJyZW50X3Nlc3Npb24oKToKICAgICByZXR1cm4g
X2N1cnJlbnRfc2Vzc2lvbgpAQCAtMTU5LDE0ICsyMjUsMTMgQEAgZGVmIGN1cnJlbnRfc2Vzc2lv
bigpOgogCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiB1cmwoc2VydmVyX2NvbmZpZyk6Ci0gICAgZGVm
IGlubmVyKHBhdGgsIHByb3RvY29sPSJodHRwIiwgZG9tYWluPSIiLCBzdWJkb21haW49IiIsIHF1
ZXJ5PSIiLCBmcmFnbWVudD0iIik6CisgICAgZGVmIHVybChwYXRoLCBwcm90b2NvbD0iaHR0cCIs
IGRvbWFpbj0iIiwgc3ViZG9tYWluPSIiLCBxdWVyeT0iIiwgZnJhZ21lbnQ9IiIpOgogICAgICAg
ICBkb21haW4gPSBzZXJ2ZXJfY29uZmlnWyJkb21haW5zIl1bZG9tYWluXVtzdWJkb21haW5dCiAg
ICAgICAgIHBvcnQgPSBzZXJ2ZXJfY29uZmlnWyJwb3J0cyJdW3Byb3RvY29sXVswXQogICAgICAg
ICBob3N0ID0gInswfTp7MX0iLmZvcm1hdChkb21haW4sIHBvcnQpCiAgICAgICAgIHJldHVybiB1
cmx1bnNwbGl0KChwcm90b2NvbCwgaG9zdCwgcGF0aCwgcXVlcnksIGZyYWdtZW50KSkKIAotICAg
IGlubmVyLl9fbmFtZV9fID0gInVybCIKLSAgICByZXR1cm4gaW5uZXIKKyAgICByZXR1cm4gdXJs
CiAKIAogQHB5dGVzdC5maXh0dXJlCkBAIC0xODIsNyArMjQ3LDcgQEAgZGVmIGNyZWF0ZV9kaWFs
b2coc2Vzc2lvbik6CiAgICAgICAgIGlmIHRleHQgaXMgTm9uZToKICAgICAgICAgICAgIHRleHQg
PSAiIgogCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHRleHQsIHN0cmluZ190eXBlcyksICJg
dGV4dGAgcGFyYW1ldGVyIG11c3QgYmUgYSBzdHJpbmciCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKHRleHQsIHN0ciksICJgdGV4dGAgcGFyYW1ldGVyIG11c3QgYmUgYSBzdHJpbmciCiAKICAg
ICAgICAgIyBTY3JpcHQgY29tcGxldGVzIGl0c2VsZiB3aGVuIHRoZSB1c2VyIHByb21wdCBoYXMg
YmVlbiBvcGVuZWQuCiAgICAgICAgICMgRm9yIHByb21wdCgpIGRpYWxvZ3MsIGFkZCBhIHZhbHVl
IGZvciB0aGUgJ2RlZmF1bHQnIGFyZ3VtZW50LApAQCAtMjM4LDE1ICszMDMsNTQgQEAgZGVmIGNs
b3NlZF9mcmFtZShzZXNzaW9uLCB1cmwpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNsb3Nl
ZF93aW5kb3coc2Vzc2lvbik6CitkZWYgY2xvc2VkX3dpbmRvdyhzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIG9yaWdpbmFsX2hhbmRsZSA9IHNlc3Npb24ud2luZG93X2hhbmRsZQogICAgIG5ld19oYW5k
bGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQogCiAgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0g
bmV3X2hhbmRsZQorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9J2EnIHZhbHVl
PSdiJz4iKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKIAogICAgIHNlc3Npb24ud2luZG93LmNsb3NlKCkKICAgICBhc3NlcnQgbmV3X2hhbmRsZSBu
b3QgaW4gc2Vzc2lvbi5oYW5kbGVzLCAiVW5hYmxlIHRvIGNsb3NlIHdpbmRvdyB7fSIuZm9ybWF0
KG5ld19oYW5kbGUpCiAKLSAgICB5aWVsZCBuZXdfaGFuZGxlCisgICAgeWllbGQgKG9yaWdpbmFs
X2hhbmRsZSwgZWxlbWVudCkKIAogICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFs
X2hhbmRsZQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGlubGluZSh1cmwpOgorICAgICIiIlRh
a2VzIGEgc291cmNlIGV4dHJhY3QgYW5kIHByb2R1Y2VzIHdlbGwtZm9ybWVkIGRvY3VtZW50cy4K
KworICAgIEJhc2VkIG9uIHRoZSBkZXNpcmVkIGRvY3VtZW50IHR5cGUsIHRoZSBleHRyYWN0IGlz
IGVtYmVkZGVkIHdpdGgKKyAgICBwcmVkZWZpbmVkIGJvaWxlcnBsYXRlIGluIG9yZGVyIHRvIHBy
b2R1Y2Ugd2VsbC1mb3JtZWQgZG9jdW1lbnRzLgorICAgIFRoZSBtZWRpYSB0eXBlIGFuZCBjaGFy
YWN0ZXIgc2V0IG1heSBhbHNvIGJlIGluZGl2aWR1YWxseSBjb25maWd1cmVkLgorCisgICAgVGhp
cyBoZWxwZXIgZnVuY3Rpb24gb3JpZ2luYWxseSB1c2VkIGRhdGEgVVJMcywgYnV0IHNpbmNlIHRo
ZXNlCisgICAgYXJlIG5vdCB1bml2ZXJzYWxseSBzdXBwb3J0ZWQgKG9yIGluZGVlZCBzdGFuZGFy
ZGlzZWQhKSBhY3Jvc3MKKyAgICBicm93c2VycywgaXQgbm93IGRlbGVnYXRlcyB0aGUgc2Vydmlu
ZyBvZiB0aGUgZG9jdW1lbnQgdG8gd3B0c2VydmUuCisgICAgVGhpcyBmaWxlIGFsc28gYWN0cyBh
cyBhIHdwdHNlcnZlIGhhbmRsZXIgKHNlZSB0aGUgbWFpbiBmdW5jdGlvbgorICAgIGJlbG93KSB3
aGljaCBjb25maWd1cmVzIHRoZSBIVFRQIHJlc3BvbnNlIHVzaW5nIHF1ZXJ5IHBhcmFtZXRlcnMu
CisKKyAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBVUkwgdG8gdGhlIHdwdHNlcnZlIGhhbmRs
ZXIsIHdoaWNoIGluIHR1cm4KKyAgICB3aWxsIHNlcnZlIGFuIEhUVFAgcmVzcG9uc2Ugd2l0aCB0
aGUgcmVxdWVzdGVkIHNvdXJjZSBleHRyYWN0CisgICAgaW5saW5lZCBpbiBhIHdlbGwtZm9ybWVk
IGRvY3VtZW50LCBhbmQgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIKKyAgICBvcHRpb25hbGx5IGNv
bmZpZ3VyZWQgdXNpbmcgdGhlIGRlc2lyZWQgbWVkaWEgdHlwZSBhbmQgY2hhcmFjdGVyIHNldC4K
KworICAgIEFueSBhZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzIGFyZSBwYXNzZWQgb24gdG8g
dGhlIGJ1aWxkX3VybAorICAgIGZ1bmN0aW9uLCB3aGljaCBjb21lcyBmcm9tIHRoZSB1cmwgZml4
dHVyZS4KKyAgICAiIiIKKyAgICBkZWYgaW5saW5lKHNyYywgKiprd2FyZ3MpOgorICAgICAgICBy
ZXR1cm4gYnVpbGRfaW5saW5lKHVybCwgc3JjLCAqKmt3YXJncykKKworICAgIHJldHVybiBpbmxp
bmUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBpZnJhbWUoaW5saW5lKToKKyAgICAiIiJJbmxp
bmVzIGRvY3VtZW50IGV4dHJhY3QgYXMgdGhlIHNvdXJjZSBkb2N1bWVudCBvZiBhbiA8aWZyYW1l
Pi4iIiIKKyAgICBkZWYgaWZyYW1lKHNyYywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gIjxp
ZnJhbWUgc3JjPSd7fSc+PC9pZnJhbWU+Ii5mb3JtYXQoaW5saW5lKHNyYywgKiprd2FyZ3MpKQor
CisgICAgcmV0dXJuIGlmcmFtZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2hlbHBlcnMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaGVscGVycy5weQppbmRleCBmODU3
MDgzYjQ3NzQuLjQzYmRiNDFjZjk4MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2hlbHBlcnMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2hlbHBlcnMucHkKQEAg
LTEsNSArMSw2IEBACiBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKK2lt
cG9ydCBjb2xsZWN0aW9ucwogaW1wb3J0IG1hdGgKIGltcG9ydCBzeXMKIApAQCAtMTA2LDYgKzEw
NywyMCBAQCBkZWYgY2xlYXJfYWxsX2Nvb2tpZXMoc2Vzc2lvbik6CiAgICAgc2Vzc2lvbi50cmFu
c3BvcnQuc2VuZCgiREVMRVRFIiwgInNlc3Npb24vJXMvY29va2llIiAlIHNlc3Npb24uc2Vzc2lv
bl9pZCkKIAogCitkZWYgZGVlcF91cGRhdGUoc291cmNlLCBvdmVycmlkZXMpOgorICAgICIiIgor
ICAgIFVwZGF0ZSBhIG5lc3RlZCBkaWN0aW9uYXJ5IG9yIHNpbWlsYXIgbWFwcGluZy4KKyAgICBN
b2RpZnkgYGBzb3VyY2VgYCBpbiBwbGFjZS4KKyAgICAiIiIKKyAgICBmb3Iga2V5LCB2YWx1ZSBp
biBvdmVycmlkZXMuaXRlbXMoKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgY29sbGVj
dGlvbnMuTWFwcGluZykgYW5kIHZhbHVlOgorICAgICAgICAgICAgcmV0dXJuZWQgPSBkZWVwX3Vw
ZGF0ZShzb3VyY2UuZ2V0KGtleSwge30pLCB2YWx1ZSkKKyAgICAgICAgICAgIHNvdXJjZVtrZXld
ID0gcmV0dXJuZWQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNvdXJjZVtrZXldID0gb3Zl
cnJpZGVzW2tleV0KKyAgICByZXR1cm4gc291cmNlCisKKwogZGVmIGRvY3VtZW50X2RpbWVuc2lv
bnMoc2Vzc2lvbik6CiAgICAgcmV0dXJuIHR1cGxlKHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIi
CiAgICAgICAgIGxldCByZWN0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOwpAQCAtMjIxLDMgKzIzNiwyNyBAQCBkZWYgYXZhaWxhYmxlX3NjcmVlbl9z
aXplKHNlc3Npb24pOgogICAgICAgICAgICAgc2NyZWVuLmF2YWlsSGVpZ2h0IC0gc2NyZWVuLmF2
YWlsVG9wLAogICAgICAgICBdOwogICAgICAgICAiIiIpKQorCitkZWYgZmlsdGVyX2RpY3Qoc291
cmNlLCBkKToKKyAgICAiIiJGaWx0ZXIgYHNvdXJjZWAgZGljdCB0byBvbmx5IGNvbnRhaW4gc2Ft
ZSBrZXlzIGFzIGBkYCBkaWN0LgorCisgICAgOnBhcmFtIHNvdXJjZTogZGljdGlvbmFyeSB0byBm
aWx0ZXIuCisgICAgOnBhcmFtIGQ6IGRpY3Rpb25hcnkgd2hvc2Uga2V5cyBkZXRlcm1pbmUgdGhl
IGZpbHRlcmluZy4KKyAgICAiIiIKKyAgICByZXR1cm4ge2s6IHNvdXJjZVtrXSBmb3IgayBpbiBk
LmtleXMoKX0KKworCitkZWYgd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNzaW9uLCBoYW5kbGVzX2Jl
Zm9yZSk6CisgICAgZGVmIGZpbmRfbmV3X2hhbmRsZShzZXNzaW9uKToKKyAgICAgICAgbmV3X2hh
bmRsZXMgPSBsaXN0KHNldChzZXNzaW9uLmhhbmRsZXMpIC0gc2V0KGhhbmRsZXNfYmVmb3JlKSkK
KyAgICAgICAgaWYgbmV3X2hhbmRsZXMgYW5kIGxlbihuZXdfaGFuZGxlcykgPT0gMToKKyAgICAg
ICAgICAgIHJldHVybiBuZXdfaGFuZGxlc1swXQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
d2FpdCA9IFBvbGwoCisgICAgICAgIHNlc3Npb24sCisgICAgICAgIHRpbWVvdXQ9NSwKKyAgICAg
ICAgbWVzc2FnZT0iTm8gbmV3IHdpbmRvdyBoYXMgYmVlbiBvcGVuZWQiKQorCisgICAgcmV0dXJu
IHdhaXQudW50aWwoZmluZF9uZXdfaGFuZGxlKQorCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZj
YWNoZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9z
dXBwb3J0L2h0bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjE5NzIxODdkMjFmZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1l
c19ub19iZmNhY2hlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1bmN0aW9uIHJlbW92ZSgpIHsKKyAg
ICAgIGNvbnN0IGZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Yi1mcmFtZSIpOwor
ICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbGV0ZSIpOworICAg
ICAgZGl2LnJlbW92ZUNoaWxkKGZyYW1lKTsKKyAgICB9CisgIDwvc2NyaXB0PgorPC9oZWFkPgor
Cis8IS0tIHVubG9hZCBoYW5kbGVyIHByZXZlbnRzIHRoZSBwYWdlIGZyb20gYmVpbmcgYWRkZWQg
dG8gdGhlIGJmY2FjaGUgb24gbmF2aWdhdGlvbiAtLT4KKzxib2R5IG9udW5sb2FkPSIiPgorICA8
ZGl2IGlkPSJkZWxldGUiPgorICAgIDxpZnJhbWUgc3JjPSJzdWJmcmFtZS5odG1sIiBpZD0ic3Vi
LWZyYW1lIj48L2lmcmFtZT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRt
bC9tZXRhLXV0ZjgtYWZ0ZXItMTAyNC1ieXRlcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvbWV0YS11dGY4LWFmdGVyLTEwMjQt
Ynl0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI1OTE2
MTQ4YjU1OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL21ldGEtdXRmOC1hZnRlci0xMDI0LWJ5dGVzLmh0
bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIExvcmVtIGlwc3VtIGRv
bG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIE51bGxhIGV1IGlhY3Vs
aXMKK2xlY3R1cy4gUXVpc3F1ZSB1bGxhbWNvcnBlciBlc3QgYXQgbnVuYyBjb25zZWN0ZXR1ciBz
dXNjaXBpdC4gQWxpcXVhbSBpbXBlcmRpZXQKK21hdXJpcyBpbiBudWxsYSBvcm5hcmUsIGlkIGVs
ZWlmZW5kIHR1cnBpcyBwbGFjZXJhdC4gVmVzdGlidWx1bSBsb3JlbSBsaWJlcm8sCitzb2xsaWNp
dHVkaW4gaW4gb3JjaSBzdXNjaXBpdCwgZGljdHVtIHZlc3RpYnVsdW0gbnVsbGEuIFV0IGFjIGVz
dCB0aW5jaWR1bnQsCitjdXJzdXMgbGVvIHZlbCwgcGVsbGVudGVzcXVlIG9yY2kuIFNlZCBtYXR0
aXMgbWV0dXMgYXVndWUsIGFjIHRpbmNpZHVudCBudW5jCitsb2JvcnRpcyBpbi4gUHJvaW4gZXUg
aXBzdW0gYXVjdG9yIGxvcmVtIHNhZ2l0dGlzIG1hbGVzdWFkYS4gVml2YW11cyBtYXhpbXVzLAor
ZXJvcyBmcmluZ2lsbGEgdnVscHV0YXRlIHRpbmNpZHVudCwgdGVsbHVzIHRlbGx1cyB2aXZlcnJh
IGF1Z3VlLCBzZWQgaWFjdWxpcworaXBzdW0gbGFjdXMgcXVpcyB0ZWxsdXMuIE1vcmJpIGV0IGVu
aW0gYXQgYW50ZSBtb2xlc3RpZSBpbXBlcmRpZXQgZXQgZXQgbnVsbGEuCitBbGlxdWFtIGNvbnNl
cXVhdCByaG9uY3VzIG1hZ25hLCB2aXRhZSBzb2RhbGVzIHVybmEgbWF4aW11cyBlZ2V0LiBNYXVy
aXMgZXUKK2xhb3JlZXQgdHVycGlzLCBlZ2V0IGNvbmRpbWVudHVtIGxlY3R1cy4gTWFlY2VuYXMg
dmVsIGxvcmVtIHZlbCBudWxsYSBlZmZpY2l0dXIKK2V1aXNtb2QuIFNlZCBsb2JvcnRpcyBlbmlt
IGFjIG9kaW8gYmliZW5kdW0sIGlkIHZlaGljdWxhIG5pYmggdGVtcHVzLiBQaGFzZWxsdXMKK3Nv
ZGFsZXMsIGlwc3VtIGZldWdpYXQgYWxpcXVhbSB2ZWhpY3VsYSwgZGlhbSBsZW8gY3Vyc3VzIGVz
dCwgbmVjIHZhcml1cyBudW5jCitmZWxpcyB2aXRhZSBlc3QuIEN1cmFiaXR1ciBhYyBwdXJ1cyBu
aXNsLiBNYXVyaXMgY29uZGltZW50dW0sIG1hZ25hIHF1aXMKK2NvbnNlY3RldHVyIGJpYW0uIC0t
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGRpdiBpZD0iYm9keSI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
aHR0cF9yZXF1ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L2h0dHBfcmVxdWVzdC5weQppbmRleCA4OTVkMTMxOWFjMGEuLjI0MmRjOWM5
MTg4NyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L2h0dHBfcmVxdWVzdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHR0cF9yZXF1ZXN0LnB5CkBAIC0xLDkgKzEs
NyBAQAogaW1wb3J0IGNvbnRleHRsaWIKIGltcG9ydCBqc29uCiAKLWZyb20gc2l4IGltcG9ydCB0
ZXh0X3R5cGUKLQotZnJvbSBzaXgubW92ZXMuaHR0cF9jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0
aW9uCitmcm9tIGh0dHAuY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgogCiAKIGNsYXNzIEhU
VFBSZXF1ZXN0KG9iamVjdCk6CkBAIC0zMSw3ICsyOSw3IEBAIGNsYXNzIEhUVFBSZXF1ZXN0KG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRmFpbGVkIHRvIGVuY29k
ZSByZXF1ZXN0IGJvZHkgYXMgSlNPTjoge30iLmZvcm1hdCgKICAgICAgICAgICAgICAgICAgICAg
anNvbi5kdW1wcyhib2R5LCBpbmRlbnQ9MikpKQogCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNl
KHBheWxvYWQsIHRleHRfdHlwZSk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBheWxvYWQs
IHN0cik6CiAgICAgICAgICAgICAgICAgcGF5bG9hZCA9IGJvZHkuZW5jb2RlKCJ1dGYtOCIpCiAK
ICAgICAgICAgY29ubiA9IEhUVFBDb25uZWN0aW9uKHNlbGYuaG9zdCwgc2VsZi5wb3J0KQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBw
b3J0L2ltYWdlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9zdXBwb3J0L2ltYWdlLnB5CmluZGV4IDYxNDljY2NjYmUzMi4uMmU3YWQ4YzEzMDliIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBv
cnQvaW1hZ2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L2ltYWdlLnB5CkBAIC0xLDE0ICsxLDEyIEBACi1pbXBvcnQgYmFzZTY0CiBp
bXBvcnQgbWF0aAogaW1wb3J0IHN0cnVjdAotCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFy
eQorZnJvbSBiYXNlNjQgaW1wb3J0IGRlY29kZWJ5dGVzCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfcG5nCiAKIAogZGVmIHBuZ19kaW1lbnNpb25zKHNjcmVlbnNo
b3QpOgogICAgIGFzc2VydF9wbmcoc2NyZWVuc2hvdCkKLSAgICBpbWFnZSA9IGJhc2U2NC5kZWNv
ZGVzdHJpbmcoZW5zdXJlX2JpbmFyeShzY3JlZW5zaG90KSkKKyAgICBpbWFnZSA9IGRlY29kZWJ5
dGVzKHNjcmVlbnNob3QuZW5jb2RlKCkpCiAgICAgd2lkdGgsIGhlaWdodCA9IHN0cnVjdC51bnBh
Y2soIj5MTCIsIGltYWdlWzE2OjI0XSkKICAgICByZXR1cm4gaW50KHdpZHRoKSwgaW50KGhlaWdo
dCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvc3VwcG9ydC9pbmxpbmUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5CmluZGV4IGQyM2NhNzVkMWM4MC4uNDk0Y2E3NGY5
MjY1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N1cHBvcnQvaW5saW5lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbmxpbmUucHkKQEAgLTEsNiArMSw2IEBACiAiIiJIZWxw
ZXJzIGZvciBpbmxpbmluZyBleHRyYWN0cyBvZiBkb2N1bWVudHMgaW4gdGVzdHMuIiIiCiAKLWZy
b20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsZW5jb2RlCitmcm9tIHVybGxpYi5w
YXJzZSBpbXBvcnQgdXJsZW5jb2RlCiAKIAogQk9JTEVSUExBVEVTID0gewpAQCAtMjQsMzEgKzI0
LDggQEAgTUlNRV9UWVBFUyA9IHsKICAgICAieG1sIjogInRleHQveG1sIiwKIH0KIAotZGVmIGlu
bGluZShzcmMsIGRvY3R5cGU9Imh0bWwiLCBtaW1lPU5vbmUsIGNoYXJzZXQ9Tm9uZSwgKiprd2Fy
Z3MpOgotICAgICIiIgotICAgIFRha2VzIGEgc291cmNlIGV4dHJhY3QgYW5kIHByb2R1Y2VzIHdl
bGwtZm9ybWVkIGRvY3VtZW50cy4KLQotICAgIEJhc2VkIG9uIHRoZSBkZXNpcmVkIGRvY3VtZW50
IHR5cGUsIHRoZSBleHRyYWN0IGlzIGVtYmVkZGVkIHdpdGgKLSAgICBwcmVkZWZpbmVkIGJvaWxl
cnBsYXRlIGluIG9yZGVyIHRvIHByb2R1Y2Ugd2VsbC1mb3JtZWQgZG9jdW1lbnRzLgotICAgIFRo
ZSBtZWRpYSB0eXBlIGFuZCBjaGFyYWN0ZXIgc2V0IG1heSBhbHNvIGJlIGluZGl2aWR1YWxseSBj
b25maWd1cmVkLgotCi0gICAgVGhpcyBoZWxwZXIgZnVuY3Rpb24gb3JpZ2luYWxseSB1c2VkIGRh
dGEgVVJMcywgYnV0IHNpbmNlIHRoZXNlCi0gICAgYXJlIG5vdCB1bml2ZXJzYWxseSBzdXBwb3J0
ZWQgKG9yIGluZGVlZCBzdGFuZGFyZGlzZWQhKSBhY3Jvc3MKLSAgICBicm93c2VycywgaXQgbm93
IGRlbGVnYXRlcyB0aGUgc2VydmluZyBvZiB0aGUgZG9jdW1lbnQgdG8gd3B0c2VydmUuCi0gICAg
VGhpcyBmaWxlIGFsc28gYWN0cyBhcyBhIHdwdHNlcnZlIGhhbmRsZXIgKHNlZSB0aGUgbWFpbiBm
dW5jdGlvbgotICAgIGJlbG93KSB3aGljaCBjb25maWd1cmVzIHRoZSBIVFRQIHJlc3BvbnNlIHVz
aW5nIHF1ZXJ5IHBhcmFtZXRlcnMuCi0KLSAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBVUkwg
dG8gdGhlIHdwdHNlcnZlIGhhbmRsZXIsIHdoaWNoIGluIHR1cm4KLSAgICB3aWxsIHNlcnZlIGFu
IEhUVFAgcmVzcG9uc2Ugd2l0aCB0aGUgcmVxdWVzdGVkIHNvdXJjZSBleHRyYWN0Ci0gICAgaW5s
aW5lZCBpbiBhIHdlbGwtZm9ybWVkIGRvY3VtZW50LCBhbmQgdGhlIENvbnRlbnQtVHlwZSBoZWFk
ZXIKLSAgICBvcHRpb25hbGx5IGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGRlc2lyZWQgbWVkaWEgdHlw
ZSBhbmQgY2hhcmFjdGVyIHNldC4KLQotICAgIEFueSBhZGRpdGlvbmFsIGtleXdvcmQgYXJndW1l
bnRzIGFyZSBwYXNzZWQgb24gdG8gdGhlIGJ1aWxkX3VybAotICAgIGZ1bmN0aW9uLgotICAgICIi
IgotICAgIGZyb20gLmZpeHR1cmVzIGltcG9ydCBzZXJ2ZXJfY29uZmlnLCB1cmwKLSAgICBidWls
ZF91cmwgPSB1cmwoc2VydmVyX2NvbmZpZygpKQogCitkZWYgYnVpbGRfaW5saW5lKGJ1aWxkX3Vy
bCwgc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBjaGFyc2V0PU5vbmUsICoqa3dhcmdz
KToKICAgICBpZiBtaW1lIGlzIE5vbmU6CiAgICAgICAgIG1pbWUgPSBNSU1FX1RZUEVTW2RvY3R5
cGVdCiAgICAgaWYgY2hhcnNldCBpcyBOb25lOgpAQCAtNjIsMTEgKzM5LDYgQEAgZGVmIGlubGlu
ZShzcmMsIGRvY3R5cGU9Imh0bWwiLCBtaW1lPU5vbmUsIGNoYXJzZXQ9Tm9uZSwgKiprd2FyZ3Mp
OgogICAgICAgICAqKmt3YXJncykKIAogCi1kZWYgaWZyYW1lKHNyYywgKiprd2FyZ3MpOgotICAg
ICIiIklubGluZXMgZG9jdW1lbnQgZXh0cmFjdCBhcyB0aGUgc291cmNlIGRvY3VtZW50IG9mIGFu
IDxpZnJhbWU+LiIiIgotICAgIHJldHVybiAiPGlmcmFtZSBzcmM9J3t9Jz48L2lmcmFtZT4iLmZv
cm1hdChpbmxpbmUoc3JjLCAqKmt3YXJncykpCi0KLQogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgogICAgIGRvYyA9IHJlcXVlc3QuR0VULmZpcnN0KGIiZG9jIiwgTm9uZSkKICAgICBtaW1l
ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJtaW1lIiwgTm9uZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9tZXJnZV9kaWN0aW9u
YXJpZXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1
cHBvcnQvbWVyZ2VfZGljdGlvbmFyaWVzLnB5CmluZGV4IGNmMDZjOWI0MzNjZS4uNzJmMWNhYjM1
MmRlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N1cHBvcnQvbWVyZ2VfZGljdGlvbmFyaWVzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9tZXJnZV9kaWN0aW9uYXJpZXMucHkK
QEAgLTEsMTAgKzEsMyBAQAotZGVmIGl0ZXJpdGVtcyhkKToKLSAgICAiIiJDcmVhdGUgYSBrZXkt
dmFsdWUgaXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBkaWN0IGluIGJvdGggUHl0aG9uIDIueCBhbmQK
LSAgICBQeXRob24gMy54IGVudmlyb25tZW50cyIiIgotICAgIGlmIGhhc2F0dHIoZCwgIml0ZXJp
dGVtcyIpOgotICAgICAgICByZXR1cm4gZC5pdGVyaXRlbXMoKQotICAgIHJldHVybiBkLml0ZW1z
KCkKLQogZGVmIG1lcmdlX2RpY3Rpb25hcmllcyhmaXJzdCwgc2Vjb25kKToKICAgICAiIiJHaXZl
biB0d28gZGljdGlvbmFyaWVzLCBjcmVhdGUgYSB0aGlyZCB0aGF0IGRlZmluZXMgYWxsIHNwZWNp
ZmllZAogICAgIGtleS92YWx1ZSBwYWlycy4gVGhpcyBtZXJnZV9kaWN0aW9uYXJpZXMgaXMgcGVy
Zm9ybWVkICJkZWVwbHkiIG9uIGFueSBuZXN0ZWQKQEAgLTEyLDcgKzUsNyBAQCBkZWYgbWVyZ2Vf
ZGljdGlvbmFyaWVzKGZpcnN0LCBzZWNvbmQpOgogICAgIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHJh
aXNlZC4iIiIKICAgICByZXN1bHQgPSBkaWN0KGZpcnN0KQogCi0gICAgZm9yIGtleSwgdmFsdWUg
aW4gaXRlcml0ZW1zKHNlY29uZCk6CisgICAgZm9yIGtleSwgdmFsdWUgaW4gc2Vjb25kLml0ZW1z
KCk6CiAgICAgICAgIGlmIGtleSBpbiByZXN1bHQgYW5kIHJlc3VsdFtrZXldICE9IHZhbHVlOgog
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHRba2V5XSwgZGljdCkgYW5kIGlzaW5zdGFu
Y2UodmFsdWUsIGRpY3QpOgogICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbWVyZ2VfZGlj
dGlvbmFyaWVzKHJlc3VsdFtrZXldLCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9zeW5jLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L3N5bmMucHkKaW5kZXgg
ZmE1ZDE4NTUwY2NlLi4zMGZmODcyYjZlMTUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9zeW5jLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9zeW5jLnB5CkBAIC0y
LDggKzIsNiBAQCBpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAK
LWltcG9ydCBzaXgKLQogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiAKIApAQCAtMTQwLDYg
KzEzOCw2IEBAIGNsYXNzIFBvbGwob2JqZWN0KToKICAgICAgICAgICAgIG1lc3NhZ2UgPSAiVGlt
ZWQgb3V0IGFmdGVyIHt9IHNlY29uZHMiLmZvcm1hdChlbGFwc2VkKQogICAgICAgICAgICAgaWYg
c2VsZi5leGNfbXNnIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAie30g
d2l0aCBtZXNzYWdlOiB7fSIuZm9ybWF0KG1lc3NhZ2UsIHNlbGYuZXhjX21zZykKLSAgICAgICAg
ICAgIHNpeC5yZXJhaXNlKHNlbGYuZXhjX2Nscywgc2VsZi5leGNfY2xzKG1lc3NhZ2U9bWVzc2Fn
ZSksIHRiKQorICAgICAgICAgICAgcmFpc2Ugc2VsZi5leGNfY2xzKG1lc3NhZ2U9bWVzc2FnZSku
d2l0aF90cmFjZWJhY2sodGIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gcnYK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3dpdGNoX3RvX2ZyYW1lL2Nyb3NzX29yaWdpbi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL2Nyb3NzX29yaWdpbi5weQppbmRl
eCA5MDVmMWViNTZkY2UuLjYzM2ViYTNmNDI0OCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvY3Jvc3Nfb3JpZ2lu
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dp
dGNoX3RvX2ZyYW1lL2Nyb3NzX29yaWdpbi5weQpAQCAtMSwxMCArMSw5IEBACi1mcm9tIHNpeC5t
b3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCitmcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJscGFyc2UKIAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2NvbCBhcyBwcm90b2NvbAogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVz
dHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBkb2N1bWVudF9sb2NhdGlvbgotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAogCiAiIiIKQEAgLTI3LDcgKzI2
LDcgQEAgZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CiAgICAgICAgIHNlc3Np
b249c2Vzc2lvbikKIAogCi1kZWYgdGVzdF9jcm9zc19vcmlnaW5faWZyYW1lKHNlc3Npb24sIHNl
cnZlcl9jb25maWcpOgorZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luX2lmcmFtZShzZXNzaW9uLCBzZXJ2
ZXJfY29uZmlnLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZy
YW1lKCIiLCBkb21haW49ImFsdCIpKQogICAgIGZyYW1lX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAKQEAgLTM4LDcgKzM3LDcgQEAgZGVmIHRlc3RfY3Jv
c3Nfb3JpZ2luX2lmcmFtZShzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKICAgICBhc3NlcnQgcGFy
c2VfcmVzdWx0Lm5ldGxvYyAhPSBzZXJ2ZXJfY29uZmlnWyJicm93c2VyX2hvc3QiXQogCiAKLWRl
ZiB0ZXN0X25lc3RlZF9jcm9zc19vcmlnaW5faWZyYW1lKHNlc3Npb24sIHNlcnZlcl9jb25maWcp
OgorZGVmIHRlc3RfbmVzdGVkX2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lvbiwgc2VydmVyX2Nv
bmZpZywgaW5saW5lLCBpZnJhbWUpOgogICAgIGZyYW1lMiA9IGlmcmFtZSgiIiwgZG9tYWluPSJh
bHQiLCBzdWJkb21haW49Ind3dyIpCiAgICAgZnJhbWUxID0gaWZyYW1lKGZyYW1lMikKICAgICB0
b3BfZG9jID0gaW5saW5lKGZyYW1lMSwgZG9tYWluPSJhbHQiKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dp
dGNoLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0
Y2hfdG9fZnJhbWUvc3dpdGNoLnB5CmluZGV4IDcwNWZhNzlhNWRlMC4uOWNjYWIyYzZjOTZkIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3
aXRjaF90b19mcmFtZS9zd2l0Y2gucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoLnB5CkBAIC0yLDExICsyLDEw
IEBAIGltcG9ydCBweXRlc3QKIAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2NvbCBhcyBwcm90b2Nv
bAogCi1mcm9tIHdlYmRyaXZlciBpbXBvcnQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9u
Citmcm9tIHdlYmRyaXZlciBpbXBvcnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgogZnJvbSB3ZWJk
cml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lLCBpZnJhbWUKIAog
CiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKQEAgLTE3LDE4ICsxNiwxMyBA
QCBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKICAgICAgICAgc2Vzc2lvbj1z
ZXNzaW9uKQogCiAKLWRlZiBmcmFtZXNldCgqZG9jcyk6Ci0gICAgZnJhbWVzID0gbGlzdChtYXAo
bGFtYmRhIGRvYzogIjxmcmFtZSBzcmM9J3t9Jz48L2ZyYW1lPiIuZm9ybWF0KGlubGluZShkb2Mp
KSwgZG9jcykpCi0gICAgcmV0dXJuICI8ZnJhbWVzZXQgcm93cz0ne30nPlxue308L2ZyYW1lc2V0
PiIuZm9ybWF0KGxlbihmcmFtZXMpICogIiosIiwgIlxuIi5qb2luKGZyYW1lcykpCi0KLQogZGVm
IHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCk6CiAgICAgcGF0aCA9ICIv
c2Vzc2lvbi97c2Vzc2lvbl9pZH0vZnJhbWUiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpCiAgICAg
d2l0aCBodHRwLnBvc3QocGF0aCwgTm9uZSkgYXMgcmVzcG9uc2U6CiAgICAgICAgIGFzc2VydF9l
cnJvcihSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCiAK
IAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxf
cmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCiAgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAKQEAgLTQyLDcgKzM2LDE2IEBAIGRlZiB0ZXN0X251bGxf
cmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAgICAgMCwKICAgICB7ImVsZW1lbnQtNjA2Ni0xMWU0
LWE1MmUtNGY3MzU0NjZjZWNmIjogImZvbyJ9LAogXSkKLWRlZiB0ZXN0X25vX3RvcF9icm93c2lu
Z19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3csIGlkKToKK2RlZiB0ZXN0X25vX3RvcF9i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIHVybCwgaWQpOgorICAgIHNlc3Npb24ud2luZG93X2hh
bmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCisKKyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dl
YmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvZnJhbWVzLmh0bWwiKQorCisgICAgc3ViZnJhbWUg
PSBzZXNzaW9uLmZpbmQuY3NzKCIjc3ViLWZyYW1lIiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24u
c3dpdGNoX2ZyYW1lKHN1YmZyYW1lKQorCisgICAgc2Vzc2lvbi53aW5kb3cuY2xvc2UoKQorCiAg
ICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgaWQpCiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCkBAIC02MSwxMyArNjQsMTggQEAgZGVm
IHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGlkKToKICAg
ICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKK2RlZiB0
ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHRfd2hlbl9hbHJlYWR5X3RvcF9sZXZlbChzZXNzaW9uLCBj
bG9zZWRfd2luZG93KToKKyAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBO
b25lKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCiBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZhbHVlIiwgWyJmb28iLCBUcnVlLCBbXSwge31dKQog
ZGVmIHRlc3RfZnJhbWVfaWRfaW52YWxpZF90eXBlcyhzZXNzaW9uLCB2YWx1ZSk6CiAgICAgcmVz
cG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgdmFsdWUpCiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAiaW52YWxpZCBhcmd1bWVudCIpCiAKIAotZGVmIHRlc3RfZnJhbWVfaWRfbnVs
bChzZXNzaW9uKToKK2RlZiB0ZXN0X2ZyYW1lX2lkX251bGwoc2Vzc2lvbiwgaW5saW5lLCBpZnJh
bWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgie308ZGl2PmZvbyIuZm9ybWF0
KGlmcmFtZSgiPHA+YmFyIikpKSkKIAogICAgIGZyYW1lMSA9IHNlc3Npb24uZmluZC5jc3MoImlm
cmFtZSIsIGFsbD1GYWxzZSkKQEAgLTgyLDEwICs5MCwyNyBAQCBkZWYgdGVzdF9mcmFtZV9pZF9u
dWxsKHNlc3Npb24pOgogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIE5v
bmUpCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKLSAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CiAgICAgICAgIGVsZW1lbnQyLnRleHQKLSAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CiAgICAgICAgIGVsZW1l
bnQxLnRleHQKIAogICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZh
bHNlKQogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZnJhbWUsIGZyYW1lMSkKKwor
CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfd2hpbGVfZnJhbWVfaXNfc3RpbGxfbG9hZGluZyhzZXNz
aW9uLCB1cmwpOgorICAgIHNlc3Npb24udGltZW91dHMuaW1wbGljaXQgPSA1CisKKyAgICBmcmFt
ZV91cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1YmZyYW1lLmh0bWw/
cGlwZT10cmlja2xlKGQyKSIpCisgICAgcGFnZV91cmwgPSAiPGh0bWw+PGJvZHk+PGlmcmFtZSBz
cmM9J3t9Jz48L2lmcmFtZT48L2JvZHk+PC9odG1sPiIuZm9ybWF0KGZyYW1lX3VybCkKKworICAg
IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICJkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuaW5uZXJIVE1MID0gYXJndW1lbnRzWzBdOyIsIGFyZ3M9W3BhZ2VfdXJsXSkKKworICAgIGZy
YW1lMSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9u
LnN3aXRjaF9mcmFtZShmcmFtZTEpCisKKyAgICAjIEVuc3VyZSB0aGF0IHRoZSBpcyBhbHdheXMg
YSB2YWxpZCBicm93c2luZyBjb250ZXh0LCBhbmQgdGhlIGVsZW1lbnQKKyAgICAjIGNhbiBiZSBm
b3VuZCBldmVudHVhbGx5LgorICAgIHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFs
c2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfbnVtYmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5w
eQppbmRleCA3NzUyOTU0NDY3OWEuLmM4ODU4ZTc3ZmYxMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNo
X251bWJlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfbnVtYmVyLnB5CkBAIC0zLDcgKzMsNiBAQCBpbXBv
cnQgcHl0ZXN0CiBpbXBvcnQgd2ViZHJpdmVyLnByb3RvY29sIGFzIHByb3RvY29sCiAKIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNz
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUsIGlmcmFtZQogCiAKIGRl
ZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpOgpAQCAtMjEsNyArMjAsNyBAQCBkZWYg
dGVzdF9mcmFtZV9pZF9udW1iZXJfb3V0X29mX2JvdW5kcyhzZXNzaW9uLCB2YWx1ZSk6CiAKIAog
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpbmRleCIsIFsxLCA2NTUzNV0pCi1kZWYgdGVzdF9m
cmFtZV9pZF9udW1iZXJfaW5kZXhfb3V0X29mX2JvdW5kcyhzZXNzaW9uLCBpbmRleCk6CitkZWYg
dGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXhfb3V0X29mX2JvdW5kcyhzZXNzaW9uLCBpbmxpbmUs
IGlmcmFtZSwgaW5kZXgpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9v
IikpCiAKICAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBpbmRleCkKQEAg
LTI5LDcgKzI4LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3Vu
ZHMoc2Vzc2lvbiwgaW5kZXgpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5kZXgs
IHZhbHVlIiwgW1swLCAiZm9vIl0sIFsxLCAiYmFyIl1dKQotZGVmIHRlc3RfZnJhbWVfaWRfbnVt
YmVyX2luZGV4KHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CitkZWYgdGVzdF9mcmFtZV9pZF9udW1i
ZXJfaW5kZXgoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGluZGV4LCB2YWx1ZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoInt9e30iLmZvcm1hdChpZnJhbWUoIjxwPmZvbyIpLCBpZnJhbWUo
IjxwPmJhciIpKSkKIAogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGlu
ZGV4KQpAQCAtMzksNyArMzgsNyBAQCBkZWYgdGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXgoc2Vz
c2lvbiwgaW5kZXgsIHZhbHVlKToKICAgICBhc3NlcnQgZWxlbWVudC50ZXh0ID09IHZhbHVlCiAK
IAotZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X25lc3RlZChzZXNzaW9uKToKK2RlZiB0
ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9uZXN0ZWQoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgie308cD5mb28iLmZvcm1hdChpZnJh
bWUoIjxwPmJhciIpKSkpCiAKICAgICBleHBlY3RlZF90ZXh0ID0gWyJmb28iLCAiYmFyIl0KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dp
dGNoX3RvX2ZyYW1lL3N3aXRjaF93ZWJlbGVtZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX3dlYmVsZW1lbnQu
cHkKaW5kZXggODk0ODBiNjZiM2E2Li5hMzBkMmQ4ZDMzOWMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRj
aF93ZWJlbGVtZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF93ZWJlbGVtZW50LnB5CkBAIC0zLDcgKzMs
NiBAQCBpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgd2ViZHJpdmVyLnByb3RvY29sIGFzIHByb3RvY29s
CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUsIGlmcmFt
ZQogCiAKIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpOgpAQCAtMTQsMTQgKzEz
LDE0IEBAIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpOgogICAgICAgICBzZXNz
aW9uPXNlc3Npb24pCiAKIAotZGVmIGZyYW1lc2V0KCpkb2NzKToKK2RlZiBmcmFtZXNldChpbmxp
bmUsICpkb2NzKToKICAgICBmcmFtZXMgPSBsaXN0KG1hcChsYW1iZGEgZG9jOiAiPGZyYW1lIHNy
Yz0ne30nPjwvZnJhbWU+Ii5mb3JtYXQoaW5saW5lKGRvYykpLCBkb2NzKSkKICAgICByZXR1cm4g
IjxmcmFtZXNldCByb3dzPSd7fSc+XG57fTwvZnJhbWVzZXQ+Ii5mb3JtYXQobGVuKGZyYW1lcykg
KiAiKiwiLCAiXG4iLmpvaW4oZnJhbWVzKSkKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImluZGV4LCB2YWx1ZSIsIFtbMCwgImZvbyJdLCBbMSwgImJhciJdXSkKLWRlZiB0ZXN0X2ZyYW1l
X2lkX3dlYmVsZW1lbnRfZnJhbWUoc2Vzc2lvbiwgaW5kZXgsIHZhbHVlKToKLSAgICBzZXNzaW9u
LnVybCA9IGlubGluZShmcmFtZXNldCgiPHA+Zm9vIiwgIjxwPmJhciIpKQorZGVmIHRlc3RfZnJh
bWVfaWRfd2ViZWxlbWVudF9mcmFtZShzZXNzaW9uLCBpbmxpbmUsIGluZGV4LCB2YWx1ZSk6Cisg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoZnJhbWVzZXQoaW5saW5lLCAiPHA+Zm9vIiwgIjxwPmJh
ciIpKQogICAgIGZyYW1lcyA9IHNlc3Npb24uZmluZC5jc3MoImZyYW1lIikKICAgICBhc3NlcnQg
bGVuKGZyYW1lcykgPT0gMgogCkBAIC0zMyw3ICszMiw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dl
YmVsZW1lbnRfZnJhbWUoc2Vzc2lvbiwgaW5kZXgsIHZhbHVlKToKIAogCiBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImluZGV4LCB2YWx1ZSIsIFtbMCwgImZvbyJdLCBbMSwgImJhciJdXSkKLWRl
ZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfaWZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6
CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2lmcmFtZShzZXNzaW9uLCBpbmxpbmUsIGlm
cmFtZSwgaW5kZXgsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgie317fSIuZm9y
bWF0KGlmcmFtZSgiPHA+Zm9vIiksIGlmcmFtZSgiPHA+YmFyIikpKQogICAgIGZyYW1lcyA9IHNl
c3Npb24uZmluZC5jc3MoImlmcmFtZSIpCiAgICAgYXNzZXJ0IGxlbihmcmFtZXMpID09IDIKQEAg
LTQ1LDcgKzQ0LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9pZnJhbWUoc2Vzc2lv
biwgaW5kZXgsIHZhbHVlKToKICAgICBhc3NlcnQgZWxlbWVudC50ZXh0ID09IHZhbHVlCiAKIAot
ZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9uZXN0ZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9m
cmFtZV9pZF93ZWJlbGVtZW50X25lc3RlZChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCJ7fTxwPmZvbyIuZm9ybWF0KGlmcmFtZSgiPHA+
YmFyIikpKSkKIAogICAgIGV4cGVjdGVkX3RleHQgPSBbImZvbyIsICJiYXIiXQpAQCAtNTgsNyAr
NTcsNyBAQCBkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25lc3RlZChzZXNzaW9uKToKICAg
ICAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSBleHBlY3RlZF90ZXh0W2ldCiAKIAotZGVmIHRl
c3RfZnJhbWVfaWRfd2ViZWxlbWVudF9ub19lbGVtZW50X3JlZmVyZW5jZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbm9fZWxlbWVudF9yZWZlcmVuY2Uoc2Vzc2lvbiwg
aW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9v
IikpCiAgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAg
ICAgZnJhbWUuaWQgPSAiYmFyIgpAQCAtNjcsNyArNjYsNyBAQCBkZWYgdGVzdF9mcmFtZV9pZF93
ZWJlbGVtZW50X25vX2VsZW1lbnRfcmVmZXJlbmNlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZnJhbWVfaWRfd2Vi
ZWxlbWVudF9zdGFsZV9yZWZlcmVuY2Uoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJl
bGVtZW50X3N0YWxlX3JlZmVyZW5jZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5mb28iKSkKICAgICBmcmFtZSA9IHNlc3Npb24u
ZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKIApAQCAtNzcsOSArNzYsMjcgQEAgZGVmIHRl
c3RfZnJhbWVfaWRfd2ViZWxlbWVudF9zdGFsZV9yZWZlcmVuY2Uoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAKLWRlZiB0
ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbm9fZnJhbWVfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0
ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbm9fZnJhbWVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5mb28iKQogICAgIG5vX2ZyYW1lID0gc2Vz
c2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKIAogICAgIHJlc3BvbnNlID0gc3dpdGNoX3Rv
X2ZyYW1lKHNlc3Npb24sIG5vX2ZyYW1lKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggZnJhbWUiKQorCisKK2RlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfY2xvbmVkX2lu
dG9faWZyYW1lKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKKyAgICBzZXNzaW9uLnVybCA9IGlu
bGluZShpZnJhbWUoIjxib2R5PjxwPmhlbGxvIHdvcmxkPC9wPjwvYm9keT4iKSkKKworICAgIHNl
c3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIiCisgICAgICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKKyAgICAgICAgY29uc3QgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGRpdi5pbm5lckhUTUwgPSAn
SSBhbSBhIGRpdiBjcmVhdGVkIGluIHRvcCB3aW5kb3cgYW5kIGFwcGVuZGVkIGludG8gdGhlIGlm
cmFtZSc7CisgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZGl2KTsKKyAgICAiIiIpCisKKyAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlm
cmFtZSIsIGFsbD1GYWxzZSkKKyAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9u
LCBmcmFtZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCisgICAgYXNzZXJ0IGVsZW1lbnQudGV4
dCA9PSAiSSBhbSBhIGRpdiBjcmVhdGVkIGluIHRvcCB3aW5kb3cgYW5kIGFwcGVuZGVkIGludG8g
dGhlIGlmcmFtZSIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3dpdGNoX3RvX3BhcmVudF9mcmFtZS9zd2l0Y2gucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUv
c3dpdGNoLnB5CmluZGV4IGVmMmRhNDVmMTYyNS4uOWM2ZGI4ZDJjZDYxIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJl
bnRfZnJhbWUvc3dpdGNoLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3dpdGNoX3RvX3BhcmVudF9mcmFtZS9zd2l0Y2gucHkKQEAgLTEsOSArMSw4
IEBACiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gd2ViZHJpdmVyIGltcG9ydCBTdGFsZUVsZW1lbnRS
ZWZlcmVuY2VFeGNlcHRpb24KK2Zyb20gd2ViZHJpdmVyIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhj
ZXB0aW9uCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3Is
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUs
IGlmcmFtZQogCiAKIGRlZiBzd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pOgpAQCAtMTEs
NyArMTAsNyBAQCBkZWYgc3dpdGNoX3RvX3BhcmVudF9mcmFtZShzZXNzaW9uKToKICAgICAgICAg
IlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vZnJhbWUvcGFyZW50Ii5mb3JtYXQoKip2YXJz
KHNlc3Npb24pKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgor
ZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5mb28iKSkKICAgICBmcmFtZV9lbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24u
c3dpdGNoX2ZyYW1lKGZyYW1lX2VsZW1lbnQpCkBAIC0yMSw3ICsyMCwxNiBAQCBkZWYgdGVzdF9u
dWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgogICAgIGFzc2VydCB2YWx1ZSBpcyBOb25lCiAK
IAotZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRv
dyk6CitkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCB1cmwpOgorICAg
IHNlc3Npb24ud2luZG93X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCisKKyAgICBzZXNz
aW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvZnJhbWVzLmh0bWwi
KQorCisgICAgc3ViZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCIjc3ViLWZyYW1lIiwgYWxsPUZh
bHNlKQorICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKHN1YmZyYW1lKQorCisgICAgc2Vzc2lvbi53
aW5kb3cuY2xvc2UoKQorCiAgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNl
c3Npb24pCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCkBA
IC00OSwxOSArNTcsMjkgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBj
bG9zZWRfZnJhbWUpOgogICAgIHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2Up
CiAKIAotZGVmIHRlc3Rfc3RhbGVfZWxlbWVudF9mcm9tX2lmcmFtZShzZXNzaW9uKToKK2RlZiB0
ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHRfd2hlbl9hbHJlYWR5X3RvcF9sZXZlbChzZXNzaW9uLCBj
bG9zZWRfd2luZG93KToKKyAgICByZXNwb25zZSA9IHN3aXRjaF90b19wYXJlbnRfZnJhbWUoc2Vz
c2lvbikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKwor
ZGVmIHRlc3Rfc3dpdGNoX2Zyb21faWZyYW1lKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZyYW1lX2VsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5z
d2l0Y2hfZnJhbWUoZnJhbWVfZWxlbWVudCkKLSAgICBzdGFsZV9lbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygicCIsIGFsbD1GYWxzZSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
cCIsIGFsbD1GYWxzZSkKIAogICAgIHJlc3VsdCA9IHN3aXRjaF90b19wYXJlbnRfZnJhbWUoc2Vz
c2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQpCiAKLSAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKLSAgICAgICAgc3RhbGVfZWxlbWVu
dC50ZXh0CisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgor
ICAgICAgICBlbGVtZW50LnRleHQKKwogCitkZWYgdGVzdF9zd2l0Y2hfZnJvbV90b3BfbGV2ZWwo
c2Vzc2lvbiwgaW5saW5lKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+Zm9vIikKKyAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKIAotZGVmIHRlc3Rf
c3dpdGNoX2Zyb21fdG9wX2xldmVsKHNlc3Npb24pOgogICAgIHJlc3VsdCA9IHN3aXRjaF90b19w
YXJlbnRfZnJhbWUoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQpCisKKyAgICBh
c3NlcnQgZWxlbWVudC50ZXh0ID09ICJmb28iCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b193aW5kb3cvc3dpdGNoLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fd2lu
ZG93L3N3aXRjaC5weQppbmRleCA5OGI0YmVlMTZlMmQuLjI4ZDQzMmE4YjViNCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9f
d2luZG93L3N3aXRjaC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3N3aXRjaF90b193aW5kb3cvc3dpdGNoLnB5CkBAIC0xLDMgKzEsNiBAQAoraW1w
b3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbiwgTm9TdWNoQWxlcnRFeGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBp
bXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKQEAgLTUxLDMgKzU0LDQ3IEBAIGRlZiB0ZXN0X25vX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgdXJsKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKIAogICAgIGFzc2VydCBzZXNzaW9uLndpbmRvd19oYW5kbGUgPT0gbmV3X2hhbmRsZQorCisK
K2RlZiB0ZXN0X3N3aXRjaF90b193aW5kb3dfc2V0c190b3BfbGV2ZWxfY29udGV4dChzZXNzaW9u
LCBpbmxpbmUsIGlmcmFtZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5m
b28iKSkKKworICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNl
KQorICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKGZyYW1lKQorICAgIHNlc3Npb24uZmluZC5jc3Mo
InAiLCBhbGw9RmFsc2UpCisKKyAgICByZXNwb25zZSA9IHN3aXRjaF90b193aW5kb3coc2Vzc2lv
biwgc2Vzc2lvbi53aW5kb3dfaGFuZGxlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQor
CisgICAgc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQorCisKK2RlZiB0ZXN0
X2VsZW1lbnRfbm90X2ZvdW5kX2FmdGVyX3RhYl9zd2l0Y2goc2Vzc2lvbiwgaW5saW5lKToKKyAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAgaWQ9J2EnPmZvbyIpCisgICAgcGFyYWdyYXBoID0g
c2Vzc2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKKworICAgIHNlc3Npb24ud2luZG93X2hh
bmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdyh0eXBlX2hpbnQ9InRhYiIpCisKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIHBhcmFncmFwaC5h
dHRyaWJ1dGUoImlkIikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBl
IiwgWyJhbGVydCIsICJjb25maXJtIiwgInByb21wdCJdKQorZGVmIHRlc3RfZmluZHNfZXhpc2lu
Z191c2VyX3Byb21wdF9hZnRlcl90YWJfc3dpdGNoKHNlc3Npb24sIGRpYWxvZ190eXBlKToKKyAg
ICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndpbmRvd19oYW5kbGUKKyAgICBuZXdfaGFuZGxl
ID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKKworICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInt9
KCdmb28nKTsiLmZvcm1hdChkaWFsb2dfdHlwZSkpCisKKyAgICByZXNwb25zZSA9IHN3aXRjaF90
b193aW5kb3coc2Vzc2lvbiwgbmV3X2hhbmRsZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAg
ICAgIHNlc3Npb24uYWxlcnQudGV4dAorCisgICAgc2Vzc2lvbi53aW5kb3cuY2xvc2UoKQorCisg
ICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fd2luZG93KHNlc3Npb24sIG9yaWdpbmFsX2hhbmRsZSkK
KyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIHNlc3Npb24uYWxlcnQuYWNjZXB0
KCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3QvaWZyYW1lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9pZnJhbWUu
cHkKaW5kZXggODNmNTVkZWZmNzUzLi5lN2YxYjBjODA1M2QgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNo
b3QvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3QvaWZyYW1lLnB5CkBAIC0yLDcgKzIsNiBAQCBp
bXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
c3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmltYWdlIGltcG9ydCBwbmdfZGltZW5zaW9ucwot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAogZnJvbSAu
IGltcG9ydCBlbGVtZW50X2RpbWVuc2lvbnMKIApAQCAtNjgsNyArNjcsNyBAQCBkZWYgdGFrZV9l
bGVtZW50X3NjcmVlbnNob3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAgICAgKQogCiAKLWRlZiB0
ZXN0X2ZyYW1lX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9lbGVtZW50KHNlc3Np
b24sIGlubGluZSwgaWZyYW1lKToKICAgICAjIENyZWF0ZSBhIHJlZmVyZW5jZSBlbGVtZW50IHdo
aWNoIGxvb2tzIGV4YWN0bHkgbGlrZSB0aGUgZnJhbWUncyBjb250ZW50CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoInswfXsxfSIuZm9ybWF0KFJFRkVSRU5DRV9TVFlMRSwgUkVGRVJFTkNFX0NP
TlRFTlQpKQogCkBAIC05Nyw3ICs5Niw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2VsZW1lbnQoc2Vzc2lv
bik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb21haW4iLCBbIiIsICJhbHQiXSwg
aWRzPVsic2FtZV9vcmlnaW4iLCAiY3Jvc3Nfb3JpZ2luIl0pCi1kZWYgdGVzdF9zb3VyY2Vfb3Jp
Z2luKHNlc3Npb24sIHVybCwgZG9tYWluKToKK2RlZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lv
biwgaW5saW5lLCBpZnJhbWUsIGRvbWFpbik6CiAgICAgIyBDcmVhdGUgYSByZWZlcmVuY2UgZWxl
bWVudCB3aGljaCBsb29rcyBleGFjdGx5IGxpa2UgdGhlIGlmcmFtZQogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCJ7MH17MX0iLmZvcm1hdChSRUZFUkVOQ0VfU1RZTEUsIFJFRkVSRU5DRV9DT05U
RU5UKSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hv
dC9zY3JlZW5zaG90LnB5CmluZGV4IDZmZjYzOTZlZGIyYS4uNGQzYmZiMGU1YzY4IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxl
bWVudF9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9zY3JlZW5zaG90
LnB5CkBAIC0xLDYgKzEsNSBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBv
cnQgcG5nX2RpbWVuc2lvbnMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiBmcm9tIC4gaW1wb3J0IGVsZW1lbnRfZGltZW5zaW9ucwogCkBAIC0yMCw3ICsxOSw3IEBA
IGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cp
OgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYg
dGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVz
dF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0zMCw3ICsyOSw3IEBAIGRlZiB0ZXN0
X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnQg
cG5nX2RpbWVuc2lvbnMoc2NyZWVuc2hvdCkgPT0gZWxlbWVudF9kaW1lbnNpb25zKHNlc3Npb24s
IGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9zdGFsZShz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vz
c2lvbi5yZWZyZXNoKCkKQEAgLTM5LDcgKzM4LDcgQEAgZGVmIHRlc3Rfc3RhbGUoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAog
Ci1kZWYgdGVzdF9mb3JtYXRfYW5kX2RpbWVuc2lvbnMoc2Vzc2lvbik6CitkZWYgdGVzdF9mb3Jt
YXRfYW5kX2RpbWVuc2lvbnMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3Nj
cmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDVkMWI0OTdmZjJjNC4uMzlmZWZlOTMyNWE5
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90
L3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0
ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfcG5nLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIHRha2VfZWxlbWVudF9zY3JlZW5zaG90KHNlc3Np
b24sIGVsZW1lbnRfaWQpOgpAQCAtMTcsNyArMTYsNyBAQCBkZWYgdGFrZV9lbGVtZW50X3NjcmVl
bnNob3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTM1LDcgKzM0LDcgQEAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dC8+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZh
bHNlKQpAQCAtNTEsNyArNTAsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvaWZyYW1lLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVl
bnNob3QvaWZyYW1lLnB5CmluZGV4IDYwMWMwMzlkNTZkZS4uODE4ODFjMWRhZTczIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2Ny
ZWVuc2hvdC9pZnJhbWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvaWZyYW1lLnB5CkBAIC0yLDkgKzIsOCBAQCBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3Vj
Y2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmltYWdlIGltcG9ydCBwbmdfZGltZW5zaW9ucwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAotZnJvbSAuIGlt
cG9ydCBlbGVtZW50X2RpbWVuc2lvbnMsIHZpZXdwb3J0X2RpbWVuc2lvbnMKK2Zyb20gLiBpbXBv
cnQgdmlld3BvcnRfZGltZW5zaW9ucwogCiBERUZBVUxUX0NPTlRFTlQgPSAiPGRpdiBpZD0nY29u
dGVudCc+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQuPC9kaXY+IgogCkBAIC02Myw3ICs2Miw3
IEBAIGRlZiB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbik6CiAgICAgICAgICJHRVQiLCAic2Vzc2lv
bi97c2Vzc2lvbl9pZH0vc2NyZWVuc2hvdCIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAot
ZGVmIHRlc3RfYWx3YXlzX2NhcHR1cmVzX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24pOgor
ZGVmIHRlc3RfYWx3YXlzX2NhcHR1cmVzX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGlu
bGluZSwgaWZyYW1lKToKICAgICBpZnJhbWVfY29udGVudCA9ICJ7MH17MX0iLmZvcm1hdChJTk5F
Ul9JRlJBTUVfU1RZTEUsIERFRkFVTFRfQ09OVEVOVCkKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiJ7MH17MX0iIiIuZm9ybWF0KE9VVEVSX0lGUkFNRV9TVFlMRSwgaWZyYW1lKGlmcmFtZV9j
b250ZW50KSkpCiAKQEAgLTgyLDcgKzgxLDcgQEAgZGVmIHRlc3RfYWx3YXlzX2NhcHR1cmVzX3Rv
cF9icm93c2luZ19jb250ZXh0KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgiZG9tYWluIiwgWyIiLCAiYWx0Il0sIGlkcz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdp
biJdKQotZGVmIHRlc3Rfc291cmNlX29yaWdpbihzZXNzaW9uLCBkb21haW4pOgorZGVmIHRlc3Rf
c291cmNlX29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSwgZG9tYWluKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiezB9ezF9Ii5mb3JtYXQoUkVGRVJFTkNFX1NUWUxFLCBSRUZFUkVO
Q0VfQ09OVEVOVCkpCiAKICAgICByZXNwb25zZSA9IHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90
YWtlX3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkKaW5kZXggZDYx
MzA5MTkxNjdhLi45ZTcxYTYzM2M3MDggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVl
bnNob3Qvc2NyZWVuc2hvdC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9wbmcsIGFzc2VydF9zdWNjZXNzCiBm
cm9tIHRlc3RzLnN1cHBvcnQuaW1hZ2UgaW1wb3J0IHBuZ19kaW1lbnNpb25zCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCB2aWV3cG9ydF9k
aW1lbnNpb25zCiAKQEAgLTE1LDcgKzE0LDcgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2Nv
bnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNl
LCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX2ZyYW1lKToKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX2ZyYW1lLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQ+IikKIAogICAgIHJlc3BvbnNlID0gdGFrZV9zY3JlZW5zaG90KHNlc3Npb24pCkBAIC0yNSw3
ICsyNCw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2Zy
YW1lKToKICAgICBhc3NlcnQgcG5nX2RpbWVuc2lvbnModmFsdWUpID09IHZpZXdwb3J0X2RpbWVu
c2lvbnMoc2Vzc2lvbikKIAogCi1kZWYgdGVzdF9mb3JtYXRfYW5kX2RpbWVuc2lvbnMoc2Vzc2lv
bik6CitkZWYgdGVzdF9mb3JtYXRfYW5kX2RpbWVuc2lvbnMoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAKICAgICByZXNwb25zZSA9IHRha2Vf
c2NyZWVuc2hvdChzZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3Qv
dXNlcl9wcm9tcHRzLnB5CmluZGV4IGFkOWUzNjk1MTQ4ZC4uN2Q1N2Y4ZjI3MTZiIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2Ny
ZWVuc2hvdC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcg
KzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9wbmcsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBk
ZWYgdGFrZV9zY3JlZW5zaG90KHNlc3Npb24pOgpAQCAtMTIsNyArMTEsNyBAQCBkZWYgdGFrZV9z
Y3JlZW5zaG90KHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
K2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC0yOSw3ICsyOCw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIp
CiAKQEAgLTQ0LDcgKzQzLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438943</attachid>
            <date>2021-09-22 06:14:14 -0700</date>
            <delta_ts>2021-09-22 07:09:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-update-tests.diff</filename>
            <type>text/plain</type>
            <size>733870</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxODg1
NmNkYTNmYjguLmFiMWNlZTBlNzNhMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTIyICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViRHJpdmVyXSBV
cGRhdGUgdzNjIGFuZCBzZWxlbml1bSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHM6IFJ1biB3
aXRoIHB5dGhvbjMKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5OiBVc2Ug
YSBuZXdlciB2ZXJzaW9uIG9mIHB5dGVzdCBhbmQgaXRzIGRlcGVuZGVuY2llcyB0byBtYXRjaCB3
aGF0IHRlc3RzIGV4cGVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90
ZXN0cy9weXRlc3RfcnVubmVyLnB5OgorICAgICAgICAoY29sbGVjdCk6IFVzZSBjb250ZXh0bGli
IHRvIHJlZGlyZWN0IHN0ZG91dCB0byAvZGV2L251bGwgd2hpbGUgY29sbGVjdGluZyB0ZXN0cy4K
KyAgICAgICAgKHJ1bik6IFVzZSBFeGl0Q29kZSBuZXcgZW51bSBhZGRlZCB0byBweXRlc3QuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVu
aXVtX2V4ZWN1dG9yLnB5OgorICAgICAgICAoV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvci5fX2lu
aXRfXyk6IERvIG5vdCBlbmNvZGUgcGF0aHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5OgorICAgICAg
ICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLmNvbGxlY3RfdGVzdHMpOiBVc2UgaXRlbXMo
KSBpbnN0ZWFkIG9mIGl0ZXJpdGVtcygpIHRoYXQgZG9lc24ndCBleGlzdCBpbiBweXRob24zLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2Nf
ZXhlY3V0b3IucHk6CisgICAgICAgIChXZWJLaXREcml2ZXJTZXJ2ZXIuX19pbml0X18pOgorICAg
ICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX19pbml0X18pOgorICAgICAgICAoV2ViRHJpdmVy
VzNDRXhlY3V0b3Iuc2V0dXApOgorICAgICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX3J1bm5l
cik6CisKIDIwMjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4MjA4Mik6IFtHVEtdIFRlc3RzIHRpbWVvdXQg
d2hlbiB1c2luZyB4dmZiIGFmdGVyIHIyODIwODIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
cnVuLXdlYmRyaXZlci10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10ZXN0cwpp
bmRleCBmNDkxNzQ5NjNmOGUuLmUyNDY4NDM0NTNmYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy9ydW4td2ViZHJpdmVyLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10
ZXN0cwpAQCAtMSw0ICsxLDQgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uMwogCiAjIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgogIwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvX19pbml0X18ucHkKaW5kZXggZWI2ODBlNWE0ODljLi4xNzY4ZTg4NmI1ZGMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weQpAQCAtNTMsMTYgKzUzLDE3IEBAIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2Z1bmNzaWdzJywgVmVyc2lvbigxLCAwLCAyKSkpCiBBdXRv
SW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdpbXBvcnRsaWJfbWV0YWRhdGEnLCBWZXJzaW9uKDEs
IDcsIDApKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2dlbnNoaScsIFZlcnNpb24o
MCwgNywgMyksIHB5cGlfbmFtZT0nR2Vuc2hpJykpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNr
YWdlKCdodG1sNWxpYicsIFZlcnNpb24oMSwgMSkpKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFj
a2FnZSgnaW5pY29uZmlnJywgVmVyc2lvbigxLCAxLCAxKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3Rl
cihQYWNrYWdlKCdtZWNoYW5pemUnLCBWZXJzaW9uKDAsIDQsIDUpKSkKIEF1dG9JbnN0YWxsLnJl
Z2lzdGVyKFBhY2thZ2UoJ21vcmVfaXRlcnRvb2xzJywgVmVyc2lvbig0LCAyLCAwKSwgcHlwaV9u
YW1lPSdtb3JlLWl0ZXJ0b29scycpKQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW96
cHJvY2VzcycsIFZlcnNpb24oMSwgMiwgMCkpKQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2Fn
ZSgnbW96bG9nJywgVmVyc2lvbig2LCAxKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCdtb3pwcm9jZXNzJywgVmVyc2lvbigxLCAzLCAwKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQ
YWNrYWdlKCdtb3psb2cnLCBWZXJzaW9uKDcsIDEsIDApLCB3aGVlbD1UcnVlKSkKIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21venRlcm0nLCBWZXJzaW9uKDEsIDAsIDApKSkKLUF1dG9J
bnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3BsdWdneScsIFZlcnNpb24oMCwgNSwgMikpKQorQXV0
b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncGx1Z2d5JywgVmVyc2lvbigwLCAxMywgMSkpKQog
QXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHknLCBWZXJzaW9uKDEsIDUsIDIpKSkKK0F1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3B5dGVzdF9hc3luY2lvJywgVmVyc2lvbigwLCAx
NCksIHB5cGlfbmFtZT0ncHl0ZXN0LWFzeW5jaW8nKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBh
Y2thZ2UoJ3B5dGVzdF90aW1lb3V0JywgVmVyc2lvbigxLCA0LCAyKSwgcHlwaV9uYW1lPSdweXRl
c3QtdGltZW91dCcpKQotIyBQeXRlc3QgaGVsZCB0byAzLnggZHVlIHRvIFdQVCB3ZWJkcml2ZXIg
Y29tcGF0aWJpbGl0eQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVy
c2lvbigzLCA2LCAyKSwgaW1wbGljaXRfZGVwcz1bJ3B5dGVzdF90aW1lb3V0J10pKQorQXV0b0lu
c3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVyc2lvbig2LCAxLCAyKSwgaW1wbGlj
aXRfZGVwcz1bJ3B5dGVzdF9hc3luY2lvJywgJ3B5dGVzdF90aW1lb3V0J10pKQogQXV0b0luc3Rh
bGwucmVnaXN0ZXIoUGFja2FnZSgncHljb2Rlc3R5bGUnLCBWZXJzaW9uKDIsIDUsIDApKSkKIEF1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3NjYW5kaXInLCBWZXJzaW9uKDEsIDEwLCAwKSkp
CiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdzb3Vwc2lldmUnLCBWZXJzaW9uKDEsIDks
IDYpKSkKQEAgLTcwLDYgKzcxLDcgQEAgQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnc2Vs
ZW5pdW0nLCBWZXJzaW9uKDMsIDE0MSwgMCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2Fn
ZSgndG9tbCcsIFZlcnNpb24oMCwgMTAsIDEpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2th
Z2UoJ3djd2lkdGgnLCBWZXJzaW9uKDAsIDIsIDUpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBh
Y2thZ2UoJ3dlYmVuY29kaW5ncycsIFZlcnNpb24oMCwgNSwgMSkpKQorQXV0b0luc3RhbGwucmVn
aXN0ZXIoUGFja2FnZSgnd2Vic29ja2V0cycsIFZlcnNpb24oOCwgMSkpKQogQXV0b0luc3RhbGwu
cmVnaXN0ZXIoUGFja2FnZSgnemlwcCcsIFZlcnNpb24oMSwgMiwgMCkpKQogQXV0b0luc3RhbGwu
cmVnaXN0ZXIoUGFja2FnZSgnem9wZS5pbnRlcmZhY2UnLCBWZXJzaW9uKDUsIDEsIDApLCBhbGlh
c2VzPVsnem9wZSddLCBweXBpX25hbWU9J3pvcGUtaW50ZXJmYWNlJykpCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRlc3RfcnVubmVyLnB5
CmluZGV4IDBlYzY1Zjk0YmZhYy4uZjFlNDE0ODUyMmIxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRlc3RfcnVubmVyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkKQEAgLTIw
LDYgKzIwLDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBjb250
ZXh0bGliCiBpbXBvcnQgZXJybm8KIGltcG9ydCBvcwogaW1wb3J0IHNodXRpbApAQCAtMjksNyAr
MzAsNyBAQCBpbXBvcnQgdGVtcGZpbGUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi53ZWJraXRfZmlu
ZGVyIGltcG9ydCBXZWJLaXRGaW5kZXIKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5tYWlu
IGltcG9ydCBFWElUX0lOVEVSTkFMRVJST1IKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IEV4
aXRDb2RlCiAKIAogY2xhc3MgVGVtcG9yYXJ5RGlyZWN0b3J5KG9iamVjdCk6CkBAIC0xNjgsMTYg
KzE2OSwxNCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTWFya2VyKG9iamVjdCk6CiAKIGRlZiBj
b2xsZWN0KGRpcmVjdG9yeSwgYXJncywgaWdub3JlX3BhcmFtPU5vbmUpOgogICAgIGNvbGxlY3Rf
cmVjb3JkZXIgPSBDb2xsZWN0UmVjb3JkZXIoaWdub3JlX3BhcmFtKQotICAgIHN0ZG91dCA9IHN5
cy5zdGRvdXQKLSAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3diJykgYXMgZGV2bnVsbDoKLSAg
ICAgICAgc3lzLnN0ZG91dCA9IGRldm51bGwKLSAgICAgICAgd2l0aCBUZW1wb3JhcnlEaXJlY3Rv
cnkoKSBhcyBjYWNoZV9kaXJlY3Rvcnk6Ci0gICAgICAgICAgICBjbWQgPSBbJy0tY29sbGVjdC1v
bmx5JywKLSAgICAgICAgICAgICAgICAgICAnLS1iYXNldGVtcD0lcycgJSBjYWNoZV9kaXJlY3Rv
cnldCi0gICAgICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCi0gICAgICAgICAgICBjbWQuYXBwZW5k
KGRpcmVjdG9yeSkKLSAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1Z2lucz1bY29sbGVj
dF9yZWNvcmRlcl0pCi0gICAgc3lzLnN0ZG91dCA9IHN0ZG91dAorICAgIHdpdGggb3Blbihvcy5k
ZXZudWxsLCAndycpIGFzIGY6CisgICAgICAgIHdpdGggY29udGV4dGxpYi5yZWRpcmVjdF9zdGRv
dXQoZik6CisgICAgICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2Rp
cmVjdG9yeToKKyAgICAgICAgICAgICAgICBjbWQgPSBbJy0tY29sbGVjdC1vbmx5JywKKyAgICAg
ICAgICAgICAgICAgICAgICAgJy0tYmFzZXRlbXAnLCBjYWNoZV9kaXJlY3RvcnldCisgICAgICAg
ICAgICAgICAgY21kLmV4dGVuZChhcmdzKQorICAgICAgICAgICAgICAgIGNtZC5hcHBlbmQoZGly
ZWN0b3J5KQorICAgICAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1Z2lucz1bY29sbGVj
dF9yZWNvcmRlcl0pCiAgICAgcmV0dXJuIGNvbGxlY3RfcmVjb3JkZXIudGVzdHMKIAogCkBAIC0x
OTIsMTYgKzE5MSwxNiBAQCBkZWYgcnVuKHBhdGgsIGFyZ3MsIHRpbWVvdXQsIGVudiwgZXhwZWN0
YXRpb25zLCBpZ25vcmVfcGFyYW09Tm9uZSk6CiAgICAgd2l0aCBUZW1wb3JhcnlEaXJlY3Rvcnko
KSBhcyBjYWNoZV9kaXJlY3Rvcnk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGNtZCA9IFsn
LXZ2JywKLSAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJlPW5vJywKLSAgICAgICAgICAgICAg
ICAgICAnLS1iYXNldGVtcD0lcycgJSBjYWNoZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAg
ICAgJy0tY2FwdHVyZScsICdubycsCisgICAgICAgICAgICAgICAgICAgJy0tYmFzZXRlbXAnLCBj
YWNoZV9kaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgJy0tc2hvd2xvY2FscycsCi0gICAg
ICAgICAgICAgICAgICAgJy0tdGltZW91dD0lcycgJSB0aW1lb3V0LAorICAgICAgICAgICAgICAg
ICAgICctLXRpbWVvdXQnLCBzdHIodGltZW91dCksCiAgICAgICAgICAgICAgICAgICAgJy1wJywg
J25vOmNhY2hlcHJvdmlkZXInXQogICAgICAgICAgICAgY21kLmV4dGVuZChhcmdzKQogICAgICAg
ICAgICAgY21kLmFwcGVuZChwYXRoKQogICAgICAgICAgICAgcmVzdWx0ID0gcHl0ZXN0Lm1haW4o
Y21kLCBwbHVnaW5zPVtoYXJuZXNzX3JlY29yZGVyLCBzdWJ0ZXN0c19yZWNvcmRlciwgZXhwZWN0
YXRpb25zX21hcmtlcl0pCiAKLSAgICAgICAgICAgIGlmIHJlc3VsdCA9PSBFWElUX0lOVEVSTkFM
RVJST1I6CisgICAgICAgICAgICBpZiByZXN1bHQgPT0gRXhpdENvZGUuSU5URVJOQUxfRVJST1I6
CiAgICAgICAgICAgICAgICAgaGFybmVzc19yZWNvcmRlci5vdXRjb21lID0gKCdFUlJPUicsIE5v
bmUpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIGhhcm5lc3Nf
cmVjb3JkZXIub3V0Y29tZSA9ICgnRVJST1InLCBzdHIoZSkpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0
b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJf
c2VsZW5pdW1fZXhlY3V0b3IucHkKaW5kZXggZmJkNzYyNmY1NTllLi41ZTU3NDgzZGE2MjQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZl
cl9zZWxlbml1bV9leGVjdXRvci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRy
aXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHkKQEAgLTQwLDggKzQwLDgg
QEAgY2xhc3MgV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvcihvYmplY3QpOgogICAgICAgICBzZWxm
Ll9lbnYgPSBlbnYKICAgICAgICAgc2VsZi5fZW52LnVwZGF0ZShkcml2ZXIuYnJvd3Nlcl9lbnYo
KSkKIAotICAgICAgICBzZWxmLl9hcmdzID0gWyctLWRyaXZlcj0lcycgJSBzZWxmLl9kcml2ZXJf
bmFtZSwgJy0tZHJpdmVyLWJpbmFyeT0lcycgJSBkcml2ZXIuYmluYXJ5X3BhdGgoKS5lbmNvZGUo
KV0KLSAgICAgICAgYnJvd3Nlcl9wYXRoID0gZHJpdmVyLmJyb3dzZXJfcGF0aCgpLmVuY29kZSgp
CisgICAgICAgIHNlbGYuX2FyZ3MgPSBbJy0tZHJpdmVyPSVzJyAlIHNlbGYuX2RyaXZlcl9uYW1l
LCAnLS1kcml2ZXItYmluYXJ5PSVzJyAlIGRyaXZlci5iaW5hcnlfcGF0aCgpXQorICAgICAgICBi
cm93c2VyX3BhdGggPSBkcml2ZXIuYnJvd3Nlcl9wYXRoKCkKICAgICAgICAgaWYgYnJvd3Nlcl9w
YXRoOgogICAgICAgICAgICAgc2VsZi5fYXJncy5leHRlbmQoWyctLWJyb3dzZXItYmluYXJ5PSVz
JyAlIGJyb3dzZXJfcGF0aF0pCiAgICAgICAgIGJyb3dzZXJfYXJncyA9IGRyaXZlci5icm93c2Vy
X2FyZ3MoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVz
dHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5Cmlu
ZGV4IGIwYmVlYTBmOTE0Mi4uMDY1MTJlNGZkNzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVy
X3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdlYkRyaXZl
clRlc3RSdW5uZXJTZWxlbml1bShvYmplY3QpOgogICAgICAgICAjIENvbGxlY3RlZCB0ZXN0cyBh
cmUgcmVsYXRpdmUgdG8gdGVzdCBkaXJlY3RvcnkuCiAgICAgICAgIGJhc2VfZGlyID0gb3MucGF0
aC5qb2luKHNlbGYuX3Rlc3RzX2Rpciwgb3MucGF0aC5kaXJuYW1lKHJlbGF0aXZlX3Rlc3RzX2Rp
cikpCiAgICAgICAgIGNvbGxlY3RlZF90ZXN0cyA9IHt9Ci0gICAgICAgIGZvciB0ZXN0LCBzdWJ0
ZXN0cyBpbiBleGVjdXRvci5jb2xsZWN0KG9zLnBhdGguam9pbihzZWxmLl90ZXN0c19kaXIsIHJl
bGF0aXZlX3Rlc3RzX2RpcikpLml0ZXJpdGVtcygpOgorICAgICAgICBmb3IgdGVzdCwgc3VidGVz
dHMgaW4gZXhlY3V0b3IuY29sbGVjdChvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyLCByZWxh
dGl2ZV90ZXN0c19kaXIpKS5pdGVtcygpOgogICAgICAgICAgICAgY29sbGVjdGVkX3Rlc3RzW29z
LnBhdGguam9pbihiYXNlX2RpciwgdGVzdCldID0gc3VidGVzdHMKICAgICAgICAgc2VsZW5pdW1f
dGVzdHMgPSBbXQogICAgICAgICBpZiBub3QgdGVzdHM6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVj
dXRvci5weQppbmRleCBjYzJkMDc1YmMwYWYuLjE4NDNkZTU1Mzc3OSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVjdXRv
ci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2
ZXJfdzNjX2V4ZWN1dG9yLnB5CkBAIC0xMTUsOCArMTE1LDggQEAgY2xhc3MgV2ViS2l0RHJpdmVy
U2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAnLycKICAg
ICB0ZXN0X2VudiA9IE5vbmUKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFy
eT1Ob25lLCBwb3J0PU5vbmUsIGJhc2VfcGF0aD0nJywgYXJncz1Ob25lKToKLSAgICAgICAgV2Vi
RHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJh
c2VfcGF0aD1iYXNlX3BhdGgsIGFyZ3M9YXJncywgZW52PXNlbGYudGVzdF9lbnYpCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PU5vbmUsIHBvcnQ9Tm9uZSwgYmFzZV9wYXRo
PScnLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNlX3BhdGgs
IGVudj1zZWxmLnRlc3RfZW52LCBhcmdzPWFyZ3MpCiAKICAgICBkZWYgbWFrZV9jb21tYW5kKHNl
bGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCAnLS1wb3J0PSVzJyAlIHN0cihzZWxm
LnBvcnQpXSArIHNlbGYuX2FyZ3MKQEAgLTEzNSw4ICsxMzUsOCBAQCBjbGFzcyBXZWJEcml2ZXJX
M0NFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6CiAgICAgICAgIHNlcnZlcl9jb25maWcgPSB7J2Jy
b3dzZXJfaG9zdCc6IHNlcnZlci5ob3N0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rv
bWFpbnMnOiB7Jyc6IHsnJzogc2VydmVyLmhvc3QoKX0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2FsdCc6eyAnJzogJzEyNy4wLjAuMSd9fSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAncG9ydHMnOiB7J2h0dHAnOiBbc3RyKHNlcnZlci5odHRwX3BvcnQoKSldLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHMnOiBbc3RyKHNlcnZlci5o
dHRwc19wb3J0KCkpXX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnRzJzogeydodHRw
JzogW3NlcnZlci5odHRwX3BvcnQoKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdodHRwcyc6IFtzZXJ2ZXIuaHR0cHNfcG9ydCgpXX0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2RvY19yb290Jzogc2VydmVyLmRvY3VtZW50X3Jvb3QoKX0KICAgICAgICAgc2VsZi5y
dW5uZXIgPSBUZXN0UnVubmVyKCkKICAgICAgICAgV2RzcGVjRXhlY3V0b3IuX19pbml0X18oc2Vs
Ziwgc2VsZi5ydW5uZXIubG9nZ2VyLCBkcml2ZXIuYnJvd3Nlcl9uYW1lKCksIHNlcnZlcl9jb25m
aWcsIGRyaXZlci5iaW5hcnlfcGF0aCgpLCBOb25lLCBjYXBhYmlsaXRpZXM9ZHJpdmVyLmNhcGFi
aWxpdGllcygpKQpAQCAtMTQ3LDEzICsxNDcsMTMgQEAgY2xhc3MgV2ViRHJpdmVyVzNDRXhlY3V0
b3IoV2RzcGVjRXhlY3V0b3IpOgogICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUgPSBRdWV1ZSgp
CiAKICAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgIHNlbGYucHJvdG9jb2wuc2V0dXAoc2Vs
Zi5ydW5uZXIpCisgICAgICAgIHN1cGVyKFdlYkRyaXZlclczQ0V4ZWN1dG9yLCBzZWxmKS5zZXR1
cChzZWxmLnJ1bm5lcikKICAgICAgICAgYXJncyA9IChzZWxmLl90ZXN0X3F1ZXVlLAogICAgICAg
ICAgICAgICAgIHNlbGYuX3Jlc3VsdF9xdWV1ZSwKICAgICAgICAgICAgICAgICBzZWxmLnByb3Rv
Y29sLnNlc3Npb25fY29uZmlnWydob3N0J10sCiAgICAgICAgICAgICAgICAgc3RyKHNlbGYucHJv
dG9jb2wuc2Vzc2lvbl9jb25maWdbJ3BvcnQnXSksCiAgICAgICAgICAgICAgICAganNvbi5kdW1w
cyhzZWxmLnByb3RvY29sLnNlc3Npb25fY29uZmlnWydjYXBhYmlsaXRpZXMnXSksCi0gICAgICAg
ICAgICAgICAganNvbi5kdW1wcyhzZWxmLnNlcnZlcl9jb25maWcpLAorICAgICAgICAgICAgICAg
IHNlbGYuc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICBzZWxmLl90aW1lb3V0LAogICAg
ICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucykKICAgICAgICAgc2VsZi5fcHJvY2VzcyA9
IFByb2Nlc3ModGFyZ2V0PVdlYkRyaXZlclczQ0V4ZWN1dG9yLl9ydW5uZXIsIGFyZ3M9YXJncykK
QEAgLTE3NCwxMyArMTc0LDE4IEBAIGNsYXNzIFdlYkRyaXZlclczQ0V4ZWN1dG9yKFdkc3BlY0V4
ZWN1dG9yKToKICAgICAgICAgICAgIGlmIHRlc3QgPT0gJ1RFQVJET1dOJzoKICAgICAgICAgICAg
ICAgICBicmVhawogCi0gICAgICAgICAgICBlbnYgPSB7J1dEX0hPU1QnOiBob3N0LAotICAgICAg
ICAgICAgICAgICAgICdXRF9QT1JUJzogcG9ydCwKLSAgICAgICAgICAgICAgICAgICAnV0RfQ0FQ
QUJJTElUSUVTJzogY2FwYWJpbGl0aWVzLAotICAgICAgICAgICAgICAgICAgICdXRF9TRVJWRVJf
Q09ORklHJzogc2VydmVyX2NvbmZpZ30KLSAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJp
dmVyU2VydmVyLnRlc3RfZW52KQotICAgICAgICAgICAgYXJncyA9IFsnLS1zdHJpY3QnLCAnLXAn
LCAnbm86bW96bG9nJ10KLSAgICAgICAgICAgIHJlc3VsdF9xdWV1ZS5wdXQocHl0ZXN0X3J1bm5l
ci5ydW4odGVzdCwgYXJncywgdGltZW91dCwgZW52LCBleHBlY3RhdGlvbnMpKQorICAgICAgICAg
ICAgd2l0aCBweXRlc3RfcnVubmVyLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVj
dG9yeToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfY29uZmlnX3BhdGggPSBvcy5wYXRoLmpvaW4o
Y2FjaGVfZGlyZWN0b3J5LCAnd2Rfc2VydmVyX2NvbmZpZy5qc29uJykKKyAgICAgICAgICAgICAg
ICB3aXRoIG9wZW4oc2VydmVyX2NvbmZpZ19wYXRoLCAndycpIGFzIGY6CisgICAgICAgICAgICAg
ICAgICAgIGpzb24uZHVtcChzZXJ2ZXJfY29uZmlnLCBmKQorCisgICAgICAgICAgICAgICAgZW52
ID0geydXRF9IT1NUJzogaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ1dEX1BPUlQnOiBw
b3J0LAorICAgICAgICAgICAgICAgICAgICAgICAnV0RfQ0FQQUJJTElUSUVTJzogY2FwYWJpbGl0
aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAnV0RfU0VSVkVSX0NPTkZJR19GSUxFJzogc2Vy
dmVyX2NvbmZpZ19wYXRofQorICAgICAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJpdmVy
U2VydmVyLnRlc3RfZW52KQorICAgICAgICAgICAgICAgIGFyZ3MgPSBbJy0tc3RyaWN0JywgJy1w
JywgJ25vOm1vemxvZyddCisgICAgICAgICAgICAgICAgcmVzdWx0X3F1ZXVlLnB1dChweXRlc3Rf
cnVubmVyLnJ1bih0ZXN0LCBhcmdzLCB0aW1lb3V0LCBlbnYsIGV4cGVjdGF0aW9ucykpCiAKICAg
ICBkZWYgcnVuKHNlbGYsIHRlc3QpOgogICAgICAgICBzZWxmLl90ZXN0X3F1ZXVlLnB1dCh0ZXN0
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nIGIvV2ViRHJpdmVyVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDkwMmI5MmJmZWY5Yi4uNmQ0NTgwOGY1MGVmIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKKysrIGIvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJEcml2ZXJdIFVwZGF0ZSB3M2MgYW5kIHNlbGVu
aXVtIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA1NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWw6
CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbjoKKyAgICAgICAgKiBp
bXBvcnRlZC9zZWxlbml1bS9weS86CisgICAgICAgICogaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpz
b246CisgICAgICAgICogaW1wb3J0ZWQvdzNjL3Rvb2xzLzoKKyAgICAgICAgKiBpbXBvcnRlZC93
M2Mvd2ViZHJpdmVyLzoKKwogMjAyMS0wOC0yMiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbV1BFXVtXZWJEcml2ZXJdIEJhc2ljIGZ1bGxzY3JlZW4gc3VwcG9y
dCBmb3IgdGhlIGhlYWRsZXNzIGJhY2tlbmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMuanNvbiBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNv
bgppbmRleCA0NTY2N2Y5NzJmMDMuLmEyZTY3MDQ4NWM0ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucy5qc29uCisrKyBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMuanNvbgpAQCAtMjkxLDYgKzI5MSwzMCBAQAogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8yMTI5NTAifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5z
dXBwb3J0ZWRfc2NoZW1lW2Fib3V0XSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9
fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9z
Y2hlbWVbYmxvYl0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW2RhdGFd
IjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZB
SUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgInRlc3RfY29va2llX3Vuc3VwcG9ydGVkX3NjaGVtZVtmaWxlXSI6IHsKKyAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0
ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9zY2hlbWVbZnRwXSI6IHsKKyAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIzMDYxNiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91
bnN1cHBvcnRlZF9zY2hlbWVbamF2YXNjcmlwdF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8y
MzA2MTYifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBw
b3J0ZWRfc2NoZW1lW3dlYnNvY2tldF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYi
fX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRf
c2NoZW1lW3NlY3VyZSB3ZWJzb2NrZXRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2
In19CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9LApAQCAtNzQ0LDcgKzc2OCwxMCBA
QAogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNjQ1In19CiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAg
ICAgICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8yMTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTc2Myw3ICs3OTAsMTAgQEAKICAgICAi
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NsaWNrLnB5Ijogewog
ICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3Npbmdf
Y29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVz
IjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAg
ICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMw
NjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9
fQpAQCAtOTM1LDcgKzk2NSwxMCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfc2VuZF9rZXlzL3NlbmRfa2V5cy5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjog
ewogICAgICAgICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAg
ICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjog
IndlYmtpdC5vcmcvYi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7Cisg
ICAgICAgICAgICAgICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndl
YmtpdC5vcmcvYi8yMTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVz
IjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRl
eHQiOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsi
RkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTExNTIsNyArMTE4NSwx
MCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJp
YnV0ZS9nZXQucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0
X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUw
In19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAgICAgICAi
d3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn0s
CisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjog
IndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0IjogewogICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMTYzLDcgKzExOTksMTAgQEAKICAgICAiaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5IjogewogICAg
ICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29u
dGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJG
QUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAg
ICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEy
In0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rf
bm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7Indw
ZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpA
QCAtMTE3NCw3ICsxMjEzLDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAg
ICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAg
ICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0
Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBb
IkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6
IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTE5Niw3ICsxMjM4LDEwIEBA
CiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUv
Z2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190
b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7Indw
ZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQor
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAg
ICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIxMjk1MCJ9fQpAQCAtMTIxOCw3ICsxMjYzLDEwIEBACiAgICAgImltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkiOiB7CiAgICAgICAgICJzdWJ0
ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0Ijogewot
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogeworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7
InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2lu
Z19jb250ZXh0IjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0
dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzY4LDcg
KzE0MTYsMTAgQEAKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVz
IjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIwNTkyMyJ9fQogICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogewor
ICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1
cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250
ZXh0IjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBb
IkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzc5LDcgKzE0MzAs
MTAgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVj
dGVkL3NlbGVjdGVkLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAi
dGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIx
Mjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAg
ICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1
MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTQ0Miw3ICsxNDk2LDEwIEBACiAgICAgImltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkiOiB7CiAg
ICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19j
b250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjA1OTk0In19CisgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBb
IkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjA1OTk0In0sCisgICAgICAgICAgICAgICAg
ICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2
MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0s
CkBAIC0xNDk1LDUgKzE1NTIsMjkgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL21pbmltaXplX3dpbmRvdy9taW5pbWl6ZS5weSIgOiB7CiAgICAgICAgICJleHBl
Y3RlZCI6IHsgIndwZSI6IHsgInN0YXR1cyI6IFsiU0tJUCJdIH0gfQorICAgIH0sCisgICAgImlt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3Qv
ZmluZC5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJT
S0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvdXNl
cl9wcm9tcHRzLnB5IjogeworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMi
OiBbIlNLSVAiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAi
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jv
b3QvZmluZC5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjog
WyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImlt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290
L3VzZXJfcHJvbXB0cy5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3Rh
dHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisg
ICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3Qv
Z2V0LnB5IjogeworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNL
SVAiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAiaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC91c2VyX3Byb21w
dHMucHkiOiB7CisgICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJ
UCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICB9LAorICAgICJpbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JpZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weSI6IHsKKyAg
ICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIzMDYxNSJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvbmV3X3Nlc3Npb24vd2Vic29ja2V0X3VybC5weSI6IHsKKyAgICAgICAgImV4cGVj
dGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzIzMDYxNSJ9fQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1s
CmluZGV4IGZjYWMyNTJlODk5YS4uMTY5MGFkMDdkZDc5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1s
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ph
dmFzY3JpcHRQYWdlLmh0bWwKQEAgLTg2LDcgKzg2LDcgQEAKICAgPC9kaXY+CiAKIDwvZGl2Pgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwogPGRpdiBpZD0iZm9ybWFnZWRkb24i
PgogICAgIDxmb3JtIGFjdGlvbj0iIyI+CiAgICAgICAgIEtleSBVcDogPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJrZXlVcCIgb25rZXl1cD0iamF2YXNjcmlwdDp1cGRhdGVDb250ZW50KHRoaXMpIi8+
PGJyLz4KQEAgLTE1MSwxNSArMTUxLDE1IEBACiAgICAgICAgICAgIC8+CiAKICAgICA8aW5wdXQg
aWQ9ImNoYW5nZWFibGUiIG5hbWU9ImNoYW5nZWFibGUiIG9uZm9jdXM9ImFwcGVuZE1lc3NhZ2Uo
J2ZvY3VzJykiIG9uY2hhbmdlPSJhcHBlbmRNZXNzYWdlKCdjaGFuZ2UnKSIgb25ibHVyPSJhcHBl
bmRNZXNzYWdlKCdibHVyJykiLz4KLSAgICAgICAgICAgCi0gICAgPGJ1dHRvbiB0eXBlPSJidXR0
b24iIGlkPSJwbGFpbkJ1dHRvbiIgCisKKyAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InBs
YWluQnV0dG9uIgogICAgIAkJb25mb2N1cz0iYXBwZW5kTWVzc2FnZSgnZm9jdXMnKSIKICAgICAg
ICAgICAgCW9ua2V5ZG93bj0iYXBwZW5kTWVzc2FnZSgna2V5ZG93bicpIgogICAgICAgICAgICAJ
b25rZXlwcmVzcz0iYXBwZW5kTWVzc2FnZSgna2V5cHJlc3MnKSIKICAgICAgICAgICAgCW9ua2V5
dXA9ImFwcGVuZE1lc3NhZ2UoJ2tleXVwJykiCiAgICAgICAgICAgIAlvbmJsdXI9ImFwcGVuZE1l
c3NhZ2UoJ2JsdXInKSIKICAgICAgICAgICAgCW9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NsaWNr
JykiCi0gICAgICAgICAgIAlvbm1vdXNlZG93bj0iYXBwZW5kTWVzc2FnZSgnbW91c2Vkb3duICcp
IiAKKyAgICAgICAgICAgCW9ubW91c2Vkb3duPSJhcHBlbmRNZXNzYWdlKCdtb3VzZWRvd24gJyki
CiAgICAgICAgICAgIAlvbm1vdXNldXA9ImFwcGVuZE1lc3NhZ2UoJ21vdXNldXAgJykiCiAgICAg
ICAgICAgICBvbm1vdXNlb3Zlcj0icmVnaXN0ZXIoJ21vdXNlb3ZlciAnKSIKICAgICAgICAgICAg
IG9ubW91c2Vtb3ZlPSJyZWdpc3RlcignbW91c2Vtb3ZlICcpIgpAQCAtMTczLDcgKzE3Myw3IEBA
CiAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIG9uY2xpY2s9InZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3N3aXRjaEZvY3VzJyk7IHZhciBjbGlja0V2ZW50ID0gZG9jdW1l
bnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnRzJyk7IGNsaWNrRXZlbnQuaW5pdE1vdXNlRXZlbnQo
J2NsaWNrJywgdHJ1ZSwgdHJ1ZSwgbnVsbCwgMCwgMCwgMCwgMCwgMCxmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgMCwgZWxlbWVudCk7ZWxlbWVudC5kaXNwYXRjaEV2ZW50KGNsaWNrRXZlbnQp
OyI+RG8gbWFnaWM8L2J1dHRvbj48YnIvPgogICAgIDxsYWJlbCBpZD0ibGFiZWxGb3JDaGVja2Jv
eCIgZm9yPSJsYWJlbGVkQ2hlY2tib3giIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2xhYmVsY2xp
Y2snKSI+VG9nZ2xlIGNoZWNrYm94PC9sYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJs
YWJlbGVkQ2hlY2tib3giIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NoYm94Y2xpY2snKSIvPgog
ICA8L2Zvcm0+Ci0gIAorCiAgIDxmb3JtIGFjdGlvbj0iamF2YXNjcmlwdFBhZ2UuaHRtbCIgaWQ9
InN1Ym1pdExpc3RlbmluZ0Zvcm0iIG9uc3VibWl0PSJhcHBlbmRNZXNzYWdlKCdmb3JtLW9uc3Vi
bWl0ICcpOyByZXR1cm4gZmFsc2U7Ij4KICAgICA8cD4KICAgICAgIDxpbnB1dCBpZD0ic3VibWl0
TGlzdGVuaW5nRm9ybS10ZXh0IiB0eXBlPSJ0ZXh0IiBvbnN1Ym1pdD0iYXBwZW5kTWVzc2FnZSgn
dGV4dC1vbnN1Ym1pdCAnKSIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgndGV4dC1vbmNsaWNrICcp
OyIgLz4KQEAgLTE5OCw3ICsxOTgsNyBAQAogICAgICAgICA8YSBocmVmPSIjIiBpZD0iaGlkZGVu
bGluayI+b2s8L2E+CiAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KLSAgICAKKwogICAgIDxkaXYg
c3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbjsiPgogICAgICAgPHNwYW4+CiAgICAgICAgIDxpbnB1
dCBpZD0idW5jbGlja2FibGUiIC8+CkBAIC0yNjUsNyArMjY1LDcgQEAKIAogPGEgaWQ9Im5ld193
aW5kb3ciIG9ubW91c2V1cD0id2luZG93Lm9wZW4oJ2Nsb3NlYWJsZV93aW5kb3cuaHRtbCcsICdj
bG9zZV9tZScpIiBocmVmPSIjIj5DbGljayBtZSB0byBvcGVuIGEgbmV3IHdpbmRvdzwvYT4KIAot
PGEgaWQ9InRocm93aW5nLW1vdXNlb3ZlciIgb25tb3VzZW92ZXI9InRocm93IG5ldyBFcnJvcigp
IiBocmVmPSIjdGhyb3dpbmctbW91c2VvdmVyIj5Nb3VzZSBvdmVyIG1lIHdpbGwgdGhyb3cgYSBK
UyBlcnJvcjwvYT4KKzxhIGlkPSJ0aHJvd2luZy1tb3VzZW92ZXIiIG9ubW91c2VvdmVyPSJ0aHJv
dyBuZXcgRXJyb3IoJ0kgbGlrZSBjaGVlc2UnKSIgaHJlZj0iI3Rocm93aW5nLW1vdXNlb3ZlciI+
TW91c2Ugb3ZlciBtZSB3aWxsIHRocm93IGEgSlMgZXJyb3I8L2E+CiAKIDxkaXYgaWQ9InBhcmVu
dCI+CiAgICAgPHNwYW4gaWQ9Im1vdmFibGUiIG9ubW91c2VvdmVyPSJ2YXIgcCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdtb3ZhYmxlJyk7IGRpc3BsYXlNZXNzYWdlKCdwYXJlbnQgbWF0Y2hl
cz8gJyArIChwICE9IGV2ZW50LnJlbGF0ZWRUYXJnZXQpKTsiPgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbiBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb24KaW5kZXggZDk4NWM4ZWRhYzc1Li41YmEw
YzNhNWQzMDMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2lt
cG9ydGVyLmpzb24KKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0
ZXIuanNvbgpAQCAtMSw2ICsxLDYgQEAKIHsKICAgICAicmVwb3NpdG9yeSI6ICJodHRwczovL2dp
dGh1Yi5jb20vU2VsZW5pdW1IUS9zZWxlbml1bS5naXQiLAotICAgICJyZXZpc2lvbiI6ICJkNGY5
ZmUyMTNkZDZlNWIxMGI4OWJlMzYwYmU2MzU3NDdlZDNlMTM4IiwKKyAgICAicmV2aXNpb24iOiAi
ZTNmY2Y3OTEyMzljMGU5YmE1YzA0Njg2MDI1ZjU3OGI1NjFlY2Q2ZiIsCiAgICAgInBhdGhzX3Rv
X2ltcG9ydCI6IFsKICAgICAgICAgImNvbW1vbiIsCiAgICAgICAgICJweS9jb25mdGVzdC5weSIs
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVz
dC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5Cmlu
ZGV4IDZkNjRmM2ZmZTdjMC4uYjIzNThiN2Y2NWU5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQpAQCAtMTYsMzEgKzE2LDI1IEBACiAjIHVu
ZGVyIHRoZSBMaWNlbnNlLgogCiBpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHNv
Y2tldAogaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAKIGltcG9y
dCBweXRlc3QKLWZyb20gX3B5dGVzdC5za2lwcGluZyBpbXBvcnQgTWFya0V2YWx1YXRvcgogCiBm
cm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGlt
cG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCiBmcm9tIHRlc3Quc2VsZW5pdW0ud2ViZHJpdmVyLmNv
bW1vbi53ZWJzZXJ2ZXIgaW1wb3J0IFNpbXBsZVdlYlNlcnZlcgogZnJvbSB0ZXN0LnNlbGVuaXVt
LndlYmRyaXZlci5jb21tb24ubmV0d29yayBpbXBvcnQgZ2V0X2xhbl9pcAogCi1pZiBzeXMudmVy
c2lvbl9pbmZvWzBdID09IDM6Ci0gICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3Bl
bgotZWxzZToKLSAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsb3BlbgorZnJvbSB1cmxsaWIucmVx
dWVzdCBpbXBvcnQgdXJsb3BlbgogCiBkcml2ZXJzID0gKAotICAgICdCbGFja0JlcnJ5JywKICAg
ICAnQ2hyb21lJywKICAgICAnRWRnZScsCiAgICAgJ0ZpcmVmb3gnLAogICAgICdJZScsCi0gICAg
J01hcmlvbmV0dGUnLAogICAgICdSZW1vdGUnLAogICAgICdTYWZhcmknLAogICAgICdXZWJLaXRH
VEsnLApAQCAtODIsMTAgKzc2LDI4IEBAIGRlZiBkcml2ZXIocmVxdWVzdCk6CiAgICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoaXMgdGVzdCByZXF1
aXJlcyBhIC0tZHJpdmVyIHRvIGJlIHNwZWNpZmllZC4nKQogCisgICAgIyBza2lwIHRlc3RzIGlm
IG5vdCBhdmFpbGFibGUgb24gdGhlIHBsYXRmb3JtCisgICAgX3BsYXRmb3JtID0gcGxhdGZvcm0u
c3lzdGVtKCkKKyAgICBpZiBkcml2ZXJfY2xhc3MgPT0gIlNhZmFyaSIgYW5kIF9wbGF0Zm9ybSAh
PSAiRGFyd2luIjoKKyAgICAgICAgcHl0ZXN0LnNraXAoIlNhZmFyaSB0ZXN0cyBjYW4gb25seSBy
dW4gb24gYW4gQXBwbGUgT1MiKQorICAgIGlmIChkcml2ZXJfY2xhc3MgPT0gIkllIiBvciBkcml2
ZXJfY2xhc3MgPT0gIkVkZ2UiKSBhbmQgX3BsYXRmb3JtICE9ICJXaW5kb3dzIjoKKyAgICAgICAg
cHl0ZXN0LnNraXAoIklFIGFuZCBFZGdlSFRNTCBUZXN0cyBjYW4gb25seSBydW4gb24gV2luZG93
cyIpCisgICAgaWYgIldlYktpdCIgaW4gZHJpdmVyX2NsYXNzIGFuZCBfcGxhdGZvcm0gIT0gIkxp
bnV4IjoKKyAgICAgICAgcHl0ZXN0LnNraXAoIldlYmtpdCB0ZXN0cyBjYW4gb25seSBydW4gb24g
TGludXgiKQorCiAgICAgIyBjb25kaXRpb25hbGx5IG1hcmsgdGVzdHMgYXMgZXhwZWN0ZWQgdG8g
ZmFpbCBiYXNlZCBvbiBkcml2ZXIKLSAgICByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbCA9IHJlcXVl
c3Qubm9kZS5fZXZhbHhmYWlsIG9yIE1hcmtFdmFsdWF0b3IoCi0gICAgICAgIHJlcXVlc3Qubm9k
ZSwgJ3hmYWlsX3swfScuZm9ybWF0KGRyaXZlcl9jbGFzcy5sb3dlcigpKSkKLSAgICBpZiByZXF1
ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5pc3RydWUoKToKKyAgICBtYXJrZXIgPSByZXF1ZXN0Lm5vZGUu
Z2V0X2Nsb3Nlc3RfbWFya2VyKCd4ZmFpbF97MH0nLmZvcm1hdChkcml2ZXJfY2xhc3MubG93ZXIo
KSkpCisKKyAgICBpZiBtYXJrZXIgaXMgbm90IE5vbmU6CisgICAgICAgIGlmICJydW4iIGluIG1h
cmtlci5rd2FyZ3M6CisgICAgICAgICAgICBpZiBtYXJrZXIua3dhcmdzWyJydW4iXSBpcyBGYWxz
ZToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgpCisgICAgICAgICAgICAgICAgeWllbGQK
KyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgInJhaXNlcyIgaW4gbWFya2VyLmt3
YXJnczoKKyAgICAgICAgICAgIG1hcmtlci5rd2FyZ3MucG9wKCJyYWlzZXMiKQorICAgICAgICBw
eXRlc3QueGZhaWwoKiptYXJrZXIua3dhcmdzKQorCiAgICAgICAgIGRlZiBmaW4oKToKICAgICAg
ICAgICAgIGdsb2JhbCBkcml2ZXJfaW5zdGFuY2UKICAgICAgICAgICAgIGlmIGRyaXZlcl9pbnN0
YW5jZSBpcyBub3QgTm9uZToKQEAgLTkzLDI1ICsxMDUsMTIgQEAgZGVmIGRyaXZlcihyZXF1ZXN0
KToKICAgICAgICAgICAgIGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKICAgICAgICAgcmVxdWVzdC5h
ZGRmaW5hbGl6ZXIoZmluKQogCi0gICAgIyBza2lwIGRyaXZlciBpbnN0YW50aWF0aW9uIGlmIHhm
YWlsKHJ1bj1GYWxzZSkKLSAgICBpZiBub3QgcmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCdydW54
ZmFpbCcpOgotICAgICAgICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5pc3RydWUoKToKLSAg
ICAgICAgICAgIGlmIHJlcXVlc3Qubm9kZS5fZXZhbHhmYWlsLmdldCgncnVuJykgaXMgRmFsc2U6
Ci0gICAgICAgICAgICAgICAgeWllbGQKLSAgICAgICAgICAgICAgICByZXR1cm4KLQogICAgIGRy
aXZlcl9wYXRoID0gcmVxdWVzdC5jb25maWcub3B0aW9uLmV4ZWN1dGFibGUKICAgICBvcHRpb25z
ID0gTm9uZQogCiAgICAgZ2xvYmFsIGRyaXZlcl9pbnN0YW5jZQogICAgIGlmIGRyaXZlcl9pbnN0
YW5jZSBpcyBOb25lOgotICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ0JsYWNrQmVycnknOgot
ICAgICAgICAgICAga3dhcmdzLnVwZGF0ZSh7J2RldmljZV9wYXNzd29yZCc6ICdwYXNzd29yZCd9
KQogICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ0ZpcmVmb3gnOgotICAgICAgICAgICAga3dh
cmdzLnVwZGF0ZSh7J2NhcGFiaWxpdGllcyc6IHsnbWFyaW9uZXR0ZSc6IEZhbHNlfX0pCi0gICAg
ICAgICAgICBvcHRpb25zID0gZ2V0X29wdGlvbnMoZHJpdmVyX2NsYXNzLCByZXF1ZXN0LmNvbmZp
ZykKLSAgICAgICAgaWYgZHJpdmVyX2NsYXNzID09ICdNYXJpb25ldHRlJzoKLSAgICAgICAgICAg
IGRyaXZlcl9jbGFzcyA9ICdGaXJlZm94JwogICAgICAgICAgICAgb3B0aW9ucyA9IGdldF9vcHRp
b25zKGRyaXZlcl9jbGFzcywgcmVxdWVzdC5jb25maWcpCiAgICAgICAgIGlmIGRyaXZlcl9jbGFz
cyA9PSAnUmVtb3RlJzoKICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IERlc2lyZWRDYXBhYmls
aXRpZXMuRklSRUZPWC5jb3B5KCkKQEAgLTEyOSw3ICsxMjgsOCBAQCBkZWYgZHJpdmVyKHJlcXVl
c3QpOgogICAgICAgICAgICAga3dhcmdzWydvcHRpb25zJ10gPSBvcHRpb25zCiAgICAgICAgIGRy
aXZlcl9pbnN0YW5jZSA9IGdldGF0dHIod2ViZHJpdmVyLCBkcml2ZXJfY2xhc3MpKCoqa3dhcmdz
KQogICAgIHlpZWxkIGRyaXZlcl9pbnN0YW5jZQotICAgIGlmIE1hcmtFdmFsdWF0b3IocmVxdWVz
dC5ub2RlLCAnbm9fZHJpdmVyX2FmdGVyX3Rlc3QnKS5pc3RydWUoKToKKworICAgIGlmIHJlcXVl
c3Qubm9kZS5nZXRfY2xvc2VzdF9tYXJrZXIoIm5vX2RyaXZlcl9hZnRlcl90ZXN0Iik6CiAgICAg
ICAgIGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKIAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9fLnB5CmluZGV4IDRhMDQ5
Yjg1OTEzMi4uMzIzY2FhZWI3OTBjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQpAQCAtMTYsNCArMTYsNCBA
QAogIyB1bmRlciB0aGUgTGljZW5zZS4KIAogCi1fX3ZlcnNpb25fXyA9ICI0LjAuMGE2IgorX192
ZXJzaW9uX18gPSAiNC4wLjBhNyIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKaW5k
ZXggNGNiMTFjODlkNThlLi5lODI3YjA3ZTFlM2EgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNl
cHRpb25zLnB5CkBAIC0xNTgsNyArMTU4LDcgQEAgY2xhc3MgRWxlbWVudE5vdFZpc2libGVFeGNl
cHRpb24oSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CiBjbGFzcyBFbGVtZW50Tm90SW50
ZXJhY3RhYmxlRXhjZXB0aW9uKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgogICAgICIi
IgogICAgIFRocm93biB3aGVuIGFuIGVsZW1lbnQgaXMgcHJlc2VudCBpbiB0aGUgRE9NIGJ1dCBp
bnRlcmFjdGlvbnMKLSAgICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90aGVyIGVsZW1l
bnQgZG8gdG8gcGFpbnQgb3JkZXIKKyAgICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90
aGVyIGVsZW1lbnQgZHVlIHRvIHBhaW50IG9yZGVyCiAgICAgIiIiCiAgICAgcGFzcwogCkBAIC0y
NzMsNyArMjczLDcgQEAgY2xhc3MgU2NyZWVuc2hvdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRp
b24pOgogY2xhc3MgRWxlbWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhj
ZXB0aW9uKToKICAgICAiIiIKICAgICBUaGUgRWxlbWVudCBDbGljayBjb21tYW5kIGNvdWxkIG5v
dCBiZSBjb21wbGV0ZWQgYmVjYXVzZSB0aGUgZWxlbWVudCByZWNlaXZpbmcgdGhlIGV2ZW50cwot
ICAgIGlzIG9ic2N1cmluZyB0aGUgZWxlbWVudCB0aGF0IHdhcyByZXF1ZXN0ZWQgY2xpY2tlZC4K
KyAgICBpcyBvYnNjdXJpbmcgdGhlIGVsZW1lbnQgdGhhdCB3YXMgcmVxdWVzdGVkIHRvIGJlIGNs
aWNrZWQuCiAgICAgIiIiCiAgICAgcGFzcwogCkBAIC0yODgsNyArMjg4LDcgQEAgY2xhc3MgSW5z
ZWN1cmVDZXJ0aWZpY2F0ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogCiBjbGFzcyBJ
bnZhbGlkQ29vcmRpbmF0ZXNFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAiIiIK
LSAgICBUaGUgY29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50ZXJhY3Rpb25zIG9wZXJhdGlv
biBhcmUgaW52YWxpZC4KKyAgICBUaGUgY29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50ZXJh
Y3Rpb24ncyBvcGVyYXRpb24gYXJlIGludmFsaWQuCiAgICAgIiIiCiAgICAgcGFzcwogCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkKaW5kZXggOWI5M2RjYzI4NDdjLi5lNzU3NjM2
YWM3NWIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTE2LDE0ICsx
NiwxNCBAQAogIyB1bmRlciB0aGUgTGljZW5zZS4KIAogZnJvbSAuc2FmYXJpLndlYmRyaXZlciBp
bXBvcnQgV2ViRHJpdmVyIGFzIFNhZmFyaSAgIyBub3FhCi1mcm9tIC53ZWJraXRndGsud2ViZHJp
dmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgV2ViS2l0R1RLICMgbm9xYQotZnJvbSAud2Via2l0Z3Rr
Lm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMgYXMgV2ViS2l0R1RLT3B0aW9ucyAjIG5vcWEKLWZyb20g
LndwZXdlYmtpdC53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXUEVXZWJLaXQgIyBub3Fh
Ci1mcm9tIC53cGV3ZWJraXQub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXUEVXZWJLaXRPcHRp
b25zICMgbm9xYQorZnJvbSAud2Via2l0Z3RrLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFz
IFdlYktpdEdUSyAgIyBub3FhCitmcm9tIC53ZWJraXRndGsub3B0aW9ucyBpbXBvcnQgT3B0aW9u
cyBhcyBXZWJLaXRHVEtPcHRpb25zICAjIG5vcWEKK2Zyb20gLndwZXdlYmtpdC53ZWJkcml2ZXIg
aW1wb3J0IFdlYkRyaXZlciBhcyBXUEVXZWJLaXQgICMgbm9xYQorZnJvbSAud3Bld2Via2l0Lm9w
dGlvbnMgaW1wb3J0IE9wdGlvbnMgYXMgV1BFV2ViS2l0T3B0aW9ucyAgIyBub3FhCiBmcm9tIC5y
ZW1vdGUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgUmVtb3RlICAjIG5vcWEKIGZyb20g
LmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcyAg
IyBub3FhCiBmcm9tIC5jb21tb24uYWN0aW9uX2NoYWlucyBpbXBvcnQgQWN0aW9uQ2hhaW5zICAj
IG5vcWEKIGZyb20gLmNvbW1vbi50b3VjaF9hY3Rpb25zIGltcG9ydCBUb3VjaEFjdGlvbnMgICMg
bm9xYQogZnJvbSAuY29tbW9uLnByb3h5IGltcG9ydCBQcm94eSAgIyBub3FhCiAKLV9fdmVyc2lv
bl9fID0gJzQuMC4wYTYnCitfX3ZlcnNpb25fXyA9ICc0LjAuMGE3JwpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9vcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5CmluZGV4IGJmZjI1MTcyN2IzZS4uOTIwMzQ4
MTI4OWQyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL29wdGlvbnMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5
CkBAIC00OSwxMiArNDksMTIgQEAgY2xhc3MgQmFzZU9wdGlvbnMob2JqZWN0KToKICAgICAgICAg
IiIiUmV0dXJuIG1pbmltYWwgY2FwYWJpbGl0aWVzIG5lY2Vzc2FyeSBhcyBhIGRpY3Rpb25hcnku
IiIiCiAKIAotCiBjbGFzcyBBcmdPcHRpb25zKEJhc2VPcHRpb25zKToKIAogICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKICAgICAgICAgc3VwZXIoQXJnT3B0aW9ucywgc2VsZikuX19pbml0X18oKQog
ICAgICAgICBzZWxmLl9hcmd1bWVudHMgPSBbXQorICAgICAgICBzZWxmLl9pZ25vcmVfbG9jYWxf
cHJveHkgPSBGYWxzZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGFyZ3VtZW50cyhzZWxmKToK
QEAgLTc1LDYgKzc1LDEyIEBAIGNsYXNzIEFyZ09wdGlvbnMoQmFzZU9wdGlvbnMpOgogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignYXJndW1lbnQgY2FuIG5vdCBi
ZSBudWxsJykKIAorICAgIGRlZiBpZ25vcmVfbG9jYWxfcHJveHlfZW52aXJvbm1lbnRfdmFyaWFi
bGVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIEJ5IGNhbGxpbmcgdGhpcyB5b3Ug
d2lsbCBpZ25vcmUgSFRUUF9QUk9YWSBhbmQgSFRUUFNfUFJPWFkgZnJvbSBiZWluZyBwaWNrZWQg
dXAgYW5kIHVzZWQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9pZ25vcmVfbG9jYWxfcHJv
eHkgPSBUcnVlCisKICAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAgICByZXR1
cm4gc2VsZi5fY2FwcwogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZp
Y2UucHkKaW5kZXggZDIwYTkwMmZhYzdlLi44YzMyZTBkYmVjYzEgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
c2VydmljZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkKQEAgLTQ2LDYgKzQ2LDggQEAgY2xhc3Mg
U2VydmljZShvYmplY3QpOgogCiAgICAgICAgIHNlbGYuc3RhcnRfZXJyb3JfbWVzc2FnZSA9IHN0
YXJ0X2Vycm9yX21lc3NhZ2UKICAgICAgICAgc2VsZi5sb2dfZmlsZSA9IGxvZ19maWxlCisgICAg
ICAgICMgRGVmYXVsdCB2YWx1ZSBmb3IgZXZlcnkgcHl0aG9uIHN1YnByb2Nlc3M6IHN1YnByb2Nl
c3MuUG9wZW4oLi4uLCBjcmVhdGlvbmZsYWdzPTApCisgICAgICAgIHNlbGYuY3JlYXRpb25mbGFn
cyA9IDAKICAgICAgICAgc2VsZi5lbnYgPSBlbnYgb3Igb3MuZW52aXJvbgogCiAgICAgQHByb3Bl
cnR5CkBAIC03Myw3ICs3NSw4IEBAIGNsYXNzIFNlcnZpY2Uob2JqZWN0KToKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXBsYXRmb3JtLnN5c3Rl
bSgpICE9ICdXaW5kb3dzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PXNlbGYubG9nX2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZGVycj1zZWxmLmxvZ19maWxlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1QSVBFKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1QSVBFLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbmZsYWdzPXNlbGYuY3JlYXRpb25mbGFn
cykKICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAg
IGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKQEAgLTk4LDkgKzEwMSwxMCBAQCBjbGFzcyBTZXJ2aWNl
KG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydF9wcm9jZXNzX3N0aWxsX3J1bm5pbmco
KQogICAgICAgICAgICAgaWYgc2VsZi5pc19jb25uZWN0YWJsZSgpOgogICAgICAgICAgICAgICAg
IGJyZWFrCisKICAgICAgICAgICAgIGNvdW50ICs9IDEKLSAgICAgICAgICAgIHRpbWUuc2xlZXAo
MSkKLSAgICAgICAgICAgIGlmIGNvdW50ID09IDMwOgorICAgICAgICAgICAgdGltZS5zbGVlcCgw
LjUpCisgICAgICAgICAgICBpZiBjb3VudCA9PSA2MDoKICAgICAgICAgICAgICAgICByYWlzZSBX
ZWJEcml2ZXJFeGNlcHRpb24oIkNhbiBub3QgY29ubmVjdCB0byB0aGUgU2VydmljZSAlcyIgJSBz
ZWxmLnBhdGgpCiAKICAgICBkZWYgYXNzZXJ0X3Byb2Nlc3Nfc3RpbGxfcnVubmluZyhzZWxmKToK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CmluZGV4IDk1N2YyZmQy
NjY5OS4uMWY2MGU0NDU3M2EyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
dXRpbHMucHkKQEAgLTM2LDcgKzM2LDcgQEAgZGVmIGZyZWVfcG9ydCgpOgogICAgIERldGVybWlu
ZXMgYSBmcmVlIHBvcnQgdXNpbmcgc29ja2V0cy4KICAgICAiIiIKICAgICBmcmVlX3NvY2tldCA9
IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKLSAgICBm
cmVlX3NvY2tldC5iaW5kKCgnMC4wLjAuMCcsIDApKQorICAgIGZyZWVfc29ja2V0LmJpbmQoKCcx
MjcuMC4wLjEnLCAwKSkKICAgICBmcmVlX3NvY2tldC5saXN0ZW4oNSkKICAgICBwb3J0ID0gZnJl
ZV9zb2NrZXQuZ2V0c29ja25hbWUoKVsxXQogICAgIGZyZWVfc29ja2V0LmNsb3NlKCkKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0aW9u
LnB5CmluZGV4IDZmMWMxYjQ3MTIwNy4uMjQ0OGMxYjA2YjRjIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3Jl
bW90ZV9jb25uZWN0aW9uLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkKQEAgLTE0
MSw3ICsxNDEsNyBAQCBjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiB1cmxsaWIzLlBvb2xNYW5hZ2VyKCoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykgaWYgc2Vs
Zi5fcHJveHlfdXJsIGlzIE5vbmUgZWxzZSBcCiAgICAgICAgICAgICB1cmxsaWIzLlByb3h5TWFu
YWdlcihzZWxmLl9wcm94eV91cmwsICoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykKIAotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9RmFsc2UsIHJl
c29sdmVfaXA9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRk
ciwga2VlcF9hbGl2ZT1GYWxzZSwgcmVzb2x2ZV9pcD1Ob25lLCBpZ25vcmVfcHJveHk9RmFsc2Up
OgogICAgICAgICBpZiByZXNvbHZlX2lwIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaW1wb3J0
IHdhcm5pbmdzCiAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKApAQCAtMTQ5LDcgKzE0OSw3IEBA
IGNsYXNzIFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICBEZXByZWNh
dGlvbldhcm5pbmcpCiAgICAgICAgIHNlbGYua2VlcF9hbGl2ZSA9IGtlZXBfYWxpdmUKICAgICAg
ICAgc2VsZi5fdXJsID0gcmVtb3RlX3NlcnZlcl9hZGRyCi0gICAgICAgIHNlbGYuX3Byb3h5X3Vy
bCA9IHNlbGYuX2dldF9wcm94eV91cmwoKQorICAgICAgICBzZWxmLl9wcm94eV91cmwgPSBzZWxm
Ll9nZXRfcHJveHlfdXJsKCkgaWYgbm90IGlnbm9yZV9wcm94eSBlbHNlIE5vbmUKICAgICAgICAg
aWYga2VlcF9hbGl2ZToKICAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSBzZWxmLl9nZXRfY29ubmVj
dGlvbl9tYW5hZ2VyKCkKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGNsYXNzIFJlbW90ZUNvbm5lY3Rp
b24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC9lbGVtZW50LyRpZC92YWx1ZScpLAogICAgICAgICAgICAgQ29tbWFuZC5TRU5EX0tFWVNfVE9f
QUNUSVZFX0VMRU1FTlQ6CiAgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNz
aW9uSWQva2V5cycpLAotICAgICAgICAgICAgQ29tbWFuZC5VUExPQURfRklMRTogKCdQT1NUJywg
Ii9zZXNzaW9uLyRzZXNzaW9uSWQvZmlsZSIpLAorICAgICAgICAgICAgQ29tbWFuZC5VUExPQURf
RklMRTogKCdQT1NUJywgIi9zZXNzaW9uLyRzZXNzaW9uSWQvc2UvZmlsZSIpLAogICAgICAgICAg
ICAgQ29tbWFuZC5HRVRfRUxFTUVOVF9WQUxVRToKICAgICAgICAgICAgICAgICAoJ0dFVCcsICcv
c2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL3ZhbHVlJyksCiAgICAgICAgICAgICBDb21t
YW5kLkdFVF9FTEVNRU5UX1RBR19OQU1FOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
cmVtb3RlL3dlYmRyaXZlci5weQppbmRleCA2MjI4MmQ1MjY5NWIuLmM0ODMxMDNkM2E1MCAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkKQEAgLTIw
LDE5ICsyMCwyMyBAQAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEKIGltcG9ydCBiYXNlNjQKIGlt
cG9ydCBjb3B5Ci1mcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCitmcm9tIGNv
bnRleHRsaWIgaW1wb3J0IChjb250ZXh0bWFuYWdlciwgYXN5bmNjb250ZXh0bWFuYWdlcikKK2lt
cG9ydCBpbXBvcnRsaWIKIGltcG9ydCBwa2d1dGlsCiBpbXBvcnQgd2FybmluZ3MKK2ltcG9ydCBz
eXMKIAogZnJvbSAuY29tbWFuZCBpbXBvcnQgQ29tbWFuZAogZnJvbSAuZXJyb3JoYW5kbGVyIGlt
cG9ydCBFcnJvckhhbmRsZXIKIGZyb20gLmZpbGVfZGV0ZWN0b3IgaW1wb3J0IEZpbGVEZXRlY3Rv
ciwgTG9jYWxGaWxlRGV0ZWN0b3IKIGZyb20gLm1vYmlsZSBpbXBvcnQgTW9iaWxlCiBmcm9tIC5y
ZW1vdGVfY29ubmVjdGlvbiBpbXBvcnQgUmVtb3RlQ29ubmVjdGlvbgorZnJvbSAuc2NyaXB0X2tl
eSBpbXBvcnQgU2NyaXB0S2V5CiBmcm9tIC5zd2l0Y2hfdG8gaW1wb3J0IFN3aXRjaFRvCiBmcm9t
IC53ZWJlbGVtZW50IGltcG9ydCBXZWJFbGVtZW50CiAKIGZyb20gc2VsZW5pdW0uY29tbW9uLmV4
Y2VwdGlvbnMgaW1wb3J0IChJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSmF2YXNjcmlwdEV4Y2VwdGlvbiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJFeGNlcHRpb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9TdWNoQ29va2llRXhjZXB0aW9u
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVua25vd25NZXRob2RF
eGNlcHRpb24pCkBAIC00OCw2ICs1MiwxNCBAQCB0cnk6CiBleGNlcHQgTmFtZUVycm9yOgogICAg
IHBhc3MKIAorY2RwID0gTm9uZQorCisKK2RlZiBpbXBvcnRfY2RwKCk6CisgICAgZ2xvYmFsIGNk
cAorICAgIGlmIGNkcCBpcyBOb25lOgorICAgICAgICBjZHAgPSBpbXBvcnRsaWIuaW1wb3J0X21v
ZHVsZSgic2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5iaWRpLmNkcCIpCisKIAogX1czQ19DQVBB
QklMSVRZX05BTUVTID0gZnJvemVuc2V0KFsKICAgICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycsCkBA
IC02OCw2ICs4MCw4IEBAIF9PU1NfVzNDX0NPTlZFUlNJT04gPSB7CiAgICAgJ3BsYXRmb3JtJzog
J3BsYXRmb3JtTmFtZScKIH0KIAorZGV2dG9vbHMgPSBOb25lCisKIAogZGVmIF9tYWtlX3czY19j
YXBzKGNhcHMpOgogICAgICIiIk1ha2VzIGEgVzNDIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyBv
YmplY3QuCkBAIC0xMDIsNyArMTE2LDcgQEAgZGVmIF9tYWtlX3czY19jYXBzKGNhcHMpOgogICAg
IHJldHVybiB7ImZpcnN0TWF0Y2giOiBbe31dLCAiYWx3YXlzTWF0Y2giOiBhbHdheXNfbWF0Y2h9
CiAKIAotZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhl
Y3V0b3IsIGtlZXBfYWxpdmUpOgorZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRp
ZXMsIGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmUsIGlnbm9yZV9sb2NhbF9wcm94eT1GYWxz
ZSk6CiAgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLnJlbW90ZV9jb25uZWN0aW9u
IGltcG9ydCBTYWZhcmlSZW1vdGVDb25uZWN0aW9uCiAKICAgICBjYW5kaWRhdGVzID0gW1JlbW90
ZUNvbm5lY3Rpb25dICsgW1NhZmFyaVJlbW90ZUNvbm5lY3Rpb25dCkBAIC0xMTEsNyArMTI1LDcg
QEAgZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhlY3V0
b3IsIGtlZXBfYWxpdmUpOgogICAgICAgICBSZW1vdGVDb25uZWN0aW9uCiAgICAgKQogCi0gICAg
cmV0dXJuIGhhbmRsZXIoY29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZlKQor
ICAgIHJldHVybiBoYW5kbGVyKGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmU9a2VlcF9hbGl2
ZSwgaWdub3JlX3Byb3h5PWlnbm9yZV9sb2NhbF9wcm94eSkKIAogCiBAYWRkX21ldGFjbGFzcyhB
QkNNZXRhKQpAQCAtMTYzLDggKzE3NywxMCBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZl
cik6CiAgICAgICAgICAtIG9wdGlvbnMgLSBpbnN0YW5jZSBvZiBhIGRyaXZlciBvcHRpb25zLk9w
dGlvbnMgY2xhc3MKICAgICAgICAgIiIiCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHt9CisgICAg
ICAgIF9pZ25vcmVfbG9jYWxfcHJveHkgPSBGYWxzZQogICAgICAgICBpZiBvcHRpb25zIGlzIG5v
dCBOb25lOgogICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gb3B0aW9ucy50b19jYXBhYmlsaXRp
ZXMoKQorICAgICAgICAgICAgX2lnbm9yZV9sb2NhbF9wcm94eSA9IG9wdGlvbnMuX2lnbm9yZV9s
b2NhbF9wcm94eQogICAgICAgICBpZiBkZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBub3QgTm9uZToK
ICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRlc2lyZWRfY2FwYWJpbGl0aWVzLCBkaWN0
KToKICAgICAgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkRlc2lyZWQgQ2Fw
YWJpbGl0aWVzIG11c3QgYmUgYSBkaWN0aW9uYXJ5IikKQEAgLTE3MiwxMCArMTg4LDEzIEBAIGNs
YXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBjYXBhYmlsaXRp
ZXMudXBkYXRlKGRlc2lyZWRfY2FwYWJpbGl0aWVzKQogICAgICAgICBzZWxmLmNvbW1hbmRfZXhl
Y3V0b3IgPSBjb21tYW5kX2V4ZWN1dG9yCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5jb21t
YW5kX2V4ZWN1dG9yLCAoc3RyLCBieXRlcykpOgotICAgICAgICAgICAgc2VsZi5jb21tYW5kX2V4
ZWN1dG9yID0gZ2V0X3JlbW90ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29tbWFuZF9leGVj
dXRvcj1jb21tYW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlPWtlZXBfYWxpdmUpCisgICAgICAgICAg
ICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IgPSBnZXRfcmVtb3RlX2Nvbm5lY3Rpb24oY2FwYWJpbGl0
aWVzLCBjb21tYW5kX2V4ZWN1dG9yPWNvbW1hbmRfZXhlY3V0b3IsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcF9hbGl2ZT1rZWVw
X2FsaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlnbm9yZV9sb2NhbF9wcm94eT1faWdub3JlX2xvY2FsX3Byb3h5KQogICAgICAg
ICBzZWxmLl9pc19yZW1vdGUgPSBUcnVlCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUK
LSAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSB7fQorICAgICAgICBzZWxmLmNhcHMgPSB7fQor
ICAgICAgICBzZWxmLnBpbm5lZF9zY3JpcHRzID0ge30KICAgICAgICAgc2VsZi5lcnJvcl9oYW5k
bGVyID0gRXJyb3JIYW5kbGVyKCkKICAgICAgICAgc2VsZi5zdGFydF9jbGllbnQoKQogICAgICAg
ICBzZWxmLnN0YXJ0X3Nlc3Npb24oY2FwYWJpbGl0aWVzLCBicm93c2VyX3Byb2ZpbGUpCkBAIC0y
MzUsOCArMjU0LDggQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgICAg
ICAgICAgICAgbmFtZSA9IGRyaXZlci5uYW1lCiAgICAgICAgICIiIgotICAgICAgICBpZiAnYnJv
d3Nlck5hbWUnIGluIHNlbGYuY2FwYWJpbGl0aWVzOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYu
Y2FwYWJpbGl0aWVzWydicm93c2VyTmFtZSddCisgICAgICAgIGlmICdicm93c2VyTmFtZScgaW4g
c2VsZi5jYXBzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2Fwc1snYnJvd3Nlck5hbWUnXQog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ2Jyb3dzZXJOYW1lIG5v
dCBzcGVjaWZpZWQgaW4gc2Vzc2lvbiBjYXBhYmlsaXRpZXMnKQogCkBAIC0yNzksMTIgKzI5OCwx
MiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgIGlmICdzZXNzaW9u
SWQnIG5vdCBpbiByZXNwb25zZToKICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2VbJ3Zh
bHVlJ10KICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gcmVzcG9uc2VbJ3Nlc3Npb25JZCddCi0g
ICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCd2YWx1ZScpCisgICAgICAg
IHNlbGYuY2FwcyA9IHJlc3BvbnNlLmdldCgndmFsdWUnKQogCiAgICAgICAgICMgaWYgY2FwYWJp
bGl0aWVzIGlzIG5vbmUgd2UgYXJlIHByb2JhYmx5IHNwZWFraW5nIHRvCiAgICAgICAgICMgYSBX
M0MgZW5kcG9pbnQKLSAgICAgICAgaWYgc2VsZi5jYXBhYmlsaXRpZXMgaXMgTm9uZToKLSAgICAg
ICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCdjYXBhYmlsaXRpZXMnKQor
ICAgICAgICBpZiBzZWxmLmNhcHMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY2FwcyA9IHJl
c3BvbnNlLmdldCgnY2FwYWJpbGl0aWVzJykKIAogICAgICAgICAjIERvdWJsZSBjaGVjayB0byBz
ZWUgaWYgd2UgaGF2ZSBhIFczQyBDb21wbGlhbnQgYnJvd3NlcgogICAgICAgICBzZWxmLnczYyA9
IHJlc3BvbnNlLmdldCgnc3RhdHVzJykgaXMgTm9uZQpAQCAtNjg5LDYgKzcwOCwyNiBAQCBjbGFz
cyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgIHdhcm5pbmdzLndhcm4oImZpbmRf
ZWxlbWVudHNfYnlfKiBjb21tYW5kcyBhcmUgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBmaW5kX2Vs
ZW1lbnRzKCkgaW5zdGVhZCIpCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9
QnkuQ1NTX1NFTEVDVE9SLCB2YWx1ZT1jc3Nfc2VsZWN0b3IpCiAKKyAgICBkZWYgcGluX3Njcmlw
dChzZWxmLCBzY3JpcHQpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAgICAgc2Ny
aXB0X2tleSA9IFNjcmlwdEtleSgpCisgICAgICAgIHNlbGYucGlubmVkX3NjcmlwdHNbc2NyaXB0
X2tleS5pZF0gPSBzY3JpcHQKKyAgICAgICAgcmV0dXJuIHNjcmlwdF9rZXkKKworICAgIGRlZiB1
bnBpbihzZWxmLCBzY3JpcHRfa2V5KToKKyAgICAgICAgIiIiCisKKyAgICAgICAgIiIiCisgICAg
ICAgIHNlbGYucGlubmVkX3NjcmlwdHMucG9wKHNjcmlwdF9rZXkuaWQpCisKKyAgICBkZWYgZ2V0
X3Bpbm5lZF9zY3JpcHRzKHNlbGYpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAg
ICAgcmV0dXJuIGxpc3Qoc2VsZi5waW5uZWRfc2NyaXB0cy5rZXlzKCkpCisKICAgICBkZWYgZXhl
Y3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCAqYXJncyk6CiAgICAgICAgICIiIgogICAgICAgICBT
eW5jaHJvbm91c2x5IEV4ZWN1dGVzIEphdmFTY3JpcHQgaW4gdGhlIGN1cnJlbnQgd2luZG93L2Zy
YW1lLgpAQCAtNzAyLDYgKzc0MSwxMiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6
CiAKICAgICAgICAgICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVu
dC50aXRsZTsnKQogICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzY3JpcHQsIFNj
cmlwdEtleSk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gc2Vs
Zi5waW5uZWRfc2NyaXB0c1tzY3JpcHQuaWRdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6
CisgICAgICAgICAgICAgICAgcmFpc2UgSmF2YXNjcmlwdEV4Y2VwdGlvbigiUGlubmVkIHNjcmlw
dCBjb3VsZCBub3QgYmUgZm91bmQiKQorCiAgICAgICAgIGNvbnZlcnRlZF9hcmdzID0gbGlzdChh
cmdzKQogICAgICAgICBjb21tYW5kID0gTm9uZQogICAgICAgICBpZiBzZWxmLnczYzoKQEAgLTEw
NjcsOCArMTExMiw3IEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKIAogICAgIGRl
ZiBmaW5kX2VsZW1lbnQoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIK
LSAgICAgICAgRmluZCBhbiBlbGVtZW50IGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0b3Iu
IFByZWZlciB0aGUgZmluZF9lbGVtZW50X2J5XyogbWV0aG9kcyB3aGVuCi0gICAgICAgIHBvc3Np
YmxlLgorICAgICAgICBGaW5kIGFuIGVsZW1lbnQgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9j
YXRvci4KIAogICAgICAgICA6VXNhZ2U6CiAgICAgICAgICAgICA6OgpAQCAtMTA5NSw4ICsxMTM5
LDcgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgZGVmIGZpbmRfZWxl
bWVudHMoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIKLSAgICAgICAg
RmluZCBlbGVtZW50cyBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLiBQcmVmZXIgdGhl
IGZpbmRfZWxlbWVudHNfYnlfKiBtZXRob2RzIHdoZW4KLSAgICAgICAgcG9zc2libGUuCisgICAg
ICAgIEZpbmQgZWxlbWVudHMgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4KIAogICAg
ICAgICA6VXNhZ2U6CiAgICAgICAgICAgICA6OgpAQCAtMTEwOCw3ICsxMTUxLDcgQEAgY2xhc3Mg
V2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogICAgICAgICBpZiBpc2luc3RhbmNlKGJ5LCBSZWxh
dGl2ZUJ5KToKICAgICAgICAgICAgIF9wa2cgPSAnLicuam9pbihfX25hbWVfXy5zcGxpdCgnLicp
WzotMV0pCiAgICAgICAgICAgICByYXdfZnVuY3Rpb24gPSBwa2d1dGlsLmdldF9kYXRhKF9wa2cs
ICdmaW5kRWxlbWVudHMuanMnKS5kZWNvZGUoJ3V0ZjgnKQotICAgICAgICAgICAgZmluZF9lbGVt
ZW50X2pzID0gInJldHVybiAoJXMpLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7IiAlIHJhd19mdW5j
dGlvbgorICAgICAgICAgICAgZmluZF9lbGVtZW50X2pzID0gInJldHVybiAoe30pLmFwcGx5KG51
bGwsIGFyZ3VtZW50cyk7Ii5mb3JtYXQocmF3X2Z1bmN0aW9uKQogICAgICAgICAgICAgcmV0dXJu
IHNlbGYuZXhlY3V0ZV9zY3JpcHQoZmluZF9lbGVtZW50X2pzLCBieS50b19kaWN0KCkpCiAKICAg
ICAgICAgaWYgc2VsZi53M2M6CkBAIC0xMTM1LDcgKzExNzgsMTYgQEAgY2xhc3MgV2ViRHJpdmVy
KEJhc2VXZWJEcml2ZXIpOgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJucyB0aGUgZHJpdmVy
cyBjdXJyZW50IGRlc2lyZWQgY2FwYWJpbGl0aWVzIGJlaW5nIHVzZWQKICAgICAgICAgIiIiCi0g
ICAgICAgIHJldHVybiBzZWxmLmNhcGFiaWxpdGllcworICAgICAgICB3YXJuaW5ncy53YXJuKCJk
ZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBkZXByZWNhdGVkLiBQbGVhc2UgY2FsbCBjYXBhYmlsaXRp
ZXMuIiwKKyAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2
ZWw9MikKKyAgICAgICAgcmV0dXJuIHNlbGYuY2FwcworCisgICAgQHByb3BlcnR5CisgICAgZGVm
IGNhcGFiaWxpdGllcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybnMgdGhlIGRy
aXZlcnMgY3VycmVudCBjYXBhYmlsaXRpZXMgYmVpbmcgdXNlZC4KKyAgICAgICAgIiIiCisgICAg
ICAgIHJldHVybiBzZWxmLmNhcHMKIAogICAgIGRlZiBnZXRfc2NyZWVuc2hvdF9hc19maWxlKHNl
bGYsIGZpbGVuYW1lKToKICAgICAgICAgIiIiCkBAIC0xNDE3LDMgKzE0NjksMTEwIEBAIGNsYXNz
IFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBkcml2ZXIuZ2V0X2xv
Zygnc2VydmVyJykKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29t
bWFuZC5HRVRfTE9HLCB7J3R5cGUnOiBsb2dfdHlwZX0pWyd2YWx1ZSddCisKKyAgICBAYXN5bmNj
b250ZXh0bWFuYWdlcgorICAgIGFzeW5jIGRlZiBhZGRfanNfZXJyb3JfbGlzdGVuZXIoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBMaXN0ZW5zIGZvciBKUyBlcnJvcnMgYW5kIHdoZW4gdGhl
IGNvbnRleHRtYW5hZ2VyIGV4aXRzIGNoZWNrIGlmIHRoZXJlIHdlcmUgSlMgRXJyb3JzCisKKyAg
ICAgICAgOlVzYWdlOgorICAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBhc3luYyB3
aXRoIGRyaXZlci5hZGRfanNfZXJyb3JfbGlzdGVuZXIoKSBhcyBlcnJvcjoKKyAgICAgICAgICAg
ICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInRocm93aW5nLW1vdXNlb3ZlciIp
LmNsaWNrKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgZXJyb3IgaXMgbm90IE5vbmUKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgZXJyb3IuZXhjZXB0aW9uX2RldGFpbHMuc3RhY2tfdHJhY2UuY2Fs
bF9mcmFtZXNbMF0uZnVuY3Rpb25fbmFtZSA9PSAib25tb3VzZW92ZXIiCisgICAgICAgICIiIgor
ICAgICAgICBhc3NlcnQgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNykKKyAgICAgICAgZ2xvYmFs
IGNkcAorICAgICAgICBhc3luYyB3aXRoIHNlbGYuX2dldF9iaWRpX2Nvbm5lY3Rpb24oKToKKyAg
ICAgICAgICAgIGdsb2JhbCBkZXZ0b29scworICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRf
c2Vzc2lvbl9jb250ZXh0KCdwYWdlLmVuYWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9u
LmV4ZWN1dGUoZGV2dG9vbHMucGFnZS5lbmFibGUoKSkKKyAgICAgICAgICAgIHNlc3Npb24gPSBj
ZHAuZ2V0X3Nlc3Npb25fY29udGV4dCgncnVudGltZS5lbmFibGUnKQorICAgICAgICAgICAgYXdh
aXQgc2Vzc2lvbi5leGVjdXRlKGRldnRvb2xzLnJ1bnRpbWUuZW5hYmxlKCkpCisgICAgICAgICAg
ICBqc19leGNlcHRpb24gPSBkZXZ0b29scy5ydW50aW1lLkV4Y2VwdGlvblRocm93bihOb25lLCBO
b25lKQorICAgICAgICAgICAgYXN5bmMgd2l0aCBzZXNzaW9uLndhaXRfZm9yKGRldnRvb2xzLnJ1
bnRpbWUuRXhjZXB0aW9uVGhyb3duKSBhcyBleGNlcHRpb246CisgICAgICAgICAgICAgICAgeWll
bGQganNfZXhjZXB0aW9uCisgICAgICAgICAgICBqc19leGNlcHRpb24udGltZXN0YW1wID0gZXhj
ZXB0aW9uLnZhbHVlLnRpbWVzdGFtcAorICAgICAgICAgICAganNfZXhjZXB0aW9uLmV4Y2VwdGlv
bl9kZXRhaWxzID0gZXhjZXB0aW9uLnZhbHVlLmV4Y2VwdGlvbl9kZXRhaWxzCisKKyAgICBAYXN5
bmNjb250ZXh0bWFuYWdlcgorICAgIGFzeW5jIGRlZiBhZGRfbGlzdGVuZXIoc2VsZiwgZXZlbnRf
dHlwZSk6CisgICAgICAgICcnJworICAgICAgICBMaXN0ZW5zIGZvciBjZXJ0YWluIGV2ZW50cyB0
aGF0IGFyZSBwYXNzZWQgaW4uCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV2ZW50X3R5
cGU6IFRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgd2Ugd2FudCB0byBsb29rIGF0LgorCisgICAgICAg
ICA6VXNhZ2U6CisgICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGFzeW5jIHdpdGgg
ZHJpdmVyLmFkZF9saXN0ZW5lcihDb25zb2xlLmxvZykgYXMgbWVzc2FnZXM6CisgICAgICAgICAg
ICAgICAgICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgiY29uc29sZS5sb2coJ0kgbGlrZSBjaGVl
c2UnKSIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IG1lc3NhZ2VzWyJtZXNzYWdlIl0gPT0gIkkg
bG92ZSBjaGVlc2UiCisKKyAgICAgICAgJycnCisgICAgICAgIGFzc2VydCBzeXMudmVyc2lvbl9p
bmZvID49ICgzLCA3KQorICAgICAgICBnbG9iYWwgY2RwCisgICAgICAgIGZyb20gc2VsZW5pdW0u
d2ViZHJpdmVyLmNvbW1vbi5iaWRpLmNvbnNvbGUgaW1wb3J0IENvbnNvbGUKKworICAgICAgICBh
c3luYyB3aXRoIHNlbGYuX2dldF9iaWRpX2Nvbm5lY3Rpb24oKToKKyAgICAgICAgICAgIGdsb2Jh
bCBkZXZ0b29scworICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9jb250ZXh0
KCdwYWdlLmVuYWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUoZGV2dG9v
bHMucGFnZS5lbmFibGUoKSkKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nlc3Npb25f
Y29udGV4dCgnY29uc29sZS5lbmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5leGVj
dXRlKGRldnRvb2xzLmNvbnNvbGUuZW5hYmxlKCkpCisgICAgICAgICAgICBjb25zb2xlID0gewor
ICAgICAgICAgICAgICAgICJtZXNzYWdlIjogTm9uZSwKKyAgICAgICAgICAgICAgICAibGV2ZWwi
OiBOb25lCisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3luYyB3aXRoIHNlc3Npb24ud2Fp
dF9mb3IoZGV2dG9vbHMuY29uc29sZS5NZXNzYWdlQWRkZWQpIGFzIG1lc3NhZ2VzOgorICAgICAg
ICAgICAgICAgIHlpZWxkIGNvbnNvbGUKKyAgICAgICAgICAgIGlmIGV2ZW50X3R5cGUgPT0gQ29u
c29sZS5FUlJPUjoKKyAgICAgICAgICAgICAgICBpZiBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLmxl
dmVsID09ICJlcnJvciI6CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbIm1lc3NhZ2UiXSA9
IG1lc3NhZ2VzLnZhbHVlLm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAgICAgICBjb25zb2xl
WyJsZXZlbCJdID0gbWVzc2FnZXMudmFsdWUubWVzc2FnZS5sZXZlbAorICAgICAgICAgICAgZWxp
ZiBldmVudF90eXBlID09IENvbnNvbGUuQUxMOgorICAgICAgICAgICAgICAgIGNvbnNvbGVbIm1l
c3NhZ2UiXSA9IG1lc3NhZ2VzLnZhbHVlLm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAgIGNv
bnNvbGVbImxldmVsIl0gPSBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLmxldmVsCisKKyAgICBAYXN5
bmNjb250ZXh0bWFuYWdlcgorICAgIGFzeW5jIGRlZiBfZ2V0X2JpZGlfY29ubmVjdGlvbihzZWxm
KToKKyAgICAgICAgZ2xvYmFsIGNkcAorICAgICAgICBpbXBvcnRfY2RwKCkKKyAgICAgICAgd3Nf
dXJsID0gTm9uZQorICAgICAgICBpZiBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIik6CisgICAg
ICAgICAgICB3c191cmwgPSBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIikuZ2V0KCJjZHAiKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmVyc2lvbiwgd3NfdXJsID0gc2VsZi5fZ2V0X2Nk
cF9kZXRhaWxzKCkKKworICAgICAgICBpZiB3c191cmwgaXMgTm9uZToKKyAgICAgICAgICAgIHJh
aXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiVW5hYmxlIHRvIGZpbmQgdXJsIHRvIGNvbm5lY3QgdG8g
ZnJvbSBjYXBhYmlsaXRpZXMiKQorCisgICAgICAgIGNkcC5pbXBvcnRfZGV2dG9vbHModmVyc2lv
bikKKworICAgICAgICBnbG9iYWwgZGV2dG9vbHMKKyAgICAgICAgZGV2dG9vbHMgPSBpbXBvcnRs
aWIuaW1wb3J0X21vZHVsZSgic2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXZ0b29scy52e30i
LmZvcm1hdCh2ZXJzaW9uKSkKKyAgICAgICAgYXN5bmMgd2l0aCBjZHAub3Blbl9jZHAod3NfdXJs
KSBhcyBjb25uOgorICAgICAgICAgICAgdGFyZ2V0cyA9IGF3YWl0IGNvbm4uZXhlY3V0ZShkZXZ0
b29scy50YXJnZXQuZ2V0X3RhcmdldHMoKSkKKyAgICAgICAgICAgIHRhcmdldF9pZCA9IHRhcmdl
dHNbMF0udGFyZ2V0X2lkCisgICAgICAgICAgICBhc3luYyB3aXRoIGNvbm4ub3Blbl9zZXNzaW9u
KHRhcmdldF9pZCkgYXMgc2Vzc2lvbjoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZXNzaW9uCisK
KyAgICBkZWYgX2dldF9jZHBfZGV0YWlscyhzZWxmKToKKyAgICAgICAgaW1wb3J0IGpzb24KKyAg
ICAgICAgaW1wb3J0IHVybGxpYjMKKworICAgICAgICBodHRwID0gdXJsbGliMy5Qb29sTWFuYWdl
cigpCisgICAgICAgIGRlYnVnZ2VyX2FkZHJlc3MgPSBzZWxmLmNhcHMuZ2V0KCJ7MH06Y2hyb21l
T3B0aW9ucyIuZm9ybWF0KHNlbGYudmVuZG9yX3ByZWZpeCkpLmdldCgiZGVidWdnZXJBZGRyZXNz
IikKKyAgICAgICAgcmVzID0gaHR0cC5yZXF1ZXN0KCdHRVQnLCAiaHR0cDovL3swfS9qc29uL3Zl
cnNpb24iLmZvcm1hdChkZWJ1Z2dlcl9hZGRyZXNzKSkKKyAgICAgICAgZGF0YSA9IGpzb24ubG9h
ZHMocmVzLmRhdGEpCisKKyAgICAgICAgYnJvd3Nlcl92ZXJzaW9uID0gZGF0YS5nZXQoIkJyb3dz
ZXIiKQorICAgICAgICB3ZWJzb2NrZXRfdXJsID0gZGF0YS5nZXQoIndlYlNvY2tldERlYnVnZ2Vy
VXJsIikKKworICAgICAgICBpbXBvcnQgcmUKKyAgICAgICAgdmVyc2lvbiA9IHJlLnNlYXJjaChy
Ii4qLyhcZCspXC4iLCBicm93c2VyX3ZlcnNpb24pLmdyb3VwKDEpCisKKyAgICAgICAgcmV0dXJu
IHZlcnNpb24sIHdlYnNvY2tldF91cmwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9y
ZW1vdGUvd2ViZWxlbWVudC5weQppbmRleCA2ZjNlYmJjYzNiNTQuLjA5M2U0MmE1YmExMyAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3JlbW90ZS93ZWJlbGVtZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weQpAQCAt
NTM0LDkgKzUzNCwxNCBAQCBjbGFzcyBXZWJFbGVtZW50KEJhc2VXZWJFbGVtZW50KToKICAgICAg
ICAgIyB0cmFuc2ZlciBmaWxlIHRvIGFub3RoZXIgbWFjaGluZSBvbmx5IGlmIHJlbW90ZSBkcml2
ZXIgaXMgdXNlZAogICAgICAgICAjIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBmb3IgamF2YSBiaW5k
aW5nCiAgICAgICAgIGlmIHNlbGYucGFyZW50Ll9pc19yZW1vdGU6Ci0gICAgICAgICAgICBsb2Nh
bF9maWxlID0gc2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKCp2YWx1ZSkK
LSAgICAgICAgICAgIGlmIGxvY2FsX2ZpbGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
dmFsdWUgPSBzZWxmLl91cGxvYWQobG9jYWxfZmlsZSkKKyAgICAgICAgICAgIGxvY2FsX2ZpbGVz
ID0gbGlzdChtYXAobGFtYmRhIGtleXNfdG9fc2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKGtleXNf
dG9fc2VuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLmpvaW4odmFs
dWUpLnNwbGl0KCdcbicpKSkKKyAgICAgICAgICAgIGlmIE5vbmUgbm90IGluIGxvY2FsX2ZpbGVz
OgorICAgICAgICAgICAgICAgIHJlbW90ZV9maWxlcyA9IFtdCisgICAgICAgICAgICAgICAgZm9y
IGZpbGUgaW4gbG9jYWxfZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9maWxlcy5h
cHBlbmQoc2VsZi5fdXBsb2FkKGZpbGUpKQorICAgICAgICAgICAgICAgIHZhbHVlID0gJ1xuJy5q
b2luKHJlbW90ZV9maWxlcykKIAogICAgICAgICBzZWxmLl9leGVjdXRlKENvbW1hbmQuU0VORF9L
RVlTX1RPX0VMRU1FTlQsCiAgICAgICAgICAgICAgICAgICAgICAgeyd0ZXh0JzogIiIuam9pbihr
ZXlzX3RvX3R5cGluZyh2YWx1ZSkpLApAQCAtNzA0LDggKzcwOSw3IEBAIGNsYXNzIFdlYkVsZW1l
bnQoQmFzZVdlYkVsZW1lbnQpOgogCiAgICAgZGVmIGZpbmRfZWxlbWVudChzZWxmLCBieT1CeS5J
RCwgdmFsdWU9Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGFuIGVsZW1lbnQgZ2l2
ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4gUHJlZmVyIHRoZSBmaW5kX2VsZW1lbnRfYnlf
KiBtZXRob2RzIHdoZW4KLSAgICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQgYW4gZWxlbWVu
dCBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAg
ICAgICAgICAgIDo6CkBAIC03MzIsOCArNzM2LDcgQEAgY2xhc3MgV2ViRWxlbWVudChCYXNlV2Vi
RWxlbWVudCk6CiAKICAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5JRCwgdmFsdWU9
Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGVsZW1lbnRzIGdpdmVuIGEgQnkgc3Ry
YXRlZ3kgYW5kIGxvY2F0b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50c19ieV8qIG1ldGhvZHMg
d2hlbgotICAgICAgICBwb3NzaWJsZS4KKyAgICAgICAgRmluZCBlbGVtZW50cyBnaXZlbiBhIEJ5
IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAgICAgICAgICAgIDo6
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29u
bmVjdGlvbi5weQppbmRleCAyMmM2MjNlNjEwYWYuLmQ2OTI0Mjg5OThmNSAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Nh
ZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5
CkBAIC0yMyw4ICsyMyw4IEBAIGNsYXNzIFNhZmFyaVJlbW90ZUNvbm5lY3Rpb24oUmVtb3RlQ29u
bmVjdGlvbik6CiAKICAgICBicm93c2VyX25hbWUgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLlNBRkFS
SVsnYnJvd3Nlck5hbWUnXQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJf
YWRkciwga2VlcF9hbGl2ZT1UcnVlKToKLSAgICAgICAgUmVtb3RlQ29ubmVjdGlvbi5fX2luaXRf
XyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmUpCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVlLCBpZ25vcmVfcHJveHk9
RmFsc2UpOgorICAgICAgICBSZW1vdGVDb25uZWN0aW9uLl9faW5pdF9fKHNlbGYsIHJlbW90ZV9z
ZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZSwgaWdub3JlX3Byb3h5PWlnbm9yZV9wcm94eSkKIAogICAg
ICAgICBzZWxmLl9jb21tYW5kc1siR0VUX1BFUk1JU1NJT05TIl0gPSAoJ0dFVCcsICcvc2Vzc2lv
bi8kc2Vzc2lvbklkL2FwcGxlL3Blcm1pc3Npb25zJykKICAgICAgICAgc2VsZi5fY29tbWFuZHNb
IlNFVF9QRVJNSVNTSU9OUyJdID0gKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBwbGUv
cGVybWlzc2lvbnMnKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CmluZGV4IDM5NzQ5MjU0OWMyZC4uMmU3
YTA2YjRlZmU4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBpX2V4YW1wbGVfdGVzdHMucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CkBAIC0xLDIwICsxLDMgQEAKLSMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
Ci0jIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQotIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgotIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCi0jIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKLSMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQotIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKLSMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCi0jIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQotIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCi0jIHVuZGVyIHRoZSBMaWNlbnNlLgot
CiAjIENvcHlyaWdodCAyMDA4LTIwMDkgV2ViRHJpdmVyIGNvbW1pdHRlcnMKICMgQ29weXJpZ2h0
IDIwMDgtMjAwOSBHb29nbGUgSW5jLgogIwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Nj
cm9sbGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVzdHMucHkKaW5k
ZXggY2EwZDA4MDBhMzJjLi40YzkxYzIyN2YwZGIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlj
a19zY3JvbGxpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190ZXN0
cy5weQpAQCAtMTc4LDE0ICsxNzgsMTQgQEAgZGVmIGdldFNjcm9sbFRvcChkcml2ZXIpOgogICAg
IHJldHVybiBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5ib2R5LnNjcm9s
bFRvcCIpCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3goCi0gICAgcmVhc29uPSdodHRw
czovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvNDA4JykKLUBweXRlc3QubWFyay54
ZmFpbF9yZW1vdGUoCi0gICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZl
ci9pc3N1ZXMvNDA4JykKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKLWRlZiB0ZXN0U2hvdWxk
QmVBYmxlVG9DbGlja0VsZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFn
ZXMubG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF90YWxsX2ZyYW1lLmh0bWwiKQotICAg
IGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAidGFs
bF9mcmFtZSIpKQotICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJj
aGVja2JveCIpCi0gICAgZWxlbWVudC5jbGljaygpCi0gICAgYXNzZXJ0IGVsZW1lbnQuaXNfc2Vs
ZWN0ZWQoKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveCgKKyMgICAgIHJlYXNvbj0naHR0
cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCisjIEBweXRlc3QubWFy
ay54ZmFpbF9yZW1vdGUoCisjICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2Vi
ZHJpdmVyL2lzc3Vlcy80MDgnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCisjIGRlZiB0
ZXN0U2hvdWxkQmVBYmxlVG9DbGlja0VsZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdlcyk6
CisjICAgICBwYWdlcy5sb2FkKCJzY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3RhbGxfZnJhbWUu
aHRtbCIpCisjICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuTkFNRSwgInRhbGxfZnJhbWUiKSkKKyMgICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50KEJ5Lk5BTUUsICJjaGVja2JveCIpCisjICAgICBlbGVtZW50LmNsaWNrKCkKKyMgICAgIGFz
c2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJf
ZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2ZpbmRp
bmdfdGVzdHMucHkKaW5kZXggZDZlNzg0MjgwNTczLi45YjgwMWRjMzBkN2MgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5CkBAIC0zMzUsMTYgKzMzNSwxNiBAQCBk
ZWYgdGVzdF9GaW5kaW5nX0FMaW5rX0J5X1hwYXRoX1VzaW5nX0NvbnRhaW5zX0tleXdvcmRfU2hv
dWxkX1dvcmsoZHJpdmVyLCBwYWdlcwogICAgIGFzc2VydCAiaGVsbG8gd29ybGQiIGluIGVsZW1l
bnQudGV4dAogCiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPUludmFsaWRTZWxl
Y3RvckV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2VzPUlu
dmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNl
cz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJh
aXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJp
KHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3dlYmtp
dGd0ayhyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQotZGVmIHRlc3RfU2hvdWxkX0Jl
X0FibGVfVG9fRmluZF9FbGVtZW50X0J5X1hQYXRoX1dpdGhfTmFtZXNwYWNlKGRyaXZlciwgcGFn
ZXMpOgotICAgIHBhZ2VzLmxvYWQoInN2Z1BhZ2UuaHRtbCIpCi0gICAgZWxlbWVudCA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL3N2ZzpzdmcvL3N2Zzp0ZXh0IikKLSAgICBhc3Nl
cnQgZWxlbWVudC50ZXh0ID09ICJUZXN0IENoYXJ0IgorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hy
b21lKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFp
bF9jaHJvbWl1bWVkZ2UocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5dGVz
dC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMg
QHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9u
KQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0
aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfd2Via2l0Z3RrKHJhaXNlcz1JbnZhbGlkU2VsZWN0
b3JFeGNlcHRpb24pCisjIGRlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfRWxlbWVudF9C
eV9YUGF0aF9XaXRoX05hbWVzcGFjZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQo
InN2Z1BhZ2UuaHRtbCIpCisjICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5Y
UEFUSCwgIi8vc3ZnOnN2Zy8vc3ZnOnRleHQiKQorIyAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9
PSAiVGVzdCBDaGFydCIKIAogCiBkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0VsZW1l
bnRfQnlfWFBhdGhfSW5fWG1sX0RvY3VtZW50KGRyaXZlciwgcGFnZXMpOgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0
Y2hpbmdfdGVzdHMucHkKaW5kZXggOGE3NTliNjAwYjk4Li4xOGIzNDY1NzU4MTYgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Zy
YW1lX3N3aXRjaGluZ190ZXN0cy5weQpAQCAtMzY4LDIzICszNjgsMjMgQEAgZGVmIHRlc3RTaG91
bGRCZUFibGVUb1N3aXRjaFRvVGhlVG9wSWZUaGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzV2l0
aFdlYmVsZW1lbnQKICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMucHJlc2Vu
Y2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgInN1Y2Nlc3MiKSkpCiAKIAotQHB5dGVzdC5t
YXJrLnhmYWlsX2Nocm9tZShyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKLUBweXRlc3Qu
bWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCi1A
cHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxs
YS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFp
c2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKLUBw
eXRlc3QubWFyay54ZmFpbF93ZWJraXRndGsocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24p
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRvRG9B
bnl0aGluZ1RoZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6Ci0gICAg
cGFnZXMubG9hZCgiZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRtbCIpCi0g
ICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZy
YW1lMSIpKQotCi0gICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJr
aWxsSWZyYW1lIikKLSAgICBraWxsSWZyYW1lLmNsaWNrKCkKLQotICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhOb1N1Y2hGcmFtZUV4Y2VwdGlvbik6Ci0gICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuSUQsICJraWxsSWZyYW1lIikuY2xpY2soKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21l
KHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hy
b21pdW1lZGdlKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsu
eGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJp
dmVyL2lzc3Vlcy82MTQnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJE
cml2ZXJFeGNlcHRpb24sCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRw
czovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKKyMgQHB5dGVz
dC5tYXJrLnhmYWlsX3dlYmtpdGd0ayhyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKKyMg
QHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRvRG9B
bnl0aGluZ1RoZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6CisjICAg
ICBwYWdlcy5sb2FkKCJmcmFtZV9zd2l0Y2hpbmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1sIikK
KyMgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwg
ImlmcmFtZTEiKSkKKworIyAgICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnku
SUQsICJraWxsSWZyYW1lIikKKyMgICAgIGtpbGxJZnJhbWUuY2xpY2soKQorCisjICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoTm9TdWNoRnJhbWVFeGNlcHRpb24pOgorIyAgICAgICAgIGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1lIikuY2xpY2soKQogCiAKIGRlZiB0ZXN0U2hv
dWxkUmV0dXJuV2luZG93VGl0bGVJbkFGcmFtZXNldChkcml2ZXIsIHBhZ2VzKToKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2Fk
aW5nX3Rlc3RzLnB5CmluZGV4IDE0MTFlZTU5ZGExYi4uOWJjN2E1YjUwZWNkIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xv
YWRpbmdfdGVzdHMucHkKQEAgLTE1LDEyICsxNSwxMiBAQAogIyBzcGVjaWZpYyBsYW5ndWFnZSBn
b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAjIHVuZGVyIHRoZSBMaWNlbnNl
LgogCi1pbXBvcnQgcHl0ZXN0Ci0KLWZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1w
b3J0IFdlYkRyaXZlckV4Y2VwdGlvbgotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5
IGltcG9ydCBCeQotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBX
ZWJEcml2ZXJXYWl0Ci1mcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBl
Y3RlZF9jb25kaXRpb25zIGFzIEVDCisjIGltcG9ydCBweXRlc3QKKyMKKyMgZnJvbSBzZWxlbml1
bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCisjIGZyb20gc2Vs
ZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKKyMgZnJvbSBzZWxlbml1bS53ZWJk
cml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0CisjIGZyb20gc2VsZW5pdW0u
d2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKIAogCiBk
ZWYgdGVzdFNob3VsZFdhaXRGb3JEb2N1bWVudFRvQmVMb2FkZWQoZHJpdmVyLCBwYWdlcyk6CkBA
IC00MCwyNSArNDAsMjUgQEAgZGVmIHRlc3RTaG91bGRXYWl0Rm9yRG9jdW1lbnRUb0JlTG9hZGVk
KGRyaXZlciwgcGFnZXMpOgogIyAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJpdmUg
SGVyZSIKIAogCi1kZWYgdGVzdFNob3VsZEJlQWJsZVRvR2V0QUZyYWdtZW50T25UaGVDdXJyZW50
UGFnZShkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCi0g
ICAgbG9jYXRpb24gPSBkcml2ZXIuY3VycmVudF91cmwKLSAgICBkcml2ZXIuZ2V0KGxvY2F0aW9u
ICsgIiN0ZXh0IikKLSAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaWQx
IikKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBhZ2Uo
ZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisjICAg
ICBsb2NhdGlvbiA9IGRyaXZlci5jdXJyZW50X3VybAorIyAgICAgZHJpdmVyLmdldChsb2NhdGlv
biArICIjdGV4dCIpCisjICAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
aWQxIikKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhj
ZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0
aW9uKQotZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0RG9lc05vdFJlc29s
dmUoZHJpdmVyKToKLSAgICAjICBPZiBjb3Vyc2UsIHdlJ3JlIHVwIHRoZSBjcmVlayBpZiB0aGlz
IGV2ZXIgZG9lcyBnZXQgcmVnaXN0ZXJlZAotICAgIGRyaXZlci5nZXQoImh0dHA6Ly93d3cudGhp
c3VybGRvZXNub3RleGlzdC5jb214LyIpCisjIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJh
aXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFp
c2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKKyMgZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGlu
Z0FVcmxUaGF0RG9lc05vdFJlc29sdmUoZHJpdmVyKToKKyMgICAgICMgIE9mIGNvdXJzZSwgd2Un
cmUgdXAgdGhlIGNyZWVrIGlmIHRoaXMgZXZlciBkb2VzIGdldCByZWdpc3RlcmVkCisjICAgICBk
cml2ZXIuZ2V0KCJodHRwOi8vd3d3LnRoaXN1cmxkb2Vzbm90ZXhpc3QuY29teC8iKQogCiAKLUBw
eXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1AcHl0
ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1kZWYgdGVz
dFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgot
ICAgICMgIEhlcmUncyBob3BpbmcgdGhhdCB0aGVyZSdzIG5vdGhpbmcgaGVyZS4gVGhlcmUgc2hv
dWxkbid0IGJlCi0gICAgZHJpdmVyLmdldCgiaHR0cDovL2xvY2FsaG9zdDozMDAxIikKKyMgQHB5
dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKKyMgQHB5
dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorIyBkZWYg
dGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIp
OgorIyAgICAgIyAgSGVyZSdzIGhvcGluZyB0aGF0IHRoZXJlJ3Mgbm90aGluZyBoZXJlLiBUaGVy
ZSBzaG91bGRuJ3QgYmUKKyMgICAgIGRyaXZlci5nZXQoImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMSIp
CiAKICMgZGVmIHRlc3RTaG91bGRCZUFibGVUb0xvYWRBUGFnZVdpdGhGcmFtZXNldHNBbmRXYWl0
VW50aWxBbGxGcmFtZXNBcmVMb2FkZWQoKSB7CiAjICAgICBkcml2ZXIuZ2V0KHBhZ2VzLmZyYW1l
c2V0UGFnZSkKQEAgLTgxLDU1ICs4MSw1NSBAQCBkZWYgdGVzdFNob3VsZFJldHVybldoZW5HZXR0
aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgogIyAgICAgc2VsZi5hc3NlcnRFcXVh
bChkcml2ZXIudGl0bGUsIGFueU9mKGVxdWFsVG8ob3JpZ2luYWxUaXRsZSksIGVxdWFsVG8oIldl
IExlYXZlIEZyb20gSGVyZSIpKSk7CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVm
IHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVy
LCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisjIEBweXRlc3QubWFy
ay54ZmFpbF9zYWZhcmkKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhl
QnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKIAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpbWFn
ZUJ1dHRvbiIpLnN1Ym1pdCgpCi0gICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVD
LnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyMgICAgIFdlYkRyaXZlcldh
aXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkKIAotICAg
IGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBGcm9t
IEhlcmUiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09
ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVm
IHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnlJblByZXNl
bmNlT2ZJZnJhbWVzKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5o
dG1sIikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZEJlQWJs
ZVRvTmF2aWdhdGVCYWNrSW5UaGVCcm93c2VySGlzdG9yeUluUHJlc2VuY2VPZklmcmFtZXMoZHJp
dmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCiAKLSAgICBk
cml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5Lk5BTUUsIHZhbHVlPSJzYW1lV2luZG93IikuY2xpY2so
KQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT0ic2FtZVdpbmRv
dyIpLmNsaWNrKCkKIAotICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBoYXMg
aWZyYW1lcyIKKyMgICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBoYXMgaWZy
YW1lcyIKIAotICAgIGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJY
SFRNTCBUZXN0IFBhZ2UiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVy
LnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVUb05h
dmlnYXRlRm9yd2FyZHNJblRoZUJyb3dzZXJIaXN0b3J5KGRyaXZlciwgcGFnZXMpOgotICAgIHBh
Z2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorIyBkZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdh
dGVGb3J3YXJkc0luVGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdl
cy5sb2FkKCJmb3JtUGFnZS5odG1sIikKIAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9Qnku
SUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCi0gICAgV2ViRHJpdmVyV2FpdChkcml2
ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorIyAgICAgZHJpdmVy
LmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyMg
ICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZl
IEhlcmUiKSkKIAotICAgIGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09
ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQg
ZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCiAKLSAgICBkcml2ZXIuZm9yd2Fy
ZCgpCi0gICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisjICAgICBk
cml2ZXIuZm9yd2FyZCgpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJpdmUg
SGVyZSIKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfaWUKLUBweXRlc3QubWFyay54ZmFpbF9maXJl
Zm94KHJ1bj1GYWxzZSkKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocnVuPUZhbHNlKQotQHB5
dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShydW49RmFsc2UpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hy
b21pdW1lZGdlKHJ1bj1GYWxzZSkKLWRlZiB0ZXN0U2hvdWxkTm90SGFuZ2lmRG9jdW1lbnRPcGVu
Q2FsbElzTmV2ZXJGb2xsb3dlZEJ5RG9jdW1lbnRDbG9zZUNhbGwoZHJpdmVyLCBwYWdlcyk6Ci0g
ICAgcGFnZXMubG9hZCgiZG9jdW1lbnRfd3JpdGVfaW5fb25sb2FkLmh0bWwiKQotICAgIGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL2JvZHkiKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
aWUKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocnVuPUZhbHNlKQorIyBAcHl0ZXN0Lm1h
cmsueGZhaWxfcmVtb3RlKHJ1bj1GYWxzZSkKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShy
dW49RmFsc2UpCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocnVuPUZhbHNlKQor
IyBkZWYgdGVzdFNob3VsZE5vdEhhbmdpZkRvY3VtZW50T3BlbkNhbGxJc05ldmVyRm9sbG93ZWRC
eURvY3VtZW50Q2xvc2VDYWxsKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgiZG9j
dW1lbnRfd3JpdGVfaW5fb25sb2FkLmh0bWwiKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5YUEFUSCwgIi8vYm9keSIpCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVUb1JlZnJlc2hBUGFn
ZShkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisjIGRl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9SZWZyZXNoQVBhZ2UoZHJpdmVyLCBwYWdlcyk6CisjICAgICBw
YWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCiAKLSAgICBkcml2ZXIucmVmcmVzaCgpCisjICAg
ICBkcml2ZXIucmVmcmVzaCgpCiAKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBU
ZXN0IFBhZ2UiCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2Ui
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2NyaXB0X3Bpbm5pbmdfdGVzdHMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vc2NyaXB0X3Bpbm5pbmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi41ZWY5Y2UzYTdmNWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2Ny
aXB0X3Bpbm5pbmdfdGVzdHMucHkKQEAgLTAsMCArMSw2OSBAQAorIyBMaWNlbnNlZCB0byB0aGUg
U29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBj
b250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRp
c3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJl
Z2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUK
KyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAi
TGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
CisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vu
c2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK
KyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0
cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09O
RElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz
aW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRl
c3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgSmF2YXNjcmlwdEV4
Y2VwdGlvbgorCisKK2RlZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRfcGlubmluZyhkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZlci5w
aW5uZWRfc2NyaXB0cyA9IHt9CisgICAgc2NyaXB0X2tleSA9IGRyaXZlci5waW5fc2NyaXB0KCJy
ZXR1cm4gJ2kgbGlrZSBjaGVlc2UnOyIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9z
Y3JpcHQoc2NyaXB0X2tleSkKKworICAgIGFzc2VydCByZXN1bHQgPT0gJ2kgbGlrZSBjaGVlc2Un
CisKKworZGVmIHRlc3Rfc2hvdWxkX2FsbG93X3Bpbm5lZF9zY3JpcHRzX3RvX3Rha2VfYXJndW1l
bnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisg
ICAgZHJpdmVyLnBpbm5lZF9zY3JpcHRzID0ge30KKyAgICBoZWxsbyA9IGRyaXZlci5waW5fc2Ny
aXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRl
X3NjcmlwdChoZWxsbywgImNoZWVzZSIpCisKKyAgICBhc3NlcnQgcmVzdWx0ID09ICJjaGVlc2Ui
CisKKworZGVmIHRlc3Rfc2hvdWxkX2xpc3RfYWxsX3Bpbm5lZF9zY3JpcHRzKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnBpbm5l
ZF9zY3JpcHRzID0ge30KKyAgICBleHBlY3RlZCA9IFtdCisgICAgZXhwZWN0ZWQuYXBwZW5kKGRy
aXZlci5waW5fc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpLmlkKQorICAgIGV4cGVjdGVk
LmFwcGVuZChkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuICdjaGVlc2UnOyIpLmlkKQorICAgIGV4
cGVjdGVkLmFwcGVuZChkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuIDQyOyIpLmlkKQorCisgICAg
cmVzdWx0ID0gZHJpdmVyLmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGV4cGVjdGVk
ID09IHJlc3VsdAorCisKK2RlZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRzX3RvX2JlX3VucGlu
bmVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisg
ICAgZHJpdmVyLnBpbm5lZF9zY3JpcHRzID0ge30KKyAgICBjaGVlc2UgPSBkcml2ZXIucGluX3Nj
cmlwdCgicmV0dXJuICdjaGVlc2UnOyIpCisgICAgZHJpdmVyLnVucGluKGNoZWVzZSkKKyAgICBy
ZXN1bHRzID0gZHJpdmVyLmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGNoZWVzZSBu
b3QgaW4gcmVzdWx0cworCisKK2RlZiB0ZXN0X2NhbGxpbmdfdW5waW5uZWRfc2NyaXB0X2NhdXNl
c19lcnJvcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwi
KQorICAgIGNoZWVzZSA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gJ2JyaWUnOyIpCisgICAg
ZHJpdmVyLnVucGluKGNoZWVzZSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSmF2YXNjcmlwdEV4
Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdChjaGVlc2UpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vc2VsZWN0X2NsYXNzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9j
bGFzc190ZXN0cy5weQppbmRleCA1MmI3ZDliOThlMWMuLjMxNTI2YWQ0MmNkMiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0
X2NsYXNzX3Rlc3RzLnB5CkBAIC05MSwyMCArOTEsMjAgQEAgZGVmIHRlc3RTZWxlY3RCeVZpc2li
bGVUZXh0U2luZ2xlKGRyaXZlciwgcGFnZXMpOgogICAgICAgICAgICAgYXNzZXJ0IHNlbC5maXJz
dF9zZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCiAKIAotQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9tZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5v
cmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJrLnhm
YWlsX2Nocm9taXVtZWRnZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcv
cC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJrLnhmYWls
X3NhZmFyaQotZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2hvdWxkTm9ybWFsaXplU3BhY2Vz
KGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQotCi0gICAg
Zm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzV2l0aFNwYWNlc106Ci0gICAgICAgIHNl
bCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkK
LSAgICAgICAgZm9yIHggaW4gcmFuZ2UobGVuKHNlbGVjdFsndmFsdWVzJ10pKToKLSAgICAgICAg
ICAgIHByaW50KHNlbGVjdFsndmFsdWVzJ11beF0pCi0gICAgICAgICAgICBzZWwuc2VsZWN0X2J5
X3Zpc2libGVfdGV4dChzZWxlY3RbJ3ZhbHVlcyddW3hdKQotICAgICAgICAgICAgYXNzZXJ0IHNl
bC5maXJzdF9zZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCisjIEBw
eXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisjICAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJv
bWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQorIyBAcHl0ZXN0
Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKAorIyAgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hy
b21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKKyMgQHB5dGVz
dC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNlbGVjdEJ5VmlzaWJsZVRleHRTaG91bGRO
b3JtYWxpemVTcGFjZXMoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKworIyAgICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzV2l0aFNw
YWNlc106CisjICAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFN
RSwgc2VsZWN0WyduYW1lJ10pKQorIyAgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3Rb
J3ZhbHVlcyddKSk6CisjICAgICAgICAgICAgIHByaW50KHNlbGVjdFsndmFsdWVzJ11beF0pCisj
ICAgICAgICAgICAgIHNlbC5zZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11b
eF0pCisjICAgICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rfc2VsZWN0ZWRfb3B0aW9uLnRleHQg
PT0gc2VsZWN0Wyd2YWx1ZXMnXVt4XQogCiAKIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJl
YXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTQw
MycpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dp
bmRvd190ZXN0cy5weQppbmRleCA4NWViMjQ3YjI5ODYuLjk4NTA5YjE0MTUyNSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL3dpbmRvd190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3Rz
LnB5CkBAIC0xNCwzMCArMTQsMzAgQEAKICMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGll
ZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmlu
ZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICMgdW5kZXIgdGhlIExpY2Vuc2UuCi1pbXBv
cnQgb3MKKwogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25z
IGltcG9ydCBXZWJEcml2ZXJFeGNlcHRpb24KIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBv
cnQud2FpdCBpbXBvcnQgV2ViRHJpdmVyV2FpdAogCiAKLUBweXRlc3QubWFyay54ZmFpbF9pZQot
QHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIp
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCi1A
cHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKLWRlZiB0
ZXN0U2hvdWxkTWF4aW1pemVUaGVXaW5kb3coZHJpdmVyKToKLSAgICByZXNpemVfdGltZW91dCA9
IDUKLSAgICB3YWl0ID0gV2ViRHJpdmVyV2FpdChkcml2ZXIsIHJlc2l6ZV90aW1lb3V0KQotICAg
IG9sZF9zaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgZHJpdmVyLnNldF93aW5k
b3dfc2l6ZSgyMDAsIDIwMCkKLSAgICB3YWl0LnVudGlsKAotICAgICAgICBsYW1iZGEgZHI6IGRy
LmdldF93aW5kb3dfc2l6ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0aCJdICE9IDIw
MCBhbmQgb2xkX3NpemVbImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCi0gICAgc2l6ZSA9IGRy
aXZlci5nZXRfd2luZG93X3NpemUoKQotICAgIGRyaXZlci5tYXhpbWl6ZV93aW5kb3coKQotICAg
IHdhaXQudW50aWwobGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAhPSBzaXplKQotICAg
IG5ld19zaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgYXNzZXJ0IG5ld19zaXpl
WyJ3aWR0aCJdID4gc2l6ZVsid2lkdGgiXQotICAgIGFzc2VydCBuZXdfc2l6ZVsiaGVpZ2h0Il0g
PiBzaXplWyJoZWlnaHQiXQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKKyMgQHB5dGVzdC5tYXJr
LnhmYWlsX2Nocm9taXVtZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIEBweXRlc3Qu
bWFyay54ZmFpbF9maXJlZm94KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKKyMgQHB5dGVzdC5t
YXJrLnhmYWlsX3JlbW90ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIGRlZiB0ZXN0U2hv
dWxkTWF4aW1pemVUaGVXaW5kb3coZHJpdmVyKToKKyMgICAgIHJlc2l6ZV90aW1lb3V0ID0gNQor
IyAgICAgd2FpdCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCByZXNpemVfdGltZW91dCkKKyMgICAg
IG9sZF9zaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIuc2V0X3dp
bmRvd19zaXplKDIwMCwgMjAwKQorIyAgICAgd2FpdC51bnRpbCgKKyMgICAgICAgICBsYW1iZGEg
ZHI6IGRyLmdldF93aW5kb3dfc2l6ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0aCJd
ICE9IDIwMCBhbmQgb2xkX3NpemVbImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCisjICAgICBz
aXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIubWF4aW1pemVfd2lu
ZG93KCkKKyMgICAgIHdhaXQudW50aWwobGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAh
PSBzaXplKQorIyAgICAgbmV3X3NpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyMgICAg
IGFzc2VydCBuZXdfc2l6ZVsid2lkdGgiXSA+IHNpemVbIndpZHRoIl0KKyMgICAgIGFzc2VydCBu
ZXdfc2l6ZVsiaGVpZ2h0Il0gPiBzaXplWyJoZWlnaHQiXQogCiAKIGRlZiB0ZXN0X3Nob3VsZF9n
ZXRfdGhlX3NpemVfb2ZfdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CkBAIC0xMTIsMzcgKzEx
MiwzNyBAQCBkZWYgdGVzdF9zaG91bGRfc2V0X3RoZV9yZWN0X29mX3RoZV9jdXJyZW50X3dpbmRv
dyhkcml2ZXIpOgogICAgIGFzc2VydCBuZXdfcmVjdC5nZXQoJ2hlaWdodCcpID09IHRhcmdldF9o
ZWlnaHQKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJFeGNl
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21t
YW5kIG5vdCBpbXBsZW1lbnRlZCcpCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKG9zLmVudmlyb24uZ2V0
KCdUUkFWSVMnKSA9PSAndHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNj
cmVlbiBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCi1AcHl0ZXN0Lm1hcmsubm9fZHJp
dmVyX2FmdGVyX3Rlc3QKLWRlZiB0ZXN0X3Nob3VsZF9mdWxsc2NyZWVuX3RoZV9jdXJyZW50X3dp
bmRvdyhkcml2ZXIpOgotICAgIHN0YXJ0X3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdy
ZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykKLSAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIuZXhl
Y3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7JykKKyMgQHB5dGVzdC5tYXJr
LnhmYWlsX3NhZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcp
CisjIEBweXRlc3QubWFyay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0cnVl
JywKKyMgICAgICAgICAgICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBjYXVz
ZXMgVHJhdmlzIHRvIGhhbmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QK
KyMgZGVmIHRlc3Rfc2hvdWxkX2Z1bGxzY3JlZW5fdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6
CisjICAgICBzdGFydF93aWR0aCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRv
dy5pbm5lcldpZHRoOycpCisjICAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoJ3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7JykKIAotICAgIGRyaXZlci5mdWxsc2NyZWVu
X3dpbmRvdygpCisjICAgICBkcml2ZXIuZnVsbHNjcmVlbl93aW5kb3coKQogCi0gICAgV2ViRHJp
dmVyV2FpdChkcml2ZXIsIDIpXAotICAgICAgICAudW50aWwobGFtYmRhIGQ6IGRyaXZlci5leGVj
dXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpID4gc3RhcnRfd2lkdGgpCisj
ICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMilcCisjICAgICAgICAgLnVudGlsKGxhbWJkYSBk
OiBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKSA+IHN0
YXJ0X3dpZHRoKQogCi0gICAgZW5kX3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1
cm4gd2luZG93LmlubmVyV2lkdGg7JykKLSAgICBlbmRfaGVpZ2h0ID0gZHJpdmVyLmV4ZWN1dGVf
c2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0OycpCisjICAgICBlbmRfd2lkdGggPSBk
cml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKQorIyAgICAg
ZW5kX2hlaWdodCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lckhl
aWdodDsnKQogCi0gICAgZHJpdmVyLnF1aXQoKSAgIyBLaWxsIGRyaXZlciBzbyB3ZSBhcmVuJ3Qg
cnVubmluZyBmdWxsc2NyZWVuIGFmdGVyCisjICAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwgZHJp
dmVyIHNvIHdlIGFyZW4ndCBydW5uaW5nIGZ1bGxzY3JlZW4gYWZ0ZXIKIAotICAgIGFzc2VydCBl
bmRfd2lkdGggPiBzdGFydF93aWR0aAotICAgIGFzc2VydCBlbmRfaGVpZ2h0ID4gc3RhcnRfaGVp
Z2h0CisjICAgICBhc3NlcnQgZW5kX3dpZHRoID4gc3RhcnRfd2lkdGgKKyMgICAgIGFzc2VydCBl
bmRfaGVpZ2h0ID4gc3RhcnRfaGVpZ2h0CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShy
YWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZWFz
b249J01pbmltaXplIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKLUBweXRlc3QubWFyay5za2lw
aWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0cnVlJywKLSAgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSdNaW5pbWl6ZSBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCi1AcHl0
ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QKLWRlZiB0ZXN0X3Nob3VsZF9taW5pbWl6ZV90
aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToKLSAgICBkcml2ZXIubWluaW1pemVfd2luZG93KCkK
LSAgICBtaW5pbWl6ZWQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5o
aWRkZW47JykKLSAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4ndCBy
dW5uaW5nIG1pbmltaXplZCBhZnRlcgotCi0gICAgYXNzZXJ0IG1pbmltaXplZCBpcyBUcnVlCisj
IEBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyMg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1hbmQgbm90IGlt
cGxlbWVudGVkJykKKyMgQHB5dGVzdC5tYXJrLnNraXBpZihvcy5lbnZpcm9uLmdldCgnVFJBVklT
JykgPT0gJ3RydWUnLAorIyAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29t
bWFuZCBjYXVzZXMgVHJhdmlzIHRvIGhhbmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2Fm
dGVyX3Rlc3QKKyMgZGVmIHRlc3Rfc2hvdWxkX21pbmltaXplX3RoZV9jdXJyZW50X3dpbmRvdyhk
cml2ZXIpOgorIyAgICAgZHJpdmVyLm1pbmltaXplX3dpbmRvdygpCisjICAgICBtaW5pbWl6ZWQg
PSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5oaWRkZW47JykKKyMgICAg
IGRyaXZlci5xdWl0KCkgICMgS2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1bm5pbmcgbWluaW1p
emVkIGFmdGVyCisKKyMgICAgIGFzc2VydCBtaW5pbWl6ZWQgaXMgVHJ1ZQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24gYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvaW1wb3J0ZXIuanNvbgppbmRleCBmNDAwZWY1YTM5NTcuLmVhYTgwMTg3
MjMwNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpz
b24KKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24KQEAgLTEs
NiArMSw2IEBACiB7CiAgICAgInJlcG9zaXRvcnkiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMuZ2l0IiwKLSAgICAicmV2aXNpb24iOiAiYjU3ZGE5N2ZjMDVlNTQ0
MGFlNjc1MDI3ZGQ0NWEyNmJlNDhlMmRiZCIsCisgICAgInJldmlzaW9uIjogImViOGJkY2U1NTJh
MmE5YjEwMDEwZjc3NTVlZDlkOGQwNzczZDU0OGUiLAogICAgICJwYXRoc190b19pbXBvcnQiOiBb
CiAgICAgICAgICJ0b29scy93ZWJkcml2ZXIiLAogICAgICAgICAidG9vbHMvd3B0cnVubmVyIiwK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkKaW5kZXggZDg2MGI5ZWEyNTMzLi5hODE3
NTE0MDdlNzAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CkBAIC02LDYgKzYs
NyBAQCBmcm9tIC5jbGllbnQgaW1wb3J0ICgKICAgICBGaW5kLAogICAgIEZyYW1lLAogICAgIFNl
c3Npb24sCisgICAgU2hhZG93Um9vdCwKICAgICBUaW1lb3V0cywKICAgICBXaW5kb3cpCiBmcm9t
IC5lcnJvciBpbXBvcnQgKApAQCAtMzQsMyArMzUsNSBAQCBmcm9tIC5lcnJvciBpbXBvcnQgKAog
ICAgIFVua25vd25NZXRob2RFeGNlcHRpb24sCiAgICAgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNl
cHRpb24sCiAgICAgV2ViRHJpdmVyRXhjZXB0aW9uKQorZnJvbSAuYmlkaSBpbXBvcnQgKAorICAg
IEJpZGlTZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wYmNkNDg5Y2QzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRp
LnB5CkBAIC0wLDAgKzEsNTYgQEAKK2ltcG9ydCBjb3B5CitpbXBvcnQgd2Vic29ja2V0cworCitm
cm9tIC4gaW1wb3J0IGNsaWVudAorCitjbGFzcyBCaWRpU2Vzc2lvbihjbGllbnQuU2Vzc2lvbik6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIGhvc3QsCisgICAgICAg
ICAgICAgICAgIHBvcnQsCisgICAgICAgICAgICAgICAgIHVybF9wcmVmaXg9Ii8iLAorICAgICAg
ICAgICAgICAgICBjYXBhYmlsaXRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXh0ZW5zaW9u
PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQWRkIGEgY2FwYWJpbGl0eSBvZiAid2ViU29j
a2V0VXJsIjogVHJ1ZSB0byBlbmFibGUKKyAgICAgICAgQmlkaXJlY3Rpb25hbCBjb25uZWN0aW9u
IGluIHNlc3Npb24gY3JlYXRpb24uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLndlYnNvY2tl
dF90cmFuc3BvcnQgPSBOb25lCisgICAgICAgIGNhcGFiaWxpdGllcyA9IHNlbGYuX2VuYWJsZV93
ZWJzb2NrZXQoY2FwYWJpbGl0aWVzKQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGhvc3QsIHBv
cnQsIHVybF9wcmVmaXgsIGNhcGFiaWxpdGllcywgZXh0ZW5zaW9uKQorCisgICAgZGVmIF9lbmFi
bGVfd2Vic29ja2V0KHNlbGYsIGNhcHMpOgorICAgICAgICBpZiBjYXBzOgorICAgICAgICAgICAg
Y2Fwcy5zZXRkZWZhdWx0KCJhbHdheXNNYXRjaCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRVcmwi
OiBUcnVlfSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNhcHMgPSB7ImFsd2F5c01hdGNo
IjogeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfX0KKyAgICAgICAgcmV0dXJuIGNhcHMKKworICAgIGRl
ZiBtYXRjaChzZWxmLCBjYXBhYmlsaXRpZXMpOgorICAgICAgICAiIiJFeHBlbnNpdmUgbWF0Y2gg
dG8gc2VlIGlmIGNhcGFiaWxpdGllcyBpcyB0aGUgc2FtZSBhcyBwcmV2aW91c2x5CisgICAgICAg
IHJlcXVlc3RlZCBjYXBhYmlsaXRpZXMgaWYgd2Vic29ja2V0IHdvdWxkIGJlIGVuYWJsZWQuCisK
KyAgICAgICAgOnJldHVybiBCb29sZWFuLgorICAgICAgICAiIiIKKyAgICAgICAgY2FwcyA9IGNv
cHkuZGVlcGNvcHkoY2FwYWJpbGl0aWVzKQorICAgICAgICBjYXBzID0gc2VsZi5fZW5hYmxlX3dl
YnNvY2tldChjYXBzKQorICAgICAgICByZXR1cm4gc3VwZXIoKS5tYXRjaChjYXBzKQorCisgICAg
YXN5bmMgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAiIiJTdGFydCBhIG5ldyBXZWJEcml2ZXIg
QmlkaXJlY3Rpb25hbCBzZXNzaW9uCisgICAgICAgIHdpdGggd2Vic29ja2V0IGNvbm5lY3RlZC4K
KworICAgICAgICA6cmV0dXJuOiBEaWN0aW9uYXJ5IHdpdGggYGNhcGFiaWxpdGllc2AgYW5kIGBz
ZXNzaW9uSWRgLgorICAgICAgICAiIiIKKyAgICAgICAgdmFsdWUgPSBzdXBlcigpLnN0YXJ0KCkK
KworICAgICAgICBpZiBub3Qgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0IG9yIG5vdCBzZWxmLndl
YnNvY2tldF90cmFuc3BvcnQub3BlbjoKKyAgICAgICAgICAgIHNlbGYud2Vic29ja2V0X3RyYW5z
cG9ydCA9IGF3YWl0IHdlYnNvY2tldHMuY29ubmVjdChzZWxmLmNhcGFiaWxpdGllc1sid2ViU29j
a2V0VXJsIl0pCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgYXN5bmMgZGVmIGVuZChzZWxm
KToKKyAgICAgICAgIiIiQ2xvc2Ugd2Vic29ja2V0IGNvbm5lY3Rpb24gZmlyc3QgYmVmb3JlIGNs
b3Npbmcgc2Vzc2lvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYud2Vic29ja2V0X3Ry
YW5zcG9ydDoKKyAgICAgICAgICAgIGF3YWl0IHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydC5jbG9z
ZSgpCisgICAgICAgICAgICBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQgPSBOb25lCisgICAgICAg
IHN1cGVyKCkuZW5kKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL19faW5pdF9fLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTdjNTYzMzJmOTAyCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvYmlkaS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDMgQEAKKyMgZmxha2U4
OiBub3FhCisKK2Zyb20gLmNsaWVudCBpbXBvcnQgQmlkaVNlc3Npb24KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkv
Y2xpZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93
ZWJkcml2ZXIvYmlkaS9jbGllbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi40MzA5YTI1ZTM4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVudC5weQpAQCAt
MCwwICsxLDM5MyBAQAoraW1wb3J0IGFzeW5jaW8KK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBq
c29uCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHN5cworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQg
ZGVmYXVsdGRpY3QKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIEF3YWl0YWJsZSwgQ2FsbGFibGUs
IENvcm91dGluZSwgTGlzdCwgT3B0aW9uYWwsIE1hcHBpbmcsIE11dGFibGVNYXBwaW5nCitmcm9t
IHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UKKworaW1wb3J0IHdlYnNvY2tl
dHMKKworCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigid2ViZHJpdmVyLmJpZGkiKQorCisK
K2NsYXNzIEJpZGlFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
ZXJyOiBzdHIsIG1zZzogc3RyLCBzdGFjazogT3B0aW9uYWxbc3RyXSA9IE5vbmUpOgorICAgICAg
ICBzZWxmLmVyciA9IGVycgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBzZWxmLnN0
YWNrID0gc3RhY2sKKworCitkZWYgZ2V0X3J1bm5pbmdfbG9vcCgpIC0+IGFzeW5jaW8uQWJzdHJh
Y3RFdmVudExvb3A6CisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNyk6CisgICAgICAg
IHJldHVybiBhc3luY2lvLmdldF9ydW5uaW5nX2xvb3AoKQorICAgICMgVW5saWtlIHRoZSBhYm92
ZSwgdGhpcyB3aWxsIGFjdHVhbGx5IGNyZWF0ZSBhbiBldmVudCBsb29wCisgICAgIyBpZiB0aGVy
ZSBpc24ndCBvbmU7IGhvcGVmdWxseSBydW5uaW5nIHRlc3RzIGluIFB5dGhvbiA+PSAzLjcKKyAg
ICAjIHdpbGwgYWxsb3cgdXMgdG8gY2F0Y2ggYW55IGJlaGF2aW91ciBkaWZmZXJlbmNlCisgICAg
cmV0dXJuIGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQorCisKK2NsYXNzIEJpZGlTZXNzaW9uOgor
ICAgICIiIkEgV2ViRHJpdmVyIEJpRGkgc2Vzc2lvbi4KKworICAgIFRoaXMgaXMgdGhlIG1haW4g
cmVwcmVzZW50YXRpb24gb2YgYSBCaURpIHNlc3Npb24gYW5kIHByb3ZpZGVzIHRoZQorICAgIGlu
dGVyZmFjZSBmb3IgcnVubmluZyBjb21tYW5kcyBpbiB0aGUgc2Vzc2lvbiwgYW5kIGZvciBhdHRh
Y2hpbmcKKyAgICBldmVudCBoYW5kbGVycyB0byB0aGUgc2Vzc2lvbi4gRm9yIGV4YW1wbGU6CisK
KyAgICBhc3luYyBkZWYgb25fbG9nKGRhdGEpOgorICAgICAgICBwcmludChkYXRhKQorCisgICAg
c2Vzc2lvbiA9IEJpZGlTZXNzaW9uKCJ3czovL2xvY2FsaG9zdDo0NDQ1IiwgY2FwYWJpbGl0aWVz
KQorICAgIHNlc3Npb24uYWRkX2V2ZW50X2xpc3RlbmVyKCJsb2cuZW50cnlBZGRlZCIsIG9uX2xv
ZykKKyAgICBhd2FpdCBzZXNzaW9uLnN0YXJ0KCkKKyAgICBhd2FpdCBzZXNzaW9uLnN1YnNjcmli
ZSgibG9nLmVudHJ5QWRkZWQiKQorICAgICMgRG8gc29tZSBzdHVmZiB3aXRoIHRoZSBzZXNzaW9u
CisgICAgc2Vzc2lvbi5lbmQoKQorCisgICAgSWYgdGhlIHNlc3Npb24gaWQgaXMgcHJvdmlkZWQg
aXQncyBhc3N1bWVkIHRoYXQgdGhlIHVuZGVybHlpbmcKKyAgICBXZWJEcml2ZXIgc2Vzc2lvbiB3
YXMgYWxyZWFkeSBjcmVhdGVkLCBhbmQgdGhlIFdlYlNvY2tldCBVUkwgd2FzCisgICAgdGFrZW4g
ZnJvbSB0aGUgbmV3IHNlc3Npb24gcmVzcG9uc2UuIElmIG5vIHNlc3Npb24gaWQgaXMgcHJvdmlk
ZWQsIGl0J3MKKyAgICBhc3N1bWVkIHRoYXQgYSBCaURpLW9ubHkgc2Vzc2lvbiBzaG91bGQgYmUg
Y3JlYXRlZCB3aGVuIHN0YXJ0KCkgaXMgY2FsbGVkLgorCisgICAgSXQgY2FuIGFsc28gYmUgdXNl
ZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgd2l0aCB0aGUgV2ViU29ja2V0IHRyYW5zcG9ydAorICAg
IGltcGxpY3RseSBiZWluZyBjcmVhdGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgZW50ZXJlZCwgYW5k
IGNsb3NlZCB3aGVuCisgICAgdGhlIGNvbnRleHQgaXMgZXhpdGVkLgorCisgICAgOnBhcmFtIHdl
YnNvY2tldF91cmw6IFdlYlNvY2tldHMgVVJMIG9uIHdoaWNoIHRvIGNvbm5lY3QgdG8gdGhlIHNl
c3Npb24uCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZXhjbHVkZXMgYW55IHBhdGgg
Y29tcG9uZW50LgorICAgIDpwYXJhbSBzZXNzaW9uX2lkOiBTdHJpbmcgaWQgb2YgZXhpc3Rpbmcg
SFRUUCBzZXNzaW9uCisgICAgOnBhcmFtIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzIHJlc3Bv
bnNlIG9mIGV4aXN0aW5nIHNlc3Npb24KKyAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxpdGll
czogRGljdGlvbmFyeSByZXByZXNlbnRpbmcgdGhlIGNhcGFiaWxpdGllcyByZXF1ZXN0LgorCisg
ICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgd2Vic29j
a2V0X3VybDogc3RyLAorICAgICAgICAgICAgICAgICBzZXNzaW9uX2lkOiBPcHRpb25hbFtzdHJd
ID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiBPcHRpb25hbFtNYXBwaW5n
W3N0ciwgQW55XV0gPSBOb25lLAorICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfY2FwYWJpbGl0
aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55XV0gPSBOb25lLAorICAgICAgICAgICAgICAg
ICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpOgorICAg
ICAgICBzZWxmLnRyYW5zcG9ydDogT3B0aW9uYWxbVHJhbnNwb3J0XSA9IE5vbmUKKworICAgICAg
ICAjIFRoZSBmdWxsIFVSTCBmb3IgYSB3ZWJzb2NrZXQgbG9va3MgbGlrZQorICAgICAgICAjIHdz
Oi8vPGhvc3Q+Ojxwb3J0Pi9zZXNzaW9uIHdoZW4gd2UncmUgY3JlYXRpbmcgYSBzZXNzaW9uIGFu
ZAorICAgICAgICAjIHdzOi8vPGhvc3Q+Ojxwb3J0Pi9zZXNzaW9uLzxzZXNzaW9uaWQ+IHdoZW4g
d2UncmUgY29ubmVjdGluZyB0byBhbiBleGlzdGluZyBzZXNzaW9uLgorICAgICAgICAjIFRvIGJl
IHVzZXIgZnJpZW5kbHksIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgY2xhc3Mgd2FzIGNyZWF0
ZWQgd2l0aCBlaXRoZXIgYQorICAgICAgICAjIGZ1bGwgVVJMIGluY2x1ZGluZyB0aGUgcGF0aCwg
YW5kIGFsc28gdGhlIGNhc2Ugd2hlcmUganVzdCBhIHNlcnZlciB1cmwgaXMgcGFzc2VkIGluLgor
ICAgICAgICBwYXJzZWRfdXJsID0gdXJscGFyc2Uod2Vic29ja2V0X3VybCkKKyAgICAgICAgaWYg
cGFyc2VkX3VybC5wYXRoID09ICIiIG9yIHBhcnNlZF91cmwucGF0aCA9PSAiLyI6CisgICAgICAg
ICAgICBpZiBzZXNzaW9uX2lkIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgd2Vic29ja2V0X3Vy
bCA9IHVybGpvaW4od2Vic29ja2V0X3VybCwgInNlc3Npb24iKQorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICB3ZWJzb2NrZXRfdXJsID0gdXJsam9pbih3ZWJzb2NrZXRfdXJsLCBm
InNlc3Npb24ve3Nlc3Npb25faWR9IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNl
c3Npb25faWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5wYXRo
ICE9IGYiL3Nlc3Npb24ve3Nlc3Npb25faWR9IjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcihmIldlYlNvY2tldCBVUkwge3Nlc3Npb25faWR9IGRvZXNuJ3QgbWF0Y2ggc2Vz
c2lvbiBpZCIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBhcnNlZF91
cmwucGF0aCAhPSAiL3Nlc3Npb24iOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKGYiV2ViU29ja2V0IFVSTCB7c2Vzc2lvbl9pZH0gZG9lc24ndCBtYXRjaCBzZXNzaW9uIHVy
bCIpCisKKyAgICAgICAgaWYgc2Vzc2lvbl9pZCBpcyBOb25lIGFuZCBjYXBhYmlsaXRpZXMgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUcmllZCB0byBjcmVhdGUg
QmlEaS1vbmx5IHNlc3Npb24gd2l0aCBleGlzdGluZyBjYXBhYmlsaXRpZXMiKQorCisgICAgICAg
IHNlbGYud2Vic29ja2V0X3VybCA9IHdlYnNvY2tldF91cmwKKyAgICAgICAgc2VsZi5yZXF1ZXN0
ZWRfY2FwYWJpbGl0aWVzID0gcmVxdWVzdGVkX2NhcGFiaWxpdGllcworICAgICAgICBzZWxmLmNh
cGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBzZXNz
aW9uX2lkCisKKyAgICAgICAgc2VsZi5jb21tYW5kX2lkID0gMAorICAgICAgICBzZWxmLnBlbmRp
bmdfY29tbWFuZHM6IE11dGFibGVNYXBwaW5nW2ludCwgImFzeW5jaW8uRnV0dXJlW0FueV0iXSA9
IHt9CisgICAgICAgIHNlbGYuZXZlbnRfbGlzdGVuZXJzOiBNdXRhYmxlTWFwcGluZ1tPcHRpb25h
bFtzdHJdLCBMaXN0W0NhbGxhYmxlW1tzdHIsIE1hcHBpbmdbc3RyLCBBbnldXSwgQW55XV1dID0g
ZGVmYXVsdGRpY3QobGlzdCkKKworICAgICAgICAjIE1vZHVsZXMuCisgICAgICAgICMgRm9yIGVh
Y2ggbW9kdWxlLCBoYXZlIGEgcHJvcGVydHkgcmVwcmVzZW50aW5nIHRoYXQgbW9kdWxlCisgICAg
ICAgIHNlbGYuc2Vzc2lvbiA9IFNlc3Npb24oc2VsZikKKworICAgICAgICBpZiBsb29wIGlzIE5v
bmU6CisgICAgICAgICAgICBsb29wID0gZ2V0X3J1bm5pbmdfbG9vcCgpCisgICAgICAgIHNlbGYu
bG9vcCA9IGxvb3AKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2h0dHAoY2xzLAor
ICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9pZDogc3RyLAorICAgICAgICAgICAgICAgICAgY2Fw
YWJpbGl0aWVzOiBNYXBwaW5nW3N0ciwgQW55XSwKKyAgICAgICAgICAgICAgICAgIGxvb3A6IE9w
dGlvbmFsW2FzeW5jaW8uQWJzdHJhY3RFdmVudExvb3BdID0gTm9uZSkgLT4gIkJpZGlTZXNzaW9u
IjoKKyAgICAgICAgIiIiQ3JlYXRlIGEgQmlEaSBzZXNzaW9uIGZyb20gYW4gZXhpc3RpbmcgSFRU
UCBzZXNzaW9uCisKKyAgICAgICAgOnBhcmFtIHNlc3Npb25faWQ6IFN0cmluZyBpZCBvZiB0aGUg
c2Vzc2lvbgorICAgICAgICA6cGFyYW0gY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXMgcmV0dXJu
ZWQgaW4gdGhlIE5ldyBTZXNzaW9uIEhUVFAgcmVzcG9uc2UuIiIiCisgICAgICAgIHdlYnNvY2tl
dF91cmwgPSBjYXBhYmlsaXRpZXMuZ2V0KCJ3ZWJTb2NrZXRVcmwiKQorICAgICAgICBpZiB3ZWJz
b2NrZXRfdXJsIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyB3ZWJT
b2NrZXRVcmwgZm91bmQgaW4gY2FwYWJpbGl0aWVzIikKKyAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2Uod2Vic29ja2V0X3VybCwgc3RyKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIndl
YlNvY2tldFVybCBpcyBub3QgYSBzdHJpbmciKQorICAgICAgICByZXR1cm4gY2xzKHdlYnNvY2tl
dF91cmwsIHNlc3Npb25faWQ9c2Vzc2lvbl9pZCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcywg
bG9vcD1sb29wKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGJpZGlfb25seShjbHMsCisg
ICAgICAgICAgICAgICAgICB3ZWJzb2NrZXRfdXJsOiBzdHIsCisgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55XV0sCisgICAg
ICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9
IE5vbmUpIC0+ICJCaWRpU2Vzc2lvbiI6CisgICAgICAgICIiIkNyZWF0ZSBhIEJpRGkgc2Vzc2lv
biB3aGVyZSB0aGVyZSBpcyBubyBleGlzdGluZyBIVFRQIHNlc3Npb24KKworICAgICAgICA6cGFy
YW0gd2ViZG9ja2V0X3VybDogVVJMIHRvIHRoZSBXZWJTb2NrZXQgc2VydmVyIGxpc3RlbmluZyBm
b3IgQmlEaSBjb25uZWN0aW9ucworICAgICAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxpdGll
czogQ2FwYWJpbGl0aWVzIHJlcXVlc3QgZm9yIGVzdGFibGlzaGluZyB0aGUgc2Vzc2lvbi4iIiIK
KyAgICAgICAgcmV0dXJuIGNscyh3ZWJzb2NrZXRfdXJsLCByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVz
PXJlcXVlc3RlZF9jYXBhYmlsaXRpZXMsIGxvb3A9bG9vcCkKKworICAgIGFzeW5jIGRlZiBfX2Fl
bnRlcl9fKHNlbGYpIC0+ICJCaWRpU2Vzc2lvbiI6CisgICAgICAgIGF3YWl0IHNlbGYuc3RhcnQo
KQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgYXN5bmMgZGVmIF9fYWV4aXRfXyhzZWxmLCAq
YXJnczogQW55KSAtPiBOb25lOgorICAgICAgICBhd2FpdCBzZWxmLmVuZCgpCisKKyAgICBhc3lu
YyBkZWYgc3RhcnQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgIiIiQ29ubmVjdCB0byB0aGUgV2Vi
RHJpdmVyIEJpRGkgcmVtb3RlIHZpYSBXZWJTb2NrZXRzIiIiCisgICAgICAgIHNlbGYudHJhbnNw
b3J0ID0gVHJhbnNwb3J0KHNlbGYud2Vic29ja2V0X3VybCwgc2VsZi5vbl9tZXNzYWdlLCBsb29w
PXNlbGYubG9vcCkKKworICAgICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKKyAgICAg
ICAgICAgIHNlbGYuc2Vzc2lvbl9pZCwgc2VsZi5jYXBhYmlsaXRpZXMgPSBhd2FpdCBzZWxmLnNl
c3Npb24ubmV3KHNlbGYucmVxdWVzdGVkX2NhcGFiaWxpdGllcykKKworICAgICAgICBhd2FpdCBz
ZWxmLnRyYW5zcG9ydC5zdGFydCgpCisKKyAgICBhc3luYyBkZWYgc2VuZF9jb21tYW5kKHNlbGYs
IG1ldGhvZDogc3RyLCBwYXJhbXM6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBBd2FpdGFibGVbTWFw
cGluZ1tzdHIsIEFueV1dOgorICAgICAgICAiIiJTZW5kIGEgY29tbWFuZCB0byB0aGUgcmVtb3Rl
IHNlcnZlciIiIgorICAgICAgICAjIHRoaXMgaXNuJ3QgdGhyZWFkc2FmZQorICAgICAgICBzZWxm
LmNvbW1hbmRfaWQgKz0gMQorICAgICAgICBjb21tYW5kX2lkID0gc2VsZi5jb21tYW5kX2lkCisK
KyAgICAgICAgYm9keSA9IHsKKyAgICAgICAgICAgICJpZCI6IGNvbW1hbmRfaWQsCisgICAgICAg
ICAgICAibWV0aG9kIjogbWV0aG9kLAorICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcworICAg
ICAgICB9CisgICAgICAgIGFzc2VydCBjb21tYW5kX2lkIG5vdCBpbiBzZWxmLnBlbmRpbmdfY29t
bWFuZHMKKyAgICAgICAgc2VsZi5wZW5kaW5nX2NvbW1hbmRzW2NvbW1hbmRfaWRdID0gc2VsZi5s
b29wLmNyZWF0ZV9mdXR1cmUoKQorICAgICAgICBhc3NlcnQgc2VsZi50cmFuc3BvcnQgaXMgbm90
IE5vbmUKKyAgICAgICAgYXdhaXQgc2VsZi50cmFuc3BvcnQuc2VuZChib2R5KQorCisgICAgICAg
IHJldHVybiBzZWxmLnBlbmRpbmdfY29tbWFuZHNbY29tbWFuZF9pZF0KKworICAgIGFzeW5jIGRl
ZiBvbl9tZXNzYWdlKHNlbGYsIGRhdGE6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBOb25lOgorICAg
ICAgICAiIiJIYW5kbGUgYSBtZXNzYWdlIGZyb20gdGhlIHJlbW90ZSBzZXJ2ZXIiIiIKKyAgICAg
ICAgaWYgImlkIiBpbiBkYXRhOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY29tbWFuZCByZXNw
b25zZSBvciBlcnJvcgorICAgICAgICAgICAgZnV0dXJlID0gc2VsZi5wZW5kaW5nX2NvbW1hbmRz
LmdldChkYXRhWyJpZCJdKQorICAgICAgICAgICAgaWYgZnV0dXJlIGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIk5vIHBlbmRpbmcgY29tbWFuZCB3aXRoIGlkIHtk
YXRhWydpZCddfSIpCisgICAgICAgICAgICBpZiAicmVzdWx0IiBpbiBkYXRhOgorICAgICAgICAg
ICAgICAgIGZ1dHVyZS5zZXRfcmVzdWx0KGRhdGFbInJlc3VsdCJdKQorICAgICAgICAgICAgZWxp
ZiAiZXJyb3IiIGluIGRhdGEgYW5kICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGRhdGFbImVycm9yIl0sIHN0cikKKyAgICAgICAgICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShkYXRhWyJtZXNzYWdlIl0sIHN0cikKKyAgICAgICAgICAgICAgICBm
dXR1cmUuc2V0X2V4Y2VwdGlvbihCaWRpRXhjZXB0aW9uKGRhdGFbImVycm9yIl0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyJtZXNzYWdl
Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhLmdldCgic3RhY2t0cmFjZSIpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQorICAg
ICAgICBlbGlmICJtZXRob2QiIGluIGRhdGEgYW5kICJwYXJhbXMiIGluIGRhdGE6CisgICAgICAg
ICAgICAjIFRoaXMgaXMgYW4gZXZlbnQKKyAgICAgICAgICAgIG1ldGhvZCA9IGRhdGFbIm1ldGhv
ZCJdCisgICAgICAgICAgICBsaXN0ZW5lcnMgPSBzZWxmLmV2ZW50X2xpc3RlbmVycy5nZXQobWV0
aG9kLCBbXSkKKyAgICAgICAgICAgIGlmIG5vdCBsaXN0ZW5lcnM6CisgICAgICAgICAgICAgICAg
bGlzdGVuZXJzID0gc2VsZi5ldmVudF9saXN0ZW5lcnMuZ2V0KE5vbmUsIFtdKQorICAgICAgICAg
ICAgZm9yIGxpc3RlbmVyIGluIGxpc3RlbmVyczoKKyAgICAgICAgICAgICAgICBhd2FpdCBsaXN0
ZW5lcihtZXRob2QsIGRhdGFbInBhcmFtcyJdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQorCisgICAg
YXN5bmMgZGVmIGVuZChzZWxmKSAtPiBOb25lOgorICAgICAgICAiIiJDbG9zZSB3ZWJzb2NrZXQg
Y29ubmVjdGlvbi4iIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYudHJhbnNwb3J0IGlzIG5vdCBOb25l
CisgICAgICAgIGF3YWl0IHNlbGYudHJhbnNwb3J0LmVuZCgpCisKKyAgICBkZWYgYWRkX2V2ZW50
X2xpc3RlbmVyKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBPcHRpb25h
bFtzdHJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZm46IENhbGxhYmxlW1tzdHIsIE1h
cHBpbmdbc3RyLCBBbnldXSwgQXdhaXRhYmxlW0FueV1dKSAtPiBOb25lOgorICAgICAgICAiIiJB
ZGQgYSBsaXN0ZW5lciBmb3IgdGhlIGV2ZW50IHdpdGggYSBnaXZlbiBuYW1lLgorCisgICAgICAg
IElmIG5hbWUgaXMgTm9uZSwgdGhlIGxpc3RlbmVyIGlzIGNhbGxlZCBmb3IgYWxsIG1lc3NhZ2Vz
IHRoYXQgYXJlIG5vdCBvdGhlcndpc2UKKyAgICAgICAgaGFuZGxlZC4KKworICAgICAgICA6cGFy
YW0gbmFtZTogTmFtZSBvZiBldmVudCB0byBsaXN0ZW4gZm9yIG9yIE5vbmUgdG8gcmVnaXN0ZXIg
YSBkZWZhdWx0IGhhbmRsZXIKKyAgICAgICAgOnBhcmFtIGZuOiBBc3luYyBjYWxsYmFjayBmdW5j
dGlvbiB0aGF0IHJlY2VpdmVzIGV2ZW50IGRhdGEKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYu
ZXZlbnRfbGlzdGVuZXJzW25hbWVdLmFwcGVuZChmbikKKworCitjbGFzcyBUcmFuc3BvcnQ6Cisg
ICAgIiIiTG93IGxldmVsIG1lc3NhZ2UgaGFuZGxlciBmb3IgdGhlIFdlYlNvY2tldHMgY29ubmVj
dGlvbiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmw6IHN0ciwKKyAgICAgICAgICAgICAg
ICAgbXNnX2hhbmRsZXI6IENhbGxhYmxlW1tNYXBwaW5nW3N0ciwgQW55XV0sIENvcm91dGluZVtB
bnksIEFueSwgTm9uZV1dLAorICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFthc3luY2lv
LkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpOgorICAgICAgICBzZWxmLnVybCA9IHVybAorICAg
ICAgICBzZWxmLmNvbm5lY3Rpb246IE9wdGlvbmFsW3dlYnNvY2tldHMuV2ViU29ja2V0Q2xpZW50
UHJvdG9jb2xdID0gTm9uZQorICAgICAgICBzZWxmLm1zZ19oYW5kbGVyID0gbXNnX2hhbmRsZXIK
KyAgICAgICAgc2VsZi5zZW5kX2J1ZjogTGlzdFtNYXBwaW5nW3N0ciwgQW55XV0gPSBbXQorCisg
ICAgICAgIGlmIGxvb3AgaXMgTm9uZToKKyAgICAgICAgICAgIGxvb3AgPSBnZXRfcnVubmluZ19s
b29wKCkKKyAgICAgICAgc2VsZi5sb29wID0gbG9vcAorCisgICAgICAgIHNlbGYucmVhZF9tZXNz
YWdlX3Rhc2s6IE9wdGlvbmFsW2FzeW5jaW8uVGFza1tBbnldXSA9IE5vbmUKKworICAgIGFzeW5j
IGRlZiBzdGFydChzZWxmKSAtPiBOb25lOgorICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBhd2Fp
dCB3ZWJzb2NrZXRzLmNsaWVudC5jb25uZWN0KHNlbGYudXJsKQorICAgICAgICBzZWxmLnJlYWRf
bWVzc2FnZV90YXNrID0gc2VsZi5sb29wLmNyZWF0ZV90YXNrKHNlbGYucmVhZF9tZXNzYWdlcygp
KQorCisgICAgICAgIGZvciBtc2cgaW4gc2VsZi5zZW5kX2J1ZjoKKyAgICAgICAgICAgIGF3YWl0
IHNlbGYuX3NlbmQoc2VsZi5jb25uZWN0aW9uLCBtc2cpCisKKyAgICBhc3luYyBkZWYgc2VuZChz
ZWxmLCBkYXRhOiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgaWYgc2VsZi5j
b25uZWN0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5fc2VuZChzZWxm
LmNvbm5lY3Rpb24sIGRhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNlbmRf
YnVmLmFwcGVuZChkYXRhKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGFzeW5jIGRlZiBfc2Vu
ZChjb25uZWN0aW9uOiB3ZWJzb2NrZXRzLldlYlNvY2tldENsaWVudFByb3RvY29sLCBkYXRhOiBN
YXBwaW5nW3N0ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgbXNnID0ganNvbi5kdW1wcyhkYXRh
KQorICAgICAgICBsb2dnZXIuZGVidWcoIuKGkiAlcyIsIG1zZykKKyAgICAgICAgYXdhaXQgY29u
bmVjdGlvbi5zZW5kKG1zZykKKworICAgIGFzeW5jIGRlZiBoYW5kbGUoc2VsZiwgbXNnOiBzdHIp
IC0+IE5vbmU6CisgICAgICAgIGxvZ2dlci5kZWJ1Zygi4oaQICVzIiwgbXNnKQorICAgICAgICBk
YXRhID0ganNvbi5sb2Fkcyhtc2cpCisgICAgICAgIGF3YWl0IHNlbGYubXNnX2hhbmRsZXIoZGF0
YSkKKworICAgIGFzeW5jIGRlZiBlbmQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgaWYgc2VsZi5j
b25uZWN0aW9uOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5jb25uZWN0aW9uLmNsb3NlKCkKKyAg
ICAgICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IE5vbmUKKworICAgIGFzeW5jIGRlZiByZWFkX21l
c3NhZ2VzKHNlbGYpIC0+IE5vbmU6CisgICAgICAgIGFzc2VydCBzZWxmLmNvbm5lY3Rpb24gaXMg
bm90IE5vbmUKKyAgICAgICAgYXN5bmMgZm9yIG1zZyBpbiBzZWxmLmNvbm5lY3Rpb246CisgICAg
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShtc2csIHN0cik6CisgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiR290IGEgYmluYXJ5IG1lc3NhZ2UiKQorICAgICAgICAgICAgYXdhaXQg
c2VsZi5oYW5kbGUobXNnKQorCisKK2NsYXNzIGNvbW1hbmQ6CisgICAgIiIiRGVjb3JhdG9yIGZv
ciBpbXBsZW1lbnRpbmcgYmlkaSBjb21tYW5kcworCisgICAgSW1wbGVtZW50aW5nIGEgY29tbWFu
ZCBpbnZvbHZlcyBzcGVjaWZ5aW5nIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQKKyAgICBidWlsZHMg
dGhlIHBhcmFtZXRlcnMgdG8gdGhlIGNvbW1hbmQuIFRoZSBkZWNvcmF0b3IgYXJyYW5nZXMgdGhv
c2UKKyAgICBwYXJhbWV0ZXJzIHRvIGJlIHR1cm5lZCBpbnRvIGEgc2VuZF9jb21tYW5kIGNhbGws
IHVzaW5nIHRoZSBjbGFzcworICAgIGFuZCBtZXRob2QgbmFtZXMgdG8gZGV0ZXJtaW5lIHRoZSBt
ZXRob2QgaW4gdGhlIGNhbGwuCisKKyAgICBDb21tYW5kcyBkZWNvcmF0ZWQgaW4gdGhpcyB3YXkg
ZG9uJ3QgcmV0dXJuIGEgZnV0dXJlLCBidXQgYXdhaXQKKyAgICB0aGUgYWN0dWFsIHJlc3BvbnNl
LiBJbiBzb21lIGNhc2VzIGl0IGNhbiBiZSB1c2VmdWwgdG8KKyAgICBwb3N0LXByb2Nlc3MgdGhp
cyByZXNwb25zZSBiZWZvcmUgcmV0dXJuaW5nIGl0IHRvIHRoZSBjbGllbnQuIFRoaXMKKyAgICBj
YW4gYmUgZG9uZSBieSBzcGVjaWZ5aW5nIGEgc2Vjb25kIGRlY29yYXRlZCBtZXRob2QgbGlrZQor
ICAgIEBjb21tYW5kX25hbWUucmVzdWx0LiBUaGF0IG1ldGhvZCB3aWxsIHRoZW4gYmUgY2FsbGVk
IG9uY2UgdGhlCisgICAgcmVzdWx0IG9mIHRoZSBvcmlnaW5hbCBjb21tYW5kIGlzIGtub3duLCBh
bmQgdGhlIHJldHVybiB2YWx1ZSBvZgorICAgIHRoZSBtZXRob2QgdXNlZCBhcyB0aGUgcmVzcG9u
c2Ugb2YgdGhlIGNvbW1hbmQuCisKKyAgICBTbyBmb3IgYW4gZXhhbXBsZSwgaWYgd2UgaGFkIGEg
Y29tbWFuZCB0ZXN0LnRlc3RNZXRob2QsIHdoaWNoCisgICAgcmV0dXJuZWQgYSByZXN1bHQgd2hp
Y2ggd2Ugd2FudCB0byBjb252ZXJ0IHRvIGEgVGVzdFJlc3VsdCB0eXBlLAorICAgIHRoZSBpbXBs
ZW1lbnRhdGlvbiBtaWdodCBsb29rIGxpa2U6CisKKyAgICBjbGFzcyBUZXN0KEJpZGlNb2R1bGUp
OgorICAgICAgICBAY29tbWFuZAorICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgdGVzdF9k
YXRhPU5vbmUpOgorICAgICAgICAgICAgcmV0dXJuIHsidGVzdERhdGEiOiB0ZXN0X2RhdGF9CisK
KyAgICAgICBAdGVzdF9tZXRob2QucmVzdWx0CisgICAgICAgZGVmIGNvbnZlcnRfdGVzdF9tZXRo
b2RfcmVzdWx0KHNlbGYsIHJlc3VsdCk6CisgICAgICAgICAgIHJldHVybiBUZXN0RGF0YSgqKnJl
c3VsdCkKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmbjogQ2FsbGFibGVbLi4u
LCBNYXBwaW5nW3N0ciwgQW55XV0pOgorICAgICAgICBzZWxmLnBhcmFtc19mbiA9IGZuCisgICAg
ICAgIHNlbGYucmVzdWx0X2ZuOiBPcHRpb25hbFtDYWxsYWJsZVsuLi4sIEFueV1dID0gTm9uZQor
CisgICAgZGVmIHJlc3VsdChzZWxmLCBmbjogQ2FsbGFibGVbW0FueSwgTXV0YWJsZU1hcHBpbmdb
c3RyLCBBbnldXSwgTWFwcGluZ1tzdHIsIEFueV1dKSAtPiBOb25lOgorICAgICAgICBzZWxmLnJl
c3VsdF9mbiA9IGZuCisKKyAgICBkZWYgX19zZXRfbmFtZV9fKHNlbGYsIG93bmVyOiBBbnksIG5h
bWU6IHN0cikgLT4gTm9uZToKKyAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBjbGFz
cyBpcyBjcmVhdGVkCisgICAgICAgICMgc2VlIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVm
ZXJlbmNlL2RhdGFtb2RlbC5odG1sI29iamVjdC5fX3NldF9uYW1lX18KKyAgICAgICAgcGFyYW1z
X2ZuID0gc2VsZi5wYXJhbXNfZm4KKyAgICAgICAgcmVzdWx0X2ZuID0gc2VsZi5yZXN1bHRfZm4K
KworICAgICAgICBAZnVuY3Rvb2xzLndyYXBzKHBhcmFtc19mbikKKyAgICAgICAgYXN5bmMgZGVm
IGlubmVyKHNlbGY6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gQW55OgorICAgICAgICAgICAgcGFy
YW1zID0gcGFyYW1zX2ZuKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgICAgICAjIENvbnZlcnQg
dGhlIGNsYXNzbmFtZSBhbmQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgYmlkaSBjb21tYW5kIG5hbWUK
KyAgICAgICAgICAgIG1vZF9uYW1lID0gb3duZXIuX19uYW1lX18ubG93ZXIoKQorICAgICAgICAg
ICAgaWYgaGFzYXR0cihvd25lciwgInByZWZpeCIpOgorICAgICAgICAgICAgICAgIG1vZF9uYW1l
ID0gZiJ7b3duZXIucHJlZml4fTp7bW9kX25hbWV9IgorICAgICAgICAgICAgY21kX25hbWUgPSBm
Inttb2RfbmFtZX0ue3RvX2NhbWVsY2FzZShuYW1lKX0iCisKKyAgICAgICAgICAgIGZ1dHVyZSA9
IGF3YWl0IHNlbGYuc2Vzc2lvbi5zZW5kX2NvbW1hbmQoY21kX25hbWUsIHBhcmFtcykKKyAgICAg
ICAgICAgIHJlc3VsdCA9IGF3YWl0IGZ1dHVyZQorCisgICAgICAgICAgICBpZiByZXN1bHRfZm4g
aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSByZXN1bHQgaWYgd2Ug
aGF2ZSBhIGNvbnZlcnNpb24gZnVuY3Rpb24gZGVmaW5lZAorICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHJlc3VsdF9mbihzZWxmLCByZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisK
KyAgICAgICAgIyBPdmVyd3JpdGUgdGhlIG1ldGhvZCBvbiB0aGUgb3duZXIgY2xhc3Mgd2l0aCB0
aGUgd3JhcHBlcgorICAgICAgICBzZXRhdHRyKG93bmVyLCBuYW1lLCBpbm5lcikKKworICAgIGRl
ZiBfX2NhbGxfXygqYXJnczogQW55LCAqKmt3YXJnczogQW55KSAtPiBBd2FpdGFibGVbQW55XToK
KyAgICAgICAgIyBUaGlzIGlzbid0IHJlYWxseSB1c2VkLCBidXQgbXlweSBkb2Vzbid0IHVuZGVy
c3RhbmQgX19zZXRfbmFtZV9fCisgICAgICAgIHBhc3MKKworCitkZWYgdG9fY2FtZWxjYXNlKG5h
bWU6IHN0cikgLT4gc3RyOgorICAgICIiIkNvbnZlcnQgYSBweXRob24gc3R5bGUgbWV0aG9kIG5h
bWUgZm9vX2JhciB0byBhIEJpRGkgY29tbWFuZCBuYW1lIGZvb0JhciIiIgorICAgIHBhcnRzID0g
bmFtZS5zcGxpdCgiXyIpCisgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5sb3dlcigpCisgICAgZm9y
IGkgaW4gcmFuZ2UoMSwgbGVuKHBhcnRzKSk6CisgICAgICAgIHBhcnRzW2ldID0gcGFydHNbaV0u
dGl0bGUoKQorICAgIHJldHVybiAiIi5qb2luKHBhcnRzKQorCisKK2NsYXNzIEJpZGlNb2R1bGU6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb246IEJpZGlTZXNzaW9uKToKKyAgICAgICAg
c2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisKK2NsYXNzIFNlc3Npb24oQmlkaU1vZHVsZSk6Cisg
ICAgQGNvbW1hbmQKKyAgICBkZWYgbmV3KHNlbGYsIGNhcGFiaWxpdGllczogTWFwcGluZ1tzdHIs
IEFueV0pIC0+IE1hcHBpbmdbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV06CisgICAgICAgIHJldHVy
biB7ImNhcGFiaWxpdGllcyI6IGNhcGFiaWxpdGllc30KKworICAgIEBuZXcucmVzdWx0CisgICAg
ZGVmIF9uZXcoc2VsZiwgcmVzdWx0OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gQW55OgorICAgICAg
ICByZXR1cm4gcmVzdWx0LmdldCgic2Vzc2lvbl9pZCIpLCByZXN1bHQuZ2V0KCJjYXBhYmlsaXRp
ZXMiLCB7fSkKKworICAgIEBjb21tYW5kCisgICAgZGVmIHN1YnNjcmliZShzZWxmLAorICAgICAg
ICAgICAgICAgICAgZXZlbnRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSwKKyAgICAgICAg
ICAgICAgICAgIGNvbnRleHRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSkgLT4gTWFwcGlu
Z1tzdHIsIEFueV06CisgICAgICAgIHBhcmFtczogTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnldID0g
eyJldmVudHMiOiBldmVudHMgaWYgZXZlbnRzIGlzIG5vdCBOb25lIGVsc2UgW119CisgICAgICAg
IGlmIGNvbnRleHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFyYW1zWyJjb250ZXh0cyJd
ID0gY29udGV4dHMKKyAgICAgICAgcmV0dXJuIHBhcmFtcworCisgICAgQGNvbW1hbmQKKyAgICBk
ZWYgdW5zdWJzY3JpYmUoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiBPcHRpb25h
bFtMaXN0W3N0cl1dID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dHM6IE9wdGlv
bmFsW0xpc3Rbc3RyXV0gPSBOb25lKSAtPiBNYXBwaW5nW3N0ciwgQW55XToKKyAgICAgICAgcGFy
YW1zOiBNdXRhYmxlTWFwcGluZ1tzdHIsIEFueV0gPSB7ImV2ZW50cyI6IGV2ZW50cyBpZiBldmVu
dHMgaXMgbm90IE5vbmUgZWxzZSBbXX0KKyAgICAgICAgaWYgY29udGV4dHMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBwYXJhbXNbImNvbnRleHRzIl0gPSBjb250ZXh0cworICAgICAgICByZXR1
cm4gcGFyYW1zCisKKworY2xhc3MgVGVzdChCaWRpTW9kdWxlKToKKyAgICAiIiJWZXJ5IHRlbXBv
cmFyeSBtb2R1bGUgdGhhdCBkb2VzIG5vdGhpbmcsIGV4Y2VwdCBkZW1vbnN0cmF0ZSBhIHZlbmRv
ciBwcmVmaXggYW5kCisgICAgcHJvdmlkZSBhIHdheSB0byB3b3JrIHdpdGggR2Vja28ncyBjdXJy
ZW50IHNrZWxldG9uIGltcGxlbWVudGF0aW9uLiIiIgorCisgICAgcHJlZml4ID0gIm1veiIKKwor
ICAgIEBjb21tYW5kCisgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsICoqa3dhcmdzKToKKyAgICAg
ICAgcmV0dXJuIGt3YXJncwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CmluZGV4IGY0ZTNj
NzYzNzk1ZS4uMmM3YjFjNWRiZWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CkBA
IC0xLDkgKzEsOSBAQAogZnJvbSAuIGltcG9ydCBlcnJvcgogZnJvbSAuIGltcG9ydCBwcm90b2Nv
bAogZnJvbSAuIGltcG9ydCB0cmFuc3BvcnQKK2Zyb20gLmJpZGkuY2xpZW50IGltcG9ydCBCaWRp
U2Vzc2lvbgogCi1mcm9tIHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzCi1mcm9tIHNpeC5tb3Zlcy51
cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVybHBhcnNlCitmcm9tIHVybGxpYiBpbXBvcnQgcGFyc2Ug
YXMgdXJscGFyc2UKIAogCiBkZWYgY29tbWFuZChmdW5jKToKQEAgLTExNiwxNCArMTE2LDQ5IEBA
IGNsYXNzIEFjdGlvblNlcXVlbmNlKG9iamVjdCk6CiAgICAgZGVmIF9rZXlfYWN0aW9uKHNlbGYs
IHN1YnR5cGUsIHZhbHVlKToKICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjog
c3VidHlwZSwgInZhbHVlIjogdmFsdWV9KQogCi0gICAgZGVmIF9wb2ludGVyX2FjdGlvbihzZWxm
LCBzdWJ0eXBlLCBidXR0b24pOgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5cGUi
OiBzdWJ0eXBlLCAiYnV0dG9uIjogYnV0dG9ufSkKKyAgICBkZWYgX3BvaW50ZXJfYWN0aW9uKHNl
bGYsIHN1YnR5cGUsIGJ1dHRvbj1Ob25lLCB4PU5vbmUsIHk9Tm9uZSwgZHVyYXRpb249Tm9uZSwg
b3JpZ2luPU5vbmUsIHdpZHRoPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9
Tm9uZSwgcHJlc3N1cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9u
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRfeT1Ob25lLCB0d2lzdD1Ob25lLCBhbHRp
dHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgorICAgICAgICBhY3Rpb24gPSB7
CisgICAgICAgICAgICAidHlwZSI6IHN1YnR5cGUKKyAgICAgICAgfQorICAgICAgICBpZiBidXR0
b24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImJ1dHRvbiJdID0gYnV0dG9uCisg
ICAgICAgIGlmIHggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIngiXSA9IHgKKyAg
ICAgICAgaWYgeSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsieSJdID0geQorICAg
ICAgICBpZiBkdXJhdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiZHVyYXRp
b24iXSA9IGR1cmF0aW9uCisgICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIGFjdGlvblsib3JpZ2luIl0gPSBvcmlnaW4KKyAgICAgICAgaWYgd2lkdGggaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBhY3Rpb25bIndpZHRoIl0gPSB3aWR0aAorICAgICAgICBpZiBoZWln
aHQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImhlaWdodCJdID0gaGVpZ2h0Cisg
ICAgICAgIGlmIHByZXNzdXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJwcmVz
c3VyZSJdID0gcHJlc3N1cmUKKyAgICAgICAgaWYgdGFuZ2VudGlhbF9wcmVzc3VyZSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGFjdGlvblsidGFuZ2VudGlhbFByZXNzdXJlIl0gPSB0YW5nZW50
aWFsX3ByZXNzdXJlCisgICAgICAgIGlmIHRpbHRfeCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGFjdGlvblsidGlsdFgiXSA9IHRpbHRfeAorICAgICAgICBpZiB0aWx0X3kgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBhY3Rpb25bInRpbHRZIl0gPSB0aWx0X3kKKyAgICAgICAgaWYgdHdpc3Qg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bInR3aXN0Il0gPSB0d2lzdAorICAgICAg
ICBpZiBhbHRpdHVkZV9hbmdsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiYWx0
aXR1ZGVBbmdsZSJdID0gYWx0aXR1ZGVfYW5nbGUKKyAgICAgICAgaWYgYXppbXV0aF9hbmdsZSBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiYXppbXV0aEFuZ2xlIl0gPSBhemltdXRo
X2FuZ2xlCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGFjdGlvbikKIAogICAgIGRlZiBw
YXVzZShzZWxmLCBkdXJhdGlvbik6CiAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsidHlw
ZSI6ICJwYXVzZSIsICJkdXJhdGlvbiI6IGR1cmF0aW9ufSkKICAgICAgICAgcmV0dXJuIHNlbGYK
IAotICAgIGRlZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3JpZ2lu
PU5vbmUpOgorICAgIGRlZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwg
b3JpZ2luPU5vbmUsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLAorICAgICAgICAgICAgICAgICAg
ICAgcHJlc3N1cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwg
dGlsdF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVkZV9h
bmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBvaW50
ZXJNb3ZlIGFjdGlvbi4KIAogICAgICAgICA6cGFyYW0geDogRGVzdGluYXRpb24geC1heGlzIGNv
b3JkaW5hdGUgb2YgcG9pbnRlciBpbiBDU1MgcGl4ZWxzLgpAQCAtMTMzLDE2ICsxNjgsMTAgQEAg
Y2xhc3MgQWN0aW9uU2VxdWVuY2Uob2JqZWN0KToKICAgICAgICAgOnBhcmFtIG9yaWdpbjogT3Jp
Z2luIG9mIGNvb3JkaW5hdGVzLCBlaXRoZXIgInZpZXdwb3J0IiwgInBvaW50ZXIiIG9yCiAgICAg
ICAgICAgICAgICAgICAgICAgIGFuIEVsZW1lbnQuIElmIE5vbmUsIHJlbW90ZSBlbmQgZGVmYXVs
dHMgdG8gInZpZXdwb3J0Ii4KICAgICAgICAgIiIiCi0gICAgICAgIGFjdGlvbiA9IHsKLSAgICAg
ICAgICAgICJ0eXBlIjogInBvaW50ZXJNb3ZlIiwKLSAgICAgICAgICAgICJ4IjogeCwKLSAgICAg
ICAgICAgICJ5IjogeQotICAgICAgICB9Ci0gICAgICAgIGlmIGR1cmF0aW9uIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgYWN0aW9uWyJkdXJhdGlvbiJdID0gZHVyYXRpb24KLSAgICAgICAgaWYg
b3JpZ2luIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IG9yaWdp
bgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChhY3Rpb24pCisgICAgICAgIHNlbGYuX3Bv
aW50ZXJfYWN0aW9uKCJwb2ludGVyTW92ZSIsIHg9eCwgeT15LCBkdXJhdGlvbj1kdXJhdGlvbiwg
b3JpZ2luPW9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9d2lkdGgs
IGhlaWdodD1oZWlnaHQsIHByZXNzdXJlPXByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0YW5nZW50aWFsX3ByZXNzdXJlPXRhbmdlbnRpYWxfcHJlc3N1cmUsIHRpbHRfeD10
aWx0X3gsIHRpbHRfeT10aWx0X3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3aXN0
PXR3aXN0LCBhbHRpdHVkZV9hbmdsZT1hbHRpdHVkZV9hbmdsZSwgYXppbXV0aF9hbmdsZT1hemlt
dXRoX2FuZ2xlKQogICAgICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIHBvaW50ZXJfdXAoc2Vs
ZiwgYnV0dG9uPTApOgpAQCAtMTUxLDE2ICsxODAsMjEgQEAgY2xhc3MgQWN0aW9uU2VxdWVuY2Uo
b2JqZWN0KToKICAgICAgICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVyZm9y
bSBhY3Rpb24gd2l0aC4KICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hpY2gg
cmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBzZWxm
Ll9wb2ludGVyX2FjdGlvbigicG9pbnRlclVwIiwgYnV0dG9uKQorICAgICAgICBzZWxmLl9wb2lu
dGVyX2FjdGlvbigicG9pbnRlclVwIiwgYnV0dG9uPWJ1dHRvbikKICAgICAgICAgcmV0dXJuIHNl
bGYKIAotICAgIGRlZiBwb2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPTApOgorICAgIGRlZiBwb2lu
dGVyX2Rvd24oc2VsZiwgYnV0dG9uPTAsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLCBwcmVzc3Vy
ZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0
aWx0X3g9Tm9uZSwgdGlsdF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25l
LCBhbHRpdHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJR
dWV1ZSBhIHBvaW50ZXJEb3duIGFjdGlvbiBmb3IgYGJ1dHRvbmAuCiAKICAgICAgICAgOnBhcmFt
IGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4KICAgICAgICAg
ICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBi
dXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRl
ckRvd24iLCBidXR0b24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVyRG93
biIsIGJ1dHRvbj1idXR0b24sIHdpZHRoPXdpZHRoLCBoZWlnaHQ9aGVpZ2h0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZT1wcmVzc3VyZSwgdGFuZ2VudGlhbF9wcmVzc3Vy
ZT10YW5nZW50aWFsX3ByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWx0
X3g9dGlsdF94LCB0aWx0X3k9dGlsdF95LCB0d2lzdD10d2lzdCwgYWx0aXR1ZGVfYW5nbGU9YWx0
aXR1ZGVfYW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF6aW11dGhfYW5nbGU9
YXppbXV0aF9hbmdsZSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBjbGljayhzZWxm
LCBlbGVtZW50PU5vbmUsIGJ1dHRvbj0wKToKQEAgLTI3MywxOSArMzA3LDIyIEBAIGNsYXNzIFdp
bmRvdyhvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBoYW5kbGVzCiAKLSAgICBAcHJvcGVydHkK
KyAgICAjIFRoZSBtYW55ICJ0eXBlOiBpZ25vcmUiIGNvbW1lbnRzIGhlcmUgYW5kIGJlbG93IGFy
ZSB0byBzaWxlbmNlIG15cHkncworICAgICMgIkRlY29yYXRlZCBwcm9wZXJ0eSBub3Qgc3VwcG9y
dGVkIiBlcnJvciwgd2hpY2ggaXMgZHVlIHRvIGEgbGltaXRhdGlvbgorICAgICMgaW4gbXlweSwg
c2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vbXlweS9pc3N1ZXMvMTM2Mi4KKyAgICBAcHJv
cGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgcmVjdChzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwg
IndpbmRvdy9yZWN0IikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBp
Z25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiBzaXplKHNlbGYpOgogICAgICAgICAiIiJHZXRz
IHRoZSB3aW5kb3cgc2l6ZSBhcyBhIHR1cGxlIG9mIGAod2lkdGgsIGhlaWdodClgLiIiIgogICAg
ICAgICByZWN0ID0gc2VsZi5yZWN0CiAgICAgICAgIHJldHVybiAocmVjdFsid2lkdGgiXSwgcmVj
dFsiaGVpZ2h0Il0pCiAKLSAgICBAc2l6ZS5zZXR0ZXIKKyAgICBAc2l6ZS5zZXR0ZXIgICMgdHlw
ZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgc2l6ZShzZWxmLCBuZXdfc2l6ZSk6CiAg
ICAgICAgICIiIlNldCB3aW5kb3cgc2l6ZSBieSBwYXNzaW5nIGEgdHVwbGUgb2YgYCh3aWR0aCwg
aGVpZ2h0KWAuIiIiCkBAIC0yOTMsMTQgKzMzMCwxNCBAQCBjbGFzcyBXaW5kb3cob2JqZWN0KToK
ICAgICAgICAgYm9keSA9IHsid2lkdGgiOiB3aWR0aCwgImhlaWdodCI6IGhlaWdodH0KICAgICAg
ICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndpbmRvdy9yZWN0
IiwgYm9keSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUK
ICAgICBAY29tbWFuZAogICAgIGRlZiBwb3NpdGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0cyB0
aGUgd2luZG93IHBvc2l0aW9uIGFzIGEgdHVwbGUgb2YgYCh4LCB5KWAuIiIiCiAgICAgICAgIHJl
Y3QgPSBzZWxmLnJlY3QKICAgICAgICAgcmV0dXJuIChyZWN0WyJ4Il0sIHJlY3RbInkiXSkKIAot
ICAgIEBwb3NpdGlvbi5zZXR0ZXIKKyAgICBAcG9zaXRpb24uc2V0dGVyICAjIHR5cGU6IGlnbm9y
ZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHBvc2l0aW9uKHNlbGYsIG5ld19wb3NpdGlvbik6CiAg
ICAgICAgICIiIlNldCB3aW5kb3cgcG9zaXRpb24gYnkgcGFzc2luZyBhIHR1cGxlIG9mIGAoeCwg
eSlgLiIiIgpAQCAtMzM4LDYgKzM3NSw0MiBAQCBjbGFzcyBGcmFtZShvYmplY3QpOgogICAgICAg
ICByZXR1cm4gY2xzKHV1aWQsIHNlc3Npb24pCiAKIAorY2xhc3MgU2hhZG93Um9vdChvYmplY3Qp
OgorICAgIGlkZW50aWZpZXIgPSAic2hhZG93LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uLCBpZCk6CisgICAgICAgICIiIgorICAg
ICAgICBDb25zdHJ1Y3QgYSBuZXcgc2hhZG93IHJvb3QgcmVwcmVzZW50YXRpb24uCisKKyAgICAg
ICAgOnBhcmFtIGlkOiBTaGFkb3cgcm9vdCBVVUlEIHdoaWNoIG11c3QgYmUgdW5pcXVlIGFjcm9z
cworICAgICAgICAgICAgYWxsIGJyb3dzaW5nIGNvbnRleHRzLgorICAgICAgICA6cGFyYW0gc2Vz
c2lvbjogQ3VycmVudCBgYHdlYmRyaXZlci5TZXNzaW9uYGAuCisgICAgICAgICIiIgorICAgICAg
ICBzZWxmLmlkID0gaWQKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIGZyb21fanNvbihjbHMsIGpzb24sIHNlc3Npb24pOgorICAgICAg
ICB1dWlkID0ganNvbltTaGFkb3dSb290LmlkZW50aWZpZXJdCisgICAgICAgIHJldHVybiBjbHMo
dXVpZCwgc2Vzc2lvbikKKworICAgIGRlZiBzZW5kX3NoYWRvd19jb21tYW5kKHNlbGYsIG1ldGhv
ZCwgdXJpLCBib2R5PU5vbmUpOgorICAgICAgICB1cmwgPSAic2hhZG93L3t9L3t9Ii5mb3JtYXQo
c2VsZi5pZCwgdXJpKQorICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9j
b21tYW5kKG1ldGhvZCwgdXJsLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZmluZF9l
bGVtZW50KHNlbGYsIHN0cmF0ZWd5LCBzZWxlY3Rvcik6CisgICAgICAgIGJvZHkgPSB7InVzaW5n
Ijogc3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAgICAg
IHJldHVybiBzZWxmLnNlbmRfc2hhZG93X2NvbW1hbmQoIlBPU1QiLCAiZWxlbWVudCIsIGJvZHkp
CisKKyAgICBAY29tbWFuZAorICAgIGRlZiBmaW5kX2VsZW1lbnRzKHNlbGYsIHN0cmF0ZWd5LCBz
ZWxlY3Rvcik6CisgICAgICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRlZ3ksCisgICAgICAgICAg
ICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2hhZG93
X2NvbW1hbmQoIlBPU1QiLCAiZWxlbWVudHMiLCBib2R5KQorCisKIGNsYXNzIEZpbmQob2JqZWN0
KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6CiAgICAgICAgIHNlbGYuc2Vzc2lv
biA9IHNlc3Npb24KQEAgLTM2NSw3ICs0MzgsNyBAQCBjbGFzcyBDb29raWVzKG9iamVjdCk6CiAg
ICAgICAgIGNvb2tpZSA9IHsibmFtZSI6IG5hbWUsCiAgICAgICAgICAgICAgICAgICAidmFsdWUi
OiBOb25lfQogCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobmFtZSwgc3RyaW5nX3R5cGVzKToKKyAg
ICAgICAgaWYgaXNpbnN0YW5jZShuYW1lLCBzdHIpOgogICAgICAgICAgICAgY29va2llWyJ2YWx1
ZSJdID0gdmFsdWUKICAgICAgICAgZWxpZiBoYXNhdHRyKHZhbHVlLCAidmFsdWUiKToKICAgICAg
ICAgICAgIGNvb2tpZVsidmFsdWUiXSA9IHZhbHVlLnZhbHVlCkBAIC0zODQsMTIgKzQ1NywxMiBA
QCBjbGFzcyBVc2VyUHJvbXB0KG9iamVjdCk6CiAgICAgZGVmIGFjY2VwdChzZWxmKToKICAgICAg
ICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L2FjY2Vw
dCIpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAg
QGNvbW1hbmQKICAgICBkZWYgdGV4dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lv
bi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgImFsZXJ0L3RleHQiKQogCi0gICAgQHRleHQu
c2V0dGVyCisgICAgQHRleHQuc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAg
ICAgZGVmIHRleHQoc2VsZiwgdmFsdWUpOgogICAgICAgICBib2R5ID0geyJ0ZXh0IjogdmFsdWV9
CkBAIC00MDEsOCArNDc0LDE2IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgICAg
ICAgICAgaG9zdCwKICAgICAgICAgICAgICAgICAgcG9ydCwKICAgICAgICAgICAgICAgICAgdXJs
X3ByZWZpeD0iLyIsCisgICAgICAgICAgICAgICAgIGVuYWJsZV9iaWRpPUZhbHNlLAogICAgICAg
ICAgICAgICAgICBjYXBhYmlsaXRpZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9u
PU5vbmUpOgorCisgICAgICAgIGlmIGVuYWJsZV9iaWRpOgorICAgICAgICAgICAgaWYgY2FwYWJp
bGl0aWVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRkZWZh
dWx0KCJhbHdheXNNYXRjaCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0geyJhbHdheXNN
YXRjaCI6IHsid2ViU29ja2V0VXJsIjogVHJ1ZX19CisKICAgICAgICAgc2VsZi50cmFuc3BvcnQg
PSB0cmFuc3BvcnQuSFRUUFdpcmVQcm90b2NvbChob3N0LCBwb3J0LCB1cmxfcHJlZml4KQogICAg
ICAgICBzZWxmLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMKICAgICAgICAg
c2VsZi5jYXBhYmlsaXRpZXMgPSBOb25lCkBAIC00MTAsNiArNDkxLDggQEAgY2xhc3MgU2Vzc2lv
bihvYmplY3QpOgogICAgICAgICBzZWxmLnRpbWVvdXRzID0gTm9uZQogICAgICAgICBzZWxmLndp
bmRvdyA9IE5vbmUKICAgICAgICAgc2VsZi5maW5kID0gTm9uZQorICAgICAgICBzZWxmLmVuYWJs
ZV9iaWRpID0gZW5hYmxlX2JpZGkKKyAgICAgICAgc2VsZi5iaWRpX3Nlc3Npb24gPSBOb25lCiAg
ICAgICAgIHNlbGYuZXh0ZW5zaW9uID0gTm9uZQogICAgICAgICBzZWxmLmV4dGVuc2lvbl9jbHMg
PSBleHRlbnNpb24KIApAQCAtNDM2LDYgKzUxOSw5IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToK
ICAgICBkZWYgX19kZWxfXyhzZWxmKToKICAgICAgICAgc2VsZi5lbmQoKQogCisgICAgZGVmIG1h
dGNoKHNlbGYsIGNhcGFiaWxpdGllcyk6CisgICAgICAgIHJldHVybiBzZWxmLnJlcXVlc3RlZF9j
YXBhYmlsaXRpZXMgPT0gY2FwYWJpbGl0aWVzCisKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAg
ICAgICIiIlN0YXJ0IGEgbmV3IFdlYkRyaXZlciBzZXNzaW9uLgogCkBAIC00NTgsNiArNTQ0LDE0
IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gdmFs
dWVbInNlc3Npb25JZCJdCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gdmFsdWVbImNhcGFi
aWxpdGllcyJdCiAKKyAgICAgICAgaWYgIndlYlNvY2tldFVybCIgaW4gc2VsZi5jYXBhYmlsaXRp
ZXM6CisgICAgICAgICAgICBzZWxmLmJpZGlfc2Vzc2lvbiA9IEJpZGlTZXNzaW9uLmZyb21faHR0
cChzZWxmLnNlc3Npb25faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmNhcGFiaWxpdGllcykKKyAgICAgICAgZWxpZiBzZWxmLmVu
YWJsZV9iaWRpOgorICAgICAgICAgICAgc2VsZi5lbmQoKQorICAgICAgICAgICAgcmFpc2UgZXJy
b3IuU2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIlJlcXVlc3Rl
ZCBiaWRpIHNlc3Npb24sIGJ1dCB3ZWJTb2NrZXRVcmwgY2FwYWJpbGl0eSBub3QgZm91bmQiKQor
CiAgICAgICAgIGlmIHNlbGYuZXh0ZW5zaW9uX2NsczoKICAgICAgICAgICAgIHNlbGYuZXh0ZW5z
aW9uID0gc2VsZi5leHRlbnNpb25fY2xzKHNlbGYpCiAKQEAgLTQ3MCw3ICs1NjQsNyBAQCBjbGFz
cyBTZXNzaW9uKG9iamVjdCk6CiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5zZW5k
X2NvbW1hbmQoIkRFTEVURSIsICJzZXNzaW9uLyVzIiAlIHNlbGYuc2Vzc2lvbl9pZCkKLSAgICAg
ICAgZXhjZXB0IGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb246CisgICAgICAgIGV4Y2Vw
dCAoT1NFcnJvciwgZXJyb3IuSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbik6CiAgICAgICAgICAg
ICBwYXNzCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBO
b25lCkBAIC01NDUsMTIgKzYzOSwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAg
IHVybCA9IHVybHBhcnNlLnVybGpvaW4oInNlc3Npb24vJXMvIiAlIHNlbGYuc2Vzc2lvbl9pZCwg
dXJpKQogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2NvbW1hbmQobWV0aG9kLCB1cmwsIGJvZHks
IHRpbWVvdXQpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3Jl
CiAgICAgQGNvbW1hbmQKICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5z
ZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInVybCIpCiAKLSAgICBAdXJsLnNldHRlcgorICAg
IEB1cmwuc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHVybChz
ZWxmLCB1cmwpOgogICAgICAgICBpZiB1cmxwYXJzZS51cmxzcGxpdCh1cmwpLm5ldGxvYyBpcyBO
b25lOgpAQCAtNTcwLDEyICs2NjQsMTIgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgIGRl
ZiByZWZyZXNoKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFu
ZCgiUE9TVCIsICJyZWZyZXNoIikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0
eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB0aXRsZShzZWxmKToKICAgICAgICAg
cmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ0aXRsZSIpCiAKLSAgICBA
cHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAg
ICBkZWYgc291cmNlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiR0VUIiwgInNvdXJjZSIpCkBAIC01ODcsMTIgKzY4MSwxMiBAQCBjbGFzcyBTZXNzaW9u
KG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIHZhbHVlWyJoYW5kbGUiXQogCi0gICAgQHByb3Bl
cnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVm
IHdpbmRvd19oYW5kbGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9j
b21tYW5kKCJHRVQiLCAid2luZG93IikKIAotICAgIEB3aW5kb3dfaGFuZGxlLnNldHRlcgorICAg
IEB3aW5kb3dfaGFuZGxlLnNldHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAg
IGRlZiB3aW5kb3dfaGFuZGxlKHNlbGYsIGhhbmRsZSk6CiAgICAgICAgIGJvZHkgPSB7ImhhbmRs
ZSI6IGhhbmRsZX0KQEAgLTYwOCwxMiArNzAyLDEyIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToK
IAogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsIHVybCwg
Ym9keSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAg
ICBAY29tbWFuZAogICAgIGRlZiBoYW5kbGVzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5z
ZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdy9oYW5kbGVzIikKIAotICAgIEBwcm9w
ZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRl
ZiBhY3RpdmVfZWxlbWVudChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9u
X2NvbW1hbmQoIkdFVCIsICJlbGVtZW50L2FjdGl2ZSIpCkBAIC02ODMsNyArNzc3LDYgQEAgY2xh
c3MgU2Vzc2lvbihvYmplY3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3QiKQogCi0K
IGNsYXNzIEVsZW1lbnQob2JqZWN0KToKICAgICAiIiIKICAgICBSZXByZXNlbnRhdGlvbiBvZiBh
IHdlYiBlbGVtZW50LgpAQCAtNzQyLDEyICs4MzUsMTIgQEAgY2xhc3MgRWxlbWVudChvYmplY3Qp
OgogICAgIGRlZiBzZW5kX2tleXMoc2VsZiwgdGV4dCk6CiAgICAgICAgIHJldHVybiBzZWxmLnNl
bmRfZWxlbWVudF9jb21tYW5kKCJQT1NUIiwgInZhbHVlIiwgeyJ0ZXh0IjogdGV4dH0pCiAKLSAg
ICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQK
ICAgICBkZWYgdGV4dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2Nv
bW1hbmQoIkdFVCIsICJ0ZXh0IikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0
eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgIm5hbWUiKQpAQCAtNzU2LDEy
ICs4NDksMTIgQEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBzdHlsZShzZWxmLCBw
cm9wZXJ0eV9uYW1lKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQo
IkdFVCIsICJjc3MvJXMiICUgcHJvcGVydHlfbmFtZSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBw
cm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiByZWN0KHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInJlY3Qi
KQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBj
b21tYW5kCiAgICAgZGVmIHNlbGVjdGVkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5k
X2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNlbGVjdGVkIikKQEAgLTc3MCw2ICs4NjMsMTEgQEAg
Y2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAgICAg
ICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3QiKQog
CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQorICAgIEBjb21tYW5kCisgICAgZGVmIHNo
YWRvd19yb290KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFu
ZCgiR0VUIiwgInNoYWRvdyIpCisKICAgICBAY29tbWFuZAogICAgIGRlZiBhdHRyaWJ1dGUoc2Vs
ZiwgbmFtZSk6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQi
LCAiYXR0cmlidXRlLyVzIiAlIG5hbWUpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5CmluZGV4
IDgzNzk2NTZkNzNkZC4uYTQxM2E5NTBkNDhlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5w
eQpAQCAtMSwxMiArMSwxNyBAQAogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQganNvbgogCi1m
cm9tIHNpeCBpbXBvcnQgaXRlcnZhbHVlcworZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBE
ZWZhdWx0RGljdCwgVHlwZQogCiAKIGNsYXNzIFdlYkRyaXZlckV4Y2VwdGlvbihFeGNlcHRpb24p
OgotICAgIGh0dHBfc3RhdHVzID0gTm9uZQotICAgIHN0YXR1c19jb2RlID0gTm9uZQorICAgICMg
VGhlIHN0YXR1c19jb2RlIGNsYXNzIHZhcmlhYmxlIGlzIHVzZWQgdG8gbWFwIHRoZSBKU09OIEVy
cm9yIENvZGUgKHNlZQorICAgICMgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZXJy
b3JzKSB0byBhIFdlYkRyaXZlckV4Y2VwdGlvbiBzdWJjbGFzcy4KKyAgICAjIEhvd2V2ZXIsIGh0
dHBfc3RhdHVzIG5lZWQgbm90IG1hdGNoLCBhbmQgYm90aCBhcmUgc2V0IGFzIGluc3RhbmNlCisg
ICAgIyB2YXJpYWJsZXMsIHNoYWRvd2luZyB0aGUgY2xhc3MgdmFyaWFibGVzLiBUT0RPOiBNYXRj
aCBvbiBib3RoIGh0dHBfc3RhdHVzCisgICAgIyBhbmQgc3RhdHVzX2NvZGUgYW5kIGxldCB0aGVz
ZSBiZSBjbGFzcyB2YXJpYWJsZXMgb25seS4KKyAgICBodHRwX3N0YXR1cyA9IE5vbmUgICMgdHlw
ZTogQ2xhc3NWYXJbaW50XQorICAgIHN0YXR1c19jb2RlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zh
cltzdHJdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgaHR0cF9zdGF0dXM9Tm9uZSwgc3RhdHVz
X2NvZGU9Tm9uZSwgbWVzc2FnZT1Ob25lLCBzdGFja3RyYWNlPU5vbmUpOgogICAgICAgICBzdXBl
cihXZWJEcml2ZXJFeGNlcHRpb24sIHNlbGYpCkBAIC0zNCw2ICszOSwxMSBAQCBjbGFzcyBXZWJE
cml2ZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKIAogCitj
bGFzcyBEZXRhY2hlZFNoYWRvd1Jvb3RFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAg
ICBodHRwX3N0YXR1cyA9IDQwNAorICAgIHN0YXR1c19jb2RlID0gImRldGFjaGVkIHNoYWRvdyBy
b290IgorCisKIGNsYXNzIEVsZW1lbnRDbGlja0ludGVyY2VwdGVkRXhjZXB0aW9uKFdlYkRyaXZl
ckV4Y2VwdGlvbik6CiAgICAgaHR0cF9zdGF0dXMgPSA0MDAKICAgICBzdGF0dXNfY29kZSA9ICJl
bGVtZW50IGNsaWNrIGludGVyY2VwdGVkIgpAQCAtMTE0LDYgKzEyNCwxMSBAQCBjbGFzcyBOb1N1
Y2hGcmFtZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgIHN0YXR1c19jb2RlID0g
Im5vIHN1Y2ggZnJhbWUiCiAKIAorY2xhc3MgTm9TdWNoU2hhZG93Um9vdEV4Y2VwdGlvbihXZWJE
cml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2NvZGUg
PSAibm8gc3VjaCBzaGFkb3cgcm9vdCIKKworCiBjbGFzcyBOb1N1Y2hXaW5kb3dFeGNlcHRpb24o
V2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICBodHRwX3N0YXR1cyA9IDQwNAogICAgIHN0YXR1c19j
b2RlID0gIm5vIHN1Y2ggd2luZG93IgpAQCAtMjA5LDcgKzIyNCw3IEBAIGRlZiBnZXQoZXJyb3Jf
Y29kZSk6CiAgICAgcmV0dXJuIF9lcnJvcnMuZ2V0KGVycm9yX2NvZGUsIFdlYkRyaXZlckV4Y2Vw
dGlvbikKIAogCi1fZXJyb3JzID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QoKQotZm9yIGl0ZW0g
aW4gbGlzdChpdGVydmFsdWVzKGxvY2FscygpKSk6CitfZXJyb3JzOiBEZWZhdWx0RGljdFtzdHIs
IFR5cGVbV2ViRHJpdmVyRXhjZXB0aW9uXV0gPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdCgpCitm
b3IgaXRlbSBpbiBsaXN0KGxvY2FscygpLnZhbHVlcygpKToKICAgICBpZiB0eXBlKGl0ZW0pID09
IHR5cGUgYW5kIGlzc3ViY2xhc3MoaXRlbSwgV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAgICAg
X2Vycm9yc1tpdGVtLnN0YXR1c19jb2RlXSA9IGl0ZW0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJv
dG9jb2wucHkKaW5kZXggYzgxMWY2ZjI2ZGI3Li5lNzFlMDFkNjIwODMgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3Rv
Y29sLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL3Byb3RvY29sLnB5CkBAIC0yLDggKzIsNiBAQCBpbXBvcnQganNvbgogCiBpbXBv
cnQgd2ViZHJpdmVyCiAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKLQogCiAiIiJXZWJEcml2
ZXIgd2lyZSBwcm90b2NvbCBjb2RlY3MuIiIiCiAKQEAgLTIyLDYgKzIwLDggQEAgY2xhc3MgRW5j
b2Rlcihqc29uLkpTT05FbmNvZGVyKToKICAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLkZy
YW1lLmlkZW50aWZpZXI6IG9iai5pZH0KICAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgd2Vi
ZHJpdmVyLldpbmRvdyk6CiAgICAgICAgICAgICByZXR1cm4ge3dlYmRyaXZlci5GcmFtZS5pZGVu
dGlmaWVyOiBvYmouaWR9CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIHdlYmRyaXZlci5T
aGFkb3dSb290KToKKyAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLlNoYWRvd1Jvb3QuaWRl
bnRpZmllcjogb2JqLmlkfQogICAgICAgICByZXR1cm4gc3VwZXIoRW5jb2Rlciwgc2VsZikuZGVm
YXVsdChvYmopCiAKIApAQCAtNDAsNiArNDAsOCBAQCBjbGFzcyBEZWNvZGVyKGpzb24uSlNPTkRl
Y29kZXIpOgogICAgICAgICAgICAgcmV0dXJuIHdlYmRyaXZlci5GcmFtZS5mcm9tX2pzb24ocGF5
bG9hZCwgc2VsZi5zZXNzaW9uKQogICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgZGlj
dCkgYW5kIHdlYmRyaXZlci5XaW5kb3cuaWRlbnRpZmllciBpbiBwYXlsb2FkOgogICAgICAgICAg
ICAgcmV0dXJuIHdlYmRyaXZlci5XaW5kb3cuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lv
bikKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpIGFuZCB3ZWJkcml2ZXIu
U2hhZG93Um9vdC5pZGVudGlmaWVyIGluIHBheWxvYWQ6CisgICAgICAgICAgICByZXR1cm4gd2Vi
ZHJpdmVyLlNoYWRvd1Jvb3QuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lvbikKICAgICAg
ICAgZWxpZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpOgotICAgICAgICAgICAgcmV0dXJuIHtr
OiBzZWxmLm9iamVjdF9ob29rKHYpIGZvciBrLCB2IGluIGl0ZXJpdGVtcyhwYXlsb2FkKX0KKyAg
ICAgICAgICAgIHJldHVybiB7azogc2VsZi5vYmplY3RfaG9vayh2KSBmb3IgaywgdiBpbiBwYXls
b2FkLml0ZW1zKCl9CiAgICAgICAgIHJldHVybiBwYXlsb2FkCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci90cmFuc3BvcnQucHkKaW5kZXggZTgzNmIxOWExNThkLi41YTFjZTI4OWVjMDkgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L3RyYW5zcG9ydC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2Vi
ZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKQEAgLTEsMTAgKzEsOSBAQAogaW1wb3J0IGpz
b24KIGltcG9ydCBzZWxlY3QKIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZSwgUFkzCi1mcm9t
IHNpeC5tb3Zlcy5jb2xsZWN0aW9uc19hYmMgaW1wb3J0IE1hcHBpbmcKLWZyb20gc2l4Lm1vdmVz
Lmh0dHBfY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgotZnJvbSBzaXgubW92ZXMudXJsbGli
IGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENv
bm5lY3Rpb24KK2Zyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBNYXBwaW5nLCBTZXF1ZW5j
ZSwgVHVwbGUKK2Zyb20gdXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQogCiBmcm9tIC4g
aW1wb3J0IGVycm9yCiAKQEAgLTE0LDcgKzEzLDcgQEAgZnJvbSAuIGltcG9ydCBlcnJvcgogbWlz
c2luZyA9IG9iamVjdCgpCiAKIAotY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmcpOgorY2xh
c3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmdbc3RyLCBzdHJdKToKICAgICAiIiJSZWFkLW9ubHkg
ZGljdGlvbmFyeS1saWtlIEFQSSBmb3IgYWNjZXNzaW5nIHJlc3BvbnNlIGhlYWRlcnMuCiAKICAg
ICBUaGlzIGNsYXNzOgpAQCAtMjMsMTEgKzIyLDkgQEAgY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1h
cHBpbmcpOgogICAgICAgKiBIYXMgY2FzZS1pbnNlbnNpdGl2ZSBoZWFkZXIgbG9va3VwLgogICAg
ICAgKiBBbHdheXMgcmV0dXJucyBhbGwgaGVhZGVyIHZhbHVlcyB0aGF0IGhhdmUgdGhlIHNhbWUg
bmFtZSwgc2VwYXJhdGVkIGJ5CiAgICAgICAgIGNvbW1hcy4KLQotICAgIEl0IGRvZXMgbm90IGVu
c3VyZSBoZWFkZXIgdHlwZXMgKGUuZy4gYmluYXJ5IHZzIHN0cmluZykuCiAgICAgIiIiCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW1zKToKLSAgICAgICAgc2VsZi5oZWFkZXJzX2RpY3QgPSB7
fQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpdGVtczogU2VxdWVuY2VbVHVwbGVbc3RyLCBzdHJd
XSk6CisgICAgICAgIHNlbGYuaGVhZGVyc19kaWN0OiBEaWN0W3N0ciwgTGlzdFtzdHJdXSA9IHt9
CiAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZW1zOgogICAgICAgICAgICAga2V5ID0ga2V5
Lmxvd2VyKCkKICAgICAgICAgICAgIGlmIGtleSBub3QgaW4gc2VsZi5oZWFkZXJzX2RpY3Q6CkBA
IC0xNDUsMTUgKzE0MiwxOCBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAgICAg
ZGVmIGNsb3NlKHNlbGYpOgogICAgICAgICAiIiJDbG9zZXMgdGhlIGN1cnJlbnQgSFRUUCBjb25u
ZWN0aW9uLCBpZiB0aGVyZSBpcyBvbmUuIiIiCiAgICAgICAgIGlmIHNlbGYuX2Nvbm46Ci0gICAg
ICAgICAgICBzZWxmLl9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICBzZWxmLl9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAg
ICAgICAgICAgICAgICMgVGhlIHJlbW90ZSBjbG9zZWQgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuX2Nvbm4gPSBOb25lCiAKICAgICBAcHJvcGVydHkK
ICAgICBkZWYgY29ubmVjdGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0cyB0aGUgY3VycmVudCBI
VFRQIGNvbm5lY3Rpb24sIG9yIGxhemlseSBjcmVhdGVzIG9uZS4iIiIKICAgICAgICAgaWYgbm90
IHNlbGYuX2Nvbm46CiAgICAgICAgICAgICBjb25uX2t3YXJncyA9IHt9Ci0gICAgICAgICAgICBp
ZiBub3QgUFkzOgotICAgICAgICAgICAgICAgIGNvbm5fa3dhcmdzWyJzdHJpY3QiXSA9IFRydWUK
ICAgICAgICAgICAgICMgV2UgYXJlIG5vdCBzZXR0aW5nIGFuIEhUVFAgdGltZW91dCBvdGhlciB0
aGFuIHRoZSBkZWZhdWx0IHdoZW4gdGhlCiAgICAgICAgICAgICAjIGNvbm5lY3Rpb24gaXRzIGNy
ZWF0ZWQuIFRoZSBzZW5kIG1ldGhvZCBoYXMgYSB0aW1lb3V0IHZhbHVlIGlmIG5lZWRlZC4KICAg
ICAgICAgICAgIHNlbGYuX2Nvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxmLmhvc3QsIHNlbGYucG9y
dCwgKipjb25uX2t3YXJncykKQEAgLTIzNSw3ICsyMzUsNyBAQCBjbGFzcyBIVFRQV2lyZVByb3Rv
Y29sKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2Us
IGRlY29kZXI9ZGVjb2RlciwgKipjb2RlY19rd2FyZ3MpCiAKICAgICBkZWYgX3JlcXVlc3Qoc2Vs
ZiwgbWV0aG9kLCB1cmksIHBheWxvYWQsIGhlYWRlcnM9Tm9uZSwgdGltZW91dD1Ob25lKToKLSAg
ICAgICAgaWYgaXNpbnN0YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2lu
c3RhbmNlKHBheWxvYWQsIHN0cik6CiAgICAgICAgICAgICBwYXlsb2FkID0gcGF5bG9hZC5lbmNv
ZGUoInV0Zi04IikKIAogICAgICAgICBpZiBoZWFkZXJzIGlzIE5vbmU6CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKaW5k
ZXggMGFkZjBhOTRiMTVkLi40YTA3OWM3MjViZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKQEAgLTYsNyArNiw2
IEBAIHdwdHJ1bm5lciBpcyBhIGhhcm5lc3MgZm9yIHJ1bm5pbmcgdGhlIFczQyBgd2ViLXBsYXRm
b3JtLXRlc3RzIHRlc3RzdWl0ZWBfLgogLi4gdG9jdHJlZTo6CiAgICA6bWF4ZGVwdGg6IDIKIAot
ICAgZG9jcy91c2FnZQogICAgZG9jcy9leHBlY3RhdGlvbgogICAgZG9jcy9kZXNpZ24KICAgIGRv
Y3MvaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL2RvY3MvdXNhZ2UucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODVmZDk3YmY2YzEyLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdAorKysgL2Rldi9udWxsCkBA
IC0xLDI0MiArMCwwIEBACi1HZXR0aW5nIFN0YXJ0ZWQKLT09PT09PT09PT09PT09PQotCi1JbnN0
YWxsaW5nIHdwdHJ1bm5lcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIGVhc2llc3Qgd2F5
IHRvIGluc3RhbGwgd3B0cnVubmVyIGlzIGludG8gYSB2aXJ0dWFsZW52LCB1c2luZyBwaXA6Ogot
Ci0gIHZpcnR1YWxlbnYgd3B0cnVubmVyCi0gIGNkIHdwdHJ1bm5lcgotICBzb3VyY2UgYmluL2Fj
dGl2YXRlCi0gIHBpcCBpbnN0YWxsIHdwdHJ1bm5lcgotCi1UaGlzIHdpbGwgaW5zdGFsbCB0aGUg
YmFzZSBkZXBlbmRlbmNpZXMgZm9yIHdwdHJ1bm5lciwgYnV0IG5vdCBhbnkKLWV4dHJhIGRlcGVu
ZGVuY2llcyByZXF1aXJlZCB0byB0ZXN0IGFnYWluc3Qgc3BlY2lmaWMgYnJvd3NlcnMuIEluCi1v
cmRlciB0byBkbyB0aGlzIHlvdSBtdXN0IHVzZSB1c2UgdGhlIGV4dHJhIHJlcXVpcmVtZW50cyBm
aWxlcyBpbgotYGAkVklSVFVBTF9FTlYvcmVxdWlyZW1lbnRzL3JlcXVpcmVtZW50c19icm93c2Vy
LnR4dGBgLiBGb3IgZXhhbXBsZSwKLWluIG9yZGVyIHRvIHRlc3QgYWdhaW5zdCBGaXJlZm94IHlv
dSB3b3VsZCBoYXZlIHRvIHJ1bjo6Ci0KLSAgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzL3Jl
cXVpcmVtZW50c19maXJlZm94LnR4dAotCi1JZiB5b3UgaW50ZW5kIHRvIHdvcmsgb24gdGhlIGNv
ZGUsIHRoZSBgYC1lYGAgb3B0aW9uIHRvIHBpcCBzaG91bGQgYmUKLXVzZWQgaW4gY29tYmluYXRp
b24gd2l0aCBhIHNvdXJjZSBjaGVja291dCBpLmUuIGluc2lkZSBhIHZpcnR1YWwKLWVudmlyb25t
ZW50IGNyZWF0ZWQgYXMgYWJvdmU6OgotCi0gIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dwdHJ1bm5lci5naXQKLSAgY2Qgd3B0cnVubmVyCi0gIHBpcCBpbnN0YWxsIC1lIC4vCi0K
LUluIGFkZGl0aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMgaW5zdGFsbGVkIGJ5IHBpcCwgd3B0cnVu
bmVyIHJlcXVpcmVzCi1hIGNvcHkgb2YgdGhlIHdlYi1wbGF0Zm9ybS10ZXN0cyByZXBvc2l0b3J5
LiBUaGlzIGNhbiBiZSBsb2NhdGVkCi1hbnl3aGVyZSBvbiB0aGUgZmlsZXN5c3RlbSwgYnV0IHRo
ZSBlYXNpZXN0IG9wdGlvbiBpcyB0byBwdXQgaXQKLXVuZGVyIHRoZSBzYW1lIHBhcmVudCBkaXJl
Y3RvcnkgYXMgdGhlIHdwdHJ1bm5lciBjaGVja291dDo6Ci0KLSAgZ2l0IGNsb25lIGh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotCi1JdCBpcyBhbHNvIG5lY2Vz
c2FyeSB0byBnZW5lcmF0ZSBhIHdlYi1wbGF0Zm9ybS10ZXN0cyBgYE1BTklGRVNULmpzb25gYAot
ZmlsZS4gSXQncyByZWNvbW1lbmRlZCB0byBhbHNvIHB1dCB0aGF0IHVuZGVyIHRoZSBzYW1lIHBh
cmVudCBkaXJlY3RvcnkgYXMKLXRoZSB3cHRydW5uZXIgY2hlY2tvdXQsIGluIGEgZGlyZWN0b3J5
IG5hbWVkIGBgbWV0YWBgOjoKLQotICBta2RpciBtZXRhCi0gIGNkIHdlYi1wbGF0Zm9ybS10ZXN0
cwotICBweXRob24gbWFuaWZlc3QgLS1wYXRoIC4uL21ldGEvTUFOSUZFU1QuanNvbgotCi1UaGUg
YGBNQU5JRkVTVC5qc29uYGAgZmlsZSBuZWVkcyB0byBiZSByZWdlbmVyYXRlZCBlYWNoIHRpbWUg
dGhlCi13ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQgaXMgdXBkYXRlZC4gVG8gYWlkIHdpdGgg
dGhlIHVwZGF0ZSBwcm9jZXNzCi10aGVyZSBpcyBhIHRvb2wgY2FsbGVkIGBgd3B0dXBkYXRlYGAs
IHdoaWNoIGlzIGRlc2NyaWJlZCBpbgotOnJlZjpgd3B0dXBkYXRlLWxhYmVsYC4KLQotUnVubmlu
ZyB0aGUgVGVzdHMKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUEgdGVzdCBydW4gaXMgc3RhcnRlZCB1
c2luZyB0aGUgYGB3cHRydW5uZXJgYCBjb21tYW5kLiAgVGhlIGNvbW1hbmQKLXRha2VzIG11bHRp
cGxlIG9wdGlvbnMsIG9mIHdoaWNoIHRoZSBmb2xsb3dpbmcgYXJlIG1vc3Qgc2lnbmlmaWNhbnQ6
Ci0KLWBgLS1wcm9kdWN0YGAgKGRlZmF1bHRzIHRvIGBmaXJlZm94YCkKLSAgVGhlIHByb2R1Y3Qg
dG8gdGVzdCBhZ2FpbnN0OiBgY2hyb21lYCwgYGZpcmVmb3hgLCBvciBgc2Vydm9gLgotCi1gYC0t
YmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIG9yIGBzZXJ2b2ApCi0g
IFRoZSBwYXRoIHRvIGEgYmluYXJ5IGZpbGUgZm9yIHRoZSBwcm9kdWN0IChicm93c2VyKSB0byB0
ZXN0IGFnYWluc3QuCi0KLWBgLS13ZWJkcml2ZXItYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1
Y3QgaXMgYGNocm9tZWApCi0gIFRoZSBwYXRoIHRvIGEgYCpkcml2ZXJgIGJpbmFyeTsgZS5nLiwg
YSBgY2hyb21lZHJpdmVyYCBiaW5hcnkuCi0KLWBgLS1jZXJ0dXRpbC1iaW5hcnlgYCAocmVxdWly
ZWQgaWYgcHJvZHVjdCBpcyBgZmlyZWZveGAgWyNdXykKLSAgVGhlIHBhdGggdG8gYSBgY2VydHV0
aWxgIGJpbmFyeSAoZm9yIHRlc3RzIHRoYXQgbXVzdCBiZSBydW4gb3ZlciBodHRwcykuCi0KLWBg
LS1tZXRhZGF0YWBgIChyZXF1aXJlZCBvbmx5IHdoZW4gbm90IGB1c2luZyBkZWZhdWx0IHBhdGhz
YF8pCi0gIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGVzdCBtZXRhZGF0YS4g
WyNdXwotCi1gYC0tdGVzdHNgYCAocmVxdWlyZWQgb25seSB3aGVuIG5vdCBgdXNpbmcgZGVmYXVs
dCBwYXRoc2BfKQotICBUaGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgd2ViLXBs
YXRmb3JtLXRlc3RzIGNoZWNrb3V0LgotCi1gYC0tcHJlZnMtcm9vdGBgIChyZXF1aXJlZCBvbmx5
IHdoZW4gdGVzdGluZyBhIEZpcmVmb3ggYmluYXJ5KQotICBUaGUgcGF0aCB0byBhIGRpcmVjdG9y
eSBjb250YWluaW5nIEZpcmVmb3ggdGVzdC1oYXJuZXNzIHByZWZlcmVuY2VzLiBbI11fCi0KLWBg
LS1jb25maWdgYCAoc2hvdWxkIGRlZmF1bHQgdG8gYHdwdHJ1bm5lci5kZWZhdWx0LmluaWApCi0g
IFRoZSBwYXRoIHRvIHRoZSBjb25maWcgKGluaSkgZmlsZS4KLQotLi4gWyNdIFRoZSBgYC0tY2Vy
dHV0aWwtYmluYXJ5YGAgb3B0aW9uIGlzIHJlcXVpcmVkIHdoZW4gdGhlIHByb2R1Y3QgaXMKLSAg
IGBgZmlyZWZveGBgIHVubGVzcyBgYC0tc3NsLXR5cGU9bm9uZWBgIGlzIHNwZWNpZmllZC4KLQot
Li4gWyNdIFRoZSBgYC0tbWV0YWRhdGFgYCBwYXRoIGlzIHRvIGEgZGlyZWN0b3J5IHRoYXQgY29u
dGFpbnM6Ci0KLSAgKiBhIGBgTUFOSUZFU1QuanNvbmBgIGZpbGUgKHRoZSB3ZWItcGxhdGZvcm0t
dGVzdHMgZG9jdW1lbnRhdGlvbiBoYXMKLSAgICBpbnN0cnVjdGlvbnMgb24gZ2VuZXJhdGluZyB0
aGlzIGZpbGUpCi0gICogKG9wdGlvbmFsbHkpIGFueSBleHBlY3RhdGlvbiBmaWxlcyAoc2VlIDpy
ZWY6YHdwdHVwZGF0ZS1sYWJlbGApCi0KLS4uIFsjXSBFeGFtcGxlIGBgLS1wcmVmcy1yb290YGAg
dmFsdWU6IGBgfi9tb3ppbGxhLWNlbnRyYWwvdGVzdGluZy9wcm9maWxlc2BgLgotCi1UaGVyZSBh
cmUgYWxzbyBhIHZhcmlldHkgb2Ygb3RoZXIgY29tbWFuZC1saW5lIG9wdGlvbnMgYXZhaWxhYmxl
OyB1c2UKLWBgLS1oZWxwYGAgdG8gbGlzdCB0aGVtLgotCi1UaGUgZm9sbG93aW5nIGV4YW1wbGVz
IHNob3cgaG93IHRvIHN0YXJ0IHdwdHJ1bm5lciB3aXRoIHZhcmlvdXMgb3B0aW9ucy4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tCi1TdGFydGluZyB3cHRydW5uZXIKLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci1UaGUgZXhhbXBsZXMgYmVsb3cgYXNzdW1lIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3J5IGxheW91
dCwKLXRob3VnaCBubyBzcGVjaWZpYyBmb2xkZXIgc3RydWN0dXJlIGlzIHJlcXVpcmVkOjoKLQot
ICB+L3Rlc3R0d2Yvd3B0cnVubmVyICAgICAgICAgICMgd3B0cnVubmVyIGNoZWNrb3V0Ci0gIH4v
dGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVzdHMgIyB3ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQK
LSAgfi90ZXN0dHdmL21ldGEgICAgICAgICAgICAgICAjIG1ldGFkYXRhCi0KLVRvIHRlc3QgYSBG
aXJlZm94IE5pZ2h0bHkgYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVudCwgeW91IG1pZ2h0IHN0
YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyBl
eGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3Rlc3R0d2YvbWV0YS8gLS10ZXN0
cz1+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRlc3RzLyBcCi0gICAgLS1iaW5hcnk9fi9tb3ppbGxh
LWNlbnRyYWwvb2JqLXg4Nl82NC1hcHBsZS1kYXJ3aW4xNC4zLjAvZGlzdC9OaWdodGx5LmFwcC9D
b250ZW50cy9NYWNPUy9maXJlZm94IFwKLSAgICAtLWNlcnR1dGlsLWJpbmFyeT1+L21vemlsbGEt
Y2VudHJhbC9vYmoteDg2XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9zZWN1cml0eS9uc3MvY21kL2Nl
cnR1dGlsL2NlcnR1dGlsIFwKLSAgICAtLXByZWZzLXJvb3Q9fi9tb3ppbGxhLWNlbnRyYWwvdGVz
dGluZy9wcm9maWxlcwotCi0KLUFuZCB0byB0ZXN0IGEgQ2hyb21pdW0gYnVpbGQgaW4gYW4gT1Mg
WCBlbnZpcm9ubWVudCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5n
IHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRh
ZGF0YT1+L3Rlc3R0d2YvbWV0YS8gLS10ZXN0cz1+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRlc3Rz
LyBcCi0gICAgLS1iaW5hcnk9fi9jaHJvbWl1bS9zcmMvb3V0L1JlbGVhc2UvQ2hyb21pdW0uYXBw
L0NvbnRlbnRzL01hY09TL0Nocm9taXVtIFwKLSAgICAtLXdlYmRyaXZlci1iaW5hcnk9L3Vzci9s
b2NhbC9iaW4vY2hyb21lZHJpdmVyIC0tcHJvZHVjdD1jaHJvbWUKLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVJ1bm5pbmcgdGVzdCBzdWJzZXRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBy
ZXN0cmljdCBhIHRlc3QgcnVuIGp1c3QgdG8gdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIHdlYi1wbGF0
Zm9ybS10ZXN0cwotc3ViZGlyZWN0b3J5LCBzcGVjaWZ5IHRoZSBkaXJlY3RvcnkgbmFtZSBpbiB0
aGUgcG9zaXRpb25hbCBhcmd1bWVudHMgYWZ0ZXIKLXRoZSBvcHRpb25zOyBmb3IgZXhhbXBsZSwg
cnVuIGp1c3QgdGhlIHRlc3RzIGluIHRoZSBgZG9tYCBzdWJkaXJlY3Rvcnk6OgotCi0gIHdwdHJ1
bm5lciAtLW1ldGFkYXRhPX4vdGVzdHR3Zi9tZXRhIC0tdGVzdHM9fi90ZXN0dHdmL3dlYi1wbGF0
Zm9ybS10ZXN0cy8gXAotICAgIC0tYmluYXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1i
aW5hcnk9L3BhdGgvdG8vY2VydHV0aWwgXAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0
aW5nL3Byb2ZpbGVzIFwKLSAgICBkb20KLQotLS0tLS0tLS0tLS0tLS0tLS0tLQotUnVubmluZyBp
biBwYXJhbGxlbAotLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBzcGVlZCB1cCB0aGUgdGVzdGlu
ZyBwcm9jZXNzLCB1c2UgdGhlIGBgLS1wcm9jZXNzZXNgYCBvcHRpb24gdG8gaGF2ZQotd3B0cnVu
bmVyIHJ1biBtdWx0aXBsZSBicm93c2VyIGluc3RhbmNlcyBpbiBwYXJhbGxlbC4gRm9yIGV4YW1w
bGUsIHRvCi1oYXZlIHdwdHJ1bm5lciBhdHRlbXB0IHRvIHJ1biB0ZXN0cyBhZ2FpbnN0IHdpdGgg
c2l4IGJyb3dzZXIgaW5zdGFuY2VzCi1pbiBwYXJhbGxlbCwgc3BlY2lmeSBgYC0tcHJvY2Vzc2Vz
PTZgYC4gQnV0IG5vdGUgdGhhdCBiZWhhdmlvdXIgaW4gdGhpcwotbW9kZSBpcyBuZWNlc3Nhcmls
eSBsZXNzIGRldGVybWluaXN0aWMgdGhhbiB3aXRoIGBgLS1wcm9jZXNzZXM9MWBgICh0aGUKLWRl
ZmF1bHQpLCBzbyB0aGVyZSBtYXkgYmUgbW9yZSBub2lzZSBpbiB0aGUgdGVzdCByZXN1bHRzLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Vc2luZyBkZWZhdWx0IHBhdGhzCi0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0KLVRoZSAob3RoZXJ3aXNlLXJlcXVpcmVkKSBgYC0tdGVzdHNgYCBhbmQgYGAtLW1l
dGFkYXRhYGAgY29tbWFuZC1saW5lCi1vcHRpb25zL2ZsYWdzIGJlIG9taXR0ZWQgaWYgYW55IGNv
bmZpZ3VyYXRpb24gZmlsZSBpcyBmb3VuZCB0aGF0Ci1jb250YWlucyBhIHNlY3Rpb24gc3BlY2lm
eWluZyB0aGUgYGB0ZXN0c2BgIGFuZCBgYG1ldGFkYXRhYGAga2V5cy4KLQotU2VlIHRoZSBgQ29u
ZmlndXJhdGlvbiBGaWxlYF8gc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAotY29u
ZmlndXJhdGlvbiBmaWxlcywgaW5jbHVkaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIGV4cGVj
dGVkCi1sb2NhdGlvbnMuCi0KLVRoZSBjb250ZW50IG9mIHRoZSBgYHdwdHJ1bm5lci5kZWZhdWx0
LmluaWBgIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlCi1tYWtlcyB3cHRydW5uZXIgbG9vayBm
b3IgdGVzdHMgKHRoYXQgaXMsIGEgd2ViLXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0KQotYXMgYSBz
dWJkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG5hbWVkIGBgdGVzdHNgYCwgYW5k
IGZvcgotbWV0YWRhdGEgZmlsZXMgaW4gYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgZGly
ZWN0b3J5IG5hbWVkIGBgbWV0YWBgLgotCi1PdXRwdXQKLS0tLS0tLQotCi13cHRydW5uZXIgdXNl
cyBgdGhlIG1vemxvZyBwYWNrYWdlCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemls
bGEub3JnL21vemJhc2UvbW96bG9nLmh0bWw+YF8pIGZvcgotb3V0cHV0LiBUaGlzIHN0cnVjdHVy
ZXMgZXZlbnRzIHN1Y2ggYXMgdGVzdCByZXN1bHRzIG9yIGxvZyBtZXNzYWdlcyBhcwotSlNPTiBv
YmplY3RzIHRoYXQgY2FuIHRoZW4gYmUgZmVkIHRvIG90aGVyIHRvb2xzIGZvcgotaW50ZXJwcmV0
YXRpb24uIE1vcmUgZGV0YWlscyBhYm91dCB0aGUgbWVzc2FnZSBmb3JtYXQgYXJlIGdpdmVuIGlu
Ci1gdGhlIG1vemxvZyBkb2N1bWVudGF0aW9uCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2Nz
Lm1vemlsbGEub3JnL21vemJhc2UvbW96bG9nLmh0bWw+YF8uCi0KLUJ5IGRlZmF1bHQgdGhlIHJh
dyBKU09OIG1lc3NhZ2VzIGFyZSBkdW1wZWQgdG8gc3Rkb3V0LiBUaGlzIGlzCi1jb252ZW5pZW50
IGZvciBwaXBpbmcgaW50byBvdGhlciB0b29scywgYnV0IG5vdCBpZGVhbCBmb3IgaHVtYW5zCi1y
ZWFkaW5nIHRoZSBvdXRwdXQuIGBtb3psb2cKLTxodHRwczovL2ZpcmVmb3gtc291cmNlLWRvY3Mu
bW96aWxsYS5vcmcvbW96YmFzZS9tb3psb2cuaHRtbD5gXyBjb21lcwotd2l0aCBzZXZlcmFsIG90
aGVyIGZvcm1hdHRlcnMsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggY29tbWFuZAotbGlu
ZSBvcHRpb25zLiBUaGUgZ2VuZXJhbCBmb3JtYXQgb2YgdGhlc2Ugb3B0aW9ucyBpcwotYGAtLWxv
Zy1uYW1lPWRlc3RgYCwgd2hlcmUgYGBuYW1lYGAgaXMgdGhlIG5hbWUgb2YgdGhlIGZvcm1hdCBh
bmQKLWBgZGVzdGBgIGlzIGEgcGF0aCB0byBhIGRlc3RpbmF0aW9uIGZpbGUsIG9yIGBgLWBgIGZv
ciBzdGRvdXQuIFRoZSByYXcKLUpTT04gZGF0YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2BgIGZv
cm1hdHRlciBzbywgdGhlIGRlZmF1bHQgc2V0dXAKLWNvcnJlc3BvbmRzIHRvIGBgLS1sb2ctcmF3
PS1gYC4KLQotQSByZWFzb25hYmxlIG91dHB1dCBmb3JtYXQgZm9yIGh1bWFucyBpcyBwcm92aWRl
ZCBhcyBgYG1hY2hgYC4gU28gaW4KLW9yZGVyIHRvIG91dHB1dCB0aGUgZnVsbCByYXcgbG9nIHRv
IGEgZmlsZSBhbmQgYSBodW1hbi1yZWFkYWJsZQotc3VtbWFyeSB0byBzdGRvdXQsIG9uZSBtaWdo
dCBwYXNzIHRoZSBvcHRpb25zOjoKLQotICAtLWxvZy1yYXc9b3V0cHV0LmxvZyAtLWxvZy1tYWNo
PS0KLQotQ29uZmlndXJhdGlvbiBGaWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQotd3B0cnVubmVy
IHVzZXMgYSBgYC5pbmlgYCBmaWxlIHRvIGNvbnRyb2wgc29tZSBjb25maWd1cmF0aW9uCi1zZWN0
aW9ucy4gVGhlIGZpbGUgaGFzIHRocmVlIHNlY3Rpb25zOyBgYFtwcm9kdWN0c11gYCwKLWBgW21h
bmlmZXN0OmRlZmF1bHRdYGAgYW5kIGBgW3dlYi1wbGF0Zm9ybS10ZXN0c11gYC4KLQotYGBbcHJv
ZHVjdHNdYGAgaXMgdXNlZCB0bwotZGVmaW5lIHRoZSBzZXQgb2YgYXZhaWxhYmxlIHByb2R1Y3Rz
LiBCeSBkZWZhdWx0IHRoaXMgc2VjdGlvbiBpcyBlbXB0eQotd2hpY2ggbWVhbnMgdGhhdCBhbGwg
dGhlIHByb2R1Y3RzIGRpc3RyaWJ1dGVkIHdpdGggd3B0cnVubmVyIGFyZQotZW5hYmxlZCAoYWx0
aG91Z2ggdGhlaXIgZGVwZW5kZW5jaWVzIG1heSBub3QgYmUgaW5zdGFsbGVkKS4gVGhlIHNldAot
b2YgZW5hYmxlZCBwcm9kdWN0cyBjYW4gYmUgc2V0IGJ5IHVzaW5nIHRoZSBwcm9kdWN0IG5hbWUg
YXMgdGhlCi1rZXkuIEZvciBidWlsdCBpbiBwcm9kdWN0cyB0aGUgdmFsdWUgaXMgZW1wdHkuIEl0
IGlzIGFsc28gcG9zc2libGUgdG8KLXByb3ZpZGUgdGhlIHBhdGggdG8gYSBzY3JpcHQgaW1wbGVt
ZW50aW5nIHRoZSBicm93c2VyIGZ1bmN0aW9uYWxpdHkKLWUuZy46OgotCi0gIFtwcm9kdWN0c10K
LSAgY2hyb21lID0KLSAgbmV0c2NhcGU0ID0gcGF0aC90by9uZXRzY2FwZS5weQotCi1gYFttYW5p
ZmVzdDpkZWZhdWx0XWBgIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBwYXRocyBmb3IgdGhlIHRlc3Rz
IGFuZCBtZXRhZGF0YSwKLXJlbGF0aXZlIHRvIHRoZSBjb25maWcgZmlsZS4gRm9yIGV4YW1wbGU6
OgotCi0gIFttYW5pZmVzdDpkZWZhdWx0XQotICB0ZXN0cyA9IH4vdGVzdHR3Zi93ZWItcGxhdGZv
cm0tdGVzdHMKLSAgbWV0YWRhdGEgPSB+L3Rlc3R0d2YvbWV0YQotCi0KLWBgW3dlYi1wbGF0Zm9y
bS10ZXN0c11gYCBpcyB1c2VkIHRvIHNldCB0aGUgcHJvcGVydGllcyBvZiB0aGUgdXBzdHJlYW0K
LXJlcG9zaXRvcnkgd2hlbiB1cGRhdGluZyB0aGUgcGF0aHMuIGBgcmVtb3RlX3VybGBgIHNwZWNp
ZmllcyB0aGUgZ2l0Ci11cmwgdG8gcHVsbCBmcm9tOyBgYGJyYW5jaGBgIHRoZSBicmFuY2ggdG8g
c3luYyBhZ2FpbnN0IGFuZAotYGBzeW5jX3BhdGhgYCB0aGUgbG9jYWwgcGF0aCwgcmVsYXRpdmUg
dG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgdG8KLXVzZSB3aGVuIGNoZWNraW5nIG91dCB0aGUg
dGVzdHMgZS5nLjo6Ci0KLSAgW3dlYi1wbGF0Zm9ybS10ZXN0c10KLSAgcmVtb3RlX3VybCA9IGh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotICBicmFuY2ggPSBt
YXN0ZXIKLSAgc3luY19wYXRoID0gc3luYwotCi1BIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0IGNv
bnRhaW4gYWxsIHRoZSBhYm92ZSBmaWVsZHM7IGZhbGxpbmcgYmFjawotdG8gdGhlIGRlZmF1bHQg
dmFsdWVzIGZvciB1bnNwZWNpZmllZCBmaWVsZHMgaXMgbm90IHlldCBzdXBwb3J0ZWQuCi0KLVRo
ZSBgYHdwdHJ1bm5lcmBgIGFuZCBgYHdwdHVwZGF0ZWBgIGNvbW1hbmRzIHdpbGwgdXNlIGNvbmZp
Z3VyYXRpb24KLWZpbGVzIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6Ci0KLSAqIEFueSBwYXRoIHN1
cHBsaWVkIHdpdGggYSBgYC0tY29uZmlnYGAgZmxhZyB0byB0aGUgY29tbWFuZC4KLQotICogQSBm
aWxlIGNhbGxlZCBgYHdwdHJ1bm5lci5pbmlgYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkKLQot
ICogVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIChgYHdwdHJ1bm5lci5kZWZhdWx0Lmlu
aWBgIGluIHRoZQotICAgc291cmNlIGRpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dApp
bmRleCAxZWJhMTE0YTMxYzIuLjgzNTZjNDc4NWRjMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4
dApAQCAtMSw5ICsxLDggQEAKIGh0bWw1bGliPT0xLjEKLW1vemluZm89PTEuMi4xICAjIGh0dHBz
Oi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKLW1vemxvZz09
Ni4xCi1tb3pkZWJ1Zz09MC4yCi0jIFBpbGxvdyA3IHJlcXVpcmVzIFB5dGhvbiAzCi1waWxsb3c9
PTYuMi4yICAjIHB5dXA6IDw3LjAKLXVybGxpYjNbc2VjdXJlXT09MS4yNS4xMAotcmVxdWVzdHM9
PTIuMjQuMAotc2l4PT0xLjE1LjAKK21vemluZm89PTEuMi4yICAjIGh0dHBzOi8vYnVnemlsbGEu
bW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKK21vemxvZz09Ny4xLjAKK21vemRl
YnVnPT0wLjMuMAorcGlsbG93PT04LjMuMQordXJsbGliM1tzZWN1cmVdPT0xLjI2LjYKK3JlcXVl
c3RzPT0yLjI1LjEKK3NpeD09MS4xNi4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21l
LnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21l
LnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19jaHJvbWUudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96
cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dCBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9h
bmRyb2lkLnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
Y2hyb21lX2FuZHJvaWQudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApAQCAtMSArMSBAQAot
bW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4
dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2VkZ2UudHh0CmluZGV4IDBhNjEyMDhkNzdjMS4uN2FkMDE4MGI4NTQ1IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19lZGdlLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9PTEu
Mi4wCittb3pwcm9jZXNzPT0xLjMuMAogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Zp
cmVmb3gudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9y
ZXF1aXJlbWVudHNfZmlyZWZveC50eHQKaW5kZXggOGI0NTcwM2E1NTk2Li42YmYyODBjNDdjOTIg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CkBAIC0xLDEwICsxLDEw
IEBACiBtYXJpb25ldHRlX2RyaXZlcj09My4xLjAKLW1vemNyYXNoPT0yLjAuMAotbW96aW5zdGFs
bD09Mi4wLjAKK21vemNyYXNoPT0yLjEuMAorbW96aW5zdGFsbD09Mi4wLjEKIG1vemxlYWs9PTAu
MgogbW96bmV0d29yaz09MS4xLjAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMu
MAogbW96cHJvZmlsZT09Mi41LjAKLW1venJ1bm5lcj09OC4wLjAKK21venJ1bm5lcj09OC4yLjEK
IG1venZlcnNpb249PTIuMy4wCi1wc3V0aWw9PTUuNy4yCitwc3V0aWw9PTUuOC4wCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19pZS50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19pZS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2llLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNz
PT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19vcGVyYS50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19vcGVyYS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX29wZXJhLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQKQEAgLTEsMiArMSwyIEBACi1t
b3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19zYWZhcmkudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjY1
Yjc2YWE4NWNjNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CkBAIC0x
ICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAorcHN1dGlsPT01
LjguMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CmluZGV4IDM0YzY2ZWUyMzhi
Ni4uZDFkMGY3ZTJiZWUyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CkBA
IC0xLDMgKzEsMyBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCiBzZWxl
bml1bT09My4xNDEuMAotcmVxdWVzdHM9PTIuMjQuMAorcmVxdWVzdHM9PTIuMjUuMQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfc2Vydm8udHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1NThh
NWRjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CkBAIC0xICsxIEBACi1t
b3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50
eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c193ZWJraXQudHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c193ZWJraXQudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9
PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvc2V0dXAucHkKaW5kZXggYTQ1OWUyYzQ3MTQxLi5jMjA5
NTU4NDhkYmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvc2V0dXAucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci9zZXR1cC5weQpAQCAtMiw4ICsyLDYgQEAKICMgTGljZW5zZSwgdi4gMi4wLiBJ
ZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBmaWxlLAog
IyBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLgogCi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0KIGltcG9ydCBnbG9iCiBpbXBv
cnQgb3MKIGltcG9ydCBzeXMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvdG94LmluaSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvdG94LmluaQppbmRleCA3OThmNjRhM2U0MjIuLmM0OWU3NTllYWQ4YyAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci90
b3guaW5pCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
dG94LmluaQpAQCAtMiwxNiArMiwxMiBAQAogeGZhaWxfc3RyaWN0PXRydWUKIAogW3RveF0KLWVu
dmxpc3QgPSBweTI3LXtiYXNlLGNocm9tZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2FmYXJpLHNh
dWNlLHNlcnZvLHdlYmtpdCx3ZWJraXRndGtfbWluaWJyb3dzZXIsZXBpcGhhbnl9LHtweTM1LHB5
MzYscHkzNyxweTM4fS1iYXNlCitlbnZsaXN0ID0gcHkzOS17YmFzZSxjaHJvbWUsZWRnZSxmaXJl
Zm94LGllLG9wZXJhLHNhZmFyaSxzYXVjZSxzZXJ2byx3ZWJraXQsd2Via2l0Z3RrX21pbmlicm93
c2VyLGVwaXBoYW55fSx7cHkzNixweTM3LHB5Mzh9LWJhc2UKIHNraXBfbWlzc2luZ19pbnRlcnBy
ZXRlcnMgPSBGYWxzZQogCiBbdGVzdGVudl0KIGRlcHMgPQotICAgICBweXRlc3Q+PTIuOQotICAg
ICBweXRlc3QtY292Ci0gICAgIHB5dGVzdC14ZGlzdAotICAgICAjIG1vY2sgbm8gbG9uZ2VyIHN1
cHBvcnRzIFB5dGhvbiAyIHNpbmNlIHY0Ci0gICAgIG1vY2s9PTMuKgorICAgICAtcnt0b3hpbmlk
aXJ9Ly4uL3JlcXVpcmVtZW50c19weXRlc3QudHh0CiAgICAgIC1ye3RveGluaWRpcn0vcmVxdWly
ZW1lbnRzLnR4dAogICAgICBjaHJvbWU6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2Nocm9t
ZS50eHQKICAgICAgZWRnZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZWRnZS50eHQKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxh
eWVyLnB5CmluZGV4IDYxMTA0NTBiNzI4Mi4uNGJkODcxZDFmYmQ1IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9hbmRyb2lkX3dlYmxheWVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKQEAg
LTEsOSArMSw4IEBACi1pbXBvcnQgc3VicHJvY2VzcwotCi1mcm9tIC5iYXNlIGltcG9ydCBCcm93
c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGltcG9ydCBnZXRf
dGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBOdWxs
QnJvd3NlciAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJv
bSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9t
IC5jaHJvbWUgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdz
Ci1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitmcm9t
IC5jaHJvbWVfYW5kcm9pZCBpbXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCiBmcm9tIC4u
ZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NF
eGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJvbSAu
LmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0
b3IgICMgbm9xYTogRjQwMQpAQCAtMTEsNyArMTAsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAx
CiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiYW5kcm9pZF93ZWJsYXllciIsCiAgICAg
ICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAg
ICAiYnJvd3NlciI6ICJXZWJsYXllclNoZWxsIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIi
OiB7Tm9uZTogIldlYmxheWVyU2hlbGwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsi
dGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Ii
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJX
ZHNwZWNFeGVjdXRvciJ9LApAQCAtMjgsMjMgKzI4LDI0IEBAIGRlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1k
ZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dh
cmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5h
cnkiXSwKICAgICAgICAgICAgICJkZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFs
Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2Jp
bmFyeSJdLAotICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJp
dmVyX2FyZ3MiKX0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndl
YmRyaXZlcl9hcmdzIiksCisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJncy5n
ZXQoInN0YWNrd2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBrd2Fy
Z3MuZ2V0KCJzeW1ib2xzX3BhdGgiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVj
dXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZv
X2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICAjIFVzZSB1cGRhdGUo
KSB0byBtb2RpZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNlLgogICAgIF93cHRzZXJ2ZV9wb3J0
cy51cGRhdGUoc2V0KAotICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwJ10gKyBz
ZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwcyddICsKLSAgICAgICAgc2VydmVyX2NvbmZpZ1sn
cG9ydHMnXVsnd3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzcyddCisgICAgICAgIHRl
c3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwJ10gKyB0ZXN0X2Vudmlyb25tZW50
LmNvbmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29u
ZmlnWydwb3J0cyddWyd3cyddICsgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ3dz
cyddCiAgICAgKSkKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9tZV9leGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICBleGVj
dXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0
ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZGVsIGV4ZWN1dG9yX2t3YXJnc1si
Y2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJdCiAgICAgY2FwYWJp
bGl0aWVzID0gZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXQpAQCAtNzQsNjEgKzc1LDIy
IEBAIGRlZiBlbnZfb3B0aW9ucygpOgogICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4w
LjAuMSJ9CiAKIAotI1RPRE86IHJlZmFjdG9yIGNvbW1vbiBlbGVtZW50cyBvZiBXZWJsYXllclNo
ZWxsIGFuZCBDaHJvbWVBbmRyb2lkQnJvd3NlcgotY2xhc3MgV2VibGF5ZXJTaGVsbChCcm93c2Vy
KToKK2NsYXNzIFdlYmxheWVyU2hlbGwoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKICAgICAi
IiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhy
b3VnaAogICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KICAg
ICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVy
X2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
aW5hcnksCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIs
CisgICAgICAgICAgICAgICAgIHJlbW90ZV9xdWV1ZT1Ob25lLAogICAgICAgICAgICAgICAgICBk
ZXZpY2Vfc2VyaWFsPU5vbmUsCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUp
OgorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAgICAg
ICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1O
b25lKToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUu
ICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKICAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5
IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBs
b2dnZXIpCisgICAgICAgIHN1cGVyKFdlYmxheWVyU2hlbGwsIHNlbGYpLl9faW5pdF9fKGxvZ2dl
ciwKKyAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVldWUsIGRldmlj
ZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNrd2Fsa19iaW5h
cnksIHN5bWJvbHNfcGF0aCkKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKLSAgICAgICAg
c2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAotICAgICAgICBzZWxmLnNlcnZlciA9
IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0gICAgICAg
IHNlbGYuc2V0dXBfYWRiX3JldmVyc2UoKQotCi0gICAgZGVmIF9hZGJfcnVuKHNlbGYsIGFyZ3Mp
OgotICAgICAgICBjbWQgPSBbJ2FkYiddCi0gICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoK
LSAgICAgICAgICAgIGNtZC5leHRlbmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCi0gICAg
ICAgIGNtZC5leHRlbmQoYXJncykKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnICcuam9pbihj
bWQpKQotICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kKQotCi0gICAgZGVmIHNldHVw
X2FkYl9yZXZlcnNlKHNlbGYpOgotICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2FpdC1mb3ItZGV2
aWNlJ10pCi0gICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCdd
KQotICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKLSAg
ICAgICAgIyAiYWRiIHJldmVyc2UiIGJhc2ljYWxseSBmb3J3YXJkcyBuZXR3b3JrIGNvbm5lY3Rp
b24gZnJvbSBkZXZpY2UgdG8KLSAgICAgICAgIyBob3N0LgotICAgICAgICBmb3IgcG9ydCBpbiBf
d3B0c2VydmVfcG9ydHM6Ci0gICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICd0
Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKLQotICAgIGRlZiBzdGFydChzZWxmLCAq
Kmt3YXJncyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQotCi0gICAg
ZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZv
cmNlPWZvcmNlKQotCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2Vy
dmVyLnBpZAotCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTog
VGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBk
b2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAg
ICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQot
Ci0gICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0gICAgICAgIHNl
bGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICBzZWxmLl9h
ZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKLQotICAgIGRlZiBleGVjdXRvcl9i
cm93c2VyKHNlbGYpOgotICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZl
cl91cmwiOiBzZWxmLnNlcnZlci51cmx9CisgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0g
X3dwdHNlcnZlX3BvcnRzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5w
eQppbmRleCA5OWY2ZTVjZmY0YzguLjI4MmUyZDdhZDVlZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFz
ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CkBAIC0xLDM0ICsxLDE0IEBACitpbXBvcnQgZW51bQog
aW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzb2NrZXQKIGZyb20gYWJjIGltcG9y
dCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAotZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQotZnJv
bSBzaXggaW1wb3J0IGl0ZXJpdGVtcwogCiBmcm9tIC4ud3B0Y29tbWFuZGxpbmUgaW1wb3J0IHJl
cXVpcmVfYXJnICAjIG5vcWE6IEY0MDEKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XykKIAogCi1kZWYgaW5oZXJpdChzdXBlcl9tb2R1bGUsIGNoaWxkX2dsb2JhbHMsIHByb2R1Y3Rf
bmFtZSk6Ci0gICAgc3VwZXJfd3B0cnVubmVyID0gc3VwZXJfbW9kdWxlLl9fd3B0cnVubmVyX18K
LSAgICBjaGlsZF9nbG9iYWxzWyJfX3dwdHJ1bm5lcl9fIl0gPSBjaGlsZF93cHRydW5uZXIgPSBk
ZWVwY29weShzdXBlcl93cHRydW5uZXIpCi0KLSAgICBjaGlsZF93cHRydW5uZXJbInByb2R1Y3Qi
XSA9IHByb2R1Y3RfbmFtZQotCi0gICAgZm9yIGsgaW4gKCJjaGVja19hcmdzIiwgImJyb3dzZXIi
LCAiYnJvd3Nlcl9rd2FyZ3MiLCAiZXhlY3V0b3Jfa3dhcmdzIiwKLSAgICAgICAgICAgICAgImVu
dl9leHRyYXMiLCAiZW52X29wdGlvbnMiLCAidGltZW91dF9tdWx0aXBsaWVyIik6Ci0gICAgICAg
IGF0dHIgPSBzdXBlcl93cHRydW5uZXJba10KLSAgICAgICAgY2hpbGRfZ2xvYmFsc1thdHRyXSA9
IGdldGF0dHIoc3VwZXJfbW9kdWxlLCBhdHRyKQotCi0gICAgZm9yIHYgaW4gc3VwZXJfbW9kdWxl
Ll9fd3B0cnVubmVyX19bImV4ZWN1dG9yIl0udmFsdWVzKCk6Ci0gICAgICAgIGNoaWxkX2dsb2Jh
bHNbdl0gPSBnZXRhdHRyKHN1cGVyX21vZHVsZSwgdikKLQotICAgIGlmICJydW5faW5mb19leHRy
YXMiIGluIHN1cGVyX3dwdHJ1bm5lcjoKLSAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1bm5lclsi
cnVuX2luZm9fZXh0cmFzIl0KLSAgICAgICAgY2hpbGRfZ2xvYmFsc1thdHRyXSA9IGdldGF0dHIo
c3VwZXJfbW9kdWxlLCBhdHRyKQotCi0KIGRlZiBjbWRfYXJnKG5hbWUsIHZhbHVlPU5vbmUpOgog
ICAgIHByZWZpeCA9ICItIiBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyIgZWxzZSAi
LS0iCiAgICAgcnYgPSBwcmVmaXggKyBuYW1lCkBAIC02NSw3ICs0NSw3IEBAIGRlZiBnZXRfZnJl
ZV9wb3J0KCk6CiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQu
ZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgY29udGludWUKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzLmdldHNvY2tuYW1lKClbMV0KQEAgLTEy
Niw2ICsxMDYsMTIgQEAgY2xhc3MgQnJvd3NlcihvYmplY3QpOgogICAgICAgICBwYXNzCiAKICAg
ICBkZWYgc2V0dGluZ3Moc2VsZiwgdGVzdCk6CisgICAgICAgICIiIkRpY3Rpb25hcnkgb2YgbWV0
YWRhdGEgdGhhdCBpcyBjb25zdGFudCBmb3IgYSBzcGVjaWZpYyBsYXVuY2ggb2YgYSBicm93c2Vy
LgorCisgICAgICAgIFRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hlbiB0aGUgYnJvd3NlciBp
bnN0YW5jZSBjb25maWd1cmF0aW9uIGNoYW5nZXMsIHJlcXVpcmluZworICAgICAgICBhIHJlbGF1
bmNoIG9mIHRoZSBicm93c2VyLiBUaGUgdGVzdCBydW5uZXIgY2FsbHMgdGhpcyBtZXRob2QgZm9y
IGVhY2ggdGVzdCwgYW5kIGlmIHRoZQorICAgICAgICByZXR1cm5lZCB2YWx1ZSBkaWZmZXJzIGZy
b20gdGhhdCBmb3IgdGhlIHByZXZpb3VzIHRlc3QsIHRoZSBicm93c2VyIGlzIHJlbGF1bmNoZWQu
CisgICAgICAgICIiIgogICAgICAgICByZXR1cm4ge30KIAogICAgIEBhYnN0cmFjdG1ldGhvZApA
QCAtMTU3LDYgKzE0MywxMCBAQCBjbGFzcyBCcm93c2VyKG9iamVjdCk6CiAgICAgICAgIHdpdGgg
d2hpY2ggaXQgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCIiIgogICAgICAgICByZXR1cm4gRXhlY3V0
b3JCcm93c2VyLCB7fQogCisgICAgZGVmIG1heWJlX3BhcnNlX3RvbWJzdG9uZShzZWxmKToKKyAg
ICAgICAgIiIiUG9zc2libHkgcGFyc2UgdG9tYnN0b25lcyBvbiBBbmRyb2lkIGRldmljZSBmb3Ig
QW5kcm9pZCB0YXJnZXQiIiIKKyAgICAgICAgcGFzcworCiAgICAgZGVmIGNoZWNrX2NyYXNoKHNl
bGYsIHByb2Nlc3MsIHRlc3QpOgogICAgICAgICAiIiJDaGVjayBpZiBhIGNyYXNoIG9jY3VyZWQg
YW5kIG91dHB1dCBhbnkgdXNlZnVsIGluZm9ybWF0aW9uIHRvIHRoZQogICAgICAgICBsb2cuIFJl
dHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhIGNyYXNoIG9jY3VyZWQuIiIiCkBA
IC0xODIsMTEgKzE3Miw4IEBAIGNsYXNzIE51bGxCcm93c2VyKEJyb3dzZXIpOgogICAgIGRlZiBp
c19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgIGRlZiBvbl9vdXRwdXQo
c2VsZiwgbGluZSk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotCi1jbGFz
cyBFeGVjdXRvckJyb3dzZXIob2JqZWN0KToKK2NsYXNzIEV4ZWN1dG9yQnJvd3NlcjoKICAgICAi
IiJWaWV3IG9mIHRoZSBCcm93c2VyIHVzZWQgYnkgdGhlIEV4ZWN1dG9yIG9iamVjdC4KICAgICBU
aGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBFeGVjdXRvciBydW5zIGluIGEgY2hpbGQgcHJvY2Vz
cyBhbmQKICAgICB3ZSBjYW4ndCBzaGlwIEJyb3dzZXIgaW5zdGFuY2VzIGJldHdlZW4gcHJvY2Vz
c2VzIG9uIFdpbmRvd3MuCkBAIC0xOTYsNSArMTgzLDk1IEBAIGNsYXNzIEV4ZWN1dG9yQnJvd3Nl
cihvYmplY3QpOgogICAgIHVwIHRoZSBicm93c2VyIGZyb20gdGhlIHJ1bm5lciBwcm9jZXNzLgog
ICAgICIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIGZvciBr
LCB2IGluIGl0ZXJpdGVtcyhrd2FyZ3MpOgorICAgICAgICBmb3IgaywgdiBpbiBrd2FyZ3MuaXRl
bXMoKToKICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgaywgdikKKworCitAZW51bS51bmlxdWUK
K2NsYXNzIE91dHB1dEhhbmRsZXJTdGF0ZShlbnVtLkludEVudW0pOgorICAgIEJFRk9SRV9QUk9D
RVNTX1NUQVJUID0gMQorICAgIEFGVEVSX1BST0NFU1NfU1RBUlQgPSAyCisgICAgQUZURVJfSEFO
RExFUl9TVEFSVCA9IDMKKyAgICBBRlRFUl9QUk9DRVNTX1NUT1AgPSA0CisKKworY2xhc3MgT3V0
cHV0SGFuZGxlcjoKKyAgICAiIiJDbGFzcyBmb3IgaGFuZGxpbmcgb3V0cHV0IGZyb20gYSBicm93
c2VyIHByb2Nlc3MuCisKKyAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBjb25zdW1p
bmcgdGhlIGxvZ2dpbmcgZnJvbSBhIGJyb3dzZXIgcHJvY2VzcworICAgIGFuZCBwYXNzaW5nIGl0
IGludG8gdGhlIHJlbGV2YW50IGxvZ2dlci4gQSBjbGFzcyBpbnN0YW5jZSBpcyBkZXNpZ25lZCB0
bworICAgIGJlIHBhc3NlZCBhcyB0aGUgcHJvY2Vzc091dHB1dExpbmUgYXJndW1lbnQgdG8gbW96
cHJvY2Vzcy5Qcm9jZXNzSGFuZGxlci4KKworICAgIFRoZSBzZXR1cCBvZiB0aGlzIGNsYXNzIGlz
IGNvbXBsZXggZm9yIHZhcmlvdXMgcmVhc29uczoKKworICAgICogV2UgbmVlZCB0byBjcmVhdGUg
YW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIGJlZm9yZSBzdGFydGluZyB0aGUgcHJvY2VzcworICAg
ICogV2Ugd2FudCBhY2Nlc3MgdG8gZGF0YSBhYm91dCB0aGUgcnVubmluZyBwcm9jZXNzIGUuZy4g
dGhlIHBpZAorICAgICogV2Ugd2FudCB0byBsYXVuY2ggdGhlIHByb2Nlc3MgYW5kIGxhdGVyIHNl
dHVwIGFkZGl0aW9uYWwgbG9nIGhhbmRsaW5nCisgICAgICB3aGljaCBpcyByZXN0cm9zcGVjdGl2
ZWx5IGFwcGxpZWQgdG8gYW55IGV4aXN0aW5nIG91dHB1dCAodGhpcyBzdXBwb3J0cworICAgICAg
cHJlbGF1bmNoaW5nIGJyb3dzZXJzIGZvciBwZXJmb3JtYW5jZSwgYnV0IGhhdmluZyBsb2cgb3V0
cHV0IGRlcGVuZCBvbiB0aGUKKyAgICAgIHRlc3RzIHRoYXQgYXJlIHJ1biBlLmcuIGZvciBsZWFr
IHN1cHByZXNzaW9uKS4KKworICAgIFRoZXJlZm9yZSB0aGUgbGlmZWN5Y2xlIGlzIGFzIGZvbGxv
d3M6OgorCisgICAgICBvdXRwdXRfaGFuZGxlciA9IE91dHB1dEhhbmRsZXIobG9nZ2VyLCBjb21t
YW5kLCAqKm91dHB1dF9oYW5kbGVyX2t3YXJncykKKyAgICAgIHByb2MgPSBQcm9jZXNzSGFuZGxl
cihjb21tYW5kLCAuLi4sIHByb2Nlc3NPdXRwdXRMaW5lPW91dHB1dF9oYW5kbGVyKQorICAgICAg
b3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChwcm9jLnBpZCkKKyAgICAgIFsuLi5d
CisgICAgICAjIEFsbCBsb2dnaW5nIHRvIHRoaXMgcG9pbnQgd2FzIGJ1ZmZlcmVkIGluLW1lbW9y
eSwgYnV0IGFmdGVyIHN0YXJ0KCkKKyAgICAgICMgaXQncyBhY3R1YWxseSBzZW50IHRvIHRoZSBs
b2dnZXIuCisgICAgICBvdXRwdXRfaGFuZGxlci5zdGFydCgqKm91dHB1dF9sb2dnZXJfc3RhcnRf
a3dhcmdzKQorICAgICAgWy4uLl0KKyAgICAgIHByb2Mud2FpdCgpCisgICAgICBvdXRwdXRfaGFu
ZGxlci5hZnRlcl9wcm9jZXNzX3N0b3AoKQorCisgICAgU2luY2UgdGhlIHByb2Nlc3MgbGlmZXRp
bWUgYW5kIHRoZSBvdXRwdXQgaGFuZGxlciBsaWZldGltZSBhcmUgY291cGxlZCAoaXQgZG9lc24n
dAorICAgIHdvcmsgdG8gcmV1c2UgYW4gb3V0cHV0IGhhbmRsZXIgZm9yIG11bHRpcGxlIHByb2Nl
c3NlcyksIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gaGF2ZQorICAgIGEgc2luZ2xlIGNsYXNzIHRo
YXQgb3ducyB0aGUgcHJvY2VzcyBhbmQgdGhlIG91dHB1dCBwcm9jZXNzaW5nIGZvciB0aGUgcHJv
Y2Vzcy4KKyAgICBUaGlzIGlzIGNvbXBsaWNhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgd2UgZG9uJ3Qg
YWx3YXlzIHJ1biB0aGUgcHJvY2VzcyBkaXJlY3RseSwKKyAgICBidXQgc29tZXRpbWVzIHVzZSBh
IHdyYXBwZXIgZS5nLiBtb3pydW5uZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBjb21tYW5kLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9n
Z2VyCisgICAgICAgIHNlbGYuY29tbWFuZCA9IGNvbW1hbmQKKyAgICAgICAgc2VsZi5waWQgPSBO
b25lCisgICAgICAgIHNlbGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3RhdGUuQkVGT1JFX1BST0NF
U1NfU1RBUlQKKyAgICAgICAgc2VsZi5saW5lX2J1ZmZlciA9IFtdCisKKyAgICBkZWYgYWZ0ZXJf
cHJvY2Vzc19zdGFydChzZWxmLCBwaWQpOgorICAgICAgICBhc3NlcnQgc2VsZi5zdGF0ZSA9PSBP
dXRwdXRIYW5kbGVyU3RhdGUuQkVGT1JFX1BST0NFU1NfU1RBUlQKKyAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoIk91dHB1dEhhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydCIpCisgICAgICAgIHNl
bGYucGlkID0gcGlkCisgICAgICAgIHNlbGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3RhdGUuQUZU
RVJfUFJPQ0VTU19TVEFSVAorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAgICAg
ICAgYXNzZXJ0IHNlbGYuc3RhdGUgPT0gT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX1BST0NFU1Nf
U1RBUlQKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIk91dHB1dEhhbmRsZXIuc3RhcnQiKQor
ICAgICAgICAjIE5lZWQgdG8gY2hhbmdlIHRoZSBzdGF0ZSBoZXJlIGJlZm9yZSB3ZSB0cnkgdG8g
ZW1wdHkgdGhlIGJ1ZmZlcgorICAgICAgICAjIG9yIHdlJ2xsIGp1c3QgcmUtYnVmZmVyIHRoZSBl
eGlzdGluZyBvdXRwdXQuCisgICAgICAgIHNlbGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3RhdGUu
QUZURVJfSEFORExFUl9TVEFSVAorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmxpbmVfYnVmZmVy
OgorICAgICAgICAgICAgc2VsZihpdGVtKQorICAgICAgICBzZWxmLmxpbmVfYnVmZmVyID0gTm9u
ZQorCisgICAgZGVmIGFmdGVyX3Byb2Nlc3Nfc3RvcChzZWxmLCBjbGVhbl9zaHV0ZG93bj1UcnVl
KToKKyAgICAgICAgIyBJZiB3ZSBkaWRuJ3QgZ2V0IGFzIGZhciBhcyBjb25maWd1cmUsIGp1c3QK
KyAgICAgICAgIyBkdW1wIGFsbCBsb2dzIHdpdGggbm8gY29uZmlndXJhdGlvbgorICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygiT3V0cHV0SGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0b3AiKQorICAg
ICAgICBpZiBzZWxmLnN0YXRlIDwgT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX0hBTkRMRVJfU1RB
UlQ6CisgICAgICAgICAgICBzZWxmLnN0YXJ0KCkKKyAgICAgICAgc2VsZi5zdGF0ZSA9IE91dHB1
dEhhbmRsZXJTdGF0ZS5BRlRFUl9QUk9DRVNTX1NUT1AKKworICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCBsaW5lKToKKyAgICAgICAgaWYgc2VsZi5zdGF0ZSA8IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRF
Ul9IQU5ETEVSX1NUQVJUOgorICAgICAgICAgICAgc2VsZi5saW5lX2J1ZmZlci5hcHBlbmQobGlu
ZSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgQ291bGQgYXNzZXJ0IHRoYXQgdGhl
cmUncyBubyBvdXRwdXQgaGFuZGxlZCBvbmNlIHdlJ3JlIGluIHRoZQorICAgICAgICAjIGFmdGVy
X3Byb2Nlc3Nfc3RvcCBwaGFzZSwgYWx0aG91Z2ggdGVjaG5pY2FsbHkgdGhlcmUncyBhIHJhY2Ug
Y29uZGl0aW9uCisgICAgICAgICMgaGVyZSBiZWNhdXNlIHdlIGRvbid0IGtub3cgdGhlIGxvZ2dp
bmcgdGhyZWFkIGhhcyBmaW5pc2hlZCBkcmFpbmluZyB0aGUKKyAgICAgICAgIyBsb2dzLiBUaGUg
c29sdXRpb24gbWlnaHQgYmUgdG8gbW92ZSB0aGlzIGludG8gbW96cHJvY2VzcyBpdHNlbGYuCisK
KyAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxm
LmNvbW1hbmQpIGlmIHNlbGYuY29tbWFuZCBlbHNlICIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hy
b21lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CmluZGV4IGZkMjUxYTQzMWMzMC4uMGI2YTBjNjE4ZGZj
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CkBAIC0x
LDUgKzEsNiBAQAogZnJvbSAuIGltcG9ydCBjaHJvbWVfc3BraV9jZXJ0cwogZnJvbSAuYmFzZSBp
bXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBp
bXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIg
aW1wb3J0IENocm9tZURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0
b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCkBAIC0xMiw3ICsxMyw4IEBAIGZyb20g
Li5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IChDaHJvbWVEcml2ZXJXZHNwZWNFeGVj
dXRvciwgICMgbm9xYTogRjQwCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21l
IiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAg
ICAgICAgICAgICJicm93c2VyIjogIkNocm9tZUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAi
YnJvd3NlciI6IHtOb25lOiAiQ2hyb21lQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1
dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RF
eGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpbnQtcmVmdGVzdCI6
ICJDaHJvbWVEcml2ZXJQcmludFJlZlRlc3RFeGVjdXRvciIsCkBAIC0yOCwxNiArMzAsMTUgQEAg
ZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRy
aXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZv
X2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVz
dF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJi
aW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnki
OiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJn
cyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
CitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50
LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhl
Y3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29u
ZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21h
bmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGV4
ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1dG9yX2t3
YXJnc1sic3VwcG9ydHNfZWFnZXJfcGFnZWxvYWQiXSA9IEZhbHNlCkBAIC04MSw5ICs4MiwzMSBA
QCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFu
YWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAjIFBvaW50IGFsbCAudGVzdCBkb21haW5zIHRvIGxv
Y2FsaG9zdCBmb3IgQ2hyb21lCiAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0t
aG9zdC1yZXNvbHZlci1ydWxlcz1NQVAgbm9uZXhpc3RlbnQuKi50ZXN0IH5OT1RGT1VORCwgTUFQ
ICoudGVzdCAxMjcuMC4wLjEiKQogCisgICAgIyBDbGFzc2lmeSBgaHR0cC1wcml2YXRlYCwgYGh0
dHAtcHVibGljYCBhbmQgaHR0cHMgdmFyaWFudHMgaW4gdGhlCisgICAgIyBhcHByb3ByaWF0ZSBJ
UCBhZGRyZXNzIHNwYWNlcy4KKyAgICAjIEZvciBtb3JlIGRldGFpbHMsIHNlZTogaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZmNzL2Jsb2IvbWFzdGVyL3JmY3MvYWRkcmVz
c19zcGFjZV9vdmVycmlkZXMubWQKKyAgICBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19wb3J0cyA9
IFsKKyAgICAgICAgKCJodHRwLXByaXZhdGUiLCAicHJpdmF0ZSIpLAorICAgICAgICAoImh0dHAt
cHVibGljIiwgInB1YmxpYyIpLAorICAgICAgICAoImh0dHBzLXByaXZhdGUiLCAicHJpdmF0ZSIp
LAorICAgICAgICAoImh0dHBzLXB1YmxpYyIsICJwdWJsaWMiKSwKKyAgICBdCisgICAgYWRkcmVz
c19zcGFjZV9vdmVycmlkZXNfYXJnID0gIiwiLmpvaW4oCisgICAgICAgICIxMjcuMC4wLjE6e309
e30iLmZvcm1hdChwb3J0X251bWJlciwgYWRkcmVzc19zcGFjZSkKKyAgICAgICAgZm9yIHBvcnRf
bmFtZSwgYWRkcmVzc19zcGFjZSBpbiBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19wb3J0cworICAg
ICAgICBmb3IgcG9ydF9udW1iZXIgaW4gdGVzdF9lbnZpcm9ubWVudC5jb25maWcucG9ydHMuZ2V0
KHBvcnRfbmFtZSwgW10pCisgICAgKQorICAgIGlmIGFkZHJlc3Nfc3BhY2Vfb3ZlcnJpZGVzX2Fy
ZzoKKyAgICAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoCisgICAgICAgICAgICAi
LS1pcC1hZGRyZXNzLXNwYWNlLW92ZXJyaWRlcz0iICsgYWRkcmVzc19zcGFjZV9vdmVycmlkZXNf
YXJnKQorCiAgICAgaWYga3dhcmdzWyJlbmFibGVfbW9qb2pzIl06CiAgICAgICAgIGNocm9tZV9v
cHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWVuYWJsZS1ibGluay1mZWF0dXJlcz1Nb2pvSlMsTW9q
b0pTVGVzdCIpCiAKKyAgICBpZiBrd2FyZ3NbImVuYWJsZV9zd2lmdHNoYWRlciJdOgorICAgICAg
ICAjIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9IRUFE
L2RvY3MvZ3B1L3N3aWZ0c2hhZGVyLm1kCisgICAgICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0u
ZXh0ZW5kKFsiLS11c2UtZ2w9YW5nbGUiLCAiLS11c2UtYW5nbGU9c3dpZnRzaGFkZXIiXSkKKwog
ICAgICMgQ29weSBvdmVyIGFueSBvdGhlciBmbGFncyB0aGF0IHdlcmUgcGFzc2VkIGluIHZpYSAt
LWJpbmFyeV9hcmdzCiAgICAgaWYga3dhcmdzWyJiaW5hcnlfYXJncyJdIGlzIG5vdCBOb25lOgog
ICAgICAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJdLmV4dGVuZChrd2FyZ3NbImJpbmFyeV9hcmdz
Il0pCkBAIC0xMTMsNyArMTM2LDcgQEAgY2xhc3MgQ2hyb21lQnJvd3NlcihCcm93c2VyKToKICAg
ICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVy
X2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9
Tm9uZSk6CisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToK
ICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUg
YGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKICAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVz
ZSBmb3IgdGVzdGluZy4iIiIKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRy
b2lkLnB5CmluZGV4IDQ4NWI5NmYzMWU3ZC4uM2JhMDE1ODhiMjk0IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9jaHJvbWVfYW5kcm9pZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQpAQCAtMSw3
ICsxLDkgQEAKK2ltcG9ydCBtb3pwcm9jZXNzCiBpbXBvcnQgc3VicHJvY2VzcwogCiBmcm9tIC5i
YXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9tIC5i
YXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5i
YXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC5jaHJvbWUgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4ud2ViZHJp
dmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzLmV4
ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMg
bm9xYTogRjQwMQpAQCAtMTEsNyArMTMsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hy
b21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9f
d3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lX2FuZHJvaWQiLAogICAgICAgICAgICAg
ICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiAiQ2hyb21lQW5kcm9pZEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6
IHtOb25lOiAiQ2hyb21lQW5kcm9pZEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRv
ciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhl
Y3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVE
cml2ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMjksMjMgKzMyLDI0IEBAIGRlZiBjaGVja19hcmdz
KCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikK
IAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsicGFja2FnZV9uYW1lIjog
a3dhcmdzWyJwYWNrYWdlX25hbWUiXSwKICAgICAgICAgICAgICJkZXZpY2Vfc2VyaWFsIjoga3dh
cmdzWyJkZXZpY2Vfc2VyaWFsIl0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3
YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAotICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjog
a3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJn
cyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiksCisgICAgICAgICAgICAic3RhY2t3YWxr
X2JpbmFyeSI6IGt3YXJncy5nZXQoInN0YWNrd2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAgICJz
eW1ib2xzX3BhdGgiOiBrd2FyZ3MuZ2V0KCJzeW1ib2xzX3BhdGgiKX0KIAogCi1kZWYgZXhlY3V0
b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52
aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToK
ICAgICAjIFVzZSB1cGRhdGUoKSB0byBtb2RpZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNlLgog
ICAgIF93cHRzZXJ2ZV9wb3J0cy51cGRhdGUoc2V0KAotICAgICAgICBzZXJ2ZXJfY29uZmlnWydw
b3J0cyddWydodHRwJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwcyddICsKLSAgICAg
ICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11b
J3dzcyddCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwJ10g
KyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAgIHRl
c3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWyd3cyddICsgdGVzdF9lbnZpcm9ubWVudC5j
b25maWdbJ3BvcnRzJ11bJ3dzcyddCiAgICAgKSkKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNo
cm9tZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgIyBS
ZW1vdmUgdW5zdXBwb3J0ZWQgb3B0aW9ucyBvbiBtb2JpbGUuCiAgICAgZGVsIGV4ZWN1dG9yX2t3
YXJnc1siY2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJdCkBAIC02
OSwyMCArNzMsODIgQEAgZGVmIGVudl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHsic2VydmVyX2hv
c3QiOiAiMTI3LjAuMC4xIn0KIAogCi1jbGFzcyBDaHJvbWVBbmRyb2lkQnJvd3NlcihCcm93c2Vy
KToKLSAgICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3Vw
cGxpZWQgdGhyb3VnaAotICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2
ZXJgYC4KLSAgICAiIiIKK2NsYXNzIExvZ2NhdFJ1bm5lcihvYmplY3QpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHJlbW90ZV9xdWV1ZSk6CisgICAgICAgIHNlbGYu
bG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYuYnJvd3NlciA9IGJyb3dzZXIKKyAgICAgICAg
c2VsZi5yZW1vdGVfcXVldWUgPSByZW1vdGVfcXVldWUKKworICAgIGRlZiBzdGFydChzZWxmKToK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fcnVuKCkKKyAgICAgICAgZXhjZXB0IEtl
eWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBfcnVu
KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFRPRE86IGFkYiBsb2djYXQgLWMg
ZmFpbCByYW5kb21seSB3aXRoIG1lc3NhZ2UKKyAgICAgICAgICAgICMgImZhaWxlZCB0byBjbGVh
ciB0aGUgJ21haW4nIGxvZyIKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5jbGVhcl9sb2coKQor
ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5lcnJvcigiRmFpbGVkIHRvIGNsZWFyIGxvZ2NhdCBidWZmZXIiKQorCisg
ICAgICAgIHNlbGYuX2NtZCA9IHNlbGYuYnJvd3Nlci5sb2djYXRfY21kKCkKKyAgICAgICAgc2Vs
Zi5fcHJvYyA9IG1venByb2Nlc3MuUHJvY2Vzc0hhbmRsZXIoCisgICAgICAgICAgICBzZWxmLl9j
bWQsCisgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLm9uX291dHB1dCwKKyAgICAg
ICAgICAgIHN0b3JlT3V0cHV0PUZhbHNlKQorICAgICAgICBzZWxmLl9wcm9jLnJ1bigpCisKKyAg
ICBkZWYgX3NlbmRfbWVzc2FnZShzZWxmLCBjb21tYW5kLCAqYXJncyk6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlLnB1dCgoY29tbWFuZCwgYXJncykpCisgICAg
ICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5p
bmcoIkVycm9yIHdoZW4gc2VuZCB0byByZW1vdGUgcXVldWUiKQogCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgcGFja2FnZV9uYW1lLCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2
ZXIiLAotICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsIHdlYmRyaXZlcl9hcmdz
PU5vbmUpOgotICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKLSAgICAgICAg
c2VsZi5wYWNrYWdlX25hbWUgPSBwYWNrYWdlX25hbWUKKyAgICBkZWYgc3RvcChzZWxmLCBmb3Jj
ZT1GYWxzZSk6CisgICAgICAgIGlmIHNlbGYuaXNfYWxpdmUoKToKKyAgICAgICAgICAgIGtpbGxf
cmVzdWx0ID0gc2VsZi5fcHJvYy5raWxsKCkKKyAgICAgICAgICAgIGlmIGZvcmNlIGFuZCBraWxs
X3Jlc3VsdCAhPSAwOgorICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Mua2lsbCg5KQorCisgICAg
ZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzYXR0cihzZWxmLl9wcm9jLCAi
cHJvYyIpIGFuZCBzZWxmLl9wcm9jLnBvbGwoKSBpcyBOb25lCisKKyAgICBkZWYgb25fb3V0cHV0
KHNlbGYsIGxpbmUpOgorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImFjdGlvbiI6ICJw
cm9jZXNzX291dHB1dCIsCisgICAgICAgICAgICAicHJvY2VzcyI6ICJMT0dDQVQiLAorICAgICAg
ICAgICAgImNvbW1hbmQiOiAibG9nY2F0IiwKKyAgICAgICAgICAgICJkYXRhIjogbGluZQorICAg
ICAgICB9CisgICAgICAgIHNlbGYuX3NlbmRfbWVzc2FnZSgibG9nIiwgZGF0YSkKKworCitjbGFz
cyBDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UoQnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJp
dmVyIiwKKyAgICAgICAgICAgICAgICAgcmVtb3RlX3F1ZXVlID0gTm9uZSwKKyAgICAgICAgICAg
ICAgICAgZGV2aWNlX3NlcmlhbD1Ob25lLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJn
cz1Ob25lLAorICAgICAgICAgICAgICAgICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAgICAg
ICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKKyAgICAgICAgc3VwZXIoQ2hyb21lQW5kcm9p
ZEJyb3dzZXJCYXNlLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIpCiAgICAgICAgIHNlbGYuZGV2aWNl
X3NlcmlhbCA9IGRldmljZV9zZXJpYWwKKyAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5ID0g
c3RhY2t3YWxrX2JpbmFyeQorICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0
aAorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IHJlbW90ZV9xdWV1ZQogICAgICAgICBzZWxm
LnNlcnZlciA9IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3Mp
CisgICAgICAgIGlmIHNlbGYucmVtb3RlX3F1ZXVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
c2VsZi5sb2djYXRfcnVubmVyID0gTG9nY2F0UnVubmVyKHNlbGYubG9nZ2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5yZW1vdGVfcXVldWUp
CisKKyAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYuc2V0dXBfYWRiX3JldmVyc2Uo
KQorICAgICAgICBpZiBzZWxmLnJlbW90ZV9xdWV1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHNlbGYubG9nY2F0X3J1bm5lci5zdGFydCgpCiAKICAgICBkZWYgX2FkYl9ydW4oc2VsZiwgYXJn
cyk6CiAgICAgICAgIGNtZCA9IFsnYWRiJ10KQEAgLTkyLDE0ICsxNTgsNiBAQCBjbGFzcyBDaHJv
bWVBbmRyb2lkQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnICcu
am9pbihjbWQpKQogICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kKQogCi0gICAgZGVm
IHNldHVwX2FkYl9yZXZlcnNlKHNlbGYpOgotICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2FpdC1m
b3ItZGV2aWNlJ10pCi0gICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3Zl
LWFsbCddKQotICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwn
XSkKLSAgICAgICAgIyAiYWRiIHJldmVyc2UiIGZvcndhcmRzIG5ldHdvcmsgY29ubmVjdGlvbiBm
cm9tIGRldmljZSB0byBob3N0LgotICAgICAgICBmb3IgcG9ydCBpbiBfd3B0c2VydmVfcG9ydHM6
Ci0gICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwg
J3RjcDolZCcgJSBwb3J0XSkKLQogICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CiAgICAg
ICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQogCkBAIC0xMTksNiArMTc3LDYwIEBA
IGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnN0b3Ao
KQogICAgICAgICBzZWxmLl9hZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKICAg
ICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAg
IGlmIHNlbGYucmVtb3RlX3F1ZXVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2dj
YXRfcnVubmVyLnN0b3AoZm9yY2U9VHJ1ZSkKIAogICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNl
bGYpOgogICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBz
ZWxmLnNlcnZlci51cmx9CisKKyAgICBkZWYgY2xlYXJfbG9nKHNlbGYpOgorICAgICAgICBzZWxm
Ll9hZGJfcnVuKFsnbG9nY2F0JywgJy1jJ10pCisKKyAgICBkZWYgbG9nY2F0X2NtZChzZWxmKToK
KyAgICAgICAgY21kID0gWydhZGInXQorICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6Cisg
ICAgICAgICAgICBjbWQuZXh0ZW5kKFsnLXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAgICAg
ICBjbWQuZXh0ZW5kKFsnbG9nY2F0JywgJyo6RCddKQorICAgICAgICByZXR1cm4gY21kCisKKyAg
ICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CisgICAgICAgIHNlbGYubWF5
YmVfcGFyc2VfdG9tYnN0b25lKCkKKyAgICAgICAgIyBFeGlzdGVuY2Ugb2YgYSB0b21ic3RvbmUg
ZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiB0ZXN0IHRhcmdldCBoYXMKKyAgICAgICAgIyBjcmFz
aGVkLiBBbHdheXMgcmV0dXJuIEZhbHNlIHNvIHdlIGRvbid0IGNoYW5nZSB0aGUgdGVzdCByZXN1
bHRzLgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBtYXliZV9wYXJzZV90b21ic3Rv
bmUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuc3RhY2t3YWxrX2JpbmFyeToKKyAgICAgICAgICAg
IGNtZCA9IFtzZWxmLnN0YWNrd2Fsa19iaW5hcnksICItYSIsICItdyJdCisgICAgICAgICAgICBp
ZiBzZWxmLmRldmljZV9zZXJpYWw6CisgICAgICAgICAgICAgICAgY21kLmV4dGVuZChbIi0tZGV2
aWNlIiwgc2VsZi5kZXZpY2Vfc2VyaWFsXSkKKyAgICAgICAgICAgIGNtZC5leHRlbmQoWyItLW91
dHB1dC1kaXJlY3RvcnkiLCBzZWxmLnN5bWJvbHNfcGF0aF0pCisgICAgICAgICAgICByYXdfb3V0
cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoY21kKQorICAgICAgICAgICAgZm9yIGxpbmUg
aW4gcmF3X291dHB1dC5zcGxpdGxpbmVzKCk6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIu
cHJvY2Vzc19vdXRwdXQoIlRSQUNFIiwgbGluZSwgImxvZ2NhdCIpCisKKyAgICBkZWYgc2V0dXBf
YWRiX3JldmVyc2Uoc2VsZik6CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1kZXZp
Y2UnXSkKKyAgICAgICAgc2VsZi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10p
CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQorICAg
ICAgICAjICJhZGIgcmV2ZXJzZSIgZm9yd2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20gZGV2
aWNlIHRvIGhvc3QuCisgICAgICAgIGZvciBwb3J0IGluIHNlbGYud3B0c2VydmVyX3BvcnRzOgor
ICAgICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAndGNwOiVkJyAlIHBvcnQsICd0
Y3A6JWQnICUgcG9ydF0pCisKK2NsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKENocm9tZUFuZHJv
aWRCcm93c2VyQmFzZSk6CisgICAgIiIiQ2hyb21lIGlzIGJhY2tlZCBieSBjaHJvbWVkcml2ZXIs
IHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuQ2hy
b21lRHJpdmVyU2VydmVyYGAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBwYWNrYWdlX25hbWUsCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9ImNo
cm9tZWRyaXZlciIsCisgICAgICAgICAgICAgICAgIHJlbW90ZV9xdWV1ZSA9IE5vbmUsCisgICAg
ICAgICAgICAgICAgIGRldmljZV9zZXJpYWw9Tm9uZSwKKyAgICAgICAgICAgICAgICAgd2ViZHJp
dmVyX2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3RhY2t3YWxrX2JpbmFyeT1Ob25lLAor
ICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9Tm9uZSk6CisgICAgICAgIHN1cGVyKENocm9t
ZUFuZHJvaWRCcm93c2VyLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIsCisgICAgICAgICAgICAgICAg
d2ViZHJpdmVyX2JpbmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFsLAorICAgICAgICAg
ICAgICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmluYXJ5LCBzeW1ib2xzX3BhdGgpCisg
ICAgICAgIHNlbGYucGFja2FnZV9uYW1lID0gcGFja2FnZV9uYW1lCisgICAgICAgIHNlbGYud3B0
c2VydmVyX3BvcnRzID0gX3dwdHNlcnZlX3BvcnRzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvZWRnZS5weQppbmRleCBiZGIzN2IzZjg0YzIuLjMxMDFlOWM3YmVhMyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvZWRnZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CkBAIC0xLDcgKzEsNyBAQAot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IHRpbWUKIGltcG9y
dCBzdWJwcm9jZXNzCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIs
IHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAx
CiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZURyaXZlclNlcnZlcgogZnJvbSAu
LmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdz
CiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3Ro
YXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKQEAgLTEwLDcgKzEwLDggQEAgZnJvbSAuLmV4
ZWN1dG9ycy5leGVjdXRvcmVkZ2UgaW1wb3J0IEVkZ2VEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBu
b3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZSIsCiAgICAgICAg
ICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAi
YnJvd3NlciI6ICJFZGdlQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05v
bmU6ICJFZGdlQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFy
bmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJFZGdlRHJpdmVyV2RzcGVjRXhlY3V0
b3IifSwKQEAgLTM0LDcgKzM1LDcgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJl
cXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3
YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJy
b3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoq
a3dhcmdzKToKICAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2
ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3
ZWJkcml2ZXJfYXJncyIpLAogICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IGdldF90
aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLApAQCAtNDIsMTAgKzQzLDkgQEAgZGVmIGJyb3dz
ZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncyl9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoq
a3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCiAgICAgZXhlY3V0b3Jfa3dh
cmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSA9IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCkBAIC02NSwxMCArNjUsMTAgQEAgZGVmIGVu
dl9vcHRpb25zKCk6CiAKIAogY2xhc3MgRWRnZUJyb3dzZXIoQnJvd3Nlcik6Ci0gICAgdXNlZF9w
b3J0cyA9IHNldCgpCiAgICAgaW5pdF90aW1lb3V0ID0gNjAKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnksIHRpbWVvdXRfbXVsdGlwbGllcj1Ob25lLCB3
ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3ZWJk
cml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPU5vbmUsIHdlYmRy
aXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIpCiAgICAgICAgIHNlbGYuc2VydmVyID0gRWRnZURyaXZlclNlcnZlcihzZWxmLmxv
Z2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJk
cml2ZXJfYmluYXJ5LApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9lZGdlX3dlYmRyaXZlci5weQppbmRleCBjMjU0NWRlNDZmMGIuLmU1OTQ5ZmUzZTU3ZiAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2
ZXIucHkKQEAgLTEsMTIgKzEsMjggQEAKLWZyb20gLmJhc2UgaW1wb3J0IGluaGVyaXQKLWZyb20g
LiBpbXBvcnQgZWRnZQorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQw
MQorZnJvbSAuZWRnZSBpbXBvcnQgKEVkZ2VCcm93c2VyLCAgIyBub3FhOiBGNDAxCisgICAgICAg
ICAgICAgICAgICAgRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAg
ICAgICAgICAgICAgICAgY2hlY2tfYXJncywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAg
ICAgIGJyb3dzZXJfa3dhcmdzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgZXhl
Y3V0b3Jfa3dhcmdzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgZW52X2V4dHJh
cywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgIGVudl9vcHRpb25zLCAgIyBub3Fh
OiBGNDAxCisgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzLCAgIyBub3FhOiBGNDAx
CisgICAgICAgICAgICAgICAgICAgZ2V0X3RpbWVvdXRfbXVsdGlwbGllcikgICMgbm9xYTogRjQw
MQogCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVy
VGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTog
RjQwMQogCiAKLWluaGVyaXQoZWRnZSwgZ2xvYmFscygpLCAiZWRnZV93ZWJkcml2ZXIiKQotCi0j
IF9fd3B0cnVubmVyX18gbWFnaWNhbGx5IGFwcGVhcnMgZnJvbSBpbmhlcml0LCBGODIxIGlzIHVu
ZGVmaW5lZCBuYW1lCi1fX3dwdHJ1bm5lcl9fWyJleGVjdXRvciJdWyJ0ZXN0aGFybmVzcyJdID0g
IldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiICAjIG5vcWE6IEY4MjEKLV9fd3B0cnVubmVy
X19bImV4ZWN1dG9yIl1bInJlZnRlc3QiXSA9ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiICAj
IG5vcWE6IEY4MjEKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZV93ZWJkcml2ZXIi
LAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VCcm93c2VyIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAg
ICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0
b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVy
UmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiAiRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93c2Vy
X2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvcl9r
d2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRyYXMi
OiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0
aW9ucyIsCisgICAgICAgICAgICAgICAgICJydW5faW5mb19leHRyYXMiOiAicnVuX2luZm9fZXh0
cmFzIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91
dF9tdWx0aXBsaWVyIn0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJl
Zm94LnB5CmluZGV4IDE1MTUzMDg5N2Q5Yi4uYWMyNzQ1MzEyN2FiIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9maXJlZm94LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKQEAgLTEsOSArMSwxMiBAQAoraW1w
b3J0IGJhc2U2NAoraW1wb3J0IGlvCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgcGxh
dGZvcm0KIGltcG9ydCBzaWduYWwKIGltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCitpbXBv
cnQgdGVtcGZpbGUKK2ltcG9ydCB6aXBmaWxlCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJz
dHJhY3RtZXRob2QKIAogaW1wb3J0IG1vemluZm8KQEAgLTE1LDI2ICsxOCwzMCBAQCBmcm9tIG1v
enJ1bm5lciBpbXBvcnQgRmlyZWZveFJ1bm5lcgogZnJvbSBtb3pydW5uZXIudXRpbHMgaW1wb3J0
IHRlc3RfZW52aXJvbm1lbnQsIGdldF9zdGFja19maXhlcl9mdW5jdGlvbgogZnJvbSBtb3pjcmFz
aCBpbXBvcnQgbW96Y3Jhc2gKIAotZnJvbSAuYmFzZSBpbXBvcnQgKGdldF9mcmVlX3BvcnQsCi0g
ICAgICAgICAgICAgICAgICAgQnJvd3NlciwKK2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAog
ICAgICAgICAgICAgICAgICAgIEV4ZWN1dG9yQnJvd3NlciwKLSAgICAgICAgICAgICAgICAgICBy
ZXF1aXJlX2FyZywKKyAgICAgICAgICAgICAgICAgICBOdWxsQnJvd3NlciwKKyAgICAgICAgICAg
ICAgICAgICBPdXRwdXRIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgIE91dHB1dEhhbmRsZXJT
dGF0ZSwKKyAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQsCiAgICAgICAgICAgICAg
ICAgICAgY21kX2FyZywKLSAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQpCisgICAg
ICAgICAgICAgICAgICAgZ2V0X2ZyZWVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICByZXF1aXJl
X2FyZykKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4
ZWN1dG9yX2t3YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcm1hcmlvbmV0dGUgaW1wb3J0
IChNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1
dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE1hcmlvbmV0dGVQcmludFJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlV2RzcGVj
RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTWFyaW9uZXR0ZUNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1m
cm9tIC4ucHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGlt
cG9ydCBXZWJEcml2ZXJTZXJ2ZXIKIAogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9f
KQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZpcmVmb3giLAogICAgICAgICAgICAg
ICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiAiRmlyZWZveEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25l
OiAiRmlyZWZveEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVj
IjogIkZpcmVmb3hXZFNwZWNCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6
IHsiY3Jhc2h0ZXN0IjogIk1hcmlvbmV0dGVDcmFzaHRlc3RFeGVjdXRvciIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGVzdGhhcm5lc3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJuZXNz
RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiTWFy
aW9uZXR0ZVJlZlRlc3RFeGVjdXRvciIsCkBAIC01MywxMSArNjAsMTEgQEAgZGVmIGdldF90aW1l
b3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAg
aWYga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSBpcyBub3QgTm9uZToKICAgICAgICAgcmV0
dXJuIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0KICAgICBpZiB0ZXN0X3R5cGUgPT0gInJl
ZnRlc3QiOgotICAgICAgICBpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2Rh
dGEuZ2V0KCJhc2FuIik6CisgICAgICAgIGlmIHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0gb3IgcnVu
X2luZm9fZGF0YS5nZXQoImFzYW4iKSBvciBydW5faW5mb19kYXRhLmdldCgidHNhbiIpOgogICAg
ICAgICAgICAgcmV0dXJuIDQKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiAyCi0g
ICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2Fu
Iik6CisgICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0
KCJhc2FuIikgb3IgcnVuX2luZm9fZGF0YS5nZXQoInRzYW4iKToKICAgICAgICAgaWYgcnVuX2lu
Zm9fZGF0YS5nZXQoImNjb3YiKToKICAgICAgICAgICAgIHJldHVybiA0CiAgICAgICAgIGVsc2U6
CkBAIC03Niw3ICs4Myw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJl
X2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUs
IHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICBy
ZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgInByZWZzX3Jv
b3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKICAgICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3
YXJnc1siZXh0cmFfcHJlZnMiXSwKQEAgLTEwMSwxMyArMTA4LDI0IEBAIGRlZiBicm93c2VyX2t3
YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgICAg
ICAgICAgImNvbmZpZyI6IGNvbmZpZywKICAgICAgICAgICAgICJicm93c2VyX2NoYW5uZWwiOiBr
d2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdLAogICAgICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdz
WyJoZWFkbGVzcyJdLAotICAgICAgICAgICAgInByZWxvYWRfYnJvd3NlciI6IGt3YXJnc1sicHJl
bG9hZF9icm93c2VyIl19CisgICAgICAgICAgICAicHJlbG9hZF9icm93c2VyIjoga3dhcmdzWyJw
cmVsb2FkX2Jyb3dzZXIiXSBhbmQgbm90IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdIGFuZCBu
b3Qga3dhcmdzWyJudW1fdGVzdF9ncm91cHMiXSA9PSAxLAorICAgICAgICAgICAgInNwZWNpYWxw
b3dlcnNfcGF0aCI6IGt3YXJnc1sic3BlY2lhbHBvd2Vyc19wYXRoIl19CiAKIAotZGVmIGV4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsCitjbGFzcyBXZFNwZWNQcm9maWxlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHByb2ZpbGUpOgorICAgICAgICBzZWxmLnByb2ZpbGUgPSBwcm9maWxlCisKKyAgICBk
ZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhp
dF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYucHJvZmlsZS5jbGVhbnVw
KCkKKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmly
b25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0g
ICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2
ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9l
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRh
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQog
ICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gdGVzdF90eXBlICE9ICJy
ZWZ0ZXN0IgogICAgIGV4ZWN1dG9yX2t3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0gPSBnZXRf
dGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwKQEAgLTEyMSwyMiArMTM5LDYzIEBAIGRlZiBl
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLAogICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwi
XSA9IGt3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdCiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1si
cmVmdGVzdF9zY3JlZW5zaG90Il0gPSBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdCiAgICAg
aWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgotICAgICAgICBvcHRpb25zID0ge30KKyAgICAgICAg
b3B0aW9ucyA9IHsiYXJncyI6IFtdfQogICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdOgogICAg
ICAgICAgICAgb3B0aW9uc1siYmluYXJ5Il0gPSBrd2FyZ3NbImJpbmFyeSJdCiAgICAgICAgIGlm
IGt3YXJnc1siYmluYXJ5X2FyZ3MiXToKICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXSA9IGt3
YXJnc1siYmluYXJ5X2FyZ3MiXQotICAgICAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06Ci0gICAg
ICAgICAgICBpZiAiYXJncyIgbm90IGluIG9wdGlvbnM6Ci0gICAgICAgICAgICAgICAgb3B0aW9u
c1siYXJncyJdID0gW10KLSAgICAgICAgICAgIGlmICItLWhlYWRsZXNzIiBub3QgaW4gb3B0aW9u
c1siYXJncyJdOgotICAgICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0taGVh
ZGxlc3MiKQotICAgICAgICBvcHRpb25zWyJwcmVmcyJdID0gewotICAgICAgICAgICAgIm5ldHdv
cmsuZG5zLmxvY2FsRG9tYWlucyI6ICIsIi5qb2luKHNlcnZlcl9jb25maWcuZG9tYWluc19zZXQp
Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIHByZWYsIHZhbHVlIGluIGt3YXJnc1siZXh0cmFfcHJl
ZnMiXToKLSAgICAgICAgICAgIG9wdGlvbnNbInByZWZzIl0udXBkYXRlKHtwcmVmOiBQcmVmZXJl
bmNlcy5jYXN0KHZhbHVlKX0pCisKKyAgICAgICAgcHJvZmlsZV9jcmVhdG9yID0gUHJvZmlsZUNy
ZWF0b3IobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
d2FyZ3NbInByZWZzX3Jvb3QiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga3dhcmdzWyJleHRyYV9wcmVmcyJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImdlY2tvX2UxMHMiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJlbmFibGVfZmlzc2lvbiJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImJyb3dzZXJfY2hh
bm5lbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nb
ImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2Fy
Z3NbImNlcnR1dGlsX2JpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZy5zc2xfY29uZmlnWyJjYV9jZXJ0X3BhdGgi
XSkKKyAgICAgICAgaWYga3dhcmdzWyJwcm9jZXNzZXMiXSA+IDE6CisgICAgICAgICAgICAjIFdp
dGggbXVsdGlwbGUgcHJvY2Vzc2VzLCB3ZSB3b3VsZCBuZWVkIGEgcHJvZmlsZSBkaXJlY3Rvcnkg
cGVyIHByb2Nlc3MsIGJ1dCB3ZQorICAgICAgICAgICAgIyBkb24ndCBoYXZlIGFuIGVhc3kgd2F5
IHRvIGRvIHRoYXQsIHNvIGluY2x1ZGUgdGhlIHByb2ZpbGUgaW4gdGhlIGNhcGFiaWx0aWVzCisg
ICAgICAgICAgICAjIGRpcmVjdGx5IGluc3RlYWQuIFRoaXMgbWVhbnMgcmVjcmVhdGluZyBpdCBw
ZXIgc2Vzc2lvbiwgd2hpY2ggaXMgc2xvdworICAgICAgICAgICAgb3B0aW9uc1sicHJvZmlsZSJd
ID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0ZV9iYXNlNjQoKQorICAgICAgICAgICAgcHJvZmlsZSA9
IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByb2ZpbGUgPSBwcm9maWxlX2NyZWF0
b3IuY3JlYXRlKCkKKyAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXS5leHRlbmQoWyItLXByb2Zp
bGUiLCBwcm9maWxlLnByb2ZpbGVdKQorICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5lbnZf
ZXh0cmFzX2Ntcy5hcHBlbmQoV2RTcGVjUHJvZmlsZShwcm9maWxlKSkKKwogICAgICAgICBjYXBh
YmlsaXRpZXNbIm1vejpmaXJlZm94T3B0aW9ucyJdID0gb3B0aW9ucworCisgICAgICAgICMgVGhp
cyBnZXRzIHJldXNlZCBmb3IgZmlyZWZveF9hbmRyb2lkLCBidXQgdGhlIGVudmlyb25tZW50IHNl
dHVwCisgICAgICAgICMgaXNuJ3QgcmVxdWlyZWQgaW4gdGhhdCBjYXNlCisgICAgICAgIGlmIGt3
YXJnc1siYmluYXJ5Il06CisgICAgICAgICAgICBlbnZpcm9uID0gZ2V0X2Vudmlyb24obG9nZ2Vy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJzdHlsb190aHJlYWRzIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJoZWFkbGVzcyJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZW5hYmxlX3dlYnJlbmRl
ciJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siY2hhb3NfbW9k
ZV9mbGFncyJdKQorICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IHNldHVwX2xlYWtfcmVw
b3J0KGt3YXJnc1sibGVha19jaGVjayJdLCBwcm9maWxlLCBlbnZpcm9uKQorCisgICAgICAgICAg
ICAjIFRoaXMgZG9lc24ndCB3b3JrIHdpdGggd2RzcGVjIHRlc3RzCisgICAgICAgICAgICAjIElu
IHBhcnRpY3VsYXIgdGVzdHMgY2FuIGNyZWF0ZSBhIHNlc3Npb24gd2l0aG91dCBwYXNzaW5nIGlu
IHRoZSBjYXBhYmlsaXRlcworICAgICAgICAgICAgIyBhbmQgaW4gdGhvc2UgY2FzZXMgd2UgZ2V0
IHRoZSBkZWZhdWx0IGdlY2tvZHJpdmVyIHByb2ZpbGUgd2hpY2ggZG9lc24ndAorICAgICAgICAg
ICAgIyBndWFyYW50ZWUgemVybyBuZXR3b3JrIGFjY2VzcworICAgICAgICAgICAgZGVsIGVudmly
b25bIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NPTk5FQ1RJT05TIl0KKyAgICAgICAgICAgIGV4ZWN1
dG9yX2t3YXJnc1siZW52aXJvbiJdID0gZW52aXJvbgorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdIGFuZCAiLS1oZWFkbGVzcyIgbm90IGluIG9wdGlvbnNb
ImFyZ3MiXToKKyAgICAgICAgICAgICAgICBvcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhlYWRs
ZXNzIikKKyAgICAgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGUgPSBOb25lCisKKyAgICAgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJzdGFja2ZpeF9kaXIiXSA9IGt3YXJnc1sic3RhY2tmaXhfZGlyIl0sCisg
ICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sibGVha19yZXBvcnRfZmlsZSJdID0gbGVha19yZXBvcnRf
ZmlsZQorICAgICAgICBleGVjdXRvcl9rd2FyZ3NbImFzYW4iXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0
KCJhc2FuIikKKwogICAgIGlmIGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0gaXMgTm9uZToKICAg
ICAgICAgY2FwYWJpbGl0aWVzWyJhY2NlcHRJbnNlY3VyZUNlcnRzIl0gPSBUcnVlCiAgICAgaWYg
Y2FwYWJpbGl0aWVzOgpAQCAtMTQ0LDYgKzIwMyw3IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVz
dF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAg
IGV4ZWN1dG9yX2t3YXJnc1siZGVidWciXSA9IHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0KICAgICBl
eGVjdXRvcl9rd2FyZ3NbImNjb3YiXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0KCJjY292IiwgRmFsc2Up
CiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJicm93c2VyX3ZlcnNpb24iXSA9IHJ1bl9pbmZvX2RhdGEu
Z2V0KCJicm93c2VyX3ZlcnNpb24iKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siZGVidWdfdGVzdCJd
ID0ga3dhcmdzWyJkZWJ1Z190ZXN0Il0KICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKIApA
QCAtMTc3LDE2ICsyMzcsMTEgQEAgZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CiAgICAg
ICAgICAgIndhc20iOiBrd2FyZ3MuZ2V0KCJ3YXNtIiwgVHJ1ZSksCiAgICAgICAgICAgInZlcmlm
eSI6IGt3YXJnc1sidmVyaWZ5Il0sCiAgICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzLmdldCgi
aGVhZGxlc3MiLCBGYWxzZSkgb3IgIk1PWl9IRUFETEVTUyIgaW4gb3MuZW52aXJvbiwKLSAgICAg
ICAgICAic3ctZTEwcyI6IFRydWUsCi0gICAgICAgICAgImZpc3Npb24iOiBrd2FyZ3MuZ2V0KCJl
bmFibGVfZmlzc2lvbiIpIG9yIGdldF9ib29sX3ByZWYoImZpc3Npb24uYXV0b3N0YXJ0Iil9Ci0K
LSAgICAjIFRoZSB2YWx1ZSBvZiBgc3ctZTEwc2AgZGVmYXVsdHMgdG8gd2hldGhlciB0aGUgInBh
cmVudF9pbnRlcmNlcHQiCi0gICAgIyBpbXBsZW1lbnRhdGlvbiBpcyBlbmFibGVkIGZvciB0aGUg
Y3VycmVudCBidWlsZC4gVGhpcyB2YWx1ZSwgaG93ZXZlciwKLSAgICAjIGNhbiBiZSBvdmVycmlk
ZGVuIGJ5IGV4cGxpY2l0bHkgc2V0dGluZyB0aGUgcHJlZiB3aXRoIHRoZSBgLS1zZXRwcmVmYCBD
TEkKLSAgICAjIGZsYWcsIHdoaWNoIGlzIGNoZWNrZWQgaGVyZS4KLSAgICBzd19lMTBzX292ZXJy
aWRlID0gZ2V0X2Jvb2xfcHJlZl9pZl9leGlzdHMoImRvbS5zZXJ2aWNlV29ya2Vycy5wYXJlbnRf
aW50ZXJjZXB0IikKLSAgICBpZiBzd19lMTBzX292ZXJyaWRlIGlzIG5vdCBOb25lOgotICAgICAg
ICBydlsic3ctZTEwcyJdID0gc3dfZTEwc19vdmVycmlkZQorICAgICAgICAgICJmaXNzaW9uIjog
a3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24iKSBvciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1
dG9zdGFydCIpLAorICAgICAgICAgICJzZXNzaW9uSGlzdG9yeUluUGFyZW50IjogKGt3YXJncy5n
ZXQoImVuYWJsZV9maXNzaW9uIikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpIG9yCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5zZXNzaW9uSGlz
dG9yeUluUGFyZW50IikpLAorICAgICAgICAgICJzd2dsIjogZ2V0X2Jvb2xfcHJlZigiZ2Z4Lndl
YnJlbmRlci5zb2Z0d2FyZSIpfQogCiAgICAgcnYudXBkYXRlKHJ1bl9pbmZvX2Jyb3dzZXJfdmVy
c2lvbigqKmt3YXJncykpCiAKQEAgLTIwOCwxMSArMjYzLDQ2IEBAIGRlZiBydW5faW5mb19icm93
c2VyX3ZlcnNpb24oKiprd2FyZ3MpOgogCiAKIGRlZiB1cGRhdGVfcHJvcGVydGllcygpOgotICAg
IHJldHVybiAoWyJvcyIsICJkZWJ1ZyIsICJ3ZWJyZW5kZXIiLCAiZmlzc2lvbiIsICJlMTBzIiwg
InN3LWUxMHMiLCAicHJvY2Vzc29yIl0sCisgICAgcmV0dXJuIChbIm9zIiwgImRlYnVnIiwgIndl
YnJlbmRlciIsICJmaXNzaW9uIiwgImUxMHMiLCAicHJvY2Vzc29yIiwgInN3Z2wiXSwKICAgICAg
ICAgICAgIHsib3MiOiBbInZlcnNpb24iXSwgInByb2Nlc3NvciI6IFsiYml0cyJdfSkKIAogCi1j
bGFzcyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKG9iamVjdCk6CitkZWYgZ2V0X2Vudmlyb24obG9n
Z2VyLCBiaW5hcnksIGRlYnVnX2luZm8sIHN0eWxvX3RocmVhZHMsIGhlYWRsZXNzLCBlbmFibGVf
d2VicmVuZGVyLAorICAgICAgICAgICAgICAgIGNoYW9zX21vZGVfZmxhZ3M9Tm9uZSk6CisgICAg
ZW52ID0gdGVzdF9lbnZpcm9ubWVudCh4cmVQYXRoPW9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRp
cm5hbWUoYmluYXJ5KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dlcj1kZWJ1
Z19pbmZvIGlzIG5vdCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlTFNhbj1U
cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nPWxvZ2dlcikKKworICAgIGVudlsi
U1RZTE9fVEhSRUFEUyJdID0gc3RyKHN0eWxvX3RocmVhZHMpCisgICAgaWYgY2hhb3NfbW9kZV9m
bGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoY2hh
b3NfbW9kZV9mbGFncykKKyAgICBpZiBoZWFkbGVzczoKKyAgICAgICAgZW52WyJNT1pfSEVBRExF
U1MiXSA9ICIxIgorICAgIGlmIGVuYWJsZV93ZWJyZW5kZXI6CisgICAgICAgIGVudlsiTU9aX1dF
QlJFTkRFUiJdID0gIjEiCisgICAgICAgIGVudlsiTU9aX0FDQ0VMRVJBVEVEIl0gPSAiMSIKKyAg
ICBlbHNlOgorICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIwIgorICAgIHJldHVybiBl
bnYKKworCitkZWYgc2V0dXBfbGVha19yZXBvcnQobGVha19jaGVjaywgcHJvZmlsZSwgZW52KToK
KyAgICBsZWFrX3JlcG9ydF9maWxlID0gTm9uZQorICAgIGlmIGxlYWtfY2hlY2s6CisgICAgICAg
IGZpbGVuYW1lID0gInJ1bnRlc3RzX2xlYWtzXyVzLmxvZyIgJSBvcy5nZXRwaWQoKQorICAgICAg
ICBpZiBwcm9maWxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9
IG9zLnBhdGguam9pbihwcm9maWxlLnByb2ZpbGUsIGZpbGVuYW1lKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGguam9pbih0ZW1wZmlsZS5nZXR0
ZW1wZGlyKCksIGZpbGVuYW1lKQorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3JlcG9y
dF9maWxlKToKKyAgICAgICAgICAgIG9zLnJlbW92ZShsZWFrX3JlcG9ydF9maWxlKQorICAgICAg
ICBlbnZbIlhQQ09NX01FTV9CTE9BVF9MT0ciXSA9IGxlYWtfcmVwb3J0X2ZpbGUKKworICAgIHJl
dHVybiBsZWFrX3JlcG9ydF9maWxlCisKKworY2xhc3MgRmlyZWZveEluc3RhbmNlTWFuYWdlcjoK
ICAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCBiaW5hcnlfYXJncywgcHJvZmlsZV9jcmVhdG9yLCBkZWJ1Z19pbmZvLApA
QCAtMjY3LDIwICszNTcsOCBAQCBjbGFzcyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKG9iamVjdCk6
CiAgICAgICAgIG1hcmlvbmV0dGVfcG9ydCA9IGdldF9mcmVlX3BvcnQoKQogICAgICAgICBwcm9m
aWxlLnNldF9wcmVmZXJlbmNlcyh7Im1hcmlvbmV0dGUucG9ydCI6IG1hcmlvbmV0dGVfcG9ydH0p
CiAKLSAgICAgICAgZW52ID0gdGVzdF9lbnZpcm9ubWVudCh4cmVQYXRoPW9zLnBhdGguZGlybmFt
ZShzZWxmLmJpbmFyeSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdnZXI9
c2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVzZUxTYW49VHJ1ZSwgbG9nPXNlbGYubG9nZ2VyKQotCi0gICAgICAgIGVudlsiU1RZTE9f
VEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5bG9fdGhyZWFkcykKLSAgICAgICAgaWYgc2VsZi5jaGFv
c19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RF
Il0gPSBzdHIoc2VsZi5jaGFvc19tb2RlX2ZsYWdzKQotICAgICAgICBpZiBzZWxmLmhlYWRsZXNz
OgotICAgICAgICAgICAgZW52WyJNT1pfSEVBRExFU1MiXSA9ICIxIgotICAgICAgICBpZiBzZWxm
LmVuYWJsZV93ZWJyZW5kZXI6Ci0gICAgICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIx
IgotICAgICAgICAgICAgZW52WyJNT1pfQUNDRUxFUkFURUQiXSA9ICIxIgotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMCIKKyAgICAgICAgZW52ID0g
Z2V0X2Vudmlyb24oc2VsZi5sb2dnZXIsIHNlbGYuYmluYXJ5LCBzZWxmLmRlYnVnX2luZm8sIHNl
bGYuc3R5bG9fdGhyZWFkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oZWFkbGVz
cywgc2VsZi5lbmFibGVfd2VicmVuZGVyLCBzZWxmLmNoYW9zX21vZGVfZmxhZ3MpCiAKICAgICAg
ICAgYXJncyA9IHNlbGYuYmluYXJ5X2FyZ3NbOl0gaWYgc2VsZi5iaW5hcnlfYXJncyBlbHNlIFtd
CiAgICAgICAgIGFyZ3MgKz0gW2NtZF9hcmcoIm1hcmlvbmV0dGUiKSwgImFib3V0OmJsYW5rIl0K
QEAgLTI4OSwyNiArMzY3LDI2IEBAIGNsYXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIob2JqZWN0
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlYnVnX2luZm8pCiAK
LSAgICAgICAgaWYgc2VsZi5sZWFrX2NoZWNrOgotICAgICAgICAgICAgbGVha19yZXBvcnRfZmls
ZSA9IG9zLnBhdGguam9pbihwcm9maWxlLnByb2ZpbGUsICJydW50ZXN0c19sZWFrc18lcy5sb2ci
ICUgb3MuZ2V0cGlkKCkpCi0gICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3JlcG9y
dF9maWxlKToKLSAgICAgICAgICAgICAgICBvcy5yZW1vdmUobGVha19yZXBvcnRfZmlsZSkKLSAg
ICAgICAgICAgIGVudlsiWFBDT01fTUVNX0JMT0FUX0xPRyJdID0gbGVha19yZXBvcnRfZmlsZQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IE5vbmUKLQotICAg
ICAgICBvdXRwdXRfaGFuZGxlciA9IE91dHB1dEhhbmRsZXIoc2VsZi5sb2dnZXIsIHNlbGYuc3Rh
Y2tmaXhfZGlyLCBzZWxmLnN5bWJvbHNfcGF0aCwgc2VsZi5hc2FuKQorICAgICAgICBsZWFrX3Jl
cG9ydF9maWxlID0gc2V0dXBfbGVha19yZXBvcnQoc2VsZi5sZWFrX2NoZWNrLCBwcm9maWxlLCBl
bnYpCisgICAgICAgIG91dHB1dF9oYW5kbGVyID0gRmlyZWZveE91dHB1dEhhbmRsZXIoc2VsZi5s
b2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21k
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrZml4
X2Rpcj1zZWxmLnN0YWNrZml4X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNhbj1zZWxmLmFzYW4sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVha19yZXBvcnRfZmls
ZT1sZWFrX3JlcG9ydF9maWxlKQogICAgICAgICBydW5uZXIgPSBGaXJlZm94UnVubmVyKHByb2Zp
bGU9cHJvZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9Y21kWzBd
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZGFyZ3M9Y21kWzE6XSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3NfY2xhc3M9UHJvY2Vzc0hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzc19hcmdzPXsicHJvY2Vzc091dHB1dExpbmUiOiBbb3V0cHV0X2hhbmRs
ZXJdfSkKICAgICAgICAgaW5zdGFuY2UgPSBCcm93c2VySW5zdGFuY2Uoc2VsZi5sb2dnZXIsIHJ1
bm5lciwgbWFyaW9uZXR0ZV9wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXRwdXRfaGFuZGxlciwgbGVha19yZXBvcnRfZmlsZSkKIAogICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiU3RhcnRpbmcgRmlyZWZveCIpCi0gICAgICAgIHJ1bm5lci5zdGFydChkZWJ1Z19h
cmdzPWRlYnVnX2FyZ3MsIGludGVyYWN0aXZlPXNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5kZWJ1
Z19pbmZvLmludGVyYWN0aXZlKQorICAgICAgICBydW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1
Z19hcmdzLAorICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RpdmU9c2VsZi5kZWJ1Z19pbmZv
IGFuZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmUpCisgICAgICAgIG91dHB1dF9oYW5kbGVy
LmFmdGVyX3Byb2Nlc3Nfc3RhcnQocnVubmVyLnByb2Nlc3NfaGFuZGxlci5waWQpCiAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJGaXJlZm94IFN0YXJ0ZWQiKQogCiAgICAgICAgIHJldHVybiBp
bnN0YW5jZQpAQCAtMzMwLDYgKzQwOCw3IEBAIGNsYXNzIFNpbmdsZUluc3RhbmNlTWFuYWdlcihG
aXJlZm94SW5zdGFuY2VNYW5hZ2VyKToKICAgICAgICAgICAgIGlmIGluc3RhbmNlOgogICAgICAg
ICAgICAgICAgIGluc3RhbmNlLnN0b3AoZm9yY2UpCiAgICAgICAgICAgICAgICAgaW5zdGFuY2Uu
Y2xlYW51cCgpCisgICAgICAgIHNlbGYuYmFzZV9wcm9maWxlLmNsZWFudXAoKQogCiAKIGNsYXNz
IFByZWxvYWRJbnN0YW5jZU1hbmFnZXIoRmlyZWZveEluc3RhbmNlTWFuYWdlcik6CkBAIC0zNTIs
MTUgKzQzMSwxNiBAQCBjbGFzcyBQcmVsb2FkSW5zdGFuY2VNYW5hZ2VyKEZpcmVmb3hJbnN0YW5j
ZU1hbmFnZXIpOgogICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50CiAKICAgICBkZWYgdGVhcmRv
d24oc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBmb3IgaW5zdGFuY2UsIHNraXBfbWFyaW9u
ZXR0ZSBpbiBbKHNlbGYucHJldmlvdXMsIEZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZWxmLmN1cnJlbnQsIEZhbHNlKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLnBlbmRpbmcsIFRydWUpXToKKyAgICAg
ICAgZm9yIGluc3RhbmNlLCB1bnVzZWQgaW4gWyhzZWxmLnByZXZpb3VzLCBGYWxzZSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jdXJyZW50LCBGYWxzZSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5wZW5kaW5nLCBUcnVlKV06CiAgICAg
ICAgICAgICBpZiBpbnN0YW5jZToKLSAgICAgICAgICAgICAgICBpbnN0YW5jZS5zdG9wKGZvcmNl
LCBza2lwX21hcmlvbmV0dGU9c2tpcF9tYXJpb25ldHRlKQorICAgICAgICAgICAgICAgIGluc3Rh
bmNlLnN0b3AoZm9yY2UsIHVudXNlZCkKICAgICAgICAgICAgICAgICBpbnN0YW5jZS5jbGVhbnVw
KCkKKyAgICAgICAgc2VsZi5iYXNlX3Byb2ZpbGUuY2xlYW51cCgpCiAKIAotY2xhc3MgQnJvd3Nl
ckluc3RhbmNlKG9iamVjdCk6CitjbGFzcyBCcm93c2VySW5zdGFuY2U6CiAgICAgc2h1dGRvd25f
dGltZW91dCA9IDcwCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBydW5uZXIsIG1h
cmlvbmV0dGVfcG9ydCwgb3V0cHV0X2hhbmRsZXIsIGxlYWtfcmVwb3J0X2ZpbGUpOgpAQCAtMzcx
LDI1ICs0NTEsMzUgQEAgY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9iamVjdCk6CiAgICAgICAgIHNl
bGYub3V0cHV0X2hhbmRsZXIgPSBvdXRwdXRfaGFuZGxlcgogICAgICAgICBzZWxmLmxlYWtfcmVw
b3J0X2ZpbGUgPSBsZWFrX3JlcG9ydF9maWxlCiAKLSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1G
YWxzZSwgc2tpcF9tYXJpb25ldHRlPUZhbHNlKToKLSAgICAgICAgIiIiU3RvcCBGaXJlZm94IiIi
CisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UsIHVudXNlZD1GYWxzZSk6CisgICAgICAg
ICIiIlN0b3AgRmlyZWZveAorCisgICAgICAgIDpwYXJhbSBmb3JjZTogU2lnbmFsIHRoZSBmaXJl
Zm94IHByb2Nlc3Mgd2l0aG91dCB3YWl0aW5nIGZvciBhIGNsZWFuIHNodXRkb3duCisgICAgICAg
IDpwYXJhbSB1bnVzZWQ6IFRoaXMgaW5zdGFuY2Ugd2FzIG5vdCB1c2VkIGZvciBydW5uaW5nIHRl
c3RzIGFuZCBzbworICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGhhdmUgYW4gYWN0aXZl
IG1hcmlvbmV0dGUgc2Vzc2lvbiBhbmQgZG9lc24ndCByZXF1aXJlCisgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCBwb3N0cHJvY2Vzc2luZy4KKyAgICAgICAgIiIiCiAgICAgICAgIGlzX3J1
bm5pbmcgPSBzZWxmLnJ1bm5lciBpcyBub3QgTm9uZSBhbmQgc2VsZi5ydW5uZXIuaXNfcnVubmlu
ZygpCiAgICAgICAgIGlmIGlzX3J1bm5pbmc6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiU3RvcHBpbmcgRmlyZWZveCAlcyIgJSBzZWxmLnBpZCgpKQogICAgICAgICAgICAgc2h1dGRv
d25fbWV0aG9kcyA9IFsoVHJ1ZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci53YWl0KHNlbGYuc2h1dGRv
d25fdGltZW91dCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxh
bWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHVEVSTSkpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwu
U0lHS0lMTCkpXQotICAgICAgICAgICAgaWYgc2tpcF9tYXJpb25ldHRlOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWdu
YWwuU0lHVEVSTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zaHV0ZG93bl90aW1lb3V0KSldCisgICAgICAgICAg
ICBpZiBoYXNhdHRyKHNpZ25hbCwgIlNJR0tJTEwiKToKKyAgICAgICAgICAgICAgICBzaHV0ZG93
bl9tZXRob2RzLmFwcGVuZCgoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwu
U0lHS0lMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNodXRkb3duX3RpbWVvdXQpKSkKKyAgICAg
ICAgICAgIGlmIHVudXNlZCBvciBmb3JjZToKKyAgICAgICAgICAgICAgICAjIERvbid0IHdhaXQg
Zm9yIHRoZSBpbnN0YW5jZSB0byBjbG9zZSBpdHNlbGYKICAgICAgICAgICAgICAgICBzaHV0ZG93
bl9tZXRob2RzID0gc2h1dGRvd25fbWV0aG9kc1sxOl0KICAgICAgICAgICAgIHRyeToKICAgICAg
ICAgICAgICAgICAjIEZvciBGaXJlZm94IHdlIGFzc3VtZSB0aGF0IHN0b3BwaW5nIHRoZSBydW5u
ZXIgcHJvbXB0cyB0aGUKICAgICAgICAgICAgICAgICAjIGJyb3dzZXIgdG8gc2h1dCBkb3duLiBU
aGlzIGFsbG93cyB0aGUgbGVhayBsb2cgdG8gYmUgd3JpdHRlbgotICAgICAgICAgICAgICAgIGZv
ciBjbGVhbiwgc3RvcF9mIGluIHNodXRkb3duX21ldGhvZHM6Ci0gICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBmb3JjZSBvciBub3QgY2xlYW46Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXRj
b2RlID0gc3RvcF9mKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJldGNvZGUgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQnJv
d3NlciBleGl0ZWQgd2l0aCByZXR1cm4gY29kZSAlcyIgJSByZXRjb2RlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZm9yIGksIChjbGVhbiwgc3Rv
cF9mKSBpbiBlbnVtZXJhdGUoc2h1dGRvd25fbWV0aG9kcyk6CisgICAgICAgICAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJTaHV0dGluZyBkb3duIGF0dGVtcHQgJWkvJWkiICUgKGkgKyAx
LCBsZW4oc2h1dGRvd25fbWV0aG9kcykpKQorICAgICAgICAgICAgICAgICAgICByZXRjb2RlID0g
c3RvcF9mKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgcmV0Y29kZSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkJyb3dzZXIgZXhpdGVkIHdp
dGggcmV0dXJuIGNvZGUgJXMiICUgcmV0Y29kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCiAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAjIFRoaXMg
Y2FuIGhhcHBlbiBvbiBXaW5kb3dzIGlmIHRoZSBwcm9jZXNzIGlzIGFscmVhZHkgZGVhZAogICAg
ICAgICAgICAgICAgIHBhc3MKQEAgLTM5Nyw4ICs0ODcsOCBAQCBjbGFzcyBCcm93c2VySW5zdGFu
Y2Uob2JqZWN0KToKICAgICAgICAgICAgICMgVGhlIGJyb3dzZXIgd2FzIGFscmVhZHkgc3RvcHBl
ZCwgd2hpY2ggd2UgYXNzdW1lIHdhcyBhIGNyYXNoCiAgICAgICAgICAgICAjIFRPRE86IFNob3Vs
ZCB3ZSBjaGVjayB0aGUgZXhpdCBjb2RlIGhlcmU/CiAgICAgICAgICAgICBjbGVhbiA9IEZhbHNl
Ci0gICAgICAgIGlmIG5vdCBza2lwX21hcmlvbmV0dGU6Ci0gICAgICAgICAgICBzZWxmLm91dHB1
dF9oYW5kbGVyLmFmdGVyX3N0b3AoY2xlYW5fc2h1dGRvd249Y2xlYW4pCisgICAgICAgIGlmIG5v
dCB1bnVzZWQ6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nf
c3RvcChjbGVhbl9zaHV0ZG93bj1jbGVhbikKIAogICAgIGRlZiBwaWQoc2VsZik6CiAgICAgICAg
IGlmIHNlbGYucnVubmVyLnByb2Nlc3NfaGFuZGxlciBpcyBOb25lOgpAQCAtNDE1LDEyICs1MDUs
MTMgQEAgY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBGYWxz
ZQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgICMgbW96cHJvZmlsZSBoYW5kbGVz
IGRlbGV0aW5nIHRoZSBwcm9maWxlIHdoZW4gdGhlIHJlZmNvdW50IHJlYWNoZXMgMAorICAgICAg
ICBzZWxmLnJ1bm5lci5jbGVhbnVwKCkKICAgICAgICAgc2VsZi5ydW5uZXIgPSBOb25lCiAKIAot
Y2xhc3MgT3V0cHV0SGFuZGxlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIHN0YWNrZml4X2Rpciwgc3ltYm9sc19wYXRoLCBhc2FuKToKK2NsYXNzIEZpcmVmb3hPdXRw
dXRIYW5kbGVyKE91dHB1dEhhbmRsZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIs
IGNvbW1hbmQsIHN5bWJvbHNfcGF0aD1Ob25lLCBzdGFja2ZpeF9kaXI9Tm9uZSwgYXNhbj1GYWxz
ZSwKKyAgICAgICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZT1Ob25lKToKICAgICAgICAgIiIi
RmlsdGVyIGZvciBoYW5kbGluZyBGaXJlZm94IHByb2Nlc3Mgb3V0cHV0LgogCiAgICAgICAgIFRo
aXMgcmVjZWl2ZXMgRmlyZWZveCBwcm9jZXNzIG91dHB1dCBpbiB0aGUgX19jYWxsX18gZnVuY3Rp
b24sIGRvZXMKQEAgLTQzMSw5ICs1MjIsNyBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6
CiAgICAgICAgIG9mIHRoZSBvdXRwdXQgaGFuZGxlcnMuCiAgICAgICAgICIiIgogCi0gICAgICAg
IHNlbGYubG9nZ2VyID0gbG9nZ2VyCi0gICAgICAgICMgVGhlc2UgYXJlIGZpbGxlZCBpbiBhZnRl
ciBzZXR1cCgpIGlzIGNhbGxlZAotICAgICAgICBzZWxmLmluc3RhbmNlID0gTm9uZQorICAgICAg
ICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgY29tbWFuZCkKIAogICAgICAgICBzZWxmLnN5bWJv
bHNfcGF0aCA9IHN5bWJvbHNfcGF0aAogICAgICAgICBpZiBzdGFja2ZpeF9kaXI6CkBAIC00NDUs
MjEgKzUzNCwxOCBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBzZWxmLnN0YWNrX2ZpeGVyID0gTm9uZQogICAgICAgICBzZWxmLmFzYW4g
PSBhc2FuCisgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IGxlYWtfcmVwb3J0X2ZpbGUK
IAorICAgICAgICAjIFRoZXNlIGFyZSBmaWxsZWQgaW4gYWZ0ZXIgY29uZmlndXJlX2hhbmRsZXJz
KCkgaXMgY2FsbGVkCiAgICAgICAgIHNlbGYubHNhbl9oYW5kbGVyID0gTm9uZQogICAgICAgICBz
ZWxmLm1vemxlYWtfYWxsb3dlZCA9IE5vbmUKICAgICAgICAgc2VsZi5tb3psZWFrX3RocmVzaG9s
ZHMgPSBOb25lCiAgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRhdGEgPSB7fQogCi0gICAgICAgIHNl
bGYubGluZV9idWZmZXIgPSBbXQotICAgICAgICBzZWxmLnNldHVwX3JhbiA9IEZhbHNlCi0KLSAg
ICBkZWYgc2V0dXAoc2VsZiwgaW5zdGFuY2U9Tm9uZSwgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgbHNh
bl9kaXNhYmxlZD1GYWxzZSwKLSAgICAgICAgICAgICAgbHNhbl9hbGxvd2VkPU5vbmUsIGxzYW5f
bWF4X3N0YWNrX2RlcHRoPU5vbmUsIG1vemxlYWtfYWxsb3dlZD1Ob25lLAotICAgICAgICAgICAg
ICBtb3psZWFrX3RocmVzaG9sZHM9Tm9uZSwgKiprd2FyZ3MpOgorICAgIGRlZiBzdGFydChzZWxm
LCBncm91cF9tZXRhZGF0YT1Ob25lLCBsc2FuX2Rpc2FibGVkPUZhbHNlLCBsc2FuX2FsbG93ZWQ9
Tm9uZSwKKyAgICAgICAgICAgICAgbHNhbl9tYXhfc3RhY2tfZGVwdGg9Tm9uZSwgbW96bGVha19h
bGxvd2VkPU5vbmUsIG1vemxlYWtfdGhyZXNob2xkcz1Ob25lLAorICAgICAgICAgICAgICAqKmt3
YXJncyk6CiAgICAgICAgICIiIkNvbmZpZ3VyZSB0aGUgb3V0cHV0IGhhbmRsZXIiIiIKLSAgICAg
ICAgc2VsZi5pbnN0YW5jZSA9IGluc3RhbmNlCi0KICAgICAgICAgaWYgZ3JvdXBfbWV0YWRhdGEg
aXMgTm9uZToKICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0ge30KICAgICAgICAgc2VsZi5n
cm91cF9tZXRhZGF0YSA9IGdyb3VwX21ldGFkYXRhCkBAIC00NzUsMTggKzU2MSwxMyBAQCBjbGFz
cyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFsbG93QWxsPWxzYW5fZGlzYWJsZWQpCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBzZWxmLmxzYW5faGFuZGxlciA9IE5vbmUKKyAgICAgICAgc3VwZXIoKS5z
dGFydCgpCiAKLSAgICAgICAgc2VsZi5zZXR1cF9yYW4gPSBUcnVlCi0KLSAgICAgICAgZm9yIGxp
bmUgaW4gc2VsZi5saW5lX2J1ZmZlcjoKLSAgICAgICAgICAgIHNlbGYuX19jYWxsX18obGluZSkK
LSAgICAgICAgc2VsZi5saW5lX2J1ZmZlciA9IFtdCi0KLSAgICBkZWYgYWZ0ZXJfc3RvcChzZWxm
LCBjbGVhbl9zaHV0ZG93bj1UcnVlKToKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiUFJPQ0VT
UyBMRUFLUyAlcyIgJSBzZWxmLmluc3RhbmNlLmxlYWtfcmVwb3J0X2ZpbGUpCisgICAgZGVmIGFm
dGVyX3Byb2Nlc3Nfc3RvcChzZWxmLCBjbGVhbl9zaHV0ZG93bj1UcnVlKToKKyAgICAgICAgc3Vw
ZXIoKS5hZnRlcl9wcm9jZXNzX3N0b3AoY2xlYW5fc2h1dGRvd24pCiAgICAgICAgIGlmIHNlbGYu
bHNhbl9oYW5kbGVyOgogICAgICAgICAgICAgc2VsZi5sc2FuX2hhbmRsZXIucHJvY2VzcygpCi0g
ICAgICAgIGlmIHNlbGYuaW5zdGFuY2UubGVha19yZXBvcnRfZmlsZSBpcyBub3QgTm9uZToKKyAg
ICAgICAgaWYgc2VsZi5sZWFrX3JlcG9ydF9maWxlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAg
aWYgbm90IGNsZWFuX3NodXRkb3duOgogICAgICAgICAgICAgICAgICMgSWYgd2UgZGlkbid0IGdl
dCBhIGNsZWFuIHNodXRkb3duIHRoZXJlIHByb2JhYmx5IGlzbid0IGEgbGVhayByZXBvcnQgZmls
ZQogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZpcmVmb3ggZGlkbid0IGV4
aXQgY2xlYW5seSwgbm90IHByb2Nlc3NpbmcgbGVhayBsb2dzIikKQEAgLTQ5NCwyMSArNTc1LDI0
IEBAIGNsYXNzIE91dHB1dEhhbmRsZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAjIFdlIGhh
dmUgdG8gaWdub3JlIG1pc3NpbmcgbGVha3MgaW4gdGhlIHRhYiBiZWNhdXNlIGl0IGNhbiBoYXBw
ZW4gdGhhdCB0aGUKICAgICAgICAgICAgICAgICAjIGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVkIGFu
ZCBpbiB0aGF0IGNhc2Ugd2UgZG9uJ3Qgd2FudCB0aGUgdGVzdCB0byBmYWlsLgogICAgICAgICAg
ICAgICAgICMgSWRlYWxseSB3ZSB3b3VsZCByZWNvcmQgd2hpY2ggY29udGVudCBwcm9jZXNzIGNy
YXNoZWQgYW5kIGp1c3Qgc2tpcCB0aG9zZS4KKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5p
bmZvKCJQUk9DRVNTIExFQUtTICVzIiAlIHNlbGYubGVha19yZXBvcnRfZmlsZSkKICAgICAgICAg
ICAgICAgICBtb3psZWFrLnByb2Nlc3NfbGVha19sb2coCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuaW5zdGFuY2UubGVha19yZXBvcnRfZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5s
ZWFrX3JlcG9ydF9maWxlLAogICAgICAgICAgICAgICAgICAgICBsZWFrX3RocmVzaG9sZHM9c2Vs
Zi5tb3psZWFrX3RocmVzaG9sZHMsCiAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9taXNzaW5n
X2xlYWtzPVsidGFiIiwgImdtcGx1Z2luIl0sCiAgICAgICAgICAgICAgICAgICAgIGxvZz1zZWxm
LmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgc3RhY2tfZml4ZXI9c2VsZi5zdGFja19maXhl
ciwKICAgICAgICAgICAgICAgICAgICAgc2NvcGU9c2VsZi5ncm91cF9tZXRhZGF0YS5nZXQoInNj
b3BlIiksCiAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQ9c2VsZi5tb3psZWFrX2FsbG93ZWQp
CisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpOgor
ICAgICAgICAgICAgICAgIG9zLnVubGluayhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCiAKICAgICBk
ZWYgX19jYWxsX18oc2VsZiwgbGluZSk6CiAgICAgICAgICIiIldyaXRlIGEgbGluZSBvZiBvdXRw
dXQgZnJvbSB0aGUgZmlyZWZveCBwcm9jZXNzIHRvIHRoZSBsb2ciIiIKICAgICAgICAgaWYgYiJH
TGliLUdPYmplY3QtQ1JJVElDQUwiIGluIGxpbmU6CiAgICAgICAgICAgICByZXR1cm4KICAgICAg
ICAgaWYgbGluZToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnNldHVwX3JhbjoKKyAgICAgICAg
ICAgIGlmIHNlbGYuc3RhdGUgPCBPdXRwdXRIYW5kbGVyU3RhdGUuQUZURVJfSEFORExFUl9TVEFS
VDoKICAgICAgICAgICAgICAgICBzZWxmLmxpbmVfYnVmZmVyLmFwcGVuZChsaW5lKQogICAgICAg
ICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgZGF0YSA9IGxpbmUuZGVjb2RlKCJ1dGY4Iiwg
InJlcGxhY2UiKQpAQCAtNTE3LDE0ICs2MDEsMTIgQEAgY2xhc3MgT3V0cHV0SGFuZGxlcihvYmpl
Y3QpOgogICAgICAgICAgICAgaWYgc2VsZi5sc2FuX2hhbmRsZXI6CiAgICAgICAgICAgICAgICAg
ZGF0YSA9IHNlbGYubHNhbl9oYW5kbGVyLmxvZyhkYXRhKQogICAgICAgICAgICAgaWYgZGF0YSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChz
ZWxmLmluc3RhbmNlIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuaW5zdGFuY2UucnVubmVyLnByb2Nlc3NfaGFuZGxlciBhbmQKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluc3RhbmNlLnJ1bm5lci5wcm9j
ZXNzX2hhbmRsZXIucGlkLAorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0
cHV0KHNlbGYucGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFu
ZD0iICIuam9pbihzZWxmLmluc3RhbmNlLnJ1bm5lci5jb21tYW5kKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFu
ZCkpCiAKIAotY2xhc3MgUHJvZmlsZUNyZWF0b3Iob2JqZWN0KToKK2NsYXNzIFByb2ZpbGVDcmVh
dG9yOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywg
dGVzdF90eXBlLCBleHRyYV9wcmVmcywgZTEwcywKICAgICAgICAgICAgICAgICAgZW5hYmxlX2Zp
c3Npb24sIGJyb3dzZXJfY2hhbm5lbCwgYmluYXJ5LCBjZXJ0dXRpbF9iaW5hcnksIGNhX2NlcnRp
ZmljYXRlX3BhdGgpOgogICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgpAQCAtNTQwLDE4ICs2
MjIsMzggQEAgY2xhc3MgUHJvZmlsZUNyZWF0b3Iob2JqZWN0KToKICAgICAgICAgc2VsZi5jZXJ0
dXRpbF9iaW5hcnkgPSBjZXJ0dXRpbF9iaW5hcnkKICAgICAgICAgc2VsZi5jYV9jZXJ0aWZpY2F0
ZV9wYXRoID0gY2FfY2VydGlmaWNhdGVfcGF0aAogCi0gICAgZGVmIGNyZWF0ZShzZWxmKToKKyAg
ICBkZWYgY3JlYXRlKHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgIiIiQ3JlYXRlIGEgRmlyZWZv
eCBwcm9maWxlIGFuZCByZXR1cm4gdGhlIG1venByb2ZpbGUgUHJvZmlsZSBvYmplY3QgcG9pbnRp
bmcgYXQgdGhhdAotICAgICAgICBwcm9maWxlIiIiCisgICAgICAgIHByb2ZpbGUKKworICAgICAg
ICA6cGFyYW0ga3dhcmdzOiBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIGludG8gdGhlIHBy
b2ZpbGUgY29uc3RydWN0b3IKKyAgICAgICAgIiIiCiAgICAgICAgIHByZWZlcmVuY2VzID0gc2Vs
Zi5fbG9hZF9wcmVmcygpCiAKLSAgICAgICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKHByZWZl
cmVuY2VzPXByZWZlcmVuY2VzKQorICAgICAgICBwcm9maWxlID0gRmlyZWZveFByb2ZpbGUocHJl
ZmVyZW5jZXM9cHJlZmVyZW5jZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN0b3JlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3Mp
CiAgICAgICAgIHNlbGYuX3NldF9yZXF1aXJlZF9wcmVmcyhwcm9maWxlKQogICAgICAgICBpZiBz
ZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLl9z
ZXR1cF9zc2wocHJvZmlsZSkKIAogICAgICAgICByZXR1cm4gcHJvZmlsZQogCisgICAgZGVmIGNy
ZWF0ZV9iYXNlNjQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBwcm9maWxlID0gc2VsZi5jcmVh
dGUoKiprd2FyZ3MpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggaW8uQnl0ZXNJTygp
IGFzIGJ1ZjoKKyAgICAgICAgICAgICAgICB3aXRoIHppcGZpbGUuWmlwRmlsZShidWYsICJ3Iiwg
Y29tcHJlc3Npb249emlwZmlsZS5aSVBfREVGTEFURUQpIGFzIHppcGY6CisgICAgICAgICAgICAg
ICAgICAgIGZvciBkaXJwYXRoLCBfLCBmaWxlbmFtZXMgaW4gb3Mud2Fsayhwcm9maWxlLnByb2Zp
bGUpOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfcGF0aCA9IG9zLnBhdGguam9pbihkaXJw
YXRoLCBmaWxlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3BhdGggPSBv
cy5wYXRoLnJlbHBhdGgoc3JjX3BhdGgsIHByb2ZpbGUucHJvZmlsZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aXRoIG9wZW4oc3JjX3BhdGgsICJyYiIpIGFzIGY6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHppcGYud3JpdGVzdHIoZGVzdF9wYXRoLCBmLnJlYWQoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0LmI2NGVuY29kZShidWYuZ2V0dmFsdWUoKSku
ZGVjb2RlKCJhc2NpaSIpLnN0cmlwKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBy
b2ZpbGUuY2xlYW51cCgpCisKICAgICBkZWYgX2xvYWRfcHJlZnMoc2VsZik6CiAgICAgICAgIHBy
ZWZzID0gUHJlZmVyZW5jZXMoKQogCkBAIC02NDEsMTQgKzc0MywxMyBAQCBjbGFzcyBQcm9maWxl
Q3JlYXRvcihvYmplY3QpOgogCiAKICAgICAgICAgZW52W2Vudl92YXJdID0gKG9zLnBhdGgucGF0
aHNlcC5qb2luKFtjZXJ0dXRpbF9kaXIsIGVudltlbnZfdmFyXV0pCi0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiBlbnZfdmFyIGluIGVudiBlbHNlIGNlcnR1dGlsX2RpcikuZW5jb2RlKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSBvciAn
dXRmLTgnLCAncmVwbGFjZScpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBlbnZfdmFyIGlu
IGVudiBlbHNlIGNlcnR1dGlsX2RpcikKIAogICAgICAgICBkZWYgY2VydHV0aWwoKmFyZ3MpOgog
ICAgICAgICAgICAgY21kID0gW3NlbGYuY2VydHV0aWxfYmluYXJ5XSArIGxpc3QoYXJncykKICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KCJjZXJ0dXRpbCIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChj
bWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRl
cnI9c3VicHJvY2Vzcy5TVERPVVQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIiAiLmpvaW4oY21kKSkKIApAQCAtNjcwLDcgKzc3MSw2IEBAIGNsYXNzIFByb2ZpbGVD
cmVhdG9yKG9iamVjdCk6CiAgICAgICAgIGNlcnR1dGlsKCItTCIsICItZCIsIGNlcnRfZGJfcGF0
aCkKIAogCi0KIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgIGluaXRfdGltZW91
dCA9IDcwCiAKQEAgLTY3OSw3ICs3NzksOCBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2Vy
KToKICAgICAgICAgICAgICAgICAgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZhbHNl
LCBlbmFibGVfd2VicmVuZGVyPUZhbHNlLCBlbmFibGVfZmlzc2lvbj1GYWxzZSwKICAgICAgICAg
ICAgICAgICAgc3RhY2tmaXhfZGlyPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsIHRpbWVvdXRfbXVs
dGlwbGllcj1Ob25lLCBsZWFrX2NoZWNrPUZhbHNlLAogICAgICAgICAgICAgICAgICBhc2FuPUZh
bHNlLCBzdHlsb190aHJlYWRzPTEsIGNoYW9zX21vZGVfZmxhZ3M9Tm9uZSwgY29uZmlnPU5vbmUs
Ci0gICAgICAgICAgICAgICAgIGJyb3dzZXJfY2hhbm5lbD0ibmlnaHRseSIsIGhlYWRsZXNzPU5v
bmUsIHByZWxvYWRfYnJvd3Nlcj1GYWxzZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICBi
cm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLCBoZWFkbGVzcz1Ob25lLCBwcmVsb2FkX2Jyb3dzZXI9
RmFsc2UsCisgICAgICAgICAgICAgICAgIHNwZWNpYWxwb3dlcnNfcGF0aD1Ob25lLCAqKmt3YXJn
cyk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogCiAgICAgICAgIHNl
bGYubG9nZ2VyID0gbG9nZ2VyCkBAIC02ODgsNiArNzg5LDcgQEAgY2xhc3MgRmlyZWZveEJyb3dz
ZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICBzZWxmLmluaXRfdGltZW91dCA9IHNlbGYuaW5pdF90
aW1lb3V0ICogdGltZW91dF9tdWx0aXBsaWVyCiAKICAgICAgICAgc2VsZi5pbnN0YW5jZSA9IE5v
bmUKKyAgICAgICAgc2VsZi5fc2V0dGluZ3MgPSBOb25lCiAKICAgICAgICAgc2VsZi5zdGFja2Zp
eF9kaXIgPSBzdGFja2ZpeF9kaXIKICAgICAgICAgc2VsZi5zeW1ib2xzX3BhdGggPSBzeW1ib2xz
X3BhdGgKQEAgLTY5Niw2ICs3OTgsOCBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToK
ICAgICAgICAgc2VsZi5hc2FuID0gYXNhbgogICAgICAgICBzZWxmLmxlYWtfY2hlY2sgPSBsZWFr
X2NoZWNrCiAKKyAgICAgICAgc2VsZi5zcGVjaWFscG93ZXJzX3BhdGggPSBzcGVjaWFscG93ZXJz
X3BhdGgKKwogICAgICAgICBwcm9maWxlX2NyZWF0b3IgPSBQcm9maWxlQ3JlYXRvcihsb2dnZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZzX3Jvb3QsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZywKQEAgLTcyNiwx
OSArODMwLDE5IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGgsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzYW4p
CiAKLQogICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0ZXN0KToKLSAgICAgICAgcmV0dXJuIHsiY2hl
Y2tfbGVha3MiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIG5vdCB0ZXN0LmxlYWtzLAotICAgICAgICAg
ICAgICAgICJsc2FuX2Rpc2FibGVkIjogdGVzdC5sc2FuX2Rpc2FibGVkLAotICAgICAgICAgICAg
ICAgICJsc2FuX2FsbG93ZWQiOiB0ZXN0LmxzYW5fYWxsb3dlZCwKLSAgICAgICAgICAgICAgICAi
bHNhbl9tYXhfc3RhY2tfZGVwdGgiOiB0ZXN0LmxzYW5fbWF4X3N0YWNrX2RlcHRoLAotICAgICAg
ICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96
bGVha19hbGxvd2VkLAotICAgICAgICAgICAgICAgICJtb3psZWFrX3RocmVzaG9sZHMiOiBzZWxm
LmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha190aHJlc2hvbGR9CisgICAgICAgIHNlbGYuX3Nl
dHRpbmdzID0geyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVjayBhbmQgbm90IHRlc3QubGVh
a3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJsc2FuX2Rpc2FibGVkIjogdGVzdC5sc2Fu
X2Rpc2FibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibHNhbl9hbGxvd2VkIjogdGVz
dC5sc2FuX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJsc2FuX21heF9zdGFj
a19kZXB0aCI6IHRlc3QubHNhbl9tYXhfc3RhY2tfZGVwdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVh
a19hbGxvd2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibW96bGVha190aHJlc2hvbGRz
Ijogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1vemxlYWtfdGhyZXNob2xkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3BlY2lhbF9wb3dlcnMiOiBzZWxmLnNwZWNpYWxwb3dlcnNfcGF0
aCBhbmQgdGVzdC51cmxfYmFzZSA9PSAiL19tb3ppbGxhLyJ9CisgICAgICAgIHJldHVybiBzZWxm
Ll9zZXR0aW5ncwogCiAgICAgZGVmIHN0YXJ0KHNlbGYsIGdyb3VwX21ldGFkYXRhPU5vbmUsICoq
a3dhcmdzKToKICAgICAgICAgc2VsZi5pbnN0YW5jZSA9IHNlbGYuaW5zdGFuY2VfbWFuYWdlci5n
ZXQoKQotICAgICAgICBzZWxmLmluc3RhbmNlLm91dHB1dF9oYW5kbGVyLnNldHVwKHNlbGYuaW5z
dGFuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBf
bWV0YWRhdGEsCisgICAgICAgIHNlbGYuaW5zdGFuY2Uub3V0cHV0X2hhbmRsZXIuc3RhcnQoZ3Jv
dXBfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Kiprd2FyZ3MpCiAKICAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CkBAIC03NTYsNyAr
ODYwLDExIEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogCiAgICAgZGVmIGV4ZWN1
dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIGFzc2VydCBzZWxmLmluc3RhbmNlIGlzIG5vdCBO
b25lCi0gICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0Ijog
c2VsZi5pbnN0YW5jZS5tYXJpb25ldHRlX3BvcnR9CisgICAgICAgIGV4dGVuc2lvbnMgPSBbXQor
ICAgICAgICBpZiBzZWxmLl9zZXR0aW5ncy5nZXQoInNwZWNpYWxfcG93ZXJzIiwgRmFsc2UpOgor
ICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoc2VsZi5zcGVjaWFscG93ZXJzX3BhdGgpCisg
ICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0Ijogc2VsZi5p
bnN0YW5jZS5tYXJpb25ldHRlX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXh0ZW5zaW9ucyI6IGV4dGVuc2lvbnN9CiAKICAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwg
cHJvY2VzcywgdGVzdCk6CiAgICAgICAgIGR1bXBfZGlyID0gb3MucGF0aC5qb2luKHNlbGYuaW5z
dGFuY2UucnVubmVyLnByb2ZpbGUucHJvZmlsZSwgIm1pbmlkdW1wcyIpCkBAIC03NzEsMyArODc5
LDM5IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBleGNlcHQgSU9F
cnJvcjoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkxvb2tpbmcgZm9yIGNyYXNo
IGR1bXAgZmlsZXMgZmFpbGVkIikKICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNz
IEZpcmVmb3hXZFNwZWNCcm93c2VyKE51bGxCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBsZWFrX2NoZWNrPUZhbHNlLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKCku
X19pbml0X18obG9nZ2VyLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5sZWFrX2NoZWNrID0gbGVh
a19jaGVjaworCisgICAgZGVmIHNldHRpbmdzKHNlbGYsIHRlc3QpOgorICAgICAgICByZXR1cm4g
eyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVjayBhbmQgbm90IHRlc3QubGVha3MsCisgICAg
ICAgICAgICAgICAgImxzYW5fZGlzYWJsZWQiOiB0ZXN0LmxzYW5fZGlzYWJsZWQsCisgICAgICAg
ICAgICAgICAgImxzYW5fYWxsb3dlZCI6IHRlc3QubHNhbl9hbGxvd2VkLAorICAgICAgICAgICAg
ICAgICJsc2FuX21heF9zdGFja19kZXB0aCI6IHRlc3QubHNhbl9tYXhfc3RhY2tfZGVwdGgsCisg
ICAgICAgICAgICAgICAgIm1vemxlYWtfYWxsb3dlZCI6IHNlbGYubGVha19jaGVjayBhbmQgdGVz
dC5tb3psZWFrX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgIm1vemxlYWtfdGhyZXNob2xkcyI6
IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX3RocmVzaG9sZH0KKworCitjbGFzcyBH
ZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAgIG91dHB1dF9oYW5kbGVyX2Ns
cyA9IEZpcmVmb3hPdXRwdXRIYW5kbGVyCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBtYXJpb25ldHRlX3BvcnQ9MjgyOCwgYmluYXJ5PSJnZWNrb2RyaXZlciIsCisgICAgICAgICAg
ICAgICAgIGhvc3Q9IjEyNy4wLjAuMSIsIHBvcnQ9Tm9uZSwgZW52PU5vbmUsIGFyZ3M9Tm9uZSk6
CisgICAgICAgIGlmIGVudiBpcyBOb25lOgorICAgICAgICAgICAgZW52ID0gb3MuZW52aXJvbi5j
b3B5KCkKKyAgICAgICAgZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCisgICAgICAgIFdlYkRy
aXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhvc3Q9aG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcnQ9cG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1l
bnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCisgICAgICAg
IHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gbWFyaW9uZXR0ZV9wb3J0CisKKyAgICBkZWYgbWFrZV9j
b21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAg
ICAgICItLW1hcmlvbmV0dGUtcG9ydCIsIHN0cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCisgICAg
ICAgICAgICAgICAgIi0taG9zdCIsIHNlbGYuaG9zdCwKKyAgICAgICAgICAgICAgICAiLS1wb3J0
Iiwgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9pZS5weQppbmRleCA3OGMyMmI5MDlhY2YuLmM4NTFkYWYwYjYzYyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvaWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkKQEAgLTEsMTIgKzEsMTEgQEAKLWZyb20g
LmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKLWZyb20g
LmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKLWZyb20g
Li53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVyCitm
cm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dz
ZXIsIGdldF90aW1lb3V0X211bHRpcGxpZXIgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9y
cyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4u
ZXhlY3V0b3JzLmV4ZWN1dG9yaW50ZXJuZXRleHBsb3JlciBpbXBvcnQgSW50ZXJuZXRFeHBsb3Jl
ckRyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsi
cHJvZHVjdCI6ICJpZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2Fy
Z3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJJbnRlcm5ldEV4cGxvcmVyQnJvd3Nl
ciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIk51bGxCcm93c2VyIiwKICAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yIjogeyJ3ZHNwZWMiOiAiSW50ZXJuZXRFeHBsb3JlckRyaXZlcldk
c3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93
c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0
b3Jfa3dhcmdzIiwKQEAgLTE4LDE4ICsxNywxNyBAQCBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0
IjogImllIiwKIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2Fy
Z3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwg
cnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9n
Z2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJl
dHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAg
ICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9
CiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9t
YW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3Rf
dHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpOgogICAgIG9wdGlvbnMgPSB7fQogICAgIG9wdGlvbnNbInJlcXVpcmVXaW5k
b3dGb2N1cyJdID0gVHJ1ZQogICAgIGNhcGFiaWxpdGllcyA9IHt9CiAgICAgY2FwYWJpbGl0aWVz
WyJzZTppZU9wdGlvbnMiXSA9IG9wdGlvbnMKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4
ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwg
Kiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVz
dF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKICAgICBl
eGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBleGVjdXRvcl9r
d2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCiAgICAgcmV0dXJuIGV4ZWN1dG9y
X2t3YXJncwpAQCAtMzksMzUgKzM3LDMgQEAgZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgogCiBk
ZWYgZW52X29wdGlvbnMoKToKICAgICByZXR1cm4geyJzdXBwb3J0c19kZWJ1Z2dlciI6IEZhbHNl
fQotCi1jbGFzcyBJbnRlcm5ldEV4cGxvcmVyQnJvd3NlcihCcm93c2VyKToKLSAgICB1c2VkX3Bv
cnRzID0gc2V0KCkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9i
aW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgotICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNl
bGYsIGxvZ2dlcikKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBJbnRlcm5ldEV4cGxvcmVyRHJpdmVy
U2VydmVyKHNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdzKQot
ICAgICAgICBzZWxmLndlYmRyaXZlcl9ob3N0ID0gImxvY2FsaG9zdCIKLSAgICAgICAgc2VsZi53
ZWJkcml2ZXJfcG9ydCA9IHNlbGYuc2VydmVyLnBvcnQKLQotICAgIGRlZiBzdGFydChzZWxmLCAq
Kmt3YXJncyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKLQotICAgIGRlZiBzdG9wKHNl
bGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkK
LQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKLQot
ICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBp
bmRpY2F0ZXMgdGhlIHNlcnZlciBpcyBhbGl2ZSwKLSAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkg
YW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgotICAgICAgICAjIGlzIGFj
dGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKLQotICAgIGRlZiBj
bGVhbnVwKHNlbGYpOgotICAgICAgICBzZWxmLnN0b3AoKQotCi0gICAgZGVmIGV4ZWN1dG9yX2Jy
b3dzZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVy
X3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvb3BlcmEucHkKaW5kZXggODA1ZmVkZWU2MzZjLi5mM2EyOTI5Y2U4ZWIgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL29wZXJhLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CkBAIC0xLDQgKzEsNSBAQAogZnJv
bSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJv
bSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAuYmFzZSBpbXBv
cnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndlYmRyaXZl
cl9zZXJ2ZXIgaW1wb3J0IE9wZXJhRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9y
dCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKQEAgLTksNyArMTAsOCBA
QCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yb3BlcmEgaW1wb3J0IE9wZXJhRHJpdmVyV2RzcGVj
RXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIm9w
ZXJhIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAg
ICAgICAgICAgICAgICJicm93c2VyIjogIk9wZXJhQnJvd3NlciIsCisgICAgICAgICAgICAgICAg
ICJicm93c2VyIjoge05vbmU6ICJPcGVyYUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVj
dXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4
ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiT3BlcmFE
cml2ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMjQsMTggKzI2LDE3IEBAIGRlZiBjaGVja19hcmdz
KCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikK
IAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdz
WyJiaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJk
cml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0
KCJ3ZWJkcml2ZXJfYXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9y
X2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIGZyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCiAKLSAgICBleGVjdXRvcl9rd2FyZ3Mg
PSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJn
cykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBj
YXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmlsaXRpZXMuT1BFUkEuaXRlbXMoKSkKICAg
ICBjYXBhYmlsaXRpZXMuc2V0ZGVmYXVsdCgib3BlcmFPcHRpb25zIiwge30pWyJwcmVmcyJdID0g
ewpAQCAtNzEsNyArNzIsNyBAQCBjbGFzcyBPcGVyYUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgIiIi
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5h
cnk9Im9wZXJhZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6
CisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKICAgICAg
ICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBPcGVyYS4gIFRoZSBgYmluYXJ5
YCBhcmd1bWVudCBnaXZlcwogICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0
ZXN0aW5nLiIiIgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL3NhZmFyaS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQppbmRleCBjYjJiMTc1ZDRk
ZmIuLjIwYTU0NzVhY2YwYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3NhZmFyaS5weQpAQCAtMSw0ICsxLDExIEBACitpbXBvcnQgb3MKK2ltcG9ydCBwbGlzdGxpYgor
ZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorCitpbXBvcnQgcHN1
dGlsCisKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWly
ZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDEKIGZyb20g
LmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZyb20g
Li53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTYWZhcmlEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVj
dXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwpAQCAt
MTAsNyArMTcsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2FmYXJpIGltcG9ydCBTYWZh
cmlEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7
InByb2R1Y3QiOiAic2FmYXJpIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hl
Y2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIlNhZmFyaUJyb3dzZXIiLAor
ICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiU2FmYXJpQnJvd3NlciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAg
ICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFy
bmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0Ijog
IldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAid2RzcGVjIjogIlNhZmFyaURyaXZlcldkc3BlY0V4ZWN1dG9yIiwKQEAgLTI2LDE1ICszNCwx
NCBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAi
d2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2Vy
LCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVy
biB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKLSAgICAg
ICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9Cisg
ICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIp
LAorICAgICAgICAgICAgImtpbGxfc2FmYXJpIjoga3dhcmdzLmdldCgia2lsbF9zYWZhcmkiLCBG
YWxzZSl9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcs
IGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCitkZWYgZXhlY3V0
b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19k
YXRhLCAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykK
ICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBleGVj
dXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0ge30KICAgICBpZiB0ZXN0X3R5cGUgPT0gInRl
c3RoYXJuZXNzIjoKQEAgLTU4LDE1ICs2NSw2MCBAQCBjbGFzcyBTYWZhcmlCcm93c2VyKEJyb3dz
ZXIpOgogICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5TYWZhcmlEcml2ZXJTZXJ2ZXJgYC4KICAg
ICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnks
IHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdl
YmRyaXZlcl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUsIGtpbGxfc2FmYXJpPUZhbHNlLCAq
Kmt3YXJncyk6CiAgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgU2Fm
YXJpLiAgVGhlIGB3ZWJkcml2ZXJfYmluYXJ5YAogICAgICAgICBhcmd1bWVudCBnaXZlcyB0aGUg
V2ViRHJpdmVyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIChUaGUgYnJvd3NlcgogICAgICAg
ICBiaW5hcnkgbG9jYXRpb24gY2Fubm90IGJlIHNwZWNpZmllZCwgYXMgU2FmYXJpIGFuZCBTYWZh
cmlEcml2ZXIgYXJlCi0gICAgICAgIGNvdXBsZWQuKSIiIgorICAgICAgICBjb3VwbGVkLikgSWYg
YGtpbGxfc2FmYXJpYCBpcyBUcnVlLCB0aGVuIGBCcm93c2VyLnN0b3BgIHdpbGwgc3RvcCBTYWZh
cmkuIiIiCiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBz
ZWxmLnNlcnZlciA9IFNhZmFyaURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2Fy
Z3MpCisgICAgICAgIGlmICIvIiBub3QgaW4gd2ViZHJpdmVyX2JpbmFyeToKKyAgICAgICAgICAg
IHdkX3BhdGggPSBmaW5kX2V4ZWN1dGFibGUod2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHdkX3BhdGggPSB3ZWJkcml2ZXJfYmluYXJ5CisgICAgICAgIHNlbGYu
c2FmYXJpX3BhdGggPSBzZWxmLl9maW5kQXNzb2NpYXRlZFNhZmFyaUV4ZWN1dGFibGUod2RfcGF0
aCkKKworICAgICAgICBsb2dnZXIuZGVidWcoIldlYkRyaXZlciBleGVjdXRhYmxlIHBhdGg6ICVz
IiAlIHdkX3BhdGgpCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiU2FmYXJpIGV4ZWN1dGFibGUgcGF0
aDogJXMiICUgc2VsZi5zYWZhcmlfcGF0aCkKKworICAgICAgICBzZWxmLmtpbGxfc2FmYXJpID0g
a2lsbF9zYWZhcmkKKworICAgIGRlZiBfZmluZEFzc29jaWF0ZWRTYWZhcmlFeGVjdXRhYmxlKHNl
bGYsIHdkX3BhdGgpOgorICAgICAgICBidW5kbGVfcGF0aHMgPSBbCisgICAgICAgICAgICBvcy5w
YXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHdkX3BhdGgpLCAiLi4iLCAiLi4iKSwgICMgYnVuZGxl
ZCBTYWZhcmkgKGUuZy4gU1RQKQorICAgICAgICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGly
bmFtZSh3ZF9wYXRoKSwgIlNhZmFyaS5hcHAiKSwgICMgbG9jYWwgU2FmYXJpIGJ1aWxkCisgICAg
ICAgICAgICAiL0FwcGxpY2F0aW9ucy9TYWZhcmkuYXBwIiwgICMgc3lzdGVtIFNhZmFyaQorICAg
ICAgICBdCisKKyAgICAgICAgZm9yIGJ1bmRsZV9wYXRoIGluIGJ1bmRsZV9wYXRoczoKKyAgICAg
ICAgICAgIGluZm9fcGF0aCA9IG9zLnBhdGguam9pbihidW5kbGVfcGF0aCwgIkNvbnRlbnRzIiwg
IkluZm8ucGxpc3QiKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGluZm9fcGF0
aCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgd2l0aCBvcGVuKGlu
Zm9fcGF0aCwgInJiIikgYXMgZnA6CisgICAgICAgICAgICAgICAgaW5mbyA9IHBsaXN0bGliLmxv
YWQoZnApCisKKyAgICAgICAgICAgICMgY2hlY2sgd2UgaGF2ZSBhIFNhZmFyaSBmYW1pbHkgYnVu
ZGxlCisgICAgICAgICAgICBpZiAiQ0ZCdW5kbGVJZGVudGlmaWVyIiBub3QgaW4gaW5mbzoKKyAg
ICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWRlbnQgPSBpbmZvWyJDRkJ1bmRs
ZUlkZW50aWZpZXIiXQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaWRlbnQsIHN0cikg
b3Igbm90IGlkZW50LnN0YXJ0c3dpdGgoImNvbS5hcHBsZS5TYWZhcmkiKToKKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorCisgICAgICAgICAgICAjIGdldCB0aGUgZXhlY3V0YWJsZSBuYW1lCisg
ICAgICAgICAgICBpZiAiQ0ZCdW5kbGVFeGVjdXRhYmxlIiBub3QgaW4gaW5mbzoKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXhlID0gaW5mb1siQ0ZCdW5kbGVFeGVjdXRh
YmxlIl0KKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4ZSwgc3RyKToKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBleGVfcGF0aCA9IG9zLnBhdGguam9pbihi
dW5kbGVfcGF0aCwgIkNvbnRlbnRzIiwgIk1hY09TIiwgZXhlKQorICAgICAgICAgICAgaWYgbm90
IG9zLnBhdGguaXNmaWxlKGV4ZV9wYXRoKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisg
ICAgICAgICAgICByZXR1cm4gZXhlX3BhdGgKIAogICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJn
cyk6CiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQpAQCAtNzQsNiArMTI2
LDIwIEBAIGNsYXNzIFNhZmFyaUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgZGVmIHN0b3Aoc2VsZiwg
Zm9yY2U9RmFsc2UpOgogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQogCisg
ICAgICAgIGlmIHNlbGYua2lsbF9zYWZhcmk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiR29pbmcgdG8gc3RvcCBTYWZhcmkiKQorICAgICAgICAgICAgZm9yIHByb2MgaW4gcHN1dGls
LnByb2Nlc3NfaXRlcihhdHRycz1bImV4ZSJdKToKKyAgICAgICAgICAgICAgICBpZiBwcm9jLmlu
Zm9bImV4ZSJdIGlzIG5vdCBOb25lIGFuZCBvcy5wYXRoLnNhbWVmaWxlKHByb2MuaW5mb1siZXhl
Il0sIHNlbGYuc2FmYXJpX3BhdGgpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiU3RvcHBpbmcgU2FmYXJpICVzIiAlIHByb2MucGlkKQorICAgICAgICAgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLnRlcm1pbmF0ZSgpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYy53
YWl0KDEwKQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHBzdXRpbC5UaW1lb3V0RXhw
aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLmtpbGwoKQorICAgICAgICAg
ICAgICAgICAgICBleGNlcHQgcHN1dGlsLk5vU3VjaFByb2Nlc3M6CisgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNzCisKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5z
ZXJ2ZXIucGlkCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkK
aW5kZXggYzU3YWM5NDJlZDRlLi40OTEzMTk5MTc1OTkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNl
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5CkBAIC0xMiw3ICsxMiw3IEBAIGltcG9ydCB0aW1lCiAK
IGltcG9ydCByZXF1ZXN0cwogCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0
cmluZ0lPCitmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93
c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRf
dGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCkBAIC05NSwxNiArOTUsMTUgQEAgZGVm
IGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInNhdWNlX2tl
eSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29u
ZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1
bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHNhdWNlX2NvbmZpZyA9IGdldF9z
YXVjZV9jb25maWcoKiprd2FyZ3MpCiAKICAgICByZXR1cm4geyJzYXVjZV9jb25maWciOiBzYXVj
ZV9jb25maWd9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoq
a3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAKICAgICBl
eGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gZ2V0X2NhcGFiaWxpdGllcygqKmt3YXJn
cykKIApAQCAtMjI4LDcgKzIyNyw3IEBAIGNsYXNzIFNhdWNlRXhjZXB0aW9uKEV4Y2VwdGlvbik6
CiBjbGFzcyBTYXVjZUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0ID0gMzAwCiAK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBzYXVjZV9jb25maWcpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIHNhdWNlX2NvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICBC
cm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAgICAgICAgc2VsZi5zYXVjZV9jb25maWcg
PSBzYXVjZV9jb25maWcKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2
by5weQppbmRleCBiOTQ3NjU0MGFjN2MuLjE3OTFjMWRhMjcwNiAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2Vydm8ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKQEAgLTMzLDcgKzMzLDcgQEAgZGVmIGNoZWNr
X2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgImJpbmFyeSIpCiAKIAot
ZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3
YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7CiAgICAgICAgICJiaW5hcnkiOiBr
d2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdfaW5m
byJdLApAQCAtNDMsMTAgKzQzLDkgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19k
YXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9u
bWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgotICAg
IHJ2ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwg
Kiprd2FyZ3MpCisgICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3Rf
ZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQogICAgIHJ2WyJwYXVzZV9hZnRl
cl90ZXN0Il0gPSBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXQogICAgIGlmIHRlc3RfdHlwZSA9
PSAid2RzcGVjIjoKICAgICAgICAgcnZbImNhcGFiaWxpdGllcyJdID0ge30KQEAgLTcxLDcgKzcw
LDcgQEAgZGVmIHVwZGF0ZV9wcm9wZXJ0aWVzKCk6CiAKIGNsYXNzIFNlcnZvQnJvd3NlcihOdWxs
QnJvd3Nlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBkZWJ1Z19p
bmZvPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsCi0gICAgICAgICAgICAgICAgIHVzZXJfc3R5bGVz
aGVldHM9Tm9uZSwgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lKToKKyAgICAgICAgICAgICAgICAg
dXNlcl9zdHlsZXNoZWV0cz1Ob25lLCBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUsICoqa3dhcmdz
KToKICAgICAgICAgTnVsbEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBz
ZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZv
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5
CmluZGV4IDQzNzk0ZTQxNzA2ZC4uOWE2YTFhNDAyYjM2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2
b2RyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQpAQCAtNiwxMiArNiwxNiBAQCBm
cm9tIG1venByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAKIGZyb20gdG9vbHMuc2VydmUu
c2VydmUgaW1wb3J0IG1ha2VfaG9zdHNfZmlsZQogCi1mcm9tIC5iYXNlIGltcG9ydCBCcm93c2Vy
LCByZXF1aXJlX2FyZywgZ2V0X2ZyZWVfcG9ydCwgYnJvd3Nlcl9jb21tYW5kLCBFeGVjdXRvckJy
b3dzZXIKK2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIEV4
ZWN1dG9yQnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICBPdXRwdXRIYW5kbGVyLAorICAgICAg
ICAgICAgICAgICAgIHJlcXVpcmVfYXJnLAorICAgICAgICAgICAgICAgICAgIGdldF9mcmVlX3Bv
cnQsCisgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jb21tYW5kKQogZnJvbSAuYmFzZSBpbXBv
cnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9y
cyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4u
ZXhlY3V0b3JzLmV4ZWN1dG9yc2Vydm9kcml2ZXIgaW1wb3J0IChTZXJ2b1dlYkRyaXZlclRlc3Ro
YXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNlcnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3Fh
OiBGNDAxCi1mcm9tIC4ucHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYKIAogaGVyZSA9IG9zLnBhdGgu
ZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMzYsNyArNDAsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3
YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nl
cl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2Rl
ZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmln
LCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJpbmFyeSI6IGt3YXJnc1siYmlu
YXJ5Il0sCiAgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1siYmluYXJ5X2FyZ3MiXSwKQEAg
LTQ3LDkgKzUxLDggQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVz
dF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3
YXJncyk6Ci0gICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLCAqKmt3YXJncykKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5
cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICBydiA9
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgcmV0dXJuIHJ2CiAKIApAQCAtNzcsNyArODAsOCBAQCBj
bGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0ID0g
MzAwICAjIExhcmdlIHRpbWVvdXQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIGJvb3RpbmcgYW4gQW5k
cm9pZCBlbXVsYXRvcgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBk
ZWJ1Z19pbmZvPU5vbmUsIHdlYmRyaXZlcl9ob3N0PSIxMjcuMC4wLjEiLAotICAgICAgICAgICAg
ICAgICBzZXJ2ZXJfY29uZmlnPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsIHVzZXJfc3R5bGVzaGVl
dHM9Tm9uZSwgaGVhZGxlc3M9Tm9uZSk6CisgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWc9
Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgdXNlcl9zdHlsZXNoZWV0
cz1Ob25lLCBoZWFkbGVzcz1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0
X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBz
ZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3Mgb3IgW10KQEAgLTkxLDYgKzk1LDcgQEAgY2xh
c3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnVzZXJfc3R5
bGVzaGVldHMgPSB1c2VyX3N0eWxlc2hlZXRzIGlmIHVzZXJfc3R5bGVzaGVldHMgZWxzZSBbXQog
ICAgICAgICBzZWxmLmhlYWRsZXNzID0gaGVhZGxlc3MgaWYgaGVhZGxlc3MgZWxzZSBGYWxzZQog
ICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBzZXJ2ZXJfY29uZmlnLnNzbF9jb25m
aWdbImNhX2NlcnRfcGF0aCJdCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIgPSBOb25lCiAK
ICAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLndlYmRyaXZlcl9w
b3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCkBAIC0xMjksMTMgKzEzNCwxNiBAQCBjbGFzcyBTZXJ2b1dl
YkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuY29tbWFuZCA9IGRlYnVnX2Fy
Z3MgKyBzZWxmLmNvbW1hbmQKIAogICAgICAgICBpZiBub3Qgc2VsZi5kZWJ1Z19pbmZvIG9yIG5v
dCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9o
YW5kbGVyID0gT3V0cHV0SGFuZGxlcihzZWxmLmxvZ2dlciwgc2VsZi5jb21tYW5kKQogICAgICAg
ICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9W3NlbGYub25f
b3V0cHV0XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0
X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVu
diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlT3V0cHV0PUZh
bHNlKQogICAgICAgICAgICAgc2VsZi5wcm9jLnJ1bigpCisgICAgICAgICAgICBzZWxmLm91dHB1
dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RhcnQoc2VsZi5wcm9jLnBpZCkKKyAgICAgICAgICAg
IHNlbGYub3V0cHV0X2hhbmRsZXIuc3RhcnQoKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNvbW1hbmQsIGVudj1jYXN0X2Vudihl
bnYpKQorICAgICAgICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNvbW1h
bmQsIGVudj1lbnYpCiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNlcnZvIFN0YXJ0ZWQi
KQogCkBAIC0xNDcsNiArMTU1LDggQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dz
ZXIpOgogICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgIyBUaGlz
IGNhbiBoYXBwZW4gb24gV2luZG93cyBpZiB0aGUgcHJvY2VzcyBpcyBhbHJlYWR5IGRlYWQKICAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHNlbGYub3V0cHV0X2hhbmRsZXIgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3Rv
cCgpCiAKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLnByb2MgaXMgTm9uZToK
QEAgLTE1NywxMiArMTY3LDYgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIp
OgogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4gTm9u
ZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgIiIiV3JpdGUgYSBs
aW5lIG9mIG91dHB1dCBmcm9tIHRoZSBwcm9jZXNzIHRvIHRoZSBsb2ciIiIKLSAgICAgICAgc2Vs
Zi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFuZCkp
Ci0KICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnByb2MucG9s
bCgpIGlzIE5vbmUKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0
LnB5CmluZGV4IGRhOTNjZjE2NDM5OS4uYWQyNDc3MWFjOWNlIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93
ZWJraXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CkBAIC0xLDUgKzEsNSBAQAogZnJvbSAuYmFz
ZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwotZnJvbSAuYmFz
ZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qg
ICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIsIGdldF90aW1lb3V0
X211bHRpcGxpZXIsIGNlcnRpZmljYXRlX2RvbWFpbl9saXN0ICAjIG5vcWE6IEY0MDEKIGZyb20g
Li5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJn
cwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRl
c3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0
MDEKQEAgLTEwLDcgKzEwLDggQEAgZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFdlYktp
dERyaXZlclNlcnZlcgogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIndlYmtpdCIsCiAg
ICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAg
ICAgICAiYnJvd3NlciI6ICJXZWJLaXRCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiB7Tm9uZTogIldlYktpdEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3
YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsi
dGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Ii
LApAQCAtMjksNyArMzAsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWly
ZV9hcmcoa3dhcmdzLCAid2Via2l0X3BvcnQiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0
X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToK
ICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgIndl
YmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAg
ICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CkBAIC01NCwx
MiArNTUsMTEgQEAgZGVmIGNhcGFiaWxpdGllc19mb3JfcG9ydChzZXJ2ZXJfY29uZmlnLCAqKmt3
YXJncyk6CiAgICAgcmV0dXJuIHt9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUs
IHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0
b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19k
YXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdz
ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jf
a3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2Fy
Z3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCi0gICAg
ZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllc19mb3JfcG9ydChz
ZXJ2ZXJfY29uZmlnLAorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBh
YmlsaXRpZXNfZm9yX3BvcnQodGVzdF9lbnZpcm9ubWVudC5jb25maWcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykK
ICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKQEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgV2Vi
S2l0QnJvd3NlcihCcm93c2VyKToKICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lLAotICAgICAgICAgICAgICAgICB3
ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9u
ZSwgKiprd2FyZ3MpOgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAg
ICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBXZWJLaXRE
cml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvY29uZmlnLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvY29uZmlnLnB5CmluZGV4IGQ0NmJlYjhlNzFkYi4uOGE5YmRiZjczMGQ2IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9jb25maWcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5CkBAIC0xLDExICsxLDEyIEBACi1mcm9tIHNp
eC5tb3Zlcy5jb25maWdwYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQYXJzZXIKK2Zyb20gY29uZmln
cGFyc2VyIGltcG9ydCBDb25maWdQYXJzZXIKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBj
b2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIERp
Y3QKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAotY2xhc3MgQ29uZmlnRGlj
dChkaWN0KToKK2NsYXNzIENvbmZpZ0RpY3QoRGljdFtzdHIsIEFueV0pOgogICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBiYXNlX3BhdGgsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYuYmFz
ZV9wYXRoID0gYmFzZV9wYXRoCiAgICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgKmFyZ3MsICoq
a3dhcmdzKQpAQCAtMjAsNyArMjEsNyBAQCBjbGFzcyBDb25maWdEaWN0KGRpY3QpOgogZGVmIHJl
YWQoY29uZmlnX3BhdGgpOgogICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKGNvbmZp
Z19wYXRoKQogICAgIGNvbmZpZ19yb290ID0gb3MucGF0aC5kaXJuYW1lKGNvbmZpZ19wYXRoKQot
ICAgIHBhcnNlciA9IFNhZmVDb25maWdQYXJzZXIoKQorICAgIHBhcnNlciA9IENvbmZpZ1BhcnNl
cigpCiAgICAgc3VjY2VzcyA9IHBhcnNlci5yZWFkKGNvbmZpZ19wYXRoKQogICAgIGFzc2VydCBj
b25maWdfcGF0aCBpbiBzdWNjZXNzLCBzdWNjZXNzCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZW52aXJvbm1lbnQucHkKaW5kZXggMjUyN2QyNmQzOTFkLi4zZmU5NzE0NTZlZDYgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Vudmlyb25tZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CkBAIC0xLDE1ICsxLDE0IEBACiBpbXBv
cnQganNvbgogaW1wb3J0IG9zCi1pbXBvcnQgbXVsdGlwcm9jZXNzaW5nCiBpbXBvcnQgc2lnbmFs
CiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotZnJvbSBzaXggaW1wb3J0
IGl0ZXJpdGVtcwogCi1mcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1bHRfbG9nZ2VyLCBoYW5k
bGVycywgcHJveHkKK2Zyb20gbW96bG9nIGltcG9ydCBnZXRfZGVmYXVsdF9sb2dnZXIsIGhhbmRs
ZXJzCiAKLWZyb20gLndwdGxvZ2dpbmcgaW1wb3J0IExvZ0xldmVsUmV3cml0ZXIKK2Zyb20gLiBp
bXBvcnQgbXBjb250ZXh0Citmcm9tIC53cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3JpdGVy
LCBRdWV1ZUhhbmRsZXIsIExvZ1F1ZXVlVGhyZWFkCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pCiByZXBvX3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUs
IG9zLnBhcmRpciwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQpAQCAtNTAsMjQgKzQ5LDU4IEBAIGNs
YXNzIFRlc3RFbnZpcm9ubWVudEVycm9yKEV4Y2VwdGlvbik6CiAgICAgcGFzcwogCiAKK2RlZiBn
ZXRfc2VydmVyX2xvZ2dlcigpOgorICAgIGxvZ2dlciA9IGdldF9kZWZhdWx0X2xvZ2dlcihjb21w
b25lbnQ9IndwdHNlcnZlIikKKyAgICBsb2dfZmlsdGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxGaWx0
ZXIobGFtYmRhIHg6IHgsICJpbmZvIikKKyAgICAjIERvd25ncmFkZSBlcnJvcnMgdG8gd2Fybmlu
Z3MgZm9yIHRoZSBzZXJ2ZXIKKyAgICBsb2dfZmlsdGVyID0gTG9nTGV2ZWxSZXdyaXRlcihsb2df
ZmlsdGVyLCBbImVycm9yIl0sICJ3YXJuaW5nIikKKyAgICBsb2dnZXIuY29tcG9uZW50X2ZpbHRl
ciA9IGxvZ19maWx0ZXIKKyAgICByZXR1cm4gbG9nZ2VyCisKKworY2xhc3MgUHJveHlMb2dnaW5n
Q29udGV4dDoKKyAgICAiIiJDb250ZXh0IG1hbmFnZXIgb2JqZWN0IHRoYXQgaGFuZGxlcyBzZXR1
cCBhbmQgdGVhcmRvd24gb2YgYSBsb2cgcXVldWUKKyAgICBmb3IgaGFuZGxpbmcgbG9nZ2luZyBt
ZXNzYWdlcyBmcm9tIHdwdHNlcnZlLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
cik6CisgICAgICAgIG1wX2NvbnRleHQgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAg
ICBzZWxmLmxvZ19xdWV1ZSA9IG1wX2NvbnRleHQuUXVldWUoKQorICAgICAgICBzZWxmLmxvZ2dp
bmdfdGhyZWFkID0gTG9nUXVldWVUaHJlYWQoc2VsZi5sb2dfcXVldWUsIGxvZ2dlcikKKyAgICAg
ICAgc2VsZi5sb2dnZXJfaGFuZGxlciA9IFF1ZXVlSGFuZGxlcihzZWxmLmxvZ19xdWV1ZSkKKwor
ICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuc3Rh
cnQoKQorICAgICAgICByZXR1cm4gc2VsZi5sb2dnZXJfaGFuZGxlcgorCisgICAgZGVmIF9fZXhp
dF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgc2VsZi5sb2dfcXVldWUucHV0KE5vbmUpCisgICAg
ICAgICMgV2FpdCBmb3IgdGhyZWFkIHRvIHNodXQgZG93biBidXQgbm90IGZvciB0b28gbG9uZyBz
aW5jZSBpdCdzIGEgZGFlbW9uCisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuam9pbigxKQor
CisKIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICIiIkNvbnRleHQgbWFuYWdl
ciB0aGF0IG93bnMgdGhlIHRlc3QgZW52aXJvbm1lbnQgaS5lLiB0aGUgaHR0cCBhbmQKICAgICB3
ZWJzb2NrZXRzIHNlcnZlcnMiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywg
dGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIsCi0gICAgICAgICAgICAgICAgIHBhdXNlX2Fm
dGVyX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCisg
ICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rlc3QsIGRlYnVnX3Rlc3QsIGRlYnVnX2luZm8s
IG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCiAgICAgICAgICAgICAgICAgIGVuYWJs
ZV9xdWljPUZhbHNlLCBtb2pvanNfcGF0aD1Ob25lKToKKwogICAgICAgICBzZWxmLnRlc3RfcGF0
aHMgPSB0ZXN0X3BhdGhzCiAgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQogICAgICAgICBzZWxm
LmNvbmZpZ19jdHggPSBOb25lCiAgICAgICAgIHNlbGYuY29uZmlnID0gTm9uZQorICAgICAgICBz
ZWxmLnNlcnZlcl9sb2dnZXIgPSBnZXRfc2VydmVyX2xvZ2dlcigpCisgICAgICAgIHNlbGYuc2Vy
dmVyX2xvZ2dpbmdfY3R4ID0gUHJveHlMb2dnaW5nQ29udGV4dChzZWxmLnNlcnZlcl9sb2dnZXIp
CiAgICAgICAgIHNlbGYudGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIgPSB0ZXN0aGFybmVz
c190aW1lb3V0X211bHRpcGxlcgogICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBwYXVz
ZV9hZnRlcl90ZXN0CisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKICAgICAg
ICAgc2VsZi50ZXN0X3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3AoInRlc3Rfc2VydmVyX3BvcnQi
LCBUcnVlKQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCiAgICAgICAgIHNl
bGYub3B0aW9ucyA9IG9wdGlvbnMgaWYgb3B0aW9ucyBpcyBub3QgTm9uZSBlbHNlIHt9CiAKLSAg
ICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyID0gbXVsdGlwcm9jZXNzaW5nLk1hbmFnZXIoKQotICAg
ICAgICBzZWxmLnN0YXNoID0gc2VydmUuc3Rhc2guU3Rhc2hTZXJ2ZXIoKQorICAgICAgICBtcF9j
b250ZXh0ID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2VsZi5jYWNoZV9tYW5h
Z2VyID0gbXBfY29udGV4dC5NYW5hZ2VyKCkKKyAgICAgICAgc2VsZi5zdGFzaCA9IHNlcnZlLnN0
YXNoLlN0YXNoU2VydmVyKG1wX2NvbnRleHQ9bXBfY29udGV4dCkKICAgICAgICAgc2VsZi5lbnZf
ZXh0cmFzID0gZW52X2V4dHJhcwogICAgICAgICBzZWxmLmVudl9leHRyYXNfY21zID0gTm9uZQog
ICAgICAgICBzZWxmLnNzbF9jb25maWcgPSBzc2xfY29uZmlnCkBAIC03NSw2ICsxMDgsNyBAQCBj
bGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgc2VsZi5tb2pvanNfcGF0aCA9
IG1vam9qc19wYXRoCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBzZXJ2ZXJf
bG9nX2hhbmRsZXIgPSBzZWxmLnNlcnZlcl9sb2dnaW5nX2N0eC5fX2VudGVyX18oKQogICAgICAg
ICBzZWxmLmNvbmZpZ19jdHggPSBzZWxmLmJ1aWxkX2NvbmZpZygpCiAKICAgICAgICAgc2VsZi5j
b25maWcgPSBzZWxmLmNvbmZpZ19jdHguX19lbnRlcl9fKCkKQEAgLTgyLDggKzExNiw2IEBAIGNs
YXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICBzZWxmLnN0YXNoLl9fZW50ZXJf
XygpCiAgICAgICAgIHNlbGYuY2FjaGVfbWFuYWdlci5fX2VudGVyX18oKQogCi0gICAgICAgIHNl
bGYuc2V0dXBfc2VydmVyX2xvZ2dpbmcoKQotCiAgICAgICAgIGFzc2VydCBzZWxmLmVudl9leHRy
YXNfY21zIGlzIE5vbmUsICgKICAgICAgICAgICAgICJBIFRlc3RFbnZpcm9ubWVudCBvYmplY3Qg
Y2Fubm90IGJlIG5lc3RlZCIpCiAKQEAgLTk0LDggKzEyNiwxMSBAQCBjbGFzcyBUZXN0RW52aXJv
bm1lbnQob2JqZWN0KToKICAgICAgICAgICAgIGNtLl9fZW50ZXJfXygpCiAgICAgICAgICAgICBz
ZWxmLmVudl9leHRyYXNfY21zLmFwcGVuZChjbSkKIAotICAgICAgICBzZWxmLnNlcnZlcnMgPSBz
ZXJ2ZS5zdGFydChzZWxmLmNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5nZXRfcm91dGVzKCkpCisgICAgICAgIHNlbGYuc2VydmVycyA9IHNlcnZlLnN0YXJ0
KHNlbGYuc2VydmVyX2xvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0
X3JvdXRlcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcF9jb250ZXh0
PW1wY29udGV4dC5nZXRfY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2dfaGFuZGxlcnM9W3NlcnZlcl9sb2dfaGFuZGxlcl0pCiAKICAgICAgICAgaWYgc2Vs
Zi5vcHRpb25zLmdldCgic3VwcG9ydHNfZGVidWdnZXIiKSBhbmQgc2VsZi5kZWJ1Z19pbmZvIGFu
ZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICBzZWxmLmlnbm9yZV9p
bnRlcnJ1cHRzKCkKQEAgLTEwNCw5ICsxMzksOSBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2Jq
ZWN0KToKICAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190Yik6
CiAgICAgICAgIHNlbGYucHJvY2Vzc19pbnRlcnJ1cHRzKCkKIAotICAgICAgICBmb3Igc2NoZW1l
LCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Igc2NoZW1l
LCBzZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHBvcnQs
IHNlcnZlciBpbiBzZXJ2ZXJzOgotICAgICAgICAgICAgICAgIHNlcnZlci5raWxsKCkKKyAgICAg
ICAgICAgICAgICBzZXJ2ZXIuc3RvcCgpCiAgICAgICAgIGZvciBjbSBpbiBzZWxmLmVudl9leHRy
YXNfY21zOgogICAgICAgICAgICAgY20uX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190
YikKIApAQCAtMTE1LDYgKzE1MCw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgog
ICAgICAgICBzZWxmLmNhY2hlX21hbmFnZXIuX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4
Y190YikKICAgICAgICAgc2VsZi5zdGFzaC5fX2V4aXRfXygpCiAgICAgICAgIHNlbGYuY29uZmln
X2N0eC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQorICAgICAgICBzZWxmLnNl
cnZlcl9sb2dnaW5nX2N0eC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQogCiAg
ICAgZGVmIGlnbm9yZV9pbnRlcnJ1cHRzKHNlbGYpOgogICAgICAgICBzaWduYWwuc2lnbmFsKHNp
Z25hbC5TSUdJTlQsIHNpZ25hbC5TSUdfSUdOKQpAQCAtMTI1LDExICsxNjEsMTUgQEAgY2xhc3Mg
VGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgZGVmIGJ1aWxkX2NvbmZpZyhzZWxmKToKICAg
ICAgICAgb3ZlcnJpZGVfcGF0aCA9IG9zLnBhdGguam9pbihzZXJ2ZV9wYXRoKHNlbGYudGVzdF9w
YXRocyksICJjb25maWcuanNvbiIpCiAKLSAgICAgICAgY29uZmlnID0gc2VydmUuQ29uZmlnQnVp
bGRlcigpCisgICAgICAgIGNvbmZpZyA9IHNlcnZlLkNvbmZpZ0J1aWxkZXIoc2VsZi5zZXJ2ZXJf
bG9nZ2VyKQogCiAgICAgICAgIHBvcnRzID0gewogICAgICAgICAgICAgImh0dHAiOiBbODAwMCwg
ODAwMV0sCisgICAgICAgICAgICAiaHR0cC1wcml2YXRlIjogWzgwMDJdLAorICAgICAgICAgICAg
Imh0dHAtcHVibGljIjogWzgwMDNdLAogICAgICAgICAgICAgImh0dHBzIjogWzg0NDMsIDg0NDRd
LAorICAgICAgICAgICAgImh0dHBzLXByaXZhdGUiOiBbODQ0NV0sCisgICAgICAgICAgICAiaHR0
cHMtcHVibGljIjogWzg0NDZdLAogICAgICAgICAgICAgIndzIjogWzg4ODhdLAogICAgICAgICAg
ICAgIndzcyI6IFs4ODg5XSwKICAgICAgICAgICAgICJoMiI6IFs5MDAwXSwKQEAgLTE2MCwyNCAr
MjAwLDYgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJu
IGNvbmZpZwogCi0gICAgZGVmIHNldHVwX3NlcnZlcl9sb2dnaW5nKHNlbGYpOgotICAgICAgICBz
ZXJ2ZXJfbG9nZ2VyID0gZ2V0X2RlZmF1bHRfbG9nZ2VyKGNvbXBvbmVudD0id3B0c2VydmUiKQot
ICAgICAgICBhc3NlcnQgc2VydmVyX2xvZ2dlciBpcyBub3QgTm9uZQotICAgICAgICBsb2dfZmls
dGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxGaWx0ZXIobGFtYmRhIHg6IHgsICJpbmZvIikKLSAgICAg
ICAgIyBEb3duZ3JhZGUgZXJyb3JzIHRvIHdhcm5pbmdzIGZvciB0aGUgc2VydmVyCi0gICAgICAg
IGxvZ19maWx0ZXIgPSBMb2dMZXZlbFJld3JpdGVyKGxvZ19maWx0ZXIsIFsiZXJyb3IiXSwgIndh
cm5pbmciKQotICAgICAgICBzZXJ2ZXJfbG9nZ2VyLmNvbXBvbmVudF9maWx0ZXIgPSBsb2dfZmls
dGVyCi0KLSAgICAgICAgc2VydmVyX2xvZ2dlciA9IHByb3h5LlF1ZXVlZFByb3h5TG9nZ2VyKHNl
cnZlcl9sb2dnZXIpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBTZXQgYXMgdGhlIGRl
ZmF1bHQgbG9nZ2VyIGZvciB3cHRzZXJ2ZQotICAgICAgICAgICAgc2VydmUuc2V0X2xvZ2dlcihz
ZXJ2ZXJfbG9nZ2VyKQotICAgICAgICAgICAgc2VydmUubG9nZ2VyID0gc2VydmVyX2xvZ2dlcgot
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgIyBUaGlzIGhhcHBlbnMgaWYg
bG9nZ2luZyBoYXMgYWxyZWFkeSBiZWVuIHNldCB1cCBmb3Igd3B0c2VydmUKLSAgICAgICAgICAg
IHBhc3MKLQogICAgIGRlZiBnZXRfcm91dGVzKHNlbGYpOgogICAgICAgICByb3V0ZV9idWlsZGVy
ID0gc2VydmUuUm91dGVzQnVpbGRlcigpCiAKQEAgLTE5MSw3ICsyMTMsOCBAQCBjbGFzcyBUZXN0
RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAoc2VsZi5vcHRpb25zLmdldCgi
dGVzdGhhcm5lc3NyZXBvcnQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMiKSwKICAgICAgICAgICAg
ICAgICAgeyJvdXRwdXQiOiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QsCiAgICAgICAgICAgICAgICAg
ICAidGltZW91dF9tdWx0aXBsaWVyIjogc2VsZi50ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxl
ciwKLSAgICAgICAgICAgICAgICAgICJleHBsaWNpdF90aW1lb3V0IjogInRydWUiIGlmIHNlbGYu
ZGVidWdfaW5mbyBpcyBub3QgTm9uZSBlbHNlICJmYWxzZSJ9LAorICAgICAgICAgICAgICAgICAg
ImV4cGxpY2l0X3RpbWVvdXQiOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25l
IGVsc2UgImZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICJkZWJ1ZyI6ICJ0cnVlIiBpZiBzZWxm
LmRlYnVnX3Rlc3QgZWxzZSAiZmFsc2UifSwKICAgICAgICAgICAgICAgICAgInRleHQvamF2YXNj
cmlwdDtjaGFyc2V0PXV0ZjgiLAogICAgICAgICAgICAgICAgICAiL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyIpXToKICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLm5vcm1wYXRoKG9z
LnBhdGguam9pbihoZXJlLCBwYXRoKSkKQEAgLTIwOSw3ICsyMzIsNyBAQCBjbGFzcyBUZXN0RW52
aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgcm91dGVfYnVpbGRlci5hZGRfaGFuZGxlcigiR0VU
IiwgIi9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU3RyaW5nSGFuZGxlcihkYXRhLCAidGV4dC9qYXZhc2NyaXB0IikpCiAKLSAgICAg
ICAgZm9yIHVybF9iYXNlLCBwYXRocyBpbiBpdGVyaXRlbXMoc2VsZi50ZXN0X3BhdGhzKToKKyAg
ICAgICAgZm9yIHVybF9iYXNlLCBwYXRocyBpbiBzZWxmLnRlc3RfcGF0aHMuaXRlbXMoKToKICAg
ICAgICAgICAgIGlmIHVybF9iYXNlID09ICIvIjoKICAgICAgICAgICAgICAgICBjb250aW51ZQog
ICAgICAgICAgICAgcm91dGVfYnVpbGRlci5hZGRfbW91bnRfcG9pbnQodXJsX2Jhc2UsIHBhdGhz
WyJ0ZXN0c19wYXRoIl0pCkBAIC0yNDEsMTMgKzI2NCwxMyBAQCBjbGFzcyBUZXN0RW52aXJvbm1l
bnQob2JqZWN0KToKICAgICAgICAgZmFpbGVkID0gW10KICAgICAgICAgcGVuZGluZyA9IFtdCiAg
ICAgICAgIGhvc3QgPSBzZWxmLmNvbmZpZ1sic2VydmVyX2hvc3QiXQotICAgICAgICBmb3Igc2No
ZW1lLCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Igc2No
ZW1lLCBzZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHBv
cnQsIHNlcnZlciBpbiBzZXJ2ZXJzOgogICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXIuaXNf
YWxpdmUoKToKICAgICAgICAgICAgICAgICAgICAgZmFpbGVkLmFwcGVuZCgoc2NoZW1lLCBwb3J0
KSkKIAogICAgICAgICBpZiBub3QgZmFpbGVkIGFuZCBzZWxmLnRlc3Rfc2VydmVyX3BvcnQ6Ci0g
ICAgICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMp
OgorICAgICAgICAgICAgZm9yIHNjaGVtZSwgc2VydmVycyBpbiBzZWxmLnNlcnZlcnMuaXRlbXMo
KToKICAgICAgICAgICAgICAgICAjIFRPRE8oSGV4Y2xlcyk6IEZpbmQgYSB3YXkgdG8gdGVzdCBR
VUlDJ3MgVURQIHBvcnQuCiAgICAgICAgICAgICAgICAgaWYgc2NoZW1lID09ICJxdWljLXRyYW5z
cG9ydCI6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0yNTYsNyArMjc5LDcgQEAg
Y2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHMuc2V0
dGltZW91dCgwLjEpCiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAg
ICAgICAgIHMuY29ubmVjdCgoaG9zdCwgcG9ydCkpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2Vw
dCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAg
ICAgICAgICAgICAgICAgICAgICAgcGVuZGluZy5hcHBlbmQoKGhvc3QsIHBvcnQpKQogICAgICAg
ICAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgICAgICAgICAgcy5jbG9zZSgp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5CmluZGV4
IGIxMWQzMGJiOTRhYS4uOTYzZWQzMzdmZGU0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weQpAQCAtMTMsNiArMTMsMTggQEAgY2xhc3MgQ2xpY2tB
Y3Rpb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5wcm90b2NvbC5jbGljay5lbGVtZW50KGVsZW1l
bnQpCiAKIAorY2xhc3MgRGVsZXRlQWxsQ29va2llc0FjdGlvbihvYmplY3QpOgorICAgIG5hbWUg
PSAiZGVsZXRlX2FsbF9jb29raWVzIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
cHJvdG9jb2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnBy
b3RvY29sID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAgICAg
c2VsZi5wcm90b2NvbC5jb29raWVzLmRlbGV0ZV9hbGxfY29va2llcygpCisKKwogY2xhc3MgU2Vu
ZEtleXNBY3Rpb24ob2JqZWN0KToKICAgICBuYW1lID0gInNlbmRfa2V5cyIKIApAQCAtMTcxLDYg
KzE4Myw3IEBAIGNsYXNzIFNldFVzZXJWZXJpZmllZEFjdGlvbihvYmplY3QpOgogCiAKIGFjdGlv
bnMgPSBbQ2xpY2tBY3Rpb24sCisgICAgICAgICAgIERlbGV0ZUFsbENvb2tpZXNBY3Rpb24sCiAg
ICAgICAgICAgIFNlbmRLZXlzQWN0aW9uLAogICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZUFjdGlv
biwKICAgICAgICAgICAgR2VuZXJhdGVUZXN0UmVwb3J0QWN0aW9uLApkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL2Jhc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQppbmRleCA0YzM4OTFjMWNiNjcuLmE4OGFiODJl
NzhkMyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKQEAg
LTgsMjkgKzgsMzAgQEAgaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHNvY2tldAogaW1wb3J0IHN5
cwogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCi1mcm9tIHNpeCBpbXBv
cnQgdGV4dF90eXBlCi1mcm9tIHNpeC5tb3Zlcy5odHRwX2NsaWVudCBpbXBvcnQgSFRUUENvbm5l
Y3Rpb24KLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJsc3Bs
aXQsIHVybHVuc3BsaXQKK2Zyb20gaHR0cC5jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9uCitm
cm9tIHR5cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIE9wdGlvbmFsLCBUdXBs
ZSwgVHlwZSwgVFlQRV9DSEVDS0lORworZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4s
IHVybHNwbGl0LCB1cmx1bnNwbGl0CiAKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCiBm
cm9tIC5hY3Rpb25zIGltcG9ydCBhY3Rpb25zCiBmcm9tIC5wcm90b2NvbCBpbXBvcnQgUHJvdG9j
b2wsIEJhc2VQcm90b2NvbFBhcnQKIAoraWYgVFlQRV9DSEVDS0lORzoKKyAgICBmcm9tIC4ud2Vi
ZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViRHJpdmVyU2VydmVyCisKIGhlcmUgPSBvcy5wYXRoLmRp
cm5hbWUoX19maWxlX18pCiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAgICAg
ICAgICoqa3dhcmdzKToKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmly
b25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgdGltZW91dF9tdWx0aXBsaWVy
ID0ga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXQogICAgIGlmIHRpbWVvdXRfbXVsdGlwbGll
ciBpcyBOb25lOgogICAgICAgICB0aW1lb3V0X211bHRpcGxpZXIgPSAxCiAKLSAgICBleGVjdXRv
cl9rd2FyZ3MgPSB7InNlcnZlcl9jb25maWciOiBzZXJ2ZXJfY29uZmlnLAorICAgIGV4ZWN1dG9y
X2t3YXJncyA9IHsic2VydmVyX2NvbmZpZyI6IHRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAogICAg
ICAgICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogdGltZW91dF9tdWx0aXBs
aWVyLAogICAgICAgICAgICAgICAgICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdf
aW5mbyJdfQogCiAgICAgaWYgdGVzdF90eXBlIGluICgicmVmdGVzdCIsICJwcmludC1yZWZ0ZXN0
Iik6Ci0gICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sic2NyZWVuc2hvdF9jYWNoZSJdID0gY2FjaGVf
bWFuYWdlci5kaWN0KCkKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzY3JlZW5zaG90X2NhY2hl
Il0gPSB0ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIuZGljdCgpCiAKICAgICBpZiB0ZXN0
X3R5cGUgPT0gIndkc3BlYyI6CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siYmluYXJ5Il0gPSBr
d2FyZ3MuZ2V0KCJiaW5hcnkiKQpAQCAtNDIsNyArNDMsNyBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdz
KHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwK
ICAgICAjIHdhbnQgdG8gdmlldyB0aGUgcmVzdWx0cywgaG93ZXZlciwgdGhlIGV4ZWN1dG9yIGhh
cyB0byBza2lwIHRoYXQgY2xlYW51cC4KICAgICBpZiBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3Qi
XSBvciBrd2FyZ3NbInBhdXNlX29uX3VuZXhwZWN0ZWQiXToKICAgICAgICAgZXhlY3V0b3Jfa3dh
cmdzWyJjbGVhbnVwX2FmdGVyX3Rlc3QiXSA9IEZhbHNlCi0KKyAgICBleGVjdXRvcl9rd2FyZ3Nb
ImRlYnVnX3Rlc3QiXSA9IGt3YXJnc1siZGVidWdfdGVzdCJdCiAgICAgcmV0dXJuIGV4ZWN1dG9y
X2t3YXJncwogCiAKQEAgLTE4MCwxMSArMTgxLDExIEBAIGNsYXNzIFRpbWVkUnVubmVyKG9iamVj
dCk6CiAgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQogCiAgICAg
ZGVmIHJ1bihzZWxmKToKLSAgICAgICAgaWYgc2VsZi5zZXRfdGltZW91dCgpIGlzIFN0b3A6Ci0g
ICAgICAgICAgICByZXR1cm4gU3RvcAotCi0gICAgICAgIGlmIHNlbGYuYmVmb3JlX3J1bigpIGlz
IFN0b3A6Ci0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICBmb3Igc2V0dXBfZm4gaW4g
W3NlbGYuc2V0X3RpbWVvdXQsIHNlbGYuYmVmb3JlX3J1bl06CisgICAgICAgICAgICBlcnIgPSBz
ZXR1cF9mbigpCisgICAgICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICAgICAgc2VsZi5yZXN1
bHQgPSAoRmFsc2UsIGVycikKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKIAog
ICAgICAgICBleGVjdXRvciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYucnVuX2Z1bmMp
CiAgICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKQEAgLTI0Myw4ICsyNDQsMTQgQEAgY2xhc3MgVGVz
dEV4ZWN1dG9yKG9iamVjdCk6CiAgICAgIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEK
IAotICAgIHRlc3RfdHlwZSA9IE5vbmUKLSAgICBjb252ZXJ0X3Jlc3VsdCA9IE5vbmUKKyAgICB0
ZXN0X3R5cGUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW3N0cl0KKyAgICAjIGNvbnZlcnRfcmVz
dWx0IGlzIGEgY2xhc3MgdmFyaWFibGUgc2V0IHRvIGEgY2FsbGFibGUgY29udmVydGVyCisgICAg
IyAoZS5nLiByZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIpIGNvbnZlcnRpbmcgZnJvbSBhbiBpbnN0
YW5jZSBvZgorICAgICMgVVJMTWFuaWZlc3RJdGVtIChlLmcuIFJlZlRlc3QpICsgdHlwZS1kZXBl
bmRlbnQgcmVzdWx0cyBvYmplY3QgKworICAgICMgdHlwZS1kZXBlbmRlbnQgZXh0cmEgZGF0YSwg
cmV0dXJuaW5nIGEgdHVwbGUgb2YgUmVzdWx0IGFuZCBsaXN0IG9mCisgICAgIyBTdWJ0ZXN0UmVz
dWx0LiBGb3Igbm93LCBhbnkgY2FsbGFibGUgaXMgYWNjZXB0ZWQuIFRPRE86IE1ha2UgdGhpcyB0
eXBlCisgICAgIyBzdHJpY3RlciB3aGVuIG1vcmUgb2YgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaXMg
YW5ub3RhdGVkLgorICAgIGNvbnZlcnRfcmVzdWx0ID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltD
YWxsYWJsZVsuLi4sIEFueV1dCiAgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IEZhbHNlCiAgICAg
c3VwcG9ydHNfanNzaGVsbCA9IEZhbHNlCiAgICAgIyBFeHRyYSB0aW1lb3V0IHRvIHVzZSBhZnRl
ciBpbnRlcm5hbCB0ZXN0IHRpbWVvdXQgYXQgd2hpY2ggdGhlIGhhcm5lc3MKQEAgLTI4NywxOCAr
Mjk0LDE1IEBAIGNsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgogICAgICAgICAiIiJSdW4gYSBw
YXJ0aWN1bGFyIHRlc3QuCiAKICAgICAgICAgOnBhcmFtIHRlc3Q6IFRoZSB0ZXN0IHRvIHJ1biIi
IgotICAgICAgICBpZiB0ZXN0LmVudmlyb25tZW50ICE9IHNlbGYubGFzdF9lbnZpcm9ubWVudDoK
LSAgICAgICAgICAgIHNlbGYub25fZW52aXJvbm1lbnRfY2hhbmdlKHRlc3QuZW52aXJvbm1lbnQp
CiAgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHRlc3QuZW52aXJvbm1lbnQgIT0gc2VsZi5s
YXN0X2Vudmlyb25tZW50OgorICAgICAgICAgICAgICAgIHNlbGYub25fZW52aXJvbm1lbnRfY2hh
bmdlKHRlc3QuZW52aXJvbm1lbnQpCiAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmRvX3Rlc3Qo
dGVzdCkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgZXhjZXB0
aW9uX3N0cmluZyA9IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLndhcm5pbmcoZXhjZXB0aW9uX3N0cmluZykKICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYu
cmVzdWx0X2Zyb21fZXhjZXB0aW9uKHRlc3QsIGUsIGV4Y2VwdGlvbl9zdHJpbmcpCiAKLSAgICAg
ICAgaWYgcmVzdWx0IGlzIFN0b3A6Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KICAgICAg
ICAgIyBsb2cgcmVzdWx0IG9mIHBhcmVudCB0ZXN0CiAgICAgICAgIGlmIHJlc3VsdFswXS5zdGF0
dXMgPT0gIkVSUk9SIjoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKHJlc3VsdFswXS5t
ZXNzYWdlKQpAQCAtMzA3LDE0ICszMTEsMTggQEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9iamVjdCk6
CiAKICAgICAgICAgc2VsZi5ydW5uZXIuc2VuZF9tZXNzYWdlKCJ0ZXN0X2VuZGVkIiwgdGVzdCwg
cmVzdWx0KQogCi0gICAgZGVmIHNlcnZlcl91cmwoc2VsZiwgcHJvdG9jb2wpOgorICAgIGRlZiBz
ZXJ2ZXJfdXJsKHNlbGYsIHByb3RvY29sLCBzdWJkb21haW49RmFsc2UpOgogICAgICAgICBzY2hl
bWUgPSAiaHR0cHMiIGlmIHByb3RvY29sID09ICJoMiIgZWxzZSBwcm90b2NvbAotICAgICAgICBy
ZXR1cm4gIiVzOi8vJXM6JXMiICUgKHNjaGVtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1bMF0p
CisgICAgICAgIGhvc3QgPSBzZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdCisgICAg
ICAgIGlmIHN1YmRvbWFpbjoKKyAgICAgICAgICAgICMgVGhlIG9ubHkgc3VwcG9ydGVkIHN1YmRv
bWFpbiBmaWxlbmFtZSBmbGFnIGlzICJ3d3ciLgorICAgICAgICAgICAgaG9zdCA9ICJ7c3ViZG9t
YWlufS57aG9zdH0iLmZvcm1hdChzdWJkb21haW49Ind3dyIsIGhvc3Q9aG9zdCkKKyAgICAgICAg
cmV0dXJuICJ7c2NoZW1lfTovL3tob3N0fTp7cG9ydH0iLmZvcm1hdChzY2hlbWU9c2NoZW1lLCBo
b3N0PWhvc3QsCisgICAgICAgICAgICBwb3J0PXNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtw
cm90b2NvbF1bMF0pCiAKICAgICBkZWYgdGVzdF91cmwoc2VsZiwgdGVzdCk6Ci0gICAgICAgIHJl
dHVybiB1cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJd
KSwgdGVzdC51cmwpCisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0
LmVudmlyb25tZW50WyJwcm90b2NvbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdC5zdWJkb21haW4pLCB0ZXN0LnVybCkKIAogICAgIEBhYnN0cmFjdG1ldGhv
ZAogICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgpAQCAtMzMyLDcgKzM0MCw3IEBAIGNsYXNz
IFRlc3RFeGVjdXRvcihvYmplY3QpOgogICAgICAgICAgICAgc3RhdHVzID0gZS5zdGF0dXMKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHN0YXR1cyA9ICJJTlRFUk5BTC1FUlJPUiIKLSAgICAg
ICAgbWVzc2FnZSA9IHRleHRfdHlwZShnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQorICAgICAg
ICBtZXNzYWdlID0gc3RyKGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikpCiAgICAgICAgIGlmIG1l
c3NhZ2U6CiAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKICAgICAgICAgbWVzc2FnZSArPSBl
eGNlcHRpb25fc3RyaW5nCkBAIC00MjMsNyArNDMxLDcgQEAgY2xhc3MgUmVmVGVzdEltcGxlbWVu
dGF0aW9uKG9iamVjdCk6CiAKICAgICAgICAgaWYgbGVuKGxoc19oYXNoZXMpICE9IGxlbihyaHNf
aGFzaGVzKToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkdvdCBkaWZmZXJlbnQgbnVt
YmVyIG9mIHBhZ2VzIikKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmV0
dXJuIHJlbGF0aW9uID09ICIhPSIsIE5vbmUKIAogICAgICAgICBhc3NlcnQgbGVuKGxoc19zY3Jl
ZW5zaG90cykgPT0gbGVuKGxoc19oYXNoZXMpID09IGxlbihyaHNfc2NyZWVuc2hvdHMpID09IGxl
bihyaHNfaGFzaGVzKQogCkBAIC01OTAsMTEgKzU5OCwxMSBAQCBjbGFzcyBSZWZUZXN0SW1wbGVt
ZW50YXRpb24ob2JqZWN0KToKIAogY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToK
ICAgICBjb252ZXJ0X3Jlc3VsdCA9IHB5dGVzdF9yZXN1bHRfY29udmVydGVyCi0gICAgcHJvdG9j
b2xfY2xzID0gTm9uZQorICAgIHByb3RvY29sX2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJb
VHlwZVtQcm90b2NvbF1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2Vy
LCBzZXJ2ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAogICAgICAgICAgICAgICAgICB3ZWJk
cml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAotICAg
ICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAg
ICAgZGVidWdfaW5mbz1Ob25lLCBlbnZpcm9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgc2Vs
Zi5kb19kZWxheWVkX2ltcG9ydHMoKQogICAgICAgICBUZXN0RXhlY3V0b3IuX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKQEAgLTYwMyw3
ICs2MTEsMTMgQEAgY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICAgICAg
c2VsZi53ZWJkcml2ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzCiAgICAgICAgIHNlbGYudGltZW91
dF9tdWx0aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0
aWVzID0gY2FwYWJpbGl0aWVzCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBzZWxmLnByb3RvY29s
X2NscyhzZWxmLCBicm93c2VyKQorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uIGlmIGVu
dmlyb24gaXMgbm90IE5vbmUgZWxzZSB7fQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX2t3
YXJncyA9IE5vbmUKKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSBO
b25lCisKKyAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKKyAgICAgICAgc2VsZi5wcm90b2Nv
bCA9IHNlbGYucHJvdG9jb2xfY2xzKHNlbGYsIHNlbGYuYnJvd3NlcikKKyAgICAgICAgc3VwZXIo
KS5zZXR1cChydW5uZXIpCiAKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVy
biBzZWxmLnByb3RvY29sLmlzX2FsaXZlKCkKQEAgLTcwNiw3ICs3MjAsNyBAQCBjbGFzcyBDb25u
ZWN0aW9ubGVzc1Byb3RvY29sKFByb3RvY29sKToKIAogCiBjbGFzcyBXZHNwZWNQcm90b2NvbChQ
cm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IE5vbmUKKyAgICBzZXJ2ZXJfY2xzID0gTm9uZSAg
IyB0eXBlOiBDbGFzc1ZhcltPcHRpb25hbFtUeXBlW1dlYkRyaXZlclNlcnZlcl1dXQogCiAgICAg
aW1wbGVtZW50cyA9IFtDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2NvbFBhcnRdCiAKQEAgLTcxNywx
NCArNzMxLDIxIEBAIGNsYXNzIFdkc3BlY1Byb3RvY29sKFByb3RvY29sKToKICAgICAgICAgc2Vs
Zi5jYXBhYmlsaXRpZXMgPSBzZWxmLmV4ZWN1dG9yLmNhcGFiaWxpdGllcwogICAgICAgICBzZWxm
LnNlc3Npb25fY29uZmlnID0gTm9uZQogICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUKKyAgICAg
ICAgc2VsZi5lbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgc2VsZi5lbnZpcm9u
LnVwZGF0ZShleGVjdXRvci5lbnZpcm9uKQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX2t3
YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX2t3YXJncworICAgICAgICBzZWxmLm91dHB1
dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3
YXJncwogCiAgICAgZGVmIGNvbm5lY3Qoc2VsZik6CiAgICAgICAgICIiIkNvbm5lY3QgdG8gYnJv
d3NlciB2aWEgdGhlIEhUVFAgc2VydmVyLiIiIgogICAgICAgICBzZWxmLnNlcnZlciA9IHNlbGYu
c2VydmVyX2NscygKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgYmluYXJ5
PXNlbGYud2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgIGFyZ3M9c2VsZi53ZWJkcml2ZXJf
YXJncykKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisgICAgICAgICAg
ICBhcmdzPXNlbGYud2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAgICBlbnY9c2VsZi5lbnZpcm9u
KQorICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzPXNlbGYub3V0cHV0X2hhbmRsZXJfa3dh
cmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2Fy
Z3M9c2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpCiAgICAgICAgIHNlbGYubG9nZ2Vy
LmluZm8oCiAgICAgICAgICAgICAiV2ViRHJpdmVyIEhUVFAgc2VydmVyIGxpc3RlbmluZyBhdCAl
cyIgJSBzZWxmLnNlcnZlci51cmwpCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9jb25maWcgPSB7Imhv
c3QiOiBzZWxmLnNlcnZlci5ob3N0LApAQCAtNzYyLDcgKzc4Myw3IEBAIGNsYXNzIENhbGxiYWNr
SGFuZGxlcihvYmplY3QpOgogICAgIFdlYkRyaXZlci4gVGhpbmdzIHRoYXQgYXJlIG1vcmUgZGlm
ZmVyZW50IHRvIFdlYkRyaXZlciBtYXkgbmVlZCB0byBjcmVhdGUgYQogICAgIGZ1bGx5IGN1c3Rv
bSBpbXBsZW1lbnRhdGlvbi4iIiIKIAotICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxl
bWVudGVkRXJyb3IsKQorICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxlbWVudGVkRXJy
b3IsKSAgIyB0eXBlOiBDbGFzc1ZhcltUdXBsZVtUeXBlW0V4Y2VwdGlvbl0sIC4uLl1dCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cpOgogICAg
ICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKQEAgLTgzMSw3ICs4NTIsNyBAQCBjbGFzcyBB
Y3Rpb25Db250ZXh0KG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5pbml0aWFsX3dpbmRvdyA9IHNl
bGYucHJvdG9jb2wuYmFzZS5jdXJyZW50X3dpbmRvdwogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiU3dpdGNoaW5nIHRvIHdpbmRvdyAlcyIgJSBzZWxmLmNvbnRleHQpCi0gICAgICAgIHNlbGYu
cHJvdG9jb2wudGVzdGRyaXZlci5zd2l0Y2hfdG9fd2luZG93KHNlbGYuY29udGV4dCkKKyAgICAg
ICAgc2VsZi5wcm90b2NvbC50ZXN0ZHJpdmVyLnN3aXRjaF90b193aW5kb3coc2VsZi5jb250ZXh0
LCBzZWxmLmluaXRpYWxfd2luZG93KQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToK
ICAgICAgICAgaWYgc2VsZi5jb250ZXh0IGlzIE5vbmU6CkBAIC04MzksNSArODYwLDQgQEAgY2xh
c3MgQWN0aW9uQ29udGV4dChvYmplY3QpOgogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJT
d2l0Y2hpbmcgYmFjayB0byBpbml0aWFsIHdpbmRvdyIpCiAgICAgICAgIHNlbGYucHJvdG9jb2wu
YmFzZS5zZXRfd2luZG93KHNlbGYuaW5pdGlhbF93aW5kb3cpCi0gICAgICAgIHNlbGYucHJvdG9j
b2wudGVzdGRyaXZlci5fc3dpdGNoX3RvX2ZyYW1lKE5vbmUpCiAgICAgICAgIHNlbGYuaW5pdGlh
bF93aW5kb3cgPSBOb25lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKaW5kZXggM2E3MDQ3NTQxMzdmLi40MzFkMzk4ZWJkMjcg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JjaHJvbWUucHkKQEAgLTEsNyArMSw3IEBACiBpbXBvcnQgb3MKIGltcG9ydCB0cmFjZWJhY2sK
IAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCitmcm9tIHVybGxp
Yi5wYXJzZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNQcm90b2Nv
bCwgV2RzcGVjRXhlY3V0b3IsIGdldF9wYWdlcwogZnJvbSAuZXhlY3V0b3J3ZWJkcml2ZXIgaW1w
b3J0IFdlYkRyaXZlclByb3RvY29sLCBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsIFdlYkRyaXZl
clJ1bgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9l
eGVjdXRvcm1hcmlvbmV0dGUucHkKaW5kZXggN2UyY2M4ZTM4YTQ0Li4yNWEzMzYwYjdkODAgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9ybWFyaW9uZXR0ZS5weQpAQCAtNSw4ICs1LDcgQEAgaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFj
ZWJhY2sKIGltcG9ydCB1dWlkCiAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJrZXlz
Ci1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KK2Zyb20gdXJsbGli
LnBhcnNlIGltcG9ydCB1cmxqb2luCiAKIGVycm9ycyA9IE5vbmUKIG1hcmlvbmV0dGUgPSBOb25l
CkBAIC0zMywyNyArMzIsMjIgQEAgZnJvbSAucHJvdG9jb2wgaW1wb3J0IChBY3Rpb25TZXF1ZW5j
ZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmFnZVByb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgIENsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAg
ICBDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTZW5kS2V5c1By
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgVGVzdERyaXZlclByb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgICAgICAgQ292ZXJhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgIEdlbmVyYXRlVGVzdFJlcG9ydFByb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgIFNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAgICAg
ICAgICAgICAgIFByaW50UHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0
b3AKLWZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBHZWNrb0RyaXZlclNlcnZlcgorICAg
ICAgICAgICAgICAgICAgICAgICBQcmludFByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgRGVidWdQcm90b2NvbFBhcnQpCiAKIAogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgot
ICAgIGdsb2JhbCBlcnJvcnMsIG1hcmlvbmV0dGUKKyAgICBnbG9iYWwgZXJyb3JzLCBtYXJpb25l
dHRlLCBBZGRvbnMKIAotICAgICMgTWFyaW9uZXR0ZSBjbGllbnQgdXNlZCB0byBiZSBjYWxsZWQg
bWFyaW9uZXR0ZSwgcmVjZW50bHkgaXQgY2hhbmdlZAotICAgICMgdG8gbWFyaW9uZXR0ZV9kcml2
ZXIgZm9yIHVuZmF0aG9tYWJsZSByZWFzb25zCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgbWFy
aW9uZXR0ZQotICAgICAgICBmcm9tIG1hcmlvbmV0dGUgaW1wb3J0IGVycm9ycwotICAgIGV4Y2Vw
dCBJbXBvcnRFcnJvcjoKLSAgICAgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlciBpbXBvcnQgbWFy
aW9uZXR0ZSwgZXJyb3JzCisgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlciBpbXBvcnQgbWFyaW9u
ZXR0ZSwgZXJyb3JzCisgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlci5hZGRvbnMgaW1wb3J0IEFk
ZG9ucwogCiAKIGRlZiBfc3dpdGNoX3RvX3dpbmRvdyhtYXJpb25ldHRlLCBoYW5kbGUpOgpAQCAt
MTMzLDcgKzEyNyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVCYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90
b2NvbFBhcnQpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGV4Y2VwdCBlcnJv
cnMuSmF2YXNjcmlwdEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgICAgICMgVGhpcyBjYW4g
aGFwcGVuIGlmIHdlIG5hdmlnYXRlLCBidXQganVzdCBrZWVwIGdvaW5nCi0gICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuZGVidWcoZS5tZXNzYWdlKQorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKGUpCiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0IElP
RXJyb3I6CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNvY2tldCBjbG9zZWQi
KQpAQCAtNDQxLDYgKzQzNSwxNSBAQCBjbGFzcyBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQo
Q2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4gZWxlbWVudC5jbGljaygpCiAKIAor
Y2xhc3MgTWFyaW9uZXR0ZUNvb2tpZXNQcm90b2NvbFBhcnQoQ29va2llc1Byb3RvY29sUGFydCk6
CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBh
cmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgZGVsZXRlX2FsbF9jb29raWVzKHNlbGYpOgorICAg
ICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwgY29va2llcyIpCisgICAgICAgIHJl
dHVybiBzZWxmLm1hcmlvbmV0dGUuZGVsZXRlX2FsbF9jb29raWVzKCkKKworCiBjbGFzcyBNYXJp
b25ldHRlU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRl
ZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFy
aW9uZXR0ZQpAQCAtNDczLDggKzQ3NiwxMiBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdERyaXZlclBy
b3RvY29sUGFydChUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgIG9ialsibWVz
c2FnZSJdID0gc3RyKG1lc3NhZ2UpCiAgICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9z
Y3JpcHQoIndpbmRvdy5wb3N0TWVzc2FnZSglcywgJyonKSIgJSBqc29uLmR1bXBzKG9iaikpCiAK
LSAgICBkZWYgX3N3aXRjaF90b19mcmFtZShzZWxmLCBmcmFtZV9udW1iZXIpOgotICAgICAgICBz
ZWxmLm1hcmlvbmV0dGUuc3dpdGNoX3RvX2ZyYW1lKGZyYW1lX251bWJlcikKKyAgICBkZWYgX3N3
aXRjaF90b19mcmFtZShzZWxmLCBpbmRleF9vcl9lbGVtKToKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b19mcmFtZShpbmRleF9vcl9lbGVtKQorICAg
ICAgICBleGNlcHQgKGVycm9ycy5Ob1N1Y2hGcmFtZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAg
ICBlcnJvcnMuU3RhbGVFbGVtZW50RXhjZXB0aW9uKSBhcyBlOgorICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvciBmcm9tIGUKIAogICAgIGRlZiBfc3dpdGNoX3RvX3BhcmVudF9mcmFtZShzZWxm
KToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b19wYXJlbnRfZnJhbWUoKQpAQCAt
NDg5LDcgKzQ5Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVDb3ZlcmFnZVByb3RvY29sUGFydChDb3Zl
cmFnZVByb3RvY29sUGFydCk6CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICBzY3JpcHQg
PSAiIiIKLSAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVV
dGlscy5pbXBvcnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VV
dGlscy5qc20iKTsKKyAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBD
aHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTovL3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUvUGVy
VGVzdENvdmVyYWdlVXRpbHMuanNtIik7CiAgICAgICAgICAgICByZXR1cm4gUGVyVGVzdENvdmVy
YWdlVXRpbHMuZW5hYmxlZDsKICAgICAgICAgICAgICIiIgogICAgICAgICB3aXRoIHNlbGYubWFy
aW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSk6CkBA
IC00OTksNyArNTA2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0KENv
dmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgc2NyaXB0ID0gIiIiCiAgICAgICAgICAgICB2
YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwogCi0gICAgICAg
ICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJj
aHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7Cisg
ICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1w
b3J0KCJjaHJvbWU6Ly9yZW1vdGUvY29udGVudC9tYXJpb25ldHRlL1BlclRlc3RDb3ZlcmFnZVV0
aWxzLmpzbSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMuYmVmb3JlVGVzdCgp
LnRoZW4oY2FsbGJhY2ssIGNhbGxiYWNrKTsKICAgICAgICAgICAgICIiIgogICAgICAgICB3aXRo
IHNlbGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NI
Uk9NRSk6CkBAIC01MTksNyArNTI2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9j
b2xQYXJ0KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgc2NyaXB0ID0gIiIiCiAgICAg
ICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwog
Ci0gICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMu
aW1wb3J0KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRpbHMu
anNtIik7CisgICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21l
VXRpbHMuaW1wb3J0KCJjaHJvbWU6Ly9yZW1vdGUvY29udGVudC9tYXJpb25ldHRlL1BlclRlc3RD
b3ZlcmFnZVV0aWxzLmpzbSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMuYWZ0
ZXJUZXN0KCkudGhlbihjYWxsYmFjaywgY2FsbGJhY2spOwogICAgICAgICAgICAgIiIiCiAgICAg
ICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNP
TlRFWFRfQ0hST01FKToKQEAgLTU2MywxMiArNTcwLDIyIEBAIGNsYXNzIE1hcmlvbmV0dGVWaXJ0
dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29s
UGFyCiAgICAgZGVmIHNldF91c2VyX3ZlcmlmaWVkKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQsIHV2
KToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic2V0X3VzZXJfdmVyaWZpZWQg
bm90IHlldCBpbXBsZW1lbnRlZCIpCiAKKwogY2xhc3MgTWFyaW9uZXR0ZVNldFBlcm1pc3Npb25Q
cm90b2NvbFBhcnQoU2V0UGVybWlzc2lvblByb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNl
bGYpOgogICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCiAK
LSAgICBkZWYgc2V0X3Blcm1pc3Npb24oc2VsZiwgbmFtZSwgc3RhdGUsIG9uZV9yZWFsbSk6Ci0g
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInNldF9wZXJtaXNzaW9uIG5vdCB5ZXQg
aW1wbGVtZW50ZWQiKQorICAgIGRlZiBzZXRfcGVybWlzc2lvbihzZWxmLCBkZXNjcmlwdG9yLCBz
dGF0ZSwgb25lX3JlYWxtKToKKyAgICAgICAgYm9keSA9IHsKKyAgICAgICAgICAgICJkZXNjcmlw
dG9yIjogZGVzY3JpcHRvciwKKyAgICAgICAgICAgICJzdGF0ZSI6IHN0YXRlLAorICAgICAgICB9
CisgICAgICAgIGlmIG9uZV9yZWFsbSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHlbIm9u
ZVJlYWxtIl0gPSBvbmVfcmVhbG0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5tYXJp
b25ldHRlLl9zZW5kX21lc3NhZ2UoIldlYkRyaXZlcjpTZXRQZXJtaXNzaW9uIiwgYm9keSkKKyAg
ICAgICAgZXhjZXB0IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbjoKKyAgICAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInNldF9wZXJtaXNzaW9uIG5vdCB5ZXQg
aW1wbGVtZW50ZWQiKQogCiAKIGNsYXNzIE1hcmlvbmV0dGVQcmludFByb3RvY29sUGFydChQcmlu
dFByb3RvY29sUGFydCk6CkBAIC02MjEsNiArNjM4LDMwIEBAIHJlbmRlcignJXMnKS50aGVuKHJl
c3VsdCA9PiBjYWxsYmFjayhyZXN1bHQpKSIiIiAlIHBkZl9iYXNlNjQsIG5ld19zYW5kYm94PUZh
bHNlCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBfc3dpdGNoX3RvX3dpbmRvdyhzZWxm
Lm1hcmlvbmV0dGUsIGhhbmRsZSkKIAorCitjbGFzcyBNYXJpb25ldHRlRGVidWdQcm90b2NvbFBh
cnQoRGVidWdQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2Vs
Zi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIGxvYWRfZGV2
dG9vbHMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQo
c2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKKyAgICAgICAgICAgIHNlbGYucGFyZW50
LmJhc2UuZXhlY3V0ZV9zY3JpcHQoIiIiCitjb25zdCB7IHJlcXVpcmUgfSA9IENocm9tZVV0aWxz
LmltcG9ydCgicmVzb3VyY2U6Ly9kZXZ0b29scy9zaGFyZWQvTG9hZGVyLmpzbSIpOworY29uc3Qg
eyBUYXJnZXRGYWN0b3J5IH0gPSByZXF1aXJlKCJkZXZ0b29scy9jbGllbnQvZnJhbWV3b3JrL3Rh
cmdldCIpOworY29uc3QgeyBnRGV2VG9vbHMgfSA9IHJlcXVpcmUoImRldnRvb2xzL2NsaWVudC9m
cmFtZXdvcmsvZGV2dG9vbHMiKTsKKworY29uc3QgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1l
bnRzLmxlbmd0aCAtIDFdOworCithc3luYyBmdW5jdGlvbiBsb2FkRGV2VG9vbHMoKSB7CisgICAg
Y29uc3QgdGFyZ2V0ID0gYXdhaXQgVGFyZ2V0RmFjdG9yeS5mb3JUYWIod2luZG93LmdCcm93c2Vy
LnNlbGVjdGVkVGFiKTsKKyAgICBhd2FpdCBnRGV2VG9vbHMuc2hvd1Rvb2xib3godGFyZ2V0LCAi
d2ViY29uc29sZSIsICJ3aW5kb3ciKTsKK30KKworbG9hZERldlRvb2xzKCkuY2F0Y2goKCkgPT4g
ZHVtcCgiRGV2dG9vbHMgZmFpbGVkIHRvIGxvYWQiKSkKKyAgICAgICAgICAgICAgLnRoZW4oY2Fs
bGJhY2spOworIiIiLCBhc3luY2hyb25vdXM9VHJ1ZSkKKworCiBjbGFzcyBNYXJpb25ldHRlUHJv
dG9jb2woUHJvdG9jb2wpOgogICAgIGltcGxlbWVudHMgPSBbTWFyaW9uZXR0ZUJhc2VQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlVGVzdGhhcm5lc3NQcm90b2NvbFBh
cnQsCkBAIC02MjgsNiArNjY5LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3RvY29s
KToKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTdG9yYWdlUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgTWFyaW9uZXR0ZUNsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAg
TWFyaW9uZXR0ZUNvb2tpZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25l
dHRlU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQWN0
aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlVGVz
dERyaXZlclByb3RvY29sUGFydCwKQEAgLTYzNiw3ICs2NzgsOCBAQCBjbGFzcyBNYXJpb25ldHRl
UHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUdlbmVyYXRl
VGVzdFJlcG9ydFByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVWaXJ0
dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0
dGVTZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0
ZVByaW50UHJvdG9jb2xQYXJ0XQorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVByaW50UHJv
dG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZURlYnVnUHJvdG9jb2xQYXJ0
XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyLCBjYXBhYmlsaXRp
ZXM9Tm9uZSwgdGltZW91dF9tdWx0aXBsaWVyPTEsIGUxMHM9VHJ1ZSwgY2Nvdj1GYWxzZSk6CiAg
ICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCkBAIC02ODAsMTEgKzcyMywxMiBAQCBjbGFzcyBN
YXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgICAgIHNlbGYubWFyaW9uZXR0ZS5fcmVxdWVzdF9pbl9hcHBfc2h1dGRvd24oKQogICAgICAg
ICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5kZWxldGVfc2Vzc2lvbihzZW5kX3JlcXVlc3Q9RmFs
c2UpCisgICAgICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmNsZWFudXAoKQogICAgICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdHlwaWNhbGx5
IGJlY2F1c2UgdGhlIHNlc3Npb24gbmV2ZXIgc3RhcnRlZAogICAgICAgICAgICAgICAgIHBhc3MK
ICAgICAgICAgaWYgc2VsZi5tYXJpb25ldHRlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZGVs
IHNlbGYubWFyaW9uZXR0ZQorICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gTm9uZQogICAg
ICAgICBzdXBlcihNYXJpb25ldHRlUHJvdG9jb2wsIHNlbGYpLnRlYXJkb3duKCkKIAogICAgIGRl
ZiBpc19hbGl2ZShzZWxmKToKQEAgLTY5NiwyMCArNzQwLDE5IEBAIGNsYXNzIE1hcmlvbmV0dGVQ
cm90b2NvbChQcm90b2NvbCk6CiAKICAgICBkZWYgb25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYs
IG9sZF9lbnZpcm9ubWVudCwgbmV3X2Vudmlyb25tZW50KToKICAgICAgICAgI1Vuc2V0IGFsbCB0
aGUgb2xkIHByZWZzCi0gICAgICAgIGZvciBuYW1lIGluIGl0ZXJrZXlzKG9sZF9lbnZpcm9ubWVu
dC5nZXQoInByZWZzIiwge30pKToKKyAgICAgICAgZm9yIG5hbWUgaW4gb2xkX2Vudmlyb25tZW50
LmdldCgicHJlZnMiLCB7fSkua2V5cygpOgogICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmV4ZWN1
dG9yLm9yaWdpbmFsX3ByZWZfdmFsdWVzW25hbWVdCiAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBO
b25lOgogICAgICAgICAgICAgICAgIHNlbGYucHJlZnMuY2xlYXIobmFtZSkKICAgICAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi5wcmVmcy5zZXQobmFtZSwgdmFsdWUpCiAKLSAg
ICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGl0ZXJpdGVtcyhuZXdfZW52aXJvbm1lbnQuZ2V0KCJw
cmVmcyIsIHt9KSk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBuZXdfZW52aXJvbm1lbnQu
Z2V0KCJwcmVmcyIsIHt9KS5pdGVtcygpOgogICAgICAgICAgICAgc2VsZi5leGVjdXRvci5vcmln
aW5hbF9wcmVmX3ZhbHVlc1tuYW1lXSA9IHNlbGYucHJlZnMuZ2V0KG5hbWUpCiAgICAgICAgICAg
ICBzZWxmLnByZWZzLnNldChuYW1lLCB2YWx1ZSkKIAogCiBjbGFzcyBFeGVjdXRlQXN5bmNTY3Jp
cHRSdW4oVGltZWRSdW5uZXIpOgotCiAgICAgZGVmIHNldF90aW1lb3V0KHNlbGYpOgogICAgICAg
ICB0aW1lb3V0ID0gc2VsZi50aW1lb3V0CiAKQEAgLTcyMiw4ICs3NjUsOSBAQCBjbGFzcyBFeGVj
dXRlQXN5bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgogICAgICAgICAgICAgICAgICMgdGltZW91
dCBpcyBzZXQgdG9vIGhpZ2guIFRoaXMgd29ya3MgYXQgbGVhc3QuCiAgICAgICAgICAgICAgICAg
c2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KDIqKjI4IC0gMSkKICAgICAgICAgZXhjZXB0
IElPRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBtYXJpb25ldHRl
IGNvbm5lY3Rpb24gYmVmb3JlIHN0YXJ0aW5nIHRlc3QiKQotICAgICAgICAgICAgcmV0dXJuIFN0
b3AKKyAgICAgICAgICAgIG1zZyA9ICJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBiZWZvcmUg
c3RhcnRpbmcgdGVzdCIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAg
ICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIGJlZm9yZV9y
dW4oc2VsZik6CiAgICAgICAgIGluZGV4ID0gc2VsZi51cmwucmZpbmQoIi9zdG9yYWdlLyIpCkBA
IC03NDcsNyArNzkxLDcgQEAgY2xhc3MgRXhlY3V0ZUFzeW5jU2NyaXB0UnVuKFRpbWVkUnVubmVy
KToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiBv
biBjb21tYW5kLCBzZXR0aW5nIHN0YXR1cyB0byBDUkFTSCIpCiAgICAgICAgICAgICBzZWxmLnJl
c3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShlLCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2Vw
dGlvbikgYW5kIGUubWVzc2FnZS5zdGFydHN3aXRoKCJEb2N1bWVudCB3YXMgdW5sb2FkZWQiKToK
KyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZSwgZXJyb3JzLkphdmFzY3JpcHRFeGNlcHRpb24p
IGFuZCBzdHIoZSkuc3RhcnRzd2l0aCgiRG9jdW1lbnQgd2FzIHVubG9hZGVkIik6CiAgICAgICAg
ICAgICAgICAgbWVzc2FnZSA9ICJEb2N1bWVudCB1bmxvYWRlZDsgbWF5YmUgdGVzdCBuYXZpZ2F0
ZWQgdGhlIHRvcC1sZXZlbC1icm93c2luZyBjb250ZXh0PyIKICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKQEAgLTc2
NSw3ICs4MDksNyBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFy
bmVzc0V4ZWN1dG9yKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIs
IHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAogICAgICAgICAgICAgICAgICBj
bG9zZV9hZnRlcl9kb25lPVRydWUsIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUs
Ci0gICAgICAgICAgICAgICAgIGRlYnVnPUZhbHNlLCBjY292PUZhbHNlLCAqKmt3YXJncyk6Cisg
ICAgICAgICAgICAgICAgIGRlYnVnPUZhbHNlLCBjY292PUZhbHNlLCBkZWJ1Z190ZXN0PUZhbHNl
LCAqKmt3YXJncyk6CiAgICAgICAgICIiIk1hcmlvbmV0dGUtYmFzZWQgZXhlY3V0b3IgZm9yIHRl
c3RoYXJuZXNzLmpzIHRlc3RzIiIiCiAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IuX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRpcGxp
ZXIsCkBAIC03ODEsNiArODI1LDkgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0
b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9
IGNsb3NlX2FmdGVyX2RvbmUKICAgICAgICAgc2VsZi53aW5kb3dfaWQgPSBzdHIodXVpZC51dWlk
NCgpKQogICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKKyAgICAgICAgc2VsZi5kZWJ1Z190ZXN0
ID0gZGVidWdfdGVzdAorCisgICAgICAgIHNlbGYuaW5zdGFsbF9leHRlbnNpb25zID0gYnJvd3Nl
ci5leHRlbnNpb25zCiAKICAgICAgICAgc2VsZi5vcmlnaW5hbF9wcmVmX3ZhbHVlcyA9IHt9CiAK
QEAgLTc4OSw2ICs4MzYsMTEgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3Io
VGVzdGhhcm5lc3NFeGVjdXRvcik6CiAKICAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKICAg
ICAgICAgc3VwZXIoTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsIHNlbGYpLnNldHVwKHJ1
bm5lcikKKyAgICAgICAgZm9yIGV4dGVuc2lvbl9wYXRoIGluIHNlbGYuaW5zdGFsbF9leHRlbnNp
b25zOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiSW5zdGFsbGluZyBleHRlbnNpb24g
ZnJvbSAlcyIgJSBleHRlbnNpb25fcGF0aCkKKyAgICAgICAgICAgIGFkZG9ucyA9IEFkZG9ucyhz
ZWxmLnByb3RvY29sLm1hcmlvbmV0dGUpCisgICAgICAgICAgICBhZGRvbnMuaW5zdGFsbChleHRl
bnNpb25fcGF0aCkKKwogICAgICAgICBzZWxmLnByb3RvY29sLnRlc3RoYXJuZXNzLmxvYWRfcnVu
bmVyKHNlbGYubGFzdF9lbnZpcm9ubWVudFsicHJvdG9jb2wiXSkKIAogICAgIGRlZiBpc19hbGl2
ZShzZWxmKToKQEAgLTg0Miw2ICs4OTQsOSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NF
eGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNl
LnNldF93aW5kb3codGVzdF93aW5kb3cpCiAgICAgICAgIHByb3RvY29sLnRlc3RoYXJuZXNzLnRl
c3Rfd2luZG93X2xvYWRlZCgpCiAKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190ZXN0OgorICAgICAg
ICAgICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX2RldnRvb2xzKCkKKwogICAgICAgICBoYW5k
bGVyID0gQ2FsbGJhY2tIYW5kbGVyKHNlbGYubG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cp
CiAgICAgICAgIHByb3RvY29sLm1hcmlvbmV0dGUubmF2aWdhdGUodXJsKQogICAgICAgICB3aGls
ZSBUcnVlOgpAQCAtODY4LDcgKzkyMyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0
b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCBy
ZWZ0ZXN0X2ludGVybmFsPUZhbHNlLAogICAgICAgICAgICAgICAgICByZWZ0ZXN0X3NjcmVlbnNo
b3Q9InVuZXhwZWN0ZWQiLCBjY292PUZhbHNlLAogICAgICAgICAgICAgICAgICBncm91cF9tZXRh
ZGF0YT1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwgZGVidWc9RmFsc2UsCi0gICAgICAgICAgICAg
ICAgIGJyb3dzZXJfdmVyc2lvbj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGJy
b3dzZXJfdmVyc2lvbj1Ob25lLCBkZWJ1Z190ZXN0PUZhbHNlLCAqKmt3YXJncyk6CiAgICAgICAg
ICIiIk1hcmlvbmV0dGUtYmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCiAgICAgICAgIFJl
ZlRlc3RFeGVjdXRvci5fX2luaXRfXyhzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9nZ2VyLApAQCAtODkxLDYgKzk0Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0
RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi5vcmlnaW5hbF9wcmVmX3Zh
bHVlcyA9IHt9CiAgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRhdGEgPSBncm91cF9tZXRhZGF0YQog
ICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKKyAgICAgICAgc2VsZi5kZWJ1Z190ZXN0ID0gZGVi
dWdfdGVzdAogCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3Qu
anMiKSkgYXMgZjoKICAgICAgICAgICAgIHNlbGYuc2NyaXB0ID0gZi5yZWFkKCkKQEAgLTk1Myw3
ICsxMDA5LDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1
dG9yKToKICAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IHNlbGYucHJvdG9jb2wuYXNzZXJ0
cy5nZXQoKQogICAgICAgICAgICAgaWYgImV4dHJhIiBub3QgaW4gcmVzdWx0OgogICAgICAgICAg
ICAgICAgIHJlc3VsdFsiZXh0cmEiXSA9IHt9Ci0gICAgICAgICAgICByZXN1bHRbImV4dHJhIl1b
ImFzc2VydGlvbl9jb3VudCJdID0gYXNzZXJ0aW9uX2NvdW50CisgICAgICAgICAgICBpZiBhc3Nl
cnRpb25fY291bnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmVzdWx0WyJleHRyYSJd
WyJhc3NlcnRpb25fY291bnQiXSA9IGFzc2VydGlvbl9jb3VudAorCisgICAgICAgIGlmIHNlbGYu
ZGVidWdfdGVzdCBhbmQgcmVzdWx0WyJzdGF0dXMiXSBpbiBbIlBBU1MiLCAiRkFJTCIsICJFUlJP
UiJdIGFuZCAiZXh0cmEiIGluIHJlc3VsdDoKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFz
ZS5zZXRfd2luZG93KHNlbGYucHJvdG9jb2wuYmFzZS53aW5kb3dfaGFuZGxlcygpWzBdKQorICAg
ICAgICAgICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX3JlZnRlc3RfYW5hbHl6ZXIodGVzdCwg
cmVzdWx0KQogCiAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIHJlc3Vs
dCkKIApAQCAtMTAwMCw4ICsxMDYxLDcgQEAgY2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50
YXRpb24oUmVmVGVzdEltcGxlbWVudGF0aW9uKToKICAgICAgICAgZGF0YSA9IHsic2NyZWVuc2hv
dCI6IHNjcmVlbnNob3QsICJpc1ByaW50Ijogc2VsZi5leGVjdXRvci5pc19wcmludH0KICAgICAg
ICAgaWYgc2VsZi5leGVjdXRvci5ncm91cF9tZXRhZGF0YSBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgIGRhdGFbInVybENvdW50Il0gPSB7dXJsam9pbihzZWxmLmV4ZWN1dG9yLnNlcnZlcl91cmwo
a2V5WzBdKSwga2V5WzFdKTp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3Iga2V5LCB2YWx1ZSBpbiBpdGVyaXRlbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmV4ZWN1dG9yLmdyb3VwX21ldGFkYXRhLmdldCgidXJsX2NvdW50Iiwge30p
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxm
LmV4ZWN1dG9yLmdyb3VwX21ldGFkYXRhLmdldCgidXJsX2NvdW50Iiwge30pLml0ZW1zKCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgPiAxfQogICAgICAgICBzZWxm
LmNocm9tZV9zY29wZSA9IGNocm9tZV9zY29wZQogICAgICAgICBpZiBjaHJvbWVfc2NvcGU6CkBA
IC0xMDUzLDEyICsxMTEzLDMyIEBAIGNsYXNzIEludGVybmFsUmVmVGVzdEltcGxlbWVudGF0aW9u
KFJlZlRlc3RJbXBsZW1lbnRhdGlvbik6CiAKIAogY2xhc3MgR2Vja29Ecml2ZXJQcm90b2NvbChX
ZHNwZWNQcm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IEdlY2tvRHJpdmVyU2VydmVyCisgICAg
c2VydmVyX2NscyA9IE5vbmUgICMgVG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cyB3ZSBzZXQgdGhp
cyBhdCBydW50aW1lCiAKIAogY2xhc3MgTWFyaW9uZXR0ZVdkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4
ZWN1dG9yKToKICAgICBwcm90b2NvbF9jbHMgPSBHZWNrb0RyaXZlclByb3RvY29sCiAKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB3ZWJkcml2
ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0
aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZv
PU5vbmUsIGVudmlyb249Tm9uZSwgc3RhY2tmaXhfZGlyPU5vbmUsCisgICAgICAgICAgICAgICAg
IHN5bWJvbHNfcGF0aD1Ob25lLCBsZWFrX3JlcG9ydF9maWxlPU5vbmUsIGFzYW49RmFsc2UsCisg
ICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5vbmUsIGJyb3dzZXJfc2V0dGluZ3M9Tm9u
ZSwgKiprd2FyZ3MpOgorCisgICAgICAgIGZyb20gLi5icm93c2Vycy5maXJlZm94IGltcG9ydCBH
ZWNrb0RyaXZlclNlcnZlcgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgYnJvd3Nl
ciwgc2VydmVyX2NvbmZpZywgd2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGll
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzLCBk
ZWJ1Z19pbmZvPWRlYnVnX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbj1l
bnZpcm9uLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5wcm90b2NvbF9jbHMuc2VydmVyX2NscyA9
IEdlY2tvRHJpdmVyU2VydmVyCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdzID0g
eyJzdGFja2ZpeF9kaXIiOiBzdGFja2ZpeF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBzeW1ib2xzX3BhdGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJhc2FuIjogYXNhbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImxlYWtfcmVwb3J0X2ZpbGUiOiBsZWFrX3JlcG9ydF9maWxl
fQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IHsiZ3JvdXBfbWV0
YWRhdGEiOiBncm91cF9tZXRhZGF0YX0KKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFy
dF9rd2FyZ3MudXBkYXRlKGJyb3dzZXJfc2V0dGluZ3MpCisKKwogCiBjbGFzcyBNYXJpb25ldHRl
Q3Jhc2h0ZXN0RXhlY3V0b3IoQ3Jhc2h0ZXN0RXhlY3V0b3IpOgogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0x
LApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JzZWxlbml1bS5weQppbmRleCBmZjI2MzUxZjg0ZWQuLjlkNjc1Y2IzZWY4NyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5p
dW0ucHkKQEAgLTEsNCArMSwzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHNvY2tldApAQCAtNiw3ICs1LDcg
QEAgaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIGltcG9y
dCB1dWlkCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KK2Zyb20g
dXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCiAKIGZyb20gLmJhc2UgaW1wb3J0IChDYWxsYmFj
a0hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLApAQCAtMTksMTAg
KzE4LDEwIEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVj
dG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFy
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBU
ZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKIAog
aGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMTgzLDYgKzE4MiwxNSBAQCBj
bGFzcyBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQYXJ0KToKICAgICAg
ICAgcmV0dXJuIGVsZW1lbnQuY2xpY2soKQogCiAKK2NsYXNzIFNlbGVuaXVtQ29va2llc1Byb3Rv
Y29sUGFydChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAg
ICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZGVs
ZXRlX2FsbF9jb29raWVzKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGlu
ZyBhbGwgY29va2llcyIpCisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5kZWxldGVfYWxs
X2Nvb2tpZXMoKQorCisKIGNsYXNzIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtl
eXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi53ZWJk
cml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTIxOSw2ICsyMjcsNyBAQCBjbGFzcyBT
ZWxlbml1bVByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtVGVz
dGhhcm5lc3NQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bVNlbGVjdG9y
UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1DbGlja1Byb3RvY29sUGFy
dCwKKyAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFydCwKICAgICAg
ICAgICAgICAgICAgIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAg
ICAgICBTZWxlbml1bVRlc3REcml2ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBT
ZWxlbml1bUFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0XQpAQCAtMjY3LDggKzI3Niw5IEBAIGNs
YXNzIFNlbGVuaXVtUnVuKFRpbWVkUnVubmVyKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
c2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVv
dXQpCiAgICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLkVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbjoK
LSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9u
IikKLSAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgICAgICBtc2cgPSAiTG9zdCBXZWJE
cml2ZXIgY29ubmVjdGlvbiIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAg
ICAgICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIHJ1bl9m
dW5jKHNlbGYpOgogICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2
by5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CmluZGV4IGVmZTkzYWJjNjljNy4uZjMyMjQy
MWJkM2ZhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JzZXJ2by5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
cHJpbnRfZnVuY3Rpb24KIGltcG9ydCBiYXNlNjQKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKQEAg
LTcsNyArNiw2IEBAIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRy
YWNlYmFjawogaW1wb3J0IHV1aWQKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfc3RyLCBpdGVyaXRl
bXMKIAogZnJvbSBtb3pwcm9jZXNzIGltcG9ydCBQcm9jZXNzSGFuZGxlcgogCkBAIC0yMyw3ICsy
MSw2IEBAIGZyb20gLmJhc2UgaW1wb3J0IChDb25uZWN0aW9ubGVzc1Byb3RvY29sLAogICAgICAg
ICAgICAgICAgICAgIFdkc3BlY1Byb3RvY29sKQogZnJvbSAucHJvY2VzcyBpbXBvcnQgUHJvY2Vz
c1Rlc3RFeGVjdXRvcgogZnJvbSAuLmJyb3dzZXJzLmJhc2UgaW1wb3J0IGJyb3dzZXJfY29tbWFu
ZAotZnJvbSAuLnByb2Nlc3MgaW1wb3J0IGNhc3RfZW52CiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZl
ciBpbXBvcnQgU2Vydm9Ecml2ZXJTZXJ2ZXIKIAogCkBAIC00OCw3ICs0NSw3IEBAIGRlZiBidWls
ZF9zZXJ2b19jb21tYW5kKHRlc3QsIHRlc3RfdXJsX2Z1bmMsIGJyb3dzZXIsIGJpbmFyeSwgcGF1
c2VfYWZ0ZXJfdGVzdCwKICAgICAgICAgYXJncyArPSBbIi1aIiwgZGVidWdfb3B0c10KICAgICBm
b3Igc3R5bGVzaGVldCBpbiBicm93c2VyLnVzZXJfc3R5bGVzaGVldHM6CiAgICAgICAgIGFyZ3Mg
Kz0gWyItLXVzZXItc3R5bGVzaGVldCIsIHN0eWxlc2hlZXRdCi0gICAgZm9yIHByZWYsIHZhbHVl
IGluIGl0ZXJpdGVtcyh0ZXN0LmVudmlyb25tZW50LmdldCgncHJlZnMnLCB7fSkpOgorICAgIGZv
ciBwcmVmLCB2YWx1ZSBpbiB0ZXN0LmVudmlyb25tZW50LmdldCgncHJlZnMnLCB7fSkuaXRlbXMo
KToKICAgICAgICAgYXJncyArPSBbIi0tcHJlZiIsICIlcz0lcyIgJSAocHJlZiwgdmFsdWUpXQog
ICAgIGlmIGJyb3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aDoKICAgICAgICAgYXJncyArPSBbIi0t
Y2VydGlmaWNhdGUtcGF0aCIsIGJyb3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aF0KQEAgLTEwMywx
MSArMTAwLDExIEBAIGNsYXNzIFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvcihQcm9jZXNzVGVzdEV4
ZWN1dG9yKToKICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYuY29t
bWFuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXRw
dXRMaW5lPVtzZWxmLm9uX291dHB1dF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvbkZpbmlzaD1zZWxmLm9uX2ZpbmlzaCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW52PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0b3JlT3V0cHV0PUZhbHNlKQogICAgICAgICAgICAgc2VsZi5wcm9jLnJ1bigp
CiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVu
KHNlbGYuY29tbWFuZCwgZW52PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICBzZWxmLnByb2Mg
PSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWVudikKIAogICAgICAgICB0cnk6
CiAgICAgICAgICAgICB0aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRp
cGxpZXIKQEAgLTIzNSw3ICsyMzIsNyBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9j
ZXNzVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmludGVyYWN0aXZlOgog
ICAgICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYuY29tbWFuZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0cHV0
TGluZT1bc2VsZi5vbl9vdXRwdXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVudj1lbnYpCiAKIAogICAgICAgICAgICAgICAgIHRyeToKQEAgLTI0
Nyw3ICsyNDQsNyBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1
dG9yKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVsc2U6CiAgICAg
ICAgICAgICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNvbW1hbmQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYo
ZW52KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1l
bnYpCiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBydiA9IHNlbGYu
cHJvYy53YWl0KCkKICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CkBA
IC0yNjQsNyArMjYxLDkgQEAgY2xhc3MgU2Vydm9SZWZUZXN0RXhlY3V0b3IoUHJvY2Vzc1Rlc3RF
eGVjdXRvcik6CiAgICAgICAgICAgICB3aXRoIG9wZW4ob3V0cHV0X3BhdGgsICJyYiIpIGFzIGY6
CiAgICAgICAgICAgICAgICAgIyBNaWdodCBuZWVkIHRvIHN0cmlwIHZhcmlhYmxlIGhlYWRlcnMg
b3Igc29tZXRoaW5nIGhlcmUKICAgICAgICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZSwgW2Vuc3VyZV9zdHIoYmFzZTY0LmI2NGVuY29kZShkYXRh
KSldCisgICAgICAgICAgICAgICAgIyBSZXR1cm5pbmcgdGhlIHNjcmVlbnNob3QgYXMgYSBzdHJp
bmcgY291bGQgcG90ZW50aWFsbHkgYmUgYXZvaWRlZCwKKyAgICAgICAgICAgICAgICAjIHNlZSBo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjg5MjkuCisg
ICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIFtiYXNlNjQuYjY0ZW5jb2RlKGRhdGEpLmRlY29k
ZSgpXQogCiAgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHJlc3VsdCA9IHNl
bGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkKQEAgLTM1NywxMSArMzU2LDExIEBAIGNs
YXNzIFNlcnZvQ3Jhc2h0ZXN0RXhlY3V0b3IoUHJvY2Vzc1Rlc3RFeGVjdXRvcik6CiAKICAgICAg
ICAgaWYgbm90IHNlbGYuaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICBzZWxmLnByb2MgPSBQcm9j
ZXNzSGFuZGxlcihjb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW52PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rv
cmVPdXRwdXQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwgZW52
PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVu
KGNvbW1hbmQsIGVudj1lbnYpCiAKICAgICAgICAgc2VsZi5wcm9jLndhaXQoKQogCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZv
ZHJpdmVyLnB5CmluZGV4IDJjZDFkYmYzYWQwNi4uMDM5YmNkMTRlMmJlIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2Ry
aXZlci5weQpAQCAtMTAsNyArMTAsNiBAQCBmcm9tIC5iYXNlIGltcG9ydCAoUHJvdG9jb2wsCiAg
ICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKICAgICAgICAgICAgICAgICAg
ICBUaW1lZFJ1bm5lciwKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCi1mcm9tIC4u
dGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IHdh
aXRfZm9yX3NlcnZpY2UKIAogd2ViZHJpdmVyID0gTm9uZQpAQCAtMTg0LDggKzE4Myw5IEBAIGNs
YXNzIFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9y
KToKICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0
ID0gdGltZW91dAogICAgICAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAg
ICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9y
KCJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9uIikKLSAgICAgICAgICAgICAgICByZXR1cm4gU3Rv
cAorICAgICAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIgorICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgICAgICByZXR1
cm4gKCJJTlRFUk5BTC1FUlJPUiIsIG1zZykKIAogICAgICAgICBzdWNjZXNzLCBkYXRhID0gU2Vy
dm9XZWJEcml2ZXJSdW4oc2VsZi5sb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLApAQCAtMjc2LDggKzI3Niw5IEBAIGNs
YXNzIFNlcnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAg
ICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLnRpbWVvdXRzLnNjcmlwdCA9IHRpbWVv
dXQKICAgICAgICAgICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CiAgICAgICAgICAgICBl
eGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCB3
ZWJkcml2ZXIgY29ubmVjdGlvbiIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAg
ICAgICAgICAgICBtc2cgPSAiTG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIKKyAgICAgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAgICAgICAgICAgcmV0dXJuICgiSU5U
RVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICAgICAgcmV0dXJuIFNlcnZvV2ViRHJpdmVyUnVuKHNl
bGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2NyZWVu
c2hvdCwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9l
eGVjdXRvcndlYmRyaXZlci5weQppbmRleCBiYWQ1ZmQwNzIyMzcuLjZkNTkxNmE2YWZiYyAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cndlYmRyaXZlci5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0CiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0CkBAIC02
LDcgKzUsNyBAQCBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFj
awogaW1wb3J0IHV1aWQKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9p
bgorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAuYmFzZSBpbXBvcnQg
KENhbGxiYWNrSGFuZGxlciwKICAgICAgICAgICAgICAgICAgICBDcmFzaHRlc3RFeGVjdXRvciwK
QEAgLTIwLDIyICsxOSwyMyBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEJhc2VQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sLAogICAgICAgICAgICAgICAgICAg
ICAgICBTZWxlY3RvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQ2xpY2tQ
cm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZXNQcm90b2NvbFBhcnQs
CiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRLZXlzUHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgVGVzdERyaXZlclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAg
R2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBT
ZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgICAgICBWaXJ0dWFs
QXV0aGVudGljYXRvclByb3RvY29sUGFydCkKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9w
CisgICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0
LAorICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29sUGFydCkKIAotaW1wb3J0IHdl
YmRyaXZlciBhcyBjbGllbnQKK2Zyb20gd2ViZHJpdmVyLmNsaWVudCBpbXBvcnQgU2Vzc2lvbgog
ZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pCiAKIAogY2xhc3MgV2ViRHJpdmVyQ2FsbGJhY2tIYW5kbGVyKENhbGxiYWNrSGFuZGxl
cik6Ci0gICAgdW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50ZWRFcnJvciwgY2xpZW50
LlVua25vd25Db21tYW5kRXhjZXB0aW9uKQorICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdElt
cGxlbWVudGVkRXJyb3IsIGVycm9yLlVua25vd25Db21tYW5kRXhjZXB0aW9uKQogCiAKIGNsYXNz
IFdlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CkBAIC00OSw3ICs0
OSw3IEBAIGNsYXNzIFdlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6
CiAgICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBzZWxmLndlYmRyaXZlci50aW1lb3V0cy5zY3JpcHQgPSB0aW1lb3V0Ci0gICAgICAg
IGV4Y2VwdCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICBleGNlcHQgZXJyb3Iu
V2ViRHJpdmVyRXhjZXB0aW9uOgogICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGh0dHBzOi8vYnVn
cy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDU3CiAgICAg
ICAgICAgICBib2R5ID0geyJ0eXBlIjogInNjcmlwdCIsICJtcyI6IHRpbWVvdXQgKiAxMDAwfQog
ICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAi
dGltZW91dHMiLCBib2R5KQpAQCAtNzEsMTYgKzcxLDE2IEBAIGNsYXNzIFdlYkRyaXZlckJhc2VQ
cm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAgICAgICAgIHdoaWxlIFRydWU6CiAgICAg
ICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9hc3lu
Y19zY3JpcHQoIiIpCi0gICAgICAgICAgICBleGNlcHQgKGNsaWVudC5UaW1lb3V0RXhjZXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICBjbGllbnQuU2NyaXB0VGltZW91dEV4Y2VwdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgY2xpZW50LkphdmFzY3JpcHRFcnJvckV4Y2VwdGlvbik6CisgICAg
ICAgICAgICBleGNlcHQgKGVycm9yLlRpbWVvdXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAg
ICAgIGVycm9yLlNjcmlwdFRpbWVvdXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgIGVy
cm9yLkphdmFzY3JpcHRFcnJvckV4Y2VwdGlvbik6CiAgICAgICAgICAgICAgICAgIyBBIEphdmFz
Y3JpcHRFcnJvckV4Y2VwdGlvbiB3aWxsIGhhcHBlbiB3aGVuIHdlIG5hdmlnYXRlOwogICAgICAg
ICAgICAgICAgICMgYnkgaWdub3JpbmcgaXQgaXQncyBwb3NzaWJsZSB0byByZWxvYWQgdGhlIHRl
c3Qgd2hpbHN0IHRoZQogICAgICAgICAgICAgICAgICMgaGFybmVzcyByZW1haW5zIHBhdXNlZAog
ICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQs
Ci0gICAgICAgICAgICAgICAgICAgIGNsaWVudC5Ob1N1Y2hXaW5kb3dFeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24sCisgICAgICAgICAg
ICAgICAgICAgIGVycm9yLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAg
ICAgZXJyb3IuVW5rbm93bkVycm9yRXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICAgICBJT0Vy
cm9yKToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKQEAgLTExNiw3ICsxMTYsNyBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29s
UGFydChUZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAg
ICAgICAgICAgc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZSA9IGhhbmRsZQogICAgICAgICAg
ICAgICAgIHNlbGYud2ViZHJpdmVyLndpbmRvdy5jbG9zZSgpCi0gICAgICAgICAgICBleGNlcHQg
Y2xpZW50Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKKyAgICAgICAgICAgIGV4Y2VwdCBlcnJvci5O
b1N1Y2hXaW5kb3dFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxm
LndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0gc2VsZi5ydW5uZXJfaGFuZGxlCiAgICAgICAgIHJl
dHVybiBzZWxmLnJ1bm5lcl9oYW5kbGUKQEAgLTE5MCw2ICsxOTAsMTUgQEAgY2xhc3MgV2ViRHJp
dmVyQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4g
ZWxlbWVudC5jbGljaygpCiAKIAorY2xhc3MgV2ViRHJpdmVyQ29va2llc1Byb3RvY29sUGFydChD
b29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYu
d2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZGVsZXRlX2FsbF9j
b29raWVzKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwgY29v
a2llcyIpCisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFu
ZCgiREVMRVRFIiwgImNvb2tpZSIpCisKKwogY2xhc3MgV2ViRHJpdmVyU2VuZEtleXNQcm90b2Nv
bFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAg
ICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTE5Nyw3ICsyMDYs
NyBAQCBjbGFzcyBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29s
UGFydCk6CiAgICAgZGVmIHNlbmRfa2V5cyhzZWxmLCBlbGVtZW50LCBrZXlzKToKICAgICAgICAg
dHJ5OgogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9rZXlzKGtleXMpCi0gICAgICAg
IGV4Y2VwdCBjbGllbnQuVW5rbm93bkVycm9yRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGV4Y2Vw
dCBlcnJvci5Vbmtub3duRXJyb3JFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICMgd29ya2Fy
b3VuZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRh
aWw/aWQ9MTk5OQogICAgICAgICAgICAgaWYgKGUuaHR0cF9zdGF0dXMgIT0gNTAwIG9yCiAgICAg
ICAgICAgICAgICAgZS5zdGF0dXNfY29kZSAhPSAidW5rbm93biBlcnJvciIpOgpAQCAtMjI3LDgg
KzIzNiwxMiBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFRlc3REcml2
ZXJQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgb2JqWyJtZXNzYWdlIl0gPSBzdHIobWVzc2Fn
ZSkKICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5wb3N0TWVz
c2FnZSglcywgJyonKSIgJSBqc29uLmR1bXBzKG9iaikpCiAKLSAgICBkZWYgX3N3aXRjaF90b19m
cmFtZShzZWxmLCBmcmFtZV9udW1iZXIpOgotICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0Y2hf
ZnJhbWUoZnJhbWVfbnVtYmVyKQorICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGluZGV4
X29yX2VsZW0pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0
Y2hfZnJhbWUoaW5kZXhfb3JfZWxlbSkKKyAgICAgICAgZXhjZXB0IChlcnJvci5TdGFsZUVsZW1l
bnRSZWZlcmVuY2VFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgZXJyb3IuTm9TdWNoRnJhbWVF
eGNlcHRpb24pIGFzIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yIGZyb20gZQogCiAg
ICAgZGVmIF9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRy
aXZlci5zd2l0Y2hfZnJhbWUoInBhcmVudCIpCkBAIC0yODMsMTcgKzI5NiwyNCBAQCBjbGFzcyBX
ZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGlj
YXRvclByb3RvY29sUGFydAogICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNz
aW9uX2NvbW1hbmQoIlBPU1QiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcy91diIgJSBhdXRo
ZW50aWNhdG9yX2lkLCB1dikKIAogCitjbGFzcyBXZWJEcml2ZXJEZWJ1Z1Byb3RvY29sUGFydChE
ZWJ1Z1Byb3RvY29sUGFydCk6CisgICAgZGVmIGxvYWRfZGV2dG9vbHMoc2VsZik6CisgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisKIGNsYXNzIFdlYkRyaXZlclByb3RvY29s
KFByb3RvY29sKToKICAgICBpbXBsZW1lbnRzID0gW1dlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQs
CiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgIFdlYkRyaXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgV2ViRHJpdmVyQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBX
ZWJEcml2ZXJDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVy
U2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJBY3Rpb25T
ZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclRlc3REcml2
ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJHZW5lcmF0ZVRlc3RS
ZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZXRQZXJtaXNz
aW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVmlydHVhbEF1dGhl
bnRpY2F0b3JQcm90b2NvbFBhcnRdCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJWaXJ0dWFs
QXV0aGVudGljYXRvclByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckRl
YnVnUHJvdG9jb2xQYXJ0XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93
c2VyLCBjYXBhYmlsaXRpZXMsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoV2ViRHJpdmVyUHJv
dG9jb2wsIHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQpAQCAtMzA4LDcgKzMyOCw3
IEBAIGNsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgaG9zdCwgcG9y
dCA9IHNlbGYudXJsLnNwbGl0KCI6IilbMV0uc3RyaXAoIi8iKSwgc2VsZi51cmwuc3BsaXQoJzon
KVstMV0uc3RyaXAoIi8iKQogCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHsiYWx3YXlzTWF0Y2gi
OiBzZWxmLmNhcGFiaWxpdGllc30KLSAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBjbGllbnQuU2Vz
c2lvbihob3N0LCBwb3J0LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBzZWxm
LndlYmRyaXZlciA9IFNlc3Npb24oaG9zdCwgcG9ydCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGll
cykKICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc3RhcnQoKQogCiAgICAgZGVmIHRlYXJkb3duKHNl
bGYpOgpAQCAtMzMxLDcgKzM1MSw3IEBAIGNsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29s
KToKICAgICAgICAgICAgICMgNSBzZWNvbmRzIG9mIGV4dHJhX3RpbWVvdXQgd2UgaGF2ZSBhcyBt
YXhpbXVtIHRvIGVuZCB0aGUgdGVzdCBiZWZvcmUKICAgICAgICAgICAgICMgdGhlIGV4dGVybmFs
IHRpbWVvdXQgZnJvbSB0ZXN0cnVubmVyIHRyaWdnZXJzLgogICAgICAgICAgICAgc2VsZi53ZWJk
cml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ3aW5kb3ciLCB0aW1lb3V0PTIpCi0g
ICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRp
b24sIGNsaWVudC5JbnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChz
b2NrZXQudGltZW91dCwgZXJyb3IuVW5rbm93bkVycm9yRXhjZXB0aW9uLCBlcnJvci5JbnZhbGlk
U2Vzc2lvbklkRXhjZXB0aW9uKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBy
ZXR1cm4gVHJ1ZQogCkBAIC0zNDMsMTkgKzM2MywyMCBAQCBjbGFzcyBXZWJEcml2ZXJSdW4oVGlt
ZWRSdW5uZXIpOgogICAgIGRlZiBzZXRfdGltZW91dChzZWxmKToKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHNlbGYudGltZW91dCArIHNl
bGYuZXh0cmFfdGltZW91dCkKLSAgICAgICAgZXhjZXB0IGNsaWVudC5Vbmtub3duRXJyb3JFeGNl
cHRpb246Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBXZWJEcml2ZXIgY29u
bmVjdGlvbiIpCi0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICBleGNlcHQgZXJyb3Iu
VW5rbm93bkVycm9yRXhjZXB0aW9uOgorICAgICAgICAgICAgbXNnID0gIkxvc3QgV2ViRHJpdmVy
IGNvbm5lY3Rpb24iCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAg
ICAgICByZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIsIG1zZykKIAogICAgIGRlZiBydW5fZnVuYyhz
ZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxm
LmZ1bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKLSAgICAgICAgZXhj
ZXB0IChjbGllbnQuVGltZW91dEV4Y2VwdGlvbiwgY2xpZW50LlNjcmlwdFRpbWVvdXRFeGNlcHRp
b24pOgorICAgICAgICBleGNlcHQgKGVycm9yLlRpbWVvdXRFeGNlcHRpb24sIGVycm9yLlNjcmlw
dFRpbWVvdXRFeGNlcHRpb24pOgogICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJF
WFRFUk5BTC1USU1FT1VUIiwgTm9uZSkKLSAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwg
Y2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbik6CisgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRp
bWVvdXQsIGVycm9yLlVua25vd25FcnJvckV4Y2VwdGlvbik6CiAgICAgICAgICAgICBzZWxmLnJl
c3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgotICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoZSwgY2xpZW50LldlYkRyaXZlckV4Y2Vw
dGlvbikgYW5kCisgICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShlLCBlcnJvci5XZWJEcml2ZXJF
eGNlcHRpb24pIGFuZAogICAgICAgICAgICAgICAgICAgICBlLmh0dHBfc3RhdHVzID09IDQwOCBh
bmQKICAgICAgICAgICAgICAgICAgICAgZS5zdGF0dXNfY29kZSA9PSAiYXN5bmNocm9ub3VzIHNj
cmlwdCB0aW1lb3V0Iik6CiAgICAgICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGZvciBodHRwczov
L2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MjAwMQpA
QCAtNDQ5LDcgKzQ3MCw3IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IoVGVz
dGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyZXN1bHQs
IGxpc3QpIG9yIGxlbihyZXN1bHQpICE9IDI6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgICAgICAgICBpc19hbGl2ZSA9IHNlbGYuaXNfYWxpdmUoKQotICAgICAgICAgICAgICAg
IGV4Y2VwdCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIGV4Y2Vw
dCBlcnJvci5XZWJEcml2ZXJFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgICAgIGlzX2FsaXZl
ID0gRmFsc2UKIAogICAgICAgICAgICAgICAgIGlmIG5vdCBpc19hbGl2ZToKQEAgLTQ4Myw3ICs1
MDQsNyBAQCBpZiAobG9jYXRpb24uaHJlZiA9PT0gImFib3V0OmJsYW5rIikgewogfSBlbHNlIHsK
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsICgpID0+IHtp
ZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gImxvYWRpbmciKSB7Y2FsbGJhY2sodHJ1ZSl9fSk7
CiB9IiIiLCBhc3luY2hyb25vdXM9VHJ1ZSkKLSAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQuSmF2
YXNjcmlwdEVycm9yRXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjZXB0IGVycm9yLkphdmFzY3Jp
cHRFcnJvckV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAjIFdlIGNhbiBnZXQgYW4gZXJyb3Ig
aGVyZSBpZiB0aGUgc2NyaXB0IHJ1bnMgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsKICAgICAg
ICAgICAgICAgICAjIGRvY3VtZW50IGJlZm9yZSBpdCBoYXMgbmF2aWdhdGVkLCB3aXRoIHRoZSBk
cml2ZXIgcmV0dXJuaW5nIGFuIGVycm9yCiAgICAgICAgICAgICAgICAgIyBpbmRpY2F0aW5nIHRo
YXQgdGhlIGRvY3VtZW50IHdhcyB1bmxvYWRlZApAQCAtNDk3LDcgKzUxOCw3IEBAIGNsYXNzIFdl
YkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogCiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBs
aWVyPTEsCiAgICAgICAgICAgICAgICAgIHNjcmVlbnNob3RfY2FjaGU9Tm9uZSwgY2xvc2VfYWZ0
ZXJfZG9uZT1UcnVlLAotICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIGNhcGFiaWxp
dGllcz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwg
Y2FwYWJpbGl0aWVzPU5vbmUsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToKICAgICAgICAg
IiIiV2ViRHJpdmVyLWJhc2VkIGV4ZWN1dG9yIGZvciByZWZ0ZXN0cyIiIgogICAgICAgICBSZWZU
ZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZ2dlciwKQEAgLTUxMiw2ICs1MzMsNyBAQCBjbGFzcyBXZWJEcml2ZXJSZWZUZXN0RXhl
Y3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbiA9IFJl
ZlRlc3RJbXBsZW1lbnRhdGlvbihzZWxmKQogICAgICAgICBzZWxmLmNsb3NlX2FmdGVyX2RvbmUg
PSBjbG9zZV9hZnRlcl9kb25lCiAgICAgICAgIHNlbGYuaGFzX3dpbmRvdyA9IEZhbHNlCisgICAg
ICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKIAogICAgICAgICB3aXRoIG9wZW4ob3Mu
cGF0aC5qb2luKGhlcmUsICJ0ZXN0LXdhaXQuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNlbGYu
d2FpdF9zY3JpcHQgPSBmLnJlYWQoKSAlIHsiY2xhc3NuYW1lIjogInJlZnRlc3Qtd2FpdCJ9CkBA
IC01MjksMTMgKzU1MSwxNiBAQCBjbGFzcyBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVz
dEV4ZWN1dG9yKToKICAgICAgICAgKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnBy
b3RvY29sLndlYmRyaXZlci53aW5kb3cucG9zaXRpb24gPSAoMCwgMCkKLSAgICAgICAgZXhjZXB0
IGNsaWVudC5JbnZhbGlkQXJndW1lbnRFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCBlcnJvci5J
bnZhbGlkQXJndW1lbnRFeGNlcHRpb246CiAgICAgICAgICAgICAjIFNhZmFyaSAxMiB0aHJvd3Mg
d2l0aCAwIG9yIDEsIHRyZWF0aW5nIHRoZW0gYXMgYm9vbHM7IGZpeGVkIGluIFNUUAogICAgICAg
ICAgICAgc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIud2luZG93LnBvc2l0aW9uID0gKDIsIDIpCiAg
ICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLndpbmRvdy5zaXplID0gKDgwMCArIHdpZHRo
X29mZnNldCwgNjAwICsgaGVpZ2h0X29mZnNldCkKIAogICAgICAgICByZXN1bHQgPSBzZWxmLmlt
cGxlbWVudGF0aW9uLnJ1bl90ZXN0KHRlc3QpCiAKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190ZXN0
IGFuZCByZXN1bHRbInN0YXR1cyJdIGluIFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIl0gYW5kICJl
eHRyYSIgaW4gcmVzdWx0OgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX3Jl
ZnRlc3RfYW5hbHl6ZXIodGVzdCwgcmVzdWx0KQorCiAgICAgICAgIHJldHVybiBzZWxmLmNvbnZl
cnRfcmVzdWx0KHRlc3QsIHJlc3VsdCkKIAogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYsIHRlc3Qs
IHZpZXdwb3J0X3NpemUsIGRwaSwgcGFnZV9yYW5nZXMpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3By
b3RvY29sLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CmluZGV4IGJkNzY4YjEwNzNjNy4uZjk1NDdh
ZDkwNGJjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3Rv
Y29sLnB5CkBAIC0xLDYgKzEsNyBAQAogaW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIGFiYyBpbXBv
cnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKK2Zyb20gdHlwaW5nIGltcG9ydCBDbGFzc1Zhciwg
TGlzdCwgVHlwZQogCiAKIGNsYXNzIFByb3RvY29sKG9iamVjdCk6CkBAIC0xNiw3ICsxNyw3IEBA
IGNsYXNzIFByb3RvY29sKG9iamVjdCk6CiAgICAgOnBhcmFtIEJyb3dzZXIgYnJvd3NlcjogVGhl
IEJyb3dzZXIgdXNpbmcgdGhpcyBwcm90b2NvbCIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNN
ZXRhCiAKLSAgICBpbXBsZW1lbnRzID0gW10KKyAgICBpbXBsZW1lbnRzID0gW10gICMgdHlwZTog
Q2xhc3NWYXJbTGlzdFtUeXBlW1Byb3RvY29sUGFydF1dXQogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGV4ZWN1dG9yLCBicm93c2VyKToKICAgICAgICAgc2VsZi5leGVjdXRvciA9IGV4ZWN1dG9y
CkBAIC04Miw3ICs4Myw3IEBAIGNsYXNzIFByb3RvY29sUGFydChvYmplY3QpOgogICAgIDpwYXJh
bSBQcm90b2NvbCBwYXJlbnQ6IFRoZSBwYXJlbnQgcHJvdG9jb2wiIiIKICAgICBfX21ldGFjbGFz
c19fID0gQUJDTWV0YQogCi0gICAgbmFtZSA9IE5vbmUKKyAgICBuYW1lID0gTm9uZSAgIyB0eXBl
OiBDbGFzc1ZhcltzdHJdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKICAgICAg
ICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKQEAgLTI4MSw2ICsyODIsMTggQEAgY2xhc3MgQ2xpY2tQ
cm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcGFzcwogCiAKK2NsYXNzIENvb2tp
ZXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBt
YW5hZ2luZyBjb29raWVzIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5h
bWUgPSAiY29va2llcyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBkZWxldGVfYWxs
X2Nvb2tpZXMoc2VsZik6CisgICAgICAgICIiIkRlbGV0ZSBhbGwgY29va2llcy4iIiIKKyAgICAg
ICAgcGFzcworCisKIGNsYXNzIFNlbmRLZXlzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAg
ICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgcGVyZm9ybWluZyB0cnVzdGVkIGNsaWNrcyIiIgogICAg
IF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCkBAIC0zNTgsNDMgKzM3MSw3MiBAQCBjbGFzcyBUZXN0
RHJpdmVyUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAgIDpwYXJhbSBzdHIgbWVz
c2FnZTogQWRkaXRpb25hbCBkYXRhIHRvIGFkZCB0byB0aGUgbWVzc2FnZS4iIiIKICAgICAgICAg
cGFzcwogCi0gICAgZGVmIHN3aXRjaF90b193aW5kb3coc2VsZiwgd3B0cnVubmVyX2lkKToKKyAg
ICBkZWYgc3dpdGNoX3RvX3dpbmRvdyhzZWxmLCB3cHRydW5uZXJfaWQsIGluaXRpYWxfd2luZG93
PU5vbmUpOgogICAgICAgICAiIiJTd2l0Y2ggdG8gYSB3aW5kb3cgZ2l2ZW4gYSB3cHRydW5uZXIg
d2luZG93IGlkCiAKLSAgICAgICAgOnBhcmFtIHN0ciB3cHRydW5uZXJfaWQ6IHdpbmRvdyBpZCIi
IgorICAgICAgICA6cGFyYW0gc3RyIHdwdHJ1bm5lcl9pZDogVGVzdGRyaXZlci1zcGVjaWZpYyBp
ZCBmb3IgdGhlIHRhcmdldCB3aW5kb3cKKyAgICAgICAgOnBhcmFtIHN0ciBpbml0aWFsX3dpbmRv
dzogV2ViRHJpdmVyIHdpbmRvdyBpZCBmb3IgdGhlIHRlc3Qgd2luZG93IiIiCiAgICAgICAgIGlm
IHdwdHJ1bm5lcl9pZCBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgaWYg
aW5pdGlhbF93aW5kb3cgaXMgTm9uZToKKyAgICAgICAgICAgIGluaXRpYWxfd2luZG93ID0gc2Vs
Zi5wYXJlbnQuYmFzZS5jdXJyZW50X3dpbmRvdworCiAgICAgICAgIHN0YWNrID0gW3N0cihpdGVt
KSBmb3IgaXRlbSBpbiBzZWxmLnBhcmVudC5iYXNlLndpbmRvd19oYW5kbGVzKCldCisgICAgICAg
IGZpcnN0ID0gVHJ1ZQogICAgICAgICB3aGlsZSBzdGFjazoKICAgICAgICAgICAgIGl0ZW0gPSBz
dGFjay5wb3AoKQorCiAgICAgICAgICAgICBpZiBpdGVtIGlzIE5vbmU6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IGZpcnN0IGlzIEZhbHNlCiAgICAgICAgICAgICAgICAgc2VsZi5fc3dpdGNoX3Rv
X3BhcmVudF9mcmFtZSgpCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVs
aWYgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgotICAgICAgICAgICAgICAgIHNlbGYucGFyZW50LmJh
c2Uuc2V0X3dpbmRvdyhpdGVtKQorCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIHN0
cik6CisgICAgICAgICAgICAgICAgaWYgbm90IGZpcnN0IG9yIGl0ZW0gIT0gaW5pdGlhbF93aW5k
b3c6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyZW50LmJhc2Uuc2V0X3dpbmRvdyhpdGVt
KQorICAgICAgICAgICAgICAgIGZpcnN0ID0gRmFsc2UKICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fc3dpdGNoX3RvX2ZyYW1lKGl0ZW0pCisgICAgICAgICAgICAgICAg
YXNzZXJ0IGZpcnN0IGlzIEZhbHNlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9zd2l0Y2hfdG9fZnJhbWUoaXRlbSkKKyAgICAgICAgICAgICAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgZnJhbWUgbm8gbG9uZ2Vy
IGV4aXN0cywgb3IgZG9lc24ndCBoYXZlIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQsIHNvIGNv
bnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBoYW5kbGVfd2luZG93X2lkID0gc2VsZi5wYXJlbnQuYmFzZS5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdy5fX3dwdHJ1bm5lcl9pZCIpCi0gICAgICAgICAgICAg
ICAgaWYgc3RyKGhhbmRsZV93aW5kb3dfaWQpID09IHdwdHJ1bm5lcl9pZDoKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgIyBHZXQgdGhlIHdpbmRvdyBpZCBhbmQg
YSBsaXN0IG9mIGVsZW1lbnRzIGNvbnRhaW5pbmcgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLgor
ICAgICAgICAgICAgICAgICMgRm9yIGVtYmVkIHdlIGNhbid0IHRlbGwgZnByIHN1cmUgaWYgdGhl
cmUncyBhIG5lc3RlZCBicm93c2luZyBjb250ZXh0LCBzbyBhbHdheXMgcmV0dXJuIGl0CisgICAg
ICAgICAgICAgICAgIyBhbmQgZmFpbCBsYXRlciBpZiB0aGVyZSBpc24ndAorICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoIiIiCisgICAgICAg
ICAgICAgICAgbGV0IGNvbnRleHRQYXJlbnRzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCJmcmFtZSwgaWZyYW1lLCBlbWJlZCwgb2JqZWN0IikpCisgICAgICAgICAgICAg
ICAgICAgIC5maWx0ZXIoZWxlbSA9PiBlbGVtLmxvY2FsTmFtZSAhPT0gImVtYmVkIiA/IChlbGVt
LmNvbnRlbnRXaW5kb3cgIT09IG51bGwpIDogdHJ1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IFt3aW5kb3cuX193cHRydW5uZXJfaWQsIGNvbnRleHRQYXJlbnRzXSIiIikKICAgICAgICAgICAg
IGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZnJh
bWVfY291bnQgPSBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93
Lmxlbmd0aCIpCi0gICAgICAgICAgICAjIE5vbmUgaGVyZSBtYWtlcyB1cyBzd2l0Y2ggYmFjayB0
byB0aGUgcGFyZW50IGFmdGVyIHdlJ3ZlIHByb2Nlc3NlZCBhbGwgdGhlIHN1YmZyYW1lcwotICAg
ICAgICAgICAgc3RhY2suYXBwZW5kKE5vbmUpCi0gICAgICAgICAgICBpZiBmcmFtZV9jb3VudDoK
LSAgICAgICAgICAgICAgICBzdGFjay5leHRlbmQocmV2ZXJzZWQocmFuZ2UoMCwgZnJhbWVfY291
bnQpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBpZiByZXN1bHQg
aXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIFdpdGggbWFyaW9uZXR0ZSBhdCBsZWFzdCB0aGlz
IGlzIHBvc3NpYmxlIGlmIHRoZSBjb250ZW50IHByb2Nlc3MgY3Jhc2hlZC4gTm90IHF1aXRlCisg
ICAgICAgICAgICAgICAgIyBzdXJlIGhvdyB3ZSB3YW50IHRvIGhhbmRsZSB0aGF0IGNhc2UuCisg
ICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaGFuZGxlX3dpbmRvd19pZCwg
bmVzdGVkX2NvbnRleHRfY29udGFpbmVycyA9IHJlc3VsdAorCisgICAgICAgICAgICBpZiBoYW5k
bGVfd2luZG93X2lkIGFuZCBzdHIoaGFuZGxlX3dpbmRvd19pZCkgPT0gd3B0cnVubmVyX2lkOgor
ICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBmb3IgZWxlbSBpbiByZXZlcnNl
ZChuZXN0ZWRfY29udGV4dF9jb250YWluZXJzKToKKyAgICAgICAgICAgICAgICAjIE5vbmUgaGVy
ZSBtYWtlcyB1cyBzd2l0Y2ggYmFjayB0byB0aGUgcGFyZW50IGFmdGVyIHdlJ3ZlIHByb2Nlc3Nl
ZCB0aGUgZnJhbWUKKyAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmQoTm9uZSkKKyAgICAgICAg
ICAgICAgICBzdGFjay5hcHBlbmQoZWxlbSkKIAogICAgICAgICByYWlzZSBFeGNlcHRpb24oIldp
bmRvdyB3aXRoIGlkICVzIG5vdCBmb3VuZCIgJSB3cHRydW5uZXJfaWQpCiAKICAgICBAYWJzdHJh
Y3RtZXRob2QKLSAgICBkZWYgX3N3aXRjaF90b19mcmFtZShzZWxmLCBpbmRleCk6CisgICAgZGVm
IF9zd2l0Y2hfdG9fZnJhbWUoc2VsZiwgaW5kZXhfb3JfZWxlbSk6CiAgICAgICAgICIiIlN3aXRj
aCB0byBhIGZyYW1lIGluIHRoZSBjdXJyZW50IHdpbmRvdwogCi0gICAgICAgIDpwYXJhbSBpbnQg
aW5kZXg6IEZyYW1lIGlkIiIiCisgICAgICAgIDpwYXJhbSBpbnQgaW5kZXhfb3JfZWxlbTogRnJh
bWUgaWQgb3IgY29udGFpbmVyIGVsZW1lbnQiIiIKICAgICAgICAgcGFzcwogCiAgICAgQGFic3Ry
YWN0bWV0aG9kCkBAIC01MDMsMyArNTQ1LDMyIEBAIGNsYXNzIFByaW50UHJvdG9jb2xQYXJ0KFBy
b3RvY29sUGFydCk6CiAgICAgZGVmIHJlbmRlcl9hc19wZGYoc2VsZiwgd2lkdGgsIGhlaWdodCk6
CiAgICAgICAgICIiIk91dHB1dCBkb2N1bWVudCBhcyBQREYiIiIKICAgICAgICAgcGFzcworCisK
K2NsYXNzIERlYnVnUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9jb2wg
cGFydCBmb3IgZGVidWdnaW5nIHRlc3QgZmFpbHVyZXMuIiIiCisgICAgX19tZXRhY2xhc3NfXyA9
IEFCQ01ldGEKKworICAgIG5hbWUgPSAiZGVidWciCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAg
ICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgIiIiTG9hZCBkZXZ0b29scyBpbiB0
aGUgY3VycmVudCB3aW5kb3ciIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIGxvYWRfcmVmdGVz
dF9hbmFseXplcihzZWxmLCB0ZXN0LCByZXN1bHQpOgorICAgICAgICBpbXBvcnQgaW8KKyAgICAg
ICAgaW1wb3J0IG1vemxvZworICAgICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgcXVvdGUs
IHVybGpvaW4KKworICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlciA9IG1vemxvZy5zdHJ1Y3R1cmVk
bG9nLlN0cnVjdHVyZWRMb2dnZXIoImRlYnVnX3Rlc3QiKQorICAgICAgICBvdXRwdXQgPSBpby5T
dHJpbmdJTygpCisgICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2VyLnN1aXRlX3N0YXJ0KFtdKQorICAg
ICAgICBkZWJ1Z190ZXN0X2xvZ2dlci5hZGRfaGFuZGxlcihtb3psb2cuaGFuZGxlcnMuU3RyZWFt
SGFuZGxlcihvdXRwdXQsIGZvcm1hdHRlcj1tb3psb2cuZm9ybWF0dGVycy5UYnBsRm9ybWF0dGVy
KCkpKQorICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCisgICAg
ICAgICMgQWx3YXlzIHVzZSBQQVNTIGFzIHRoZSBleHBlY3RlZCB2YWx1ZSBzbyB3ZSBnZXQgb3V0
cHV0IGV2ZW4gZm9yIGV4cGVjdGVkIGZhaWx1cmVzCisgICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2Vy
LnRlc3RfZW5kKHRlc3QuaWQsIHJlc3VsdFsic3RhdHVzIl0sICJQQVNTIiwgZXh0cmE9cmVzdWx0
LmdldCgiZXh0cmEiKSkKKworICAgICAgICBzZWxmLnBhcmVudC5iYXNlLmxvYWQodXJsam9pbihz
ZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKCJodHRwcyIpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi9jb21tb24vdGhpcmRfcGFydHkvcmVmdGVzdC1hbmFseXplci54aHRt
bCNsb2c9JXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZShvdXRwdXQu
Z2V0dmFsdWUoKSkpKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQppbmRleCAzZDMyOTE3NjU5YjMuLjUwODE5
YTkzNTg5OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKQEAgLTI0LDcgKzI0LDcgQEAgZGVmIGRvX2Rl
bGF5ZWRfaW1wb3J0cygpOgogICAgIGltcG9ydCBweXRlc3QKIAogCi1kZWYgcnVuKHBhdGgsIHNl
cnZlcl9jb25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTApOgorZGVmIHJ1bihwYXRoLCBz
ZXJ2ZXJfY29uZmlnLCBzZXNzaW9uX2NvbmZpZywgdGltZW91dD0wLCBlbnZpcm9uPU5vbmUpOgog
ICAgICIiIgogICAgIFJ1biBQeXRob24gdGVzdCBhdCBgYHBhdGhgYCBpbiBweXRlc3QuICBUaGUg
cHJvdmlkZWQgYGBzZXNzaW9uYGAKICAgICBpcyBleHBvc2VkIGFzIGEgZml4dHVyZSBhdmFpbGFi
bGUgaW4gdGhlIHNjb3BlIG9mIHRoZSB0ZXN0IGZ1bmN0aW9ucy4KQEAgLTQxLDI4ICs0MSw0MCBA
QCBkZWYgcnVuKHBhdGgsIHNlcnZlcl9jb25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTAp
OgogICAgIGlmIHB5dGVzdCBpcyBOb25lOgogICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQog
Ci0gICAgb3MuZW52aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQotICAg
IG9zLmVudmlyb25bIldEX1BPUlQiXSA9IHN0cihzZXNzaW9uX2NvbmZpZ1sicG9ydCJdKQotICAg
IG9zLmVudmlyb25bIldEX0NBUEFCSUxJVElFUyJdID0ganNvbi5kdW1wcyhzZXNzaW9uX2NvbmZp
Z1siY2FwYWJpbGl0aWVzIl0pCi0gICAgb3MuZW52aXJvblsiV0RfU0VSVkVSX0NPTkZJRyJdID0g
anNvbi5kdW1wcyhzZXJ2ZXJfY29uZmlnLmFzX2RpY3RfZm9yX3dkX2Vudl92YXJpYWJsZSgpKQot
Ci0gICAgaGFybmVzcyA9IEhhcm5lc3NSZXN1bHRSZWNvcmRlcigpCi0gICAgc3VidGVzdHMgPSBT
dWJ0ZXN0UmVzdWx0UmVjb3JkZXIoKQotCi0gICAgd2l0aCBUZW1wb3JhcnlEaXJlY3RvcnkoKSBh
cyBjYWNoZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcHl0ZXN0Lm1haW4oWyItLXN0cmlj
dCIsICAjIHR1cm4gd2FybmluZ3MgaW50byBlcnJvcnMKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAiLXZ2IiwgICMgc2hvdyBlYWNoIGluZGl2aWR1YWwgc3VidGVzdCBhbmQgZnVsbCBmYWlsdXJl
IGxvZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLS1jYXB0dXJlIiwgIm5vIiwgICMgZW5h
YmxlIHN0ZG91dC9zdGRlcnIgZnJvbSB0ZXN0cwotICAgICAgICAgICAgICAgICAgICAgICAgICIt
LWJhc2V0ZW1wIiwgY2FjaGUsICAjIHRlbXBvcmFyeSBkaXJlY3RvcnkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAiLS1zaG93bG9jYWxzIiwgICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJpYWJs
ZXMgaW4gbG9jYWwgc2NvcGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAibm86bW96
bG9nIiwgICMgdXNlIHRoZSBXUFQgcmVzdWx0IHJlY29yZGVyCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIi1wIiwgIm5vOmNhY2hlcHJvdmlkZXIiLCAgIyBkaXNhYmxlIHN0YXRlIHByZXNlcnZh
dGlvbiBhY3Jvc3MgaW52b2NhdGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLW89Y29u
c29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYyIsICAjIGRpc2FibGUgdGVzdCBwcm9ncmVzcyBiYXIK
LSAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBsdWdpbnM9W2hhcm5lc3MsIHN1YnRlc3RzXSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgotICAgICAgICAgICAgaGFybmVzcy5vdXRjb21lID0gKCJJTlRFUk5BTC1FUlJPUiIsIHN0
cihlKSkKKyAgICBvbGRfZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisgICAgdHJ5OgorICAg
ICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlOgorICAgICAgICAgICAgb3Mu
ZW52aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQorICAgICAgICAgICAg
b3MuZW52aXJvblsiV0RfUE9SVCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCisgICAg
ICAgICAgICBvcy5lbnZpcm9uWyJXRF9DQVBBQklMSVRJRVMiXSA9IGpzb24uZHVtcHMoc2Vzc2lv
bl9jb25maWdbImNhcGFiaWxpdGllcyJdKQorCisgICAgICAgICAgICBjb25maWdfcGF0aCA9IG9z
LnBhdGguam9pbihjYWNoZSwgIndkX3NlcnZlcl9jb25maWcuanNvbiIpCisgICAgICAgICAgICBv
cy5lbnZpcm9uWyJXRF9TRVJWRVJfQ09ORklHX0ZJTEUiXSA9IGNvbmZpZ19wYXRoCisgICAgICAg
ICAgICB3aXRoIG9wZW4oY29uZmlnX3BhdGgsICJ3IikgYXMgZjoKKyAgICAgICAgICAgICAgICBq
c29uLmR1bXAoc2VydmVyX2NvbmZpZy5hc19kaWN0KCksIGYpCisKKyAgICAgICAgICAgIGlmIGVu
dmlyb246CisgICAgICAgICAgICAgICAgb3MuZW52aXJvbi51cGRhdGUoZW52aXJvbikKKworICAg
ICAgICAgICAgaGFybmVzcyA9IEhhcm5lc3NSZXN1bHRSZWNvcmRlcigpCisgICAgICAgICAgICBz
dWJ0ZXN0cyA9IFN1YnRlc3RSZXN1bHRSZWNvcmRlcigpCisKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBweXRlc3QubWFpbihbIi0tc3RyaWN0IiwgICMgdHVybiB3YXJuaW5ncyBp
bnRvIGVycm9ycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXZ2IiwgICMgc2hvdyBl
YWNoIGluZGl2aWR1YWwgc3VidGVzdCBhbmQgZnVsbCBmYWlsdXJlIGxvZ3MKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tY2FwdHVyZSIsICJubyIsICAjIGVuYWJsZSBzdGRvdXQvc3Rk
ZXJyIGZyb20gdGVzdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmFzZXRlbXAi
LCBjYWNoZSwgICMgdGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiLS1zaG93bG9jYWxzIiwgICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJpYWJsZXMgaW4g
bG9jYWwgc2NvcGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOm1vemxv
ZyIsICAjIHVzZSB0aGUgV1BUIHJlc3VsdCByZWNvcmRlcgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiLXAiLCAibm86Y2FjaGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUgcHJlc2Vy
dmF0aW9uIGFjcm9zcyBpbnZvY2F0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
LW89Y29uc29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYyIsICAjIGRpc2FibGUgdGVzdCBwcm9ncmVz
cyBiYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGx1Z2lucz1baGFybmVzcywgc3VidGVzdHNdKQorICAgICAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIGhhcm5lc3Mub3V0Y29tZSA9
ICgiSU5URVJOQUwtRVJST1IiLCBzdHIoZSkpCisKKyAgICBmaW5hbGx5OgorICAgICAgICBvcy5l
bnZpcm9uID0gb2xkX2Vudmlyb24KIAogICAgIHJldHVybiAoaGFybmVzcy5vdXRjb21lLCBzdWJ0
ZXN0cy5yZXN1bHRzKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQppbmRleCA5MTAzNThmNTE1
OTYuLjM5ZTI0OGIyNTFiMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5CkBAIC03NywxMyAr
NzcsMTUgQEAgY2xhc3MgRm9udEluc3RhbGxlcihvYmplY3QpOgogCiAgICAgICAgICMgUGVyIGh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvcmVzdWx0cy1jb2xsZWN0aW9uL2lz
c3Vlcy8yMTgKICAgICAgICAgIyBpbnN0YWxsaW5nIEFoZW0gb24gbWFjT1MgaXMgZmxha3ksIHNv
IGNoZWNrIGlmIGl0IGFjdHVhbGx5IGluc3RhbGxlZAotICAgICAgICBmb250cyA9IGNoZWNrX291
dHB1dChbJy91c3Ivc2Jpbi9zeXN0ZW1fcHJvZmlsZXInLCAnLXhtbCcsICdTUEZvbnRzRGF0YVR5
cGUnXSkKKyAgICAgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZjoKKyAgICAgICAg
ICAgIGZvbnRzID0gY2hlY2tfb3V0cHV0KFsnL3Vzci9zYmluL3N5c3RlbV9wcm9maWxlcicsICct
eG1sJywgJ1NQRm9udHNEYXRhVHlwZSddLCBzdGRlcnI9ZikKKwogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICAjIGlmIHB5MwotICAgICAgICAgICAgcmVhZFBsaXN0RnJvbUJ5dGVzID0gcGxpc3Rs
aWIucmVhZFBsaXN0RnJvbUJ5dGVzCisgICAgICAgICAgICBsb2FkX3BsaXN0ID0gcGxpc3RsaWIu
bG9hZHMKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcmVhZFBs
aXN0RnJvbUJ5dGVzID0gcGxpc3RsaWIucmVhZFBsaXN0RnJvbVN0cmluZwotICAgICAgICBmb250
cyA9IHJlYWRQbGlzdEZyb21CeXRlcyhmb250cykKKyAgICAgICAgICAgIGxvYWRfcGxpc3QgPSBw
bGlzdGxpYi5yZWFkUGxpc3RGcm9tU3RyaW5nCisgICAgICAgIGZvbnRzID0gbG9hZF9wbGlzdChm
b250cykKICAgICAgICAgYXNzZXJ0IGxlbihmb250cykgPT0gMQogICAgICAgICBmb3IgZm9udCBp
biBmb250c1swXVsnX2l0ZW1zJ106CiAgICAgICAgICAgICBpZiBmb250WydwYXRoJ10gPT0gaW5z
dGFsbGVkX2ZvbnRfcGF0aDoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvX19pbml0X18ucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9m
b3JtYXR0ZXJzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9pbnN0cnVtZW50cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1l
bnRzLnB5CmluZGV4IGE4ODdjZjRmZGE3Mi4uNGUzZTAxM2FlYzQzIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9pbnN0cnVt
ZW50cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9pbnN0cnVtZW50cy5weQpAQCAtMSw2ICsxLDYgQEAKIGltcG9ydCB0aW1lCiBp
bXBvcnQgdGhyZWFkaW5nCi1mcm9tIHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgUXVldWUKK2Zyb20g
cXVldWUgaW1wb3J0IFF1ZXVlCiAKICIiIkluc3RydW1lbnRhdGlvbiBmb3IgbWVhc3VyaW5nIGhp
Z2gtbGV2ZWwgdGltZSBzcGVudCBvbiB2YXJpb3VzIHRhc2tzIGluc2lkZSB0aGUgcnVubmVyLgog
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQppbmRleCAz
MWM1N2U5Y2I3MzQuLjFjZDAzNWEzYjI0MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9tYW5pZmVzdGV4cGVjdGVkLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0IG9zCiBmcm9tIGNv
bGxlY3Rpb25zIGltcG9ydCBkZXF1ZQotZnJvbSBzaXggaW1wb3J0IHN0cmluZ190eXBlcywgdGV4
dF90eXBlCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KLQorZnJv
bSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAud3B0bWFuaWZlc3QuYmFja2Vu
ZHMgaW1wb3J0IHN0YXRpYwogZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMuYmFzZSBpbXBvcnQg
TWFuaWZlc3RJdGVtCkBAIC00OSw3ICs0Nyw3IEBAIGRlZiBsaXN0X3Byb3AobmFtZSwgbm9kZSk6
CiAgICAgIiIiTGlzdCBwcm9wZXJ0eSIiIgogICAgIHRyeToKICAgICAgICAgbGlzdF9wcm9wID0g
bm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaXN0X3Byb3AsIHN0cmluZ190
eXBlcyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UobGlzdF9wcm9wLCBzdHIpOgogICAgICAgICAg
ICAgcmV0dXJuIFtsaXN0X3Byb3BdCiAgICAgICAgIHJldHVybiBsaXN0KGxpc3RfcHJvcCkKICAg
ICBleGNlcHQgS2V5RXJyb3I6CkBAIC01OSw3ICs1Nyw3IEBAIGRlZiBsaXN0X3Byb3AobmFtZSwg
bm9kZSk6CiBkZWYgc3RyX3Byb3AobmFtZSwgbm9kZSk6CiAgICAgdHJ5OgogICAgICAgICBwcm9w
ID0gbm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHJvcCwgc3RyaW5n
X3R5cGVzKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHJvcCwgc3RyKToKICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IKICAgICAgICAgcmV0dXJuIHByb3AKICAgICBleGNlcHQgS2V5
RXJyb3I6CkBAIC03MCw3ICs2OCw3IEBAIGRlZiB0YWdzKG5vZGUpOgogICAgICIiIlNldCBvZiB0
YWdzIHRoYXQgaGF2ZSBiZWVuIGFwcGxpZWQgdG8gdGhlIHRlc3QiIiIKICAgICB0cnk6CiAgICAg
ICAgIHZhbHVlID0gbm9kZS5nZXQoInRhZ3MiKQotICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVl
LCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgogICAgICAg
ICAgICAgcmV0dXJuIHt2YWx1ZX0KICAgICAgICAgcmV0dXJuIHNldCh2YWx1ZSkKICAgICBleGNl
cHQgS2V5RXJyb3I6CkBAIC03OSw3ICs3Nyw3IEBAIGRlZiB0YWdzKG5vZGUpOgogCiBkZWYgcHJl
ZnMobm9kZSk6CiAgICAgZGVmIHZhbHVlKGluaV92YWx1ZSk6Ci0gICAgICAgIGlmIGlzaW5zdGFu
Y2UoaW5pX3ZhbHVlLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGluaV92YWx1
ZSwgc3RyKToKICAgICAgICAgICAgIHJldHVybiB0dXBsZShwcmVmX3BpZWNlLnN0cmlwKCkgZm9y
IHByZWZfcGllY2UgaW4gaW5pX3ZhbHVlLnNwbGl0KCc6JywgMSkpCiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAjIHRoaXMgc2hvdWxkIGJlIHRoaW5ncyBsaWtlIEBSZXNldCwgd2hpY2ggYXJl
IGFwcGFyZW50bHkgdHlwZSAnb2JqZWN0JwpAQCAtODcsNyArODUsNyBAQCBkZWYgcHJlZnMobm9k
ZSk6CiAKICAgICB0cnk6CiAgICAgICAgIG5vZGVfcHJlZnMgPSBub2RlLmdldCgicHJlZnMiKQot
ICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfcHJlZnMsIHRleHRfdHlwZSk6CisgICAgICAgIGlm
IGlzaW5zdGFuY2Uobm9kZV9wcmVmcywgc3RyKToKICAgICAgICAgICAgIHJ2ID0gZGljdCh2YWx1
ZShub2RlX3ByZWZzKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ2ID0gZGljdCh2YWx1
ZShpdGVtKSBmb3IgaXRlbSBpbiBub2RlX3ByZWZzKQpAQCAtOTksNyArOTcsNyBAQCBkZWYgcHJl
ZnMobm9kZSk6CiBkZWYgc2V0X3Byb3AobmFtZSwgbm9kZSk6CiAgICAgdHJ5OgogICAgICAgICBu
b2RlX2l0ZW1zID0gbm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0
ZW1zLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHN0cik6
CiAgICAgICAgICAgICBydiA9IHtub2RlX2l0ZW1zfQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgcnYgPSBzZXQobm9kZV9pdGVtcykKQEAgLTExMiw3ICsxMTAsNyBAQCBkZWYgbGVha190aHJl
c2hvbGQobm9kZSk6CiAgICAgcnYgPSB7fQogICAgIHRyeToKICAgICAgICAgbm9kZV9pdGVtcyA9
IG5vZGUuZ2V0KCJsZWFrLXRocmVzaG9sZCIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9p
dGVtcywgdGV4dF90eXBlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1zLCBzdHIp
OgogICAgICAgICAgICAgbm9kZV9pdGVtcyA9IFtub2RlX2l0ZW1zXQogICAgICAgICBmb3IgaXRl
bSBpbiBub2RlX2l0ZW1zOgogICAgICAgICAgICAgcHJvY2VzcywgdmFsdWUgPSBpdGVtLnJzcGxp
dCgiOiIsIDEpCkBAIC0xNDAsNyArMTM4LDcgQEAgZGVmIGZ1enp5X3Byb3Aobm9kZSk6CiAgICAg
ICBtYXhEaWZmZXJlbmNlcz0xMDt0b3RhbFBpeGVscz0xMC0yMAogCiAgICAgICBzcGVjaWZpZXMg
dGhhdCBmb3IgYW55IHRlc3QvcmVmIHBhaXIgZm9yIHdoaWNoIG5vIG90aGVyIHJ1bGUgaXMgc3Vw
cGxpZWQsCi0gICAgICB0aGVyZSBtdXN0IGJlIGEgbWF4aW11bSBwaXhlbCBkaWZmZXJlbmNlIG9m
IGV4YWN0bHkgMTAsIGFuZCBiZXR3ZW4gMTAgYW5kCisgICAgICB0aGVyZSBtdXN0IGJlIGEgbWF4
aW11bSBwaXhlbCBkaWZmZXJlbmNlIG9mIGV4YWN0bHkgMTAsIGFuZCBiZXR3ZWVuIDEwIGFuZAog
ICAgICAgMjAgdG90YWwgcGl4ZWxzIGRpZmZlcmVudC4KIAogICAgICAgdGVzdC5odG1sPT1yZWYu
aHRtOjEwOzIwCkBAIC0xNjksNyArMTY3LDcgQEAgZGVmIGZ1enp5X3Byb3Aobm9kZSk6CiAgICAg
aWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgogICAgICAgICB2YWx1ZSA9IFt2YWx1ZV0K
ICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwg
dGV4dF90eXBlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgc3RyKToKICAgICAg
ICAgICAgIHJ2LmFwcGVuZChpdGVtKQogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgcGFy
dHMgPSBpdGVtLnJzcGxpdCgiOiIsIDEpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5p
ZmVzdGluY2x1ZGUucHkKaW5kZXggNzliNWIxOWIzYTNmLi45NzM0OGU2ZDUyZjkgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L21hbmlmZXN0aW5jbHVkZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKQEAgLTYsOCArNiw3IEBA
IGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkLgogIiIiCiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9zCi1m
cm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1w
b3J0IHVybHBhcnNlLCB1cmxzcGxpdAorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNl
LCB1cmxzcGxpdAogCiBmcm9tIC53cHRtYW5pZmVzdC5ub2RlIGltcG9ydCBEYXRhTm9kZQogZnJv
bSAud3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IGNvbmRpdGlvbmFsCkBAIC05NSw3ICs5NCw3
IEBAIGNsYXNzIEluY2x1ZGVNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogICAgICAgICBpZiBwYXRo
czoKICAgICAgICAgICAgIHVybHMgPSBbXQogICAgICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6
Ci0gICAgICAgICAgICAgICAgZm9yIG1hbmlmZXN0LCBkYXRhIGluIGl0ZXJpdGVtcyh0ZXN0X21h
bmlmZXN0cyk6CisgICAgICAgICAgICAgICAgZm9yIG1hbmlmZXN0LCBkYXRhIGluIHRlc3RfbWFu
aWZlc3RzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gRmFsc2UKICAgICAg
ICAgICAgICAgICAgICAgcmVsX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgocGF0aCwgZGF0YVsidGVz
dHNfcGF0aCJdKQogICAgICAgICAgICAgICAgICAgICBpdGVyYXRvciA9IG1hbmlmZXN0Lml0ZXJw
YXRoIGlmIG9zLnBhdGguaXNmaWxlKHBhdGgpIGVsc2UgbWFuaWZlc3QuaXRlcmRpcgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvbWFuaWZlc3R1cGRhdGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQppbmRleCAxMjk0NTdiM2ZkMTIu
LmIyNWQ0OWIwZmI3YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRh
dGUucHkKQEAgLTEsOSArMSw4IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCiBpbXBvcnQgb3MKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9p
biwgdXJsc3BsaXQKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxpdAog
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZSwgZGVmYXVsdGRpY3QsIGRlcXVlCiBm
cm9tIG1hdGggaW1wb3J0IGNlaWwKLWZyb20gc2l4IGltcG9ydCBpbnRlZ2VyX3R5cGVzLCBpdGVy
a2V5cywgaXRlcnZhbHVlcywgaXRlcml0ZW1zLCBzdHJpbmdfdHlwZXMsIHRleHRfdHlwZQorZnJv
bSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIENsYXNzVmFyLCBEaWN0LCBMaXN0CiAKIGZy
b20gLndwdG1hbmlmZXN0IGltcG9ydCBzZXJpYWxpemUKIGZyb20gLndwdG1hbmlmZXN0Lm5vZGUg
aW1wb3J0IChEYXRhTm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZSwK
QEAgLTc2LDcgKzc1LDcgQEAgY2xhc3MgVXBkYXRlUHJvcGVydGllcyhvYmplY3QpOgogICAgICAg
ICByZXR1cm4gbmFtZSBpbiBzZWxmLl9jbGFzc2VzCiAKICAgICBkZWYgX19pdGVyX18oc2VsZik6
Ci0gICAgICAgIGZvciBuYW1lIGluIGl0ZXJrZXlzKHNlbGYuX2NsYXNzZXMpOgorICAgICAgICBm
b3IgbmFtZSBpbiBzZWxmLl9jbGFzc2VzLmtleXMoKToKICAgICAgICAgICAgIHlpZWxkIGdldGF0
dHIoc2VsZiwgbmFtZSkKIAogCkBAIC0zMTMsMTggKzMxMiwyMSBAQCBkZWYgYnVpbGRfY29uZGl0
aW9uYWxfdHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToKIAogZGVmIGJ1aWxk
X3VuY29uZGl0aW9uYWxfdHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToKICAg
ICByb290ID0gZXhwZWN0ZWR0cmVlLk5vZGUoTm9uZSwgTm9uZSkKLSAgICBmb3IgcnVuX2luZm8s
IHZhbHVlcyBpbiBpdGVyaXRlbXMocmVzdWx0cyk6Ci0gICAgICAgIGZvciB2YWx1ZSwgY291bnQg
aW4gaXRlcml0ZW1zKHZhbHVlcyk6CisgICAgZm9yIHJ1bl9pbmZvLCB2YWx1ZXMgaW4gcmVzdWx0
cy5pdGVtcygpOgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIHZhbHVlcy5pdGVtcygpOgog
ICAgICAgICAgICAgcm9vdC5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAogICAgICAgICBy
b290LnJ1bl9pbmZvLmFkZChydW5faW5mbykKICAgICByZXR1cm4gcm9vdAogCiAKIGNsYXNzIFBy
b3BlcnR5VXBkYXRlKG9iamVjdCk6Ci0gICAgcHJvcGVydHlfbmFtZSA9IE5vbmUKLSAgICBjbHNf
ZGVmYXVsdF92YWx1ZSA9IE5vbmUKLSAgICB2YWx1ZV90eXBlID0gTm9uZQotICAgIHByb3BlcnR5
X2J1aWxkZXIgPSBOb25lCisgICAgcHJvcGVydHlfbmFtZSA9IE5vbmUgICMgdHlwZTogQ2xhc3NW
YXJbc3RyXQorICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltB
bnldCisgICAgdmFsdWVfdHlwZSA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbdHlwZV0KKyAgICAj
IHByb3BlcnR5X2J1aWxkZXIgaXMgYSBjbGFzcyB2YXJpYWJsZSBzZXQgdG8gZWl0aGVyIGJ1aWxk
X2NvbmRpdGlvbmFsX3RyZWUKKyAgICAjIG9yIGJ1aWxkX3VuY29uZGl0aW9uYWxfdHJlZS4gVE9E
TzogTWFrZSB0aGlzIHR5cGUgc3RyaWN0ZXIgd2hlbiB0aG9zZQorICAgICMgbWV0aG9kcyBhcmUg
YW5ub3RhdGVkLgorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBOb25lICAjIHR5cGU6IENsYXNzVmFy
W0NhbGxhYmxlWy4uLiwgQW55XV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlKToKICAg
ICAgICAgc2VsZi5ub2RlID0gbm9kZQpAQCAtNDExLDcgKzQxMyw3IEBAIGNsYXNzIFByb3BlcnR5
VXBkYXRlKG9iamVjdCk6CiAgICAgICAgIGZvciBlIGluIGVycm9yczoKICAgICAgICAgICAgIGlm
IGRpc2FibGVfaW50ZXJtaXR0ZW50OgogICAgICAgICAgICAgICAgIGNvbmRpdGlvbiA9IGUuY29u
ZC5jaGlsZHJlblswXSBpZiBlLmNvbmQgZWxzZSBOb25lCi0gICAgICAgICAgICAgICAgbXNnID0g
ZGlzYWJsZV9pbnRlcm1pdHRlbnQgaWYgaXNpbnN0YW5jZShkaXNhYmxlX2ludGVybWl0dGVudCwg
c3RyaW5nX3R5cGVzKyh0ZXh0X3R5cGUsKSkgZWxzZSAidW5zdGFibGUiCisgICAgICAgICAgICAg
ICAgbXNnID0gZGlzYWJsZV9pbnRlcm1pdHRlbnQgaWYgaXNpbnN0YW5jZShkaXNhYmxlX2ludGVy
bWl0dGVudCwgc3RyKSBlbHNlICJ1bnN0YWJsZSIKICAgICAgICAgICAgICAgICBzZWxmLm5vZGUu
c2V0KCJkaXNhYmxlZCIsIG1zZywgY29uZGl0aW9uKQogICAgICAgICAgICAgICAgIHNlbGYubm9k
ZS5uZXdfZGlzYWJsZWQgPSBUcnVlCiAgICAgICAgICAgICBlbHNlOgpAQCAtNDk5LDcgKzUwMSw3
IEBAIGNsYXNzIFByb3BlcnR5VXBkYXRlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciBydW5faW5mbyBpbiBub2RlLnJ1bl9pbmZvfQogCiAgICAgICAgIG5vZGVfYnlfcnVu
X2luZm8gPSB7cnVuX2luZm86IG5vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KHJ1bl9pbmZvLCBub2RlKSBpbiBpdGVyaXRlbXMocnVuX2luZm9faW5kZXgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIChydW5faW5mbywgbm9kZSkgaW4gcnVuX2luZm9faW5kZXgu
aXRlbXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUucmVzdWx0X3ZhbHVl
c30KIAogICAgICAgICBydW5faW5mb19ieV9jb25kaXRpb24gPSBzZWxmLnJ1bl9pbmZvX2J5X2Nv
bmRpdGlvbihydW5faW5mb19pbmRleCwKQEAgLTUxMiw3ICs1MTQsNyBAQCBjbGFzcyBQcm9wZXJ0
eVVwZGF0ZShvYmplY3QpOgogICAgICAgICAgICAgIyB1c2luZyB0aGUgcHJvcGVydGllcyB3ZSd2
ZSBzcGVjaWZpZWQgYW5kIG5vdCBtYXRjaGluZyBhbnkgcnVuX2luZm8KICAgICAgICAgICAgIHRv
cF9sZXZlbF9wcm9wcywgZGVwZW5kZW50X3Byb3BzID0gc2VsZi5ub2RlLnJvb3QucnVuX2luZm9f
cHJvcGVydGllcwogICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMgPSBzZXQodG9wX2xldmVs
X3Byb3BzKQotICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcnZhbHVlcyhkZXBlbmRlbnRfcHJv
cHMpOgorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZGVwZW5kZW50X3Byb3BzLnZhbHVlcygpOgog
ICAgICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzIHw9IHNldChpdGVtKQogICAgICAgICAg
ICAgZm9yIGNvbmRpdGlvbiBpbiBjdXJyZW50X2NvbmRpdGlvbnM6CiAgICAgICAgICAgICAgICAg
aWYgKChub3QgY29uZGl0aW9uLnZhcmlhYmxlcy5pc3N1YnNldCh1cGRhdGVfcHJvcGVydGllcykg
YW5kCkBAIC02MTQsNyArNjE2LDggQEAgY2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0KToKICAg
ICAgICAgICAgICAgICAgICAgZXhjZXB0IENvbmRpdGlvbkVycm9yOgogICAgICAgICAgICAgICAg
ICAgICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9wX3NldCwgdmFsdWUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBlcnJvciA9IENvbmRpdGlvbkVycm9yKGV4cHIpCi0gICAgICAgICAgICAgICAg
ICAgIGV4cHIgPSBtYWtlX2V4cHIocHJvcF9zZXQsIHZhbHVlKQorICAgICAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9wX3Nl
dCwgdmFsdWUpCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgIyBU
aGUgcm9vdCBub2RlIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcKICAgICAgICAgICAgICAgICAgICAg
ZXhwciA9IE5vbmUKQEAgLTY5NSw3ICs2OTgsNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9w
ZXJ0eVVwZGF0ZSk6CiAgICAgICAgICAgICByYWlzZSBDb25kaXRpb25FcnJvcgogCiAgICAgICAg
IGNvdW50cyA9IHt9Ci0gICAgICAgIGZvciBzdGF0dXMsIGNvdW50IGluIGl0ZXJpdGVtcyhuZXcp
OgorICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBpbiBuZXcuaXRlbXMoKToKICAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2Uoc3RhdHVzLCB0dXBsZSk6CiAgICAgICAgICAgICAgICAgY291bnRzW3N0
YXR1c1swXV0gPSBjb3VudAogICAgICAgICAgICAgICAgIGNvdW50cy51cGRhdGUoe2ludGVybWl0
dGVudDogMCBmb3IgaW50ZXJtaXR0ZW50IGluIHN0YXR1c1sxOl0gaWYgaW50ZXJtaXR0ZW50IG5v
dCBpbiBjb3VudHN9KQpAQCAtNzA5LDI0ICs3MTIsMjcgQEAgY2xhc3MgRXhwZWN0ZWRVcGRhdGUo
UHJvcGVydHlVcGRhdGUpOgogICAgICAgICAjIENvdW50cyB3aXRoIDAgYXJlIGNvbnNpZGVyZWQg
aW50ZXJtaXR0ZW50LgogICAgICAgICBzdGF0dXNlcyA9IFsiT0siLCAiUEFTUyIsICJGQUlMIiwg
IkVSUk9SIiwgIlRJTUVPVVQiLCAiQ1JBU0giXQogICAgICAgICBzdGF0dXNfcHJpb3JpdHkgPSB7
dmFsdWU6IGkgZm9yIGksIHZhbHVlIGluIGVudW1lcmF0ZShzdGF0dXNlcyl9Ci0gICAgICAgIHNv
cnRlZF9uZXcgPSBzb3J0ZWQoaXRlcml0ZW1zKGNvdW50cyksIGtleT1sYW1iZGEgeDooLTEgKiB4
WzFdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0dXNfcHJpb3JpdHkuZ2V0KHhbMF0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzdGF0dXNfcHJpb3JpdHkp
KSkpCisgICAgICAgIHNvcnRlZF9uZXcgPSBzb3J0ZWQoY291bnRzLml0ZW1zKCksIGtleT1sYW1i
ZGEgeDooLTEgKiB4WzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXNfcHJpb3JpdHkuZ2V0KHhbMF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzdGF0dXNfcHJp
b3JpdHkpKSkpCiAgICAgICAgIGV4cGVjdGVkID0gW10KICAgICAgICAgZm9yIHN0YXR1cywgY291
bnQgaW4gc29ydGVkX25ldzoKICAgICAgICAgICAgICMgSWYgd2UgYXJlIG5vdCByZW1vdmluZyBl
eGlzdGluZyByZWNvcmRlZCBpbnRlcm1pdHRlbnRzLCB3aXRoIGEgY291bnQgb2YgMCwKICAgICAg
ICAgICAgICMgYWRkIHRoZW0gaW4gdG8gZXhwZWN0ZWQuCiAgICAgICAgICAgICBpZiBjb3VudCA+
IDAgb3Igbm90IHNlbGYucmVtb3ZlX2ludGVybWl0dGVudDoKICAgICAgICAgICAgICAgICBleHBl
Y3RlZC5hcHBlbmQoc3RhdHVzKQorCisgICAgICAgICMgSWYgdGhlIG5ldyBpbnRlcm1pdHRlbnQg
aXMgYSBzdWJzZXQgb2YgdGhlIGV4aXN0aW5nIG9uZSwganVzdCB1c2UgdGhlIGV4aXN0aW5nIG9u
ZQorICAgICAgICAjIFRoaXMgcHJldmVudHMgZnJlcXVlbnQgZmxpcC1mbG9wcGluZyBvZiByZXN1
bHRzIGJldHdlZW4gZS5nLiBbT0ssIFRJTUVPVVRdIGFuZAorICAgICAgICAjIFtUSU1FT1VULCBP
S10KKyAgICAgICAgaWYgY3VycmVudCBhbmQgc2V0KGV4cGVjdGVkKS5pc3N1YnNldChzZXQoY3Vy
cmVudCkpOgorICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQKKwogICAgICAgICBpZiBzZWxmLnVw
ZGF0ZV9pbnRlcm1pdHRlbnQ6CiAgICAgICAgICAgICBpZiBsZW4oZXhwZWN0ZWQpID09IDE6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCiAgICAgICAgICAgICByZXR1cm4gZXhw
ZWN0ZWQKIAotICAgICAgICAjIElmIG5vdGhpbmcgaGFzIGNoYW5nZWQgYW5kIG5vdCBzZWxmLnVw
ZGF0ZV9pbnRlcm1pdHRlbnQsIHByZXNlcnZlIGV4aXN0aW5nCi0gICAgICAgICMgaW50ZXJtaXR0
ZW50LgotICAgICAgICBpZiBzZXQoZXhwZWN0ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50KSk6Ci0g
ICAgICAgICAgICByZXR1cm4gY3VycmVudAogICAgICAgICAjIElmIHdlIGFyZSBub3QgdXBkYXRp
bmcgaW50ZXJtaXR0ZW50cywgcmV0dXJuIHRoZSBzdGF0dXMgd2l0aCB0aGUgaGlnaGVzdCBvY2N1
cmVuY2UuCiAgICAgICAgIHJldHVybiBleHBlY3RlZFswXQogCkBAIC03NjIsNyArNzY4LDcgQEAg
Y2xhc3MgTWluQXNzZXJ0c1VwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CiAKIAogY2xhc3MgQXBwZW5k
T25seUxpc3RVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgotICAgIGNsc19kZWZhdWx0X3ZhbHVlID0g
W10KKyAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IFtdICAjIHR5cGU6IENsYXNzVmFyW0xpc3Rbc3Ry
XV0KICAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25kaXRpb25hbF90cmVlCiAKICAg
ICBkZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBjdXJyZW50LCBuZXcpOgpAQCAtNzc0LDcgKzc4MCw3
IEBAIGNsYXNzIEFwcGVuZE9ubHlMaXN0VXBkYXRlKFByb3BlcnR5VXBkYXRlKToKICAgICAgICAg
Zm9yIGl0ZW0gaW4gbmV3OgogICAgICAgICAgICAgaWYgaXRlbSBpcyBOb25lOgogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoaXRlbSwgdGV4dF90
eXBlKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgogICAgICAgICAg
ICAgICAgIHJ2LmFkZChpdGVtKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBy
diB8PSBpdGVtCkBAIC04MTUsMTQgKzgyMSwxNCBAQCBjbGFzcyBMZWFrT2JqZWN0VXBkYXRlKEFw
cGVuZE9ubHlMaXN0VXBkYXRlKToKIAogY2xhc3MgTGVha1RocmVzaG9sZFVwZGF0ZShQcm9wZXJ0
eVVwZGF0ZSk6CiAgICAgcHJvcGVydHlfbmFtZSA9ICJsZWFrLXRocmVzaG9sZCIKLSAgICBjbHNf
ZGVmYXVsdF92YWx1ZSA9IHt9CisgICAgY2xzX2RlZmF1bHRfdmFsdWUgPSB7fSAgIyB0eXBlOiBD
bGFzc1ZhcltEaWN0W3N0ciwgaW50XV0KICAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5j
b25kaXRpb25hbF90cmVlCiAKICAgICBkZWYgZnJvbV9yZXN1bHRfdmFsdWUoc2VsZiwgcmVzdWx0
KToKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIHRvX2luaV92YWx1ZShzZWxmLCBk
YXRhKToKLSAgICAgICAgcmV0dXJuIFsiJXM6JXMiICUgaXRlbSBmb3IgaXRlbSBpbiBzb3J0ZWQo
aXRlcml0ZW1zKGRhdGEpKV0KKyAgICAgICAgcmV0dXJuIFsiJXM6JXMiICUgaXRlbSBmb3IgaXRl
bSBpbiBzb3J0ZWQoZGF0YS5pdGVtcygpKV0KIAogICAgIGRlZiBmcm9tX2luaV92YWx1ZShzZWxm
LCBkYXRhKToKICAgICAgICAgcnYgPSB7fQpAQCAtODk3LDEwICs5MDMsMTAgQEAgZGVmIG1ha2Vf
ZXhwcihwcm9wX3NldCwgcmhzKToKIAogCiBkZWYgbWFrZV9ub2RlKHZhbHVlKToKLSAgICBpZiBp
c2luc3RhbmNlKHZhbHVlLCBpbnRlZ2VyX3R5cGVzKyhmbG9hdCwpKToKKyAgICBpZiBpc2luc3Rh
bmNlKHZhbHVlLCAoaW50LCBmbG9hdCwpKToKICAgICAgICAgbm9kZSA9IE51bWJlck5vZGUodmFs
dWUpCi0gICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgotICAgICAgICBub2Rl
ID0gU3RyaW5nTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1
ZSwgc3RyKToKKyAgICAgICAgbm9kZSA9IFN0cmluZ05vZGUoc3RyKHZhbHVlKSkKICAgICBlbGlm
IGhhc2F0dHIodmFsdWUsICJfX2l0ZXJfXyIpOgogICAgICAgICBub2RlID0gTGlzdE5vZGUoKQog
ICAgICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKQEAgLTkwOSwxNCArOTE1LDE0IEBAIGRlZiBtYWtl
X25vZGUodmFsdWUpOgogCiAKIGRlZiBtYWtlX3ZhbHVlX25vZGUodmFsdWUpOgotICAgIGlmIGlz
aW5zdGFuY2UodmFsdWUsIGludGVnZXJfdHlwZXMrKGZsb2F0LCkpOgorICAgIGlmIGlzaW5zdGFu
Y2UodmFsdWUsIChpbnQsIGZsb2F0LCkpOgogICAgICAgICBub2RlID0gVmFsdWVOb2RlKHZhbHVl
KQotICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgdGV4dF90eXBlKToKLSAgICAgICAgbm9kZSA9
IFZhbHVlTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwg
c3RyKToKKyAgICAgICAgbm9kZSA9IFZhbHVlTm9kZShzdHIodmFsdWUpKQogICAgIGVsaWYgaGFz
YXR0cih2YWx1ZSwgIl9faXRlcl9fIik6CiAgICAgICAgIG5vZGUgPSBMaXN0Tm9kZSgpCiAgICAg
ICAgIGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICAgICAgbm9kZS5hcHBlbmQobWFrZV9ub2Rl
KGl0ZW0pKQorICAgICAgICAgICAgbm9kZS5hcHBlbmQobWFrZV92YWx1ZV9ub2RlKGl0ZW0pKQog
ICAgIGVsc2U6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkRvbid0IGtub3cgaG93IHRvIGNv
bnZlcnQgJXMgaW50byBub2RlIiAlIHR5cGUodmFsdWUpKQogICAgIHJldHVybiBub2RlCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9tZXRhZGF0YS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CmluZGV4IGFiOGQ0NzQwZjNmYy4uOWM1NGU1NzBj
MDFiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weQpAQCAtMSwxMiArMSwxMSBA
QAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGFycmF5CiBp
bXBvcnQgb3MKLWltcG9ydCBzeXMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0
LCBuYW1lZHR1cGxlCitmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgTGlzdCwgVHVwbGUKIAogZnJv
bSBtb3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2cKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfc3Ry
LCBlbnN1cmVfdGV4dCwgaXRlcml0ZW1zLCBpdGVya2V5cywgaXRlcnZhbHVlcywgdGV4dF90eXBl
Ci1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgaW50ZXJuLCByYW5nZQorZnJvbSBzaXggaW1wb3J0IGVu
c3VyZV9zdHIsIGVuc3VyZV90ZXh0Citmcm9tIHN5cyBpbXBvcnQgaW50ZXJuCiAKIGZyb20gLiBp
bXBvcnQgbWFuaWZlc3R1cGRhdGUKIGZyb20gLiBpbXBvcnQgdGVzdGxvYWRlcgpAQCAtMjIsNyAr
MjEsNyBAQCBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoIndlYi1wbGF0
Zm9ybS10ZXN0cyIpCiB0cnk6CiAgICAgaW1wb3J0IHVqc29uIGFzIGpzb24KIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICBpbXBvcnQganNvbgorICAgIGltcG9ydCBqc29uICAjIHR5cGU6IGlnbm9y
ZQogCiAKIGNsYXNzIFJ1bkluZm8ob2JqZWN0KToKQEAgLTQ1LDExICs0NCwxMSBAQCBjbGFzcyBS
dW5JbmZvKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLmNhbm9uaWNhbF9yZXByID09IG90
aGVyLmNhbm9uaWNhbF9yZXByCiAKICAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgotICAgICAgICBm
b3Iga2V5LCB2YWx1ZSBpbiBpdGVyaXRlbXMoc2VsZi5kYXRhKToKKyAgICAgICAgZm9yIGtleSwg
dmFsdWUgaW4gc2VsZi5kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICB5aWVsZCBrZXksIHZhbHVl
CiAKICAgICBkZWYgaXRlbXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBsaXN0KGl0ZXJpdGVtcyhz
ZWxmKSkKKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVtcygpKQogCiAKIGRlZiB1cGRhdGVf
ZXhwZWN0ZWQodGVzdF9wYXRocywgc2VydmVfcm9vdCwgbG9nX2ZpbGVfbmFtZXMsCkBAIC05Myw3
ICs5Miw3IEBAIGRlZiB1cGRhdGVfZXhwZWN0ZWQodGVzdF9wYXRocywgc2VydmVfcm9vdCwgbG9n
X2ZpbGVfbmFtZXMsCiAKIGRlZiBkb19kZWxheWVkX2ltcG9ydHMoc2VydmVfcm9vdD1Ob25lKToK
ICAgICBnbG9iYWwgbWFuaWZlc3QsIG1hbmlmZXN0aXRlbQotICAgIGZyb20gbWFuaWZlc3QgaW1w
b3J0IG1hbmlmZXN0LCBpdGVtIGFzIG1hbmlmZXN0aXRlbQorICAgIGZyb20gbWFuaWZlc3QgaW1w
b3J0IG1hbmlmZXN0LCBpdGVtIGFzIG1hbmlmZXN0aXRlbSAgIyB0eXBlOiBpZ25vcmUKIAogCiBk
ZWYgZmlsZXNfaW5fcmVwbyhyZXBvX3Jvb3QpOgpAQCAtMTI5LDcgKzEyOCw3IEBAIGRlZiB1bmV4
cGVjdGVkX2NoYW5nZXMobWFuaWZlc3RzLCBjaGFuZ2VfZGF0YSwgZmlsZXNfY2hhbmdlZCk6CiAg
ICAgZmlsZXNfY2hhbmdlZCA9IHNldChmaWxlc19jaGFuZ2VkKQogCiAgICAgcm9vdF9tYW5pZmVz
dCA9IE5vbmUKLSAgICBmb3IgbWFuaWZlc3QsIHBhdGhzIGluIGl0ZXJpdGVtcyhtYW5pZmVzdHMp
OgorICAgIGZvciBtYW5pZmVzdCwgcGF0aHMgaW4gbWFuaWZlc3RzLml0ZW1zKCk6CiAgICAgICAg
IGlmIHBhdGhzWyJ1cmxfYmFzZSJdID09ICIvIjoKICAgICAgICAgICAgIHJvb3RfbWFuaWZlc3Qg
PSBtYW5pZmVzdAogICAgICAgICAgICAgYnJlYWsKQEAgLTE3MCw5ICsxNjksMTAgQEAgY2xhc3Mg
SW50ZXJuZWREYXRhKG9iamVjdCk6CiAgICAgdHlwZV9jb252ID0gTm9uZQogICAgIHJldl90eXBl
X2NvbnYgPSBOb25lCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWF4X2JpdHM9OCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG1heF9iaXRzOiBpbnQgPSA4KToKICAgICAgICAgc2VsZi5tYXhf
aWR4ID0gMioqbWF4X2JpdHMgLSAyCiAgICAgICAgICMgUmVzZXJ2ZSAwIGFzIGEgc2VudGluYWwK
KyAgICAgICAgc2VsZi5fZGF0YTogVHVwbGVbTGlzdFtvYmplY3RdLCBEaWN0W2ludCwgb2JqZWN0
XV0KICAgICAgICAgc2VsZi5fZGF0YSA9IFtOb25lXSwge30KIAogICAgIGRlZiBjbGVhcihzZWxm
KToKQEAgLTI0MCw3ICsyNDAsNyBAQCBkZWYgcGFja19yZXN1bHQoZGF0YSk6CiBkZWYgdW5wYWNr
X3Jlc3VsdChkYXRhKToKICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIGludCk6CiAgICAgICAgIHJl
dHVybiAoc3RhdHVzX2ludGVybi5nZXQoZGF0YSksIE5vbmUpCi0gICAgaWYgaXNpbnN0YW5jZShk
YXRhLCB0ZXh0X3R5cGUpOgorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgc3RyKToKICAgICAgICAg
cmV0dXJuIChkYXRhLCBOb25lKQogICAgICMgVW5wYWNrIG11bHRpcGxlIHN0YXR1c2VzIGludG8g
YSB0dXBsZSB0byBiZSB1c2VkIGluIHRoZSBSZXN1bHRzIG5hbWVkIHR1cGxlIGJlbG93LAogICAg
ICMgc2VwYXJhdGluZyBgc3RhdHVzYCBhbmQgYGtub3duX2ludGVybWl0dGVudGAuCkBAIC0yNTks
NyArMjU5LDcgQEAgZGVmIGxvYWRfdGVzdF9kYXRhKHRlc3RfcGF0aHMpOgogICAgIG1hbmlmZXN0
cyA9IG1hbmlmZXN0X2xvYWRlci5sb2FkKCkKIAogICAgIGlkX3Rlc3RfbWFwID0ge30KLSAgICBm
b3IgdGVzdF9tYW5pZmVzdCwgcGF0aHMgaW4gaXRlcml0ZW1zKG1hbmlmZXN0cyk6CisgICAgZm9y
IHRlc3RfbWFuaWZlc3QsIHBhdGhzIGluIG1hbmlmZXN0cy5pdGVtcygpOgogICAgICAgICBpZF90
ZXN0X21hcC51cGRhdGUoY3JlYXRlX3Rlc3RfdHJlZShwYXRoc1sibWV0YWRhdGFfcGF0aCJdLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21hbmlmZXN0
KSkKICAgICByZXR1cm4gaWRfdGVzdF9tYXAKQEAgLTI4NywxMCArMjg3LDEwIEBAIGRlZiB1cGRh
dGVfcmVzdWx0cyhpZF90ZXN0X21hcCwKICAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVy
bWl0dGVudCwKICAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAogICAgICAg
ICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpOgotICAgIHRlc3RfZmlsZV9pdGVtcyA9
IHNldChpdGVydmFsdWVzKGlkX3Rlc3RfbWFwKSkKKyAgICB0ZXN0X2ZpbGVfaXRlbXMgPSBzZXQo
aWRfdGVzdF9tYXAudmFsdWVzKCkpCiAKICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGUgPSB7
fQotICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfY2xzIGluIGl0ZXJpdGVtcyh3cHR0ZXN0Lm1hbmlm
ZXN0X3Rlc3RfY2xzKToKKyAgICBmb3IgdGVzdF90eXBlLCB0ZXN0X2NscyBpbiB3cHR0ZXN0Lm1h
bmlmZXN0X3Rlc3RfY2xzLml0ZW1zKCk6CiAgICAgICAgIGlmIHRlc3RfY2xzLnJlc3VsdF9jbHM6
CiAgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGVbKHRlc3RfdHlwZSwgRmFsc2Up
XSA9IHRlc3RfY2xzLnJlc3VsdF9jbHMuZGVmYXVsdF9leHBlY3RlZAogICAgICAgICBpZiB0ZXN0
X2Nscy5zdWJ0ZXN0X3Jlc3VsdF9jbHM6CkBAIC0zMjcsMTAgKzMyNyw3IEBAIGRlZiB3cml0ZV9u
ZXdfZXhwZWN0ZWQobWV0YWRhdGFfcGF0aCwgZXhwZWN0ZWQpOgogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICB3aXRoIG9wZW4odG1wX3BhdGgsICJ3YiIpIGFzIGY6CiAgICAgICAgICAgICAgICAg
Zi53cml0ZShtYW5pZmVzdF9zdHIuZW5jb2RlKCJ1dGY4IikpCi0gICAgICAgICAgICBpZiBzeXMu
dmVyc2lvbl9pbmZvID49ICgzLCAzKToKLSAgICAgICAgICAgICAgICBvcy5yZXBsYWNlKHRtcF9w
YXRoLCBwYXRoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBvcy5yZW5hbWUo
dG1wX3BhdGgsIHBhdGgpCisgICAgICAgICAgICBvcy5yZXBsYWNlKHRtcF9wYXRoLCBwYXRoKQog
ICAgICAgICBleGNlcHQgKEV4Y2VwdGlvbiwgS2V5Ym9hcmRJbnRlcnJ1cHQpOgogICAgICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zLnVubGluayh0bXBfcGF0aCkKQEAgLTQzMSw3ICs0
MjgsNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKICAgICAgICAgICAgIGFjdGlv
bl9tYXBbImxzYW5fbGVhayJdKGl0ZW0pCiAKICAgICAgICAgbW96bGVha19kYXRhID0gZGF0YS5n
ZXQoIm1vemxlYWsiLCB7fSkKLSAgICAgICAgZm9yIHNjb3BlLCBzY29wZV9kYXRhIGluIGl0ZXJp
dGVtcyhtb3psZWFrX2RhdGEpOgorICAgICAgICBmb3Igc2NvcGUsIHNjb3BlX2RhdGEgaW4gbW96
bGVha19kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICBmb3Iga2V5LCBhY3Rpb24gaW4gWygib2Jq
ZWN0cyIsICJtb3psZWFrX29iamVjdCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoInRvdGFsIiwgIm1vemxlYWtfdG90YWwiKV06CiAgICAgICAgICAgICAgICAgZm9yIGl0ZW0g
aW4gc2NvcGVfZGF0YS5nZXQoa2V5LCBbXSk6CkBAIC02NjgsMTEgKzY2NSwxMSBAQCBjbGFzcyBU
ZXN0RmlsZURhdGEob2JqZWN0KToKICAgICAgICAgIyBSZXR1cm4gc3VidGVzdCBub2RlcyBwcmVz
ZW50IGluIHRoZSBleHBlY3RlZCBmaWxlLCBidXQgbWlzc2luZyBmcm9tIHRoZSBkYXRhCiAgICAg
ICAgIHJ2ID0gW10KIAotICAgICAgICBmb3IgdGVzdF9pZCwgc3VidGVzdHMgaW4gaXRlcml0ZW1z
KHNlbGYuZGF0YSk6CisgICAgICAgIGZvciB0ZXN0X2lkLCBzdWJ0ZXN0cyBpbiBzZWxmLmRhdGEu
aXRlbXMoKToKICAgICAgICAgICAgIHRlc3QgPSBleHBlY3RlZC5nZXRfdGVzdChlbnN1cmVfdGV4
dCh0ZXN0X2lkKSkKICAgICAgICAgICAgIGlmIG5vdCB0ZXN0OgogICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0gICAgICAgICAgICBzZWVuX3N1YnRlc3RzID0gc2V0KGVuc3VyZV90ZXh0KGl0ZW0p
IGZvciBpdGVtIGluIGl0ZXJrZXlzKHN1YnRlc3RzKSBpZiBpdGVtIGlzIG5vdCBOb25lKQorICAg
ICAgICAgICAgc2Vlbl9zdWJ0ZXN0cyA9IHNldChlbnN1cmVfdGV4dChpdGVtKSBmb3IgaXRlbSBp
biBzdWJ0ZXN0cy5rZXlzKCkgaWYgaXRlbSBpcyBub3QgTm9uZSkKICAgICAgICAgICAgIG1pc3Np
bmdfc3VidGVzdHMgPSBzZXQodGVzdC5zdWJ0ZXN0cy5rZXlzKCkpIC0gc2Vlbl9zdWJ0ZXN0cwog
ICAgICAgICAgICAgZm9yIGl0ZW0gaW4gbWlzc2luZ19zdWJ0ZXN0czoKICAgICAgICAgICAgICAg
ICBleHBlY3RlZF9zdWJ0ZXN0ID0gdGVzdC5nZXRfc3VidGVzdChpdGVtKQpAQCAtNjkxLDcgKzY4
OCw3IEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmplY3QpOgogICAgICAgICAjIHNpbmNlIHJlbW92
aW5nIHRoZXNlIG1heSBiZSBpbmFwcHJvcHJpYXRlCiAgICAgICAgIHRvcF9sZXZlbF9wcm9wcywg
ZGVwZW5kZW50X3Byb3BzID0gdXBkYXRlX3Byb3BlcnRpZXMKICAgICAgICAgYWxsX3Byb3BlcnRp
ZXMgPSBzZXQodG9wX2xldmVsX3Byb3BzKQotICAgICAgICBmb3IgaXRlbSBpbiBpdGVydmFsdWVz
KGRlcGVuZGVudF9wcm9wcyk6CisgICAgICAgIGZvciBpdGVtIGluIGRlcGVuZGVudF9wcm9wcy52
YWx1ZXMoKToKICAgICAgICAgICAgIGFsbF9wcm9wZXJ0aWVzIHw9IHNldChpdGVtKQogCiAgICAg
ICAgIGZpbHRlcmVkID0gW10KQEAgLTc0MSw5ICs3MzgsOSBAQCBjbGFzcyBUZXN0RmlsZURhdGEo
b2JqZWN0KToKICAgICAgICAgICAgIHRlc3RfZXhwZWN0ZWQgPSBleHBlY3RlZC5nZXRfdGVzdCh0
ZXN0X2lkKQogICAgICAgICAgICAgZXhwZWN0ZWRfYnlfdGVzdFt0ZXN0X2lkXSA9IHRlc3RfZXhw
ZWN0ZWQKIAotICAgICAgICBmb3IgdGVzdF9pZCwgdGVzdF9kYXRhIGluIGl0ZXJpdGVtcyhzZWxm
LmRhdGEpOgorICAgICAgICBmb3IgdGVzdF9pZCwgdGVzdF9kYXRhIGluIHNlbGYuZGF0YS5pdGVt
cygpOgogICAgICAgICAgICAgdGVzdF9pZCA9IGVuc3VyZV9zdHIodGVzdF9pZCkKLSAgICAgICAg
ICAgIGZvciBzdWJ0ZXN0X2lkLCByZXN1bHRzX2xpc3QgaW4gaXRlcml0ZW1zKHRlc3RfZGF0YSk6
CisgICAgICAgICAgICBmb3Igc3VidGVzdF9pZCwgcmVzdWx0c19saXN0IGluIHRlc3RfZGF0YS5p
dGVtcygpOgogICAgICAgICAgICAgICAgIGZvciBwcm9wLCBydW5faW5mbywgdmFsdWUgaW4gcmVz
dWx0c19saXN0OgogICAgICAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBkaXJlY3Rvcnkg
bWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgaWYgc3VidGVzdF9pZCBpcyBOb25lIGFuZCB0
ZXN0X2lkLmVuZHN3aXRoKCJfX2Rpcl9fIik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRl
eHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNTBjMDQ3ODJh
NjUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQucHkKQEAgLTAsMCArMSwxMSBAQAoraW1wb3J0
IG11bHRpcHJvY2Vzc2luZworCitfY29udGV4dCA9IE5vbmUKKworCitkZWYgZ2V0X2NvbnRleHQo
KToKKyAgICBnbG9iYWwgX2NvbnRleHQKKworICAgIGlmIF9jb250ZXh0IGlzIE5vbmU6CisgICAg
ICAgIF9jb250ZXh0ID0gbXVsdGlwcm9jZXNzaW5nLmdldF9jb250ZXh0KCJzcGF3biIpCisgICAg
cmV0dXJuIF9jb250ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvY2Vzcy5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGEyYjg5NGNiNzRkLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvY2Vz
cy5weQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLWltcG9ydCBzeXMKLQotaW1wb3J0
IHNpeAotCi0KLWRlZiBjYXN0X2VudihlbnYpOgotICAgICIiIkVuY29kZSBhbGwgdGhlIGVudmly
b25tZW50IHZhbHVlcyBhcyB0aGUgYXBwcm9wcmlhdGUgdHlwZSBmb3IgZWFjaCBQeXRob24gdmVy
c2lvbgotICAgIFRoaXMgYXNzdW1lcyB0aGF0IGFsbCB0aGUgZGF0YSBpcyBvciBjYW4gYmUgcmVw
cmVzZW50ZWQgYXMgVVRGOCIiIgotCi0gICAgZW52X3R5cGUgPSBzaXguZW5zdXJlX2JpbmFyeSBp
ZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMyBlbHNlIHNpeC5lbnN1cmVfc3RyCi0gICAgcmV0dXJu
IHtlbnZfdHlwZShrZXkpOiBlbnZfdHlwZSh2YWx1ZSkgZm9yIGtleSwgdmFsdWUgaW4gc2l4Lml0
ZXJpdGVtcyhlbnYpfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQppbmRleCBhYmQ4
NDA5NGJiMzMuLmU2NWRmNWVlODk5MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMu
cHkKQEAgLTEsNiArMSw1IEBACiBpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgaW1wCi1mcm9tIHNp
eCBpbXBvcnQgaXRlcml0ZW1zCiAKIGZyb20gLmJyb3dzZXJzIGltcG9ydCBwcm9kdWN0X2xpc3QK
IApAQCAtMzQsMzQgKzMzLDI5IEBAIGNsYXNzIFByb2R1Y3Qob2JqZWN0KToKICAgICAgICAgbW9k
dWxlID0gcHJvZHVjdF9tb2R1bGUoY29uZmlnLCBwcm9kdWN0KQogICAgICAgICBkYXRhID0gbW9k
dWxlLl9fd3B0cnVubmVyX18KICAgICAgICAgc2VsZi5uYW1lID0gcHJvZHVjdAorICAgICAgICBp
ZiBpc2luc3RhbmNlKGRhdGFbImJyb3dzZXIiXSwgc3RyKToKKyAgICAgICAgICAgIHNlbGYuX2Jy
b3dzZXJfY2xzID0ge05vbmU6IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pfQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fYnJvd3Nlcl9jbHMgPSB7a2V5OiBnZXRhdHRy
KG1vZHVsZSwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5
LCB2YWx1ZSBpbiBkYXRhWyJicm93c2VyIl0uaXRlbXMoKX0KICAgICAgICAgc2VsZi5jaGVja19h
cmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImNoZWNrX2FyZ3MiXSkKLSAgICAgICAgc2VsZi5i
cm93c2VyX2NscyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pCiAgICAgICAgIHNl
bGYuZ2V0X2Jyb3dzZXJfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXJfa3dh
cmdzIl0pCiAgICAgICAgIHNlbGYuZ2V0X2V4ZWN1dG9yX2t3YXJncyA9IGdldGF0dHIobW9kdWxl
LCBkYXRhWyJleGVjdXRvcl9rd2FyZ3MiXSkKICAgICAgICAgc2VsZi5lbnZfb3B0aW9ucyA9IGdl
dGF0dHIobW9kdWxlLCBkYXRhWyJlbnZfb3B0aW9ucyJdKSgpCiAgICAgICAgIHNlbGYuZ2V0X2Vu
dl9leHRyYXMgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiZW52X2V4dHJhcyJdKQogICAgICAgICBz
ZWxmLnJ1bl9pbmZvX2V4dHJhcyA9IChnZXRhdHRyKG1vZHVsZSwgZGF0YVsicnVuX2luZm9fZXh0
cmFzIl0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBp
biBkYXRhIGVsc2UgbGFtYmRhICoqa3dhcmdzOnt9KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBkYXRhIGVsc2UgbGFtYmRhICoqa3dhcmdz
Ont9KQogICAgICAgICBzZWxmLmdldF90aW1lb3V0X211bHRpcGxpZXIgPSBnZXRhdHRyKG1vZHVs
ZSwgZGF0YVsidGltZW91dF9tdWx0aXBsaWVyIl0pCiAKICAgICAgICAgc2VsZi5leGVjdXRvcl9j
bGFzc2VzID0ge30KLSAgICAgICAgZm9yIHRlc3RfdHlwZSwgY2xzX25hbWUgaW4gaXRlcml0ZW1z
KGRhdGFbImV4ZWN1dG9yIl0pOgorICAgICAgICBmb3IgdGVzdF90eXBlLCBjbHNfbmFtZSBpbiBk
YXRhWyJleGVjdXRvciJdLml0ZW1zKCk6CiAgICAgICAgICAgICBjbHMgPSBnZXRhdHRyKG1vZHVs
ZSwgY2xzX25hbWUpCiAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2NsYXNzZXNbdGVzdF90eXBl
XSA9IGNscwogCi0KLWRlZiBsb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Nscz1G
YWxzZSk6Ci0gICAgcnYgPSBQcm9kdWN0KGNvbmZpZywgcHJvZHVjdCkKLSAgICBpZiBub3QgbG9h
ZF9jbHM6Ci0gICAgICAgIHJldHVybiAocnYuY2hlY2tfYXJncywKLSAgICAgICAgICAgICAgICBy
di5icm93c2VyX2NscywKLSAgICAgICAgICAgICAgICBydi5nZXRfYnJvd3Nlcl9rd2FyZ3MsCi0g
ICAgICAgICAgICAgICAgcnYuZXhlY3V0b3JfY2xhc3NlcywKLSAgICAgICAgICAgICAgICBydi5n
ZXRfZXhlY3V0b3Jfa3dhcmdzLAotICAgICAgICAgICAgICAgIHJ2LmVudl9vcHRpb25zLAotICAg
ICAgICAgICAgICAgIHJ2LmdldF9lbnZfZXh0cmFzLAotICAgICAgICAgICAgICAgIHJ2LnJ1bl9p
bmZvX2V4dHJhcykKLSAgICByZXR1cm4gcnYKKyAgICBkZWYgZ2V0X2Jyb3dzZXJfY2xzKHNlbGYs
IHRlc3RfdHlwZSk6CisgICAgICAgIGlmIHRlc3RfdHlwZSBpbiBzZWxmLl9icm93c2VyX2NsczoK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLl9icm93c2VyX2Nsc1t0ZXN0X3R5cGVdCisgICAgICAg
IHJldHVybiBzZWxmLl9icm93c2VyX2Nsc1tOb25lXQogCiAKIGRlZiBsb2FkX3Byb2R1Y3RfdXBk
YXRlKGNvbmZpZywgcHJvZHVjdCk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkK
aW5kZXggODhkMWMyMzJiZmI1Li5lZWI1YWYyMzAwMjkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9zdGFiaWxpdHkucHkKQEAgLTUsNyArNSw2IEBAIGltcG9ydCBpbwogaW1wb3J0IG9zCiBmcm9t
IGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdCwgZGVmYXVsdGRpY3QKIGZyb20gZGF0ZXRp
bWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKIGZyb20gbW96
bG9nIGltcG9ydCByZWFkZXIKIGZyb20gbW96bG9nLmZvcm1hdHRlcnMgaW1wb3J0IEpTT05Gb3Jt
YXR0ZXIKQEAgLTEzLDggKzEyLDggQEAgZnJvbSBtb3psb2cuaGFuZGxlcnMgaW1wb3J0IEJhc2VI
YW5kbGVyLCBTdHJlYW1IYW5kbGVyLCBMb2dMZXZlbEZpbHRlcgogCiBoZXJlID0gb3MucGF0aC5k
aXJuYW1lKF9fZmlsZV9fKQogbG9jYWxwYXRocyA9IGltcC5sb2FkX3NvdXJjZSgibG9jYWxwYXRo
cyIsIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJk
aXIsICJsb2NhbHBhdGhzLnB5IikpKQotZnJvbSBjaS50Yy5naXRodWJfY2hlY2tzX291dHB1dCBp
bXBvcnQgZ2V0X2doX2NoZWNrc19vdXRwdXR0ZXIKLWZyb20gd3B0Lm1hcmtkb3duIGltcG9ydCBt
YXJrZG93bl9hZGp1c3QsIHRhYmxlCitmcm9tIGNpLnRjLmdpdGh1Yl9jaGVja3Nfb3V0cHV0IGlt
cG9ydCBnZXRfZ2hfY2hlY2tzX291dHB1dHRlciAgIyB0eXBlOiBpZ25vcmUKK2Zyb20gd3B0Lm1h
cmtkb3duIGltcG9ydCBtYXJrZG93bl9hZGp1c3QsIHRhYmxlICAjIHR5cGU6IGlnbm9yZQogCiAK
ICMgSWYgYSB0ZXN0IHRha2VzIG1vcmUgdGhhbiAoRkxBS1lfVEhSRVNIT0xEKnRpbWVvdXQpIGFu
ZCBkb2VzIG5vdCBjb25zaXN0ZW50bHkKQEAgLTIyLDcgKzIxLDcgQEAgZnJvbSB3cHQubWFya2Rv
d24gaW1wb3J0IG1hcmtkb3duX2FkanVzdCwgdGFibGUKIEZMQUtZX1RIUkVTSE9MRCA9IDAuOAog
CiAKLWNsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CitjbGFzcyBMb2dBY3Rpb25G
aWx0ZXIoQmFzZUhhbmRsZXIpOiAgIyB0eXBlOiBpZ25vcmUKIAogICAgICIiIkhhbmRsZXIgdGhh
dCBmaWx0ZXJzIG91dCBtZXNzYWdlcyBub3Qgb2YgYSBnaXZlbiBzZXQgb2YgYWN0aW9ucy4KIApA
QCAtNDQsNyArNDMsNyBAQCBjbGFzcyBMb2dBY3Rpb25GaWx0ZXIoQmFzZUhhbmRsZXIpOgogICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuaW5uZXIoaXRlbSkKIAogCi1jbGFzcyBMb2dIYW5kbGVyKHJl
YWRlci5Mb2dIYW5kbGVyKToKK2NsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRsZXIpOiAg
IyB0eXBlOiBpZ25vcmUKIAogICAgICIiIkhhbmRsZSB1cGRhdGluZyB0ZXN0IGFuZCBzdWJ0ZXN0
IHN0YXR1cyBpbiBsb2cuCiAKQEAgLTE0MiwxMCArMTQxLDEwIEBAIGRlZiBwcm9jZXNzX3Jlc3Vs
dHMobG9nLCBpdGVyYXRpb25zKToKICAgICBoYW5kbGVyID0gTG9nSGFuZGxlcigpCiAgICAgcmVh
ZGVyLmhhbmRsZV9sb2cocmVhZGVyLnJlYWQobG9nKSwgaGFuZGxlcikKICAgICByZXN1bHRzID0g
aGFuZGxlci5yZXN1bHRzCi0gICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiBpdGVyaXRlbXMocmVz
dWx0cyk6CisgICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiByZXN1bHRzLml0ZW1zKCk6CiAgICAg
ICAgIGlmIGlzX2luY29uc2lzdGVudCh0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CiAgICAg
ICAgICAgICBpbmNvbnNpc3RlbnQuYXBwZW5kKCh0ZXN0X25hbWUsIE5vbmUsIHRlc3RbInN0YXR1
cyJdLCBbXSkpCi0gICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gaXRlcml0ZW1z
KHRlc3RbInN1YnRlc3RzIl0pOgorICAgICAgICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0IGlu
IHRlc3RbInN1YnRlc3RzIl0uaXRlbXMoKToKICAgICAgICAgICAgIGlmIGlzX2luY29uc2lzdGVu
dChzdWJ0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CiAgICAgICAgICAgICAgICAgaW5jb25z
aXN0ZW50LmFwcGVuZCgodGVzdF9uYW1lLCBzdWJ0ZXN0X25hbWUsIHN1YnRlc3RbInN0YXR1cyJd
LCBzdWJ0ZXN0WyJtZXNzYWdlcyJdKSkKIApAQCAtMjM1LDcgKzIzNCw3IEBAIGRlZiB3cml0ZV9y
ZXN1bHRzKGxvZywgcmVzdWx0cywgaXRlcmF0aW9ucywgcHJfbnVtYmVyPU5vbmUsIHVzZV9kZXRh
aWxzPUZhbHNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRlc3RzIiBpZiBsZW4ocmVzdWx0cykgPiAxCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgInRlc3QiKSkKIAotICAgIGZvciB0ZXN0
X25hbWUsIHRlc3QgaW4gaXRlcml0ZW1zKHJlc3VsdHMpOgorICAgIGZvciB0ZXN0X25hbWUsIHRl
c3QgaW4gcmVzdWx0cy5pdGVtcygpOgogICAgICAgICBiYXNldXJsID0gImh0dHA6Ly93M2MtdGVz
dC5vcmcvc3VibWlzc2lvbnMiCiAgICAgICAgIGlmICJodHRwcyIgaW4gb3MucGF0aC5zcGxpdGV4
dCh0ZXN0X25hbWUpWzBdLnNwbGl0KCIuIilbMTpdOgogICAgICAgICAgICAgYmFzZXVybCA9ICJo
dHRwczovL3czYy10ZXN0Lm9yZy9zdWJtaXNzaW9ucyIKQEAgLTMwNSw3ICszMDQsNyBAQCBkZWYg
Z2V0X3N0ZXBzKGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0YXJ0LCBrd2FyZ3NfZXh0
cmFzKToKICAgICBmb3Iga3dhcmdzX2V4dHJhIGluIGt3YXJnc19leHRyYXM6CiAgICAgICAgIGlm
IGt3YXJnc19leHRyYToKICAgICAgICAgICAgIGZsYWdzX3N0cmluZyA9ICIgd2l0aCBmbGFncyAl
cyIgJSAiICIuam9pbigKLSAgICAgICAgICAgICAgICAiJXM9JXMiICUgaXRlbSBmb3IgaXRlbSBp
biBpdGVyaXRlbXMoa3dhcmdzX2V4dHJhKSkKKyAgICAgICAgICAgICAgICAiJXM9JXMiICUgaXRl
bSBmb3IgaXRlbSBpbiBrd2FyZ3NfZXh0cmEuaXRlbXMoKSkKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGZsYWdzX3N0cmluZyA9ICIiCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0ZHJpdmVyLWV4dHJhLmpzCmluZGV4IDljMGM2OWFmM2EzZi4uODQyYWJmNDExZjkwIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKQEAgLTM0LDcg
KzM0LDcgQEAKICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICJ0ZXN0ZHJpdmVyLWNv
bXBsZXRlIikgewogICAgICAgICAgICAgY29uc3QgY21kX2lkID0gZGF0YS5jbWRfaWQ7CiAgICAg
ICAgICAgICBjb25zdCBbb25fc3VjY2Vzcywgb25fZmFpbHVyZV0gPSBwZW5kaW5nLmdldChjbWRf
aWQpOwotICAgICAgICAgICAgcGVuZGluZy5jbGVhcihjbWRfaWQpOworICAgICAgICAgICAgcGVu
ZGluZy5kZWxldGUoY21kX2lkKTsKICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVyID0gZGF0YS5z
dGF0dXMgPT09ICJzdWNjZXNzIiA/IG9uX3N1Y2Nlc3MgOiBvbl9mYWlsdXJlOwogICAgICAgICAg
ICAgcmVzb2x2ZXIoZGF0YSk7CiAgICAgICAgICAgICBpZiAoaXNfdGVzdF9jb250ZXh0KSB7CkBA
IC0xMzYsNiArMTM2LDkgQEAKICAgICAgICAgICAgIGlmICh0ZXN0aGFybmVzc19jb250ZXh0ID09
PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUcmllZCB0byBydW4g
aW4gYSBub24tdGVzdGhhcm5lc3Mgd2luZG93IHdpdGhvdXQgYSBjYWxsIHRvIHNldF90ZXN0X2Nv
bnRleHQiKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhY3Rpb25fbXNnLmNvbnRl
eHQgPT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhY3Rpb25fbXNnLmNvbnRleHQgPSBnZXRf
d2luZG93X2lkKHdpbmRvdyk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbWRfaWQgPSBj
dHhfY21kX2lkKys7CiAgICAgICAgICAgICBhY3Rpb25fbXNnLmNtZF9pZCA9IGNtZF9pZDsKICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0X2RyaXZlci5tZXNzYWdlX3Rlc3Qoe3R5cGU6ICJ0ZXN0ZHJp
dmVyLWNvbW1hbmQiLApAQCAtMTY5LDYgKzE3MiwxMCBAQAogICAgICAgICByZXR1cm4gY3JlYXRl
X2FjdGlvbigiY2xpY2siLCB7c2VsZWN0b3IsIGNvbnRleHR9KTsKICAgICB9OwogCisgICAgd2lu
ZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLmRlbGV0ZV9hbGxfY29va2llcyA9IGZ1bmN0aW9uKGNv
bnRleHQ9bnVsbCkgeworICAgICAgICByZXR1cm4gY3JlYXRlX2FjdGlvbigiZGVsZXRlX2FsbF9j
b29raWVzIiwge2NvbnRleHR9KTsKKyAgICB9OworCiAgICAgd2luZG93LnRlc3RfZHJpdmVyX2lu
dGVybmFsLnNlbmRfa2V5cyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGtleXMpIHsKICAgICAgICAgY29u
c3Qgc2VsZWN0b3IgPSBnZXRfc2VsZWN0b3IoZWxlbWVudCk7CiAgICAgICAgIGNvbnN0IGNvbnRl
eHQgPSBnZXRfY29udGV4dChlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNl
cnZvLmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKaW5kZXggYTEwYjY5ZGY1NTA0Li40YTI3
ZGMyN2VmNmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJu
ZXNzcmVwb3J0LXNlcnZvLmpzCkBAIC0xLDQgKzEsNCBAQAotdmFyIHByb3BzID0ge291dHB1dDol
KG91dHB1dClkfTsKK3ZhciBwcm9wcyA9IHtvdXRwdXQ6JShvdXRwdXQpZCwgZGVidWc6ICUoZGVi
dWcpc307CiB2YXIgc3RhcnRfbG9jID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogc3Rh
cnRfbG9jLmhyZWYgPSBsb2NhdGlvbi5ocmVmOwogc2V0dXAocHJvcHMpOwpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZl
ci5qcwppbmRleCBjODg4NDEzNjA0NzAuLjc4MTk1MzhkYmI4ZiAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5l
c3NyZXBvcnQtc2Vydm9kcml2ZXIuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIu
anMKQEAgLTEsNCArMSw0IEBACi1zZXR1cCh7b3V0cHV0OiUob3V0cHV0KWR9KTsKK3NldHVwKHtv
dXRwdXQ6JShvdXRwdXQpZCwgZGVidWc6ICUoZGVidWcpc30pOwogCiBhZGRfY29tcGxldGlvbl9j
YWxsYmFjayhmdW5jdGlvbigpIHsKICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlv
biAodGVzdHMsIHN0YXR1cykgewpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFy
bmVzc3JlcG9ydC5qcwppbmRleCA5Y2Q2ODBlMTRhZWQuLmQzODU2OTI0NDVjNSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdGhhcm5lc3NyZXBvcnQuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKQEAgLTczLDYgKzcz
LDcgQEAgd2luZG93Ll9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4dF9ldmVudCA9IGZ1bmN0aW9uKCkg
ewogICB2YXIgcHJvcHMgPSB7b3V0cHV0OiAlKG91dHB1dClkLAogICAgICAgICAgICAgICAgdGlt
ZW91dF9tdWx0aXBsaWVyOiAlKHRpbWVvdXRfbXVsdGlwbGllcilzLAogICAgICAgICAgICAgICAg
ZXhwbGljaXRfdGltZW91dDogJShleHBsaWNpdF90aW1lb3V0KXMsCisgICAgICAgICAgICAgICBk
ZWJ1ZzogJShkZWJ1ZylzLAogICAgICAgICAgICAgICAgbWVzc2FnZV9ldmVudHM6IFsiY29tcGxl
dGlvbiJdfTsKIAogICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cywgaGFy
bmVzc19zdGF0dXMpIHsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5CmluZGV4
IDRhM2ZhNDI3MzY1NC4uOTQ5MmE4YmMzOGU2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3Rsb2FkZXIucHkKQEAgLTEsMTYgKzEsMTQgQEAKIGltcG9ydCBoYXNobGliCiBpbXBvcnQganNv
bgogaW1wb3J0IG9zCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHNwbGl0
Citmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQKIGZyb20gYWJjIGltcG9ydCBBQkNN
ZXRhLCBhYnN0cmFjdG1ldGhvZAotZnJvbSBzaXgubW92ZXMucXVldWUgaW1wb3J0IEVtcHR5Citm
cm9tIHF1ZXVlIGltcG9ydCBFbXB0eQogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRp
Y3QsIGRlcXVlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKLWZyb20gc2l4IGlt
cG9ydCBlbnN1cmVfYmluYXJ5LCBpdGVyaXRlbXMKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCByYW5n
ZQogCiBmcm9tIC4gaW1wb3J0IG1hbmlmZXN0aW5jbHVkZQogZnJvbSAuIGltcG9ydCBtYW5pZmVz
dGV4cGVjdGVkCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAogZnJvbSAuIGltcG9ydCB3cHR0ZXN0
CiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAogCkBAIC0yMiw5ICsyMCw5IEBAIGRvd25s
b2FkX2Zyb21fZ2l0aHViID0gTm9uZQogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgogICAgICMg
VGhpcyByZWxpZXMgb24gYW4gYWxyZWFkeSBsb2FkZWQgbW9kdWxlIGhhdmluZyBzZXQgdGhlIHN5
cy5wYXRoIGNvcnJlY3RseSA6KAogICAgIGdsb2JhbCBtYW5pZmVzdCwgbWFuaWZlc3RfdXBkYXRl
LCBkb3dubG9hZF9mcm9tX2dpdGh1YgotICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0
CisgICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QgICMgdHlwZTogaWdub3JlCiAgICAg
ZnJvbSBtYW5pZmVzdCBpbXBvcnQgdXBkYXRlIGFzIG1hbmlmZXN0X3VwZGF0ZQotICAgIGZyb20g
bWFuaWZlc3QuZG93bmxvYWQgaW1wb3J0IGRvd25sb2FkX2Zyb21fZ2l0aHViCisgICAgZnJvbSBt
YW5pZmVzdC5kb3dubG9hZCBpbXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIgICMgdHlwZTogaWdu
b3JlCiAKIAogY2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKQEAgLTQxLDcgKzM5LDcgQEAg
Y2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKICAgICAgICAgICAgIHJhaXNlCiAKICAgICAg
ICAgc2VsZi5ncm91cF9ieV90ZXN0ID0ge30KLSAgICAgICAgZm9yIGdyb3VwLCB0ZXN0X2lkcyBp
biBpdGVyaXRlbXMoc2VsZi5fZGF0YSk6CisgICAgICAgIGZvciBncm91cCwgdGVzdF9pZHMgaW4g
c2VsZi5fZGF0YS5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHRlc3RfaWQgaW4gdGVzdF9pZHM6
CiAgICAgICAgICAgICAgICAgc2VsZi5ncm91cF9ieV90ZXN0W3Rlc3RfaWRdID0gZ3JvdXAKIApA
QCAtNTEsNiArNDksMTYgQEAgY2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKICAgICBkZWYg
X19nZXRpdGVtX18oc2VsZiwga2V5KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFba2V5XQog
CitkZWYgcmVhZF9pbmNsdWRlX2Zyb21fZmlsZShmaWxlKToKKyAgICBuZXdfaW5jbHVkZSA9IFtd
CisgICAgd2l0aCBvcGVuKGZpbGUpIGFzIGY6CisgICAgICAgIGZvciBsaW5lIGluIGY6CisgICAg
ICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgICAgICAgICAjIEFsbG93IHdob2xlLWxp
bmUgY29tbWVudHM7CisgICAgICAgICAgICAjIGZyYWdtZW50cyBtZWFuIHdlIGNhbid0IGhhdmUg
cGFydGlhbCBsaW5lICMtYmFzZWQgY29tbWVudHMKKyAgICAgICAgICAgIGlmIGxlbihsaW5lKSA+
IDAgYW5kIG5vdCBsaW5lLnN0YXJ0c3dpdGgoIiMiKToKKyAgICAgICAgICAgICAgICBuZXdfaW5j
bHVkZS5hcHBlbmQobGluZSkKKyAgICByZXR1cm4gbmV3X2luY2x1ZGUKIAogZGVmIHVwZGF0ZV9p
bmNsdWRlX2Zvcl9ncm91cHModGVzdF9ncm91cHMsIGluY2x1ZGUpOgogICAgIGlmIGluY2x1ZGUg
aXMgTm9uZToKQEAgLTkzLDcgKzEwMSw3IEBAIGNsYXNzIEhhc2hDaHVua2VyKFRlc3RDaHVua2Vy
KToKICAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFuaWZlc3QpOgogICAgICAgICBjaHVua19pbmRl
eCA9IHNlbGYuY2h1bmtfbnVtYmVyIC0gMQogICAgICAgICBmb3IgdGVzdF90eXBlLCB0ZXN0X3Bh
dGgsIHRlc3RzIGluIG1hbmlmZXN0OgotICAgICAgICAgICAgaCA9IGludChoYXNobGliLm1kNShl
bnN1cmVfYmluYXJ5KHRlc3RfcGF0aCkpLmhleGRpZ2VzdCgpLCAxNikKKyAgICAgICAgICAgIGgg
PSBpbnQoaGFzaGxpYi5tZDUodGVzdF9wYXRoLmVuY29kZSgpKS5oZXhkaWdlc3QoKSwgMTYpCiAg
ICAgICAgICAgICBpZiBoICUgc2VsZi50b3RhbF9jaHVua3MgPT0gY2h1bmtfaW5kZXg6CiAgICAg
ICAgICAgICAgICAgeWllbGQgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzCiAKQEAgLTExMiw3
ICsxMjAsNyBAQCBjbGFzcyBEaXJlY3RvcnlIYXNoQ2h1bmtlcihUZXN0Q2h1bmtlcik6CiAgICAg
ICAgICAgICAgICAgaGFzaF9wYXRoID0gb3MucGF0aC5zZXAuam9pbihvcy5wYXRoLmRpcm5hbWUo
dGVzdF9wYXRoKS5zcGxpdChvcy5wYXRoLnNlcCwgZGVwdGgpWzpkZXB0aF0pCiAgICAgICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgICAgIGhhc2hfcGF0aCA9IG9zLnBhdGguZGlybmFtZSh0ZXN0
X3BhdGgpCi0gICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGVuc3VyZV9iaW5hcnkoaGFz
aF9wYXRoKSkuaGV4ZGlnZXN0KCksIDE2KQorICAgICAgICAgICAgaCA9IGludChoYXNobGliLm1k
NShoYXNoX3BhdGguZW5jb2RlKCkpLmhleGRpZ2VzdCgpLCAxNikKICAgICAgICAgICAgIGlmIGgg
JSBzZWxmLnRvdGFsX2NodW5rcyA9PSBjaHVua19pbmRleDoKICAgICAgICAgICAgICAgICB5aWVs
ZCB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMKIApAQCAtMTczLDcgKzE4MSw3IEBAIGNsYXNz
IE1hbmlmZXN0TG9hZGVyKG9iamVjdCk6CiAKICAgICBkZWYgbG9hZChzZWxmKToKICAgICAgICAg
cnYgPSB7fQotICAgICAgICBmb3IgdXJsX2Jhc2UsIHBhdGhzIGluIGl0ZXJpdGVtcyhzZWxmLnRl
c3RfcGF0aHMpOgorICAgICAgICBmb3IgdXJsX2Jhc2UsIHBhdGhzIGluIHNlbGYudGVzdF9wYXRo
cy5pdGVtcygpOgogICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IHNlbGYubG9hZF9tYW5pZmVz
dCh1cmxfYmFzZT11cmxfYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKipwYXRocykKICAgICAgICAgICAgIHBhdGhfZGF0YSA9IHsidXJsX2Jhc2Ui
OiB1cmxfYmFzZX0KQEAgLTM5MCw3ICszOTgsOCBAQCBjbGFzcyBHcm91cGVkU291cmNlKFRlc3RT
b3VyY2UpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0ZXN0
cywgKiprd2FyZ3MpOgotICAgICAgICB0ZXN0X3F1ZXVlID0gUXVldWUoKQorICAgICAgICBtcCA9
IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHRlc3RfcXVldWUgPSBtcC5RdWV1ZSgp
CiAgICAgICAgIGdyb3VwcyA9IFtdCiAKICAgICAgICAgc3RhdGUgPSB7fQpAQCAtNDIzLDcgKzQz
Miw4IEBAIGNsYXNzIEdyb3VwZWRTb3VyY2UoVGVzdFNvdXJjZSk6CiBjbGFzcyBTaW5nbGVUZXN0
U291cmNlKFRlc3RTb3VyY2UpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBtYWtlX3F1ZXVl
KGNscywgdGVzdHMsICoqa3dhcmdzKToKLSAgICAgICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkKKyAg
ICAgICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICB0ZXN0X3F1ZXVlID0g
bXAuUXVldWUoKQogICAgICAgICBwcm9jZXNzZXMgPSBrd2FyZ3NbInByb2Nlc3NlcyJdCiAgICAg
ICAgIHF1ZXVlcyA9IFtkZXF1ZShbXSkgZm9yIF8gaW4gcmFuZ2UocHJvY2Vzc2VzKV0KICAgICAg
ICAgbWV0YWRhdGFzID0gW2Nscy5ncm91cF9tZXRhZGF0YShOb25lKSBmb3IgXyBpbiByYW5nZShw
cm9jZXNzZXMpXQpAQCAtNDY3LDkgKzQ3NywxMCBAQCBjbGFzcyBHcm91cEZpbGVUZXN0U291cmNl
KFRlc3RTb3VyY2UpOgogCiAgICAgICAgIGlkc190b190ZXN0cyA9IHt0ZXN0LmlkOiB0ZXN0IGZv
ciB0ZXN0IGluIHRlc3RzfQogCi0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAg
IG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1wLlF1
ZXVlKCkKIAotICAgICAgICBmb3IgZ3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gaXRlcml0ZW1zKHRl
c3RzX2J5X2dyb3VwKToKKyAgICAgICAgZm9yIGdyb3VwX25hbWUsIHRlc3RfaWRzIGluIHRlc3Rz
X2J5X2dyb3VwLml0ZW1zKCk6CiAgICAgICAgICAgICBncm91cF9tZXRhZGF0YSA9IHsic2NvcGUi
OiBncm91cF9uYW1lfQogICAgICAgICAgICAgZ3JvdXAgPSBkZXF1ZSgpCiAKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RydW5uZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CmluZGV4IDBiZGU1YmEzNDhlYS4uNGRhMTI1NWQxM2I3
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkKQEAgLTEsMTQgKzEsMTIg
QEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwotCi1pbXBvcnQgbXVs
dGlwcm9jZXNzaW5nCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNrCi1mcm9tIHNp
eC5tb3Zlcy5xdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gcXVldWUgaW1wb3J0IEVtcHR5CiBmcm9t
IGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBv
cnQgUHJvY2VzcywgY3VycmVudF9wcm9jZXNzLCBRdWV1ZQogCiBmcm9tIG1vemxvZyBpbXBvcnQg
c3RydWN0dXJlZGxvZywgY2FwdHVyZQogCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAorCiAjIFNw
ZWNpYWwgdmFsdWUgdXNlZCBhcyBhIHNlbnRpbmFsIGluIHZhcmlvdXMgY29tbWFuZHMKIFN0b3Ag
PSBvYmplY3QoKQogCkBAIC0yNCwzMCArMjIsMTIgQEAgZGVmIHJlbGVhc2VfbW96bG9nX2xvY2so
KToKICAgICAgICAgcGFzcwogCiAKLWNsYXNzIE1lc3NhZ2VMb2dnZXIob2JqZWN0KToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZV9mdW5jKToKLSAgICAgICAgc2VsZi5zZW5kX21lc3Nh
Z2UgPSBtZXNzYWdlX2Z1bmMKLQotICAgIGRlZiBfbG9nX2RhdGEoc2VsZiwgYWN0aW9uLCAqKmt3
YXJncyk6Ci0gICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJsb2ciLCBhY3Rpb24sIGt3YXJncykK
LQotICAgIGRlZiBwcm9jZXNzX291dHB1dChzZWxmLCBwcm9jZXNzLCBkYXRhLCBjb21tYW5kKToK
LSAgICAgICAgc2VsZi5fbG9nX2RhdGEoInByb2Nlc3Nfb3V0cHV0IiwgcHJvY2Vzcz1wcm9jZXNz
LCBkYXRhPWRhdGEsIGNvbW1hbmQ9Y29tbWFuZCkKLQorY2xhc3MgTG9nTWVzc2FnZUhhbmRsZXI6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlbmRfbWVzc2FnZSk6CisgICAgICAgIHNlbGYuc2Vu
ZF9tZXNzYWdlID0gc2VuZF9tZXNzYWdlCiAKLWRlZiBfbG9nX2Z1bmMobGV2ZWxfbmFtZSk6Ci0g
ICAgZGVmIGxvZyhzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgc2VsZi5fbG9nX2RhdGEobGV2ZWxf
bmFtZS5sb3dlcigpLCBtZXNzYWdlPW1lc3NhZ2UpCi0gICAgbG9nLl9fZG9jX18gPSAiIiJMb2cg
YSBtZXNzYWdlIHdpdGggbGV2ZWwgJXMKLQotOnBhcmFtIG1lc3NhZ2U6IFRoZSBzdHJpbmcgbWVz
c2FnZSB0byBsb2cKLSIiIiAlIGxldmVsX25hbWUKLSAgICBsb2cuX19uYW1lX18gPSBzdHIobGV2
ZWxfbmFtZSkubG93ZXIoKQotICAgIHJldHVybiBsb2cKLQotIyBDcmVhdGUgYWxsIHRoZSBtZXRo
b2RzIG9uIFN0cnVjdHVyZWRMb2cgZm9yIGRlYnVnIGxldmVscwotZm9yIGxldmVsX25hbWUgaW4g
c3RydWN0dXJlZGxvZy5sb2dfbGV2ZWxzOgotICAgIHNldGF0dHIoTWVzc2FnZUxvZ2dlciwgbGV2
ZWxfbmFtZS5sb3dlcigpLCBfbG9nX2Z1bmMobGV2ZWxfbmFtZSkpCisgICAgZGVmIF9fY2FsbF9f
KHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgibG9nIiwgZGF0YSkKIAog
CiBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CkBAIC02OCw3ICs0OCw3IEBAIGNsYXNzIFRlc3RS
dW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5yZXN1bHRfcXVldWUgPSByZXN1bHRfcXVldWUK
IAogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKLSAgICAgICAgc2VsZi5uYW1lID0g
Y3VycmVudF9wcm9jZXNzKCkubmFtZQorICAgICAgICBzZWxmLm5hbWUgPSBtcGNvbnRleHQuZ2V0
X2NvbnRleHQoKS5jdXJyZW50X3Byb2Nlc3MoKS5uYW1lCiAgICAgICAgIHNlbGYubG9nZ2VyID0g
bG9nZ2VyCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtOTgsNyArNzgsMTIgQEAgY2xh
c3MgVGVzdFJ1bm5lcihvYmplY3QpOgogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgICIiIk1h
aW4gbG9vcCBhY2NlcHRpbmcgY29tbWFuZHMgb3ZlciB0aGUgcGlwZSBhbmQgdHJpZ2dlcmluZwog
ICAgICAgICB0aGUgYXNzb2NpYXRlZCBtZXRob2RzIiIiCi0gICAgICAgIHNlbGYuc2V0dXAoKQor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnNldHVwKCkKKyAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkFuIGVycm9yIG9jY3Vy
ZWQgZHVyaW5nIGV4ZWN1dG9yIHNldHVwOlxuJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIHJhaXNlCiAgICAg
ICAgIGNvbW1hbmRzID0geyJydW5fdGVzdCI6IHNlbGYucnVuX3Rlc3QsCiAgICAgICAgICAgICAg
ICAgICAgICJyZXNldCI6IHNlbGYucmVzZXQsCiAgICAgICAgICAgICAgICAgICAgICJzdG9wIjog
c2VsZi5zdG9wLApAQCAtMTUzLDcgKzEzOCw5IEBAIGRlZiBzdGFydF9ydW5uZXIocnVubmVyX2Nv
bW1hbmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRfcXVldWUsCiAgICAgIyBpbiB0aGUgbG9nZ2luZyBt
b2R1bGUgdW5sb2NrZWQKICAgICByZWxlYXNlX21vemxvZ19sb2NrKCkKIAotICAgIGxvZ2dlciA9
IE1lc3NhZ2VMb2dnZXIoc2VuZF9tZXNzYWdlKQorICAgIHByb2NfbmFtZSA9IG1wY29udGV4dC5n
ZXRfY29udGV4dCgpLmN1cnJlbnRfcHJvY2VzcygpLm5hbWUKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1
cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIocHJvY19uYW1lKQorICAgIGxvZ2dlci5hZGRfaGFuZGxl
cihMb2dNZXNzYWdlSGFuZGxlcihzZW5kX21lc3NhZ2UpKQogCiAgICAgd2l0aCBjYXB0dXJlLkNh
cHR1cmVJTyhsb2dnZXIsIGNhcHR1cmVfc3RkaW8pOgogICAgICAgICB0cnk6CkBAIC0yNjUsNyAr
MjUyLDcgQEAgY2xhc3MgQnJvd3Nlck1hbmFnZXIob2JqZWN0KToKIAogY2xhc3MgX1J1bm5lck1h
bmFnZXJTdGF0ZShvYmplY3QpOgogICAgIGJlZm9yZV9pbml0ID0gbmFtZWR0dXBsZSgiYmVmb3Jl
X2luaXQiLCBbXSkKLSAgICBpbml0aWFsaXppbmcgPSBuYW1lZHR1cGxlKCJpbml0aWFsaXppbmdf
YnJvd3NlciIsCisgICAgaW5pdGlhbGl6aW5nID0gbmFtZWR0dXBsZSgiaW5pdGlhbGl6aW5nIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwgImdy
b3VwX21ldGFkYXRhIiwgImZhaWx1cmVfY291bnQiXSkKICAgICBydW5uaW5nID0gbmFtZWR0dXBs
ZSgicnVubmluZyIsIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwgImdyb3VwX21ldGFkYXRhIl0pCiAg
ICAgcmVzdGFydGluZyA9IG5hbWVkdHVwbGUoInJlc3RhcnRpbmciLCBbInRlc3QiLCAidGVzdF9n
cm91cCIsICJncm91cF9tZXRhZGF0YSJdKQpAQCAtMzA2LDkgKzI5MywxMSBAQCBjbGFzcyBUZXN0
UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5leGVjdXRvcl9j
bHMgPSBleGVjdXRvcl9jbHMKICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3MgPSBleGVjdXRv
cl9rd2FyZ3MKIAorICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisKICAgICAg
ICAgIyBGbGFncyB1c2VkIHRvIHNodXQgZG93biB0aGlzIHRocmVhZCBpZiB3ZSBnZXQgYSBzaWdp
bnQKICAgICAgICAgc2VsZi5wYXJlbnRfc3RvcF9mbGFnID0gc3RvcF9mbGFnCi0gICAgICAgIHNl
bGYuY2hpbGRfc3RvcF9mbGFnID0gbXVsdGlwcm9jZXNzaW5nLkV2ZW50KCkKKyAgICAgICAgc2Vs
Zi5jaGlsZF9zdG9wX2ZsYWcgPSBtcC5FdmVudCgpCiAKICAgICAgICAgc2VsZi5yZXJ1biA9IHJl
cnVuCiAgICAgICAgIHNlbGYucnVuX2NvdW50ID0gMApAQCAtMzIxLDggKzMxMCw4IEBAIGNsYXNz
IFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBhc3NlcnQgcmVj
b3JkaW5nIGlzIG5vdCBOb25lCiAgICAgICAgIHNlbGYucmVjb3JkaW5nID0gcmVjb3JkaW5nCiAK
LSAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gUXVldWUoKQotICAgICAgICBzZWxmLnJlbW90
ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAuUXVldWUo
KQorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IG1wLlF1ZXVlKCkKIAogICAgICAgICBzZWxm
LnRlc3RfcnVubmVyX3Byb2MgPSBOb25lCiAKQEAgLTMzMiw2ICszMjEsNyBAQCBjbGFzcyBUZXN0
UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKIAogICAgICAgICBzZWxmLnRlc3RfY291
bnQgPSAwCiAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCA9IDAKKyAgICAgICAgc2VsZi51
bmV4cGVjdGVkX3Bhc3NfY291bnQgPSAwCiAKICAgICAgICAgIyBUaGlzIG1heSBub3QgcmVhbGx5
IGJlIHdoYXQgd2Ugd2FudAogICAgICAgICBzZWxmLmRhZW1vbiA9IFRydWUKQEAgLTM1NCw3ICsz
NDQsOCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAg
ICAgc3BpbnMuIiIiCiAgICAgICAgIHNlbGYucmVjb3JkaW5nLnNldChbInRlc3RydW5uZXIiLCAi
c3RhcnR1cCJdKQogICAgICAgICBzZWxmLmxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJl
ZExvZ2dlcihzZWxmLnN1aXRlX25hbWUpCi0gICAgICAgIHdpdGggc2VsZi5icm93c2VyX2Nscyhz
ZWxmLmxvZ2dlciwgKipzZWxmLmJyb3dzZXJfa3dhcmdzKSBhcyBicm93c2VyOgorICAgICAgICB3
aXRoIHNlbGYuYnJvd3Nlcl9jbHMoc2VsZi5sb2dnZXIsIHJlbW90ZV9xdWV1ZT1zZWxmLmNvbW1h
bmRfcXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnNlbGYuYnJvd3Nlcl9r
d2FyZ3MpIGFzIGJyb3dzZXI6CiAgICAgICAgICAgICBzZWxmLmJyb3dzZXIgPSBCcm93c2VyTWFu
YWdlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyb3dzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmNvbW1hbmRfcXVldWUsCkBAIC00OTQsNiArNDg1LDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1h
bmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlLmZhaWx1cmVfY291bnQgKyAxKQogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3NbImdyb3VwX21ldGFkYXRh
Il0gPSBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhCisgICAgICAgICAgICBzZWxmLmV4ZWN1dG9y
X2t3YXJnc1siYnJvd3Nlcl9zZXR0aW5ncyJdID0gc2VsZi5icm93c2VyLmJyb3dzZXJfc2V0dGlu
Z3MKICAgICAgICAgICAgIHNlbGYuc3RhcnRfdGVzdF9ydW5uZXIoKQogCiAgICAgZGVmIHN0YXJ0
X3Rlc3RfcnVubmVyKHNlbGYpOgpAQCAtNTE0LDkgKzUwNiwxMSBAQCBjbGFzcyBUZXN0UnVubmVy
TWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICBleGVjdXRvcl9icm93
c2VyX2t3YXJncywKICAgICAgICAgICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8sCiAgICAgICAg
ICAgICAgICAgc2VsZi5jaGlsZF9zdG9wX2ZsYWcpCi0gICAgICAgIHNlbGYudGVzdF9ydW5uZXJf
cHJvYyA9IFByb2Nlc3ModGFyZ2V0PXN0YXJ0X3J1bm5lciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmFtZT0iVGVzdFJ1bm5lci0laSIgJSBzZWxmLm1hbmFnZXJfbnVtYmVy
KQorCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2VsZi50
ZXN0X3J1bm5lcl9wcm9jID0gbXAuUHJvY2Vzcyh0YXJnZXQ9c3RhcnRfcnVubmVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9YXJncywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJUZXN0UnVubmVyLSVpIiAl
IHNlbGYubWFuYWdlcl9udW1iZXIpCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5zdGFy
dCgpCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0IHJ1bm5lciBzdGFydGVkIikKICAg
ICAgICAgIyBOb3cgd2Ugd2FpdCBmb3IgZWl0aGVyIGFuIGluaXRfc3VjY2VlZGVkIGV2ZW50IG9y
IGFuIGluaXRfZmFpbGVkIGV2ZW50CkBAIC02MDUsNiArNTk5LDcgQEAgY2xhc3MgVGVzdFJ1bm5l
ck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAg
aWYgc2VsZi50aW1lciBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYudGltZXIuY2FuY2Vs
KCkKKwogICAgICAgICAjIFdyaXRlIHRoZSByZXN1bHQgb2YgZWFjaCBzdWJ0ZXN0CiAgICAgICAg
IGZpbGVfcmVzdWx0LCB0ZXN0X3Jlc3VsdHMgPSByZXN1bHRzCiAgICAgICAgIHN1YnRlc3RfdW5l
eHBlY3RlZCA9IEZhbHNlCkBAIC02MjUsNiArNjIwLDExIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5h
Z2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9j
b3VudCArPSAxCiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhwZWN0ZWQg
Y291bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQogICAgICAg
ICAgICAgICAgIHN1YnRlc3RfdW5leHBlY3RlZCA9IFRydWUKKworICAgICAgICAgICAgaXNfdW5l
eHBlY3RlZF9wYXNzID0gaXNfdW5leHBlY3RlZCBhbmQgcmVzdWx0LnN0YXR1cyA9PSAiUEFTUyIK
KyAgICAgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWRfcGFzczoKKyAgICAgICAgICAgICAgICBzZWxm
LnVuZXhwZWN0ZWRfcGFzc19jb3VudCArPSAxCisKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnRl
c3Rfc3RhdHVzKHRlc3QuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5z
dGF0dXMsCkBAIC02MzMsMzQgKzYzMyw0MCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJl
YWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtub3du
X2ludGVybWl0dGVudD1rbm93bl9pbnRlcm1pdHRlbnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGFjaz1yZXN1bHQuc3RhY2spCiAKLSAgICAgICAgIyBXZSBoYXZlIGEg
Y291cGxlIG9mIHN0YXR1cyBjb2RlcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHksIGJ1dCBub3Qg
ZXhwb3NlZCB0byB0aGUKLSAgICAgICAgIyB1c2VyLiBUaGVzZSBhcmUgdXNlZCB0byBpbmRpY2F0
ZSB0aGF0IHNvbWUgcG9zc2libHktYnJva2VuIHN0YXRlIHdhcyByZWFjaGVkCi0gICAgICAgICMg
YW5kIHdlIHNob3VsZCByZXN0YXJ0IHRoZSBydW5uZXIgYmVmb3JlIHRoZSBuZXh0IHRlc3QuCi0g
ICAgICAgICMgSU5URVJOQUwtRVJST1IgaW5kaWNhdGVzIGEgUHl0aG9uIGV4Y2VwdGlvbiB3YXMg
Y2F1Z2h0IGluIHRoZSBoYXJuZXNzCi0gICAgICAgICMgRVhURVJOQUwtVElNRU9VVCBpbmRpY2F0
ZXMgd2UgaGFkIHRvIGZvcmNpYmx5IGtpbGwgdGhlIGJyb3dzZXIgZnJvbSB0aGUgaGFybmVzcwot
ICAgICAgICAjIGJlY2F1c2UgdGhlIHRlc3QgZGlkbid0IHJldHVybiBhIHJlc3VsdCBhZnRlciBy
ZWFjaGluZyB0aGUgdGVzdC1pbnRlcm5hbCB0aW1lb3V0Ci0gICAgICAgIHN0YXR1c19zdWJucyA9
IHsiSU5URVJOQUwtRVJST1IiOiAiRVJST1IiLAotICAgICAgICAgICAgICAgICAgICAgICAgIkVY
VEVSTkFMLVRJTUVPVVQiOiAiVElNRU9VVCJ9CiAgICAgICAgIGV4cGVjdGVkID0gdGVzdC5leHBl
Y3RlZCgpCiAgICAgICAgIGtub3duX2ludGVybWl0dGVudCA9IHRlc3Qua25vd25faW50ZXJtaXR0
ZW50KCkKLSAgICAgICAgc3RhdHVzID0gc3RhdHVzX3N1Ym5zLmdldChmaWxlX3Jlc3VsdC5zdGF0
dXMsIGZpbGVfcmVzdWx0LnN0YXR1cykKKyAgICAgICAgc3RhdHVzID0gZmlsZV9yZXN1bHQuc3Rh
dHVzCiAKICAgICAgICAgaWYgc2VsZi5icm93c2VyLmNoZWNrX2NyYXNoKHRlc3QuaWQpIGFuZCBz
dGF0dXMgIT0gIkNSQVNIIjoKLSAgICAgICAgICAgIGlmIHRlc3QudGVzdF90eXBlID09ICJjcmFz
aHRlc3QiOgorICAgICAgICAgICAgaWYgdGVzdC50ZXN0X3R5cGUgPT0gImNyYXNodGVzdCIgb3Ig
c3RhdHVzID09ICJFWFRFUk5BTC1USU1FT1VUIjoKICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5pbmZvKCJGb3VuZCBhIGNyYXNoIGR1bXAgZmlsZTsgY2hhbmdpbmcgc3RhdHVzIHRvIENSQVNI
IikKICAgICAgICAgICAgICAgICBzdGF0dXMgPSAiQ1JBU0giCiAgICAgICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZvdW5kIGEgY3Jhc2ggZHVtcDsg
c2hvdWxkIGNoYW5nZSBzdGF0dXMgZnJvbSAlcyB0byBDUkFTSCBidXQgdGhpcyBjYXVzZXMgaW5z
dGFiaWxpdHkiICUgKHN0YXR1cywpKQogCisgICAgICAgICMgV2UgaGF2ZSBhIGNvdXBsZSBvZiBz
dGF0dXMgY29kZXMgdGhhdCBhcmUgdXNlZCBpbnRlcm5hbGx5LCBidXQgbm90IGV4cG9zZWQgdG8g
dGhlCisgICAgICAgICMgdXNlci4gVGhlc2UgYXJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBzb21l
IHBvc3NpYmx5LWJyb2tlbiBzdGF0ZSB3YXMgcmVhY2hlZAorICAgICAgICAjIGFuZCB3ZSBzaG91
bGQgcmVzdGFydCB0aGUgcnVubmVyIGJlZm9yZSB0aGUgbmV4dCB0ZXN0LgorICAgICAgICAjIElO
VEVSTkFMLUVSUk9SIGluZGljYXRlcyBhIFB5dGhvbiBleGNlcHRpb24gd2FzIGNhdWdodCBpbiB0
aGUgaGFybmVzcworICAgICAgICAjIEVYVEVSTkFMLVRJTUVPVVQgaW5kaWNhdGVzIHdlIGhhZCB0
byBmb3JjaWJseSBraWxsIHRoZSBicm93c2VyIGZyb20gdGhlIGhhcm5lc3MKKyAgICAgICAgIyBi
ZWNhdXNlIHRoZSB0ZXN0IGRpZG4ndCByZXR1cm4gYSByZXN1bHQgYWZ0ZXIgcmVhY2hpbmcgdGhl
IHRlc3QtaW50ZXJuYWwgdGltZW91dAorICAgICAgICBzdGF0dXNfc3VibnMgPSB7IklOVEVSTkFM
LUVSUk9SIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJFWFRFUk5BTC1USU1F
T1VUIjogIlRJTUVPVVQifQorICAgICAgICBzdGF0dXMgPSBzdGF0dXNfc3VibnMuZ2V0KHN0YXR1
cywgc3RhdHVzKQorCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCArPSAxCiAgICAgICAgIGlzX3Vu
ZXhwZWN0ZWQgPSBleHBlY3RlZCAhPSBzdGF0dXMgYW5kIHN0YXR1cyBub3QgaW4ga25vd25faW50
ZXJtaXR0ZW50CiAgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWQ6CiAgICAgICAgICAgICBzZWxmLnVu
ZXhwZWN0ZWRfY291bnQgKz0gMQogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhw
ZWN0ZWQgY291bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQog
CisgICAgICAgIGlzX3VuZXhwZWN0ZWRfcGFzcyA9IGlzX3VuZXhwZWN0ZWQgYW5kIHN0YXR1cyA9
PSAiT0siCisgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWRfcGFzczoKKyAgICAgICAgICAgIHNlbGYu
dW5leHBlY3RlZF9wYXNzX2NvdW50ICs9IDEKKwogICAgICAgICBpZiAiYXNzZXJ0aW9uX2NvdW50
IiBpbiBmaWxlX3Jlc3VsdC5leHRyYToKLSAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IGZp
bGVfcmVzdWx0LmV4dHJhLnBvcCgiYXNzZXJ0aW9uX2NvdW50IikKLSAgICAgICAgICAgIGlmIGFz
c2VydGlvbl9jb3VudCA+IDA6CisgICAgICAgICAgICBhc3NlcnRpb25fY291bnQgPSBmaWxlX3Jl
c3VsdC5leHRyYVsiYXNzZXJ0aW9uX2NvdW50Il0KKyAgICAgICAgICAgIGlmIGFzc2VydGlvbl9j
b3VudCBpcyBub3QgTm9uZSBhbmQgYXNzZXJ0aW9uX2NvdW50ID4gMDoKICAgICAgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5hc3NlcnRpb25fY291bnQodGVzdC5pZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KGFzc2VydGlvbl9jb3VudCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QubWluX2Fzc2VydGlvbl9j
b3VudCwKQEAgLTcyMiw4ICs3MjgsOCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRp
bmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5zdG9wX3J1bm5lcigpCiAgICAgICAgIHJldHVybiBS
dW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKHNlbGYuc3RhdGUudGVzdCwgc2VsZi5zdGF0
ZS50ZXN0X2dyb3VwLCBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhLCAwKQogCi0gICAgZGVmIGxv
ZyhzZWxmLCBhY3Rpb24sIGt3YXJncyk6Ci0gICAgICAgIGdldGF0dHIoc2VsZi5sb2dnZXIsIGFj
dGlvbikoKiprd2FyZ3MpCisgICAgZGVmIGxvZyhzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5s
b2dnZXIubG9nX3JhdyhkYXRhKQogCiAgICAgZGVmIGVycm9yKHNlbGYsIG1lc3NhZ2UpOgogICAg
ICAgICBzZWxmLmxvZ2dlci5lcnJvcihtZXNzYWdlKQpAQCAtNzYxLDIwICs3NjcsMjYgQEAgY2xh
c3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKCJ3YWl0aW5nIGZvciBydW5uZXIgcHJvY2VzcyB0byBlbmQiKQogICAgICAgICBz
ZWxmLnRlc3RfcnVubmVyX3Byb2Muam9pbigxMCkKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IkFmdGVyIGpvaW4iKQorICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAgICAg
ICAgIGlmIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5pc19hbGl2ZSgpOgogICAgICAgICAgICAgIyBU
aGlzIG1pZ2h0IGxlYWsgYSBmaWxlIGhhbmRsZSBmcm9tIHRoZSBxdWV1ZQogICAgICAgICAgICAg
c2VsZi5sb2dnZXIud2FybmluZygiRm9yY2libHkgdGVybWluYXRpbmcgcnVubmVyIHByb2Nlc3Mi
KQogICAgICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnRlcm1pbmF0ZSgpCisgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0ZXIgdGVybWluYXRpbmcgcnVubmVyIHByb2Nlc3Mi
KQogCiAgICAgICAgICAgICAjIE11bHRpcHJvY2Vzc2luZyBxdWV1ZXMgYXJlIGJhY2tlZCBieSBv
cGVyYXRpbmcgc3lzdGVtIHBpcGVzLiBJZgogICAgICAgICAgICAgIyB0aGUgcGlwZSBpbiB0aGUg
Y2hpbGQgcHJvY2VzcyBoYWQgYnVmZmVyZWQgZGF0YSBhdCB0aGUgdGltZSBvZgogICAgICAgICAg
ICAgIyBmb3JjZWQgdGVybWluYXRpb24sIHRoZSBxdWV1ZSBpcyBubyBsb25nZXIgaW4gYSB1c2Fi
bGUgc3RhdGUKICAgICAgICAgICAgICMgKHN1YnNlcXVlbnQgYXR0ZW1wdHMgdG8gcmV0cmlldmUg
aXRlbXMgbWF5IGJsb2NrIGluZGVmaW5pdGVseSkuCiAgICAgICAgICAgICAjIERpc2NhcmQgdGhl
IHBvdGVudGlhbGx5LWNvcnJ1cHRlZCBxdWV1ZSBhbmQgY3JlYXRlIGEgbmV3IG9uZS4KKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJSZWNyZWF0aW5nIGNvbW1hbmQgcXVldWUiKQorICAg
ICAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlLmNhbmNlbF9qb2luX3RocmVhZCgpCiAgICAgICAg
ICAgICBzZWxmLmNvbW1hbmRfcXVldWUuY2xvc2UoKQotICAgICAgICAgICAgc2VsZi5jb21tYW5k
X3F1ZXVlID0gUXVldWUoKQorICAgICAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAuUXVl
dWUoKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlJlY3JlYXRpbmcgcmVtb3RlIHF1
ZXVlIikKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlLmNhbmNlbF9qb2luX3RocmVhZCgp
CiAgICAgICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBzZWxm
LnJlbW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0g
bXAuUXVldWUoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IlJ1bm5lciBwcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJWkiICUgc2VsZi50ZXN0X3J1bm5lcl9w
cm9jLmV4aXRjb2RlKQogCkBAIC05MTUsMyArOTI3LDYgQEAgY2xhc3MgTWFuYWdlckdyb3VwKG9i
amVjdCk6CiAKICAgICBkZWYgdW5leHBlY3RlZF9jb3VudChzZWxmKToKICAgICAgICAgcmV0dXJu
IHN1bShtYW5hZ2VyLnVuZXhwZWN0ZWRfY291bnQgZm9yIG1hbmFnZXIgaW4gc2VsZi5wb29sKQor
CisgICAgZGVmIHVuZXhwZWN0ZWRfcGFzc19jb3VudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1
bShtYW5hZ2VyLnVuZXhwZWN0ZWRfcGFzc19jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBvb2wp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVz
dF9zYXVjZS5weQppbmRleCBlMWUxOGVjNWU5Y2QuLjMyNDVkMTI1YzUzNCAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5
CkBAIC0xLDYgKzEsNyBAQAoraW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzeXMKK2Zyb20gdW5pdHRl
c3QgaW1wb3J0IG1vY2sKIAotaW1wb3J0IG1vY2sKIGltcG9ydCBweXRlc3QKIAogZnJvbSBvcy5w
YXRoIGltcG9ydCBqb2luLCBkaXJuYW1lCkBAIC0xMSw2ICsxMiw4IEBAIHNhdWNlID0gcHl0ZXN0
LmltcG9ydG9yc2tpcCgid3B0cnVubmVyLmJyb3dzZXJzLnNhdWNlIikKIAogZnJvbSB3cHRzZXJ2
ZS5jb25maWcgaW1wb3J0IENvbmZpZ0J1aWxkZXIKIAorbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dn
ZXIoKQorCiAKIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9zdWNjZXNzKCk6CiAgICAgd2l0aCBtb2Nr
LnBhdGNoLm9iamVjdChzYXVjZS5TYXVjZUNvbm5lY3QsICJ1cGxvYWRfcHJlcnVuX2V4ZWMiKSxc
CkBAIC0yOSw3ICszMiw3IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9zdWNjZXNzKCk6CiAgICAg
ICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAgICAgICAgIHNhdWNlX2Nv
bm5lY3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0
PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdpdGggQ29uZmlnQnVpbGRl
cihsb2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgogICAg
ICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQogICAgICAgICAgICAgd2l0
aCBzYXVjZV9jb25uZWN0OgogICAgICAgICAgICAgICAgIHBhc3MKQEAgLTU5LDcgKzYyLDcgQEAg
ZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfZXhpdChyZWFkeWZpbGUsIHJldHVybmNvZGUp
OgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCiAgICAgICAgICAgICBz
YXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dz
ZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgorICAgICAgICB3aXRoIENvbmZp
Z0J1aWxkZXIobG9nZ2VyLCBicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZp
ZzoKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKICAgICAgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhzYXVjZS5TYXVjZUV4Y2VwdGlvbik6CiAgICAgICAgICAg
ICAgICAgd2l0aCBzYXVjZV9jb25uZWN0OgpAQCAtODgsNyArOTEsNyBAQCBkZWYgdGVzdF9zYXVj
ZWNvbm5lY3RfY2xlYW51cCgpOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRk
ZCIsCiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBD
b25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgor
ICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIobG9nZ2VyLCBicm93c2VyX2hvc3Q9ImV4YW1wbGUu
bmV0IikgYXMgZW52X2NvbmZpZzoKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52
X2NvbmZpZykKICAgICAgICAgICAgIHdpdGggc2F1Y2VfY29ubmVjdDoKICAgICAgICAgICAgICAg
ICBQb3Blbi5yZXR1cm5fdmFsdWUucG9sbC5yZXR1cm5fdmFsdWUgPSBOb25lCkBAIC0xMTIsNyAr
MTE1LDcgQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfbmV2ZXJfcmVhZHkoKToKICAg
ICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAogICAgICAgICAgICAgc2F1Y2Vf
Y29ubmVjdF9hcmdzPVtdKQogCi0gICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hv
c3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKKyAgICAgICAgd2l0aCBDb25maWdCdWls
ZGVyKGxvZ2dlciwgYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAg
ICAgICAgICAgICBzYXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCiAgICAgICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoc2F1Y2UuU2F1Y2VFeGNlcHRpb24pOgogICAgICAgICAgICAgICAg
IHdpdGggc2F1Y2VfY29ubmVjdDoKQEAgLTE0MSw3ICsxNDQsOCBAQCBkZWYgdGVzdF9zYXVjZWNv
bm5lY3RfdHVubmVsX2RvbWFpbnMoKToKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5
PSJkZGQiLAogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtdKQogCi0gICAgICAgIHdp
dGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IiwKKyAgICAgICAgd2l0
aCBDb25maWdCdWlsZGVyKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dz
ZXJfaG9zdD0iZXhhbXBsZS5uZXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJu
YXRlX2hvc3RzPXsiYWx0IjogImV4YW1wbGUub3JnIn0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdWJkb21haW5zPXsiYSIsICJiIn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
b3Rfc3ViZG9tYWlucz17IngiLCAieSJ9KSBhcyBlbnZfY29uZmlnOgpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
YnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5w
eQppbmRleCA2MTUwZDUwYWNmOTMuLmIyMGQzNTc2Njc0ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3Nl
cnMvdGVzdF93ZWJraXRndGsucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkK
QEAgLTEsMyArMSw0IEBACitpbXBvcnQgbG9nZ2luZwogZnJvbSBvcy5wYXRoIGltcG9ydCBqb2lu
LCBkaXJuYW1lCiAKIGltcG9ydCBweXRlc3QKQEAgLTksNiArMTAsOCBAQCBmcm9tIHdwdHJ1bm5l
ciBpbXBvcnQgZW52aXJvbm1lbnQsIHByb2R1Y3RzCiB0ZXN0X3BhdGhzID0geyIvIjogeyJ0ZXN0
c19wYXRoIjogam9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4uIiwg
Ii4uIil9fSAgIyByZXBvIHJvb3QKIGVudmlyb25tZW50LmRvX2RlbGF5ZWRfaW1wb3J0cyhOb25l
LCB0ZXN0X3BhdGhzKQogCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKIAogQGFjdGl2
ZV9wcm9kdWN0cygicHJvZHVjdCIpCiBkZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNhdGVfZG9t
YWluX2xpc3QocHJvZHVjdCk6CkBAIC0yMiwxMCArMjUsNyBAQCBkZWYgdGVzdF93ZWJraXRndGtf
Y2VydGlmaWNhdGVfZG9tYWluX2xpc3QocHJvZHVjdCk6CiAgICAgaWYgcHJvZHVjdCBub3QgaW4g
WyJlcGlwaGFueSIsICJ3ZWJraXQiLCAid2Via2l0Z3RrX21pbmlicm93c2VyIl06CiAgICAgICAg
IHB5dGVzdC5za2lwKCIlcyBkb2Vzbid0IHN1cHBvcnQgY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qi
ICUgcHJvZHVjdCkKIAotICAgIChjaGVja19hcmdzLAotICAgICB0YXJnZXRfYnJvd3Nlcl9jbHMs
IGdldF9icm93c2VyX2t3YXJncywKLSAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0X2V4ZWN1dG9y
X2t3YXJncywKLSAgICAgZW52X29wdGlvbnMsIGdldF9lbnZfZXh0cmFzLCBydW5faW5mb19leHRy
YXMpID0gcHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0KQorICAgIHByb2R1Y3RfZGF0
YSA9IHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAKICAgICBjZXJ0X2ZpbGUgPSAiL2hv
bWUvdXNlci93cHQvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbSIKICAgICB2YWxpZF9kb21haW5zX3Rl
c3QgPSBbImEuZXhhbXBsZS5vcmciLCAiYi5leGFtcGxlLm9yZyIsICJleGFtcGxlLm9yZyIsCkBA
IC00MSwxMiArNDEsMjUgQEAgZGVmIHRlc3Rfd2Via2l0Z3RrX2NlcnRpZmljYXRlX2RvbWFpbl9s
aXN0KHByb2R1Y3QpOgogICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gTm9uZQogICAg
IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKICAgICBrd2FyZ3NbInBhdXNlX29u
X3VuZXhwZWN0ZWQiXSA9IEZhbHNlCi0gICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9z
dD0iZXhhbXBsZS5uZXQiLAorICAgIGt3YXJnc1siZGVidWdfdGVzdCJdID0gRmFsc2UKKyAgICB3
aXRoIENvbmZpZ0J1aWxkZXIobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICBicm93c2Vy
X2hvc3Q9ImV4YW1wbGUubmV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRlX2hv
c3RzPXsiYWx0IjogImV4YW1wbGUub3JnIn0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmRv
bWFpbnM9eyJhIiwgImIifSwKICAgICAgICAgICAgICAgICAgICAgICAgbm90X3N1YmRvbWFpbnM9
eyJ4IiwgInkifSkgYXMgZW52X2NvbmZpZzoKIAotICAgICAgICBleGVjdXRvcl9hcmdzID0gZ2V0
X2V4ZWN1dG9yX2t3YXJncyhOb25lLCBlbnZfY29uZmlnLCBOb25lLCBOb25lLCAqKmt3YXJncykK
KyAgICAgICAgIyBXZSBkb24ndCB3YW50IHRvIGFjdHVhbGx5IGNyZWF0ZSBhIHRlc3QgZW52aXJv
bm1lbnQ7IHRoZSBnZXRfZXhlY3V0b3Jfa3dhcmdzCisgICAgICAgICMgZnVuY3Rpb24gb25seSBy
ZWFsbHkgd2FudHMgYW4gb2JqZWN0IHdpdGggdGhlIGNvbmZpZyBrZXkKKworICAgICAgICBjbGFz
cyBNb2NrRW52aXJvbm1lbnQ6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmln
KToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZworCisgICAgICAgIGV4ZWN1
dG9yX2FyZ3MgPSBwcm9kdWN0X2RhdGEuZ2V0X2V4ZWN1dG9yX2t3YXJncyhOb25lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1vY2tFbnZpcm9ubWVudChlbnZfY29uZmlnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgICAgIGFz
c2VydCgnY2FwYWJpbGl0aWVzJyBpbiBleGVjdXRvcl9hcmdzKQogICAgICAgICBhc3NlcnQoJ3dl
YmtpdGd0azpicm93c2VyT3B0aW9ucycgaW4gZXhlY3V0b3JfYXJnc1snY2FwYWJpbGl0aWVzJ10p
CiAgICAgICAgIGFzc2VydCgnY2VydGlmaWNhdGVzJyBpbiBleGVjdXRvcl9hcmdzWydjYXBhYmls
aXRpZXMnXVsnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zJ10pCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0
X2Zvcm1hdHRlcnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkKaW5kZXggNjBiMWIwYTVhODc4
Li4wNDUyNmRhNzAyYmEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X2Zvcm1hdHRlcnMucHkKQEAgLTEsMTIgKzEsOSBAQAogaW1wb3J0IGpzb24KIGltcG9y
dCB0aW1lCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0cmluZ0lPCi0KLWlt
cG9ydCBtb2NrCitmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIG1vemxvZyBpbXBvcnQg
aGFuZGxlcnMsIHN0cnVjdHVyZWRsb2cKIAotZnJvbSAuLmZvcm1hdHRlcnMgaW1wb3J0IHdwdHJl
cG9ydAogZnJvbSAuLmZvcm1hdHRlcnMud3B0c2NyZWVuc2hvdCBpbXBvcnQgV3B0c2NyZWVuc2hv
dEZvcm1hdHRlcgogZnJvbSAuLmZvcm1hdHRlcnMud3B0cmVwb3J0IGltcG9ydCBXcHRyZXBvcnRG
b3JtYXR0ZXIKIApAQCAtOTcsNDUgKzk0LDYgQEAgZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVfc3Vy
cm9nYXRlKGNhcGZkKToKICAgICBhc3NlcnQgc3VidGVzdFsibWVzc2FnZSJdID09IHUiXFUwMDAx
RjYwMSBVK2RlMGFVK2Q4M2QiCiAKIAotZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVfc3Vycm9nYXRl
X3VjczIoY2FwZmQpOgotICAgICMgU2luY2UgVUNTNCBpcyBhIHN1cGVyc2V0IG9mIFVDUzIgd2Ug
Y2FuIG1lYW5pbmdmdWxseSB0ZXN0IHRoZSBVQ1MyIGNvZGUgb24gYQotICAgICMgVUNTNCBidWls
ZCwgYnV0IG5vdCB0aGUgcmV2ZXJzZS4gSG93ZXZlciBVQ1MyIGlzIGhhcmRlciB0byBoYW5kbGUg
YW5kIFVDUzQgaXMKLSAgICAjIHRoZSBjb21tb25lc3QgKGFuZCBzZW5zaWJsZSkgY29uZmlndXJh
dGlvbiwgc28gdGhhdCdzIE9LLgotICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKLSAgICBsb2dnZXIg
PSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRlc3RfYSIpCi0gICAgbG9nZ2VyLmFk
ZF9oYW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBXcHRyZXBvcnRGb3JtYXR0
ZXIoKSkpCi0KLSAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KHdwdHJlcG9ydCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdzdXJyb2dhdGVfcmVwbGFjZW1lbnQnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd3B0cmVwb3J0LlN1cnJvZ2F0ZVJlcGxhY2VtZW50VWNzMigpKToKLSAg
ICAgICAgIyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgotICAgICAgICBsb2dnZXIuc3VpdGVfc3Rh
cnQoWyJ0ZXN0LWlkLTEiXSkgICMgbm8gcnVuX2luZm8gYXJnIQotICAgICAgICBsb2dnZXIudGVz
dF9zdGFydCgidGVzdC1pZC0xIikKLSAgICAgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0LWlk
LTEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidGVzdD11Ik5hbWUgd2l0aCBzdXJy
b2dhdGVcdUQ4MDAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPSJGQUlMIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9dSJcVTAwMDFGNjAxIFx1REUwQVx1
RDgzRCBcdUQ4M0RcdURFMEEiKQotICAgICAgICBsb2dnZXIudGVzdF9lbmQoInRlc3QtaWQtMSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IlBBU1MiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZT11Ilx1REUwQVx1RDgzRCBcdUQ4M0RcdURFMEEgXFUwMDAxRjYwMSIp
Ci0gICAgICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQotCi0gICAgIyBjaGVjayBub3RoaW5nIGdvdCBv
dXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgotICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBl
eGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQotICAgIGNhcHR1cmVkID0gY2Fw
ZmQucmVhZG91dGVycigpCi0gICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgotICAgIGFzc2Vy
dCBjYXB0dXJlZC5lcnIgPT0gIiIKLQotICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2Yg
dGhlIGZvcm1hdHRlcgotICAgIG91dHB1dC5zZWVrKDApCi0gICAgb3V0cHV0X29iaiA9IGpzb24u
bG9hZChvdXRwdXQpCi0gICAgdGVzdCA9IG91dHB1dF9vYmpbInJlc3VsdHMiXVswXQotICAgIGFz
c2VydCB0ZXN0WyJtZXNzYWdlIl0gPT0gdSJVK2RlMGFVK2Q4M2QgXFUwMDAxZjYwYSBcVTAwMDFG
NjAxIgotICAgIHN1YnRlc3QgPSB0ZXN0WyJzdWJ0ZXN0cyJdWzBdCi0gICAgYXNzZXJ0IHN1YnRl
c3RbIm5hbWUiXSA9PSB1Ik5hbWUgd2l0aCBzdXJyb2dhdGVVK2Q4MDAiCi0gICAgYXNzZXJ0IHN1
YnRlc3RbIm1lc3NhZ2UiXSA9PSB1IlxVMDAwMUY2MDEgVStkZTBhVStkODNkIFxVMDAwMWY2MGEi
Ci0KLQogZGVmIHRlc3Rfd3B0cmVwb3J0X2tub3duX2ludGVybWl0dGVudChjYXBmZCk6CiAgICAg
b3V0cHV0ID0gU3RyaW5nSU8oKQogICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJl
ZExvZ2dlcigidGVzdF9hIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90
ZXN0X3Byb2R1Y3RzLnB5CmluZGV4IDVkMmJjZjA3NWQwZi4uMTIwYzdlNzJjNjNmIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkKQEAgLTEs
NiArMSw2IEBACiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRpcm5hbWUKK2Zyb20gdW5pdHRl
c3QgaW1wb3J0IG1vY2sKIAotaW1wb3J0IG1vY2sKIGltcG9ydCBweXRlc3QKIAogZnJvbSAuYmFz
ZSBpbXBvcnQgYWxsX3Byb2R1Y3RzLCBhY3RpdmVfcHJvZHVjdHMKQEAgLTE0LDcgKzE0LDcgQEAg
ZW52aXJvbm1lbnQuZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRlc3RfcGF0aHMpCiBAYWN0aXZl
X3Byb2R1Y3RzKCJwcm9kdWN0IikKIGRlZiB0ZXN0X2xvYWRfYWN0aXZlX3Byb2R1Y3QocHJvZHVj
dCk6CiAgICAgIiIidGVzdCB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IGxvYWQgdGhlIHByb2R1Y3Qgb2Yg
dGhlIGN1cnJlbnQgdGVzdGVudiIiIgotICAgIHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJv
ZHVjdCkKKyAgICBwcm9kdWN0cy5Qcm9kdWN0KHt9LCBwcm9kdWN0KQogICAgICMgdGVzdCBwYXNz
ZXMgaWYgaXQgZG9lc24ndCB0aHJvdwogCiAKQEAgLTIyLDcgKzIyLDcgQEAgZGVmIHRlc3RfbG9h
ZF9hY3RpdmVfcHJvZHVjdChwcm9kdWN0KToKIGRlZiB0ZXN0X2xvYWRfYWxsX3Byb2R1Y3RzKHBy
b2R1Y3QpOgogICAgICIiInRlc3QgZXZlcnkgcHJvZHVjdCBlaXRoZXIgbG9hZHMgb3IgdGhyb3dz
IEltcG9ydEVycm9yIiIiCiAgICAgdHJ5OgotICAgICAgICBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qo
e30sIHByb2R1Y3QpCisgICAgICAgIHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAgICAg
ZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICBwYXNzCiAKQEAgLTMxLDI2ICszMSwyNCBAQCBk
ZWYgdGVzdF9sb2FkX2FsbF9wcm9kdWN0cyhwcm9kdWN0KToKICAgICAic2F1Y2UiOiBweXRlc3Qu
bWFyay5za2lwKCJuZWVkcyBlbnYgZXh0cmFzIGt3YXJncyIpLAogfSkKIGRlZiB0ZXN0X3NlcnZl
cl9zdGFydF9jb25maWcocHJvZHVjdCk6Ci0gICAgKGNoZWNrX2FyZ3MsCi0gICAgIHRhcmdldF9i
cm93c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdzLAotICAgICBleGVjdXRvcl9jbGFzc2VzLCBn
ZXRfZXhlY3V0b3Jfa3dhcmdzLAotICAgICBlbnZfb3B0aW9ucywgZ2V0X2Vudl9leHRyYXMsIHJ1
bl9pbmZvX2V4dHJhcykgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisgICAg
cHJvZHVjdF9kYXRhID0gcHJvZHVjdHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKIAotICAgIGVudl9l
eHRyYXMgPSBnZXRfZW52X2V4dHJhcygpCisgICAgZW52X2V4dHJhcyA9IHByb2R1Y3RfZGF0YS5n
ZXRfZW52X2V4dHJhcygpCiAKICAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KGVudmlyb25tZW50
LnNlcnZlLCAic3RhcnQiKSBhcyBzdGFydDoKICAgICAgICAgd2l0aCBlbnZpcm9ubWVudC5UZXN0
RW52aXJvbm1lbnQodGVzdF9wYXRocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFs
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfb3B0aW9ucywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InR5cGUiOiAibm9uZSJ9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfZXh0cmFzKToKICAg
ICAgICAgICAgIHN0YXJ0LmFzc2VydF9jYWxsZWRfb25jZSgpCiAgICAgICAgICAgICBhcmdzID0g
c3RhcnQuY2FsbF9hcmdzCi0gICAgICAgICAgICBjb25maWcgPSBhcmdzWzBdWzBdCi0gICAgICAg
ICAgICBpZiAic2VydmVyX2hvc3QiIGluIGVudl9vcHRpb25zOgotICAgICAgICAgICAgICAgIGFz
c2VydCBjb25maWdbInNlcnZlcl9ob3N0Il0gPT0gZW52X29wdGlvbnNbInNlcnZlcl9ob3N0Il0K
KyAgICAgICAgICAgIGNvbmZpZyA9IGFyZ3NbMF1bMV0KKyAgICAgICAgICAgIGlmICJzZXJ2ZXJf
aG9zdCIgaW4gcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBjb25maWdbInNlcnZlcl9ob3N0Il0gPT0gcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zWyJzZXJ2
ZXJfaG9zdCJdCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGFzc2VydCBjb25m
aWdbInNlcnZlcl9ob3N0Il0gPT0gY29uZmlnWyJicm93c2VyX2hvc3QiXQogICAgICAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29uZmlnWyJiaW5kX2FkZHJlc3MiXSwgYm9vbCkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQppbmRleCAz
OTRkMmEwMDE3N2IuLjc3Y2Q4NWI4MjBkNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVy
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQpAQCAtMSw1ICsxLDMgQEAKLWZyb20gX19m
dXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwotCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMK
IGltcG9ydCB0ZW1wZmlsZQpAQCAtOCw2ICs2LDcgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIG1v
emxvZyBpbXBvcnQgc3RydWN0dXJlZAogZnJvbSAuLnRlc3Rsb2FkZXIgaW1wb3J0IFRlc3RGaWx0
ZXIgYXMgRmlsdGVyLCBUZXN0TG9hZGVyIGFzIExvYWRlcgorZnJvbSAuLnRlc3Rsb2FkZXIgaW1w
b3J0IHJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUKIGZyb20gLnRlc3Rfd3B0dGVzdCBpbXBvcnQgbWFr
ZV9tb2NrX21hbmlmZXN0CiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCkBAIC01
OCw2ICs1NywyOCBAQCBkZWYgdGVzdF9sb2FkZXJfaDJfdGVzdHMoKToKICAgICBhc3NlcnQgbGVu
KGxvYWRlci5kaXNhYmxlZF90ZXN0c1sidGVzdGhhcm5lc3MiXSkgPT0gMQogICAgIGFzc2VydCBs
b2FkZXIuZGlzYWJsZWRfdGVzdHNbInRlc3RoYXJuZXNzIl1bMF0udXJsID09ICIvYS9iYXIuaDIu
aHRtbCIKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAorICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0iTmFtZWRUZW1wb3JhcnlGaWxlIGNhbm5vdCBiZSByZW9w
ZW5lZCBvbiBXaW4zMiIpCitkZWYgdGVzdF9pbmNsdWRlX2ZpbGUoKToKKyAgICB0ZXN0X2Nhc2Vz
ID0gIiIiCisjIFRoaXMgaXMgYSBjb21tZW50CisvZm9vL2Jhci1lcnJvci5odHRwcy5odG1sCisv
Zm9vL2Jhci1zdWNjZXNzLmh0dHBzLmh0bWwKKy9mb28vaWRsaGFybmVzcy5odHRwcy5hbnkuaHRt
bAorL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXIuaHRtbAorICAgICIiIgorCisgICAg
d2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUobW9kZT0id3QiKSBhcyBmOgorICAgICAg
ICBmLndyaXRlKHRlc3RfY2FzZXMpCisgICAgICAgIGYuZmx1c2goKQorCisgICAgICAgIGluY2x1
ZGUgPSByZWFkX2luY2x1ZGVfZnJvbV9maWxlKGYubmFtZSkKKworICAgICAgICBhc3NlcnQgbGVu
KGluY2x1ZGUpID09IDQKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2Jhci1lcnJvci5odHRwcy5odG1s
IiBpbiBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9iYXItc3VjY2Vzcy5odHRwcy5odG1s
IiBpbiBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS5o
dG1sIiBpbiBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFu
eS53b3JrZXIuaHRtbCIgaW4gaW5jbHVkZQogCiBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRm
b3JtID09ICJ3aW4zMiIsCiAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJOYW1lZFRlbXBvcmFy
eUZpbGUgY2Fubm90IGJlIHJlb3BlbmVkIG9uIFdpbjMyIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rf
dXBkYXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKaW5kZXggYTFiYThkZTI4NzgwLi44MDRmNzUx
MjUxODAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRl
LnB5CkBAIC0xLDExICsxLDEyIEBACiBpbXBvcnQganNvbgotaW1wb3J0IG1vY2sKIGltcG9ydCBv
cwotaW1wb3J0IHB5dGVzdAogaW1wb3J0IHN5cwogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTworZnJv
bSB1bml0dGVzdCBpbXBvcnQgbW9jaworCitpbXBvcnQgcHl0ZXN0CiAKLWZyb20gLi4gaW1wb3J0
IG1ldGFkYXRhLCBtYW5pZmVzdHVwZGF0ZQorZnJvbSAuLiBpbXBvcnQgbWV0YWRhdGEsIG1hbmlm
ZXN0dXBkYXRlLCB3cHRtYW5pZmVzdAogZnJvbSAuLnVwZGF0ZS51cGRhdGUgaW1wb3J0IFdQVFVw
ZGF0ZQogZnJvbSAuLnVwZGF0ZS5iYXNlIGltcG9ydCBTdGVwUnVubmVyLCBTdGVwCiBmcm9tIG1v
emxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZywgaGFuZGxlcnMsIGZvcm1hdHRlcnMKQEAgLTQ0Miw3
ICs0NDMsNyBAQCBkZWYgdGVzdF91cGRhdGVfcmVvcmRlcl9leHBlY3RlZCgpOgogCiAgICAgYXNz
ZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0Lmdl
dF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAgICAgImV4cGVjdGVkIiwgZGVm
YXVsdF9ydW5faW5mbykgPT0gWyJGQUlMIiwgIlBBU1MiXQorICAgICAgICAiZXhwZWN0ZWQiLCBk
ZWZhdWx0X3J1bl9pbmZvKSA9PSBbIlBBU1MiLCAiRkFJTCJdCiAKIAogZGVmIHRlc3RfdXBkYXRl
X2FuZF9wcmVzZXJ2ZV91bmNoYW5nZWRfZXhwZWN0ZWRfaW50ZXJtaXR0ZW50KCk6CkBAIC0xNjcy
LDMgKzE2NzMsMTA1IEBAIGRlZiB0ZXN0X3VwZGF0ZV9waWNrbGUoKToKICAgICB3cHR1cGRhdGUg
PSBXUFRVcGRhdGUobG9nZ2VyLCAqKmFyZ3MyKQogICAgIHdwdHVwZGF0ZSA9IFdQVFVwZGF0ZShs
b2dnZXIsIHJ1bm5lcl9jbHM9VXBkYXRlUnVubmVyLCAqKmFyZ3MpCiAgICAgd3B0dXBkYXRlLnJ1
bigpCisKKworZGVmIHRlc3RfdXBkYXRlX3NlcmlhbGl6ZV9xdW90ZWQoKToKKyAgICB0ZXN0cyA9
IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAg
ICAgICAgIGIiIiJbdGVzdC5odG1dCisgIGV4cGVjdGVkOiAiRVJST1IiCisgIFt0ZXN0MV0KKyAg
ICBleHBlY3RlZDoKKyAgICAgaWYgb3MgPT0gImxpbnV4IjogWyJQQVNTIiwgIkZBSUwiXQorICAg
ICAiRVJST1IiCisiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIs
IHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1
cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAg
ICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorICAgIGxvZ18xID0gc3VpdGVf
bG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50Ijog
WyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVz
IjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImxpbnV4
In0pCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3Qi
OiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiRVJST1IifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJ3
aW4ifSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIs
IGZ1bGxfdXBkYXRlPVRydWUsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworCisgICAgbWFu
aWZlc3Rfc3RyID0gd3B0bWFuaWZlc3Quc2VyaWFsaXplKHVwZGF0ZWRbMF1bMV0ubm9kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9lbXB0eV9kYXRhPVRy
dWUpCisgICAgYXNzZXJ0IG1hbmlmZXN0X3N0ciA9PSAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0K
KyAgICBleHBlY3RlZDoKKyAgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlMXQorICAg
ICAgRVJST1IKKyIiIgorCisKK2RlZiB0ZXN0X3VwZGF0ZV9zZXJpYWxpemVfdW5xdW90ZWQoKToK
KyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVz
cyIsCisgICAgICAgICAgICAgIGIiIiJbdGVzdC5odG1dCisgIGV4cGVjdGVkOiBFUlJPUgorICBb
dGVzdDFdCisgICAgZXhwZWN0ZWQ6CisgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlM
XQorICAgICBFUlJPUgorIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3Rh
cnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9z
dGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAg
ICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1IiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkKKyAgICBsb2dfMSA9IHN1
aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAg
ICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVu
dCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJs
aW51eCJ9KQorICAgIGxvZ18yID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0
ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3Qi
OiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0
ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3RhdHVzIjogIkVSUk9SIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3Mi
OiAid2luIn0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEsIGxv
Z18yLCBmdWxsX3VwZGF0ZT1UcnVlLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUpCisKKworICAg
IG1hbmlmZXN0X3N0ciA9IHdwdG1hbmlmZXN0LnNlcmlhbGl6ZSh1cGRhdGVkWzBdWzFdLm5vZGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBfZW1wdHlfZGF0
YT1UcnVlKQorICAgIGFzc2VydCBtYW5pZmVzdF9zdHIgPT0gIiIiW3Rlc3QuaHRtXQorICBbdGVz
dDFdCisgICAgZXhwZWN0ZWQ6CisgICAgICBpZiBvcyA9PSAibGludXgiOiBbUEFTUywgRkFJTF0K
KyAgICAgIEVSUk9SCisiIiIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rl
c3Rfd3B0dGVzdC5weQppbmRleCA0ZWVlOWNjYjFiNjkuLjU5YWE2MzZhOTAzNyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvdGVzdF93cHR0ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weQpAQCAtMSw1ICsx
LDUgQEAKLWltcG9ydCBtb2NrCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitmcm9tIHVuaXR0ZXN0
IGltcG9ydCBtb2NrCiAKIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0IGFzIHdwdG1hbmlm
ZXN0CiBmcm9tIG1hbmlmZXN0Lml0ZW0gaW1wb3J0IFRlc3RoYXJuZXNzVGVzdCwgUmVmVGVzdApA
QCAtMjAyLDE0ICsyMDIsMTYgQEAgZGVmIHRlc3RfZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1cygp
OgogCiAKIGRlZiB0ZXN0X21ldGFkYXRhX2Z1enp5KCk6Ci0gICAgaXRlbSA9IFJlZlRlc3QoIi4i
LCAiYS9mdXp6eS5odG1sIiwgIi8iLCAiYS9mdXp6eS5odG1sIiwKKyAgICBpdGVtID0gUmVmVGVz
dCh0ZXN0c19yb290PSIuIiwKKyAgICAgICAgICAgICAgICAgICBwYXRoPSJhL2Z1enp5Lmh0bWwi
LAorICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIvIiwKKyAgICAgICAgICAgICAgICAgICB1
cmw9ImEvZnV6enkuaHRtbCIsCiAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcz1bWyIvYS9m
dXp6eS1yZWYuaHRtbCIsICI9PSJdXSwKICAgICAgICAgICAgICAgICAgICBmdXp6eT1bW1siL2Ev
ZnV6enkuaHRtbCIsICcvYS9mdXp6eS1yZWYuaHRtbCcsICc9PSddLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW1syLCAzXSwgWzEwLCAxNV1dXV0pCiAgICAgcyA9IG1vY2suTW9jayhyZWxf
cGF0aD0iYS9mdXp6eS5odG1sIiwgcmVsX3BhdGhfcGFydHM9KCJhIiwgImZ1enp5Lmh0bWwiKSwg
aGFzaD0iMCIqNDApCiAgICAgcy5tYW5pZmVzdF9pdGVtcyA9IG1vY2suTW9jayhyZXR1cm5fdmFs
dWU9KGl0ZW0uaXRlbV90eXBlLCBbaXRlbV0pKQogCi0KICAgICBtYW5pZmVzdCA9IHdwdG1hbmlm
ZXN0Lk1hbmlmZXN0KCIiKQogCiAgICAgdHJlZSwgc291cmNlZmlsZV9tb2NrID0gdHJlZV9hbmRf
c291cmNlZmlsZV9tb2NrcyhbKHMsIE5vbmUsIFRydWUpXSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNl
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdXBkYXRlL2Jhc2UucHkKaW5kZXggNTQ3ODA4ZTUyOTMzLi40N2VhN2ZmYjQxZjAgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3VwZGF0ZS9iYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNlLnB5CkBAIC0xLDkgKzEsMTEgQEAKK2Zy
b20gdHlwaW5nIGltcG9ydCBDbGFzc1ZhciwgTGlzdCwgVHlwZQorCiBleGl0X3VuY2xlYW4gPSBv
YmplY3QoKQogZXhpdF9jbGVhbiA9IG9iamVjdCgpCiAKIAogY2xhc3MgU3RlcChvYmplY3QpOgot
ICAgIHByb3ZpZGVzID0gW10KKyAgICBwcm92aWRlcyA9IFtdICAjIHR5cGU6IENsYXNzVmFyW0xp
c3Rbc3RyXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgogICAgICAgICBzZWxm
LmxvZ2dlciA9IGxvZ2dlcgpAQCAtNDUsNyArNDcsNyBAQCBjbGFzcyBTdGVwKG9iamVjdCk6CiAK
IAogY2xhc3MgU3RlcFJ1bm5lcihvYmplY3QpOgotICAgIHN0ZXBzID0gW10KKyAgICBzdGVwcyA9
IFtdICAjIHR5cGU6IENsYXNzVmFyW0xpc3RbVHlwZVtTdGVwXV1dCiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBzdGF0ZSk6CiAgICAgICAgICIiIkNsYXNzIHRoYXQgcnVucyBhIHNw
ZWNpZmllZCBzZXJpZXMgb2YgU3RlcHMgd2l0aCBhIGNvbW1vbiBTdGF0ZSIiIgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL3N0YXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CmluZGV4IGJkYjIzZmVkOTllMS4uYTUyNmMy
NGM5NTlmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CkBAIC0x
LDUgKzEsNSBAQAogaW1wb3J0IG9zCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1BpY2tsZSBhcyBw
aWNrbGUgICMgbm9xYTogTjgxMworaW1wb3J0IHBpY2tsZQogCiBoZXJlID0gb3MucGF0aC5hYnNw
YXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCiAKQEAgLTk3LDcgKzk3LDcgQEAgY2xhc3Mg
U2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBub3Qg
b3MucGF0aC5pc2ZpbGUoY2xzLmZpbGVuYW1lKToKICAgICAgICAgICAgICAgICByZXR1cm4gTm9u
ZQotICAgICAgICAgICAgd2l0aCBvcGVuKGNscy5maWxlbmFtZSkgYXMgZjoKKyAgICAgICAgICAg
IHdpdGggb3BlbihjbHMuZmlsZW5hbWUsICJyYiIpIGFzIGY6CiAgICAgICAgICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgICAgICAgICBydiA9IHBpY2tsZS5sb2FkKGYpCiAgICAgICAgICAgICAg
ICAgICAgIGxvZ2dlci5kZWJ1ZygiTG9hZGluZyBkYXRhICVyIiAlIChydi5fZGF0YSwpKQpAQCAt
MTExLDcgKzExMSw3IEBAIGNsYXNzIFNhdmVkU3RhdGUoQmFzZVN0YXRlKToKIAogICAgIGRlZiBz
YXZlKHNlbGYpOgogICAgICAgICAiIiJXcml0ZSB0aGUgc3RhdGUgdG8gZGlzayIiIgotICAgICAg
ICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAgICAgICB3aXRoIG9wZW4o
c2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIHBpY2tsZS5kdW1wKHNlbGYs
IGYpCiAKICAgICBkZWYgY2xlYXIoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS9zeW5jLnB5CmluZGV4IGY4Nzg3NTJmNDUxNC4uMmM5ODM0YzY3MmQ2IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRh
dGUvc3luYy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQpAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBVcGRh
dGVDaGVja291dChTdGVwKToKICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5sb2NhbF9i
cmFuY2gpCiAgICAgICAgIHN5bmNfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChzeW5jX3RyZWUucm9v
dCkKICAgICAgICAgaWYgc3luY19wYXRoIG5vdCBpbiBzeXMucGF0aDoKLSAgICAgICAgICAgIGZy
b20gdXBkYXRlIGltcG9ydCBzZXR1cF9wYXRocworICAgICAgICAgICAgZnJvbSAudXBkYXRlIGlt
cG9ydCBzZXR1cF9wYXRocwogICAgICAgICAgICAgc2V0dXBfcGF0aHMoc3luY19wYXRoKQogCiAg
ICAgZGVmIHJlc3RvcmUoc2VsZiwgc3RhdGUpOgpAQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBVcGRh
dGVNYW5pZmVzdChTdGVwKToKICAgICBwcm92aWRlcyA9IFsibWFuaWZlc3RfcGF0aCIsICJ0ZXN0
X21hbmlmZXN0Il0KIAogICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgotICAgICAgICBmcm9t
IG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdAorICAgICAgICBmcm9tIG1hbmlmZXN0IGltcG9ydCBt
YW5pZmVzdCAgIyB0eXBlOiBpZ25vcmUKICAgICAgICAgc3RhdGUubWFuaWZlc3RfcGF0aCA9IG9z
LnBhdGguam9pbihzdGF0ZS5tZXRhZGF0YV9wYXRoLCAiTUFOSUZFU1QuanNvbiIpCiAgICAgICAg
IHN0YXRlLnRlc3RfbWFuaWZlc3QgPSBtYW5pZmVzdC5sb2FkX2FuZF91cGRhdGUoc3RhdGUuc3lu
Y1sicGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRlLm1hbmlmZXN0X3BhdGgsCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdHJlZS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Vw
ZGF0ZS90cmVlLnB5CmluZGV4IGYzNjI3NzBmZjE2ZC4uMmY0M2JhY2QxNWJmIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91
cGRhdGUvdHJlZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdHJlZS5weQpAQCAtMyw4ICszLDYgQEAgaW1wb3J0IHJl
CiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRlbXBmaWxlCiAKLWZyb20gc2l4Lm1vdmVzIGlt
cG9ydCByYW5nZQotCiBmcm9tIC4uIGltcG9ydCB2Y3MKIGZyb20gLi52Y3MgaW1wb3J0IGdpdCwg
aGcKIApAQCAtODcsNyArODUsNyBAQCBjbGFzcyBIZ1RyZWUob2JqZWN0KToKIAogICAgIEBwcm9w
ZXJ0eQogICAgIGRlZiBpc19jbGVhbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuaGcoInN0
YXR1cyIpLnN0cmlwKCkgPT0gIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuaGcoInN0YXR1cyIpLnN0
cmlwKCkgPT0gYiIiCiAKICAgICBkZWYgYWRkX25ldyhzZWxmLCBwcmVmaXg9Tm9uZSk6CiAgICAg
ICAgIGlmIHByZWZpeCBpcyBub3QgTm9uZToKQEAgLTEwNSw3ICsxMDMsNyBAQCBjbGFzcyBIZ1Ry
ZWUob2JqZWN0KToKICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9y
OgogICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIHBhdGNoX25hbWVzID0gW2l0ZW0uc3RyaXAo
KSBmb3IgaXRlbSBpbiBzZWxmLmhnKCJxc2VyaWVzIikuc3BsaXQoIlxuIikgaWYgaXRlbS5zdHJp
cCgpXQorICAgICAgICBwYXRjaF9uYW1lcyA9IFtpdGVtLnN0cmlwKCkgZm9yIGl0ZW0gaW4gc2Vs
Zi5oZygicXNlcmllcyIpLnNwbGl0KGIiXG4iKSBpZiBpdGVtLnN0cmlwKCldCiAKICAgICAgICAg
c3VmZml4ID0gMAogICAgICAgICB0ZXN0X25hbWUgPSBwYXRjaF9uYW1lCkBAIC0xNDIsNyArMTQw
LDcgQEAgY2xhc3MgR2l0VHJlZShvYmplY3QpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJv
b3Q9Tm9uZSwgbG9nX2Vycm9yPVRydWUpOgogICAgICAgICBpZiByb290IGlzIE5vbmU6Ci0gICAg
ICAgICAgICByb290ID0gZ2l0KCJyZXYtcGFyc2UiLCAiLS1zaG93LXRvcGxldmVsIiwgbG9nX2Vy
cm9yPWxvZ19lcnJvcikuc3RyaXAoKQorICAgICAgICAgICAgcm9vdCA9IGdpdCgicmV2LXBhcnNl
IiwgIi0tc2hvdy10b3BsZXZlbCIsIGxvZ19lcnJvcj1sb2dfZXJyb3IpLnN0cmlwKCkuZGVjb2Rl
KCd1dGYtOCcpCiAgICAgICAgIHNlbGYucm9vdCA9IHJvb3QKICAgICAgICAgc2VsZi5naXQgPSB2
Y3MuYmluZF90b19yZXBvKGdpdCwgc2VsZi5yb290LCBsb2dfZXJyb3I9bG9nX2Vycm9yKQogICAg
ICAgICBzZWxmLm1lc3NhZ2UgPSBOb25lCkBAIC0xNzgsNyArMTc2LDcgQEAgY2xhc3MgR2l0VHJl
ZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2NsZWFuKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5naXQoInN0YXR1cyIpLnN0cmlwKCkgPT0gIiIKKyAgICAgICAgcmV0
dXJuIHNlbGYuZ2l0KCJzdGF0dXMiKS5zdHJpcCgpID09IGIiIgogCiAgICAgZGVmIGFkZF9uZXco
c2VsZiwgcHJlZml4PU5vbmUpOgogICAgICAgICAiIiJBZGQgZmlsZXMgdG8gdGhlIHN0YWdpbmcg
YXJlYS4KQEAgLTIwMyw3ICsyMDEsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAg
ICAgICBmLnNlZWsoMCkKICAgICAgICAgICAgIGlnbm9yZWRfZmlsZXMgPSBzeW5jX3RyZWUuZ2l0
KCJjaGVjay1pZ25vcmUiLCAiLS1uby1pbmRleCIsICItLXN0ZGluIiwgIi16Iiwgc3RkaW49ZikK
ICAgICAgICAgYXJncyA9IFtdCi0gICAgICAgIGZvciBlbnRyeSBpbiBpZ25vcmVkX2ZpbGVzLnNw
bGl0KCdcMCcpOgorICAgICAgICBmb3IgZW50cnkgaW4gaWdub3JlZF9maWxlcy5kZWNvZGUoJ3V0
Zi04Jykuc3BsaXQoJ1wwJyk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZChvcy5wYXRoLmpvaW4o
cHJlZml4LCBlbnRyeSkpCiAgICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgICBzZWxmLmdpdCgi
YWRkIiwgIi0tZm9yY2UiLCAqYXJncykKQEAgLTIxOSw3ICsyMTcsNyBAQCBjbGFzcyBHaXRUcmVl
KG9iamVjdCk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZChyZWZfZmlsdGVyKQogICAgICAgICBk
YXRhID0gc2VsZi5naXQoInNob3ctcmVmIiwgKmFyZ3MpCiAgICAgICAgIHJ2ID0gW10KLSAgICAg
ICAgZm9yIGxpbmUgaW4gZGF0YS5zcGxpdCgiXG4iKToKKyAgICAgICAgZm9yIGxpbmUgaW4gZGF0
YS5zcGxpdChiIlxuIik6CiAgICAgICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBzaGExLCByZWYgPSBsaW5lLnNwbGl0KCkK
QEAgLTIzNyw3ICsyMzUsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgICAgICBh
cmdzLmFwcGVuZChyZWZfZmlsdGVyKQogICAgICAgICBkYXRhID0gc2VsZi5naXQoImxzLXJlbW90
ZSIsIHJlbW90ZSwgKmFyZ3MpCiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAgZm9yIGxpbmUgaW4g
ZGF0YS5zcGxpdCgiXG4iKToKKyAgICAgICAgZm9yIGxpbmUgaW4gZGF0YS5zcGxpdChiIlxuIik6
CiAgICAgICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgogICAgICAgICAgICAgICAgIGNvbnRp
bnVlCiAgICAgICAgICAgICBzaGExLCByZWYgPSBsaW5lLnNwbGl0KCkKQEAgLTI1MCw4ICsyNDgs
OCBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgIDpwYXJhbSByZW1vdGU6IHRoZSBy
ZW1vdGUgVVJMCiAgICAgICAgIDpwYXJhbSBicmFuY2g6IHRoZSBicmFuY2ggbmFtZSIiIgogICAg
ICAgICBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZW1vdGUocmVtb3RlLCBicmFuY2gpOgot
ICAgICAgICAgICAgaWYgcmVmID09ICJyZWZzL2hlYWRzLyVzIiAlIGJyYW5jaDoKLSAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5jb21taXRfY2xzKHNlbGYsIHNoYTEpCisgICAgICAgICAgICBp
ZiByZWYuZGVjb2RlKCd1dGYtOCcpID09ICJyZWZzL2hlYWRzLyVzIiAlIGJyYW5jaDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5jb21taXRfY2xzKHNlbGYsIHNoYTEuZGVjb2RlKCd1dGYt
OCcpKQogICAgICAgICBhc3NlcnQgRmFsc2UKIAogICAgIGRlZiBjcmVhdGVfcGF0Y2goc2VsZiwg
cGF0Y2hfbmFtZSwgbWVzc2FnZSk6CkBAIC0yOTksOCArMjk3LDggQEAgY2xhc3MgR2l0VHJlZShv
YmplY3QpOgogCiAgICAgICAgIGFyZ3MgPSBbXQogICAgICAgICBpZiBicmFuY2g6Ci0gICAgICAg
ICAgICBicmFuY2hlcyA9IFtyZWZbbGVuKCJyZWZzL2hlYWRzLyIpOl0gZm9yIHNoYTEsIHJlZiBp
biBzZWxmLmxpc3RfcmVmcygpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiByZWYuc3RhcnRz
d2l0aCgicmVmcy9oZWFkcy8iKV0KKyAgICAgICAgICAgIGJyYW5jaGVzID0gW3JlZltsZW4oInJl
ZnMvaGVhZHMvIik6XS5kZWNvZGUoJ3V0Zi04JykgZm9yIHNoYTEsIHJlZiBpbiBzZWxmLmxpc3Rf
cmVmcygpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWYuc3RhcnRzd2l0aChiInJlZnMv
aGVhZHMvIildCiAgICAgICAgICAgICBicmFuY2ggPSBnZXRfdW5pcXVlX25hbWUoYnJhbmNoZXMs
IGJyYW5jaCkKIAogICAgICAgICAgICAgYXJncyArPSBbIi1iIiwgYnJhbmNoXQpAQCAtMzM2LDgg
KzMzNCw4IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgcnYgPSBbXQogCiAgICAg
ICAgIGZvciByZXBvX3BhdGggaW4gcmVwb19wYXRoczoKLSAgICAgICAgICAgIHBhdGhzID0gdmNz
LmdpdCgibHMtdHJlZSIsICItciIsICItLW5hbWUtb25seSIsICJIRUFEIiwgcmVwbz1yZXBvX3Bh
dGgpLnNwbGl0KCJcbiIpCi0gICAgICAgICAgICBydi5leHRlbmQob3MucGF0aC5yZWxwYXRoKG9z
LnBhdGguam9pbihyZXBvX3BhdGgsIGl0ZW0pLCBzZWxmLnJvb3QpIGZvciBpdGVtIGluIHBhdGhz
CisgICAgICAgICAgICBwYXRocyA9IHZjcy5naXQoImxzLXRyZWUiLCAiLXIiLCAiLS1uYW1lLW9u
bHkiLCAiSEVBRCIsIHJlcG89cmVwb19wYXRoKS5zcGxpdChiIlxuIikKKyAgICAgICAgICAgIHJ2
LmV4dGVuZChvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKHJlcG9fcGF0aCwgaXRlbS5kZWNv
ZGUoJ3V0Zi04JykpLCBzZWxmLnJvb3QpIGZvciBpdGVtIGluIHBhdGhzCiAgICAgICAgICAgICAg
ICAgICAgICAgaWYgaXRlbS5zdHJpcCgpKQogICAgICAgICByZXR1cm4gcnYKIApAQCAtMzQ1LDEx
ICszNDMsMTEgQEAgY2xhc3MgR2l0VHJlZShvYmplY3QpOgogICAgICAgICAiIiJMaXN0IHN1Ym1v
ZHVsZSBkaXJlY3RvcmllcyIiIgogICAgICAgICBvdXRwdXQgPSBzZWxmLmdpdCgic3VibW9kdWxl
IiwgInN0YXR1cyIsICItLXJlY3Vyc2l2ZSIpCiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAgZm9y
IGxpbmUgaW4gb3V0cHV0LnNwbGl0KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBvdXRwdXQu
c3BsaXQoYiJcbiIpOgogICAgICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQogICAgICAgICAg
ICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHBh
cnRzID0gbGluZS5zcGxpdCgiICIpCisgICAgICAgICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoYiIg
IikKICAgICAgICAgICAgIHJ2LmFwcGVuZChwYXJ0c1sxXSkKICAgICAgICAgcmV0dXJuIHJ2CiAK
QEAgLTQwMyw1ICs0MDEsNSBAQCBjbGFzcyBDb21taXQob2JqZWN0KToKICAgICAgICAgc2VsZi5n
aXQgPSBzZWxmLnRyZWUuZ2l0CiAKICAgICBkZWYgX2dldF9tZXRhKHNlbGYpOgotICAgICAgICBh
dXRob3IsIGVtYWlsLCBtZXNzYWdlID0gc2VsZi5naXQoInNob3ciLCAiLXMiLCAiLS1mb3JtYXQ9
Zm9ybWF0OiVhblxuJWFlXG4lQiIsIHNlbGYuc2hhMSkuc3BsaXQoIlxuIiwgMikKKyAgICAgICAg
YXV0aG9yLCBlbWFpbCwgbWVzc2FnZSA9IHNlbGYuZ2l0KCJzaG93IiwgIi1zIiwgIi0tZm9ybWF0
PWZvcm1hdDolYW5cbiVhZVxuJUIiLCBzZWxmLnNoYTEpLmRlY29kZSgndXRmLTgnKS5zcGxpdCgi
XG4iLCAyKQogICAgICAgICByZXR1cm4gYXV0aG9yLCBlbWFpbCwgc2VsZi5tc2dfY2xzKG1lc3Nh
Z2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3VwZGF0ZS5weQppbmRleCA4MGU1
MDlkZDM4M2IuLjI2NWEzMzExYmViMSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3VwZGF0ZS5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRh
dGUvdXBkYXRlLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAKLWZy
b20gc2l4IGltcG9ydCBpdGVydmFsdWVzCi0KIGZyb20gLm1ldGFkYXRhIGltcG9ydCBNZXRhZGF0
YVVwZGF0ZVJ1bm5lcgogZnJvbSAuc3luYyBpbXBvcnQgU3luY0Zyb21VcHN0cmVhbVJ1bm5lcgog
ZnJvbSAudHJlZSBpbXBvcnQgR2l0VHJlZSwgSGdUcmVlLCBOb1ZDU1RyZWUKQEAgLTExMSw3ICsx
MDksNyBAQCBjbGFzcyBSZW1vdmVPYnNvbGV0ZShTdGVwKToKICAgICAgICAgc3RhdGUudGVzdHNf
cGF0aCA9IHN0YXRlLnBhdGhzWyIvIl1bInRlc3RzX3BhdGgiXQogICAgICAgICBzdGF0ZS5tZXRh
ZGF0YV9wYXRoID0gc3RhdGUucGF0aHNbIi8iXVsibWV0YWRhdGFfcGF0aCJdCiAKLSAgICAgICAg
Zm9yIHVybF9wYXRocyBpbiBpdGVydmFsdWVzKHBhdGhzKToKKyAgICAgICAgZm9yIHVybF9wYXRo
cyBpbiBwYXRocy52YWx1ZXMoKToKICAgICAgICAgICAgIHRlc3RzX3BhdGggPSB1cmxfcGF0aHNb
InRlc3RzX3BhdGgiXQogICAgICAgICAgICAgbWV0YWRhdGFfcGF0aCA9IHVybF9wYXRoc1sibWV0
YWRhdGFfcGF0aCJdCiAgICAgICAgICAgICBmb3IgZGlycGF0aCwgZGlybmFtZXMsIGZpbGVuYW1l
cyBpbiBvcy53YWxrKG1ldGFkYXRhX3BhdGgpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5CmluZGV4
IDg5NmQ4YTBkMmM2ZS4uMzQxOWE1MDdkYmFlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5CkBA
IC0xLDUgKzEsNiBAQAogaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20gZnVuY3Rvb2xzIGltcG9ydCBw
YXJ0aWFsCitmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKIAogZnJvbSBtb3psb2cgaW1wb3J0
IGdldF9kZWZhdWx0X2xvZ2dlcgogCkBAIC03LDcgKzgsNyBAQCBmcm9tIHdwdHNlcnZlLnV0aWxz
IGltcG9ydCBpc29tb3JwaGljX2RlY29kZQogCiBsb2dnZXIgPSBOb25lCiAKLWRlZiB2Y3MoYmlu
X25hbWUpOgorZGVmIHZjcyhiaW5fbmFtZTogc3RyKSAtPiBDYWxsYWJsZVsuLi4sIE5vbmVdOgog
ICAgIGRlZiBpbm5lcihjb21tYW5kLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBnbG9iYWwg
bG9nZ2VyCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5
CmluZGV4IGRmYWUwNTdmZDMzMi4uNTY1ZTNkNGU0M2JlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2Vy
dmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKQEAgLTUsMTQgKzUsMTUgQEAgaW1wb3J0IHBs
YXRmb3JtCiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjaworZnJv
bSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBUeXBlCiAKIGltcG9ydCBtb3pwcm9jZXNzCiAKLWZy
b20gLnByb2Nlc3MgaW1wb3J0IGNhc3RfZW52Citmcm9tIC5icm93c2Vycy5iYXNlIGltcG9ydCBP
dXRwdXRIYW5kbGVyCiAKIAogX19hbGxfXyA9IFsiU2VsZW5pdW1TZXJ2ZXIiLCAiQ2hyb21lRHJp
dmVyU2VydmVyIiwgIkNXVENocm9tZURyaXZlclNlcnZlciIsCi0gICAgICAgICAgICJFZGdlQ2hy
b21pdW1Ecml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIiLCAiR2Vja29Ecml2ZXJTZXJ2
ZXIiLAorICAgICAgICAgICAiRWRnZUNocm9taXVtRHJpdmVyU2VydmVyIiwgIk9wZXJhRHJpdmVy
U2VydmVyIiwKICAgICAgICAgICAgIkludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIiLCAiRWRn
ZURyaXZlclNlcnZlciIsCiAgICAgICAgICAgICJTZXJ2b0RyaXZlclNlcnZlciIsICJXZWJLaXRE
cml2ZXJTZXJ2ZXIiLCAiV2ViRHJpdmVyU2VydmVyIl0KIApAQCAtMjEsNiArMjIsNyBAQCBjbGFz
cyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICBfX21ldGFjbGFzc19fID0gYWJjLkFCQ01l
dGEKIAogICAgIGRlZmF1bHRfYmFzZV9wYXRoID0gIi8iCisgICAgb3V0cHV0X2hhbmRsZXJfY2xz
ID0gT3V0cHV0SGFuZGxlciAgIyB0eXBlOiBDbGFzc1ZhcltUeXBlW091dHB1dEhhbmRsZXJdXQog
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBob3N0PSIxMjcuMC4wLjEi
LCBwb3J0PU5vbmUsCiAgICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgZW52PU5vbmUsIGFy
Z3M9Tm9uZSk6CkBAIC0zMSwxMiArMzMsMTQgQEAgY2xhc3MgV2ViRHJpdmVyU2VydmVyKG9iamVj
dCk6CiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCiAgICAgICAgIHNlbGYuYmluYXJ5ID0g
YmluYXJ5CiAgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKwogICAgICAgICBpZiBiYXNlX3BhdGgg
PT0gIiI6CiAgICAgICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IHNlbGYuZGVmYXVsdF9iYXNlX3Bh
dGgKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9wYXRo
CiAgICAgICAgIHNlbGYuZW52ID0gb3MuZW52aXJvbi5jb3B5KCkgaWYgZW52IGlzIE5vbmUgZWxz
ZSBlbnYKIAorICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUKICAgICAgICAgc2Vs
Zi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fY21kID0gTm9uZQogICAgICAgICBzZWxmLl9h
cmdzID0gYXJncyBpZiBhcmdzIGlzIG5vdCBOb25lIGVsc2UgW10KQEAgLTQ2LDE4ICs1MCwyOCBA
QCBjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNl
bGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIGNvbW1hbmQgZm9yIHN0YXJ0aW5nIHRo
ZSBzZXJ2ZXIgcHJvY2VzcyBhcyBhIGxpc3QuIiIiCiAKLSAgICBkZWYgc3RhcnQoc2VsZiwgYmxv
Y2s9RmFsc2UpOgorICAgIGRlZiBzdGFydChzZWxmLAorICAgICAgICAgICAgICBibG9jaz1GYWxz
ZSwKKyAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzPU5vbmUsCisgICAgICAgICAg
ICAgIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncz1Ob25lKToKICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgc2VsZi5fcnVuKGJsb2NrKQorICAgICAgICAgICAgc2VsZi5fcnVuKGJsb2NrLCBv
dXRwdXRfaGFuZGxlcl9rd2FyZ3MsIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncykKICAgICAg
ICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAgICAgc2VsZi5zdG9wKCkKIAot
ICAgIGRlZiBfcnVuKHNlbGYsIGJsb2NrKToKKyAgICBkZWYgX3J1bihzZWxmLCBibG9jaywgb3V0
cHV0X2hhbmRsZXJfa3dhcmdzLCBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpOgorICAgICAg
ICBpZiBvdXRwdXRfaGFuZGxlcl9rd2FyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIG91dHB1dF9o
YW5kbGVyX2t3YXJncyA9IHt9CisgICAgICAgIGlmIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJn
cyBpcyBOb25lOgorICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0ge30K
ICAgICAgICAgc2VsZi5fY21kID0gc2VsZi5tYWtlX2NvbW1hbmQoKQorICAgICAgICBzZWxmLl9v
dXRwdXRfaGFuZGxlciA9IHNlbGYub3V0cHV0X2hhbmRsZXJfY2xzKHNlbGYubG9nZ2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
X2NtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKm91dHB1dF9oYW5kbGVyX2t3YXJncykKICAgICAgICAgc2VsZi5fcHJvYyA9IG1venBy
b2Nlc3MuUHJvY2Vzc0hhbmRsZXIoCiAgICAgICAgICAgICBzZWxmLl9jbWQsCi0gICAgICAgICAg
ICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLm9uX291dHB1dCwKLSAgICAgICAgICAgIGVudj1jYXN0
X2VudihzZWxmLmVudiksCisgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLl9vdXRw
dXRfaGFuZGxlciwKKyAgICAgICAgICAgIGVudj1zZWxmLmVudiwKICAgICAgICAgICAgIHN0b3Jl
T3V0cHV0PUZhbHNlKQogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBXZWJE
cml2ZXI6ICVzIiAlICcgJy5qb2luKHNlbGYuX2NtZCkpCkBAIC02OCw2ICs4Miw3IEBAIGNsYXNz
IFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3Io
CiAgICAgICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgZXhlY3V0YWJsZSBub3QgZm91bmQ6ICVz
IiAlIHNlbGYuYmluYXJ5KQogICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgc2VsZi5fb3V0cHV0
X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChzZWxmLl9wcm9jLnBpZCkKIAogICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygKICAgICAgICAgICAgICJXYWl0aW5nIGZvciBXZWJEcml2ZXIgdG8g
YmVjb21lIGFjY2Vzc2libGU6ICVzIiAlIHNlbGYudXJsKQpAQCAtNzgsMjcgKzkzLDI4IEBAIGNs
YXNzIFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICJXZWJEcml2ZXIg
d2FzIG5vdCBhY2Nlc3NpYmxlICIKICAgICAgICAgICAgICAgICAid2l0aGluIHRoZSB0aW1lb3V0
OlxuJXMiICUgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKICAgICAgICAgICAgIHJhaXNlCi0KKyAg
ICAgICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIuc3RhcnQoKipvdXRwdXRfaGFuZGxlcl9zdGFydF9r
d2FyZ3MpCiAgICAgICAgIGlmIGJsb2NrOgogICAgICAgICAgICAgc2VsZi5fcHJvYy53YWl0KCkK
IAogICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIlN0b3BwaW5nIFdlYkRyaXZlciIpCisgICAgICAgIGNsZWFuID0gVHJ1ZQogICAgICAg
ICBpZiBzZWxmLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICBraWxsX3Jlc3VsdCA9IHNlbGYuX3By
b2Mua2lsbCgpCiAgICAgICAgICAgICBpZiBmb3JjZSBhbmQga2lsbF9yZXN1bHQgIT0gMDoKLSAg
ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvYy5raWxsKDkpCi0gICAgICAgICAgICByZXR1
cm4ga2lsbF9yZXN1bHQKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmlzX2FsaXZlKCkKKyAgICAg
ICAgICAgICAgICBjbGVhbiA9IEZhbHNlCisgICAgICAgICAgICAgICAgc2VsZi5fcHJvYy5raWxs
KDkpCisgICAgICAgIHN1Y2Nlc3MgPSBub3Qgc2VsZi5pc19hbGl2ZSgpCisgICAgICAgIGlmIHN1
Y2Nlc3MgYW5kIHNlbGYuX291dHB1dF9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
IyBPbmx5IHRyeSB0byBkbyBvdXRwdXQgcG9zdC1wcm9jZXNzaW5nIGlmIHdlIG1hbmFnZWQgdG8g
c2h1dCBkb3duCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNz
X3N0b3AoY2xlYW4pCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUKKyAg
ICAgICAgcmV0dXJuIHN1Y2Nlc3MKIAogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAg
cmV0dXJuIGhhc2F0dHIoc2VsZi5fcHJvYywgInByb2MiKSBhbmQgc2VsZi5fcHJvYy5wb2xsKCkg
aXMgTm9uZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgc2VsZi5s
b2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLl9jbWQpKQotCiAgICAg
QHByb3BlcnR5CiAgICAgZGVmIHBpZChzZWxmKToKICAgICAgICAgaWYgc2VsZi5fcHJvYyBpcyBu
b3QgTm9uZToKQEAgLTEyMyw4OCArMTM5LDQyIEBAIGNsYXNzIFNlbGVuaXVtU2VydmVyKFdlYkRy
aXZlclNlcnZlcik6CiAKIAogY2xhc3MgQ2hyb21lRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZl
cik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJjaHJvbWVkcml2ZXIi
LCBwb3J0PU5vbmUsCi0gICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToK
LSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9n
Z2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQot
CiAgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFy
eSwKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJwb3J0Iiwgc3RyKHNlbGYucG9ydCkpLAogICAg
ICAgICAgICAgICAgIGNtZF9hcmcoInVybC1iYXNlIiwgc2VsZi5iYXNlX3BhdGgpIGlmIHNlbGYu
YmFzZV9wYXRoIGVsc2UgIiIsCiAgICAgICAgICAgICAgICAgY21kX2FyZygiZW5hYmxlLWNocm9t
ZS1sb2dzIildICsgc2VsZi5fYXJncwogCi1jbGFzcyBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIoV2Vi
RHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBv
cnQ9Tm9uZSwgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKHNl
bGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKIAorY2xhc3MgQ1dUQ2hy
b21lRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgZGVmIG1ha2VfY29tbWFuZChz
ZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKICAgICAgICAgICAgICAgICAiLS1w
b3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIAotY2xhc3MgRWRnZUNocm9t
aXVtRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLCBwb3J0PU5vbmUsCi0gICAgICAgICAgICAg
ICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9f
aW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFz
ZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQogCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJT
ZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAg
ICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgIGNtZF9hcmcoInBvcnQi
LCBzdHIoc2VsZi5wb3J0KSksCiAgICAgICAgICAgICAgICAgY21kX2FyZygidXJsLWJhc2UiLCBz
ZWxmLmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIl0gKyBzZWxmLl9hcmdzCiAK
LWNsYXNzIEVkZ2VEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Im1pY3Jvc29mdHdlYmRyaXZlci5leGUiLCBwb3J0PU5v
bmUsCi0gICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgaG9zdD0ibG9jYWxob3N0IiwgYXJn
cz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAg
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCiAK
K2NsYXNzIEVkZ2VEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9j
b21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAg
ICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCi1jbGFzcyBP
cGVyYURyaXZlclNlcnZlcihDaHJvbWVEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeT0ib3BlcmFkcml2ZXIiLCBwb3J0PU5vbmUsCi0gICAgICAgICAg
ICAgICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKLSAgICAgICAgQ2hyb21lRHJpdmVyU2Vy
dmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9y
dCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQogCitjbGFzcyBPcGVyYURyaXZlclNl
cnZlcihDaHJvbWVEcml2ZXJTZXJ2ZXIpOgorICAgIHBhc3MKIAogY2xhc3MgSW50ZXJuZXRFeHBs
b3JlckRyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJpbmFyeT0iSUVEcml2ZXJTZXJ2ZXIuZXhlIiwgcG9ydD1Ob25lLAotICAgICAg
ICAgICAgICAgICBiYXNlX3BhdGg9IiIsIGhvc3Q9ImxvY2FsaG9zdCIsIGFyZ3M9Tm9uZSk6Ci0g
ICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKLSAgICAgICAgICAgIHNlbGYsIGxvZ2dl
ciwgYmluYXJ5LCBob3N0PWhvc3QsIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQotCiAgICAgZGVmIG1h
a2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKICAgICAgICAg
ICAgICAgICAiLS1wb3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIAogCi1j
bGFzcyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIG1hcmlvbmV0dGVfcG9ydD0yODI4LCBiaW5hcnk9ImdlY2tvZHJpdmVy
IiwKLSAgICAgICAgICAgICAgICAgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD1Ob25lLCBhcmdzPU5v
bmUpOgotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotICAgICAgICBlbnZbIlJVU1Rf
QkFDS1RSQUNFIl0gPSAiMSIKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdD1o
b3N0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWNhc3RfZW52KGVudiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCi0gICAgICAgIHNlbGYubWFyaW9uZXR0
ZV9wb3J0ID0gbWFyaW9uZXR0ZV9wb3J0Ci0KLSAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgot
ICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAotICAgICAgICAgICAgICAgICItLW1hcmlvbmV0
dGUtcG9ydCIsIHN0cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCi0gICAgICAgICAgICAgICAgIi0t
aG9zdCIsIHNlbGYuaG9zdCwKLSAgICAgICAgICAgICAgICAiLS1wb3J0Iiwgc3RyKHNlbGYucG9y
dCldICsgc2VsZi5fYXJncwotCi0KIGNsYXNzIFNhZmFyaURyaXZlclNlcnZlcihXZWJEcml2ZXJT
ZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT0ic2FmYXJpZHJp
dmVyIiwgcG9ydD1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19p
bml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBhcmdz
PWFyZ3MpCi0KICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3Nl
bGYuYmluYXJ5LAogICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCld
ICsgc2VsZi5fYXJncwpAQCAtMjEyLDEzICsxODIsMTMgQEAgY2xhc3MgU2FmYXJpRHJpdmVyU2Vy
dmVyKFdlYkRyaXZlclNlcnZlcik6CiAKIGNsYXNzIFNlcnZvRHJpdmVyU2VydmVyKFdlYkRyaXZl
clNlcnZlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJzZXJ2byIs
IGJpbmFyeV9hcmdzPU5vbmUsIGhvc3Q9IjEyNy4wLjAuMSIsCi0gICAgICAgICAgICAgICAgIHBv
cnQ9Tm9uZSwgYXJncz1Ob25lKToKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAg
ICAgICAgICAgICAgICAgcG9ydD1Ob25lLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAgICAg
ZW52ID0gZW52IGlmIGVudiBpcyBub3QgTm9uZSBlbHNlIG9zLmVudmlyb24uY29weSgpCiAgICAg
ICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgogICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIu
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBob3N0PWhvc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0
PXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCiAgICAgICAgIHNlbGYuYmluYXJ5X2Fy
Z3MgPSBiaW5hcnlfYXJncwogCkBAIC0yMzMsOSArMjAzLDYgQEAgY2xhc3MgU2Vydm9Ecml2ZXJT
ZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKIAogCiBjbGFzcyBXZWJLaXREcml2ZXJTZXJ2ZXIoV2Vi
RHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Tm9u
ZSwgcG9ydD1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQotCiAgICAgZGVm
IG1ha2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwgIi0tcG9y
dD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCiAKQEAgLTI1NCw3ICsyMjEsNyBA
QCBkZWYgZ2V0X2ZyZWVfcG9ydCgpOgogICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCiAgICAg
ICAgIHRyeToKICAgICAgICAgICAgIHMuYmluZCgoIjEyNy4wLjAuMSIsIDApKQotICAgICAgICBl
eGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAg
IGNvbnRpbnVlCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gcy5nZXRzb2NrbmFt
ZSgpWzFdCkBAIC0yNjUsNyArMjMyLDcgQEAgZGVmIGdldF9mcmVlX3BvcnQoKToKIGRlZiB3YWl0
X2Zvcl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9NjApOgogICAgICIiIldhaXRzIHVudGlsIG5ldHdv
cmsgc2VydmljZSBnaXZlbiBhcyBhIHR1cGxlIG9mIChob3N0LCBwb3J0KSBiZWNvbWVzCiAgICAg
YXZhaWxhYmxlIG9yIHRoZSBgdGltZW91dGAgZHVyYXRpb24gaXMgcmVhY2hlZCwgYXQgd2hpY2gg
cG9pbnQKLSAgICBgYHNvY2tldC5lcnJvcmBgIGlzIHJhaXNlZC4iIiIKKyAgICBgYHNvY2tldC50
aW1lb3V0YGAgaXMgcmFpc2VkLiIiIgogICAgIGVuZCA9IHRpbWUudGltZSgpICsgdGltZW91dAog
ICAgIHdoaWxlIGVuZCA+IHRpbWUudGltZSgpOgogICAgICAgICBzbyA9IHNvY2tldC5zb2NrZXQo
KQpAQCAtMjczLDcgKzI0MCw3IEBAIGRlZiB3YWl0X2Zvcl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9
NjApOgogICAgICAgICAgICAgc28uY29ubmVjdChhZGRyKQogICAgICAgICBleGNlcHQgc29ja2V0
LnRpbWVvdXQ6CiAgICAgICAgICAgICBwYXNzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3Ig
YXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIGlmIGUuZXJy
bm8gIT0gZXJybm8uRUNPTk5SRUZVU0VEOgogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAg
IGVsc2U6CkBAIC0yODEsNCArMjQ4LDQgQEAgZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwgdGlt
ZW91dD02MCk6CiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzby5jbG9zZSgpCiAgICAg
ICAgIHRpbWUuc2xlZXAoMC41KQotICAgIHJhaXNlIHNvY2tldC5lcnJvcigiU2VydmljZSBpcyB1
bmF2YWlsYWJsZTogJXM6JWkiICUgYWRkcikKKyAgICByYWlzZSBzb2NrZXQudGltZW91dCgiU2Vy
dmljZSBpcyB1bmF2YWlsYWJsZTogJXM6JWkiICUgYWRkcikKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRs
aW5lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKaW5kZXggOWQxZDQwNDgwOTU0Li5jNzA1MGViODBjMmIg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CkBAIC0xLDEx
ICsxLDkgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBwcmludF9m
dW5jdGlvbgogaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20gY29s
bGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CiBmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQg
ZmluZF9leGVjdXRhYmxlCiBmcm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEKLWZyb20gc2l4
IGltcG9ydCBlbnN1cmVfdGV4dCwgaXRlcmtleXMsIGl0ZXJ2YWx1ZXMsIGl0ZXJpdGVtcwogCiBm
cm9tIC4gaW1wb3J0IGNvbmZpZwogZnJvbSAuIGltcG9ydCB3cHR0ZXN0CkBAIC0xNiw3ICsxNCw3
IEBAIGRlZiBhYnNfcGF0aChwYXRoKToKIAogCiBkZWYgdXJsX29yX3BhdGgocGF0aCk6Ci0gICAg
ZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQorICAgIGZyb20gdXJs
bGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQogCiAgICAgcGFyc2VkID0gdXJscGFyc2UocGF0aCkK
ICAgICBpZiBsZW4ocGFyc2VkLnNjaGVtZSkgPiAyOgpAQCAtNzIsNiArNzAsMTAgQEAgc2NoZW1l
IGhvc3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVl
LAogICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0iZmFpbF9vbl91bmV4cGVjdGVkIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkV4aXQgd2l0aCBzdGF0dXMgY29kZSAwIHdoZW4g
dGVzdCBleHBlY3RhdGlvbnMgYXJlIHZpb2xhdGVkIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCItLW5vLWZhaWwtb24tdW5leHBlY3RlZC1wYXNzIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICBkZXN0PSJmYWlsX29uX3VuZXhwZWN0ZWRfcGFzcyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJFeGl0IHdpdGggc3RhdHVzIGNvZGUgMCB3aGVuIGFsbCB1bmV4cGVjdGVkIHJl
c3VsdHMgYXJlIFBBU1MiKQogCiAgICAgbW9kZV9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRf
Z3JvdXAoIk1vZGUiKQogICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWxpc3QtdGVzdC1n
cm91cHMiLCBhY3Rpb249InN0b3JlX3RydWUiLApAQCAtMTMxLDYgKzEzMyw4IEBAIHNjaGVtZSBo
b3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iVGVzdCB0eXBlcyB0byBydW4iKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9h
cmd1bWVudCgiLS1pbmNsdWRlIiwgYWN0aW9uPSJhcHBlbmQiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJVUkwgcHJlZml4IHRvIGluY2x1ZGUiKQorICAgIHRl
c3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlLWZpbGUiLCBhY3Rpb249
InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQSBm
aWxlIGxpc3RpbmcgVVJMIHByZWZpeCBmb3IgdGVzdHMiKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dy
b3VwLmFkZF9hcmd1bWVudCgiLS1leGNsdWRlIiwgYWN0aW9uPSJhcHBlbmQiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJVUkwgcHJlZml4IHRvIGV4Y2x1ZGUi
KQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlLW1hbmlm
ZXN0IiwgdHlwZT1hYnNfcGF0aCwKQEAgLTE3MCw2ICsxNzQsOCBAQCBzY2hlbWUgaG9zdCBhbmQg
cG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJIYWx0IHRo
ZSB0ZXN0IHJ1bm5lciBhZnRlciBlYWNoIHRlc3QgKHRoaXMgaGFwcGVucyBieSBkZWZhdWx0IGlm
IG9ubHkgYSBzaW5nbGUgdGVzdCBpcyBydW4pIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2Fy
Z3VtZW50KCctLW5vLXBhdXNlLWFmdGVyLXRlc3QnLCBkZXN0PSJwYXVzZV9hZnRlcl90ZXN0Iiwg
YWN0aW9uPSJzdG9yZV9mYWxzZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJEb24ndCBoYWx0IHRoZSB0ZXN0IHJ1bm5lciBpcnJlc3BlY3RpdmUgb2YgdGhlIG51bWJl
ciBvZiB0ZXN0cyBydW4iKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tZGVi
dWctdGVzdCcsIGRlc3Q9ImRlYnVnX3Rlc3QiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVuIHRlc3RzIHdpdGggYWRkaXRpb25h
bCBkZWJ1Z2dpbmcgZmVhdHVyZXMgZW5hYmxlZCIpCiAKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRk
X2FyZ3VtZW50KCctLXBhdXNlLW9uLXVuZXhwZWN0ZWQnLCBhY3Rpb249InN0b3JlX3RydWUiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSGFsdCB0aGUgdGVzdCBydW5u
ZXIgd2hlbiBhbiB1bmV4cGVjdGVkIHJlc3VsdCBpcyBlbmNvdW50ZXJlZCIpCkBAIC0xODEsNyAr
MTg3LDYgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iUGF0aCBvciB1cmwgdG8gc3ltYm9scyBmaWxlIHVzZWQgdG8gYW5h
bHlzZSBjcmFzaCBtaW5pZHVtcHMuIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLXN0YWNrd2Fsay1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc3RhY2t3YWxrZXIg
cHJvZ3JhbSB1c2VkIHRvIGFuYWx5c2UgbWluaWR1bXBzLiIpCi0KICAgICBkZWJ1Z2dpbmdfZ3Jv
dXAuYWRkX2FyZ3VtZW50KCItLXBkYiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEcm9wIGludG8gcGRiIG9uIHB5dGhvbiBleGNl
cHRpb24iKQogCkBAIC0xOTYsNiArMjAxLDggQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQog
ICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoJy0td2ViZHJpdmVyLWFyZycsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBhY3Rpb249ImFwcGVuZCIsIGRlc3Q9
IndlYmRyaXZlcl9hcmdzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkV4
dHJhIGFyZ3VtZW50IGZvciB0aGUgV2ViRHJpdmVyIGJpbmFyeSIpCisgICAgY29uZmlnX2dyb3Vw
LmFkZF9hcmd1bWVudCgiLS1hZGItYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGFkYiBiaW5hcnkgdG8gdXNlIikKICAg
ICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBhY2thZ2UtbmFtZSIsIGFjdGlvbj0ic3Rv
cmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQW5kcm9pZCBwYWNrYWdl
IG5hbWUgdG8gcnVuIHRlc3RzIGFnYWluc3QiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1l
bnQoIi0tZGV2aWNlLXNlcmlhbCIsIGFjdGlvbj0ic3RvcmUiLApAQCAtMjg0LDYgKzI5MSw4IEBA
IHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iRGlzYWJsZSBmaXNzaW9uIGluIEdlY2tvLiIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2Fy
Z3VtZW50KCItLXN0YWNrZml4LWRpciIsIGRlc3Q9InN0YWNrZml4X2RpciIsIGFjdGlvbj0ic3Rv
cmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9y
eSBjb250YWluaW5nIGFzc2VydGlvbiBzdGFjayBmaXhpbmcgc2NyaXB0cyIpCisgICAgZ2Vja29f
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLXNwZWNpYWxwb3dlcnMtcGF0aCIsIGFjdGlvbj0ic3RvcmUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIHNwZWNpYWxQb3dl
cnMgZXh0ZW5zaW9uIHhwaSBmaWxlIikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0t
c2V0cHJlZiIsIGRlc3Q9ImV4dHJhX3ByZWZzIiwgYWN0aW9uPSdhcHBlbmQnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBtZXRhdmFyPSJQUkVGPVZBTFVFIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRGVmaW5lcyBhbiBleHRyYSB1c2VyIHBy
ZWZlcmVuY2UgKG92ZXJyaWRlcyB0aG9zZSBpbiBwcmVmc19yb290KSIpCkBAIC0zMTIsMTQgKzMy
MSwxNyBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0idXNlcl9zdHlsZXNoZWV0
cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkluamVjdCBhIHVzZXIgQ1NT
IHN0eWxlc2hlZXQgaW50byBldmVyeSB0ZXN0LiIpCiAKLSAgICBzZXJ2b19ncm91cCA9IHBhcnNl
ci5hZGRfYXJndW1lbnRfZ3JvdXAoIkNocm9tZS1zcGVjaWZpYyIpCi0gICAgc2Vydm9fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLWVuYWJsZS1tb2pvanMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZh
dWx0PUZhbHNlLAorICAgIGNocm9tZV9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAo
IkNocm9tZS1zcGVjaWZpYyIpCisgICAgY2hyb21lX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1lbmFi
bGUtbW9qb2pzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iRW5hYmxlIE1vam9KUyBmb3IgdGVzdGluZy4gTm90
ZSB0aGF0IHRoaXMgZmxhZyBpcyB1c2FsbHkgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZW5hYmxlZCBhdXRvbWF0aWNhbGx5IGJ5IGB3cHQgcnVuYCwgaWYgaXQgc3VjY2VlZHMgaW4g
ZG93bmxvYWRpbmcgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIHJpZ2h0IHZl
cnNpb24gb2YgbW9qb2pzLnppcCBvciBpZiAtLW1vam9qcy1wYXRoIGlzIHNwZWNpZmllZC4iKQot
ICAgIHNlcnZvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1tb2pvanMtcGF0aCIsCisgICAgY2hyb21l
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1tb2pvanMtcGF0aCIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlBhdGggdG8gbW9qb2pzIGdlbi8gZGlyZWN0b3J5LiBJZiBpdCBpcyBu
b3Qgc3BlY2lmaWVkLCBgd3B0IHJ1bmAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2lsbCBkb3dubG9hZCBhbmQgZXh0cmFjdCBtb2pvanMuemlwIGludG8gX3ZlbnYyL21vam9qcy9n
ZW4uIikKKyAgICBjaHJvbWVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWVuYWJsZS1zd2lmdHNoYWRl
ciIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IkVuYWJsZSBTd2lmdFNoYWRlciBmb3IgQ1BVLWJhc2VkIDNEIGdy
YXBoaWNzLiBUaGlzIGNhbiBiZSB1c2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImluIGVudmlyb25tZW50cyB3aXRoIG5vIGhhcmR3YXJlIEdQVSBhdmFpbGFibGUuIikKIAogICAg
IHNhdWNlX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiU2F1Y2UgTGFicy1zcGVj
aWZpYyIpCiAgICAgc2F1Y2VfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNhdWNlLWJyb3dzZXIiLCBk
ZXN0PSJzYXVjZV9icm93c2VyIiwKQEAgLTM1NCwxMyArMzY2LDE3IEBAIHNjaGVtZSBob3N0IGFu
ZCBwb3J0LiIiIikKIAogICAgIHRhc2tjbHVzdGVyX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVu
dF9ncm91cCgiVGFza2NsdXN0ZXItc3BlY2lmaWMiKQogICAgIHRhc2tjbHVzdGVyX2dyb3VwLmFk
ZF9hcmd1bWVudCgiLS1naXRodWItY2hlY2tzLXRleHQtZmlsZSIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9ZW5zdXJlX3RleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9c3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJQYXRoIHRvIEdpdEh1YiBjaGVja3Mgb3V0cHV0IGZpbGUiKQogCiAgICAgd2Vi
a2l0X2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiV2ViS2l0LXNwZWNpZmljIikK
ICAgICB3ZWJraXRfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXdlYmtpdC1wb3J0IiwgZGVzdD0id2Vi
a2l0X3BvcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iV2ViS2l0IHBv
cnQiKQogCisgICAgc2FmYXJpX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiU2Fm
YXJpLXNwZWNpZmljIikKKyAgICBzYWZhcmlfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWtpbGwtc2Fm
YXJpIiwgZGVzdD0ia2lsbF9zYWZhcmkiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZh
bHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iS2lsbCBTYWZhcmkgd2hl
biBzdG9wcGluZyB0aGUgYnJvd3NlciIpCisKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ0ZXN0
X2xpc3QiLCBuYXJncz0iKiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMaXN0IG9m
IFVSTHMgZm9yIHRlc3RzIHRvIHJ1biwgb3IgcGF0aHMgaW5jbHVkaW5nIHRlc3RzIHRvIHJ1bi4g
IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGVxdWl2YWxlbnQgdG8gLS1pbmNsdWRl
KSIpCkBAIC00MDIsNyArNDE4LDcgQEAgZGVmIHNldF9mcm9tX2NvbmZpZyhrd2FyZ3MpOgogICAg
ICAgICAgICAgICAgICAgICAoImhvc3RfY2VydF9wYXRoIiwgImhvc3RfY2VydF9wYXRoIiwgVHJ1
ZSksCiAgICAgICAgICAgICAgICAgICAgICgiaG9zdF9rZXlfcGF0aCIsICJob3N0X2tleV9wYXRo
IiwgVHJ1ZSldfQogCi0gICAgZm9yIHNlY3Rpb24sIHZhbHVlcyBpbiBpdGVyaXRlbXMoa2V5cyk6
CisgICAgZm9yIHNlY3Rpb24sIHZhbHVlcyBpbiBrZXlzLml0ZW1zKCk6CiAgICAgICAgIGZvciBj
b25maWdfdmFsdWUsIGt3X3ZhbHVlLCBpc19wYXRoIGluIHZhbHVlczoKICAgICAgICAgICAgIGlm
IGt3X3ZhbHVlIGluIGt3YXJncyBhbmQga3dhcmdzW2t3X3ZhbHVlXSBpcyBOb25lOgogICAgICAg
ICAgICAgICAgIGlmIG5vdCBpc19wYXRoOgpAQCAtNDM4LDcgKzQ1NCw3IEBAIGRlZiBnZXRfdGVz
dF9wYXRocyhjb25maWcpOgogICAgICMgU2V0IHVwIHRlc3RfcGF0aHMKICAgICB0ZXN0X3BhdGhz
ID0gT3JkZXJlZERpY3QoKQogCi0gICAgZm9yIHNlY3Rpb24gaW4gaXRlcmtleXMoY29uZmlnKToK
KyAgICBmb3Igc2VjdGlvbiBpbiBjb25maWcua2V5cygpOgogICAgICAgICBpZiBzZWN0aW9uLnN0
YXJ0c3dpdGgoIm1hbmlmZXN0OiIpOgogICAgICAgICAgICAgbWFuaWZlc3Rfb3B0cyA9IGNvbmZp
Zy5nZXQoc2VjdGlvbikKICAgICAgICAgICAgIHVybF9iYXNlID0gbWFuaWZlc3Rfb3B0cy5nZXQo
InVybF9iYXNlIiwgIi8iKQpAQCAtNDY0LDcgKzQ4MCw3IEBAIGRlZiBleGVfcGF0aChuYW1lKToK
IAogCiBkZWYgY2hlY2tfcGF0aHMoa3dhcmdzKToKLSAgICBmb3IgdGVzdF9wYXRocyBpbiBpdGVy
dmFsdWVzKGt3YXJnc1sidGVzdF9wYXRocyJdKToKKyAgICBmb3IgdGVzdF9wYXRocyBpbiBrd2Fy
Z3NbInRlc3RfcGF0aHMiXS52YWx1ZXMoKToKICAgICAgICAgaWYgbm90ICgidGVzdHNfcGF0aCIg
aW4gdGVzdF9wYXRocyBhbmQKICAgICAgICAgICAgICAgICAibWV0YWRhdGFfcGF0aCIgaW4gdGVz
dF9wYXRocyk6CiAgICAgICAgICAgICBwcmludCgiRmF0YWw6IG11c3Qgc3BlY2lmeSBib3RoIGEg
dGVzdCBwYXRoIGFuZCBtZXRhZGF0YSBwYXRoIikKQEAgLTQ3Miw3ICs0ODgsNyBAQCBkZWYgY2hl
Y2tfcGF0aHMoa3dhcmdzKToKICAgICAgICAgaWYgIm1hbmlmZXN0X3BhdGgiIG5vdCBpbiB0ZXN0
X3BhdGhzOgogICAgICAgICAgICAgdGVzdF9wYXRoc1sibWFuaWZlc3RfcGF0aCJdID0gb3MucGF0
aC5qb2luKHRlc3RfcGF0aHNbIm1ldGFkYXRhX3BhdGgiXSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTUFOSUZFU1QuanNvbiIpCi0gICAg
ICAgIGZvciBrZXksIHBhdGggaW4gaXRlcml0ZW1zKHRlc3RfcGF0aHMpOgorICAgICAgICBmb3Ig
a2V5LCBwYXRoIGluIHRlc3RfcGF0aHMuaXRlbXMoKToKICAgICAgICAgICAgIG5hbWUgPSBrZXku
c3BsaXQoIl8iLCAxKVswXQogCiAgICAgICAgICAgICBpZiBuYW1lID09ICJtYW5pZmVzdCI6CkBA
IC01ODgsNyArNjA0LDcgQEAgZGVmIGNoZWNrX2FyZ3Moa3dhcmdzKToKICAgICAgICAga3dhcmdz
WyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBUcnVlCiAKICAgICBpZiBrd2FyZ3NbInJlZnRlc3Rfc2Ny
ZWVuc2hvdCJdIGlzIE5vbmU6Ci0gICAgICAgIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0g
PSAidW5leHBlY3RlZCIKKyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9ICJ1
bmV4cGVjdGVkIiBpZiBub3Qga3dhcmdzWyJkZWJ1Z190ZXN0Il0gZWxzZSAiYWx3YXlzIgogCiAg
ICAgaWYga3dhcmdzWyJlbmFibGVfd2VicmVuZGVyIl0gaXMgTm9uZToKICAgICAgICAga3dhcmdz
WyJlbmFibGVfd2VicmVuZGVyIl0gPSBGYWxzZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxv
Z2dpbmcucHkKaW5kZXggNDQ0ZDFkOTYyZDI1Li5iNWNiNTg4ODFmZDAgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxv
Z2dpbmcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCBsb2dnaW5n
Citmcm9tIHRocmVhZGluZyBpbXBvcnQgVGhyZWFkCiAKIGZyb20gbW96bG9nIGltcG9ydCBjb21t
YW5kbGluZSwgc3RkYWRhcHRlciwgc2V0X2RlZmF1bHRfbG9nZ2VyCiBmcm9tIG1vemxvZy5zdHJ1
Y3R1cmVkbG9nIGltcG9ydCBTdHJ1Y3R1cmVkTG9nZ2VyLCBsb2dfbGV2ZWxzCkBAIC02NSwzICs2
Niw0MiBAQCBjbGFzcyBMb2dnZWRBYm92ZUxldmVsSGFuZGxlcihvYmplY3QpOgogICAgICAgICAg
ICAgbm90IHNlbGYuaGFzX2xvZyBhbmQKICAgICAgICAgICAgIGxvZ19sZXZlbHNbZGF0YVsibGV2
ZWwiXV0gPD0gc2VsZi5taW5fbGV2ZWwpOgogICAgICAgICAgICAgc2VsZi5oYXNfbG9nID0gVHJ1
ZQorCisKK2NsYXNzIFF1ZXVlSGFuZGxlcihsb2dnaW5nLkhhbmRsZXIpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBxdWV1ZSwgbGV2ZWw9bG9nZ2luZy5OT1RTRVQpOgorICAgICAgICBzZWxmLnF1
ZXVlID0gcXVldWUKKyAgICAgICAgbG9nZ2luZy5IYW5kbGVyLl9faW5pdF9fKHNlbGYsIGxldmVs
PWxldmVsKQorCisgICAgZGVmIGNyZWF0ZUxvY2soc2VsZik6CisgICAgICAgICMgVGhlIHF1ZXVl
IHByb3ZpZGVzIGl0cyBvd24gbG9ja2luZworICAgICAgICBzZWxmLmxvY2sgPSBOb25lCisKKyAg
ICBkZWYgZW1pdChzZWxmLCByZWNvcmQpOgorICAgICAgICBtc2cgPSBzZWxmLmZvcm1hdChyZWNv
cmQpCisgICAgICAgIGRhdGEgPSB7ImFjdGlvbiI6ICJsb2ciLAorICAgICAgICAgICAgICAgICJs
ZXZlbCI6IHJlY29yZC5sZXZlbG5hbWUsCisgICAgICAgICAgICAgICAgInRocmVhZCI6IHJlY29y
ZC50aHJlYWROYW1lLAorICAgICAgICAgICAgICAgICJwaWQiOiByZWNvcmQucHJvY2VzcywKKyAg
ICAgICAgICAgICAgICAic291cmNlIjogc2VsZi5uYW1lLAorICAgICAgICAgICAgICAgICJtZXNz
YWdlIjogbXNnfQorICAgICAgICBzZWxmLnF1ZXVlLnB1dChkYXRhKQorCisKK2NsYXNzIExvZ1F1
ZXVlVGhyZWFkKFRocmVhZCk6CisgICAgIiIiVGhyZWFkIGZvciBoYW5kbGluZyBsb2cgbWVzc2Fn
ZXMgZnJvbSBhIHF1ZXVlIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1ZXVlLCBsb2dnZXIp
OgorICAgICAgICBzZWxmLnF1ZXVlID0gcXVldWUKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dn
ZXIKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhuYW1lPSJUaHJlYWQtTG9nIikKKworICAgIGRl
ZiBydW4oc2VsZik6CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgZGF0YSA9IHNlbGYucXVldWUuZ2V0KCkKKyAgICAgICAgICAgIGV4Y2VwdCAo
RU9GRXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBp
ZiBkYXRhIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgIyBBIE5vbmUgbWVzc2FnZSBpcyB1c2Vk
IHRvIHNodXQgZG93biB0aGUgbG9nZ2luZyB0aHJlYWQKKyAgICAgICAgICAgICAgICBicmVhawor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIubG9nX3JhdyhkYXRhKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25h
bC5weQppbmRleCAzYjExZTgzMDEyYWIuLjMwZGQxNDQ5MTU2ZSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0
aW9uYWwucHkKQEAgLTEsNSArMSw1IEBACiBpbXBvcnQgb3BlcmF0b3IKLWZyb20gc2l4IGltcG9y
dCBlbnN1cmVfdGV4dCwgaXRlcml0ZW1zLCBpdGVya2V5cywgdGV4dF90eXBlCitmcm9tIHNpeCBp
bXBvcnQgZW5zdXJlX3RleHQKIAogZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBEYXRh
Tm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBLZXlWYWx1ZU5vZGUsIExpc3ROb2RlLCBWYWx1ZU5vZGUs
IEJpbmFyeUV4cHJlc3Npb25Ob2RlLCBWYXJpYWJsZU5vZGUKIGZyb20gLi5wYXJzZXIgaW1wb3J0
IHBhcnNlCkBAIC0zMDAsOSArMzAwLDkgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CiAg
ICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgogICAgICAgICAgICAgdmFsdWVfbm9k
ZSA9IExpc3ROb2RlKCkKICAgICAgICAgICAgIGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICAg
ICAgICAgIHZhbHVlX25vZGUuYXBwZW5kKFZhbHVlTm9kZSh0ZXh0X3R5cGUoaXRlbSkpKQorICAg
ICAgICAgICAgICAgIHZhbHVlX25vZGUuYXBwZW5kKFZhbHVlTm9kZShzdHIoaXRlbSkpKQogICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZSh0ZXh0X3R5cGUo
dmFsdWUpKQorICAgICAgICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZShzdHIodmFsdWUpKQog
ICAgICAgICBpZiBjb25kaXRpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShjb25kaXRpb24sIENvbmRpdGlvbmFsTm9kZSk6CiAgICAgICAgICAgICAgICAgY29u
ZGl0aW9uYWxfbm9kZSA9IENvbmRpdGlvbmFsTm9kZSgpCkBAIC0zNjgsMTcgKzM2OCwxNyBAQCBj
bGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKICAgICBkZWYgX2ZsYXR0ZW4oc2VsZik6CiAgICAg
ICAgIHJ2ID0ge30KICAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06Ci0gICAg
ICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gaXRlcml0ZW1zKG5vZGUuX2RhdGEpOgorICAgICAg
ICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIG5vZGUuX2RhdGEuaXRlbXMoKToKICAgICAgICAgICAg
ICAgICBpZiBuYW1lIG5vdCBpbiBydjoKICAgICAgICAgICAgICAgICAgICAgcnZbbmFtZV0gPSB2
YWx1ZQogICAgICAgICByZXR1cm4gcnYKIAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0gICAg
ICAgIGZvciBpdGVtIGluIGl0ZXJpdGVtcyhzZWxmLl9mbGF0dGVuKCkpOgorICAgICAgICBmb3Ig
aXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlbXMoKToKICAgICAgICAgICAgIHlpZWxkIGl0ZW0K
IAogICAgIGRlZiBpdGVya2V5cyhzZWxmKToKLSAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcmtleXMo
c2VsZi5fZmxhdHRlbigpKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLmtl
eXMoKToKICAgICAgICAgICAgIHlpZWxkIGl0ZW0KIAogICAgIGRlZiBpdGVyX3Byb3BlcnRpZXMo
c2VsZik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQpp
bmRleCAwZjgyZDcwMDZiNjkuLjVlOWQyYjY0Mjc0NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9k
ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5CkBAIC0xLDUgKzEsMyBAQAotZnJvbSBzaXgubW92
ZXMgaW1wb3J0IHJhbmdlCi0KIGNsYXNzIE5vZGVWaXNpdG9yKG9iamVjdCk6CiAgICAgZGVmIHZp
c2l0KHNlbGYsIG5vZGUpOgogICAgICAgICAjIFRoaXMgaXMgdWdseSBhcyBoZWxsLCBidXQgd2Ug
ZG9uJ3QgaGF2ZSBtdWx0aW1ldGhvZHMgYW5kCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRtYW5pZmVzdC9wYXJzZXIucHkKaW5kZXggOTExZWZhYzgwZjI3Li40Yzk3YzY5MTQxMzkg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkK
QEAgLTEyLDEwICsxMiw3IEBACiAKICMgVE9ETzoga2VlcCBjb21tZW50cyBpbiB0aGUgdHJlZQog
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKLQotZnJvbSBzaXggaW1w
b3J0IGJpbmFyeV90eXBlLCB0ZXh0X3R5cGUsIEJ5dGVzSU8sIHVuaWNocgotZnJvbSBzaXgubW92
ZXMgaW1wb3J0IHJhbmdlCitmcm9tIGlvIGltcG9ydCBCeXRlc0lPCiAKIGZyb20gLm5vZGUgaW1w
b3J0IChOb2RlLCBBdG9tTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsIEJpbmFyeU9wZXJhdG9y
Tm9kZSwKICAgICAgICAgICAgICAgICAgICBDb25kaXRpb25hbE5vZGUsIERhdGFOb2RlLCBJbmRl
eE5vZGUsIEtleVZhbHVlTm9kZSwgTGlzdE5vZGUsCkBAIC01MCw3ICs0Nyw3IEBAIGF0b21zID0g
eyJUcnVlIjogVHJ1ZSwKICAgICAgICAgICJSZXNldCI6IG9iamVjdCgpfQogCiBkZWYgZGVjb2Rl
KHMpOgotICAgIGFzc2VydCBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShzLCBzdHIpCiAgICAgcmV0dXJuIHMKIAogCkBAIC01OSw3ICs1Niw3IEBAIGRlZiBw
cmVjZWRlbmNlKG9wZXJhdG9yX25vZGUpOgogCiAKIGNsYXNzIFRva2VuVHlwZXMob2JqZWN0KToK
LSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5vbmU6
CiAgICAgICAgIGZvciB0eXBlIGluIFsiZ3JvdXBfc3RhcnQiLCAiZ3JvdXBfZW5kIiwgInBhcmVu
IiwgImxpc3Rfc3RhcnQiLCAibGlzdF9lbmQiLCAic2VwYXJhdG9yIiwgImlkZW50IiwgInN0cmlu
ZyIsICJudW1iZXIiLCAiYXRvbSIsICJlb2YiXToKICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwg
dHlwZSwgdHlwZSkKIApAQCAtNzksNyArNzYsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0KToK
IAogICAgIGRlZiB0b2tlbml6ZShzZWxmLCBzdHJlYW0pOgogICAgICAgICBzZWxmLnJlc2V0KCkK
LSAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHN0cmVhbSwgdGV4dF90eXBlKQorICAgICAg
ICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uoc3RyZWFtLCBzdHIpCiAgICAgICAgIGlmIGlzaW5zdGFu
Y2Uoc3RyZWFtLCBieXRlcyk6CiAgICAgICAgICAgICBzdHJlYW0gPSBCeXRlc0lPKHN0cmVhbSkK
ICAgICAgICAgaWYgbm90IGhhc2F0dHIoc3RyZWFtLCAibmFtZSIpOgpAQCAtODksNyArODYsNyBA
QCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLm5leHRfbGluZV9zdGF0
ZSA9IHNlbGYubGluZV9zdGFydF9zdGF0ZQogICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJh
dGUoc3RyZWFtKToKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmUsIGJpbmFyeV90
eXBlKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGluZSwgYnl0ZXMpCiAgICAgICAg
ICAgICBzZWxmLnN0YXRlID0gc2VsZi5uZXh0X2xpbmVfc3RhdGUKICAgICAgICAgICAgIGFzc2Vy
dCBzZWxmLnN0YXRlIGlzIG5vdCBOb25lCiAgICAgICAgICAgICBzdGF0ZXMgPSBbXQpAQCAtOTcs
NyArOTQsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYubGlu
ZV9udW1iZXIgPSBpICsgMQogICAgICAgICAgICAgc2VsZi5pbmRleCA9IDAKICAgICAgICAgICAg
IHNlbGYubGluZSA9IGxpbmUuZGVjb2RlKCd1dGYtOCcpLnJzdHJpcCgpCi0gICAgICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShzZWxmLmxpbmUsIHRleHRfdHlwZSkKKyAgICAgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKHNlbGYubGluZSwgc3RyKQogICAgICAgICAgICAgd2hpbGUgc2VsZi5zdGF0
ZSAhPSBzZWxmLmVvbF9zdGF0ZToKICAgICAgICAgICAgICAgICBzdGF0ZXMuYXBwZW5kKHNlbGYu
c3RhdGUpCiAgICAgICAgICAgICAgICAgdG9rZW5zID0gc2VsZi5zdGF0ZSgpCkBAIC01MDUsNyAr
NTAyLDcgQEAgY2xhc3MgVG9rZW5pemVyKG9iamVjdCk6CiAgICAgICAgICAgICB2YWx1ZSArPSBz
ZWxmLmVzY2FwZV92YWx1ZShjKQogICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKIAotICAgICAg
ICByZXR1cm4gdW5pY2hyKHZhbHVlKQorICAgICAgICByZXR1cm4gY2hyKHZhbHVlKQogCiAgICAg
ZGVmIGVzY2FwZV92YWx1ZShzZWxmLCBjKToKICAgICAgICAgaWYgJzAnIDw9IGMgPD0gJzknOgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIu
cHkKaW5kZXggZWM4ZDgwZWQ2ZjcxLi5lMzFhNjA3OTFlYTcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3NlcmlhbGl6ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQpAQCAtMSw0ICsxLDMg
QEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogZnJvbSBzaXggaW1w
b3J0IGVuc3VyZV90ZXh0CiAKIGZyb20gLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBWYWx1ZU5v
ZGUsIExpc3ROb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZQpAQCAtMzQsNiArMzMsNyBAQCBjbGFz
cyBNYW5pZmVzdFNlcmlhbGl6ZXIoTm9kZVZpc2l0b3IpOgogICAgICAgICBydiA9ICJcbiIuam9p
bihzZWxmLnZpc2l0KHJvb3QpKQogICAgICAgICBpZiBub3QgcnY6CiAgICAgICAgICAgICByZXR1
cm4gcnYKKyAgICAgICAgcnYgPSBydi5zdHJpcCgpCiAgICAgICAgIGlmIHJ2Wy0xXSAhPSAiXG4i
OgogICAgICAgICAgICAgcnYgPSBydiArICJcbiIKICAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90
ZXN0X3NlcmlhbGl6ZXIucHkKaW5kZXggYjI0Nzg1NTgwMWVhLi4wMmU1MjgxNWRiZGMgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90
ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKQEAgLTEsOCArMSw1IEBACi1pbXBvcnQgc3lzCiBpbXBv
cnQgdW5pdHRlc3QKIAotaW1wb3J0IHB5dGVzdAotCiBmcm9tIC4uIGltcG9ydCBwYXJzZXIsIHNl
cmlhbGl6ZXIKIAogCkBAIC0xOTIsNyArMTg5LDYgQEAgY2xhc3MgVG9rZW5pemVyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICByIiIia2V5OiAiIyIKICIiIikK
IAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMubWF4dW5pY29kZSA9PSAweEZGRkYsIHJlYXNv
bj0ibmFycm93IHVuaWNvZGUiKQogICAgIGRlZiB0ZXN0X2VzY2FwZV85KHNlbGYpOgogICAgICAg
ICBzZWxmLmNvbXBhcmUoYnIiIiJrZXk6IFxVMTBGRkZGYWJjIiIiLAogICAgICAgICAgICAgICAg
ICAgICAgdSIiImtleTogXFUwMDEwRkZGRmFiYwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVu
bmVyLnB5CmluZGV4IGUxZDllZjhiMWE5MS4uMjVhMjUxNWVmNmY4IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5u
ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0cnVubmVyLnB5CkBAIC0xLDE1ICsxLDEzIEBACi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHByaW50X2Z1bmN0aW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KIGltcG9ydCBqc29uCiBp
bXBvcnQgb3MKIGltcG9ydCBzeXMKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2YWx1
ZXMKIAogaW1wb3J0IHdwdHNlcnZlCiBmcm9tIHdwdHNlcnZlIGltcG9ydCBzc2x1dGlscwogCiBm
cm9tIC4gaW1wb3J0IGVudmlyb25tZW50IGFzIGVudgogZnJvbSAuIGltcG9ydCBpbnN0cnVtZW50
cworZnJvbSAuIGltcG9ydCBtcGNvbnRleHQKIGZyb20gLiBpbXBvcnQgcHJvZHVjdHMKIGZyb20g
LiBpbXBvcnQgdGVzdGxvYWRlcgogZnJvbSAuIGltcG9ydCB3cHRjb21tYW5kbGluZQpAQCAtMTgs
NyArMTYsNiBAQCBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKIGZyb20gbW96bG9nIGltcG9ydCBjYXB0
dXJlLCBoYW5kbGVycwogZnJvbSAuZm9udCBpbXBvcnQgRm9udEluc3RhbGxlcgogZnJvbSAudGVz
dHJ1bm5lciBpbXBvcnQgTWFuYWdlckdyb3VwCi1mcm9tIC5icm93c2Vycy5iYXNlIGltcG9ydCBO
dWxsQnJvd3NlcgogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCkBAIC02NSw2
ICs2Miw5IEBAIGRlZiBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIGRlYnVnPU5vbmUs
IHJ1bl9pbmZvX2V4dHJhcz1Ob25lLCBjaHVua2VyX2t3CiAgICAgbWFuaWZlc3RfZmlsdGVycyA9
IFtdCiAKICAgICBpbmNsdWRlID0ga3dhcmdzWyJpbmNsdWRlIl0KKyAgICBpZiBrd2FyZ3NbImlu
Y2x1ZGVfZmlsZSJdOgorICAgICAgICBpbmNsdWRlID0gaW5jbHVkZSBvciBbXQorICAgICAgICBp
bmNsdWRlLmV4dGVuZCh0ZXN0bG9hZGVyLnJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUoa3dhcmdzWyJp
bmNsdWRlX2ZpbGUiXSkpCiAgICAgaWYgdGVzdF9ncm91cHM6CiAgICAgICAgIGluY2x1ZGUgPSB0
ZXN0bG9hZGVyLnVwZGF0ZV9pbmNsdWRlX2Zvcl9ncm91cHModGVzdF9ncm91cHMsIGluY2x1ZGUp
CiAKQEAgLTk2LDcgKzk2LDcgQEAgZGVmIGdldF9sb2FkZXIodGVzdF9wYXRocywgcHJvZHVjdCwg
ZGVidWc9Tm9uZSwgcnVuX2luZm9fZXh0cmFzPU5vbmUsIGNodW5rZXJfa3cKIGRlZiBsaXN0X3Rl
c3RfZ3JvdXBzKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICBlbnYuZG9fZGVs
YXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKIAotICAgIHJ1bl9pbmZvX2V4dHJhcyA9
IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0oKipr
d2FyZ3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3NbImNv
bmZpZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5faW5m
bywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9f
ZXh0cmFzLCAqKmt3YXJncykKQEAgLTExMCwxMiArMTEwLDEyIEBAIGRlZiBsaXN0X2Rpc2FibGVk
KHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIAogICAgIHJ2ID0gW10KIAotICAgIHJ1
bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBw
cm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMuUHJv
ZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMoKiprd2FyZ3Mp
CiAKICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHBy
b2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19l
eHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykKIAotICAgIGZvciB0ZXN0X3R5cGUsIHRl
c3RzIGluIGl0ZXJpdGVtcyh0ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0cyk6CisgICAgZm9yIHRl
c3RfdHlwZSwgdGVzdHMgaW4gdGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHMuaXRlbXMoKToKICAg
ICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CiAgICAgICAgICAgICBydi5hcHBlbmQoeyJ0ZXN0Ijog
dGVzdC5pZCwgInJlYXNvbiI6IHRlc3QuZGlzYWJsZWQoKX0pCiAgICAgcHJpbnQoanNvbi5kdW1w
cyhydiwgaW5kZW50PTIpKQpAQCAtMTI0LDcgKzEyNCw3IEBAIGRlZiBsaXN0X2Rpc2FibGVkKHRl
c3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIGRlZiBsaXN0X3Rlc3RzKHRlc3RfcGF0aHMs
IHByb2R1Y3QsICoqa3dhcmdzKToKICAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwg
dGVzdF9wYXRocykKIAotICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVj
dChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAgcnVuX2luZm9f
ZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KS5ydW5f
aW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBnZXRf
bG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykKQEAg
LTEzOSw4ICsxMzksMTAgQEAgZGVmIGdldF9wYXVzZV9hZnRlcl90ZXN0KHRlc3RfbG9hZGVyLCAq
Kmt3YXJncyk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYga3dhcmdzWyJo
ZWFkbGVzcyJdOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIGt3YXJnc1si
ZGVidWdfdGVzdCJdOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgdGVzdHMgPSB0
ZXN0X2xvYWRlci50ZXN0cwotICAgICAgICBpc19zaW5nbGVfdGVzdGhhcm5lc3MgPSAoc3VtKGxl
bihpdGVtKSBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKHRlc3RzKSkgPT0gMSBhbmQKKyAgICAgICAg
aXNfc2luZ2xlX3Rlc3RoYXJuZXNzID0gKHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gdGVzdHMu
dmFsdWVzKCkpID09IDEgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4o
dGVzdHMuZ2V0KCJ0ZXN0aGFybmVzcyIsIFtdKSkgPT0gMSkKICAgICAgICAgaWYga3dhcmdzWyJy
ZXBlYXQiXSA9PSAxIGFuZCBrd2FyZ3NbInJlcnVuIl0gPT0gMSBhbmQgaXNfc2luZ2xlX3Rlc3Ro
YXJuZXNzOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTE1MSwxNSArMTUzLDE4IEBAIGRl
ZiBnZXRfcGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgogZGVmIHJ1bl90
ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAiIiJTZXQg
dXAgdGhlIHRlc3QgZW52aXJvbm1lbnQsIGxvYWQgdGhlIGxpc3Qgb2YgdGVzdHMgdG8gYmUgZXhl
Y3V0ZWQsIGFuZAogICAgIGludm9rZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBjb2RlIHRvIGV4ZWN1
dGUgdGVzdHMiIiIKKyAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAgICAgaWYga3dh
cmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSBpcyBOb25lOgogICAgICAgICByZWNvcmRlciA9IGlu
c3RydW1lbnRzLk51bGxJbnN0cnVtZW50KCkKICAgICBlbHNlOgogICAgICAgICByZWNvcmRlciA9
IGluc3RydW1lbnRzLkluc3RydW1lbnQoa3dhcmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSkKLSAg
ICB3aXRoIHJlY29yZGVyIGFzIHJlY29yZGluZywgY2FwdHVyZS5DYXB0dXJlSU8obG9nZ2VyLCBu
b3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pOgorICAgIHdpdGggcmVjb3JkZXIgYXMgcmVj
b3JkaW5nLCBjYXB0dXJlLkNhcHR1cmVJTyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8i
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBf
Y29udGV4dD1tcCk6CiAgICAgICAgIHJlY29yZGluZy5zZXQoWyJzdGFydHVwIl0pCiAgICAgICAg
IGVudi5kb19kZWxheWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQogCi0gICAgICAgIHBy
b2R1Y3QgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Nscz1U
cnVlKQorICAgICAgICBwcm9kdWN0ID0gcHJvZHVjdHMuUHJvZHVjdChjb25maWcsIHByb2R1Y3Qp
CiAKICAgICAgICAgZW52X2V4dHJhcyA9IHByb2R1Y3QuZ2V0X2Vudl9leHRyYXMoKiprd2FyZ3Mp
CiAKQEAgLTE5NCw2ICsxOTksNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywg
cHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICBza2lwcGVkX3Rlc3RzID0gMAogICAgICAgICB0
ZXN0X3RvdGFsID0gMAogICAgICAgICB1bmV4cGVjdGVkX3RvdGFsID0gMAorICAgICAgICB1bmV4
cGVjdGVkX3Bhc3NfdG90YWwgPSAwCiAKICAgICAgICAgaWYgbGVuKHRlc3RfbG9hZGVyLnRlc3Rf
aWRzKSA9PSAwIGFuZCBrd2FyZ3NbInRlc3RfbGlzdCJdOgogICAgICAgICAgICAgbG9nZ2VyLmNy
aXRpY2FsKCJVbmFibGUgdG8gZmluZCBhbnkgdGVzdHMgYXQgdGhlIHBhdGgocyk6IikKQEAgLTIx
OSw2ICsyMjUsNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwg
Kiprd2FyZ3MpOgogICAgICAgICB3aXRoIGVudi5UZXN0RW52aXJvbm1lbnQodGVzdF9wYXRocywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3RpbWVvdXRfbXVs
dGlwbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwYXVzZV9h
ZnRlcl90ZXN0Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRl
YnVnX3Rlc3QiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVi
dWdfaW5mbyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5lbnZf
b3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcsCkBA
IC0yMjksNyArMjM2LDcgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1
Y3QsICoqa3dhcmdzKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB0ZXN0X2Vu
dmlyb25tZW50LmVuc3VyZV9zdGFydGVkKCkKICAgICAgICAgICAgIGV4Y2VwdCBlbnYuVGVzdEVu
dmlyb25tZW50RXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkVy
cm9yIHN0YXJ0aW5nIHRlc3QgZW52aXJvbm1lbnQ6ICVzIiAlIGUubWVzc2FnZSkKKyAgICAgICAg
ICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkVycm9yIHN0YXJ0aW5nIHRlc3QgZW52aXJvbm1lbnQ6
ICVzIiAlIGUpCiAgICAgICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICAgICAgcmVjb3JkaW5n
LnNldChbInN0YXJ0dXAiXSkKQEAgLTI0Nyw2ICsyNTQsNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZp
ZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogCiAgICAgICAgICAgICAgICAgdGVz
dF9jb3VudCA9IDAKICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50ID0gMAorICAgICAg
ICAgICAgICAgIHVuZXhwZWN0ZWRfcGFzc19jb3VudCA9IDAKIAogICAgICAgICAgICAgICAgIHRl
c3RzID0gW10KICAgICAgICAgICAgICAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfbG9hZGVyLnRl
c3RfdHlwZXM6CkBAIC0yNjUsMjUgKzI3MywxOSBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVz
dF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgIGZvciB0ZXN0X3R5
cGUgaW4ga3dhcmdzWyJ0ZXN0X3R5cGVzIl06CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5p
bmZvKCJSdW5uaW5nICVzIHRlc3RzIiAlIHRlc3RfdHlwZSkKIAotICAgICAgICAgICAgICAgICAg
ICAjIFdlYkRyaXZlciB0ZXN0cyBtYXkgY3JlYXRlIGFuZCBkZXN0cm95IG11bHRpcGxlIGJyb3dz
ZXIKLSAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXMgcGFydCBvZiB0aGVpciBleHBl
Y3RlZCBiZWhhdmlvci4gVGhlc2UKLSAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXJl
IG1hbmFnZWQgYnkgYSBXZWJEcml2ZXIgc2VydmVyIGJpbmFyeS4gVGhpcwotICAgICAgICAgICAg
ICAgICAgICAjIG9idmlhdGVzIHRoZSBuZWVkIGZvciB3cHRydW5uZXIgdG8gcHJvdmlkZSBhIGJy
b3dzZXIsIHNvCi0gICAgICAgICAgICAgICAgICAgICMgdGhlIE51bGxCcm93c2VyIGlzIHVzZWQg
aW4gcGxhY2Ugb2YgdGhlICJ0YXJnZXQiIGJyb3dzZXIKLSAgICAgICAgICAgICAgICAgICAgaWYg
dGVzdF90eXBlID09ICJ3ZHNwZWMiOgotICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9j
bHMgPSBOdWxsQnJvd3NlcgotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJvd3Nlcl9jbHMgPSBwcm9kdWN0LmJyb3dzZXJfY2xzCisgICAgICAgICAg
ICAgICAgICAgIGJyb3dzZXJfY2xzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9jbHModGVzdF90eXBl
KQogCi0gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRfYnJv
d3Nlcl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3YXJn
cyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfa3dhcmdzKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29uZmln
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG51bV90ZXN0X2dyb3Vwcz1sZW4odGVzdF9ncm91cHMpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKQogCiAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhlY3V0
b3JfY2xhc3Nlcy5nZXQodGVzdF90eXBlKQotICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9r
d2FyZ3MgPSBwcm9kdWN0LmdldF9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdF9lbnZpcm9ubWVudC5jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNhY2hl
X21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncyA9IHByb2R1Y3Qu
Z2V0X2V4ZWN1dG9yX2t3YXJncyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X2Vudmlyb25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJn
cykKIApAQCAtMzM0LDEwICszMzYsMTMgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0
aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jb3VudCArPSBtYW5hZ2VyX2dyb3VwLnRl
c3RfY291bnQoKQogICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9jb3VudCArPSBt
YW5hZ2VyX2dyb3VwLnVuZXhwZWN0ZWRfY291bnQoKQorICAgICAgICAgICAgICAgICAgICAgICAg
dW5leHBlY3RlZF9wYXNzX2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudW5leHBlY3RlZF9wYXNzX2Nv
dW50KCkKICAgICAgICAgICAgICAgICByZWNvcmRpbmcuc2V0KFsiYWZ0ZXItZW5kIl0pCiAgICAg
ICAgICAgICAgICAgdGVzdF90b3RhbCArPSB0ZXN0X2NvdW50CiAgICAgICAgICAgICAgICAgdW5l
eHBlY3RlZF90b3RhbCArPSB1bmV4cGVjdGVkX2NvdW50Ci0gICAgICAgICAgICAgICAgbG9nZ2Vy
LmluZm8oIkdvdCAlaSB1bmV4cGVjdGVkIHJlc3VsdHMiICUgdW5leHBlY3RlZF9jb3VudCkKKyAg
ICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwgKz0gdW5leHBlY3RlZF9wYXNzX2Nv
dW50CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkdvdCAlaSB1bmV4cGVjdGVkIHJlc3Vs
dHMsIHdpdGggJWkgdW5leHBlY3RlZCBwYXNzZXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodW5leHBlY3RlZF9jb3VudCwgdW5leHBlY3RlZF9wYXNzX2NvdW50KSkKICAgICAgICAg
ICAgICAgICBsb2dnZXIuc3VpdGVfZW5kKCkKICAgICAgICAgICAgICAgICBpZiByZXBlYXRfdW50
aWxfdW5leHBlY3RlZCBhbmQgdW5leHBlY3RlZF90b3RhbCA+IDA6CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrCkBAIC0zNTksNiArMzY0LDEzIEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0
X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgICAgIGxvZ2dlci5pbmZvKCJUb2xlcmF0
aW5nICVzIHVuZXhwZWN0ZWQgcmVzdWx0cyIgJSB1bmV4cGVjdGVkX3RvdGFsKQogICAgICAgICBy
ZXR1cm4gVHJ1ZQogCisgICAgYWxsX3VuZXhwZWN0ZWRfcGFzc2VkID0gKHVuZXhwZWN0ZWRfdG90
YWwgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPT0g
dW5leHBlY3RlZF9wYXNzX3RvdGFsKQorICAgIGlmIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCBhbmQg
bm90IGt3YXJnc1siZmFpbF9vbl91bmV4cGVjdGVkX3Bhc3MiXToKKyAgICAgICAgbG9nZ2VyLmlu
Zm8oIlRvbGVyYXRpbmcgJWkgdW5leHBlY3RlZCByZXN1bHRzIGJlY2F1c2UgdGhleSBhbGwgUEFT
UyIgJQorICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwpCisgICAgICAg
IHJldHVybiBUcnVlCisKICAgICByZXR1cm4gdW5leHBlY3RlZF90b3RhbCA9PSAwCiAKIApkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0dGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKaW5kZXggMzFiMjQ1NjEyYmUwLi4wY2Q3MmUyODVi
MDAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQpAQCAtMSw5ICsxLDkgQEAKIGlt
cG9ydCBvcwogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVzLnVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVs
dGRpY3QKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIHN0cmluZ190eXBlcworZnJvbSB0eXBp
bmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIFR5cGUKK2Zyb20gdXJsbGliLnBhcnNlIGlt
cG9ydCB1cmxqb2luCiAKIGZyb20gLndwdG1hbmlmZXN0LnBhcnNlciBpbXBvcnQgYXRvbXMKIApA
QCAtODMsNyArODMsNyBAQCBkZWYgZ2V0X3J1bl9pbmZvKG1ldGFkYXRhX3Jvb3QsIHByb2R1Y3Qs
ICoqa3dhcmdzKToKICAgICByZXR1cm4gUnVuSW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0LCAq
Kmt3YXJncykKIAogCi1jbGFzcyBSdW5JbmZvKGRpY3QpOgorY2xhc3MgUnVuSW5mbyhEaWN0W3N0
ciwgQW55XSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGFkYXRhX3Jvb3QsIHByb2R1Y3Qs
IGRlYnVnLAogICAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb249Tm9uZSwKICAgICAgICAg
ICAgICAgICAgYnJvd3Nlcl9jaGFubmVsPU5vbmUsCkBAIC0xNTAsMjIgKzE1MCwyOCBAQCBkZWYg
c2VydmVyX3Byb3RvY29sKG1hbmlmZXN0X2l0ZW0pOgogCiBjbGFzcyBUZXN0KG9iamVjdCk6CiAK
LSAgICByZXN1bHRfY2xzID0gTm9uZQotICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUKLSAg
ICB0ZXN0X3R5cGUgPSBOb25lCisgICAgcmVzdWx0X2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NW
YXJbVHlwZVtSZXN1bHRdXQorICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUgICMgdHlwZTog
Q2xhc3NWYXJbVHlwZVtTdWJ0ZXN0UmVzdWx0XV0KKyAgICB0ZXN0X3R5cGUgPSBOb25lICAjIHR5
cGU6IENsYXNzVmFyW3N0cl0KIAogICAgIGRlZmF1bHRfdGltZW91dCA9IDEwICAjIHNlY29uZHMK
ICAgICBsb25nX3RpbWVvdXQgPSA2MCAgIyBzZWNvbmRzCiAKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLAotICAg
ICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLCBx
dWljPUZhbHNlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3Qs
IHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAg
dGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgc3ViZG9tYWluPUZhbHNl
LAorICAgICAgICAgICAgICAgICBxdWljPUZhbHNlKToKKyAgICAgICAgc2VsZi51cmxfYmFzZSA9
IHVybF9iYXNlCiAgICAgICAgIHNlbGYudGVzdHNfcm9vdCA9IHRlc3RzX3Jvb3QKICAgICAgICAg
c2VsZi51cmwgPSB1cmwKICAgICAgICAgc2VsZi5faW5oZXJpdF9tZXRhZGF0YSA9IGluaGVyaXRf
bWV0YWRhdGEKICAgICAgICAgc2VsZi5fdGVzdF9tZXRhZGF0YSA9IHRlc3RfbWV0YWRhdGEKICAg
ICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCBpZiB0aW1lb3V0IGlzIG5vdCBOb25lIGVsc2Ug
c2VsZi5kZWZhdWx0X3RpbWVvdXQKICAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotICAgICAgICBz
ZWxmLmVudmlyb25tZW50ID0geyJwcm90b2NvbCI6IHByb3RvY29sLCAicHJlZnMiOiBzZWxmLnBy
ZWZzLCAicXVpYyI6IHF1aWN9CisgICAgICAgIHNlbGYuc3ViZG9tYWluID0gc3ViZG9tYWluCisg
ICAgICAgIHNlbGYuZW52aXJvbm1lbnQgPSB7InVybF9iYXNlIjogdXJsX2Jhc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInByb3RvY29sIjogcHJvdG9jb2wsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInByZWZzIjogc2VsZi5wcmVmcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicXVpYyI6IHF1aWN9CiAKICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKICAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIFRlc3QpOgpAQCAtMTg0LDEzICsxOTAsMTUg
QEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmcm9tX21h
bmlmZXN0KGNscywgbWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSk6CiAgICAgICAgIHRpbWVvdXQgPSBjbHMubG9uZ190aW1lb3V0IGlm
IG1hbmlmZXN0X2l0ZW0udGltZW91dCA9PSAibG9uZyIgZWxzZSBjbHMuZGVmYXVsdF90aW1lb3V0
Ci0gICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAorICAgICAgICBy
ZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgbWFu
aWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0u
dXJsLAogICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAgICAgICAgICAg
ICAgICAgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQs
CiAgICAgICAgICAgICAgICAgICAgcGF0aD1vcy5wYXRoLmpvaW4obWFuaWZlc3RfZmlsZS50ZXN0
c19yb290LCBtYW5pZmVzdF9pdGVtLnBhdGgpLAotICAgICAgICAgICAgICAgICAgIHByb3RvY29s
PXNlcnZlcl9wcm90b2NvbChtYW5pZmVzdF9pdGVtKSkKKyAgICAgICAgICAgICAgICAgICBwcm90
b2NvbD1zZXJ2ZXJfcHJvdG9jb2wobWFuaWZlc3RfaXRlbSksCisgICAgICAgICAgICAgICAgICAg
c3ViZG9tYWluPW1hbmlmZXN0X2l0ZW0uc3ViZG9tYWluKQogCiAgICAgQHByb3BlcnR5CiAgICAg
ZGVmIGlkKHNlbGYpOgpAQCAtMjk5LDcgKzMwNyw3IEBAIGNsYXNzIFRlc3Qob2JqZWN0KToKICAg
ICAgICAgcnYgPSB7fQogICAgICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKE5vbmUpOgog
ICAgICAgICAgICAgdGhyZXNob2xkID0gbWV0YS5sZWFrX3RocmVzaG9sZAotICAgICAgICAgICAg
Zm9yIGtleSwgdmFsdWUgaW4gaXRlcml0ZW1zKHRocmVzaG9sZCk6CisgICAgICAgICAgICBmb3Ig
a2V5LCB2YWx1ZSBpbiB0aHJlc2hvbGQuaXRlbXMoKToKICAgICAgICAgICAgICAgICBpZiBrZXkg
bm90IGluIHJ2OgogICAgICAgICAgICAgICAgICAgICBydltrZXldID0gdmFsdWUKICAgICAgICAg
cmV0dXJuIHJ2CkBAIC0zNDEsNyArMzQ5LDcgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogCiAgICAg
ICAgIHRyeToKICAgICAgICAgICAgIGV4cGVjdGVkID0gbWV0YWRhdGEuZ2V0KCJleHBlY3RlZCIp
Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBzdHJpbmdfdHlwZXMpOgorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgc3RyKToKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZXhwZWN0ZWQKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgbGlz
dCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCkBAIC0zOTMsMTEgKzQwMSwx
MSBAQCBjbGFzcyBUZXN0aGFybmVzc1Rlc3QoVGVzdCk6CiAgICAgc3VidGVzdF9yZXN1bHRfY2xz
ID0gVGVzdGhhcm5lc3NTdWJ0ZXN0UmVzdWx0CiAgICAgdGVzdF90eXBlID0gInRlc3RoYXJuZXNz
IgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRh
ZGF0YSwgdGVzdF9tZXRhZGF0YSwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRl
c3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAg
ICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgdGVzdGRy
aXZlcj1GYWxzZSwKLSAgICAgICAgICAgICAgICAganNzaGVsbD1GYWxzZSwgc2NyaXB0cz1Ob25l
LCBxdWljPUZhbHNlKToKLSAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1
cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wsIHF1aWMpCisgICAgICAgICAgICAgICAgIGpzc2hl
bGw9RmFsc2UsIHNjcmlwdHM9Tm9uZSwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAg
ICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhl
cml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0aW1lb3V0LAorICAgICAgICAgICAgICAgICAg
ICAgIHBhdGgsIHByb3RvY29sLCBzdWJkb21haW4sIHF1aWMpCiAKICAgICAgICAgc2VsZi50ZXN0
ZHJpdmVyID0gdGVzdGRyaXZlcgogICAgICAgICBzZWxmLmpzc2hlbGwgPSBqc3NoZWxsCkBAIC00
MTIsNyArNDIwLDggQEAgY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICBzY3Jp
cHRfbWV0YWRhdGEgPSBtYW5pZmVzdF9pdGVtLnNjcmlwdF9tZXRhZGF0YSBvciBbXQogICAgICAg
ICBzY3JpcHRzID0gW3YgZm9yIChrLCB2KSBpbiBzY3JpcHRfbWV0YWRhdGEKICAgICAgICAgICAg
ICAgICAgICBpZiBrID09ICJzY3JpcHQiXQotICAgICAgICByZXR1cm4gY2xzKG1hbmlmZXN0X2Zp
bGUudGVzdHNfcm9vdCwKKyAgICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9maWxlLnVybF9iYXNl
LAorICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAg
ICAgICAgICAgICBtYW5pZmVzdF9pdGVtLnVybCwKICAgICAgICAgICAgICAgICAgICBpbmhlcml0
X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCkBAIC00MjIsNiAr
NDMxLDcgQEAgY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICAgICAgICAgICAg
IHRlc3Rkcml2ZXI9dGVzdGRyaXZlciwKICAgICAgICAgICAgICAgICAgICBqc3NoZWxsPWpzc2hl
bGwsCiAgICAgICAgICAgICAgICAgICAgc2NyaXB0cz1zY3JpcHRzLAorICAgICAgICAgICAgICAg
ICAgIHN1YmRvbWFpbj1tYW5pZmVzdF9pdGVtLnN1YmRvbWFpbiwKICAgICAgICAgICAgICAgICAg
ICBxdWljPXF1aWMpCiAKICAgICBAcHJvcGVydHkKQEAgLTQ1MiwxMSArNDYyLDExIEBAIGNsYXNz
IFJlZnRlc3RUZXN0KFRlc3QpOgogICAgIHJlc3VsdF9jbHMgPSBSZWZ0ZXN0UmVzdWx0CiAgICAg
dGVzdF90eXBlID0gInJlZnRlc3QiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9v
dCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2VzLAotICAg
ICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25l
LCBkcGk9Tm9uZSwgZnV6enk9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLAotICAgICAgICAgICAgICAg
ICBxdWljPUZhbHNlKToKLSAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1
cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wsIHF1aWMpCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRh
dGEsIHJlZmVyZW5jZXMsCisgICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25l
LCB2aWV3cG9ydF9zaXplPU5vbmUsIGRwaT1Ob25lLCBmdXp6eT1Ob25lLAorICAgICAgICAgICAg
ICAgICBwcm90b2NvbD0iaHR0cCIsIHN1YmRvbWFpbj1GYWxzZSwgcXVpYz1GYWxzZSk6CisgICAg
ICAgIFRlc3QuX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJp
dF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAg
ICBwYXRoLCBwcm90b2NvbCwgc3ViZG9tYWluLCBxdWljKQogCiAgICAgICAgIGZvciBfLCByZWZf
dHlwZSBpbiByZWZlcmVuY2VzOgogICAgICAgICAgICAgaWYgcmVmX3R5cGUgbm90IGluICgiPT0i
LCAiIT0iKToKQEAgLTQ4NiwxMyArNDk2LDE1IEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgog
CiAgICAgICAgIHVybCA9IG1hbmlmZXN0X3Rlc3QudXJsCiAKLSAgICAgICAgbm9kZSA9IGNscyht
YW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3RfZmls
ZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3Qs
CiAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfdGVzdC51cmwsCiAgICAgICAgICAgICAgICAg
ICAgaW5oZXJpdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0ZXN0X21ldGFkYXRhLAog
ICAgICAgICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9dGltZW91
dCwKICAgICAgICAgICAgICAgICAgICBwYXRoPW1hbmlmZXN0X3Rlc3QucGF0aCwKKyAgICAgICAg
ICAgICAgICAgICBzdWJkb21haW49bWFuaWZlc3RfdGVzdC5zdWJkb21haW4sCiAgICAgICAgICAg
ICAgICAgICAgcXVpYz1xdWljLAogICAgICAgICAgICAgICAgICAgICoqY2xzLmNsc19rd2FyZ3Mo
bWFuaWZlc3RfdGVzdCkpCiAKQEAgLTUwNywyMCArNTE5LDIzIEBAIGNsYXNzIFJlZnRlc3RUZXN0
KFRlc3QpOgogICAgICAgICAjIFBlciB0aGUgbG9naWMgZG9jdW1lbnRlZCBhYm92ZSwgdGhpcyBt
ZWFucyB0aGF0IG5vbmUgb2YgdGhlIG1pc21hdGNoZXMgcHJvdmlkZWQgbWF0Y2gsCiAgICAgICAg
IG1pc21hdGNoX3dhbGsgPSBOb25lCiAgICAgICAgIGlmIHJlZnNfYnlfdHlwZVsiIT0iXToKLSAg
ICAgICAgICAgIG1pc21hdGNoX3dhbGsgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnRlc3Rz
X3Jvb3QsCisgICAgICAgICAgICBtaXNtYXRjaF93YWxrID0gUmVmdGVzdFRlc3QobWFuaWZlc3Rf
ZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
YW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVmc19ieV90eXBlWyIhPSJdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10pCiAg
ICAgICAgICAgICBjbXBfcmVmID0gbWlzbWF0Y2hfd2FsawogICAgICAgICAgICAgZm9yIHJlZl91
cmwgaW4gcmVmc19ieV90eXBlWyIhPSJdWzE6XToKLSAgICAgICAgICAgICAgICBjbXBfc2VsZiA9
IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICBj
bXBfc2VsZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbXSkKICAgICAgICAgICAgICAgICBjbXBfcmVmLnJlZmVyZW5jZXMuYXBwZW5kKChjbXBfc2Vs
ZiwgIiE9IikpCi0gICAgICAgICAgICAgICAgY21wX3JlZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0
X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICBjbXBfcmVmID0gUmVmdGVzdFRlc3Qo
bWFuaWZlc3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWZfdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKQEAg
LTUzNiw3ICs1NTEsOCBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKICAgICAgICAgICAgICMg
Rm9yIGVhY2ggPT0gcmVmLCBhZGQgYSByZWZlcmVuY2UgdG8gdGhpcyBub2RlIHdob3NlIHRhaWwg
aXMgdGhlIG1pc21hdGNoIGxpc3QuCiAgICAgICAgICAgICAjIFBlciB0aGUgbG9naWMgZG9jdW1l
bnRlZCBhYm92ZSwgdGhpcyBtZWFucyBhbnkgb25lIG9mIHRoZSBtYXRjaGVzIG11c3QgcGFzcyBw
bHVzIGFsbCB0aGUgbWlzbWF0Y2hlcy4KICAgICAgICAgICAgIGZvciByZWZfdXJsIGluIHJlZnNf
YnlfdHlwZVsiPT0iXToKLSAgICAgICAgICAgICAgICByZWYgPSBSZWZ0ZXN0VGVzdChtYW5pZmVz
dF9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgcmVmID0gUmVmdGVzdFRlc3QobWFu
aWZlc3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
YW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLApAQCAtNjA1LDEyICs2MjEsMTIgQEAg
Y2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiBjbGFzcyBQcmludFJlZnRlc3RUZXN0KFJlZnRlc3RU
ZXN0KToKICAgICB0ZXN0X3R5cGUgPSAicHJpbnQtcmVmdGVzdCIKIAotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEs
IHJlZmVyZW5jZXMsCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290
LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMsCiAgICAg
ICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCB2aWV3cG9ydF9zaXplPU5vbmUs
IGRwaT1Ob25lLCBmdXp6eT1Ob25lLAotICAgICAgICAgICAgICAgICBwYWdlX3Jhbmdlcz1Ob25l
LCBwcm90b2NvbD0iaHR0cCIsIHF1aWM9RmFsc2UpOgotICAgICAgICBzdXBlcihQcmludFJlZnRl
c3RUZXN0LCBzZWxmKS5fX2luaXRfXyh0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEs
IHRlc3RfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2VzPU5vbmUsIHByb3Rv
Y29sPSJodHRwIiwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAgICAgICAgc3VwZXIo
UHJpbnRSZWZ0ZXN0VGVzdCwgc2VsZikuX19pbml0X18odXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVy
bCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcywgdGltZW91dCwgcGF0aCwgdmll
d3BvcnRfc2l6ZSwgZHBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdXp6eSwgcHJvdG9jb2wsIHF1aWM9cXVpYykKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnV6enksIHByb3RvY29sLCBzdWJkb21haW49c3Vi
ZG9tYWluLCBxdWljPXF1aWMpCiAgICAgICAgIHNlbGYuX3BhZ2VfcmFuZ2VzID0gcGFnZV9yYW5n
ZXMKIAogICAgIEBjbGFzc21ldGhvZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5
CmluZGV4IDcxMWFkNWFmNzlmMi4uYjgzNDc3ZTVjYTcyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2FjY2VwdF9hbGVydC9hY2NlcHQucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRf
YWxlcnQvYWNjZXB0LnB5CkBAIC0xLDcgKzEsOSBAQAoraW1wb3J0IHB5dGVzdAorCiBmcm9tIHdl
YmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0cy5zdXBwb3J0Lmhl
bHBlcnMgaW1wb3J0IHdhaXRfZm9yX25ld19oYW5kbGUKIGZyb20gdGVzdHMuc3VwcG9ydC5zeW5j
IGltcG9ydCBQb2xsCiAKIApAQCAtMTAsNyArMTIsNyBAQCBkZWYgYWNjZXB0X2FsZXJ0KHNlc3Np
b24pOgogICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9hbGVydC9hY2NlcHQi
LmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFs
dWUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQo
J0hlbGxvJyk7PC9zY3JpcHQ+IikKIAogICAgIHJlc3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNlc3Np
b24pCkBAIC0zMywyNyArMzUsNDEgQEAgZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCiAKIAotZGVmIHRl
c3RfYWNjZXB0X2FsZXJ0KHNlc3Npb24pOgorZGVmIHRlc3RfYWNjZXB0X2FsZXJ0KHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmFsZXJ0
KCdIZWxsbycpOzwvc2NyaXB0PiIpCisKICAgICByZXNwb25zZSA9IGFjY2VwdF9hbGVydChzZXNz
aW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisK
IAotZGVmIHRlc3RfYWNjZXB0X2NvbmZpcm0oc2Vzc2lvbik6CitkZWYgdGVzdF9hY2NlcHRfY29u
ZmlybShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0
PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cuY29uZmlybSgnSGVsbG8nKTs8L3NjcmlwdD4iKQorCiAg
ICAgcmVzcG9uc2UgPSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6
CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dAorCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0
ZV9zY3JpcHQoInJldHVybiB3aW5kb3cucmVzdWx0IikgaXMgVHJ1ZQogCiAKLWRlZiB0ZXN0X2Fj
Y2VwdF9wcm9tcHQoc2Vzc2lvbik6CitkZWYgdGVzdF9hY2NlcHRfcHJvbXB0KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzY3JpcHQ+CiAg
ICAgICAgICAgd2luZG93LnJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFtZTog
JywgJ0ZlZGVyZXInKTsKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgICIiIikKKwogICAgIHJl
c3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAg
ICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2Ny
aXB0KCJyZXR1cm4gd2luZG93LnJlc3VsdCIpID09ICJGZWRlcmVyIgogCiAKQEAgLTY4LDMgKzg0
LDI3IEBAIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfYWxlcnQoc2Vzc2lvbik6CiAKICAgICByZXNwb25z
ZSA9IGFjY2VwdF9hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQor
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAg
c2Vzc2lvbi5hbGVydC50ZXh0CisKKworZGVmIHRlc3RfYWNjZXB0X2luX3BvcHVwX3dpbmRvdyhz
ZXNzaW9uLCBpbmxpbmUpOgorICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcworCisg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCisgICAgICAgIDxidXR0b24gb25jbGljaz0id2lu
ZG93Lm9wZW4oJ2Fib3V0OmJsYW5rJywgJ19ibGFuaycsICd3aWR0aD01MDA7IGhlaWdodD0yMDA7
cmVzaXphYmxlPXllcycpOyI+b3BlbjwvYnV0dG9uPgorICAgICAgICAiIiIpCisgICAgYnV0dG9u
ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQorICAgIGJ1dHRvbi5jbGlj
aygpCisKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNl
c3Npb24sIG9yaWdfaGFuZGxlcykKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKKyAgICAg
ICAgPHNjcmlwdD53aW5kb3cuYWxlcnQoIkhlbGxvIik8L3NjcmlwdD4KKyAgICAgICAgIiIiKQor
CisgICAgcmVzcG9uc2UgPSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKKyAgICBhc3NlcnRfc3VjY2Vz
cyhyZXNwb25zZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlv
bik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkK
aW5kZXggZjA1MTUzNzkwMjYxLi4zYTE5NDMyZmM2YTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2llL2Fk
ZC5weQpAQCAtMSwxMyArMSwxMyBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIGRhdGV0aW1lIGlt
cG9ydCBkYXRldGltZSwgdGltZWRlbHRhCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCiAKIGZy
b20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVz
dHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjbGVhcl9hbGxfY29va2llcwogCisKIGRlZiBhZGRf
Y29va2llKHNlc3Npb24sIGNvb2tpZSk6CiAgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNl
bmQoCiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2Nvb2tpZSIuZm9ybWF0
KCoqdmFycyhzZXNzaW9uKSksCkBAIC01NCw2ICs1NCw0MyBAQCBkZWYgdGVzdF9ub19icm93c2lu
Z19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAg
ICAicGFnZSIsCisgICAgWworICAgICAgICAiYWJvdXQ6YmxhbmsiLAorICAgICAgICAiYmxvYjpm
b28vYmFyIiwKKyAgICAgICAgImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgsPHA+Zm9vPC9w
PiIsCisgICAgICAgICJmaWxlOi8vL2Zvby9iYXIiLAorICAgICAgICAiZnRwOi8vZXhhbXBsZS5v
cmciLAorICAgICAgICAiamF2YXNjcmlwdDpmb28iLAorICAgICAgICAid3M6Ly9leGFtcGxlLm9y
ZyIsCisgICAgICAgICJ3c3M6Ly9leGFtcGxlLm9yZyIsCisgICAgXSwKKyAgICBpZHM9WworICAg
ICAgICAiYWJvdXQiLAorICAgICAgICAiYmxvYiIsCisgICAgICAgICJkYXRhIiwKKyAgICAgICAg
ImZpbGUiLAorICAgICAgICAiZnRwIiwKKyAgICAgICAgImphdmFzY3JpcHQiLAorICAgICAgICAi
d2Vic29ja2V0IiwKKyAgICAgICAgInNlY3VyZSB3ZWJzb2NrZXQiLAorICAgIF0sCispCitkZWYg
dGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lKHNlc3Npb24sIHBhZ2UpOgorICAgIG5ld19j
b29raWUgPSB7CisgICAgICAgICJuYW1lIjogImhlbGxvIiwKKyAgICAgICAgInZhbHVlIjogIndv
cmxkIiwKKyAgICAgICAgImRvbWFpbiI6IHBhZ2UsCisgICAgICAgICJwYXRoIjogIi8iLAorICAg
ICAgICAiaHR0cE9ubHkiOiBGYWxzZSwKKyAgICAgICAgInNlY3VyZSI6IEZhbHNlCisgICAgfQor
CisgICAgcmVzdWx0ID0gYWRkX2Nvb2tpZShzZXNzaW9uLCBuZXdfY29va2llKQorICAgIGFzc2Vy
dF9lcnJvcihyZXN1bHQsICJpbnZhbGlkIGNvb2tpZSBkb21haW4iKQorCisKIGRlZiB0ZXN0X2Fk
ZF9kb21haW5fY29va2llKHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZyk6CiAgICAgbmV3X2Nv
b2tpZSA9IHsKICAgICAgICAgIm5hbWUiOiAiaGVsbG8iLApAQCAtNzIsMTEgKzEwOSwxMSBAQCBk
ZWYgdGVzdF9hZGRfZG9tYWluX2Nvb2tpZShzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcpOgog
CiAgICAgY29va2llID0gc2Vzc2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0ICJkb21h
aW4iIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0sIHRl
eHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCBzdHIpCiAg
ICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
Im5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJd
LCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29v
a2llWyJ2YWx1ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImhlbGxv
IgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gIndvcmxkIgpAQCAtMTAyLDExICsxMzks
MTEgQEAgZGVmIHRlc3RfYWRkX2Nvb2tpZV9mb3JfaXAoc2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29u
ZmlnLCBjb25maWd1cmF0aW9uKToKIAogICAgIGNvb2tpZSA9IHNlc3Npb24uY29va2llcygiaGVs
bG8iKQogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
Im5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAiZG9tYWluIiBpbiBjb29raWUK
LSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCB0ZXh0X3R5cGUpCisgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNv
b2tpZVsibmFtZSJdID09ICJoZWxsbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09ICJ3
b3JsZCIKQEAgLTEzMSw5ICsxNjgsOSBAQCBkZWYgdGVzdF9hZGRfbm9uX3Nlc3Npb25fY29va2ll
KHNlc3Npb24sIHVybCk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikK
ICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1l
Il0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b29raWVbInZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgImV4cGlyeSIgaW4gY29va2llCiAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJleHBpcnkiXSwgaW50KQogCkBAIC0xNTYsOSArMTkz
LDkgQEAgZGVmIHRlc3RfYWRkX3Nlc3Npb25fY29va2llKHNlc3Npb24sIHVybCk6CiAKICAgICBj
b29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNv
b2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZh
bHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRl
eHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAg
ICBpZiAiZXhwaXJ5IiBpbiBjb29raWU6CiAgICAgICAgIGFzc2VydCBjb29raWUuZ2V0KCJleHBp
cnkiKSBpcyBOb25lCiAKQEAgLTE4MSwxMSArMjE4LDExIEBAIGRlZiB0ZXN0X2FkZF9zZXNzaW9u
X2Nvb2tpZV93aXRoX2xlYWRpbmdfZG90X2NoYXJhY3Rlcl9pbl9kb21haW4oc2Vzc2lvbiwgdXJs
LCBzCiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQg
Im5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0
ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAg
ICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
InZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVl
Il0sIHN0cikKICAgICBhc3NlcnQgImRvbWFpbiIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5z
dGFuY2UoY29va2llWyJkb21haW4iXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvb2tpZVsiZG9tYWluIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAi
aGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAid29ybGQiCkBAIC0yMDksMTEg
KzI0NiwxMSBAQCBkZWYgdGVzdF9hZGRfY29va2llX3dpdGhfdmFsaWRfc2FtZXNpdGVfZmxhZyhz
ZXNzaW9uLCB1cmwsIHNhbWVfc2l0ZSk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMo
ImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29v
a2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBj
b29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlw
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAg
IGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFs
dWUiXSA9PSAid29ybGQiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2JhY2svYmFjay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvYmFjay9iYWNrLnB5CmluZGV4IDljYTUyZThmMjIzZS4uODZhZDIy
NzhhYjM5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2JhY2svYmFjay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2JhY2svYmFjay5weQpAQCAtMSw0ICsxLDYgQEAKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQoraW1wb3J0IHB5dGVzdAorZnJvbSB3ZWJkcml2ZXIg
aW1wb3J0IGVycm9yCisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtNyw3ICs5LDcgQEAgZGVmIGJhY2soc2Vzc2lv
bik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2JhY2siLmZvcm1hdCgq
KnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lv
bik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+IikKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PHA+IikKIApAQCAtMzEsNyArMzMsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19oaXN0b3J5KHNl
c3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0X2RhdGFf
dXJscyhzZXNzaW9uKToKK2RlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHRlc3RfcGFnZXMgPSBbCiAgICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5s
aW5lKCI8cCBpZD0yPiIpLApAQCAtNDYsNyArNDgsNyBAQCBkZWYgdGVzdF9kYXRhX3VybHMoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRlc3RfcGFnZXNbMF0KIAogCi1kZWYg
dGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2Vk
X2JlZm9yZXVubG9hZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHVybF9iZWZvcmV1bmxvYWQgPSBp
bmxpbmUoIiIiCiAgICAgICA8aW5wdXQgdHlwZT0idGV4dCI+CiAgICAgICA8c2NyaXB0PgpAQCAt
ODgsNyArOTAsNyBAQCBkZWYgdGVzdF9mcmFnbWVudHMoc2Vzc2lvbiwgdXJsKToKICAgICBhc3Nl
cnQgc2Vzc2lvbi51cmwgPT0gdGVzdF9wYWdlc1swXQogCiAKLWRlZiB0ZXN0X2hpc3RvcnlfcHVz
aHN0YXRlKHNlc3Npb24sIHVybCk6CitkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHB1c2hzdGF0ZV9wYWdlID0gaW5saW5lKCIiIgogICAgICAgPHNjcmlw
dD4KICAgICAgICAgZnVuY3Rpb24gcHVzaFN0YXRlKCkgewpAQCAtMTA5LDMgKzExMSw0MiBAQCBk
ZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgogCiAgICAgYXNzZXJ0IHNl
c3Npb24udXJsID09IHB1c2hzdGF0ZV9wYWdlCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9z
Y3JpcHQoInJldHVybiBoaXN0b3J5LnN0YXRlOyIpIGlzIE5vbmUKKworCitkZWYgdGVzdF9yZW1v
dmVkX2lmcmFtZShzZXNzaW9uLCB1cmwsIGlubGluZSk6CisgICAgcGFnZSA9IGlubGluZSgiPHA+
Zm9vIikKKworICAgIHNlc3Npb24udXJsID0gcGFnZQorICAgIHNlc3Npb24udXJsID0gdXJsKCIv
d2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sIikKKwor
ICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkK
KyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHJlc3BvbnNlID0gYmFj
ayhzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNl
c3Npb24udXJsID09IHBhZ2UKKworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8g
dmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxp
dGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdp
bihzZXNzaW9uLCB1cmwpOgorICAgIGJhc2VfcGF0aCA9ICgiL3dlYmRyaXZlci90ZXN0cy9zdXBw
b3J0L2h0bWwvc3ViZnJhbWUuaHRtbCIgKworICAgICAgICAgICAgICAgICAiP3BpcGU9aGVhZGVy
KENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5LHNhbWUtb3JpZ2luIikKKyAgICBmaXJzdF9wYWdl
ID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBzIikKKyAgICBzZWNvbmRfcGFnZSA9IHVy
bChiYXNlX3BhdGgsIHByb3RvY29sPSJodHRwcyIsIGRvbWFpbj0iYWx0IikKKworICAgIHNlc3Np
b24udXJsID0gZmlyc3RfcGFnZQorICAgIHNlc3Npb24udXJsID0gc2Vjb25kX3BhZ2UKKworICAg
IGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQorCisgICAgcmVz
cG9uc2UgPSBiYWNrKHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAg
ICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gZmlyc3RfcGFnZQorCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKGVycm9yLlN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgICAgIGVsZW0u
Y2xpY2soKQorICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNl
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9iYWNrL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvYmFjay91c2VyX3Byb21wdHMucHkKaW5kZXggNzEyMWY3YzZiMmE2Li45ZDA0
ZjBmNGFiMTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvYmFjay91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iYWNrL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYg
QEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0
ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGJhY2soc2Vzc2lvbik6
CkBAIC0xMiw3ICsxMSw3IEBAIGRlZiBiYWNrKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIHBhZ2VzKHNlc3Npb24pOgorZGVmIHBhZ2VzKHNlc3Npb24sIGlubGluZSk6CiAgICAg
cGFnZXMgPSBbCiAgICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5saW5lKCI8
cCBpZD0yPiIpLApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL19faW5pdF9fLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Jp
ZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvYmlkaS9uZXdfc2Vzc2lvbi9jb25uZWN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzU3ZGEzMWJhODYyCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25ld19z
ZXNzaW9uL2Nvbm5lY3QucHkKQEAgLTAsMCArMSwzNCBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0
IGFzeW5jaW8KK2ltcG9ydCB3ZWJzb2NrZXRzCitpbXBvcnQgd2ViZHJpdmVyCisKKyMgY2xhc3Np
YyBzZXNzaW9uIHRvIGVuYWJsZSBiaWRpIGNhcGFiaWxpdHkgbWFudWFsbHkKKyMgSW50ZW5kZWQg
dG8gYmUgdGhlIGZpcnN0IHRlc3QgaW4gdGhpcyBmaWxlCitAcHl0ZXN0Lm1hcmsuYXN5bmNpbwor
QHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7IndlYlNvY2tldFVybCI6IFRydWV9KQorYXN5bmMg
ZGVmIHRlc3Rfd2Vic29ja2V0X3VybF9jb25uZWN0KHNlc3Npb24pOgorICAgIHdlYnNvY2tldF91
cmwgPSBzZXNzaW9uLmNhcGFiaWxpdGllc1sid2ViU29ja2V0VXJsIl0KKyAgICBhc3luYyB3aXRo
IHdlYnNvY2tldHMuY29ubmVjdCh3ZWJzb2NrZXRfdXJsKSBhcyB3ZWJzb2NrZXQ6CisgICAgICAg
IGF3YWl0IHdlYnNvY2tldC5zZW5kKCJIZWxsbyB3b3JsZCEiKQorCisjIHRlc3QgYmlkaV9zZXNz
aW9uIHNlbmQKKyMgdXNpbmcgYmlkaV9zZXNzaW9uIGlzIHRoZSByZWNvbW1lbmRlZCB3YXkgdG8g
dGVzdCBiaWRpCitAcHl0ZXN0Lm1hcmsuYXN5bmNpbworYXN5bmMgZGVmIHRlc3RfYmlkaV9zZXNz
aW9uX3NlbmQoYmlkaV9zZXNzaW9uKToKKyAgICBhd2FpdCBiaWRpX3Nlc3Npb24uc2VuZF9jb21t
YW5kKCJ0ZXN0LnRlc3QiLCB7fSkKKworIyBiaWRpIHNlc3Npb24gZm9sbG93aW5nIGEgYmlkaSBz
ZXNzaW9uIHdpdGggYSBkaWZmZXJlbnQgY2FwYWJpbGl0aWVzCisjIHRvIHRlc3Qgc2Vzc2lvbiBy
ZWNyZWF0aW9uCitAcHl0ZXN0Lm1hcmsuYXN5bmNpbworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGll
cyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2FzeW5jIGRlZiB0ZXN0X2JpZGlfc2Vz
c2lvbl93aXRoX2RpZmZlcmVudF9jYXBhYmlsaXR5KGJpZGlfc2Vzc2lvbik6CisgICAgYXdhaXQg
YmlkaV9zZXNzaW9uLnNlbmRfY29tbWFuZCgidGVzdC50ZXN0Iiwge30pCisKKyMgY2xhc3NpYyBz
ZXNzaW9uIGZvbGxvd2luZyBhIGJpZGkgc2Vzc2lvbiB0byB0ZXN0IHNlc3Npb24KKyMgcmVjcmVh
dGlvbgorIyBJbnRlbmRlZCB0byBiZSB0aGUgbGFzdCB0ZXN0IGluIHRoaXMgZmlsZSB0byBtYWtl
IHN1cmUKKyMgY2xhc3NpYyBzZXNzaW9uIGlzIG5vdCBpbXBhY3RlZCBieSBiaWRpIHRlc3RzCitA
cHl0ZXN0Lm1hcmsuYXN5bmNpbworZGVmIHRlc3RfY2xhc3NpY19hZnRlcl9iaWRpX3Nlc3Npb24o
c2Vzc2lvbik6CisgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHNlc3Npb24sIHdlYmRyaXZlci5i
aWRpLkJpZGlTZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Nsb3NlX3dpbmRvdy9jbG9zZS5weQppbmRleCA1
M2FmNTczMGY4M2YuLjdiMzgyZmE5YmJjYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xv
c2UucHkKQEAgLTIsNyArMiw2IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyIGltcG9y
dCBlcnJvcgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogZGVmIGNsb3NlKHNlc3Npb24pOgpAQCAtNDYsNyArNDUsNyBAQCBkZWYgdGVzdF9jbG9z
ZV9icm93c2luZ19jb250ZXh0KHNlc3Npb24pOgogICAgIGFzc2VydCBuZXdfaGFuZGxlIG5vdCBp
biBoYW5kbGVzCiAKIAotZGVmIHRlc3RfY2xvc2VfYnJvd3NpbmdfY29udGV4dF93aXRoX2Rpc21p
c3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNlc3Npb24pOgorZGVmIHRlc3RfY2xvc2VfYnJvd3Np
bmdfY29udGV4dF93aXRoX2Rpc21pc3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgb3JpZ2luYWxfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcwogCiAgICAgbmV3
X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCkBAIC04MSwzICs4MCwyMyBAQCBkZWYgdGVz
dF9jbG9zZV9sYXN0X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbik6CiAKICAgICAjIFdpdGggbm8g
bW9yZSBvcGVuIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0cywgdGhlIHNlc3Npb24gaXMgY2xv
c2VkLgogICAgIHNlc3Npb24uc2Vzc2lvbl9pZCA9IE5vbmUKKworCitkZWYgdGVzdF9lbGVtZW50
X3VzYWdlX2FmdGVyX2Nsb3NpbmdfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBpbmxpbmUpOgor
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0nYSc+Zm9vIikKKyAgICBhID0gc2Vzc2lv
bi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKKyAgICBmaXJzdCA9IHNlc3Npb24ud2luZG93X2hh
bmRsZQorCisgICAgc2Vjb25kID0gc2Vzc2lvbi5uZXdfd2luZG93KHR5cGVfaGludD0idGFiIikK
KyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZWNvbmQKKworICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8cCBpZD0nYic+b3RoZXIiKQorICAgIGIgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwg
YWxsPUZhbHNlKQorCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gZmlyc3QKKyAgICByZXNw
b25zZSA9IGNsb3NlKHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAg
YXNzZXJ0IGxlbihzZXNzaW9uLmhhbmRsZXMpID09IDEKKworICAgIHNlc3Npb24ud2luZG93X2hh
bmRsZSA9IHNlY29uZAorICAgIGFzc2VydCBiLmF0dHJpYnV0ZSgiaWQiKSA9PSAiYiIKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVsZXRl
X3Nlc3Npb24vZGVsZXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9kZWxldGVfc2Vzc2lvbi9kZWxldGUucHkKaW5kZXggZDBiNGQ3OTYzMDhlLi5hMzAz
MmNjMTM0NzUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVsZXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVsZXRlLnB5CkBAIC0y
LDcgKzIsNiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKIAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRl
c3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZGVsZXRlX3Nlc3Npb24o
c2Vzc2lvbik6CkBAIC0xOSw3ICsxOCw3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUo
c2Vzc2lvbik6CiAgICAgc2Vzc2lvbi5lbmQoKQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZv
cmV1bmxvYWRfcHJvbXB0KHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9h
ZF9wcm9tcHQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIK
ICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxlcnQv
ZGlzbWlzcy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZGlzbWlzc19hbGVydC9kaXNtaXNzLnB5CmluZGV4IGRhNjViYWMzODhkZi4uYTI4ZGVjNzY4NzUw
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weQpAQCAtMSw3ICsxLDkg
QEAKK2ltcG9ydCBweXRlc3QKKwogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFs
ZXJ0RXhjZXB0aW9uCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCB3YWl0X2Zvcl9uZXdfaGFu
ZGxlCiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTEwLDcgKzEy
LDcgQEAgZGVmIGRpc21pc3NfYWxlcnQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Np
b24ve3Nlc3Npb25faWR9L2FsZXJ0L2Rpc21pc3MiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQog
CiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0ZXN0
X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+IikKIAogICAg
IHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQpAQCAtMzMsMjggKzM1LDQ1IEBAIGRl
ZiB0ZXN0X25vX3VzZXJfcHJvbXB0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggYWxlcnQiKQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfYWxlcnQoc2Vzc2lvbik6
CitkZWYgdGVzdF9kaXNtaXNzX2FsZXJ0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwvc2NyaXB0PiIpCisK
ICAgICByZXNwb25zZSA9IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2Vz
cyhyZXNwb25zZSkKIAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlv
bik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dAorCiAKLWRlZiB0ZXN0X2Rpc21pc3NfY29u
ZmlybShzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21pc3NfY29uZmlybShzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5k
b3cuY29uZmlybSgnSGVsbG8nKTs8L3NjcmlwdD4iKQorCiAgICAgcmVzcG9uc2UgPSBkaXNtaXNz
X2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFs
ZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2lu
ZG93LnJlc3VsdDsiKSBpcyBGYWxzZQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfcHJvbXB0KHNlc3Np
b24pOgotICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3
aW5kb3cucHJvbXB0KCdFbnRlciBZb3VyIE5hbWU6ICcsICdGZWRlcmVyJyk7PC9zY3JpcHQ+IikK
K2RlZiB0ZXN0X2Rpc21pc3NfcHJvbXB0KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiCisgICAgICAgIDxzY3JpcHQ+d2luZG93LnJlc3VsdCA9IHdpbmRvdy5w
cm9tcHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4KKyAgICAgICAg
IiIiKQorCiAgICAgcmVzcG9uc2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0
X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRF
eGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNz
aW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LnJlc3VsdCIpIGlzIE5vbmUKIAogCiBk
ZWYgdGVzdF91bmV4cGVjdGVkX2FsZXJ0KHNlc3Npb24pOgogICAgIHNlc3Npb24uZXhlY3V0ZV9z
Y3JpcHQoInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGFsZXJ0KCdIZWxsbycpOyB9LCAxMDApOyIp
CisKICAgICB3YWl0ID0gUG9sbCgKICAgICAgICAgc2Vzc2lvbiwKICAgICAgICAgdGltZW91dD01
LApAQCAtNjQsMyArODMsMjcgQEAgZGVmIHRlc3RfdW5leHBlY3RlZF9hbGVydChzZXNzaW9uKToK
IAogICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0
aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKKworZGVmIHRlc3RfZGlzbWlzc19p
bl9wb3B1cF93aW5kb3coc2Vzc2lvbiwgaW5saW5lKToKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNz
aW9uLmhhbmRsZXMKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgorICAgICAgICA8YnV0
dG9uIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsICdfYmxhbmsnLCAnd2lkdGg9
NTAwOyBoZWlnaHQ9MjAwO3Jlc2l6YWJsZT15ZXMnKTsiPm9wZW48L2J1dHRvbj4KKyAgICAgICAg
IiIiKQorICAgIGJ1dHRvbiA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkK
KyAgICBidXR0b24uY2xpY2soKQorCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2FpdF9m
b3JfbmV3X2hhbmRsZShzZXNzaW9uLCBvcmlnX2hhbmRsZXMpCisgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiCisgICAgICAgIDxzY3JpcHQ+d2luZG93LmFsZXJ0KCJIZWxsbyIpPC9zY3JpcHQ+
CisgICAgICAgICIiIikKKworICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQor
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5v
U3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xlYXIvY2xlYXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfY2xlYXIvY2xlYXIucHkKaW5kZXggMDE4OWMzOGMyNzcwLi5iNjVmNDQzYWE3
NTggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9jbGVhci9jbGVhci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvY2xlYXIucHkKQEAgLTExLDcgKzExLDYg
QEAgZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfaW5fZXZl
bnRzLAogICAgIGFzc2VydF9zdWNjZXNzLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiAKIAogQHB5dGVzdC5maXh0dXJlCkBAIC0zNyw3ICszNiw3IEBAIGRlZiB0
ZXh0X2ZpbGUodG1wZGlyX2ZhY3RvcnkpOgogICAgIHJldHVybiBmaAogCiAKLWRlZiB0ZXN0X251
bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVl
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAt
NDgsMTAgKzQ3LDE3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAK
IGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cp
OgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQorICAgIHJlc3BvbnNlID0g
ZWxlbWVudF9jbGVhcihzZXNzaW9uLCBlbGVtZW50KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNs
b3NlZF93aW5kb3cKICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxlbWVu
dCkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBz
ZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGVs
ZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxlbWVudCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lv
bikKQEAgLTYwLDcgKzY2LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9u
LCBjbG9zZWRfZnJhbWUpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2lu
ZG93IikKIAogCi1kZWYgdGVzdF9jb25uZWN0ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0
X2Nvbm5lY3RlZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKIApAQCAtNjksNyArNzUsNyBAQCBkZWYgdGVzdF9jb25uZWN0ZWRfZWxlbWVu
dChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJzdGFsZSBlbGVtZW50IHJl
ZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6Citk
ZWYgdGVzdF9wb2ludGVyX2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgc3R5bGU9J21hcmdpbi1sZWZ0OiAtMTAwMHB4JyB2YWx1
ZT1mb29iYXI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9
RmFsc2UpCiAKQEAgLTc3LDcgKzgzLDcgQEAgZGVmIHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFibGUo
c2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJh
Y3RhYmxlIikKIAogCi1kZWYgdGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbik6Citk
ZWYgdGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGlucHV0IHZhbHVlPWZvb2Jhcj4KICAgICAg
ICAgPGRpdj48L2Rpdj4KQEAgLTExNCw3ICsxMjAsNyBAQCBkZWYgdGVzdF9rZXlib2FyZF9pbnRl
cmFjdGFibGUoc2Vzc2lvbik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGltZSIsICIx
OTo0OCIsICIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJtb250aCIsICIyMDE3LTEx
IiwgIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoIndlZWsiLCAiMjAxNy1XNTIiLCAi
IildKQotZGVmIHRlc3RfaW5wdXQoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tl
ZF9ldmVudHMsIHR5cGUsIHZhbHVlLCBkZWZhdWx0KToKK2RlZiB0ZXN0X2lucHV0KHNlc3Npb24s
IGlubGluZSwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHR5cGUsIHZhbHVl
LCBkZWZhdWx0KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9JXMgdmFs
dWU9JyVzJz4iICUgKHR5cGUsIHZhbHVlKSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0
cmFja2VkX2V2ZW50cykKQEAgLTE0NCw3ICsxNTAsNyBAQCBkZWYgdGVzdF9pbnB1dChzZXNzaW9u
LCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgdHlwZSwgdmFsdWUsIGRlZmF1
bAogICAgICAgICAgICAgICAgICAgICAgICAgICAibW9udGgiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2VlayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIl0pCi1kZWYg
dGVzdF9pbnB1dF9kaXNhYmxlZChzZXNzaW9uLCB0eXBlKToKK2RlZiB0ZXN0X2lucHV0X2Rpc2Fi
bGVkKHNlc3Npb24sIGlubGluZSwgdHlwZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dCB0eXBlPSVzIGRpc2FibGVkPiIgJSB0eXBlKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTY5LDcgKzE3NSw3IEBAIGRlZiB0ZXN0
X2lucHV0X2Rpc2FibGVkKHNlc3Npb24sIHR5cGUpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAibW9udGgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAid2VlayIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJmaWxlIl0pCi1kZWYgdGVzdF9pbnB1dF9yZWFkb25seShzZXNzaW9u
LCB0eXBlKToKK2RlZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIGlubGluZSwgdHlwZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzIHJlYWRvbmx5PiIgJSB0
eXBlKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
IApAQCAtMTc3LDcgKzE4Myw3IEBAIGRlZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIHR5
cGUpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0ZSIp
CiAKIAotZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJh
Y2tlZF9ldmVudHMpOgorZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZl
bnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
Ijx0ZXh0YXJlYT5mb29iYXI8L3RleHRhcmVhPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoInRleHRhcmVhIiwgYWxsPUZhbHNlKQogICAgIGFkZF9ldmVudF9saXN0ZW5lcnMoZWxl
bWVudCwgdHJhY2tlZF9ldmVudHMpCkBAIC0xODksNyArMTk1LDcgQEAgZGVmIHRlc3RfdGV4dGFy
ZWEoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIGFz
c2VydF9pbl9ldmVudHMoc2Vzc2lvbiwgWyJmb2N1cyIsICJjaGFuZ2UiLCAiYmx1ciJdKQogCiAK
LWRlZiB0ZXN0X3RleHRhcmVhX2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFyZWFf
ZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRl
eHRhcmVhIGRpc2FibGVkPjwvdGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygidGV4dGFyZWEiLCBhbGw9RmFsc2UpCiAKQEAgLTE5Nyw3ICsyMDMsNyBAQCBkZWYgdGVz
dF90ZXh0YXJlYV9kaXNhYmxlZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0ZXN0X3RleHRhcmVhX3JlYWRvbmx5
KHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFyZWFfcmVhZG9ubHkoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRleHRhcmVhIHJlYWRvbmx5PjwvdGV4dGFyZWE+
IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBhbGw9RmFsc2Up
CiAKQEAgLTIwNSw3ICsyMTEsNyBAQCBkZWYgdGVzdF90ZXh0YXJlYV9yZWFkb25seShzZXNzaW9u
KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQog
CiAKLWRlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2RlZiB0ZXN0X2lu
cHV0X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8aW5wdXQgdHlwZT1maWxlPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGVsZW1lbnQuc2VuZF9rZXlzKHN0cih0ZXh0X2Zp
bGUpKQpAQCAtMjE1LDcgKzIyMSw3IEBAIGRlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vzc2lvbiwgdGV4
dF9maWxlKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgogCiAK
LWRlZiB0ZXN0X2lucHV0X2ZpbGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2RlZiB0
ZXN0X2lucHV0X2ZpbGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIG11bHRpcGxlPiIpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGVsZW1l
bnQuc2VuZF9rZXlzKHN0cih0ZXh0X2ZpbGUpKQpAQCAtMjI2LDcgKzIzMiw3IEBAIGRlZiB0ZXN0
X2lucHV0X2ZpbGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKICAgICBhc3NlcnQgZWxl
bWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X3NlbGVjdChzZXNzaW9u
KToKK2RlZiB0ZXN0X3NlbGVjdChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAgIDxvcHRpb24+Zm9vCkBAIC0y
NDEsNyArMjQ3LDcgQEAgZGVmIHRlc3Rfc2VsZWN0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRlc3RfYnV0dG9u
KHNlc3Npb24pOgorZGVmIHRlc3RfYnV0dG9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxidXR0b24+PC9idXR0b24+IikKICAgICBidXR0b24gPSBzZXNzaW9u
LmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAKQEAgLTI0OSw3ICsyNTUsNyBAQCBkZWYg
dGVzdF9idXR0b24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxp
ZCBlbGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVzdF9idXR0b25fd2l0aF9zdWJ0cmVlKHNlc3Np
b24pOgorZGVmIHRlc3RfYnV0dG9uX3dpdGhfc3VidHJlZShzZXNzaW9uLCBpbmxpbmUpOgogICAg
ICIiIgogICAgIEVsZW1lbnRzIGluc2lkZSBidXR0b24gZWxlbWVudHMgYXJlIGludGVyYWN0YWJs
ZS4KICAgICAiIiIKQEAgLTI2NCw3ICsyNzAsNyBAQCBkZWYgdGVzdF9idXR0b25fd2l0aF9zdWJ0
cmVlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0
X2NvbnRlbnRlZGl0YWJsZShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2
ZW50cyk6CitkZWYgdGVzdF9jb250ZW50ZWRpdGFibGUoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZl
bnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxwIGNvbnRlbnRlZGl0YWJsZT5mb29iYXI8L3A+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygicCIsIGFsbD1GYWxzZSkKICAgICBhZGRfZXZlbnRfbGlzdGVuZXJzKGVsZW1lbnQs
IHRyYWNrZWRfZXZlbnRzKQpAQCAtMjc3LDcgKzI4Myw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRlZGl0
YWJsZShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAg
YXNzZXJ0X2VsZW1lbnRfaGFzX2ZvY3VzKHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBk
b2N1bWVudC5ib2R5IikpCiAKIAotZGVmIHRlc3RfZGVzaWdubW9kZShzZXNzaW9uKToKK2RlZiB0
ZXN0X2Rlc2lnbm1vZGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiZm9vYmFyIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYm9keSIsIGFsbD1G
YWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgiaW5uZXJIVE1MIikgPT0gImZvb2Jh
ciIKQEAgLTI4OSw3ICsyOTUsNyBAQCBkZWYgdGVzdF9kZXNpZ25tb2RlKHNlc3Npb24pOgogICAg
IGFzc2VydF9lbGVtZW50X2hhc19mb2N1cyhzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4g
ZG9jdW1lbnQuYm9keSIpKQogCiAKLWRlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9mb2N1c193
aGVuX2VtcHR5KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKToK
K2RlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9mb2N1c193aGVuX2VtcHR5KHNlc3Npb24sIGlu
bGluZSwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0cmFj
a2VkX2V2ZW50cykKQEAgLTMxMyw3ICszMTksNyBAQCBkZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1l
bnRfZm9jdXNfd2hlbl9lbXB0eShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFjawog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInRpbWUiLCAiZm9vIiksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgibW9udGgiLCAiZm9vIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgid2VlayIsICJmb28iKV0pCi1kZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRfZG9lc19ub3Rf
c2F0aXNmeV92YWxpZGF0aW9uX2NvbnN0cmFpbnRzKHNlc3Npb24sIHR5cGUsIGludmFsaWRfdmFs
dWUpOgorZGVmIHRlc3RfcmVzZXR0YWJsZV9lbGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFsaWRh
dGlvbl9jb25zdHJhaW50cyhzZXNzaW9uLCBpbmxpbmUsIHR5cGUsIGludmFsaWRfdmFsdWUpOgog
ICAgICIiIgogICAgIFNvbWUgVUFzIGFsbG93IGludmFsaWQgaW5wdXQgdG8gY2VydGFpbiB0eXBl
cyBvZiBjb25zdHJhaW5lZAogICAgIGZvcm0gY29udHJvbHMuICBGb3IgZXhhbXBsZSwgR2Vja28g
YWxsb3dzIG5vbi12YWxpZCBjaGFyYWN0ZXJzCkBAIC0zNTAsNyArMzU2LDcgQEAgZGVmIHRlc3Rf
cmVzZXR0YWJsZV9lbGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFsaWRhdGlvbl9jb25zdHJhaW50
cyhzZXNzaW9uLCB0eXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1Ym1pdCIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJidXR0b24iLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaW1hZ2UiXSkKLWRlZiB0ZXN0X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlwZSk6
CitkZWYgdGVzdF9ub25fZWRpdGFibGVfaW5wdXRzKHNlc3Npb24sIGlubGluZSwgdHlwZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzPiIgJSB0eXBlKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzU4LDcg
KzM2NCw3IEBAIGRlZiB0ZXN0X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlwZSk6CiAg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0YXRlIikKIAogCi1k
ZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24pOgorZGVmIHRlc3Rfc2Nyb2xsX2ludG9f
dmlldyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAg
ICAgICA8aW5wdXQgdmFsdWU9Zm9vYmFyPgogICAgICAgICA8ZGl2IHN0eWxlPSdoZWlnaHQ6IDIw
MHZoOyB3aWR0aDogNTAwMHZoJz4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvdXNl
cl9wcm9tcHRzLnB5CmluZGV4IGNmYjg1MGUwOGQ1YS4uN2E4NTY0YTY4NGE3IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xl
YXIvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBA
CiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsZWFyKHNl
c3Npb24sIGVsZW1lbnQpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZWxlbWVudF9jbGVhcihzZXNz
aW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5
cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCkBAIC01Niw3ICs1NSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xp
Y2svYnViYmxpbmcucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcucHkKaW5kZXggYTA2OWE1YTVkZjNkLi43NjIwZWMz
MjI0ZmMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9jbGljay9idWJibGluZy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcucHkKQEAgLTEs
NSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nl
c3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVt
ZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1lbnRf
Y2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQu
aWQpKQogCiAKLWRlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9u
KToKK2RlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c3R5bGU+CiAgICAg
ICAgIGJvZHkgKiB7CkBAIC00NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJs
ZXNfdG9fcGFyZW50cyhzZXNzaW9uKToKICAgICBhc3NlcnQgdGhyZWUgaW4gY2xpY2tzCiAKIAot
ZGVmIHRlc3Rfc3Bpbl9ldmVudF9sb29wKHNlc3Npb24pOgorZGVmIHRlc3Rfc3Bpbl9ldmVudF9s
b29wKHNlc3Npb24sIGlubGluZSk6CiAgICAgIiIiCiAgICAgV2FpdCB1bnRpbCB0aGUgdXNlciBh
Z2VudCBldmVudCBsb29wIGhhcyBzcHVuIGVub3VnaCB0aW1lcyB0bwogICAgIHByb2Nlc3MgdGhl
IERPTSBldmVudHMgZ2VuZXJhdGVkIGJ5IGNsaWNraW5nLgpAQCAtODYsNyArODUsNyBAQCBkZWYg
dGVzdF9zcGluX2V2ZW50X2xvb3Aoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHRocmVlIGluIGRlbGF5
ZWRfY2xpY2tzCiAKIAotZGVmIHRlc3RfZWxlbWVudF9kaXNhcHBlYXJzX2R1cmluZ19jbGljayhz
ZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfZGlzYXBwZWFyc19kdXJpbmdfY2xpY2soc2Vzc2lv
biwgaW5saW5lKToKICAgICAiIiIKICAgICBXaGVuIGFuIGVsZW1lbnQgaW4gdGhlIGV2ZW50IGJ1
YmJsaW5nIG9yZGVyIGRpc2FwcGVhcnMgKGl0cyBDU1MKICAgICBkaXNwbGF5IHN0eWxlIGlzIHNl
dCB0byAibm9uZSIpIGR1cmluZyBhIGNsaWNrLCBHZWNrbyBhbmQgQmxpbmsKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGlj
ay9jZW50ZXJfcG9pbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xpY2svY2VudGVyX3BvaW50LnB5CmluZGV4IGRhNjBhMDg3Mjc3ZC4u
ZWYwYzlhN2ZlMjdkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2VudGVyX3BvaW50LnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jZW50ZXJf
cG9pbnQucHkKQEAgLTIsNyArMiw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVz
dHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjZW50ZXJfcG9pbnQKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVs
ZW1lbnQpOgpAQCAtMTIsNyArMTEsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVt
ZW50KToKICAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHNxdWFy
ZShzaXplKToKK2RlZiBzcXVhcmUoaW5saW5lLCBzaXplKToKICAgICByZXR1cm4gaW5saW5lKCIi
IgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGJvZHkge3sgbWFyZ2luOiAwIH19CkBAIC00MSw4
ICs0MCw4IEBAIGRlZiBhc3NlcnRfb25lX2NsaWNrKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBs
ZShjbGlja3NbMF0pCiAKIAotZGVmIHRlc3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uKToKLSAg
ICBzZXNzaW9uLnVybCA9IHNxdWFyZSg0NDQpCitkZWYgdGVzdF9lbnRpcmVseV9pbl92aWV3KHNl
c3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoaW5saW5lLCA0NDQpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiN0YXJnZXQiLCBhbGw9RmFsc2UpCiAKICAg
ICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKQEAgLTUzLDggKzUy
LDggQEAgZGVmIHRlc3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInNpemUiLCByYW5nZSgxLCAxMSkpCi1kZWYgdGVzdF9jc3NfcGl4ZWxf
cm91bmRpbmcoc2Vzc2lvbiwgc2l6ZSk6Ci0gICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoc2l6ZSkK
K2RlZiB0ZXN0X2Nzc19waXhlbF9yb3VuZGluZyhzZXNzaW9uLCBpbmxpbmUsIHNpemUpOgorICAg
IHNlc3Npb24udXJsID0gc3F1YXJlKGlubGluZSwgc2l6ZSkKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiI3RhcmdldCIsIGFsbD1GYWxzZSkKICAgICBleHBlY3RlZF9jbGlja19wb2lu
dCA9IGNlbnRlcl9wb2ludChlbGVtZW50KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2sucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xp
Y2sucHkKaW5kZXggM2E1ZDczNzIxNmQ5Li5iMWIxMDE2MmU0ZDYgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jbGlj
ay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Vs
ZW1lbnRfY2xpY2svY2xpY2sucHkKQEAgLTEsNyArMSw2IEBACiBmcm9tIHdlYmRyaXZlciBpbXBv
cnQgRWxlbWVudAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMSw3ICsx
MCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAgICAgICAg
ZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVl
KHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5mb28iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogCkBAIC0yMiwxMCArMjEsMTcgQEAgZGVmIHRl
c3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgZWxlbWVudCA9IEVsZW1l
bnQoImZvbyIsIHNlc3Npb24pCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24s
IGVsZW1lbnQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQog
CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJlc3Bv
bnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQogICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9
IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBl
bGVtZW50KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisK
IAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgog
ICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2V2ZW50
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9ldmVudHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li5lM2QzMmMxYmNiNDQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZXZlbnRzLnB5CkBAIC0wLDAgKzEs
MzMgQEAKK2Zyb20gd2ViZHJpdmVyIGltcG9ydCBFbGVtZW50Citmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJz
IGltcG9ydCBmaWx0ZXJfZGljdAorCitkZWYgZ2V0X2V2ZW50cyhzZXNzaW9uKToKKyAgICAiIiJS
ZXR1cm4gbGlzdCBvZiBtb3VzZSBldmVudHMgcmVjb3JkZWQgaW4gdGhlIGZpeHR1cmUuIiIiCisg
ICAgcmV0dXJuIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhbGxFdmVudHMuZXZlbnRz
OyIpIG9yIFtdCisKK2RlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgorICAgIHJl
dHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tz
ZXNzaW9uX2lkfS9lbGVtZW50L3tlbGVtZW50X2lkfS9jbGljayIuZm9ybWF0KAorICAgICAgICAg
ICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lk
PWVsZW1lbnQuaWQpKQorCitkZWYgdGVzdF9ldmVudF9tb3VzZW1vdmUoc2Vzc2lvbiwgdXJsKToK
KyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1
cHBvcnQvdGVzdF9jbGlja193ZHNwZWMuaHRtbCIpCisKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygnI291dGVyJywgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGlj
ayhzZXNzaW9uLCBlbGVtZW50KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAg
ZXZlbnRzID0gZ2V0X2V2ZW50cyhzZXNzaW9uKQorICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9PSA0
CisKKyAgICBleHBlY3RlZCA9IFsKKyAgICAgICAgeyJ0eXBlIjogIm1vdXNlbW92ZSIsICJidXR0
b25zIjogMCwgImJ1dHRvbiI6IDB9LAorICAgICAgICB7InR5cGUiOiAibW91c2Vkb3duIiwgImJ1
dHRvbnMiOiAxLCAiYnV0dG9uIjogMH0sCisgICAgICAgIHsidHlwZSI6ICJtb3VzZXVwIiwgImJ1
dHRvbnMiOiAwLCAiYnV0dG9uIjogMH0sCisgICAgICAgIHsidHlwZSI6ICJjbGljayIsICJidXR0
b25zIjogMCwgImJ1dHRvbiI6IDB9LAorICAgIF0KKyAgICBmaWx0ZXJlZF9ldmVudHMgPSBbZmls
dGVyX2RpY3QoZSwgZXhwZWN0ZWRbMF0pIGZvciBlIGluIGV2ZW50c10KKworICAgIGFzc2VydCBl
eHBlY3RlZCA9PSBmaWx0ZXJlZF9ldmVudHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGlj
ay9maWxlX3VwbG9hZC5weQppbmRleCBjZDViYjQzNDIwNGQuLjczODMyZDBmODVhZSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsaWNrL2ZpbGVfdXBsb2FkLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5weQpAQCAtMSw1ICsxLDUg
QEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKKwogCiBk
ZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICByZXR1cm4gc2Vzc2lvbi50
cmFuc3BvcnQuc2VuZCgKQEAgLTgsNyArOCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24s
IGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1kZWYg
dGVzdF9maWxlX3VwbG9hZF9zdGF0ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2ZpbGVfdXBsb2FkX3N0
YXRlKHNlc3Npb24saW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5
cGU9ZmlsZT4iKQogCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxs
PUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9lbGVtZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9pbnRlcmFjdGFiaWxp
dHkucHkKaW5kZXggNzQ2M2Q0OTNlM2Q4Li5kNTU4NjBjODc0NmYgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9pbnRl
cmFjdGFiaWxpdHkucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9lbGVtZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weQpAQCAtMSw3ICsxLDYgQEAK
IGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTEs
NyArMTAsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAgICAg
ICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25lKHNl
c3Npb24pOgorZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIiIiPGJ1dHRvbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+Zm9vYmFy
PC9idXR0b24+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBh
bGw9RmFsc2UpCiAKQEAgLTE5LDcgKzE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Np
b24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJs
ZSIpCiAKIAotZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF92
aXNpYmlsaXR5X2hpZGRlbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCIiIjxidXR0b24gc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+Zm9vYmFyPC9idXR0b24+
IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2Up
CiAKQEAgLTI3LDcgKzI2LDcgQEAgZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikK
IAogCi1kZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbiBoaWRkZW4+Zm9vYmFy
PC9idXR0b24+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxs
PUZhbHNlKQogCkBAIC0zNSw3ICszNCw3IEBAIGRlZiB0ZXN0X2hpZGRlbihzZXNzaW9uKToKICAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAK
LWRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzYWJsZWQoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8YnV0dG9uIGRpc2FibGVkPmZv
b2JhcjwvYnV0dG9uPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9u
IiwgYWxsPUZhbHNlKQogCkBAIC00NCw3ICs0Myw3IEBAIGRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Np
b24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidHJhbnNmb3JtIiwgWyJ0cmFuc2xh
dGUoLTEwMHB4LCAtMTAwcHgpIiwgInJvdGF0ZSg1MGRlZykiXSkKLWRlZiB0ZXN0X2VsZW1lbnRf
bm90X2ludGVyYWN0YWJsZV9jc3NfdHJhbnNmb3JtKHNlc3Npb24sIHRyYW5zZm9ybSk6CitkZWYg
dGVzdF9lbGVtZW50X25vdF9pbnRlcmFjdGFibGVfY3NzX3RyYW5zZm9ybShzZXNzaW9uLCBpbmxp
bmUsIHRyYW5zZm9ybSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxk
aXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGJsdWU7IHRyYW5zZm9ybToge3RyYW5zZm9ybX07Ij4KQEAgLTU1LDcgKzU0
LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX2Nzc190cmFuc2Zvcm0oc2Vz
c2lvbiwgdHJhbnNmb3JtKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5v
dCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9v
dXRfb2ZfdmlldyhzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9v
dXRfb2ZfdmlldyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIi
IgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGlucHV0IHsKQEAgLTczLDcgKzcyLDcgQEAgZGVm
IHRlc3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX291dF9vZl92aWV3KHNlc3Npb24pOgogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFnX25hbWUiLCBbImRpdiIsICJzcGFuIl0pCi1k
ZWYgdGVzdF96ZXJvX3NpemVkX2VsZW1lbnQoc2Vzc2lvbiwgdGFnX25hbWUpOgorZGVmIHRlc3Rf
emVyb19zaXplZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdGFnX25hbWUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8ezB9PjwvezB9PiIuZm9ybWF0KHRhZ19uYW1lKSkKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWdfbmFtZSwgYWxsPUZhbHNlKQogCkBAIC04MSw3ICs4
MCw3IEBAIGRlZiB0ZXN0X3plcm9fc2l6ZWRfZWxlbWVudChzZXNzaW9uLCB0YWdfbmFtZSk6CiAg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAog
Ci1kZWYgdGVzdF9lbGVtZW50X2ludGVyY2VwdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVu
dF9pbnRlcmNlcHRlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGRpdiB7CkBAIC0xMDIsMTQgKzEwMSwxNCBA
QCBkZWYgdGVzdF9lbGVtZW50X2ludGVyY2VwdGVkKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImVsZW1lbnQgY2xpY2sgaW50ZXJjZXB0ZWQiKQogCiAKLWRlZiB0ZXN0X2Vs
ZW1lbnRfaW50ZXJjZXB0ZWRfbm9fcG9pbnRlcl9ldmVudHMoc2Vzc2lvbik6CitkZWYgdGVzdF9l
bGVtZW50X2ludGVyY2VwdGVkX25vX3BvaW50ZXJfZXZlbnRzKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPVJvZ2Vy
IHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xp
Y2soc2Vzc2lvbiwgZWxlbWVudCkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50
IGNsaWNrIGludGVyY2VwdGVkIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X25vdF92aXNpYmxlX292
ZXJmbG93X2hpZGRlbihzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X3Zpc2libGVfb3Zl
cmZsb3dfaGlkZGVuKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IiIiCiAgICAgICAgIDxzdHlsZT4KICAgICAgICAgZGl2IHsKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZpZ2F0
ZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9uYXZpZ2F0ZS5weQppbmRleCBkNzc2YTFlYjg0ZTYuLjQ5MjcxODI5MmExNyAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL25hdmlnYXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZpZ2F0ZS5weQpAQCAtMSw1ICsxLDkgQEAK
K2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEVsZW1l
bnRFeGNlcHRpb24KKwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9z
dWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20gdGVz
dHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCB3YWl0X2Zvcl9uZXdfaGFuZGxlCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTEwLDcgKzE0LDcgQEAgZGVmIGVsZW1l
bnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1l
bnQuaWQpKQogCiAKLWRlZiB0ZXN0X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmln
KToKK2RlZiB0ZXN0X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUp
OgogICAgIGxpbmsgPSAiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvaW5w
dXQuaHRtbCIKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj17dXJsfT4xMjM0NTY8
L2E+Ii5mb3JtYXQodXJsPWxpbmspKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJh
IiwgYWxsPUZhbHNlKQpAQCAtMjIsNyArMjYsNyBAQCBkZWYgdGVzdF9udW1iZXJzX2xpbmsoc2Vz
c2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09ICJodHRwOi8v
e2hvc3R9Ontwb3J0fXt1cmx9Ii5mb3JtYXQoaG9zdD1ob3N0LCBwb3J0PXBvcnQsIHVybD1saW5r
KQogCiAKLWRlZiB0ZXN0X211bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToK
K2RlZiB0ZXN0X211bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUp
OgogICAgIGxpbmsgPSAiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvaW5w
dXQuaHRtbCIKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHAgc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgd2lkdGg6IDUwcHg7Ij4KQEAgLTM3LDcgKzQxLDcg
QEAgZGVmIHRlc3RfbXVsdGlfbGluZV9saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgogICAg
IGFzc2VydCBzZXNzaW9uLnVybCA9PSAiaHR0cDovL3tob3N0fTp7cG9ydH17dXJsfSIuZm9ybWF0
KGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCB1cmw9bGluaykKIAogCi1kZWYgdGVzdF9saW5rX3VubG9h
ZF9ldmVudChzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2
ZW50KHNlc3Npb24sIHNlcnZlcl9jb25maWcsIGlubGluZSk6CiAgICAgbGluayA9ICIvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC9pbnB1dC5odG1sIgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keSBvbnVubG9hZD0iY2hlY2tVbmxvYWQoKSI+
CkBAIC02OCw3ICs3Miw3IEBAIGRlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2ZW50KHNlc3Npb24sIHNl
cnZlcl9jb25maWcpOgogICAgIGFzc2VydCByZXNwb25zZSBpcyBUcnVlCiAKIAotZGVmIHRlc3Rf
bGlua19oYXNoKHNlc3Npb24pOgorZGVmIHRlc3RfbGlua19oYXNoKHNlc3Npb24sIGlubGluZSk6
CiAgICAgaWQgPSAiYW5jaG9yIgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAg
ICA8YSBocmVmPSIje3VybH0iPmFhYWE8L2E+CkBAIC05MywzNCArOTcsOTQgQEAgZGVmIHRlc3Rf
bGlua19oYXNoKHNlc3Npb24pOgogICAgICAgICAgICAgIiIiLCBhcmdzPShlbGVtZW50LCkpIGlz
IFRydWUKIAogCi1kZWYgdGVzdF9saW5rX29wZW5fdGFyZ2V0X2luX25ld193aW5kb3coc2Vzc2lv
biwgdXJsKToKLSAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgidGFyZ2V0IiwgWworICAgICIiLAorICAgICJfYmxhbmsiLAorICAgICJf
cGFyZW50IiwKKyAgICAiX3NlbGYiLAorICAgICJfdG9wIiwKK10pCitkZWYgdGVzdF9saW5rX2Zy
b21fdG9wbGV2ZWxfY29udGV4dF93aXRoX3RhcmdldChzZXNzaW9uLCBpbmxpbmUsIHRhcmdldCk6
CisgICAgdGFyZ2V0X3BhZ2UgPSBpbmxpbmUoIjxwIGlkPSdmb28nPmZvbzwvcD4iKQogCi0gICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCi0gICAgICAgIDxhIGhyZWY9Int9IiB0YXJnZXQ9Il9i
bGFuayI+T3BlbiBpbiBuZXcgd2luZG93PC9hPgotICAgICIiIi5mb3JtYXQoaW5saW5lKCI8cCBp
ZD1mb28iKSkpCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9J3t9JyB0YXJnZXQ9
J3t9Jz5jbGljazwvYT4iLmZvcm1hdCh0YXJnZXRfcGFnZSwgdGFyZ2V0KSkKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKIAorICAgIG9yaWdfaGFuZGxlcyA9
IHNlc3Npb24uaGFuZGxlcworCiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24s
IGVsZW1lbnQpCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKLSAgICBkZWYgZmluZF9u
ZXdfaGFuZGxlKHNlc3Npb24pOgotICAgICAgICBuZXdfaGFuZGxlcyA9IGxpc3Qoc2V0KHNlc3Np
b24uaGFuZGxlcykgLSBzZXQob3JpZ19oYW5kbGVzKSkKLSAgICAgICAgaWYgbmV3X2hhbmRsZXMg
YW5kIGxlbihuZXdfaGFuZGxlcykgPT0gMToKLSAgICAgICAgICAgIHJldHVybiBuZXdfaGFuZGxl
c1swXQotICAgICAgICByZXR1cm4gTm9uZQorICAgIGlmIHRhcmdldCA9PSAiX2JsYW5rIjoKKyAg
ICAgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNzaW9u
LCBvcmlnX2hhbmRsZXMpCiAKICAgICB3YWl0ID0gUG9sbCgKICAgICAgICAgc2Vzc2lvbiwKICAg
ICAgICAgdGltZW91dD01LAotICAgICAgICBtZXNzYWdlPSJObyBuZXcgd2luZG93IGhhcyBiZWVu
IG9wZW5lZCIpCi0gICAgbmV3X2hhbmRsZSA9IHdhaXQudW50aWwoZmluZF9uZXdfaGFuZGxlKQor
ICAgICAgICBpZ25vcmVkX2V4Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAgICAg
ICAgbWVzc2FnZT0iRXhwZWN0ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAgIHdh
aXQudW50aWwobGFtYmRhIHM6IHMuZmluZC5jc3MoIiNmb28iKSkKKworCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoInRhcmdldCIsIFsKKyAgICAiIiwKKyAgICAiX2JsYW5rIiwKKyAgICAiX3Bh
cmVudCIsCisgICAgIl9zZWxmIiwKKyAgICAiX3RvcCIsCitdKQorZGVmIHRlc3RfbGlua19mcm9t
X25lc3RlZF9jb250ZXh0X3dpdGhfdGFyZ2V0KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCB0YXJn
ZXQpOgorICAgIHRhcmdldF9wYWdlID0gaW5saW5lKCI8cCBpZD0nZm9vJz5mb288L3A+IikKKwor
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPGEgaHJlZj0ne30nIHRhcmdldD0ne30n
PmNsaWNrPC9hPiIuZm9ybWF0KHRhcmdldF9wYWdlLCB0YXJnZXQpKSkKKyAgICBmcmFtZSA9IHNl
c3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9m
cmFtZShmcmFtZSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIuZm9ybWF0KHRh
cmdldCksIGFsbD1GYWxzZSkKIAotICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5k
bGUKLSAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIikKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNz
aW9uLmhhbmRsZXMKKworICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVt
ZW50KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgaWYgdGFyZ2V0ID09ICJf
YmxhbmsiOgorICAgICAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFu
ZGxlKHNlc3Npb24sIG9yaWdfaGFuZGxlcykKKworICAgICMgV2l0aCB0aGUgY3VycmVudCBicm93
c2luZyBjb250ZXh0IHJlbW92ZWQgdGhlIG5hdmlnYXRpb24gc2hvdWxkCisgICAgIyBub3QgdGlt
ZW91dC4gU3dpdGNoIHRvIHRoZSB0YXJnZXQgY29udGV4dCwgYW5kIHdhaXQgdW50aWwgdGhlIGV4
cGVjdGVkCisgICAgIyBlbGVtZW50IGlzIGF2YWlsYWJsZS4KKyAgICBpZiB0YXJnZXQgPT0gIl9w
YXJlbnQiOgorICAgICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZSgicGFyZW50IikKKyAgICBlbGlm
IHRhcmdldCA9PSAiX3RvcCI6CisgICAgICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKE5vbmUpCisK
KyAgICB3YWl0ID0gUG9sbCgKKyAgICAgICAgc2Vzc2lvbiwKKyAgICAgICAgdGltZW91dD01LAor
ICAgICAgICBpZ25vcmVkX2V4Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAgICAg
ICAgbWVzc2FnZT0iRXhwZWN0ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAgIHdh
aXQudW50aWwobGFtYmRhIHM6IHMuZmluZC5jc3MoIiNmb28iKSkKKworCisjIENhcGFiaWxpdHkg
bmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlOgorIyAg
IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODg0Nwor
QHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVlfSkK
K2RlZiB0ZXN0X2xpbmtfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgdXJsKToKKyAgICBi
YXNlX3BhdGggPSAoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1YmZyYW1lLmh0bWwi
ICsKKyAgICAgICAgICAgICAgICAgIj9waXBlPWhlYWRlcihDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSxzYW1lLW9yaWdpbiIpCisgICAgdGFyZ2V0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90
b2NvbD0iaHR0cHMiLCBkb21haW49ImFsdCIpCisKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGEgaHJlZj0ne30nPmNsaWNrIG1lPC9hPiIuZm9ybWF0KHRhcmdldF9wYWdlKSwgcHJvdG9jb2w9
Imh0dHBzIikKKyAgICBsaW5rID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKKwor
ICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBsaW5rKQorICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRhcmdldF9wYWdl
CisKKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0
ZXN0X2xpbmtfY2xvc2VzX3dpbmRvdyhzZXNzaW9uKToKK2RlZiB0ZXN0X2xpbmtfY2xvc2VzX3dp
bmRvdyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIG5ld19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5k
b3coKQogICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKIApkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2Ns
aWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2Nyb2xsX2ludG9fdmlldy5weQppbmRleCA0YjAy
NmU5ODZhMjEuLmMyZGM2NDg1Mjg2ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkKQEAgLTIsNyArMiw3IEBAIGltcG9ydCBweXRlc3QK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjZW50ZXJfcG9pbnQK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorCiAKIGRlZiBlbGVtZW50
X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5z
ZW5kKApAQCAtMTgsNyArMTgsNyBAQCBkZWYgYXNzZXJ0X29uZV9jbGljayhzZXNzaW9uKToKICAg
ICByZXR1cm4gdHVwbGUoY2xpY2tzWzBdKQogCiAKLWRlZiB0ZXN0X3Njcm9sbF9pbnRvX3ZpZXco
c2Vzc2lvbik6CitkZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dCB0eXBlPXRleHQgdmFs
dWU9RmVkZXJlcgogICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwdmg7
IHRvcDogNTAwdmgiPiIiIikKQEAgLTM4LDcgKzM4LDcgQEAgZGVmIHRlc3Rfc2Nyb2xsX2ludG9f
dmlldyhzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm9mZnNldCIsIHJh
bmdlKDksIDAsIC0xKSkKLWRlZiB0ZXN0X3BhcnRpYWxseV92aXNpYmxlX2RvZXNfbm90X3Njcm9s
bChzZXNzaW9uLCBvZmZzZXQpOgorZGVmIHRlc3RfcGFydGlhbGx5X3Zpc2libGVfZG9lc19ub3Rf
c2Nyb2xsKHNlc3Npb24sIG9mZnNldCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPHN0eWxlPgogICAgICAgICBib2R5IHt7CmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2Vs
ZWN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL3NlbGVjdC5weQppbmRleCBkY2Y5MmU2NDU4OTQuLjYyZDQwNzU1YjU5YiAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL3NlbGVjdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2VsZWN0LnB5CkBAIC0xLDcgKzEsNCBAQAotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRlc3RfY2xpY2tf
b3B0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfb3B0aW9uKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAgICA8
b3B0aW9uPmZpcnN0CkBAIC0xNyw3ICsxNCw3IEBAIGRlZiB0ZXN0X2NsaWNrX29wdGlvbihzZXNz
aW9uKToKICAgICBhc3NlcnQgbm90IG9wdGlvbnNbMF0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9j
bGlja19tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9jbGlja19tdWx0aXBsZV9v
cHRpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAg
ICAgIDxzZWxlY3QgbXVsdGlwbGU+CiAgICAgICAgIDxvcHRpb24+Zmlyc3QKQEAgLTMzLDcgKzMw
LDcgQEAgZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2Vy
dCBub3Qgb3B0aW9uc1sxXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVk
X29wdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX29wdGlvbihzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVj
dD4KICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtNTMsNyArNTAsNyBAQCBkZWYgdGVzdF9jbGlj
a19wcmVzZWxlY3RlZF9vcHRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBvcHRpb25zWzFd
LnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9u
KHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2Vs
ZWN0IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC03Myw3ICs3MCw3IEBAIGRl
ZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToKICAgICBh
c3NlcnQgbm90IG9wdGlvbnNbMV0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19kZXNlbGVj
dHNfb3RoZXJzKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfZGVzZWxlY3RzX290aGVycyhzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVj
dD4KICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtOTIsNyArODksNyBAQCBkZWYgdGVzdF9jbGlj
a19kZXNlbGVjdHNfb3RoZXJzKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzBdLnNlbGVj
dGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJz
KHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3Ro
ZXJzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAg
ICA8c2VsZWN0IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xMTIsNyArMTA5
LDcgQEAgZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJzKHNl
c3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzJdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xp
Y2tfc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfb3B0
aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAg
ICA8c2VsZWN0PgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xMzAsNyArMTI3LDcgQEAgZGVm
IHRlc3RfY2xpY2tfc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25z
WzFdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9u
KHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0
IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xNTIsNyArMTQ5LDcgQEAgZGVm
IHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2Vy
dCBub3Qgb3B0aW9uc1sxXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X291dF9vZl92aWV3X2Ryb3Bk
b3duKHNlc3Npb24pOgorZGVmIHRlc3Rfb3V0X29mX3ZpZXdfZHJvcGRvd24oc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAgICAg
ICAgIDxvcHRpb24+MQpAQCAtMTgyLDcgKzE3OSw3IEBAIGRlZiB0ZXN0X291dF9vZl92aWV3X2Ry
b3Bkb3duKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzE0XS5zZWxlY3RlZAogCiAKLWRl
ZiB0ZXN0X291dF9vZl92aWV3X211bHRpcGxlKHNlc3Npb24pOgorZGVmIHRlc3Rfb3V0X29mX3Zp
ZXdfbXVsdGlwbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgIDxzZWxlY3QgbXVsdGlwbGU+CiAgICAgICAgIDxvcHRpb24+MQpAQCAtMjEzLDcg
KzIxMCw3IEBAIGRlZiB0ZXN0X291dF9vZl92aWV3X211bHRpcGxlKHNlc3Npb24pOgogICAgIGFz
c2VydCBsYXN0X29wdGlvbi5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X29wdGlvbl9kaXNhYmxlZChz
ZXNzaW9uKToKK2RlZiB0ZXN0X29wdGlvbl9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAgIDxv
cHRpb24gZGlzYWJsZWQ+Zm9vCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zaGFkb3df
ZG9tLnB5CmluZGV4IGI1MmYyNzQyOWMxOS4uNDU0OTNiNzMwZDY5IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hh
ZG93X2RvbS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weQpAQCAtMSw2ICsxLDUgQEAKLWZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGltcG9ydCBweXRlc3QKK2Zy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNj
ZXNzCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMCw3ICs5
LDggQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBl
bGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiBnZXRfY2hlY2tib3hfZG9tKCk6CitAcHl0
ZXN0LmZpeHR1cmUKK2RlZiBnZXRfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0dXJuIGlu
bGluZSgiIiIKICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLWNoZWNrYm94LWVs
ZW1lbnQgewpAQCAtMzIsOCArMzIsOCBAQCBkZWYgZ2V0X2NoZWNrYm94X2RvbSgpOgogCiAKIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xpY2tfb24iLCBbImN1c3RvbV9lbGVtZW50IiwgImNo
ZWNrYm94X2VsZW1lbnQiXSkKLWRlZiB0ZXN0X3NoYWRvd19lbGVtZW50X2NsaWNrKHNlc3Npb24s
IGNsaWNrX29uKToKLSAgICBzZXNzaW9uLnVybCA9IGdldF9jaGVja2JveF9kb20oKQorZGVmIHRl
c3Rfc2hhZG93X2VsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZ2V0X2NoZWNrYm94X2RvbSwgY2xpY2tf
b24pOgorICAgIHNlc3Npb24udXJsID0gZ2V0X2NoZWNrYm94X2RvbQogICAgIGN1c3RvbV9lbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQiLCBhbGw9RmFs
c2UpCiAgICAgY2hlY2tib3hfZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxl
bWVudCwpKQpAQCAtNDcsNyArNDcsOCBAQCBkZWYgdGVzdF9zaGFkb3dfZWxlbWVudF9jbGljayhz
ZXNzaW9uLCBjbGlja19vbik6CiAgICAgYXNzZXJ0IGlzX3Bvc3RfY2hlY2tlZCA9PSBUcnVlCiAK
IAotZGVmIGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpOgorQHB5dGVzdC5maXh0dXJl
CitkZWYgZ2V0X25lc3RlZF9zaGFkb3dfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0dXJu
IGlubGluZSgiIiIKICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLW5lc3Rpbmct
ZWxlbWVudCB7CkBAIC04Myw4ICs4NCw4IEBAIGRlZiBnZXRfbmVzdGVkX3NoYWRvd19jaGVja2Jv
eF9kb20oKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNsaWNrX29uIiwgWyJvdXRl
cl9lbGVtZW50IiwgImlubmVyX2VsZW1lbnQiLCAiY2hlY2tib3hfZWxlbWVudCJdKQotZGVmIHRl
c3RfbmVzdGVkX3NoYWRvd19lbGVtZW50X2NsaWNrKHNlc3Npb24sIGNsaWNrX29uKToKLSAgICBz
ZXNzaW9uLnVybCA9IGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpCitkZWYgdGVzdF9u
ZXN0ZWRfc2hhZG93X2VsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZ2V0X25lc3RlZF9zaGFkb3dfY2hl
Y2tib3hfZG9tLCBjbGlja19vbik6CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfbmVzdGVkX3NoYWRv
d19jaGVja2JveF9kb20KICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3Vz
dG9tLW5lc3RpbmctZWxlbWVudCIsIGFsbD1GYWxzZSkKICAgICBpbm5lcl9lbGVtZW50ID0gc2Vz
c2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2N1c3RvbS1jaGVja2JveC1lbGVtZW50JykiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KG91dGVyX2VsZW1lbnQsKSkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9j
bGljay9zdGFsZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9jbGljay9zdGFsZS5weQppbmRleCBjZDI0ZGQ3MDYwM2QuLjhkMmFlMzQ4ZWY0
ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X2NsaWNrL3N0YWxlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdGFsZS5weQpAQCAtMSw1ICsxLDQgQEAK
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNl
c3Npb24sIGVsZW1lbnQpOgpAQCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lv
biwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRl
ZiB0ZXN0X2lzX3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfaXNfc3RhbGUoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbj5mb288L2J1dHRvbj4iKQog
ICAgIGJ1dHRvbiA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbj5iYXI8L2J1dHRvbj4iKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNr
L3N1cHBvcnQvdGVzdF9jbGlja193ZHNwZWMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdXBwb3J0L3Rlc3RfY2xpY2tfd2Rz
cGVjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hOTQ1MWVj
ODJiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC90ZXN0X2NsaWNrX3dkc3BlYy5odG1s
CkBAIC0wLDAgKzEsMTAwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IEVsZW1lbnQgQ2xpY2s8L3RpdGxlPgor
ICAgIDxzdHlsZT4KKyAgICAgIGRpdiB7IHBhZGRpbmc6MHB4OyBtYXJnaW46IDBweDsgfQorICAg
ICAgI3RyYWNrUG9pbnRlciB7IHBvc2l0aW9uOiBmaXhlZDsgfQorICAgICAgI3Jlc3VsdENvbnRh
aW5lciB7IHdpZHRoOiA2MDBweDsgaGVpZ2h0OiA2MHB4OyB9CisgICAgICAuYXJlYSB7IHdpZHRo
OiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOyB9CisgICAgICAu
YmxvY2sgeyB3aWR0aDogNXB4OyBoZWlnaHQ6IDVweDsgYm9yZGVyOiBzb2xpZCAxcHggcmVkOyB9
CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICAidXNlIHN0cmljdCI7CisgICAg
ICAgIHZhciBlbHMgPSB7fTsKKyAgICAgICAgdmFyIGFsbEV2ZW50cyA9IHsgZXZlbnRzOiBbXSB9
OworICAgICAgICBmdW5jdGlvbiBkaXNwbGF5TWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRzIikuaW5uZXJIVE1MID0gIjxwPiIgKyBt
ZXNzYWdlICsgIjwvcD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5kTWVz
c2FnZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZl
bnRzIikuaW5uZXJIVE1MICs9ICI8cD4iICsgbWVzc2FnZSArICI8L3A+IjsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJlY29yZFBvaW50ZXJFdmVudChldmVudCkgeworICAgICAgICAg
IGlmIChldmVudC50eXBlID09PSAiY29udGV4dG1lbnUiKSB7CisgICAgICAgICAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgIH0KKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRz
LnB1c2goeworICAgICAgICAgICAgInR5cGUiOiBldmVudC50eXBlLAorICAgICAgICAgICAgImJ1
dHRvbiI6IGV2ZW50LmJ1dHRvbiwKKyAgICAgICAgICAgICJidXR0b25zIjogZXZlbnQuYnV0dG9u
cywKKyAgICAgICAgICAgICJwYWdlWCI6IGV2ZW50LnBhZ2VYLAorICAgICAgICAgICAgInBhZ2VZ
IjogZXZlbnQucGFnZVksCisgICAgICAgICAgICAiY3RybEtleSI6IGV2ZW50LmN0cmxLZXksCisg
ICAgICAgICAgICAibWV0YUtleSI6IGV2ZW50Lm1ldGFLZXksCisgICAgICAgICAgICAiYWx0S2V5
IjogZXZlbnQuYWx0S2V5LAorICAgICAgICAgICAgInNoaWZ0S2V5IjogZXZlbnQuc2hpZnRLZXks
CisgICAgICAgICAgICAidGFyZ2V0IjogZXZlbnQudGFyZ2V0LmlkCisgICAgICAgICAgfSk7Cisg
ICAgICAgICAgYXBwZW5kTWVzc2FnZShldmVudC50eXBlICsgIiAiICsKKyAgICAgICAgICAgICAg
ImJ1dHRvbjogIiArIGV2ZW50LmJ1dHRvbiArICIsICIgKworICAgICAgICAgICAgICAicGFnZVg6
ICIgKyBldmVudC5wYWdlWCArICIsICIgKworICAgICAgICAgICAgICAicGFnZVk6ICIgKyBldmVu
dC5wYWdlWSArICIsICIgKworICAgICAgICAgICAgICAiYnV0dG9uOiAiICsgZXZlbnQuYnV0dG9u
ICsgIiwgIiArCisgICAgICAgICAgICAgICJidXR0b25zOiAiICsgZXZlbnQuYnV0dG9ucyArICIs
ICIgKworICAgICAgICAgICAgICAiY3RybEtleTogIiArIGV2ZW50LmN0cmxLZXkgKyAiLCAiICsK
KyAgICAgICAgICAgICAgImFsdEtleTogIiArIGV2ZW50LmFsdEtleSArICIsICIgKworICAgICAg
ICAgICAgICAibWV0YUtleTogIiArIGV2ZW50Lm1ldGFLZXkgKyAiLCAiICsKKyAgICAgICAgICAg
ICAgInNoaWZ0S2V5OiAiICsgZXZlbnQuc2hpZnRLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAg
InRhcmdldCBpZDogIiArIGV2ZW50LnRhcmdldC5pZCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiByZWNvcmRGaXJzdFBvaW50ZXJNb3ZlKGV2ZW50KSB7CisgICAgICAgICAgcmVjb3Jk
UG9pbnRlckV2ZW50KGV2ZW50KTsKKyAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5l
cigibW91c2Vtb3ZlIiwgcmVjb3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiByZXNldEV2ZW50cygpIHsKKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRz
Lmxlbmd0aCA9IDA7CisgICAgICAgICAgZGlzcGxheU1lc3NhZ2UoIiIpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gbW92ZShlbCwgb2Zmc2V0WCwgb2Zmc2V0WSwgdGltZW91dCkgewor
ICAgICAgICAgIHJldHVybiBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgZWwuc3R5bGUudG9wID0gZXZlbnQuY2xpZW50
WSArIG9mZnNldFkgKyAicHgiOworICAgICAgICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gZXZlbnQu
Y2xpZW50WCArIG9mZnNldFggKyAicHgiOworICAgICAgICAgICAgfSwgdGltZW91dCk7CisgICAg
ICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
IkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgb3V0ZXIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKTsKKyAgICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgcmVjb3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAgICAg
ICAgb3V0ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCByZWNvcmRQb2ludGVyRXZlbnQpOwor
ICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgcmVjb3JkUG9pbnRl
ckV2ZW50KTsKKyAgICAgICAgICBvdXRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBy
ZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1v
dXNldXAiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlz
dGVuZXIoImNvbnRleHRtZW51IiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKworICAgICAgICAgIC8v
dmlzdWFsIGN1ZSBmb3IgbW91c2Vtb3ZlCisgICAgICAgICAgdmFyIHBvaW50ZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidHJhY2tQb2ludGVyIik7CisgICAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG1vdmUocG9pbnRlciwgMTUsIDE1LCAzMCkpOworICAg
ICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0cmFj
a1BvaW50ZXIiIGNsYXNzPSJibG9jayI+PC9kaXY+CisgIDxkaXY+CisgICAgPGgyPkNsaWNrUmVw
b3J0ZXI8L2gyPgorICAgIDxkaXYgaWQ9Im91dGVyIiBjbGFzcz0iYXJlYSI+CisgICAgPC9kaXY+
CisgIDwvZGl2PgorICA8ZGl2IGlkPSJyZXN1bHRDb250YWluZXIiPgorICAgIDxoMj5FdmVudHM8
L2gyPgorICAgIDxkaXYgaWQ9ImV2ZW50cyI+PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X2NsaWNrL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21wdHMucHkKaW5k
ZXggYjM3MDZmZTRhZjE2Li4xNDBhY2ViM2NlZGYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21wdHMu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxl
ZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6
CkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQi
LCBhbGw9RmFsc2UpCkBAIC0zMiw3ICszMSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAg
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUw
LDcgKzQ5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVudF9l
ZGl0YWJsZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9zZW5kX2tleXMvY29udGVudF9lZGl0YWJsZS5weQppbmRleCAxNmViYzJkMDE4ZmIu
LjdmNjI4Zjk2YTUzYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9jb250ZW50X2VkaXRhYmxlLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5k
X2tleXMvY29udGVudF9lZGl0YWJsZS5weQpAQCAtMSw5ICsxLDQgQEAKLWltcG9ydCBweXRlc3QK
LQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRlc3Rf
c2V0c19pbnNlcnRpb25fcG9pbnRfdG9fZW5kKHNlc3Npb24pOgorZGVmIHRlc3Rfc2V0c19pbnNl
cnRpb25fcG9pbnRfdG9fZW5kKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoJzxkaXYgY29udGVudGVkaXRhYmxlPXRydWU+SGVsbG8sPC9kaXY+JykKICAgICBpbnB1
dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKICAgICBpbnB1dC5zZW5kX2tl
eXMoJyB3b3JsZCEnKQpAQCAtMTUsNyArMTAsNyBAQCBkZWYgdGVzdF9zZXRzX2luc2VydGlvbl9w
b2ludF90b19lbmQoc2Vzc2lvbik6CiAjCiAjIDEzLiBTZXQgdGhlIHRleHQgaW5zZXJ0aW9uIGNh
cmV0IHVzaW5nIHNldCBzZWxlY3Rpb24gcmFuZ2UgdXNpbmcgY3VycmVudAogIyAgICAgdGV4dCBs
ZW5ndGggZm9yIGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgcGFyYW1ldGVycy4KLWRlZiB0ZXN0X3Nl
dHNfaW5zZXJ0aW9uX3BvaW50X3RvX2FmdGVyX2xhc3RfdGV4dF9ub2RlKHNlc3Npb24pOgorZGVm
IHRlc3Rfc2V0c19pbnNlcnRpb25fcG9pbnRfdG9fYWZ0ZXJfbGFzdF90ZXh0X25vZGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgnPGRpdiBjb250ZW50ZWRpdGFi
bGU9dHJ1ZT5IZWw8c3Bhbj5sbzwvc3Bhbj4sPC9kaXY+JykKICAgICBpbnB1dCA9IHNlc3Npb24u
ZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKICAgICBpbnB1dC5zZW5kX2tleXMoIiB3b3JsZCEi
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2V2ZW50cy5weQppbmRleCA0MWIw
MGVmMzdmYTIuLjRiZTE0MzJiZjNjMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRf
a2V5cy9ldmVudHMucHkKQEAgLTUsNyArNSw2IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCAoCiAgICAgYXNzZXJ0X2V2ZW50c19lcXVhbCwKICAgICBhc3NlcnRfc3VjY2VzcywK
ICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1w
b3J0IG1hcF9maWxlc190b19tdWx0aWxpbmVfdGV4dAogCkBAIC0zMSw3ICszMCw3IEBAIGRlZiBl
bGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0
IjogdGV4dH0pCiAKIAotZGVmIHRlc3RfZmlsZV91cGxvYWQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVz
LCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYgdGVzdF9maWxlX3Vw
bG9hZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRf
ZXZlbnRzLCBpbmxpbmUpOgogICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImlucHV0
IiwKICAgICAgICAgImNoYW5nZSIsCkBAIC01MCw3ICs0OSw3IEBAIGRlZiB0ZXN0X2ZpbGVfdXBs
b2FkKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9l
dmVudHMpCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0YWciLCBbImlucHV0IiwgInRl
eHRhcmVhIl0pCi1kZWYgdGVzdF9mb3JtX2NvbnRyb2xfc2VuZF90ZXh0KHNlc3Npb24sIGFkZF9l
dmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCB0YWcpOgorZGVmIHRlc3RfZm9ybV9jb250
cm9sX3NlbmRfdGV4dChzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50
cywgaW5saW5lLCB0YWcpOgogICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImZvY3Vz
IiwKICAgICAgICAgImtleWRvd24iLApAQCAtNzcsNyArNzYsNyBAQCBkZWYgdGVzdF9mb3JtX2Nv
bnRyb2xfc2VuZF90ZXh0KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZl
bnRzLCB0YQogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFnIiwgWyJpbnB1dCIsICJ0
ZXh0YXJlYSJdKQotZGVmIHRlc3Rfbm90X2JsdXJyZWQoc2Vzc2lvbiwgdGFnKToKK2RlZiB0ZXN0
X25vdF9ibHVycmVkKHNlc3Npb24sIGlubGluZSwgdGFnKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPCVzPiIgJSB0YWcpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBh
bGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ZpbGVf
dXBsb2FkLnB5CmluZGV4IDdmYmFiOGE2NmFhNC4uZWY3OTJmNGRkODU1IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9r
ZXlzL2ZpbGVfdXBsb2FkLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkKQEAgLTEsNyArMSw2
IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfZXJyb3IsIGFzc2VydF9maWxlc191cGxvYWRlZCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IG1hcF9m
aWxlc190b19tdWx0aWxpbmVfdGV4dAogCkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBlbGVtZW50X3Nl
bmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0p
CiAKIAotZGVmIHRlc3RfZW1wdHlfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2VtcHR5X3RleHQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9
ZmlsZT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKIApAQCAtMjIsNyArMjEsNyBAQCBkZWYgdGVzdF9lbXB0eV90ZXh0KHNlc3Npb24pOgogICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0
X211bHRpcGxlX2ZpbGVzKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0aXBs
ZV9maWxlcyhzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVh
dGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgdGVzdF9tdWx0
aXBsZV9maWxlcyhzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxv
YWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxl
c19sYXN0X3BhdGhfbm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9t
dWx0aXBsZV9maWxlc19sYXN0X3BhdGhfbm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcywg
aW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKICAgICBm
aWxlcy5hcHBlbmQoImZvbyBiYXIiKQogCkBAIC00OSw3ICs0OCw3IEBAIGRlZiB0ZXN0X211bHRp
cGxlX2ZpbGVzX2xhc3RfcGF0aF9ub3RfZm91bmQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAg
ICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgW10pCiAKIAotZGVmIHRl
c3RfbXVsdGlwbGVfZmlsZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3Jl
YXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3dpdGhvdXRfbXVsdGlwbGVfYXR0
cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0
ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKIAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQgdHlwZT1maWxlPiIpCkBAIC02Miw3ICs2MSw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVz
X3dpdGhvdXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAg
YXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIFtdKQogCiAKLWRlZiB0ZXN0
X211bHRpcGxlX2ZpbGVzX3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0
ZXN0X211bHRpcGxlX2ZpbGVzX3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxp
bmUpOgogICAgIGZpcnN0X2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogICAg
IHNlY29uZF9maWxlcyA9IGNyZWF0ZV9maWxlcyhbImpvaG4iLCAiZG9lIl0pCiAKQEAgLTgwLDcg
Kzc5LDcgQEAgZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfc2VuZF90d2ljZShzZXNzaW9uLCBjcmVh
dGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBm
aXJzdF9maWxlcyArIHNlY29uZF9maWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxlc19y
ZXNldF93aXRoX2VsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0
X211bHRpcGxlX2ZpbGVzX3Jlc2V0X3dpdGhfZWxlbWVudF9jbGVhcihzZXNzaW9uLCBjcmVhdGVf
ZmlsZXMsIGlubGluZSk6CiAgICAgZmlyc3RfZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iLCAi
YmFyIl0pCiAgICAgc2Vjb25kX2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiam9obiIsICJkb2UiXSkK
IApAQCAtMTAyLDcgKzEwMSw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3Jlc2V0X3dpdGhf
ZWxlbWVudF9jbGVhcihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191
cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBzZWNvbmRfZmlsZXMpCiAKIAotZGVmIHRlc3Rfc2lu
Z2xlX2ZpbGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3NpbmdsZV9maWxlKHNl
c3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhb
ImZvbyJdKQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikK
QEAgLTExNCw3ICsxMTMsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZShzZXNzaW9uLCBjcmVhdGVf
ZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaWxl
cykKIAogCi1kZWYgdGVzdF9zaW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxlX2F0
dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc2luZ2xlX2ZpbGVfcmVw
bGFjZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBp
bmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogCiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKQEAgLTEyOSw3ICsxMjgs
NyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxlX2F0dHJp
YnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChz
ZXNzaW9uLCBlbGVtZW50LCBbZmlsZXNbMV1dKQogCiAKLWRlZiB0ZXN0X3NpbmdsZV9maWxlX2Fw
cGVuZHNfd2l0aF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2Rl
ZiB0ZXN0X3NpbmdsZV9maWxlX2FwcGVuZHNfd2l0aF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lv
biwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9v
IiwgImJhciJdKQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGUg
bXVsdGlwbGU+IikKQEAgLTE0NCw3ICsxNDMsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZV9hcHBl
bmRzX3dpdGhfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAg
YXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0
ZXN0X3RyYW5zcGFyZW50KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF90cmFuc3Bh
cmVudChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVf
ZmlsZXMoWyJmb28iXSkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgdHlwZT1m
aWxlIHN0eWxlPSJvcGFjaXR5OiAwIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMTU0LDcgKzE1Myw3IEBAIGRlZiB0ZXN0X3RyYW5z
cGFyZW50KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVk
KHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X29ic2N1cmVkKHNlc3Npb24s
IGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9vYnNjdXJlZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMs
IGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHN0eWxlPgpAQCAtMTc4LDcgKzE3Nyw3IEBAIGRl
ZiB0ZXN0X29ic2N1cmVkKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVz
X3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X291dHNpZGVf
dmlld3BvcnQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X291dHNpZGVfdmlld3Bv
cnQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2Zp
bGVzKFsiZm9vIl0pCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9Zmls
ZSBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0xMDB2aCI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTE4OCw3ICsxODcsNyBAQCBkZWYgdGVz
dF9vdXRzaWRlX3ZpZXdwb3J0KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2Zp
bGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X2hpZGRl
bihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24sIGNyZWF0
ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIGhpZGRlbj4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTE5OCw3ICsx
OTcsNyBAQCBkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3Nl
cnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRlc3Rf
ZGlzcGxheV9ub25lKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9kaXNwbGF5X25v
bmUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2Zp
bGVzKFsiZm9vIl0pCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9Zmls
ZSBzdHlsZT0iZGlzcGxheTogbm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTIwOSw3ICsyMDgsNyBAQCBkZWYgdGVzdF9kaXNw
bGF5X25vbmUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKIAogCiBAcHl0ZXN0Lm1hcmsuY2FwYWJp
bGl0aWVzKHsic3RyaWN0RmlsZUludGVyYWN0YWJpbGl0eSI6IFRydWV9KQotZGVmIHRlc3Rfc3Ry
aWN0X2hpZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc3RyaWN0X2hpZGRl
bihzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmls
ZXMoWyJmb28iXSkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBo
aWRkZW4+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCkBAIC0yMTksNyArMjE4LDcgQEAgZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihzZXNzaW9uLCBj
cmVhdGVfZmlsZXMpOgogCiAKIEBweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJzdHJpY3RGaWxl
SW50ZXJhY3RhYmlsaXR5IjogVHJ1ZX0pCi1kZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25lKHNl
c3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25lKHNlc3Np
b24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZv
byJdKQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWZpbGUgc3R5bGU9
ImRpc3BsYXk6IG5vbmUiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5w
dXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlz
L2Zvcm1fY29udHJvbHMucHkKaW5kZXggZTUzZDA2MTBmMWVkLi4wNDAzZGM5MjM3MmUgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9zZW5kX2tleXMvZm9ybV9jb250cm9scy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkK
QEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2VsZW1lbnRfaGFzX2ZvY3VzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogCiBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CkBA
IC0xMCw3ICs5LDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRl
eHQpOgogICAgICAgICB7InRleHQiOiB0ZXh0fSkKIAogCi1kZWYgdGVzdF9pbnB1dChzZXNzaW9u
KToKK2RlZiB0ZXN0X2lucHV0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgpA
QCAtMjAsNyArMTksNyBAQCBkZWYgdGVzdF9pbnB1dChzZXNzaW9uKToKICAgICBhc3NlcnRfZWxl
bWVudF9oYXNfZm9jdXMoZWxlbWVudCkKIAogCi1kZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uKToK
K2RlZiB0ZXN0X3RleHRhcmVhKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjx0ZXh0YXJlYT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJ0ZXh0
YXJlYSIsIGFsbD1GYWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9
PSAiIgpAQCAtMzAsNyArMjksNyBAQCBkZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uKToKICAgICBh
c3NlcnRfZWxlbWVudF9oYXNfZm9jdXMoZWxlbWVudCkKIAogCi1kZWYgdGVzdF9pbnB1dF9hcHBl
bmQoc2Vzc2lvbik6CitkZWYgdGVzdF9pbnB1dF9hcHBlbmQoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWE+IikKICAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQu
cHJvcGVydHkoInZhbHVlIikgPT0gImEiCkBAIC00Miw3ICs0MSw3IEBAIGRlZiB0ZXN0X2lucHV0
X2FwcGVuZChzZXNzaW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9
PSAiYWJjIgogCiAKLWRlZiB0ZXN0X3RleHRhcmVhX2FwcGVuZChzZXNzaW9uKToKK2RlZiB0ZXN0
X3RleHRhcmVhX2FwcGVuZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8dGV4dGFyZWE+YTwvdGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygidGV4dGFyZWEiLCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHko
InZhbHVlIikgPT0gImEiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tl
eXMvaW50ZXJhY3RhYmlsaXR5LnB5CmluZGV4IDA3MTc1MzdhZTVkOC4uMjczODQzZmI3YjQ2IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Vs
ZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJp
bGl0eS5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpZnJhbWUsIGlubGluZQogCiAKIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9u
LCBlbGVtZW50LCB0ZXh0KToKQEAgLTEwLDcgKzksNyBAQCBkZWYgZWxlbWVudF9zZW5kX2tleXMo
c2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9KQogCiAKLWRl
ZiB0ZXN0X2JvZHlfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfYm9keV9pc19p
bnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgICAgPGJvZHkgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5w
dXQnKS52YWx1ZSArPSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAgLTI5LDcgKzI4
LDcgQEAgZGVmIHRlc3RfYm9keV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0X2RvY3VtZW50
X2VsZW1lbnRfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfZG9jdW1lbnRfZWxl
bWVudF9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiIKICAgICAgICAgPGh0bWwgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignaW5wdXQnKS52YWx1ZSArPSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAg
LTQ5LDcgKzQ4LDcgQEAgZGVmIHRlc3RfZG9jdW1lbnRfZWxlbWVudF9pc19pbnRlcmFjdGFibGUo
c2Vzc2lvbik6CiAgICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgog
CiAKLWRlZiB0ZXN0X2lmcmFtZV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9p
ZnJhbWVfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZShpZnJhbWUoIiIiCiAgICAgICAgIDxib2R5IG9ua2V5cHJlc3M9ImRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykudmFsdWUgKz0gZXZlbnQua2V5Ij4KICAgICAg
ICAgICA8aW5wdXQ+CkBAIC03Myw3ICs3Miw3IEBAIGRlZiB0ZXN0X2lmcmFtZV9pc19pbnRlcmFj
dGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAi
Zm9vIgogCiAKLWRlZiB0ZXN0X3RyYW5zcGFyZW50X2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVz
dF90cmFuc3BhcmVudF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJvcGFjaXR5OiAwIj4iIiIpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC04Miw3ICs4MSw3IEBA
IGRlZiB0ZXN0X3RyYW5zcGFyZW50X2VsZW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGVsZW1l
bnQucHJvcGVydHkoInZhbHVlIikgPT0gImZvbyIKIAogCi1kZWYgdGVzdF9yZWFkb25seV9lbGVt
ZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgcmVhZG9ubHk+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTkxLDcgKzkw
LDcgQEAgZGVmIHRlc3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnQgZWxl
bWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X29ic2N1cmVkX2VsZW1l
bnQoc2Vzc2lvbik6CitkZWYgdGVzdF9vYnNjdXJlZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8aW5wdXQ+CiAgICAgICA8ZGl2
IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTNlbTsgaGVpZ2h0OiA1ZW07IGJhY2tn
cm91bmQ6IGJsdWU7Ij48L2Rpdj4KQEAgLTEwMyw3ICsxMDIsNyBAQCBkZWYgdGVzdF9vYnNjdXJl
ZF9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIp
ID09ICJmb28iCiAKIAotZGVmIHRlc3Rfbm90X2FfZm9jdXNhYmxlX2VsZW1lbnQoc2Vzc2lvbik6
CitkZWYgdGVzdF9ub3RfYV9mb2N1c2FibGVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PmZvbzwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApAQCAtMTExLDcgKzExMCw3IEBAIGRl
ZiB0ZXN0X25vdF9hX2ZvY3VzYWJsZV9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3RfZGlz
cGxheV9ub25lKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBu
b25lIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZh
bHNlKQogCkBAIC0xMTksNyArMTE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24p
OgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIp
CiAKIAotZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF92aXNp
YmlsaXR5X2hpZGRlbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIjxpbnB1dCBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuIj4iIiIpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0xMjcsNyArMTI2LDcg
QEAgZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9oaWRk
ZW4oc2Vzc2lvbik6CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0IGhpZGRlbj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTM1LDcgKzEzNCw3IEBAIGRlZiB0
ZXN0X2hpZGRlbihzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50
IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgorZGVm
IHRlc3RfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiI8aW5wdXQgZGlzYWJsZWQ+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192aWV3
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X3NlbmRfa2V5cy9zY3JvbGxfaW50b192aWV3LnB5CmluZGV4IDE4Zjg3ZmZhYWVjNi4uMjA1YzRl
MzBlMWVkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3Njcm9sbF9pbnRvX3ZpZXcucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9z
Y3JvbGxfaW50b192aWV3LnB5CkBAIC0xLDYgKzEsNiBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBp
bXBvcnQgaXNfZWxlbWVudF9pbl92aWV3cG9ydAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCisKIAogZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQs
IHRleHQpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKApAQCAtMTAsNyArMTAs
NyBAQCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAg
ICAgIHsidGV4dCI6IHRleHR9KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9ub3Rf
c2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9v
Zl9ub3Rfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IC05
OTk5cHg7XCI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9
RmFsc2UpCiAKQEAgLTIwLDcgKzIwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX25v
dF9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgogICAgIGFzc2VydCBub3QgaXNfZWxlbWVu
dF9pbl92aWV3cG9ydChzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0
c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9v
dXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0IHN0eWxlPVwibWFyZ2luLXRvcDogMTAydmg7XCI+IikK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAg
LTMwLDcgKzMwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmll
d3BvcnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGlzX2VsZW1lbnRfaW5fdmlld3BvcnQoc2Vzc2lv
biwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9vdXRzaWRl
X29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9vcHRpb25fc2VsZWN0
X2NvbnRhaW5lcl9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdCBzdHlsZT0i
bWFyZ2luLXRvcDogMTAydmg7Ij4KICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb28iPmZvbzwv
b3B0aW9uPgpAQCAtNDcsNyArNDcsNyBAQCBkZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5l
cl9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGlz
X2VsZW1lbnRfaW5fdmlld3BvcnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9vcHRp
b25fc3RheXNfb3V0c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRl
c3Rfb3B0aW9uX3N0YXlzX291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0IG11
bHRpcGxlIHN0eWxlPSJoZWlnaHQ6IDEwNXZoOyBtYXJnaW4tdG9wOiAxMDB2aDsiPgogICAgICAg
ICAgIDxvcHRpb24gdmFsdWU9ImZvbyIgaWQ9ImZvbyIgc3R5bGU9ImhlaWdodDogMTAwdmg7Ij5m
b288L29wdGlvbj4KQEAgLTY2LDcgKzY2LDcgQEAgZGVmIHRlc3Rfb3B0aW9uX3N0YXlzX291dHNp
ZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IGlzX2Vs
ZW1lbnRfaW5fdmlld3BvcnQoc2Vzc2lvbiwgb3B0aW9uX2JhcikKIAogCi1kZWYgdGVzdF9jb250
ZW50ZWRpdGFibGVfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lv
bik6CitkZWYgdGVzdF9jb250ZW50ZWRpdGFibGVfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFi
bGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGRpdiBjb250ZW50ZWRpdGFibGUgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMDJ2aDtcIj48L2Rpdj4i
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zZW5kX2tleXMucHkKaW5kZXggZWRm
OTFlNzc2MTQ4Li5hYTM5M2UxNmQ4MTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9z
ZW5kX2tleXMvc2VuZF9rZXlzLnB5CkBAIC00LDcgKzQsNiBAQCBmcm9tIHdlYmRyaXZlciBpbXBv
cnQgRWxlbWVudAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVs
ZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgpAQCAtMTUsNyArMTQsNyBA
QCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAg
IHsidGV4dCI6IHRleHR9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Np
b24sIGh0dHApOgorZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0yNSw3ICsyNCw3
IEBAIGRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgogICAgICAg
ICBhc3NlcnRfZXJyb3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFsaWQgYXJn
dW1lbnQiKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYg
dGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzYsMTAgKzM1LDE3IEBAIGRlZiB0ZXN0X251bGxfcmVz
cG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBz
ZXNzaW9uKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVu
dCwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQog
CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJlc3Bv
bnNlID0gZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgImZvbyIpCiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5k
b3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X3NlbmRf
a2V5cyhzZXNzaW9uLCBlbGVtZW50LCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lv
bikKQEAgLTQ5LDcgKzU1LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9u
LCBjbG9zZWRfZnJhbWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBb
VHJ1ZSwgTm9uZSwgMSwgW10sIHt9XSkKLWRlZiB0ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNlc3Np
b24sIHZhbHVlKToKK2RlZiB0ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNlc3Npb24sIGlubGluZSwg
dmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTU3LDcgKzYzLDcg
QEAgZGVmIHRlc3RfaW52YWxpZF90ZXh0X3R5cGUoc2Vzc2lvbiwgdmFsdWUpOgogICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X3N0YWxl
X2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9zdGFsZV9lbGVtZW50KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy91
c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfc2VuZF9rZXlzL3VzZXJfcHJvbXB0cy5weQppbmRleCA2MjFiZGZmYTY2NDIu
LmMxMDQ2ODQwZmE0ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy91c2VyX3Byb21wdHMucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5
cy91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0
KToKQEAgLTE1LDcgKzE0LDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1l
bnQsIHRleHQpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5
cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10
ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1G
YWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUK
LWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19z
Y3JpcHQvY29sbGVjdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CmluZGV4IDQ4NGEy
NDdjZmZkOS4uMmRjOWI5YTAwOWFjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25zLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0
ZV9hc3luY19zY3JpcHQvY29sbGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBpbXBvcnQgb3MK
IAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3Njcmlw
dChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC0zNSw3ICszMiw3IEBAIGRlZiB0ZXN0
X2FycmF5KHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0pCiAK
IAotZGVmIHRlc3RfZmlsZV9saXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxlX2xp
c3Qoc2Vzc2lvbiwgdG1wZGlyLCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2luKCJm
b28udHh0IiksIHRtcGRpci5qb2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNTQsMTEgKzUxLDExIEBAIGRl
ZiB0ZXN0X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwgYWN0
dWFsIGluIHppcChmaWxlcywgdmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhY3R1
YWwsIGRpY3QpCiAgICAgICAgIGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRoLmJh
c2VuYW1lKHN0cihleHBlY3RlZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3RfaHRt
bF9hbGxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24o
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAg
PHA+Zm9vCiAgICAgICAgIDxwPmJhcgpAQCAtODYsNyArODMsNyBAQCBkZWYgdGVzdF9odG1sX2Fs
bF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwg
cHNbMV0sIHZhbHVlWzVdKQogCiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToK
K2RlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC0xMDQs
NyArMTAxLDcgQEAgZGVmIHRlc3RfaHRtbF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAgICBh
c3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVmIHRl
c3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1s
X2Zvcm1fY29udHJvbHNfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgIDxpbnB1dD4KQEAg
LTEyNCw3ICsxMjEsNyBAQCBkZWYgdGVzdF9odG1sX2Zvcm1fY29udHJvbHNfY29sbGVjdGlvbihz
ZXNzaW9uKToKICAgICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwg
YWN0dWFsKQogCiAKLWRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24pOgor
ZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdD4KICAgICAgICAgICAgIDxv
cHRpb24+CkBAIC0xNDQsNyArMTQxLDcgQEAgZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rp
b24oc2Vzc2lvbik6CiAgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0
ZWQsIGFjdHVhbCkKIAogCi1kZWYgdGVzdF9ub2RlX2xpc3Qoc2Vzc2lvbik6CitkZWYgdGVzdF9u
b2RlX2xpc3Qoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIK
ICAgICAgICAgPHA+Zm9vCiAgICAgICAgIDxwPmJhcgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9leGVj
dXRlX2FzeW5jLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5CmluZGV4IGM3NjljYTgxMWVl
MC4uNTc0NmVkNmYwNWYzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2V4ZWN1dGVfYXN5bmMucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2Fz
eW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5CkBAIC0xLDggKzEsMTAgQEAKIGltcG9ydCBweXRl
c3QKIAorZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBm
cm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCitmcm9tIHRl
c3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3Njcmlw
dChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC01MCw5ICs1MiwxNiBAQCBkZWYgdGVz
dF9hYm9ydF9ieV91c2VyX3Byb21wdF90d2ljZShzZXNzaW9uLCBkaWFsb2dfdHlwZSk6CiAKICAg
ICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCiAKLSAgICAjIFRoZSBmaXJzdCBhbGVydCBoYXMgYmVl
biBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9tcHQgaGFuZGxlciwgdGhlIHNlY29uZCBvbmUgcmVt
YWlucy4KLSAgICAjIEZJWE1FOiB0aGlzIGlzIGhvdyBicm93c2VycyBjdXJyZW50bHkgd29yaywg
YnV0IHRoZSBzcGVjIHNob3VsZCBjbGFyaWZ5IGlmIHRoaXMgaXMgdGhlCi0gICAgIyAgICAgICAg
ZXhwZWN0ZWQgYmVoYXZpb3IsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9p
c3N1ZXMvMTE1My4KLSAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09ICJCeWUiCisgICAg
IyBUaGUgZmlyc3QgYWxlcnQgaGFzIGJlZW4gYWNjZXB0ZWQgYnkgdGhlIHVzZXIgcHJvbXB0IGhh
bmRsZXIsIHRoZSBzZWNvbmQKKyAgICAjIGFsZXJ0IHdpbGwgc3RpbGwgYmUgb3BlbmVkIGJlY2F1
c2UgdGhlIGN1cnJlbnQgc3RlcCBpc24ndCBhYm9ydGVkLgorICAgIHdhaXQgPSBQb2xsKAorICAg
ICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUsCisgICAgICAgIG1lc3NhZ2U9IlNlY29u
ZCBhbGVydCBoYXMgbm90IGJlZW4gb3BlbmVkIiwKKyAgICAgICAgaWdub3JlZF9leGNlcHRpb25z
PU5vU3VjaEFsZXJ0RXhjZXB0aW9uCisgICAgKQorICAgIHRleHQgPSB3YWl0LnVudGlsKGxhbWJk
YSBzOiBzLmFsZXJ0LnRleHQpCisKKyAgICBhc3NlcnQgdGV4dCA9PSAiQnllIgogCiAgICAgc2Vz
c2lvbi5hbGVydC5hY2NlcHQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVzLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5j
X3NjcmlwdC9wcm9wZXJ0aWVzLnB5CmluZGV4IDM5NGFlMzI5NGNkMy4uZTUxYjNlM2VhNTc5IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4
ZWN1dGVfYXN5bmNfc2NyaXB0L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVz
LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwg
c2NyaXB0LCBhcmdzPU5vbmUpOgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9hc3luY19z
Y3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdzPU5vbmUpOgogICAgICAgICBib2R5KQogCiAKLWRl
ZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfY29udGVudF9hdHRy
aWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHZhbHVlPWZvb2Jhcj4iKQogICAgIHJlc3BvbnNlID0gZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vz
c2lvbiwgIiIiCiAgICAgICAgIGNvbnN0IHJlc29sdmUgPSBhcmd1bWVudHNbMF07CkBAIC0yMSw3
ICsyMCw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2Vy
dF9zdWNjZXNzKHJlc3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRl
KHNlc3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQ+CiAgICAgICAgIDxzY3Jp
cHQ+CkBAIC0zNyw3ICszNiw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9h
dHRyaWJ1dGVfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxlbWVu
dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAg
ICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC01OSw3ICs1OCw3IEBAIGRlZiB0ZXN0X2lkbF9h
dHRyaWJ1dGVfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Np
b24sIGJhciwgdmFsdWUpCiAKIAotZGVmIHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNl
c3Npb24pOgorZGVmIHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIHNlc3Npb24uZXhl
Y3V0ZV9zY3JpcHQoIiIiCiAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW5wdXQiKTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2NvbGxlY3Rp
b25zLnB5CmluZGV4IGJlMGIzYTAxOGM1MC4uODI5MWZkNzEzODhiIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2Nv
bGxlY3Rpb25zLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZXhlY3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBpbXBv
cnQgb3MKIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX3Njcmlw
dChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC0zMSw3ICsyOCw3IEBAIGRlZiB0ZXN0
X2FycmF5KHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0pCiAK
IAotZGVmIHRlc3RfZmlsZV9saXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxlX2xp
c3Qoc2Vzc2lvbiwgdG1wZGlyLCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2luKCJm
b28udHh0IiksIHRtcGRpci5qb2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNDcsMTEgKzQ0LDExIEBAIGRl
ZiB0ZXN0X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwgYWN0
dWFsIGluIHppcChmaWxlcywgdmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhY3R1
YWwsIGRpY3QpCiAgICAgICAgIGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRoLmJh
c2VuYW1lKHN0cihleHBlY3RlZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3RfaHRt
bF9hbGxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24o
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAg
PHA+Zm9vCiAgICAgICAgIDxwPmJhcgpAQCAtNzYsNyArNzMsNyBAQCBkZWYgdGVzdF9odG1sX2Fs
bF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwg
cHNbMV0sIHZhbHVlWzVdKQogCiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToK
K2RlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC05MSw3
ICs4OCw3IEBAIGRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAgYXNz
ZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0
X2h0bWxfZm9ybV9jb250cm9sc19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9m
b3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiIiIKICAgICAgICAgPGZvcm0+CiAgICAgICAgICAgICA8aW5wdXQ+CkBAIC0x
MDgsNyArMTA1LDcgQEAgZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vz
c2lvbik6CiAgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFj
dHVhbCkKIAogCi1kZWYgdGVzdF9odG1sX29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzZWxlY3Q+CiAgICAgICAgICAgICA8b3B0
aW9uPgpAQCAtMTI1LDcgKzEyMiw3IEBAIGRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9u
KHNlc3Npb24pOgogICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVk
LCBhY3R1YWwpCiAKIAotZGVmIHRlc3Rfbm9kZV9saXN0KHNlc3Npb24pOgorZGVmIHRlc3Rfbm9k
ZV9saXN0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAg
ICAgICAgIDxwPmZvbwogICAgICAgICA8cD5iYXIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3Njcmlw
dC9jeWNsaWMucHkKaW5kZXggMTZiZGNkZDFkZWE1Li5lMzA5NGY4OWYzYjcgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3Jp
cHQvY3ljbGljLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVu
dCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKIGRlZiBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBA
IC00OSw3ICs0OCw3IEBAIGRlZiB0ZXN0X29iamVjdF9pbl9hcnJheShzZXNzaW9uKToKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJqYXZhc2NyaXB0IGVycm9yIikKIAogCi1kZWYgdGVzdF9l
bGVtZW50X2luX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2luX2NvbGxl
Y3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48
L2Rpdj4iKQogICAgIGRpdnMgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiKQogCkBAIC02Myw3ICs2
Miw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfaW5fY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAg
YXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0
ZXN0X2VsZW1lbnRfaW5fb2JqZWN0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbl9vYmpl
Y3Qoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48L2Rp
dj4iKQogICAgIGRpdiA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVj
dXRlX3NjcmlwdC9leGVjdXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5CmluZGV4IGJkNzE5YjI3ODU5ZS4u
MGY5MzRjYmI0NDUwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2V4ZWN1dGUucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5
CkBAIC0xLDkgKzEsOSBAQAogaW1wb3J0IHB5dGVzdAogCitmcm9tIHdlYmRyaXZlci5lcnJvciBp
bXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBv
cnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9l
cnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0zNCw3ICsz
NCw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1l
KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVm
IHRlc3Rfb3BlbmluZ19uZXdfd2luZG93X2tlZXBzX2N1cnJlbnRfd2luZG93X2hhbmRsZShzZXNz
aW9uKToKK2RlZiB0ZXN0X29wZW5pbmdfbmV3X3dpbmRvd19rZWVwc19jdXJyZW50X3dpbmRvd19o
YW5kbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndp
bmRvd19oYW5kbGUKICAgICBvcmlnaW5hbF9oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCiAKQEAg
LTU3LDcgKzU3LDcgQEAgZGVmIHRlc3RfZW5kaW5nX2NvbW1lbnQoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIDEpCiAKIAotZGVmIHRlc3Rfb3ZlcnJpZGVfbGlzdGVuZXJz
KHNlc3Npb24pOgorZGVmIHRlc3Rfb3ZlcnJpZGVfbGlzdGVuZXJzKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiA8c2NyaXB0PgogY2FsbGVkID0gW107CkBA
IC04OCw5ICs4OCwxNiBAQCBkZWYgdGVzdF9hYm9ydF9ieV91c2VyX3Byb21wdF90d2ljZShzZXNz
aW9uLCBkaWFsb2dfdHlwZSk6CiAKICAgICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCiAKLSAgICAj
IFRoZSBmaXJzdCBhbGVydCBoYXMgYmVlbiBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9tcHQgaGFu
ZGxlciwgdGhlIHNlY29uZCBvbmUgcmVtYWlucy4KLSAgICAjIEZJWE1FOiB0aGlzIGlzIGhvdyBi
cm93c2VycyBjdXJyZW50bHkgd29yaywgYnV0IHRoZSBzcGVjIHNob3VsZCBjbGFyaWZ5IGlmIHRo
aXMgaXMgdGhlCi0gICAgIyAgICAgICAgZXhwZWN0ZWQgYmVoYXZpb3IsIHNlZSBodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvMTE1My4KLSAgICBhc3NlcnQgc2Vzc2lvbi5h
bGVydC50ZXh0ID09ICJCeWUiCisgICAgIyBUaGUgZmlyc3QgYWxlcnQgaGFzIGJlZW4gYWNjZXB0
ZWQgYnkgdGhlIHVzZXIgcHJvbXB0IGhhbmRsZXIsIHRoZSBzZWNvbmQKKyAgICAjIGFsZXJ0IHdp
bGwgc3RpbGwgYmUgb3BlbmVkIGJlY2F1c2UgdGhlIGN1cnJlbnQgc3RlcCBpc24ndCBhYm9ydGVk
LgorICAgIHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUs
CisgICAgICAgIG1lc3NhZ2U9IlNlY29uZCBhbGVydCBoYXMgbm90IGJlZW4gb3BlbmVkIiwKKyAg
ICAgICAgaWdub3JlZF9leGNlcHRpb25zPU5vU3VjaEFsZXJ0RXhjZXB0aW9uCisgICAgKQorICAg
IHRleHQgPSB3YWl0LnVudGlsKGxhbWJkYSBzOiBzLmFsZXJ0LnRleHQpCisKKyAgICBhc3NlcnQg
dGV4dCA9PSAiQnllIgogCiAgICAgc2Vzc2lvbi5hbGVydC5hY2NlcHQoKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3Njcmlw
dC9wcm9wZXJ0aWVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CmluZGV4IDJiZTRmMWYzY2NjOS4uNTE5
OTk5MzZlNzFhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVz
LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0
LCBhcmdzPU5vbmUpOgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lv
biwgc2NyaXB0LCBhcmdzPU5vbmUpOgogICAgICAgICBib2R5KQogCiAKLWRlZiB0ZXN0X2NvbnRl
bnRfYXR0cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZvb2Jh
cj4iKQogICAgIHJlc3BvbnNlID0gZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgIiIiCiAgICAgICAg
IGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKQEAgLTIwLDcg
KzE5LDcgQEAgZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X3N1Y2Nlc3MocmVzcG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUo
c2Vzc2lvbik6CitkZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dD4KICAgICAgICAgPHNjcmlw
dD4KQEAgLTM1LDcgKzM0LDcgQEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToKICAg
ICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRsX2F0
dHJpYnV0ZV9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAg
IDxwPmZvbwogICAgICAgICA8cD5iYXIKQEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfaWRsX2F0
dHJpYnV0ZV9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lv
biwgYmFyLCB2YWx1ZSkKIAogCi1kZWYgdGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vz
c2lvbik6CitkZWYgdGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZXhlY3V0ZV9zY3Jp
cHQoc2Vzc2lvbiwgIiIiCiAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiaW5wdXQiKTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L2ZpbmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CmluZGV4IDlmMDkx
MWQ1NmRjMC4uNDUxMDYxN2RhNWE2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L2ZpbmQucHkK
QEAgLTMsNyArMyw2IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBp
bXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lv
biwgdXNpbmcsIHZhbHVlKToKQEAgLTQ4LDcgKzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxl
Y3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhw
YXRoIiwgIi8vYSIpXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFs
dWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVl
KToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0j
IGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPiIpCiAKQEAgLTY0LDcgKzYzLDcgQEAgZGVm
IHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVm
PSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0n
dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwK
IF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2
YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwg
ZG9jdW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZShkb2N1bWVudCkKIApAQCAtODEsNyArODAsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRf
bGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+UEFS
VElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJTksiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4
dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksiKSwK
IF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9j
dW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4dChz
ZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoZG9jdW1lbnQpCiAKQEAgLTEwMiw3ICsxMDEsNyBAQCBkZWYg
dGVzdF9ub19lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInhwYXRoIiwgIi8vKltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVz
cGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNl
c3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiI8YSBocmVmPSIjIiBpZD0ibGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPiIiIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBkb2N0eXBlPSJ4aHRtbCIpCiAgICAgZXhwZWN0ZWQgPSBzZXNz
aW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQubGlua3NbMF0iKQpAQCAtMTE2LDcg
KzExNSw3IEBAIGRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUp
OgogICAgICAgICAgICAgICAgICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIsICI6cm9vdCIpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImh0bWwiKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvaHRtbCIpXSkKLWRlZiB0ZXN0X2h0bWxkb2N1
bWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Np
b24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikK
ICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91
c2VyX3Byb21wdHMucHkKaW5kZXggNjEzNDY2YjYyYjUxLi5hZGE4ZThlYmVlMzMgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBA
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nlc3Ms
CiAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFs
dWUpOgpAQCAtMTgsNyArMTcsNyBAQCBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2
YWx1ZSk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
LCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8cD5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBh
bGw9RmFsc2UpCkBAIC0zNiw3ICszNSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5iYXI8L3A+IikKIApAQCAtNTEsNyArNTAs
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxwPmJhcjwvcD4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zy
b21fZWxlbWVudC9maW5kLnB5CmluZGV4IGFhNjQ4MTE3OTc2Yi4uODc5ZGUzNzEzZjk5IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weQpA
QCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGlt
cG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9u
LCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZmluZF9l
bGVtZW50KHNlc3Npb24sIGVsZW1lbnRfaWQsIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgIHsidXNp
bmciOiB1c2luZywgInZhbHVlIjogdmFsdWV9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVy
X3ZhbHVlKHNlc3Npb24sIGh0dHApOgorZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vz
c2lvbiwgaHR0cCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48YSBo
cmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQogCkBAIC01NCw3ICs1Myw3IEBA
IGRlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvL2EiKV0pCi1kZWYgdGVzdF9maW5kX2VsZW1l
bnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9u
LCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9h
PjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxz
ZSkKQEAgLTcwLDcgKzY5LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5n
LCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwK
ICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0
ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190
ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlu
a190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAt
IDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChkb2N1
bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkK
QEAgLTg4LDcgKzg3LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNzaW9u
LCBkb2N1bWVudCwgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9h
PiIsICJMSU5LIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBl
cmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVmIHRlc3RfZmlu
ZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6Citk
ZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBk
b2N1bWVudCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZGl2PnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtOTgsNyArOTcsNyBAQCBkZWYgdGVz
dF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVl
KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwgWygiY3NzIHNl
bGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCi1kZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIHVz
aW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcs
IHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRp
dj48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFs
c2UpCkBAIC0xMTIsNyArMTExLDcgQEAgZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCB1c2lu
ZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0
IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwg
ImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvLypbbmFtZSgpPSdh
J10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToK
K2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPHA+PGEgaHJlZj0iIyIgaWQ9ImxpbmtUZXh0
Ij5mdWxsIGxpbmsgdGV4dDwvYT48L3A+IiIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3R5cGU9InhodG1sIikKICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCIiInJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwIikiIiIpCkBAIC0xMjMsNyArMTIy
LDcgQEAgZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAg
ICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQpCiAKIAotZGVm
IHRlc3RfcGFyZW50X2h0bWxkb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9odG1s
ZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikK
ICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiInJldHVybiBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikiIiIpCiAgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4
ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IikKQEAgLTEzMyw3
ICsxMzIsNyBAQCBkZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24pOgogICAgIGFz
c2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0
X3BhcmVudF9vZl9kb2N1bWVudF9ub2RlX2Vycm9ycyhzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVu
dF9vZl9kb2N1bWVudF9ub2RlX2Vycm9ycyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiKQogICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3Jp
cHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQiKQogCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9t
X2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQpp
bmRleCAzZmRhZjRlNDdlZDcuLjA1MzdhNzg2MTg5YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50
L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CkBAIC04
LDcgKzgsNiBAQCBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFzc2Vy
dF9zdWNjZXNzLAogICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZCwKICkKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwg
ZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKQEAgLTIwLDcgKzE5LDcgQEAgZGVmIGZpbmRfZWxl
bWVudChzZXNzaW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4i
KQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZh
bHNlKQpAQCAtMzksNyArMzgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBv
dXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNTUs
NyArNTQsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hh
ZG93X3Jvb3QvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjhmYzkzMzE5ZjQzCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5IEBA
CitpbXBvcnQgcHl0ZXN0CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFnZShp
bmxpbmUpOgorICAgIGRlZiBnZXRfc2hhZG93X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAgICAg
ICByZXR1cm4gaW5saW5lKCIiIgorICAgICAgICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVudD48
L2N1c3RvbS1zaGFkb3ctZWxlbWVudD4KKyAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAorICAg
ICAgICAgICAgICAgICAgICBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHt7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0
YWNoU2hhZG93KHt7bW9kZTogJ29wZW4nfX0pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHt7IHswfSB9fQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBgOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19CisgICAgICAgICAgICAg
ICAgICAgIH19KTsKKyAgICAgICAgICAgIDwvc2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2NvbnRl
bnQpKQorICAgIHJldHVybiBnZXRfc2hhZG93X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93
X3Jvb3QvZmluZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg3OTQxZDQ5NWUxMwotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50
X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weQpAQCAtMCwwICsxLDE0MSBAQAoraW1wb3J0IHB5dGVz
dAorCitmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1l
bnQsIGFzc2VydF9zdWNjZXNzCisKKworZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3df
aWQsIHVzaW5nLCB2YWx1ZSk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisg
ICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lkfS9l
bGVtZW50Ii5mb3JtYXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9p
ZCwKKyAgICAgICAgICAgIHNoYWRvd19pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5nIjog
dXNpbmcsICJ2YWx1ZSI6IHZhbHVlfSkKKworCitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1
ZShzZXNzaW9uLCBodHRwLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJsID0gZ2V0
X3NoYWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwv
YT48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9t
LXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2Vs
ZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHBhdGggPSAiL3Nlc3Npb24ve3Nlc3Npb25faWR9L3No
YWRvdy97c2hhZG93X2lkfS9lbGVtZW50Ii5mb3JtYXQoCisgICAgICAgIHNlc3Npb25faWQ9c2Vz
c2lvbi5zZXNzaW9uX2lkLCBzaGFkb3dfaWQ9c2hhZG93X3Jvb3QuaWQpCisgICAgd2l0aCBodHRw
LnBvc3QocGF0aCwgTm9uZSkgYXMgcmVzcG9uc2U6CisgICAgICAgIGFzc2VydF9lcnJvcihSZXNw
b25zZS5mcm9tX2h0dHAocmVzcG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVmIHRl
c3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAg
cmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgIm5vdFJlYWwiLCAiY3NzIHNlbGVjdG9y
IiwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQor
CisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToK
KyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2Vs
ZWN0b3IiLCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRv
dyIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyIsIFsiYSIsIFRydWUsIE5v
bmUsIDEsIFtdLCB7fV0pCitkZWYgdGVzdF9pbnZhbGlkX3VzaW5nX2FyZ3VtZW50KHNlc3Npb24s
IHVzaW5nKToKKyAgICAjIFN0ZXAgMSAtIDIKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChz
ZXNzaW9uLCAibm90UmVhbCIsIHVzaW5nLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
dmFsdWUiLCBbTm9uZSwgW10sIHt9XSkKK2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1l
bnQoc2Vzc2lvbiwgdmFsdWUpOgorICAgICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0gZmlu
ZF9lbGVtZW50KHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsIHZhbHVlKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK2RlZiB0ZXN0
X2RldGFjaGVkX3NoYWRvd19yb290KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAgc2Vz
c2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+
PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1z
aGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVt
ZW50LnNoYWRvd19yb290CisgICAgc2Vzc2lvbi5yZWZyZXNoKCkKKworICAgIHJlc3BvbnNlID0g
ZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIiwgImlucHV0IikKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJkZXRhY2hlZCBzaGFkb3cgcm9vdCIpCisKKworZGVm
IHRlc3RfZm91bmRfZWxlbWVudF9lcXVpdmFsZW5jZShzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2Up
OgorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdj
aGVja2JveCcvPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0ZWQgPSBzZXNz
aW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignaW5wdXQnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVu
dC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRv
d19yb290LmlkLCAiY3NzIiwgImlucHV0IikKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlKQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVk
KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIsICIjbGlua1RleHQiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCJsaW5rIHRleHQiLCAiZnVsbCBsaW5rIHRleHQiKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy9hIildKQorZGVmIHRlc3RfZmluZF9lbGVtZW50
KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAt
IDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48YSBocmVmPSMgaWQ9
bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAg
ICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0u
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjbGlua1RleHQnKSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAgc2hhZG93
X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9l
bGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCB1c2luZywgdmFsdWUpCisgICAgYXNzZXJ0
X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2YWx1
ZSwgZXhwZWN0ZWQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2YWx1
ZSIsIFsKKyAgICAoIjxhIGhyZWY9Iz5saW5rIHRleHQ8L2E+IiwgImxpbmsgdGV4dCIpLAorICAg
ICgiPGEgaHJlZj0jPiZuYnNwO2xpbmsgdGV4dCZuYnNwOzwvYT4iLCAibGluayB0ZXh0IiksCisg
ICAgKCI8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPiIsICJsaW5rXG50ZXh0IiksCisgICAgKCI8
YSBocmVmPSM+bGluayZhbXA7dGV4dDwvYT4iLCAibGluayZ0ZXh0IiksCisgICAgKCI8YSBocmVm
PSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHlsZT0n
dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwK
K10pCitkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGdldF9zaGFkb3df
cGFnZSwgZG9jdW1lbnQsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVy
bCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCisg
ICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1l
bnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJy
ZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnYScpWzBdIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1l
bnQsKSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisKKyAg
ICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImxpbmsg
dGV4dCIsIHZhbHVlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydF9z
YW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUiLCBbCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBs
aW5rIHRleHQ8L2E+IiwgImxpbmsiKSwKKyAgICAoIjxhIGhyZWY9Iz4mbmJzcDtwYXJ0aWFsIGxp
bmsgdGV4dCZuYnNwOzwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGlu
ayB0ZXh0PC9hPiIsICJrIHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4
dDwvYT4iLCAia1xudCIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayZhbXA7dGV4dDwv
YT4iLCAiayZ0IiksCisgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJ
TksiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+
cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksiKSwKK10pCitkZWYgdGVzdF9maW5kX2VsZW1l
bnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVudCwg
dmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19w
YWdlKCI8ZGl2PnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKKyAgICBjdXN0b21fZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkK
KyAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNb
MF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdhJylbMF0iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQorICAgIHNoYWRv
d19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHJlc3BvbnNlID0gZmlu
ZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAicGFydGlhbCBsaW5rIHRleHQiLCB2
YWx1ZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnRfc2FtZV9lbGVt
ZW50KHNlc3Npb24sIHZhbHVlLCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInVzaW5nLHZhbHVlIiwgWygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCitkZWYg
dGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToK
KyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRp
dj48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9t
LXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2Vs
ZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24s
IHNoYWRvd19yb290LmlkLCB1c2luZywgdmFsdWUpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNl
LCAibm8gc3VjaCBlbGVtZW50IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9w
cm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zODEzYTdkZjVkMzIKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudF9mcm9tX3NoYWRvd19yb290L3VzZXJfcHJvbXB0cy5weQpAQCAtMCwwICsxLDEyOSBAQAor
IyBNRVRBOiB0aW1lb3V0PWxvbmcKKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgKAorICAgIGFzc2VydF9lcnJvciwKKyAgICBhc3NlcnRfc2FtZV9l
bGVtZW50LAorICAgIGFzc2VydF9zdWNjZXNzLAorICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZCwK
KykKKworCitkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZhbHVl
KToKKyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAi
c2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnQiLmZvcm1hdCgK
KyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAg
ZWxlbWVudF9pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5nIjogdXNpbmcsICJ2YWx1ZSI6
IHZhbHVlfSkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgZ2V0X3NoYWRvd19w
YWdlKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3df
cGFnZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQorICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgICAg
ICBzaGFkb3dfcm9vdCA9IG91dGVyX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICAgICAgaW5uZXJf
ZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdwJykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPShvdXRlcl9lbGVtZW50LCkpCisKKyAgICAgICAgY3Jl
YXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAgICByZXNw
b25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyBzZWxlY3Rv
ciIsICJwIikKKyAgICAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAg
ICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2df
dHlwZSwgZXhwZWN0ZWRfcmV0dmFsPXJldHZhbCkKKworICAgICAgICBhc3NlcnRfc2FtZV9lbGVt
ZW50KHNlc3Npb24sIHZhbHVlLCBpbm5lcl9lbGVtZW50KQorCisgICAgcmV0dXJuIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QuZml4dHVyZQor
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAgIHNlc3Np
b24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisgICAgICAg
IG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQi
LCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3df
cm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5
cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jv
b3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1y
ZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6
CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2Pjxw
PmJhcjwvcD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290
ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlh
bG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2Vs
ZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAg
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAg
ICAgICAgYXNzZXJ0IHNlc3Npb24uYWxlcnQudGV4dCA9PSBkaWFsb2dfdHlwZQorICAgICAgICBz
ZXNzaW9uLmFsZXJ0LmRpc21pc3MoKQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1
bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJhY2NlcHQifSkKK0BweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAg
KCJjb25maXJtIiwgVHJ1ZSksCisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3RfYWNj
ZXB0KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5
cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7
InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImFjY2VwdCBhbmQgbm90aWZ5In0pCitAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIs
IE5vbmUpLAorICAgICgiY29uZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkK
K2RlZiB0ZXN0X2FjY2VwdF9hbmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5t
YXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRpc21pc3MifSkK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAo
ImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0Iiwg
Tm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzcyhjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0Bw
eXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNt
aXNzIGFuZCBub3RpZnkifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUs
IHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2Up
LAorICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzc19hbmRfbm90aWZ5
KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJl
dHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxl
ZFByb21wdEJlaGF2aW9yIjogImlnbm9yZSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJk
aWFsb2dfdHlwZSIsIFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2RlZiB0ZXN0X2ln
bm9yZShjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24sIGRpYWxvZ190
eXBlKToKKyAgICBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlh
bG9nX3R5cGUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0
dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisg
ICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kZWZhdWx0KGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2ZpbmRfZWxlbWVudHMvZmluZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy9maW5kLnB5CmluZGV4IGMxMzgxYTBlODJhYy4uNDdm
MDA5NzM5Mzg1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weQpAQCAtMyw3ICsz
LDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNw
b25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBh
c3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcs
IHZhbHVlKToKQEAgLTQ4LDcgKzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1
bWVudChzZXNzaW9uLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlh
bCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
dGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8v
YSIpXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2Rl
ZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAg
ICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSMgaWQ9bGlu
a1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+IikKIApAQCAtNjUsNyArNjQsNyBAQCBkZWYgdGVzdF9m
aW5kX2VsZW1lbnRzKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElO
SyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10
cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1k
ZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUp
OgorZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1
bWVudCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8YSBocmVmPSM+bm90IHdhbnRlZDwvYT48YnIvPnswfSIuZm9ybWF0KGRvY3VtZW50KSkKICAg
ICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5saW5r
c1sxXTsiKQpAQCAtODgsNyArODcsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4
dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElO
SyBURVhUPC9hPiIsICJMSU5LIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNm
b3JtOiB1cHBlcmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVm
IHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwg
dmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9u
LCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9Ii5mb3JtYXQo
ZG9jdW1lbnQpKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJu
IGRvY3VtZW50LmxpbmtzWzFdOyIpCkBAIC0xMTYsNyArMTE1LDcgQEAgZGVmIHRlc3Rfbm9fZWxl
bWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAo
InBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0
aCIsICIvLypbbmFtZSgpPSdhJ10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lv
biwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxp
bmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGEgaHJlZj0i
IyIgaWQ9ImxpbmtUZXh0Ij5mdWxsIGxpbmsgdGV4dDwvYT4iIiIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmxpbmtzWzBdOyIpCkBAIC0xMzQsNyArMTMzLDcgQEAg
ZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgWygiY3NzIHNlbGVjdG9yIiwgIjpyb290IiksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiaHRtbCIpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInhwYXRoIiwgIi9odG1sIildKQotZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Np
b24sIHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5l
LCB1c2luZywgdmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIHJlc3Bv
bnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAgICAgdmFsdWUgPSBh
c3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMv
dXNlcl9wcm9tcHRzLnB5CmluZGV4IDAxZWI4ZmYzYzg2My4uZjlhNDVlNTI3NTE1IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudHMvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2
IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MsCiAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcs
IHZhbHVlKToKQEAgLTE4LDcgKzE3LDcgQEAgZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNp
bmcsIHZhbHVlKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxwPmJhcjwvcD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
cCIsIGFsbD1GYWxzZSkKQEAgLTM4LDcgKzM3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJhcjwvcD4iKQogCkBAIC01Myw3
ICs1Miw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPHA+YmFyPC9wPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50c19mcm9tX2VsZW1lbnQvZmluZC5weQppbmRleCA1YzI2N2JhNjQ3OWUuLmFlNmY5NzZlOWY5
NyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQv
ZmluZC5weQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJh
bnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVu
dHMoc2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKQEAgLTE0LDcgKzEzLDcgQEAg
ZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKICAg
ICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCiAKIAotZGVmIHRlc3RfbnVs
bF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCk6CitkZWYgdGVzdF9udWxsX3BhcmFtZXRl
cl92YWx1ZShzZXNzaW9uLCBodHRwLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKQEAgLTU0
LDcgKzUzLDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2
YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAi
bGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0ZXN0
X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxl
bWVudHMoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxs
IGxpbmsgdGV4dDwvYT48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJk
aXYiLCBhbGw9RmFsc2UpCkBAIC03MCw3ICs2OSw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudHMo
c2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+Iiwg
IkxJTksgVEVYVCIpLAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBw
ZXJjYXNlJz5saW5rIHRleHQ8L2E+IiwgIkxJTksgVEVYVCIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRf
ZWxlbWVudHNfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9m
aW5kX2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6
CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJl
Zj0jPm5vdCB3YW50ZWQ8L2E+PGJyLz57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTk0LDcgKzkz
LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQs
IHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4iLCAiTElOSyIp
LAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0
aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHNf
cGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2Zp
bmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwg
dmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2
PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQp
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC0x
MTAsNyArMTA5LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChz
ZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
dXNpbmcsdmFsdWUiLCBbKCJjc3Mgc2VsZWN0b3IiLCAiI3dvbnRFeGlzdCIpXSkKLWRlZiB0ZXN0
X25vX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X25vX2VsZW1lbnQo
c2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTEyNCw3ICsxMjMsNyBAQCBkZWYgdGVzdF9u
b19lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAo
InhwYXRoIiwgIi8vKltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShz
ZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24s
IGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8cD48
YSBocmVmPSIjIiBpZD0ibGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPjwvcD4iIiIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQogICAgIGZyb21fZWxlbWVudCA9
IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InAiKSIiIikKQEAgLTEzOSw3ICsxMzgsNyBAQCBkZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vz
c2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZv
dW5kX2VsZW1lbnQsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9odG1sZG9jdW1lbnQo
c2Vzc2lvbik6CitkZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIpCiAgICAgZnJvbV9lbGVtZW50ID0gc2Vzc2lv
bi5leGVjdXRlX3NjcmlwdCgiIiJyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIp
IiIiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCIpCkBAIC0xNTMsNyArMTUyLDcgQEAgZGVmIHRlc3RfcGFyZW50
X2h0bWxkb2N1bWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24s
IGZvdW5kX2VsZW1lbnQsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVu
dF9ub2RlX2Vycm9ycyhzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9ub2Rl
X2Vycm9ycyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQog
ICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQiKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJv
bXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmlu
ZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGNhN2JjNzczNWQw
OC4uNDY3YmVjMDlhMWJkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAgZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfc3VjY2VzcywKICAg
ICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGlt
cG9ydCBpbmxpbmUKIAogCiBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBlbGVtZW50X2lkLCB1
c2luZywgdmFsdWUpOgpAQCAtMjAsNyArMTksNyBAQCBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9u
LCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBv
dXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNDEs
NyArNDAsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNTcsNyArNTYsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxk
aXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L2Nv
bmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iOGZjOTMzMTlmNDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVu
dHNfZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5IEBACitpbXBvcnQg
cHl0ZXN0CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFnZShpbmxpbmUpOgor
ICAgIGRlZiBnZXRfc2hhZG93X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAgICAgICByZXR1cm4g
aW5saW5lKCIiIgorICAgICAgICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVudD48L2N1c3RvbS1z
aGFkb3ctZWxlbWVudD4KKyAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgICAgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAorICAgICAgICAgICAg
ICAgICAgICBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdHJ1Y3RvcigpIHt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1
cGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93
KHt7bW9kZTogJ29wZW4nfX0pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHt7IHswfSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19CisgICAgICAgICAgICAgICAgICAgIH19
KTsKKyAgICAgICAgICAgIDwvc2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2NvbnRlbnQpKQorICAg
IHJldHVybiBnZXRfc2hhZG93X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L2Zp
bmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC9maW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uZjcwYTRiNDVhYWRiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21f
c2hhZG93X3Jvb3QvZmluZC5weQpAQCAtMCwwICsxLDE0NCBAQAoraW1wb3J0IHB5dGVzdAorCitm
cm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQsIGFz
c2VydF9zdWNjZXNzCisKKworZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X2lkLCB1
c2luZywgdmFsdWUpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAg
ICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRvd19pZH0vZWxlbWVu
dHMiLmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAor
ICAgICAgICAgICAgc2hhZG93X2lkPXNoYWRvd19pZCksCisgICAgICAgIHsidXNpbmciOiB1c2lu
ZywgInZhbHVlIjogdmFsdWV9KQorCisKK2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNl
c3Npb24sIGh0dHAsIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEg
aHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCisgICAgY3VzdG9t
X2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9
RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorCisg
ICAgcGF0aCA9ICIvc2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1l
bnRzIi5mb3JtYXQoCisgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLCBzaGFk
b3dfaWQ9c2hhZG93X3Jvb3QuaWQpCisgICAgd2l0aCBodHRwLnBvc3QocGF0aCwgTm9uZSkgYXMg
cmVzcG9uc2U6CisgICAgICAgIGFzc2VydF9lcnJvcihSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9u
c2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2Nv
bnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1l
bnRzKHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9ub19icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CisgICAgcmVzcG9uc2UgPSBmaW5k
X2VsZW1lbnRzKHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInVzaW5nIiwgWygiYSIpLCAoVHJ1ZSksIChOb25lKSwgKDEpLCAoW10p
LCAoe30pXSkKK2RlZiB0ZXN0X2ludmFsaWRfdXNpbmdfYXJndW1lbnQoc2Vzc2lvbiwgdXNpbmcp
OgorICAgICMgU3RlcCAxIC0gMgorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9u
LCAibm90UmVhbCIsIHVzaW5nLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
ImludmFsaWQgYXJndW1lbnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUi
LCBbTm9uZSwgW10sIHt9XSkKK2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vz
c2lvbiwgdmFsdWUpOgorICAgICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVt
ZW50cyhzZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCB2YWx1ZSkKKyAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikKKworCitkZWYgdGVzdF9kZXRh
Y2hlZF9zaGFkb3dfcm9vdChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24u
dXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPjwvZGl2
PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93
LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5z
aGFkb3dfcm9vdAorICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXNwb25zZSA9IGZpbmRf
ZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAiaW5wdXQiKQorICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgImRldGFjaGVkIHNoYWRvdyByb290IikKKworCitkZWYgdGVz
dF9maW5kX2VsZW1lbnRzX2VxdWl2YWxlbmNlKHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6Cisg
ICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IGlkPSdjaGVjaycg
dHlwZT0nY2hlY2tib3gnLz48aW5wdXQgaWQ9J3RleHQnLz48L2Rpdj4iKQorICAgIGN1c3RvbV9l
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZh
bHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICBy
ZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAi
aW5wdXQiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsoImNz
cyBzZWxlY3RvciIsICIjbGlua1RleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJs
aW5rIHRleHQiLCAiZnVsbCBsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBh
dGgiLCAiLy9hIildKQorZGVmIHRlc3RfZmluZF9lbGVtZW50cyhzZXNzaW9uLCBnZXRfc2hhZG93
X3BhZ2UsIHVzaW5nLCB2YWx1ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lvbi51cmwg
PSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0
ZXh0PC9hPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJj
dXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0
b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNz
aW9uLCBzaGFkb3dfcm9vdC5pZCwgdXNpbmcsIHZhbHVlKQorICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUiLCBb
CisgICAgKCI8YSBocmVmPSM+bGluayB0ZXh0PC9hPiIsICJsaW5rIHRleHQiKSwKKyAgICAoIjxh
IGhyZWY9Iz4mbmJzcDtsaW5rIHRleHQmbmJzcDs8L2E+IiwgImxpbmsgdGV4dCIpLAorICAgICgi
PGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4iLCAibGlua1xudGV4dCIpLAorICAgICgiPGEgaHJl
Zj0jPmxpbmsmYW1wO3RleHQ8L2E+IiwgImxpbmsmdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPkxJ
TksgVEVYVDwvYT4iLCAiTElOSyBURVhUIiksCisgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQt
dHJhbnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4iLCAiTElOSyBURVhUIiksCitdKQor
ZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdl
LCBkb2N1bWVudCwgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0g
Z2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9PC9k
aXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJk
aXYiLCBhbGw9RmFsc2UpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJj
dXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0
b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3Nj
cmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2En
KVsxXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3Rv
bV9lbGVtZW50LCkpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hh
ZG93X3Jvb3QuaWQsICJsaW5rIHRleHQiLCB2YWx1ZSkKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KQorICAgIGFz
c2VydCBsZW4odmFsdWUpID09IDEKKworICAgIGZvdW5kX2VsZW1lbnQgPSB2YWx1ZVswXQorICAg
IGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZm91bmRfZWxlbWVudCwgZXhwZWN0ZWQpCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2YWx1ZSIsIFsKKyAgICAoIjxh
IGhyZWY9Iz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJlZj0j
PiZuYnNwO3BhcnRpYWwgbGluayB0ZXh0Jm5ic3A7PC9hPiIsICJsaW5rIiksCisgICAgKCI8YSBo
cmVmPSM+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgImsgdCIpLAorICAgICgiPGEgaHJlZj0jPnBh
cnRpYWwgbGluazxicj50ZXh0PC9hPiIsICJrXG50IiksCisgICAgKCI8YSBocmVmPSM+cGFydGlh
bCBsaW5rJmFtcDt0ZXh0PC9hPiIsICJrJnQiKSwKKyAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJ
TksgVEVYVDwvYT4iLCAiTElOSyIpLAorICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5z
Zm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAorXSkKK2Rl
ZiB0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRv
d19wYWdlLCBkb2N1bWVudCwgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24u
dXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+
ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJkaXYiLCBhbGw9RmFsc2UpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3Qg
PSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JB
bGwoJ2EnKVsxXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9
KGN1c3RvbV9lbGVtZW50LCkpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lv
biwgc2hhZG93X3Jvb3QuaWQsICJwYXJ0aWFsIGxpbmsgdGV4dCIsIHZhbHVlKQorICAgIHZhbHVl
ID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUs
IGxpc3QpCisgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gMQorCisgICAgZm91bmRfZWxlbWVudCA9
IHZhbHVlWzBdCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBmb3VuZF9lbGVtZW50
LCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwg
WygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCitkZWYgdGVzdF9ub19lbGVtZW50KHNl
c3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkK
KyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48L2Rpdj4iKQorICAgIGN1
c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50Iiwg
YWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QK
KyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsIHVz
aW5nLCB2YWx1ZSkKKyAgICBhc3NlcnQgcmVzcG9uc2UuYm9keVsidmFsdWUiXSA9PSBbXQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5k
X2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93
X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uYzRiOTAzYzgzNmVmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3Qv
dXNlcl9wcm9tcHRzLnB5CkBAIC0wLDAgKzEsMTMxIEBACisjIE1FVEE6IHRpbWVvdXQ9bG9uZwor
CitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCisg
ICAgYXNzZXJ0X2Vycm9yLAorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQsCisgICAgYXNzZXJ0X3N1
Y2Nlc3MsCisgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAorKQorCisKK2RlZiBmaW5kX2VsZW1l
bnRzKHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZhbHVlKToKKyAgICByZXR1cm4gc2Vzc2lv
bi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0v
c2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnRzIi5mb3JtYXQoCisgICAgICAgICAgICBzZXNzaW9u
X2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9c2hhZG93X2lk
KSwKKyAgICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCisKKworQHB5dGVz
dC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9w
PjxkaXY+IikKKyAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3Rv
bS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRl
cl9lbGVtZW50LnNoYWRvd19yb290CisgICAgICAgIGlubmVyX2VsZW1lbnQgPSBzZXNzaW9uLmV4
ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigncCcpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJncz0ob3V0ZXJfZWxlbWVudCwpKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5
cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRz
KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAgICB2
YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZSh2YWx1ZSwgbGlzdCkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gMQorCisgICAgICAg
IGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBl
LCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQorCisgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQo
c2Vzc2lvbiwgdmFsdWVbMF0sIGlubmVyX2VsZW1lbnQpCisKKyAgICByZXR1cm4gY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lv
bi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAgICAgICAg
b3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIs
IGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNoYWRvd19y
b290CisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlw
ZSkKKworICAgICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jv
b3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1y
ZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6
CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2Pjxw
PmJhcjwvcD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290
ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlh
bG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2Vs
ZW1lbnRzKHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAg
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJ1bmV4cGVjdGVkIGFsZXJ0IG9wZW4iKQorCisg
ICAgICAgIGFzc2VydCBzZXNzaW9uLmFsZXJ0LnRleHQgPT0gZGlhbG9nX3R5cGUKKyAgICAgICAg
c2Vzc2lvbi5hbGVydC5kaXNtaXNzKCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24KKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsi
dW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAg
ICgiY29uZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2Fj
Y2VwdChjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRpYWxvZ190
eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMo
eyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJhY2NlcHQgYW5kIG5vdGlmeSJ9KQorQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQi
LCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10p
CitkZWYgdGVzdF9hY2NlcHRfYW5kX25vdGlmeShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3Qu
bWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIn0p
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAg
KCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIs
IE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3MoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitA
cHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlz
bWlzcyBhbmQgbm90aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBl
LCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNl
KSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3NfYW5kX25vdGlm
eShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCBy
ZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRs
ZWRQcm9tcHRCZWhhdmlvciI6ICJpZ25vcmUifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
ZGlhbG9nX3R5cGUiLCBbImFsZXJ0IiwgImNvbmZpcm0iLCAicHJvbXB0Il0pCitkZWYgdGVzdF9p
Z25vcmUoY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uLCBkaWFsb2df
dHlwZSk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJl
dHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAor
ICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGVmYXVsdChjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9mb3J3YXJkL2ZvcndhcmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZvcndhcmQvZm9yd2FyZC5weQppbmRleCA0YTFlMjE1ODE1MTguLjk3YTkzNWM4
Y2Q4MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9mb3J3YXJkL2ZvcndhcmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL2ZvcndhcmQucHkKQEAgLTEsNSArMSw3IEBACitpbXBv
cnQgcHl0ZXN0Citmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKKwogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmb3J3YXJkKHNlc3Npb24p
OgpAQCAtNyw3ICs5LDcgQEAgZGVmIGZvcndhcmQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwg
InNlc3Npb24ve3Nlc3Npb25faWR9L2ZvcndhcmQiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQog
CiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxs
X3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxkaXY+IikKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+IikKICAgICBzZXNzaW9u
LmJhY2soKQpAQCAtMjcsNyArMjksNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKIAot
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfaGlzdG9yeShzZXNzaW9uKToKK2RlZiB0ZXN0X25vX2Jyb3dz
aW5nX2hpc3Rvcnkoc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmwgPSBpbmxpbmUoIjxkaXYgaWQ9
Zm9vPiIpCiAKICAgICBzZXNzaW9uLnVybCA9IHVybApAQCAtNDAsNyArNDIsNyBAQCBkZWYgdGVz
dF9ub19icm93c2luZ19oaXN0b3J5KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3Bl
cnR5KCJpZCIpID09ICJmb28iCiAKIAotZGVmIHRlc3RfZGF0YV91cmxzKHNlc3Npb24pOgorZGVm
IHRlc3RfZGF0YV91cmxzKHNlc3Npb24sIGlubGluZSk6CiAgICAgdGVzdF9wYWdlcyA9IFsKICAg
ICAgICAgaW5saW5lKCI8cCBpZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCkBA
IC01Nyw3ICs1OSw3IEBAIGRlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uKToKICAgICBhc3NlcnQg
c2Vzc2lvbi51cmwgPT0gdGVzdF9wYWdlc1sxXQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZv
cmV1bmxvYWQoc2Vzc2lvbik6CitkZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNlc3Np
b24sIGlubGluZSk6CiAgICAgdXJsX2JlZm9yZXVubG9hZCA9IGlubGluZSgiIiIKICAgICAgIDxp
bnB1dCB0eXBlPSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CkBAIC0xMDUsNyArMTA3LDcgQEAgZGVm
IHRlc3RfZnJhZ21lbnRzKHNlc3Npb24sIHVybCk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09
IHRlc3RfcGFnZXNbMl0KIAogCi1kZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1
cmwpOgorZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBw
dXNoc3RhdGVfcGFnZSA9IGlubGluZSgiIiIKICAgICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1bmN0
aW9uIHB1c2hTdGF0ZSgpIHsKQEAgLTEzMCwzICsxMzIsNDUgQEAgZGVmIHRlc3RfaGlzdG9yeV9w
dXNoc3RhdGUoc2Vzc2lvbiwgdXJsKToKIAogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSAie30j
cHVzaHN0YXRlIi5mb3JtYXQocHVzaHN0YXRlX3BhZ2UpCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhl
Y3V0ZV9zY3JpcHQoInJldHVybiBoaXN0b3J5LnN0YXRlOyIpID09IHsiZm9vIjogImJhciJ9CisK
KworZGVmIHRlc3RfcmVtb3ZlZF9pZnJhbWUoc2Vzc2lvbiwgdXJsLCBpbmxpbmUpOgorICAgIHBh
Z2UgPSBpbmxpbmUoIjxwPmZvbyIpCisKKyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZl
ci90ZXN0cy9zdXBwb3J0L2h0bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbCIpCisgICAgc2Vzc2lv
bi51cmwgPSBwYWdlCisKKyAgICBzZXNzaW9uLmJhY2soKQorCisgICAgc3ViZnJhbWUgPSBzZXNz
aW9uLmZpbmQuY3NzKCIjc3ViLWZyYW1lIiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24uc3dpdGNo
X2ZyYW1lKHN1YmZyYW1lKQorCisgICAgcmVzcG9uc2UgPSBmb3J3YXJkKHNlc3Npb24pCisgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gcGFn
ZQorCisKKyMgQ2FwYWJpbGl0eSBuZWVkZWQgYXMgbG9uZyBhcyBubyB2YWxpZCBjZXJ0aWZpY2F0
ZSBpcyBhdmFpbGFibGU6CisjICAgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvaXNzdWVzLzI4ODQ3CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0SW5z
ZWN1cmVDZXJ0cyI6IFRydWV9KQorZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIHVybCk6
CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFt
ZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9w
ZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwoYmFzZV9wYXRo
LCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJv
dG9jb2w9Imh0dHBzIiwgZG9tYWluPSJhbHQiKQorCisgICAgc2Vzc2lvbi51cmwgPSBmaXJzdF9w
YWdlCisgICAgc2Vzc2lvbi51cmwgPSBzZWNvbmRfcGFnZQorICAgIHNlc3Npb24uYmFjaygpCisK
KyAgICBlbGVtID0gc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAg
IHJlc3BvbnNlID0gZm9yd2FyZChzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHNlY29uZF9wYWdlCisKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoZXJyb3IuU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAg
ICAgZWxlbS5jbGljaygpCisgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBh
bGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZvcndhcmQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQppbmRleCBlNWVl
YThmNDQ1NzEuLjNlZWFmNmU3MWNkYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQvdXNlcl9wcm9t
cHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZm9yd2FyZChzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGZvcndhcmQoc2Vz
c2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgcGFnZXMoc2Vzc2lvbik6CitkZWYgcGFn
ZXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBwYWdlcyA9IFsKICAgICAgICAgaW5saW5lKCI8cCBp
ZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC9n
ZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9h
Y3RpdmVfZWxlbWVudC9nZXQucHkKaW5kZXggN2Y4MjFmM2E0MGQ1Li4xMDg1YWQ4MmYxOGYgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2FjdGl2ZV9lbGVtZW50L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC9nZXQucHkKQEAgLTEsNSArMSw0IEBA
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRf
aXNfYWN0aXZlX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgcmVhZF9nbG9iYWwoc2Vzc2lvbiwgbmFtZSk6CkBA
IC0yMSw3ICsyMCw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xv
c2VkX2ZyYW1lKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIp
CiAKIAotZGVmIHRlc3Rfc3VjY2Vzc19kb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3N1Y2Nl
c3NfZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICA8aDE+SGVhZGluZzwvaDE+CkBAIC0zNiw3
ICszNSw3IEBAIGRlZiB0ZXN0X3N1Y2Nlc3NfZG9jdW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjZXNz
X2lucHV0KHNlc3Npb24pOgorZGVmIHRlc3Rfc3VjZXNzX2lucHV0KHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxib2R5PgogICAgICAgICAg
ICAgPGgxPkhlYWRpbmc8L2gxPgpAQCAtNTAsNyArNDksNyBAQCBkZWYgdGVzdF9zdWNlc3NfaW5w
dXQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVsZW1l
bnQpCiAKIAotZGVmIHRlc3Rfc3VjZXNzX2lucHV0X25vbl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6
CitkZWYgdGVzdF9zdWNlc3NfaW5wdXRfbm9uX2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keT4KICAgICAgICAg
ICAgIDxoMT5IZWFkaW5nPC9oMT4KQEAgLTY0LDcgKzYzLDcgQEAgZGVmIHRlc3Rfc3VjZXNzX2lu
cHV0X25vbl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVt
ZW50KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjY2Vzc19leHBsaWNpdF9mb2N1
cyhzZXNzaW9uKToKK2RlZiB0ZXN0X3N1Y2Nlc3NfZXhwbGljaXRfZm9jdXMoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGJvZHk+CiAgICAg
ICAgICAgICA8aDE+SGVhZGluZzwvaDE+CkBAIC0xMDUsNyArMTA0LDcgQEAgZGVmIHRlc3Rfc3Vj
Y2Vzc19leHBsaWNpdF9mb2N1cyhzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1l
bnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9zdWNjZXNzX2lmcmFtZV9jb250ZW50
KHNlc3Npb24pOgorZGVmIHRlc3Rfc3VjY2Vzc19pZnJhbWVfY29udGVudChzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8Ym9keT48L2JvZHk+IikKICAgICBzZXNz
aW9uLmV4ZWN1dGVfc2NyaXB0KCIiIgogICAgICAgICBsZXQgaWZyYW1lID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnaWZyYW1lJyk7CkBAIC0xMjAsNyArMTE5LDcgQEAgZGVmIHRlc3Rfc3VjY2Vz
c19pZnJhbWVfY29udGVudChzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQo
c2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9taXNzaW5nX2RvY3VtZW50X2VsZW1lbnQo
c2Vzc2lvbik6CitkZWYgdGVzdF9taXNzaW5nX2RvY3VtZW50X2VsZW1lbnQoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJvZHk+PC9ib2R5PiIpCiAgICAgc2Vz
c2lvbi5leGVjdXRlX3NjcmlwdCgiIiIKICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkucmVtb3Zl
KSB7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21w
dHMucHkKaW5kZXggN2ZhN2JlMWRkZTk5Li4xZmY3NzY5N2I3MDcgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVtZW50
L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2
IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X2lzX2Fj
dGl2ZV9lbGVtZW50LAogICAgIGFzc2VydF9zdWNjZXNzCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Npb24p
OgpAQCAtMTcsNyArMTYsNyBAQCBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Npb24pOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5
cGU9dGV4dD4iKQogCkBAIC0zNCw3ICszMyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAKQEAg
LTQ5LDcgKzQ4LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWxlcnRf
dGV4dC9nZXQucHkKaW5kZXggYjY0Njc4NjUzZTA4Li43ZWU3ZmYxODA4ZjkgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3Rl
eHQvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5CkBAIC0xLDkgKzEsNiBAQAotZnJvbSBzaXggaW1wb3J0
IHRleHRfdHlwZQotCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNl
cHRpb24KIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwg
YXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQog
ZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0yNywzNiArMjQsMzYg
QEAgZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCiAKIAotZGVmIHRlc3RfZ2V0X2FsZXJ0X3RleHQoc2Vz
c2lvbik6CitkZWYgdGVzdF9nZXRfYWxlcnRfdGV4dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5hbGVydCgnSGVsbG8nKTs8L3Njcmlw
dD4iKQogICAgIHJlc3BvbnNlID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRf
c3VjY2VzcyhyZXNwb25zZSkKICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBk
aWN0KQogICAgIGFzc2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBhbGVydF90ZXh0
ID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQotICAgIGFzc2VydCBpc2luc3RhbmNlKGFsZXJ0X3Rl
eHQsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShhbGVydF90ZXh0LCBzdHIpCiAg
ICAgYXNzZXJ0IGFsZXJ0X3RleHQgPT0gIkhlbGxvIgogCiAKLWRlZiB0ZXN0X2dldF9jb25maXJt
X3RleHQoc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfY29uZmlybV90ZXh0KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmNvbmZpcm0oJ0hl
bGxvJyk7PC9zY3JpcHQ+IikKICAgICByZXNwb25zZSA9IGdldF9hbGVydF90ZXh0KHNlc3Npb24p
CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVz
cG9uc2UuYm9keSwgZGljdCkKICAgICBhc3NlcnQgInZhbHVlIiBpbiByZXNwb25zZS5ib2R5CiAg
ICAgY29uZmlybV90ZXh0ID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQotICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvbmZpcm1fdGV4dCwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNv
bmZpcm1fdGV4dCwgc3RyKQogICAgIGFzc2VydCBjb25maXJtX3RleHQgPT0gIkhlbGxvIgogCiAK
LWRlZiB0ZXN0X2dldF9wcm9tcHRfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2dldF9wcm9tcHRf
dGV4dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0
PndpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4i
KQogICAgIHJlc3BvbnNlID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3Vj
Y2VzcyhyZXNwb25zZSkKICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBkaWN0
KQogICAgIGFzc2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBwcm9tcHRfdGV4dCA9
IHJlc3BvbnNlLmJvZHlbInZhbHVlIl0KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShwcm9tcHRfdGV4
dCwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHByb21wdF90ZXh0LCBzdHIpCiAg
ICAgYXNzZXJ0IHByb21wdF90ZXh0ID09ICJFbnRlciBZb3VyIE5hbWU6ICIKIAogCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21w
dXRlZF9sYWJlbC9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX2xhYmVsL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJl
bC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9jb21wdXRlZF9sYWJlbC9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4zOTA0YzZjZTQxZjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9nZXQucHkKQEAg
LTAsMCArMSwzNiBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBv
cnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5pbmxp
bmUgaW1wb3J0IGlubGluZQorCisKK2RlZiBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwgZWxl
bWVudCk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQi
LCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vY29tcHV0ZWRsYWJl
bCIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisg
ICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQpKQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBnZXRfY29t
cHV0ZWRfbGFiZWwoc2Vzc2lvbikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IHdpbmRvdyIpCisKKworZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CisgICAgcmVz
cG9uc2UgPSBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbikKKyAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJubyBzdWNoIGFsZXJ0IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImh0
bWwsdGFnLGxhYmVsIiwgWworICAgICgiPGJ1dHRvbj5vazwvYnV0dG9uPiIsICJidXR0b24iLCAi
b2siKSwKKyAgICAoIjxidXR0b24gYXJpYS1sYWJlbGxlZGJ5PVwib25lIHR3b1wiPjwvYnV0dG9u
PjxkaXYgaWQ9b25lPm9rPC9kaXY+PGRpdiBpZD10d28+Z288L2Rpdj4iLCAiYnV0dG9uIiwgIm9r
IGdvIiksCisgICAgKCI8YnV0dG9uIGFyaWEtbGFiZWw9Zm9vPmJhcjwvYnV0dG9uPiIsICJidXR0
b24iLCAiZm9vIiksCisgICAgKCI8bGFiZWw+PGlucHV0PiBmb288L2xhYmVsPiIsICJpbnB1dCIs
ICJmb28iKSwKKyAgICAoIjxsYWJlbCBmb3I9Yj5mb288bGFiZWw+PGlucHV0IGlkPWI+IiwgImlu
cHV0IiwgImZvbyIpXSkKK2RlZiB0ZXN0X2dldF9jb21wdXRlZF9sYWJlbChzZXNzaW9uLCBodG1s
LCB0YWcsIGxhYmVsKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiezB9Ii5mb3JtYXQodGFn
KSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWcsIGFsbD1GYWxzZSkKKyAgICBy
ZXN1bHQgPSBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3Nl
cnRfc3VjY2VzcyhyZXN1bHQsIGxhYmVsKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9fX2luaXRfXy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVk
X3JvbGUvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX3JvbGUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9nZXQucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMGZkNjI4ZjE1NmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9jb21wdXRlZF9yb2xlL2dldC5weQpAQCAtMCwwICsxLDM0IEBACitpbXBvcnQgcHl0ZXN0
CisKK2Zyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgorCitm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcworZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCisKKworZGVmIGdl
dF9jb21wdXRlZF9yb2xlKHNlc3Npb24sIGVsZW1lbnQpOgorICAgIHJldHVybiBzZXNzaW9uLnRy
YW5zcG9ydC5zZW5kKAorICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1l
bnQve2VsZW1lbnRfaWR9L2NvbXB1dGVkcm9sZSIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lv
bl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQp
KQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRv
dyk6CisgICAgcmVzcG9uc2UgPSBnZXRfY29tcHV0ZWRfcm9sZShzZXNzaW9uLCAiaWQiKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9u
b191c2VyX3Byb21wdChzZXNzaW9uKToKKyAgICByZXNwb25zZSA9IGdldF9jb21wdXRlZF9yb2xl
KHNlc3Npb24sICJpZCIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBhbGVy
dCIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJodG1sLHRhZyxleHBlY3RlZCIsIFsK
KyAgICAoIjxsaSByb2xlPW1lbnVpdGVtPmZvbyIsICJsaSIsICJtZW51IiksCisgICAgKCI8aW5w
dXQgcm9sZT1zZWFyY2hib3g+IiwgImlucHV0IiwgInNlYXJjaGJveCIpLAorICAgICgiPGltZyBy
b2xlPXByZXNlbnRhdGlvbj4iLCAiaW1nIiwgInByZXNlbnRhdGlvbiIpXSkKK2RlZiB0ZXN0X2Nv
bXB1dGVkX3JvbGVzKHNlc3Npb24sIGh0bWwsIHRhZywgZXhwZWN0ZWQpOgorICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKGh0bWwpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBh
bGw9RmFsc2UpCisgICAgcmVzdWx0ID0gZ2V0X2NvbXB1dGVkX3JvbGUoc2Vzc2lvbiwgZWxlbWVu
dC5pZCkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsIGV4cGVjdGVkKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91
cmwvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfY3VycmVudF91cmwvZ2V0LnB5CmluZGV4IDAzODNhOGFiYTllOS4uMWNhMTNhMWE2ZDVlIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9jdXJyZW50X3VybC9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvZ2V0LnB5CkBAIC0xLDExICsxLDEyIEBACi1m
cm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCitpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3Vw
cG9ydCBpbXBvcnQgcGxhdGZvcm1fbmFtZQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfc3VjY2VzcwogCi1kb2MgPSBpbmxpbmUoIjxwPmZyYW1lIikKLWFsZXJ0X2RvYyA9
IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoKTwvc2NyaXB0PiIpCisKK0BweXRlc3QuZml4
dHVyZQorZGVmIGRvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjxwPmZyYW1lIikKIAog
CiBkZWYgZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pOgpAQCAtMTgsMTQgKzE5LDE0IEBAIGRlZiB0
ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9u
b19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgZG9jKToKICAgICBzZXNzaW9u
LnVybCA9IGRvYwogCiAgICAgcmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKICAg
ICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgZG9jKQogCiAKLWRlZiB0ZXN0X2dldF9jdXJyZW50
X3VybF9tYXRjaGVzX2xvY2F0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJs
X21hdGNoZXNfbG9jYXRpb24oc2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwog
CiAgICAgcmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKQEAgLTM3LDcgKzM4LDcg
QEAgZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX3BheWxvYWQoc2Vzc2lvbik6CiAKICAgICByZXNw
b25zZSA9IGdldF9jdXJyZW50X3VybChzZXNzaW9uKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSkKKyAg
ICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKQogCiAKIGRlZiB0ZXN0X2dldF9jdXJyZW50
X3VybF9zcGVjaWFsX3BhZ2VzKHNlc3Npb24pOgpAQCAtNzYsNyArNzcsNyBAQCBkZWYgdGVzdF9z
ZXRfbWFsZm9ybWVkX3VybChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJp
bnZhbGlkIGFyZ3VtZW50IikKIAogCi1kZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0ZXJfbW9k
aWZpZWRfbG9jYXRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0ZXJf
bW9kaWZpZWRfbG9jYXRpb24oc2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwog
CiAgICAgcmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJs
L2lmcmFtZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weQppbmRleCA5NDRlNjFiNTgzZmQuLjgwYTk2MGNlOGEx
NSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfY3VycmVudF91cmwvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weQpAQCAtMSw3ICsx
LDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJhbWUs
IGlubGluZQogCiAKICIiIgpAQCAtMTUsOSArMTQsMjAgQEAgYWxzbyBlbmZvcmNlIHByb2Nlc3Mg
aXNvbGF0aW9uIGJhc2VkIG9uIHNpdGUgb3JpZ2luLgogVGhpcyBpcyBrbm93biB0byBzb21ldGlt
ZXMgY2F1c2UgcHJvYmxlbXMgZm9yIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbnMuCiAiIiIKIAot
ZnJhbWVfZG9jID0gaW5saW5lKCI8cD5mcmFtZSIpCi1vbmVfZnJhbWVfZG9jID0gaW5saW5lKCI8
aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCi1uZXN0ZWRfZnJhbWVzX2Rv
YyA9IGlubGluZSgiPGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgb25lX2ZyYW1lX2RvYykK
KworQHB5dGVzdC5maXh0dXJlCitkZWYgZnJhbWVfZG9jKGlubGluZSk6CisgICAgcmV0dXJuIGlu
bGluZSgiPHA+ZnJhbWUiKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG9uZV9mcmFtZV9kb2Mo
aW5saW5lLCBmcmFtZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUoIjxpZnJhbWUgc3JjPSclcyc+
PC9pZnJhbWU+IiAlIGZyYW1lX2RvYykKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBuZXN0ZWRf
ZnJhbWVzX2RvYyhpbmxpbmUsIG9uZV9mcmFtZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUoIjxp
ZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCiAKIAogZGVmIGdldF9j
dXJyZW50X3VybChzZXNzaW9uKToKQEAgLTI1LDcgKzM1LDcgQEAgZGVmIGdldF9jdXJyZW50X3Vy
bChzZXNzaW9uKToKICAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS91cmwiLmZv
cm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2lmcmFtZShzZXNzaW9uLCBvbmVfZnJhbWVfZG9jKToKICAgICB0b3BfbGV2ZWxfZG9j
ID0gb25lX2ZyYW1lX2RvYwogICAgIHNlc3Npb24udXJsID0gdG9wX2xldmVsX2RvYwogCkBAIC0z
Nyw3ICs0Nyw3IEBAIGRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2Vz
cyhyZXNwb25zZSwgdG9wX2xldmVsX2RvYykKIAogCi1kZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNl
c3Npb24pOgorZGVmIHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uLCBuZXN0ZWRfZnJhbWVzX2Rv
Yyk6CiAgICAgc2Vzc2lvbi51cmwgPSBuZXN0ZWRfZnJhbWVzX2RvYwogICAgIHRvcF9sZXZlbF9k
b2MgPSBzZXNzaW9uLnVybAogCkBAIC01Myw3ICs2Myw3IEBAIGRlZiB0ZXN0X25lc3RlZF9pZnJh
bWUoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb21haW4iLCBbIiIs
ICJhbHQiXSwgaWRzPVsic2FtZV9vcmlnaW4iLCAiY3Jvc3Nfb3JpZ2luIl0pCi1kZWYgdGVzdF9v
cmlnaW4oc2Vzc2lvbiwgZG9tYWluLCB1cmwpOgorZGVmIHRlc3Rfb3JpZ2luKHNlc3Npb24sIGlu
bGluZSwgaWZyYW1lLCBkb21haW4pOgogICAgIHRvcF9sZXZlbF9kb2MgPSBpbmxpbmUoaWZyYW1l
KCI8cD5mcmFtZSIsIGRvbWFpbj1kb21haW4pKQogCiAgICAgc2Vzc2lvbi51cmwgPSB0b3BfbGV2
ZWxfZG9jCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMu
cHkKaW5kZXggZjBlOTVkMTJmMTRlLi5kNjU3YzE4ODI0MWQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL3VzZXJf
cHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlh
bG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lv
bik6CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lvbik6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIp
CiAgICAgICAgIGV4cGVjdGVkX3VybCA9IHNlc3Npb24udXJsCkBAIC0yNyw3ICsyNiw3IEBAIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
LCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
cCBpZD0xPiIpCiAKQEAgLTQyLDcgKzQxLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9i
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIpCiAKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0
cmlidXRlL2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dldC5weQppbmRleCBiMThkOWNhOGIyMmEuLjUyOGNi
ZDI5ZjAyMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dldC5w
eQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9hdHRyaWJ1dGUo
c2Vzc2lvbiwgZWxlbWVudCwgYXR0cik6CkBAIC0xMyw4ICsxMiwxNCBAQCBkZWYgZ2V0X2VsZW1l
bnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgogCiAKIGRlZiB0ZXN0X25vX3Rv
cF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFs
X2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVt
ZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaWQiKQorICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50
X2F0dHJpYnV0ZShzZXNzaW9uLCAiZm9vIiwgImlkIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJubyBzdWNoIHdpbmRvdyIpCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2lu
YWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwg
ZWxlbWVudC5pZCwgImlkIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVs
ZW1lbnQiKQogCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2Vk
X2ZyYW1lKToKQEAgLTI4LDcgKzMzLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAot
ZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZv
bz4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
ICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtMzYsNyArNDEsNyBAQCBkZWYgdGVzdF9lbGVtZW50
X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50
IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3Rfbm9ybWFsKHNlc3Npb24pOgorZGVmIHRlc3Rfbm9y
bWFsKHNlc3Npb24sIGlubGluZSk6CiAgICAgIyAxMy4yIFN0ZXAgNQogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdHlwZT1jaGVja2JveD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTczLDcgKzc4LDcgQEAgZGVmIHRlc3Rf
bm9ybWFsKHNlc3Npb24pOgogICAgICgidHJhY2siLCBbImRlZmF1bHQiXSksCiAgICAgKCJ2aWRl
byIsIFsiYXV0b3BsYXkiLCAiY29udHJvbHMiLCAibG9vcCIsICJtdXRlZCJdKQogXSkKLWRlZiB0
ZXN0X2Jvb2xlYW5fYXR0cmlidXRlKHNlc3Npb24sIHRhZywgYXR0cnMpOgorZGVmIHRlc3RfYm9v
bGVhbl9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lLCB0YWcsIGF0dHJzKToKICAgICBmb3IgYXR0
ciBpbiBhdHRyczoKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7MH0gezF9PiIuZm9y
bWF0KHRhZywgYXR0cikpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKHRhZywg
YWxsPUZhbHNlKQpAQCAtODEsNyArODYsNyBAQCBkZWYgdGVzdF9ib29sZWFuX2F0dHJpYnV0ZShz
ZXNzaW9uLCB0YWcsIGF0dHJzKToKICAgICAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAidHJ1
ZSIpCiAKIAotZGVmIHRlc3RfZ2xvYmFsX2Jvb2xlYW5fYXR0cmlidXRlcyhzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2dsb2JhbF9ib29sZWFuX2F0dHJpYnV0ZXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPHAgaGlkZGVuPmZvbyIpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAgICAgcmVzdWx0ID0gZ2V0X2VsZW1lbnRfYXR0
cmlidXRlKHNlc3Npb24sIGVsZW1lbnQuaWQsICJoaWRkZW4iKQpAQCAtMTAzLDMgKzEwOCwxNCBA
QCBkZWYgdGVzdF9nbG9iYWxfYm9vbGVhbl9hdHRyaWJ1dGVzKHNlc3Npb24pOgogICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogICAgIHJlc3VsdCA9IGdldF9l
bGVtZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaXRlbXNjb3BlIikKICAgICBh
c3NlcnRfc3VjY2VzcyhyZXN1bHQsIE5vbmUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJpc19yZWxhdGl2ZSIsIFtUcnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29sdXRl
Il0pCitkZWYgdGVzdF9hbmNob3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVsYXRp
dmUpOgorICAgIGhyZWYgPSAiL2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgiL2Zv
by5odG1sIikKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9vPC9h
PiIuZm9ybWF0KGhyZWYpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxs
PUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwg
ZWxlbWVudC5pZCwgImhyZWYiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBocmVmKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9t
cHRzLnB5CmluZGV4IDVlZTc5MjlhZmRmOC4uMDA5Y2IxZTVmYTFlIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJp
YnV0ZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5CkBAIC0z
LDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVk
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2Vs
ZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgpAQCAtMTUsNyArMTQsNyBA
QCBkZWYgZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlk
PWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1G
YWxzZSkKQEAgLTMxLDcgKzMwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00Nyw3ICs0Niw3IEBA
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2Zv
byIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dl
dC5weQppbmRleCA0ZTg3MDRkNTBhZjkuLjM2OWNhOWM2OTlmOCAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFs
dWUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1l
bnRfY3NzX3ZhbHVlKHNlc3Npb24sIGVsZW1lbnRfaWQsIHByb3ApOgpAQCAtMTQsOSArMTMsMTYg
QEAgZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToK
IAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2lu
ZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAg
cmVzcG9uc2UgPSBnZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImRp
c3BsYXkiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAg
ICByZXNwb25zZSA9IGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCAiZm9vIiwgImJhciIp
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vz
c2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRf
ZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImRpc3BsYXkiKQorICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0g
Z2V0X2VsZW1lbnRfY3NzX3ZhbHVlKHNlc3Npb24sICJmb28iLCAiYmFyIikKQEAgLTI4LDcgKzM0
LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFs
ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0z
Nyw3ICs0Myw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9w
cm9wZXJ0eV9uYW1lX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbmFtZV92YWx1
ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBz
dHlsZT0iZGlzcGxheTogYmxvY2siPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ1LDcgKzUxLDcgQEAgZGVmIHRlc3RfcHJvcGVy
dHlfbmFtZV92YWx1ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJibG9j
ayIpCiAKIAotZGVmIHRlc3RfcHJvcGVydHlfbmFtZV9ub3RfZXhpc3RlbnQoc2Vzc2lvbik6Citk
ZWYgdGVzdF9wcm9wZXJ0eV9uYW1lX25vdF9leGlzdGVudChzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3VzZXJf
cHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weQppbmRleCA1MjliNmFlOTE4M2Qu
LmIxZjlhM2ZiMGEwMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvdXNlcl9wcm9tcHRzLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
Y3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCBl
bGVtZW50X2lkLCBwcm9wKToKQEAgLTE4LDcgKzE3LDcgQEAgZGVmIGdldF9lbGVtZW50X2Nzc192
YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAg
ICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9j
ayI+IiIiKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9
RmFsc2UpCkBAIC0zNCw3ICszMyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAg
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogYmxvY2si
PiIiIikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZh
bHNlKQpAQCAtNTAsNyArNDksNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9jayI+IiIi
KQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2Up
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5CmluZGV4IDVjMDI0
N2VkYjcwMi4uMTBmN2EwOGFlNzNlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3By
b3BlcnR5L2dldC5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVu
dF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKQEAgLTEzLDkgKzEyLDE2IEBA
IGRlZiBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKIAog
CiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93
KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVz
cG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAidmFsdWUi
KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNw
b25zZSA9IGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24sICJmb28iLCAiaWQiKQogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2lu
ZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRf
cHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudC5pZCwgInZhbHVlIikKKyAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2Nv
bnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50
X3Byb3BlcnR5KHNlc3Npb24sICJmb28iLCAiaWQiKQpAQCAtMjcsNyArMzMsNyBAQCBkZWYgdGVz
dF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6
CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb29iYXI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTM2
LDcgKzQyLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRf
ZXJyb3IocmVzcG9uc2UsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3Rf
cHJvcGVydHlfbm9uX2V4aXN0ZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbm9uX2V4
aXN0ZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
IApAQCAtNDUsNyArNTEsNyBAQCBkZWYgdGVzdF9wcm9wZXJ0eV9ub25fZXhpc3RlbnQoc2Vzc2lv
bik6CiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNb
MF0uZm9vIiwgYXJncz0oZWxlbWVudCwpKSBpcyBOb25lCiAKIAotZGVmIHRlc3RfY29udGVudF9h
dHRyaWJ1dGUoc2Vzc2lvbik6CitkZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vYmFyPiIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBA
IC01Myw3ICs1OSw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAg
IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0
cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vPiIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24u
ZXhlY3V0ZV9zY3JpcHQoIiIiYXJndW1lbnRzWzBdLnZhbHVlID0gImJhciI7IiIiLCBhcmdzPShl
bGVtZW50LCkpCkBAIC03MCw3ICs3Niw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lv
bik6CiAgICAgKCJudWxsIiwgTm9uZSksCiAgICAgKCJ1bmRlZmluZWQiLCBOb25lKSwKIF0pCi1k
ZWYgdGVzdF9wcmltaXRpdmVzKHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToK
K2RlZiB0ZXN0X3ByaW1pdGl2ZXMoc2Vzc2lvbiwgaW5saW5lLCBqc19wcmltaXRpdmUsIHB5X3By
aW1pdGl2ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dD4K
IApAQCAtOTMsNyArOTksNyBAQCBkZWYgdGVzdF9wcmltaXRpdmVzKHNlc3Npb24sIGpzX3ByaW1p
dGl2ZSwgcHlfcHJpbWl0aXZlKToKICAgICAoIm51bGwiLCBOb25lKSwKICAgICAoInVuZGVmaW5l
ZCIsIE5vbmUpLAogXSkKLWRlZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0X2J5X2V4ZWN1dGVfc2NyaXB0
KHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKK2RlZiB0ZXN0X3ByaW1pdGl2
ZXNfc2V0X2J5X2V4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGlubGluZSwganNfcHJpbWl0aXZlLCBw
eV9wcmltaXRpdmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lv
bi5leGVjdXRlX3NjcmlwdCgiYXJndW1lbnRzWzBdLmZvb2JhciA9IHt9Ii5mb3JtYXQoanNfcHJp
bWl0aXZlKSwgYXJncz0oZWxlbWVudCwpKQpAQCAtMTAyLDcgKzEwOCw3IEBAIGRlZiB0ZXN0X3By
aW1pdGl2ZXNfc2V0X2J5X2V4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlf
cHJpbWl0aXZlKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgcHlfcHJpbWl0aXZlKQog
CiAKLWRlZiB0ZXN0X211dGF0ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X211dGF0ZWRf
ZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQgdHlwZT1jaGVja2JveD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1
dCIsIGFsbD1GYWxzZSkKICAgICBlbGVtZW50LmNsaWNrKCkKQEAgLTExNCwzICsxMjAsMTQgQEAg
ZGVmIHRlc3RfbXV0YXRlZF9lbGVtZW50KHNlc3Npb24pOgogCiAgICAgcmVzcG9uc2UgPSBnZXRf
ZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAiY2hlY2tlZCIpCiAgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIFRydWUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJpc19yZWxhdGl2ZSIsIFtUcnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29sdXRl
Il0pCitkZWYgdGVzdF9hbmNob3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVsYXRp
dmUpOgorICAgIGhyZWYgPSAiL2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgiL2Zv
by5odG1sIikKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9vPC9h
PiIuZm9ybWF0KGhyZWYpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxs
PUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBl
bGVtZW50LmlkLCAiaHJlZiIpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIHVybCgiL2Zv
by5odG1sIikpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkv
dXNlcl9wcm9tcHRzLnB5CmluZGV4IDE2YTA5ODUzNmZkZS4uZTVlNzY5NDc4NjNlIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVt
ZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5w
eQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2df
aGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVm
IGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24sIGVsZW1lbnRfaWQsIG5hbWUpOgpAQCAtMTMs
NyArMTIsNyBAQCBkZWYgZ2V0X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudF9pZCwg
bmFtZSk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
LCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIj
Zm9vIiwgYWxsPUZhbHNlKQpAQCAtMjksNyArMjgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ1
LDcgKzQ0LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L2dldC5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC9n
ZXQucHkKaW5kZXggNDk0YzQ1ZjhlNDViLi45YWI0ZGI0YzYwNGYgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC9n
ZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9yZWN0L2dldC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZWxlbWVudF9yZWN0Ci1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBl
bGVtZW50X2lkKToKQEAgLTE0LDkgKzEzLDE2IEBAIGRlZiBnZXRfZWxlbWVudF9yZWN0KHNlc3Np
b24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNs
b3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxl
bWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAg
ICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sICJmb28iKQogICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93
X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVj
dChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1
Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBj
bG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCAi
Zm9vIikKQEAgLTI4LDcgKzM0LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lv
bik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVm
IHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Np
b24ucmVmcmVzaCgpCkBAIC0zNyw3ICs0Myw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNl
IikKIAogCi1kZWYgdGVzdF9iYXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2ljKHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9y
ZWN0L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC91c2VyX3Byb21wdHMucHkKaW5kZXggYzUxODY2Y2I4
NzU4Li4yMDEzMTYwMzM4MWIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC91c2VyX3Byb21wdHMucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9y
ZWN0L3VzZXJfcHJvbXB0cy5weQpAQCAtNCw3ICs0LDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBv
cnQgZWxlbWVudF9yZWN0Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE4LDcg
KzE3LDcgQEAgZGVmIGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikK
ICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpA
QCAtMzQsNyArMzMsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUwLDcgKzQ5LDcgQEAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
IAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAg
ICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
ZWxlbWVudF9zaGFkb3dfcm9vdC9jb25mdGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvY29uZnRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZmMwYzkxYzNkM2YKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMjIgQEAK
K2ltcG9ydCBweXRlc3QKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tib3hfZG9tKGlubGlu
ZSk6CisgICAgcmV0dXJuIGlubGluZSgiIiIKKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
Y3VzdG9tLWNoZWNrYm94LWVsZW1lbnQgeworICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7
IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxl
PgorICAgICAgICA8Y3VzdG9tLWNoZWNrYm94LWVsZW1lbnQ+PC9jdXN0b20tY2hlY2tib3gtZWxl
bWVudD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmlu
ZSgnY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQnLAorICAgICAgICAgICAgICAgIGNsYXNzIGV4dGVu
ZHMgSFRNTEVsZW1lbnQgeworICAgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KS5pbm5lckhUTUwgPSBgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IHR5cGU9ImNoZWNrYm94
Ii8+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgPC9zY3JpcHQ+IiIiKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9zaGFkb3dfcm9vdC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L2dldC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgyZTUyNDIwYTJjMAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2VsZW1lbnRfc2hhZG93X3Jvb3QvZ2V0LnB5CkBAIC0wLDAgKzEsNjAgQEAKK2ltcG9ydCBweXRl
c3QKKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKKworCitkZWYgZ2V0X3NoYWRvd19yb290
KHNlc3Npb24sIGVsZW1lbnRfaWQpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5k
KAorICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1lbnQve2VsZW1lbnRf
aWR9L3NoYWRvdyIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Np
b25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnRfaWQpKQorCisKK2RlZiB0ZXN0
X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9y
aWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdl
dF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChz
ZXNzaW9uLCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRv
dyIpCisKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICBy
ZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3Rfbm9fYnJv
d3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorICAgIHJlc3BvbnNlID0gZ2V0
X3NoYWRvd19yb290KHNlc3Npb24sICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9u
KToKKyAgICByZXN1bHQgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgImZvbyIpCisgICAgYXNz
ZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3RfZWxlbWVu
dF9zdGFsZShzZXNzaW9uLCBjaGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hlY2ti
b3hfZG9tCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1l
bGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXN1bHQg
PSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3Io
cmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQorCisKK2RlZiB0ZXN0X2dldF9zaGFk
b3dfcm9vdChzZXNzaW9uLCBjaGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hlY2ti
b3hfZG9tCisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAi
cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2N1c3RvbS1jaGVja2JveC1lbGVtZW50Jyku
c2hhZG93Um9vdC5ob3N0IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
ImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZ2V0
X3NoYWRvd19yb290KHNlc3Npb24sIGN1c3RvbV9lbGVtZW50LmlkKQorICAgIHZhbHVlID0gYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRpY3Qp
CisgICAgYXNzZXJ0ICJzaGFkb3ctNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmIiBpbiB2YWx1
ZQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgY3VzdG9tX2VsZW1lbnQsIGV4cGVj
dGVkKQorCisKK2RlZiB0ZXN0X25vX3NoYWRvd19yb290KHNlc3Npb24sIGlubGluZSk6CisgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PHA+bm8gc2hhZG93IHJvb3Q8L3A+PC9kaXY+IikK
KyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQorICAgIHJl
c3BvbnNlID0gZ2V0X3NoYWRvd19yb290KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBzaGFkb3cgcm9vdCIpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRv
d19yb290L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzI2NzFiOTVhNTM1Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKQEAgLTAsMCArMSwxMTcgQEAK
KyMgTUVUQTogdGltZW91dD1sb25nCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9k
aWFsb2dfaGFuZGxlZAorCisKK2RlZiBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudF9p
ZCk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQiLCAi
c2Vzc2lvbi97c2Vzc2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vc2hhZG93Ii5mb3JtYXQo
CisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAg
IGVsZW1lbnRfaWQ9ZWxlbWVudF9pZCkpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2csIGNoZWNrYm94X2RvbSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwg
PSBjaGVja2JveF9kb20KKyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3Rv
bS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2co
ZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRf
c2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgdmFsdWUgPSBhc3NlcnRf
c3VjY2VzcyhyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRpY3Qp
CisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9
ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJl
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGNoZWNrYm94X2RvbSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lv
bi51cmwgPSBjaGVja2JveF9kb20KKyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
ImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9k
aWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2Ug
PSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAidW5leHBlY3RlZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0
ZWRfcmV0dmFsPXJldHZhbCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgY2hlY2ti
b3hfZG9tKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9kb20KKyAg
ICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50
IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9
ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lv
biwgZWxlbWVudC5pZCkKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAidW5leHBlY3Rl
ZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09IGRp
YWxvZ190eXBlCisgICAgICAgIHNlc3Npb24uYWxlcnQuZGlzbWlzcygpCisKKyAgICByZXR1cm4g
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5t
YXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImFjY2VwdCJ9KQor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgi
YWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIi
KSwKK10pCitkZWYgdGVzdF9hY2NlcHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0
Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0IGFu
ZCBub3RpZnkifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZh
bCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgVHJ1ZSksCisgICAg
KCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3RfYWNjZXB0X2FuZF9ub3RpZnkoY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAg
ICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJl
dHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVo
YXZpb3IiOiAiZGlzbWlzcyJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlw
ZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxz
ZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzKGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6
CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFBy
b21wdEJlaGF2aW9yIjogImRpc21pc3MgYW5kIG5vdGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAg
ICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVz
dF9kaXNtaXNzX2FuZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2Fw
YWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiaWdub3JlIn0pCitAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlIiwgWyJhbGVydCIsICJjb25maXJtIiwgInBy
b21wdCJdKQorZGVmIHRlc3RfaWdub3JlKGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgi
Y29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rl
ZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlw
ZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
ZGlhbG9nX3R5cGUsIHJldHZhbCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFt
ZS9nZXQucHkKaW5kZXggZmZlNmRkNjQxZTgyLi5jZmM2M2JkNzg4ZGUgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFn
X25hbWUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0
ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxl
bWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTEwLDkgKzksMTYgQEAgZGVm
IGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0
X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9y
aWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdl
dF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRf
dGFnX25hbWUoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8g
c3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFu
ZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50
LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAog
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAg
IHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgImZvbyIpCkBAIC0yNCw3
ICszMCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgogICAgIGFzc2Vy
dF9lcnJvcihyZXN1bHQsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRf
c3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZy
ZXNoKCkKQEAgLTMzLDcgKzM5LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToK
ICAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAK
LWRlZiB0ZXN0X2dldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2Vs
ZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0IGlkPWZvbz4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1
dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Rh
Z19uYW1lL3VzZXJfcHJvbXB0cy5weQppbmRleCAxMmE3ZDQ0ODQyMWUuLjg5Njk3ZDBhZDZhMiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3By
b21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQog
CiAKIGRlZiBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTEy
LDcgKzExLDcgQEAgZGVmIGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRfaWQp
OgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIs
IGFsbD1GYWxzZSkKQEAgLTI4LDcgKzI3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToK
ICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00NCw3ICs0
Myw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgor
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xv
c2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5
CmluZGV4IDVmMTY5YTNhMjMzYi4uNzJkYzBjZjczNWU1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2Vs
ZW1lbnRfdGV4dC9nZXQucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3RleHQoc2Vzc2lv
biwgZWxlbWVudF9pZCk6CkBAIC0xMCwyOSArOSwzMiBAQCBkZWYgZ2V0X2VsZW1lbnRfdGV4dChz
ZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4
dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQg
PSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24s
IGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCAiZm9vIikKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndp
bmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50
X3RleHQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lv
biwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQog
CiAKLWRlZiB0ZXN0X2dldHRpbmdfdGV4dF9vZl9hX25vbl9leGlzdGFudF9lbGVtZW50X2lzX2Fu
X2Vycm9yKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0dGluZ190ZXh0X29mX2Ffbm9uX2V4aXN0YW50
X2VsZW1lbnRfaXNfYW5fZXJyb3Ioc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiI8Ym9keT5IZWxsbyB3b3JsZDwvYm9keT4iIiIpCiAKICAgICByZXN1bHQgPSBn
ZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXN1bHQs
ICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X3JlYWRfZWxlbWVudF90ZXh0KHNlc3Np
b24pOgotICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgotICAgICAgICA8Ym9keT4KLSAgICAg
ICAgICBOb2lzZSBiZWZvcmUgPHNwYW4gaWQ9J2lkJz5UaGlzIGhhcyBhbiBJRDwvc3Bhbj4uIE5v
aXNlIGFmdGVyCi0gICAgICAgIDwvYm9keT4iIiIpCi0KK2RlZiB0ZXN0X3JlYWRfZWxlbWVudF90
ZXh0KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIkJlZm9yZSBm
PHNwYW4gaWQ9J2lkJz5vbzwvc3Bhbj4gYWZ0ZXIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCIjaWQiLCBhbGw9RmFsc2UpCiAKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF90ZXh0
KHNlc3Npb24sIGVsZW1lbnQuaWQpCi0gICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiVGhpcyBo
YXMgYW4gSUQiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIm9vIikKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
dGV4dC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDFlZTVjZGU0
ZGE1Mi4uOWYwYmIzODZjZGY1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
dGV4dC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNj
ZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnRfaWQp
OgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVtZW50
X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cs
IGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxwIGlkPWZvbz5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
IiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMCw3ICsyOSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJl
dHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD1mb28+YmFyPC9wPiIp
CiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpA
QCAtNDYsNyArNDUsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxwIGlkPWZvbz5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0LnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFtZWRf
Y29va2llL2dldC5weQppbmRleCAxMDJjMThmMDI3NWMuLmQxZTgzYjZhODE1MiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFtZWRf
Y29va2llL2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0LnB5CkBAIC0xLDEyICsxLDEwIEBACiBpbXBvcnQg
cHl0ZXN0CiAKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKLWZyb20g
c2l4IGltcG9ydCBpbnRlZ2VyX3R5cGVzLCB0ZXh0X3R5cGUKIAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0
cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGNsZWFyX2FsbF9jb29raWVzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X25hbWVkX2Nvb2tpZShzZXNz
aW9uLCBuYW1lKToKQEAgLTM4LDEzICszNiwxMyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vzc2lv
bl9jb29raWUoc2Vzc2lvbiwgdXJsKToKICAgICAjIHRhYmxlIGZvciBjb29raWUgY29udmVyc2lv
bgogICAgICMgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZGZuLXRhYmxlLWZvci1j
b29raWUtY29udmVyc2lvbgogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0
IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQot
ICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFz
c2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAicGF0aCIg
aW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJwYXRoIl0sIHRleHRfdHlw
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInBhdGgiXSwgc3RyKQogICAgIGFzc2Vy
dCAiZG9tYWluIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFp
biJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwg
c3RyKQogICAgIGFzc2VydCAic2VjdXJlIiBpbiBjb29raWUKICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShjb29raWVbInNlY3VyZSJdLCBib29sKQogICAgIGFzc2VydCAiaHR0cE9ubHkiIGluIGNvb2tp
ZQpAQCAtNTIsNyArNTAsNyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vzc2lvbl9jb29raWUoc2Vz
c2lvbiwgdXJsKToKICAgICBpZiAiZXhwaXJ5IiBpbiBjb29raWU6CiAgICAgICAgIGFzc2VydCBj
b29raWUuZ2V0KCJleHBpcnkiKSBpcyBOb25lCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4gY29v
a2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5cGUp
CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAgICBh
c3NlcnQgY29va2llWyJuYW1lIl0gPT0gImZvbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJd
ID09ICJiYXIiCkBAIC03MiwxMyArNzAsMTMgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX2Nvb2tpZShz
ZXNzaW9uLCB1cmwpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAogICAg
IGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJu
YW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwg
c3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAiZXhwaXJ5IiBpbiBjb29raWUKLSAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbImV4cGlyeSJdLCBpbnRlZ2VyX3R5cGVzKQorICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZVsiZXhwaXJ5Il0sIGludCkKICAgICBhc3NlcnQgInNhbWVTaXRl
IiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRl
eHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikK
IAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiZm9vIgogICAgIGFzc2VydCBjb29raWVb
InZhbHVlIl0gPT0gImJhciIKQEAgLTg3LDcgKzg1LDcgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX2Nv
b2tpZShzZXNzaW9uLCB1cmwpOgogICAgICAgICBjb29raWVbImV4cGlyeSJdKS5zdHJmdGltZSh1
dGNfc3RyaW5nX2Zvcm1hdCkgPT0gYV9kYXlfZnJvbV9ub3cKIAogCi1kZWYgdGVzdF9kdXBsaWNh
dGVkX2Nvb2tpZShzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcpOgorZGVmIHRlc3RfZHVwbGlj
YXRlZF9jb29raWUoc2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIG5l
d19jb29raWUgPSB7CiAgICAgICAgICJuYW1lIjogImhlbGxvIiwKICAgICAgICAgInZhbHVlIjog
IndvcmxkIiwKQEAgLTExMywxMSArMTExLDExIEBAIGRlZiB0ZXN0X2R1cGxpY2F0ZWRfY29va2ll
KHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29v
a2llLCBkaWN0KQogCiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0
IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIg
aW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0
X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAK
ICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gbmV3X2Nvb2tpZVsibmFtZSJdCiAgICAgYXNz
ZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAibmV3d29ybGQiCkBAIC0xMzYsMTEgKzEzNCwxMSBAQCBk
ZWYgdGVzdF9nZXRfY29va2llX3dpdGhfc2FtZV9zaXRlX2ZsYWcoc2Vzc2lvbiwgdXJsLCBzYW1l
X3NpdGUpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAogICAgIGFzc2Vy
dCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0s
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQog
ICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFs
dWUiXSwgc3RyKQogICAgIGFzc2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQotICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFt
ZSJdID09ICJmb28iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAiYmFyIgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFn
ZV9zb3VyY2Uvc291cmNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5CmluZGV4IDU0ODRjY2JmMmVlZi4uY2M0
ZTIwODgzNWM4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9wYWdlX3NvdXJjZS9zb3VyY2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5CkBA
IC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9l
cnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogCiAKIGRlZiBnZXRfcGFnZV9zb3VyY2Uoc2Vzc2lvbik6CkBAIC0xNyw3ICsxNiw3IEBA
IGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rf
c291cmNlX21hdGNoZXNfb3V0ZXJfaHRtbChzZXNzaW9uKToKK2RlZiB0ZXN0X3NvdXJjZV9tYXRj
aGVzX291dGVyX2h0bWwoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGh0bWw+PGhlYWQ+PHRpdGxlPkNoZWVzZTwvdGl0bGU+PGJvZHk+UGVhcyIpCiAKICAgICBl
eHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQub3V0ZXJIVE1MIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNl
L3VzZXJfcHJvbXB0cy5weQppbmRleCAzYjBjZGZmOTdkZDkuLjEzY2IzMTU5NWU2MSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFn
ZV9zb3VyY2UvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3
ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9wYWdl
X3NvdXJjZShzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGdldF9wYWdlX3NvdXJjZShz
ZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxkaXYvPiIpCiAgICAgICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgi
cmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vdXRlckhUTUwiKQpAQCAtMjgsNyArMjcs
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGRpdi8+IikKIApAQCAtNDMsNyArNDIsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRl
c3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xv
c2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBl
KToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dl
dC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3Rp
dGxlL2dldC5weQppbmRleCAzNDQwNTc3NGJhMDYuLmU2OTZlYzM0MDMzOSAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvZ2V0
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X3RpdGxlL2dldC5weQpAQCAtMSw3ICsxLDQgQEAKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUK
LQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRl
ZiBnZXRfdGl0bGUoc2Vzc2lvbik6CkBAIC0xNCw3ICsxMSw3IEBAIGRlZiB0ZXN0X3BheWxvYWQo
c2Vzc2lvbik6CiAKICAgICByZXNwb25zZSA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIHZhbHVl
ID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUs
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKQogCiAKIGRlZiB0
ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgpAQCAt
MjIsMjggKzE5LDI4IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24s
IGNsb3NlZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2lu
ZG93IikKIAogCi1kZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9m
cmFtZSk6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFt
ZSwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+
IikKIAogICAgIHJlc3BvbnNlID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UsICJGb28iKQogCiAKLWRlZiB0ZXN0X3dpdGhfZHVwbGljYXRlZF90aXRsZShz
ZXNzaW9uKToKK2RlZiB0ZXN0X3dpdGhfZHVwbGljYXRlZF90aXRsZShzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Rmlyc3Q8L3RpdGxlPjx0aXRsZT5T
ZWNvbmQ8L3RpdGxlPiIpCiAKICAgICByZXN1bHQgPSBnZXRfdGl0bGUoc2Vzc2lvbikKICAgICBh
c3NlcnRfc3VjY2VzcyhyZXN1bHQsICJGaXJzdCIpCiAKIAotZGVmIHRlc3Rfd2l0aG91dF90aXRs
ZShzZXNzaW9uKToKK2RlZiB0ZXN0X3dpdGhvdXRfdGl0bGUoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGgyPkhlbGxvPC9oMj4iKQogCiAgICAgcmVzdWx0ID0g
Z2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiIikKIAogCi1k
ZWYgdGVzdF9hZnRlcl9tb2RpZmljYXRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9hZnRlcl9tb2Rp
ZmljYXRpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRp
dGxlPkluaXRpYWw8L3RpdGxlPjxoMj5IZWxsbzwvaDI+IikKICAgICBzZXNzaW9uLmV4ZWN1dGVf
c2NyaXB0KCJkb2N1bWVudC50aXRsZSA9ICdVcGRhdGVkJyIpCiAKQEAgLTUxLDcgKzQ4LDcgQEAg
ZGVmIHRlc3RfYWZ0ZXJfbW9kaWZpY2F0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNz
KHJlc3VsdCwgIlVwZGF0ZWQiKQogCiAKLWRlZiB0ZXN0X3N0cmlwX2FuZF9jb2xsYXBzZShzZXNz
aW9uKToKK2RlZiB0ZXN0X3N0cmlwX2FuZF9jb2xsYXBzZShzZXNzaW9uLCBpbmxpbmUpOgogICAg
IGRvY3VtZW50ID0gIjx0aXRsZT4gICBhIGJcdGNcbmRcdCBcbiBlXHRcbiA8L3RpdGxlPjxoMj5I
ZWxsbzwvaDI+IgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGRvY3VtZW50KQogCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRs
ZS9pZnJhbWUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF90aXRsZS9pZnJhbWUucHkKaW5kZXggNTk5MWJmMzU5MDY5Li45YzVhYjBiNTk1ZDMgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X3RpdGxlL2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF90aXRsZS9pZnJhbWUucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQgcHl0
ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2Vzcwot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAogCiAiIiIK
QEAgLTE1LDkgKzE0LDIwIEBAIGFsc28gZW5mb3JjZSBwcm9jZXNzIGlzb2xhdGlvbiBiYXNlZCBv
biBzaXRlIG9yaWdpbi4KIFRoaXMgaXMga25vd24gdG8gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1z
IGZvciBXZWJEcml2ZXIgaW1wbGVtZW50YXRpb25zLgogIiIiCiAKLWZyYW1lX2RvYyA9IGlubGlu
ZSgiPHRpdGxlPmNoZWVzZTwvdGl0bGU+PHA+ZnJhbWUiKQotb25lX2ZyYW1lX2RvYyA9IGlubGlu
ZSgiPHRpdGxlPmJhcjwvdGl0bGU+PGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgZnJhbWVf
ZG9jKQotbmVzdGVkX2ZyYW1lc19kb2MgPSBpbmxpbmUoIjx0aXRsZT5mb288L3RpdGxlPjxpZnJh
bWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCisKK0BweXRlc3QuZml4dHVy
ZQorZGVmIGZyYW1lX2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjx0aXRsZT5jaGVl
c2U8L3RpdGxlPjxwPmZyYW1lIikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBvbmVfZnJhbWVf
ZG9jKGlubGluZSwgZnJhbWVfZG9jKToKKyAgICByZXR1cm4gaW5saW5lKCI8dGl0bGU+YmFyPC90
aXRsZT48aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCisKKworQHB5dGVz
dC5maXh0dXJlCitkZWYgbmVzdGVkX2ZyYW1lc19kb2MoaW5saW5lLCBvbmVfZnJhbWVfZG9jKToK
KyAgICByZXR1cm4gaW5saW5lKCI8dGl0bGU+Zm9vPC90aXRsZT48aWZyYW1lIHNyYz0nJXMnPjwv
aWZyYW1lPiIgJSBvbmVfZnJhbWVfZG9jKQogCiAKIGRlZiBnZXRfdGl0bGUoc2Vzc2lvbik6CkBA
IC0yNSwxNCArMzUsMTQgQEAgZGVmIGdldF90aXRsZShzZXNzaW9uKToKICAgICAgICAgIkdFVCIs
ICJzZXNzaW9uL3tzZXNzaW9uX2lkfS90aXRsZSIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAK
IAotZGVmIHRlc3Rfbm9faWZyYW1lKHNlc3Npb24pOgorZGVmIHRlc3Rfbm9faWZyYW1lKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb29iYXI8L3Rp
dGxlPjxoMj5IZWxsbzwvaDI+IikKIAogICAgIHJlc3VsdCA9IGdldF90aXRsZShzZXNzaW9uKQog
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIkZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWZyYW1l
KHNlc3Npb24pOgorZGVmIHRlc3RfaWZyYW1lKHNlc3Npb24sIG9uZV9mcmFtZV9kb2MpOgogICAg
IHNlc3Npb24udXJsID0gb25lX2ZyYW1lX2RvYwogCiAgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCkBAIC00Myw3ICs1Myw3IEBAIGRlZiB0ZXN0X2lmcmFt
ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgImJhciIpCiAKIAotZGVm
IHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uKToKK2RlZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vz
c2lvbiwgbmVzdGVkX2ZyYW1lc19kb2MpOgogICAgIHNlc3Npb24udXJsID0gbmVzdGVkX2ZyYW1l
c19kb2MKIAogICAgIG91dGVyX2ZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxs
PUZhbHNlKQpAQCAtNTgsNyArNjgsNyBAQCBkZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Npb24p
OgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9tYWluIiwgWyIiLCAiYWx0Il0sIGlk
cz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdpbiJdKQotZGVmIHRlc3Rfb3JpZ2luKHNlc3Np
b24sIGRvbWFpbiwgdXJsKToKK2RlZiB0ZXN0X29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIGlmcmFt
ZSwgZG9tYWluKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPmZvbzwvdGl0bGU+
e30iLmZvcm1hdCgKICAgICAgICAgaWZyYW1lKCI8dGl0bGU+YmFyPC90aXRsZT48cD5mcmFtZSIs
IGRvbWFpbj1kb21haW4pKSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRz
LnB5CmluZGV4IDc2ZDY1YzA4OGEwYi4uMGZkNTFlNDZmMzJhIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS91c2VyX3Byb21w
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVk
LCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgpAQCAtMTIsNyArMTEs
NyBAQCBkZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKICAgICAgICAgZXhw
ZWN0ZWRfdGl0bGUgPSBzZXNzaW9uLnRpdGxlCkBAIC0yOCw3ICsyNyw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Rm9v
PC90aXRsZT4iKQogCkBAIC00Myw3ICs0Miw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKIApAQCAt
MTE3LDcgKzExNiw3IEBAIGRlZiB0ZXN0X2RlZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKICMgdHJpZ2dlciB0aGUgY3Jl
YXRpb24gb2YgYSBkaWFsb2cgYXQgYWxsLiBUaGVyZWZvcmUsIHRoaXMgdGVzdCBzaG91bGQgb25s
eSBiZQogIyBydW4gaW4gY29udGV4dHMgdGhhdCBzdXBwb3J0IHRoZSBkaWFsb2cgKGEgY29uZGl0
aW9uIHRoYXQgbWF5IG5vdCBiZQogIyBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkpLgotIyBkZWYg
dGVzdF90aXRsZV93aXRoX25vbl9zaW1wbGVfZGlhbG9nKHNlc3Npb24pOgorIyBkZWYgdGVzdF90
aXRsZV93aXRoX25vbl9zaW1wbGVfZGlhbG9nKHNlc3Npb24sIGlubGluZSk6CiAjICAgIGRvY3Vt
ZW50ID0gIjx0aXRsZT5XaXRoIG5vbi1zaW1wbGUgZGlhbG9nPC90aXRsZT48aDI+SGVsbG88L2gy
PiIKICMgICAgc3Bhd24gPSAiIiIKICMgICAgICAgIHZhciBkb25lID0gYXJndW1lbnRzWzBdOwpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfd2luZG93X2hhbmRsZS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfaGFuZGxlL2dldC5weQppbmRleCA4YzI2MjAzM2MzODMu
LjY4NDQxZGE1ZWY4NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkK
QEAgLTEsMyArMSw1IEBACitpbXBvcnQgcHl0ZXN0CisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtMTksMyArMjEs
MjMgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUp
OgogZGVmIHRlc3RfYmFzaWMoc2Vzc2lvbik6CiAgICAgcmVzcG9uc2UgPSBnZXRfd2luZG93X2hh
bmRsZShzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBzZXNzaW9uLndpbmRv
d19oYW5kbGUpCisKKworIyBDYXBhYmlsaXR5IG5lZWRlZCBhcyBsb25nIGFzIG5vIHZhbGlkIGNl
cnRpZmljYXRlIGlzIGF2YWlsYWJsZToKKyMgICBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjg4NDcKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJh
Y2NlcHRJbnNlY3VyZUNlcnRzIjogVHJ1ZX0pCitkZWYgdGVzdF9uYXZpZ2F0aW9uX3dpdGhfY29v
cF9oZWFkZXJzKHNlc3Npb24sIHVybCk6CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rl
c3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlw
ZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorCisgICAg
c2Vzc2lvbi51cmwgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHJlc3Bv
bnNlID0gZ2V0X3dpbmRvd19oYW5kbGUoc2Vzc2lvbikKKyAgICBmaXJzdF9oYW5kbGUgPSBhc3Nl
cnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgICMgbmF2aWdhdGluZyB0byBhbm90aGVyIGRvbWFp
biB3aXRoIENPT1AgaGVhZGVycyB3aWxsIGZvcmNlIGEgcHJvY2VzcyBjaGFuZ2UKKyAgICAjIGlu
IG1vc3QgYnJvd3NlcnMKKyAgICBzZXNzaW9uLnVybCA9IHVybChiYXNlX3BhdGgsIHByb3RvY29s
PSJodHRwcyIsIGRvbWFpbj0iYWx0IikKKyAgICByZXNwb25zZSA9IGdldF93aW5kb3dfaGFuZGxl
KHNlc3Npb24pCisgICAgc2Vjb25kX2hhbmRsZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQor
CisgICAgYXNzZXJ0IGZpcnN0X2hhbmRsZSA9PSBzZWNvbmRfaGFuZGxlCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVj
dC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF93aW5kb3dfcmVjdC9nZXQucHkKaW5kZXggNzkzNjUwZmVlZjQ2Li5mNzU5MmEzMGUwNjcgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X3dpbmRvd19yZWN0L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVjdC9nZXQucHkKQEAgLTEsOCArMSw0IEBACiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotYWxlcnRfZG9j
ID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5hbGVydCgpPC9zY3JpcHQ+IikKIAogCiBkZWYgZ2V0
X3dpbmRvd19yZWN0KHNlc3Npb24pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5lc3MuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDA0OWQ4MzVmMmZjLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93
ZWJkcml2ZXIvIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanM+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL2lkbGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0g
ICJ1c2Ugc3RyaWN0IjsKLQotICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewotICAgIGNvbnN0
IGlkbF9hcnJheSA9IG5ldyBJZGxBcnJheSgpOwotICAgIGNvbnN0IGlkbCA9IGF3YWl0IGZldGNo
KCIvaW50ZXJmYWNlcy93ZWJkcml2ZXIuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKLSAgICBj
b25zdCBodG1sID0gYXdhaXQgZmV0Y2goIi9pbnRlcmZhY2VzL2h0bWwuaWRsIikudGhlbihyID0+
IHIudGV4dCgpKTsKLSAgICBpZGxfYXJyYXkuYWRkX2lkbHMoaWRsKTsKLSAgICBpZGxfYXJyYXku
YWRkX2RlcGVuZGVuY3lfaWRscyhodG1sKTsKLSAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoewot
ICAgICAgTmF2aWdhdG9yOiBbIm5hdmlnYXRvciJdCi0gICAgfSk7Ci0gICAgaWRsX2FycmF5LnRl
c3QoKTsKLSAgfSwgIlRlc3QgSURMIGltcGxlbWVudGF0aW9uIG9mIHdlYmRyaXZlciBBUEkiKTsK
LTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9pZGxoYXJuZXNzLndpbmRvdy5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvaWRsaGFybmVzcy53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lOTJlMTUxZDg5ODMKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5lc3Mu
d2luZG93LmpzCkBAIC0wLDAgKzEsMTYgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dl
YklETFBhcnNlci5qcworLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcwor
CisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyLworCisidXNlIHN0cmljdCI7CisK
K2lkbF90ZXN0KAorICBbIndlYmRyaXZlciJdLAorICBbImh0bWwiXSwKKyAgaWRsX2FycmF5ID0+
IHsKKyAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAgICAgTmF2aWdhdG9yOiBbIm5hdmln
YXRvciJdCisgICAgfSk7CisgIH0KKyk7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2Vu
YWJsZWQvZW5hYmxlZC5weQppbmRleCA4OGIxNTM0ZGVkMWEuLjRhNWE5MmJhNWU5MSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVt
ZW50X2VuYWJsZWQvZW5hYmxlZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5CkBAIC0xLDcgKzEs
NiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiAKIAogZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50
X2lkKToKQEAgLTE1LDE2ICsxNCwyMyBAQCBkZWYgaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24s
IGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Np
b24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3Nl
ZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVt
ZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAg
ICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCAiZm9vIikKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRv
d19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5h
YmxlZChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9u
LCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9lbmFibGVkKHNlc3Np
b24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikK
IAogCi1kZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9z
dGFsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+
IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAg
ICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTM0LDcgKzQwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9z
dGFsZShzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQiLCBb
ImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X2Zvcm1f
Y29udHJvbF9kaXNhYmxlZChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2Zvcm1fY29udHJv
bF9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8e30gZGlzYWJsZWQvPiIuZm9ybWF0KGVsZW1lbnQpKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtNDMsNyArNDksNyBAQCBk
ZWYgdGVzdF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2Vs
ZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVzdF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNzaW9u
LCBlbGVtZW50KToKK2RlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGlubGlu
ZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7fS8+Ii5mb3JtYXQoZWxl
bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNl
KQogCkBAIC01Miw3ICs1OCw3IEBAIGRlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Np
b24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIsIFsi
YnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfZmllbGRz
ZXRfZGlzYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2ZpZWxk
c2V0X2Rpc2FibGVkX2Rlc2NlbmRhbnQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGZpZWxkc2V0IGRpc2FibGVkPjx7fS8+PC9maWVsZHNldD4i
LmZvcm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50
LCBhbGw9RmFsc2UpCiAKQEAgLTYxLDcgKzY3LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJs
ZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImVsZW1lbnQiLCBbImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEi
XSkKLWRlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50
KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBpbmxpbmUs
IGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZmllbGRzZXQ+PHt9Lz48L2Zp
ZWxkc2V0PiIuZm9ybWF0KGVsZW1lbnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtNzAsNyArNzYsNyBAQCBkZWYgdGVzdF9maWVsZHNl
dF9lbmFibGVkX2Rlc2NlbmRhbnQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRl
eHRhcmVhIl0pCi1kZWYgdGVzdF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChz
ZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRhbnRf
bGVnZW5kKHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxmaWVsZHNldCBkaXNhYmxlZD48bGVnZW5kPjx7fS8+PC9sZWdlbmQ+PC9maWVsZHNldD4i
LmZvcm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50
LCBhbGw9RmFsc2UpCiAKQEAgLTc5LDcgKzg1LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJs
ZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRl
eHRhcmVhIl0pCi1kZWYgdGVzdF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNl
c3Npb24sIGVsZW1lbnQpOgorZGVmIHRlc3RfZmllbGRzZXRfZW5hYmxlZF9kZXNjZW5kYW50X2xl
Z2VuZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8ZmllbGRzZXQ+PGxlZ2VuZD48e30vPjwvbGVnZW5kPjwvZmllbGRzZXQ+Ii5mb3JtYXQoZWxl
bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNl
KQogCkBAIC04OCw3ICs5NCw3IEBAIGRlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFu
dF9sZWdlbmQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1k
ZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6Citk
ZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lLCBlbGVt
ZW50KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8e30gZGlzYWJsZWQ9ImRpc2FibGVk
Ii8+IiIiLmZvcm1hdChlbGVtZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0eXBl
PSJ4aHRtbCIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZh
bHNlKQpAQCAtOTgsNyArMTA0LDcgQEAgZGVmIHRlc3RfeGh0bWxfZm9ybV9jb250cm9sX2Rpc2Fi
bGVkKHNlc3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxl
bWVudCIsIFsiYnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRl
c3RfeGh0bWxfZm9ybV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVz
dF94aHRtbF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjx7fS8+IiIiLmZvcm1hdChlbGVtZW50KSwgZG9j
dHlwZT0ieGh0bWwiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFs
bD1GYWxzZSkKIApAQCAtMTA2LDcgKzExMiw3IEBAIGRlZiB0ZXN0X3hodG1sX2Zvcm1fY29udHJv
bF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnQpOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwg
VHJ1ZSkKIAogCi1kZWYgdGVzdF94bWxfYWx3YXlzX25vdF9lbmFibGVkKHNlc3Npb24pOgorZGVm
IHRlc3RfeG1sX2Fsd2F5c19ub3RfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIjxub3RlPjwvbm90ZT4iIiIsIGRvY3R5cGU9InhtbCIpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIm5vdGUiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVu
dF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weQppbmRleCBi
ZDhiYzgxYmRmY2MuLjVkZDdkNTgyYmQzZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvdXNlcl9wcm9tcHRz
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNf
ZWxlbWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBw
eXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwg
YXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9u
LCBlbGVtZW50X2lkKToKQEAgLTE3LDcgKzE2LDcgQEAgZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChz
ZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gZGlzYWJsZWQ+IikKICAgICAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBA
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQgaWQ9Zm9vIGRpc2FibGVkPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtNDksNyArNDgsNyBAQCBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28g
ZGlzYWJsZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBh
bGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0
ZWQucHkKaW5kZXggNzlhMTYxNWRkOWZkLi42YzhlODE1NWNhYjEgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3Rl
ZC9zZWxlY3RlZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkKQEAgLTEsMTIgKzEsMTggQEAK
K2ltcG9ydCBweXRlc3QKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKIAogCi1jaGVja19kb2MgPSBpbmxpbmUoIiIiCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBj
aGVja19kb2MoaW5saW5lKToKKyAgICByZXR1cm4gaW5saW5lKCIiIgogICAgIDxpbnB1dCBpZD1j
aGVja2VkIHR5cGU9Y2hlY2tib3ggY2hlY2tlZD4KICAgICA8aW5wdXQgaWQ9bm90Q2hlY2tlZCB0
eXBlPWNoZWNrYm94PgogICAgICIiIikKLW9wdGlvbl9kb2MgPSBpbmxpbmUoIiIiCisKKworQHB5
dGVzdC5maXh0dXJlCitkZWYgb3B0aW9uX2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUo
IiIiCiAgICAgPHNlbGVjdD4KICAgICAgIDxvcHRpb24gaWQ9bm90U2VsZWN0ZWQ+ci0KICAgICAg
IDxvcHRpb24gaWQ9c2VsZWN0ZWQgc2VsZWN0ZWQ+cisKQEAgLTIyLDE2ICsyOCwyNCBAQCBkZWYg
aXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBkZWYgdGVzdF9u
b190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmln
aW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisKKyAgICByZXNwb25zZSA9IGlz
X2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBpc19lbGVtZW50X3Nl
bGVjdGVkKHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1
Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRs
ZQorICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50Lmlk
KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVm
IHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJl
c3BvbnNlID0gaXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRf
ZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9z
dGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgY2hlY2tfZG9j
KToKICAgICBzZXNzaW9uLnVybCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCIjY2hlY2tlZCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAt
NDAsNyArNTQsNyBAQCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2Vy
dF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3Rf
ZWxlbWVudF9jaGVja2VkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9jaGVja2VkKHNlc3Np
b24sIGNoZWNrX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBjaGVja19kb2MKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiI2NoZWNrZWQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ4LDcgKzYy
LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9jaGVja2VkKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNj
ZXNzKHJlc3VsdCwgVHJ1ZSkKIAogCi1kZWYgdGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vz
c2lvbik6CitkZWYgdGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbiwgY2hlY2tfZG9j
KToKICAgICBzZXNzaW9uLnVybCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCIjbm90Q2hlY2tlZCIsIGFsbD1GYWxzZSkKIApAQCAtNTYsNyArNzAsNyBAQCBkZWYg
dGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzdWx0LCBGYWxzZSkKIAogCi1kZWYgdGVzdF9lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24pOgor
ZGVmIHRlc3RfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBvcHRpb25fZG9jKToKICAgICBzZXNz
aW9uLnVybCA9IG9wdGlvbl9kb2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI3Nl
bGVjdGVkIiwgYWxsPUZhbHNlKQogCkBAIC02NCw3ICs3OCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRf
c2VsZWN0ZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBUcnVlKQogCiAK
LWRlZiB0ZXN0X2VsZW1lbnRfbm90X3NlbGVjdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVu
dF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbiwgb3B0aW9uX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBv
cHRpb25fZG9jCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNub3RTZWxlY3RlZCIs
IGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3Rl
ZC91c2VyX3Byb21wdHMucHkKaW5kZXggNjc0ZjgwYzVjNzViLi45NmRhMmMwOGJkN2UgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxl
bWVudF9zZWxlY3RlZC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5w
eQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRf
c3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVm
IGlzX2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xNCw3ICsxMyw3
IEBAIGRlZiBpc19lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAg
ICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZv
byB0eXBlPWNoZWNrYm94IGNoZWNrZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMSw3ICszMCw3IEBAIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5
cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9v
IHR5cGU9Y2hlY2tib3ggY2hlY2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAog
CiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6
CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIHR5
cGU9Y2hlY2tib3ggY2hlY2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9tYXhpbWl6ZV93aW5kb3cvbWF4
aW1pemUucHkKaW5kZXggNjkwM2VlY2U3MGQwLi5lMjMzZTQ1YTEwZDcgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93
L21heGltaXplLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5CkBAIC04NCw2ICs4NCw3IEBAIGRlZiB0
ZXN0X21heGltaXplX3doZW5fcmVzaXplZF90b19tYXhfc2l6ZShzZXNzaW9uKToKICAgICBzZXNz
aW9uLmVuZCgpCiAgICAgc2Vzc2lvbi53aW5kb3cubWF4aW1pemUoKQogICAgIGF2YWlsYWJsZSA9
IHNlc3Npb24ud2luZG93LnNpemUKKyAgICBzZXNzaW9uLndpbmRvdy5zaXplID0gKDgwMCwgNjAw
KQogICAgIHNlc3Npb24uZW5kKCkKIAogICAgIHNlc3Npb24ud2luZG93LnNpemUgPSBhdmFpbGFi
bGUKQEAgLTk1LDQgKzk2LDUgQEAgZGVmIHRlc3RfbWF4aW1pemVfd2hlbl9yZXNpemVkX3RvX21h
eF9zaXplKHNlc3Npb24pOgogICAgICMgaXRzIGV4cGVjdGVkIGRpbWVuc2lvbnMuCiAgICAgYmVm
b3JlID0gc2Vzc2lvbi53aW5kb3cuc2l6ZQogICAgIHNlc3Npb24ud2luZG93Lm1heGltaXplKCkK
LSAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3cuc2l6ZSA9PSBiZWZvcmUKKyAgICBhZnRlciA9IHNl
c3Npb24ud2luZG93LnNpemUKKyAgICBhc3NlcnQgYWZ0ZXIgPT0gYmVmb3JlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3Rv
L25hdmlnYXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9uYXZpZ2F0ZV90by9uYXZpZ2F0ZS5weQppbmRleCAyODllNDMyMTAxMWYuLjI1ZDc2ODE2N2Fh
MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9uYXZpZ2F0ZV90by9uYXZpZ2F0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL25hdmlnYXRlLnB5CkBAIC0xLDggKzEsMTEg
QEAKLWZyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQgcGxhdGZvcm1fbmFtZQoraW1wb3J0IHRpbWUK
KworaW1wb3J0IHB5dGVzdAorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiBmcm9tIHdlYmRy
aXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKK2Zyb20gdGVzdHMuc3VwcG9ydCBpbXBv
cnQgcGxhdGZvcm1fbmFtZQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBuYXZpZ2F0ZV90byhzZXNzaW9uLCB1cmwpOgpAQCAtMTcsNyArMjAs
NyBAQCBkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwKToKICAgICAg
ICAgYXNzZXJ0X2Vycm9yKFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSksICJpbnZhbGlkIGFy
Z3VtZW50IikKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVm
IHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHJlc3BvbnNl
ID0gbmF2aWdhdGVfdG8oc2Vzc2lvbiwgaW5saW5lKCI8ZGl2Lz4iKSkKICAgICB2YWx1ZSA9IGFz
c2VydF9zdWNjZXNzKHJlc3BvbnNlKQogICAgIGFzc2VydCB2YWx1ZSBpcyBOb25lCkBAIC0yOCw3
ICszMSw3IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikK
IAogCi1kZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6
CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5s
aW5lKToKICAgICBkb2MgPSBpbmxpbmUoIjxwPmZvbyIpCiAKICAgICByZXNwb25zZSA9IG5hdmln
YXRlX3RvKHNlc3Npb24sIGRvYykKQEAgLTUyLDMgKzU1LDQ4IEBAIGRlZiB0ZXN0X2ZpbGVfcHJv
dG9jb2woc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAgaWYgc2Vzc2lvbi51cmwuZW5kc3dp
dGgoJy8nKToKICAgICAgICAgdXJsICs9ICcvJwogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSB1
cmwKKworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNh
dGUgaXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdElu
c2VjdXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbihzZXNzaW9uLCBpbmxp
bmUsIHVybCk6CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRt
bC9zdWJmcmFtZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwo
YmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2Vf
cGF0aCwgcHJvdG9jb2w9Imh0dHBzIiwgZG9tYWluPSJhbHQiKQorCisgICAgcmVzcG9uc2UgPSBu
YXZpZ2F0ZV90byhzZXNzaW9uLCBmaXJzdF9wYWdlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3Bv
bnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IGZpcnN0X3BhZ2UKKyAgICBlbGVtID0g
c2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0g
bmF2aWdhdGVfdG8oc2Vzc2lvbiwgc2Vjb25kX3BhZ2UpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gc2Vjb25kX3BhZ2UKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoZXJyb3IuU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAg
ICAgICAgZWxlbS5jbGljaygpCisKKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxs
PUZhbHNlKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJwYWdlTG9hZFN0cmF0ZWd5
IjogImVhZ2VyIn0pCitkZWYgdGVzdF91dGY4X21ldGFfdGFnX2FmdGVyXzEwMjRfYnl0ZXMoc2Vz
c2lvbiwgdXJsKToKKyAgICBwYWdlID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRt
bC9tZXRhLXV0ZjgtYWZ0ZXItMTAyNC1ieXRlcy5odG1sIikKKworICAgICMgTG9hZGluZyB0aGUg
cGFnZSB3aWxsIGNhdXNlIGEgcmVhbCBwYXJzZSBjb21tZW5jaW5nLCBhbmQgYSByZW5hdmlnYXRp
b24KKyAgICAjIHRvIHRoZSBzYW1lIFVSTCBnZXR0aW5nIHRyaWdnZXJlZCBzdWJzZXF1ZW50bHku
IFRlc3QgdGhhdCB0aGUgbmF2aWdhdGUKKyAgICAjIGNvbW1hbmQgd2FpdHMgbG9uZyBlbm91Z2gu
CisgICAgcmVzcG9uc2UgPSBuYXZpZ2F0ZV90byhzZXNzaW9uLCBwYWdlKQorICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorCisgICAgIyBJZiB0aGUgY29tbWFuZCByZXR1cm5zIHRvbyBlYXJs
eSB0aGUgcHJvcGVydHkgd2lsbCBiZSByZXNldCBkdWUgdG8gdGhlCisgICAgIyBzdWJzZXF1ZW50
IHBhZ2UgbG9hZC4KKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cuZm9vID0gJ2Jh
ciciKQorCisgICAgIyBVc2UgZGVsYXkgdG8gYWxsb3cgYSBwb3NzaWJsZSBtaXNzaW5nIHN1YnNl
cXVlbnQgbmF2aWdhdGlvbiB0byBzdGFydAorICAgIHRpbWUuc2xlZXAoMSkKKworICAgIGFzc2Vy
dCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LmZvbyIpID09ICJiYXIiCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25h
dmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvbmF2aWdhdGVfdG8vdXNlcl9wcm9tcHRzLnB5CmluZGV4IDZhOTRjMTFi
ZjFkMy4uNjgyYmM0MGY0ZmU5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3VzZXJf
cHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2Vy
dF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogZGVmIG5hdmlnYXRlX3RvKHNlc3Npb24sIHVybCk6CkBAIC0xMyw3ICsxMiw3IEBAIGRl
ZiBuYXZpZ2F0ZV90byhzZXNzaW9uLCB1cmwpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICB1cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKQEAgLTMwLDcgKzI5LDcgQEAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6
CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2df
dHlwZSwgcmV0dmFsKToKICAgICAgICAgdXJsID0gaW5saW5lKCI8ZGl2Lz4iKQogCkBAIC00Nyw3
ICs0Niw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICB1cmwgPSBpbmxpbmUo
IjxkaXYvPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vcmVzcG9uc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CmluZGV4IGNi
ZTllN2Q3ZmIxNC4uNDNhOGQ1NzkzMTE0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vcmVz
cG9uc2UucHkKQEAgLTEsMjkgKzEsMjcgQEAKIGltcG9ydCB1dWlkCiBpbXBvcnQgcHl0ZXN0CiAK
LWZyb20gc2l4IGltcG9ydCBzdHJpbmdfdHlwZXMKLQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2Vy
dHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCiAKIAogZGVmIHRlc3Rfc2Vzc2lvbmlkKG5ld19zZXNz
aW9uLCBhZGRfYnJvd3Nlcl9jYXBhYmlsaXRpZXMpOgogICAgIHJlc3BvbnNlLCBfID0gbmV3X3Nl
c3Npb24oeyJjYXBhYmlsaXRpZXMiOiB7ImFsd2F5c01hdGNoIjogYWRkX2Jyb3dzZXJfY2FwYWJp
bGl0aWVzKHt9KX19KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAg
YXNzZXJ0IGlzaW5zdGFuY2UodmFsdWVbInNlc3Npb25JZCJdLCBzdHJpbmdfdHlwZXMpCisgICAg
YXNzZXJ0IGlzaW5zdGFuY2UodmFsdWVbInNlc3Npb25JZCJdLCBzdHIpCiAgICAgdXVpZC5VVUlE
KGhleD12YWx1ZVsic2Vzc2lvbklkIl0pCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJj
YXBhYmlsaXR5LCB0eXBlIiwgWwotICAgICgiYnJvd3Nlck5hbWUiLCBzdHJpbmdfdHlwZXMpLAot
ICAgICgiYnJvd3NlclZlcnNpb24iLCBzdHJpbmdfdHlwZXMpLAotICAgICgicGxhdGZvcm1OYW1l
Iiwgc3RyaW5nX3R5cGVzKSwKKyAgICAoImJyb3dzZXJOYW1lIiwgc3RyKSwKKyAgICAoImJyb3dz
ZXJWZXJzaW9uIiwgc3RyKSwKKyAgICAoInBsYXRmb3JtTmFtZSIsIHN0ciksCiAgICAgKCJhY2Nl
cHRJbnNlY3VyZUNlcnRzIiwgYm9vbCksCi0gICAgKCJwYWdlTG9hZFN0cmF0ZWd5Iiwgc3RyaW5n
X3R5cGVzKSwKKyAgICAoInBhZ2VMb2FkU3RyYXRlZ3kiLCBzdHIpLAogICAgICgicHJveHkiLCBk
aWN0KSwKICAgICAoInNldFdpbmRvd1JlY3QiLCBib29sKSwKICAgICAoInRpbWVvdXRzIiwgZGlj
dCksCiAgICAgKCJzdHJpY3RGaWxlSW50ZXJhY3RhYmlsaXR5IiwgYm9vbCksCi0gICAgKCJ1bmhh
bmRsZWRQcm9tcHRCZWhhdmlvciIsIHN0cmluZ190eXBlcyksCisgICAgKCJ1bmhhbmRsZWRQcm9t
cHRCZWhhdmlvciIsIHN0ciksCiBdKQogZGVmIHRlc3RfY2FwYWJpbGl0eV90eXBlKHNlc3Npb24s
IGNhcGFiaWxpdHksIHR5cGUpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKHNlc3Npb24uY2FwYWJp
bGl0aWVzLCBkaWN0KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJs
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDUyZGVjYzkwYWEx
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5CkBAIC0wLDAgKzEsNyBAQAorZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCisKK2RlZiB0ZXN0
X3dlYnNvY2tldF91cmwobmV3X3Nlc3Npb24sIGFkZF9icm93c2VyX2NhcGFiaWxpdGllcyk6Cisg
ICAgcmVzcG9uc2UsIF8gPSBuZXdfc2Vzc2lvbih7ImNhcGFiaWxpdGllcyI6IHsKKyAgICAgICAg
ImFsd2F5c01hdGNoIjogYWRkX2Jyb3dzZXJfY2FwYWJpbGl0aWVzKHsid2ViU29ja2V0VXJsIjog
VHJ1ZX0pfX0pCisgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3Nl
cnQgdmFsdWVbImNhcGFiaWxpdGllcyJdWyJ3ZWJTb2NrZXRVcmwiXS5zdGFydHN3aXRoKCJ3czov
LyIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL25ld193aW5kb3cvbmV3X3RhYi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfdGFiLnB5CmluZGV4IDkzMDBiMDRjNDVmYS4u
MjcwZTRiNTFiODhmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3RhYi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3RhYi5weQpAQCAtMSw1
ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBpbXBv
cnQgb3BlbmVyLCB3aW5kb3dfbmFtZQogCkBAIC0zMiw3ICszMSw3IEBAIGRlZiB0ZXN0X2tlZXBz
X2N1cnJlbnRfd2luZG93X2hhbmRsZShzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vzc2lvbi53aW5k
b3dfaGFuZGxlID09IG9yaWdpbmFsX2hhbmRsZQogCiAKLWRlZiB0ZXN0X29wZW5zX2Fib3V0X2Js
YW5rX2luX25ld190YWIoc2Vzc2lvbik6CitkZWYgdGVzdF9vcGVuc19hYm91dF9ibGFua19pbl9u
ZXdfdGFiKHNlc3Npb24sIGlubGluZSk6CiAgICAgdXJsID0gaW5saW5lKCI8cD5mb28iKQogICAg
IHNlc3Npb24udXJsID0gdXJsCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfd2luZG93L25ld193aW5kb3cu
cHkKaW5kZXggYjM0ODU0Y2MyZjNmLi5kM2MyMjQ1MDI3MDQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3
X3dpbmRvdy9uZXdfd2luZG93LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBvcGVuZXIsIHdpbmRvd19uYW1lCiAKQEAg
LTMyLDcgKzMxLDcgQEAgZGVmIHRlc3Rfa2VlcHNfY3VycmVudF93aW5kb3dfaGFuZGxlKHNlc3Np
b24pOgogICAgIGFzc2VydCBzZXNzaW9uLndpbmRvd19oYW5kbGUgPT0gb3JpZ2luYWxfaGFuZGxl
CiAKIAotZGVmIHRlc3Rfb3BlbnNfYWJvdXRfYmxhbmtfaW5fbmV3X3dpbmRvdyhzZXNzaW9uKToK
K2RlZiB0ZXN0X29wZW5zX2Fib3V0X2JsYW5rX2luX25ld193aW5kb3coc2Vzc2lvbiwgaW5saW5l
KToKICAgICB1cmwgPSBpbmxpbmUoIjxwPmZvbyIpCiAgICAgc2Vzc2lvbi51cmwgPSB1cmwKIApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
ZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9jb25mdGVzdC5weQppbmRleCA5NzBmN2I3
ZGQ5YmUuLjE4OGY4ZGRiYjVlZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMv
Y29uZnRlc3QucHkKQEAgLTMyLDYgKzMyLDIyIEBAIGRlZiBtb3VzZV9jaGFpbihzZXNzaW9uKToK
ICAgICAgICAgeyJwb2ludGVyVHlwZSI6ICJtb3VzZSJ9KQogCiAKK0BweXRlc3QuZml4dHVyZQor
ZGVmIHRvdWNoX2NoYWluKHNlc3Npb24pOgorICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2Vx
dWVuY2UoCisgICAgICAgICJwb2ludGVyIiwKKyAgICAgICAgInBvaW50ZXJfaWQiLAorICAgICAg
ICB7InBvaW50ZXJUeXBlIjogInRvdWNoIn0pCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcGVu
X2NoYWluKHNlc3Npb24pOgorICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2UoCisg
ICAgICAgICJwb2ludGVyIiwKKyAgICAgICAgInBvaW50ZXJfaWQiLAorICAgICAgICB7InBvaW50
ZXJUeXBlIjogInBlbiJ9KQorCisKIEBweXRlc3QuZml4dHVyZQogZGVmIG5vbmVfY2hhaW4oc2Vz
c2lvbik6CiAgICAgcmV0dXJuIHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgibm9uZSIsICJub25l
X2lkIikKQEAgLTY2LDMgKzgyLDggQEAgZGVmIHRlc3RfYWN0aW9uc19wYWdlKHNlc3Npb24sIHVy
bCk6CiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiB0ZXN0X2FjdGlvbnNfc2Nyb2xsX3BhZ2Uoc2Vzc2lv
biwgdXJsKToKICAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvc3VwcG9ydC90ZXN0X2FjdGlvbnNfc2Nyb2xsX3dkc3BlYy5odG1sIikKKworCitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlKHNlc3Npb24sIHVy
bCk6CisgICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rp
b25zL3N1cHBvcnQvdGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwiKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMva2V5X2V2ZW50cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkKaW5kZXggYzM5NTgwMTViZmQ0
Li44ZGJlMDI0ZDE4MzkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMva2V5
X2V2ZW50cy5weQpAQCAtNSw3ICs1LDggQEAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVs
dGRpY3QKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9y
dC5rZXlzIGltcG9ydCBBTExfRVZFTlRTLCBLZXlzLCBBTFRFUk5BVElWRV9LRVlfTkFNRVMKLWZy
b20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGlj
dCwgZ2V0X2V2ZW50cywgZ2V0X2tleXMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBv
cnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5zdXBwb3J0
LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3Rfa2V5dXBfb25seV9zZW5k
c19ub19ldmVudHMoc2Vzc2lvbiwga2V5X3JlcG9ydGVyLCBrZXlfY2hhaW4pOgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMvcG9pbnRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXIucHkKaW5kZXggYWQ1NDY5MjE0NjBlLi42NzRk
NDZkN2I2MTAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlci5weQpA
QCAtNSwxNyArNSwxMiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBv
cnQgTm9TdWNoV2luZG93RXhjZXB0aW9uCiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1
cHBvcnQubW91c2UgaW1wb3J0IGdldF9pbnZpZXdfY2VudGVyLCBnZXRfdmlld3BvcnRfcmVjdAot
ZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9k
aWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmlu
ZSBpbXBvcnQgZ2V0X2V2ZW50cwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9tb3ZlX3RvX2Nvb3JkaW5hdGVzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGljdAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCi1kZWYgbGlua19kb2MoZGVz
dCk6Ci0gICAgY29udGVudCA9ICI8YSBocmVmPVwie31cIiBpZD1cImxpbmtcIj5kZXN0aW5hdGlv
bjwvYT4iLmZvcm1hdChkZXN0KQotICAgIHJldHVybiBpbmxpbmUoY29udGVudCkKLQotCiBkZWYg
dGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICB2YWx1
ZSA9IG1vdXNlX2NoYWluLmNsaWNrKCkucGVyZm9ybSgpCiAgICAgYXNzZXJ0IHZhbHVlIGlzIE5v
bmUKQEAgLTk1LDkgKzkwLDkgQEAgZGVmIHRlc3RfY2xpY2tfZWxlbWVudF9jZW50ZXIoc2Vzc2lv
biwgdGVzdF9hY3Rpb25zX3BhZ2UsIG1vdXNlX2NoYWluKToKICAgICAgICAgICAgIGFzc2VydCBl
WyJ0YXJnZXQiXSA9PSAib3V0ZXIiCiAKIAotZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNz
aW9uLCB1cmwpOgorZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwsIGlubGlu
ZSk6CiAgICAgZGVzdGluYXRpb24gPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvYWN0aW9ucy9zdXBw
b3J0L3Rlc3RfYWN0aW9uc193ZHNwZWMuaHRtbCIpCi0gICAgc3RhcnQgPSBsaW5rX2RvYyhkZXN0
aW5hdGlvbikKKyAgICBzdGFydCA9IGlubGluZSgiPGEgaHJlZj1cInt9XCIgaWQ9XCJsaW5rXCI+
ZGVzdGluYXRpb248L2E+Ii5mb3JtYXQoZGVzdGluYXRpb24pKQogCiAgICAgZGVmIGNsaWNrKGxp
bmspOgogICAgICAgICBtb3VzZV9jaGFpbiA9IHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgKQEAg
LTExNSw2ICsxMTAsODUgQEAgZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwp
OgogICAgIFBvbGwoc2Vzc2lvbiwgbWVzc2FnZT1lcnJvcl9tZXNzYWdlKS51bnRpbChsYW1iZGEg
czogcy51cmwgPT0gZGVzdGluYXRpb24pCiAKIAorZGVmIHRlc3RfcGVuX3BvaW50ZXJfcHJvcGVy
dGllcyhzZXNzaW9uLCB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCBwZW5fY2hhaW4pOgorICAg
IHBvaW50ZXJBcmVhID0gc2Vzc2lvbi5maW5kLmNzcygiI3BvaW50ZXJBcmVhIiwgYWxsPUZhbHNl
KQorICAgIGNlbnRlciA9IGdldF9pbnZpZXdfY2VudGVyKHBvaW50ZXJBcmVhLnJlY3QsIGdldF92
aWV3cG9ydF9yZWN0KHNlc3Npb24pKQorICAgIHBlbl9jaGFpbi5wb2ludGVyX21vdmUoMCwgMCwg
b3JpZ2luPXBvaW50ZXJBcmVhKSBcCisgICAgICAgIC5wb2ludGVyX2Rvd24ocHJlc3N1cmU9MC4z
NiwgdGlsdF94PS03MiwgdGlsdF95PTksIHR3aXN0PTg2KSBcCisgICAgICAgIC5wb2ludGVyX21v
dmUoMTAsIDEwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBvaW50ZXJfdXAoKSBc
CisgICAgICAgIC5wb2ludGVyX21vdmUoODAsIDUwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAg
ICAgICAgLnBlcmZvcm0oKQorICAgIGV2ZW50cyA9IGdldF9ldmVudHMoc2Vzc2lvbikKKyAgICBh
c3NlcnQgbGVuKGV2ZW50cykgPT0gMTAKKyAgICBldmVudF90eXBlcyA9IFtlWyJ0eXBlIl0gZm9y
IGUgaW4gZXZlbnRzXQorICAgIGFzc2VydCBbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIs
ICJwb2ludGVybW92ZSIsICJwb2ludGVyZG93biIsCisgICAgICAgICAgICAicG9pbnRlcm92ZXIi
LCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJtb3ZlIiwgInBvaW50ZXJ1cCIsCisgICAgICAgICAg
ICAicG9pbnRlcm91dCIsICJwb2ludGVybGVhdmUiXSA9PSBldmVudF90eXBlcworICAgIGFzc2Vy
dCBldmVudHNbM11bInR5cGUiXSA9PSAicG9pbnRlcmRvd24iCisgICAgYXNzZXJ0IGV2ZW50c1sz
XVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJdLCBhYnM9MS4wKQorICAgIGFz
c2VydCBldmVudHNbM11bInBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJz
PTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEiCisg
ICAgYXNzZXJ0IGV2ZW50c1szXVsicG9pbnRlclR5cGUiXSA9PSAicGVuIgorICAgICMgVGhlIGRl
ZmF1bHQgdmFsdWUgb2Ygd2lkdGggYW5kIGhlaWdodCBmb3IgbW91c2UgYW5kIHBlbiBpbnB1dHMg
aXMgMQorICAgIGFzc2VydCByb3VuZChldmVudHNbM11bIndpZHRoIl0sIDIpID09IDEKKyAgICBh
c3NlcnQgcm91bmQoZXZlbnRzWzNdWyJoZWlnaHQiXSwgMikgPT0gMQorICAgIGFzc2VydCByb3Vu
ZChldmVudHNbM11bInByZXNzdXJlIl0sIDIpID09IDAuMzYKKyAgICBhc3NlcnQgZXZlbnRzWzNd
WyJ0aWx0WCJdID09IC03MgorICAgIGFzc2VydCBldmVudHNbM11bInRpbHRZIl0gPT0gOQorICAg
IGFzc2VydCBldmVudHNbM11bInR3aXN0Il0gPT0gODYKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJ0
eXBlIl0gPT0gInBvaW50ZXJtb3ZlIgorICAgIGFzc2VydCBldmVudHNbNl1bInBhZ2VYIl0gPT0g
cHl0ZXN0LmFwcHJveChjZW50ZXJbIngiXSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRz
WzZdWyJwYWdlWSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0rMTAsIGFicz0xLjApCisg
ICAgYXNzZXJ0IGV2ZW50c1s2XVsidGFyZ2V0Il0gPT0gInBvaW50ZXJBcmVhIgorICAgIGFzc2Vy
dCBldmVudHNbNl1bInBvaW50ZXJUeXBlIl0gPT0gInBlbiIKKyAgICBhc3NlcnQgcm91bmQoZXZl
bnRzWzZdWyJ3aWR0aCJdLCAyKSA9PSAxCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1s2XVsiaGVp
Z2h0Il0sIDIpID09IDEKKyAgICAjIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHByZXNzdXJlIGZvciBh
bGwgaW5wdXRzIGlzIDAuNSwgb3RoZXIgcHJvcGVydGllcyBhcmUgMAorICAgIGFzc2VydCByb3Vu
ZChldmVudHNbNl1bInByZXNzdXJlIl0sIDIpID09IDAuNQorICAgIGFzc2VydCBldmVudHNbNl1b
InRpbHRYIl0gPT0gMAorICAgIGFzc2VydCBldmVudHNbNl1bInRpbHRZIl0gPT0gMAorICAgIGFz
c2VydCBldmVudHNbNl1bInR3aXN0Il0gPT0gMAorCisKK2RlZiB0ZXN0X3RvdWNoX3BvaW50ZXJf
cHJvcGVydGllcyhzZXNzaW9uLCB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCB0b3VjaF9jaGFp
bik6CisgICAgcG9pbnRlckFyZWEgPSBzZXNzaW9uLmZpbmQuY3NzKCIjcG9pbnRlckFyZWEiLCBh
bGw9RmFsc2UpCisgICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50ZXIocG9pbnRlckFyZWEucmVj
dCwgZ2V0X3ZpZXdwb3J0X3JlY3Qoc2Vzc2lvbikpCisgICAgdG91Y2hfY2hhaW4ucG9pbnRlcl9t
b3ZlKDAsIDAsIG9yaWdpbj1wb2ludGVyQXJlYSkgXAorICAgICAgICAucG9pbnRlcl9kb3duKHdp
ZHRoPTIzLCBoZWlnaHQ9MzEsIHByZXNzdXJlPTAuNzgsIHRpbHRfeD0yMSwgdGlsdF95PS04LCB0
d2lzdD0zNTUpIFwKKyAgICAgICAgLnBvaW50ZXJfbW92ZSgxMCwgMTAsIG9yaWdpbj1wb2ludGVy
QXJlYSwgd2lkdGg9MzksIGhlaWdodD0zNSwgcHJlc3N1cmU9MC45MSwgdGlsdF94PS0xOSwgdGls
dF95PTYyLCB0d2lzdD0zNDUpIFwKKyAgICAgICAgLnBvaW50ZXJfdXAoKSBcCisgICAgICAgIC5w
b2ludGVyX21vdmUoODAsIDUwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBlcmZv
cm0oKQorICAgIGV2ZW50cyA9IGdldF9ldmVudHMoc2Vzc2lvbikKKyAgICBhc3NlcnQgbGVuKGV2
ZW50cykgPT0gNworICAgIGV2ZW50X3R5cGVzID0gW2VbInR5cGUiXSBmb3IgZSBpbiBldmVudHNd
CisgICAgYXNzZXJ0IFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJkb3du
IiwgInBvaW50ZXJtb3ZlIiwKKyAgICAgICAgICAgICJwb2ludGVydXAiLCAicG9pbnRlcm91dCIs
ICJwb2ludGVybGVhdmUiXSA9PSBldmVudF90eXBlcworICAgIGFzc2VydCBldmVudHNbMl1bInR5
cGUiXSA9PSAicG9pbnRlcmRvd24iCisgICAgYXNzZXJ0IGV2ZW50c1syXVsicGFnZVgiXSA9PSBw
eXRlc3QuYXBwcm94KGNlbnRlclsieCJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbMl1b
InBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzPTEuMCkKKyAgICBhc3Nl
cnQgZXZlbnRzWzJdWyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50
c1syXVsicG9pbnRlclR5cGUiXSA9PSAidG91Y2giCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1sy
XVsid2lkdGgiXSwgMikgPT0gMjMKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJoZWlnaHQi
XSwgMikgPT0gMzEKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJwcmVzc3VyZSJdLCAyKSA9
PSAwLjc4CisgICAgYXNzZXJ0IGV2ZW50c1syXVsidGlsdFgiXSA9PSAyMQorICAgIGFzc2VydCBl
dmVudHNbMl1bInRpbHRZIl0gPT0gLTgKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJ0d2lzdCJdID09
IDM1NQorICAgIGFzc2VydCBldmVudHNbM11bInR5cGUiXSA9PSAicG9pbnRlcm1vdmUiCisgICAg
YXNzZXJ0IGV2ZW50c1szXVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJdKzEw
LCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbM11bInBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJv
eChjZW50ZXJbInkiXSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0YXJnZXQi
XSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50c1szXVsicG9pbnRlclR5cGUiXSA9
PSAidG91Y2giCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1szXVsid2lkdGgiXSwgMikgPT0gMzkK
KyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzNdWyJoZWlnaHQiXSwgMikgPT0gMzUKKyAgICBhc3Nl
cnQgcm91bmQoZXZlbnRzWzNdWyJwcmVzc3VyZSJdLCAyKSA9PSAwLjkxCisgICAgYXNzZXJ0IGV2
ZW50c1szXVsidGlsdFgiXSA9PSAtMTkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WSJdID09
IDYyCisgICAgYXNzZXJ0IGV2ZW50c1szXVsidHdpc3QiXSA9PSAzNDUKKworCiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoImRyYWdfZHVyYXRpb24iLCBbMCwgMzAwLCA4MDBdKQogQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJkeCwgZHkiLCBbCiAgICAgKDIwLCAwKSwgKDAsIDE1KSwgKDEwLCAx
NSksICgtMjAsIDApLCAoMTAsIC0xNSksICgtMTAsIC0xNSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50
ZXJfY29udGV4dG1lbnUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRtZW51LnB5CmluZGV4IGZkYTNm
MThiYmMxYy4uNTBmNjg0MzI3ZjJhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRtZW51
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVy
Zm9ybV9hY3Rpb25zL3BvaW50ZXJfY29udGV4dG1lbnUucHkKQEAgLTEsNyArMSw4IEBACiBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQua2V5cyBpbXBv
cnQgS2V5cwotZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0
IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBw
b3J0LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMg
aW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2RpZmll
ciwgcHJvcCIsIFsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2lu
dGVyX2RibGNsaWNrLnB5CmluZGV4IDhjODljZWY1ZjM4MC4uNWJlNjM1YTRkNTYwIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1f
YWN0aW9ucy9wb2ludGVyX2RibGNsaWNrLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkK
QEAgLTEsNyArMSw4IEBACiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rp
b25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0
ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRl
cworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbGlja19wYXVzZSIsIFswLCAyMDBdKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGljay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfbW9kaWZpZXJfY2xp
Y2sucHkKaW5kZXggYmE4MWY2ZDA5MGIyLi4yOGM0MDg2ZTBmOGMgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3Bv
aW50ZXJfbW9kaWZpZXJfY2xpY2sucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGljay5w
eQpAQCAtMSw3ICsxLDggQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2Fj
dGlvbnMuc3VwcG9ydC5rZXlzIGltcG9ydCBLZXlzCi1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9u
cy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVz
dHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCitmcm9t
IHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoIm1vZGlmaWVyLCBwcm9wIiwgWwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRl
cl9vcmlnaW4ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX29yaWdpbi5weQppbmRleCA0YzlkYzg3OWU5OTkuLmM0
ZTVkYjdhMDAxNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9p
bnRlcl9vcmlnaW4ucHkKQEAgLTMsMjMgKzMsMjUgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJk
cml2ZXIgaW1wb3J0IE1vdmVUYXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbgogCiBmcm9tIHRlc3Rz
LnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0Lm1vdXNlIGltcG9ydCBnZXRfaW52aWV3X2NlbnRlciwg
Z2V0X3ZpZXdwb3J0X3JlY3QKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKLWRlZiBvcmlnaW5fZG9jKGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6Ci0gICAg
cmV0dXJuIGlubGluZSgiIiIKLSAgICAgIDxkaXYgaWQ9Im91dGVyIiBzdHlsZT0iezF9IgotICAg
ICAgICAgICBvbm1vdXNlbW92ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xpZW50WCwg
eTogZXZlbnQuY2xpZW50WX19Ij4KLSAgICAgICAgPGRpdiBpZD0iaW5uZXIiIHN0eWxlPSJ7MH0i
PjwvZGl2PgotICAgICAgPC9kaXY+Ci0gICAgIiIiLmZvcm1hdChpbm5lcl9zdHlsZSwgb3V0ZXJf
c3R5bGUpKQorQHB5dGVzdC5maXh0dXJlCitkZWYgb3JpZ2luX2RvYyhpbmxpbmUpOgorICAgIGRl
ZiBvcmlnaW5fZG9jKGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6CisgICAgICAgIHJldHVy
biBpbmxpbmUoIiIiCisgICAgICAgICAgPGRpdiBpZD0ib3V0ZXIiIHN0eWxlPSJ7MX0iCisgICAg
ICAgICAgICAgICBvbm1vdXNlbW92ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xpZW50
WCwgeTogZXZlbnQuY2xpZW50WX19Ij4KKyAgICAgICAgICAgIDxkaXYgaWQ9ImlubmVyIiBzdHls
ZT0iezB9Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgIiIiLmZvcm1hdChpbm5l
cl9zdHlsZSwgb3V0ZXJfc3R5bGUpKQorICAgIHJldHVybiBvcmlnaW5fZG9jCiAKIAogZGVmIGdl
dF9jbGlja19jb29yZGluYXRlcyhzZXNzaW9uKToKICAgICByZXR1cm4gc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIHdpbmRvdy5jb29yZHM7IikKIAogCi1kZWYgdGVzdF92aWV3cG9ydF9p
bnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3Rfdmlld3BvcnRfaW5zaWRlKHNl
c3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBwb2ludCA9IHsieCI6IDUwLCAi
eSI6IDUwfQogCiAgICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMTAwcHg7IGhl
aWdodDogNTBweDsgYmFja2dyb3VuZDogZ3JlZW47IikKQEAgLTM5LDcgKzQxLDcgQEAgZGVmIHRl
c3Rfdmlld3BvcnRfb3V0c2lkZShzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgICAgICAgICAu
cGVyZm9ybSgpCiAKIAotZGVmIHRlc3RfcG9pbnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hh
aW4pOgorZGVmIHRlc3RfcG9pbnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdp
bl9kb2MpOgogICAgIHN0YXJ0X3BvaW50ID0geyJ4IjogNTAsICJ5IjogNTB9CiAgICAgb2Zmc2V0
ID0geyJ4IjogMTAsICJ5IjogNX0KIApAQCAtNjEsNyArNjMsNyBAQCBkZWYgdGVzdF9wb2ludGVy
X291dHNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgICAgICAgICAgLnBlcmZvcm0oKQog
CiAKLWRlZiB0ZXN0X2VsZW1lbnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluKToK
K2RlZiB0ZXN0X2VsZW1lbnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmln
aW5fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9yaWdpbl9kb2MoIndpZHRoOiAxMDBweDsgaGVp
Z2h0OiA1MHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiKQogICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQu
Y3NzKCIjaW5uZXIiLCBhbGw9RmFsc2UpCiAgICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50ZXIo
ZWxlbS5yZWN0LCBnZXRfdmlld3BvcnRfcmVjdChzZXNzaW9uKSkKQEAgLTc1LDcgKzc3LDcgQEAg
ZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAg
IGFzc2VydCBjbGlja19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdLCBh
YnMgPSAxLjApCiAKIAotZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0aF9vZmZzZXQo
c2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0
aF9vZmZzZXQoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHNlc3Npb24u
dXJsID0gb3JpZ2luX2RvYygid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6
IGdyZWVuOyIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxz
ZSkKICAgICBjZW50ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihlbGVtLnJlY3QsIGdldF92aWV3cG9y
dF9yZWN0KHNlc3Npb24pKQpAQCAtODksNyArOTEsNyBAQCBkZWYgdGVzdF9lbGVtZW50X2NlbnRl
cl9wb2ludF93aXRoX29mZnNldChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgYXNzZXJ0IGNs
aWNrX2Nvb3Jkc1sieSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0gKyAxNSwgYWJzID0g
MS4wKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfaW5fdmlld19jZW50ZXJfcG9pbnRfcGFydGx5X3Zp
c2libGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9pbl92aWV3X2Nl
bnRlcl9wb2ludF9wYXJ0bHlfdmlzaWJsZShzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2Rv
Yyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCIiIndpZHRoOiAxMDBweDsgaGVpZ2h0
OiA1MHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAtNTBweDsgdG9wOiAtMjVweDsiIiIpCiAgICAg
ZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKQEAgLTEwNCw3ICsx
MDYsNyBAQCBkZWYgdGVzdF9lbGVtZW50X2luX3ZpZXdfY2VudGVyX3BvaW50X3BhcnRseV92aXNp
YmxlKHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICBhc3NlcnQgY2xpY2tfY29vcmRzWyJ5Il0g
PT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzID0gMS4wKQogCiAKLWRlZiB0ZXN0X2Vs
ZW1lbnRfbGFyZ2VyX3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRl
c3RfZWxlbWVudF9sYXJnZXJfdGhhbl92aWV3cG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3Jp
Z2luX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMzAwdnc7IGhl
aWdodDogMzAwdmg7IGJhY2tncm91bmQ6IGdyZWVuOyIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmlu
ZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKICAgICBjZW50ZXIgPSBnZXRfaW52aWV3X2NlbnRl
cihlbGVtLnJlY3QsIGdldF92aWV3cG9ydF9yZWN0KHNlc3Npb24pKQpAQCAtMTE4LDcgKzEyMCw3
IEBAIGRlZiB0ZXN0X2VsZW1lbnRfbGFyZ2VyX3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91c2Vf
Y2hhaW4pOgogICAgIGFzc2VydCBjbGlja19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNl
bnRlclsieSJdLCBhYnMgPSAxLjApCiAKIAotZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Zp
ZXdfcG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CitkZWYgdGVzdF9lbGVtZW50X291dHNpZGVf
b2Zfdmlld19wb3J0KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBzZXNz
aW9uLnVybCA9IG9yaWdpbl9kb2MoIiIid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tn
cm91bmQ6IGdyZWVuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7IGxlZnQ6IC0yMDBweDsgdG9wOiAtMTAwcHg7IiIiKQogICAgIGVsZW0gPSBzZXNz
aW9uLmZpbmQuY3NzKCIjaW5uZXIiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVy
X3BhdXNlX2RibGNsaWNrLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxjbGljay5weQppbmRleCA4
NTY3OWYzNjE0YTguLmQ0NjE3OGExZDY1MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9k
YmxjbGljay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3BhdXNlX2RibGNsaWNrLnB5CkBAIC0xLDUgKzEs
NiBAQAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5tb3VzZSBpbXBvcnQgZ2V0
X2ludmlld19jZW50ZXIsIGdldF92aWV3cG9ydF9yZWN0Ci1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0
aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20g
dGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCitm
cm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogX0RCTENMSUNL
X0lOVEVSVkFMID0gNjQwCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfdHJpcGxlY2xpY2sucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy9wb2ludGVyX3RyaXBsZWNsaWNrLnB5CmluZGV4IDgxZDUxYmUxYTdlNi4uODIzOWZjMmE2
MDYyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3RyaXBsZWNsaWNrLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50
ZXJfdHJpcGxlY2xpY2sucHkKQEAgLTEsMTMgKzEsMTMgQEAKLWZyb20gdGVzdHMucGVyZm9ybV9h
Y3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJv
bSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMK
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGlu
YXRlcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCitmcm9tIHRlc3Rz
LnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogbG90c19vZl90ZXh0ID0gIkxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNl
ZCBkbyBlaXVzbW9kIHRlbXBvciAiXAogICAgICAgICAgICAgICAgImluY2lkaWR1bnQgdXQgbGFi
b3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlz
IG5vc3RydWQgIlwKICAgICAgICAgICAgICAgICJleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlz
IG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4iCiAKIAotZGVmIHRlc3Rf
dHJpcGxlY2xpY2tfYXRfY29vcmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRl
c3RfdHJpcGxlY2xpY2tfYXRfY29vcmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIGlubGlu
ZSk6CiAgICAgIiIiCiAgICAgICAgIFRoaXMgdGVzdCBkb2VzIGEgdHJpcGxlIGNsaWNrIG9uIGEg
Y29vcmRpbmF0ZS4gT24gZGVza3RvcCBwbGF0Zm9ybXMKICAgICAgICAgdGhpcyB3aWxsIHNlbGVj
dCBhIHBhcmFncmFwaC4gT24gbW9iaWxlIHRoaXMgd2lsbCBub3QgaGF2ZSB0aGUgc2FtZQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJm
b3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5CmluZGV4IDJk
MzhlMWRmZjg3Ni4uOWU4N2ViZmFjMWQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L2tleXMucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5CkBAIC0yMSw3ICsyMSw2IEBAIGltcG9ydCBzeXMKIAog
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIGZyb20gaW5zcGVjdCBpbXBvcnQg
Z2V0bWVtYmVycwotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQogCiBjbGFzcyBLZXlzKG9iamVj
dCk6CiAgICAgIiIiCkBAIC0xMDcsNyArMTA2LDcgQEAgY2xhc3MgS2V5cyhvYmplY3QpOgogICAg
IFJfREVMRVRFID0gdSJcdUUwNUQiCiAKIAotQUxMX0tFWVMgPSBnZXRtZW1iZXJzKEtleXMsIGxh
bWJkYSB4OiB0eXBlKHgpID09IHRleHRfdHlwZSkKK0FMTF9LRVlTID0gZ2V0bWVtYmVycyhLZXlz
LCBsYW1iZGEgeDogdHlwZSh4KSA9PSBzdHIpCiAKIEFMTF9FVkVOVFMgPSBPcmRlcmVkRGljdCgK
ICAgICBbCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQvcmVm
aW5lLnB5CmluZGV4IGQ1ZDI0ZTkzNGY2MS4uMzVjOTYyYjllY2JmIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9z
dXBwb3J0L3JlZmluZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjcsMTIgKzI3
LDMgQEAgZGVmIGdldF9rZXlzKGlucHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAgZWxz
ZToKICAgICAgICAgcmV0dXJuIHJ2Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6Ci0g
ICAgIiIiRmlsdGVyIGBzb3VyY2VgIGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBg
ZGAgZGljdC4KLQotICAgIDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgotICAg
IDpwYXJhbSBkOiBkaWN0aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcu
Ci0gICAgIiIiCi0gICAgcmV0dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Bl
cmZvcm1fYWN0aW9ucy9zdXBwb3J0L3Rlc3RfYWN0aW9uc19wb2ludGVyX3dkc3BlYy5odG1sIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlv
bnMvc3VwcG9ydC90ZXN0X2FjdGlvbnNfcG9pbnRlcl93ZHNwZWMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYxZmQ5YjJkYTNmOAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9h
Y3Rpb25zL3N1cHBvcnQvdGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwKQEAgLTAsMCAr
MSwxMDIgQEAKK++7vzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3QgQWN0aW9uczwvdGl0bGU+CisgICAgPHN0eWxlPgor
ICAgICAgZGl2IHsgcGFkZGluZzowcHg7IG1hcmdpbjogMHB4OyB9CisgICAgICAjdHJhY2tQb2lu
dGVyIHsgcG9zaXRpb246IGZpeGVkOyB9CisgICAgICAjcmVzdWx0Q29udGFpbmVyIHsgd2lkdGg6
IDYwMHB4OyBoZWlnaHQ6IDYwcHg7IH0KKyAgICAgIC5hcmVhIHsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDUwcHg7IGJhY2tncm91bmQtY29sb3I6ICNjY2M7IH0KKyAgICA8L3N0eWxlPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgdmFyIGVscyA9IHt9OworICAg
ICAgICB2YXIgYWxsRXZlbnRzID0geyBldmVudHM6IFtdIH07CisgICAgICAgIGZ1bmN0aW9uIGRp
c3BsYXlNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJldmVudHMiKS5pbm5lckhUTUwgPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9wPiI7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhcHBlbmRNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJldmVudHMiKS5pbm5lckhUTUwgKz0gIjxw
PiIgKyBtZXNzYWdlICsgIjwvcD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVj
b3JkUG9pbnRlckV2ZW50KGV2ZW50KSB7CisgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJj
b250ZXh0bWVudSIpIHsKKyAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAg
ICAgICAgfQorICAgICAgICAgIGFsbEV2ZW50cy5ldmVudHMucHVzaCh7CisgICAgICAgICAgICAi
dHlwZSI6IGV2ZW50LnR5cGUsCisgICAgICAgICAgICAiYnV0dG9uIjogZXZlbnQuYnV0dG9uLAor
ICAgICAgICAgICAgImJ1dHRvbnMiOiBldmVudC5idXR0b25zLAorICAgICAgICAgICAgInBhZ2VY
IjogZXZlbnQucGFnZVgsCisgICAgICAgICAgICAicGFnZVkiOiBldmVudC5wYWdlWSwKKyAgICAg
ICAgICAgICJjdHJsS2V5IjogZXZlbnQuY3RybEtleSwKKyAgICAgICAgICAgICJtZXRhS2V5Ijog
ZXZlbnQubWV0YUtleSwKKyAgICAgICAgICAgICJhbHRLZXkiOiBldmVudC5hbHRLZXksCisgICAg
ICAgICAgICAic2hpZnRLZXkiOiBldmVudC5zaGlmdEtleSwKKyAgICAgICAgICAgICJ0YXJnZXQi
OiBldmVudC50YXJnZXQuaWQsCisgICAgICAgICAgICAicG9pbnRlclR5cGUiOiBldmVudC5wb2lu
dGVyVHlwZSwKKyAgICAgICAgICAgICJ3aWR0aCI6IGV2ZW50LndpZHRoLAorICAgICAgICAgICAg
ImhlaWdodCI6IGV2ZW50LmhlaWdodCwKKyAgICAgICAgICAgICJwcmVzc3VyZSI6IGV2ZW50LnBy
ZXNzdXJlLAorICAgICAgICAgICAgInRhbmdlbnRpYWxQcmVzc3VyZSI6IGV2ZW50LnRhbmdlbnRp
YWxQcmVzc3VyZSwKKyAgICAgICAgICAgICJ0aWx0WCI6IGV2ZW50LnRpbHRYLAorICAgICAgICAg
ICAgInRpbHRZIjogZXZlbnQudGlsdFksCisgICAgICAgICAgICAidHdpc3QiOiBldmVudC50d2lz
dCwKKyAgICAgICAgICAgICJhbHRpdHVkZUFuZ2xlIjogZXZlbnQuYWx0aXR1ZGVBbmdsZSwKKyAg
ICAgICAgICAgICJhemltdXRoQW5nbGUiOiBldmVudC5hemltdXRoQW5nbGUKKyAgICAgICAgICB9
KTsKKyAgICAgICAgICBhcHBlbmRNZXNzYWdlKGV2ZW50LnR5cGUgKyAiICIgKworICAgICAgICAg
ICAgICAiYnV0dG9uOiAiICsgZXZlbnQuYnV0dG9uICsgIiwgIiArCisgICAgICAgICAgICAgICJw
YWdlWDogIiArIGV2ZW50LnBhZ2VYICsgIiwgIiArCisgICAgICAgICAgICAgICJwYWdlWTogIiAr
IGV2ZW50LnBhZ2VZICsgIiwgIiArCisgICAgICAgICAgICAgICJidXR0b246ICIgKyBldmVudC5i
dXR0b24gKyAiLCAiICsKKyAgICAgICAgICAgICAgImJ1dHRvbnM6ICIgKyBldmVudC5idXR0b25z
ICsgIiwgIiArCisgICAgICAgICAgICAgICJjdHJsS2V5OiAiICsgZXZlbnQuY3RybEtleSArICIs
ICIgKworICAgICAgICAgICAgICAiYWx0S2V5OiAiICsgZXZlbnQuYWx0S2V5ICsgIiwgIiArCisg
ICAgICAgICAgICAgICJtZXRhS2V5OiAiICsgZXZlbnQubWV0YUtleSArICIsICIgKworICAgICAg
ICAgICAgICAic2hpZnRLZXk6ICIgKyBldmVudC5zaGlmdEtleSArICIsICIgKworICAgICAgICAg
ICAgICAidGFyZ2V0IGlkOiAiICsgZXZlbnQudGFyZ2V0LmlkICsgIiwgIiArCisgICAgICAgICAg
ICAgICJwb2ludGVyVHlwZTogIiArIGV2ZW50LnBvaW50ZXJUeXBlICsgIiwgIiArCisgICAgICAg
ICAgICAgICJ3aWR0aDogIiArIGV2ZW50LndpZHRoICsgIiwgIiArCisgICAgICAgICAgICAgICJo
ZWlnaHQ6ICIgKyBldmVudC5oZWlnaHQgKyAiLCAiICsKKyAgICAgICAgICAgICAgInByZXNzdXJl
OiAiICsgZXZlbnQucHJlc3N1cmUgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRhbmdlbnRpYWxQ
cmVzc3VyZTogIiArIGV2ZW50LnRhbmdlbnRpYWxQcmVzc3VyZSArICIsICIgKworICAgICAgICAg
ICAgICAidGlsdFg6ICIgKyBldmVudC50aWx0WCArICIsICIgKworICAgICAgICAgICAgICAidGls
dFk6ICIgKyBldmVudC50aWx0WSArICIsICIgKworICAgICAgICAgICAgICAidHdpc3Q6ICIgKyBl
dmVudC50d2lzdCArICIsICIgKworICAgICAgICAgICAgICAiYWx0aXR1ZGVBbmdsZTogIiArIGV2
ZW50LmFsdGl0dWRlQW5nbGUgKyAiLCAiICsKKyAgICAgICAgICAgICAgImF6aW11dGhBbmdsZTog
IiArIGV2ZW50LmF6aW11dGhBbmdsZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBy
ZXNldEV2ZW50cygpIHsKKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRzLmxlbmd0aCA9IDA7Cisg
ICAgICAgICAgZGlzcGxheU1lc3NhZ2UoIiIpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIHZhciBwb2ludGVyQXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb2ludGVy
QXJlYSIpOworICAgICAgICAgIHBvaW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJk
b3duIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVu
dExpc3RlbmVyKCJwb2ludGVybW92ZSIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAg
cG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgcmVjb3JkUG9pbnRlckV2
ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3Zl
ciIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEuYWRkRXZlbnRM
aXN0ZW5lcigicG9pbnRlcmVudGVyIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBw
b2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0IiwgcmVjb3JkUG9pbnRlckV2
ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVh
dmUiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0cmFja1BvaW50ZXIiIGNsYXNzPSJibG9jayI+PC9k
aXY+CisgIDxkaXY+CisgICAgPGgyPlBvaW50ZXJSZXBvcnRlcjwvaDI+CisgICAgPGRpdiBpZD0i
cG9pbnRlckFyZWEiIGNsYXNzPSJhcmVhIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYg
aWQ9InJlc3VsdENvbnRhaW5lciI+CisgICAgPGgyPkV2ZW50czwvaDI+CisgICAgPGRpdiBpZD0i
ZXZlbnRzIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9u
cy93aGVlbC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cGVyZm9ybV9hY3Rpb25zL3doZWVsLnB5CmluZGV4IGZjODRmMmYyZTAxNC4uNjc3MzQ4MDBiMTlk
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weQpAQCAtMiw4ICsyLDkg
QEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoV2lu
ZG93RXhjZXB0aW9uCiAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5l
IGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlv
bnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcworZnJvbSB0ZXN0cy5zdXBw
b3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3RfbnVsbF9yZXNwb25z
ZV92YWx1ZShzZXNzaW9uLCB3aGVlbF9jaGFpbik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQpp
bmRleCAzNDFlMDY5ZjdiYjYuLjg5Mjk2ZDJiMTQ2YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21k
LnB5CkBAIC0xLDExICsxLDggQEAKLWltcG9ydCBiYXNlNjQKK2Zyb20gYmFzZTY0IGltcG9ydCBk
ZWNvZGVieXRlcwogCiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfYmlu
YXJ5Ci0KIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZG9fcHJpbnQoc2Vzc2lvbiwgb3B0aW9ucyk6CkBAIC0yNywxMSArMjQsMTEgQEAgZGVm
IHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiBk
ZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAg
cmVzcG9uc2UgPSBkb19wcmludChzZXNzaW9uLCB7fSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlKQotICAgIHBkZiA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZW5zdXJlX2JpbmFy
eSh2YWx1ZSkpCisgICAgcGRmID0gZGVjb2RlYnl0ZXModmFsdWUuZW5jb2RlKCkpCiAgICAgYXNz
ZXJ0X3BkZihwZGYpCiAKIAotZGVmIHRlc3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKK2RlZiB0
ZXN0X2h0bWxfZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiVGVzdCIpCiAKICAgICByZXNwb25zZSA9IGRvX3ByaW50KHNlc3Npb24sIHsKQEAgLTQw
LDcgKzM3LDcgQEAgZGVmIHRlc3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKICAgICAgICAgInNo
cmlua1RvRml0IjogRmFsc2UKICAgICB9KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCi0gICAgcGRmID0gYmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5KHZhbHVl
KSkKKyAgICBwZGYgPSBkZWNvZGVieXRlcyh2YWx1ZS5lbmNvZGUoKSkKICAgICAjIFRPRE86IFRl
c3QgdGhhdCB0aGUgb3V0cHV0IGlzIHJlYXNvbmFibGUKICAgICBhc3NlcnRfcGRmKHBkZikKIApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
cmludC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3ByaW50L3VzZXJfcHJvbXB0cy5weQppbmRleCBhM2Y3YTEwYWMzNzIuLjBhMjli
NTE4YWM5YSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9wcmludC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC91c2VyX3Byb21wdHMucHkKQEAgLTEsMTcgKzEs
MTQgQEAKICMgTUVUQTogdGltZW91dD1sb25nCi1pbXBvcnQgYmFzZTY0Citmcm9tIGJhc2U2NCBp
bXBvcnQgZGVjb2RlYnl0ZXMKIAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHNpeCBpbXBvcnQgZW5z
dXJlX2JpbmFyeQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Rp
YWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGZyb20gLnByaW50Y21kIGltcG9ydCBkb19wcmlu
dCwgYXNzZXJ0X3BkZgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC0yMCw3ICsxNyw3IEBAIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAg
ICAgICAgIHJlc3BvbnNlID0gZG9fcHJpbnQoc2Vzc2lvbiwge30pCiAgICAgICAgIHZhbHVlID0g
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKLSAgICAgICAgcGRmID0gYmFzZTY0LmRlY29kZXN0
cmluZyhlbnN1cmVfYmluYXJ5KHZhbHVlKSkKKyAgICAgICAgcGRmID0gZGVjb2RlYnl0ZXModmFs
dWUuZW5jb2RlKCkpCiAgICAgICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9uLCBleHBl
Y3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQogCiAgICAgICAg
IGFzc2VydF9wZGYocGRmKQpAQCAtMjksNyArMjYsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC00NCw3
ICs0MSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0Lz4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC9yZWZyZXNoLnB5CmluZGV4IGVl
ZjQxMzAxN2U1ZS4uMzM1OTVkMGZmNzFhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQpA
QCAtMiw3ICsyLDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBv
cnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9u
CiAKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBA
IC0xMSw3ICsxMCw3IEBAIGRlZiByZWZyZXNoKHNlc3Npb24pOgogICAgICAgICAiUE9TVCIsICJz
ZXNzaW9uL3tzZXNzaW9uX2lkfS9yZWZyZXNoIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSkKIAog
Ci1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9y
ZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8ZGl2PiIpCiAKICAgICByZXNwb25zZSA9IHJlZnJlc2goc2Vzc2lvbikKQEAgLTI0LDcgKzIz
LDcgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dp
bmRvdyk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAK
LWRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKK2Rl
ZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpbmxpbmUp
OgogICAgIHVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKIAogICAgIHNlc3Npb24udXJsID0g
dXJsCkBAIC00MCw3ICszOSw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnQgc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFs
bD1GYWxzZSkKIAogCi1kZWYgdGVzdF9iYXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2ljKHNl
c3Npb24sIGlubGluZSk6CiAgICAgdXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogCiAgICAg
c2Vzc2lvbi51cmwgPSB1cmwKQEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfYmFzaWMoc2Vzc2lv
bik6CiAgICAgYXNzZXJ0IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCiAKIAot
ZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21p
c3NlZF9iZWZvcmV1bmxvYWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmxfYmVmb3JldW5sb2Fk
ID0gaW5saW5lKCIiIgogICAgICAgPGlucHV0IHR5cGU9InRleHQiPgogICAgICAgPHNjcmlwdD4K
QEAgLTc5LDcgKzc4LDcgQEAgZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9u
KToKICAgICBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIAogCi1kZWYgdGVz
dF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgorZGVmIHRlc3RfaGlzdG9yeV9wdXNo
c3RhdGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBwdXNoc3RhdGVfcGFnZSA9IGlubGluZSgiIiIK
ICAgICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1bmN0aW9uIHB1c2hTdGF0ZSgpIHsKQEAgLTExMSw3
ICsxMTAsNyBAQCBkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgogICAg
ICAgICBlbGVtZW50LnByb3BlcnR5KCJpZCIpCiAKIAotZGVmIHRlc3RfcmVmcmVzaF9zd2l0Y2hl
c190b19wYXJlbnRfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjcmVhdGVfZnJhbWUpOgorZGVm
IHRlc3RfcmVmcmVzaF9zd2l0Y2hlc190b19wYXJlbnRfYnJvd3NpbmdfY29udGV4dChzZXNzaW9u
LCBjcmVhdGVfZnJhbWUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYg
aWQ9Zm9vPiIpCiAKICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShjcmVhdGVfZnJhbWUoKSkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVm
cmVzaC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3JlZnJlc2gvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGI4ZWY0MThlMTE1Zi4uN2U5
NDRiNTNiMDk2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3JlZnJlc2gvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC91c2VyX3Byb21wdHMucHkKQEAgLTQs
NyArNCw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IFN0
YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbgogCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0xNCw3
ICsxMyw3IEBAIGRlZiByZWZyZXNoKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKICAgICAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBA
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8ZGl2IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2Zv
byIsIGFsbD1GYWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogICAgICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rp
b25zL3JlbGVhc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3JlbGVhc2VfYWN0aW9ucy9yZWxlYXNlLnB5CmluZGV4IDFmNDg2Zjc3NTlmZC4uNWRmMWZm
NGJlOTAyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9yZWxlYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3JlbGVhc2UucHkKQEAg
LTIwLDQgKzIwLDQgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX3dpbmRvdyk6CiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IHJlbGVhc2VfYWN0aW9ucyhzZXNzaW9uKQot
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvc2VxdWVu
Y2UucHkKaW5kZXggMmQ4MTZmODA5NGIzLi43NTE0M2Q4NWNhNjAgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3Nl
cXVlbmNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5CkBAIC0xLDYgKzEsNyBAQAogIyBNRVRBOiB0
aW1lb3V0PWxvbmcKIAotZnJvbSB0ZXN0cy5yZWxlYXNlX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUg
aW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5yZWxl
YXNlX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMsIGdldF9rZXlzCitm
cm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBkZWYgdGVz
dF9yZWxlYXNlX25vX2FjdGlvbnNfc2VuZHNfbm9fZXZlbnRzKHNlc3Npb24sIGtleV9yZXBvcnRl
cik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3N1cHBvcnQvcmVmaW5l
LnB5CmluZGV4IDNhNmQ2M2UwNGNlOS4uOTBmNzIyNTg3YzNiIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBw
b3J0L3JlZmluZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjIsMTIgKzIyLDMg
QEAgZGVmIGdldF9rZXlzKGlucHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAgZWxzZToK
ICAgICAgICAgcmV0dXJuIHJ2Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6Ci0gICAg
IiIiRmlsdGVyIGBzb3VyY2VgIGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBgZGAg
ZGljdC4KLQotICAgIDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgotICAgIDpw
YXJhbSBkOiBkaWN0aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcuCi0g
ICAgIiIiCi0gICAgcmV0dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3NlbmRf
YWxlcnRfdGV4dC9zZW5kLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9zZW5kX2FsZXJ0X3RleHQvc2VuZC5weQppbmRleCA1ZGE2NzU5MGRhMzQuLmQ1ODQ2
YWQ1NmIzYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9zZW5kX2FsZXJ0X3RleHQvc2VuZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3NlbmRfYWxlcnRfdGV4dC9zZW5kLnB5CkBAIC00LDEy
ICs0LDExIEBAIGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlv
bgogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQu
c3luYyBpbXBvcnQgUG9sbAogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIHBhZ2Uoc2Vzc2lvbik6
CitkZWYgcGFnZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIi
IgogICAgICAgICA8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdFbnRlciBZ
b3VyIE5hbWU6ICcsICdOYW1lJyk7PC9zY3JpcHQ+CiAgICAgIiIiKQpAQCAtNTUsNyArNTQsNyBA
QCBkZWYgdGVzdF9ub191c2VyX3Byb21wdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImRpYWxvZ190eXBlIiwgWyJhbGVydCIsICJjb25maXJtIl0pCi1kZWYgdGVzdF9h
bGVydF9lbGVtZW50X25vdF9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgZGlhbG9nX3R5cGUpOgorZGVm
IHRlc3RfYWxlcnRfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSwgZGlh
bG9nX3R5cGUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy57fSgn
SGVsbG8nKTs8L3NjcmlwdD4iLmZvcm1hdChkaWFsb2dfdHlwZSkpCiAKICAgICByZXNwb25zZSA9
IHNlbmRfYWxlcnRfdGV4dChzZXNzaW9uLCAiRmVkZXJlciIpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMu
cHkKaW5kZXggMWYwZjFiYzRmZTc3Li44YzdhZTIyYTY3YjUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3RhdHVzL3N0YXR1cy5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0
dXMucHkKQEAgLTEsNyArMSw1IEBACiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBpbXBvcnQgdGV4
dF90eXBlCi0KIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2Vz
cwogCiAKQEAgLTE4LDcgKzE2LDcgQEAgZGVmIHRlc3RfZ2V0X3N0YXR1c19ub19zZXNzaW9uKGh0
dHApOgogICAgICAgICB2YWx1ZSA9IHBhcnNlZF9vYmpbInZhbHVlIl0KIAogICAgICAgICBhc3Nl
cnQgdmFsdWVbInJlYWR5Il0gaW4gW1RydWUsIEZhbHNlXQotICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZSh2YWx1ZVsibWVzc2FnZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKHZhbHVlWyJtZXNzYWdlIl0sIHN0cikKIAogCiBkZWYgdGVzdF9zdGF0dXNfd2l0aF9zZXNz
aW9uX3J1bm5pbmdfb25fZW5kcG9pbnRfbm9kZShzZXNzaW9uKToKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRzLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2Fz
c2VydHMucHkKaW5kZXggM2MzZDY3N2M5MGVjLi5lNjBkNTNiNmM2ZjAgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRz
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9hc3NlcnRzLnB5CkBAIC0xLDggKzEsNiBAQAotaW1wb3J0IGJhc2U2NAogaW1wb3J0IGlt
Z2hkcgogaW1wb3J0IHN0cnVjdAotCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFyeSwgdGV4
dF90eXBlCitmcm9tIGJhc2U2NCBpbXBvcnQgZGVjb2RlYnl0ZXMKIAogZnJvbSB3ZWJkcml2ZXIg
aW1wb3J0IEVsZW1lbnQsIE5vU3VjaEFsZXJ0RXhjZXB0aW9uLCBXZWJEcml2ZXJFeGNlcHRpb24K
IApAQCAtNTIsOCArNTAsOCBAQCBkZWYgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCBlcnJvcl9jb2Rl
KToKICAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzID09IGVycm9yc1tlcnJvcl9jb2RlXQogICAg
IGFzc2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBhc3NlcnQgcmVzcG9uc2UuYm9k
eVsidmFsdWUiXVsiZXJyb3IiXSA9PSBlcnJvcl9jb2RlCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
cmVzcG9uc2UuYm9keVsidmFsdWUiXVsibWVzc2FnZSJdLCB0ZXh0X3R5cGUpCi0gICAgYXNzZXJ0
IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsic3RhY2t0cmFjZSJdLCB0ZXh0X3R5
cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsibWVzc2Fn
ZSJdLCBzdHIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsi
c3RhY2t0cmFjZSJdLCBzdHIpCiAgICAgYXNzZXJ0X3Jlc3BvbnNlX2hlYWRlcnMocmVzcG9uc2Uu
aGVhZGVycykKIAogCkBAIC0yMTQsNiArMjEyLDYgQEAgZGVmIGFzc2VydF9tb3ZlX3RvX2Nvb3Jk
aW5hdGVzKHBvaW50LCB0YXJnZXQsIGV2ZW50cyk6CiAKIGRlZiBhc3NlcnRfcG5nKHNjcmVlbnNo
b3QpOgogICAgICIiIlRlc3QgdGhhdCBzY3JlZW5zaG90IGlzIGEgQmFzZTY0IGVuY29kZWQgUE5H
IGZpbGUuIiIiCi0gICAgaW1hZ2UgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnko
c2NyZWVuc2hvdCkpCisgICAgaW1hZ2UgPSBkZWNvZGVieXRlcyhzY3JlZW5zaG90LmVuY29kZSgp
KQogICAgIG1pbWVfdHlwZSA9IGltZ2hkci53aGF0KCIiLCBpbWFnZSkKICAgICBhc3NlcnQgbWlt
ZV90eXBlID09ICJwbmciLCAiRXhwZWN0ZWQgaW1hZ2UgdG8gYmUgUE5HLCBidXQgaXQgd2FzIHt9
Ii5mb3JtYXQobWltZV90eXBlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9u
LnB5CmluZGV4IDI1YThlYjk1ZDExNC4uOWRhNGJiN2JlNWZmIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVudGljYXRp
b24ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9z
dXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5CkBAIC0xLDE1ICsxLDEyIEBACi1mcm9tIHNpeC5tb3Zl
cy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0
IHVybGVuY29kZQogCiAKLWRlZiBiYXNpY19hdXRoZW50aWNhdGlvbih1c2VybmFtZT1Ob25lLCBw
YXNzd29yZD1Ob25lLCBwcm90b2NvbD0iaHR0cCIpOgotICAgIGZyb20gLmZpeHR1cmVzIGltcG9y
dCBzZXJ2ZXJfY29uZmlnLCB1cmwKLSAgICBidWlsZF91cmwgPSB1cmwoc2VydmVyX2NvbmZpZygp
KQotCitkZWYgYmFzaWNfYXV0aGVudGljYXRpb24odXJsLCB1c2VybmFtZT1Ob25lLCBwYXNzd29y
ZD1Ob25lLCBwcm90b2NvbD0iaHR0cCIpOgogICAgIHF1ZXJ5ID0ge30KIAotICAgIHJldHVybiBi
dWlsZF91cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hdXRoZW50aWNhdGlvbi5weSIsCi0g
ICAgICAgICAgICAgICAgICAgICBxdWVyeT11cmxlbmNvZGUocXVlcnkpLAotICAgICAgICAgICAg
ICAgICAgICAgcHJvdG9jb2w9cHJvdG9jb2wpCisgICAgcmV0dXJuIHVybCgiL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5IiwKKyAgICAgICAgICAgICAgIHF1ZXJ5PXVy
bGVuY29kZShxdWVyeSksCisgICAgICAgICAgICAgICBwcm90b2NvbD1wcm90b2NvbCkKIAogCiBk
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkK
aW5kZXggOTU3YzRkMDU4NjhiLi5kYjMyOTMxMTMxZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9maXh0dXJlcy5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4
dHVyZXMucHkKQEAgLTIsMTUgKzIsMTUgQEAgaW1wb3J0IGNvcHkKIGltcG9ydCBqc29uCiBpbXBv
cnQgb3MKIAoraW1wb3J0IGFzeW5jaW8KIGltcG9ydCBweXRlc3QKIGltcG9ydCB3ZWJkcml2ZXIK
IAotZnJvbSBzaXggaW1wb3J0IHN0cmluZ190eXBlcwotCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIu
cGFyc2UgaW1wb3J0IHVybHVuc3BsaXQKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmx1bnNw
bGl0CiAKIGZyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQgZGVmYXVsdHMKLWZyb20gdGVzdHMuc3Vw
cG9ydC5oZWxwZXJzIGltcG9ydCBjbGVhbnVwX3Nlc3Npb24KK2Zyb20gdGVzdHMuc3VwcG9ydC5o
ZWxwZXJzIGltcG9ydCBjbGVhbnVwX3Nlc3Npb24sIGRlZXBfdXBkYXRlCitmcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBidWlsZF9pbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5odHRw
X3JlcXVlc3QgaW1wb3J0IEhUVFBSZXF1ZXN0CiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBv
cnQgUG9sbAogCkBAIC0zOCw2ICszOCwxNyBAQCBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1l
dGFmdW5jKToKICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJjYXBhYmlsaXRpZXMi
LCBtYXJrZXIuYXJncywgaWRzPU5vbmUpCiAKIAorIyBFbnN1cmUgdGhhdCB0aGUgZXZlbnQgbG9v
cCBpcyByZXN0YXJ0ZWQgb25jZSBwZXIgc2Vzc2lvbiByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCAg
b2Ygb25jZSBwZXIgdGVzdAorIyBpZiB3ZSBkb24ndCBkbyB0aGlzLCB0ZXN0cyB3aWxsIHRyeSB0
byByZXVzZSBhIGNsb3NlZCBldmVudCBsb29wIGFuZCBmYWlsIHdpdGggYW4gZXJyb3IgdGhhdCB0
aGUgImZ1dHVyZQorIyBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IGxvb3AiCitAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGV2ZW50X2xvb3AoKToKKyAgICAiIiJDaGFuZ2UgZXZl
bnRfbG9vcCBmaXh0dXJlIHRvIHNlc3Npb24gbGV2ZWwuIiIiCisgICAgbG9vcCA9IGFzeW5jaW8u
Z2V0X2V2ZW50X2xvb3BfcG9saWN5KCkubmV3X2V2ZW50X2xvb3AoKQorICAgIHlpZWxkIGxvb3AK
KyAgICBsb29wLmNsb3NlKCkKKworCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiBhZGRfZXZlbnRfbGlz
dGVuZXJzKHNlc3Npb24pOgogICAgICIiIlJlZ2lzdGVyIGxpc3RlbmVycyBmb3IgdHJhY2tlZCBl
dmVudHMgb24gZWxlbWVudC4iIiIKQEAgLTk0LDcgKzEwNSw4IEBAIGRlZiBodHRwKGNvbmZpZ3Vy
YXRpb24pOgogCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiBzZXJ2ZXJfY29uZmlnKCk6Ci0gICAgcmV0
dXJuIGpzb24ubG9hZHMob3MuZW52aXJvbi5nZXQoIldEX1NFUlZFUl9DT05GSUciKSkKKyAgICB3
aXRoIG9wZW4ob3MuZW52aXJvbi5nZXQoIldEX1NFUlZFUl9DT05GSUdfRklMRSIpLCAiciIpIGFz
IGY6CisgICAgICAgIHJldHVybiBqc29uLmxvYWQoZikKIAogCiBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9InNlc3Npb24iKQpAQCAtMTEwLDggKzEyMiwyMyBAQCBkZWYgY29uZmlndXJhdGlvbigpOgog
ICAgIH0KIAogCithc3luYyBkZWYgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25lY2Vzc2FyeShj
YXBzLCByZXF1ZXN0X2JpZGkpOgorICAgIGdsb2JhbCBfY3VycmVudF9zZXNzaW9uCisKKyAgICAj
IElmIHRoZXJlIGlzIGEgc2Vzc2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYWN0aXZl
IG9yIHRoZSBjdXJyZW50IHNlc3Npb24KKyAgICAjIGlzIG9mIGRpZmZlcmVudCB0eXBlIHRoYW4g
dGhlIG9uZSB3ZSB3b3VsZCBsaWtlIHRvIGNyZWF0ZSwgZW5kIGl0IG5vdy4KKyAgICBpZiBfY3Vy
cmVudF9zZXNzaW9uIGlzIG5vdCBOb25lOgorICAgICAgICBpc19iaWRpID0gaXNpbnN0YW5jZShf
Y3VycmVudF9zZXNzaW9uLCB3ZWJkcml2ZXIuQmlkaVNlc3Npb24pCisgICAgICAgIGlmIGlzX2Jp
ZGkgIT0gcmVxdWVzdF9iaWRpIG9yIG5vdCBfY3VycmVudF9zZXNzaW9uLm1hdGNoKGNhcHMpOgor
ICAgICAgICAgICAgaWYgaXNfYmlkaToKKyAgICAgICAgICAgICAgICBhd2FpdCBfY3VycmVudF9z
ZXNzaW9uLmVuZCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIF9jdXJyZW50
X3Nlc3Npb24uZW5kKCkKKyAgICAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24gPSBOb25lCisKKwog
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCi1kZWYgc2Vzc2lvbihjYXBhYmlsaXRp
ZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3QpOgorYXN5bmMgZGVmIHNlc3Npb24oY2FwYWJpbGl0
aWVzLCBjb25maWd1cmF0aW9uLCByZXF1ZXN0KToKICAgICAiIiJDcmVhdGUgYW5kIHN0YXJ0IGEg
c2Vzc2lvbiBmb3IgYSB0ZXN0IHRoYXQgZG9lcyBub3QgaXRzZWxmIHRlc3Qgc2Vzc2lvbiBjcmVh
dGlvbi4KIAogICAgIEJ5IGRlZmF1bHQgdGhlIHNlc3Npb24gd2lsbCBzdGF5IG9wZW4gYWZ0ZXIg
ZWFjaCB0ZXN0LCBidXQgd2UgYWx3YXlzIHRyeSB0byBzdGFydCBhCkBAIC0xMjMsMTQgKzE1MCwx
MCBAQCBkZWYgc2Vzc2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3QpOgog
ICAgICMgVXBkYXRlIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzIHdpdGggY3VzdG9tIG9uZXMg
ZnJvbSB0aGUKICAgICAjIGNhcGFiaWxpdGllcyBmaXh0dXJlLCB3aGljaCBjYW4gYmUgc2V0IGJ5
IHRlc3RzCiAgICAgY2FwcyA9IGNvcHkuZGVlcGNvcHkoY29uZmlndXJhdGlvblsiY2FwYWJpbGl0
aWVzIl0pCi0gICAgY2Fwcy51cGRhdGUoY2FwYWJpbGl0aWVzKQorICAgIGRlZXBfdXBkYXRlKGNh
cHMsIGNhcGFiaWxpdGllcykKICAgICBjYXBzID0geyJhbHdheXNNYXRjaCI6IGNhcHN9CiAKLSAg
ICAjIElmIHRoZXJlIGlzIGEgc2Vzc2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYWN0
aXZlLCBlbmQgaXQgbm93Ci0gICAgaWYgX2N1cnJlbnRfc2Vzc2lvbiBpcyBub3QgTm9uZSBhbmQg
KAotICAgICAgICAgICAgY2FwcyAhPSBfY3VycmVudF9zZXNzaW9uLnJlcXVlc3RlZF9jYXBhYmls
aXRpZXMpOgotICAgICAgICBfY3VycmVudF9zZXNzaW9uLmVuZCgpCi0gICAgICAgIF9jdXJyZW50
X3Nlc3Npb24gPSBOb25lCisgICAgYXdhaXQgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25lY2Vz
c2FyeShjYXBzLCBGYWxzZSkKIAogICAgIGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgTm9uZToKICAg
ICAgICAgX2N1cnJlbnRfc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9uKApAQCAtMTM5LDYgKzE2
Miw3IEBAIGRlZiBzZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6
CiAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwcykKICAgICB0cnk6CiAgICAgICAgIF9jdXJy
ZW50X3Nlc3Npb24uc3RhcnQoKQorCiAgICAgZXhjZXB0IHdlYmRyaXZlci5lcnJvci5TZXNzaW9u
Tm90Q3JlYXRlZEV4Y2VwdGlvbjoKICAgICAgICAgaWYgbm90IF9jdXJyZW50X3Nlc3Npb24uc2Vz
c2lvbl9pZDoKICAgICAgICAgICAgIHJhaXNlCkBAIC0xNTIsNiArMTc2LDQ4IEBAIGRlZiBzZXNz
aW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgY2xlYW51cF9z
ZXNzaW9uKF9jdXJyZW50X3Nlc3Npb24pCiAKIAorQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5j
dGlvbiIpCithc3luYyBkZWYgYmlkaV9zZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlv
biwgcmVxdWVzdCk6CisgICAgIiIiQ3JlYXRlIGFuZCBzdGFydCBhIGJpZGkgc2Vzc2lvbiBmb3Ig
YSB0ZXN0IHRoYXQgZG9lcyBub3QgaXRzZWxmIHRlc3QKKyAgICBiaWRpIHNlc3Npb24gY3JlYXRp
b24uCisgICAgQnkgZGVmYXVsdCB0aGUgc2Vzc2lvbiB3aWxsIHN0YXkgb3BlbiBhZnRlciBlYWNo
IHRlc3QsIGJ1dCB3ZSBhbHdheXMgdHJ5IHRvIHN0YXJ0IGEKKyAgICBuZXcgb25lIGFuZCBhc3N1
bWUgdGhhdCBpZiB0aGF0IGZhaWxzIHRoZXJlIGlzIGFscmVhZHkgYSB2YWxpZCBzZXNzaW9uLiBU
aGlzIG1ha2VzIGl0CisgICAgcG9zc2libGUgdG8gcmVjb3ZlciBmcm9tIHNvbWUgZXJyb3JzIHRo
YXQgbWlnaHQgbGVhdmUgdGhlIHNlc3Npb24gaW4gYSBiYWQgc3RhdGUsIGJ1dAorICAgIGRvZXMg
bm90IGRlbWFuZCB0aGF0IHdlIHN0YXJ0IGEgbmV3IHNlc3Npb24gcGVyIHRlc3QuIiIiCisgICAg
Z2xvYmFsIF9jdXJyZW50X3Nlc3Npb24KKworICAgICMgVXBkYXRlIGNvbmZpZ3VyYXRpb24gY2Fw
YWJpbGl0aWVzIHdpdGggY3VzdG9tIG9uZXMgZnJvbSB0aGUKKyAgICAjIGNhcGFiaWxpdGllcyBm
aXh0dXJlLCB3aGljaCBjYW4gYmUgc2V0IGJ5IHRlc3RzCisgICAgY2FwcyA9IGNvcHkuZGVlcGNv
cHkoY29uZmlndXJhdGlvblsiY2FwYWJpbGl0aWVzIl0pCisgICAgZGVlcF91cGRhdGUoY2Fwcywg
Y2FwYWJpbGl0aWVzKQorICAgIGNhcHMgPSB7ImFsd2F5c01hdGNoIjogY2Fwc30KKworICAgIGF3
YWl0IHJlc2V0X2N1cnJlbnRfc2Vzc2lvbl9pZl9uZWNlc3NhcnkoY2FwcywgVHJ1ZSkKKworICAg
IGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgTm9uZToKKyAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbiA9
IHdlYmRyaXZlci5TZXNzaW9uKAorICAgICAgICAgICAgY29uZmlndXJhdGlvblsiaG9zdCJdLAor
ICAgICAgICAgICAgY29uZmlndXJhdGlvblsicG9ydCJdLAorICAgICAgICAgICAgY2FwYWJpbGl0
aWVzPWNhcHMsCisgICAgICAgICAgICBlbmFibGVfYmlkaT1UcnVlKQorCisgICAgdHJ5OgorICAg
ICAgICBfY3VycmVudF9zZXNzaW9uLnN0YXJ0KCkKKyAgICAgICAgYXdhaXQgX2N1cnJlbnRfc2Vz
c2lvbi5iaWRpX3Nlc3Npb24uc3RhcnQoKQorICAgIGV4Y2VwdCB3ZWJkcml2ZXIuZXJyb3IuU2Vz
c2lvbk5vdENyZWF0ZWRFeGNlcHRpb246CisgICAgICAgIGlmIG5vdCBfY3VycmVudF9zZXNzaW9u
LnNlc3Npb25faWQ6CisgICAgICAgICAgICByYWlzZQorCisgICAgIyBFbmZvcmNlIGEgZml4ZWQg
ZGVmYXVsdCB3aW5kb3cgc2l6ZSBhbmQgcG9zaXRpb24KKyAgICBfY3VycmVudF9zZXNzaW9uLndp
bmRvdy5zaXplID0gZGVmYXVsdHMuV0lORE9XX1NJWkUKKyAgICBfY3VycmVudF9zZXNzaW9uLndp
bmRvdy5wb3NpdGlvbiA9IGRlZmF1bHRzLldJTkRPV19QT1NJVElPTgorCisgICAgeWllbGQgX2N1
cnJlbnRfc2Vzc2lvbi5iaWRpX3Nlc3Npb24KKworICAgIGF3YWl0IF9jdXJyZW50X3Nlc3Npb24u
YmlkaV9zZXNzaW9uLmVuZCgpCisgICAgY2xlYW51cF9zZXNzaW9uKF9jdXJyZW50X3Nlc3Npb24p
CisKKwogQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCiBkZWYgY3VycmVudF9zZXNz
aW9uKCk6CiAgICAgcmV0dXJuIF9jdXJyZW50X3Nlc3Npb24KQEAgLTE1OSwxNCArMjI1LDEzIEBA
IGRlZiBjdXJyZW50X3Nlc3Npb24oKToKIAogQHB5dGVzdC5maXh0dXJlCiBkZWYgdXJsKHNlcnZl
cl9jb25maWcpOgotICAgIGRlZiBpbm5lcihwYXRoLCBwcm90b2NvbD0iaHR0cCIsIGRvbWFpbj0i
Iiwgc3ViZG9tYWluPSIiLCBxdWVyeT0iIiwgZnJhZ21lbnQ9IiIpOgorICAgIGRlZiB1cmwocGF0
aCwgcHJvdG9jb2w9Imh0dHAiLCBkb21haW49IiIsIHN1YmRvbWFpbj0iIiwgcXVlcnk9IiIsIGZy
YWdtZW50PSIiKToKICAgICAgICAgZG9tYWluID0gc2VydmVyX2NvbmZpZ1siZG9tYWlucyJdW2Rv
bWFpbl1bc3ViZG9tYWluXQogICAgICAgICBwb3J0ID0gc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtw
cm90b2NvbF1bMF0KICAgICAgICAgaG9zdCA9ICJ7MH06ezF9Ii5mb3JtYXQoZG9tYWluLCBwb3J0
KQogICAgICAgICByZXR1cm4gdXJsdW5zcGxpdCgocHJvdG9jb2wsIGhvc3QsIHBhdGgsIHF1ZXJ5
LCBmcmFnbWVudCkpCiAKLSAgICBpbm5lci5fX25hbWVfXyA9ICJ1cmwiCi0gICAgcmV0dXJuIGlu
bmVyCisgICAgcmV0dXJuIHVybAogCiAKIEBweXRlc3QuZml4dHVyZQpAQCAtMTgyLDcgKzI0Nyw3
IEBAIGRlZiBjcmVhdGVfZGlhbG9nKHNlc3Npb24pOgogICAgICAgICBpZiB0ZXh0IGlzIE5vbmU6
CiAgICAgICAgICAgICB0ZXh0ID0gIiIKIAotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0ZXh0
LCBzdHJpbmdfdHlwZXMpLCAiYHRleHRgIHBhcmFtZXRlciBtdXN0IGJlIGEgc3RyaW5nIgorICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0ZXh0LCBzdHIpLCAiYHRleHRgIHBhcmFtZXRlciBtdXN0
IGJlIGEgc3RyaW5nIgogCiAgICAgICAgICMgU2NyaXB0IGNvbXBsZXRlcyBpdHNlbGYgd2hlbiB0
aGUgdXNlciBwcm9tcHQgaGFzIGJlZW4gb3BlbmVkLgogICAgICAgICAjIEZvciBwcm9tcHQoKSBk
aWFsb2dzLCBhZGQgYSB2YWx1ZSBmb3IgdGhlICdkZWZhdWx0JyBhcmd1bWVudCwKQEAgLTIzOCwx
NSArMzAzLDU0IEBAIGRlZiBjbG9zZWRfZnJhbWUoc2Vzc2lvbiwgdXJsKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjbG9zZWRfd2luZG93KHNlc3Npb24pOgorZGVmIGNsb3NlZF93aW5kb3co
c2Vzc2lvbiwgaW5saW5lKToKICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndpbmRvd19o
YW5kbGUKICAgICBuZXdfaGFuZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKIAogICAgIHNlc3Np
b24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IGlkPSdhJyB2YWx1ZT0nYic+IikKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKICAgICBzZXNzaW9uLndpbmRvdy5jbG9zZSgpCiAgICAg
YXNzZXJ0IG5ld19oYW5kbGUgbm90IGluIHNlc3Npb24uaGFuZGxlcywgIlVuYWJsZSB0byBjbG9z
ZSB3aW5kb3cge30iLmZvcm1hdChuZXdfaGFuZGxlKQogCi0gICAgeWllbGQgbmV3X2hhbmRsZQor
ICAgIHlpZWxkIChvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQpCiAKICAgICBzZXNzaW9uLndpbmRv
d19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBpbmxp
bmUodXJsKToKKyAgICAiIiJUYWtlcyBhIHNvdXJjZSBleHRyYWN0IGFuZCBwcm9kdWNlcyB3ZWxs
LWZvcm1lZCBkb2N1bWVudHMuCisKKyAgICBCYXNlZCBvbiB0aGUgZGVzaXJlZCBkb2N1bWVudCB0
eXBlLCB0aGUgZXh0cmFjdCBpcyBlbWJlZGRlZCB3aXRoCisgICAgcHJlZGVmaW5lZCBib2lsZXJw
bGF0ZSBpbiBvcmRlciB0byBwcm9kdWNlIHdlbGwtZm9ybWVkIGRvY3VtZW50cy4KKyAgICBUaGUg
bWVkaWEgdHlwZSBhbmQgY2hhcmFjdGVyIHNldCBtYXkgYWxzbyBiZSBpbmRpdmlkdWFsbHkgY29u
ZmlndXJlZC4KKworICAgIFRoaXMgaGVscGVyIGZ1bmN0aW9uIG9yaWdpbmFsbHkgdXNlZCBkYXRh
IFVSTHMsIGJ1dCBzaW5jZSB0aGVzZQorICAgIGFyZSBub3QgdW5pdmVyc2FsbHkgc3VwcG9ydGVk
IChvciBpbmRlZWQgc3RhbmRhcmRpc2VkISkgYWNyb3NzCisgICAgYnJvd3NlcnMsIGl0IG5vdyBk
ZWxlZ2F0ZXMgdGhlIHNlcnZpbmcgb2YgdGhlIGRvY3VtZW50IHRvIHdwdHNlcnZlLgorICAgIFRo
aXMgZmlsZSBhbHNvIGFjdHMgYXMgYSB3cHRzZXJ2ZSBoYW5kbGVyIChzZWUgdGhlIG1haW4gZnVu
Y3Rpb24KKyAgICBiZWxvdykgd2hpY2ggY29uZmlndXJlcyB0aGUgSFRUUCByZXNwb25zZSB1c2lu
ZyBxdWVyeSBwYXJhbWV0ZXJzLgorCisgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgVVJMIHRv
IHRoZSB3cHRzZXJ2ZSBoYW5kbGVyLCB3aGljaCBpbiB0dXJuCisgICAgd2lsbCBzZXJ2ZSBhbiBI
VFRQIHJlc3BvbnNlIHdpdGggdGhlIHJlcXVlc3RlZCBzb3VyY2UgZXh0cmFjdAorICAgIGlubGlu
ZWQgaW4gYSB3ZWxsLWZvcm1lZCBkb2N1bWVudCwgYW5kIHRoZSBDb250ZW50LVR5cGUgaGVhZGVy
CisgICAgb3B0aW9uYWxseSBjb25maWd1cmVkIHVzaW5nIHRoZSBkZXNpcmVkIG1lZGlhIHR5cGUg
YW5kIGNoYXJhY3RlciBzZXQuCisKKyAgICBBbnkgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50
cyBhcmUgcGFzc2VkIG9uIHRvIHRoZSBidWlsZF91cmwKKyAgICBmdW5jdGlvbiwgd2hpY2ggY29t
ZXMgZnJvbSB0aGUgdXJsIGZpeHR1cmUuCisgICAgIiIiCisgICAgZGVmIGlubGluZShzcmMsICoq
a3dhcmdzKToKKyAgICAgICAgcmV0dXJuIGJ1aWxkX2lubGluZSh1cmwsIHNyYywgKiprd2FyZ3Mp
CisKKyAgICByZXR1cm4gaW5saW5lCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgaWZyYW1lKGlu
bGluZSk6CisgICAgIiIiSW5saW5lcyBkb2N1bWVudCBleHRyYWN0IGFzIHRoZSBzb3VyY2UgZG9j
dW1lbnQgb2YgYW4gPGlmcmFtZT4uIiIiCisgICAgZGVmIGlmcmFtZShzcmMsICoqa3dhcmdzKToK
KyAgICAgICAgcmV0dXJuICI8aWZyYW1lIHNyYz0ne30nPjwvaWZyYW1lPiIuZm9ybWF0KGlubGlu
ZShzcmMsICoqa3dhcmdzKSkKKworICAgIHJldHVybiBpZnJhbWUKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJzLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2hl
bHBlcnMucHkKaW5kZXggZjg1NzA4M2I0Nzc0Li40M2JkYjQxY2Y5ODMgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJz
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9oZWxwZXJzLnB5CkBAIC0xLDUgKzEsNiBAQAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw
cmludF9mdW5jdGlvbgogCitpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBtYXRoCiBpbXBvcnQg
c3lzCiAKQEAgLTEwNiw2ICsxMDcsMjAgQEAgZGVmIGNsZWFyX2FsbF9jb29raWVzKHNlc3Npb24p
OgogICAgIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoIkRFTEVURSIsICJzZXNzaW9uLyVzL2Nvb2tp
ZSIgJSBzZXNzaW9uLnNlc3Npb25faWQpCiAKIAorZGVmIGRlZXBfdXBkYXRlKHNvdXJjZSwgb3Zl
cnJpZGVzKToKKyAgICAiIiIKKyAgICBVcGRhdGUgYSBuZXN0ZWQgZGljdGlvbmFyeSBvciBzaW1p
bGFyIG1hcHBpbmcuCisgICAgTW9kaWZ5IGBgc291cmNlYGAgaW4gcGxhY2UuCisgICAgIiIiCisg
ICAgZm9yIGtleSwgdmFsdWUgaW4gb3ZlcnJpZGVzLml0ZW1zKCk6CisgICAgICAgIGlmIGlzaW5z
dGFuY2UodmFsdWUsIGNvbGxlY3Rpb25zLk1hcHBpbmcpIGFuZCB2YWx1ZToKKyAgICAgICAgICAg
IHJldHVybmVkID0gZGVlcF91cGRhdGUoc291cmNlLmdldChrZXksIHt9KSwgdmFsdWUpCisgICAg
ICAgICAgICBzb3VyY2Vba2V5XSA9IHJldHVybmVkCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzb3VyY2Vba2V5XSA9IG92ZXJyaWRlc1trZXldCisgICAgcmV0dXJuIHNvdXJjZQorCisKIGRl
ZiBkb2N1bWVudF9kaW1lbnNpb25zKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBsZShzZXNzaW9u
LmV4ZWN1dGVfc2NyaXB0KCIiIgogICAgICAgICBsZXQgcmVjdCA9IGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKQEAgLTIyMSwzICsyMzYsMjcgQEAgZGVm
IGF2YWlsYWJsZV9zY3JlZW5fc2l6ZShzZXNzaW9uKToKICAgICAgICAgICAgIHNjcmVlbi5hdmFp
bEhlaWdodCAtIHNjcmVlbi5hdmFpbFRvcCwKICAgICAgICAgXTsKICAgICAgICAgIiIiKSkKKwor
ZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6CisgICAgIiIiRmlsdGVyIGBzb3VyY2VgIGRpY3Qg
dG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBgZGAgZGljdC4KKworICAgIDpwYXJhbSBzb3Vy
Y2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgorICAgIDpwYXJhbSBkOiBkaWN0aW9uYXJ5IHdob3Nl
IGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcuCisgICAgIiIiCisgICAgcmV0dXJuIHtrOiBz
b3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CisKKworZGVmIHdhaXRfZm9yX25ld19oYW5kbGUo
c2Vzc2lvbiwgaGFuZGxlc19iZWZvcmUpOgorICAgIGRlZiBmaW5kX25ld19oYW5kbGUoc2Vzc2lv
bik6CisgICAgICAgIG5ld19oYW5kbGVzID0gbGlzdChzZXQoc2Vzc2lvbi5oYW5kbGVzKSAtIHNl
dChoYW5kbGVzX2JlZm9yZSkpCisgICAgICAgIGlmIG5ld19oYW5kbGVzIGFuZCBsZW4obmV3X2hh
bmRsZXMpID09IDE6CisgICAgICAgICAgICByZXR1cm4gbmV3X2hhbmRsZXNbMF0KKyAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgIHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAgICAg
ICB0aW1lb3V0PTUsCisgICAgICAgIG1lc3NhZ2U9Ik5vIG5ldyB3aW5kb3cgaGFzIGJlZW4gb3Bl
bmVkIikKKworICAgIHJldHVybiB3YWl0LnVudGlsKGZpbmRfbmV3X2hhbmRsZSkKKwpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0
L2h0bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lc19ub19iZmNhY2hlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xOTcyMTg3ZDIxZmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3N1cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxo
dG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5j
dGlvbiByZW1vdmUoKSB7CisgICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzdWItZnJhbWUiKTsKKyAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkZWxldGUiKTsKKyAgICAgIGRpdi5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgfQorICA8
L3NjcmlwdD4KKzwvaGVhZD4KKworPCEtLSB1bmxvYWQgaGFuZGxlciBwcmV2ZW50cyB0aGUgcGFn
ZSBmcm9tIGJlaW5nIGFkZGVkIHRvIHRoZSBiZmNhY2hlIG9uIG5hdmlnYXRpb24gLS0+Cis8Ym9k
eSBvbnVubG9hZD0iIj4KKyAgPGRpdiBpZD0iZGVsZXRlIj4KKyAgICA8aWZyYW1lIHNyYz0ic3Vi
ZnJhbWUuaHRtbCIgaWQ9InN1Yi1mcmFtZSI+PC9pZnJhbWU+CisgIDwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9zdXBwb3J0L2h0bWwvbWV0YS11dGY4LWFmdGVyLTEwMjQtYnl0ZXMuaHRtbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL21l
dGEtdXRmOC1hZnRlci0xMDI0LWJ5dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi5iNTkxNjE0OGI1NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9tZXRhLXV0Zjgt
YWZ0ZXItMTAyNC1ieXRlcy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PCEtLSBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBl
bGl0LiBOdWxsYSBldSBpYWN1bGlzCitsZWN0dXMuIFF1aXNxdWUgdWxsYW1jb3JwZXIgZXN0IGF0
IG51bmMgY29uc2VjdGV0dXIgc3VzY2lwaXQuIEFsaXF1YW0gaW1wZXJkaWV0CittYXVyaXMgaW4g
bnVsbGEgb3JuYXJlLCBpZCBlbGVpZmVuZCB0dXJwaXMgcGxhY2VyYXQuIFZlc3RpYnVsdW0gbG9y
ZW0gbGliZXJvLAorc29sbGljaXR1ZGluIGluIG9yY2kgc3VzY2lwaXQsIGRpY3R1bSB2ZXN0aWJ1
bHVtIG51bGxhLiBVdCBhYyBlc3QgdGluY2lkdW50LAorY3Vyc3VzIGxlbyB2ZWwsIHBlbGxlbnRl
c3F1ZSBvcmNpLiBTZWQgbWF0dGlzIG1ldHVzIGF1Z3VlLCBhYyB0aW5jaWR1bnQgbnVuYworbG9i
b3J0aXMgaW4uIFByb2luIGV1IGlwc3VtIGF1Y3RvciBsb3JlbSBzYWdpdHRpcyBtYWxlc3VhZGEu
IFZpdmFtdXMgbWF4aW11cywKK2Vyb3MgZnJpbmdpbGxhIHZ1bHB1dGF0ZSB0aW5jaWR1bnQsIHRl
bGx1cyB0ZWxsdXMgdml2ZXJyYSBhdWd1ZSwgc2VkIGlhY3VsaXMKK2lwc3VtIGxhY3VzIHF1aXMg
dGVsbHVzLiBNb3JiaSBldCBlbmltIGF0IGFudGUgbW9sZXN0aWUgaW1wZXJkaWV0IGV0IGV0IG51
bGxhLgorQWxpcXVhbSBjb25zZXF1YXQgcmhvbmN1cyBtYWduYSwgdml0YWUgc29kYWxlcyB1cm5h
IG1heGltdXMgZWdldC4gTWF1cmlzIGV1CitsYW9yZWV0IHR1cnBpcywgZWdldCBjb25kaW1lbnR1
bSBsZWN0dXMuIE1hZWNlbmFzIHZlbCBsb3JlbSB2ZWwgbnVsbGEgZWZmaWNpdHVyCitldWlzbW9k
LiBTZWQgbG9ib3J0aXMgZW5pbSBhYyBvZGlvIGJpYmVuZHVtLCBpZCB2ZWhpY3VsYSBuaWJoIHRl
bXB1cy4gUGhhc2VsbHVzCitzb2RhbGVzLCBpcHN1bSBmZXVnaWF0IGFsaXF1YW0gdmVoaWN1bGEs
IGRpYW0gbGVvIGN1cnN1cyBlc3QsIG5lYyB2YXJpdXMgbnVuYworZmVsaXMgdml0YWUgZXN0LiBD
dXJhYml0dXIgYWMgcHVydXMgbmlzbC4gTWF1cmlzIGNvbmRpbWVudHVtLCBtYWduYSBxdWlzCitj
b25zZWN0ZXR1ciBiaWFtLiAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxkaXYgaWQ9ImJv
ZHkiPjwvZGl2PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L2h0dHBfcmVxdWVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKaW5kZXggODk1
ZDEzMTlhYzBhLi4yNDJkYzljOTE4ODcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0dHBfcmVx
dWVzdC5weQpAQCAtMSw5ICsxLDcgQEAKIGltcG9ydCBjb250ZXh0bGliCiBpbXBvcnQganNvbgog
Ci1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCi0KLWZyb20gc2l4Lm1vdmVzLmh0dHBfY2xpZW50
IGltcG9ydCBIVFRQQ29ubmVjdGlvbgorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5l
Y3Rpb24KIAogCiBjbGFzcyBIVFRQUmVxdWVzdChvYmplY3QpOgpAQCAtMzEsNyArMjksNyBAQCBj
bGFzcyBIVFRQUmVxdWVzdChvYmplY3QpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIkZhaWxlZCB0byBlbmNvZGUgcmVxdWVzdCBib2R5IGFzIEpTT046IHt9Ii5mb3JtYXQoCiAg
ICAgICAgICAgICAgICAgICAgIGpzb24uZHVtcHMoYm9keSwgaW5kZW50PTIpKSkKIAotICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgaWYg
aXNpbnN0YW5jZShwYXlsb2FkLCBzdHIpOgogICAgICAgICAgICAgICAgIHBheWxvYWQgPSBib2R5
LmVuY29kZSgidXRmLTgiKQogCiAgICAgICAgIGNvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxmLmhv
c3QsIHNlbGYucG9ydCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weQppbmRleCA2MTQ5Y2NjY2JlMzIu
LjJlN2FkOGMxMzA5YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9zdXBwb3J0L2ltYWdlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weQpAQCAtMSwxNCArMSwxMiBA
QAotaW1wb3J0IGJhc2U2NAogaW1wb3J0IG1hdGgKIGltcG9ydCBzdHJ1Y3QKLQotZnJvbSBzaXgg
aW1wb3J0IGVuc3VyZV9iaW5hcnkKK2Zyb20gYmFzZTY0IGltcG9ydCBkZWNvZGVieXRlcwogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3BuZwogCiAKIGRlZiBwbmdf
ZGltZW5zaW9ucyhzY3JlZW5zaG90KToKICAgICBhc3NlcnRfcG5nKHNjcmVlbnNob3QpCi0gICAg
aW1hZ2UgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkoc2NyZWVuc2hvdCkpCisg
ICAgaW1hZ2UgPSBkZWNvZGVieXRlcyhzY3JlZW5zaG90LmVuY29kZSgpKQogICAgIHdpZHRoLCBo
ZWlnaHQgPSBzdHJ1Y3QudW5wYWNrKCI+TEwiLCBpbWFnZVsxNjoyNF0pCiAgICAgcmV0dXJuIGlu
dCh3aWR0aCksIGludChoZWlnaHQpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQppbmRleCBkMjNj
YTc1ZDFjODAuLjQ5NGNhNzRmOTI2NSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5CkBAIC0x
LDYgKzEsNiBAQAogIiIiSGVscGVycyBmb3IgaW5saW5pbmcgZXh0cmFjdHMgb2YgZG9jdW1lbnRz
IGluIHRlc3RzLiIiIgogCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGVu
Y29kZQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQogCiAKIEJPSUxFUlBMQVRF
UyA9IHsKQEAgLTI0LDMxICsyNCw4IEBAIE1JTUVfVFlQRVMgPSB7CiAgICAgInhtbCI6ICJ0ZXh0
L3htbCIsCiB9CiAKLWRlZiBpbmxpbmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBj
aGFyc2V0PU5vbmUsICoqa3dhcmdzKToKLSAgICAiIiIKLSAgICBUYWtlcyBhIHNvdXJjZSBleHRy
YWN0IGFuZCBwcm9kdWNlcyB3ZWxsLWZvcm1lZCBkb2N1bWVudHMuCi0KLSAgICBCYXNlZCBvbiB0
aGUgZGVzaXJlZCBkb2N1bWVudCB0eXBlLCB0aGUgZXh0cmFjdCBpcyBlbWJlZGRlZCB3aXRoCi0g
ICAgcHJlZGVmaW5lZCBib2lsZXJwbGF0ZSBpbiBvcmRlciB0byBwcm9kdWNlIHdlbGwtZm9ybWVk
IGRvY3VtZW50cy4KLSAgICBUaGUgbWVkaWEgdHlwZSBhbmQgY2hhcmFjdGVyIHNldCBtYXkgYWxz
byBiZSBpbmRpdmlkdWFsbHkgY29uZmlndXJlZC4KLQotICAgIFRoaXMgaGVscGVyIGZ1bmN0aW9u
IG9yaWdpbmFsbHkgdXNlZCBkYXRhIFVSTHMsIGJ1dCBzaW5jZSB0aGVzZQotICAgIGFyZSBub3Qg
dW5pdmVyc2FsbHkgc3VwcG9ydGVkIChvciBpbmRlZWQgc3RhbmRhcmRpc2VkISkgYWNyb3NzCi0g
ICAgYnJvd3NlcnMsIGl0IG5vdyBkZWxlZ2F0ZXMgdGhlIHNlcnZpbmcgb2YgdGhlIGRvY3VtZW50
IHRvIHdwdHNlcnZlLgotICAgIFRoaXMgZmlsZSBhbHNvIGFjdHMgYXMgYSB3cHRzZXJ2ZSBoYW5k
bGVyIChzZWUgdGhlIG1haW4gZnVuY3Rpb24KLSAgICBiZWxvdykgd2hpY2ggY29uZmlndXJlcyB0
aGUgSFRUUCByZXNwb25zZSB1c2luZyBxdWVyeSBwYXJhbWV0ZXJzLgotCi0gICAgVGhpcyBmdW5j
dGlvbiByZXR1cm5zIGEgVVJMIHRvIHRoZSB3cHRzZXJ2ZSBoYW5kbGVyLCB3aGljaCBpbiB0dXJu
Ci0gICAgd2lsbCBzZXJ2ZSBhbiBIVFRQIHJlc3BvbnNlIHdpdGggdGhlIHJlcXVlc3RlZCBzb3Vy
Y2UgZXh0cmFjdAotICAgIGlubGluZWQgaW4gYSB3ZWxsLWZvcm1lZCBkb2N1bWVudCwgYW5kIHRo
ZSBDb250ZW50LVR5cGUgaGVhZGVyCi0gICAgb3B0aW9uYWxseSBjb25maWd1cmVkIHVzaW5nIHRo
ZSBkZXNpcmVkIG1lZGlhIHR5cGUgYW5kIGNoYXJhY3RlciBzZXQuCi0KLSAgICBBbnkgYWRkaXRp
b25hbCBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgcGFzc2VkIG9uIHRvIHRoZSBidWlsZF91cmwKLSAg
ICBmdW5jdGlvbi4KLSAgICAiIiIKLSAgICBmcm9tIC5maXh0dXJlcyBpbXBvcnQgc2VydmVyX2Nv
bmZpZywgdXJsCi0gICAgYnVpbGRfdXJsID0gdXJsKHNlcnZlcl9jb25maWcoKSkKIAorZGVmIGJ1
aWxkX2lubGluZShidWlsZF91cmwsIHNyYywgZG9jdHlwZT0iaHRtbCIsIG1pbWU9Tm9uZSwgY2hh
cnNldD1Ob25lLCAqKmt3YXJncyk6CiAgICAgaWYgbWltZSBpcyBOb25lOgogICAgICAgICBtaW1l
ID0gTUlNRV9UWVBFU1tkb2N0eXBlXQogICAgIGlmIGNoYXJzZXQgaXMgTm9uZToKQEAgLTYyLDEx
ICszOSw2IEBAIGRlZiBpbmxpbmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBjaGFy
c2V0PU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgKiprd2FyZ3MpCiAKIAotZGVmIGlmcmFtZShz
cmMsICoqa3dhcmdzKToKLSAgICAiIiJJbmxpbmVzIGRvY3VtZW50IGV4dHJhY3QgYXMgdGhlIHNv
dXJjZSBkb2N1bWVudCBvZiBhbiA8aWZyYW1lPi4iIiIKLSAgICByZXR1cm4gIjxpZnJhbWUgc3Jj
PSd7fSc+PC9pZnJhbWU+Ii5mb3JtYXQoaW5saW5lKHNyYywgKiprd2FyZ3MpKQotCi0KIGRlZiBt
YWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICBkb2MgPSByZXF1ZXN0LkdFVC5maXJzdChiImRv
YyIsIE5vbmUpCiAgICAgbWltZSA9IHJlcXVlc3QuR0VULmZpcnN0KGIibWltZSIsIE5vbmUpCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1
cHBvcnQvbWVyZ2VfZGljdGlvbmFyaWVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQppbmRleCBjZjA2
YzliNDMzY2UuLjcyZjFjYWIzNTJkZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvbWVy
Z2VfZGljdGlvbmFyaWVzLnB5CkBAIC0xLDEwICsxLDMgQEAKLWRlZiBpdGVyaXRlbXMoZCk6Ci0g
ICAgIiIiQ3JlYXRlIGEga2V5LXZhbHVlIGl0ZXJhdG9yIGZvciB0aGUgZ2l2ZW4gZGljdCBpbiBi
b3RoIFB5dGhvbiAyLnggYW5kCi0gICAgUHl0aG9uIDMueCBlbnZpcm9ubWVudHMiIiIKLSAgICBp
ZiBoYXNhdHRyKGQsICJpdGVyaXRlbXMiKToKLSAgICAgICAgcmV0dXJuIGQuaXRlcml0ZW1zKCkK
LSAgICByZXR1cm4gZC5pdGVtcygpCi0KIGRlZiBtZXJnZV9kaWN0aW9uYXJpZXMoZmlyc3QsIHNl
Y29uZCk6CiAgICAgIiIiR2l2ZW4gdHdvIGRpY3Rpb25hcmllcywgY3JlYXRlIGEgdGhpcmQgdGhh
dCBkZWZpbmVzIGFsbCBzcGVjaWZpZWQKICAgICBrZXkvdmFsdWUgcGFpcnMuIFRoaXMgbWVyZ2Vf
ZGljdGlvbmFyaWVzIGlzIHBlcmZvcm1lZCAiZGVlcGx5IiBvbiBhbnkgbmVzdGVkCkBAIC0xMiw3
ICs1LDcgQEAgZGVmIG1lcmdlX2RpY3Rpb25hcmllcyhmaXJzdCwgc2Vjb25kKToKICAgICBhbiBl
eGNlcHRpb24gd2lsbCBiZSByYWlzZWQuIiIiCiAgICAgcmVzdWx0ID0gZGljdChmaXJzdCkKIAot
ICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZXJpdGVtcyhzZWNvbmQpOgorICAgIGZvciBrZXksIHZh
bHVlIGluIHNlY29uZC5pdGVtcygpOgogICAgICAgICBpZiBrZXkgaW4gcmVzdWx0IGFuZCByZXN1
bHRba2V5XSAhPSB2YWx1ZToKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0W2tleV0s
IGRpY3QpIGFuZCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KToKICAgICAgICAgICAgICAgICByZXN1
bHRba2V5XSA9IG1lcmdlX2RpY3Rpb25hcmllcyhyZXN1bHRba2V5XSwgdmFsdWUpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
c3luYy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9zeW5jLnB5CmluZGV4IGZhNWQxODU1MGNjZS4uMzBmZjg3MmI2ZTE1IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3lu
Yy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1
cHBvcnQvc3luYy5weQpAQCAtMiw4ICsyLDYgQEAgaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQg
c3lzCiBpbXBvcnQgdGltZQogCi1pbXBvcnQgc2l4Ci0KIGZyb20gd2ViZHJpdmVyIGltcG9ydCBl
cnJvcgogCiAKQEAgLTE0MCw2ICsxMzgsNiBAQCBjbGFzcyBQb2xsKG9iamVjdCk6CiAgICAgICAg
ICAgICBtZXNzYWdlID0gIlRpbWVkIG91dCBhZnRlciB7fSBzZWNvbmRzIi5mb3JtYXQoZWxhcHNl
ZCkKICAgICAgICAgICAgIGlmIHNlbGYuZXhjX21zZyBpcyBub3QgTm9uZToKICAgICAgICAgICAg
ICAgICBtZXNzYWdlID0gInt9IHdpdGggbWVzc2FnZToge30iLmZvcm1hdChtZXNzYWdlLCBzZWxm
LmV4Y19tc2cpCi0gICAgICAgICAgICBzaXgucmVyYWlzZShzZWxmLmV4Y19jbHMsIHNlbGYuZXhj
X2NscyhtZXNzYWdlPW1lc3NhZ2UpLCB0YikKKyAgICAgICAgICAgIHJhaXNlIHNlbGYuZXhjX2Ns
cyhtZXNzYWdlPW1lc3NhZ2UpLndpdGhfdHJhY2ViYWNrKHRiKQogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9j
cm9zc19vcmlnaW4ucHkKaW5kZXggOTA1ZjFlYjU2ZGNlLi42MzNlYmEzZjQyNDggMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3Rv
X2ZyYW1lL2Nyb3NzX29yaWdpbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkKQEAgLTEsMTAg
KzEsOSBAQAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQorZnJv
bSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCiAKIGltcG9ydCB3ZWJkcml2ZXIucHJvdG9j
b2wgYXMgcHJvdG9jb2wKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZG9jdW1lbnRfbG9j
YXRpb24KLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAK
IAogIiIiCkBAIC0yNyw3ICsyNiw3IEBAIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJh
bWUpOgogICAgICAgICBzZXNzaW9uPXNlc3Npb24pCiAKIAotZGVmIHRlc3RfY3Jvc3Nfb3JpZ2lu
X2lmcmFtZShzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbl9p
ZnJhbWUoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZywgaW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKGlmcmFtZSgiIiwgZG9tYWluPSJhbHQiKSkKICAgICBmcmFtZV9lbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC0zOCw3ICsz
Nyw3IEBAIGRlZiB0ZXN0X2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lvbiwgc2VydmVyX2NvbmZp
Zyk6CiAgICAgYXNzZXJ0IHBhcnNlX3Jlc3VsdC5uZXRsb2MgIT0gc2VydmVyX2NvbmZpZ1siYnJv
d3Nlcl9ob3N0Il0KIAogCi1kZWYgdGVzdF9uZXN0ZWRfY3Jvc3Nfb3JpZ2luX2lmcmFtZShzZXNz
aW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X25lc3RlZF9jcm9zc19vcmlnaW5faWZyYW1l
KHNlc3Npb24sIHNlcnZlcl9jb25maWcsIGlubGluZSwgaWZyYW1lKToKICAgICBmcmFtZTIgPSBp
ZnJhbWUoIiIsIGRvbWFpbj0iYWx0Iiwgc3ViZG9tYWluPSJ3d3ciKQogICAgIGZyYW1lMSA9IGlm
cmFtZShmcmFtZTIpCiAgICAgdG9wX2RvYyA9IGlubGluZShmcmFtZTEsIGRvbWFpbj0iYWx0IikK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weQppbmRleCA3MDVmYTc5YTVk
ZTAuLjljY2FiMmM2Yzk2ZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRj
aC5weQpAQCAtMiwxMSArMiwxMCBAQCBpbXBvcnQgcHl0ZXN0CiAKIGltcG9ydCB3ZWJkcml2ZXIu
cHJvdG9jb2wgYXMgcHJvdG9jb2wKIAotZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IFN0YWxlRWxlbWVu
dFJlZmVyZW5jZUV4Y2VwdGlvbgorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IE5vU3VjaEVsZW1lbnRF
eGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVf
ZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZSwgaWZyYW1lCiAKIAogZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6
CkBAIC0xNywxOCArMTYsMTMgQEAgZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6
CiAgICAgICAgIHNlc3Npb249c2Vzc2lvbikKIAogCi1kZWYgZnJhbWVzZXQoKmRvY3MpOgotICAg
IGZyYW1lcyA9IGxpc3QobWFwKGxhbWJkYSBkb2M6ICI8ZnJhbWUgc3JjPSd7fSc+PC9mcmFtZT4i
LmZvcm1hdChpbmxpbmUoZG9jKSksIGRvY3MpKQotICAgIHJldHVybiAiPGZyYW1lc2V0IHJvd3M9
J3t9Jz5cbnt9PC9mcmFtZXNldD4iLmZvcm1hdChsZW4oZnJhbWVzKSAqICIqLCIsICJcbiIuam9p
bihmcmFtZXMpKQotCi0KIGRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0
dHApOgogICAgIHBhdGggPSAiL3Nlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1lIi5mb3JtYXQoKip2
YXJzKHNlc3Npb24pKQogICAgIHdpdGggaHR0cC5wb3N0KHBhdGgsIE5vbmUpIGFzIHJlc3BvbnNl
OgogICAgICAgICBhc3NlcnRfZXJyb3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImlu
dmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lv
bik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSwgaWZyYW1l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZyYW1l
ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC00Miw3ICszNiwx
NiBAQCBkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgogICAgIDAsCiAgICAg
eyJlbGVtZW50LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiI6ICJmb28ifSwKIF0pCi1kZWYg
dGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93LCBpZCk6
CitkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCB1cmwsIGlkKToKKyAg
ICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQorCisgICAgc2Vz
c2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lcy5odG1s
IikKKworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1G
YWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHNlc3Npb24u
d2luZG93LmNsb3NlKCkKKwogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24s
IGlkKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIApAQCAt
NjEsMTMgKzY0LDE4IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xv
c2VkX2ZyYW1lLCBpZCk6CiAgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
d2luZG93IikKIAogCitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFkeV90
b3BfbGV2ZWwoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0Y2hf
dG9fZnJhbWUoc2Vzc2lvbiwgTm9uZSkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBz
dWNoIHdpbmRvdyIpCisKKwogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFsiZm9v
IiwgVHJ1ZSwgW10sIHt9XSkKIGRlZiB0ZXN0X2ZyYW1lX2lkX2ludmFsaWRfdHlwZXMoc2Vzc2lv
biwgdmFsdWUpOgogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIHZhbHVl
KQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRl
ZiB0ZXN0X2ZyYW1lX2lkX251bGwoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF9udWxsKHNl
c3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUo
Int9PGRpdj5mb28iLmZvcm1hdChpZnJhbWUoIjxwPmJhciIpKSkpCiAKICAgICBmcmFtZTEgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCkBAIC04MiwxMCArOTAsMjcgQEAg
ZGVmIHRlc3RfZnJhbWVfaWRfbnVsbChzZXNzaW9uKToKICAgICByZXNwb25zZSA9IHN3aXRjaF90
b19mcmFtZShzZXNzaW9uLCBOb25lKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCi0g
ICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6Cisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgogICAgICAgICBl
bGVtZW50Mi50ZXh0Ci0gICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5j
ZUV4Y2VwdGlvbik6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRp
b24pOgogICAgICAgICBlbGVtZW50MS50ZXh0CiAKICAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5j
c3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24s
IGZyYW1lLCBmcmFtZTEpCisKKworZGVmIHRlc3RfZmluZF9lbGVtZW50X3doaWxlX2ZyYW1lX2lz
X3N0aWxsX2xvYWRpbmcoc2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLnRpbWVvdXRzLmltcGxp
Y2l0ID0gNQorCisgICAgZnJhbWVfdXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
aHRtbC9zdWJmcmFtZS5odG1sP3BpcGU9dHJpY2tsZShkMikiKQorICAgIHBhZ2VfdXJsID0gIjxo
dG1sPjxib2R5PjxpZnJhbWUgc3JjPSd7fSc+PC9pZnJhbWU+PC9ib2R5PjwvaHRtbD4iLmZvcm1h
dChmcmFtZV91cmwpCisKKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAiZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9IGFyZ3VtZW50c1swXTsiLCBhcmdzPVtw
YWdlX3VybF0pCisKKyAgICBmcmFtZTEgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9
RmFsc2UpCisgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoZnJhbWUxKQorCisgICAgIyBFbnN1cmUg
dGhhdCB0aGUgaXMgYWx3YXlzIGEgdmFsaWQgYnJvd3NpbmcgY29udGV4dCwgYW5kIHRoZSBlbGVt
ZW50CisgICAgIyBjYW4gYmUgZm91bmQgZXZlbnR1YWxseS4KKyAgICBzZXNzaW9uLmZpbmQuY3Nz
KCIjZGVsZXRlIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2Zy
YW1lL3N3aXRjaF9udW1iZXIucHkKaW5kZXggNzc1Mjk1NDQ2NzlhLi5jODg1OGU3N2ZmMTAgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dp
dGNoX3RvX2ZyYW1lL3N3aXRjaF9udW1iZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5weQpA
QCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2NvbCBh
cyBwcm90b2NvbAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lLCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKQEAg
LTIxLDcgKzIwLDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX291dF9vZl9ib3VuZHMoc2Vz
c2lvbiwgdmFsdWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5kZXgiLCBbMSwg
NjU1MzVdKQotZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3VuZHMoc2Vz
c2lvbiwgaW5kZXgpOgorZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3Vu
ZHMoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGluZGV4KToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZShpZnJhbWUoIjxwPmZvbyIpKQogCiAgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUo
c2Vzc2lvbiwgaW5kZXgpCkBAIC0yOSw3ICsyOCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX251bWJl
cl9pbmRleF9vdXRfb2ZfYm91bmRzKHNlc3Npb24sIGluZGV4KToKIAogCiBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImluZGV4LCB2YWx1ZSIsIFtbMCwgImZvbyJdLCBbMSwgImJhciJdXSkKLWRl
ZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleChzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgorZGVm
IHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBpbmRl
eCwgdmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJ7fXt9Ii5mb3JtYXQoaWZyYW1l
KCI8cD5mb28iKSwgaWZyYW1lKCI8cD5iYXIiKSkpCiAKICAgICByZXNwb25zZSA9IHN3aXRjaF90
b19mcmFtZShzZXNzaW9uLCBpbmRleCkKQEAgLTM5LDcgKzM4LDcgQEAgZGVmIHRlc3RfZnJhbWVf
aWRfbnVtYmVyX2luZGV4KHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVsZW1l
bnQudGV4dCA9PSB2YWx1ZQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9uZXN0
ZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXhfbmVzdGVkKHNlc3Np
b24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoInt9
PHA+Zm9vIi5mb3JtYXQoaWZyYW1lKCI8cD5iYXIiKSkpKQogCiAgICAgZXhwZWN0ZWRfdGV4dCA9
IFsiZm9vIiwgImJhciJdCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1l
L3N3aXRjaF93ZWJlbGVtZW50LnB5CmluZGV4IDg5NDgwYjY2YjNhNi4uYTMwZDJkOGQzMzljIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3
aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxl
bWVudC5weQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlci5w
cm90b2NvbCBhcyBwcm90b2NvbAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lLCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZy
YW1lKToKQEAgLTE0LDE0ICsxMywxNCBAQCBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZy
YW1lKToKICAgICAgICAgc2Vzc2lvbj1zZXNzaW9uKQogCiAKLWRlZiBmcmFtZXNldCgqZG9jcyk6
CitkZWYgZnJhbWVzZXQoaW5saW5lLCAqZG9jcyk6CiAgICAgZnJhbWVzID0gbGlzdChtYXAobGFt
YmRhIGRvYzogIjxmcmFtZSBzcmM9J3t9Jz48L2ZyYW1lPiIuZm9ybWF0KGlubGluZShkb2MpKSwg
ZG9jcykpCiAgICAgcmV0dXJuICI8ZnJhbWVzZXQgcm93cz0ne30nPlxue308L2ZyYW1lc2V0PiIu
Zm9ybWF0KGxlbihmcmFtZXMpICogIiosIiwgIlxuIi5qb2luKGZyYW1lcykpCiAKIAogQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28iXSwgWzEsICJiYXIi
XV0pCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4LCB2
YWx1ZSk6Ci0gICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoZnJhbWVzZXQoIjxwPmZvbyIsICI8cD5i
YXIiKSkKK2RlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfZnJhbWUoc2Vzc2lvbiwgaW5saW5l
LCBpbmRleCwgdmFsdWUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKGZyYW1lc2V0KGlubGlu
ZSwgIjxwPmZvbyIsICI8cD5iYXIiKSkKICAgICBmcmFtZXMgPSBzZXNzaW9uLmZpbmQuY3NzKCJm
cmFtZSIpCiAgICAgYXNzZXJ0IGxlbihmcmFtZXMpID09IDIKIApAQCAtMzMsNyArMzIsNyBAQCBk
ZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6
CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28i
XSwgWzEsICJiYXIiXV0pCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2lmcmFtZShzZXNz
aW9uLCBpbmRleCwgdmFsdWUpOgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9pZnJhbWUo
c2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGluZGV4LCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoInt9e30iLmZvcm1hdChpZnJhbWUoIjxwPmZvbyIpLCBpZnJhbWUoIjxwPmJhciIp
KSkKICAgICBmcmFtZXMgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiKQogICAgIGFzc2VydCBs
ZW4oZnJhbWVzKSA9PSAyCkBAIC00NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVs
ZW1lbnRfaWZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVsZW1lbnQu
dGV4dCA9PSB2YWx1ZQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbmVzdGVkKHNl
c3Npb24pOgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9uZXN0ZWQoc2Vzc2lvbiwgaW5s
aW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgie308cD5mb28i
LmZvcm1hdChpZnJhbWUoIjxwPmJhciIpKSkpCiAKICAgICBleHBlY3RlZF90ZXh0ID0gWyJmb28i
LCAiYmFyIl0KQEAgLTU4LDcgKzU3LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9u
ZXN0ZWQoc2Vzc2lvbik6CiAgICAgICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gZXhwZWN0ZWRf
dGV4dFtpXQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbm9fZWxlbWVudF9yZWZl
cmVuY2Uoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2VsZW1lbnRf
cmVmZXJlbmNlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZy
YW1lIiwgYWxsPUZhbHNlKQogICAgIGZyYW1lLmlkID0gImJhciIKQEAgLTY3LDcgKzY2LDcgQEAg
ZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9ub19lbGVtZW50X3JlZmVyZW5jZShzZXNzaW9u
KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRl
ZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNlKHNlc3Npb24pOgorZGVm
IHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9zdGFsZV9yZWZlcmVuY2Uoc2Vzc2lvbiwgaW5saW5l
LCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCiAg
ICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAKQEAgLTc3
LDkgKzc2LDI3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNl
KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInN0YWxlIGVsZW1lbnQgcmVm
ZXJlbmNlIikKIAogCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2VsZW1l
bnQoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2VsZW1l
bnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+Zm9vIikK
ICAgICBub19mcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKICAgICBy
ZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBub19mcmFtZSkKICAgICBhc3NlcnRf
ZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGZyYW1lIikKKworCitkZWYgdGVzdF9mcmFtZV9pZF93
ZWJlbGVtZW50X2Nsb25lZF9pbnRvX2lmcmFtZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6Cisg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8Ym9keT48cD5oZWxsbyB3b3JsZDwvcD48
L2JvZHk+IikpCisKKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiIgorICAgICAgICBjb25z
dCBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF07Cisg
ICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAg
ICBkaXYuaW5uZXJIVE1MID0gJ0kgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2luZG93IGFuZCBh
cHBlbmRlZCBpbnRvIHRoZSBpZnJhbWUnOworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5k
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgIiIiKQorCisgICAgZnJhbWUgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgcmVzcG9uc2UgPSBzd2l0
Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Up
CisKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQorICAg
IGFzc2VydCBlbGVtZW50LnRleHQgPT0gIkkgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2luZG93
IGFuZCBhcHBlbmRlZCBpbnRvIHRoZSBpZnJhbWUiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUvc3dp
dGNoLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0
Y2hfdG9fcGFyZW50X2ZyYW1lL3N3aXRjaC5weQppbmRleCBlZjJkYTQ1ZjE2MjUuLjljNmRiOGQy
Y2Q2MSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lL3N3aXRjaC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUvc3dp
dGNoLnB5CkBAIC0xLDkgKzEsOCBAQAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHdlYmRyaXZlciBp
bXBvcnQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uCitmcm9tIHdlYmRyaXZlciBpbXBv
cnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lLCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX3BhcmVudF9mcmFt
ZShzZXNzaW9uKToKQEAgLTExLDcgKzEwLDcgQEAgZGVmIHN3aXRjaF90b19wYXJlbnRfZnJhbWUo
c2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1lL3Bh
cmVudCIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3RfbnVsbF9yZXNwb25z
ZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwg
aW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9v
IikpCiAgICAgZnJhbWVfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1G
YWxzZSkKICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZV9lbGVtZW50KQpAQCAtMjEsNyAr
MjAsMTYgQEAgZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKICAgICBhc3Nl
cnQgdmFsdWUgaXMgTm9uZQogCiAKLWRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF93aW5kb3cpOgorZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQo
c2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193
aW5kb3coKQorCisgICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9y
dC9odG1sL2ZyYW1lcy5odG1sIikKKworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygi
I3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFt
ZSkKKworICAgIHNlc3Npb24ud2luZG93LmNsb3NlKCkKKwogICAgIHJlc3BvbnNlID0gc3dpdGNo
X3RvX3BhcmVudF9mcmFtZShzZXNzaW9uKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggd2luZG93IikKIApAQCAtNDksMTkgKzU3LDI5IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBzZXNzaW9uLmZpbmQuY3NzKCIj
ZGVsZXRlIiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0ZXN0X3N0YWxlX2VsZW1lbnRfZnJvbV9pZnJh
bWUoc2Vzc2lvbik6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFkeV90
b3BfbGV2ZWwoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0Y2hf
dG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8g
c3VjaCB3aW5kb3ciKQorCisKK2RlZiB0ZXN0X3N3aXRjaF9mcm9tX2lmcmFtZShzZXNzaW9uLCBp
bmxpbmUsIGlmcmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5mb28i
KSkKICAgICBmcmFtZV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZh
bHNlKQogICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKGZyYW1lX2VsZW1lbnQpCi0gICAgc3RhbGVf
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKICAgICByZXN1bHQgPSBzd2l0Y2hf
dG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0KQogCi0g
ICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6Ci0g
ICAgICAgIHN0YWxlX2VsZW1lbnQudGV4dAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hF
bGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC50ZXh0CisKIAorZGVmIHRlc3Rfc3dp
dGNoX2Zyb21fdG9wX2xldmVsKHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxwPmZvbyIpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9
RmFsc2UpCiAKLWRlZiB0ZXN0X3N3aXRjaF9mcm9tX3RvcF9sZXZlbChzZXNzaW9uKToKICAgICBy
ZXN1bHQgPSBzd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzdWx0KQorCisgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiZm9vIgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9f
d2luZG93L3N3aXRjaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkKaW5kZXggOThiNGJlZTE2ZTJkLi4yOGQ0
MzJhOGI1YjQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fd2luZG93L3N3aXRjaC5weQpA
QCAtMSwzICsxLDYgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1w
b3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sIE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBmcm9tIHdl
YmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCkBAIC01MSwzICs1NCw0
NyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIHVybCk6CiAgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKICAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3dfaGFuZGxl
ID09IG5ld19oYW5kbGUKKworCitkZWYgdGVzdF9zd2l0Y2hfdG9fd2luZG93X3NldHNfdG9wX2xl
dmVsX2NvbnRleHQoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgorICAgIHNlc3Npb24udXJsID0g
aW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCisKKyAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3Mo
ImlmcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZSkKKyAg
ICBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBzd2l0
Y2hfdG9fd2luZG93KHNlc3Npb24sIHNlc3Npb24ud2luZG93X2hhbmRsZSkKKyAgICBhc3NlcnRf
c3VjY2VzcyhyZXNwb25zZSkKKworICAgIHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1G
YWxzZSkKKworCitkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZF9hZnRlcl90YWJfc3dpdGNoKHNl
c3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPSdhJz5mb28i
KQorICAgIHBhcmFncmFwaCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisKKyAg
ICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3codHlwZV9oaW50PSJ0
YWIiKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgor
ICAgICAgICBwYXJhZ3JhcGguYXR0cmlidXRlKCJpZCIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkaWFsb2dfdHlwZSIsIFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2Rl
ZiB0ZXN0X2ZpbmRzX2V4aXNpbmdfdXNlcl9wcm9tcHRfYWZ0ZXJfdGFiX3N3aXRjaChzZXNzaW9u
LCBkaWFsb2dfdHlwZSk6CisgICAgb3JpZ2luYWxfaGFuZGxlID0gc2Vzc2lvbi53aW5kb3dfaGFu
ZGxlCisgICAgbmV3X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCisKKyAgICBzZXNzaW9u
LmV4ZWN1dGVfc2NyaXB0KCJ7fSgnZm9vJyk7Ii5mb3JtYXQoZGlhbG9nX3R5cGUpKQorCisgICAg
cmVzcG9uc2UgPSBzd2l0Y2hfdG9fd2luZG93KHNlc3Npb24sIG5ld19oYW5kbGUpCisgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxl
cnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKworICAgIHNlc3Npb24u
d2luZG93LmNsb3NlKCkKKworICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3dpbmRvdyhzZXNzaW9u
LCBvcmlnaW5hbF9oYW5kbGUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBz
ZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50
X3NjcmVlbnNob3QvaWZyYW1lLnB5CmluZGV4IDgzZjU1ZGVmZjc1My4uZTdmMWIwYzgwNTNkIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rh
a2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5w
eQpAQCAtMiw3ICsyLDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBv
cnQgcG5nX2RpbWVuc2lvbnMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFt
ZSwgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zCiAKQEAgLTY4LDcg
KzY3LDcgQEAgZGVmIHRha2VfZWxlbWVudF9zY3JlZW5zaG90KHNlc3Npb24sIGVsZW1lbnRfaWQp
OgogICAgICkKIAogCi1kZWYgdGVzdF9mcmFtZV9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3Rf
ZnJhbWVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgIyBDcmVhdGUgYSBy
ZWZlcmVuY2UgZWxlbWVudCB3aGljaCBsb29rcyBleGFjdGx5IGxpa2UgdGhlIGZyYW1lJ3MgY29u
dGVudAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJ7MH17MX0iLmZvcm1hdChSRUZFUkVOQ0Vf
U1RZTEUsIFJFRkVSRU5DRV9DT05URU5UKSkKIApAQCAtOTcsNyArOTYsNyBAQCBkZWYgdGVzdF9m
cmFtZV9lbGVtZW50KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9t
YWluIiwgWyIiLCAiYWx0Il0sIGlkcz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdpbiJdKQot
ZGVmIHRlc3Rfc291cmNlX29yaWdpbihzZXNzaW9uLCB1cmwsIGRvbWFpbik6CitkZWYgdGVzdF9z
b3VyY2Vfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBkb21haW4pOgogICAgICMgQ3Jl
YXRlIGEgcmVmZXJlbmNlIGVsZW1lbnQgd2hpY2ggbG9va3MgZXhhY3RseSBsaWtlIHRoZSBpZnJh
bWUKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiezB9ezF9Ii5mb3JtYXQoUkVGRVJFTkNFX1NU
WUxFLCBSRUZFUkVOQ0VfQ09OVEVOVCkpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2NyZWVu
c2hvdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFr
ZV9lbGVtZW50X3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weQppbmRleCA2ZmY2Mzk2ZWRiMmEuLjRk
M2JmYjBlNWM2OCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3Nj
cmVlbnNob3Qvc2NyZWVuc2hvdC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuaW1hZ2UgaW1wb3J0IHBuZ19kaW1lbnNpb25zCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBlbGVtZW50X2RpbWVuc2lvbnMK
IApAQCAtMjAsNyArMTksNyBAQCBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uLCBjbG9zZWRfd2luZG93KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9z
ZWRfZnJhbWUpOgorZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRf
ZnJhbWUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzAs
NyArMjksNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9m
cmFtZSk6CiAgICAgYXNzZXJ0IHBuZ19kaW1lbnNpb25zKHNjcmVlbnNob3QpID09IGVsZW1lbnRf
ZGltZW5zaW9ucyhzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X3N0YWxlKHNlc3Npb24p
OgorZGVmIHRlc3Rfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0zOSw3ICszOCw3IEBAIGRlZiB0
ZXN0X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVt
ZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Np
b24pOgorZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91
c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQppbmRleCA1ZDFiNDk3
ZmYyYzQuLjM5ZmVmZTkzMjVhOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtl
X2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlh
bG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3BuZywgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiB0YWtlX2VsZW1l
bnRfc2NyZWVuc2hvdChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE3LDcgKzE2LDcgQEAgZGVm
IHRha2VfZWxlbWVudF9zY3JlZW5zaG90KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRl
c3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBl
LCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0z
NSw3ICszNCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAog
CiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6
CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAgICAg
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9z
Y3JlZW5zaG90L2lmcmFtZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lmcmFtZS5weQppbmRleCA2MDFjMDM5ZDU2ZGUuLjgx
ODgxYzFkYWU3MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lmcmFtZS5weQpA
QCAtMiw5ICsyLDggQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBvcnQg
cG5nX2RpbWVuc2lvbnMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwg
aW5saW5lCiAKLWZyb20gLiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zLCB2aWV3cG9ydF9kaW1l
bnNpb25zCitmcm9tIC4gaW1wb3J0IHZpZXdwb3J0X2RpbWVuc2lvbnMKIAogREVGQVVMVF9DT05U
RU5UID0gIjxkaXYgaWQ9J2NvbnRlbnQnPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvZGl2
PiIKIApAQCAtNjMsNyArNjIsNyBAQCBkZWYgdGFrZV9zY3JlZW5zaG90KHNlc3Npb24pOgogICAg
ICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L3NjcmVlbnNob3QiLmZvcm1hdCgqKnZh
cnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgaWZyYW1lX2NvbnRlbnQgPSAi
ezB9ezF9Ii5mb3JtYXQoSU5ORVJfSUZSQU1FX1NUWUxFLCBERUZBVUxUX0NPTlRFTlQpCiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiezB9ezF9IiIiLmZvcm1hdChPVVRFUl9JRlJBTUVfU1RZ
TEUsIGlmcmFtZShpZnJhbWVfY29udGVudCkpKQogCkBAIC04Miw3ICs4MSw3IEBAIGRlZiB0ZXN0
X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uKToKIAogCiBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRvbWFpbiIsIFsiIiwgImFsdCJdLCBpZHM9WyJzYW1lX29y
aWdpbiIsICJjcm9zc19vcmlnaW4iXSkKLWRlZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lvbiwg
ZG9tYWluKToKK2RlZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUs
IGRvbWFpbik6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoInswfXsxfSIuZm9ybWF0KFJFRkVS
RU5DRV9TVFlMRSwgUkVGRVJFTkNFX0NPTlRFTlQpKQogCiAgICAgcmVzcG9uc2UgPSB0YWtlX3Nj
cmVlbnNob3Qoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9zY3Jl
ZW5zaG90LnB5CmluZGV4IGQ2MTMwOTE5MTY3YS4uOWU3MWE2MzNjNzA4IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hv
dC9zY3JlZW5zaG90LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkKQEAgLTEsNiArMSw1IEBACiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfcG5n
LCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmltYWdlIGltcG9ydCBwbmdfZGlt
ZW5zaW9ucwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20g
LiBpbXBvcnQgdmlld3BvcnRfZGltZW5zaW9ucwogCkBAIC0xNSw3ICsxNCw3IEBAIGRlZiB0ZXN0
X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAKICAgICByZXNwb25zZSA9IHRha2Vfc2NyZWVuc2hv
dChzZXNzaW9uKQpAQCAtMjUsNyArMjQsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0IHBuZ19kaW1lbnNpb25zKHZhbHVl
KSA9PSB2aWV3cG9ydF9kaW1lbnNpb25zKHNlc3Npb24pCiAKIAotZGVmIHRlc3RfZm9ybWF0X2Fu
ZF9kaW1lbnNpb25zKHNlc3Npb24pOgorZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogCiAg
ICAgcmVzcG9uc2UgPSB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3Vz
ZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvdGFrZV9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQppbmRleCBhZDllMzY5NTE0OGQuLjdk
NTdmOGYyNzE2YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3VzZXJf
cHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfcG5nLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiAKIAogZGVmIHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKQEAgLTEyLDcg
KzExLDcgQEAgZGVmIHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKIApAQCAtMjksNyAr
MjgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
K2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC00NCw3ICs0Myw3IEBAIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438946</attachid>
            <date>2021-09-22 07:09:32 -0700</date>
            <delta_ts>2021-09-23 01:48:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-update-tests.diff</filename>
            <type>text/plain</type>
            <size>738034</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxODg1
NmNkYTNmYjguLmFiMWNlZTBlNzNhMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTIyICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViRHJpdmVyXSBV
cGRhdGUgdzNjIGFuZCBzZWxlbml1bSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHM6IFJ1biB3
aXRoIHB5dGhvbjMKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5OiBVc2Ug
YSBuZXdlciB2ZXJzaW9uIG9mIHB5dGVzdCBhbmQgaXRzIGRlcGVuZGVuY2llcyB0byBtYXRjaCB3
aGF0IHRlc3RzIGV4cGVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90
ZXN0cy9weXRlc3RfcnVubmVyLnB5OgorICAgICAgICAoY29sbGVjdCk6IFVzZSBjb250ZXh0bGli
IHRvIHJlZGlyZWN0IHN0ZG91dCB0byAvZGV2L251bGwgd2hpbGUgY29sbGVjdGluZyB0ZXN0cy4K
KyAgICAgICAgKHJ1bik6IFVzZSBFeGl0Q29kZSBuZXcgZW51bSBhZGRlZCB0byBweXRlc3QuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVu
aXVtX2V4ZWN1dG9yLnB5OgorICAgICAgICAoV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvci5fX2lu
aXRfXyk6IERvIG5vdCBlbmNvZGUgcGF0aHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5OgorICAgICAg
ICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLmNvbGxlY3RfdGVzdHMpOiBVc2UgaXRlbXMo
KSBpbnN0ZWFkIG9mIGl0ZXJpdGVtcygpIHRoYXQgZG9lc24ndCBleGlzdCBpbiBweXRob24zLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2Nf
ZXhlY3V0b3IucHk6CisgICAgICAgIChXZWJLaXREcml2ZXJTZXJ2ZXIuX19pbml0X18pOgorICAg
ICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX19pbml0X18pOgorICAgICAgICAoV2ViRHJpdmVy
VzNDRXhlY3V0b3Iuc2V0dXApOgorICAgICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX3J1bm5l
cik6CisKIDIwMjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4MjA4Mik6IFtHVEtdIFRlc3RzIHRpbWVvdXQg
d2hlbiB1c2luZyB4dmZiIGFmdGVyIHIyODIwODIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
cnVuLXdlYmRyaXZlci10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10ZXN0cwpp
bmRleCBmNDkxNzQ5NjNmOGUuLmUyNDY4NDM0NTNmYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy9ydW4td2ViZHJpdmVyLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10
ZXN0cwpAQCAtMSw0ICsxLDQgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uMwogCiAjIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgogIwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvX19pbml0X18ucHkKaW5kZXggZWI2ODBlNWE0ODljLi4xNzY4ZTg4NmI1ZGMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weQpAQCAtNTMsMTYgKzUzLDE3IEBAIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2Z1bmNzaWdzJywgVmVyc2lvbigxLCAwLCAyKSkpCiBBdXRv
SW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdpbXBvcnRsaWJfbWV0YWRhdGEnLCBWZXJzaW9uKDEs
IDcsIDApKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2dlbnNoaScsIFZlcnNpb24o
MCwgNywgMyksIHB5cGlfbmFtZT0nR2Vuc2hpJykpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNr
YWdlKCdodG1sNWxpYicsIFZlcnNpb24oMSwgMSkpKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFj
a2FnZSgnaW5pY29uZmlnJywgVmVyc2lvbigxLCAxLCAxKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3Rl
cihQYWNrYWdlKCdtZWNoYW5pemUnLCBWZXJzaW9uKDAsIDQsIDUpKSkKIEF1dG9JbnN0YWxsLnJl
Z2lzdGVyKFBhY2thZ2UoJ21vcmVfaXRlcnRvb2xzJywgVmVyc2lvbig0LCAyLCAwKSwgcHlwaV9u
YW1lPSdtb3JlLWl0ZXJ0b29scycpKQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW96
cHJvY2VzcycsIFZlcnNpb24oMSwgMiwgMCkpKQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2Fn
ZSgnbW96bG9nJywgVmVyc2lvbig2LCAxKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCdtb3pwcm9jZXNzJywgVmVyc2lvbigxLCAzLCAwKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQ
YWNrYWdlKCdtb3psb2cnLCBWZXJzaW9uKDcsIDEsIDApLCB3aGVlbD1UcnVlKSkKIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21venRlcm0nLCBWZXJzaW9uKDEsIDAsIDApKSkKLUF1dG9J
bnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3BsdWdneScsIFZlcnNpb24oMCwgNSwgMikpKQorQXV0
b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncGx1Z2d5JywgVmVyc2lvbigwLCAxMywgMSkpKQog
QXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHknLCBWZXJzaW9uKDEsIDUsIDIpKSkKK0F1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3B5dGVzdF9hc3luY2lvJywgVmVyc2lvbigwLCAx
NCksIHB5cGlfbmFtZT0ncHl0ZXN0LWFzeW5jaW8nKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBh
Y2thZ2UoJ3B5dGVzdF90aW1lb3V0JywgVmVyc2lvbigxLCA0LCAyKSwgcHlwaV9uYW1lPSdweXRl
c3QtdGltZW91dCcpKQotIyBQeXRlc3QgaGVsZCB0byAzLnggZHVlIHRvIFdQVCB3ZWJkcml2ZXIg
Y29tcGF0aWJpbGl0eQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVy
c2lvbigzLCA2LCAyKSwgaW1wbGljaXRfZGVwcz1bJ3B5dGVzdF90aW1lb3V0J10pKQorQXV0b0lu
c3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVyc2lvbig2LCAxLCAyKSwgaW1wbGlj
aXRfZGVwcz1bJ3B5dGVzdF9hc3luY2lvJywgJ3B5dGVzdF90aW1lb3V0J10pKQogQXV0b0luc3Rh
bGwucmVnaXN0ZXIoUGFja2FnZSgncHljb2Rlc3R5bGUnLCBWZXJzaW9uKDIsIDUsIDApKSkKIEF1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3NjYW5kaXInLCBWZXJzaW9uKDEsIDEwLCAwKSkp
CiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdzb3Vwc2lldmUnLCBWZXJzaW9uKDEsIDks
IDYpKSkKQEAgLTcwLDYgKzcxLDcgQEAgQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnc2Vs
ZW5pdW0nLCBWZXJzaW9uKDMsIDE0MSwgMCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2Fn
ZSgndG9tbCcsIFZlcnNpb24oMCwgMTAsIDEpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2th
Z2UoJ3djd2lkdGgnLCBWZXJzaW9uKDAsIDIsIDUpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBh
Y2thZ2UoJ3dlYmVuY29kaW5ncycsIFZlcnNpb24oMCwgNSwgMSkpKQorQXV0b0luc3RhbGwucmVn
aXN0ZXIoUGFja2FnZSgnd2Vic29ja2V0cycsIFZlcnNpb24oOCwgMSkpKQogQXV0b0luc3RhbGwu
cmVnaXN0ZXIoUGFja2FnZSgnemlwcCcsIFZlcnNpb24oMSwgMiwgMCkpKQogQXV0b0luc3RhbGwu
cmVnaXN0ZXIoUGFja2FnZSgnem9wZS5pbnRlcmZhY2UnLCBWZXJzaW9uKDUsIDEsIDApLCBhbGlh
c2VzPVsnem9wZSddLCBweXBpX25hbWU9J3pvcGUtaW50ZXJmYWNlJykpCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRlc3RfcnVubmVyLnB5
CmluZGV4IDBlYzY1Zjk0YmZhYy4uZjFlNDE0ODUyMmIxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRlc3RfcnVubmVyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkKQEAgLTIw
LDYgKzIwLDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBjb250
ZXh0bGliCiBpbXBvcnQgZXJybm8KIGltcG9ydCBvcwogaW1wb3J0IHNodXRpbApAQCAtMjksNyAr
MzAsNyBAQCBpbXBvcnQgdGVtcGZpbGUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi53ZWJraXRfZmlu
ZGVyIGltcG9ydCBXZWJLaXRGaW5kZXIKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5tYWlu
IGltcG9ydCBFWElUX0lOVEVSTkFMRVJST1IKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IEV4
aXRDb2RlCiAKIAogY2xhc3MgVGVtcG9yYXJ5RGlyZWN0b3J5KG9iamVjdCk6CkBAIC0xNjgsMTYg
KzE2OSwxNCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTWFya2VyKG9iamVjdCk6CiAKIGRlZiBj
b2xsZWN0KGRpcmVjdG9yeSwgYXJncywgaWdub3JlX3BhcmFtPU5vbmUpOgogICAgIGNvbGxlY3Rf
cmVjb3JkZXIgPSBDb2xsZWN0UmVjb3JkZXIoaWdub3JlX3BhcmFtKQotICAgIHN0ZG91dCA9IHN5
cy5zdGRvdXQKLSAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3diJykgYXMgZGV2bnVsbDoKLSAg
ICAgICAgc3lzLnN0ZG91dCA9IGRldm51bGwKLSAgICAgICAgd2l0aCBUZW1wb3JhcnlEaXJlY3Rv
cnkoKSBhcyBjYWNoZV9kaXJlY3Rvcnk6Ci0gICAgICAgICAgICBjbWQgPSBbJy0tY29sbGVjdC1v
bmx5JywKLSAgICAgICAgICAgICAgICAgICAnLS1iYXNldGVtcD0lcycgJSBjYWNoZV9kaXJlY3Rv
cnldCi0gICAgICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCi0gICAgICAgICAgICBjbWQuYXBwZW5k
KGRpcmVjdG9yeSkKLSAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1Z2lucz1bY29sbGVj
dF9yZWNvcmRlcl0pCi0gICAgc3lzLnN0ZG91dCA9IHN0ZG91dAorICAgIHdpdGggb3Blbihvcy5k
ZXZudWxsLCAndycpIGFzIGY6CisgICAgICAgIHdpdGggY29udGV4dGxpYi5yZWRpcmVjdF9zdGRv
dXQoZik6CisgICAgICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2Rp
cmVjdG9yeToKKyAgICAgICAgICAgICAgICBjbWQgPSBbJy0tY29sbGVjdC1vbmx5JywKKyAgICAg
ICAgICAgICAgICAgICAgICAgJy0tYmFzZXRlbXAnLCBjYWNoZV9kaXJlY3RvcnldCisgICAgICAg
ICAgICAgICAgY21kLmV4dGVuZChhcmdzKQorICAgICAgICAgICAgICAgIGNtZC5hcHBlbmQoZGly
ZWN0b3J5KQorICAgICAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1Z2lucz1bY29sbGVj
dF9yZWNvcmRlcl0pCiAgICAgcmV0dXJuIGNvbGxlY3RfcmVjb3JkZXIudGVzdHMKIAogCkBAIC0x
OTIsMTYgKzE5MSwxNiBAQCBkZWYgcnVuKHBhdGgsIGFyZ3MsIHRpbWVvdXQsIGVudiwgZXhwZWN0
YXRpb25zLCBpZ25vcmVfcGFyYW09Tm9uZSk6CiAgICAgd2l0aCBUZW1wb3JhcnlEaXJlY3Rvcnko
KSBhcyBjYWNoZV9kaXJlY3Rvcnk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGNtZCA9IFsn
LXZ2JywKLSAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJlPW5vJywKLSAgICAgICAgICAgICAg
ICAgICAnLS1iYXNldGVtcD0lcycgJSBjYWNoZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAg
ICAgJy0tY2FwdHVyZScsICdubycsCisgICAgICAgICAgICAgICAgICAgJy0tYmFzZXRlbXAnLCBj
YWNoZV9kaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgJy0tc2hvd2xvY2FscycsCi0gICAg
ICAgICAgICAgICAgICAgJy0tdGltZW91dD0lcycgJSB0aW1lb3V0LAorICAgICAgICAgICAgICAg
ICAgICctLXRpbWVvdXQnLCBzdHIodGltZW91dCksCiAgICAgICAgICAgICAgICAgICAgJy1wJywg
J25vOmNhY2hlcHJvdmlkZXInXQogICAgICAgICAgICAgY21kLmV4dGVuZChhcmdzKQogICAgICAg
ICAgICAgY21kLmFwcGVuZChwYXRoKQogICAgICAgICAgICAgcmVzdWx0ID0gcHl0ZXN0Lm1haW4o
Y21kLCBwbHVnaW5zPVtoYXJuZXNzX3JlY29yZGVyLCBzdWJ0ZXN0c19yZWNvcmRlciwgZXhwZWN0
YXRpb25zX21hcmtlcl0pCiAKLSAgICAgICAgICAgIGlmIHJlc3VsdCA9PSBFWElUX0lOVEVSTkFM
RVJST1I6CisgICAgICAgICAgICBpZiByZXN1bHQgPT0gRXhpdENvZGUuSU5URVJOQUxfRVJST1I6
CiAgICAgICAgICAgICAgICAgaGFybmVzc19yZWNvcmRlci5vdXRjb21lID0gKCdFUlJPUicsIE5v
bmUpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIGhhcm5lc3Nf
cmVjb3JkZXIub3V0Y29tZSA9ICgnRVJST1InLCBzdHIoZSkpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0
b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJf
c2VsZW5pdW1fZXhlY3V0b3IucHkKaW5kZXggZmJkNzYyNmY1NTllLi41ZTU3NDgzZGE2MjQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZl
cl9zZWxlbml1bV9leGVjdXRvci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRy
aXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHkKQEAgLTQwLDggKzQwLDgg
QEAgY2xhc3MgV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvcihvYmplY3QpOgogICAgICAgICBzZWxm
Ll9lbnYgPSBlbnYKICAgICAgICAgc2VsZi5fZW52LnVwZGF0ZShkcml2ZXIuYnJvd3Nlcl9lbnYo
KSkKIAotICAgICAgICBzZWxmLl9hcmdzID0gWyctLWRyaXZlcj0lcycgJSBzZWxmLl9kcml2ZXJf
bmFtZSwgJy0tZHJpdmVyLWJpbmFyeT0lcycgJSBkcml2ZXIuYmluYXJ5X3BhdGgoKS5lbmNvZGUo
KV0KLSAgICAgICAgYnJvd3Nlcl9wYXRoID0gZHJpdmVyLmJyb3dzZXJfcGF0aCgpLmVuY29kZSgp
CisgICAgICAgIHNlbGYuX2FyZ3MgPSBbJy0tZHJpdmVyPSVzJyAlIHNlbGYuX2RyaXZlcl9uYW1l
LCAnLS1kcml2ZXItYmluYXJ5PSVzJyAlIGRyaXZlci5iaW5hcnlfcGF0aCgpXQorICAgICAgICBi
cm93c2VyX3BhdGggPSBkcml2ZXIuYnJvd3Nlcl9wYXRoKCkKICAgICAgICAgaWYgYnJvd3Nlcl9w
YXRoOgogICAgICAgICAgICAgc2VsZi5fYXJncy5leHRlbmQoWyctLWJyb3dzZXItYmluYXJ5PSVz
JyAlIGJyb3dzZXJfcGF0aF0pCiAgICAgICAgIGJyb3dzZXJfYXJncyA9IGRyaXZlci5icm93c2Vy
X2FyZ3MoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVz
dHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5Cmlu
ZGV4IGIwYmVlYTBmOTE0Mi4uMDY1MTJlNGZkNzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVy
X3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdlYkRyaXZl
clRlc3RSdW5uZXJTZWxlbml1bShvYmplY3QpOgogICAgICAgICAjIENvbGxlY3RlZCB0ZXN0cyBh
cmUgcmVsYXRpdmUgdG8gdGVzdCBkaXJlY3RvcnkuCiAgICAgICAgIGJhc2VfZGlyID0gb3MucGF0
aC5qb2luKHNlbGYuX3Rlc3RzX2Rpciwgb3MucGF0aC5kaXJuYW1lKHJlbGF0aXZlX3Rlc3RzX2Rp
cikpCiAgICAgICAgIGNvbGxlY3RlZF90ZXN0cyA9IHt9Ci0gICAgICAgIGZvciB0ZXN0LCBzdWJ0
ZXN0cyBpbiBleGVjdXRvci5jb2xsZWN0KG9zLnBhdGguam9pbihzZWxmLl90ZXN0c19kaXIsIHJl
bGF0aXZlX3Rlc3RzX2RpcikpLml0ZXJpdGVtcygpOgorICAgICAgICBmb3IgdGVzdCwgc3VidGVz
dHMgaW4gZXhlY3V0b3IuY29sbGVjdChvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyLCByZWxh
dGl2ZV90ZXN0c19kaXIpKS5pdGVtcygpOgogICAgICAgICAgICAgY29sbGVjdGVkX3Rlc3RzW29z
LnBhdGguam9pbihiYXNlX2RpciwgdGVzdCldID0gc3VidGVzdHMKICAgICAgICAgc2VsZW5pdW1f
dGVzdHMgPSBbXQogICAgICAgICBpZiBub3QgdGVzdHM6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVj
dXRvci5weQppbmRleCBjYzJkMDc1YmMwYWYuLjE4NDNkZTU1Mzc3OSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVjdXRv
ci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2
ZXJfdzNjX2V4ZWN1dG9yLnB5CkBAIC0xMTUsOCArMTE1LDggQEAgY2xhc3MgV2ViS2l0RHJpdmVy
U2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAnLycKICAg
ICB0ZXN0X2VudiA9IE5vbmUKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFy
eT1Ob25lLCBwb3J0PU5vbmUsIGJhc2VfcGF0aD0nJywgYXJncz1Ob25lKToKLSAgICAgICAgV2Vi
RHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJh
c2VfcGF0aD1iYXNlX3BhdGgsIGFyZ3M9YXJncywgZW52PXNlbGYudGVzdF9lbnYpCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PU5vbmUsIHBvcnQ9Tm9uZSwgYmFzZV9wYXRo
PScnLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNlX3BhdGgs
IGVudj1zZWxmLnRlc3RfZW52LCBhcmdzPWFyZ3MpCiAKICAgICBkZWYgbWFrZV9jb21tYW5kKHNl
bGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCAnLS1wb3J0PSVzJyAlIHN0cihzZWxm
LnBvcnQpXSArIHNlbGYuX2FyZ3MKQEAgLTEzNSw4ICsxMzUsOCBAQCBjbGFzcyBXZWJEcml2ZXJX
M0NFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6CiAgICAgICAgIHNlcnZlcl9jb25maWcgPSB7J2Jy
b3dzZXJfaG9zdCc6IHNlcnZlci5ob3N0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rv
bWFpbnMnOiB7Jyc6IHsnJzogc2VydmVyLmhvc3QoKX0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2FsdCc6eyAnJzogJzEyNy4wLjAuMSd9fSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAncG9ydHMnOiB7J2h0dHAnOiBbc3RyKHNlcnZlci5odHRwX3BvcnQoKSldLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHMnOiBbc3RyKHNlcnZlci5o
dHRwc19wb3J0KCkpXX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnRzJzogeydodHRw
JzogW3NlcnZlci5odHRwX3BvcnQoKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdodHRwcyc6IFtzZXJ2ZXIuaHR0cHNfcG9ydCgpXX0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2RvY19yb290Jzogc2VydmVyLmRvY3VtZW50X3Jvb3QoKX0KICAgICAgICAgc2VsZi5y
dW5uZXIgPSBUZXN0UnVubmVyKCkKICAgICAgICAgV2RzcGVjRXhlY3V0b3IuX19pbml0X18oc2Vs
Ziwgc2VsZi5ydW5uZXIubG9nZ2VyLCBkcml2ZXIuYnJvd3Nlcl9uYW1lKCksIHNlcnZlcl9jb25m
aWcsIGRyaXZlci5iaW5hcnlfcGF0aCgpLCBOb25lLCBjYXBhYmlsaXRpZXM9ZHJpdmVyLmNhcGFi
aWxpdGllcygpKQpAQCAtMTQ3LDEzICsxNDcsMTMgQEAgY2xhc3MgV2ViRHJpdmVyVzNDRXhlY3V0
b3IoV2RzcGVjRXhlY3V0b3IpOgogICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUgPSBRdWV1ZSgp
CiAKICAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgIHNlbGYucHJvdG9jb2wuc2V0dXAoc2Vs
Zi5ydW5uZXIpCisgICAgICAgIHN1cGVyKFdlYkRyaXZlclczQ0V4ZWN1dG9yLCBzZWxmKS5zZXR1
cChzZWxmLnJ1bm5lcikKICAgICAgICAgYXJncyA9IChzZWxmLl90ZXN0X3F1ZXVlLAogICAgICAg
ICAgICAgICAgIHNlbGYuX3Jlc3VsdF9xdWV1ZSwKICAgICAgICAgICAgICAgICBzZWxmLnByb3Rv
Y29sLnNlc3Npb25fY29uZmlnWydob3N0J10sCiAgICAgICAgICAgICAgICAgc3RyKHNlbGYucHJv
dG9jb2wuc2Vzc2lvbl9jb25maWdbJ3BvcnQnXSksCiAgICAgICAgICAgICAgICAganNvbi5kdW1w
cyhzZWxmLnByb3RvY29sLnNlc3Npb25fY29uZmlnWydjYXBhYmlsaXRpZXMnXSksCi0gICAgICAg
ICAgICAgICAganNvbi5kdW1wcyhzZWxmLnNlcnZlcl9jb25maWcpLAorICAgICAgICAgICAgICAg
IHNlbGYuc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICBzZWxmLl90aW1lb3V0LAogICAg
ICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucykKICAgICAgICAgc2VsZi5fcHJvY2VzcyA9
IFByb2Nlc3ModGFyZ2V0PVdlYkRyaXZlclczQ0V4ZWN1dG9yLl9ydW5uZXIsIGFyZ3M9YXJncykK
QEAgLTE3NCwxMyArMTc0LDE4IEBAIGNsYXNzIFdlYkRyaXZlclczQ0V4ZWN1dG9yKFdkc3BlY0V4
ZWN1dG9yKToKICAgICAgICAgICAgIGlmIHRlc3QgPT0gJ1RFQVJET1dOJzoKICAgICAgICAgICAg
ICAgICBicmVhawogCi0gICAgICAgICAgICBlbnYgPSB7J1dEX0hPU1QnOiBob3N0LAotICAgICAg
ICAgICAgICAgICAgICdXRF9QT1JUJzogcG9ydCwKLSAgICAgICAgICAgICAgICAgICAnV0RfQ0FQ
QUJJTElUSUVTJzogY2FwYWJpbGl0aWVzLAotICAgICAgICAgICAgICAgICAgICdXRF9TRVJWRVJf
Q09ORklHJzogc2VydmVyX2NvbmZpZ30KLSAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJp
dmVyU2VydmVyLnRlc3RfZW52KQotICAgICAgICAgICAgYXJncyA9IFsnLS1zdHJpY3QnLCAnLXAn
LCAnbm86bW96bG9nJ10KLSAgICAgICAgICAgIHJlc3VsdF9xdWV1ZS5wdXQocHl0ZXN0X3J1bm5l
ci5ydW4odGVzdCwgYXJncywgdGltZW91dCwgZW52LCBleHBlY3RhdGlvbnMpKQorICAgICAgICAg
ICAgd2l0aCBweXRlc3RfcnVubmVyLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVj
dG9yeToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfY29uZmlnX3BhdGggPSBvcy5wYXRoLmpvaW4o
Y2FjaGVfZGlyZWN0b3J5LCAnd2Rfc2VydmVyX2NvbmZpZy5qc29uJykKKyAgICAgICAgICAgICAg
ICB3aXRoIG9wZW4oc2VydmVyX2NvbmZpZ19wYXRoLCAndycpIGFzIGY6CisgICAgICAgICAgICAg
ICAgICAgIGpzb24uZHVtcChzZXJ2ZXJfY29uZmlnLCBmKQorCisgICAgICAgICAgICAgICAgZW52
ID0geydXRF9IT1NUJzogaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ1dEX1BPUlQnOiBw
b3J0LAorICAgICAgICAgICAgICAgICAgICAgICAnV0RfQ0FQQUJJTElUSUVTJzogY2FwYWJpbGl0
aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAnV0RfU0VSVkVSX0NPTkZJR19GSUxFJzogc2Vy
dmVyX2NvbmZpZ19wYXRofQorICAgICAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJpdmVy
U2VydmVyLnRlc3RfZW52KQorICAgICAgICAgICAgICAgIGFyZ3MgPSBbJy0tc3RyaWN0JywgJy1w
JywgJ25vOm1vemxvZyddCisgICAgICAgICAgICAgICAgcmVzdWx0X3F1ZXVlLnB1dChweXRlc3Rf
cnVubmVyLnJ1bih0ZXN0LCBhcmdzLCB0aW1lb3V0LCBlbnYsIGV4cGVjdGF0aW9ucykpCiAKICAg
ICBkZWYgcnVuKHNlbGYsIHRlc3QpOgogICAgICAgICBzZWxmLl90ZXN0X3F1ZXVlLnB1dCh0ZXN0
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nIGIvV2ViRHJpdmVyVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDkwMmI5MmJmZWY5Yi4uNmQ0NTgwOGY1MGVmIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKKysrIGIvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJEcml2ZXJdIFVwZGF0ZSB3M2MgYW5kIHNlbGVu
aXVtIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA1NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWw6
CisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbjoKKyAgICAgICAgKiBp
bXBvcnRlZC9zZWxlbml1bS9weS86CisgICAgICAgICogaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpz
b246CisgICAgICAgICogaW1wb3J0ZWQvdzNjL3Rvb2xzLzoKKyAgICAgICAgKiBpbXBvcnRlZC93
M2Mvd2ViZHJpdmVyLzoKKwogMjAyMS0wOC0yMiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbV1BFXVtXZWJEcml2ZXJdIEJhc2ljIGZ1bGxzY3JlZW4gc3VwcG9y
dCBmb3IgdGhlIGhlYWRsZXNzIGJhY2tlbmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMuanNvbiBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNv
bgppbmRleCA0NTY2N2Y5NzJmMDMuLjk0MjlhNDIyMGNiNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucy5qc29uCisrKyBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMuanNvbgpAQCAtMjkxLDYgKzI5MSwzMCBAQAogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8yMTI5NTAifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5z
dXBwb3J0ZWRfc2NoZW1lW2Fib3V0XSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9
fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9z
Y2hlbWVbYmxvYl0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW2RhdGFd
IjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZB
SUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgInRlc3RfY29va2llX3Vuc3VwcG9ydGVkX3NjaGVtZVtmaWxlXSI6IHsKKyAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0
ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9zY2hlbWVbZnRwXSI6IHsKKyAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIzMDYxNiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91
bnN1cHBvcnRlZF9zY2hlbWVbamF2YXNjcmlwdF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8y
MzA2MTYifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBw
b3J0ZWRfc2NoZW1lW3dlYnNvY2tldF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYi
fX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRf
c2NoZW1lW3NlY3VyZSB3ZWJzb2NrZXRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2
In19CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9LApAQCAtNzQ0LDcgKzc2OCwxMCBA
QAogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNjQ1In19CiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAg
ICAgICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8yMTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTc2Myw3ICs3OTAsMTAgQEAKICAgICAi
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NsaWNrLnB5Ijogewog
ICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3Npbmdf
Y29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVz
IjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAg
ICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMw
NjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9
fQpAQCAtODAwLDEzICs4MzAsMTMgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7
Ci0gICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0WzxhIGhyZWY9Iz5saW5r
PGJyPnRleHQ8L2E+LWxpbmtcbnRleHRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVt
ZW50X2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPi1saW5rXFxudGV4dF0iOiB7
CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJd
LCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAidGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10
cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPi1MSU5LIFRFWFRdIjogewogICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgInRl
c3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8
YnI+dGV4dDwvYT4ta1xudF0iOiB7CisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRfcGFy
dGlhbF9saW5rX3RleHRbPGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXFxudF0i
OiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJ
TCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jIHN0
eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4tTElO
S10iOiB7CkBAIC04MjIsMTMgKzg1MiwxMyBAQAogICAgIH0sCiAgICAgImltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy9maW5kLnB5IjogewogICAgICAgICAic3VidGVz
dHMiOiB7Ci0gICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVm
PSM+bGluazxicj50ZXh0PC9hPi1saW5rXG50ZXh0XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2Zp
bmRfZWxlbWVudHNfbGlua190ZXh0WzxhIGhyZWY9Iz5saW5rPGJyPnRleHQ8L2E+LWxpbmtcXG50
ZXh0XSI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfbGlua190ZXh0WzxhIGhyZWY9IyBzdHls
ZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPi1MSU5LIFRFWFRdIjog
ewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgInRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFy
dGlhbCBsaW5rPGJyPnRleHQ8L2E+LWtcbnRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9l
bGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8
L2E+LWtcXG50XSI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRb
PGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsg
dGV4dDwvYT4tTElOS10iOiB7CkBAIC04NDQsMTMgKzg3NCwxMyBAQAogICAgIH0sCiAgICAgImlt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmlu
ZC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewotICAgICAgICAgICAgInRlc3RfZmluZF9l
bGVtZW50c19saW5rX3RleHRbPGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4tbGlua1xudGV4dF0i
OiB7CisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVmPSM+
bGluazxicj50ZXh0PC9hPi1saW5rXFxudGV4dF0iOiB7CiAgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8x
ODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRz
X2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPmxp
bmsgdGV4dDwvYT4tTElOSyBURVhUXSI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9
fQogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlh
bF9saW5rX3RleHRbPGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXG50XSI6IHsK
KyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRbPGEgaHJl
Zj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXFxudF0iOiB7CiAgICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5kX2Vs
ZW1lbnRzX3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06
IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJTktdIjogewpAQCAtODY5LDEzICs4
OTksMTMgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewot
ICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxi
cj50ZXh0PC9hPi1saW5rXG50ZXh0XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVu
dF9saW5rX3RleHRbPGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4tbGlua1xcbnRleHRdIjogewog
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgInRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJh
bnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4tTElOSyBURVhUXSI6IHsKICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0
X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJy
PnRleHQ8L2E+LWtcbnRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X3BhcnRp
YWxfbGlua190ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xcbnRdIjog
ewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgInRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9IyBzdHls
ZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJTktd
IjogewpAQCAtOTM1LDcgKzk2NSwxMCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfc2VuZF9rZXlzL3NlbmRfa2V5cy5weSI6IHsKICAgICAgICAgInN1YnRlc3Rz
IjogewogICAgICAgICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVn
IjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
CisgICAgICAgICAgICAgICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjog
IndlYmtpdC5vcmcvYi8yMTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2Nv
bnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6
IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTExNTIsNyArMTE4
NSwxMCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0
dHJpYnV0ZS9nZXQucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0
ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEy
OTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAgICAg
ICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUw
In0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVn
IjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0IjogewogICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMTYzLDcgKzExOTksMTAgQEAKICAgICAiaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5Ijogewog
ICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3Npbmdf
Y29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVz
IjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAg
ICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMw
NjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9
fQpAQCAtMTE3NCw3ICsxMjEzLDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7
CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4
dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJG
QUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTE5Niw3ICsxMjM4LDEw
IEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25h
bWUvZ2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9u
b190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9
fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndw
ZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAor
ICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0
Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTIxOCw3ICsxMjYzLDEwIEBACiAgICAgImltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkiOiB7CiAgICAgICAgICJz
dWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0Ijog
ewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogeworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93
c2luZ19jb250ZXh0IjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJz
dGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzY4
LDcgKzE0MTYsMTAgQEAKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIwNTkyMyJ9fQogICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19j
b250ZXh0IjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzc5LDcgKzE0
MzAsMTAgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3Nl
bGVjdGVkL3NlbGVjdGVkLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAg
ICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAg
ICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIx
Mjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTQ0Miw3ICsxNDk2LDEwIEBACiAgICAgImlt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkiOiB7
CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2lu
Z19jb250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0
dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjA1OTk0In19CisgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjA1OTk0In0sCisgICAgICAgICAgICAg
ICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8y
MzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0sCkBAIC0xNDk1LDUgKzE1NTIsMjkgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL21pbmltaXplX3dpbmRvdy9taW5pbWl6ZS5weSIgOiB7CiAgICAgICAgICJl
eHBlY3RlZCI6IHsgIndwZSI6IHsgInN0YXR1cyI6IFsiU0tJUCJdIH0gfQorICAgIH0sCisgICAg
ImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jv
b3QvZmluZC5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjog
WyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImlt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3Qv
dXNlcl9wcm9tcHRzLnB5IjogeworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0
dXMiOiBbIlNLSVAiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAg
ICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93
X3Jvb3QvZmluZC5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVz
IjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAg
ImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19y
b290L3VzZXJfcHJvbXB0cy5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAi
c3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0s
CisgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jv
b3QvZ2V0LnB5IjogeworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBb
IlNLSVAiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAiaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC91c2VyX3By
b21wdHMucHkiOiB7CisgICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsi
U0tJUCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICB9LAorICAgICJpbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JpZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weSI6IHsK
KyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIzMDYxNSJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vd2Vic29ja2V0X3VybC5weSI6IHsKKyAgICAgICAgImV4
cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIzMDYxNSJ9fQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5o
dG1sCmluZGV4IGZjYWMyNTJlODk5YS4uMTY5MGFkMDdkZDc5IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5o
dG1sCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2phdmFzY3JpcHRQYWdlLmh0bWwKQEAgLTg2LDcgKzg2LDcgQEAKICAgPC9kaXY+CiAKIDwvZGl2
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwogPGRpdiBpZD0iZm9ybWFnZWRk
b24iPgogICAgIDxmb3JtIGFjdGlvbj0iIyI+CiAgICAgICAgIEtleSBVcDogPGlucHV0IHR5cGU9
InRleHQiIGlkPSJrZXlVcCIgb25rZXl1cD0iamF2YXNjcmlwdDp1cGRhdGVDb250ZW50KHRoaXMp
Ii8+PGJyLz4KQEAgLTE1MSwxNSArMTUxLDE1IEBACiAgICAgICAgICAgIC8+CiAKICAgICA8aW5w
dXQgaWQ9ImNoYW5nZWFibGUiIG5hbWU9ImNoYW5nZWFibGUiIG9uZm9jdXM9ImFwcGVuZE1lc3Nh
Z2UoJ2ZvY3VzJykiIG9uY2hhbmdlPSJhcHBlbmRNZXNzYWdlKCdjaGFuZ2UnKSIgb25ibHVyPSJh
cHBlbmRNZXNzYWdlKCdibHVyJykiLz4KLSAgICAgICAgICAgCi0gICAgPGJ1dHRvbiB0eXBlPSJi
dXR0b24iIGlkPSJwbGFpbkJ1dHRvbiIgCisKKyAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9
InBsYWluQnV0dG9uIgogICAgIAkJb25mb2N1cz0iYXBwZW5kTWVzc2FnZSgnZm9jdXMnKSIKICAg
ICAgICAgICAgCW9ua2V5ZG93bj0iYXBwZW5kTWVzc2FnZSgna2V5ZG93bicpIgogICAgICAgICAg
ICAJb25rZXlwcmVzcz0iYXBwZW5kTWVzc2FnZSgna2V5cHJlc3MnKSIKICAgICAgICAgICAgCW9u
a2V5dXA9ImFwcGVuZE1lc3NhZ2UoJ2tleXVwJykiCiAgICAgICAgICAgIAlvbmJsdXI9ImFwcGVu
ZE1lc3NhZ2UoJ2JsdXInKSIKICAgICAgICAgICAgCW9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2Ns
aWNrJykiCi0gICAgICAgICAgIAlvbm1vdXNlZG93bj0iYXBwZW5kTWVzc2FnZSgnbW91c2Vkb3du
ICcpIiAKKyAgICAgICAgICAgCW9ubW91c2Vkb3duPSJhcHBlbmRNZXNzYWdlKCdtb3VzZWRvd24g
JykiCiAgICAgICAgICAgIAlvbm1vdXNldXA9ImFwcGVuZE1lc3NhZ2UoJ21vdXNldXAgJykiCiAg
ICAgICAgICAgICBvbm1vdXNlb3Zlcj0icmVnaXN0ZXIoJ21vdXNlb3ZlciAnKSIKICAgICAgICAg
ICAgIG9ubW91c2Vtb3ZlPSJyZWdpc3RlcignbW91c2Vtb3ZlICcpIgpAQCAtMTczLDcgKzE3Myw3
IEBACiAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIG9uY2xpY2s9InZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N3aXRjaEZvY3VzJyk7IHZhciBjbGlja0V2ZW50ID0gZG9j
dW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnRzJyk7IGNsaWNrRXZlbnQuaW5pdE1vdXNlRXZl
bnQoJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSwgbnVsbCwgMCwgMCwgMCwgMCwgMCxmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgMCwgZWxlbWVudCk7ZWxlbWVudC5kaXNwYXRjaEV2ZW50KGNsaWNrRXZl
bnQpOyI+RG8gbWFnaWM8L2J1dHRvbj48YnIvPgogICAgIDxsYWJlbCBpZD0ibGFiZWxGb3JDaGVj
a2JveCIgZm9yPSJsYWJlbGVkQ2hlY2tib3giIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2xhYmVs
Y2xpY2snKSI+VG9nZ2xlIGNoZWNrYm94PC9sYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlk
PSJsYWJlbGVkQ2hlY2tib3giIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NoYm94Y2xpY2snKSIv
PgogICA8L2Zvcm0+Ci0gIAorCiAgIDxmb3JtIGFjdGlvbj0iamF2YXNjcmlwdFBhZ2UuaHRtbCIg
aWQ9InN1Ym1pdExpc3RlbmluZ0Zvcm0iIG9uc3VibWl0PSJhcHBlbmRNZXNzYWdlKCdmb3JtLW9u
c3VibWl0ICcpOyByZXR1cm4gZmFsc2U7Ij4KICAgICA8cD4KICAgICAgIDxpbnB1dCBpZD0ic3Vi
bWl0TGlzdGVuaW5nRm9ybS10ZXh0IiB0eXBlPSJ0ZXh0IiBvbnN1Ym1pdD0iYXBwZW5kTWVzc2Fn
ZSgndGV4dC1vbnN1Ym1pdCAnKSIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgndGV4dC1vbmNsaWNr
ICcpOyIgLz4KQEAgLTE5OCw3ICsxOTgsNyBAQAogICAgICAgICA8YSBocmVmPSIjIiBpZD0iaGlk
ZGVubGluayI+b2s8L2E+CiAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KLSAgICAKKwogICAgIDxk
aXYgc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbjsiPgogICAgICAgPHNwYW4+CiAgICAgICAgIDxp
bnB1dCBpZD0idW5jbGlja2FibGUiIC8+CkBAIC0yNjUsNyArMjY1LDcgQEAKIAogPGEgaWQ9Im5l
d193aW5kb3ciIG9ubW91c2V1cD0id2luZG93Lm9wZW4oJ2Nsb3NlYWJsZV93aW5kb3cuaHRtbCcs
ICdjbG9zZV9tZScpIiBocmVmPSIjIj5DbGljayBtZSB0byBvcGVuIGEgbmV3IHdpbmRvdzwvYT4K
IAotPGEgaWQ9InRocm93aW5nLW1vdXNlb3ZlciIgb25tb3VzZW92ZXI9InRocm93IG5ldyBFcnJv
cigpIiBocmVmPSIjdGhyb3dpbmctbW91c2VvdmVyIj5Nb3VzZSBvdmVyIG1lIHdpbGwgdGhyb3cg
YSBKUyBlcnJvcjwvYT4KKzxhIGlkPSJ0aHJvd2luZy1tb3VzZW92ZXIiIG9ubW91c2VvdmVyPSJ0
aHJvdyBuZXcgRXJyb3IoJ0kgbGlrZSBjaGVlc2UnKSIgaHJlZj0iI3Rocm93aW5nLW1vdXNlb3Zl
ciI+TW91c2Ugb3ZlciBtZSB3aWxsIHRocm93IGEgSlMgZXJyb3I8L2E+CiAKIDxkaXYgaWQ9InBh
cmVudCI+CiAgICAgPHNwYW4gaWQ9Im1vdmFibGUiIG9ubW91c2VvdmVyPSJ2YXIgcCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdtb3ZhYmxlJyk7IGRpc3BsYXlNZXNzYWdlKCdwYXJlbnQgbWF0
Y2hlcz8gJyArIChwICE9IGV2ZW50LnJlbGF0ZWRUYXJnZXQpKTsiPgpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbiBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb24KaW5kZXggZDk4NWM4ZWRhYzc1Li41
YmEwYzNhNWQzMDMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2ltcG9ydGVyLmpzb24KKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1w
b3J0ZXIuanNvbgpAQCAtMSw2ICsxLDYgQEAKIHsKICAgICAicmVwb3NpdG9yeSI6ICJodHRwczov
L2dpdGh1Yi5jb20vU2VsZW5pdW1IUS9zZWxlbml1bS5naXQiLAotICAgICJyZXZpc2lvbiI6ICJk
NGY5ZmUyMTNkZDZlNWIxMGI4OWJlMzYwYmU2MzU3NDdlZDNlMTM4IiwKKyAgICAicmV2aXNpb24i
OiAiZTNmY2Y3OTEyMzljMGU5YmE1YzA0Njg2MDI1ZjU3OGI1NjFlY2Q2ZiIsCiAgICAgInBhdGhz
X3RvX2ltcG9ydCI6IFsKICAgICAgICAgImNvbW1vbiIsCiAgICAgICAgICJweS9jb25mdGVzdC5w
eSIsCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25m
dGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5
CmluZGV4IDZkNjRmM2ZmZTdjMC4uYjIzNThiN2Y2NWU5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQpAQCAtMTYsMzEgKzE2LDI1IEBACiAj
IHVuZGVyIHRoZSBMaWNlbnNlLgogCiBpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQogaW1wb3J0
IHNvY2tldAogaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAKIGlt
cG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5za2lwcGluZyBpbXBvcnQgTWFya0V2YWx1YXRvcgog
CiBmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVy
IGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCiBmcm9tIHRlc3Quc2VsZW5pdW0ud2ViZHJpdmVy
LmNvbW1vbi53ZWJzZXJ2ZXIgaW1wb3J0IFNpbXBsZVdlYlNlcnZlcgogZnJvbSB0ZXN0LnNlbGVu
aXVtLndlYmRyaXZlci5jb21tb24ubmV0d29yayBpbXBvcnQgZ2V0X2xhbl9pcAogCi1pZiBzeXMu
dmVyc2lvbl9pbmZvWzBdID09IDM6Ci0gICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJs
b3BlbgotZWxzZToKLSAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsb3BlbgorZnJvbSB1cmxsaWIu
cmVxdWVzdCBpbXBvcnQgdXJsb3BlbgogCiBkcml2ZXJzID0gKAotICAgICdCbGFja0JlcnJ5JywK
ICAgICAnQ2hyb21lJywKICAgICAnRWRnZScsCiAgICAgJ0ZpcmVmb3gnLAogICAgICdJZScsCi0g
ICAgJ01hcmlvbmV0dGUnLAogICAgICdSZW1vdGUnLAogICAgICdTYWZhcmknLAogICAgICdXZWJL
aXRHVEsnLApAQCAtODIsMTAgKzc2LDI4IEBAIGRlZiBkcml2ZXIocmVxdWVzdCk6CiAgICAgZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoaXMgdGVzdCBy
ZXF1aXJlcyBhIC0tZHJpdmVyIHRvIGJlIHNwZWNpZmllZC4nKQogCisgICAgIyBza2lwIHRlc3Rz
IGlmIG5vdCBhdmFpbGFibGUgb24gdGhlIHBsYXRmb3JtCisgICAgX3BsYXRmb3JtID0gcGxhdGZv
cm0uc3lzdGVtKCkKKyAgICBpZiBkcml2ZXJfY2xhc3MgPT0gIlNhZmFyaSIgYW5kIF9wbGF0Zm9y
bSAhPSAiRGFyd2luIjoKKyAgICAgICAgcHl0ZXN0LnNraXAoIlNhZmFyaSB0ZXN0cyBjYW4gb25s
eSBydW4gb24gYW4gQXBwbGUgT1MiKQorICAgIGlmIChkcml2ZXJfY2xhc3MgPT0gIkllIiBvciBk
cml2ZXJfY2xhc3MgPT0gIkVkZ2UiKSBhbmQgX3BsYXRmb3JtICE9ICJXaW5kb3dzIjoKKyAgICAg
ICAgcHl0ZXN0LnNraXAoIklFIGFuZCBFZGdlSFRNTCBUZXN0cyBjYW4gb25seSBydW4gb24gV2lu
ZG93cyIpCisgICAgaWYgIldlYktpdCIgaW4gZHJpdmVyX2NsYXNzIGFuZCBfcGxhdGZvcm0gIT0g
IkxpbnV4IjoKKyAgICAgICAgcHl0ZXN0LnNraXAoIldlYmtpdCB0ZXN0cyBjYW4gb25seSBydW4g
b24gTGludXgiKQorCiAgICAgIyBjb25kaXRpb25hbGx5IG1hcmsgdGVzdHMgYXMgZXhwZWN0ZWQg
dG8gZmFpbCBiYXNlZCBvbiBkcml2ZXIKLSAgICByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbCA9IHJl
cXVlc3Qubm9kZS5fZXZhbHhmYWlsIG9yIE1hcmtFdmFsdWF0b3IoCi0gICAgICAgIHJlcXVlc3Qu
bm9kZSwgJ3hmYWlsX3swfScuZm9ybWF0KGRyaXZlcl9jbGFzcy5sb3dlcigpKSkKLSAgICBpZiBy
ZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5pc3RydWUoKToKKyAgICBtYXJrZXIgPSByZXF1ZXN0Lm5v
ZGUuZ2V0X2Nsb3Nlc3RfbWFya2VyKCd4ZmFpbF97MH0nLmZvcm1hdChkcml2ZXJfY2xhc3MubG93
ZXIoKSkpCisKKyAgICBpZiBtYXJrZXIgaXMgbm90IE5vbmU6CisgICAgICAgIGlmICJydW4iIGlu
IG1hcmtlci5rd2FyZ3M6CisgICAgICAgICAgICBpZiBtYXJrZXIua3dhcmdzWyJydW4iXSBpcyBG
YWxzZToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgpCisgICAgICAgICAgICAgICAgeWll
bGQKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgInJhaXNlcyIgaW4gbWFya2Vy
Lmt3YXJnczoKKyAgICAgICAgICAgIG1hcmtlci5rd2FyZ3MucG9wKCJyYWlzZXMiKQorICAgICAg
ICBweXRlc3QueGZhaWwoKiptYXJrZXIua3dhcmdzKQorCiAgICAgICAgIGRlZiBmaW4oKToKICAg
ICAgICAgICAgIGdsb2JhbCBkcml2ZXJfaW5zdGFuY2UKICAgICAgICAgICAgIGlmIGRyaXZlcl9p
bnN0YW5jZSBpcyBub3QgTm9uZToKQEAgLTkzLDI1ICsxMDUsMTIgQEAgZGVmIGRyaXZlcihyZXF1
ZXN0KToKICAgICAgICAgICAgIGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKICAgICAgICAgcmVxdWVz
dC5hZGRmaW5hbGl6ZXIoZmluKQogCi0gICAgIyBza2lwIGRyaXZlciBpbnN0YW50aWF0aW9uIGlm
IHhmYWlsKHJ1bj1GYWxzZSkKLSAgICBpZiBub3QgcmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCdy
dW54ZmFpbCcpOgotICAgICAgICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5pc3RydWUoKToK
LSAgICAgICAgICAgIGlmIHJlcXVlc3Qubm9kZS5fZXZhbHhmYWlsLmdldCgncnVuJykgaXMgRmFs
c2U6Ci0gICAgICAgICAgICAgICAgeWllbGQKLSAgICAgICAgICAgICAgICByZXR1cm4KLQogICAg
IGRyaXZlcl9wYXRoID0gcmVxdWVzdC5jb25maWcub3B0aW9uLmV4ZWN1dGFibGUKICAgICBvcHRp
b25zID0gTm9uZQogCiAgICAgZ2xvYmFsIGRyaXZlcl9pbnN0YW5jZQogICAgIGlmIGRyaXZlcl9p
bnN0YW5jZSBpcyBOb25lOgotICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ0JsYWNrQmVycnkn
OgotICAgICAgICAgICAga3dhcmdzLnVwZGF0ZSh7J2RldmljZV9wYXNzd29yZCc6ICdwYXNzd29y
ZCd9KQogICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ0ZpcmVmb3gnOgotICAgICAgICAgICAg
a3dhcmdzLnVwZGF0ZSh7J2NhcGFiaWxpdGllcyc6IHsnbWFyaW9uZXR0ZSc6IEZhbHNlfX0pCi0g
ICAgICAgICAgICBvcHRpb25zID0gZ2V0X29wdGlvbnMoZHJpdmVyX2NsYXNzLCByZXF1ZXN0LmNv
bmZpZykKLSAgICAgICAgaWYgZHJpdmVyX2NsYXNzID09ICdNYXJpb25ldHRlJzoKLSAgICAgICAg
ICAgIGRyaXZlcl9jbGFzcyA9ICdGaXJlZm94JwogICAgICAgICAgICAgb3B0aW9ucyA9IGdldF9v
cHRpb25zKGRyaXZlcl9jbGFzcywgcmVxdWVzdC5jb25maWcpCiAgICAgICAgIGlmIGRyaXZlcl9j
bGFzcyA9PSAnUmVtb3RlJzoKICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IERlc2lyZWRDYXBh
YmlsaXRpZXMuRklSRUZPWC5jb3B5KCkKQEAgLTEyOSw3ICsxMjgsOCBAQCBkZWYgZHJpdmVyKHJl
cXVlc3QpOgogICAgICAgICAgICAga3dhcmdzWydvcHRpb25zJ10gPSBvcHRpb25zCiAgICAgICAg
IGRyaXZlcl9pbnN0YW5jZSA9IGdldGF0dHIod2ViZHJpdmVyLCBkcml2ZXJfY2xhc3MpKCoqa3dh
cmdzKQogICAgIHlpZWxkIGRyaXZlcl9pbnN0YW5jZQotICAgIGlmIE1hcmtFdmFsdWF0b3IocmVx
dWVzdC5ub2RlLCAnbm9fZHJpdmVyX2FmdGVyX3Rlc3QnKS5pc3RydWUoKToKKworICAgIGlmIHJl
cXVlc3Qubm9kZS5nZXRfY2xvc2VzdF9tYXJrZXIoIm5vX2RyaXZlcl9hZnRlcl90ZXN0Iik6CiAg
ICAgICAgIGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKIAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9fLnB5CmluZGV4IDRh
MDQ5Yjg1OTEzMi4uMzIzY2FhZWI3OTBjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQpAQCAtMTYsNCArMTYs
NCBAQAogIyB1bmRlciB0aGUgTGljZW5zZS4KIAogCi1fX3ZlcnNpb25fXyA9ICI0LjAuMGE2Igor
X192ZXJzaW9uX18gPSAiNC4wLjBhNyIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkK
aW5kZXggNGNiMTFjODlkNThlLi5lODI3YjA3ZTFlM2EgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9l
eGNlcHRpb25zLnB5CkBAIC0xNTgsNyArMTU4LDcgQEAgY2xhc3MgRWxlbWVudE5vdFZpc2libGVF
eGNlcHRpb24oSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CiBjbGFzcyBFbGVtZW50Tm90
SW50ZXJhY3RhYmxlRXhjZXB0aW9uKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgogICAg
ICIiIgogICAgIFRocm93biB3aGVuIGFuIGVsZW1lbnQgaXMgcHJlc2VudCBpbiB0aGUgRE9NIGJ1
dCBpbnRlcmFjdGlvbnMKLSAgICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90aGVyIGVs
ZW1lbnQgZG8gdG8gcGFpbnQgb3JkZXIKKyAgICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBh
bm90aGVyIGVsZW1lbnQgZHVlIHRvIHBhaW50IG9yZGVyCiAgICAgIiIiCiAgICAgcGFzcwogCkBA
IC0yNzMsNyArMjczLDcgQEAgY2xhc3MgU2NyZWVuc2hvdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNl
cHRpb24pOgogY2xhc3MgRWxlbWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVy
RXhjZXB0aW9uKToKICAgICAiIiIKICAgICBUaGUgRWxlbWVudCBDbGljayBjb21tYW5kIGNvdWxk
IG5vdCBiZSBjb21wbGV0ZWQgYmVjYXVzZSB0aGUgZWxlbWVudCByZWNlaXZpbmcgdGhlIGV2ZW50
cwotICAgIGlzIG9ic2N1cmluZyB0aGUgZWxlbWVudCB0aGF0IHdhcyByZXF1ZXN0ZWQgY2xpY2tl
ZC4KKyAgICBpcyBvYnNjdXJpbmcgdGhlIGVsZW1lbnQgdGhhdCB3YXMgcmVxdWVzdGVkIHRvIGJl
IGNsaWNrZWQuCiAgICAgIiIiCiAgICAgcGFzcwogCkBAIC0yODgsNyArMjg4LDcgQEAgY2xhc3Mg
SW5zZWN1cmVDZXJ0aWZpY2F0ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogCiBjbGFz
cyBJbnZhbGlkQ29vcmRpbmF0ZXNFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAi
IiIKLSAgICBUaGUgY29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50ZXJhY3Rpb25zIG9wZXJh
dGlvbiBhcmUgaW52YWxpZC4KKyAgICBUaGUgY29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50
ZXJhY3Rpb24ncyBvcGVyYXRpb24gYXJlIGludmFsaWQuCiAgICAgIiIiCiAgICAgcGFzcwogCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkKaW5kZXggOWI5M2RjYzI4NDdjLi5lNzU3
NjM2YWM3NWIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTE2LDE0
ICsxNiwxNCBAQAogIyB1bmRlciB0aGUgTGljZW5zZS4KIAogZnJvbSAuc2FmYXJpLndlYmRyaXZl
ciBpbXBvcnQgV2ViRHJpdmVyIGFzIFNhZmFyaSAgIyBub3FhCi1mcm9tIC53ZWJraXRndGsud2Vi
ZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgV2ViS2l0R1RLICMgbm9xYQotZnJvbSAud2Via2l0
Z3RrLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMgYXMgV2ViS2l0R1RLT3B0aW9ucyAjIG5vcWEKLWZy
b20gLndwZXdlYmtpdC53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXUEVXZWJLaXQgIyBu
b3FhCi1mcm9tIC53cGV3ZWJraXQub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXUEVXZWJLaXRP
cHRpb25zICMgbm9xYQorZnJvbSAud2Via2l0Z3RrLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVy
IGFzIFdlYktpdEdUSyAgIyBub3FhCitmcm9tIC53ZWJraXRndGsub3B0aW9ucyBpbXBvcnQgT3B0
aW9ucyBhcyBXZWJLaXRHVEtPcHRpb25zICAjIG5vcWEKK2Zyb20gLndwZXdlYmtpdC53ZWJkcml2
ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXUEVXZWJLaXQgICMgbm9xYQorZnJvbSAud3Bld2Via2l0
Lm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMgYXMgV1BFV2ViS2l0T3B0aW9ucyAgIyBub3FhCiBmcm9t
IC5yZW1vdGUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgUmVtb3RlICAjIG5vcWEKIGZy
b20gLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGll
cyAgIyBub3FhCiBmcm9tIC5jb21tb24uYWN0aW9uX2NoYWlucyBpbXBvcnQgQWN0aW9uQ2hhaW5z
ICAjIG5vcWEKIGZyb20gLmNvbW1vbi50b3VjaF9hY3Rpb25zIGltcG9ydCBUb3VjaEFjdGlvbnMg
ICMgbm9xYQogZnJvbSAuY29tbW9uLnByb3h5IGltcG9ydCBQcm94eSAgIyBub3FhCiAKLV9fdmVy
c2lvbl9fID0gJzQuMC4wYTYnCitfX3ZlcnNpb25fXyA9ICc0LjAuMGE3JwpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9vcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5CmluZGV4IGJmZjI1MTcyN2IzZS4uOTIw
MzQ4MTI4OWQyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL29wdGlvbnMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25z
LnB5CkBAIC00OSwxMiArNDksMTIgQEAgY2xhc3MgQmFzZU9wdGlvbnMob2JqZWN0KToKICAgICAg
ICAgIiIiUmV0dXJuIG1pbmltYWwgY2FwYWJpbGl0aWVzIG5lY2Vzc2FyeSBhcyBhIGRpY3Rpb25h
cnkuIiIiCiAKIAotCiBjbGFzcyBBcmdPcHRpb25zKEJhc2VPcHRpb25zKToKIAogICAgIGRlZiBf
X2luaXRfXyhzZWxmKToKICAgICAgICAgc3VwZXIoQXJnT3B0aW9ucywgc2VsZikuX19pbml0X18o
KQogICAgICAgICBzZWxmLl9hcmd1bWVudHMgPSBbXQorICAgICAgICBzZWxmLl9pZ25vcmVfbG9j
YWxfcHJveHkgPSBGYWxzZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGFyZ3VtZW50cyhzZWxm
KToKQEAgLTc1LDYgKzc1LDEyIEBAIGNsYXNzIEFyZ09wdGlvbnMoQmFzZU9wdGlvbnMpOgogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignYXJndW1lbnQgY2FuIG5v
dCBiZSBudWxsJykKIAorICAgIGRlZiBpZ25vcmVfbG9jYWxfcHJveHlfZW52aXJvbm1lbnRfdmFy
aWFibGVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIEJ5IGNhbGxpbmcgdGhpcyB5
b3Ugd2lsbCBpZ25vcmUgSFRUUF9QUk9YWSBhbmQgSFRUUFNfUFJPWFkgZnJvbSBiZWluZyBwaWNr
ZWQgdXAgYW5kIHVzZWQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9pZ25vcmVfbG9jYWxf
cHJveHkgPSBUcnVlCisKICAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5fY2FwcwogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Nl
cnZpY2UucHkKaW5kZXggZDIwYTkwMmZhYzdlLi44YzMyZTBkYmVjYzEgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vc2VydmljZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkKQEAgLTQ2LDYgKzQ2LDggQEAgY2xh
c3MgU2VydmljZShvYmplY3QpOgogCiAgICAgICAgIHNlbGYuc3RhcnRfZXJyb3JfbWVzc2FnZSA9
IHN0YXJ0X2Vycm9yX21lc3NhZ2UKICAgICAgICAgc2VsZi5sb2dfZmlsZSA9IGxvZ19maWxlCisg
ICAgICAgICMgRGVmYXVsdCB2YWx1ZSBmb3IgZXZlcnkgcHl0aG9uIHN1YnByb2Nlc3M6IHN1YnBy
b2Nlc3MuUG9wZW4oLi4uLCBjcmVhdGlvbmZsYWdzPTApCisgICAgICAgIHNlbGYuY3JlYXRpb25m
bGFncyA9IDAKICAgICAgICAgc2VsZi5lbnYgPSBlbnYgb3Igb3MuZW52aXJvbgogCiAgICAgQHBy
b3BlcnR5CkBAIC03Myw3ICs3NSw4IEBAIGNsYXNzIFNlcnZpY2Uob2JqZWN0KToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXBsYXRmb3JtLnN5
c3RlbSgpICE9ICdXaW5kb3dzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PXNlbGYubG9nX2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zZWxmLmxvZ19maWxlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1QSVBFKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1QSVBFLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbmZsYWdzPXNlbGYuY3JlYXRpb25m
bGFncykKICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKICAgICAgICAgICAgIHJhaXNlCiAgICAg
ICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKQEAgLTk4LDkgKzEwMSwxMCBAQCBjbGFzcyBTZXJ2
aWNlKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydF9wcm9jZXNzX3N0aWxsX3J1bm5p
bmcoKQogICAgICAgICAgICAgaWYgc2VsZi5pc19jb25uZWN0YWJsZSgpOgogICAgICAgICAgICAg
ICAgIGJyZWFrCisKICAgICAgICAgICAgIGNvdW50ICs9IDEKLSAgICAgICAgICAgIHRpbWUuc2xl
ZXAoMSkKLSAgICAgICAgICAgIGlmIGNvdW50ID09IDMwOgorICAgICAgICAgICAgdGltZS5zbGVl
cCgwLjUpCisgICAgICAgICAgICBpZiBjb3VudCA9PSA2MDoKICAgICAgICAgICAgICAgICByYWlz
ZSBXZWJEcml2ZXJFeGNlcHRpb24oIkNhbiBub3QgY29ubmVjdCB0byB0aGUgU2VydmljZSAlcyIg
JSBzZWxmLnBhdGgpCiAKICAgICBkZWYgYXNzZXJ0X3Byb2Nlc3Nfc3RpbGxfcnVubmluZyhzZWxm
KToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CmluZGV4IDk1N2Yy
ZmQyNjY5OS4uMWY2MGU0NDU3M2EyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vdXRpbHMucHkKQEAgLTM2LDcgKzM2LDcgQEAgZGVmIGZyZWVfcG9ydCgpOgogICAgIERldGVy
bWluZXMgYSBmcmVlIHBvcnQgdXNpbmcgc29ja2V0cy4KICAgICAiIiIKICAgICBmcmVlX3NvY2tl
dCA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKLSAg
ICBmcmVlX3NvY2tldC5iaW5kKCgnMC4wLjAuMCcsIDApKQorICAgIGZyZWVfc29ja2V0LmJpbmQo
KCcxMjcuMC4wLjEnLCAwKSkKICAgICBmcmVlX3NvY2tldC5saXN0ZW4oNSkKICAgICBwb3J0ID0g
ZnJlZV9zb2NrZXQuZ2V0c29ja25hbWUoKVsxXQogICAgIGZyZWVfc29ja2V0LmNsb3NlKCkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0
aW9uLnB5CmluZGV4IDZmMWMxYjQ3MTIwNy4uMjQ0OGMxYjA2YjRjIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3Rl
L3JlbW90ZV9jb25uZWN0aW9uLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkKQEAg
LTE0MSw3ICsxNDEsNyBAQCBjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAg
IHJldHVybiB1cmxsaWIzLlBvb2xNYW5hZ2VyKCoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykgaWYg
c2VsZi5fcHJveHlfdXJsIGlzIE5vbmUgZWxzZSBcCiAgICAgICAgICAgICB1cmxsaWIzLlByb3h5
TWFuYWdlcihzZWxmLl9wcm94eV91cmwsICoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykKIAotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9RmFsc2Us
IHJlc29sdmVfaXA9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJf
YWRkciwga2VlcF9hbGl2ZT1GYWxzZSwgcmVzb2x2ZV9pcD1Ob25lLCBpZ25vcmVfcHJveHk9RmFs
c2UpOgogICAgICAgICBpZiByZXNvbHZlX2lwIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaW1w
b3J0IHdhcm5pbmdzCiAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKApAQCAtMTQ5LDcgKzE0OSw3
IEBAIGNsYXNzIFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICBEZXBy
ZWNhdGlvbldhcm5pbmcpCiAgICAgICAgIHNlbGYua2VlcF9hbGl2ZSA9IGtlZXBfYWxpdmUKICAg
ICAgICAgc2VsZi5fdXJsID0gcmVtb3RlX3NlcnZlcl9hZGRyCi0gICAgICAgIHNlbGYuX3Byb3h5
X3VybCA9IHNlbGYuX2dldF9wcm94eV91cmwoKQorICAgICAgICBzZWxmLl9wcm94eV91cmwgPSBz
ZWxmLl9nZXRfcHJveHlfdXJsKCkgaWYgbm90IGlnbm9yZV9wcm94eSBlbHNlIE5vbmUKICAgICAg
ICAgaWYga2VlcF9hbGl2ZToKICAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSBzZWxmLl9nZXRfY29u
bmVjdGlvbl9tYW5hZ2VyKCkKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGNsYXNzIFJlbW90ZUNvbm5l
Y3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC9lbGVtZW50LyRpZC92YWx1ZScpLAogICAgICAgICAgICAgQ29tbWFuZC5TRU5EX0tFWVNf
VE9fQUNUSVZFX0VMRU1FTlQ6CiAgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRz
ZXNzaW9uSWQva2V5cycpLAotICAgICAgICAgICAgQ29tbWFuZC5VUExPQURfRklMRTogKCdQT1NU
JywgIi9zZXNzaW9uLyRzZXNzaW9uSWQvZmlsZSIpLAorICAgICAgICAgICAgQ29tbWFuZC5VUExP
QURfRklMRTogKCdQT1NUJywgIi9zZXNzaW9uLyRzZXNzaW9uSWQvc2UvZmlsZSIpLAogICAgICAg
ICAgICAgQ29tbWFuZC5HRVRfRUxFTUVOVF9WQUxVRToKICAgICAgICAgICAgICAgICAoJ0dFVCcs
ICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL3ZhbHVlJyksCiAgICAgICAgICAgICBD
b21tYW5kLkdFVF9FTEVNRU5UX1RBR19OQU1FOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvcmVtb3RlL3dlYmRyaXZlci5weQppbmRleCA2MjI4MmQ1MjY5NWIuLmM0ODMxMDNkM2E1MCAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkKQEAg
LTIwLDE5ICsyMCwyMyBAQAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEKIGltcG9ydCBiYXNlNjQK
IGltcG9ydCBjb3B5Ci1mcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCitmcm9t
IGNvbnRleHRsaWIgaW1wb3J0IChjb250ZXh0bWFuYWdlciwgYXN5bmNjb250ZXh0bWFuYWdlcikK
K2ltcG9ydCBpbXBvcnRsaWIKIGltcG9ydCBwa2d1dGlsCiBpbXBvcnQgd2FybmluZ3MKK2ltcG9y
dCBzeXMKIAogZnJvbSAuY29tbWFuZCBpbXBvcnQgQ29tbWFuZAogZnJvbSAuZXJyb3JoYW5kbGVy
IGltcG9ydCBFcnJvckhhbmRsZXIKIGZyb20gLmZpbGVfZGV0ZWN0b3IgaW1wb3J0IEZpbGVEZXRl
Y3RvciwgTG9jYWxGaWxlRGV0ZWN0b3IKIGZyb20gLm1vYmlsZSBpbXBvcnQgTW9iaWxlCiBmcm9t
IC5yZW1vdGVfY29ubmVjdGlvbiBpbXBvcnQgUmVtb3RlQ29ubmVjdGlvbgorZnJvbSAuc2NyaXB0
X2tleSBpbXBvcnQgU2NyaXB0S2V5CiBmcm9tIC5zd2l0Y2hfdG8gaW1wb3J0IFN3aXRjaFRvCiBm
cm9tIC53ZWJlbGVtZW50IGltcG9ydCBXZWJFbGVtZW50CiAKIGZyb20gc2VsZW5pdW0uY29tbW9u
LmV4Y2VwdGlvbnMgaW1wb3J0IChJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSmF2YXNjcmlwdEV4Y2VwdGlvbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJFeGNlcHRpb24sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9TdWNoQ29va2llRXhjZXB0
aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVua25vd25NZXRo
b2RFeGNlcHRpb24pCkBAIC00OCw2ICs1MiwxNCBAQCB0cnk6CiBleGNlcHQgTmFtZUVycm9yOgog
ICAgIHBhc3MKIAorY2RwID0gTm9uZQorCisKK2RlZiBpbXBvcnRfY2RwKCk6CisgICAgZ2xvYmFs
IGNkcAorICAgIGlmIGNkcCBpcyBOb25lOgorICAgICAgICBjZHAgPSBpbXBvcnRsaWIuaW1wb3J0
X21vZHVsZSgic2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5iaWRpLmNkcCIpCisKIAogX1czQ19D
QVBBQklMSVRZX05BTUVTID0gZnJvemVuc2V0KFsKICAgICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycs
CkBAIC02OCw2ICs4MCw4IEBAIF9PU1NfVzNDX0NPTlZFUlNJT04gPSB7CiAgICAgJ3BsYXRmb3Jt
JzogJ3BsYXRmb3JtTmFtZScKIH0KIAorZGV2dG9vbHMgPSBOb25lCisKIAogZGVmIF9tYWtlX3cz
Y19jYXBzKGNhcHMpOgogICAgICIiIk1ha2VzIGEgVzNDIGFsd2F5c01hdGNoIGNhcGFiaWxpdGll
cyBvYmplY3QuCkBAIC0xMDIsNyArMTE2LDcgQEAgZGVmIF9tYWtlX3czY19jYXBzKGNhcHMpOgog
ICAgIHJldHVybiB7ImZpcnN0TWF0Y2giOiBbe31dLCAiYWx3YXlzTWF0Y2giOiBhbHdheXNfbWF0
Y2h9CiAKIAotZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRf
ZXhlY3V0b3IsIGtlZXBfYWxpdmUpOgorZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmls
aXRpZXMsIGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmUsIGlnbm9yZV9sb2NhbF9wcm94eT1G
YWxzZSk6CiAgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLnJlbW90ZV9jb25uZWN0
aW9uIGltcG9ydCBTYWZhcmlSZW1vdGVDb25uZWN0aW9uCiAKICAgICBjYW5kaWRhdGVzID0gW1Jl
bW90ZUNvbm5lY3Rpb25dICsgW1NhZmFyaVJlbW90ZUNvbm5lY3Rpb25dCkBAIC0xMTEsNyArMTI1
LDcgQEAgZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhl
Y3V0b3IsIGtlZXBfYWxpdmUpOgogICAgICAgICBSZW1vdGVDb25uZWN0aW9uCiAgICAgKQogCi0g
ICAgcmV0dXJuIGhhbmRsZXIoY29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZl
KQorICAgIHJldHVybiBoYW5kbGVyKGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmU9a2VlcF9h
bGl2ZSwgaWdub3JlX3Byb3h5PWlnbm9yZV9sb2NhbF9wcm94eSkKIAogCiBAYWRkX21ldGFjbGFz
cyhBQkNNZXRhKQpAQCAtMTYzLDggKzE3NywxMCBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRy
aXZlcik6CiAgICAgICAgICAtIG9wdGlvbnMgLSBpbnN0YW5jZSBvZiBhIGRyaXZlciBvcHRpb25z
Lk9wdGlvbnMgY2xhc3MKICAgICAgICAgIiIiCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHt9Cisg
ICAgICAgIF9pZ25vcmVfbG9jYWxfcHJveHkgPSBGYWxzZQogICAgICAgICBpZiBvcHRpb25zIGlz
IG5vdCBOb25lOgogICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gb3B0aW9ucy50b19jYXBhYmls
aXRpZXMoKQorICAgICAgICAgICAgX2lnbm9yZV9sb2NhbF9wcm94eSA9IG9wdGlvbnMuX2lnbm9y
ZV9sb2NhbF9wcm94eQogICAgICAgICBpZiBkZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBub3QgTm9u
ZToKICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRlc2lyZWRfY2FwYWJpbGl0aWVzLCBk
aWN0KToKICAgICAgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkRlc2lyZWQg
Q2FwYWJpbGl0aWVzIG11c3QgYmUgYSBkaWN0aW9uYXJ5IikKQEAgLTE3MiwxMCArMTg4LDEzIEBA
IGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBjYXBhYmls
aXRpZXMudXBkYXRlKGRlc2lyZWRfY2FwYWJpbGl0aWVzKQogICAgICAgICBzZWxmLmNvbW1hbmRf
ZXhlY3V0b3IgPSBjb21tYW5kX2V4ZWN1dG9yCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5j
b21tYW5kX2V4ZWN1dG9yLCAoc3RyLCBieXRlcykpOgotICAgICAgICAgICAgc2VsZi5jb21tYW5k
X2V4ZWN1dG9yID0gZ2V0X3JlbW90ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29tbWFuZF9l
eGVjdXRvcj1jb21tYW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlPWtlZXBfYWxpdmUpCisgICAgICAg
ICAgICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IgPSBnZXRfcmVtb3RlX2Nvbm5lY3Rpb24oY2FwYWJp
bGl0aWVzLCBjb21tYW5kX2V4ZWN1dG9yPWNvbW1hbmRfZXhlY3V0b3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcF9hbGl2ZT1r
ZWVwX2FsaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlnbm9yZV9sb2NhbF9wcm94eT1faWdub3JlX2xvY2FsX3Byb3h5KQogICAg
ICAgICBzZWxmLl9pc19yZW1vdGUgPSBUcnVlCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5v
bmUKLSAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSB7fQorICAgICAgICBzZWxmLmNhcHMgPSB7
fQorICAgICAgICBzZWxmLnBpbm5lZF9zY3JpcHRzID0ge30KICAgICAgICAgc2VsZi5lcnJvcl9o
YW5kbGVyID0gRXJyb3JIYW5kbGVyKCkKICAgICAgICAgc2VsZi5zdGFydF9jbGllbnQoKQogICAg
ICAgICBzZWxmLnN0YXJ0X3Nlc3Npb24oY2FwYWJpbGl0aWVzLCBicm93c2VyX3Byb2ZpbGUpCkBA
IC0yMzUsOCArMjU0LDggQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAg
ICAgICAgICAgICAgbmFtZSA9IGRyaXZlci5uYW1lCiAgICAgICAgICIiIgotICAgICAgICBpZiAn
YnJvd3Nlck5hbWUnIGluIHNlbGYuY2FwYWJpbGl0aWVzOgotICAgICAgICAgICAgcmV0dXJuIHNl
bGYuY2FwYWJpbGl0aWVzWydicm93c2VyTmFtZSddCisgICAgICAgIGlmICdicm93c2VyTmFtZScg
aW4gc2VsZi5jYXBzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2Fwc1snYnJvd3Nlck5hbWUn
XQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ2Jyb3dzZXJOYW1l
IG5vdCBzcGVjaWZpZWQgaW4gc2Vzc2lvbiBjYXBhYmlsaXRpZXMnKQogCkBAIC0yNzksMTIgKzI5
OCwxMiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgIGlmICdzZXNz
aW9uSWQnIG5vdCBpbiByZXNwb25zZToKICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2Vb
J3ZhbHVlJ10KICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gcmVzcG9uc2VbJ3Nlc3Npb25JZCdd
Ci0gICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCd2YWx1ZScpCisgICAg
ICAgIHNlbGYuY2FwcyA9IHJlc3BvbnNlLmdldCgndmFsdWUnKQogCiAgICAgICAgICMgaWYgY2Fw
YWJpbGl0aWVzIGlzIG5vbmUgd2UgYXJlIHByb2JhYmx5IHNwZWFraW5nIHRvCiAgICAgICAgICMg
YSBXM0MgZW5kcG9pbnQKLSAgICAgICAgaWYgc2VsZi5jYXBhYmlsaXRpZXMgaXMgTm9uZToKLSAg
ICAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCdjYXBhYmlsaXRpZXMn
KQorICAgICAgICBpZiBzZWxmLmNhcHMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY2FwcyA9
IHJlc3BvbnNlLmdldCgnY2FwYWJpbGl0aWVzJykKIAogICAgICAgICAjIERvdWJsZSBjaGVjayB0
byBzZWUgaWYgd2UgaGF2ZSBhIFczQyBDb21wbGlhbnQgYnJvd3NlcgogICAgICAgICBzZWxmLncz
YyA9IHJlc3BvbnNlLmdldCgnc3RhdHVzJykgaXMgTm9uZQpAQCAtNjg5LDYgKzcwOCwyNiBAQCBj
bGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgIHdhcm5pbmdzLndhcm4oImZp
bmRfZWxlbWVudHNfYnlfKiBjb21tYW5kcyBhcmUgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBmaW5k
X2VsZW1lbnRzKCkgaW5zdGVhZCIpCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMo
Ynk9QnkuQ1NTX1NFTEVDVE9SLCB2YWx1ZT1jc3Nfc2VsZWN0b3IpCiAKKyAgICBkZWYgcGluX3Nj
cmlwdChzZWxmLCBzY3JpcHQpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAgICAg
c2NyaXB0X2tleSA9IFNjcmlwdEtleSgpCisgICAgICAgIHNlbGYucGlubmVkX3NjcmlwdHNbc2Ny
aXB0X2tleS5pZF0gPSBzY3JpcHQKKyAgICAgICAgcmV0dXJuIHNjcmlwdF9rZXkKKworICAgIGRl
ZiB1bnBpbihzZWxmLCBzY3JpcHRfa2V5KToKKyAgICAgICAgIiIiCisKKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYucGlubmVkX3NjcmlwdHMucG9wKHNjcmlwdF9rZXkuaWQpCisKKyAgICBkZWYg
Z2V0X3Bpbm5lZF9zY3JpcHRzKHNlbGYpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAg
ICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5waW5uZWRfc2NyaXB0cy5rZXlzKCkpCisKICAgICBkZWYg
ZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCAqYXJncyk6CiAgICAgICAgICIiIgogICAgICAg
ICBTeW5jaHJvbm91c2x5IEV4ZWN1dGVzIEphdmFTY3JpcHQgaW4gdGhlIGN1cnJlbnQgd2luZG93
L2ZyYW1lLgpAQCAtNzAyLDYgKzc0MSwxMiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZl
cik6CiAKICAgICAgICAgICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1
bWVudC50aXRsZTsnKQogICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzY3JpcHQs
IFNjcmlwdEtleSk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2NyaXB0ID0g
c2VsZi5waW5uZWRfc2NyaXB0c1tzY3JpcHQuaWRdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJy
b3I6CisgICAgICAgICAgICAgICAgcmFpc2UgSmF2YXNjcmlwdEV4Y2VwdGlvbigiUGlubmVkIHNj
cmlwdCBjb3VsZCBub3QgYmUgZm91bmQiKQorCiAgICAgICAgIGNvbnZlcnRlZF9hcmdzID0gbGlz
dChhcmdzKQogICAgICAgICBjb21tYW5kID0gTm9uZQogICAgICAgICBpZiBzZWxmLnczYzoKQEAg
LTEwNjcsOCArMTExMiw3IEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKIAogICAg
IGRlZiBmaW5kX2VsZW1lbnQoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAi
IiIKLSAgICAgICAgRmluZCBhbiBlbGVtZW50IGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0
b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50X2J5XyogbWV0aG9kcyB3aGVuCi0gICAgICAgIHBv
c3NpYmxlLgorICAgICAgICBGaW5kIGFuIGVsZW1lbnQgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQg
bG9jYXRvci4KIAogICAgICAgICA6VXNhZ2U6CiAgICAgICAgICAgICA6OgpAQCAtMTA5NSw4ICsx
MTM5LDcgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgZGVmIGZpbmRf
ZWxlbWVudHMoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIKLSAgICAg
ICAgRmluZCBlbGVtZW50cyBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLiBQcmVmZXIg
dGhlIGZpbmRfZWxlbWVudHNfYnlfKiBtZXRob2RzIHdoZW4KLSAgICAgICAgcG9zc2libGUuCisg
ICAgICAgIEZpbmQgZWxlbWVudHMgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4KIAog
ICAgICAgICA6VXNhZ2U6CiAgICAgICAgICAgICA6OgpAQCAtMTEwOCw3ICsxMTUxLDcgQEAgY2xh
c3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogICAgICAgICBpZiBpc2luc3RhbmNlKGJ5LCBS
ZWxhdGl2ZUJ5KToKICAgICAgICAgICAgIF9wa2cgPSAnLicuam9pbihfX25hbWVfXy5zcGxpdCgn
LicpWzotMV0pCiAgICAgICAgICAgICByYXdfZnVuY3Rpb24gPSBwa2d1dGlsLmdldF9kYXRhKF9w
a2csICdmaW5kRWxlbWVudHMuanMnKS5kZWNvZGUoJ3V0ZjgnKQotICAgICAgICAgICAgZmluZF9l
bGVtZW50X2pzID0gInJldHVybiAoJXMpLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7IiAlIHJhd19m
dW5jdGlvbgorICAgICAgICAgICAgZmluZF9lbGVtZW50X2pzID0gInJldHVybiAoe30pLmFwcGx5
KG51bGwsIGFyZ3VtZW50cyk7Ii5mb3JtYXQocmF3X2Z1bmN0aW9uKQogICAgICAgICAgICAgcmV0
dXJuIHNlbGYuZXhlY3V0ZV9zY3JpcHQoZmluZF9lbGVtZW50X2pzLCBieS50b19kaWN0KCkpCiAK
ICAgICAgICAgaWYgc2VsZi53M2M6CkBAIC0xMTM1LDcgKzExNzgsMTYgQEAgY2xhc3MgV2ViRHJp
dmVyKEJhc2VXZWJEcml2ZXIpOgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJucyB0aGUgZHJp
dmVycyBjdXJyZW50IGRlc2lyZWQgY2FwYWJpbGl0aWVzIGJlaW5nIHVzZWQKICAgICAgICAgIiIi
Ci0gICAgICAgIHJldHVybiBzZWxmLmNhcGFiaWxpdGllcworICAgICAgICB3YXJuaW5ncy53YXJu
KCJkZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBkZXByZWNhdGVkLiBQbGVhc2UgY2FsbCBjYXBhYmls
aXRpZXMuIiwKKyAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNr
bGV2ZWw9MikKKyAgICAgICAgcmV0dXJuIHNlbGYuY2FwcworCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIGNhcGFiaWxpdGllcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybnMgdGhl
IGRyaXZlcnMgY3VycmVudCBjYXBhYmlsaXRpZXMgYmVpbmcgdXNlZC4KKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLmNhcHMKIAogICAgIGRlZiBnZXRfc2NyZWVuc2hvdF9hc19maWxl
KHNlbGYsIGZpbGVuYW1lKToKICAgICAgICAgIiIiCkBAIC0xNDE3LDMgKzE0NjksMTEwIEBAIGNs
YXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBkcml2ZXIuZ2V0
X2xvZygnc2VydmVyJykKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUo
Q29tbWFuZC5HRVRfTE9HLCB7J3R5cGUnOiBsb2dfdHlwZX0pWyd2YWx1ZSddCisKKyAgICBAYXN5
bmNjb250ZXh0bWFuYWdlcgorICAgIGFzeW5jIGRlZiBhZGRfanNfZXJyb3JfbGlzdGVuZXIoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBMaXN0ZW5zIGZvciBKUyBlcnJvcnMgYW5kIHdoZW4g
dGhlIGNvbnRleHRtYW5hZ2VyIGV4aXRzIGNoZWNrIGlmIHRoZXJlIHdlcmUgSlMgRXJyb3JzCisK
KyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBhc3lu
YyB3aXRoIGRyaXZlci5hZGRfanNfZXJyb3JfbGlzdGVuZXIoKSBhcyBlcnJvcjoKKyAgICAgICAg
ICAgICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInRocm93aW5nLW1vdXNlb3Zl
ciIpLmNsaWNrKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgZXJyb3IgaXMgbm90IE5vbmUKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgZXJyb3IuZXhjZXB0aW9uX2RldGFpbHMuc3RhY2tfdHJhY2Uu
Y2FsbF9mcmFtZXNbMF0uZnVuY3Rpb25fbmFtZSA9PSAib25tb3VzZW92ZXIiCisgICAgICAgICIi
IgorICAgICAgICBhc3NlcnQgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNykKKyAgICAgICAgZ2xv
YmFsIGNkcAorICAgICAgICBhc3luYyB3aXRoIHNlbGYuX2dldF9iaWRpX2Nvbm5lY3Rpb24oKToK
KyAgICAgICAgICAgIGdsb2JhbCBkZXZ0b29scworICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5n
ZXRfc2Vzc2lvbl9jb250ZXh0KCdwYWdlLmVuYWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNz
aW9uLmV4ZWN1dGUoZGV2dG9vbHMucGFnZS5lbmFibGUoKSkKKyAgICAgICAgICAgIHNlc3Npb24g
PSBjZHAuZ2V0X3Nlc3Npb25fY29udGV4dCgncnVudGltZS5lbmFibGUnKQorICAgICAgICAgICAg
YXdhaXQgc2Vzc2lvbi5leGVjdXRlKGRldnRvb2xzLnJ1bnRpbWUuZW5hYmxlKCkpCisgICAgICAg
ICAgICBqc19leGNlcHRpb24gPSBkZXZ0b29scy5ydW50aW1lLkV4Y2VwdGlvblRocm93bihOb25l
LCBOb25lKQorICAgICAgICAgICAgYXN5bmMgd2l0aCBzZXNzaW9uLndhaXRfZm9yKGRldnRvb2xz
LnJ1bnRpbWUuRXhjZXB0aW9uVGhyb3duKSBhcyBleGNlcHRpb246CisgICAgICAgICAgICAgICAg
eWllbGQganNfZXhjZXB0aW9uCisgICAgICAgICAgICBqc19leGNlcHRpb24udGltZXN0YW1wID0g
ZXhjZXB0aW9uLnZhbHVlLnRpbWVzdGFtcAorICAgICAgICAgICAganNfZXhjZXB0aW9uLmV4Y2Vw
dGlvbl9kZXRhaWxzID0gZXhjZXB0aW9uLnZhbHVlLmV4Y2VwdGlvbl9kZXRhaWxzCisKKyAgICBA
YXN5bmNjb250ZXh0bWFuYWdlcgorICAgIGFzeW5jIGRlZiBhZGRfbGlzdGVuZXIoc2VsZiwgZXZl
bnRfdHlwZSk6CisgICAgICAgICcnJworICAgICAgICBMaXN0ZW5zIGZvciBjZXJ0YWluIGV2ZW50
cyB0aGF0IGFyZSBwYXNzZWQgaW4uCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV2ZW50
X3R5cGU6IFRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgd2Ugd2FudCB0byBsb29rIGF0LgorCisgICAg
ICAgICA6VXNhZ2U6CisgICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGFzeW5jIHdp
dGggZHJpdmVyLmFkZF9saXN0ZW5lcihDb25zb2xlLmxvZykgYXMgbWVzc2FnZXM6CisgICAgICAg
ICAgICAgICAgICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgiY29uc29sZS5sb2coJ0kgbGlrZSBj
aGVlc2UnKSIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IG1lc3NhZ2VzWyJtZXNzYWdlIl0gPT0g
IkkgbG92ZSBjaGVlc2UiCisKKyAgICAgICAgJycnCisgICAgICAgIGFzc2VydCBzeXMudmVyc2lv
bl9pbmZvID49ICgzLCA3KQorICAgICAgICBnbG9iYWwgY2RwCisgICAgICAgIGZyb20gc2VsZW5p
dW0ud2ViZHJpdmVyLmNvbW1vbi5iaWRpLmNvbnNvbGUgaW1wb3J0IENvbnNvbGUKKworICAgICAg
ICBhc3luYyB3aXRoIHNlbGYuX2dldF9iaWRpX2Nvbm5lY3Rpb24oKToKKyAgICAgICAgICAgIGds
b2JhbCBkZXZ0b29scworICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9jb250
ZXh0KCdwYWdlLmVuYWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUoZGV2
dG9vbHMucGFnZS5lbmFibGUoKSkKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nlc3Np
b25fY29udGV4dCgnY29uc29sZS5lbmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5l
eGVjdXRlKGRldnRvb2xzLmNvbnNvbGUuZW5hYmxlKCkpCisgICAgICAgICAgICBjb25zb2xlID0g
eworICAgICAgICAgICAgICAgICJtZXNzYWdlIjogTm9uZSwKKyAgICAgICAgICAgICAgICAibGV2
ZWwiOiBOb25lCisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3luYyB3aXRoIHNlc3Npb24u
d2FpdF9mb3IoZGV2dG9vbHMuY29uc29sZS5NZXNzYWdlQWRkZWQpIGFzIG1lc3NhZ2VzOgorICAg
ICAgICAgICAgICAgIHlpZWxkIGNvbnNvbGUKKyAgICAgICAgICAgIGlmIGV2ZW50X3R5cGUgPT0g
Q29uc29sZS5FUlJPUjoKKyAgICAgICAgICAgICAgICBpZiBtZXNzYWdlcy52YWx1ZS5tZXNzYWdl
LmxldmVsID09ICJlcnJvciI6CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbIm1lc3NhZ2Ui
XSA9IG1lc3NhZ2VzLnZhbHVlLm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAgICAgICBjb25z
b2xlWyJsZXZlbCJdID0gbWVzc2FnZXMudmFsdWUubWVzc2FnZS5sZXZlbAorICAgICAgICAgICAg
ZWxpZiBldmVudF90eXBlID09IENvbnNvbGUuQUxMOgorICAgICAgICAgICAgICAgIGNvbnNvbGVb
Im1lc3NhZ2UiXSA9IG1lc3NhZ2VzLnZhbHVlLm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAg
IGNvbnNvbGVbImxldmVsIl0gPSBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLmxldmVsCisKKyAgICBA
YXN5bmNjb250ZXh0bWFuYWdlcgorICAgIGFzeW5jIGRlZiBfZ2V0X2JpZGlfY29ubmVjdGlvbihz
ZWxmKToKKyAgICAgICAgZ2xvYmFsIGNkcAorICAgICAgICBpbXBvcnRfY2RwKCkKKyAgICAgICAg
d3NfdXJsID0gTm9uZQorICAgICAgICBpZiBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIik6Cisg
ICAgICAgICAgICB3c191cmwgPSBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIikuZ2V0KCJjZHAi
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmVyc2lvbiwgd3NfdXJsID0gc2VsZi5fZ2V0
X2NkcF9kZXRhaWxzKCkKKworICAgICAgICBpZiB3c191cmwgaXMgTm9uZToKKyAgICAgICAgICAg
IHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiVW5hYmxlIHRvIGZpbmQgdXJsIHRvIGNvbm5lY3Qg
dG8gZnJvbSBjYXBhYmlsaXRpZXMiKQorCisgICAgICAgIGNkcC5pbXBvcnRfZGV2dG9vbHModmVy
c2lvbikKKworICAgICAgICBnbG9iYWwgZGV2dG9vbHMKKyAgICAgICAgZGV2dG9vbHMgPSBpbXBv
cnRsaWIuaW1wb3J0X21vZHVsZSgic2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXZ0b29scy52
e30iLmZvcm1hdCh2ZXJzaW9uKSkKKyAgICAgICAgYXN5bmMgd2l0aCBjZHAub3Blbl9jZHAod3Nf
dXJsKSBhcyBjb25uOgorICAgICAgICAgICAgdGFyZ2V0cyA9IGF3YWl0IGNvbm4uZXhlY3V0ZShk
ZXZ0b29scy50YXJnZXQuZ2V0X3RhcmdldHMoKSkKKyAgICAgICAgICAgIHRhcmdldF9pZCA9IHRh
cmdldHNbMF0udGFyZ2V0X2lkCisgICAgICAgICAgICBhc3luYyB3aXRoIGNvbm4ub3Blbl9zZXNz
aW9uKHRhcmdldF9pZCkgYXMgc2Vzc2lvbjoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZXNzaW9u
CisKKyAgICBkZWYgX2dldF9jZHBfZGV0YWlscyhzZWxmKToKKyAgICAgICAgaW1wb3J0IGpzb24K
KyAgICAgICAgaW1wb3J0IHVybGxpYjMKKworICAgICAgICBodHRwID0gdXJsbGliMy5Qb29sTWFu
YWdlcigpCisgICAgICAgIGRlYnVnZ2VyX2FkZHJlc3MgPSBzZWxmLmNhcHMuZ2V0KCJ7MH06Y2hy
b21lT3B0aW9ucyIuZm9ybWF0KHNlbGYudmVuZG9yX3ByZWZpeCkpLmdldCgiZGVidWdnZXJBZGRy
ZXNzIikKKyAgICAgICAgcmVzID0gaHR0cC5yZXF1ZXN0KCdHRVQnLCAiaHR0cDovL3swfS9qc29u
L3ZlcnNpb24iLmZvcm1hdChkZWJ1Z2dlcl9hZGRyZXNzKSkKKyAgICAgICAgZGF0YSA9IGpzb24u
bG9hZHMocmVzLmRhdGEpCisKKyAgICAgICAgYnJvd3Nlcl92ZXJzaW9uID0gZGF0YS5nZXQoIkJy
b3dzZXIiKQorICAgICAgICB3ZWJzb2NrZXRfdXJsID0gZGF0YS5nZXQoIndlYlNvY2tldERlYnVn
Z2VyVXJsIikKKworICAgICAgICBpbXBvcnQgcmUKKyAgICAgICAgdmVyc2lvbiA9IHJlLnNlYXJj
aChyIi4qLyhcZCspXC4iLCBicm93c2VyX3ZlcnNpb24pLmdyb3VwKDEpCisKKyAgICAgICAgcmV0
dXJuIHZlcnNpb24sIHdlYnNvY2tldF91cmwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9yZW1vdGUvd2ViZWxlbWVudC5weQppbmRleCA2ZjNlYmJjYzNiNTQuLjA5M2U0MmE1YmExMyAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3JlbW90ZS93ZWJlbGVtZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weQpA
QCAtNTM0LDkgKzUzNCwxNCBAQCBjbGFzcyBXZWJFbGVtZW50KEJhc2VXZWJFbGVtZW50KToKICAg
ICAgICAgIyB0cmFuc2ZlciBmaWxlIHRvIGFub3RoZXIgbWFjaGluZSBvbmx5IGlmIHJlbW90ZSBk
cml2ZXIgaXMgdXNlZAogICAgICAgICAjIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBmb3IgamF2YSBi
aW5kaW5nCiAgICAgICAgIGlmIHNlbGYucGFyZW50Ll9pc19yZW1vdGU6Ci0gICAgICAgICAgICBs
b2NhbF9maWxlID0gc2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKCp2YWx1
ZSkKLSAgICAgICAgICAgIGlmIGxvY2FsX2ZpbGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAg
ICAgdmFsdWUgPSBzZWxmLl91cGxvYWQobG9jYWxfZmlsZSkKKyAgICAgICAgICAgIGxvY2FsX2Zp
bGVzID0gbGlzdChtYXAobGFtYmRhIGtleXNfdG9fc2VuZDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKGtl
eXNfdG9fc2VuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLmpvaW4o
dmFsdWUpLnNwbGl0KCdcbicpKSkKKyAgICAgICAgICAgIGlmIE5vbmUgbm90IGluIGxvY2FsX2Zp
bGVzOgorICAgICAgICAgICAgICAgIHJlbW90ZV9maWxlcyA9IFtdCisgICAgICAgICAgICAgICAg
Zm9yIGZpbGUgaW4gbG9jYWxfZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9maWxl
cy5hcHBlbmQoc2VsZi5fdXBsb2FkKGZpbGUpKQorICAgICAgICAgICAgICAgIHZhbHVlID0gJ1xu
Jy5qb2luKHJlbW90ZV9maWxlcykKIAogICAgICAgICBzZWxmLl9leGVjdXRlKENvbW1hbmQuU0VO
RF9LRVlTX1RPX0VMRU1FTlQsCiAgICAgICAgICAgICAgICAgICAgICAgeyd0ZXh0JzogIiIuam9p
bihrZXlzX3RvX3R5cGluZyh2YWx1ZSkpLApAQCAtNzA0LDggKzcwOSw3IEBAIGNsYXNzIFdlYkVs
ZW1lbnQoQmFzZVdlYkVsZW1lbnQpOgogCiAgICAgZGVmIGZpbmRfZWxlbWVudChzZWxmLCBieT1C
eS5JRCwgdmFsdWU9Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGFuIGVsZW1lbnQg
Z2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4gUHJlZmVyIHRoZSBmaW5kX2VsZW1lbnRf
YnlfKiBtZXRob2RzIHdoZW4KLSAgICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQgYW4gZWxl
bWVudCBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToK
ICAgICAgICAgICAgIDo6CkBAIC03MzIsOCArNzM2LDcgQEAgY2xhc3MgV2ViRWxlbWVudChCYXNl
V2ViRWxlbWVudCk6CiAKICAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5JRCwgdmFs
dWU9Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGVsZW1lbnRzIGdpdmVuIGEgQnkg
c3RyYXRlZ3kgYW5kIGxvY2F0b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50c19ieV8qIG1ldGhv
ZHMgd2hlbgotICAgICAgICBwb3NzaWJsZS4KKyAgICAgICAgRmluZCBlbGVtZW50cyBnaXZlbiBh
IEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAgICAgICAgICAg
IDo6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVf
Y29ubmVjdGlvbi5weQppbmRleCAyMmM2MjNlNjEwYWYuLmQ2OTI0Mjg5OThmNSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L3NhZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9u
LnB5CkBAIC0yMyw4ICsyMyw4IEBAIGNsYXNzIFNhZmFyaVJlbW90ZUNvbm5lY3Rpb24oUmVtb3Rl
Q29ubmVjdGlvbik6CiAKICAgICBicm93c2VyX25hbWUgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLlNB
RkFSSVsnYnJvd3Nlck5hbWUnXQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2
ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVlKToKLSAgICAgICAgUmVtb3RlQ29ubmVjdGlvbi5fX2lu
aXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmUpCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVlLCBpZ25vcmVfcHJv
eHk9RmFsc2UpOgorICAgICAgICBSZW1vdGVDb25uZWN0aW9uLl9faW5pdF9fKHNlbGYsIHJlbW90
ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZSwgaWdub3JlX3Byb3h5PWlnbm9yZV9wcm94eSkKIAog
ICAgICAgICBzZWxmLl9jb21tYW5kc1siR0VUX1BFUk1JU1NJT05TIl0gPSAoJ0dFVCcsICcvc2Vz
c2lvbi8kc2Vzc2lvbklkL2FwcGxlL3Blcm1pc3Npb25zJykKICAgICAgICAgc2VsZi5fY29tbWFu
ZHNbIlNFVF9QRVJNSVNTSU9OUyJdID0gKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBw
bGUvcGVybWlzc2lvbnMnKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3Rz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CmluZGV4IDM5NzQ5MjU0OWMyZC4u
MmU3YTA2YjRlZmU4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBpX2V4YW1wbGVfdGVzdHMucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CkBAIC0xLDIwICsxLDMgQEAKLSMg
TGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIg
b25lCi0jIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBO
T1RJQ0UgZmlsZQotIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBp
bmZvcm1hdGlvbgotIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGlj
ZW5zZXMgdGhpcyBmaWxlCi0jIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNp
b24gMi4wICh0aGUKLSMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNl
cHQgaW4gY29tcGxpYW5jZQotIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBj
b3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vu
c2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBv
ciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKLSMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBX
QVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCi0jIEtJTkQsIGVpdGhlciBleHByZXNzIG9y
IGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQotIyBzcGVjaWZpYyBsYW5ndWFnZSBn
b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCi0jIHVuZGVyIHRoZSBMaWNlbnNl
LgotCiAjIENvcHlyaWdodCAyMDA4LTIwMDkgV2ViRHJpdmVyIGNvbW1pdHRlcnMKICMgQ29weXJp
Z2h0IDIwMDgtMjAwOSBHb29nbGUgSW5jLgogIwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNr
X3Njcm9sbGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVzdHMucHkK
aW5kZXggY2EwZDA4MDBhMzJjLi40YzkxYzIyN2YwZGIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9j
bGlja19zY3JvbGxpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190
ZXN0cy5weQpAQCAtMTc4LDE0ICsxNzgsMTQgQEAgZGVmIGdldFNjcm9sbFRvcChkcml2ZXIpOgog
ICAgIHJldHVybiBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5ib2R5LnNj
cm9sbFRvcCIpCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3goCi0gICAgcmVhc29uPSdo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvNDA4JykKLUBweXRlc3QubWFy
ay54ZmFpbF9yZW1vdGUoCi0gICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRy
aXZlci9pc3N1ZXMvNDA4JykKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKLWRlZiB0ZXN0U2hv
dWxkQmVBYmxlVG9DbGlja0VsZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdlcyk6Ci0gICAg
cGFnZXMubG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF90YWxsX2ZyYW1lLmh0bWwiKQot
ICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAi
dGFsbF9mcmFtZSIpKQotICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUs
ICJjaGVja2JveCIpCi0gICAgZWxlbWVudC5jbGljaygpCi0gICAgYXNzZXJ0IGVsZW1lbnQuaXNf
c2VsZWN0ZWQoKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveCgKKyMgICAgIHJlYXNvbj0n
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCisjIEBweXRlc3Qu
bWFyay54ZmFpbF9yZW1vdGUoCisjICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViZHJpdmVyL2lzc3Vlcy80MDgnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCisjIGRl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja0VsZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdl
cyk6CisjICAgICBwYWdlcy5sb2FkKCJzY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3RhbGxfZnJh
bWUuaHRtbCIpCisjICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1l
bnQoQnkuTkFNRSwgInRhbGxfZnJhbWUiKSkKKyMgICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5Lk5BTUUsICJjaGVja2JveCIpCisjICAgICBlbGVtZW50LmNsaWNrKCkKKyMgICAg
IGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2
ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2Zp
bmRpbmdfdGVzdHMucHkKaW5kZXggZDZlNzg0MjgwNTczLi45YjgwMWRjMzBkN2MgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5CkBAIC0zMzUsMTYgKzMzNSwxNiBA
QCBkZWYgdGVzdF9GaW5kaW5nX0FMaW5rX0J5X1hwYXRoX1VzaW5nX0NvbnRhaW5zX0tleXdvcmRf
U2hvdWxkX1dvcmsoZHJpdmVyLCBwYWdlcwogICAgIGFzc2VydCAiaGVsbG8gd29ybGQiIGluIGVs
ZW1lbnQudGV4dAogCiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPUludmFsaWRT
ZWxlY3RvckV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2Vz
PUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJh
aXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3Rl
KHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2Fm
YXJpKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3dl
YmtpdGd0ayhyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQotZGVmIHRlc3RfU2hvdWxk
X0JlX0FibGVfVG9fRmluZF9FbGVtZW50X0J5X1hQYXRoX1dpdGhfTmFtZXNwYWNlKGRyaXZlciwg
cGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoInN2Z1BhZ2UuaHRtbCIpCi0gICAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL3N2ZzpzdmcvL3N2Zzp0ZXh0IikKLSAgICBh
c3NlcnQgZWxlbWVudC50ZXh0ID09ICJUZXN0IENoYXJ0IgorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21lKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54
ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5
dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikK
KyMgQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0
aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhj
ZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfd2Via2l0Z3RrKHJhaXNlcz1JbnZhbGlkU2Vs
ZWN0b3JFeGNlcHRpb24pCisjIGRlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfRWxlbWVu
dF9CeV9YUGF0aF9XaXRoX05hbWVzcGFjZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxv
YWQoInN2Z1BhZ2UuaHRtbCIpCisjICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5YUEFUSCwgIi8vc3ZnOnN2Zy8vc3ZnOnRleHQiKQorIyAgICAgYXNzZXJ0IGVsZW1lbnQudGV4
dCA9PSAiVGVzdCBDaGFydCIKIAogCiBkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0Vs
ZW1lbnRfQnlfWFBhdGhfSW5fWG1sX0RvY3VtZW50KGRyaXZlciwgcGFnZXMpOgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9z
d2l0Y2hpbmdfdGVzdHMucHkKaW5kZXggOGE3NTliNjAwYjk4Li4xOGIzNDY1NzU4MTYgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5weQpAQCAtMzY4LDIzICszNjgsMjMgQEAgZGVmIHRlc3RT
aG91bGRCZUFibGVUb1N3aXRjaFRvVGhlVG9wSWZUaGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVz
V2l0aFdlYmVsZW1lbnQKICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMucHJl
c2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgInN1Y2Nlc3MiKSkpCiAKIAotQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9tZShyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKLUBweXRl
c3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24p
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96
aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUo
cmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVh
c29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykK
LUBweXRlc3QubWFyay54ZmFpbF93ZWJraXRndGsocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRp
b24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRv
RG9Bbnl0aGluZ1RoZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6Ci0g
ICAgcGFnZXMubG9hZCgiZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRtbCIp
Ci0gICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAi
aWZyYW1lMSIpKQotCi0gICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICJraWxsSWZyYW1lIikKLSAgICBraWxsSWZyYW1lLmNsaWNrKCkKLQotICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhOb1N1Y2hGcmFtZUV4Y2VwdGlvbik6Ci0gICAgICAgIGRyaXZlci5maW5kX2VsZW1l
bnQoQnkuSUQsICJraWxsSWZyYW1lIikuY2xpY2soKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hy
b21lKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21pdW1lZGdlKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1h
cmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tv
ZHJpdmVyL2lzc3Vlcy82MTQnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1X
ZWJEcml2ZXJFeGNlcHRpb24sCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdo
dHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKKyMgQHB5
dGVzdC5tYXJrLnhmYWlsX3dlYmtpdGd0ayhyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikK
KyMgQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRv
RG9Bbnl0aGluZ1RoZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6Cisj
ICAgICBwYWdlcy5sb2FkKCJmcmFtZV9zd2l0Y2hpbmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1s
IikKKyMgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5J
RCwgImlmcmFtZTEiKSkKKworIyAgICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuSUQsICJraWxsSWZyYW1lIikKKyMgICAgIGtpbGxJZnJhbWUuY2xpY2soKQorCisjICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRnJhbWVFeGNlcHRpb24pOgorIyAgICAgICAgIGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1lIikuY2xpY2soKQogCiAKIGRlZiB0ZXN0
U2hvdWxkUmV0dXJuV2luZG93VGl0bGVJbkFGcmFtZXNldChkcml2ZXIsIHBhZ2VzKToKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9s
b2FkaW5nX3Rlc3RzLnB5CmluZGV4IDE0MTFlZTU5ZGExYi4uOWJjN2E1YjUwZWNkIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdl
X2xvYWRpbmdfdGVzdHMucHkKQEAgLTE1LDEyICsxNSwxMiBAQAogIyBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAjIHVuZGVyIHRoZSBMaWNl
bnNlLgogCi1pbXBvcnQgcHl0ZXN0Ci0KLWZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMg
aW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9u
LmJ5IGltcG9ydCBCeQotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9y
dCBXZWJEcml2ZXJXYWl0Ci1mcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBl
eHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCisjIGltcG9ydCBweXRlc3QKKyMKKyMgZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCisjIGZyb20g
c2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKKyMgZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0CisjIGZyb20gc2VsZW5p
dW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKIAog
CiBkZWYgdGVzdFNob3VsZFdhaXRGb3JEb2N1bWVudFRvQmVMb2FkZWQoZHJpdmVyLCBwYWdlcyk6
CkBAIC00MCwyNSArNDAsMjUgQEAgZGVmIHRlc3RTaG91bGRXYWl0Rm9yRG9jdW1lbnRUb0JlTG9h
ZGVkKGRyaXZlciwgcGFnZXMpOgogIyAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJp
dmUgSGVyZSIKIAogCi1kZWYgdGVzdFNob3VsZEJlQWJsZVRvR2V0QUZyYWdtZW50T25UaGVDdXJy
ZW50UGFnZShkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIp
Ci0gICAgbG9jYXRpb24gPSBkcml2ZXIuY3VycmVudF91cmwKLSAgICBkcml2ZXIuZ2V0KGxvY2F0
aW9uICsgIiN0ZXh0IikKLSAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
aWQxIikKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBh
Z2UoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisj
ICAgICBsb2NhdGlvbiA9IGRyaXZlci5jdXJyZW50X3VybAorIyAgICAgZHJpdmVyLmdldChsb2Nh
dGlvbiArICIjdGV4dCIpCisjICAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1
ZT0iaWQxIikKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhj
ZXB0aW9uKQotZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0RG9lc05vdFJl
c29sdmUoZHJpdmVyKToKLSAgICAjICBPZiBjb3Vyc2UsIHdlJ3JlIHVwIHRoZSBjcmVlayBpZiB0
aGlzIGV2ZXIgZG9lcyBnZXQgcmVnaXN0ZXJlZAotICAgIGRyaXZlci5nZXQoImh0dHA6Ly93d3cu
dGhpc3VybGRvZXNub3RleGlzdC5jb214LyIpCisjIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94
KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUo
cmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKKyMgZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0
dGluZ0FVcmxUaGF0RG9lc05vdFJlc29sdmUoZHJpdmVyKToKKyMgICAgICMgIE9mIGNvdXJzZSwg
d2UncmUgdXAgdGhlIGNyZWVrIGlmIHRoaXMgZXZlciBkb2VzIGdldCByZWdpc3RlcmVkCisjICAg
ICBkcml2ZXIuZ2V0KCJodHRwOi8vd3d3LnRoaXN1cmxkb2Vzbm90ZXhpc3QuY29teC8iKQogCiAK
LUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1A
cHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1kZWYg
dGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIp
OgotICAgICMgIEhlcmUncyBob3BpbmcgdGhhdCB0aGVyZSdzIG5vdGhpbmcgaGVyZS4gVGhlcmUg
c2hvdWxkbid0IGJlCi0gICAgZHJpdmVyLmdldCgiaHR0cDovL2xvY2FsaG9zdDozMDAxIikKKyMg
QHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKKyMg
QHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorIyBk
ZWYgdGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2
ZXIpOgorIyAgICAgIyAgSGVyZSdzIGhvcGluZyB0aGF0IHRoZXJlJ3Mgbm90aGluZyBoZXJlLiBU
aGVyZSBzaG91bGRuJ3QgYmUKKyMgICAgIGRyaXZlci5nZXQoImh0dHA6Ly9sb2NhbGhvc3Q6MzAw
MSIpCiAKICMgZGVmIHRlc3RTaG91bGRCZUFibGVUb0xvYWRBUGFnZVdpdGhGcmFtZXNldHNBbmRX
YWl0VW50aWxBbGxGcmFtZXNBcmVMb2FkZWQoKSB7CiAjICAgICBkcml2ZXIuZ2V0KHBhZ2VzLmZy
YW1lc2V0UGFnZSkKQEAgLTgxLDU1ICs4MSw1NSBAQCBkZWYgdGVzdFNob3VsZFJldHVybldoZW5H
ZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgogIyAgICAgc2VsZi5hc3NlcnRF
cXVhbChkcml2ZXIudGl0bGUsIGFueU9mKGVxdWFsVG8ob3JpZ2luYWxUaXRsZSksIGVxdWFsVG8o
IldlIExlYXZlIEZyb20gSGVyZSIpKSk7CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQot
ZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnkoZHJp
dmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisjIEBweXRlc3Qu
bWFyay54ZmFpbF9zYWZhcmkKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0lu
VGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKIAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJp
bWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCi0gICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGls
KEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVu
dChieT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyMgICAgIFdlYkRyaXZl
cldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkKIAot
ICAgIGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBG
cm9tIEhlcmUiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxl
ID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQot
ZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnlJblBy
ZXNlbmNlT2ZJZnJhbWVzKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoInhodG1sVGVz
dC5odG1sIikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZEJl
QWJsZVRvTmF2aWdhdGVCYWNrSW5UaGVCcm93c2VySGlzdG9yeUluUHJlc2VuY2VPZklmcmFtZXMo
ZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCiAKLSAg
ICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5Lk5BTUUsIHZhbHVlPSJzYW1lV2luZG93IikuY2xp
Y2soKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT0ic2FtZVdp
bmRvdyIpLmNsaWNrKCkKIAotICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBo
YXMgaWZyYW1lcyIKKyMgICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBoYXMg
aWZyYW1lcyIKIAotICAgIGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09
ICJYSFRNTCBUZXN0IFBhZ2UiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJp
dmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVU
b05hdmlnYXRlRm9yd2FyZHNJblRoZUJyb3dzZXJIaXN0b3J5KGRyaXZlciwgcGFnZXMpOgotICAg
IHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorIyBkZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2
aWdhdGVGb3J3YXJkc0luVGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6CisjICAgICBw
YWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKIAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9
QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCi0gICAgV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorIyAgICAgZHJp
dmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkK
KyMgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJy
aXZlIEhlcmUiKSkKIAotICAgIGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxl
ID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3Nl
cnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCiAKLSAgICBkcml2ZXIuZm9y
d2FyZCgpCi0gICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisjICAg
ICBkcml2ZXIuZm9yd2FyZCgpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJp
dmUgSGVyZSIKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfaWUKLUBweXRlc3QubWFyay54ZmFpbF9m
aXJlZm94KHJ1bj1GYWxzZSkKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocnVuPUZhbHNlKQot
QHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShydW49RmFsc2UpCi1AcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21pdW1lZGdlKHJ1bj1GYWxzZSkKLWRlZiB0ZXN0U2hvdWxkTm90SGFuZ2lmRG9jdW1lbnRP
cGVuQ2FsbElzTmV2ZXJGb2xsb3dlZEJ5RG9jdW1lbnRDbG9zZUNhbGwoZHJpdmVyLCBwYWdlcyk6
Ci0gICAgcGFnZXMubG9hZCgiZG9jdW1lbnRfd3JpdGVfaW5fb25sb2FkLmh0bWwiKQotICAgIGRy
aXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL2JvZHkiKQorIyBAcHl0ZXN0Lm1hcmsueGZh
aWxfaWUKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocnVuPUZhbHNlKQorIyBAcHl0ZXN0
Lm1hcmsueGZhaWxfcmVtb3RlKHJ1bj1GYWxzZSkKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9t
ZShydW49RmFsc2UpCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocnVuPUZhbHNl
KQorIyBkZWYgdGVzdFNob3VsZE5vdEhhbmdpZkRvY3VtZW50T3BlbkNhbGxJc05ldmVyRm9sbG93
ZWRCeURvY3VtZW50Q2xvc2VDYWxsKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgi
ZG9jdW1lbnRfd3JpdGVfaW5fb25sb2FkLmh0bWwiKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVu
dChCeS5YUEFUSCwgIi8vYm9keSIpCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVUb1JlZnJlc2hB
UGFnZShkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisj
IGRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9SZWZyZXNoQVBhZ2UoZHJpdmVyLCBwYWdlcyk6CisjICAg
ICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCiAKLSAgICBkcml2ZXIucmVmcmVzaCgpCisj
ICAgICBkcml2ZXIucmVmcmVzaCgpCiAKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRN
TCBUZXN0IFBhZ2UiCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBh
Z2UiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2NyaXB0X3Bpbm5pbmdfdGVzdHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vc2NyaXB0X3Bpbm5pbmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi41ZWY5Y2UzYTdmNWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
c2NyaXB0X3Bpbm5pbmdfdGVzdHMucHkKQEAgLTAsMCArMSw2OSBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBw
eXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgSmF2YXNjcmlw
dEV4Y2VwdGlvbgorCisKK2RlZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRfcGlubmluZyhkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZl
ci5waW5uZWRfc2NyaXB0cyA9IHt9CisgICAgc2NyaXB0X2tleSA9IGRyaXZlci5waW5fc2NyaXB0
KCJyZXR1cm4gJ2kgbGlrZSBjaGVlc2UnOyIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0
ZV9zY3JpcHQoc2NyaXB0X2tleSkKKworICAgIGFzc2VydCByZXN1bHQgPT0gJ2kgbGlrZSBjaGVl
c2UnCisKKworZGVmIHRlc3Rfc2hvdWxkX2FsbG93X3Bpbm5lZF9zY3JpcHRzX3RvX3Rha2VfYXJn
dW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIp
CisgICAgZHJpdmVyLnBpbm5lZF9zY3JpcHRzID0ge30KKyAgICBoZWxsbyA9IGRyaXZlci5waW5f
c2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVj
dXRlX3NjcmlwdChoZWxsbywgImNoZWVzZSIpCisKKyAgICBhc3NlcnQgcmVzdWx0ID09ICJjaGVl
c2UiCisKKworZGVmIHRlc3Rfc2hvdWxkX2xpc3RfYWxsX3Bpbm5lZF9zY3JpcHRzKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnBp
bm5lZF9zY3JpcHRzID0ge30KKyAgICBleHBlY3RlZCA9IFtdCisgICAgZXhwZWN0ZWQuYXBwZW5k
KGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpLmlkKQorICAgIGV4cGVj
dGVkLmFwcGVuZChkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuICdjaGVlc2UnOyIpLmlkKQorICAg
IGV4cGVjdGVkLmFwcGVuZChkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuIDQyOyIpLmlkKQorCisg
ICAgcmVzdWx0ID0gZHJpdmVyLmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGV4cGVj
dGVkID09IHJlc3VsdAorCisKK2RlZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRzX3RvX2JlX3Vu
cGlubmVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIp
CisgICAgZHJpdmVyLnBpbm5lZF9zY3JpcHRzID0ge30KKyAgICBjaGVlc2UgPSBkcml2ZXIucGlu
X3NjcmlwdCgicmV0dXJuICdjaGVlc2UnOyIpCisgICAgZHJpdmVyLnVucGluKGNoZWVzZSkKKyAg
ICByZXN1bHRzID0gZHJpdmVyLmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGNoZWVz
ZSBub3QgaW4gcmVzdWx0cworCisKK2RlZiB0ZXN0X2NhbGxpbmdfdW5waW5uZWRfc2NyaXB0X2Nh
dXNlc19lcnJvcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0
bWwiKQorICAgIGNoZWVzZSA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gJ2JyaWUnOyIpCisg
ICAgZHJpdmVyLnVucGluKGNoZWVzZSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSmF2YXNjcmlw
dEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdChjaGVlc2UpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2NsYXNzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVj
dF9jbGFzc190ZXN0cy5weQppbmRleCA1MmI3ZDliOThlMWMuLjMxNTI2YWQ0MmNkMiAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2Vs
ZWN0X2NsYXNzX3Rlc3RzLnB5CkBAIC05MSwyMCArOTEsMjAgQEAgZGVmIHRlc3RTZWxlY3RCeVZp
c2libGVUZXh0U2luZ2xlKGRyaXZlciwgcGFnZXMpOgogICAgICAgICAgICAgYXNzZXJ0IHNlbC5m
aXJzdF9zZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCiAKIAotQHB5
dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1
bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJr
LnhmYWlsX2Nocm9taXVtZWRnZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5v
cmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJrLnhm
YWlsX3NhZmFyaQotZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2hvdWxkTm9ybWFsaXplU3Bh
Y2VzKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQotCi0g
ICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzV2l0aFNwYWNlc106Ci0gICAgICAg
IHNlbCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSdd
KSkKLSAgICAgICAgZm9yIHggaW4gcmFuZ2UobGVuKHNlbGVjdFsndmFsdWVzJ10pKToKLSAgICAg
ICAgICAgIHByaW50KHNlbGVjdFsndmFsdWVzJ11beF0pCi0gICAgICAgICAgICBzZWwuc2VsZWN0
X2J5X3Zpc2libGVfdGV4dChzZWxlY3RbJ3ZhbHVlcyddW3hdKQotICAgICAgICAgICAgYXNzZXJ0
IHNlbC5maXJzdF9zZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCisj
IEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisjICAgICByZWFzb249J2h0dHBzOi8vYnVncy5j
aHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQorIyBAcHl0
ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKAorIyAgICAgcmVhc29uPSdodHRwczovL2J1Z3Mu
Y2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKKyMgQHB5
dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNlbGVjdEJ5VmlzaWJsZVRleHRTaG91
bGROb3JtYWxpemVTcGFjZXMoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKworIyAgICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzV2l0
aFNwYWNlc106CisjICAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnku
TkFNRSwgc2VsZWN0WyduYW1lJ10pKQorIyAgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxl
Y3RbJ3ZhbHVlcyddKSk6CisjICAgICAgICAgICAgIHByaW50KHNlbGVjdFsndmFsdWVzJ11beF0p
CisjICAgICAgICAgICAgIHNlbC5zZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVz
J11beF0pCisjICAgICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rfc2VsZWN0ZWRfb3B0aW9uLnRl
eHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVt4XQogCiAKIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94
KHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
OTQwMycpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L3dpbmRvd190ZXN0cy5weQppbmRleCA4NWViMjQ3YjI5ODYuLjk4NTA5YjE0MTUyNSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rl
c3RzLnB5CkBAIC0xNCwzMCArMTQsMzAgQEAKICMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1w
bGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVy
bmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICMgdW5kZXIgdGhlIExpY2Vuc2UuCi1p
bXBvcnQgb3MKKwogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRp
b25zIGltcG9ydCBXZWJEcml2ZXJFeGNlcHRpb24KIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1
cHBvcnQud2FpdCBpbXBvcnQgV2ViRHJpdmVyV2FpdAogCiAKLUBweXRlc3QubWFyay54ZmFpbF9p
ZQotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZp
cyIpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIp
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKLWRl
ZiB0ZXN0U2hvdWxkTWF4aW1pemVUaGVXaW5kb3coZHJpdmVyKToKLSAgICByZXNpemVfdGltZW91
dCA9IDUKLSAgICB3YWl0ID0gV2ViRHJpdmVyV2FpdChkcml2ZXIsIHJlc2l6ZV90aW1lb3V0KQot
ICAgIG9sZF9zaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgZHJpdmVyLnNldF93
aW5kb3dfc2l6ZSgyMDAsIDIwMCkKLSAgICB3YWl0LnVudGlsKAotICAgICAgICBsYW1iZGEgZHI6
IGRyLmdldF93aW5kb3dfc2l6ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0aCJdICE9
IDIwMCBhbmQgb2xkX3NpemVbImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCi0gICAgc2l6ZSA9
IGRyaXZlci5nZXRfd2luZG93X3NpemUoKQotICAgIGRyaXZlci5tYXhpbWl6ZV93aW5kb3coKQot
ICAgIHdhaXQudW50aWwobGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAhPSBzaXplKQot
ICAgIG5ld19zaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgYXNzZXJ0IG5ld19z
aXplWyJ3aWR0aCJdID4gc2l6ZVsid2lkdGgiXQotICAgIGFzc2VydCBuZXdfc2l6ZVsiaGVpZ2h0
Il0gPiBzaXplWyJoZWlnaHQiXQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKKyMgQHB5dGVzdC5t
YXJrLnhmYWlsX2Nocm9taXVtZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIEBweXRl
c3QubWFyay54ZmFpbF9maXJlZm94KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKKyMgQHB5dGVz
dC5tYXJrLnhmYWlsX3JlbW90ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIGRlZiB0ZXN0
U2hvdWxkTWF4aW1pemVUaGVXaW5kb3coZHJpdmVyKToKKyMgICAgIHJlc2l6ZV90aW1lb3V0ID0g
NQorIyAgICAgd2FpdCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCByZXNpemVfdGltZW91dCkKKyMg
ICAgIG9sZF9zaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIuc2V0
X3dpbmRvd19zaXplKDIwMCwgMjAwKQorIyAgICAgd2FpdC51bnRpbCgKKyMgICAgICAgICBsYW1i
ZGEgZHI6IGRyLmdldF93aW5kb3dfc2l6ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0
aCJdICE9IDIwMCBhbmQgb2xkX3NpemVbImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCisjICAg
ICBzaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIubWF4aW1pemVf
d2luZG93KCkKKyMgICAgIHdhaXQudW50aWwobGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUo
KSAhPSBzaXplKQorIyAgICAgbmV3X3NpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyMg
ICAgIGFzc2VydCBuZXdfc2l6ZVsid2lkdGgiXSA+IHNpemVbIndpZHRoIl0KKyMgICAgIGFzc2Vy
dCBuZXdfc2l6ZVsiaGVpZ2h0Il0gPiBzaXplWyJoZWlnaHQiXQogCiAKIGRlZiB0ZXN0X3Nob3Vs
ZF9nZXRfdGhlX3NpemVfb2ZfdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CkBAIC0xMTIsMzcg
KzExMiwzNyBAQCBkZWYgdGVzdF9zaG91bGRfc2V0X3RoZV9yZWN0X29mX3RoZV9jdXJyZW50X3dp
bmRvdyhkcml2ZXIpOgogICAgIGFzc2VydCBuZXdfcmVjdC5nZXQoJ2hlaWdodCcpID09IHRhcmdl
dF9oZWlnaHQKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBj
b21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKG9zLmVudmlyb24u
Z2V0KCdUUkFWSVMnKSA9PSAndHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVs
bHNjcmVlbiBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCi1AcHl0ZXN0Lm1hcmsubm9f
ZHJpdmVyX2FmdGVyX3Rlc3QKLWRlZiB0ZXN0X3Nob3VsZF9mdWxsc2NyZWVuX3RoZV9jdXJyZW50
X3dpbmRvdyhkcml2ZXIpOgotICAgIHN0YXJ0X3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0
KCdyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykKLSAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIu
ZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7JykKKyMgQHB5dGVzdC5t
YXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBpbXBsZW1lbnRl
ZCcpCisjIEBweXRlc3QubWFyay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0
cnVlJywKKyMgICAgICAgICAgICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBj
YXVzZXMgVHJhdmlzIHRvIGhhbmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rl
c3QKKyMgZGVmIHRlc3Rfc2hvdWxkX2Z1bGxzY3JlZW5fdGhlX2N1cnJlbnRfd2luZG93KGRyaXZl
cik6CisjICAgICBzdGFydF93aWR0aCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdp
bmRvdy5pbm5lcldpZHRoOycpCisjICAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIuZXhlY3V0ZV9z
Y3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7JykKIAotICAgIGRyaXZlci5mdWxsc2Ny
ZWVuX3dpbmRvdygpCisjICAgICBkcml2ZXIuZnVsbHNjcmVlbl93aW5kb3coKQogCi0gICAgV2Vi
RHJpdmVyV2FpdChkcml2ZXIsIDIpXAotICAgICAgICAudW50aWwobGFtYmRhIGQ6IGRyaXZlci5l
eGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpID4gc3RhcnRfd2lkdGgp
CisjICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMilcCisjICAgICAgICAgLnVudGlsKGxhbWJk
YSBkOiBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKSA+
IHN0YXJ0X3dpZHRoKQogCi0gICAgZW5kX3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdy
ZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykKLSAgICBlbmRfaGVpZ2h0ID0gZHJpdmVyLmV4ZWN1
dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0OycpCisjICAgICBlbmRfd2lkdGgg
PSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKQorIyAg
ICAgZW5kX2hlaWdodCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5l
ckhlaWdodDsnKQogCi0gICAgZHJpdmVyLnF1aXQoKSAgIyBLaWxsIGRyaXZlciBzbyB3ZSBhcmVu
J3QgcnVubmluZyBmdWxsc2NyZWVuIGFmdGVyCisjICAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwg
ZHJpdmVyIHNvIHdlIGFyZW4ndCBydW5uaW5nIGZ1bGxzY3JlZW4gYWZ0ZXIKIAotICAgIGFzc2Vy
dCBlbmRfd2lkdGggPiBzdGFydF93aWR0aAotICAgIGFzc2VydCBlbmRfaGVpZ2h0ID4gc3RhcnRf
aGVpZ2h0CisjICAgICBhc3NlcnQgZW5kX3dpZHRoID4gc3RhcnRfd2lkdGgKKyMgICAgIGFzc2Vy
dCBlbmRfaGVpZ2h0ID4gc3RhcnRfaGVpZ2h0CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFy
aShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWFzb249J01pbmltaXplIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKLUBweXRlc3QubWFyay5z
a2lwaWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0cnVlJywKLSAgICAgICAgICAgICAg
ICAgICAgcmVhc29uPSdNaW5pbWl6ZSBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCi1A
cHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QKLWRlZiB0ZXN0X3Nob3VsZF9taW5pbWl6
ZV90aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToKLSAgICBkcml2ZXIubWluaW1pemVfd2luZG93
KCkKLSAgICBtaW5pbWl6ZWQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVu
dC5oaWRkZW47JykKLSAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4n
dCBydW5uaW5nIG1pbmltaXplZCBhZnRlcgotCi0gICAgYXNzZXJ0IG1pbmltaXplZCBpcyBUcnVl
CisjIEBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwK
KyMgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1hbmQgbm90
IGltcGxlbWVudGVkJykKKyMgQHB5dGVzdC5tYXJrLnNraXBpZihvcy5lbnZpcm9uLmdldCgnVFJB
VklTJykgPT0gJ3RydWUnLAorIyAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUg
Y29tbWFuZCBjYXVzZXMgVHJhdmlzIHRvIGhhbmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVy
X2FmdGVyX3Rlc3QKKyMgZGVmIHRlc3Rfc2hvdWxkX21pbmltaXplX3RoZV9jdXJyZW50X3dpbmRv
dyhkcml2ZXIpOgorIyAgICAgZHJpdmVyLm1pbmltaXplX3dpbmRvdygpCisjICAgICBtaW5pbWl6
ZWQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5oaWRkZW47JykKKyMg
ICAgIGRyaXZlci5xdWl0KCkgICMgS2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1bm5pbmcgbWlu
aW1pemVkIGFmdGVyCisKKyMgICAgIGFzc2VydCBtaW5pbWl6ZWQgaXMgVHJ1ZQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24gYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvaW1wb3J0ZXIuanNvbgppbmRleCBmNDAwZWY1YTM5NTcuLmVhYTgw
MTg3MjMwNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVy
Lmpzb24KKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24KQEAg
LTEsNiArMSw2IEBACiB7CiAgICAgInJlcG9zaXRvcnkiOiAiaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMuZ2l0IiwKLSAgICAicmV2aXNpb24iOiAiYjU3ZGE5N2ZjMDVl
NTQ0MGFlNjc1MDI3ZGQ0NWEyNmJlNDhlMmRiZCIsCisgICAgInJldmlzaW9uIjogImViOGJkY2U1
NTJhMmE5YjEwMDEwZjc3NTVlZDlkOGQwNzczZDU0OGUiLAogICAgICJwYXRoc190b19pbXBvcnQi
OiBbCiAgICAgICAgICJ0b29scy93ZWJkcml2ZXIiLAogICAgICAgICAidG9vbHMvd3B0cnVubmVy
IiwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2
ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkKaW5kZXggZDg2MGI5ZWEyNTMzLi5h
ODE3NTE0MDdlNzAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CkBAIC02LDYg
KzYsNyBAQCBmcm9tIC5jbGllbnQgaW1wb3J0ICgKICAgICBGaW5kLAogICAgIEZyYW1lLAogICAg
IFNlc3Npb24sCisgICAgU2hhZG93Um9vdCwKICAgICBUaW1lb3V0cywKICAgICBXaW5kb3cpCiBm
cm9tIC5lcnJvciBpbXBvcnQgKApAQCAtMzQsMyArMzUsNSBAQCBmcm9tIC5lcnJvciBpbXBvcnQg
KAogICAgIFVua25vd25NZXRob2RFeGNlcHRpb24sCiAgICAgVW5zdXBwb3J0ZWRPcGVyYXRpb25F
eGNlcHRpb24sCiAgICAgV2ViRHJpdmVyRXhjZXB0aW9uKQorZnJvbSAuYmlkaSBpbXBvcnQgKAor
ICAgIEJpZGlTZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wYmNkNDg5Y2QzNWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9i
aWRpLnB5CkBAIC0wLDAgKzEsNTYgQEAKK2ltcG9ydCBjb3B5CitpbXBvcnQgd2Vic29ja2V0cwor
Citmcm9tIC4gaW1wb3J0IGNsaWVudAorCitjbGFzcyBCaWRpU2Vzc2lvbihjbGllbnQuU2Vzc2lv
bik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIGhvc3QsCisgICAg
ICAgICAgICAgICAgIHBvcnQsCisgICAgICAgICAgICAgICAgIHVybF9wcmVmaXg9Ii8iLAorICAg
ICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXh0ZW5z
aW9uPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQWRkIGEgY2FwYWJpbGl0eSBvZiAid2Vi
U29ja2V0VXJsIjogVHJ1ZSB0byBlbmFibGUKKyAgICAgICAgQmlkaXJlY3Rpb25hbCBjb25uZWN0
aW9uIGluIHNlc3Npb24gY3JlYXRpb24uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLndlYnNv
Y2tldF90cmFuc3BvcnQgPSBOb25lCisgICAgICAgIGNhcGFiaWxpdGllcyA9IHNlbGYuX2VuYWJs
ZV93ZWJzb2NrZXQoY2FwYWJpbGl0aWVzKQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGhvc3Qs
IHBvcnQsIHVybF9wcmVmaXgsIGNhcGFiaWxpdGllcywgZXh0ZW5zaW9uKQorCisgICAgZGVmIF9l
bmFibGVfd2Vic29ja2V0KHNlbGYsIGNhcHMpOgorICAgICAgICBpZiBjYXBzOgorICAgICAgICAg
ICAgY2Fwcy5zZXRkZWZhdWx0KCJhbHdheXNNYXRjaCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRV
cmwiOiBUcnVlfSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNhcHMgPSB7ImFsd2F5c01h
dGNoIjogeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfX0KKyAgICAgICAgcmV0dXJuIGNhcHMKKworICAg
IGRlZiBtYXRjaChzZWxmLCBjYXBhYmlsaXRpZXMpOgorICAgICAgICAiIiJFeHBlbnNpdmUgbWF0
Y2ggdG8gc2VlIGlmIGNhcGFiaWxpdGllcyBpcyB0aGUgc2FtZSBhcyBwcmV2aW91c2x5CisgICAg
ICAgIHJlcXVlc3RlZCBjYXBhYmlsaXRpZXMgaWYgd2Vic29ja2V0IHdvdWxkIGJlIGVuYWJsZWQu
CisKKyAgICAgICAgOnJldHVybiBCb29sZWFuLgorICAgICAgICAiIiIKKyAgICAgICAgY2FwcyA9
IGNvcHkuZGVlcGNvcHkoY2FwYWJpbGl0aWVzKQorICAgICAgICBjYXBzID0gc2VsZi5fZW5hYmxl
X3dlYnNvY2tldChjYXBzKQorICAgICAgICByZXR1cm4gc3VwZXIoKS5tYXRjaChjYXBzKQorCisg
ICAgYXN5bmMgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAiIiJTdGFydCBhIG5ldyBXZWJEcml2
ZXIgQmlkaXJlY3Rpb25hbCBzZXNzaW9uCisgICAgICAgIHdpdGggd2Vic29ja2V0IGNvbm5lY3Rl
ZC4KKworICAgICAgICA6cmV0dXJuOiBEaWN0aW9uYXJ5IHdpdGggYGNhcGFiaWxpdGllc2AgYW5k
IGBzZXNzaW9uSWRgLgorICAgICAgICAiIiIKKyAgICAgICAgdmFsdWUgPSBzdXBlcigpLnN0YXJ0
KCkKKworICAgICAgICBpZiBub3Qgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0IG9yIG5vdCBzZWxm
LndlYnNvY2tldF90cmFuc3BvcnQub3BlbjoKKyAgICAgICAgICAgIHNlbGYud2Vic29ja2V0X3Ry
YW5zcG9ydCA9IGF3YWl0IHdlYnNvY2tldHMuY29ubmVjdChzZWxmLmNhcGFiaWxpdGllc1sid2Vi
U29ja2V0VXJsIl0pCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgYXN5bmMgZGVmIGVuZChz
ZWxmKToKKyAgICAgICAgIiIiQ2xvc2Ugd2Vic29ja2V0IGNvbm5lY3Rpb24gZmlyc3QgYmVmb3Jl
IGNsb3Npbmcgc2Vzc2lvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYud2Vic29ja2V0
X3RyYW5zcG9ydDoKKyAgICAgICAgICAgIGF3YWl0IHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydC5j
bG9zZSgpCisgICAgICAgICAgICBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQgPSBOb25lCisgICAg
ICAgIHN1cGVyKCkuZW5kKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvX19pbml0X18ucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL19faW5pdF9f
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTdjNTYzMzJmOTAy
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dl
YmRyaXZlci93ZWJkcml2ZXIvYmlkaS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDMgQEAKKyMgZmxh
a2U4OiBub3FhCisKK2Zyb20gLmNsaWVudCBpbXBvcnQgQmlkaVNlc3Npb24KZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Jp
ZGkvY2xpZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZl
ci93ZWJkcml2ZXIvYmlkaS9jbGllbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi40MzA5YTI1ZTM4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVudC5weQpA
QCAtMCwwICsxLDM5MyBAQAoraW1wb3J0IGFzeW5jaW8KK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9y
dCBqc29uCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHN5cworZnJvbSBjb2xsZWN0aW9ucyBpbXBv
cnQgZGVmYXVsdGRpY3QKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIEF3YWl0YWJsZSwgQ2FsbGFi
bGUsIENvcm91dGluZSwgTGlzdCwgT3B0aW9uYWwsIE1hcHBpbmcsIE11dGFibGVNYXBwaW5nCitm
cm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UKKworaW1wb3J0IHdlYnNv
Y2tldHMKKworCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigid2ViZHJpdmVyLmJpZGkiKQor
CisKK2NsYXNzIEJpZGlFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZXJyOiBzdHIsIG1zZzogc3RyLCBzdGFjazogT3B0aW9uYWxbc3RyXSA9IE5vbmUpOgorICAg
ICAgICBzZWxmLmVyciA9IGVycgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBzZWxm
LnN0YWNrID0gc3RhY2sKKworCitkZWYgZ2V0X3J1bm5pbmdfbG9vcCgpIC0+IGFzeW5jaW8uQWJz
dHJhY3RFdmVudExvb3A6CisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNyk6CisgICAg
ICAgIHJldHVybiBhc3luY2lvLmdldF9ydW5uaW5nX2xvb3AoKQorICAgICMgVW5saWtlIHRoZSBh
Ym92ZSwgdGhpcyB3aWxsIGFjdHVhbGx5IGNyZWF0ZSBhbiBldmVudCBsb29wCisgICAgIyBpZiB0
aGVyZSBpc24ndCBvbmU7IGhvcGVmdWxseSBydW5uaW5nIHRlc3RzIGluIFB5dGhvbiA+PSAzLjcK
KyAgICAjIHdpbGwgYWxsb3cgdXMgdG8gY2F0Y2ggYW55IGJlaGF2aW91ciBkaWZmZXJlbmNlCisg
ICAgcmV0dXJuIGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQorCisKK2NsYXNzIEJpZGlTZXNzaW9u
OgorICAgICIiIkEgV2ViRHJpdmVyIEJpRGkgc2Vzc2lvbi4KKworICAgIFRoaXMgaXMgdGhlIG1h
aW4gcmVwcmVzZW50YXRpb24gb2YgYSBCaURpIHNlc3Npb24gYW5kIHByb3ZpZGVzIHRoZQorICAg
IGludGVyZmFjZSBmb3IgcnVubmluZyBjb21tYW5kcyBpbiB0aGUgc2Vzc2lvbiwgYW5kIGZvciBh
dHRhY2hpbmcKKyAgICBldmVudCBoYW5kbGVycyB0byB0aGUgc2Vzc2lvbi4gRm9yIGV4YW1wbGU6
CisKKyAgICBhc3luYyBkZWYgb25fbG9nKGRhdGEpOgorICAgICAgICBwcmludChkYXRhKQorCisg
ICAgc2Vzc2lvbiA9IEJpZGlTZXNzaW9uKCJ3czovL2xvY2FsaG9zdDo0NDQ1IiwgY2FwYWJpbGl0
aWVzKQorICAgIHNlc3Npb24uYWRkX2V2ZW50X2xpc3RlbmVyKCJsb2cuZW50cnlBZGRlZCIsIG9u
X2xvZykKKyAgICBhd2FpdCBzZXNzaW9uLnN0YXJ0KCkKKyAgICBhd2FpdCBzZXNzaW9uLnN1YnNj
cmliZSgibG9nLmVudHJ5QWRkZWQiKQorICAgICMgRG8gc29tZSBzdHVmZiB3aXRoIHRoZSBzZXNz
aW9uCisgICAgc2Vzc2lvbi5lbmQoKQorCisgICAgSWYgdGhlIHNlc3Npb24gaWQgaXMgcHJvdmlk
ZWQgaXQncyBhc3N1bWVkIHRoYXQgdGhlIHVuZGVybHlpbmcKKyAgICBXZWJEcml2ZXIgc2Vzc2lv
biB3YXMgYWxyZWFkeSBjcmVhdGVkLCBhbmQgdGhlIFdlYlNvY2tldCBVUkwgd2FzCisgICAgdGFr
ZW4gZnJvbSB0aGUgbmV3IHNlc3Npb24gcmVzcG9uc2UuIElmIG5vIHNlc3Npb24gaWQgaXMgcHJv
dmlkZWQsIGl0J3MKKyAgICBhc3N1bWVkIHRoYXQgYSBCaURpLW9ubHkgc2Vzc2lvbiBzaG91bGQg
YmUgY3JlYXRlZCB3aGVuIHN0YXJ0KCkgaXMgY2FsbGVkLgorCisgICAgSXQgY2FuIGFsc28gYmUg
dXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgd2l0aCB0aGUgV2ViU29ja2V0IHRyYW5zcG9ydAor
ICAgIGltcGxpY3RseSBiZWluZyBjcmVhdGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgZW50ZXJlZCwg
YW5kIGNsb3NlZCB3aGVuCisgICAgdGhlIGNvbnRleHQgaXMgZXhpdGVkLgorCisgICAgOnBhcmFt
IHdlYnNvY2tldF91cmw6IFdlYlNvY2tldHMgVVJMIG9uIHdoaWNoIHRvIGNvbm5lY3QgdG8gdGhl
IHNlc3Npb24uCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZXhjbHVkZXMgYW55IHBh
dGggY29tcG9uZW50LgorICAgIDpwYXJhbSBzZXNzaW9uX2lkOiBTdHJpbmcgaWQgb2YgZXhpc3Rp
bmcgSFRUUCBzZXNzaW9uCisgICAgOnBhcmFtIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzIHJl
c3BvbnNlIG9mIGV4aXN0aW5nIHNlc3Npb24KKyAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxp
dGllczogRGljdGlvbmFyeSByZXByZXNlbnRpbmcgdGhlIGNhcGFiaWxpdGllcyByZXF1ZXN0Lgor
CisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgd2Vi
c29ja2V0X3VybDogc3RyLAorICAgICAgICAgICAgICAgICBzZXNzaW9uX2lkOiBPcHRpb25hbFtz
dHJdID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiBPcHRpb25hbFtNYXBw
aW5nW3N0ciwgQW55XV0gPSBOb25lLAorICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfY2FwYWJp
bGl0aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55XV0gPSBOb25lLAorICAgICAgICAgICAg
ICAgICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpOgor
ICAgICAgICBzZWxmLnRyYW5zcG9ydDogT3B0aW9uYWxbVHJhbnNwb3J0XSA9IE5vbmUKKworICAg
ICAgICAjIFRoZSBmdWxsIFVSTCBmb3IgYSB3ZWJzb2NrZXQgbG9va3MgbGlrZQorICAgICAgICAj
IHdzOi8vPGhvc3Q+Ojxwb3J0Pi9zZXNzaW9uIHdoZW4gd2UncmUgY3JlYXRpbmcgYSBzZXNzaW9u
IGFuZAorICAgICAgICAjIHdzOi8vPGhvc3Q+Ojxwb3J0Pi9zZXNzaW9uLzxzZXNzaW9uaWQ+IHdo
ZW4gd2UncmUgY29ubmVjdGluZyB0byBhbiBleGlzdGluZyBzZXNzaW9uLgorICAgICAgICAjIFRv
IGJlIHVzZXIgZnJpZW5kbHksIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgY2xhc3Mgd2FzIGNy
ZWF0ZWQgd2l0aCBlaXRoZXIgYQorICAgICAgICAjIGZ1bGwgVVJMIGluY2x1ZGluZyB0aGUgcGF0
aCwgYW5kIGFsc28gdGhlIGNhc2Ugd2hlcmUganVzdCBhIHNlcnZlciB1cmwgaXMgcGFzc2VkIGlu
LgorICAgICAgICBwYXJzZWRfdXJsID0gdXJscGFyc2Uod2Vic29ja2V0X3VybCkKKyAgICAgICAg
aWYgcGFyc2VkX3VybC5wYXRoID09ICIiIG9yIHBhcnNlZF91cmwucGF0aCA9PSAiLyI6CisgICAg
ICAgICAgICBpZiBzZXNzaW9uX2lkIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgd2Vic29ja2V0
X3VybCA9IHVybGpvaW4od2Vic29ja2V0X3VybCwgInNlc3Npb24iKQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICB3ZWJzb2NrZXRfdXJsID0gdXJsam9pbih3ZWJzb2NrZXRfdXJs
LCBmInNlc3Npb24ve3Nlc3Npb25faWR9IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlm
IHNlc3Npb25faWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5w
YXRoICE9IGYiL3Nlc3Npb24ve3Nlc3Npb25faWR9IjoKKyAgICAgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcihmIldlYlNvY2tldCBVUkwge3Nlc3Npb25faWR9IGRvZXNuJ3QgbWF0Y2gg
c2Vzc2lvbiBpZCIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBhcnNl
ZF91cmwucGF0aCAhPSAiL3Nlc3Npb24iOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKGYiV2ViU29ja2V0IFVSTCB7c2Vzc2lvbl9pZH0gZG9lc24ndCBtYXRjaCBzZXNzaW9u
IHVybCIpCisKKyAgICAgICAgaWYgc2Vzc2lvbl9pZCBpcyBOb25lIGFuZCBjYXBhYmlsaXRpZXMg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUcmllZCB0byBjcmVh
dGUgQmlEaS1vbmx5IHNlc3Npb24gd2l0aCBleGlzdGluZyBjYXBhYmlsaXRpZXMiKQorCisgICAg
ICAgIHNlbGYud2Vic29ja2V0X3VybCA9IHdlYnNvY2tldF91cmwKKyAgICAgICAgc2VsZi5yZXF1
ZXN0ZWRfY2FwYWJpbGl0aWVzID0gcmVxdWVzdGVkX2NhcGFiaWxpdGllcworICAgICAgICBzZWxm
LmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBz
ZXNzaW9uX2lkCisKKyAgICAgICAgc2VsZi5jb21tYW5kX2lkID0gMAorICAgICAgICBzZWxmLnBl
bmRpbmdfY29tbWFuZHM6IE11dGFibGVNYXBwaW5nW2ludCwgImFzeW5jaW8uRnV0dXJlW0FueV0i
XSA9IHt9CisgICAgICAgIHNlbGYuZXZlbnRfbGlzdGVuZXJzOiBNdXRhYmxlTWFwcGluZ1tPcHRp
b25hbFtzdHJdLCBMaXN0W0NhbGxhYmxlW1tzdHIsIE1hcHBpbmdbc3RyLCBBbnldXSwgQW55XV1d
ID0gZGVmYXVsdGRpY3QobGlzdCkKKworICAgICAgICAjIE1vZHVsZXMuCisgICAgICAgICMgRm9y
IGVhY2ggbW9kdWxlLCBoYXZlIGEgcHJvcGVydHkgcmVwcmVzZW50aW5nIHRoYXQgbW9kdWxlCisg
ICAgICAgIHNlbGYuc2Vzc2lvbiA9IFNlc3Npb24oc2VsZikKKworICAgICAgICBpZiBsb29wIGlz
IE5vbmU6CisgICAgICAgICAgICBsb29wID0gZ2V0X3J1bm5pbmdfbG9vcCgpCisgICAgICAgIHNl
bGYubG9vcCA9IGxvb3AKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2h0dHAoY2xz
LAorICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9pZDogc3RyLAorICAgICAgICAgICAgICAgICAg
Y2FwYWJpbGl0aWVzOiBNYXBwaW5nW3N0ciwgQW55XSwKKyAgICAgICAgICAgICAgICAgIGxvb3A6
IE9wdGlvbmFsW2FzeW5jaW8uQWJzdHJhY3RFdmVudExvb3BdID0gTm9uZSkgLT4gIkJpZGlTZXNz
aW9uIjoKKyAgICAgICAgIiIiQ3JlYXRlIGEgQmlEaSBzZXNzaW9uIGZyb20gYW4gZXhpc3Rpbmcg
SFRUUCBzZXNzaW9uCisKKyAgICAgICAgOnBhcmFtIHNlc3Npb25faWQ6IFN0cmluZyBpZCBvZiB0
aGUgc2Vzc2lvbgorICAgICAgICA6cGFyYW0gY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXMgcmV0
dXJuZWQgaW4gdGhlIE5ldyBTZXNzaW9uIEhUVFAgcmVzcG9uc2UuIiIiCisgICAgICAgIHdlYnNv
Y2tldF91cmwgPSBjYXBhYmlsaXRpZXMuZ2V0KCJ3ZWJTb2NrZXRVcmwiKQorICAgICAgICBpZiB3
ZWJzb2NrZXRfdXJsIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyB3
ZWJTb2NrZXRVcmwgZm91bmQgaW4gY2FwYWJpbGl0aWVzIikKKyAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2Uod2Vic29ja2V0X3VybCwgc3RyKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IndlYlNvY2tldFVybCBpcyBub3QgYSBzdHJpbmciKQorICAgICAgICByZXR1cm4gY2xzKHdlYnNv
Y2tldF91cmwsIHNlc3Npb25faWQ9c2Vzc2lvbl9pZCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGll
cywgbG9vcD1sb29wKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGJpZGlfb25seShjbHMs
CisgICAgICAgICAgICAgICAgICB3ZWJzb2NrZXRfdXJsOiBzdHIsCisgICAgICAgICAgICAgICAg
ICByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55XV0sCisg
ICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29w
XSA9IE5vbmUpIC0+ICJCaWRpU2Vzc2lvbiI6CisgICAgICAgICIiIkNyZWF0ZSBhIEJpRGkgc2Vz
c2lvbiB3aGVyZSB0aGVyZSBpcyBubyBleGlzdGluZyBIVFRQIHNlc3Npb24KKworICAgICAgICA6
cGFyYW0gd2ViZG9ja2V0X3VybDogVVJMIHRvIHRoZSBXZWJTb2NrZXQgc2VydmVyIGxpc3Rlbmlu
ZyBmb3IgQmlEaSBjb25uZWN0aW9ucworICAgICAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxp
dGllczogQ2FwYWJpbGl0aWVzIHJlcXVlc3QgZm9yIGVzdGFibGlzaGluZyB0aGUgc2Vzc2lvbi4i
IiIKKyAgICAgICAgcmV0dXJuIGNscyh3ZWJzb2NrZXRfdXJsLCByZXF1ZXN0ZWRfY2FwYWJpbGl0
aWVzPXJlcXVlc3RlZF9jYXBhYmlsaXRpZXMsIGxvb3A9bG9vcCkKKworICAgIGFzeW5jIGRlZiBf
X2FlbnRlcl9fKHNlbGYpIC0+ICJCaWRpU2Vzc2lvbiI6CisgICAgICAgIGF3YWl0IHNlbGYuc3Rh
cnQoKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgYXN5bmMgZGVmIF9fYWV4aXRfXyhzZWxm
LCAqYXJnczogQW55KSAtPiBOb25lOgorICAgICAgICBhd2FpdCBzZWxmLmVuZCgpCisKKyAgICBh
c3luYyBkZWYgc3RhcnQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgIiIiQ29ubmVjdCB0byB0aGUg
V2ViRHJpdmVyIEJpRGkgcmVtb3RlIHZpYSBXZWJTb2NrZXRzIiIiCisgICAgICAgIHNlbGYudHJh
bnNwb3J0ID0gVHJhbnNwb3J0KHNlbGYud2Vic29ja2V0X3VybCwgc2VsZi5vbl9tZXNzYWdlLCBs
b29wPXNlbGYubG9vcCkKKworICAgICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKKyAg
ICAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCwgc2VsZi5jYXBhYmlsaXRpZXMgPSBhd2FpdCBzZWxm
LnNlc3Npb24ubmV3KHNlbGYucmVxdWVzdGVkX2NhcGFiaWxpdGllcykKKworICAgICAgICBhd2Fp
dCBzZWxmLnRyYW5zcG9ydC5zdGFydCgpCisKKyAgICBhc3luYyBkZWYgc2VuZF9jb21tYW5kKHNl
bGYsIG1ldGhvZDogc3RyLCBwYXJhbXM6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBBd2FpdGFibGVb
TWFwcGluZ1tzdHIsIEFueV1dOgorICAgICAgICAiIiJTZW5kIGEgY29tbWFuZCB0byB0aGUgcmVt
b3RlIHNlcnZlciIiIgorICAgICAgICAjIHRoaXMgaXNuJ3QgdGhyZWFkc2FmZQorICAgICAgICBz
ZWxmLmNvbW1hbmRfaWQgKz0gMQorICAgICAgICBjb21tYW5kX2lkID0gc2VsZi5jb21tYW5kX2lk
CisKKyAgICAgICAgYm9keSA9IHsKKyAgICAgICAgICAgICJpZCI6IGNvbW1hbmRfaWQsCisgICAg
ICAgICAgICAibWV0aG9kIjogbWV0aG9kLAorICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcwor
ICAgICAgICB9CisgICAgICAgIGFzc2VydCBjb21tYW5kX2lkIG5vdCBpbiBzZWxmLnBlbmRpbmdf
Y29tbWFuZHMKKyAgICAgICAgc2VsZi5wZW5kaW5nX2NvbW1hbmRzW2NvbW1hbmRfaWRdID0gc2Vs
Zi5sb29wLmNyZWF0ZV9mdXR1cmUoKQorICAgICAgICBhc3NlcnQgc2VsZi50cmFuc3BvcnQgaXMg
bm90IE5vbmUKKyAgICAgICAgYXdhaXQgc2VsZi50cmFuc3BvcnQuc2VuZChib2R5KQorCisgICAg
ICAgIHJldHVybiBzZWxmLnBlbmRpbmdfY29tbWFuZHNbY29tbWFuZF9pZF0KKworICAgIGFzeW5j
IGRlZiBvbl9tZXNzYWdlKHNlbGYsIGRhdGE6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBOb25lOgor
ICAgICAgICAiIiJIYW5kbGUgYSBtZXNzYWdlIGZyb20gdGhlIHJlbW90ZSBzZXJ2ZXIiIiIKKyAg
ICAgICAgaWYgImlkIiBpbiBkYXRhOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY29tbWFuZCBy
ZXNwb25zZSBvciBlcnJvcgorICAgICAgICAgICAgZnV0dXJlID0gc2VsZi5wZW5kaW5nX2NvbW1h
bmRzLmdldChkYXRhWyJpZCJdKQorICAgICAgICAgICAgaWYgZnV0dXJlIGlzIE5vbmU6CisgICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIk5vIHBlbmRpbmcgY29tbWFuZCB3aXRoIGlk
IHtkYXRhWydpZCddfSIpCisgICAgICAgICAgICBpZiAicmVzdWx0IiBpbiBkYXRhOgorICAgICAg
ICAgICAgICAgIGZ1dHVyZS5zZXRfcmVzdWx0KGRhdGFbInJlc3VsdCJdKQorICAgICAgICAgICAg
ZWxpZiAiZXJyb3IiIGluIGRhdGEgYW5kICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKGRhdGFbImVycm9yIl0sIHN0cikKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShkYXRhWyJtZXNzYWdlIl0sIHN0cikKKyAgICAgICAgICAgICAg
ICBmdXR1cmUuc2V0X2V4Y2VwdGlvbihCaWRpRXhjZXB0aW9uKGRhdGFbImVycm9yIl0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyJtZXNz
YWdlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhLmdldCgic3RhY2t0cmFjZSIpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQor
ICAgICAgICBlbGlmICJtZXRob2QiIGluIGRhdGEgYW5kICJwYXJhbXMiIGluIGRhdGE6CisgICAg
ICAgICAgICAjIFRoaXMgaXMgYW4gZXZlbnQKKyAgICAgICAgICAgIG1ldGhvZCA9IGRhdGFbIm1l
dGhvZCJdCisgICAgICAgICAgICBsaXN0ZW5lcnMgPSBzZWxmLmV2ZW50X2xpc3RlbmVycy5nZXQo
bWV0aG9kLCBbXSkKKyAgICAgICAgICAgIGlmIG5vdCBsaXN0ZW5lcnM6CisgICAgICAgICAgICAg
ICAgbGlzdGVuZXJzID0gc2VsZi5ldmVudF9saXN0ZW5lcnMuZ2V0KE5vbmUsIFtdKQorICAgICAg
ICAgICAgZm9yIGxpc3RlbmVyIGluIGxpc3RlbmVyczoKKyAgICAgICAgICAgICAgICBhd2FpdCBs
aXN0ZW5lcihtZXRob2QsIGRhdGFbInBhcmFtcyJdKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQorCisg
ICAgYXN5bmMgZGVmIGVuZChzZWxmKSAtPiBOb25lOgorICAgICAgICAiIiJDbG9zZSB3ZWJzb2Nr
ZXQgY29ubmVjdGlvbi4iIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYudHJhbnNwb3J0IGlzIG5vdCBO
b25lCisgICAgICAgIGF3YWl0IHNlbGYudHJhbnNwb3J0LmVuZCgpCisKKyAgICBkZWYgYWRkX2V2
ZW50X2xpc3RlbmVyKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBPcHRp
b25hbFtzdHJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZm46IENhbGxhYmxlW1tzdHIs
IE1hcHBpbmdbc3RyLCBBbnldXSwgQXdhaXRhYmxlW0FueV1dKSAtPiBOb25lOgorICAgICAgICAi
IiJBZGQgYSBsaXN0ZW5lciBmb3IgdGhlIGV2ZW50IHdpdGggYSBnaXZlbiBuYW1lLgorCisgICAg
ICAgIElmIG5hbWUgaXMgTm9uZSwgdGhlIGxpc3RlbmVyIGlzIGNhbGxlZCBmb3IgYWxsIG1lc3Nh
Z2VzIHRoYXQgYXJlIG5vdCBvdGhlcndpc2UKKyAgICAgICAgaGFuZGxlZC4KKworICAgICAgICA6
cGFyYW0gbmFtZTogTmFtZSBvZiBldmVudCB0byBsaXN0ZW4gZm9yIG9yIE5vbmUgdG8gcmVnaXN0
ZXIgYSBkZWZhdWx0IGhhbmRsZXIKKyAgICAgICAgOnBhcmFtIGZuOiBBc3luYyBjYWxsYmFjayBm
dW5jdGlvbiB0aGF0IHJlY2VpdmVzIGV2ZW50IGRhdGEKKyAgICAgICAgIiIiCisgICAgICAgIHNl
bGYuZXZlbnRfbGlzdGVuZXJzW25hbWVdLmFwcGVuZChmbikKKworCitjbGFzcyBUcmFuc3BvcnQ6
CisgICAgIiIiTG93IGxldmVsIG1lc3NhZ2UgaGFuZGxlciBmb3IgdGhlIFdlYlNvY2tldHMgY29u
bmVjdGlvbiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmw6IHN0ciwKKyAgICAgICAgICAg
ICAgICAgbXNnX2hhbmRsZXI6IENhbGxhYmxlW1tNYXBwaW5nW3N0ciwgQW55XV0sIENvcm91dGlu
ZVtBbnksIEFueSwgTm9uZV1dLAorICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFthc3lu
Y2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpOgorICAgICAgICBzZWxmLnVybCA9IHVybAor
ICAgICAgICBzZWxmLmNvbm5lY3Rpb246IE9wdGlvbmFsW3dlYnNvY2tldHMuV2ViU29ja2V0Q2xp
ZW50UHJvdG9jb2xdID0gTm9uZQorICAgICAgICBzZWxmLm1zZ19oYW5kbGVyID0gbXNnX2hhbmRs
ZXIKKyAgICAgICAgc2VsZi5zZW5kX2J1ZjogTGlzdFtNYXBwaW5nW3N0ciwgQW55XV0gPSBbXQor
CisgICAgICAgIGlmIGxvb3AgaXMgTm9uZToKKyAgICAgICAgICAgIGxvb3AgPSBnZXRfcnVubmlu
Z19sb29wKCkKKyAgICAgICAgc2VsZi5sb29wID0gbG9vcAorCisgICAgICAgIHNlbGYucmVhZF9t
ZXNzYWdlX3Rhc2s6IE9wdGlvbmFsW2FzeW5jaW8uVGFza1tBbnldXSA9IE5vbmUKKworICAgIGFz
eW5jIGRlZiBzdGFydChzZWxmKSAtPiBOb25lOgorICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBh
d2FpdCB3ZWJzb2NrZXRzLmNsaWVudC5jb25uZWN0KHNlbGYudXJsKQorICAgICAgICBzZWxmLnJl
YWRfbWVzc2FnZV90YXNrID0gc2VsZi5sb29wLmNyZWF0ZV90YXNrKHNlbGYucmVhZF9tZXNzYWdl
cygpKQorCisgICAgICAgIGZvciBtc2cgaW4gc2VsZi5zZW5kX2J1ZjoKKyAgICAgICAgICAgIGF3
YWl0IHNlbGYuX3NlbmQoc2VsZi5jb25uZWN0aW9uLCBtc2cpCisKKyAgICBhc3luYyBkZWYgc2Vu
ZChzZWxmLCBkYXRhOiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgaWYgc2Vs
Zi5jb25uZWN0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5fc2VuZChz
ZWxmLmNvbm5lY3Rpb24sIGRhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNl
bmRfYnVmLmFwcGVuZChkYXRhKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGFzeW5jIGRlZiBf
c2VuZChjb25uZWN0aW9uOiB3ZWJzb2NrZXRzLldlYlNvY2tldENsaWVudFByb3RvY29sLCBkYXRh
OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgbXNnID0ganNvbi5kdW1wcyhk
YXRhKQorICAgICAgICBsb2dnZXIuZGVidWcoIuKGkiAlcyIsIG1zZykKKyAgICAgICAgYXdhaXQg
Y29ubmVjdGlvbi5zZW5kKG1zZykKKworICAgIGFzeW5jIGRlZiBoYW5kbGUoc2VsZiwgbXNnOiBz
dHIpIC0+IE5vbmU6CisgICAgICAgIGxvZ2dlci5kZWJ1Zygi4oaQICVzIiwgbXNnKQorICAgICAg
ICBkYXRhID0ganNvbi5sb2Fkcyhtc2cpCisgICAgICAgIGF3YWl0IHNlbGYubXNnX2hhbmRsZXIo
ZGF0YSkKKworICAgIGFzeW5jIGRlZiBlbmQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgaWYgc2Vs
Zi5jb25uZWN0aW9uOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5jb25uZWN0aW9uLmNsb3NlKCkK
KyAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IE5vbmUKKworICAgIGFzeW5jIGRlZiByZWFk
X21lc3NhZ2VzKHNlbGYpIC0+IE5vbmU6CisgICAgICAgIGFzc2VydCBzZWxmLmNvbm5lY3Rpb24g
aXMgbm90IE5vbmUKKyAgICAgICAgYXN5bmMgZm9yIG1zZyBpbiBzZWxmLmNvbm5lY3Rpb246Cisg
ICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShtc2csIHN0cik6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiR290IGEgYmluYXJ5IG1lc3NhZ2UiKQorICAgICAgICAgICAgYXdh
aXQgc2VsZi5oYW5kbGUobXNnKQorCisKK2NsYXNzIGNvbW1hbmQ6CisgICAgIiIiRGVjb3JhdG9y
IGZvciBpbXBsZW1lbnRpbmcgYmlkaSBjb21tYW5kcworCisgICAgSW1wbGVtZW50aW5nIGEgY29t
bWFuZCBpbnZvbHZlcyBzcGVjaWZ5aW5nIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQKKyAgICBidWls
ZHMgdGhlIHBhcmFtZXRlcnMgdG8gdGhlIGNvbW1hbmQuIFRoZSBkZWNvcmF0b3IgYXJyYW5nZXMg
dGhvc2UKKyAgICBwYXJhbWV0ZXJzIHRvIGJlIHR1cm5lZCBpbnRvIGEgc2VuZF9jb21tYW5kIGNh
bGwsIHVzaW5nIHRoZSBjbGFzcworICAgIGFuZCBtZXRob2QgbmFtZXMgdG8gZGV0ZXJtaW5lIHRo
ZSBtZXRob2QgaW4gdGhlIGNhbGwuCisKKyAgICBDb21tYW5kcyBkZWNvcmF0ZWQgaW4gdGhpcyB3
YXkgZG9uJ3QgcmV0dXJuIGEgZnV0dXJlLCBidXQgYXdhaXQKKyAgICB0aGUgYWN0dWFsIHJlc3Bv
bnNlLiBJbiBzb21lIGNhc2VzIGl0IGNhbiBiZSB1c2VmdWwgdG8KKyAgICBwb3N0LXByb2Nlc3Mg
dGhpcyByZXNwb25zZSBiZWZvcmUgcmV0dXJuaW5nIGl0IHRvIHRoZSBjbGllbnQuIFRoaXMKKyAg
ICBjYW4gYmUgZG9uZSBieSBzcGVjaWZ5aW5nIGEgc2Vjb25kIGRlY29yYXRlZCBtZXRob2QgbGlr
ZQorICAgIEBjb21tYW5kX25hbWUucmVzdWx0LiBUaGF0IG1ldGhvZCB3aWxsIHRoZW4gYmUgY2Fs
bGVkIG9uY2UgdGhlCisgICAgcmVzdWx0IG9mIHRoZSBvcmlnaW5hbCBjb21tYW5kIGlzIGtub3du
LCBhbmQgdGhlIHJldHVybiB2YWx1ZSBvZgorICAgIHRoZSBtZXRob2QgdXNlZCBhcyB0aGUgcmVz
cG9uc2Ugb2YgdGhlIGNvbW1hbmQuCisKKyAgICBTbyBmb3IgYW4gZXhhbXBsZSwgaWYgd2UgaGFk
IGEgY29tbWFuZCB0ZXN0LnRlc3RNZXRob2QsIHdoaWNoCisgICAgcmV0dXJuZWQgYSByZXN1bHQg
d2hpY2ggd2Ugd2FudCB0byBjb252ZXJ0IHRvIGEgVGVzdFJlc3VsdCB0eXBlLAorICAgIHRoZSBp
bXBsZW1lbnRhdGlvbiBtaWdodCBsb29rIGxpa2U6CisKKyAgICBjbGFzcyBUZXN0KEJpZGlNb2R1
bGUpOgorICAgICAgICBAY29tbWFuZAorICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgdGVz
dF9kYXRhPU5vbmUpOgorICAgICAgICAgICAgcmV0dXJuIHsidGVzdERhdGEiOiB0ZXN0X2RhdGF9
CisKKyAgICAgICBAdGVzdF9tZXRob2QucmVzdWx0CisgICAgICAgZGVmIGNvbnZlcnRfdGVzdF9t
ZXRob2RfcmVzdWx0KHNlbGYsIHJlc3VsdCk6CisgICAgICAgICAgIHJldHVybiBUZXN0RGF0YSgq
KnJlc3VsdCkKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmbjogQ2FsbGFibGVb
Li4uLCBNYXBwaW5nW3N0ciwgQW55XV0pOgorICAgICAgICBzZWxmLnBhcmFtc19mbiA9IGZuCisg
ICAgICAgIHNlbGYucmVzdWx0X2ZuOiBPcHRpb25hbFtDYWxsYWJsZVsuLi4sIEFueV1dID0gTm9u
ZQorCisgICAgZGVmIHJlc3VsdChzZWxmLCBmbjogQ2FsbGFibGVbW0FueSwgTXV0YWJsZU1hcHBp
bmdbc3RyLCBBbnldXSwgTWFwcGluZ1tzdHIsIEFueV1dKSAtPiBOb25lOgorICAgICAgICBzZWxm
LnJlc3VsdF9mbiA9IGZuCisKKyAgICBkZWYgX19zZXRfbmFtZV9fKHNlbGYsIG93bmVyOiBBbnks
IG5hbWU6IHN0cikgLT4gTm9uZToKKyAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBj
bGFzcyBpcyBjcmVhdGVkCisgICAgICAgICMgc2VlIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMv
cmVmZXJlbmNlL2RhdGFtb2RlbC5odG1sI29iamVjdC5fX3NldF9uYW1lX18KKyAgICAgICAgcGFy
YW1zX2ZuID0gc2VsZi5wYXJhbXNfZm4KKyAgICAgICAgcmVzdWx0X2ZuID0gc2VsZi5yZXN1bHRf
Zm4KKworICAgICAgICBAZnVuY3Rvb2xzLndyYXBzKHBhcmFtc19mbikKKyAgICAgICAgYXN5bmMg
ZGVmIGlubmVyKHNlbGY6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gQW55OgorICAgICAgICAgICAg
cGFyYW1zID0gcGFyYW1zX2ZuKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgICAgICAjIENvbnZl
cnQgdGhlIGNsYXNzbmFtZSBhbmQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgYmlkaSBjb21tYW5kIG5h
bWUKKyAgICAgICAgICAgIG1vZF9uYW1lID0gb3duZXIuX19uYW1lX18ubG93ZXIoKQorICAgICAg
ICAgICAgaWYgaGFzYXR0cihvd25lciwgInByZWZpeCIpOgorICAgICAgICAgICAgICAgIG1vZF9u
YW1lID0gZiJ7b3duZXIucHJlZml4fTp7bW9kX25hbWV9IgorICAgICAgICAgICAgY21kX25hbWUg
PSBmInttb2RfbmFtZX0ue3RvX2NhbWVsY2FzZShuYW1lKX0iCisKKyAgICAgICAgICAgIGZ1dHVy
ZSA9IGF3YWl0IHNlbGYuc2Vzc2lvbi5zZW5kX2NvbW1hbmQoY21kX25hbWUsIHBhcmFtcykKKyAg
ICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGZ1dHVyZQorCisgICAgICAgICAgICBpZiByZXN1bHRf
Zm4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSByZXN1bHQgaWYg
d2UgaGF2ZSBhIGNvbnZlcnNpb24gZnVuY3Rpb24gZGVmaW5lZAorICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHJlc3VsdF9mbihzZWxmLCByZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0
CisKKyAgICAgICAgIyBPdmVyd3JpdGUgdGhlIG1ldGhvZCBvbiB0aGUgb3duZXIgY2xhc3Mgd2l0
aCB0aGUgd3JhcHBlcgorICAgICAgICBzZXRhdHRyKG93bmVyLCBuYW1lLCBpbm5lcikKKworICAg
IGRlZiBfX2NhbGxfXygqYXJnczogQW55LCAqKmt3YXJnczogQW55KSAtPiBBd2FpdGFibGVbQW55
XToKKyAgICAgICAgIyBUaGlzIGlzbid0IHJlYWxseSB1c2VkLCBidXQgbXlweSBkb2Vzbid0IHVu
ZGVyc3RhbmQgX19zZXRfbmFtZV9fCisgICAgICAgIHBhc3MKKworCitkZWYgdG9fY2FtZWxjYXNl
KG5hbWU6IHN0cikgLT4gc3RyOgorICAgICIiIkNvbnZlcnQgYSBweXRob24gc3R5bGUgbWV0aG9k
IG5hbWUgZm9vX2JhciB0byBhIEJpRGkgY29tbWFuZCBuYW1lIGZvb0JhciIiIgorICAgIHBhcnRz
ID0gbmFtZS5zcGxpdCgiXyIpCisgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5sb3dlcigpCisgICAg
Zm9yIGkgaW4gcmFuZ2UoMSwgbGVuKHBhcnRzKSk6CisgICAgICAgIHBhcnRzW2ldID0gcGFydHNb
aV0udGl0bGUoKQorICAgIHJldHVybiAiIi5qb2luKHBhcnRzKQorCisKK2NsYXNzIEJpZGlNb2R1
bGU6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb246IEJpZGlTZXNzaW9uKToKKyAgICAg
ICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisKK2NsYXNzIFNlc3Npb24oQmlkaU1vZHVsZSk6
CisgICAgQGNvbW1hbmQKKyAgICBkZWYgbmV3KHNlbGYsIGNhcGFiaWxpdGllczogTWFwcGluZ1tz
dHIsIEFueV0pIC0+IE1hcHBpbmdbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV06CisgICAgICAgIHJl
dHVybiB7ImNhcGFiaWxpdGllcyI6IGNhcGFiaWxpdGllc30KKworICAgIEBuZXcucmVzdWx0Cisg
ICAgZGVmIF9uZXcoc2VsZiwgcmVzdWx0OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gQW55OgorICAg
ICAgICByZXR1cm4gcmVzdWx0LmdldCgic2Vzc2lvbl9pZCIpLCByZXN1bHQuZ2V0KCJjYXBhYmls
aXRpZXMiLCB7fSkKKworICAgIEBjb21tYW5kCisgICAgZGVmIHN1YnNjcmliZShzZWxmLAorICAg
ICAgICAgICAgICAgICAgZXZlbnRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSwKKyAgICAg
ICAgICAgICAgICAgIGNvbnRleHRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSkgLT4gTWFw
cGluZ1tzdHIsIEFueV06CisgICAgICAgIHBhcmFtczogTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnld
ID0geyJldmVudHMiOiBldmVudHMgaWYgZXZlbnRzIGlzIG5vdCBOb25lIGVsc2UgW119CisgICAg
ICAgIGlmIGNvbnRleHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFyYW1zWyJjb250ZXh0
cyJdID0gY29udGV4dHMKKyAgICAgICAgcmV0dXJuIHBhcmFtcworCisgICAgQGNvbW1hbmQKKyAg
ICBkZWYgdW5zdWJzY3JpYmUoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiBPcHRp
b25hbFtMaXN0W3N0cl1dID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dHM6IE9w
dGlvbmFsW0xpc3Rbc3RyXV0gPSBOb25lKSAtPiBNYXBwaW5nW3N0ciwgQW55XToKKyAgICAgICAg
cGFyYW1zOiBNdXRhYmxlTWFwcGluZ1tzdHIsIEFueV0gPSB7ImV2ZW50cyI6IGV2ZW50cyBpZiBl
dmVudHMgaXMgbm90IE5vbmUgZWxzZSBbXX0KKyAgICAgICAgaWYgY29udGV4dHMgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBwYXJhbXNbImNvbnRleHRzIl0gPSBjb250ZXh0cworICAgICAgICBy
ZXR1cm4gcGFyYW1zCisKKworY2xhc3MgVGVzdChCaWRpTW9kdWxlKToKKyAgICAiIiJWZXJ5IHRl
bXBvcmFyeSBtb2R1bGUgdGhhdCBkb2VzIG5vdGhpbmcsIGV4Y2VwdCBkZW1vbnN0cmF0ZSBhIHZl
bmRvciBwcmVmaXggYW5kCisgICAgcHJvdmlkZSBhIHdheSB0byB3b3JrIHdpdGggR2Vja28ncyBj
dXJyZW50IHNrZWxldG9uIGltcGxlbWVudGF0aW9uLiIiIgorCisgICAgcHJlZml4ID0gIm1veiIK
KworICAgIEBjb21tYW5kCisgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsICoqa3dhcmdzKToKKyAg
ICAgICAgcmV0dXJuIGt3YXJncwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CmluZGV4IGY0
ZTNjNzYzNzk1ZS4uMmM3YjFjNWRiZWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5
CkBAIC0xLDkgKzEsOSBAQAogZnJvbSAuIGltcG9ydCBlcnJvcgogZnJvbSAuIGltcG9ydCBwcm90
b2NvbAogZnJvbSAuIGltcG9ydCB0cmFuc3BvcnQKK2Zyb20gLmJpZGkuY2xpZW50IGltcG9ydCBC
aWRpU2Vzc2lvbgogCi1mcm9tIHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzCi1mcm9tIHNpeC5tb3Zl
cy51cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVybHBhcnNlCitmcm9tIHVybGxpYiBpbXBvcnQgcGFy
c2UgYXMgdXJscGFyc2UKIAogCiBkZWYgY29tbWFuZChmdW5jKToKQEAgLTExNiwxNCArMTE2LDQ5
IEBAIGNsYXNzIEFjdGlvblNlcXVlbmNlKG9iamVjdCk6CiAgICAgZGVmIF9rZXlfYWN0aW9uKHNl
bGYsIHN1YnR5cGUsIHZhbHVlKToKICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBl
Ijogc3VidHlwZSwgInZhbHVlIjogdmFsdWV9KQogCi0gICAgZGVmIF9wb2ludGVyX2FjdGlvbihz
ZWxmLCBzdWJ0eXBlLCBidXR0b24pOgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5
cGUiOiBzdWJ0eXBlLCAiYnV0dG9uIjogYnV0dG9ufSkKKyAgICBkZWYgX3BvaW50ZXJfYWN0aW9u
KHNlbGYsIHN1YnR5cGUsIGJ1dHRvbj1Ob25lLCB4PU5vbmUsIHk9Tm9uZSwgZHVyYXRpb249Tm9u
ZSwgb3JpZ2luPU5vbmUsIHdpZHRoPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQ9Tm9uZSwgcHJlc3N1cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9
Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRfeT1Ob25lLCB0d2lzdD1Ob25lLCBh
bHRpdHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgorICAgICAgICBhY3Rpb24g
PSB7CisgICAgICAgICAgICAidHlwZSI6IHN1YnR5cGUKKyAgICAgICAgfQorICAgICAgICBpZiBi
dXR0b24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImJ1dHRvbiJdID0gYnV0dG9u
CisgICAgICAgIGlmIHggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIngiXSA9IHgK
KyAgICAgICAgaWYgeSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsieSJdID0geQor
ICAgICAgICBpZiBkdXJhdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiZHVy
YXRpb24iXSA9IGR1cmF0aW9uCisgICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGFjdGlvblsib3JpZ2luIl0gPSBvcmlnaW4KKyAgICAgICAgaWYgd2lkdGggaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIndpZHRoIl0gPSB3aWR0aAorICAgICAgICBpZiBo
ZWlnaHQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImhlaWdodCJdID0gaGVpZ2h0
CisgICAgICAgIGlmIHByZXNzdXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJw
cmVzc3VyZSJdID0gcHJlc3N1cmUKKyAgICAgICAgaWYgdGFuZ2VudGlhbF9wcmVzc3VyZSBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsidGFuZ2VudGlhbFByZXNzdXJlIl0gPSB0YW5n
ZW50aWFsX3ByZXNzdXJlCisgICAgICAgIGlmIHRpbHRfeCBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIGFjdGlvblsidGlsdFgiXSA9IHRpbHRfeAorICAgICAgICBpZiB0aWx0X3kgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBhY3Rpb25bInRpbHRZIl0gPSB0aWx0X3kKKyAgICAgICAgaWYgdHdp
c3QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bInR3aXN0Il0gPSB0d2lzdAorICAg
ICAgICBpZiBhbHRpdHVkZV9hbmdsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsi
YWx0aXR1ZGVBbmdsZSJdID0gYWx0aXR1ZGVfYW5nbGUKKyAgICAgICAgaWYgYXppbXV0aF9hbmds
ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiYXppbXV0aEFuZ2xlIl0gPSBhemlt
dXRoX2FuZ2xlCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGFjdGlvbikKIAogICAgIGRl
ZiBwYXVzZShzZWxmLCBkdXJhdGlvbik6CiAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsi
dHlwZSI6ICJwYXVzZSIsICJkdXJhdGlvbiI6IGR1cmF0aW9ufSkKICAgICAgICAgcmV0dXJuIHNl
bGYKIAotICAgIGRlZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3Jp
Z2luPU5vbmUpOgorICAgIGRlZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9u
ZSwgb3JpZ2luPU5vbmUsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLAorICAgICAgICAgICAgICAg
ICAgICAgcHJlc3N1cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9u
ZSwgdGlsdF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVk
ZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBv
aW50ZXJNb3ZlIGFjdGlvbi4KIAogICAgICAgICA6cGFyYW0geDogRGVzdGluYXRpb24geC1heGlz
IGNvb3JkaW5hdGUgb2YgcG9pbnRlciBpbiBDU1MgcGl4ZWxzLgpAQCAtMTMzLDE2ICsxNjgsMTAg
QEAgY2xhc3MgQWN0aW9uU2VxdWVuY2Uob2JqZWN0KToKICAgICAgICAgOnBhcmFtIG9yaWdpbjog
T3JpZ2luIG9mIGNvb3JkaW5hdGVzLCBlaXRoZXIgInZpZXdwb3J0IiwgInBvaW50ZXIiIG9yCiAg
ICAgICAgICAgICAgICAgICAgICAgIGFuIEVsZW1lbnQuIElmIE5vbmUsIHJlbW90ZSBlbmQgZGVm
YXVsdHMgdG8gInZpZXdwb3J0Ii4KICAgICAgICAgIiIiCi0gICAgICAgIGFjdGlvbiA9IHsKLSAg
ICAgICAgICAgICJ0eXBlIjogInBvaW50ZXJNb3ZlIiwKLSAgICAgICAgICAgICJ4IjogeCwKLSAg
ICAgICAgICAgICJ5IjogeQotICAgICAgICB9Ci0gICAgICAgIGlmIGR1cmF0aW9uIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgYWN0aW9uWyJkdXJhdGlvbiJdID0gZHVyYXRpb24KLSAgICAgICAg
aWYgb3JpZ2luIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IG9y
aWdpbgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChhY3Rpb24pCisgICAgICAgIHNlbGYu
X3BvaW50ZXJfYWN0aW9uKCJwb2ludGVyTW92ZSIsIHg9eCwgeT15LCBkdXJhdGlvbj1kdXJhdGlv
biwgb3JpZ2luPW9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9d2lk
dGgsIGhlaWdodD1oZWlnaHQsIHByZXNzdXJlPXByZXNzdXJlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0YW5nZW50aWFsX3ByZXNzdXJlPXRhbmdlbnRpYWxfcHJlc3N1cmUsIHRpbHRf
eD10aWx0X3gsIHRpbHRfeT10aWx0X3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3
aXN0PXR3aXN0LCBhbHRpdHVkZV9hbmdsZT1hbHRpdHVkZV9hbmdsZSwgYXppbXV0aF9hbmdsZT1h
emltdXRoX2FuZ2xlKQogICAgICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIHBvaW50ZXJfdXAo
c2VsZiwgYnV0dG9uPTApOgpAQCAtMTUxLDE2ICsxODAsMjEgQEAgY2xhc3MgQWN0aW9uU2VxdWVu
Y2Uob2JqZWN0KToKICAgICAgICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVy
Zm9ybSBhY3Rpb24gd2l0aC4KICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hp
Y2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBz
ZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlclVwIiwgYnV0dG9uKQorICAgICAgICBzZWxmLl9w
b2ludGVyX2FjdGlvbigicG9pbnRlclVwIiwgYnV0dG9uPWJ1dHRvbikKICAgICAgICAgcmV0dXJu
IHNlbGYKIAotICAgIGRlZiBwb2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPTApOgorICAgIGRlZiBw
b2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPTAsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLCBwcmVz
c3VyZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25l
LCB0aWx0X3g9Tm9uZSwgdGlsdF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1O
b25lLCBhbHRpdHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAi
IiJRdWV1ZSBhIHBvaW50ZXJEb3duIGFjdGlvbiBmb3IgYGJ1dHRvbmAuCiAKICAgICAgICAgOnBh
cmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4KICAgICAg
ICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmlj
ZSBidXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9p
bnRlckRvd24iLCBidXR0b24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVy
RG93biIsIGJ1dHRvbj1idXR0b24sIHdpZHRoPXdpZHRoLCBoZWlnaHQ9aGVpZ2h0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZT1wcmVzc3VyZSwgdGFuZ2VudGlhbF9wcmVz
c3VyZT10YW5nZW50aWFsX3ByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aWx0X3g9dGlsdF94LCB0aWx0X3k9dGlsdF95LCB0d2lzdD10d2lzdCwgYWx0aXR1ZGVfYW5nbGU9
YWx0aXR1ZGVfYW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF6aW11dGhfYW5n
bGU9YXppbXV0aF9hbmdsZSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBjbGljayhz
ZWxmLCBlbGVtZW50PU5vbmUsIGJ1dHRvbj0wKToKQEAgLTI3MywxOSArMzA3LDIyIEBAIGNsYXNz
IFdpbmRvdyhvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBoYW5kbGVzCiAKLSAgICBAcHJvcGVy
dHkKKyAgICAjIFRoZSBtYW55ICJ0eXBlOiBpZ25vcmUiIGNvbW1lbnRzIGhlcmUgYW5kIGJlbG93
IGFyZSB0byBzaWxlbmNlIG15cHkncworICAgICMgIkRlY29yYXRlZCBwcm9wZXJ0eSBub3Qgc3Vw
cG9ydGVkIiBlcnJvciwgd2hpY2ggaXMgZHVlIHRvIGEgbGltaXRhdGlvbgorICAgICMgaW4gbXlw
eSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vbXlweS9pc3N1ZXMvMTM2Mi4KKyAgICBA
cHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgcmVjdChzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VU
IiwgIndpbmRvdy9yZWN0IikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBl
OiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiBzaXplKHNlbGYpOgogICAgICAgICAiIiJH
ZXRzIHRoZSB3aW5kb3cgc2l6ZSBhcyBhIHR1cGxlIG9mIGAod2lkdGgsIGhlaWdodClgLiIiIgog
ICAgICAgICByZWN0ID0gc2VsZi5yZWN0CiAgICAgICAgIHJldHVybiAocmVjdFsid2lkdGgiXSwg
cmVjdFsiaGVpZ2h0Il0pCiAKLSAgICBAc2l6ZS5zZXR0ZXIKKyAgICBAc2l6ZS5zZXR0ZXIgICMg
dHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgc2l6ZShzZWxmLCBuZXdfc2l6ZSk6
CiAgICAgICAgICIiIlNldCB3aW5kb3cgc2l6ZSBieSBwYXNzaW5nIGEgdHVwbGUgb2YgYCh3aWR0
aCwgaGVpZ2h0KWAuIiIiCkBAIC0yOTMsMTQgKzMzMCwxNCBAQCBjbGFzcyBXaW5kb3cob2JqZWN0
KToKICAgICAgICAgYm9keSA9IHsid2lkdGgiOiB3aWR0aCwgImhlaWdodCI6IGhlaWdodH0KICAg
ICAgICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndpbmRvdy9y
ZWN0IiwgYm9keSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25v
cmUKICAgICBAY29tbWFuZAogICAgIGRlZiBwb3NpdGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0
cyB0aGUgd2luZG93IHBvc2l0aW9uIGFzIGEgdHVwbGUgb2YgYCh4LCB5KWAuIiIiCiAgICAgICAg
IHJlY3QgPSBzZWxmLnJlY3QKICAgICAgICAgcmV0dXJuIChyZWN0WyJ4Il0sIHJlY3RbInkiXSkK
IAotICAgIEBwb3NpdGlvbi5zZXR0ZXIKKyAgICBAcG9zaXRpb24uc2V0dGVyICAjIHR5cGU6IGln
bm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHBvc2l0aW9uKHNlbGYsIG5ld19wb3NpdGlvbik6
CiAgICAgICAgICIiIlNldCB3aW5kb3cgcG9zaXRpb24gYnkgcGFzc2luZyBhIHR1cGxlIG9mIGAo
eCwgeSlgLiIiIgpAQCAtMzM4LDYgKzM3NSw0MiBAQCBjbGFzcyBGcmFtZShvYmplY3QpOgogICAg
ICAgICByZXR1cm4gY2xzKHV1aWQsIHNlc3Npb24pCiAKIAorY2xhc3MgU2hhZG93Um9vdChvYmpl
Y3QpOgorICAgIGlkZW50aWZpZXIgPSAic2hhZG93LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2Vj
ZiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uLCBpZCk6CisgICAgICAgICIiIgor
ICAgICAgICBDb25zdHJ1Y3QgYSBuZXcgc2hhZG93IHJvb3QgcmVwcmVzZW50YXRpb24uCisKKyAg
ICAgICAgOnBhcmFtIGlkOiBTaGFkb3cgcm9vdCBVVUlEIHdoaWNoIG11c3QgYmUgdW5pcXVlIGFj
cm9zcworICAgICAgICAgICAgYWxsIGJyb3dzaW5nIGNvbnRleHRzLgorICAgICAgICA6cGFyYW0g
c2Vzc2lvbjogQ3VycmVudCBgYHdlYmRyaXZlci5TZXNzaW9uYGAuCisgICAgICAgICIiIgorICAg
ICAgICBzZWxmLmlkID0gaWQKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fanNvbihjbHMsIGpzb24sIHNlc3Npb24pOgorICAg
ICAgICB1dWlkID0ganNvbltTaGFkb3dSb290LmlkZW50aWZpZXJdCisgICAgICAgIHJldHVybiBj
bHModXVpZCwgc2Vzc2lvbikKKworICAgIGRlZiBzZW5kX3NoYWRvd19jb21tYW5kKHNlbGYsIG1l
dGhvZCwgdXJpLCBib2R5PU5vbmUpOgorICAgICAgICB1cmwgPSAic2hhZG93L3t9L3t9Ii5mb3Jt
YXQoc2VsZi5pZCwgdXJpKQorICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lv
bl9jb21tYW5kKG1ldGhvZCwgdXJsLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZmlu
ZF9lbGVtZW50KHNlbGYsIHN0cmF0ZWd5LCBzZWxlY3Rvcik6CisgICAgICAgIGJvZHkgPSB7InVz
aW5nIjogc3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAg
ICAgIHJldHVybiBzZWxmLnNlbmRfc2hhZG93X2NvbW1hbmQoIlBPU1QiLCAiZWxlbWVudCIsIGJv
ZHkpCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBmaW5kX2VsZW1lbnRzKHNlbGYsIHN0cmF0ZWd5
LCBzZWxlY3Rvcik6CisgICAgICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRlZ3ksCisgICAgICAg
ICAgICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2hh
ZG93X2NvbW1hbmQoIlBPU1QiLCAiZWxlbWVudHMiLCBib2R5KQorCisKIGNsYXNzIEZpbmQob2Jq
ZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6CiAgICAgICAgIHNlbGYuc2Vz
c2lvbiA9IHNlc3Npb24KQEAgLTM2NSw3ICs0MzgsNyBAQCBjbGFzcyBDb29raWVzKG9iamVjdCk6
CiAgICAgICAgIGNvb2tpZSA9IHsibmFtZSI6IG5hbWUsCiAgICAgICAgICAgICAgICAgICAidmFs
dWUiOiBOb25lfQogCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobmFtZSwgc3RyaW5nX3R5cGVzKToK
KyAgICAgICAgaWYgaXNpbnN0YW5jZShuYW1lLCBzdHIpOgogICAgICAgICAgICAgY29va2llWyJ2
YWx1ZSJdID0gdmFsdWUKICAgICAgICAgZWxpZiBoYXNhdHRyKHZhbHVlLCAidmFsdWUiKToKICAg
ICAgICAgICAgIGNvb2tpZVsidmFsdWUiXSA9IHZhbHVlLnZhbHVlCkBAIC0zODQsMTIgKzQ1Nywx
MiBAQCBjbGFzcyBVc2VyUHJvbXB0KG9iamVjdCk6CiAgICAgZGVmIGFjY2VwdChzZWxmKToKICAg
ICAgICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L2Fj
Y2VwdCIpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAg
ICAgQGNvbW1hbmQKICAgICBkZWYgdGV4dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2Vz
c2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgImFsZXJ0L3RleHQiKQogCi0gICAgQHRl
eHQuc2V0dGVyCisgICAgQHRleHQuc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5k
CiAgICAgZGVmIHRleHQoc2VsZiwgdmFsdWUpOgogICAgICAgICBib2R5ID0geyJ0ZXh0IjogdmFs
dWV9CkBAIC00MDEsOCArNDc0LDE2IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAg
ICAgICAgICAgaG9zdCwKICAgICAgICAgICAgICAgICAgcG9ydCwKICAgICAgICAgICAgICAgICAg
dXJsX3ByZWZpeD0iLyIsCisgICAgICAgICAgICAgICAgIGVuYWJsZV9iaWRpPUZhbHNlLAogICAg
ICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgZXh0ZW5z
aW9uPU5vbmUpOgorCisgICAgICAgIGlmIGVuYWJsZV9iaWRpOgorICAgICAgICAgICAgaWYgY2Fw
YWJpbGl0aWVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRk
ZWZhdWx0KCJhbHdheXNNYXRjaCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSkK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0geyJhbHdh
eXNNYXRjaCI6IHsid2ViU29ja2V0VXJsIjogVHJ1ZX19CisKICAgICAgICAgc2VsZi50cmFuc3Bv
cnQgPSB0cmFuc3BvcnQuSFRUUFdpcmVQcm90b2NvbChob3N0LCBwb3J0LCB1cmxfcHJlZml4KQog
ICAgICAgICBzZWxmLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMKICAgICAg
ICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBOb25lCkBAIC00MTAsNiArNDkxLDggQEAgY2xhc3MgU2Vz
c2lvbihvYmplY3QpOgogICAgICAgICBzZWxmLnRpbWVvdXRzID0gTm9uZQogICAgICAgICBzZWxm
LndpbmRvdyA9IE5vbmUKICAgICAgICAgc2VsZi5maW5kID0gTm9uZQorICAgICAgICBzZWxmLmVu
YWJsZV9iaWRpID0gZW5hYmxlX2JpZGkKKyAgICAgICAgc2VsZi5iaWRpX3Nlc3Npb24gPSBOb25l
CiAgICAgICAgIHNlbGYuZXh0ZW5zaW9uID0gTm9uZQogICAgICAgICBzZWxmLmV4dGVuc2lvbl9j
bHMgPSBleHRlbnNpb24KIApAQCAtNDM2LDYgKzUxOSw5IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0
KToKICAgICBkZWYgX19kZWxfXyhzZWxmKToKICAgICAgICAgc2VsZi5lbmQoKQogCisgICAgZGVm
IG1hdGNoKHNlbGYsIGNhcGFiaWxpdGllcyk6CisgICAgICAgIHJldHVybiBzZWxmLnJlcXVlc3Rl
ZF9jYXBhYmlsaXRpZXMgPT0gY2FwYWJpbGl0aWVzCisKICAgICBkZWYgc3RhcnQoc2VsZik6CiAg
ICAgICAgICIiIlN0YXJ0IGEgbmV3IFdlYkRyaXZlciBzZXNzaW9uLgogCkBAIC00NTgsNiArNTQ0
LDE0IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0g
dmFsdWVbInNlc3Npb25JZCJdCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gdmFsdWVbImNh
cGFiaWxpdGllcyJdCiAKKyAgICAgICAgaWYgIndlYlNvY2tldFVybCIgaW4gc2VsZi5jYXBhYmls
aXRpZXM6CisgICAgICAgICAgICBzZWxmLmJpZGlfc2Vzc2lvbiA9IEJpZGlTZXNzaW9uLmZyb21f
aHR0cChzZWxmLnNlc3Npb25faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLmNhcGFiaWxpdGllcykKKyAgICAgICAgZWxpZiBzZWxm
LmVuYWJsZV9iaWRpOgorICAgICAgICAgICAgc2VsZi5lbmQoKQorICAgICAgICAgICAgcmFpc2Ug
ZXJyb3IuU2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIlJlcXVl
c3RlZCBiaWRpIHNlc3Npb24sIGJ1dCB3ZWJTb2NrZXRVcmwgY2FwYWJpbGl0eSBub3QgZm91bmQi
KQorCiAgICAgICAgIGlmIHNlbGYuZXh0ZW5zaW9uX2NsczoKICAgICAgICAgICAgIHNlbGYuZXh0
ZW5zaW9uID0gc2VsZi5leHRlbnNpb25fY2xzKHNlbGYpCiAKQEAgLTQ3MCw3ICs1NjQsNyBAQCBj
bGFzcyBTZXNzaW9uKG9iamVjdCk6CiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5z
ZW5kX2NvbW1hbmQoIkRFTEVURSIsICJzZXNzaW9uLyVzIiAlIHNlbGYuc2Vzc2lvbl9pZCkKLSAg
ICAgICAgZXhjZXB0IGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb246CisgICAgICAgIGV4
Y2VwdCAoT1NFcnJvciwgZXJyb3IuSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbik6CiAgICAgICAg
ICAgICBwYXNzCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLnNlc3Npb25faWQg
PSBOb25lCkBAIC01NDUsMTIgKzYzOSwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAg
ICAgIHVybCA9IHVybHBhcnNlLnVybGpvaW4oInNlc3Npb24vJXMvIiAlIHNlbGYuc2Vzc2lvbl9p
ZCwgdXJpKQogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2NvbW1hbmQobWV0aG9kLCB1cmwsIGJv
ZHksIHRpbWVvdXQpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdu
b3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInVybCIpCiAKLSAgICBAdXJsLnNldHRlcgor
ICAgIEB1cmwuc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHVy
bChzZWxmLCB1cmwpOgogICAgICAgICBpZiB1cmxwYXJzZS51cmxzcGxpdCh1cmwpLm5ldGxvYyBp
cyBOb25lOgpAQCAtNTcwLDEyICs2NjQsMTIgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAg
IGRlZiByZWZyZXNoKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiUE9TVCIsICJyZWZyZXNoIikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAg
IyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB0aXRsZShzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ0aXRsZSIpCiAKLSAg
ICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQK
ICAgICBkZWYgc291cmNlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25f
Y29tbWFuZCgiR0VUIiwgInNvdXJjZSIpCkBAIC01ODcsMTIgKzY4MSwxMiBAQCBjbGFzcyBTZXNz
aW9uKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIHZhbHVlWyJoYW5kbGUiXQogCi0gICAgQHBy
b3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAg
ZGVmIHdpbmRvd19oYW5kbGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lv
bl9jb21tYW5kKCJHRVQiLCAid2luZG93IikKIAotICAgIEB3aW5kb3dfaGFuZGxlLnNldHRlcgor
ICAgIEB3aW5kb3dfaGFuZGxlLnNldHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAog
ICAgIGRlZiB3aW5kb3dfaGFuZGxlKHNlbGYsIGhhbmRsZSk6CiAgICAgICAgIGJvZHkgPSB7Imhh
bmRsZSI6IGhhbmRsZX0KQEAgLTYwOCwxMiArNzAyLDEyIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0
KToKIAogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsIHVy
bCwgYm9keSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUK
ICAgICBAY29tbWFuZAogICAgIGRlZiBoYW5kbGVzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdy9oYW5kbGVzIikKIAotICAgIEBw
cm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAg
IGRlZiBhY3RpdmVfZWxlbWVudChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNz
aW9uX2NvbW1hbmQoIkdFVCIsICJlbGVtZW50L2FjdGl2ZSIpCkBAIC02ODMsNyArNzc3LDYgQEAg
Y2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAgICAg
ICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3QiKQog
Ci0KIGNsYXNzIEVsZW1lbnQob2JqZWN0KToKICAgICAiIiIKICAgICBSZXByZXNlbnRhdGlvbiBv
ZiBhIHdlYiBlbGVtZW50LgpAQCAtNzQyLDEyICs4MzUsMTIgQEAgY2xhc3MgRWxlbWVudChvYmpl
Y3QpOgogICAgIGRlZiBzZW5kX2tleXMoc2VsZiwgdGV4dCk6CiAgICAgICAgIHJldHVybiBzZWxm
LnNlbmRfZWxlbWVudF9jb21tYW5kKCJQT1NUIiwgInZhbHVlIiwgeyJ0ZXh0IjogdGV4dH0pCiAK
LSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1h
bmQKICAgICBkZWYgdGV4dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50
X2NvbW1hbmQoIkdFVCIsICJ0ZXh0IikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAg
IyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAg
ICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgIm5hbWUiKQpAQCAtNzU2
LDEyICs4NDksMTIgQEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBzdHlsZShzZWxm
LCBwcm9wZXJ0eV9uYW1lKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1h
bmQoIkdFVCIsICJjc3MvJXMiICUgcHJvcGVydHlfbmFtZSkKIAotICAgIEBwcm9wZXJ0eQorICAg
IEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiByZWN0KHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInJl
Y3QiKQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAg
IEBjb21tYW5kCiAgICAgZGVmIHNlbGVjdGVkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5z
ZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNlbGVjdGVkIikKQEAgLTc3MCw2ICs4NjMsMTEg
QEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3Qi
KQogCisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQorICAgIEBjb21tYW5kCisgICAgZGVm
IHNoYWRvd19yb290KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29t
bWFuZCgiR0VUIiwgInNoYWRvdyIpCisKICAgICBAY29tbWFuZAogICAgIGRlZiBhdHRyaWJ1dGUo
c2VsZiwgbmFtZSk6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJH
RVQiLCAiYXR0cmlidXRlLyVzIiAlIG5hbWUpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5Cmlu
ZGV4IDgzNzk2NTZkNzNkZC4uYTQxM2E5NTBkNDhlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJv
ci5weQpAQCAtMSwxMiArMSwxNyBAQAogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQganNvbgog
Ci1mcm9tIHNpeCBpbXBvcnQgaXRlcnZhbHVlcworZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFy
LCBEZWZhdWx0RGljdCwgVHlwZQogCiAKIGNsYXNzIFdlYkRyaXZlckV4Y2VwdGlvbihFeGNlcHRp
b24pOgotICAgIGh0dHBfc3RhdHVzID0gTm9uZQotICAgIHN0YXR1c19jb2RlID0gTm9uZQorICAg
ICMgVGhlIHN0YXR1c19jb2RlIGNsYXNzIHZhcmlhYmxlIGlzIHVzZWQgdG8gbWFwIHRoZSBKU09O
IEVycm9yIENvZGUgKHNlZQorICAgICMgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8j
ZXJyb3JzKSB0byBhIFdlYkRyaXZlckV4Y2VwdGlvbiBzdWJjbGFzcy4KKyAgICAjIEhvd2V2ZXIs
IGh0dHBfc3RhdHVzIG5lZWQgbm90IG1hdGNoLCBhbmQgYm90aCBhcmUgc2V0IGFzIGluc3RhbmNl
CisgICAgIyB2YXJpYWJsZXMsIHNoYWRvd2luZyB0aGUgY2xhc3MgdmFyaWFibGVzLiBUT0RPOiBN
YXRjaCBvbiBib3RoIGh0dHBfc3RhdHVzCisgICAgIyBhbmQgc3RhdHVzX2NvZGUgYW5kIGxldCB0
aGVzZSBiZSBjbGFzcyB2YXJpYWJsZXMgb25seS4KKyAgICBodHRwX3N0YXR1cyA9IE5vbmUgICMg
dHlwZTogQ2xhc3NWYXJbaW50XQorICAgIHN0YXR1c19jb2RlID0gTm9uZSAgIyB0eXBlOiBDbGFz
c1ZhcltzdHJdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgaHR0cF9zdGF0dXM9Tm9uZSwgc3Rh
dHVzX2NvZGU9Tm9uZSwgbWVzc2FnZT1Ob25lLCBzdGFja3RyYWNlPU5vbmUpOgogICAgICAgICBz
dXBlcihXZWJEcml2ZXJFeGNlcHRpb24sIHNlbGYpCkBAIC0zNCw2ICszOSwxMSBAQCBjbGFzcyBX
ZWJEcml2ZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKIAog
CitjbGFzcyBEZXRhY2hlZFNoYWRvd1Jvb3RFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToK
KyAgICBodHRwX3N0YXR1cyA9IDQwNAorICAgIHN0YXR1c19jb2RlID0gImRldGFjaGVkIHNoYWRv
dyByb290IgorCisKIGNsYXNzIEVsZW1lbnRDbGlja0ludGVyY2VwdGVkRXhjZXB0aW9uKFdlYkRy
aXZlckV4Y2VwdGlvbik6CiAgICAgaHR0cF9zdGF0dXMgPSA0MDAKICAgICBzdGF0dXNfY29kZSA9
ICJlbGVtZW50IGNsaWNrIGludGVyY2VwdGVkIgpAQCAtMTE0LDYgKzEyNCwxMSBAQCBjbGFzcyBO
b1N1Y2hGcmFtZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgIHN0YXR1c19jb2Rl
ID0gIm5vIHN1Y2ggZnJhbWUiCiAKIAorY2xhc3MgTm9TdWNoU2hhZG93Um9vdEV4Y2VwdGlvbihX
ZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2Nv
ZGUgPSAibm8gc3VjaCBzaGFkb3cgcm9vdCIKKworCiBjbGFzcyBOb1N1Y2hXaW5kb3dFeGNlcHRp
b24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICBodHRwX3N0YXR1cyA9IDQwNAogICAgIHN0YXR1
c19jb2RlID0gIm5vIHN1Y2ggd2luZG93IgpAQCAtMjA5LDcgKzIyNCw3IEBAIGRlZiBnZXQoZXJy
b3JfY29kZSk6CiAgICAgcmV0dXJuIF9lcnJvcnMuZ2V0KGVycm9yX2NvZGUsIFdlYkRyaXZlckV4
Y2VwdGlvbikKIAogCi1fZXJyb3JzID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QoKQotZm9yIGl0
ZW0gaW4gbGlzdChpdGVydmFsdWVzKGxvY2FscygpKSk6CitfZXJyb3JzOiBEZWZhdWx0RGljdFtz
dHIsIFR5cGVbV2ViRHJpdmVyRXhjZXB0aW9uXV0gPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdCgp
Citmb3IgaXRlbSBpbiBsaXN0KGxvY2FscygpLnZhbHVlcygpKToKICAgICBpZiB0eXBlKGl0ZW0p
ID09IHR5cGUgYW5kIGlzc3ViY2xhc3MoaXRlbSwgV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAg
ICAgX2Vycm9yc1tpdGVtLnN0YXR1c19jb2RlXSA9IGl0ZW0KZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIv
cHJvdG9jb2wucHkKaW5kZXggYzgxMWY2ZjI2ZGI3Li5lNzFlMDFkNjIwODMgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3By
b3RvY29sLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2
ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5CkBAIC0yLDggKzIsNiBAQCBpbXBvcnQganNvbgogCiBp
bXBvcnQgd2ViZHJpdmVyCiAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKLQogCiAiIiJXZWJE
cml2ZXIgd2lyZSBwcm90b2NvbCBjb2RlY3MuIiIiCiAKQEAgLTIyLDYgKzIwLDggQEAgY2xhc3Mg
RW5jb2Rlcihqc29uLkpTT05FbmNvZGVyKToKICAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVy
LkZyYW1lLmlkZW50aWZpZXI6IG9iai5pZH0KICAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwg
d2ViZHJpdmVyLldpbmRvdyk6CiAgICAgICAgICAgICByZXR1cm4ge3dlYmRyaXZlci5GcmFtZS5p
ZGVudGlmaWVyOiBvYmouaWR9CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIHdlYmRyaXZl
ci5TaGFkb3dSb290KToKKyAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLlNoYWRvd1Jvb3Qu
aWRlbnRpZmllcjogb2JqLmlkfQogICAgICAgICByZXR1cm4gc3VwZXIoRW5jb2Rlciwgc2VsZiku
ZGVmYXVsdChvYmopCiAKIApAQCAtNDAsNiArNDAsOCBAQCBjbGFzcyBEZWNvZGVyKGpzb24uSlNP
TkRlY29kZXIpOgogICAgICAgICAgICAgcmV0dXJuIHdlYmRyaXZlci5GcmFtZS5mcm9tX2pzb24o
cGF5bG9hZCwgc2VsZi5zZXNzaW9uKQogICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF5bG9hZCwg
ZGljdCkgYW5kIHdlYmRyaXZlci5XaW5kb3cuaWRlbnRpZmllciBpbiBwYXlsb2FkOgogICAgICAg
ICAgICAgcmV0dXJuIHdlYmRyaXZlci5XaW5kb3cuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vz
c2lvbikKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpIGFuZCB3ZWJkcml2
ZXIuU2hhZG93Um9vdC5pZGVudGlmaWVyIGluIHBheWxvYWQ6CisgICAgICAgICAgICByZXR1cm4g
d2ViZHJpdmVyLlNoYWRvd1Jvb3QuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lvbikKICAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpOgotICAgICAgICAgICAgcmV0dXJu
IHtrOiBzZWxmLm9iamVjdF9ob29rKHYpIGZvciBrLCB2IGluIGl0ZXJpdGVtcyhwYXlsb2FkKX0K
KyAgICAgICAgICAgIHJldHVybiB7azogc2VsZi5vYmplY3RfaG9vayh2KSBmb3IgaywgdiBpbiBw
YXlsb2FkLml0ZW1zKCl9CiAgICAgICAgIHJldHVybiBwYXlsb2FkCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3Bv
cnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRy
aXZlci90cmFuc3BvcnQucHkKaW5kZXggZTgzNmIxOWExNThkLi41YTFjZTI4OWVjMDkgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJp
dmVyL3RyYW5zcG9ydC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKQEAgLTEsMTAgKzEsOSBAQAogaW1wb3J0
IGpzb24KIGltcG9ydCBzZWxlY3QKIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZSwgUFkzCi1m
cm9tIHNpeC5tb3Zlcy5jb2xsZWN0aW9uc19hYmMgaW1wb3J0IE1hcHBpbmcKLWZyb20gc2l4Lm1v
dmVzLmh0dHBfY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgotZnJvbSBzaXgubW92ZXMudXJs
bGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRU
UENvbm5lY3Rpb24KK2Zyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBNYXBwaW5nLCBTZXF1
ZW5jZSwgVHVwbGUKK2Zyb20gdXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQogCiBmcm9t
IC4gaW1wb3J0IGVycm9yCiAKQEAgLTE0LDcgKzEzLDcgQEAgZnJvbSAuIGltcG9ydCBlcnJvcgog
bWlzc2luZyA9IG9iamVjdCgpCiAKIAotY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmcpOgor
Y2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmdbc3RyLCBzdHJdKToKICAgICAiIiJSZWFkLW9u
bHkgZGljdGlvbmFyeS1saWtlIEFQSSBmb3IgYWNjZXNzaW5nIHJlc3BvbnNlIGhlYWRlcnMuCiAK
ICAgICBUaGlzIGNsYXNzOgpAQCAtMjMsMTEgKzIyLDkgQEAgY2xhc3MgUmVzcG9uc2VIZWFkZXJz
KE1hcHBpbmcpOgogICAgICAgKiBIYXMgY2FzZS1pbnNlbnNpdGl2ZSBoZWFkZXIgbG9va3VwLgog
ICAgICAgKiBBbHdheXMgcmV0dXJucyBhbGwgaGVhZGVyIHZhbHVlcyB0aGF0IGhhdmUgdGhlIHNh
bWUgbmFtZSwgc2VwYXJhdGVkIGJ5CiAgICAgICAgIGNvbW1hcy4KLQotICAgIEl0IGRvZXMgbm90
IGVuc3VyZSBoZWFkZXIgdHlwZXMgKGUuZy4gYmluYXJ5IHZzIHN0cmluZykuCiAgICAgIiIiCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW1zKToKLSAgICAgICAgc2VsZi5oZWFkZXJzX2RpY3Qg
PSB7fQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpdGVtczogU2VxdWVuY2VbVHVwbGVbc3RyLCBz
dHJdXSk6CisgICAgICAgIHNlbGYuaGVhZGVyc19kaWN0OiBEaWN0W3N0ciwgTGlzdFtzdHJdXSA9
IHt9CiAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZW1zOgogICAgICAgICAgICAga2V5ID0g
a2V5Lmxvd2VyKCkKICAgICAgICAgICAgIGlmIGtleSBub3QgaW4gc2VsZi5oZWFkZXJzX2RpY3Q6
CkBAIC0xNDUsMTUgKzE0MiwxOCBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAg
ICAgZGVmIGNsb3NlKHNlbGYpOgogICAgICAgICAiIiJDbG9zZXMgdGhlIGN1cnJlbnQgSFRUUCBj
b25uZWN0aW9uLCBpZiB0aGVyZSBpcyBvbmUuIiIiCiAgICAgICAgIGlmIHNlbGYuX2Nvbm46Ci0g
ICAgICAgICAgICBzZWxmLl9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBzZWxmLl9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgor
ICAgICAgICAgICAgICAgICMgVGhlIHJlbW90ZSBjbG9zZWQgdGhlIGNvbm5lY3Rpb24KKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuX2Nvbm4gPSBOb25lCiAKICAgICBAcHJvcGVy
dHkKICAgICBkZWYgY29ubmVjdGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0cyB0aGUgY3VycmVu
dCBIVFRQIGNvbm5lY3Rpb24sIG9yIGxhemlseSBjcmVhdGVzIG9uZS4iIiIKICAgICAgICAgaWYg
bm90IHNlbGYuX2Nvbm46CiAgICAgICAgICAgICBjb25uX2t3YXJncyA9IHt9Ci0gICAgICAgICAg
ICBpZiBub3QgUFkzOgotICAgICAgICAgICAgICAgIGNvbm5fa3dhcmdzWyJzdHJpY3QiXSA9IFRy
dWUKICAgICAgICAgICAgICMgV2UgYXJlIG5vdCBzZXR0aW5nIGFuIEhUVFAgdGltZW91dCBvdGhl
ciB0aGFuIHRoZSBkZWZhdWx0IHdoZW4gdGhlCiAgICAgICAgICAgICAjIGNvbm5lY3Rpb24gaXRz
IGNyZWF0ZWQuIFRoZSBzZW5kIG1ldGhvZCBoYXMgYSB0aW1lb3V0IHZhbHVlIGlmIG5lZWRlZC4K
ICAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxmLmhvc3QsIHNlbGYu
cG9ydCwgKipjb25uX2t3YXJncykKQEAgLTIzNSw3ICsyMzUsNyBAQCBjbGFzcyBIVFRQV2lyZVBy
b3RvY29sKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9u
c2UsIGRlY29kZXI9ZGVjb2RlciwgKipjb2RlY19rd2FyZ3MpCiAKICAgICBkZWYgX3JlcXVlc3Qo
c2VsZiwgbWV0aG9kLCB1cmksIHBheWxvYWQsIGhlYWRlcnM9Tm9uZSwgdGltZW91dD1Ob25lKToK
LSAgICAgICAgaWYgaXNpbnN0YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBp
c2luc3RhbmNlKHBheWxvYWQsIHN0cik6CiAgICAgICAgICAgICBwYXlsb2FkID0gcGF5bG9hZC5l
bmNvZGUoInV0Zi04IikKIAogICAgICAgICBpZiBoZWFkZXJzIGlzIE5vbmU6CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3Qg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QK
aW5kZXggMGFkZjBhOTRiMTVkLi40YTA3OWM3MjViZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKQEAgLTYsNyAr
Niw2IEBAIHdwdHJ1bm5lciBpcyBhIGhhcm5lc3MgZm9yIHJ1bm5pbmcgdGhlIFczQyBgd2ViLXBs
YXRmb3JtLXRlc3RzIHRlc3RzdWl0ZWBfLgogLi4gdG9jdHJlZTo6CiAgICA6bWF4ZGVwdGg6IDIK
IAotICAgZG9jcy91c2FnZQogICAgZG9jcy9leHBlY3RhdGlvbgogICAgZG9jcy9kZXNpZ24KICAg
IGRvY3MvaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL2RvY3MvdXNhZ2UucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODVmZDk3YmY2YzEyLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdAorKysgL2Rldi9udWxs
CkBAIC0xLDI0MiArMCwwIEBACi1HZXR0aW5nIFN0YXJ0ZWQKLT09PT09PT09PT09PT09PQotCi1J
bnN0YWxsaW5nIHdwdHJ1bm5lcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIGVhc2llc3Qg
d2F5IHRvIGluc3RhbGwgd3B0cnVubmVyIGlzIGludG8gYSB2aXJ0dWFsZW52LCB1c2luZyBwaXA6
OgotCi0gIHZpcnR1YWxlbnYgd3B0cnVubmVyCi0gIGNkIHdwdHJ1bm5lcgotICBzb3VyY2UgYmlu
L2FjdGl2YXRlCi0gIHBpcCBpbnN0YWxsIHdwdHJ1bm5lcgotCi1UaGlzIHdpbGwgaW5zdGFsbCB0
aGUgYmFzZSBkZXBlbmRlbmNpZXMgZm9yIHdwdHJ1bm5lciwgYnV0IG5vdCBhbnkKLWV4dHJhIGRl
cGVuZGVuY2llcyByZXF1aXJlZCB0byB0ZXN0IGFnYWluc3Qgc3BlY2lmaWMgYnJvd3NlcnMuIElu
Ci1vcmRlciB0byBkbyB0aGlzIHlvdSBtdXN0IHVzZSB1c2UgdGhlIGV4dHJhIHJlcXVpcmVtZW50
cyBmaWxlcyBpbgotYGAkVklSVFVBTF9FTlYvcmVxdWlyZW1lbnRzL3JlcXVpcmVtZW50c19icm93
c2VyLnR4dGBgLiBGb3IgZXhhbXBsZSwKLWluIG9yZGVyIHRvIHRlc3QgYWdhaW5zdCBGaXJlZm94
IHlvdSB3b3VsZCBoYXZlIHRvIHJ1bjo6Ci0KLSAgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRz
L3JlcXVpcmVtZW50c19maXJlZm94LnR4dAotCi1JZiB5b3UgaW50ZW5kIHRvIHdvcmsgb24gdGhl
IGNvZGUsIHRoZSBgYC1lYGAgb3B0aW9uIHRvIHBpcCBzaG91bGQgYmUKLXVzZWQgaW4gY29tYmlu
YXRpb24gd2l0aCBhIHNvdXJjZSBjaGVja291dCBpLmUuIGluc2lkZSBhIHZpcnR1YWwKLWVudmly
b25tZW50IGNyZWF0ZWQgYXMgYWJvdmU6OgotCi0gIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dwdHJ1bm5lci5naXQKLSAgY2Qgd3B0cnVubmVyCi0gIHBpcCBpbnN0YWxsIC1lIC4v
Ci0KLUluIGFkZGl0aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMgaW5zdGFsbGVkIGJ5IHBpcCwgd3B0
cnVubmVyIHJlcXVpcmVzCi1hIGNvcHkgb2YgdGhlIHdlYi1wbGF0Zm9ybS10ZXN0cyByZXBvc2l0
b3J5LiBUaGlzIGNhbiBiZSBsb2NhdGVkCi1hbnl3aGVyZSBvbiB0aGUgZmlsZXN5c3RlbSwgYnV0
IHRoZSBlYXNpZXN0IG9wdGlvbiBpcyB0byBwdXQgaXQKLXVuZGVyIHRoZSBzYW1lIHBhcmVudCBk
aXJlY3RvcnkgYXMgdGhlIHdwdHJ1bm5lciBjaGVja291dDo6Ci0KLSAgZ2l0IGNsb25lIGh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotCi1JdCBpcyBhbHNvIG5l
Y2Vzc2FyeSB0byBnZW5lcmF0ZSBhIHdlYi1wbGF0Zm9ybS10ZXN0cyBgYE1BTklGRVNULmpzb25g
YAotZmlsZS4gSXQncyByZWNvbW1lbmRlZCB0byBhbHNvIHB1dCB0aGF0IHVuZGVyIHRoZSBzYW1l
IHBhcmVudCBkaXJlY3RvcnkgYXMKLXRoZSB3cHRydW5uZXIgY2hlY2tvdXQsIGluIGEgZGlyZWN0
b3J5IG5hbWVkIGBgbWV0YWBgOjoKLQotICBta2RpciBtZXRhCi0gIGNkIHdlYi1wbGF0Zm9ybS10
ZXN0cwotICBweXRob24gbWFuaWZlc3QgLS1wYXRoIC4uL21ldGEvTUFOSUZFU1QuanNvbgotCi1U
aGUgYGBNQU5JRkVTVC5qc29uYGAgZmlsZSBuZWVkcyB0byBiZSByZWdlbmVyYXRlZCBlYWNoIHRp
bWUgdGhlCi13ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQgaXMgdXBkYXRlZC4gVG8gYWlkIHdp
dGggdGhlIHVwZGF0ZSBwcm9jZXNzCi10aGVyZSBpcyBhIHRvb2wgY2FsbGVkIGBgd3B0dXBkYXRl
YGAsIHdoaWNoIGlzIGRlc2NyaWJlZCBpbgotOnJlZjpgd3B0dXBkYXRlLWxhYmVsYC4KLQotUnVu
bmluZyB0aGUgVGVzdHMKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUEgdGVzdCBydW4gaXMgc3RhcnRl
ZCB1c2luZyB0aGUgYGB3cHRydW5uZXJgYCBjb21tYW5kLiAgVGhlIGNvbW1hbmQKLXRha2VzIG11
bHRpcGxlIG9wdGlvbnMsIG9mIHdoaWNoIHRoZSBmb2xsb3dpbmcgYXJlIG1vc3Qgc2lnbmlmaWNh
bnQ6Ci0KLWBgLS1wcm9kdWN0YGAgKGRlZmF1bHRzIHRvIGBmaXJlZm94YCkKLSAgVGhlIHByb2R1
Y3QgdG8gdGVzdCBhZ2FpbnN0OiBgY2hyb21lYCwgYGZpcmVmb3hgLCBvciBgc2Vydm9gLgotCi1g
YC0tYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIG9yIGBzZXJ2b2Ap
Ci0gIFRoZSBwYXRoIHRvIGEgYmluYXJ5IGZpbGUgZm9yIHRoZSBwcm9kdWN0IChicm93c2VyKSB0
byB0ZXN0IGFnYWluc3QuCi0KLWBgLS13ZWJkcml2ZXItYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHBy
b2R1Y3QgaXMgYGNocm9tZWApCi0gIFRoZSBwYXRoIHRvIGEgYCpkcml2ZXJgIGJpbmFyeTsgZS5n
LiwgYSBgY2hyb21lZHJpdmVyYCBiaW5hcnkuCi0KLWBgLS1jZXJ0dXRpbC1iaW5hcnlgYCAocmVx
dWlyZWQgaWYgcHJvZHVjdCBpcyBgZmlyZWZveGAgWyNdXykKLSAgVGhlIHBhdGggdG8gYSBgY2Vy
dHV0aWxgIGJpbmFyeSAoZm9yIHRlc3RzIHRoYXQgbXVzdCBiZSBydW4gb3ZlciBodHRwcykuCi0K
LWBgLS1tZXRhZGF0YWBgIChyZXF1aXJlZCBvbmx5IHdoZW4gbm90IGB1c2luZyBkZWZhdWx0IHBh
dGhzYF8pCi0gIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGVzdCBtZXRhZGF0
YS4gWyNdXwotCi1gYC0tdGVzdHNgYCAocmVxdWlyZWQgb25seSB3aGVuIG5vdCBgdXNpbmcgZGVm
YXVsdCBwYXRoc2BfKQotICBUaGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgd2Vi
LXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0LgotCi1gYC0tcHJlZnMtcm9vdGBgIChyZXF1aXJlZCBv
bmx5IHdoZW4gdGVzdGluZyBhIEZpcmVmb3ggYmluYXJ5KQotICBUaGUgcGF0aCB0byBhIGRpcmVj
dG9yeSBjb250YWluaW5nIEZpcmVmb3ggdGVzdC1oYXJuZXNzIHByZWZlcmVuY2VzLiBbI11fCi0K
LWBgLS1jb25maWdgYCAoc2hvdWxkIGRlZmF1bHQgdG8gYHdwdHJ1bm5lci5kZWZhdWx0LmluaWAp
Ci0gIFRoZSBwYXRoIHRvIHRoZSBjb25maWcgKGluaSkgZmlsZS4KLQotLi4gWyNdIFRoZSBgYC0t
Y2VydHV0aWwtYmluYXJ5YGAgb3B0aW9uIGlzIHJlcXVpcmVkIHdoZW4gdGhlIHByb2R1Y3QgaXMK
LSAgIGBgZmlyZWZveGBgIHVubGVzcyBgYC0tc3NsLXR5cGU9bm9uZWBgIGlzIHNwZWNpZmllZC4K
LQotLi4gWyNdIFRoZSBgYC0tbWV0YWRhdGFgYCBwYXRoIGlzIHRvIGEgZGlyZWN0b3J5IHRoYXQg
Y29udGFpbnM6Ci0KLSAgKiBhIGBgTUFOSUZFU1QuanNvbmBgIGZpbGUgKHRoZSB3ZWItcGxhdGZv
cm0tdGVzdHMgZG9jdW1lbnRhdGlvbiBoYXMKLSAgICBpbnN0cnVjdGlvbnMgb24gZ2VuZXJhdGlu
ZyB0aGlzIGZpbGUpCi0gICogKG9wdGlvbmFsbHkpIGFueSBleHBlY3RhdGlvbiBmaWxlcyAoc2Vl
IDpyZWY6YHdwdHVwZGF0ZS1sYWJlbGApCi0KLS4uIFsjXSBFeGFtcGxlIGBgLS1wcmVmcy1yb290
YGAgdmFsdWU6IGBgfi9tb3ppbGxhLWNlbnRyYWwvdGVzdGluZy9wcm9maWxlc2BgLgotCi1UaGVy
ZSBhcmUgYWxzbyBhIHZhcmlldHkgb2Ygb3RoZXIgY29tbWFuZC1saW5lIG9wdGlvbnMgYXZhaWxh
YmxlOyB1c2UKLWBgLS1oZWxwYGAgdG8gbGlzdCB0aGVtLgotCi1UaGUgZm9sbG93aW5nIGV4YW1w
bGVzIHNob3cgaG93IHRvIHN0YXJ0IHdwdHJ1bm5lciB3aXRoIHZhcmlvdXMgb3B0aW9ucy4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tCi1TdGFydGluZyB3cHRydW5uZXIKLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi1UaGUgZXhhbXBsZXMgYmVsb3cgYXNzdW1lIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3J5IGxh
eW91dCwKLXRob3VnaCBubyBzcGVjaWZpYyBmb2xkZXIgc3RydWN0dXJlIGlzIHJlcXVpcmVkOjoK
LQotICB+L3Rlc3R0d2Yvd3B0cnVubmVyICAgICAgICAgICMgd3B0cnVubmVyIGNoZWNrb3V0Ci0g
IH4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVzdHMgIyB3ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tv
dXQKLSAgfi90ZXN0dHdmL21ldGEgICAgICAgICAgICAgICAjIG1ldGFkYXRhCi0KLVRvIHRlc3Qg
YSBGaXJlZm94IE5pZ2h0bHkgYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVudCwgeW91IG1pZ2h0
IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2lu
ZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3Rlc3R0d2YvbWV0YS8gLS10
ZXN0cz1+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRlc3RzLyBcCi0gICAgLS1iaW5hcnk9fi9tb3pp
bGxhLWNlbnRyYWwvb2JqLXg4Nl82NC1hcHBsZS1kYXJ3aW4xNC4zLjAvZGlzdC9OaWdodGx5LmFw
cC9Db250ZW50cy9NYWNPUy9maXJlZm94IFwKLSAgICAtLWNlcnR1dGlsLWJpbmFyeT1+L21vemls
bGEtY2VudHJhbC9vYmoteDg2XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9zZWN1cml0eS9uc3MvY21k
L2NlcnR1dGlsL2NlcnR1dGlsIFwKLSAgICAtLXByZWZzLXJvb3Q9fi9tb3ppbGxhLWNlbnRyYWwv
dGVzdGluZy9wcm9maWxlcwotCi0KLUFuZCB0byB0ZXN0IGEgQ2hyb21pdW0gYnVpbGQgaW4gYW4g
T1MgWCBlbnZpcm9ubWVudCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRo
aW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1t
ZXRhZGF0YT1+L3Rlc3R0d2YvbWV0YS8gLS10ZXN0cz1+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRl
c3RzLyBcCi0gICAgLS1iaW5hcnk9fi9jaHJvbWl1bS9zcmMvb3V0L1JlbGVhc2UvQ2hyb21pdW0u
YXBwL0NvbnRlbnRzL01hY09TL0Nocm9taXVtIFwKLSAgICAtLXdlYmRyaXZlci1iaW5hcnk9L3Vz
ci9sb2NhbC9iaW4vY2hyb21lZHJpdmVyIC0tcHJvZHVjdD1jaHJvbWUKLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVJ1bm5pbmcgdGVzdCBzdWJzZXRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1U
byByZXN0cmljdCBhIHRlc3QgcnVuIGp1c3QgdG8gdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIHdlYi1w
bGF0Zm9ybS10ZXN0cwotc3ViZGlyZWN0b3J5LCBzcGVjaWZ5IHRoZSBkaXJlY3RvcnkgbmFtZSBp
biB0aGUgcG9zaXRpb25hbCBhcmd1bWVudHMgYWZ0ZXIKLXRoZSBvcHRpb25zOyBmb3IgZXhhbXBs
ZSwgcnVuIGp1c3QgdGhlIHRlc3RzIGluIHRoZSBgZG9tYCBzdWJkaXJlY3Rvcnk6OgotCi0gIHdw
dHJ1bm5lciAtLW1ldGFkYXRhPX4vdGVzdHR3Zi9tZXRhIC0tdGVzdHM9fi90ZXN0dHdmL3dlYi1w
bGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmluYXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRp
bC1iaW5hcnk9L3BhdGgvdG8vY2VydHV0aWwgXAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90
ZXN0aW5nL3Byb2ZpbGVzIFwKLSAgICBkb20KLQotLS0tLS0tLS0tLS0tLS0tLS0tLQotUnVubmlu
ZyBpbiBwYXJhbGxlbAotLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBzcGVlZCB1cCB0aGUgdGVz
dGluZyBwcm9jZXNzLCB1c2UgdGhlIGBgLS1wcm9jZXNzZXNgYCBvcHRpb24gdG8gaGF2ZQotd3B0
cnVubmVyIHJ1biBtdWx0aXBsZSBicm93c2VyIGluc3RhbmNlcyBpbiBwYXJhbGxlbC4gRm9yIGV4
YW1wbGUsIHRvCi1oYXZlIHdwdHJ1bm5lciBhdHRlbXB0IHRvIHJ1biB0ZXN0cyBhZ2FpbnN0IHdp
dGggc2l4IGJyb3dzZXIgaW5zdGFuY2VzCi1pbiBwYXJhbGxlbCwgc3BlY2lmeSBgYC0tcHJvY2Vz
c2VzPTZgYC4gQnV0IG5vdGUgdGhhdCBiZWhhdmlvdXIgaW4gdGhpcwotbW9kZSBpcyBuZWNlc3Nh
cmlseSBsZXNzIGRldGVybWluaXN0aWMgdGhhbiB3aXRoIGBgLS1wcm9jZXNzZXM9MWBgICh0aGUK
LWRlZmF1bHQpLCBzbyB0aGVyZSBtYXkgYmUgbW9yZSBub2lzZSBpbiB0aGUgdGVzdCByZXN1bHRz
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Vc2luZyBkZWZhdWx0IHBhdGhzCi0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLVRoZSAob3RoZXJ3aXNlLXJlcXVpcmVkKSBgYC0tdGVzdHNgYCBhbmQgYGAt
LW1ldGFkYXRhYGAgY29tbWFuZC1saW5lCi1vcHRpb25zL2ZsYWdzIGJlIG9taXR0ZWQgaWYgYW55
IGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBmb3VuZCB0aGF0Ci1jb250YWlucyBhIHNlY3Rpb24gc3Bl
Y2lmeWluZyB0aGUgYGB0ZXN0c2BgIGFuZCBgYG1ldGFkYXRhYGAga2V5cy4KLQotU2VlIHRoZSBg
Q29uZmlndXJhdGlvbiBGaWxlYF8gc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAot
Y29uZmlndXJhdGlvbiBmaWxlcywgaW5jbHVkaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIGV4
cGVjdGVkCi1sb2NhdGlvbnMuCi0KLVRoZSBjb250ZW50IG9mIHRoZSBgYHdwdHJ1bm5lci5kZWZh
dWx0LmluaWBgIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlCi1tYWtlcyB3cHRydW5uZXIgbG9v
ayBmb3IgdGVzdHMgKHRoYXQgaXMsIGEgd2ViLXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0KQotYXMg
YSBzdWJkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG5hbWVkIGBgdGVzdHNgYCwg
YW5kIGZvcgotbWV0YWRhdGEgZmlsZXMgaW4gYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQg
ZGlyZWN0b3J5IG5hbWVkIGBgbWV0YWBgLgotCi1PdXRwdXQKLS0tLS0tLQotCi13cHRydW5uZXIg
dXNlcyBgdGhlIG1vemxvZyBwYWNrYWdlCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1v
emlsbGEub3JnL21vemJhc2UvbW96bG9nLmh0bWw+YF8pIGZvcgotb3V0cHV0LiBUaGlzIHN0cnVj
dHVyZXMgZXZlbnRzIHN1Y2ggYXMgdGVzdCByZXN1bHRzIG9yIGxvZyBtZXNzYWdlcyBhcwotSlNP
TiBvYmplY3RzIHRoYXQgY2FuIHRoZW4gYmUgZmVkIHRvIG90aGVyIHRvb2xzIGZvcgotaW50ZXJw
cmV0YXRpb24uIE1vcmUgZGV0YWlscyBhYm91dCB0aGUgbWVzc2FnZSBmb3JtYXQgYXJlIGdpdmVu
IGluCi1gdGhlIG1vemxvZyBkb2N1bWVudGF0aW9uCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1k
b2NzLm1vemlsbGEub3JnL21vemJhc2UvbW96bG9nLmh0bWw+YF8uCi0KLUJ5IGRlZmF1bHQgdGhl
IHJhdyBKU09OIG1lc3NhZ2VzIGFyZSBkdW1wZWQgdG8gc3Rkb3V0LiBUaGlzIGlzCi1jb252ZW5p
ZW50IGZvciBwaXBpbmcgaW50byBvdGhlciB0b29scywgYnV0IG5vdCBpZGVhbCBmb3IgaHVtYW5z
Ci1yZWFkaW5nIHRoZSBvdXRwdXQuIGBtb3psb2cKLTxodHRwczovL2ZpcmVmb3gtc291cmNlLWRv
Y3MubW96aWxsYS5vcmcvbW96YmFzZS9tb3psb2cuaHRtbD5gXyBjb21lcwotd2l0aCBzZXZlcmFs
IG90aGVyIGZvcm1hdHRlcnMsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggY29tbWFuZAot
bGluZSBvcHRpb25zLiBUaGUgZ2VuZXJhbCBmb3JtYXQgb2YgdGhlc2Ugb3B0aW9ucyBpcwotYGAt
LWxvZy1uYW1lPWRlc3RgYCwgd2hlcmUgYGBuYW1lYGAgaXMgdGhlIG5hbWUgb2YgdGhlIGZvcm1h
dCBhbmQKLWBgZGVzdGBgIGlzIGEgcGF0aCB0byBhIGRlc3RpbmF0aW9uIGZpbGUsIG9yIGBgLWBg
IGZvciBzdGRvdXQuIFRoZSByYXcKLUpTT04gZGF0YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2Bg
IGZvcm1hdHRlciBzbywgdGhlIGRlZmF1bHQgc2V0dXAKLWNvcnJlc3BvbmRzIHRvIGBgLS1sb2ct
cmF3PS1gYC4KLQotQSByZWFzb25hYmxlIG91dHB1dCBmb3JtYXQgZm9yIGh1bWFucyBpcyBwcm92
aWRlZCBhcyBgYG1hY2hgYC4gU28gaW4KLW9yZGVyIHRvIG91dHB1dCB0aGUgZnVsbCByYXcgbG9n
IHRvIGEgZmlsZSBhbmQgYSBodW1hbi1yZWFkYWJsZQotc3VtbWFyeSB0byBzdGRvdXQsIG9uZSBt
aWdodCBwYXNzIHRoZSBvcHRpb25zOjoKLQotICAtLWxvZy1yYXc9b3V0cHV0LmxvZyAtLWxvZy1t
YWNoPS0KLQotQ29uZmlndXJhdGlvbiBGaWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQotd3B0cnVu
bmVyIHVzZXMgYSBgYC5pbmlgYCBmaWxlIHRvIGNvbnRyb2wgc29tZSBjb25maWd1cmF0aW9uCi1z
ZWN0aW9ucy4gVGhlIGZpbGUgaGFzIHRocmVlIHNlY3Rpb25zOyBgYFtwcm9kdWN0c11gYCwKLWBg
W21hbmlmZXN0OmRlZmF1bHRdYGAgYW5kIGBgW3dlYi1wbGF0Zm9ybS10ZXN0c11gYC4KLQotYGBb
cHJvZHVjdHNdYGAgaXMgdXNlZCB0bwotZGVmaW5lIHRoZSBzZXQgb2YgYXZhaWxhYmxlIHByb2R1
Y3RzLiBCeSBkZWZhdWx0IHRoaXMgc2VjdGlvbiBpcyBlbXB0eQotd2hpY2ggbWVhbnMgdGhhdCBh
bGwgdGhlIHByb2R1Y3RzIGRpc3RyaWJ1dGVkIHdpdGggd3B0cnVubmVyIGFyZQotZW5hYmxlZCAo
YWx0aG91Z2ggdGhlaXIgZGVwZW5kZW5jaWVzIG1heSBub3QgYmUgaW5zdGFsbGVkKS4gVGhlIHNl
dAotb2YgZW5hYmxlZCBwcm9kdWN0cyBjYW4gYmUgc2V0IGJ5IHVzaW5nIHRoZSBwcm9kdWN0IG5h
bWUgYXMgdGhlCi1rZXkuIEZvciBidWlsdCBpbiBwcm9kdWN0cyB0aGUgdmFsdWUgaXMgZW1wdHku
IEl0IGlzIGFsc28gcG9zc2libGUgdG8KLXByb3ZpZGUgdGhlIHBhdGggdG8gYSBzY3JpcHQgaW1w
bGVtZW50aW5nIHRoZSBicm93c2VyIGZ1bmN0aW9uYWxpdHkKLWUuZy46OgotCi0gIFtwcm9kdWN0
c10KLSAgY2hyb21lID0KLSAgbmV0c2NhcGU0ID0gcGF0aC90by9uZXRzY2FwZS5weQotCi1gYFtt
YW5pZmVzdDpkZWZhdWx0XWBgIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBwYXRocyBmb3IgdGhlIHRl
c3RzIGFuZCBtZXRhZGF0YSwKLXJlbGF0aXZlIHRvIHRoZSBjb25maWcgZmlsZS4gRm9yIGV4YW1w
bGU6OgotCi0gIFttYW5pZmVzdDpkZWZhdWx0XQotICB0ZXN0cyA9IH4vdGVzdHR3Zi93ZWItcGxh
dGZvcm0tdGVzdHMKLSAgbWV0YWRhdGEgPSB+L3Rlc3R0d2YvbWV0YQotCi0KLWBgW3dlYi1wbGF0
Zm9ybS10ZXN0c11gYCBpcyB1c2VkIHRvIHNldCB0aGUgcHJvcGVydGllcyBvZiB0aGUgdXBzdHJl
YW0KLXJlcG9zaXRvcnkgd2hlbiB1cGRhdGluZyB0aGUgcGF0aHMuIGBgcmVtb3RlX3VybGBgIHNw
ZWNpZmllcyB0aGUgZ2l0Ci11cmwgdG8gcHVsbCBmcm9tOyBgYGJyYW5jaGBgIHRoZSBicmFuY2gg
dG8gc3luYyBhZ2FpbnN0IGFuZAotYGBzeW5jX3BhdGhgYCB0aGUgbG9jYWwgcGF0aCwgcmVsYXRp
dmUgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgdG8KLXVzZSB3aGVuIGNoZWNraW5nIG91dCB0
aGUgdGVzdHMgZS5nLjo6Ci0KLSAgW3dlYi1wbGF0Zm9ybS10ZXN0c10KLSAgcmVtb3RlX3VybCA9
IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotICBicmFuY2gg
PSBtYXN0ZXIKLSAgc3luY19wYXRoID0gc3luYwotCi1BIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0
IGNvbnRhaW4gYWxsIHRoZSBhYm92ZSBmaWVsZHM7IGZhbGxpbmcgYmFjawotdG8gdGhlIGRlZmF1
bHQgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBmaWVsZHMgaXMgbm90IHlldCBzdXBwb3J0ZWQuCi0K
LVRoZSBgYHdwdHJ1bm5lcmBgIGFuZCBgYHdwdHVwZGF0ZWBgIGNvbW1hbmRzIHdpbGwgdXNlIGNv
bmZpZ3VyYXRpb24KLWZpbGVzIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6Ci0KLSAqIEFueSBwYXRo
IHN1cHBsaWVkIHdpdGggYSBgYC0tY29uZmlnYGAgZmxhZyB0byB0aGUgY29tbWFuZC4KLQotICog
QSBmaWxlIGNhbGxlZCBgYHdwdHJ1bm5lci5pbmlgYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkK
LQotICogVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIChgYHdwdHJ1bm5lci5kZWZhdWx0
LmluaWBgIGluIHRoZQotICAgc291cmNlIGRpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4
dAppbmRleCAxZWJhMTE0YTMxYzIuLjgzNTZjNDc4NWRjMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
LnR4dApAQCAtMSw5ICsxLDggQEAKIGh0bWw1bGliPT0xLjEKLW1vemluZm89PTEuMi4xICAjIGh0
dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKLW1vemxv
Zz09Ni4xCi1tb3pkZWJ1Zz09MC4yCi0jIFBpbGxvdyA3IHJlcXVpcmVzIFB5dGhvbiAzCi1waWxs
b3c9PTYuMi4yICAjIHB5dXA6IDw3LjAKLXVybGxpYjNbc2VjdXJlXT09MS4yNS4xMAotcmVxdWVz
dHM9PTIuMjQuMAotc2l4PT0xLjE1LjAKK21vemluZm89PTEuMi4yICAjIGh0dHBzOi8vYnVnemls
bGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKK21vemxvZz09Ny4xLjAKK21v
emRlYnVnPT0wLjMuMAorcGlsbG93PT04LjMuMQordXJsbGliM1tzZWN1cmVdPT0xLjI2LjYKK3Jl
cXVlc3RzPT0yLjI1LjEKK3NpeD09MS4xNi4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hy
b21lLnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hy
b21lLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19jaHJvbWUudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAor
bW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9t
ZV9hbmRyb2lkLnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfY2hyb21lX2FuZHJvaWQudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApAQCAtMSArMSBA
QAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdl
LnR4dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWly
ZW1lbnRzX2VkZ2UudHh0CmluZGV4IDBhNjEyMDhkNzdjMS4uN2FkMDE4MGI4NTQ1IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19lZGdlLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9
PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X2ZpcmVmb3gudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKaW5kZXggOGI0NTcwM2E1NTk2Li42YmYyODBjNDdj
OTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CkBAIC0xLDEwICsx
LDEwIEBACiBtYXJpb25ldHRlX2RyaXZlcj09My4xLjAKLW1vemNyYXNoPT0yLjAuMAotbW96aW5z
dGFsbD09Mi4wLjAKK21vemNyYXNoPT0yLjEuMAorbW96aW5zdGFsbD09Mi4wLjEKIG1vemxlYWs9
PTAuMgogbW96bmV0d29yaz09MS4xLjAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0x
LjMuMAogbW96cHJvZmlsZT09Mi41LjAKLW1venJ1bm5lcj09OC4wLjAKK21venJ1bm5lcj09OC4y
LjEKIG1venZlcnNpb249PTIuMy4wCi1wc3V0aWw9PTUuNy4yCitwc3V0aWw9PTUuOC4wCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19pZS50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19pZS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2llLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9j
ZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19vcGVyYS50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1
NDUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQKQEAgLTEsMiArMSwyIEBA
Ci1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4w
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19zYWZhcmkudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAppbmRleCBlN2U3MTYxYjE0MjYu
LjY1Yjc2YWE4NWNjNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CkBA
IC0xICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAorcHN1dGls
PT01LjguMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CmluZGV4IDM0YzY2ZWUy
MzhiNi4uZDFkMGY3ZTJiZWUyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0
CkBAIC0xLDMgKzEsMyBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCiBz
ZWxlbml1bT09My4xNDEuMAotcmVxdWVzdHM9PTIuMjQuMAorcmVxdWVzdHM9PTIuMjUuMQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfc2Vydm8udHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1
NThhNWRjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CkBAIC0xICsxIEBA
Ci1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtp
dC50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c193ZWJraXQudHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c193ZWJraXQudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nl
c3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvc2V0dXAucHkKaW5kZXggYTQ1OWUyYzQ3MTQxLi5j
MjA5NTU4NDhkYmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvc2V0dXAucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci9zZXR1cC5weQpAQCAtMiw4ICsyLDYgQEAKICMgTGljZW5zZSwgdi4gMi4w
LiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBmaWxl
LAogIyBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLgog
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0KIGltcG9ydCBnbG9iCiBp
bXBvcnQgb3MKIGltcG9ydCBzeXMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvdG94LmluaSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvdG94LmluaQppbmRleCA3OThmNjRhM2U0MjIuLmM0OWU3NTllYWQ4
YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci90b3guaW5pCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvdG94LmluaQpAQCAtMiwxNiArMiwxMiBAQAogeGZhaWxfc3RyaWN0PXRydWUKIAogW3RveF0K
LWVudmxpc3QgPSBweTI3LXtiYXNlLGNocm9tZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2FmYXJp
LHNhdWNlLHNlcnZvLHdlYmtpdCx3ZWJraXRndGtfbWluaWJyb3dzZXIsZXBpcGhhbnl9LHtweTM1
LHB5MzYscHkzNyxweTM4fS1iYXNlCitlbnZsaXN0ID0gcHkzOS17YmFzZSxjaHJvbWUsZWRnZSxm
aXJlZm94LGllLG9wZXJhLHNhZmFyaSxzYXVjZSxzZXJ2byx3ZWJraXQsd2Via2l0Z3RrX21pbmli
cm93c2VyLGVwaXBoYW55fSx7cHkzNixweTM3LHB5Mzh9LWJhc2UKIHNraXBfbWlzc2luZ19pbnRl
cnByZXRlcnMgPSBGYWxzZQogCiBbdGVzdGVudl0KIGRlcHMgPQotICAgICBweXRlc3Q+PTIuOQot
ICAgICBweXRlc3QtY292Ci0gICAgIHB5dGVzdC14ZGlzdAotICAgICAjIG1vY2sgbm8gbG9uZ2Vy
IHN1cHBvcnRzIFB5dGhvbiAyIHNpbmNlIHY0Ci0gICAgIG1vY2s9PTMuKgorICAgICAtcnt0b3hp
bmlkaXJ9Ly4uL3JlcXVpcmVtZW50c19weXRlc3QudHh0CiAgICAgIC1ye3RveGluaWRpcn0vcmVx
dWlyZW1lbnRzLnR4dAogICAgICBjaHJvbWU6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2No
cm9tZS50eHQKICAgICAgZWRnZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZWRnZS50eHQK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dl
YmxheWVyLnB5CmluZGV4IDYxMTA0NTBiNzI4Mi4uNGJkODcxZDFmYmQ1IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkK
QEAgLTEsOSArMSw4IEBACi1pbXBvcnQgc3VicHJvY2VzcwotCi1mcm9tIC5iYXNlIGltcG9ydCBC
cm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGltcG9ydCBn
ZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBO
dWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZwor
ZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCiBm
cm9tIC5jaHJvbWUgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dh
cmdzCi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitm
cm9tIC5jaHJvbWVfYW5kcm9pZCBpbXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCiBmcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5l
c3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJv
bSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhl
Y3V0b3IgICMgbm9xYTogRjQwMQpAQCAtMTEsNyArMTAsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4
ZWN1dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBG
NDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiYW5kcm9pZF93ZWJsYXllciIsCiAg
ICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAg
ICAgICAiYnJvd3NlciI6ICJXZWJsYXllclNoZWxsIiwKKyAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiB7Tm9uZTogIldlYmxheWVyU2hlbGwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6
IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0
b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2
ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMjgsMjMgKzI4LDI0IEBAIGRlZiBjaGVja19hcmdzKCoq
a3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAog
Ci1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoq
a3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9f
ZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJi
aW5hcnkiXSwKICAgICAgICAgICAgICJkZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2Vy
aWFsIl0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVy
X2JpbmFyeSJdLAotICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2Vi
ZHJpdmVyX2FyZ3MiKX0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQo
IndlYmRyaXZlcl9hcmdzIiksCisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJn
cy5nZXQoInN0YWNrd2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBr
d2FyZ3MuZ2V0KCJzeW1ib2xzX3BhdGgiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBl
eGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9p
bmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICAjIFVzZSB1cGRh
dGUoKSB0byBtb2RpZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNlLgogICAgIF93cHRzZXJ2ZV9w
b3J0cy51cGRhdGUoc2V0KAotICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwJ10g
KyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwcyddICsKLSAgICAgICAgc2VydmVyX2NvbmZp
Z1sncG9ydHMnXVsnd3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzcyddCisgICAgICAg
IHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwJ10gKyB0ZXN0X2Vudmlyb25t
ZW50LmNvbmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQu
Y29uZmlnWydwb3J0cyddWyd3cyddICsgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11b
J3dzcyddCiAgICAgKSkKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9tZV9leGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICBl
eGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBl
LCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZGVsIGV4ZWN1dG9yX2t3YXJn
c1siY2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJdCiAgICAgY2Fw
YWJpbGl0aWVzID0gZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXQpAQCAtNzQsNjEgKzc1
LDIyIEBAIGRlZiBlbnZfb3B0aW9ucygpOgogICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEy
Ny4wLjAuMSJ9CiAKIAotI1RPRE86IHJlZmFjdG9yIGNvbW1vbiBlbGVtZW50cyBvZiBXZWJsYXll
clNoZWxsIGFuZCBDaHJvbWVBbmRyb2lkQnJvd3NlcgotY2xhc3MgV2VibGF5ZXJTaGVsbChCcm93
c2VyKToKK2NsYXNzIFdlYmxheWVyU2hlbGwoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKICAg
ICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQg
dGhyb3VnaAogICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4K
ICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJp
dmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBiaW5hcnksCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZl
ciIsCisgICAgICAgICAgICAgICAgIHJlbW90ZV9xdWV1ZT1Ob25lLAogICAgICAgICAgICAgICAg
ICBkZXZpY2Vfc2VyaWFsPU5vbmUsCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5v
bmUpOgorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAg
ICAgICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0
aD1Ob25lKToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJv
bWUuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKICAgICAgICAgdGhlIGJyb3dzZXIgYmlu
YXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIpCisgICAgICAgIHN1cGVyKFdlYmxheWVyU2hlbGwsIHNlbGYpLl9faW5pdF9fKGxv
Z2dlciwKKyAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVldWUsIGRl
dmljZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNrd2Fsa19i
aW5hcnksIHN5bWJvbHNfcGF0aCkKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKLSAgICAg
ICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAotICAgICAgICBzZWxmLnNlcnZl
ciA9IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0gICAg
ICAgIHNlbGYuc2V0dXBfYWRiX3JldmVyc2UoKQotCi0gICAgZGVmIF9hZGJfcnVuKHNlbGYsIGFy
Z3MpOgotICAgICAgICBjbWQgPSBbJ2FkYiddCi0gICAgICAgIGlmIHNlbGYuZGV2aWNlX3Nlcmlh
bDoKLSAgICAgICAgICAgIGNtZC5leHRlbmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCi0g
ICAgICAgIGNtZC5leHRlbmQoYXJncykKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnICcuam9p
bihjbWQpKQotICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kKQotCi0gICAgZGVmIHNl
dHVwX2FkYl9yZXZlcnNlKHNlbGYpOgotICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2FpdC1mb3It
ZGV2aWNlJ10pCi0gICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFs
bCddKQotICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkK
LSAgICAgICAgIyAiYWRiIHJldmVyc2UiIGJhc2ljYWxseSBmb3J3YXJkcyBuZXR3b3JrIGNvbm5l
Y3Rpb24gZnJvbSBkZXZpY2UgdG8KLSAgICAgICAgIyBob3N0LgotICAgICAgICBmb3IgcG9ydCBp
biBfd3B0c2VydmVfcG9ydHM6Ci0gICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScs
ICd0Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKLQotICAgIGRlZiBzdGFydChzZWxm
LCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQotCi0g
ICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9w
KGZvcmNlPWZvcmNlKQotCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
c2VydmVyLnBpZAotCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRv
KTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFu
ZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0g
ICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUo
KQotCi0gICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0gICAgICAg
IHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICBzZWxm
Ll9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKLQotICAgIGRlZiBleGVjdXRv
cl9icm93c2VyKHNlbGYpOgotICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRy
aXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CisgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRz
ID0gX3dwdHNlcnZlX3BvcnRzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFz
ZS5weQppbmRleCA5OWY2ZTVjZmY0YzguLjI4MmUyZDdhZDVlZSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
YmFzZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CkBAIC0xLDM0ICsxLDE0IEBACitpbXBvcnQgZW51
bQogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzb2NrZXQKIGZyb20gYWJjIGlt
cG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAotZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQot
ZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcwogCiBmcm9tIC4ud3B0Y29tbWFuZGxpbmUgaW1wb3J0
IHJlcXVpcmVfYXJnICAjIG5vcWE6IEY0MDEKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2Zp
bGVfXykKIAogCi1kZWYgaW5oZXJpdChzdXBlcl9tb2R1bGUsIGNoaWxkX2dsb2JhbHMsIHByb2R1
Y3RfbmFtZSk6Ci0gICAgc3VwZXJfd3B0cnVubmVyID0gc3VwZXJfbW9kdWxlLl9fd3B0cnVubmVy
X18KLSAgICBjaGlsZF9nbG9iYWxzWyJfX3dwdHJ1bm5lcl9fIl0gPSBjaGlsZF93cHRydW5uZXIg
PSBkZWVwY29weShzdXBlcl93cHRydW5uZXIpCi0KLSAgICBjaGlsZF93cHRydW5uZXJbInByb2R1
Y3QiXSA9IHByb2R1Y3RfbmFtZQotCi0gICAgZm9yIGsgaW4gKCJjaGVja19hcmdzIiwgImJyb3dz
ZXIiLCAiYnJvd3Nlcl9rd2FyZ3MiLCAiZXhlY3V0b3Jfa3dhcmdzIiwKLSAgICAgICAgICAgICAg
ImVudl9leHRyYXMiLCAiZW52X29wdGlvbnMiLCAidGltZW91dF9tdWx0aXBsaWVyIik6Ci0gICAg
ICAgIGF0dHIgPSBzdXBlcl93cHRydW5uZXJba10KLSAgICAgICAgY2hpbGRfZ2xvYmFsc1thdHRy
XSA9IGdldGF0dHIoc3VwZXJfbW9kdWxlLCBhdHRyKQotCi0gICAgZm9yIHYgaW4gc3VwZXJfbW9k
dWxlLl9fd3B0cnVubmVyX19bImV4ZWN1dG9yIl0udmFsdWVzKCk6Ci0gICAgICAgIGNoaWxkX2ds
b2JhbHNbdl0gPSBnZXRhdHRyKHN1cGVyX21vZHVsZSwgdikKLQotICAgIGlmICJydW5faW5mb19l
eHRyYXMiIGluIHN1cGVyX3dwdHJ1bm5lcjoKLSAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1bm5l
clsicnVuX2luZm9fZXh0cmFzIl0KLSAgICAgICAgY2hpbGRfZ2xvYmFsc1thdHRyXSA9IGdldGF0
dHIoc3VwZXJfbW9kdWxlLCBhdHRyKQotCi0KIGRlZiBjbWRfYXJnKG5hbWUsIHZhbHVlPU5vbmUp
OgogICAgIHByZWZpeCA9ICItIiBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyIgZWxz
ZSAiLS0iCiAgICAgcnYgPSBwcmVmaXggKyBuYW1lCkBAIC02NSw3ICs0NSw3IEBAIGRlZiBnZXRf
ZnJlZV9wb3J0KCk6CiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKICAgICAgICAgdHJ5Ogog
ICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCi0gICAgICAgIGV4Y2VwdCBzb2Nr
ZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgY29udGludWUK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzLmdldHNvY2tuYW1lKClbMV0KQEAg
LTEyNiw2ICsxMDYsMTIgQEAgY2xhc3MgQnJvd3NlcihvYmplY3QpOgogICAgICAgICBwYXNzCiAK
ICAgICBkZWYgc2V0dGluZ3Moc2VsZiwgdGVzdCk6CisgICAgICAgICIiIkRpY3Rpb25hcnkgb2Yg
bWV0YWRhdGEgdGhhdCBpcyBjb25zdGFudCBmb3IgYSBzcGVjaWZpYyBsYXVuY2ggb2YgYSBicm93
c2VyLgorCisgICAgICAgIFRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hlbiB0aGUgYnJvd3Nl
ciBpbnN0YW5jZSBjb25maWd1cmF0aW9uIGNoYW5nZXMsIHJlcXVpcmluZworICAgICAgICBhIHJl
bGF1bmNoIG9mIHRoZSBicm93c2VyLiBUaGUgdGVzdCBydW5uZXIgY2FsbHMgdGhpcyBtZXRob2Qg
Zm9yIGVhY2ggdGVzdCwgYW5kIGlmIHRoZQorICAgICAgICByZXR1cm5lZCB2YWx1ZSBkaWZmZXJz
IGZyb20gdGhhdCBmb3IgdGhlIHByZXZpb3VzIHRlc3QsIHRoZSBicm93c2VyIGlzIHJlbGF1bmNo
ZWQuCisgICAgICAgICIiIgogICAgICAgICByZXR1cm4ge30KIAogICAgIEBhYnN0cmFjdG1ldGhv
ZApAQCAtMTU3LDYgKzE0MywxMCBAQCBjbGFzcyBCcm93c2VyKG9iamVjdCk6CiAgICAgICAgIHdp
dGggd2hpY2ggaXQgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCIiIgogICAgICAgICByZXR1cm4gRXhl
Y3V0b3JCcm93c2VyLCB7fQogCisgICAgZGVmIG1heWJlX3BhcnNlX3RvbWJzdG9uZShzZWxmKToK
KyAgICAgICAgIiIiUG9zc2libHkgcGFyc2UgdG9tYnN0b25lcyBvbiBBbmRyb2lkIGRldmljZSBm
b3IgQW5kcm9pZCB0YXJnZXQiIiIKKyAgICAgICAgcGFzcworCiAgICAgZGVmIGNoZWNrX2NyYXNo
KHNlbGYsIHByb2Nlc3MsIHRlc3QpOgogICAgICAgICAiIiJDaGVjayBpZiBhIGNyYXNoIG9jY3Vy
ZWQgYW5kIG91dHB1dCBhbnkgdXNlZnVsIGluZm9ybWF0aW9uIHRvIHRoZQogICAgICAgICBsb2cu
IFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhIGNyYXNoIG9jY3VyZWQuIiIi
CkBAIC0xODIsMTEgKzE3Miw4IEBAIGNsYXNzIE51bGxCcm93c2VyKEJyb3dzZXIpOgogICAgIGRl
ZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgIGRlZiBvbl9vdXRw
dXQoc2VsZiwgbGluZSk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotCi1j
bGFzcyBFeGVjdXRvckJyb3dzZXIob2JqZWN0KToKK2NsYXNzIEV4ZWN1dG9yQnJvd3NlcjoKICAg
ICAiIiJWaWV3IG9mIHRoZSBCcm93c2VyIHVzZWQgYnkgdGhlIEV4ZWN1dG9yIG9iamVjdC4KICAg
ICBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBFeGVjdXRvciBydW5zIGluIGEgY2hpbGQgcHJv
Y2VzcyBhbmQKICAgICB3ZSBjYW4ndCBzaGlwIEJyb3dzZXIgaW5zdGFuY2VzIGJldHdlZW4gcHJv
Y2Vzc2VzIG9uIFdpbmRvd3MuCkBAIC0xOTYsNSArMTgzLDk1IEBAIGNsYXNzIEV4ZWN1dG9yQnJv
d3NlcihvYmplY3QpOgogICAgIHVwIHRoZSBicm93c2VyIGZyb20gdGhlIHJ1bm5lciBwcm9jZXNz
LgogICAgICIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIGZv
ciBrLCB2IGluIGl0ZXJpdGVtcyhrd2FyZ3MpOgorICAgICAgICBmb3IgaywgdiBpbiBrd2FyZ3Mu
aXRlbXMoKToKICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgaywgdikKKworCitAZW51bS51bmlx
dWUKK2NsYXNzIE91dHB1dEhhbmRsZXJTdGF0ZShlbnVtLkludEVudW0pOgorICAgIEJFRk9SRV9Q
Uk9DRVNTX1NUQVJUID0gMQorICAgIEFGVEVSX1BST0NFU1NfU1RBUlQgPSAyCisgICAgQUZURVJf
SEFORExFUl9TVEFSVCA9IDMKKyAgICBBRlRFUl9QUk9DRVNTX1NUT1AgPSA0CisKKworY2xhc3Mg
T3V0cHV0SGFuZGxlcjoKKyAgICAiIiJDbGFzcyBmb3IgaGFuZGxpbmcgb3V0cHV0IGZyb20gYSBi
cm93c2VyIHByb2Nlc3MuCisKKyAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBjb25z
dW1pbmcgdGhlIGxvZ2dpbmcgZnJvbSBhIGJyb3dzZXIgcHJvY2VzcworICAgIGFuZCBwYXNzaW5n
IGl0IGludG8gdGhlIHJlbGV2YW50IGxvZ2dlci4gQSBjbGFzcyBpbnN0YW5jZSBpcyBkZXNpZ25l
ZCB0bworICAgIGJlIHBhc3NlZCBhcyB0aGUgcHJvY2Vzc091dHB1dExpbmUgYXJndW1lbnQgdG8g
bW96cHJvY2Vzcy5Qcm9jZXNzSGFuZGxlci4KKworICAgIFRoZSBzZXR1cCBvZiB0aGlzIGNsYXNz
IGlzIGNvbXBsZXggZm9yIHZhcmlvdXMgcmVhc29uczoKKworICAgICogV2UgbmVlZCB0byBjcmVh
dGUgYW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIGJlZm9yZSBzdGFydGluZyB0aGUgcHJvY2Vzcwor
ICAgICogV2Ugd2FudCBhY2Nlc3MgdG8gZGF0YSBhYm91dCB0aGUgcnVubmluZyBwcm9jZXNzIGUu
Zy4gdGhlIHBpZAorICAgICogV2Ugd2FudCB0byBsYXVuY2ggdGhlIHByb2Nlc3MgYW5kIGxhdGVy
IHNldHVwIGFkZGl0aW9uYWwgbG9nIGhhbmRsaW5nCisgICAgICB3aGljaCBpcyByZXN0cm9zcGVj
dGl2ZWx5IGFwcGxpZWQgdG8gYW55IGV4aXN0aW5nIG91dHB1dCAodGhpcyBzdXBwb3J0cworICAg
ICAgcHJlbGF1bmNoaW5nIGJyb3dzZXJzIGZvciBwZXJmb3JtYW5jZSwgYnV0IGhhdmluZyBsb2cg
b3V0cHV0IGRlcGVuZCBvbiB0aGUKKyAgICAgIHRlc3RzIHRoYXQgYXJlIHJ1biBlLmcuIGZvciBs
ZWFrIHN1cHByZXNzaW9uKS4KKworICAgIFRoZXJlZm9yZSB0aGUgbGlmZWN5Y2xlIGlzIGFzIGZv
bGxvd3M6OgorCisgICAgICBvdXRwdXRfaGFuZGxlciA9IE91dHB1dEhhbmRsZXIobG9nZ2VyLCBj
b21tYW5kLCAqKm91dHB1dF9oYW5kbGVyX2t3YXJncykKKyAgICAgIHByb2MgPSBQcm9jZXNzSGFu
ZGxlcihjb21tYW5kLCAuLi4sIHByb2Nlc3NPdXRwdXRMaW5lPW91dHB1dF9oYW5kbGVyKQorICAg
ICAgb3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChwcm9jLnBpZCkKKyAgICAgIFsu
Li5dCisgICAgICAjIEFsbCBsb2dnaW5nIHRvIHRoaXMgcG9pbnQgd2FzIGJ1ZmZlcmVkIGluLW1l
bW9yeSwgYnV0IGFmdGVyIHN0YXJ0KCkKKyAgICAgICMgaXQncyBhY3R1YWxseSBzZW50IHRvIHRo
ZSBsb2dnZXIuCisgICAgICBvdXRwdXRfaGFuZGxlci5zdGFydCgqKm91dHB1dF9sb2dnZXJfc3Rh
cnRfa3dhcmdzKQorICAgICAgWy4uLl0KKyAgICAgIHByb2Mud2FpdCgpCisgICAgICBvdXRwdXRf
aGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0b3AoKQorCisgICAgU2luY2UgdGhlIHByb2Nlc3MgbGlm
ZXRpbWUgYW5kIHRoZSBvdXRwdXQgaGFuZGxlciBsaWZldGltZSBhcmUgY291cGxlZCAoaXQgZG9l
c24ndAorICAgIHdvcmsgdG8gcmV1c2UgYW4gb3V0cHV0IGhhbmRsZXIgZm9yIG11bHRpcGxlIHBy
b2Nlc3NlcyksIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gaGF2ZQorICAgIGEgc2luZ2xlIGNsYXNz
IHRoYXQgb3ducyB0aGUgcHJvY2VzcyBhbmQgdGhlIG91dHB1dCBwcm9jZXNzaW5nIGZvciB0aGUg
cHJvY2Vzcy4KKyAgICBUaGlzIGlzIGNvbXBsaWNhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgd2UgZG9u
J3QgYWx3YXlzIHJ1biB0aGUgcHJvY2VzcyBkaXJlY3RseSwKKyAgICBidXQgc29tZXRpbWVzIHVz
ZSBhIHdyYXBwZXIgZS5nLiBtb3pydW5uZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBjb21tYW5kLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYubG9nZ2VyID0g
bG9nZ2VyCisgICAgICAgIHNlbGYuY29tbWFuZCA9IGNvbW1hbmQKKyAgICAgICAgc2VsZi5waWQg
PSBOb25lCisgICAgICAgIHNlbGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3RhdGUuQkVGT1JFX1BS
T0NFU1NfU1RBUlQKKyAgICAgICAgc2VsZi5saW5lX2J1ZmZlciA9IFtdCisKKyAgICBkZWYgYWZ0
ZXJfcHJvY2Vzc19zdGFydChzZWxmLCBwaWQpOgorICAgICAgICBhc3NlcnQgc2VsZi5zdGF0ZSA9
PSBPdXRwdXRIYW5kbGVyU3RhdGUuQkVGT1JFX1BST0NFU1NfU1RBUlQKKyAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIk91dHB1dEhhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydCIpCisgICAgICAg
IHNlbGYucGlkID0gcGlkCisgICAgICAgIHNlbGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3RhdGUu
QUZURVJfUFJPQ0VTU19TVEFSVAorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAg
ICAgICAgYXNzZXJ0IHNlbGYuc3RhdGUgPT0gT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX1BST0NF
U1NfU1RBUlQKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIk91dHB1dEhhbmRsZXIuc3RhcnQi
KQorICAgICAgICAjIE5lZWQgdG8gY2hhbmdlIHRoZSBzdGF0ZSBoZXJlIGJlZm9yZSB3ZSB0cnkg
dG8gZW1wdHkgdGhlIGJ1ZmZlcgorICAgICAgICAjIG9yIHdlJ2xsIGp1c3QgcmUtYnVmZmVyIHRo
ZSBleGlzdGluZyBvdXRwdXQuCisgICAgICAgIHNlbGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3Rh
dGUuQUZURVJfSEFORExFUl9TVEFSVAorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmxpbmVfYnVm
ZmVyOgorICAgICAgICAgICAgc2VsZihpdGVtKQorICAgICAgICBzZWxmLmxpbmVfYnVmZmVyID0g
Tm9uZQorCisgICAgZGVmIGFmdGVyX3Byb2Nlc3Nfc3RvcChzZWxmLCBjbGVhbl9zaHV0ZG93bj1U
cnVlKToKKyAgICAgICAgIyBJZiB3ZSBkaWRuJ3QgZ2V0IGFzIGZhciBhcyBjb25maWd1cmUsIGp1
c3QKKyAgICAgICAgIyBkdW1wIGFsbCBsb2dzIHdpdGggbm8gY29uZmlndXJhdGlvbgorICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiT3V0cHV0SGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0b3AiKQor
ICAgICAgICBpZiBzZWxmLnN0YXRlIDwgT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX0hBTkRMRVJf
U1RBUlQ6CisgICAgICAgICAgICBzZWxmLnN0YXJ0KCkKKyAgICAgICAgc2VsZi5zdGF0ZSA9IE91
dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9QUk9DRVNTX1NUT1AKKworICAgIGRlZiBfX2NhbGxfXyhz
ZWxmLCBsaW5lKToKKyAgICAgICAgaWYgc2VsZi5zdGF0ZSA8IE91dHB1dEhhbmRsZXJTdGF0ZS5B
RlRFUl9IQU5ETEVSX1NUQVJUOgorICAgICAgICAgICAgc2VsZi5saW5lX2J1ZmZlci5hcHBlbmQo
bGluZSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgQ291bGQgYXNzZXJ0IHRoYXQg
dGhlcmUncyBubyBvdXRwdXQgaGFuZGxlZCBvbmNlIHdlJ3JlIGluIHRoZQorICAgICAgICAjIGFm
dGVyX3Byb2Nlc3Nfc3RvcCBwaGFzZSwgYWx0aG91Z2ggdGVjaG5pY2FsbHkgdGhlcmUncyBhIHJh
Y2UgY29uZGl0aW9uCisgICAgICAgICMgaGVyZSBiZWNhdXNlIHdlIGRvbid0IGtub3cgdGhlIGxv
Z2dpbmcgdGhyZWFkIGhhcyBmaW5pc2hlZCBkcmFpbmluZyB0aGUKKyAgICAgICAgIyBsb2dzLiBU
aGUgc29sdXRpb24gbWlnaHQgYmUgdG8gbW92ZSB0aGlzIGludG8gbW96cHJvY2VzcyBpdHNlbGYu
CisKKyAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2Ui
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihz
ZWxmLmNvbW1hbmQpIGlmIHNlbGYuY29tbWFuZCBlbHNlICIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
Y2hyb21lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CmluZGV4IGZkMjUxYTQzMWMzMC4uMGI2YTBjNjE4
ZGZjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CkBA
IC0xLDUgKzEsNiBAQAogZnJvbSAuIGltcG9ydCBjaHJvbWVfc3BraV9jZXJ0cwogZnJvbSAuYmFz
ZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFz
ZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAuYmFzZSBpbXBvcnQgZ2V0
X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2
ZXIgaW1wb3J0IENocm9tZURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhl
Y3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCkBAIC0xMiw3ICsxMyw4IEBAIGZy
b20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IChDaHJvbWVEcml2ZXJXZHNwZWNF
eGVjdXRvciwgICMgbm9xYTogRjQwCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hy
b21lIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAg
ICAgICAgICAgICAgICJicm93c2VyIjogIkNocm9tZUJyb3dzZXIiLAorICAgICAgICAgICAgICAg
ICAiYnJvd3NlciI6IHtOb25lOiAiQ2hyb21lQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4
ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRl
c3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpbnQtcmVmdGVz
dCI6ICJDaHJvbWVEcml2ZXJQcmludFJlZlRlc3RFeGVjdXRvciIsCkBAIC0yOCwxNiArMzAsMTUg
QEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndl
YmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9p
bmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwg
dGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4g
eyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5h
cnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJf
YXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25t
ZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAg
ZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJf
Y29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAg
IGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1dG9y
X2t3YXJnc1sic3VwcG9ydHNfZWFnZXJfcGFnZWxvYWQiXSA9IEZhbHNlCkBAIC04MSw5ICs4Miwz
MSBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVf
bWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAjIFBvaW50IGFsbCAudGVzdCBkb21haW5zIHRv
IGxvY2FsaG9zdCBmb3IgQ2hyb21lCiAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQo
Ii0taG9zdC1yZXNvbHZlci1ydWxlcz1NQVAgbm9uZXhpc3RlbnQuKi50ZXN0IH5OT1RGT1VORCwg
TUFQICoudGVzdCAxMjcuMC4wLjEiKQogCisgICAgIyBDbGFzc2lmeSBgaHR0cC1wcml2YXRlYCwg
YGh0dHAtcHVibGljYCBhbmQgaHR0cHMgdmFyaWFudHMgaW4gdGhlCisgICAgIyBhcHByb3ByaWF0
ZSBJUCBhZGRyZXNzIHNwYWNlcy4KKyAgICAjIEZvciBtb3JlIGRldGFpbHMsIHNlZTogaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZmNzL2Jsb2IvbWFzdGVyL3JmY3MvYWRk
cmVzc19zcGFjZV9vdmVycmlkZXMubWQKKyAgICBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19wb3J0
cyA9IFsKKyAgICAgICAgKCJodHRwLXByaXZhdGUiLCAicHJpdmF0ZSIpLAorICAgICAgICAoImh0
dHAtcHVibGljIiwgInB1YmxpYyIpLAorICAgICAgICAoImh0dHBzLXByaXZhdGUiLCAicHJpdmF0
ZSIpLAorICAgICAgICAoImh0dHBzLXB1YmxpYyIsICJwdWJsaWMiKSwKKyAgICBdCisgICAgYWRk
cmVzc19zcGFjZV9vdmVycmlkZXNfYXJnID0gIiwiLmpvaW4oCisgICAgICAgICIxMjcuMC4wLjE6
e309e30iLmZvcm1hdChwb3J0X251bWJlciwgYWRkcmVzc19zcGFjZSkKKyAgICAgICAgZm9yIHBv
cnRfbmFtZSwgYWRkcmVzc19zcGFjZSBpbiBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19wb3J0cwor
ICAgICAgICBmb3IgcG9ydF9udW1iZXIgaW4gdGVzdF9lbnZpcm9ubWVudC5jb25maWcucG9ydHMu
Z2V0KHBvcnRfbmFtZSwgW10pCisgICAgKQorICAgIGlmIGFkZHJlc3Nfc3BhY2Vfb3ZlcnJpZGVz
X2FyZzoKKyAgICAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoCisgICAgICAgICAg
ICAiLS1pcC1hZGRyZXNzLXNwYWNlLW92ZXJyaWRlcz0iICsgYWRkcmVzc19zcGFjZV9vdmVycmlk
ZXNfYXJnKQorCiAgICAgaWYga3dhcmdzWyJlbmFibGVfbW9qb2pzIl06CiAgICAgICAgIGNocm9t
ZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWVuYWJsZS1ibGluay1mZWF0dXJlcz1Nb2pvSlMs
TW9qb0pTVGVzdCIpCiAKKyAgICBpZiBrd2FyZ3NbImVuYWJsZV9zd2lmdHNoYWRlciJdOgorICAg
ICAgICAjIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9I
RUFEL2RvY3MvZ3B1L3N3aWZ0c2hhZGVyLm1kCisgICAgICAgIGNocm9tZV9vcHRpb25zWyJhcmdz
Il0uZXh0ZW5kKFsiLS11c2UtZ2w9YW5nbGUiLCAiLS11c2UtYW5nbGU9c3dpZnRzaGFkZXIiXSkK
KwogICAgICMgQ29weSBvdmVyIGFueSBvdGhlciBmbGFncyB0aGF0IHdlcmUgcGFzc2VkIGluIHZp
YSAtLWJpbmFyeV9hcmdzCiAgICAgaWYga3dhcmdzWyJiaW5hcnlfYXJncyJdIGlzIG5vdCBOb25l
OgogICAgICAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJdLmV4dGVuZChrd2FyZ3NbImJpbmFyeV9h
cmdzIl0pCkBAIC0xMTMsNyArMTM2LDcgQEAgY2xhc3MgQ2hyb21lQnJvd3NlcihCcm93c2VyKToK
ICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJp
dmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Fy
Z3M9Tm9uZSk6CisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdz
KToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBU
aGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKICAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRv
IHVzZSBmb3IgdGVzdGluZy4iIiIKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dn
ZXIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9h
bmRyb2lkLnB5CmluZGV4IDQ4NWI5NmYzMWU3ZC4uM2JhMDE1ODhiMjk0IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9jaHJvbWVfYW5kcm9pZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQpAQCAt
MSw3ICsxLDkgQEAKK2ltcG9ydCBtb3pwcm9jZXNzCiBpbXBvcnQgc3VicHJvY2VzcwogCiBmcm9t
IC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9t
IC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9t
IC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC5jaHJvbWUgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4ud2Vi
ZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwg
ICMgbm9xYTogRjQwMQpAQCAtMTEsNyArMTMsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9y
Y2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAK
IF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lX2FuZHJvaWQiLAogICAgICAgICAg
ICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJy
b3dzZXIiOiAiQ2hyb21lQW5kcm9pZEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6IHtOb25lOiAiQ2hyb21lQW5kcm9pZEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVj
dXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0
RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJv
bWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMjksMjMgKzMyLDI0IEBAIGRlZiBjaGVja19h
cmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5
IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25m
aWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsicGFja2FnZV9uYW1l
Ijoga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwKICAgICAgICAgICAgICJkZXZpY2Vfc2VyaWFsIjog
a3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6
IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAotICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdz
Ijoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJf
YXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiksCisgICAgICAgICAgICAic3RhY2t3
YWxrX2JpbmFyeSI6IGt3YXJncy5nZXQoInN0YWNrd2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAg
ICJzeW1ib2xzX3BhdGgiOiBrd2FyZ3MuZ2V0KCJzeW1ib2xzX3BhdGgiKX0KIAogCi1kZWYgZXhl
Y3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVu
X2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3Rf
ZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdz
KToKICAgICAjIFVzZSB1cGRhdGUoKSB0byBtb2RpZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNl
LgogICAgIF93cHRzZXJ2ZV9wb3J0cy51cGRhdGUoc2V0KAotICAgICAgICBzZXJ2ZXJfY29uZmln
Wydwb3J0cyddWydodHRwJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwcyddICsKLSAg
ICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRz
J11bJ3dzcyddCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRw
J10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAg
IHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWyd3cyddICsgdGVzdF9lbnZpcm9ubWVu
dC5jb25maWdbJ3BvcnRzJ11bJ3dzcyddCiAgICAgKSkKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9
IGNocm9tZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVu
X2luZm9fZGF0YSwKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAg
IyBSZW1vdmUgdW5zdXBwb3J0ZWQgb3B0aW9ucyBvbiBtb2JpbGUuCiAgICAgZGVsIGV4ZWN1dG9y
X2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJdCkBA
IC02OSwyMCArNzMsODIgQEAgZGVmIGVudl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHsic2VydmVy
X2hvc3QiOiAiMTI3LjAuMC4xIn0KIAogCi1jbGFzcyBDaHJvbWVBbmRyb2lkQnJvd3NlcihCcm93
c2VyKToKLSAgICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMg
c3VwcGxpZWQgdGhyb3VnaAotICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJT
ZXJ2ZXJgYC4KLSAgICAiIiIKK2NsYXNzIExvZ2NhdFJ1bm5lcihvYmplY3QpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHJlbW90ZV9xdWV1ZSk6CisgICAgICAgIHNl
bGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYuYnJvd3NlciA9IGJyb3dzZXIKKyAgICAg
ICAgc2VsZi5yZW1vdGVfcXVldWUgPSByZW1vdGVfcXVldWUKKworICAgIGRlZiBzdGFydChzZWxm
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fcnVuKCkKKyAgICAgICAgZXhjZXB0
IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBf
cnVuKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFRPRE86IGFkYiBsb2djYXQg
LWMgZmFpbCByYW5kb21seSB3aXRoIG1lc3NhZ2UKKyAgICAgICAgICAgICMgImZhaWxlZCB0byBj
bGVhciB0aGUgJ21haW4nIGxvZyIKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5jbGVhcl9sb2co
KQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5lcnJvcigiRmFpbGVkIHRvIGNsZWFyIGxvZ2NhdCBidWZmZXIiKQor
CisgICAgICAgIHNlbGYuX2NtZCA9IHNlbGYuYnJvd3Nlci5sb2djYXRfY21kKCkKKyAgICAgICAg
c2VsZi5fcHJvYyA9IG1venByb2Nlc3MuUHJvY2Vzc0hhbmRsZXIoCisgICAgICAgICAgICBzZWxm
Ll9jbWQsCisgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLm9uX291dHB1dCwKKyAg
ICAgICAgICAgIHN0b3JlT3V0cHV0PUZhbHNlKQorICAgICAgICBzZWxmLl9wcm9jLnJ1bigpCisK
KyAgICBkZWYgX3NlbmRfbWVzc2FnZShzZWxmLCBjb21tYW5kLCAqYXJncyk6CisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlLnB1dCgoY29tbWFuZCwgYXJncykpCisg
ICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndh
cm5pbmcoIkVycm9yIHdoZW4gc2VuZCB0byByZW1vdGUgcXVldWUiKQogCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgcGFja2FnZV9uYW1lLCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVk
cml2ZXIiLAotICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsIHdlYmRyaXZlcl9h
cmdzPU5vbmUpOgotICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKLSAgICAg
ICAgc2VsZi5wYWNrYWdlX25hbWUgPSBwYWNrYWdlX25hbWUKKyAgICBkZWYgc3RvcChzZWxmLCBm
b3JjZT1GYWxzZSk6CisgICAgICAgIGlmIHNlbGYuaXNfYWxpdmUoKToKKyAgICAgICAgICAgIGtp
bGxfcmVzdWx0ID0gc2VsZi5fcHJvYy5raWxsKCkKKyAgICAgICAgICAgIGlmIGZvcmNlIGFuZCBr
aWxsX3Jlc3VsdCAhPSAwOgorICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Mua2lsbCg5KQorCisg
ICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzYXR0cihzZWxmLl9wcm9j
LCAicHJvYyIpIGFuZCBzZWxmLl9wcm9jLnBvbGwoKSBpcyBOb25lCisKKyAgICBkZWYgb25fb3V0
cHV0KHNlbGYsIGxpbmUpOgorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImFjdGlvbiI6
ICJwcm9jZXNzX291dHB1dCIsCisgICAgICAgICAgICAicHJvY2VzcyI6ICJMT0dDQVQiLAorICAg
ICAgICAgICAgImNvbW1hbmQiOiAibG9nY2F0IiwKKyAgICAgICAgICAgICJkYXRhIjogbGluZQor
ICAgICAgICB9CisgICAgICAgIHNlbGYuX3NlbmRfbWVzc2FnZSgibG9nIiwgZGF0YSkKKworCitj
bGFzcyBDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UoQnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21l
ZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAgcmVtb3RlX3F1ZXVlID0gTm9uZSwKKyAgICAgICAg
ICAgICAgICAgZGV2aWNlX3NlcmlhbD1Ob25lLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJf
YXJncz1Ob25lLAorICAgICAgICAgICAgICAgICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAg
ICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKKyAgICAgICAgc3VwZXIoQ2hyb21lQW5k
cm9pZEJyb3dzZXJCYXNlLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIpCiAgICAgICAgIHNlbGYuZGV2
aWNlX3NlcmlhbCA9IGRldmljZV9zZXJpYWwKKyAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5
ID0gc3RhY2t3YWxrX2JpbmFyeQorICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNf
cGF0aAorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IHJlbW90ZV9xdWV1ZQogICAgICAgICBz
ZWxmLnNlcnZlciA9IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2Fy
Z3MpCisgICAgICAgIGlmIHNlbGYucmVtb3RlX3F1ZXVlIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgc2VsZi5sb2djYXRfcnVubmVyID0gTG9nY2F0UnVubmVyKHNlbGYubG9nZ2VyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5yZW1vdGVfcXVl
dWUpCisKKyAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYuc2V0dXBfYWRiX3JldmVy
c2UoKQorICAgICAgICBpZiBzZWxmLnJlbW90ZV9xdWV1ZSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIHNlbGYubG9nY2F0X3J1bm5lci5zdGFydCgpCiAKICAgICBkZWYgX2FkYl9ydW4oc2VsZiwg
YXJncyk6CiAgICAgICAgIGNtZCA9IFsnYWRiJ10KQEAgLTkyLDE0ICsxNTgsNiBAQCBjbGFzcyBD
aHJvbWVBbmRyb2lkQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygn
ICcuam9pbihjbWQpKQogICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kKQogCi0gICAg
ZGVmIHNldHVwX2FkYl9yZXZlcnNlKHNlbGYpOgotICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2Fp
dC1mb3ItZGV2aWNlJ10pCi0gICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVt
b3ZlLWFsbCddKQotICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1h
bGwnXSkKLSAgICAgICAgIyAiYWRiIHJldmVyc2UiIGZvcndhcmRzIG5ldHdvcmsgY29ubmVjdGlv
biBmcm9tIGRldmljZSB0byBob3N0LgotICAgICAgICBmb3IgcG9ydCBpbiBfd3B0c2VydmVfcG9y
dHM6Ci0gICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9y
dCwgJ3RjcDolZCcgJSBwb3J0XSkKLQogICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CiAg
ICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQogCkBAIC0xMTksNiArMTc3LDYw
IEBAIGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnN0
b3AoKQogICAgICAgICBzZWxmLl9hZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkK
ICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAg
ICAgIGlmIHNlbGYucmVtb3RlX3F1ZXVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5s
b2djYXRfcnVubmVyLnN0b3AoZm9yY2U9VHJ1ZSkKIAogICAgIGRlZiBleGVjdXRvcl9icm93c2Vy
KHNlbGYpOgogICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwi
OiBzZWxmLnNlcnZlci51cmx9CisKKyAgICBkZWYgY2xlYXJfbG9nKHNlbGYpOgorICAgICAgICBz
ZWxmLl9hZGJfcnVuKFsnbG9nY2F0JywgJy1jJ10pCisKKyAgICBkZWYgbG9nY2F0X2NtZChzZWxm
KToKKyAgICAgICAgY21kID0gWydhZGInXQorICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6
CisgICAgICAgICAgICBjbWQuZXh0ZW5kKFsnLXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAg
ICAgICBjbWQuZXh0ZW5kKFsnbG9nY2F0JywgJyo6RCddKQorICAgICAgICByZXR1cm4gY21kCisK
KyAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CisgICAgICAgIHNlbGYu
bWF5YmVfcGFyc2VfdG9tYnN0b25lKCkKKyAgICAgICAgIyBFeGlzdGVuY2Ugb2YgYSB0b21ic3Rv
bmUgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiB0ZXN0IHRhcmdldCBoYXMKKyAgICAgICAgIyBj
cmFzaGVkLiBBbHdheXMgcmV0dXJuIEZhbHNlIHNvIHdlIGRvbid0IGNoYW5nZSB0aGUgdGVzdCBy
ZXN1bHRzLgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBtYXliZV9wYXJzZV90b21i
c3RvbmUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuc3RhY2t3YWxrX2JpbmFyeToKKyAgICAgICAg
ICAgIGNtZCA9IFtzZWxmLnN0YWNrd2Fsa19iaW5hcnksICItYSIsICItdyJdCisgICAgICAgICAg
ICBpZiBzZWxmLmRldmljZV9zZXJpYWw6CisgICAgICAgICAgICAgICAgY21kLmV4dGVuZChbIi0t
ZGV2aWNlIiwgc2VsZi5kZXZpY2Vfc2VyaWFsXSkKKyAgICAgICAgICAgIGNtZC5leHRlbmQoWyIt
LW91dHB1dC1kaXJlY3RvcnkiLCBzZWxmLnN5bWJvbHNfcGF0aF0pCisgICAgICAgICAgICByYXdf
b3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoY21kKQorICAgICAgICAgICAgZm9yIGxp
bmUgaW4gcmF3X291dHB1dC5zcGxpdGxpbmVzKCk6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIucHJvY2Vzc19vdXRwdXQoIlRSQUNFIiwgbGluZSwgImxvZ2NhdCIpCisKKyAgICBkZWYgc2V0
dXBfYWRiX3JldmVyc2Uoc2VsZik6CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1k
ZXZpY2UnXSkKKyAgICAgICAgc2VsZi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxs
J10pCisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQor
ICAgICAgICAjICJhZGIgcmV2ZXJzZSIgZm9yd2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20g
ZGV2aWNlIHRvIGhvc3QuCisgICAgICAgIGZvciBwb3J0IGluIHNlbGYud3B0c2VydmVyX3BvcnRz
OgorICAgICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAndGNwOiVkJyAlIHBvcnQs
ICd0Y3A6JWQnICUgcG9ydF0pCisKK2NsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKENocm9tZUFu
ZHJvaWRCcm93c2VyQmFzZSk6CisgICAgIiIiQ2hyb21lIGlzIGJhY2tlZCBieSBjaHJvbWVkcml2
ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIu
Q2hyb21lRHJpdmVyU2VydmVyYGAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bG9nZ2VyLCBwYWNrYWdlX25hbWUsCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9
ImNocm9tZWRyaXZlciIsCisgICAgICAgICAgICAgICAgIHJlbW90ZV9xdWV1ZSA9IE5vbmUsCisg
ICAgICAgICAgICAgICAgIGRldmljZV9zZXJpYWw9Tm9uZSwKKyAgICAgICAgICAgICAgICAgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3RhY2t3YWxrX2JpbmFyeT1Ob25l
LAorICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9Tm9uZSk6CisgICAgICAgIHN1cGVyKENo
cm9tZUFuZHJvaWRCcm93c2VyLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIsCisgICAgICAgICAgICAg
ICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFsLAorICAgICAg
ICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmluYXJ5LCBzeW1ib2xzX3BhdGgp
CisgICAgICAgIHNlbGYucGFja2FnZV9uYW1lID0gcGFja2FnZV9uYW1lCisgICAgICAgIHNlbGYu
d3B0c2VydmVyX3BvcnRzID0gX3dwdHNlcnZlX3BvcnRzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvZWRnZS5weQppbmRleCBiZGIzN2IzZjg0YzIuLjMxMDFlOWM3YmVhMyAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvZWRnZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CkBAIC0xLDcgKzEsNyBA
QAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IHRpbWUKIGlt
cG9ydCBzdWJwcm9jZXNzCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dz
ZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBG
NDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZURyaXZlclNlcnZlcgogZnJv
bSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dh
cmdzCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRl
c3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKQEAgLTEwLDcgKzEwLDggQEAgZnJvbSAu
LmV4ZWN1dG9ycy5leGVjdXRvcmVkZ2UgaW1wb3J0IEVkZ2VEcml2ZXJXZHNwZWNFeGVjdXRvciAg
IyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZSIsCiAgICAg
ICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAg
ICAiYnJvd3NlciI6ICJFZGdlQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjog
e05vbmU6ICJFZGdlQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNw
ZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0
aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJFZGdlRHJpdmVyV2RzcGVjRXhl
Y3V0b3IifSwKQEAgLTM0LDcgKzM1LDcgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAg
IHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2Vy
X2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJk
cml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0
KCJ3ZWJkcml2ZXJfYXJncyIpLAogICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IGdl
dF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLApAQCAtNDIsMTAgKzQzLDkgQEAgZGVmIGJy
b3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKmt3YXJncyl9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9l
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
ICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAgICAg
ZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCiAgICAgZXhlY3V0b3Jf
a3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSA9IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVz
dF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCkBAIC02NSwxMCArNjUsMTAgQEAgZGVm
IGVudl9vcHRpb25zKCk6CiAKIAogY2xhc3MgRWRnZUJyb3dzZXIoQnJvd3Nlcik6Ci0gICAgdXNl
ZF9wb3J0cyA9IHNldCgpCiAgICAgaW5pdF90aW1lb3V0ID0gNjAKIAotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnksIHRpbWVvdXRfbXVsdGlwbGllcj1Ob25l
LCB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3
ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPU5vbmUsIHdl
YmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhz
ZWxmLCBsb2dnZXIpCiAgICAgICAgIHNlbGYuc2VydmVyID0gRWRnZURyaXZlclNlcnZlcihzZWxm
LmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13
ZWJkcml2ZXJfYmluYXJ5LApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9lZGdlX3dlYmRyaXZlci5weQppbmRleCBjMjU0NWRlNDZmMGIuLmU1OTQ5ZmUzZTU3ZiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJk
cml2ZXIucHkKQEAgLTEsMTIgKzEsMjggQEAKLWZyb20gLmJhc2UgaW1wb3J0IGluaGVyaXQKLWZy
b20gLiBpbXBvcnQgZWRnZQorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTog
RjQwMQorZnJvbSAuZWRnZSBpbXBvcnQgKEVkZ2VCcm93c2VyLCAgIyBub3FhOiBGNDAxCisgICAg
ICAgICAgICAgICAgICAgRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisg
ICAgICAgICAgICAgICAgICAgY2hlY2tfYXJncywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAg
ICAgICAgIGJyb3dzZXJfa3dhcmdzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAg
ZXhlY3V0b3Jfa3dhcmdzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgZW52X2V4
dHJhcywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgIGVudl9vcHRpb25zLCAgIyBu
b3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzLCAgIyBub3FhOiBG
NDAxCisgICAgICAgICAgICAgICAgICAgZ2V0X3RpbWVvdXRfbXVsdGlwbGllcikgICMgbm9xYTog
RjQwMQogCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJp
dmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9x
YTogRjQwMQogCiAKLWluaGVyaXQoZWRnZSwgZ2xvYmFscygpLCAiZWRnZV93ZWJkcml2ZXIiKQot
Ci0jIF9fd3B0cnVubmVyX18gbWFnaWNhbGx5IGFwcGVhcnMgZnJvbSBpbmhlcml0LCBGODIxIGlz
IHVuZGVmaW5lZCBuYW1lCi1fX3dwdHJ1bm5lcl9fWyJleGVjdXRvciJdWyJ0ZXN0aGFybmVzcyJd
ID0gIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiICAjIG5vcWE6IEY4MjEKLV9fd3B0cnVu
bmVyX19bImV4ZWN1dG9yIl1bInJlZnRlc3QiXSA9ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Ii
ICAjIG5vcWE6IEY4MjEKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZV93ZWJkcml2
ZXIiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAg
ICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VCcm93c2VyIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAg
ICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhl
Y3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJp
dmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNw
ZWMiOiAiRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93
c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRv
cl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRy
YXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZf
b3B0aW9ucyIsCisgICAgICAgICAgICAgICAgICJydW5faW5mb19leHRyYXMiOiAicnVuX2luZm9f
ZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGlt
ZW91dF9tdWx0aXBsaWVyIn0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9m
aXJlZm94LnB5CmluZGV4IDE1MTUzMDg5N2Q5Yi4uYWMyNzQ1MzEyN2FiIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9maXJlZm94LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKQEAgLTEsOSArMSwxMiBAQAor
aW1wb3J0IGJhc2U2NAoraW1wb3J0IGlvCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQg
cGxhdGZvcm0KIGltcG9ydCBzaWduYWwKIGltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCitp
bXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB6aXBmaWxlCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwg
YWJzdHJhY3RtZXRob2QKIAogaW1wb3J0IG1vemluZm8KQEAgLTE1LDI2ICsxOCwzMCBAQCBmcm9t
IG1venJ1bm5lciBpbXBvcnQgRmlyZWZveFJ1bm5lcgogZnJvbSBtb3pydW5uZXIudXRpbHMgaW1w
b3J0IHRlc3RfZW52aXJvbm1lbnQsIGdldF9zdGFja19maXhlcl9mdW5jdGlvbgogZnJvbSBtb3pj
cmFzaCBpbXBvcnQgbW96Y3Jhc2gKIAotZnJvbSAuYmFzZSBpbXBvcnQgKGdldF9mcmVlX3BvcnQs
Ci0gICAgICAgICAgICAgICAgICAgQnJvd3NlciwKK2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2Vy
LAogICAgICAgICAgICAgICAgICAgIEV4ZWN1dG9yQnJvd3NlciwKLSAgICAgICAgICAgICAgICAg
ICByZXF1aXJlX2FyZywKKyAgICAgICAgICAgICAgICAgICBOdWxsQnJvd3NlciwKKyAgICAgICAg
ICAgICAgICAgICBPdXRwdXRIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgIE91dHB1dEhhbmRs
ZXJTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQsCiAgICAgICAgICAg
ICAgICAgICAgY21kX2FyZywKLSAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQpCisg
ICAgICAgICAgICAgICAgICAgZ2V0X2ZyZWVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICByZXF1
aXJlX2FyZykKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNl
X2V4ZWN1dG9yX2t3YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcm1hcmlvbmV0dGUgaW1w
b3J0IChNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUmVmVGVzdEV4
ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE1hcmlvbmV0dGVQcmludFJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlV2Rz
cGVjRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAx
Ci1mcm9tIC4ucHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVy
IGltcG9ydCBXZWJEcml2ZXJTZXJ2ZXIKIAogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZpcmVmb3giLAogICAgICAgICAg
ICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJy
b3dzZXIiOiAiRmlyZWZveEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtO
b25lOiAiRmlyZWZveEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2Rz
cGVjIjogIkZpcmVmb3hXZFNwZWNCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRv
ciI6IHsiY3Jhc2h0ZXN0IjogIk1hcmlvbmV0dGVDcmFzaHRlc3RFeGVjdXRvciIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdGhhcm5lc3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJu
ZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAi
TWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvciIsCkBAIC01MywxMSArNjAsMTEgQEAgZGVmIGdldF90
aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAg
ICAgaWYga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSBpcyBub3QgTm9uZToKICAgICAgICAg
cmV0dXJuIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0KICAgICBpZiB0ZXN0X3R5cGUgPT0g
InJlZnRlc3QiOgotICAgICAgICBpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZv
X2RhdGEuZ2V0KCJhc2FuIik6CisgICAgICAgIGlmIHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0gb3Ig
cnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKSBvciBydW5faW5mb19kYXRhLmdldCgidHNhbiIpOgog
ICAgICAgICAgICAgcmV0dXJuIDQKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiAy
Ci0gICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJh
c2FuIik6CisgICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEu
Z2V0KCJhc2FuIikgb3IgcnVuX2luZm9fZGF0YS5nZXQoInRzYW4iKToKICAgICAgICAgaWYgcnVu
X2luZm9fZGF0YS5nZXQoImNjb3YiKToKICAgICAgICAgICAgIHJldHVybiA0CiAgICAgICAgIGVs
c2U6CkBAIC03Niw3ICs4Myw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1
aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAg
ICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgInByZWZz
X3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKICAgICAgICAgICAgICJleHRyYV9wcmVmcyI6
IGt3YXJnc1siZXh0cmFfcHJlZnMiXSwKQEAgLTEwMSwxMyArMTA4LDI0IEBAIGRlZiBicm93c2Vy
X2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAg
ICAgICAgICAgImNvbmZpZyI6IGNvbmZpZywKICAgICAgICAgICAgICJicm93c2VyX2NoYW5uZWwi
OiBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdLAogICAgICAgICAgICAgImhlYWRsZXNzIjoga3dh
cmdzWyJoZWFkbGVzcyJdLAotICAgICAgICAgICAgInByZWxvYWRfYnJvd3NlciI6IGt3YXJnc1si
cHJlbG9hZF9icm93c2VyIl19CisgICAgICAgICAgICAicHJlbG9hZF9icm93c2VyIjoga3dhcmdz
WyJwcmVsb2FkX2Jyb3dzZXIiXSBhbmQgbm90IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdIGFu
ZCBub3Qga3dhcmdzWyJudW1fdGVzdF9ncm91cHMiXSA9PSAxLAorICAgICAgICAgICAgInNwZWNp
YWxwb3dlcnNfcGF0aCI6IGt3YXJnc1sic3BlY2lhbHBvd2Vyc19wYXRoIl19CiAKIAotZGVmIGV4
ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1
bl9pbmZvX2RhdGEsCitjbGFzcyBXZFNwZWNQcm9maWxlKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHByb2ZpbGUpOgorICAgICAgICBzZWxmLnByb2ZpbGUgPSBwcm9maWxlCisKKyAg
ICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9f
ZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYucHJvZmlsZS5jbGVh
bnVwKCkKKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vu
dmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6
Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFz
ZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19k
YXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdz
KQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gdGVzdF90eXBlICE9
ICJyZWZ0ZXN0IgogICAgIGV4ZWN1dG9yX2t3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0gPSBn
ZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwKQEAgLTEyMSwyMiArMTM5LDYzIEBAIGRl
ZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2Vy
LCBydW5faW5mb19kYXRhLAogICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInJlZnRlc3RfaW50ZXJu
YWwiXSA9IGt3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdCiAgICAgICAgIGV4ZWN1dG9yX2t3YXJn
c1sicmVmdGVzdF9zY3JlZW5zaG90Il0gPSBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdCiAg
ICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgotICAgICAgICBvcHRpb25zID0ge30KKyAgICAg
ICAgb3B0aW9ucyA9IHsiYXJncyI6IFtdfQogICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdOgog
ICAgICAgICAgICAgb3B0aW9uc1siYmluYXJ5Il0gPSBrd2FyZ3NbImJpbmFyeSJdCiAgICAgICAg
IGlmIGt3YXJnc1siYmluYXJ5X2FyZ3MiXToKICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXSA9
IGt3YXJnc1siYmluYXJ5X2FyZ3MiXQotICAgICAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06Ci0g
ICAgICAgICAgICBpZiAiYXJncyIgbm90IGluIG9wdGlvbnM6Ci0gICAgICAgICAgICAgICAgb3B0
aW9uc1siYXJncyJdID0gW10KLSAgICAgICAgICAgIGlmICItLWhlYWRsZXNzIiBub3QgaW4gb3B0
aW9uc1siYXJncyJdOgotICAgICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0t
aGVhZGxlc3MiKQotICAgICAgICBvcHRpb25zWyJwcmVmcyJdID0gewotICAgICAgICAgICAgIm5l
dHdvcmsuZG5zLmxvY2FsRG9tYWlucyI6ICIsIi5qb2luKHNlcnZlcl9jb25maWcuZG9tYWluc19z
ZXQpCi0gICAgICAgIH0KLSAgICAgICAgZm9yIHByZWYsIHZhbHVlIGluIGt3YXJnc1siZXh0cmFf
cHJlZnMiXToKLSAgICAgICAgICAgIG9wdGlvbnNbInByZWZzIl0udXBkYXRlKHtwcmVmOiBQcmVm
ZXJlbmNlcy5jYXN0KHZhbHVlKX0pCisKKyAgICAgICAgcHJvZmlsZV9jcmVhdG9yID0gUHJvZmls
ZUNyZWF0b3IobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga3dhcmdzWyJleHRyYV9wcmVmcyJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImdlY2tvX2UxMHMiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJlbmFibGVfZmlzc2lvbiJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImJyb3dzZXJf
Y2hhbm5lbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2Fy
Z3NbImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
d2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZy5zc2xfY29uZmlnWyJjYV9jZXJ0X3Bh
dGgiXSkKKyAgICAgICAgaWYga3dhcmdzWyJwcm9jZXNzZXMiXSA+IDE6CisgICAgICAgICAgICAj
IFdpdGggbXVsdGlwbGUgcHJvY2Vzc2VzLCB3ZSB3b3VsZCBuZWVkIGEgcHJvZmlsZSBkaXJlY3Rv
cnkgcGVyIHByb2Nlc3MsIGJ1dCB3ZQorICAgICAgICAgICAgIyBkb24ndCBoYXZlIGFuIGVhc3kg
d2F5IHRvIGRvIHRoYXQsIHNvIGluY2x1ZGUgdGhlIHByb2ZpbGUgaW4gdGhlIGNhcGFiaWx0aWVz
CisgICAgICAgICAgICAjIGRpcmVjdGx5IGluc3RlYWQuIFRoaXMgbWVhbnMgcmVjcmVhdGluZyBp
dCBwZXIgc2Vzc2lvbiwgd2hpY2ggaXMgc2xvdworICAgICAgICAgICAgb3B0aW9uc1sicHJvZmls
ZSJdID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0ZV9iYXNlNjQoKQorICAgICAgICAgICAgcHJvZmls
ZSA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByb2ZpbGUgPSBwcm9maWxlX2Ny
ZWF0b3IuY3JlYXRlKCkKKyAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXS5leHRlbmQoWyItLXBy
b2ZpbGUiLCBwcm9maWxlLnByb2ZpbGVdKQorICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5l
bnZfZXh0cmFzX2Ntcy5hcHBlbmQoV2RTcGVjUHJvZmlsZShwcm9maWxlKSkKKwogICAgICAgICBj
YXBhYmlsaXRpZXNbIm1vejpmaXJlZm94T3B0aW9ucyJdID0gb3B0aW9ucworCisgICAgICAgICMg
VGhpcyBnZXRzIHJldXNlZCBmb3IgZmlyZWZveF9hbmRyb2lkLCBidXQgdGhlIGVudmlyb25tZW50
IHNldHVwCisgICAgICAgICMgaXNuJ3QgcmVxdWlyZWQgaW4gdGhhdCBjYXNlCisgICAgICAgIGlm
IGt3YXJnc1siYmluYXJ5Il06CisgICAgICAgICAgICBlbnZpcm9uID0gZ2V0X2Vudmlyb24obG9n
Z2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJzdHlsb190aHJlYWRz
Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJoZWFkbGVzcyJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZW5hYmxlX3dlYnJl
bmRlciJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siY2hhb3Nf
bW9kZV9mbGFncyJdKQorICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IHNldHVwX2xlYWtf
cmVwb3J0KGt3YXJnc1sibGVha19jaGVjayJdLCBwcm9maWxlLCBlbnZpcm9uKQorCisgICAgICAg
ICAgICAjIFRoaXMgZG9lc24ndCB3b3JrIHdpdGggd2RzcGVjIHRlc3RzCisgICAgICAgICAgICAj
IEluIHBhcnRpY3VsYXIgdGVzdHMgY2FuIGNyZWF0ZSBhIHNlc3Npb24gd2l0aG91dCBwYXNzaW5n
IGluIHRoZSBjYXBhYmlsaXRlcworICAgICAgICAgICAgIyBhbmQgaW4gdGhvc2UgY2FzZXMgd2Ug
Z2V0IHRoZSBkZWZhdWx0IGdlY2tvZHJpdmVyIHByb2ZpbGUgd2hpY2ggZG9lc24ndAorICAgICAg
ICAgICAgIyBndWFyYW50ZWUgemVybyBuZXR3b3JrIGFjY2VzcworICAgICAgICAgICAgZGVsIGVu
dmlyb25bIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NPTk5FQ1RJT05TIl0KKyAgICAgICAgICAgIGV4
ZWN1dG9yX2t3YXJnc1siZW52aXJvbiJdID0gZW52aXJvbgorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdIGFuZCAiLS1oZWFkbGVzcyIgbm90IGluIG9wdGlv
bnNbImFyZ3MiXToKKyAgICAgICAgICAgICAgICBvcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhl
YWRsZXNzIikKKyAgICAgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGUgPSBOb25lCisKKyAgICAgICAg
ZXhlY3V0b3Jfa3dhcmdzWyJzdGFja2ZpeF9kaXIiXSA9IGt3YXJnc1sic3RhY2tmaXhfZGlyIl0s
CisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sibGVha19yZXBvcnRfZmlsZSJdID0gbGVha19yZXBv
cnRfZmlsZQorICAgICAgICBleGVjdXRvcl9rd2FyZ3NbImFzYW4iXSA9IHJ1bl9pbmZvX2RhdGEu
Z2V0KCJhc2FuIikKKwogICAgIGlmIGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0gaXMgTm9uZToK
ICAgICAgICAgY2FwYWJpbGl0aWVzWyJhY2NlcHRJbnNlY3VyZUNlcnRzIl0gPSBUcnVlCiAgICAg
aWYgY2FwYWJpbGl0aWVzOgpAQCAtMTQ0LDYgKzIwMyw3IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3Mo
dGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAog
ICAgIGV4ZWN1dG9yX2t3YXJnc1siZGVidWciXSA9IHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0KICAg
ICBleGVjdXRvcl9rd2FyZ3NbImNjb3YiXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0KCJjY292IiwgRmFs
c2UpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJicm93c2VyX3ZlcnNpb24iXSA9IHJ1bl9pbmZvX2Rh
dGEuZ2V0KCJicm93c2VyX3ZlcnNpb24iKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siZGVidWdfdGVz
dCJdID0ga3dhcmdzWyJkZWJ1Z190ZXN0Il0KICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAK
IApAQCAtMTc3LDE2ICsyMzcsMTEgQEAgZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CiAg
ICAgICAgICAgIndhc20iOiBrd2FyZ3MuZ2V0KCJ3YXNtIiwgVHJ1ZSksCiAgICAgICAgICAgInZl
cmlmeSI6IGt3YXJnc1sidmVyaWZ5Il0sCiAgICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzLmdl
dCgiaGVhZGxlc3MiLCBGYWxzZSkgb3IgIk1PWl9IRUFETEVTUyIgaW4gb3MuZW52aXJvbiwKLSAg
ICAgICAgICAic3ctZTEwcyI6IFRydWUsCi0gICAgICAgICAgImZpc3Npb24iOiBrd2FyZ3MuZ2V0
KCJlbmFibGVfZmlzc2lvbiIpIG9yIGdldF9ib29sX3ByZWYoImZpc3Npb24uYXV0b3N0YXJ0Iil9
Ci0KLSAgICAjIFRoZSB2YWx1ZSBvZiBgc3ctZTEwc2AgZGVmYXVsdHMgdG8gd2hldGhlciB0aGUg
InBhcmVudF9pbnRlcmNlcHQiCi0gICAgIyBpbXBsZW1lbnRhdGlvbiBpcyBlbmFibGVkIGZvciB0
aGUgY3VycmVudCBidWlsZC4gVGhpcyB2YWx1ZSwgaG93ZXZlciwKLSAgICAjIGNhbiBiZSBvdmVy
cmlkZGVuIGJ5IGV4cGxpY2l0bHkgc2V0dGluZyB0aGUgcHJlZiB3aXRoIHRoZSBgLS1zZXRwcmVm
YCBDTEkKLSAgICAjIGZsYWcsIHdoaWNoIGlzIGNoZWNrZWQgaGVyZS4KLSAgICBzd19lMTBzX292
ZXJyaWRlID0gZ2V0X2Jvb2xfcHJlZl9pZl9leGlzdHMoImRvbS5zZXJ2aWNlV29ya2Vycy5wYXJl
bnRfaW50ZXJjZXB0IikKLSAgICBpZiBzd19lMTBzX292ZXJyaWRlIGlzIG5vdCBOb25lOgotICAg
ICAgICBydlsic3ctZTEwcyJdID0gc3dfZTEwc19vdmVycmlkZQorICAgICAgICAgICJmaXNzaW9u
Ijoga3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24iKSBvciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9u
LmF1dG9zdGFydCIpLAorICAgICAgICAgICJzZXNzaW9uSGlzdG9yeUluUGFyZW50IjogKGt3YXJn
cy5nZXQoImVuYWJsZV9maXNzaW9uIikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpIG9yCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5zZXNzaW9u
SGlzdG9yeUluUGFyZW50IikpLAorICAgICAgICAgICJzd2dsIjogZ2V0X2Jvb2xfcHJlZigiZ2Z4
LndlYnJlbmRlci5zb2Z0d2FyZSIpfQogCiAgICAgcnYudXBkYXRlKHJ1bl9pbmZvX2Jyb3dzZXJf
dmVyc2lvbigqKmt3YXJncykpCiAKQEAgLTIwOCwxMSArMjYzLDQ2IEBAIGRlZiBydW5faW5mb19i
cm93c2VyX3ZlcnNpb24oKiprd2FyZ3MpOgogCiAKIGRlZiB1cGRhdGVfcHJvcGVydGllcygpOgot
ICAgIHJldHVybiAoWyJvcyIsICJkZWJ1ZyIsICJ3ZWJyZW5kZXIiLCAiZmlzc2lvbiIsICJlMTBz
IiwgInN3LWUxMHMiLCAicHJvY2Vzc29yIl0sCisgICAgcmV0dXJuIChbIm9zIiwgImRlYnVnIiwg
IndlYnJlbmRlciIsICJmaXNzaW9uIiwgImUxMHMiLCAicHJvY2Vzc29yIiwgInN3Z2wiXSwKICAg
ICAgICAgICAgIHsib3MiOiBbInZlcnNpb24iXSwgInByb2Nlc3NvciI6IFsiYml0cyJdfSkKIAog
Ci1jbGFzcyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKG9iamVjdCk6CitkZWYgZ2V0X2Vudmlyb24o
bG9nZ2VyLCBiaW5hcnksIGRlYnVnX2luZm8sIHN0eWxvX3RocmVhZHMsIGhlYWRsZXNzLCBlbmFi
bGVfd2VicmVuZGVyLAorICAgICAgICAgICAgICAgIGNoYW9zX21vZGVfZmxhZ3M9Tm9uZSk6Cisg
ICAgZW52ID0gdGVzdF9lbnZpcm9ubWVudCh4cmVQYXRoPW9zLnBhdGguYWJzcGF0aChvcy5wYXRo
LmRpcm5hbWUoYmluYXJ5KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dlcj1k
ZWJ1Z19pbmZvIGlzIG5vdCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlTFNh
bj1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nPWxvZ2dlcikKKworICAgIGVu
dlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHN0eWxvX3RocmVhZHMpCisgICAgaWYgY2hhb3NfbW9k
ZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIo
Y2hhb3NfbW9kZV9mbGFncykKKyAgICBpZiBoZWFkbGVzczoKKyAgICAgICAgZW52WyJNT1pfSEVB
RExFU1MiXSA9ICIxIgorICAgIGlmIGVuYWJsZV93ZWJyZW5kZXI6CisgICAgICAgIGVudlsiTU9a
X1dFQlJFTkRFUiJdID0gIjEiCisgICAgICAgIGVudlsiTU9aX0FDQ0VMRVJBVEVEIl0gPSAiMSIK
KyAgICBlbHNlOgorICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIwIgorICAgIHJldHVy
biBlbnYKKworCitkZWYgc2V0dXBfbGVha19yZXBvcnQobGVha19jaGVjaywgcHJvZmlsZSwgZW52
KToKKyAgICBsZWFrX3JlcG9ydF9maWxlID0gTm9uZQorICAgIGlmIGxlYWtfY2hlY2s6CisgICAg
ICAgIGZpbGVuYW1lID0gInJ1bnRlc3RzX2xlYWtzXyVzLmxvZyIgJSBvcy5nZXRwaWQoKQorICAg
ICAgICBpZiBwcm9maWxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbGVha19yZXBvcnRfZmls
ZSA9IG9zLnBhdGguam9pbihwcm9maWxlLnByb2ZpbGUsIGZpbGVuYW1lKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGguam9pbih0ZW1wZmlsZS5n
ZXR0ZW1wZGlyKCksIGZpbGVuYW1lKQorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3Jl
cG9ydF9maWxlKToKKyAgICAgICAgICAgIG9zLnJlbW92ZShsZWFrX3JlcG9ydF9maWxlKQorICAg
ICAgICBlbnZbIlhQQ09NX01FTV9CTE9BVF9MT0ciXSA9IGxlYWtfcmVwb3J0X2ZpbGUKKworICAg
IHJldHVybiBsZWFrX3JlcG9ydF9maWxlCisKKworY2xhc3MgRmlyZWZveEluc3RhbmNlTWFuYWdl
cjoKICAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5LCBiaW5hcnlfYXJncywgcHJvZmlsZV9jcmVhdG9yLCBkZWJ1Z19pbmZv
LApAQCAtMjY3LDIwICszNTcsOCBAQCBjbGFzcyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKG9iamVj
dCk6CiAgICAgICAgIG1hcmlvbmV0dGVfcG9ydCA9IGdldF9mcmVlX3BvcnQoKQogICAgICAgICBw
cm9maWxlLnNldF9wcmVmZXJlbmNlcyh7Im1hcmlvbmV0dGUucG9ydCI6IG1hcmlvbmV0dGVfcG9y
dH0pCiAKLSAgICAgICAgZW52ID0gdGVzdF9lbnZpcm9ubWVudCh4cmVQYXRoPW9zLnBhdGguZGly
bmFtZShzZWxmLmJpbmFyeSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdn
ZXI9c2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVzZUxTYW49VHJ1ZSwgbG9nPXNlbGYubG9nZ2VyKQotCi0gICAgICAgIGVudlsiU1RZ
TE9fVEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5bG9fdGhyZWFkcykKLSAgICAgICAgaWYgc2VsZi5j
aGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZW52WyJNT1pfQ0hBT1NN
T0RFIl0gPSBzdHIoc2VsZi5jaGFvc19tb2RlX2ZsYWdzKQotICAgICAgICBpZiBzZWxmLmhlYWRs
ZXNzOgotICAgICAgICAgICAgZW52WyJNT1pfSEVBRExFU1MiXSA9ICIxIgotICAgICAgICBpZiBz
ZWxmLmVuYWJsZV93ZWJyZW5kZXI6Ci0gICAgICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9
ICIxIgotICAgICAgICAgICAgZW52WyJNT1pfQUNDRUxFUkFURUQiXSA9ICIxIgotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMCIKKyAgICAgICAgZW52
ID0gZ2V0X2Vudmlyb24oc2VsZi5sb2dnZXIsIHNlbGYuYmluYXJ5LCBzZWxmLmRlYnVnX2luZm8s
IHNlbGYuc3R5bG9fdGhyZWFkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oZWFk
bGVzcywgc2VsZi5lbmFibGVfd2VicmVuZGVyLCBzZWxmLmNoYW9zX21vZGVfZmxhZ3MpCiAKICAg
ICAgICAgYXJncyA9IHNlbGYuYmluYXJ5X2FyZ3NbOl0gaWYgc2VsZi5iaW5hcnlfYXJncyBlbHNl
IFtdCiAgICAgICAgIGFyZ3MgKz0gW2NtZF9hcmcoIm1hcmlvbmV0dGUiKSwgImFib3V0OmJsYW5r
Il0KQEAgLTI4OSwyNiArMzY3LDI2IEBAIGNsYXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlYnVnX2luZm8p
CiAKLSAgICAgICAgaWYgc2VsZi5sZWFrX2NoZWNrOgotICAgICAgICAgICAgbGVha19yZXBvcnRf
ZmlsZSA9IG9zLnBhdGguam9pbihwcm9maWxlLnByb2ZpbGUsICJydW50ZXN0c19sZWFrc18lcy5s
b2ciICUgb3MuZ2V0cGlkKCkpCi0gICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3Jl
cG9ydF9maWxlKToKLSAgICAgICAgICAgICAgICBvcy5yZW1vdmUobGVha19yZXBvcnRfZmlsZSkK
LSAgICAgICAgICAgIGVudlsiWFBDT01fTUVNX0JMT0FUX0xPRyJdID0gbGVha19yZXBvcnRfZmls
ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IE5vbmUKLQot
ICAgICAgICBvdXRwdXRfaGFuZGxlciA9IE91dHB1dEhhbmRsZXIoc2VsZi5sb2dnZXIsIHNlbGYu
c3RhY2tmaXhfZGlyLCBzZWxmLnN5bWJvbHNfcGF0aCwgc2VsZi5hc2FuKQorICAgICAgICBsZWFr
X3JlcG9ydF9maWxlID0gc2V0dXBfbGVha19yZXBvcnQoc2VsZi5sZWFrX2NoZWNrLCBwcm9maWxl
LCBlbnYpCisgICAgICAgIG91dHB1dF9oYW5kbGVyID0gRmlyZWZveE91dHB1dEhhbmRsZXIoc2Vs
Zi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNr
Zml4X2Rpcj1zZWxmLnN0YWNrZml4X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNhbj1zZWxmLmFzYW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVha19yZXBvcnRf
ZmlsZT1sZWFrX3JlcG9ydF9maWxlKQogICAgICAgICBydW5uZXIgPSBGaXJlZm94UnVubmVyKHBy
b2ZpbGU9cHJvZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9Y21k
WzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZGFyZ3M9Y21kWzE6XSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByb2Nlc3NfY2xhc3M9UHJvY2Vzc0hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvY2Vzc19hcmdzPXsicHJvY2Vzc091dHB1dExpbmUiOiBbb3V0cHV0X2hh
bmRsZXJdfSkKICAgICAgICAgaW5zdGFuY2UgPSBCcm93c2VySW5zdGFuY2Uoc2VsZi5sb2dnZXIs
IHJ1bm5lciwgbWFyaW9uZXR0ZV9wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvdXRwdXRfaGFuZGxlciwgbGVha19yZXBvcnRfZmlsZSkKIAogICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1ZygiU3RhcnRpbmcgRmlyZWZveCIpCi0gICAgICAgIHJ1bm5lci5zdGFydChkZWJ1
Z19hcmdzPWRlYnVnX2FyZ3MsIGludGVyYWN0aXZlPXNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5k
ZWJ1Z19pbmZvLmludGVyYWN0aXZlKQorICAgICAgICBydW5uZXIuc3RhcnQoZGVidWdfYXJncz1k
ZWJ1Z19hcmdzLAorICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RpdmU9c2VsZi5kZWJ1Z19p
bmZvIGFuZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmUpCisgICAgICAgIG91dHB1dF9oYW5k
bGVyLmFmdGVyX3Byb2Nlc3Nfc3RhcnQocnVubmVyLnByb2Nlc3NfaGFuZGxlci5waWQpCiAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJGaXJlZm94IFN0YXJ0ZWQiKQogCiAgICAgICAgIHJldHVy
biBpbnN0YW5jZQpAQCAtMzMwLDYgKzQwOCw3IEBAIGNsYXNzIFNpbmdsZUluc3RhbmNlTWFuYWdl
cihGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKToKICAgICAgICAgICAgIGlmIGluc3RhbmNlOgogICAg
ICAgICAgICAgICAgIGluc3RhbmNlLnN0b3AoZm9yY2UpCiAgICAgICAgICAgICAgICAgaW5zdGFu
Y2UuY2xlYW51cCgpCisgICAgICAgIHNlbGYuYmFzZV9wcm9maWxlLmNsZWFudXAoKQogCiAKIGNs
YXNzIFByZWxvYWRJbnN0YW5jZU1hbmFnZXIoRmlyZWZveEluc3RhbmNlTWFuYWdlcik6CkBAIC0z
NTIsMTUgKzQzMSwxNiBAQCBjbGFzcyBQcmVsb2FkSW5zdGFuY2VNYW5hZ2VyKEZpcmVmb3hJbnN0
YW5jZU1hbmFnZXIpOgogICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50CiAKICAgICBkZWYgdGVh
cmRvd24oc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBmb3IgaW5zdGFuY2UsIHNraXBfbWFy
aW9uZXR0ZSBpbiBbKHNlbGYucHJldmlvdXMsIEZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmN1cnJlbnQsIEZhbHNlKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLnBlbmRpbmcsIFRydWUpXToKKyAg
ICAgICAgZm9yIGluc3RhbmNlLCB1bnVzZWQgaW4gWyhzZWxmLnByZXZpb3VzLCBGYWxzZSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jdXJyZW50LCBGYWxzZSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5wZW5kaW5nLCBUcnVlKV06CiAg
ICAgICAgICAgICBpZiBpbnN0YW5jZToKLSAgICAgICAgICAgICAgICBpbnN0YW5jZS5zdG9wKGZv
cmNlLCBza2lwX21hcmlvbmV0dGU9c2tpcF9tYXJpb25ldHRlKQorICAgICAgICAgICAgICAgIGlu
c3RhbmNlLnN0b3AoZm9yY2UsIHVudXNlZCkKICAgICAgICAgICAgICAgICBpbnN0YW5jZS5jbGVh
bnVwKCkKKyAgICAgICAgc2VsZi5iYXNlX3Byb2ZpbGUuY2xlYW51cCgpCiAKIAotY2xhc3MgQnJv
d3Nlckluc3RhbmNlKG9iamVjdCk6CitjbGFzcyBCcm93c2VySW5zdGFuY2U6CiAgICAgc2h1dGRv
d25fdGltZW91dCA9IDcwCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBydW5uZXIs
IG1hcmlvbmV0dGVfcG9ydCwgb3V0cHV0X2hhbmRsZXIsIGxlYWtfcmVwb3J0X2ZpbGUpOgpAQCAt
MzcxLDI1ICs0NTEsMzUgQEAgY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9iamVjdCk6CiAgICAgICAg
IHNlbGYub3V0cHV0X2hhbmRsZXIgPSBvdXRwdXRfaGFuZGxlcgogICAgICAgICBzZWxmLmxlYWtf
cmVwb3J0X2ZpbGUgPSBsZWFrX3JlcG9ydF9maWxlCiAKLSAgICBkZWYgc3RvcChzZWxmLCBmb3Jj
ZT1GYWxzZSwgc2tpcF9tYXJpb25ldHRlPUZhbHNlKToKLSAgICAgICAgIiIiU3RvcCBGaXJlZm94
IiIiCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UsIHVudXNlZD1GYWxzZSk6CisgICAg
ICAgICIiIlN0b3AgRmlyZWZveAorCisgICAgICAgIDpwYXJhbSBmb3JjZTogU2lnbmFsIHRoZSBm
aXJlZm94IHByb2Nlc3Mgd2l0aG91dCB3YWl0aW5nIGZvciBhIGNsZWFuIHNodXRkb3duCisgICAg
ICAgIDpwYXJhbSB1bnVzZWQ6IFRoaXMgaW5zdGFuY2Ugd2FzIG5vdCB1c2VkIGZvciBydW5uaW5n
IHRlc3RzIGFuZCBzbworICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGhhdmUgYW4gYWN0
aXZlIG1hcmlvbmV0dGUgc2Vzc2lvbiBhbmQgZG9lc24ndCByZXF1aXJlCisgICAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCBwb3N0cHJvY2Vzc2luZy4KKyAgICAgICAgIiIiCiAgICAgICAgIGlz
X3J1bm5pbmcgPSBzZWxmLnJ1bm5lciBpcyBub3QgTm9uZSBhbmQgc2VsZi5ydW5uZXIuaXNfcnVu
bmluZygpCiAgICAgICAgIGlmIGlzX3J1bm5pbmc6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiU3RvcHBpbmcgRmlyZWZveCAlcyIgJSBzZWxmLnBpZCgpKQogICAgICAgICAgICAgc2h1
dGRvd25fbWV0aG9kcyA9IFsoVHJ1ZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci53YWl0KHNlbGYuc2h1
dGRvd25fdGltZW91dCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2Us
IGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHVEVSTSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWdu
YWwuU0lHS0lMTCkpXQotICAgICAgICAgICAgaWYgc2tpcF9tYXJpb25ldHRlOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChz
aWduYWwuU0lHVEVSTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zaHV0ZG93bl90aW1lb3V0KSldCisgICAgICAg
ICAgICBpZiBoYXNhdHRyKHNpZ25hbCwgIlNJR0tJTEwiKToKKyAgICAgICAgICAgICAgICBzaHV0
ZG93bl9tZXRob2RzLmFwcGVuZCgoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWdu
YWwuU0lHS0lMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNodXRkb3duX3RpbWVvdXQpKSkKKyAg
ICAgICAgICAgIGlmIHVudXNlZCBvciBmb3JjZToKKyAgICAgICAgICAgICAgICAjIERvbid0IHdh
aXQgZm9yIHRoZSBpbnN0YW5jZSB0byBjbG9zZSBpdHNlbGYKICAgICAgICAgICAgICAgICBzaHV0
ZG93bl9tZXRob2RzID0gc2h1dGRvd25fbWV0aG9kc1sxOl0KICAgICAgICAgICAgIHRyeToKICAg
ICAgICAgICAgICAgICAjIEZvciBGaXJlZm94IHdlIGFzc3VtZSB0aGF0IHN0b3BwaW5nIHRoZSBy
dW5uZXIgcHJvbXB0cyB0aGUKICAgICAgICAgICAgICAgICAjIGJyb3dzZXIgdG8gc2h1dCBkb3du
LiBUaGlzIGFsbG93cyB0aGUgbGVhayBsb2cgdG8gYmUgd3JpdHRlbgotICAgICAgICAgICAgICAg
IGZvciBjbGVhbiwgc3RvcF9mIGluIHNodXRkb3duX21ldGhvZHM6Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIG5vdCBmb3JjZSBvciBub3QgY2xlYW46Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXRjb2RlID0gc3RvcF9mKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJldGNvZGUgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygi
QnJvd3NlciBleGl0ZWQgd2l0aCByZXR1cm4gY29kZSAlcyIgJSByZXRjb2RlKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZm9yIGksIChjbGVhbiwg
c3RvcF9mKSBpbiBlbnVtZXJhdGUoc2h1dGRvd25fbWV0aG9kcyk6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTaHV0dGluZyBkb3duIGF0dGVtcHQgJWkvJWkiICUgKGkg
KyAxLCBsZW4oc2h1dGRvd25fbWV0aG9kcykpKQorICAgICAgICAgICAgICAgICAgICByZXRjb2Rl
ID0gc3RvcF9mKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgcmV0Y29kZSBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkJyb3dzZXIgZXhpdGVk
IHdpdGggcmV0dXJuIGNvZGUgJXMiICUgcmV0Y29kZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrCiAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAjIFRo
aXMgY2FuIGhhcHBlbiBvbiBXaW5kb3dzIGlmIHRoZSBwcm9jZXNzIGlzIGFscmVhZHkgZGVhZAog
ICAgICAgICAgICAgICAgIHBhc3MKQEAgLTM5Nyw4ICs0ODcsOCBAQCBjbGFzcyBCcm93c2VySW5z
dGFuY2Uob2JqZWN0KToKICAgICAgICAgICAgICMgVGhlIGJyb3dzZXIgd2FzIGFscmVhZHkgc3Rv
cHBlZCwgd2hpY2ggd2UgYXNzdW1lIHdhcyBhIGNyYXNoCiAgICAgICAgICAgICAjIFRPRE86IFNo
b3VsZCB3ZSBjaGVjayB0aGUgZXhpdCBjb2RlIGhlcmU/CiAgICAgICAgICAgICBjbGVhbiA9IEZh
bHNlCi0gICAgICAgIGlmIG5vdCBza2lwX21hcmlvbmV0dGU6Ci0gICAgICAgICAgICBzZWxmLm91
dHB1dF9oYW5kbGVyLmFmdGVyX3N0b3AoY2xlYW5fc2h1dGRvd249Y2xlYW4pCisgICAgICAgIGlm
IG5vdCB1bnVzZWQ6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nl
c3Nfc3RvcChjbGVhbl9zaHV0ZG93bj1jbGVhbikKIAogICAgIGRlZiBwaWQoc2VsZik6CiAgICAg
ICAgIGlmIHNlbGYucnVubmVyLnByb2Nlc3NfaGFuZGxlciBpcyBOb25lOgpAQCAtNDE1LDEyICs1
MDUsMTMgQEAgY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBG
YWxzZQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgICMgbW96cHJvZmlsZSBoYW5k
bGVzIGRlbGV0aW5nIHRoZSBwcm9maWxlIHdoZW4gdGhlIHJlZmNvdW50IHJlYWNoZXMgMAorICAg
ICAgICBzZWxmLnJ1bm5lci5jbGVhbnVwKCkKICAgICAgICAgc2VsZi5ydW5uZXIgPSBOb25lCiAK
IAotY2xhc3MgT3V0cHV0SGFuZGxlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIHN0YWNrZml4X2Rpciwgc3ltYm9sc19wYXRoLCBhc2FuKToKK2NsYXNzIEZpcmVmb3hP
dXRwdXRIYW5kbGVyKE91dHB1dEhhbmRsZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIGNvbW1hbmQsIHN5bWJvbHNfcGF0aD1Ob25lLCBzdGFja2ZpeF9kaXI9Tm9uZSwgYXNhbj1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZT1Ob25lKToKICAgICAgICAg
IiIiRmlsdGVyIGZvciBoYW5kbGluZyBGaXJlZm94IHByb2Nlc3Mgb3V0cHV0LgogCiAgICAgICAg
IFRoaXMgcmVjZWl2ZXMgRmlyZWZveCBwcm9jZXNzIG91dHB1dCBpbiB0aGUgX19jYWxsX18gZnVu
Y3Rpb24sIGRvZXMKQEAgLTQzMSw5ICs1MjIsNyBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVj
dCk6CiAgICAgICAgIG9mIHRoZSBvdXRwdXQgaGFuZGxlcnMuCiAgICAgICAgICIiIgogCi0gICAg
ICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCi0gICAgICAgICMgVGhlc2UgYXJlIGZpbGxlZCBpbiBh
ZnRlciBzZXR1cCgpIGlzIGNhbGxlZAotICAgICAgICBzZWxmLmluc3RhbmNlID0gTm9uZQorICAg
ICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgY29tbWFuZCkKIAogICAgICAgICBzZWxmLnN5
bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0aAogICAgICAgICBpZiBzdGFja2ZpeF9kaXI6CkBAIC00
NDUsMjEgKzUzNCwxOCBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBzZWxmLnN0YWNrX2ZpeGVyID0gTm9uZQogICAgICAgICBzZWxmLmFz
YW4gPSBhc2FuCisgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IGxlYWtfcmVwb3J0X2Zp
bGUKIAorICAgICAgICAjIFRoZXNlIGFyZSBmaWxsZWQgaW4gYWZ0ZXIgY29uZmlndXJlX2hhbmRs
ZXJzKCkgaXMgY2FsbGVkCiAgICAgICAgIHNlbGYubHNhbl9oYW5kbGVyID0gTm9uZQogICAgICAg
ICBzZWxmLm1vemxlYWtfYWxsb3dlZCA9IE5vbmUKICAgICAgICAgc2VsZi5tb3psZWFrX3RocmVz
aG9sZHMgPSBOb25lCiAgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRhdGEgPSB7fQogCi0gICAgICAg
IHNlbGYubGluZV9idWZmZXIgPSBbXQotICAgICAgICBzZWxmLnNldHVwX3JhbiA9IEZhbHNlCi0K
LSAgICBkZWYgc2V0dXAoc2VsZiwgaW5zdGFuY2U9Tm9uZSwgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwg
bHNhbl9kaXNhYmxlZD1GYWxzZSwKLSAgICAgICAgICAgICAgbHNhbl9hbGxvd2VkPU5vbmUsIGxz
YW5fbWF4X3N0YWNrX2RlcHRoPU5vbmUsIG1vemxlYWtfYWxsb3dlZD1Ob25lLAotICAgICAgICAg
ICAgICBtb3psZWFrX3RocmVzaG9sZHM9Tm9uZSwgKiprd2FyZ3MpOgorICAgIGRlZiBzdGFydChz
ZWxmLCBncm91cF9tZXRhZGF0YT1Ob25lLCBsc2FuX2Rpc2FibGVkPUZhbHNlLCBsc2FuX2FsbG93
ZWQ9Tm9uZSwKKyAgICAgICAgICAgICAgbHNhbl9tYXhfc3RhY2tfZGVwdGg9Tm9uZSwgbW96bGVh
a19hbGxvd2VkPU5vbmUsIG1vemxlYWtfdGhyZXNob2xkcz1Ob25lLAorICAgICAgICAgICAgICAq
Kmt3YXJncyk6CiAgICAgICAgICIiIkNvbmZpZ3VyZSB0aGUgb3V0cHV0IGhhbmRsZXIiIiIKLSAg
ICAgICAgc2VsZi5pbnN0YW5jZSA9IGluc3RhbmNlCi0KICAgICAgICAgaWYgZ3JvdXBfbWV0YWRh
dGEgaXMgTm9uZToKICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0ge30KICAgICAgICAgc2Vs
Zi5ncm91cF9tZXRhZGF0YSA9IGdyb3VwX21ldGFkYXRhCkBAIC00NzUsMTggKzU2MSwxMyBAQCBj
bGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFsbG93QWxsPWxzYW5fZGlzYWJsZWQpCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBzZWxmLmxzYW5faGFuZGxlciA9IE5vbmUKKyAgICAgICAgc3VwZXIo
KS5zdGFydCgpCiAKLSAgICAgICAgc2VsZi5zZXR1cF9yYW4gPSBUcnVlCi0KLSAgICAgICAgZm9y
IGxpbmUgaW4gc2VsZi5saW5lX2J1ZmZlcjoKLSAgICAgICAgICAgIHNlbGYuX19jYWxsX18obGlu
ZSkKLSAgICAgICAgc2VsZi5saW5lX2J1ZmZlciA9IFtdCi0KLSAgICBkZWYgYWZ0ZXJfc3RvcChz
ZWxmLCBjbGVhbl9zaHV0ZG93bj1UcnVlKToKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiUFJP
Q0VTUyBMRUFLUyAlcyIgJSBzZWxmLmluc3RhbmNlLmxlYWtfcmVwb3J0X2ZpbGUpCisgICAgZGVm
IGFmdGVyX3Byb2Nlc3Nfc3RvcChzZWxmLCBjbGVhbl9zaHV0ZG93bj1UcnVlKToKKyAgICAgICAg
c3VwZXIoKS5hZnRlcl9wcm9jZXNzX3N0b3AoY2xlYW5fc2h1dGRvd24pCiAgICAgICAgIGlmIHNl
bGYubHNhbl9oYW5kbGVyOgogICAgICAgICAgICAgc2VsZi5sc2FuX2hhbmRsZXIucHJvY2Vzcygp
Ci0gICAgICAgIGlmIHNlbGYuaW5zdGFuY2UubGVha19yZXBvcnRfZmlsZSBpcyBub3QgTm9uZToK
KyAgICAgICAgaWYgc2VsZi5sZWFrX3JlcG9ydF9maWxlIGlzIG5vdCBOb25lOgogICAgICAgICAg
ICAgaWYgbm90IGNsZWFuX3NodXRkb3duOgogICAgICAgICAgICAgICAgICMgSWYgd2UgZGlkbid0
IGdldCBhIGNsZWFuIHNodXRkb3duIHRoZXJlIHByb2JhYmx5IGlzbid0IGEgbGVhayByZXBvcnQg
ZmlsZQogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZpcmVmb3ggZGlkbid0
IGV4aXQgY2xlYW5seSwgbm90IHByb2Nlc3NpbmcgbGVhayBsb2dzIikKQEAgLTQ5NCwyMSArNTc1
LDI0IEBAIGNsYXNzIE91dHB1dEhhbmRsZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAjIFdl
IGhhdmUgdG8gaWdub3JlIG1pc3NpbmcgbGVha3MgaW4gdGhlIHRhYiBiZWNhdXNlIGl0IGNhbiBo
YXBwZW4gdGhhdCB0aGUKICAgICAgICAgICAgICAgICAjIGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVk
IGFuZCBpbiB0aGF0IGNhc2Ugd2UgZG9uJ3Qgd2FudCB0aGUgdGVzdCB0byBmYWlsLgogICAgICAg
ICAgICAgICAgICMgSWRlYWxseSB3ZSB3b3VsZCByZWNvcmQgd2hpY2ggY29udGVudCBwcm9jZXNz
IGNyYXNoZWQgYW5kIGp1c3Qgc2tpcCB0aG9zZS4KKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5pbmZvKCJQUk9DRVNTIExFQUtTICVzIiAlIHNlbGYubGVha19yZXBvcnRfZmlsZSkKICAgICAg
ICAgICAgICAgICBtb3psZWFrLnByb2Nlc3NfbGVha19sb2coCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuaW5zdGFuY2UubGVha19yZXBvcnRfZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5sZWFrX3JlcG9ydF9maWxlLAogICAgICAgICAgICAgICAgICAgICBsZWFrX3RocmVzaG9sZHM9
c2VsZi5tb3psZWFrX3RocmVzaG9sZHMsCiAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9taXNz
aW5nX2xlYWtzPVsidGFiIiwgImdtcGx1Z2luIl0sCiAgICAgICAgICAgICAgICAgICAgIGxvZz1z
ZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgc3RhY2tfZml4ZXI9c2VsZi5zdGFja19m
aXhlciwKICAgICAgICAgICAgICAgICAgICAgc2NvcGU9c2VsZi5ncm91cF9tZXRhZGF0YS5nZXQo
InNjb3BlIiksCiAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQ9c2VsZi5tb3psZWFrX2FsbG93
ZWQpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUp
OgorICAgICAgICAgICAgICAgIG9zLnVubGluayhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCiAKICAg
ICBkZWYgX19jYWxsX18oc2VsZiwgbGluZSk6CiAgICAgICAgICIiIldyaXRlIGEgbGluZSBvZiBv
dXRwdXQgZnJvbSB0aGUgZmlyZWZveCBwcm9jZXNzIHRvIHRoZSBsb2ciIiIKICAgICAgICAgaWYg
YiJHTGliLUdPYmplY3QtQ1JJVElDQUwiIGluIGxpbmU6CiAgICAgICAgICAgICByZXR1cm4KICAg
ICAgICAgaWYgbGluZToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnNldHVwX3JhbjoKKyAgICAg
ICAgICAgIGlmIHNlbGYuc3RhdGUgPCBPdXRwdXRIYW5kbGVyU3RhdGUuQUZURVJfSEFORExFUl9T
VEFSVDoKICAgICAgICAgICAgICAgICBzZWxmLmxpbmVfYnVmZmVyLmFwcGVuZChsaW5lKQogICAg
ICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgZGF0YSA9IGxpbmUuZGVjb2RlKCJ1dGY4
IiwgInJlcGxhY2UiKQpAQCAtNTE3LDE0ICs2MDEsMTIgQEAgY2xhc3MgT3V0cHV0SGFuZGxlcihv
YmplY3QpOgogICAgICAgICAgICAgaWYgc2VsZi5sc2FuX2hhbmRsZXI6CiAgICAgICAgICAgICAg
ICAgZGF0YSA9IHNlbGYubHNhbl9oYW5kbGVyLmxvZyhkYXRhKQogICAgICAgICAgICAgaWYgZGF0
YSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1
dChzZWxmLmluc3RhbmNlIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuaW5zdGFuY2UucnVubmVyLnByb2Nlc3NfaGFuZGxlciBhbmQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluc3RhbmNlLnJ1bm5lci5w
cm9jZXNzX2hhbmRsZXIucGlkLAorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nf
b3V0cHV0KHNlbGYucGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZD0iICIuam9pbihzZWxmLmluc3RhbmNlLnJ1bm5lci5jb21tYW5kKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29t
bWFuZCkpCiAKIAotY2xhc3MgUHJvZmlsZUNyZWF0b3Iob2JqZWN0KToKK2NsYXNzIFByb2ZpbGVD
cmVhdG9yOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZp
ZywgdGVzdF90eXBlLCBleHRyYV9wcmVmcywgZTEwcywKICAgICAgICAgICAgICAgICAgZW5hYmxl
X2Zpc3Npb24sIGJyb3dzZXJfY2hhbm5lbCwgYmluYXJ5LCBjZXJ0dXRpbF9iaW5hcnksIGNhX2Nl
cnRpZmljYXRlX3BhdGgpOgogICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgpAQCAtNTQwLDE4
ICs2MjIsMzggQEAgY2xhc3MgUHJvZmlsZUNyZWF0b3Iob2JqZWN0KToKICAgICAgICAgc2VsZi5j
ZXJ0dXRpbF9iaW5hcnkgPSBjZXJ0dXRpbF9iaW5hcnkKICAgICAgICAgc2VsZi5jYV9jZXJ0aWZp
Y2F0ZV9wYXRoID0gY2FfY2VydGlmaWNhdGVfcGF0aAogCi0gICAgZGVmIGNyZWF0ZShzZWxmKToK
KyAgICBkZWYgY3JlYXRlKHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgIiIiQ3JlYXRlIGEgRmly
ZWZveCBwcm9maWxlIGFuZCByZXR1cm4gdGhlIG1venByb2ZpbGUgUHJvZmlsZSBvYmplY3QgcG9p
bnRpbmcgYXQgdGhhdAotICAgICAgICBwcm9maWxlIiIiCisgICAgICAgIHByb2ZpbGUKKworICAg
ICAgICA6cGFyYW0ga3dhcmdzOiBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIGludG8gdGhl
IHByb2ZpbGUgY29uc3RydWN0b3IKKyAgICAgICAgIiIiCiAgICAgICAgIHByZWZlcmVuY2VzID0g
c2VsZi5fbG9hZF9wcmVmcygpCiAKLSAgICAgICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKHBy
ZWZlcmVuY2VzPXByZWZlcmVuY2VzKQorICAgICAgICBwcm9maWxlID0gRmlyZWZveFByb2ZpbGUo
cHJlZmVyZW5jZXM9cHJlZmVyZW5jZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXN0b3JlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2Fy
Z3MpCiAgICAgICAgIHNlbGYuX3NldF9yZXF1aXJlZF9wcmVmcyhwcm9maWxlKQogICAgICAgICBp
ZiBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxm
Ll9zZXR1cF9zc2wocHJvZmlsZSkKIAogICAgICAgICByZXR1cm4gcHJvZmlsZQogCisgICAgZGVm
IGNyZWF0ZV9iYXNlNjQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBwcm9maWxlID0gc2VsZi5j
cmVhdGUoKiprd2FyZ3MpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggaW8uQnl0ZXNJ
TygpIGFzIGJ1ZjoKKyAgICAgICAgICAgICAgICB3aXRoIHppcGZpbGUuWmlwRmlsZShidWYsICJ3
IiwgY29tcHJlc3Npb249emlwZmlsZS5aSVBfREVGTEFURUQpIGFzIHppcGY6CisgICAgICAgICAg
ICAgICAgICAgIGZvciBkaXJwYXRoLCBfLCBmaWxlbmFtZXMgaW4gb3Mud2Fsayhwcm9maWxlLnBy
b2ZpbGUpOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1l
czoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfcGF0aCA9IG9zLnBhdGguam9pbihk
aXJwYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3BhdGgg
PSBvcy5wYXRoLnJlbHBhdGgoc3JjX3BhdGgsIHByb2ZpbGUucHJvZmlsZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aXRoIG9wZW4oc3JjX3BhdGgsICJyYiIpIGFzIGY6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHppcGYud3JpdGVzdHIoZGVzdF9wYXRoLCBmLnJlYWQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0LmI2NGVuY29kZShidWYuZ2V0dmFsdWUo
KSkuZGVjb2RlKCJhc2NpaSIpLnN0cmlwKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IHByb2ZpbGUuY2xlYW51cCgpCisKICAgICBkZWYgX2xvYWRfcHJlZnMoc2VsZik6CiAgICAgICAg
IHByZWZzID0gUHJlZmVyZW5jZXMoKQogCkBAIC02NDEsMTQgKzc0MywxMyBAQCBjbGFzcyBQcm9m
aWxlQ3JlYXRvcihvYmplY3QpOgogCiAKICAgICAgICAgZW52W2Vudl92YXJdID0gKG9zLnBhdGgu
cGF0aHNlcC5qb2luKFtjZXJ0dXRpbF9kaXIsIGVudltlbnZfdmFyXV0pCi0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiBlbnZfdmFyIGluIGVudiBlbHNlIGNlcnR1dGlsX2RpcikuZW5jb2RlKAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSBv
ciAndXRmLTgnLCAncmVwbGFjZScpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBlbnZfdmFy
IGluIGVudiBlbHNlIGNlcnR1dGlsX2RpcikKIAogICAgICAgICBkZWYgY2VydHV0aWwoKmFyZ3Mp
OgogICAgICAgICAgICAgY21kID0gW3NlbGYuY2VydHV0aWxfYmluYXJ5XSArIGxpc3QoYXJncykK
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KCJjZXJ0dXRpbCIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX291dHB1
dChjbWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiAiLmpvaW4oY21kKSkKIApAQCAtNjcwLDcgKzc3MSw2IEBAIGNsYXNzIFByb2Zp
bGVDcmVhdG9yKG9iamVjdCk6CiAgICAgICAgIGNlcnR1dGlsKCItTCIsICItZCIsIGNlcnRfZGJf
cGF0aCkKIAogCi0KIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgIGluaXRfdGlt
ZW91dCA9IDcwCiAKQEAgLTY3OSw3ICs3NzksOCBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93
c2VyKToKICAgICAgICAgICAgICAgICAgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZh
bHNlLCBlbmFibGVfd2VicmVuZGVyPUZhbHNlLCBlbmFibGVfZmlzc2lvbj1GYWxzZSwKICAgICAg
ICAgICAgICAgICAgc3RhY2tmaXhfZGlyPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsIHRpbWVvdXRf
bXVsdGlwbGllcj1Ob25lLCBsZWFrX2NoZWNrPUZhbHNlLAogICAgICAgICAgICAgICAgICBhc2Fu
PUZhbHNlLCBzdHlsb190aHJlYWRzPTEsIGNoYW9zX21vZGVfZmxhZ3M9Tm9uZSwgY29uZmlnPU5v
bmUsCi0gICAgICAgICAgICAgICAgIGJyb3dzZXJfY2hhbm5lbD0ibmlnaHRseSIsIGhlYWRsZXNz
PU5vbmUsIHByZWxvYWRfYnJvd3Nlcj1GYWxzZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAg
ICBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLCBoZWFkbGVzcz1Ob25lLCBwcmVsb2FkX2Jyb3dz
ZXI9RmFsc2UsCisgICAgICAgICAgICAgICAgIHNwZWNpYWxwb3dlcnNfcGF0aD1Ob25lLCAqKmt3
YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogCiAgICAgICAg
IHNlbGYubG9nZ2VyID0gbG9nZ2VyCkBAIC02ODgsNiArNzg5LDcgQEAgY2xhc3MgRmlyZWZveEJy
b3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICBzZWxmLmluaXRfdGltZW91dCA9IHNlbGYuaW5p
dF90aW1lb3V0ICogdGltZW91dF9tdWx0aXBsaWVyCiAKICAgICAgICAgc2VsZi5pbnN0YW5jZSA9
IE5vbmUKKyAgICAgICAgc2VsZi5fc2V0dGluZ3MgPSBOb25lCiAKICAgICAgICAgc2VsZi5zdGFj
a2ZpeF9kaXIgPSBzdGFja2ZpeF9kaXIKICAgICAgICAgc2VsZi5zeW1ib2xzX3BhdGggPSBzeW1i
b2xzX3BhdGgKQEAgLTY5Niw2ICs3OTgsOCBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2Vy
KToKICAgICAgICAgc2VsZi5hc2FuID0gYXNhbgogICAgICAgICBzZWxmLmxlYWtfY2hlY2sgPSBs
ZWFrX2NoZWNrCiAKKyAgICAgICAgc2VsZi5zcGVjaWFscG93ZXJzX3BhdGggPSBzcGVjaWFscG93
ZXJzX3BhdGgKKwogICAgICAgICBwcm9maWxlX2NyZWF0b3IgPSBQcm9maWxlQ3JlYXRvcihsb2dn
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZzX3Jvb3Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZywKQEAgLTcy
NiwxOSArODMwLDE5IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGgs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz
YW4pCiAKLQogICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0ZXN0KToKLSAgICAgICAgcmV0dXJuIHsi
Y2hlY2tfbGVha3MiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIG5vdCB0ZXN0LmxlYWtzLAotICAgICAg
ICAgICAgICAgICJsc2FuX2Rpc2FibGVkIjogdGVzdC5sc2FuX2Rpc2FibGVkLAotICAgICAgICAg
ICAgICAgICJsc2FuX2FsbG93ZWQiOiB0ZXN0LmxzYW5fYWxsb3dlZCwKLSAgICAgICAgICAgICAg
ICAibHNhbl9tYXhfc3RhY2tfZGVwdGgiOiB0ZXN0LmxzYW5fbWF4X3N0YWNrX2RlcHRoLAotICAg
ICAgICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3Qu
bW96bGVha19hbGxvd2VkLAotICAgICAgICAgICAgICAgICJtb3psZWFrX3RocmVzaG9sZHMiOiBz
ZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha190aHJlc2hvbGR9CisgICAgICAgIHNlbGYu
X3NldHRpbmdzID0geyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVjayBhbmQgbm90IHRlc3Qu
bGVha3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJsc2FuX2Rpc2FibGVkIjogdGVzdC5s
c2FuX2Rpc2FibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibHNhbl9hbGxvd2VkIjog
dGVzdC5sc2FuX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJsc2FuX21heF9z
dGFja19kZXB0aCI6IHRlc3QubHNhbl9tYXhfc3RhY2tfZGVwdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96
bGVha19hbGxvd2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibW96bGVha190aHJlc2hv
bGRzIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1vemxlYWtfdGhyZXNob2xkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3BlY2lhbF9wb3dlcnMiOiBzZWxmLnNwZWNpYWxwb3dlcnNf
cGF0aCBhbmQgdGVzdC51cmxfYmFzZSA9PSAiL19tb3ppbGxhLyJ9CisgICAgICAgIHJldHVybiBz
ZWxmLl9zZXR0aW5ncwogCiAgICAgZGVmIHN0YXJ0KHNlbGYsIGdyb3VwX21ldGFkYXRhPU5vbmUs
ICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5pbnN0YW5jZSA9IHNlbGYuaW5zdGFuY2VfbWFuYWdl
ci5nZXQoKQotICAgICAgICBzZWxmLmluc3RhbmNlLm91dHB1dF9oYW5kbGVyLnNldHVwKHNlbGYu
aW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Jv
dXBfbWV0YWRhdGEsCisgICAgICAgIHNlbGYuaW5zdGFuY2Uub3V0cHV0X2hhbmRsZXIuc3RhcnQo
Z3JvdXBfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpCiAKICAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CkBAIC03NTYs
NyArODYwLDExIEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogCiAgICAgZGVmIGV4
ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIGFzc2VydCBzZWxmLmluc3RhbmNlIGlzIG5v
dCBOb25lCi0gICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0
Ijogc2VsZi5pbnN0YW5jZS5tYXJpb25ldHRlX3BvcnR9CisgICAgICAgIGV4dGVuc2lvbnMgPSBb
XQorICAgICAgICBpZiBzZWxmLl9zZXR0aW5ncy5nZXQoInNwZWNpYWxfcG93ZXJzIiwgRmFsc2Up
OgorICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoc2VsZi5zcGVjaWFscG93ZXJzX3BhdGgp
CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0Ijogc2Vs
Zi5pbnN0YW5jZS5tYXJpb25ldHRlX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZXh0ZW5zaW9ucyI6IGV4dGVuc2lvbnN9CiAKICAgICBkZWYgY2hlY2tfY3Jhc2goc2Vs
ZiwgcHJvY2VzcywgdGVzdCk6CiAgICAgICAgIGR1bXBfZGlyID0gb3MucGF0aC5qb2luKHNlbGYu
aW5zdGFuY2UucnVubmVyLnByb2ZpbGUucHJvZmlsZSwgIm1pbmlkdW1wcyIpCkBAIC03NzEsMyAr
ODc5LDM5IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBleGNlcHQg
SU9FcnJvcjoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkxvb2tpbmcgZm9yIGNy
YXNoIGR1bXAgZmlsZXMgZmFpbGVkIikKICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2Ns
YXNzIEZpcmVmb3hXZFNwZWNCcm93c2VyKE51bGxCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBsZWFrX2NoZWNrPUZhbHNlLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVy
KCkuX19pbml0X18obG9nZ2VyLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5sZWFrX2NoZWNrID0g
bGVha19jaGVjaworCisgICAgZGVmIHNldHRpbmdzKHNlbGYsIHRlc3QpOgorICAgICAgICByZXR1
cm4geyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVjayBhbmQgbm90IHRlc3QubGVha3MsCisg
ICAgICAgICAgICAgICAgImxzYW5fZGlzYWJsZWQiOiB0ZXN0LmxzYW5fZGlzYWJsZWQsCisgICAg
ICAgICAgICAgICAgImxzYW5fYWxsb3dlZCI6IHRlc3QubHNhbl9hbGxvd2VkLAorICAgICAgICAg
ICAgICAgICJsc2FuX21heF9zdGFja19kZXB0aCI6IHRlc3QubHNhbl9tYXhfc3RhY2tfZGVwdGgs
CisgICAgICAgICAgICAgICAgIm1vemxlYWtfYWxsb3dlZCI6IHNlbGYubGVha19jaGVjayBhbmQg
dGVzdC5tb3psZWFrX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgIm1vemxlYWtfdGhyZXNob2xk
cyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX3RocmVzaG9sZH0KKworCitjbGFz
cyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAgIG91dHB1dF9oYW5kbGVy
X2NscyA9IEZpcmVmb3hPdXRwdXRIYW5kbGVyCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBtYXJpb25ldHRlX3BvcnQ9MjgyOCwgYmluYXJ5PSJnZWNrb2RyaXZlciIsCisgICAgICAg
ICAgICAgICAgIGhvc3Q9IjEyNy4wLjAuMSIsIHBvcnQ9Tm9uZSwgZW52PU5vbmUsIGFyZ3M9Tm9u
ZSk6CisgICAgICAgIGlmIGVudiBpcyBOb25lOgorICAgICAgICAgICAgZW52ID0gb3MuZW52aXJv
bi5jb3B5KCkKKyAgICAgICAgZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCisgICAgICAgIFdl
YkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9aG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBvcnQ9cG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dj1lbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCisgICAg
ICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gbWFyaW9uZXR0ZV9wb3J0CisKKyAgICBkZWYgbWFr
ZV9jb21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAg
ICAgICAgICItLW1hcmlvbmV0dGUtcG9ydCIsIHN0cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCisg
ICAgICAgICAgICAgICAgIi0taG9zdCIsIHNlbGYuaG9zdCwKKyAgICAgICAgICAgICAgICAiLS1w
b3J0Iiwgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9pZS5weQppbmRleCA3OGMyMmI5MDlhY2YuLmM4NTFkYWYwYjYzYyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvaWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkKQEAgLTEsMTIgKzEsMTEgQEAKLWZy
b20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKLWZy
b20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKLWZy
b20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVy
Citmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJy
b3dzZXIsIGdldF90aW1lb3V0X211bHRpcGxpZXIgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1
dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9yaW50ZXJuZXRleHBsb3JlciBpbXBvcnQgSW50ZXJuZXRFeHBs
b3JlckRyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9
IHsicHJvZHVjdCI6ICJpZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNr
X2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJJbnRlcm5ldEV4cGxvcmVyQnJv
d3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIk51bGxCcm93c2VyIiwKICAgICAg
ICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ3ZHNwZWMiOiAiSW50ZXJuZXRFeHBsb3JlckRyaXZl
cldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJi
cm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhl
Y3V0b3Jfa3dhcmdzIiwKQEAgLTE4LDE4ICsxNywxNyBAQCBfX3dwdHJ1bm5lcl9fID0geyJwcm9k
dWN0IjogImllIiwKIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhr
d2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3Mo
bG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAg
IHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwK
ICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdz
Iil9CiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNo
ZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRl
c3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAg
ICAgICAgKiprd2FyZ3MpOgogICAgIG9wdGlvbnMgPSB7fQogICAgIG9wdGlvbnNbInJlcXVpcmVX
aW5kb3dGb2N1cyJdID0gVHJ1ZQogICAgIGNhcGFiaWxpdGllcyA9IHt9CiAgICAgY2FwYWJpbGl0
aWVzWyJzZTppZU9wdGlvbnMiXSA9IG9wdGlvbnMKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNl
X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3Mo
dGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKICAg
ICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBleGVjdXRv
cl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCiAgICAgcmV0dXJuIGV4ZWN1
dG9yX2t3YXJncwpAQCAtMzksMzUgKzM3LDMgQEAgZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgog
CiBkZWYgZW52X29wdGlvbnMoKToKICAgICByZXR1cm4geyJzdXBwb3J0c19kZWJ1Z2dlciI6IEZh
bHNlfQotCi1jbGFzcyBJbnRlcm5ldEV4cGxvcmVyQnJvd3NlcihCcm93c2VyKToKLSAgICB1c2Vk
X3BvcnRzID0gc2V0KCkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZl
cl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgotICAgICAgICBCcm93c2VyLl9faW5pdF9f
KHNlbGYsIGxvZ2dlcikKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBJbnRlcm5ldEV4cGxvcmVyRHJp
dmVyU2VydmVyKHNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdz
KQotICAgICAgICBzZWxmLndlYmRyaXZlcl9ob3N0ID0gImxvY2FsaG9zdCIKLSAgICAgICAgc2Vs
Zi53ZWJkcml2ZXJfcG9ydCA9IHNlbGYuc2VydmVyLnBvcnQKLQotICAgIGRlZiBzdGFydChzZWxm
LCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKLQotICAgIGRlZiBzdG9w
KHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3Jj
ZSkKLQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQK
LQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25s
eSBpbmRpY2F0ZXMgdGhlIHNlcnZlciBpcyBhbGl2ZSwKLSAgICAgICAgIyBhbmQgZG9lc24ndCBz
YXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgotICAgICAgICAjIGlz
IGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKLQotICAgIGRl
ZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBzZWxmLnN0b3AoKQotCi0gICAgZGVmIGV4ZWN1dG9y
X2Jyb3dzZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJp
dmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvb3BlcmEucHkKaW5kZXggODA1ZmVkZWU2MzZjLi5mM2EyOTI5Y2U4ZWIgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL29wZXJhLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CkBAIC0xLDQgKzEsNSBAQAog
ZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwor
ZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAuYmFzZSBp
bXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndlYmRy
aXZlcl9zZXJ2ZXIgaW1wb3J0IE9wZXJhRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGlt
cG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKQEAgLTksNyArMTAs
OCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yb3BlcmEgaW1wb3J0IE9wZXJhRHJpdmVyV2Rz
cGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0Ijog
Im9wZXJhIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0g
ICAgICAgICAgICAgICAgICJicm93c2VyIjogIk9wZXJhQnJvd3NlciIsCisgICAgICAgICAgICAg
ICAgICJicm93c2VyIjoge05vbmU6ICJPcGVyYUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJl
eGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVz
dEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiT3Bl
cmFEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMjQsMTggKzI2LDE3IEBAIGRlZiBjaGVja19h
cmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5
IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25m
aWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dh
cmdzWyJiaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3
ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3Mu
Z2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1
dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9f
ZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIGZyb20gc2VsZW5pdW0u
d2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCiAKLSAgICBleGVjdXRvcl9rd2Fy
Z3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVu
X2luZm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3
YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAg
ICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmlsaXRpZXMuT1BFUkEuaXRlbXMoKSkK
ICAgICBjYXBhYmlsaXRpZXMuc2V0ZGVmYXVsdCgib3BlcmFPcHRpb25zIiwge30pWyJwcmVmcyJd
ID0gewpAQCAtNzEsNyArNzIsNyBAQCBjbGFzcyBPcGVyYUJyb3dzZXIoQnJvd3Nlcik6CiAgICAg
IiIiCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9i
aW5hcnk9Im9wZXJhZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9u
ZSk6CisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKICAg
ICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBPcGVyYS4gIFRoZSBgYmlu
YXJ5YCBhcmd1bWVudCBnaXZlcwogICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZv
ciB0ZXN0aW5nLiIiIgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQppbmRleCBjYjJiMTc1
ZDRkZmIuLjIwYTU0NzVhY2YwYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL3NhZmFyaS5weQpAQCAtMSw0ICsxLDExIEBACitpbXBvcnQgb3MKK2ltcG9ydCBwbGlzdGxp
YgorZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorCitpbXBvcnQg
cHN1dGlsCisKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVx
dWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDEKIGZy
b20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZy
b20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTYWZhcmlEcml2ZXJTZXJ2ZXIKIGZyb20gLi5l
eGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwpA
QCAtMTAsNyArMTcsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2FmYXJpIGltcG9ydCBT
YWZhcmlEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18g
PSB7InByb2R1Y3QiOiAic2FmYXJpIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAi
Y2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIlNhZmFyaUJyb3dzZXIi
LAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiU2FmYXJpQnJvd3NlciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0
aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0
IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAid2RzcGVjIjogIlNhZmFyaURyaXZlcldkc3BlY0V4ZWN1dG9yIiwKQEAgLTI2LDE1ICsz
NCwxNCBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdz
LCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwg
cnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9n
Z2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJl
dHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKLSAg
ICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9
CisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJn
cyIpLAorICAgICAgICAgICAgImtpbGxfc2FmYXJpIjoga3dhcmdzLmdldCgia2lsbF9zYWZhcmki
LCBGYWxzZSl9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCitkZWYgZXhl
Y3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5m
b19kYXRhLCAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJn
cykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBl
eGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0ge30KICAgICBpZiB0ZXN0X3R5cGUgPT0g
InRlc3RoYXJuZXNzIjoKQEAgLTU4LDE1ICs2NSw2MCBAQCBjbGFzcyBTYWZhcmlCcm93c2VyKEJy
b3dzZXIpOgogICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5TYWZhcmlEcml2ZXJTZXJ2ZXJgYC4K
ICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5h
cnksIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIs
IHdlYmRyaXZlcl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUsIGtpbGxfc2FmYXJpPUZhbHNl
LCAqKmt3YXJncyk6CiAgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2Yg
U2FmYXJpLiAgVGhlIGB3ZWJkcml2ZXJfYmluYXJ5YAogICAgICAgICBhcmd1bWVudCBnaXZlcyB0
aGUgV2ViRHJpdmVyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIChUaGUgYnJvd3NlcgogICAg
ICAgICBiaW5hcnkgbG9jYXRpb24gY2Fubm90IGJlIHNwZWNpZmllZCwgYXMgU2FmYXJpIGFuZCBT
YWZhcmlEcml2ZXIgYXJlCi0gICAgICAgIGNvdXBsZWQuKSIiIgorICAgICAgICBjb3VwbGVkLikg
SWYgYGtpbGxfc2FmYXJpYCBpcyBUcnVlLCB0aGVuIGBCcm93c2VyLnN0b3BgIHdpbGwgc3RvcCBT
YWZhcmkuIiIiCiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAg
ICBzZWxmLnNlcnZlciA9IFNhZmFyaURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVy
X2FyZ3MpCisgICAgICAgIGlmICIvIiBub3QgaW4gd2ViZHJpdmVyX2JpbmFyeToKKyAgICAgICAg
ICAgIHdkX3BhdGggPSBmaW5kX2V4ZWN1dGFibGUod2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHdkX3BhdGggPSB3ZWJkcml2ZXJfYmluYXJ5CisgICAgICAgIHNl
bGYuc2FmYXJpX3BhdGggPSBzZWxmLl9maW5kQXNzb2NpYXRlZFNhZmFyaUV4ZWN1dGFibGUod2Rf
cGF0aCkKKworICAgICAgICBsb2dnZXIuZGVidWcoIldlYkRyaXZlciBleGVjdXRhYmxlIHBhdGg6
ICVzIiAlIHdkX3BhdGgpCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiU2FmYXJpIGV4ZWN1dGFibGUg
cGF0aDogJXMiICUgc2VsZi5zYWZhcmlfcGF0aCkKKworICAgICAgICBzZWxmLmtpbGxfc2FmYXJp
ID0ga2lsbF9zYWZhcmkKKworICAgIGRlZiBfZmluZEFzc29jaWF0ZWRTYWZhcmlFeGVjdXRhYmxl
KHNlbGYsIHdkX3BhdGgpOgorICAgICAgICBidW5kbGVfcGF0aHMgPSBbCisgICAgICAgICAgICBv
cy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHdkX3BhdGgpLCAiLi4iLCAiLi4iKSwgICMgYnVu
ZGxlZCBTYWZhcmkgKGUuZy4gU1RQKQorICAgICAgICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGgu
ZGlybmFtZSh3ZF9wYXRoKSwgIlNhZmFyaS5hcHAiKSwgICMgbG9jYWwgU2FmYXJpIGJ1aWxkCisg
ICAgICAgICAgICAiL0FwcGxpY2F0aW9ucy9TYWZhcmkuYXBwIiwgICMgc3lzdGVtIFNhZmFyaQor
ICAgICAgICBdCisKKyAgICAgICAgZm9yIGJ1bmRsZV9wYXRoIGluIGJ1bmRsZV9wYXRoczoKKyAg
ICAgICAgICAgIGluZm9fcGF0aCA9IG9zLnBhdGguam9pbihidW5kbGVfcGF0aCwgIkNvbnRlbnRz
IiwgIkluZm8ucGxpc3QiKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGluZm9f
cGF0aCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgd2l0aCBvcGVu
KGluZm9fcGF0aCwgInJiIikgYXMgZnA6CisgICAgICAgICAgICAgICAgaW5mbyA9IHBsaXN0bGli
LmxvYWQoZnApCisKKyAgICAgICAgICAgICMgY2hlY2sgd2UgaGF2ZSBhIFNhZmFyaSBmYW1pbHkg
YnVuZGxlCisgICAgICAgICAgICBpZiAiQ0ZCdW5kbGVJZGVudGlmaWVyIiBub3QgaW4gaW5mbzoK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWRlbnQgPSBpbmZvWyJDRkJ1
bmRsZUlkZW50aWZpZXIiXQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaWRlbnQsIHN0
cikgb3Igbm90IGlkZW50LnN0YXJ0c3dpdGgoImNvbS5hcHBsZS5TYWZhcmkiKToKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAjIGdldCB0aGUgZXhlY3V0YWJsZSBuYW1l
CisgICAgICAgICAgICBpZiAiQ0ZCdW5kbGVFeGVjdXRhYmxlIiBub3QgaW4gaW5mbzoKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXhlID0gaW5mb1siQ0ZCdW5kbGVFeGVj
dXRhYmxlIl0KKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4ZSwgc3RyKToKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBleGVfcGF0aCA9IG9zLnBhdGguam9p
bihidW5kbGVfcGF0aCwgIkNvbnRlbnRzIiwgIk1hY09TIiwgZXhlKQorICAgICAgICAgICAgaWYg
bm90IG9zLnBhdGguaXNmaWxlKGV4ZV9wYXRoKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQor
CisgICAgICAgICAgICByZXR1cm4gZXhlX3BhdGgKIAogICAgIGRlZiBzdGFydChzZWxmLCAqKmt3
YXJncyk6CiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQpAQCAtNzQsNiAr
MTI2LDIwIEBAIGNsYXNzIFNhZmFyaUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgZGVmIHN0b3Aoc2Vs
ZiwgZm9yY2U9RmFsc2UpOgogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQog
CisgICAgICAgIGlmIHNlbGYua2lsbF9zYWZhcmk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiR29pbmcgdG8gc3RvcCBTYWZhcmkiKQorICAgICAgICAgICAgZm9yIHByb2MgaW4gcHN1
dGlsLnByb2Nlc3NfaXRlcihhdHRycz1bImV4ZSJdKToKKyAgICAgICAgICAgICAgICBpZiBwcm9j
LmluZm9bImV4ZSJdIGlzIG5vdCBOb25lIGFuZCBvcy5wYXRoLnNhbWVmaWxlKHByb2MuaW5mb1si
ZXhlIl0sIHNlbGYuc2FmYXJpX3BhdGgpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiU3RvcHBpbmcgU2FmYXJpICVzIiAlIHByb2MucGlkKQorICAgICAgICAgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLnRlcm1pbmF0ZSgpCisgICAg
ICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
Yy53YWl0KDEwKQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHBzdXRpbC5UaW1lb3V0
RXhwaXJlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLmtpbGwoKQorICAgICAg
ICAgICAgICAgICAgICBleGNlcHQgcHN1dGlsLk5vU3VjaFByb2Nlc3M6CisgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNzCisKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZXJ2ZXIucGlkCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Uu
cHkKaW5kZXggYzU3YWM5NDJlZDRlLi40OTEzMTk5MTc1OTkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3Nh
dWNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5CkBAIC0xMiw3ICsxMiw3IEBAIGltcG9ydCB0aW1l
CiAKIGltcG9ydCByZXF1ZXN0cwogCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFz
IFN0cmluZ0lPCitmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIC5iYXNlIGltcG9ydCBC
cm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9tIC5iYXNlIGltcG9ydCBn
ZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCkBAIC05NSwxNiArOTUsMTUgQEAg
ZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInNhdWNl
X2tleSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUs
IHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHNhdWNlX2NvbmZpZyA9IGdl
dF9zYXVjZV9jb25maWcoKiprd2FyZ3MpCiAKICAgICByZXR1cm4geyJzYXVjZV9jb25maWciOiBz
YXVjZV9jb25maWd9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9l
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
ICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAKICAg
ICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gZ2V0X2NhcGFiaWxpdGllcygqKmt3
YXJncykKIApAQCAtMjI4LDcgKzIyNyw3IEBAIGNsYXNzIFNhdWNlRXhjZXB0aW9uKEV4Y2VwdGlv
bik6CiBjbGFzcyBTYXVjZUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0ID0gMzAw
CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBzYXVjZV9jb25maWcpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHNhdWNlX2NvbmZpZywgKiprd2FyZ3MpOgogICAgICAg
ICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAgICAgICAgc2VsZi5zYXVjZV9jb25m
aWcgPSBzYXVjZV9jb25maWcKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9z
ZXJ2by5weQppbmRleCBiOTQ3NjU0MGFjN2MuLjE3OTFjMWRhMjcwNiAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvc2Vydm8ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKQEAgLTMzLDcgKzMzLDcgQEAgZGVmIGNo
ZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgImJpbmFyeSIpCiAK
IAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAq
Kmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZv
X2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7CiAgICAgICAgICJiaW5hcnki
OiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdf
aW5mbyJdLApAQCAtNDMsMTAgKzQzLDkgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwg
cnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZp
cm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgot
ICAgIHJ2ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwgKiprd2FyZ3MpCisgICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRl
c3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQogICAgIHJ2WyJwYXVzZV9h
ZnRlcl90ZXN0Il0gPSBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXQogICAgIGlmIHRlc3RfdHlw
ZSA9PSAid2RzcGVjIjoKICAgICAgICAgcnZbImNhcGFiaWxpdGllcyJdID0ge30KQEAgLTcxLDcg
KzcwLDcgQEAgZGVmIHVwZGF0ZV9wcm9wZXJ0aWVzKCk6CiAKIGNsYXNzIFNlcnZvQnJvd3NlcihO
dWxsQnJvd3Nlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBkZWJ1
Z19pbmZvPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsCi0gICAgICAgICAgICAgICAgIHVzZXJfc3R5
bGVzaGVldHM9Tm9uZSwgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lKToKKyAgICAgICAgICAgICAg
ICAgdXNlcl9zdHlsZXNoZWV0cz1Ob25lLCBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUsICoqa3dh
cmdzKToKICAgICAgICAgTnVsbEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAg
ICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19p
bmZvCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVy
LnB5CmluZGV4IDQzNzk0ZTQxNzA2ZC4uOWE2YTFhNDAyYjM2IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9z
ZXJ2b2RyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQpAQCAtNiwxMiArNiwxNiBA
QCBmcm9tIG1venByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAKIGZyb20gdG9vbHMuc2Vy
dmUuc2VydmUgaW1wb3J0IG1ha2VfaG9zdHNfZmlsZQogCi1mcm9tIC5iYXNlIGltcG9ydCBCcm93
c2VyLCByZXF1aXJlX2FyZywgZ2V0X2ZyZWVfcG9ydCwgYnJvd3Nlcl9jb21tYW5kLCBFeGVjdXRv
ckJyb3dzZXIKK2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAorICAgICAgICAgICAgICAgICAg
IEV4ZWN1dG9yQnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICBPdXRwdXRIYW5kbGVyLAorICAg
ICAgICAgICAgICAgICAgIHJlcXVpcmVfYXJnLAorICAgICAgICAgICAgICAgICAgIGdldF9mcmVl
X3BvcnQsCisgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jb21tYW5kKQogZnJvbSAuYmFzZSBp
bXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1
dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2Vydm9kcml2ZXIgaW1wb3J0IChTZXJ2b1dlYkRyaXZlclRl
c3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNlcnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBu
b3FhOiBGNDAxCi1mcm9tIC4ucHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYKIAogaGVyZSA9IG9zLnBh
dGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMzYsNyArNDAsNyBAQCBkZWYgY2hlY2tfYXJncygq
Kmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikKIAogCi1kZWYgYnJv
d3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToK
K2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29u
ZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJpbmFyeSI6IGt3YXJnc1si
YmluYXJ5Il0sCiAgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1siYmluYXJ5X2FyZ3MiXSwK
QEAgLTQ3LDkgKzUxLDggQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9f
ZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3Mo
dGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncyk6Ci0gICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLCAqKmt3YXJncykKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0
X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICBy
diA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVu
X2luZm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgcmV0dXJuIHJ2CiAKIApAQCAtNzcsNyArODAsOCBA
QCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0
ID0gMzAwICAjIExhcmdlIHRpbWVvdXQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIGJvb3RpbmcgYW4g
QW5kcm9pZCBlbXVsYXRvcgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5
LCBkZWJ1Z19pbmZvPU5vbmUsIHdlYmRyaXZlcl9ob3N0PSIxMjcuMC4wLjEiLAotICAgICAgICAg
ICAgICAgICBzZXJ2ZXJfY29uZmlnPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsIHVzZXJfc3R5bGVz
aGVldHM9Tm9uZSwgaGVhZGxlc3M9Tm9uZSk6CisgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25m
aWc9Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgdXNlcl9zdHlsZXNo
ZWV0cz1Ob25lLCBoZWFkbGVzcz1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19p
bml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAg
ICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3Mgb3IgW10KQEAgLTkxLDYgKzk1LDcgQEAg
Y2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnVzZXJf
c3R5bGVzaGVldHMgPSB1c2VyX3N0eWxlc2hlZXRzIGlmIHVzZXJfc3R5bGVzaGVldHMgZWxzZSBb
XQogICAgICAgICBzZWxmLmhlYWRsZXNzID0gaGVhZGxlc3MgaWYgaGVhZGxlc3MgZWxzZSBGYWxz
ZQogICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBzZXJ2ZXJfY29uZmlnLnNzbF9j
b25maWdbImNhX2NlcnRfcGF0aCJdCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIgPSBOb25l
CiAKICAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLndlYmRyaXZl
cl9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCkBAIC0xMjksMTMgKzEzNCwxNiBAQCBjbGFzcyBTZXJ2
b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuY29tbWFuZCA9IGRlYnVn
X2FyZ3MgKyBzZWxmLmNvbW1hbmQKIAogICAgICAgICBpZiBub3Qgc2VsZi5kZWJ1Z19pbmZvIG9y
IG5vdCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6CisgICAgICAgICAgICBzZWxmLm91dHB1
dF9oYW5kbGVyID0gT3V0cHV0SGFuZGxlcihzZWxmLmxvZ2dlciwgc2VsZi5jb21tYW5kKQogICAg
ICAgICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9W3NlbGYu
b25fb3V0cHV0XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1j
YXN0X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlT3V0cHV0
PUZhbHNlKQogICAgICAgICAgICAgc2VsZi5wcm9jLnJ1bigpCisgICAgICAgICAgICBzZWxmLm91
dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RhcnQoc2VsZi5wcm9jLnBpZCkKKyAgICAgICAg
ICAgIHNlbGYub3V0cHV0X2hhbmRsZXIuc3RhcnQoKQogICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNvbW1hbmQsIGVudj1jYXN0X2Vu
dihlbnYpKQorICAgICAgICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNv
bW1hbmQsIGVudj1lbnYpCiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNlcnZvIFN0YXJ0
ZWQiKQogCkBAIC0xNDcsNiArMTU1LDggQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJy
b3dzZXIpOgogICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgIyBU
aGlzIGNhbiBoYXBwZW4gb24gV2luZG93cyBpZiB0aGUgcHJvY2VzcyBpcyBhbHJlYWR5IGRlYWQK
ICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHNlbGYub3V0cHV0X2hhbmRsZXIgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nf
c3RvcCgpCiAKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLnByb2MgaXMgTm9u
ZToKQEAgLTE1NywxMiArMTY3LDYgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dz
ZXIpOgogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4g
Tm9uZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgIiIiV3JpdGUg
YSBsaW5lIG9mIG91dHB1dCBmcm9tIHRoZSBwcm9jZXNzIHRvIHRoZSBsb2ciIiIKLSAgICAgICAg
c2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFu
ZCkpCi0KICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnByb2Mu
cG9sbCgpIGlzIE5vbmUKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Vi
a2l0LnB5CmluZGV4IGRhOTNjZjE2NDM5OS4uYWQyNDc3MWFjOWNlIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy93ZWJraXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CkBAIC0xLDUgKzEsNSBAQAogZnJvbSAu
YmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwotZnJvbSAu
YmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgY2VydGlmaWNhdGVfZG9tYWluX2xp
c3QgICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIsIGdldF90aW1l
b3V0X211bHRpcGxpZXIsIGNlcnRpZmljYXRlX2RvbWFpbl9saXN0ICAjIG5vcWE6IEY0MDEKIGZy
b20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3
YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZl
clRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6
IEY0MDEKQEAgLTEwLDcgKzEwLDggQEAgZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFdl
YktpdERyaXZlclNlcnZlcgogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIndlYmtpdCIs
CiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAg
ICAgICAgICAiYnJvd3NlciI6ICJXZWJLaXRCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImJy
b3dzZXIiOiB7Tm9uZTogIldlYktpdEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJicm93c2Vy
X2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6
IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0
b3IiLApAQCAtMjksNyArMzAsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVx
dWlyZV9hcmcoa3dhcmdzLCAid2Via2l0X3BvcnQiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0
ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAg
IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAg
ICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CkBAIC01
NCwxMiArNTUsMTEgQEAgZGVmIGNhcGFiaWxpdGllc19mb3JfcG9ydChzZXJ2ZXJfY29uZmlnLCAq
Kmt3YXJncyk6CiAgICAgcmV0dXJuIHt9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhl
Y3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5m
b19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dh
cmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1
bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0
b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKipr
d2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCi0g
ICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllc19mb3JfcG9y
dChzZXJ2ZXJfY29uZmlnLAorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBj
YXBhYmlsaXRpZXNfZm9yX3BvcnQodGVzdF9lbnZpcm9ubWVudC5jb25maWcsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJn
cykKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKQEAgLTgyLDcgKzgyLDcgQEAgY2xhc3Mg
V2ViS2l0QnJvd3NlcihCcm93c2VyKToKICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lLAotICAgICAgICAgICAgICAg
ICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9
Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikK
ICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBXZWJL
aXREcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LApkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvY29uZmlnLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvY29uZmlnLnB5CmluZGV4IGQ0NmJlYjhlNzFkYi4uOGE5YmRiZjczMGQ2
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9jb25maWcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5CkBAIC0xLDExICsxLDEyIEBACi1mcm9t
IHNpeC5tb3Zlcy5jb25maWdwYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQYXJzZXIKK2Zyb20gY29u
ZmlncGFyc2VyIGltcG9ydCBDb25maWdQYXJzZXIKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJv
bSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnks
IERpY3QKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAotY2xhc3MgQ29uZmln
RGljdChkaWN0KToKK2NsYXNzIENvbmZpZ0RpY3QoRGljdFtzdHIsIEFueV0pOgogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBiYXNlX3BhdGgsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYu
YmFzZV9wYXRoID0gYmFzZV9wYXRoCiAgICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgKmFyZ3Ms
ICoqa3dhcmdzKQpAQCAtMjAsNyArMjEsNyBAQCBjbGFzcyBDb25maWdEaWN0KGRpY3QpOgogZGVm
IHJlYWQoY29uZmlnX3BhdGgpOgogICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKGNv
bmZpZ19wYXRoKQogICAgIGNvbmZpZ19yb290ID0gb3MucGF0aC5kaXJuYW1lKGNvbmZpZ19wYXRo
KQotICAgIHBhcnNlciA9IFNhZmVDb25maWdQYXJzZXIoKQorICAgIHBhcnNlciA9IENvbmZpZ1Bh
cnNlcigpCiAgICAgc3VjY2VzcyA9IHBhcnNlci5yZWFkKGNvbmZpZ19wYXRoKQogICAgIGFzc2Vy
dCBjb25maWdfcGF0aCBpbiBzdWNjZXNzLCBzdWNjZXNzCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZW52aXJvbm1lbnQucHkKaW5kZXggMjUyN2QyNmQzOTFkLi4zZmU5NzE0NTZlZDYgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Vudmlyb25tZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CkBAIC0xLDE1ICsxLDE0IEBACiBp
bXBvcnQganNvbgogaW1wb3J0IG9zCi1pbXBvcnQgbXVsdGlwcm9jZXNzaW5nCiBpbXBvcnQgc2ln
bmFsCiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotZnJvbSBzaXggaW1w
b3J0IGl0ZXJpdGVtcwogCi1mcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1bHRfbG9nZ2VyLCBo
YW5kbGVycywgcHJveHkKK2Zyb20gbW96bG9nIGltcG9ydCBnZXRfZGVmYXVsdF9sb2dnZXIsIGhh
bmRsZXJzCiAKLWZyb20gLndwdGxvZ2dpbmcgaW1wb3J0IExvZ0xldmVsUmV3cml0ZXIKK2Zyb20g
LiBpbXBvcnQgbXBjb250ZXh0Citmcm9tIC53cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3Jp
dGVyLCBRdWV1ZUhhbmRsZXIsIExvZ1F1ZXVlVGhyZWFkCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5h
bWUoX19maWxlX18pCiByZXBvX3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhl
cmUsIG9zLnBhcmRpciwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQpAQCAtNTAsMjQgKzQ5LDU4IEBA
IGNsYXNzIFRlc3RFbnZpcm9ubWVudEVycm9yKEV4Y2VwdGlvbik6CiAgICAgcGFzcwogCiAKK2Rl
ZiBnZXRfc2VydmVyX2xvZ2dlcigpOgorICAgIGxvZ2dlciA9IGdldF9kZWZhdWx0X2xvZ2dlcihj
b21wb25lbnQ9IndwdHNlcnZlIikKKyAgICBsb2dfZmlsdGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxG
aWx0ZXIobGFtYmRhIHg6IHgsICJpbmZvIikKKyAgICAjIERvd25ncmFkZSBlcnJvcnMgdG8gd2Fy
bmluZ3MgZm9yIHRoZSBzZXJ2ZXIKKyAgICBsb2dfZmlsdGVyID0gTG9nTGV2ZWxSZXdyaXRlcihs
b2dfZmlsdGVyLCBbImVycm9yIl0sICJ3YXJuaW5nIikKKyAgICBsb2dnZXIuY29tcG9uZW50X2Zp
bHRlciA9IGxvZ19maWx0ZXIKKyAgICByZXR1cm4gbG9nZ2VyCisKKworY2xhc3MgUHJveHlMb2dn
aW5nQ29udGV4dDoKKyAgICAiIiJDb250ZXh0IG1hbmFnZXIgb2JqZWN0IHRoYXQgaGFuZGxlcyBz
ZXR1cCBhbmQgdGVhcmRvd24gb2YgYSBsb2cgcXVldWUKKyAgICBmb3IgaGFuZGxpbmcgbG9nZ2lu
ZyBtZXNzYWdlcyBmcm9tIHdwdHNlcnZlLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlcik6CisgICAgICAgIG1wX2NvbnRleHQgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAg
ICAgICBzZWxmLmxvZ19xdWV1ZSA9IG1wX2NvbnRleHQuUXVldWUoKQorICAgICAgICBzZWxmLmxv
Z2dpbmdfdGhyZWFkID0gTG9nUXVldWVUaHJlYWQoc2VsZi5sb2dfcXVldWUsIGxvZ2dlcikKKyAg
ICAgICAgc2VsZi5sb2dnZXJfaGFuZGxlciA9IFF1ZXVlSGFuZGxlcihzZWxmLmxvZ19xdWV1ZSkK
KworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQu
c3RhcnQoKQorICAgICAgICByZXR1cm4gc2VsZi5sb2dnZXJfaGFuZGxlcgorCisgICAgZGVmIF9f
ZXhpdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgc2VsZi5sb2dfcXVldWUucHV0KE5vbmUpCisg
ICAgICAgICMgV2FpdCBmb3IgdGhyZWFkIHRvIHNodXQgZG93biBidXQgbm90IGZvciB0b28gbG9u
ZyBzaW5jZSBpdCdzIGEgZGFlbW9uCisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuam9pbigx
KQorCisKIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICIiIkNvbnRleHQgbWFu
YWdlciB0aGF0IG93bnMgdGhlIHRlc3QgZW52aXJvbm1lbnQgaS5lLiB0aGUgaHR0cCBhbmQKICAg
ICB3ZWJzb2NrZXRzIHNlcnZlcnMiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRo
cywgdGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIsCi0gICAgICAgICAgICAgICAgIHBhdXNl
X2FmdGVyX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMs
CisgICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rlc3QsIGRlYnVnX3Rlc3QsIGRlYnVnX2lu
Zm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCiAgICAgICAgICAgICAgICAgIGVu
YWJsZV9xdWljPUZhbHNlLCBtb2pvanNfcGF0aD1Ob25lKToKKwogICAgICAgICBzZWxmLnRlc3Rf
cGF0aHMgPSB0ZXN0X3BhdGhzCiAgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQogICAgICAgICBz
ZWxmLmNvbmZpZ19jdHggPSBOb25lCiAgICAgICAgIHNlbGYuY29uZmlnID0gTm9uZQorICAgICAg
ICBzZWxmLnNlcnZlcl9sb2dnZXIgPSBnZXRfc2VydmVyX2xvZ2dlcigpCisgICAgICAgIHNlbGYu
c2VydmVyX2xvZ2dpbmdfY3R4ID0gUHJveHlMb2dnaW5nQ29udGV4dChzZWxmLnNlcnZlcl9sb2dn
ZXIpCiAgICAgICAgIHNlbGYudGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIgPSB0ZXN0aGFy
bmVzc190aW1lb3V0X211bHRpcGxlcgogICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBw
YXVzZV9hZnRlcl90ZXN0CisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKICAg
ICAgICAgc2VsZi50ZXN0X3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3AoInRlc3Rfc2VydmVyX3Bv
cnQiLCBUcnVlKQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCiAgICAgICAg
IHNlbGYub3B0aW9ucyA9IG9wdGlvbnMgaWYgb3B0aW9ucyBpcyBub3QgTm9uZSBlbHNlIHt9CiAK
LSAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyID0gbXVsdGlwcm9jZXNzaW5nLk1hbmFnZXIoKQot
ICAgICAgICBzZWxmLnN0YXNoID0gc2VydmUuc3Rhc2guU3Rhc2hTZXJ2ZXIoKQorICAgICAgICBt
cF9jb250ZXh0ID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2VsZi5jYWNoZV9t
YW5hZ2VyID0gbXBfY29udGV4dC5NYW5hZ2VyKCkKKyAgICAgICAgc2VsZi5zdGFzaCA9IHNlcnZl
LnN0YXNoLlN0YXNoU2VydmVyKG1wX2NvbnRleHQ9bXBfY29udGV4dCkKICAgICAgICAgc2VsZi5l
bnZfZXh0cmFzID0gZW52X2V4dHJhcwogICAgICAgICBzZWxmLmVudl9leHRyYXNfY21zID0gTm9u
ZQogICAgICAgICBzZWxmLnNzbF9jb25maWcgPSBzc2xfY29uZmlnCkBAIC03NSw2ICsxMDgsNyBA
QCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgc2VsZi5tb2pvanNfcGF0
aCA9IG1vam9qc19wYXRoCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBzZXJ2
ZXJfbG9nX2hhbmRsZXIgPSBzZWxmLnNlcnZlcl9sb2dnaW5nX2N0eC5fX2VudGVyX18oKQogICAg
ICAgICBzZWxmLmNvbmZpZ19jdHggPSBzZWxmLmJ1aWxkX2NvbmZpZygpCiAKICAgICAgICAgc2Vs
Zi5jb25maWcgPSBzZWxmLmNvbmZpZ19jdHguX19lbnRlcl9fKCkKQEAgLTgyLDggKzExNiw2IEBA
IGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICBzZWxmLnN0YXNoLl9fZW50
ZXJfXygpCiAgICAgICAgIHNlbGYuY2FjaGVfbWFuYWdlci5fX2VudGVyX18oKQogCi0gICAgICAg
IHNlbGYuc2V0dXBfc2VydmVyX2xvZ2dpbmcoKQotCiAgICAgICAgIGFzc2VydCBzZWxmLmVudl9l
eHRyYXNfY21zIGlzIE5vbmUsICgKICAgICAgICAgICAgICJBIFRlc3RFbnZpcm9ubWVudCBvYmpl
Y3QgY2Fubm90IGJlIG5lc3RlZCIpCiAKQEAgLTk0LDggKzEyNiwxMSBAQCBjbGFzcyBUZXN0RW52
aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgICAgIGNtLl9fZW50ZXJfXygpCiAgICAgICAgICAg
ICBzZWxmLmVudl9leHRyYXNfY21zLmFwcGVuZChjbSkKIAotICAgICAgICBzZWxmLnNlcnZlcnMg
PSBzZXJ2ZS5zdGFydChzZWxmLmNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5nZXRfcm91dGVzKCkpCisgICAgICAgIHNlbGYuc2VydmVycyA9IHNlcnZlLnN0
YXJ0KHNlbGYuc2VydmVyX2xvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
Z2V0X3JvdXRlcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcF9jb250
ZXh0PW1wY29udGV4dC5nZXRfY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsb2dfaGFuZGxlcnM9W3NlcnZlcl9sb2dfaGFuZGxlcl0pCiAKICAgICAgICAgaWYg
c2VsZi5vcHRpb25zLmdldCgic3VwcG9ydHNfZGVidWdnZXIiKSBhbmQgc2VsZi5kZWJ1Z19pbmZv
IGFuZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICBzZWxmLmlnbm9y
ZV9pbnRlcnJ1cHRzKCkKQEAgLTEwNCw5ICsxMzksOSBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQo
b2JqZWN0KToKICAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190
Yik6CiAgICAgICAgIHNlbGYucHJvY2Vzc19pbnRlcnJ1cHRzKCkKIAotICAgICAgICBmb3Igc2No
ZW1lLCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Igc2No
ZW1lLCBzZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHBv
cnQsIHNlcnZlciBpbiBzZXJ2ZXJzOgotICAgICAgICAgICAgICAgIHNlcnZlci5raWxsKCkKKyAg
ICAgICAgICAgICAgICBzZXJ2ZXIuc3RvcCgpCiAgICAgICAgIGZvciBjbSBpbiBzZWxmLmVudl9l
eHRyYXNfY21zOgogICAgICAgICAgICAgY20uX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4
Y190YikKIApAQCAtMTE1LDYgKzE1MCw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3Qp
OgogICAgICAgICBzZWxmLmNhY2hlX21hbmFnZXIuX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWws
IGV4Y190YikKICAgICAgICAgc2VsZi5zdGFzaC5fX2V4aXRfXygpCiAgICAgICAgIHNlbGYuY29u
ZmlnX2N0eC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQorICAgICAgICBzZWxm
LnNlcnZlcl9sb2dnaW5nX2N0eC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQog
CiAgICAgZGVmIGlnbm9yZV9pbnRlcnJ1cHRzKHNlbGYpOgogICAgICAgICBzaWduYWwuc2lnbmFs
KHNpZ25hbC5TSUdJTlQsIHNpZ25hbC5TSUdfSUdOKQpAQCAtMTI1LDExICsxNjEsMTUgQEAgY2xh
c3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgZGVmIGJ1aWxkX2NvbmZpZyhzZWxmKToK
ICAgICAgICAgb3ZlcnJpZGVfcGF0aCA9IG9zLnBhdGguam9pbihzZXJ2ZV9wYXRoKHNlbGYudGVz
dF9wYXRocyksICJjb25maWcuanNvbiIpCiAKLSAgICAgICAgY29uZmlnID0gc2VydmUuQ29uZmln
QnVpbGRlcigpCisgICAgICAgIGNvbmZpZyA9IHNlcnZlLkNvbmZpZ0J1aWxkZXIoc2VsZi5zZXJ2
ZXJfbG9nZ2VyKQogCiAgICAgICAgIHBvcnRzID0gewogICAgICAgICAgICAgImh0dHAiOiBbODAw
MCwgODAwMV0sCisgICAgICAgICAgICAiaHR0cC1wcml2YXRlIjogWzgwMDJdLAorICAgICAgICAg
ICAgImh0dHAtcHVibGljIjogWzgwMDNdLAogICAgICAgICAgICAgImh0dHBzIjogWzg0NDMsIDg0
NDRdLAorICAgICAgICAgICAgImh0dHBzLXByaXZhdGUiOiBbODQ0NV0sCisgICAgICAgICAgICAi
aHR0cHMtcHVibGljIjogWzg0NDZdLAogICAgICAgICAgICAgIndzIjogWzg4ODhdLAogICAgICAg
ICAgICAgIndzcyI6IFs4ODg5XSwKICAgICAgICAgICAgICJoMiI6IFs5MDAwXSwKQEAgLTE2MCwy
NCArMjAwLDYgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAKICAgICAgICAgcmV0
dXJuIGNvbmZpZwogCi0gICAgZGVmIHNldHVwX3NlcnZlcl9sb2dnaW5nKHNlbGYpOgotICAgICAg
ICBzZXJ2ZXJfbG9nZ2VyID0gZ2V0X2RlZmF1bHRfbG9nZ2VyKGNvbXBvbmVudD0id3B0c2VydmUi
KQotICAgICAgICBhc3NlcnQgc2VydmVyX2xvZ2dlciBpcyBub3QgTm9uZQotICAgICAgICBsb2df
ZmlsdGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxGaWx0ZXIobGFtYmRhIHg6IHgsICJpbmZvIikKLSAg
ICAgICAgIyBEb3duZ3JhZGUgZXJyb3JzIHRvIHdhcm5pbmdzIGZvciB0aGUgc2VydmVyCi0gICAg
ICAgIGxvZ19maWx0ZXIgPSBMb2dMZXZlbFJld3JpdGVyKGxvZ19maWx0ZXIsIFsiZXJyb3IiXSwg
Indhcm5pbmciKQotICAgICAgICBzZXJ2ZXJfbG9nZ2VyLmNvbXBvbmVudF9maWx0ZXIgPSBsb2df
ZmlsdGVyCi0KLSAgICAgICAgc2VydmVyX2xvZ2dlciA9IHByb3h5LlF1ZXVlZFByb3h5TG9nZ2Vy
KHNlcnZlcl9sb2dnZXIpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBTZXQgYXMgdGhl
IGRlZmF1bHQgbG9nZ2VyIGZvciB3cHRzZXJ2ZQotICAgICAgICAgICAgc2VydmUuc2V0X2xvZ2dl
cihzZXJ2ZXJfbG9nZ2VyKQotICAgICAgICAgICAgc2VydmUubG9nZ2VyID0gc2VydmVyX2xvZ2dl
cgotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgIyBUaGlzIGhhcHBlbnMg
aWYgbG9nZ2luZyBoYXMgYWxyZWFkeSBiZWVuIHNldCB1cCBmb3Igd3B0c2VydmUKLSAgICAgICAg
ICAgIHBhc3MKLQogICAgIGRlZiBnZXRfcm91dGVzKHNlbGYpOgogICAgICAgICByb3V0ZV9idWls
ZGVyID0gc2VydmUuUm91dGVzQnVpbGRlcigpCiAKQEAgLTE5MSw3ICsyMTMsOCBAQCBjbGFzcyBU
ZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAoc2VsZi5vcHRpb25zLmdl
dCgidGVzdGhhcm5lc3NyZXBvcnQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMiKSwKICAgICAgICAg
ICAgICAgICAgeyJvdXRwdXQiOiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QsCiAgICAgICAgICAgICAg
ICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogc2VsZi50ZXN0aGFybmVzc190aW1lb3V0X211bHRp
cGxlciwKLSAgICAgICAgICAgICAgICAgICJleHBsaWNpdF90aW1lb3V0IjogInRydWUiIGlmIHNl
bGYuZGVidWdfaW5mbyBpcyBub3QgTm9uZSBlbHNlICJmYWxzZSJ9LAorICAgICAgICAgICAgICAg
ICAgImV4cGxpY2l0X3RpbWVvdXQiOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBO
b25lIGVsc2UgImZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICJkZWJ1ZyI6ICJ0cnVlIiBpZiBz
ZWxmLmRlYnVnX3Rlc3QgZWxzZSAiZmFsc2UifSwKICAgICAgICAgICAgICAgICAgInRleHQvamF2
YXNjcmlwdDtjaGFyc2V0PXV0ZjgiLAogICAgICAgICAgICAgICAgICAiL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyIpXToKICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLm5vcm1wYXRo
KG9zLnBhdGguam9pbihoZXJlLCBwYXRoKSkKQEAgLTIwOSw3ICsyMzIsNyBAQCBjbGFzcyBUZXN0
RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgcm91dGVfYnVpbGRlci5hZGRfaGFuZGxlcigi
R0VUIiwgIi9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nSGFuZGxlcihkYXRhLCAidGV4dC9qYXZhc2NyaXB0IikpCiAKLSAg
ICAgICAgZm9yIHVybF9iYXNlLCBwYXRocyBpbiBpdGVyaXRlbXMoc2VsZi50ZXN0X3BhdGhzKToK
KyAgICAgICAgZm9yIHVybF9iYXNlLCBwYXRocyBpbiBzZWxmLnRlc3RfcGF0aHMuaXRlbXMoKToK
ICAgICAgICAgICAgIGlmIHVybF9iYXNlID09ICIvIjoKICAgICAgICAgICAgICAgICBjb250aW51
ZQogICAgICAgICAgICAgcm91dGVfYnVpbGRlci5hZGRfbW91bnRfcG9pbnQodXJsX2Jhc2UsIHBh
dGhzWyJ0ZXN0c19wYXRoIl0pCkBAIC0yNDEsMTMgKzI2NCwxMyBAQCBjbGFzcyBUZXN0RW52aXJv
bm1lbnQob2JqZWN0KToKICAgICAgICAgZmFpbGVkID0gW10KICAgICAgICAgcGVuZGluZyA9IFtd
CiAgICAgICAgIGhvc3QgPSBzZWxmLmNvbmZpZ1sic2VydmVyX2hvc3QiXQotICAgICAgICBmb3Ig
c2NoZW1lLCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Ig
c2NoZW1lLCBzZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9y
IHBvcnQsIHNlcnZlciBpbiBzZXJ2ZXJzOgogICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXIu
aXNfYWxpdmUoKToKICAgICAgICAgICAgICAgICAgICAgZmFpbGVkLmFwcGVuZCgoc2NoZW1lLCBw
b3J0KSkKIAogICAgICAgICBpZiBub3QgZmFpbGVkIGFuZCBzZWxmLnRlc3Rfc2VydmVyX3BvcnQ6
Ci0gICAgICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZl
cnMpOgorICAgICAgICAgICAgZm9yIHNjaGVtZSwgc2VydmVycyBpbiBzZWxmLnNlcnZlcnMuaXRl
bXMoKToKICAgICAgICAgICAgICAgICAjIFRPRE8oSGV4Y2xlcyk6IEZpbmQgYSB3YXkgdG8gdGVz
dCBRVUlDJ3MgVURQIHBvcnQuCiAgICAgICAgICAgICAgICAgaWYgc2NoZW1lID09ICJxdWljLXRy
YW5zcG9ydCI6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0yNTYsNyArMjc5LDcg
QEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHMu
c2V0dGltZW91dCgwLjEpCiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg
ICAgICAgICAgIHMuY29ubmVjdCgoaG9zdCwgcG9ydCkpCi0gICAgICAgICAgICAgICAgICAgIGV4
Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgog
ICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZy5hcHBlbmQoKGhvc3QsIHBvcnQpKQogICAg
ICAgICAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgICAgICAgICAgcy5jbG9z
ZSgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5Cmlu
ZGV4IGIxMWQzMGJiOTRhYS4uOTYzZWQzMzdmZGU0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9u
cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weQpAQCAtMTMsNiArMTMsMTggQEAgY2xhc3MgQ2xp
Y2tBY3Rpb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5wcm90b2NvbC5jbGljay5lbGVtZW50KGVs
ZW1lbnQpCiAKIAorY2xhc3MgRGVsZXRlQWxsQ29va2llc0FjdGlvbihvYmplY3QpOgorICAgIG5h
bWUgPSAiZGVsZXRlX2FsbF9jb29raWVzIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgcHJvdG9jb2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxm
LnByb3RvY29sID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToK
KyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAg
ICAgc2VsZi5wcm90b2NvbC5jb29raWVzLmRlbGV0ZV9hbGxfY29va2llcygpCisKKwogY2xhc3Mg
U2VuZEtleXNBY3Rpb24ob2JqZWN0KToKICAgICBuYW1lID0gInNlbmRfa2V5cyIKIApAQCAtMTcx
LDYgKzE4Myw3IEBAIGNsYXNzIFNldFVzZXJWZXJpZmllZEFjdGlvbihvYmplY3QpOgogCiAKIGFj
dGlvbnMgPSBbQ2xpY2tBY3Rpb24sCisgICAgICAgICAgIERlbGV0ZUFsbENvb2tpZXNBY3Rpb24s
CiAgICAgICAgICAgIFNlbmRLZXlzQWN0aW9uLAogICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZUFj
dGlvbiwKICAgICAgICAgICAgR2VuZXJhdGVUZXN0UmVwb3J0QWN0aW9uLApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2Jhc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQppbmRleCA0YzM4OTFjMWNiNjcuLmE4OGFi
ODJlNzhkMyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkK
QEAgLTgsMjkgKzgsMzAgQEAgaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHNvY2tldAogaW1wb3J0
IHN5cwogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCi1mcm9tIHNpeCBp
bXBvcnQgdGV4dF90eXBlCi1mcm9tIHNpeC5tb3Zlcy5odHRwX2NsaWVudCBpbXBvcnQgSFRUUENv
bm5lY3Rpb24KLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJs
c3BsaXQsIHVybHVuc3BsaXQKK2Zyb20gaHR0cC5jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9u
Citmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIE9wdGlvbmFsLCBU
dXBsZSwgVHlwZSwgVFlQRV9DSEVDS0lORworZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpv
aW4sIHVybHNwbGl0LCB1cmx1bnNwbGl0CiAKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9w
CiBmcm9tIC5hY3Rpb25zIGltcG9ydCBhY3Rpb25zCiBmcm9tIC5wcm90b2NvbCBpbXBvcnQgUHJv
dG9jb2wsIEJhc2VQcm90b2NvbFBhcnQKIAoraWYgVFlQRV9DSEVDS0lORzoKKyAgICBmcm9tIC4u
d2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViRHJpdmVyU2VydmVyCisKIGhlcmUgPSBvcy5wYXRo
LmRpcm5hbWUoX19maWxlX18pCiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKToKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vu
dmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgdGltZW91dF9tdWx0aXBs
aWVyID0ga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXQogICAgIGlmIHRpbWVvdXRfbXVsdGlw
bGllciBpcyBOb25lOgogICAgICAgICB0aW1lb3V0X211bHRpcGxpZXIgPSAxCiAKLSAgICBleGVj
dXRvcl9rd2FyZ3MgPSB7InNlcnZlcl9jb25maWciOiBzZXJ2ZXJfY29uZmlnLAorICAgIGV4ZWN1
dG9yX2t3YXJncyA9IHsic2VydmVyX2NvbmZpZyI6IHRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAog
ICAgICAgICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogdGltZW91dF9tdWx0
aXBsaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVi
dWdfaW5mbyJdfQogCiAgICAgaWYgdGVzdF90eXBlIGluICgicmVmdGVzdCIsICJwcmludC1yZWZ0
ZXN0Iik6Ci0gICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sic2NyZWVuc2hvdF9jYWNoZSJdID0gY2Fj
aGVfbWFuYWdlci5kaWN0KCkKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzY3JlZW5zaG90X2Nh
Y2hlIl0gPSB0ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIuZGljdCgpCiAKICAgICBpZiB0
ZXN0X3R5cGUgPT0gIndkc3BlYyI6CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siYmluYXJ5Il0g
PSBrd2FyZ3MuZ2V0KCJiaW5hcnkiKQpAQCAtNDIsNyArNDMsNyBAQCBkZWYgZXhlY3V0b3Jfa3dh
cmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwKICAgICAjIHdhbnQgdG8gdmlldyB0aGUgcmVzdWx0cywgaG93ZXZlciwgdGhlIGV4ZWN1dG9y
IGhhcyB0byBza2lwIHRoYXQgY2xlYW51cC4KICAgICBpZiBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rl
c3QiXSBvciBrd2FyZ3NbInBhdXNlX29uX3VuZXhwZWN0ZWQiXToKICAgICAgICAgZXhlY3V0b3Jf
a3dhcmdzWyJjbGVhbnVwX2FmdGVyX3Rlc3QiXSA9IEZhbHNlCi0KKyAgICBleGVjdXRvcl9rd2Fy
Z3NbImRlYnVnX3Rlc3QiXSA9IGt3YXJnc1siZGVidWdfdGVzdCJdCiAgICAgcmV0dXJuIGV4ZWN1
dG9yX2t3YXJncwogCiAKQEAgLTE4MCwxMSArMTgxLDExIEBAIGNsYXNzIFRpbWVkUnVubmVyKG9i
amVjdCk6CiAgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQogCiAg
ICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgaWYgc2VsZi5zZXRfdGltZW91dCgpIGlzIFN0b3A6
Ci0gICAgICAgICAgICByZXR1cm4gU3RvcAotCi0gICAgICAgIGlmIHNlbGYuYmVmb3JlX3J1bigp
IGlzIFN0b3A6Ci0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICBmb3Igc2V0dXBfZm4g
aW4gW3NlbGYuc2V0X3RpbWVvdXQsIHNlbGYuYmVmb3JlX3J1bl06CisgICAgICAgICAgICBlcnIg
PSBzZXR1cF9mbigpCisgICAgICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICAgICAgc2VsZi5y
ZXN1bHQgPSAoRmFsc2UsIGVycikKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQK
IAogICAgICAgICBleGVjdXRvciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYucnVuX2Z1
bmMpCiAgICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKQEAgLTI0Myw4ICsyNDQsMTQgQEAgY2xhc3Mg
VGVzdEV4ZWN1dG9yKG9iamVjdCk6CiAgICAgIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01l
dGEKIAotICAgIHRlc3RfdHlwZSA9IE5vbmUKLSAgICBjb252ZXJ0X3Jlc3VsdCA9IE5vbmUKKyAg
ICB0ZXN0X3R5cGUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW3N0cl0KKyAgICAjIGNvbnZlcnRf
cmVzdWx0IGlzIGEgY2xhc3MgdmFyaWFibGUgc2V0IHRvIGEgY2FsbGFibGUgY29udmVydGVyCisg
ICAgIyAoZS5nLiByZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIpIGNvbnZlcnRpbmcgZnJvbSBhbiBp
bnN0YW5jZSBvZgorICAgICMgVVJMTWFuaWZlc3RJdGVtIChlLmcuIFJlZlRlc3QpICsgdHlwZS1k
ZXBlbmRlbnQgcmVzdWx0cyBvYmplY3QgKworICAgICMgdHlwZS1kZXBlbmRlbnQgZXh0cmEgZGF0
YSwgcmV0dXJuaW5nIGEgdHVwbGUgb2YgUmVzdWx0IGFuZCBsaXN0IG9mCisgICAgIyBTdWJ0ZXN0
UmVzdWx0LiBGb3Igbm93LCBhbnkgY2FsbGFibGUgaXMgYWNjZXB0ZWQuIFRPRE86IE1ha2UgdGhp
cyB0eXBlCisgICAgIyBzdHJpY3RlciB3aGVuIG1vcmUgb2YgdGhlIHN1cnJvdW5kaW5nIGNvZGUg
aXMgYW5ub3RhdGVkLgorICAgIGNvbnZlcnRfcmVzdWx0ID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zh
cltDYWxsYWJsZVsuLi4sIEFueV1dCiAgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IEZhbHNlCiAg
ICAgc3VwcG9ydHNfanNzaGVsbCA9IEZhbHNlCiAgICAgIyBFeHRyYSB0aW1lb3V0IHRvIHVzZSBh
ZnRlciBpbnRlcm5hbCB0ZXN0IHRpbWVvdXQgYXQgd2hpY2ggdGhlIGhhcm5lc3MKQEAgLTI4Nywx
OCArMjk0LDE1IEBAIGNsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgogICAgICAgICAiIiJSdW4g
YSBwYXJ0aWN1bGFyIHRlc3QuCiAKICAgICAgICAgOnBhcmFtIHRlc3Q6IFRoZSB0ZXN0IHRvIHJ1
biIiIgotICAgICAgICBpZiB0ZXN0LmVudmlyb25tZW50ICE9IHNlbGYubGFzdF9lbnZpcm9ubWVu
dDoKLSAgICAgICAgICAgIHNlbGYub25fZW52aXJvbm1lbnRfY2hhbmdlKHRlc3QuZW52aXJvbm1l
bnQpCiAgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHRlc3QuZW52aXJvbm1lbnQgIT0gc2Vs
Zi5sYXN0X2Vudmlyb25tZW50OgorICAgICAgICAgICAgICAgIHNlbGYub25fZW52aXJvbm1lbnRf
Y2hhbmdlKHRlc3QuZW52aXJvbm1lbnQpCiAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmRvX3Rl
c3QodGVzdCkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgZXhj
ZXB0aW9uX3N0cmluZyA9IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKICAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLndhcm5pbmcoZXhjZXB0aW9uX3N0cmluZykKICAgICAgICAgICAgIHJlc3VsdCA9IHNl
bGYucmVzdWx0X2Zyb21fZXhjZXB0aW9uKHRlc3QsIGUsIGV4Y2VwdGlvbl9zdHJpbmcpCiAKLSAg
ICAgICAgaWYgcmVzdWx0IGlzIFN0b3A6Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KICAg
ICAgICAgIyBsb2cgcmVzdWx0IG9mIHBhcmVudCB0ZXN0CiAgICAgICAgIGlmIHJlc3VsdFswXS5z
dGF0dXMgPT0gIkVSUk9SIjoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKHJlc3VsdFsw
XS5tZXNzYWdlKQpAQCAtMzA3LDE0ICszMTEsMTggQEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9iamVj
dCk6CiAKICAgICAgICAgc2VsZi5ydW5uZXIuc2VuZF9tZXNzYWdlKCJ0ZXN0X2VuZGVkIiwgdGVz
dCwgcmVzdWx0KQogCi0gICAgZGVmIHNlcnZlcl91cmwoc2VsZiwgcHJvdG9jb2wpOgorICAgIGRl
ZiBzZXJ2ZXJfdXJsKHNlbGYsIHByb3RvY29sLCBzdWJkb21haW49RmFsc2UpOgogICAgICAgICBz
Y2hlbWUgPSAiaHR0cHMiIGlmIHByb3RvY29sID09ICJoMiIgZWxzZSBwcm90b2NvbAotICAgICAg
ICByZXR1cm4gIiVzOi8vJXM6JXMiICUgKHNjaGVtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1b
MF0pCisgICAgICAgIGhvc3QgPSBzZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdCisg
ICAgICAgIGlmIHN1YmRvbWFpbjoKKyAgICAgICAgICAgICMgVGhlIG9ubHkgc3VwcG9ydGVkIHN1
YmRvbWFpbiBmaWxlbmFtZSBmbGFnIGlzICJ3d3ciLgorICAgICAgICAgICAgaG9zdCA9ICJ7c3Vi
ZG9tYWlufS57aG9zdH0iLmZvcm1hdChzdWJkb21haW49Ind3dyIsIGhvc3Q9aG9zdCkKKyAgICAg
ICAgcmV0dXJuICJ7c2NoZW1lfTovL3tob3N0fTp7cG9ydH0iLmZvcm1hdChzY2hlbWU9c2NoZW1l
LCBob3N0PWhvc3QsCisgICAgICAgICAgICBwb3J0PXNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMi
XVtwcm90b2NvbF1bMF0pCiAKICAgICBkZWYgdGVzdF91cmwoc2VsZiwgdGVzdCk6Ci0gICAgICAg
IHJldHVybiB1cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50WyJwcm90b2Nv
bCJdKSwgdGVzdC51cmwpCisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYuc2VydmVyX3VybCh0
ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdC5zdWJkb21haW4pLCB0ZXN0LnVybCkKIAogICAgIEBhYnN0cmFjdG1l
dGhvZAogICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgpAQCAtMzMyLDcgKzM0MCw3IEBAIGNs
YXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgogICAgICAgICAgICAgc3RhdHVzID0gZS5zdGF0dXMK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHN0YXR1cyA9ICJJTlRFUk5BTC1FUlJPUiIKLSAg
ICAgICAgbWVzc2FnZSA9IHRleHRfdHlwZShnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQorICAg
ICAgICBtZXNzYWdlID0gc3RyKGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikpCiAgICAgICAgIGlm
IG1lc3NhZ2U6CiAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKICAgICAgICAgbWVzc2FnZSAr
PSBleGNlcHRpb25fc3RyaW5nCkBAIC00MjMsNyArNDMxLDcgQEAgY2xhc3MgUmVmVGVzdEltcGxl
bWVudGF0aW9uKG9iamVjdCk6CiAKICAgICAgICAgaWYgbGVuKGxoc19oYXNoZXMpICE9IGxlbihy
aHNfaGFzaGVzKToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkdvdCBkaWZmZXJlbnQg
bnVtYmVyIG9mIHBhZ2VzIikKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
cmV0dXJuIHJlbGF0aW9uID09ICIhPSIsIE5vbmUKIAogICAgICAgICBhc3NlcnQgbGVuKGxoc19z
Y3JlZW5zaG90cykgPT0gbGVuKGxoc19oYXNoZXMpID09IGxlbihyaHNfc2NyZWVuc2hvdHMpID09
IGxlbihyaHNfaGFzaGVzKQogCkBAIC01OTAsMTEgKzU5OCwxMSBAQCBjbGFzcyBSZWZUZXN0SW1w
bGVtZW50YXRpb24ob2JqZWN0KToKIAogY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9y
KToKICAgICBjb252ZXJ0X3Jlc3VsdCA9IHB5dGVzdF9yZXN1bHRfY29udmVydGVyCi0gICAgcHJv
dG9jb2xfY2xzID0gTm9uZQorICAgIHByb3RvY29sX2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NW
YXJbVHlwZVtQcm90b2NvbF1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93
c2VyLCBzZXJ2ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAogICAgICAgICAgICAgICAgICB3
ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAot
ICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAg
ICAgICAgZGVidWdfaW5mbz1Ob25lLCBlbnZpcm9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAg
c2VsZi5kb19kZWxheWVkX2ltcG9ydHMoKQogICAgICAgICBUZXN0RXhlY3V0b3IuX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKQEAgLTYw
Myw3ICs2MTEsMTMgQEAgY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICAg
ICAgc2VsZi53ZWJkcml2ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzCiAgICAgICAgIHNlbGYudGlt
ZW91dF9tdWx0aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCiAgICAgICAgIHNlbGYuY2FwYWJp
bGl0aWVzID0gY2FwYWJpbGl0aWVzCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBzZWxmLnByb3Rv
Y29sX2NscyhzZWxmLCBicm93c2VyKQorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uIGlm
IGVudmlyb24gaXMgbm90IE5vbmUgZWxzZSB7fQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVy
X2t3YXJncyA9IE5vbmUKKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3Mg
PSBOb25lCisKKyAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKKyAgICAgICAgc2VsZi5wcm90
b2NvbCA9IHNlbGYucHJvdG9jb2xfY2xzKHNlbGYsIHNlbGYuYnJvd3NlcikKKyAgICAgICAgc3Vw
ZXIoKS5zZXR1cChydW5uZXIpCiAKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJl
dHVybiBzZWxmLnByb3RvY29sLmlzX2FsaXZlKCkKQEAgLTcwNiw3ICs3MjAsNyBAQCBjbGFzcyBD
b25uZWN0aW9ubGVzc1Byb3RvY29sKFByb3RvY29sKToKIAogCiBjbGFzcyBXZHNwZWNQcm90b2Nv
bChQcm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IE5vbmUKKyAgICBzZXJ2ZXJfY2xzID0gTm9u
ZSAgIyB0eXBlOiBDbGFzc1ZhcltPcHRpb25hbFtUeXBlW1dlYkRyaXZlclNlcnZlcl1dXQogCiAg
ICAgaW1wbGVtZW50cyA9IFtDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2NvbFBhcnRdCiAKQEAgLTcx
NywxNCArNzMxLDIxIEBAIGNsYXNzIFdkc3BlY1Byb3RvY29sKFByb3RvY29sKToKICAgICAgICAg
c2VsZi5jYXBhYmlsaXRpZXMgPSBzZWxmLmV4ZWN1dG9yLmNhcGFiaWxpdGllcwogICAgICAgICBz
ZWxmLnNlc3Npb25fY29uZmlnID0gTm9uZQogICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUKKyAg
ICAgICAgc2VsZi5lbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgc2VsZi5lbnZp
cm9uLnVwZGF0ZShleGVjdXRvci5lbnZpcm9uKQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVy
X2t3YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX2t3YXJncworICAgICAgICBzZWxmLm91
dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX3N0YXJ0
X2t3YXJncwogCiAgICAgZGVmIGNvbm5lY3Qoc2VsZik6CiAgICAgICAgICIiIkNvbm5lY3QgdG8g
YnJvd3NlciB2aWEgdGhlIEhUVFAgc2VydmVyLiIiIgogICAgICAgICBzZWxmLnNlcnZlciA9IHNl
bGYuc2VydmVyX2NscygKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgYmlu
YXJ5PXNlbGYud2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgIGFyZ3M9c2VsZi53ZWJkcml2
ZXJfYXJncykKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisgICAgICAg
ICAgICBhcmdzPXNlbGYud2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAgICBlbnY9c2VsZi5lbnZp
cm9uKQorICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzPXNlbGYub3V0cHV0X2hhbmRsZXJf
a3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9zdGFydF9r
d2FyZ3M9c2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpCiAgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oCiAgICAgICAgICAgICAiV2ViRHJpdmVyIEhUVFAgc2VydmVyIGxpc3RlbmluZyBh
dCAlcyIgJSBzZWxmLnNlcnZlci51cmwpCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9jb25maWcgPSB7
Imhvc3QiOiBzZWxmLnNlcnZlci5ob3N0LApAQCAtNzYyLDcgKzc4Myw3IEBAIGNsYXNzIENhbGxi
YWNrSGFuZGxlcihvYmplY3QpOgogICAgIFdlYkRyaXZlci4gVGhpbmdzIHRoYXQgYXJlIG1vcmUg
ZGlmZmVyZW50IHRvIFdlYkRyaXZlciBtYXkgbmVlZCB0byBjcmVhdGUgYQogICAgIGZ1bGx5IGN1
c3RvbSBpbXBsZW1lbnRhdGlvbi4iIiIKIAotICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdElt
cGxlbWVudGVkRXJyb3IsKQorICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxlbWVudGVk
RXJyb3IsKSAgIyB0eXBlOiBDbGFzc1ZhcltUdXBsZVtUeXBlW0V4Y2VwdGlvbl0sIC4uLl1dCiAK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cpOgog
ICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKQEAgLTgzMSw3ICs4NTIsNyBAQCBjbGFz
cyBBY3Rpb25Db250ZXh0KG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5pbml0aWFsX3dpbmRvdyA9
IHNlbGYucHJvdG9jb2wuYmFzZS5jdXJyZW50X3dpbmRvdwogICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiU3dpdGNoaW5nIHRvIHdpbmRvdyAlcyIgJSBzZWxmLmNvbnRleHQpCi0gICAgICAgIHNl
bGYucHJvdG9jb2wudGVzdGRyaXZlci5zd2l0Y2hfdG9fd2luZG93KHNlbGYuY29udGV4dCkKKyAg
ICAgICAgc2VsZi5wcm90b2NvbC50ZXN0ZHJpdmVyLnN3aXRjaF90b193aW5kb3coc2VsZi5jb250
ZXh0LCBzZWxmLmluaXRpYWxfd2luZG93KQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdz
KToKICAgICAgICAgaWYgc2VsZi5jb250ZXh0IGlzIE5vbmU6CkBAIC04MzksNSArODYwLDQgQEAg
Y2xhc3MgQWN0aW9uQ29udGV4dChvYmplY3QpOgogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVn
KCJTd2l0Y2hpbmcgYmFjayB0byBpbml0aWFsIHdpbmRvdyIpCiAgICAgICAgIHNlbGYucHJvdG9j
b2wuYmFzZS5zZXRfd2luZG93KHNlbGYuaW5pdGlhbF93aW5kb3cpCi0gICAgICAgIHNlbGYucHJv
dG9jb2wudGVzdGRyaXZlci5fc3dpdGNoX3RvX2ZyYW1lKE5vbmUpCiAgICAgICAgIHNlbGYuaW5p
dGlhbF93aW5kb3cgPSBOb25lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKaW5kZXggM2E3MDQ3NTQxMzdmLi40MzFkMzk4ZWJk
MjcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JjaHJvbWUucHkKQEAgLTEsNyArMSw3IEBACiBpbXBvcnQgb3MKIGltcG9ydCB0cmFjZWJh
Y2sKIAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCitmcm9tIHVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNQcm90
b2NvbCwgV2RzcGVjRXhlY3V0b3IsIGdldF9wYWdlcwogZnJvbSAuZXhlY3V0b3J3ZWJkcml2ZXIg
aW1wb3J0IFdlYkRyaXZlclByb3RvY29sLCBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsIFdlYkRy
aXZlclJ1bgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9leGVjdXRvcm1hcmlvbmV0dGUucHkKaW5kZXggN2UyY2M4ZTM4YTQ0Li4yNWEzMzYwYjdkODAg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4
ZWN1dG9ybWFyaW9uZXR0ZS5weQpAQCAtNSw4ICs1LDcgQEAgaW1wb3J0IHRpbWUKIGltcG9ydCB0
cmFjZWJhY2sKIGltcG9ydCB1dWlkCiAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJr
ZXlzCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KK2Zyb20gdXJs
bGliLnBhcnNlIGltcG9ydCB1cmxqb2luCiAKIGVycm9ycyA9IE5vbmUKIG1hcmlvbmV0dGUgPSBO
b25lCkBAIC0zMywyNyArMzIsMjIgQEAgZnJvbSAucHJvdG9jb2wgaW1wb3J0IChBY3Rpb25TZXF1
ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmFnZVByb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgIENsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAg
ICAgICBDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTZW5kS2V5
c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgVGVzdERyaXZlclByb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQ292ZXJhZ2VQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlVGVzdFJlcG9ydFByb3RvY29sUGFydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgIFNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgIFByaW50UHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0
IFN0b3AKLWZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBHZWNrb0RyaXZlclNlcnZlcgor
ICAgICAgICAgICAgICAgICAgICAgICBQcmludFByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgRGVidWdQcm90b2NvbFBhcnQpCiAKIAogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygp
OgotICAgIGdsb2JhbCBlcnJvcnMsIG1hcmlvbmV0dGUKKyAgICBnbG9iYWwgZXJyb3JzLCBtYXJp
b25ldHRlLCBBZGRvbnMKIAotICAgICMgTWFyaW9uZXR0ZSBjbGllbnQgdXNlZCB0byBiZSBjYWxs
ZWQgbWFyaW9uZXR0ZSwgcmVjZW50bHkgaXQgY2hhbmdlZAotICAgICMgdG8gbWFyaW9uZXR0ZV9k
cml2ZXIgZm9yIHVuZmF0aG9tYWJsZSByZWFzb25zCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQg
bWFyaW9uZXR0ZQotICAgICAgICBmcm9tIG1hcmlvbmV0dGUgaW1wb3J0IGVycm9ycwotICAgIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlciBpbXBvcnQg
bWFyaW9uZXR0ZSwgZXJyb3JzCisgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlciBpbXBvcnQgbWFy
aW9uZXR0ZSwgZXJyb3JzCisgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlci5hZGRvbnMgaW1wb3J0
IEFkZG9ucwogCiAKIGRlZiBfc3dpdGNoX3RvX3dpbmRvdyhtYXJpb25ldHRlLCBoYW5kbGUpOgpA
QCAtMTMzLDcgKzEyNyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVCYXNlUHJvdG9jb2xQYXJ0KEJhc2VQ
cm90b2NvbFBhcnQpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGV4Y2VwdCBl
cnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgICAgICMgVGhpcyBj
YW4gaGFwcGVuIGlmIHdlIG5hdmlnYXRlLCBidXQganVzdCBrZWVwIGdvaW5nCi0gICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZS5tZXNzYWdlKQorICAgICAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKGUpCiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0
IElPRXJyb3I6CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNvY2tldCBjbG9z
ZWQiKQpAQCAtNDQxLDYgKzQzNSwxNSBAQCBjbGFzcyBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBh
cnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4gZWxlbWVudC5jbGljaygpCiAK
IAorY2xhc3MgTWFyaW9uZXR0ZUNvb2tpZXNQcm90b2NvbFBhcnQoQ29va2llc1Byb3RvY29sUGFy
dCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxm
LnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgZGVsZXRlX2FsbF9jb29raWVzKHNlbGYpOgor
ICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwgY29va2llcyIpCisgICAgICAg
IHJldHVybiBzZWxmLm1hcmlvbmV0dGUuZGVsZXRlX2FsbF9jb29raWVzKCkKKworCiBjbGFzcyBN
YXJpb25ldHRlU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAg
IGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQu
bWFyaW9uZXR0ZQpAQCAtNDczLDggKzQ3NiwxMiBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdERyaXZl
clByb3RvY29sUGFydChUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgIG9ialsi
bWVzc2FnZSJdID0gc3RyKG1lc3NhZ2UpCiAgICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0
ZV9zY3JpcHQoIndpbmRvdy5wb3N0TWVzc2FnZSglcywgJyonKSIgJSBqc29uLmR1bXBzKG9iaikp
CiAKLSAgICBkZWYgX3N3aXRjaF90b19mcmFtZShzZWxmLCBmcmFtZV9udW1iZXIpOgotICAgICAg
ICBzZWxmLm1hcmlvbmV0dGUuc3dpdGNoX3RvX2ZyYW1lKGZyYW1lX251bWJlcikKKyAgICBkZWYg
X3N3aXRjaF90b19mcmFtZShzZWxmLCBpbmRleF9vcl9lbGVtKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b19mcmFtZShpbmRleF9vcl9lbGVtKQor
ICAgICAgICBleGNlcHQgKGVycm9ycy5Ob1N1Y2hGcmFtZUV4Y2VwdGlvbiwKKyAgICAgICAgICAg
ICAgICBlcnJvcnMuU3RhbGVFbGVtZW50RXhjZXB0aW9uKSBhcyBlOgorICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvciBmcm9tIGUKIAogICAgIGRlZiBfc3dpdGNoX3RvX3BhcmVudF9mcmFtZShz
ZWxmKToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b19wYXJlbnRfZnJhbWUoKQpA
QCAtNDg5LDcgKzQ5Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVDb3ZlcmFnZVByb3RvY29sUGFydChD
b3ZlcmFnZVByb3RvY29sUGFydCk6CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICBzY3Jp
cHQgPSAiIiIKLSAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJv
bWVVdGlscy5pbXBvcnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJh
Z2VVdGlscy5qc20iKTsKKyAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30g
PSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTovL3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUv
UGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7CiAgICAgICAgICAgICByZXR1cm4gUGVyVGVzdENv
dmVyYWdlVXRpbHMuZW5hYmxlZDsKICAgICAgICAgICAgICIiIgogICAgICAgICB3aXRoIHNlbGYu
bWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSk6
CkBAIC00OTksNyArNTA2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0
KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgc2NyaXB0ID0gIiIiCiAgICAgICAgICAg
ICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwogCi0gICAg
ICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1wb3J0
KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7
CisgICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMu
aW1wb3J0KCJjaHJvbWU6Ly9yZW1vdGUvY29udGVudC9tYXJpb25ldHRlL1BlclRlc3RDb3ZlcmFn
ZVV0aWxzLmpzbSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMuYmVmb3JlVGVz
dCgpLnRoZW4oY2FsbGJhY2ssIGNhbGxiYWNrKTsKICAgICAgICAgICAgICIiIgogICAgICAgICB3
aXRoIHNlbGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhU
X0NIUk9NRSk6CkBAIC01MTksNyArNTI2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJv
dG9jb2xQYXJ0KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgc2NyaXB0ID0gIiIiCiAg
ICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFd
OwogCi0gICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRp
bHMuaW1wb3J0KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRp
bHMuanNtIik7CisgICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hy
b21lVXRpbHMuaW1wb3J0KCJjaHJvbWU6Ly9yZW1vdGUvY29udGVudC9tYXJpb25ldHRlL1BlclRl
c3RDb3ZlcmFnZVV0aWxzLmpzbSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMu
YWZ0ZXJUZXN0KCkudGhlbihjYWxsYmFjaywgY2FsbGJhY2spOwogICAgICAgICAgICAgIiIiCiAg
ICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRl
LkNPTlRFWFRfQ0hST01FKToKQEAgLTU2MywxMiArNTcwLDIyIEBAIGNsYXNzIE1hcmlvbmV0dGVW
aXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGljYXRvclByb3Rv
Y29sUGFyCiAgICAgZGVmIHNldF91c2VyX3ZlcmlmaWVkKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQs
IHV2KToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic2V0X3VzZXJfdmVyaWZp
ZWQgbm90IHlldCBpbXBsZW1lbnRlZCIpCiAKKwogY2xhc3MgTWFyaW9uZXR0ZVNldFBlcm1pc3Np
b25Qcm90b2NvbFBhcnQoU2V0UGVybWlzc2lvblByb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVw
KHNlbGYpOgogICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRl
CiAKLSAgICBkZWYgc2V0X3Blcm1pc3Npb24oc2VsZiwgbmFtZSwgc3RhdGUsIG9uZV9yZWFsbSk6
Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInNldF9wZXJtaXNzaW9uIG5vdCB5
ZXQgaW1wbGVtZW50ZWQiKQorICAgIGRlZiBzZXRfcGVybWlzc2lvbihzZWxmLCBkZXNjcmlwdG9y
LCBzdGF0ZSwgb25lX3JlYWxtKToKKyAgICAgICAgYm9keSA9IHsKKyAgICAgICAgICAgICJkZXNj
cmlwdG9yIjogZGVzY3JpcHRvciwKKyAgICAgICAgICAgICJzdGF0ZSI6IHN0YXRlLAorICAgICAg
ICB9CisgICAgICAgIGlmIG9uZV9yZWFsbSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHlb
Im9uZVJlYWxtIl0gPSBvbmVfcmVhbG0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5t
YXJpb25ldHRlLl9zZW5kX21lc3NhZ2UoIldlYkRyaXZlcjpTZXRQZXJtaXNzaW9uIiwgYm9keSkK
KyAgICAgICAgZXhjZXB0IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbjoKKyAg
ICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInNldF9wZXJtaXNzaW9uIG5vdCB5
ZXQgaW1wbGVtZW50ZWQiKQogCiAKIGNsYXNzIE1hcmlvbmV0dGVQcmludFByb3RvY29sUGFydChQ
cmludFByb3RvY29sUGFydCk6CkBAIC02MjEsNiArNjM4LDMwIEBAIHJlbmRlcignJXMnKS50aGVu
KHJlc3VsdCA9PiBjYWxsYmFjayhyZXN1bHQpKSIiIiAlIHBkZl9iYXNlNjQsIG5ld19zYW5kYm94
PUZhbHNlCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBfc3dpdGNoX3RvX3dpbmRvdyhz
ZWxmLm1hcmlvbmV0dGUsIGhhbmRsZSkKIAorCitjbGFzcyBNYXJpb25ldHRlRGVidWdQcm90b2Nv
bFBhcnQoRGVidWdQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAg
c2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIGxvYWRf
ZGV2dG9vbHMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRl
eHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKKyAgICAgICAgICAgIHNlbGYucGFy
ZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoIiIiCitjb25zdCB7IHJlcXVpcmUgfSA9IENocm9tZVV0
aWxzLmltcG9ydCgicmVzb3VyY2U6Ly9kZXZ0b29scy9zaGFyZWQvTG9hZGVyLmpzbSIpOworY29u
c3QgeyBUYXJnZXRGYWN0b3J5IH0gPSByZXF1aXJlKCJkZXZ0b29scy9jbGllbnQvZnJhbWV3b3Jr
L3RhcmdldCIpOworY29uc3QgeyBnRGV2VG9vbHMgfSA9IHJlcXVpcmUoImRldnRvb2xzL2NsaWVu
dC9mcmFtZXdvcmsvZGV2dG9vbHMiKTsKKworY29uc3QgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJn
dW1lbnRzLmxlbmd0aCAtIDFdOworCithc3luYyBmdW5jdGlvbiBsb2FkRGV2VG9vbHMoKSB7Cisg
ICAgY29uc3QgdGFyZ2V0ID0gYXdhaXQgVGFyZ2V0RmFjdG9yeS5mb3JUYWIod2luZG93LmdCcm93
c2VyLnNlbGVjdGVkVGFiKTsKKyAgICBhd2FpdCBnRGV2VG9vbHMuc2hvd1Rvb2xib3godGFyZ2V0
LCAid2ViY29uc29sZSIsICJ3aW5kb3ciKTsKK30KKworbG9hZERldlRvb2xzKCkuY2F0Y2goKCkg
PT4gZHVtcCgiRGV2dG9vbHMgZmFpbGVkIHRvIGxvYWQiKSkKKyAgICAgICAgICAgICAgLnRoZW4o
Y2FsbGJhY2spOworIiIiLCBhc3luY2hyb25vdXM9VHJ1ZSkKKworCiBjbGFzcyBNYXJpb25ldHRl
UHJvdG9jb2woUHJvdG9jb2wpOgogICAgIGltcGxlbWVudHMgPSBbTWFyaW9uZXR0ZUJhc2VQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlVGVzdGhhcm5lc3NQcm90b2Nv
bFBhcnQsCkBAIC02MjgsNiArNjY5LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3Rv
Y29sKToKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTdG9yYWdlUHJvdG9jb2xQYXJ0LAog
ICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAg
ICAgICAgICAgICAgTWFyaW9uZXR0ZUNsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAg
ICAgTWFyaW9uZXR0ZUNvb2tpZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJp
b25ldHRlU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRl
QWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRl
VGVzdERyaXZlclByb3RvY29sUGFydCwKQEAgLTYzNiw3ICs2NzgsOCBAQCBjbGFzcyBNYXJpb25l
dHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUdlbmVy
YXRlVGVzdFJlcG9ydFByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVW
aXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlv
bmV0dGVTZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgTWFyaW9u
ZXR0ZVByaW50UHJvdG9jb2xQYXJ0XQorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVByaW50
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZURlYnVnUHJvdG9jb2xQ
YXJ0XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyLCBjYXBhYmls
aXRpZXM9Tm9uZSwgdGltZW91dF9tdWx0aXBsaWVyPTEsIGUxMHM9VHJ1ZSwgY2Nvdj1GYWxzZSk6
CiAgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCkBAIC02ODAsMTEgKzcyMywxMiBAQCBjbGFz
cyBNYXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5fcmVxdWVzdF9pbl9hcHBfc2h1dGRvd24oKQogICAg
ICAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5kZWxldGVfc2Vzc2lvbihzZW5kX3JlcXVlc3Q9
RmFsc2UpCisgICAgICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmNsZWFudXAoKQogICAgICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdHlwaWNh
bGx5IGJlY2F1c2UgdGhlIHNlc3Npb24gbmV2ZXIgc3RhcnRlZAogICAgICAgICAgICAgICAgIHBh
c3MKICAgICAgICAgaWYgc2VsZi5tYXJpb25ldHRlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
ZGVsIHNlbGYubWFyaW9uZXR0ZQorICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gTm9uZQog
ICAgICAgICBzdXBlcihNYXJpb25ldHRlUHJvdG9jb2wsIHNlbGYpLnRlYXJkb3duKCkKIAogICAg
IGRlZiBpc19hbGl2ZShzZWxmKToKQEAgLTY5NiwyMCArNzQwLDE5IEBAIGNsYXNzIE1hcmlvbmV0
dGVQcm90b2NvbChQcm90b2NvbCk6CiAKICAgICBkZWYgb25fZW52aXJvbm1lbnRfY2hhbmdlKHNl
bGYsIG9sZF9lbnZpcm9ubWVudCwgbmV3X2Vudmlyb25tZW50KToKICAgICAgICAgI1Vuc2V0IGFs
bCB0aGUgb2xkIHByZWZzCi0gICAgICAgIGZvciBuYW1lIGluIGl0ZXJrZXlzKG9sZF9lbnZpcm9u
bWVudC5nZXQoInByZWZzIiwge30pKToKKyAgICAgICAgZm9yIG5hbWUgaW4gb2xkX2Vudmlyb25t
ZW50LmdldCgicHJlZnMiLCB7fSkua2V5cygpOgogICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmV4
ZWN1dG9yLm9yaWdpbmFsX3ByZWZfdmFsdWVzW25hbWVdCiAgICAgICAgICAgICBpZiB2YWx1ZSBp
cyBOb25lOgogICAgICAgICAgICAgICAgIHNlbGYucHJlZnMuY2xlYXIobmFtZSkKICAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi5wcmVmcy5zZXQobmFtZSwgdmFsdWUpCiAK
LSAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGl0ZXJpdGVtcyhuZXdfZW52aXJvbm1lbnQuZ2V0
KCJwcmVmcyIsIHt9KSk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBuZXdfZW52aXJvbm1l
bnQuZ2V0KCJwcmVmcyIsIHt9KS5pdGVtcygpOgogICAgICAgICAgICAgc2VsZi5leGVjdXRvci5v
cmlnaW5hbF9wcmVmX3ZhbHVlc1tuYW1lXSA9IHNlbGYucHJlZnMuZ2V0KG5hbWUpCiAgICAgICAg
ICAgICBzZWxmLnByZWZzLnNldChuYW1lLCB2YWx1ZSkKIAogCiBjbGFzcyBFeGVjdXRlQXN5bmNT
Y3JpcHRSdW4oVGltZWRSdW5uZXIpOgotCiAgICAgZGVmIHNldF90aW1lb3V0KHNlbGYpOgogICAg
ICAgICB0aW1lb3V0ID0gc2VsZi50aW1lb3V0CiAKQEAgLTcyMiw4ICs3NjUsOSBAQCBjbGFzcyBF
eGVjdXRlQXN5bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgogICAgICAgICAgICAgICAgICMgdGlt
ZW91dCBpcyBzZXQgdG9vIGhpZ2guIFRoaXMgd29ya3MgYXQgbGVhc3QuCiAgICAgICAgICAgICAg
ICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KDIqKjI4IC0gMSkKICAgICAgICAgZXhj
ZXB0IElPRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBtYXJpb25l
dHRlIGNvbm5lY3Rpb24gYmVmb3JlIHN0YXJ0aW5nIHRlc3QiKQotICAgICAgICAgICAgcmV0dXJu
IFN0b3AKKyAgICAgICAgICAgIG1zZyA9ICJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBiZWZv
cmUgc3RhcnRpbmcgdGVzdCIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAg
ICAgICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIGJlZm9y
ZV9ydW4oc2VsZik6CiAgICAgICAgIGluZGV4ID0gc2VsZi51cmwucmZpbmQoIi9zdG9yYWdlLyIp
CkBAIC03NDcsNyArNzkxLDcgQEAgY2xhc3MgRXhlY3V0ZUFzeW5jU2NyaXB0UnVuKFRpbWVkUnVu
bmVyKToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIk5vU3VjaFdpbmRvd0V4Y2VwdGlv
biBvbiBjb21tYW5kLCBzZXR0aW5nIHN0YXR1cyB0byBDUkFTSCIpCiAgICAgICAgICAgICBzZWxm
LnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShlLCBlcnJvcnMuSmF2YXNjcmlwdEV4
Y2VwdGlvbikgYW5kIGUubWVzc2FnZS5zdGFydHN3aXRoKCJEb2N1bWVudCB3YXMgdW5sb2FkZWQi
KToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZSwgZXJyb3JzLkphdmFzY3JpcHRFeGNlcHRp
b24pIGFuZCBzdHIoZSkuc3RhcnRzd2l0aCgiRG9jdW1lbnQgd2FzIHVubG9hZGVkIik6CiAgICAg
ICAgICAgICAgICAgbWVzc2FnZSA9ICJEb2N1bWVudCB1bmxvYWRlZDsgbWF5YmUgdGVzdCBuYXZp
Z2F0ZWQgdGhlIHRvcC1sZXZlbC1icm93c2luZyBjb250ZXh0PyIKICAgICAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKQEAg
LTc2NSw3ICs4MDksNyBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0
aGFybmVzc0V4ZWN1dG9yKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dz
ZXIsIHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAogICAgICAgICAgICAgICAg
ICBjbG9zZV9hZnRlcl9kb25lPVRydWUsIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5v
bmUsCi0gICAgICAgICAgICAgICAgIGRlYnVnPUZhbHNlLCBjY292PUZhbHNlLCAqKmt3YXJncyk6
CisgICAgICAgICAgICAgICAgIGRlYnVnPUZhbHNlLCBjY292PUZhbHNlLCBkZWJ1Z190ZXN0PUZh
bHNlLCAqKmt3YXJncyk6CiAgICAgICAgICIiIk1hcmlvbmV0dGUtYmFzZWQgZXhlY3V0b3IgZm9y
IHRlc3RoYXJuZXNzLmpzIHRlc3RzIiIiCiAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IuX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRp
cGxpZXIsCkBAIC03ODEsNiArODI1LDkgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhl
Y3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9u
ZSA9IGNsb3NlX2FmdGVyX2RvbmUKICAgICAgICAgc2VsZi53aW5kb3dfaWQgPSBzdHIodXVpZC51
dWlkNCgpKQogICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKKyAgICAgICAgc2VsZi5kZWJ1Z190
ZXN0ID0gZGVidWdfdGVzdAorCisgICAgICAgIHNlbGYuaW5zdGFsbF9leHRlbnNpb25zID0gYnJv
d3Nlci5leHRlbnNpb25zCiAKICAgICAgICAgc2VsZi5vcmlnaW5hbF9wcmVmX3ZhbHVlcyA9IHt9
CiAKQEAgLTc4OSw2ICs4MzYsMTEgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0
b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAKICAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToK
ICAgICAgICAgc3VwZXIoTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsIHNlbGYpLnNldHVw
KHJ1bm5lcikKKyAgICAgICAgZm9yIGV4dGVuc2lvbl9wYXRoIGluIHNlbGYuaW5zdGFsbF9leHRl
bnNpb25zOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiSW5zdGFsbGluZyBleHRlbnNp
b24gZnJvbSAlcyIgJSBleHRlbnNpb25fcGF0aCkKKyAgICAgICAgICAgIGFkZG9ucyA9IEFkZG9u
cyhzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUpCisgICAgICAgICAgICBhZGRvbnMuaW5zdGFsbChl
eHRlbnNpb25fcGF0aCkKKwogICAgICAgICBzZWxmLnByb3RvY29sLnRlc3RoYXJuZXNzLmxvYWRf
cnVubmVyKHNlbGYubGFzdF9lbnZpcm9ubWVudFsicHJvdG9jb2wiXSkKIAogICAgIGRlZiBpc19h
bGl2ZShzZWxmKToKQEAgLTg0Miw2ICs4OTQsOSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5l
c3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgc2VsZi5wcm90b2NvbC5i
YXNlLnNldF93aW5kb3codGVzdF93aW5kb3cpCiAgICAgICAgIHByb3RvY29sLnRlc3RoYXJuZXNz
LnRlc3Rfd2luZG93X2xvYWRlZCgpCiAKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190ZXN0OgorICAg
ICAgICAgICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX2RldnRvb2xzKCkKKwogICAgICAgICBo
YW5kbGVyID0gQ2FsbGJhY2tIYW5kbGVyKHNlbGYubG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5k
b3cpCiAgICAgICAgIHByb3RvY29sLm1hcmlvbmV0dGUubmF2aWdhdGUodXJsKQogICAgICAgICB3
aGlsZSBUcnVlOgpAQCAtODY4LDcgKzkyMyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhl
Y3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25l
LCByZWZ0ZXN0X2ludGVybmFsPUZhbHNlLAogICAgICAgICAgICAgICAgICByZWZ0ZXN0X3NjcmVl
bnNob3Q9InVuZXhwZWN0ZWQiLCBjY292PUZhbHNlLAogICAgICAgICAgICAgICAgICBncm91cF9t
ZXRhZGF0YT1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwgZGVidWc9RmFsc2UsCi0gICAgICAgICAg
ICAgICAgIGJyb3dzZXJfdmVyc2lvbj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAg
IGJyb3dzZXJfdmVyc2lvbj1Ob25lLCBkZWJ1Z190ZXN0PUZhbHNlLCAqKmt3YXJncyk6CiAgICAg
ICAgICIiIk1hcmlvbmV0dGUtYmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCiAgICAgICAg
IFJlZlRlc3RFeGVjdXRvci5fX2luaXRfXyhzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nZ2VyLApAQCAtODkxLDYgKzk0Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZU
ZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi5vcmlnaW5hbF9wcmVm
X3ZhbHVlcyA9IHt9CiAgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRhdGEgPSBncm91cF9tZXRhZGF0
YQogICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKKyAgICAgICAgc2VsZi5kZWJ1Z190ZXN0ID0g
ZGVidWdfdGVzdAogCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRl
c3QuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNlbGYuc2NyaXB0ID0gZi5yZWFkKCkKQEAgLTk1
Myw3ICsxMDA5LDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4
ZWN1dG9yKToKICAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IHNlbGYucHJvdG9jb2wuYXNz
ZXJ0cy5nZXQoKQogICAgICAgICAgICAgaWYgImV4dHJhIiBub3QgaW4gcmVzdWx0OgogICAgICAg
ICAgICAgICAgIHJlc3VsdFsiZXh0cmEiXSA9IHt9Ci0gICAgICAgICAgICByZXN1bHRbImV4dHJh
Il1bImFzc2VydGlvbl9jb3VudCJdID0gYXNzZXJ0aW9uX2NvdW50CisgICAgICAgICAgICBpZiBh
c3NlcnRpb25fY291bnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmVzdWx0WyJleHRy
YSJdWyJhc3NlcnRpb25fY291bnQiXSA9IGFzc2VydGlvbl9jb3VudAorCisgICAgICAgIGlmIHNl
bGYuZGVidWdfdGVzdCBhbmQgcmVzdWx0WyJzdGF0dXMiXSBpbiBbIlBBU1MiLCAiRkFJTCIsICJF
UlJPUiJdIGFuZCAiZXh0cmEiIGluIHJlc3VsdDoKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wu
YmFzZS5zZXRfd2luZG93KHNlbGYucHJvdG9jb2wuYmFzZS53aW5kb3dfaGFuZGxlcygpWzBdKQor
ICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX3JlZnRlc3RfYW5hbHl6ZXIodGVz
dCwgcmVzdWx0KQogCiAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIHJl
c3VsdCkKIApAQCAtMTAwMCw4ICsxMDYxLDcgQEAgY2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVt
ZW50YXRpb24oUmVmVGVzdEltcGxlbWVudGF0aW9uKToKICAgICAgICAgZGF0YSA9IHsic2NyZWVu
c2hvdCI6IHNjcmVlbnNob3QsICJpc1ByaW50Ijogc2VsZi5leGVjdXRvci5pc19wcmludH0KICAg
ICAgICAgaWYgc2VsZi5leGVjdXRvci5ncm91cF9tZXRhZGF0YSBpcyBub3QgTm9uZToKICAgICAg
ICAgICAgIGRhdGFbInVybENvdW50Il0gPSB7dXJsam9pbihzZWxmLmV4ZWN1dG9yLnNlcnZlcl91
cmwoa2V5WzBdKSwga2V5WzFdKTp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3Iga2V5LCB2YWx1ZSBpbiBpdGVyaXRlbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLmV4ZWN1dG9yLmdyb3VwX21ldGFkYXRhLmdldCgidXJsX2NvdW50Iiwg
e30pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBz
ZWxmLmV4ZWN1dG9yLmdyb3VwX21ldGFkYXRhLmdldCgidXJsX2NvdW50Iiwge30pLml0ZW1zKCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgPiAxfQogICAgICAgICBz
ZWxmLmNocm9tZV9zY29wZSA9IGNocm9tZV9zY29wZQogICAgICAgICBpZiBjaHJvbWVfc2NvcGU6
CkBAIC0xMDUzLDEyICsxMTEzLDMyIEBAIGNsYXNzIEludGVybmFsUmVmVGVzdEltcGxlbWVudGF0
aW9uKFJlZlRlc3RJbXBsZW1lbnRhdGlvbik6CiAKIAogY2xhc3MgR2Vja29Ecml2ZXJQcm90b2Nv
bChXZHNwZWNQcm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IEdlY2tvRHJpdmVyU2VydmVyCisg
ICAgc2VydmVyX2NscyA9IE5vbmUgICMgVG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cyB3ZSBzZXQg
dGhpcyBhdCBydW50aW1lCiAKIAogY2xhc3MgTWFyaW9uZXR0ZVdkc3BlY0V4ZWN1dG9yKFdkc3Bl
Y0V4ZWN1dG9yKToKICAgICBwcm90b2NvbF9jbHMgPSBHZWNrb0RyaXZlclByb3RvY29sCiAKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB3ZWJk
cml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywgdGltZW91dF9t
dWx0aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAorICAgICAgICAgICAgICAgICBkZWJ1Z19p
bmZvPU5vbmUsIGVudmlyb249Tm9uZSwgc3RhY2tmaXhfZGlyPU5vbmUsCisgICAgICAgICAgICAg
ICAgIHN5bWJvbHNfcGF0aD1Ob25lLCBsZWFrX3JlcG9ydF9maWxlPU5vbmUsIGFzYW49RmFsc2Us
CisgICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5vbmUsIGJyb3dzZXJfc2V0dGluZ3M9
Tm9uZSwgKiprd2FyZ3MpOgorCisgICAgICAgIGZyb20gLi5icm93c2Vycy5maXJlZm94IGltcG9y
dCBHZWNrb0RyaXZlclNlcnZlcgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgYnJv
d3Nlciwgc2VydmVyX2NvbmZpZywgd2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlw
bGllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVz
LCBkZWJ1Z19pbmZvPWRlYnVnX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJv
bj1lbnZpcm9uLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5wcm90b2NvbF9jbHMuc2VydmVyX2Ns
cyA9IEdlY2tvRHJpdmVyU2VydmVyCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdz
ID0geyJzdGFja2ZpeF9kaXIiOiBzdGFja2ZpeF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBzeW1ib2xzX3BhdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc2FuIjogYXNhbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImxlYWtfcmVwb3J0X2ZpbGUiOiBsZWFrX3JlcG9ydF9m
aWxlfQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IHsiZ3JvdXBf
bWV0YWRhdGEiOiBncm91cF9tZXRhZGF0YX0KKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9z
dGFydF9rd2FyZ3MudXBkYXRlKGJyb3dzZXJfc2V0dGluZ3MpCisKKwogCiBjbGFzcyBNYXJpb25l
dHRlQ3Jhc2h0ZXN0RXhlY3V0b3IoQ3Jhc2h0ZXN0RXhlY3V0b3IpOgogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGll
cj0xLApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JzZWxlbml1bS5weQppbmRleCBmZjI2MzUxZjg0ZWQuLjlkNjc1Y2IzZWY4NyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vs
ZW5pdW0ucHkKQEAgLTEsNCArMSwzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHNvY2tldApAQCAtNiw3ICs1
LDcgQEAgaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIGlt
cG9ydCB1dWlkCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KK2Zy
b20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCiAKIGZyb20gLmJhc2UgaW1wb3J0IChDYWxs
YmFja0hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLApAQCAtMTks
MTAgKzE4LDEwIEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNl
bGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29s
UGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAg
ICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AK
IAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMTgzLDYgKzE4MiwxNSBA
QCBjbGFzcyBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQYXJ0KToKICAg
ICAgICAgcmV0dXJuIGVsZW1lbnQuY2xpY2soKQogCiAKK2NsYXNzIFNlbGVuaXVtQ29va2llc1By
b3RvY29sUGFydChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6Cisg
ICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYg
ZGVsZXRlX2FsbF9jb29raWVzKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxl
dGluZyBhbGwgY29va2llcyIpCisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5kZWxldGVf
YWxsX2Nvb2tpZXMoKQorCisKIGNsYXNzIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQoU2Vu
ZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi53
ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTIxOSw2ICsyMjcsNyBAQCBjbGFz
cyBTZWxlbml1bVByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVt
VGVzdGhhcm5lc3NQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bVNlbGVj
dG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1DbGlja1Byb3RvY29s
UGFydCwKKyAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAg
ICAgICAgICBTZWxlbml1bVRlc3REcml2ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICBTZWxlbml1bUFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0XQpAQCAtMjY3LDggKzI3Niw5IEBA
IGNsYXNzIFNlbGVuaXVtUnVuKFRpbWVkUnVubmVyKToKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBzZWxmLmV4dHJhX3Rp
bWVvdXQpCiAgICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLkVycm9ySW5SZXNwb25zZUV4Y2VwdGlv
bjoKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0
aW9uIikKLSAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgICAgICBtc2cgPSAiTG9zdCBX
ZWJEcml2ZXIgY29ubmVjdGlvbiIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykK
KyAgICAgICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIHJ1
bl9mdW5jKHNlbGYpOgogICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jz
ZXJ2by5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CmluZGV4IGVmZTkzYWJjNjljNy4uZjMy
MjQyMWJkM2ZhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3JzZXJ2by5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBiYXNlNjQKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MK
QEAgLTcsNyArNiw2IEBAIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0
IHRyYWNlYmFjawogaW1wb3J0IHV1aWQKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfc3RyLCBpdGVy
aXRlbXMKIAogZnJvbSBtb3pwcm9jZXNzIGltcG9ydCBQcm9jZXNzSGFuZGxlcgogCkBAIC0yMyw3
ICsyMSw2IEBAIGZyb20gLmJhc2UgaW1wb3J0IChDb25uZWN0aW9ubGVzc1Byb3RvY29sLAogICAg
ICAgICAgICAgICAgICAgIFdkc3BlY1Byb3RvY29sKQogZnJvbSAucHJvY2VzcyBpbXBvcnQgUHJv
Y2Vzc1Rlc3RFeGVjdXRvcgogZnJvbSAuLmJyb3dzZXJzLmJhc2UgaW1wb3J0IGJyb3dzZXJfY29t
bWFuZAotZnJvbSAuLnByb2Nlc3MgaW1wb3J0IGNhc3RfZW52CiBmcm9tIC4ud2ViZHJpdmVyX3Nl
cnZlciBpbXBvcnQgU2Vydm9Ecml2ZXJTZXJ2ZXIKIAogCkBAIC00OCw3ICs0NSw3IEBAIGRlZiBi
dWlsZF9zZXJ2b19jb21tYW5kKHRlc3QsIHRlc3RfdXJsX2Z1bmMsIGJyb3dzZXIsIGJpbmFyeSwg
cGF1c2VfYWZ0ZXJfdGVzdCwKICAgICAgICAgYXJncyArPSBbIi1aIiwgZGVidWdfb3B0c10KICAg
ICBmb3Igc3R5bGVzaGVldCBpbiBicm93c2VyLnVzZXJfc3R5bGVzaGVldHM6CiAgICAgICAgIGFy
Z3MgKz0gWyItLXVzZXItc3R5bGVzaGVldCIsIHN0eWxlc2hlZXRdCi0gICAgZm9yIHByZWYsIHZh
bHVlIGluIGl0ZXJpdGVtcyh0ZXN0LmVudmlyb25tZW50LmdldCgncHJlZnMnLCB7fSkpOgorICAg
IGZvciBwcmVmLCB2YWx1ZSBpbiB0ZXN0LmVudmlyb25tZW50LmdldCgncHJlZnMnLCB7fSkuaXRl
bXMoKToKICAgICAgICAgYXJncyArPSBbIi0tcHJlZiIsICIlcz0lcyIgJSAocHJlZiwgdmFsdWUp
XQogICAgIGlmIGJyb3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aDoKICAgICAgICAgYXJncyArPSBb
Ii0tY2VydGlmaWNhdGUtcGF0aCIsIGJyb3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aF0KQEAgLTEw
MywxMSArMTAwLDExIEBAIGNsYXNzIFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvcihQcm9jZXNzVGVz
dEV4ZWN1dG9yKToKICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYu
Y29tbWFuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NP
dXRwdXRMaW5lPVtzZWxmLm9uX291dHB1dF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvbkZpbmlzaD1zZWxmLm9uX2ZpbmlzaCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0b3JlT3V0cHV0PUZhbHNlKQogICAgICAgICAgICAgc2VsZi5wcm9jLnJ1
bigpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBv
cGVuKHNlbGYuY29tbWFuZCwgZW52PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICBzZWxmLnBy
b2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWVudikKIAogICAgICAgICB0
cnk6CiAgICAgICAgICAgICB0aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211
bHRpcGxpZXIKQEAgLTIzNSw3ICsyMzIsNyBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQ
cm9jZXNzVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmludGVyYWN0aXZl
OgogICAgICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYuY29tbWFu
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0
cHV0TGluZT1bc2VsZi5vbl9vdXRwdXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudj1lbnYpCiAKIAogICAgICAgICAgICAgICAgIHRyeToKQEAg
LTI0Nyw3ICsyNDQsNyBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4
ZWN1dG9yKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNvbW1hbmQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9l
bnYoZW52KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dj1lbnYpCiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBydiA9IHNl
bGYucHJvYy53YWl0KCkKICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6
CkBAIC0yNjQsNyArMjYxLDkgQEAgY2xhc3MgU2Vydm9SZWZUZXN0RXhlY3V0b3IoUHJvY2Vzc1Rl
c3RFeGVjdXRvcik6CiAgICAgICAgICAgICB3aXRoIG9wZW4ob3V0cHV0X3BhdGgsICJyYiIpIGFz
IGY6CiAgICAgICAgICAgICAgICAgIyBNaWdodCBuZWVkIHRvIHN0cmlwIHZhcmlhYmxlIGhlYWRl
cnMgb3Igc29tZXRoaW5nIGhlcmUKICAgICAgICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgW2Vuc3VyZV9zdHIoYmFzZTY0LmI2NGVuY29kZShk
YXRhKSldCisgICAgICAgICAgICAgICAgIyBSZXR1cm5pbmcgdGhlIHNjcmVlbnNob3QgYXMgYSBz
dHJpbmcgY291bGQgcG90ZW50aWFsbHkgYmUgYXZvaWRlZCwKKyAgICAgICAgICAgICAgICAjIHNl
ZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjg5Mjku
CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIFtiYXNlNjQuYjY0ZW5jb2RlKGRhdGEpLmRl
Y29kZSgpXQogCiAgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHJlc3VsdCA9
IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkKQEAgLTM1NywxMSArMzU2LDExIEBA
IGNsYXNzIFNlcnZvQ3Jhc2h0ZXN0RXhlY3V0b3IoUHJvY2Vzc1Rlc3RFeGVjdXRvcik6CiAKICAg
ICAgICAgaWYgbm90IHNlbGYuaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICBzZWxmLnByb2MgPSBQ
cm9jZXNzSGFuZGxlcihjb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW52PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RvcmVPdXRwdXQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwg
ZW52PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBv
cGVuKGNvbW1hbmQsIGVudj1lbnYpCiAKICAgICAgICAgc2VsZi5wcm9jLndhaXQoKQogCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNl
cnZvZHJpdmVyLnB5CmluZGV4IDJjZDFkYmYzYWQwNi4uMDM5YmNkMTRlMmJlIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2
b2RyaXZlci5weQpAQCAtMTAsNyArMTAsNiBAQCBmcm9tIC5iYXNlIGltcG9ydCAoUHJvdG9jb2ws
CiAgICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKICAgICAgICAgICAgICAg
ICAgICBUaW1lZFJ1bm5lciwKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCi1mcm9t
IC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0
IHdhaXRfZm9yX3NlcnZpY2UKIAogd2ViZHJpdmVyID0gTm9uZQpAQCAtMTg0LDggKzE4Myw5IEBA
IGNsYXNzIFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1
dG9yKToKICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnNlc3Npb24udGltZW91dHMuc2Ny
aXB0ID0gdGltZW91dAogICAgICAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAg
ICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVy
cm9yKCJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9uIikKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RvcAorICAgICAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIgor
ICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIsIG1zZykKIAogICAgICAgICBzdWNjZXNzLCBkYXRhID0g
U2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5sb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLApAQCAtMjc2LDggKzI3Niw5IEBA
IGNsYXNzIFNlcnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAg
ICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLnRpbWVvdXRzLnNjcmlwdCA9IHRp
bWVvdXQKICAgICAgICAgICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CiAgICAgICAgICAg
ICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9z
dCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAg
ICAgICAgICAgICAgICBtc2cgPSAiTG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIKKyAgICAgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAgICAgICAgICAgcmV0dXJuICgi
SU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICAgICAgcmV0dXJuIFNlcnZvV2ViRHJpdmVyUnVu
KHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2Ny
ZWVuc2hvdCwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9leGVjdXRvcndlYmRyaXZlci5weQppbmRleCBiYWQ1ZmQwNzIyMzcuLjZkNTkxNmE2YWZiYyAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcndlYmRyaXZlci5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0CiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0CkBA
IC02LDcgKzUsNyBAQCBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNl
YmFjawogaW1wb3J0IHV1aWQKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJs
am9pbgorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAuYmFzZSBpbXBv
cnQgKENhbGxiYWNrSGFuZGxlciwKICAgICAgICAgICAgICAgICAgICBDcmFzaHRlc3RFeGVjdXRv
ciwKQEAgLTIwLDIyICsxOSwyMyBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEJhc2VQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sLAogICAgICAgICAgICAgICAg
ICAgICAgICBTZWxlY3RvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQ2xp
Y2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZXNQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRLZXlzUHJvdG9jb2xQYXJ0LAogICAgICAg
ICAgICAgICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgICAgICAgVGVzdERyaXZlclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgR2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAg
ICBTZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgICAgICBWaXJ0
dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCkKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBT
dG9wCisgICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQ
YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29sUGFydCkKIAotaW1wb3J0
IHdlYmRyaXZlciBhcyBjbGllbnQKK2Zyb20gd2ViZHJpdmVyLmNsaWVudCBpbXBvcnQgU2Vzc2lv
bgogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pCiAKIAogY2xhc3MgV2ViRHJpdmVyQ2FsbGJhY2tIYW5kbGVyKENhbGxiYWNrSGFu
ZGxlcik6Ci0gICAgdW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50ZWRFcnJvciwgY2xp
ZW50LlVua25vd25Db21tYW5kRXhjZXB0aW9uKQorICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5v
dEltcGxlbWVudGVkRXJyb3IsIGVycm9yLlVua25vd25Db21tYW5kRXhjZXB0aW9uKQogCiAKIGNs
YXNzIFdlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CkBAIC00OSw3
ICs0OSw3IEBAIGNsYXNzIFdlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFy
dCk6CiAgICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgogICAgICAgICB0cnk6CiAg
ICAgICAgICAgICBzZWxmLndlYmRyaXZlci50aW1lb3V0cy5zY3JpcHQgPSB0aW1lb3V0Ci0gICAg
ICAgIGV4Y2VwdCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICBleGNlcHQgZXJy
b3IuV2ViRHJpdmVyRXhjZXB0aW9uOgogICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGh0dHBzOi8v
YnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDU3CiAg
ICAgICAgICAgICBib2R5ID0geyJ0eXBlIjogInNjcmlwdCIsICJtcyI6IHRpbWVvdXQgKiAxMDAw
fQogICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1Qi
LCAidGltZW91dHMiLCBib2R5KQpAQCAtNzEsMTYgKzcxLDE2IEBAIGNsYXNzIFdlYkRyaXZlckJh
c2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAgICAgICAgIHdoaWxlIFRydWU6CiAg
ICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9h
c3luY19zY3JpcHQoIiIpCi0gICAgICAgICAgICBleGNlcHQgKGNsaWVudC5UaW1lb3V0RXhjZXB0
aW9uLAotICAgICAgICAgICAgICAgICAgICBjbGllbnQuU2NyaXB0VGltZW91dEV4Y2VwdGlvbiwK
LSAgICAgICAgICAgICAgICAgICAgY2xpZW50LkphdmFzY3JpcHRFcnJvckV4Y2VwdGlvbik6Cisg
ICAgICAgICAgICBleGNlcHQgKGVycm9yLlRpbWVvdXRFeGNlcHRpb24sCisgICAgICAgICAgICAg
ICAgICAgIGVycm9yLlNjcmlwdFRpbWVvdXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAg
IGVycm9yLkphdmFzY3JpcHRFcnJvckV4Y2VwdGlvbik6CiAgICAgICAgICAgICAgICAgIyBBIEph
dmFzY3JpcHRFcnJvckV4Y2VwdGlvbiB3aWxsIGhhcHBlbiB3aGVuIHdlIG5hdmlnYXRlOwogICAg
ICAgICAgICAgICAgICMgYnkgaWdub3JpbmcgaXQgaXQncyBwb3NzaWJsZSB0byByZWxvYWQgdGhl
IHRlc3Qgd2hpbHN0IHRoZQogICAgICAgICAgICAgICAgICMgaGFybmVzcyByZW1haW5zIHBhdXNl
ZAogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVv
dXQsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudC5Ob1N1Y2hXaW5kb3dFeGNlcHRpb24sCi0g
ICAgICAgICAgICAgICAgICAgIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24sCisgICAgICAg
ICAgICAgICAgICAgIGVycm9yLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3IuVW5rbm93bkVycm9yRXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICAgICBJ
T0Vycm9yKToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKQEAgLTExNiw3ICsxMTYsNyBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3Rv
Y29sUGFydChUZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CiAgICAgICAgICAgICB0cnk6CiAgICAg
ICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZSA9IGhhbmRsZQogICAgICAg
ICAgICAgICAgIHNlbGYud2ViZHJpdmVyLndpbmRvdy5jbG9zZSgpCi0gICAgICAgICAgICBleGNl
cHQgY2xpZW50Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKKyAgICAgICAgICAgIGV4Y2VwdCBlcnJv
ci5Ob1N1Y2hXaW5kb3dFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBz
ZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0gc2VsZi5ydW5uZXJfaGFuZGxlCiAgICAgICAg
IHJldHVybiBzZWxmLnJ1bm5lcl9oYW5kbGUKQEAgLTE5MCw2ICsxOTAsMTUgQEAgY2xhc3MgV2Vi
RHJpdmVyQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1
cm4gZWxlbWVudC5jbGljaygpCiAKIAorY2xhc3MgV2ViRHJpdmVyQ29va2llc1Byb3RvY29sUGFy
dChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNl
bGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZGVsZXRlX2Fs
bF9jb29raWVzKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwg
Y29va2llcyIpCisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiREVMRVRFIiwgImNvb2tpZSIpCisKKwogY2xhc3MgV2ViRHJpdmVyU2VuZEtleXNQcm90
b2NvbFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAg
ICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTE5Nyw3ICsy
MDYsNyBAQCBjbGFzcyBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3Rv
Y29sUGFydCk6CiAgICAgZGVmIHNlbmRfa2V5cyhzZWxmLCBlbGVtZW50LCBrZXlzKToKICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9rZXlzKGtleXMpCi0gICAg
ICAgIGV4Y2VwdCBjbGllbnQuVW5rbm93bkVycm9yRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGV4
Y2VwdCBlcnJvci5Vbmtub3duRXJyb3JFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICMgd29y
a2Fyb3VuZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9k
ZXRhaWw/aWQ9MTk5OQogICAgICAgICAgICAgaWYgKGUuaHR0cF9zdGF0dXMgIT0gNTAwIG9yCiAg
ICAgICAgICAgICAgICAgZS5zdGF0dXNfY29kZSAhPSAidW5rbm93biBlcnJvciIpOgpAQCAtMjI3
LDggKzIzNiwxMiBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFRlc3RE
cml2ZXJQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgb2JqWyJtZXNzYWdlIl0gPSBzdHIobWVz
c2FnZSkKICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5wb3N0
TWVzc2FnZSglcywgJyonKSIgJSBqc29uLmR1bXBzKG9iaikpCiAKLSAgICBkZWYgX3N3aXRjaF90
b19mcmFtZShzZWxmLCBmcmFtZV9udW1iZXIpOgotICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0
Y2hfZnJhbWUoZnJhbWVfbnVtYmVyKQorICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGlu
ZGV4X29yX2VsZW0pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5z
d2l0Y2hfZnJhbWUoaW5kZXhfb3JfZWxlbSkKKyAgICAgICAgZXhjZXB0IChlcnJvci5TdGFsZUVs
ZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgZXJyb3IuTm9TdWNoRnJh
bWVFeGNlcHRpb24pIGFzIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yIGZyb20gZQog
CiAgICAgZGVmIF9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlbGYpOgogICAgICAgICBzZWxmLndl
YmRyaXZlci5zd2l0Y2hfZnJhbWUoInBhcmVudCIpCkBAIC0yODMsMTcgKzI5NiwyNCBAQCBjbGFz
cyBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVu
dGljYXRvclByb3RvY29sUGFydAogICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9z
ZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcy91diIgJSBh
dXRoZW50aWNhdG9yX2lkLCB1dikKIAogCitjbGFzcyBXZWJEcml2ZXJEZWJ1Z1Byb3RvY29sUGFy
dChEZWJ1Z1Byb3RvY29sUGFydCk6CisgICAgZGVmIGxvYWRfZGV2dG9vbHMoc2VsZik6CisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisKIGNsYXNzIFdlYkRyaXZlclByb3Rv
Y29sKFByb3RvY29sKToKICAgICBpbXBsZW1lbnRzID0gW1dlYkRyaXZlckJhc2VQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAg
ICAgICAgICAgICAgV2ViRHJpdmVyQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAg
ICBXZWJEcml2ZXJDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJBY3Rp
b25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclRlc3RE
cml2ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJHZW5lcmF0ZVRl
c3RSZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZXRQZXJt
aXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVmlydHVhbEF1
dGhlbnRpY2F0b3JQcm90b2NvbFBhcnRdCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJWaXJ0
dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZl
ckRlYnVnUHJvdG9jb2xQYXJ0XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBi
cm93c2VyLCBjYXBhYmlsaXRpZXMsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoV2ViRHJpdmVy
UHJvdG9jb2wsIHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQpAQCAtMzA4LDcgKzMy
OCw3IEBAIGNsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgaG9zdCwg
cG9ydCA9IHNlbGYudXJsLnNwbGl0KCI6IilbMV0uc3RyaXAoIi8iKSwgc2VsZi51cmwuc3BsaXQo
JzonKVstMV0uc3RyaXAoIi8iKQogCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHsiYWx3YXlzTWF0
Y2giOiBzZWxmLmNhcGFiaWxpdGllc30KLSAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBjbGllbnQu
U2Vzc2lvbihob3N0LCBwb3J0LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBz
ZWxmLndlYmRyaXZlciA9IFNlc3Npb24oaG9zdCwgcG9ydCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxp
dGllcykKICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc3RhcnQoKQogCiAgICAgZGVmIHRlYXJkb3du
KHNlbGYpOgpAQCAtMzMxLDcgKzM1MSw3IEBAIGNsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3Rv
Y29sKToKICAgICAgICAgICAgICMgNSBzZWNvbmRzIG9mIGV4dHJhX3RpbWVvdXQgd2UgaGF2ZSBh
cyBtYXhpbXVtIHRvIGVuZCB0aGUgdGVzdCBiZWZvcmUKICAgICAgICAgICAgICMgdGhlIGV4dGVy
bmFsIHRpbWVvdXQgZnJvbSB0ZXN0cnVubmVyIHRyaWdnZXJzLgogICAgICAgICAgICAgc2VsZi53
ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ3aW5kb3ciLCB0aW1lb3V0PTIp
Ci0gICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIGNsaWVudC5Vbmtub3duRXJyb3JFeGNl
cHRpb24sIGNsaWVudC5JbnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0
IChzb2NrZXQudGltZW91dCwgZXJyb3IuVW5rbm93bkVycm9yRXhjZXB0aW9uLCBlcnJvci5JbnZh
bGlkU2Vzc2lvbklkRXhjZXB0aW9uKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAg
ICByZXR1cm4gVHJ1ZQogCkBAIC0zNDMsMTkgKzM2MywyMCBAQCBjbGFzcyBXZWJEcml2ZXJSdW4o
VGltZWRSdW5uZXIpOgogICAgIGRlZiBzZXRfdGltZW91dChzZWxmKToKICAgICAgICAgdHJ5Ogog
ICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHNlbGYudGltZW91dCAr
IHNlbGYuZXh0cmFfdGltZW91dCkKLSAgICAgICAgZXhjZXB0IGNsaWVudC5Vbmtub3duRXJyb3JF
eGNlcHRpb246Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBXZWJEcml2ZXIg
Y29ubmVjdGlvbiIpCi0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICBleGNlcHQgZXJy
b3IuVW5rbm93bkVycm9yRXhjZXB0aW9uOgorICAgICAgICAgICAgbXNnID0gIkxvc3QgV2ViRHJp
dmVyIGNvbm5lY3Rpb24iCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcihtc2cpCisgICAg
ICAgICAgICByZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIsIG1zZykKIAogICAgIGRlZiBydW5fZnVu
YyhzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBz
ZWxmLmZ1bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKLSAgICAgICAg
ZXhjZXB0IChjbGllbnQuVGltZW91dEV4Y2VwdGlvbiwgY2xpZW50LlNjcmlwdFRpbWVvdXRFeGNl
cHRpb24pOgorICAgICAgICBleGNlcHQgKGVycm9yLlRpbWVvdXRFeGNlcHRpb24sIGVycm9yLlNj
cmlwdFRpbWVvdXRFeGNlcHRpb24pOgogICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwg
KCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkKLSAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91
dCwgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbik6CisgICAgICAgIGV4Y2VwdCAoc29ja2V0
LnRpbWVvdXQsIGVycm9yLlVua25vd25FcnJvckV4Y2VwdGlvbik6CiAgICAgICAgICAgICBzZWxm
LnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgotICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoZSwgY2xpZW50LldlYkRyaXZlckV4
Y2VwdGlvbikgYW5kCisgICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShlLCBlcnJvci5XZWJEcml2
ZXJFeGNlcHRpb24pIGFuZAogICAgICAgICAgICAgICAgICAgICBlLmh0dHBfc3RhdHVzID09IDQw
OCBhbmQKICAgICAgICAgICAgICAgICAgICAgZS5zdGF0dXNfY29kZSA9PSAiYXN5bmNocm9ub3Vz
IHNjcmlwdCB0aW1lb3V0Iik6CiAgICAgICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGZvciBodHRw
czovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MjAw
MQpAQCAtNDQ5LDcgKzQ3MCw3IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Io
VGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyZXN1
bHQsIGxpc3QpIG9yIGxlbihyZXN1bHQpICE9IDI6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgICAgICAgICBpc19hbGl2ZSA9IHNlbGYuaXNfYWxpdmUoKQotICAgICAgICAgICAg
ICAgIGV4Y2VwdCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIGV4
Y2VwdCBlcnJvci5XZWJEcml2ZXJFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgICAgIGlzX2Fs
aXZlID0gRmFsc2UKIAogICAgICAgICAgICAgICAgIGlmIG5vdCBpc19hbGl2ZToKQEAgLTQ4Myw3
ICs1MDQsNyBAQCBpZiAobG9jYXRpb24uaHJlZiA9PT0gImFib3V0OmJsYW5rIikgewogfSBlbHNl
IHsKICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsICgpID0+
IHtpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gImxvYWRpbmciKSB7Y2FsbGJhY2sodHJ1ZSl9
fSk7CiB9IiIiLCBhc3luY2hyb25vdXM9VHJ1ZSkKLSAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQu
SmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjZXB0IGVycm9yLkphdmFz
Y3JpcHRFcnJvckV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAjIFdlIGNhbiBnZXQgYW4gZXJy
b3IgaGVyZSBpZiB0aGUgc2NyaXB0IHJ1bnMgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsKICAg
ICAgICAgICAgICAgICAjIGRvY3VtZW50IGJlZm9yZSBpdCBoYXMgbmF2aWdhdGVkLCB3aXRoIHRo
ZSBkcml2ZXIgcmV0dXJuaW5nIGFuIGVycm9yCiAgICAgICAgICAgICAgICAgIyBpbmRpY2F0aW5n
IHRoYXQgdGhlIGRvY3VtZW50IHdhcyB1bmxvYWRlZApAQCAtNDk3LDcgKzUxOCw3IEBAIGNsYXNz
IFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0
aXBsaWVyPTEsCiAgICAgICAgICAgICAgICAgIHNjcmVlbnNob3RfY2FjaGU9Tm9uZSwgY2xvc2Vf
YWZ0ZXJfZG9uZT1UcnVlLAotICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIGNhcGFi
aWxpdGllcz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9u
ZSwgY2FwYWJpbGl0aWVzPU5vbmUsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToKICAgICAg
ICAgIiIiV2ViRHJpdmVyLWJhc2VkIGV4ZWN1dG9yIGZvciByZWZ0ZXN0cyIiIgogICAgICAgICBS
ZWZUZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvZ2dlciwKQEAgLTUxMiw2ICs1MzMsNyBAQCBjbGFzcyBXZWJEcml2ZXJSZWZUZXN0
RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbiA9
IFJlZlRlc3RJbXBsZW1lbnRhdGlvbihzZWxmKQogICAgICAgICBzZWxmLmNsb3NlX2FmdGVyX2Rv
bmUgPSBjbG9zZV9hZnRlcl9kb25lCiAgICAgICAgIHNlbGYuaGFzX3dpbmRvdyA9IEZhbHNlCisg
ICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKIAogICAgICAgICB3aXRoIG9wZW4o
b3MucGF0aC5qb2luKGhlcmUsICJ0ZXN0LXdhaXQuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNl
bGYud2FpdF9zY3JpcHQgPSBmLnJlYWQoKSAlIHsiY2xhc3NuYW1lIjogInJlZnRlc3Qtd2FpdCJ9
CkBAIC01MjksMTMgKzU1MSwxNiBAQCBjbGFzcyBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVm
VGVzdEV4ZWN1dG9yKToKICAgICAgICAgKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxm
LnByb3RvY29sLndlYmRyaXZlci53aW5kb3cucG9zaXRpb24gPSAoMCwgMCkKLSAgICAgICAgZXhj
ZXB0IGNsaWVudC5JbnZhbGlkQXJndW1lbnRFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCBlcnJv
ci5JbnZhbGlkQXJndW1lbnRFeGNlcHRpb246CiAgICAgICAgICAgICAjIFNhZmFyaSAxMiB0aHJv
d3Mgd2l0aCAwIG9yIDEsIHRyZWF0aW5nIHRoZW0gYXMgYm9vbHM7IGZpeGVkIGluIFNUUAogICAg
ICAgICAgICAgc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIud2luZG93LnBvc2l0aW9uID0gKDIsIDIp
CiAgICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLndpbmRvdy5zaXplID0gKDgwMCArIHdp
ZHRoX29mZnNldCwgNjAwICsgaGVpZ2h0X29mZnNldCkKIAogICAgICAgICByZXN1bHQgPSBzZWxm
LmltcGxlbWVudGF0aW9uLnJ1bl90ZXN0KHRlc3QpCiAKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190
ZXN0IGFuZCByZXN1bHRbInN0YXR1cyJdIGluIFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIl0gYW5k
ICJleHRyYSIgaW4gcmVzdWx0OgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2Fk
X3JlZnRlc3RfYW5hbHl6ZXIodGVzdCwgcmVzdWx0KQorCiAgICAgICAgIHJldHVybiBzZWxmLmNv
bnZlcnRfcmVzdWx0KHRlc3QsIHJlc3VsdCkKIAogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYsIHRl
c3QsIHZpZXdwb3J0X3NpemUsIGRwaSwgcGFnZV9yYW5nZXMpOgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L3Byb3RvY29sLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CmluZGV4IGJkNzY4YjEwNzNjNy4uZjk1
NDdhZDkwNGJjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3By
b3RvY29sLnB5CkBAIC0xLDYgKzEsNyBAQAogaW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIGFiYyBp
bXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKK2Zyb20gdHlwaW5nIGltcG9ydCBDbGFzc1Zh
ciwgTGlzdCwgVHlwZQogCiAKIGNsYXNzIFByb3RvY29sKG9iamVjdCk6CkBAIC0xNiw3ICsxNyw3
IEBAIGNsYXNzIFByb3RvY29sKG9iamVjdCk6CiAgICAgOnBhcmFtIEJyb3dzZXIgYnJvd3Nlcjog
VGhlIEJyb3dzZXIgdXNpbmcgdGhpcyBwcm90b2NvbCIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBB
QkNNZXRhCiAKLSAgICBpbXBsZW1lbnRzID0gW10KKyAgICBpbXBsZW1lbnRzID0gW10gICMgdHlw
ZTogQ2xhc3NWYXJbTGlzdFtUeXBlW1Byb3RvY29sUGFydF1dXQogCiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyKToKICAgICAgICAgc2VsZi5leGVjdXRvciA9IGV4ZWN1
dG9yCkBAIC04Miw3ICs4Myw3IEBAIGNsYXNzIFByb3RvY29sUGFydChvYmplY3QpOgogICAgIDpw
YXJhbSBQcm90b2NvbCBwYXJlbnQ6IFRoZSBwYXJlbnQgcHJvdG9jb2wiIiIKICAgICBfX21ldGFj
bGFzc19fID0gQUJDTWV0YQogCi0gICAgbmFtZSA9IE5vbmUKKyAgICBuYW1lID0gTm9uZSAgIyB0
eXBlOiBDbGFzc1ZhcltzdHJdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKICAg
ICAgICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKQEAgLTI4MSw2ICsyODIsMTggQEAgY2xhc3MgQ2xp
Y2tQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcGFzcwogCiAKK2NsYXNzIENv
b2tpZXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZv
ciBtYW5hZ2luZyBjb29raWVzIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAg
IG5hbWUgPSAiY29va2llcyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBkZWxldGVf
YWxsX2Nvb2tpZXMoc2VsZik6CisgICAgICAgICIiIkRlbGV0ZSBhbGwgY29va2llcy4iIiIKKyAg
ICAgICAgcGFzcworCisKIGNsYXNzIFNlbmRLZXlzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6
CiAgICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgcGVyZm9ybWluZyB0cnVzdGVkIGNsaWNrcyIiIgog
ICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCkBAIC0zNTgsNDMgKzM3MSw3MiBAQCBjbGFzcyBU
ZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAgIDpwYXJhbSBzdHIg
bWVzc2FnZTogQWRkaXRpb25hbCBkYXRhIHRvIGFkZCB0byB0aGUgbWVzc2FnZS4iIiIKICAgICAg
ICAgcGFzcwogCi0gICAgZGVmIHN3aXRjaF90b193aW5kb3coc2VsZiwgd3B0cnVubmVyX2lkKToK
KyAgICBkZWYgc3dpdGNoX3RvX3dpbmRvdyhzZWxmLCB3cHRydW5uZXJfaWQsIGluaXRpYWxfd2lu
ZG93PU5vbmUpOgogICAgICAgICAiIiJTd2l0Y2ggdG8gYSB3aW5kb3cgZ2l2ZW4gYSB3cHRydW5u
ZXIgd2luZG93IGlkCiAKLSAgICAgICAgOnBhcmFtIHN0ciB3cHRydW5uZXJfaWQ6IHdpbmRvdyBp
ZCIiIgorICAgICAgICA6cGFyYW0gc3RyIHdwdHJ1bm5lcl9pZDogVGVzdGRyaXZlci1zcGVjaWZp
YyBpZCBmb3IgdGhlIHRhcmdldCB3aW5kb3cKKyAgICAgICAgOnBhcmFtIHN0ciBpbml0aWFsX3dp
bmRvdzogV2ViRHJpdmVyIHdpbmRvdyBpZCBmb3IgdGhlIHRlc3Qgd2luZG93IiIiCiAgICAgICAg
IGlmIHdwdHJ1bm5lcl9pZCBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAg
aWYgaW5pdGlhbF93aW5kb3cgaXMgTm9uZToKKyAgICAgICAgICAgIGluaXRpYWxfd2luZG93ID0g
c2VsZi5wYXJlbnQuYmFzZS5jdXJyZW50X3dpbmRvdworCiAgICAgICAgIHN0YWNrID0gW3N0cihp
dGVtKSBmb3IgaXRlbSBpbiBzZWxmLnBhcmVudC5iYXNlLndpbmRvd19oYW5kbGVzKCldCisgICAg
ICAgIGZpcnN0ID0gVHJ1ZQogICAgICAgICB3aGlsZSBzdGFjazoKICAgICAgICAgICAgIGl0ZW0g
PSBzdGFjay5wb3AoKQorCiAgICAgICAgICAgICBpZiBpdGVtIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IGZpcnN0IGlzIEZhbHNlCiAgICAgICAgICAgICAgICAgc2VsZi5fc3dpdGNo
X3RvX3BhcmVudF9mcmFtZSgpCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IGVsaWYgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgotICAgICAgICAgICAgICAgIHNlbGYucGFyZW50
LmJhc2Uuc2V0X3dpbmRvdyhpdGVtKQorCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0s
IHN0cik6CisgICAgICAgICAgICAgICAgaWYgbm90IGZpcnN0IG9yIGl0ZW0gIT0gaW5pdGlhbF93
aW5kb3c6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyZW50LmJhc2Uuc2V0X3dpbmRvdyhp
dGVtKQorICAgICAgICAgICAgICAgIGZpcnN0ID0gRmFsc2UKICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fc3dpdGNoX3RvX2ZyYW1lKGl0ZW0pCisgICAgICAgICAgICAg
ICAgYXNzZXJ0IGZpcnN0IGlzIEZhbHNlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9zd2l0Y2hfdG9fZnJhbWUoaXRlbSkKKyAgICAgICAgICAgICAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgZnJhbWUgbm8gbG9u
Z2VyIGV4aXN0cywgb3IgZG9lc24ndCBoYXZlIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQsIHNv
IGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBoYW5kbGVfd2luZG93X2lkID0gc2VsZi5wYXJlbnQuYmFzZS5l
eGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdy5fX3dwdHJ1bm5lcl9pZCIpCi0gICAgICAgICAg
ICAgICAgaWYgc3RyKGhhbmRsZV93aW5kb3dfaWQpID09IHdwdHJ1bm5lcl9pZDoKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgIyBHZXQgdGhlIHdpbmRvdyBpZCBh
bmQgYSBsaXN0IG9mIGVsZW1lbnRzIGNvbnRhaW5pbmcgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRz
LgorICAgICAgICAgICAgICAgICMgRm9yIGVtYmVkIHdlIGNhbid0IHRlbGwgZnByIHN1cmUgaWYg
dGhlcmUncyBhIG5lc3RlZCBicm93c2luZyBjb250ZXh0LCBzbyBhbHdheXMgcmV0dXJuIGl0Cisg
ICAgICAgICAgICAgICAgIyBhbmQgZmFpbCBsYXRlciBpZiB0aGVyZSBpc24ndAorICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoIiIiCisgICAg
ICAgICAgICAgICAgbGV0IGNvbnRleHRQYXJlbnRzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJmcmFtZSwgaWZyYW1lLCBlbWJlZCwgb2JqZWN0IikpCisgICAgICAgICAg
ICAgICAgICAgIC5maWx0ZXIoZWxlbSA9PiBlbGVtLmxvY2FsTmFtZSAhPT0gImVtYmVkIiA/IChl
bGVtLmNvbnRlbnRXaW5kb3cgIT09IG51bGwpIDogdHJ1ZSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIFt3aW5kb3cuX193cHRydW5uZXJfaWQsIGNvbnRleHRQYXJlbnRzXSIiIikKICAgICAgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAg
ZnJhbWVfY291bnQgPSBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2lu
ZG93Lmxlbmd0aCIpCi0gICAgICAgICAgICAjIE5vbmUgaGVyZSBtYWtlcyB1cyBzd2l0Y2ggYmFj
ayB0byB0aGUgcGFyZW50IGFmdGVyIHdlJ3ZlIHByb2Nlc3NlZCBhbGwgdGhlIHN1YmZyYW1lcwot
ICAgICAgICAgICAgc3RhY2suYXBwZW5kKE5vbmUpCi0gICAgICAgICAgICBpZiBmcmFtZV9jb3Vu
dDoKLSAgICAgICAgICAgICAgICBzdGFjay5leHRlbmQocmV2ZXJzZWQocmFuZ2UoMCwgZnJhbWVf
Y291bnQpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBpZiByZXN1
bHQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIFdpdGggbWFyaW9uZXR0ZSBhdCBsZWFzdCB0
aGlzIGlzIHBvc3NpYmxlIGlmIHRoZSBjb250ZW50IHByb2Nlc3MgY3Jhc2hlZC4gTm90IHF1aXRl
CisgICAgICAgICAgICAgICAgIyBzdXJlIGhvdyB3ZSB3YW50IHRvIGhhbmRsZSB0aGF0IGNhc2Uu
CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaGFuZGxlX3dpbmRvd19p
ZCwgbmVzdGVkX2NvbnRleHRfY29udGFpbmVycyA9IHJlc3VsdAorCisgICAgICAgICAgICBpZiBo
YW5kbGVfd2luZG93X2lkIGFuZCBzdHIoaGFuZGxlX3dpbmRvd19pZCkgPT0gd3B0cnVubmVyX2lk
OgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBmb3IgZWxlbSBpbiByZXZl
cnNlZChuZXN0ZWRfY29udGV4dF9jb250YWluZXJzKToKKyAgICAgICAgICAgICAgICAjIE5vbmUg
aGVyZSBtYWtlcyB1cyBzd2l0Y2ggYmFjayB0byB0aGUgcGFyZW50IGFmdGVyIHdlJ3ZlIHByb2Nl
c3NlZCB0aGUgZnJhbWUKKyAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmQoTm9uZSkKKyAgICAg
ICAgICAgICAgICBzdGFjay5hcHBlbmQoZWxlbSkKIAogICAgICAgICByYWlzZSBFeGNlcHRpb24o
IldpbmRvdyB3aXRoIGlkICVzIG5vdCBmb3VuZCIgJSB3cHRydW5uZXJfaWQpCiAKICAgICBAYWJz
dHJhY3RtZXRob2QKLSAgICBkZWYgX3N3aXRjaF90b19mcmFtZShzZWxmLCBpbmRleCk6CisgICAg
ZGVmIF9zd2l0Y2hfdG9fZnJhbWUoc2VsZiwgaW5kZXhfb3JfZWxlbSk6CiAgICAgICAgICIiIlN3
aXRjaCB0byBhIGZyYW1lIGluIHRoZSBjdXJyZW50IHdpbmRvdwogCi0gICAgICAgIDpwYXJhbSBp
bnQgaW5kZXg6IEZyYW1lIGlkIiIiCisgICAgICAgIDpwYXJhbSBpbnQgaW5kZXhfb3JfZWxlbTog
RnJhbWUgaWQgb3IgY29udGFpbmVyIGVsZW1lbnQiIiIKICAgICAgICAgcGFzcwogCiAgICAgQGFi
c3RyYWN0bWV0aG9kCkBAIC01MDMsMyArNTQ1LDMyIEBAIGNsYXNzIFByaW50UHJvdG9jb2xQYXJ0
KFByb3RvY29sUGFydCk6CiAgICAgZGVmIHJlbmRlcl9hc19wZGYoc2VsZiwgd2lkdGgsIGhlaWdo
dCk6CiAgICAgICAgICIiIk91dHB1dCBkb2N1bWVudCBhcyBQREYiIiIKICAgICAgICAgcGFzcwor
CisKK2NsYXNzIERlYnVnUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9j
b2wgcGFydCBmb3IgZGVidWdnaW5nIHRlc3QgZmFpbHVyZXMuIiIiCisgICAgX19tZXRhY2xhc3Nf
XyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAiZGVidWciCisKKyAgICBAYWJzdHJhY3RtZXRob2QK
KyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgIiIiTG9hZCBkZXZ0b29scyBp
biB0aGUgY3VycmVudCB3aW5kb3ciIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIGxvYWRfcmVm
dGVzdF9hbmFseXplcihzZWxmLCB0ZXN0LCByZXN1bHQpOgorICAgICAgICBpbXBvcnQgaW8KKyAg
ICAgICAgaW1wb3J0IG1vemxvZworICAgICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgcXVv
dGUsIHVybGpvaW4KKworICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlciA9IG1vemxvZy5zdHJ1Y3R1
cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoImRlYnVnX3Rlc3QiKQorICAgICAgICBvdXRwdXQgPSBp
by5TdHJpbmdJTygpCisgICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2VyLnN1aXRlX3N0YXJ0KFtdKQor
ICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlci5hZGRfaGFuZGxlcihtb3psb2cuaGFuZGxlcnMuU3Ry
ZWFtSGFuZGxlcihvdXRwdXQsIGZvcm1hdHRlcj1tb3psb2cuZm9ybWF0dGVycy5UYnBsRm9ybWF0
dGVyKCkpKQorICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCisg
ICAgICAgICMgQWx3YXlzIHVzZSBQQVNTIGFzIHRoZSBleHBlY3RlZCB2YWx1ZSBzbyB3ZSBnZXQg
b3V0cHV0IGV2ZW4gZm9yIGV4cGVjdGVkIGZhaWx1cmVzCisgICAgICAgIGRlYnVnX3Rlc3RfbG9n
Z2VyLnRlc3RfZW5kKHRlc3QuaWQsIHJlc3VsdFsic3RhdHVzIl0sICJQQVNTIiwgZXh0cmE9cmVz
dWx0LmdldCgiZXh0cmEiKSkKKworICAgICAgICBzZWxmLnBhcmVudC5iYXNlLmxvYWQodXJsam9p
bihzZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKCJodHRwcyIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi9jb21tb24vdGhpcmRfcGFydHkvcmVmdGVzdC1hbmFseXplci54
aHRtbCNsb2c9JXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZShvdXRw
dXQuZ2V0dmFsdWUoKSkpKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQppbmRleCAzZDMyOTE3NjU5YjMuLjUw
ODE5YTkzNTg5OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKQEAgLTI0LDcgKzI0LDcgQEAgZGVmIGRv
X2RlbGF5ZWRfaW1wb3J0cygpOgogICAgIGltcG9ydCBweXRlc3QKIAogCi1kZWYgcnVuKHBhdGgs
IHNlcnZlcl9jb25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTApOgorZGVmIHJ1bihwYXRo
LCBzZXJ2ZXJfY29uZmlnLCBzZXNzaW9uX2NvbmZpZywgdGltZW91dD0wLCBlbnZpcm9uPU5vbmUp
OgogICAgICIiIgogICAgIFJ1biBQeXRob24gdGVzdCBhdCBgYHBhdGhgYCBpbiBweXRlc3QuICBU
aGUgcHJvdmlkZWQgYGBzZXNzaW9uYGAKICAgICBpcyBleHBvc2VkIGFzIGEgZml4dHVyZSBhdmFp
bGFibGUgaW4gdGhlIHNjb3BlIG9mIHRoZSB0ZXN0IGZ1bmN0aW9ucy4KQEAgLTQxLDI4ICs0MSw0
MCBAQCBkZWYgcnVuKHBhdGgsIHNlcnZlcl9jb25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0
PTApOgogICAgIGlmIHB5dGVzdCBpcyBOb25lOgogICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMo
KQogCi0gICAgb3MuZW52aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQot
ICAgIG9zLmVudmlyb25bIldEX1BPUlQiXSA9IHN0cihzZXNzaW9uX2NvbmZpZ1sicG9ydCJdKQot
ICAgIG9zLmVudmlyb25bIldEX0NBUEFCSUxJVElFUyJdID0ganNvbi5kdW1wcyhzZXNzaW9uX2Nv
bmZpZ1siY2FwYWJpbGl0aWVzIl0pCi0gICAgb3MuZW52aXJvblsiV0RfU0VSVkVSX0NPTkZJRyJd
ID0ganNvbi5kdW1wcyhzZXJ2ZXJfY29uZmlnLmFzX2RpY3RfZm9yX3dkX2Vudl92YXJpYWJsZSgp
KQotCi0gICAgaGFybmVzcyA9IEhhcm5lc3NSZXN1bHRSZWNvcmRlcigpCi0gICAgc3VidGVzdHMg
PSBTdWJ0ZXN0UmVzdWx0UmVjb3JkZXIoKQotCi0gICAgd2l0aCBUZW1wb3JhcnlEaXJlY3Rvcnko
KSBhcyBjYWNoZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcHl0ZXN0Lm1haW4oWyItLXN0
cmljdCIsICAjIHR1cm4gd2FybmluZ3MgaW50byBlcnJvcnMKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAiLXZ2IiwgICMgc2hvdyBlYWNoIGluZGl2aWR1YWwgc3VidGVzdCBhbmQgZnVsbCBmYWls
dXJlIGxvZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLS1jYXB0dXJlIiwgIm5vIiwgICMg
ZW5hYmxlIHN0ZG91dC9zdGRlcnIgZnJvbSB0ZXN0cwotICAgICAgICAgICAgICAgICAgICAgICAg
ICItLWJhc2V0ZW1wIiwgY2FjaGUsICAjIHRlbXBvcmFyeSBkaXJlY3RvcnkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAiLS1zaG93bG9jYWxzIiwgICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJp
YWJsZXMgaW4gbG9jYWwgc2NvcGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAibm86
bW96bG9nIiwgICMgdXNlIHRoZSBXUFQgcmVzdWx0IHJlY29yZGVyCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIi1wIiwgIm5vOmNhY2hlcHJvdmlkZXIiLCAgIyBkaXNhYmxlIHN0YXRlIHByZXNl
cnZhdGlvbiBhY3Jvc3MgaW52b2NhdGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLW89
Y29uc29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYyIsICAjIGRpc2FibGUgdGVzdCBwcm9ncmVzcyBi
YXIKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHBsdWdpbnM9W2hhcm5lc3MsIHN1YnRlc3RzXSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgotICAgICAgICAgICAgaGFybmVzcy5vdXRjb21lID0gKCJJTlRFUk5BTC1FUlJPUiIs
IHN0cihlKSkKKyAgICBvbGRfZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisgICAgdHJ5Ogor
ICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlOgorICAgICAgICAgICAg
b3MuZW52aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQorICAgICAgICAg
ICAgb3MuZW52aXJvblsiV0RfUE9SVCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCisg
ICAgICAgICAgICBvcy5lbnZpcm9uWyJXRF9DQVBBQklMSVRJRVMiXSA9IGpzb24uZHVtcHMoc2Vz
c2lvbl9jb25maWdbImNhcGFiaWxpdGllcyJdKQorCisgICAgICAgICAgICBjb25maWdfcGF0aCA9
IG9zLnBhdGguam9pbihjYWNoZSwgIndkX3NlcnZlcl9jb25maWcuanNvbiIpCisgICAgICAgICAg
ICBvcy5lbnZpcm9uWyJXRF9TRVJWRVJfQ09ORklHX0ZJTEUiXSA9IGNvbmZpZ19wYXRoCisgICAg
ICAgICAgICB3aXRoIG9wZW4oY29uZmlnX3BhdGgsICJ3IikgYXMgZjoKKyAgICAgICAgICAgICAg
ICBqc29uLmR1bXAoc2VydmVyX2NvbmZpZy5hc19kaWN0KCksIGYpCisKKyAgICAgICAgICAgIGlm
IGVudmlyb246CisgICAgICAgICAgICAgICAgb3MuZW52aXJvbi51cGRhdGUoZW52aXJvbikKKwor
ICAgICAgICAgICAgaGFybmVzcyA9IEhhcm5lc3NSZXN1bHRSZWNvcmRlcigpCisgICAgICAgICAg
ICBzdWJ0ZXN0cyA9IFN1YnRlc3RSZXN1bHRSZWNvcmRlcigpCisKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBweXRlc3QubWFpbihbIi0tc3RyaWN0IiwgICMgdHVybiB3YXJuaW5n
cyBpbnRvIGVycm9ycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXZ2IiwgICMgc2hv
dyBlYWNoIGluZGl2aWR1YWwgc3VidGVzdCBhbmQgZnVsbCBmYWlsdXJlIGxvZ3MKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi0tY2FwdHVyZSIsICJubyIsICAjIGVuYWJsZSBzdGRvdXQv
c3RkZXJyIGZyb20gdGVzdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmFzZXRl
bXAiLCBjYWNoZSwgICMgdGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiLS1zaG93bG9jYWxzIiwgICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJpYWJsZXMg
aW4gbG9jYWwgc2NvcGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOm1v
emxvZyIsICAjIHVzZSB0aGUgV1BUIHJlc3VsdCByZWNvcmRlcgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLXAiLCAibm86Y2FjaGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUgcHJl
c2VydmF0aW9uIGFjcm9zcyBpbnZvY2F0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLW89Y29uc29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYyIsICAjIGRpc2FibGUgdGVzdCBwcm9n
cmVzcyBiYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGx1Z2lucz1baGFybmVzcywgc3VidGVzdHNdKQorICAgICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIGhhcm5lc3Mub3V0Y29t
ZSA9ICgiSU5URVJOQUwtRVJST1IiLCBzdHIoZSkpCisKKyAgICBmaW5hbGx5OgorICAgICAgICBv
cy5lbnZpcm9uID0gb2xkX2Vudmlyb24KIAogICAgIHJldHVybiAoaGFybmVzcy5vdXRjb21lLCBz
dWJ0ZXN0cy5yZXN1bHRzKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQppbmRleCA5MTAzNThm
NTE1OTYuLjM5ZTI0OGIyNTFiMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5CkBAIC03Nywx
MyArNzcsMTUgQEAgY2xhc3MgRm9udEluc3RhbGxlcihvYmplY3QpOgogCiAgICAgICAgICMgUGVy
IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvcmVzdWx0cy1jb2xsZWN0aW9u
L2lzc3Vlcy8yMTgKICAgICAgICAgIyBpbnN0YWxsaW5nIEFoZW0gb24gbWFjT1MgaXMgZmxha3ks
IHNvIGNoZWNrIGlmIGl0IGFjdHVhbGx5IGluc3RhbGxlZAotICAgICAgICBmb250cyA9IGNoZWNr
X291dHB1dChbJy91c3Ivc2Jpbi9zeXN0ZW1fcHJvZmlsZXInLCAnLXhtbCcsICdTUEZvbnRzRGF0
YVR5cGUnXSkKKyAgICAgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZjoKKyAgICAg
ICAgICAgIGZvbnRzID0gY2hlY2tfb3V0cHV0KFsnL3Vzci9zYmluL3N5c3RlbV9wcm9maWxlcics
ICcteG1sJywgJ1NQRm9udHNEYXRhVHlwZSddLCBzdGRlcnI9ZikKKwogICAgICAgICB0cnk6CiAg
ICAgICAgICAgICAjIGlmIHB5MwotICAgICAgICAgICAgcmVhZFBsaXN0RnJvbUJ5dGVzID0gcGxp
c3RsaWIucmVhZFBsaXN0RnJvbUJ5dGVzCisgICAgICAgICAgICBsb2FkX3BsaXN0ID0gcGxpc3Rs
aWIubG9hZHMKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcmVh
ZFBsaXN0RnJvbUJ5dGVzID0gcGxpc3RsaWIucmVhZFBsaXN0RnJvbVN0cmluZwotICAgICAgICBm
b250cyA9IHJlYWRQbGlzdEZyb21CeXRlcyhmb250cykKKyAgICAgICAgICAgIGxvYWRfcGxpc3Qg
PSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tU3RyaW5nCisgICAgICAgIGZvbnRzID0gbG9hZF9wbGlz
dChmb250cykKICAgICAgICAgYXNzZXJ0IGxlbihmb250cykgPT0gMQogICAgICAgICBmb3IgZm9u
dCBpbiBmb250c1swXVsnX2l0ZW1zJ106CiAgICAgICAgICAgICBpZiBmb250WydwYXRoJ10gPT0g
aW5zdGFsbGVkX2ZvbnRfcGF0aDoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvX19pbml0X18u
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9mb3JtYXR0ZXJzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9pbnN0cnVtZW50cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3Ry
dW1lbnRzLnB5CmluZGV4IGE4ODdjZjRmZGE3Mi4uNGUzZTAxM2FlYzQzIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9pbnN0
cnVtZW50cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9pbnN0cnVtZW50cy5weQpAQCAtMSw2ICsxLDYgQEAKIGltcG9ydCB0aW1l
CiBpbXBvcnQgdGhyZWFkaW5nCi1mcm9tIHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgUXVldWUKK2Zy
b20gcXVldWUgaW1wb3J0IFF1ZXVlCiAKICIiIkluc3RydW1lbnRhdGlvbiBmb3IgbWVhc3VyaW5n
IGhpZ2gtbGV2ZWwgdGltZSBzcGVudCBvbiB2YXJpb3VzIHRhc2tzIGluc2lkZSB0aGUgcnVubmVy
LgogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQppbmRl
eCAzMWM1N2U5Y2I3MzQuLjFjZDAzNWEzYjI0MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0IG9zCiBmcm9t
IGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQotZnJvbSBzaXggaW1wb3J0IHN0cmluZ190eXBlcywg
dGV4dF90eXBlCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KLQor
ZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAud3B0bWFuaWZlc3QuYmFj
a2VuZHMgaW1wb3J0IHN0YXRpYwogZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMuYmFzZSBpbXBv
cnQgTWFuaWZlc3RJdGVtCkBAIC00OSw3ICs0Nyw3IEBAIGRlZiBsaXN0X3Byb3AobmFtZSwgbm9k
ZSk6CiAgICAgIiIiTGlzdCBwcm9wZXJ0eSIiIgogICAgIHRyeToKICAgICAgICAgbGlzdF9wcm9w
ID0gbm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaXN0X3Byb3AsIHN0cmlu
Z190eXBlcyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UobGlzdF9wcm9wLCBzdHIpOgogICAgICAg
ICAgICAgcmV0dXJuIFtsaXN0X3Byb3BdCiAgICAgICAgIHJldHVybiBsaXN0KGxpc3RfcHJvcCkK
ICAgICBleGNlcHQgS2V5RXJyb3I6CkBAIC01OSw3ICs1Nyw3IEBAIGRlZiBsaXN0X3Byb3AobmFt
ZSwgbm9kZSk6CiBkZWYgc3RyX3Byb3AobmFtZSwgbm9kZSk6CiAgICAgdHJ5OgogICAgICAgICBw
cm9wID0gbm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHJvcCwgc3Ry
aW5nX3R5cGVzKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHJvcCwgc3RyKToKICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKICAgICAgICAgcmV0dXJuIHByb3AKICAgICBleGNlcHQg
S2V5RXJyb3I6CkBAIC03MCw3ICs2OCw3IEBAIGRlZiB0YWdzKG5vZGUpOgogICAgICIiIlNldCBv
ZiB0YWdzIHRoYXQgaGF2ZSBiZWVuIGFwcGxpZWQgdG8gdGhlIHRlc3QiIiIKICAgICB0cnk6CiAg
ICAgICAgIHZhbHVlID0gbm9kZS5nZXQoInRhZ3MiKQotICAgICAgICBpZiBpc2luc3RhbmNlKHZh
bHVlLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgogICAg
ICAgICAgICAgcmV0dXJuIHt2YWx1ZX0KICAgICAgICAgcmV0dXJuIHNldCh2YWx1ZSkKICAgICBl
eGNlcHQgS2V5RXJyb3I6CkBAIC03OSw3ICs3Nyw3IEBAIGRlZiB0YWdzKG5vZGUpOgogCiBkZWYg
cHJlZnMobm9kZSk6CiAgICAgZGVmIHZhbHVlKGluaV92YWx1ZSk6Ci0gICAgICAgIGlmIGlzaW5z
dGFuY2UoaW5pX3ZhbHVlLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGluaV92
YWx1ZSwgc3RyKToKICAgICAgICAgICAgIHJldHVybiB0dXBsZShwcmVmX3BpZWNlLnN0cmlwKCkg
Zm9yIHByZWZfcGllY2UgaW4gaW5pX3ZhbHVlLnNwbGl0KCc6JywgMSkpCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICAjIHRoaXMgc2hvdWxkIGJlIHRoaW5ncyBsaWtlIEBSZXNldCwgd2hpY2gg
YXJlIGFwcGFyZW50bHkgdHlwZSAnb2JqZWN0JwpAQCAtODcsNyArODUsNyBAQCBkZWYgcHJlZnMo
bm9kZSk6CiAKICAgICB0cnk6CiAgICAgICAgIG5vZGVfcHJlZnMgPSBub2RlLmdldCgicHJlZnMi
KQotICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfcHJlZnMsIHRleHRfdHlwZSk6CisgICAgICAg
IGlmIGlzaW5zdGFuY2Uobm9kZV9wcmVmcywgc3RyKToKICAgICAgICAgICAgIHJ2ID0gZGljdCh2
YWx1ZShub2RlX3ByZWZzKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ2ID0gZGljdCh2
YWx1ZShpdGVtKSBmb3IgaXRlbSBpbiBub2RlX3ByZWZzKQpAQCAtOTksNyArOTcsNyBAQCBkZWYg
cHJlZnMobm9kZSk6CiBkZWYgc2V0X3Byb3AobmFtZSwgbm9kZSk6CiAgICAgdHJ5OgogICAgICAg
ICBub2RlX2l0ZW1zID0gbm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShub2Rl
X2l0ZW1zLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHN0
cik6CiAgICAgICAgICAgICBydiA9IHtub2RlX2l0ZW1zfQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgcnYgPSBzZXQobm9kZV9pdGVtcykKQEAgLTExMiw3ICsxMTAsNyBAQCBkZWYgbGVha190
aHJlc2hvbGQobm9kZSk6CiAgICAgcnYgPSB7fQogICAgIHRyeToKICAgICAgICAgbm9kZV9pdGVt
cyA9IG5vZGUuZ2V0KCJsZWFrLXRocmVzaG9sZCIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uobm9k
ZV9pdGVtcywgdGV4dF90eXBlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1zLCBz
dHIpOgogICAgICAgICAgICAgbm9kZV9pdGVtcyA9IFtub2RlX2l0ZW1zXQogICAgICAgICBmb3Ig
aXRlbSBpbiBub2RlX2l0ZW1zOgogICAgICAgICAgICAgcHJvY2VzcywgdmFsdWUgPSBpdGVtLnJz
cGxpdCgiOiIsIDEpCkBAIC0xNDAsNyArMTM4LDcgQEAgZGVmIGZ1enp5X3Byb3Aobm9kZSk6CiAg
ICAgICBtYXhEaWZmZXJlbmNlcz0xMDt0b3RhbFBpeGVscz0xMC0yMAogCiAgICAgICBzcGVjaWZp
ZXMgdGhhdCBmb3IgYW55IHRlc3QvcmVmIHBhaXIgZm9yIHdoaWNoIG5vIG90aGVyIHJ1bGUgaXMg
c3VwcGxpZWQsCi0gICAgICB0aGVyZSBtdXN0IGJlIGEgbWF4aW11bSBwaXhlbCBkaWZmZXJlbmNl
IG9mIGV4YWN0bHkgMTAsIGFuZCBiZXR3ZW4gMTAgYW5kCisgICAgICB0aGVyZSBtdXN0IGJlIGEg
bWF4aW11bSBwaXhlbCBkaWZmZXJlbmNlIG9mIGV4YWN0bHkgMTAsIGFuZCBiZXR3ZWVuIDEwIGFu
ZAogICAgICAgMjAgdG90YWwgcGl4ZWxzIGRpZmZlcmVudC4KIAogICAgICAgdGVzdC5odG1sPT1y
ZWYuaHRtOjEwOzIwCkBAIC0xNjksNyArMTY3LDcgQEAgZGVmIGZ1enp5X3Byb3Aobm9kZSk6CiAg
ICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgogICAgICAgICB2YWx1ZSA9IFt2YWx1
ZV0KICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRl
bSwgdGV4dF90eXBlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgc3RyKToKICAg
ICAgICAgICAgIHJ2LmFwcGVuZChpdGVtKQogICAgICAgICAgICAgY29udGludWUKICAgICAgICAg
cGFydHMgPSBpdGVtLnJzcGxpdCgiOiIsIDEpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9t
YW5pZmVzdGluY2x1ZGUucHkKaW5kZXggNzliNWIxOWIzYTNmLi45NzM0OGU2ZDUyZjkgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL21hbmlmZXN0aW5jbHVkZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKQEAgLTYsOCArNiw3
IEBAIGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkLgogIiIiCiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9z
Ci1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2Ug
aW1wb3J0IHVybHBhcnNlLCB1cmxzcGxpdAorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBh
cnNlLCB1cmxzcGxpdAogCiBmcm9tIC53cHRtYW5pZmVzdC5ub2RlIGltcG9ydCBEYXRhTm9kZQog
ZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IGNvbmRpdGlvbmFsCkBAIC05NSw3ICs5
NCw3IEBAIGNsYXNzIEluY2x1ZGVNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogICAgICAgICBpZiBw
YXRoczoKICAgICAgICAgICAgIHVybHMgPSBbXQogICAgICAgICAgICAgZm9yIHBhdGggaW4gcGF0
aHM6Ci0gICAgICAgICAgICAgICAgZm9yIG1hbmlmZXN0LCBkYXRhIGluIGl0ZXJpdGVtcyh0ZXN0
X21hbmlmZXN0cyk6CisgICAgICAgICAgICAgICAgZm9yIG1hbmlmZXN0LCBkYXRhIGluIHRlc3Rf
bWFuaWZlc3RzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gRmFsc2UKICAg
ICAgICAgICAgICAgICAgICAgcmVsX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgocGF0aCwgZGF0YVsi
dGVzdHNfcGF0aCJdKQogICAgICAgICAgICAgICAgICAgICBpdGVyYXRvciA9IG1hbmlmZXN0Lml0
ZXJwYXRoIGlmIG9zLnBhdGguaXNmaWxlKHBhdGgpIGVsc2UgbWFuaWZlc3QuaXRlcmRpcgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvbWFuaWZlc3R1cGRhdGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQppbmRleCAxMjk0NTdiM2Zk
MTIuLmIyNWQ0OWIwZmI3YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1
cGRhdGUucHkKQEAgLTEsOSArMSw4IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1
bmN0aW9uCiBpbXBvcnQgb3MKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJs
am9pbiwgdXJsc3BsaXQKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxp
dAogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZSwgZGVmYXVsdGRpY3QsIGRlcXVl
CiBmcm9tIG1hdGggaW1wb3J0IGNlaWwKLWZyb20gc2l4IGltcG9ydCBpbnRlZ2VyX3R5cGVzLCBp
dGVya2V5cywgaXRlcnZhbHVlcywgaXRlcml0ZW1zLCBzdHJpbmdfdHlwZXMsIHRleHRfdHlwZQor
ZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIENsYXNzVmFyLCBEaWN0LCBMaXN0CiAK
IGZyb20gLndwdG1hbmlmZXN0IGltcG9ydCBzZXJpYWxpemUKIGZyb20gLndwdG1hbmlmZXN0Lm5v
ZGUgaW1wb3J0IChEYXRhTm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9k
ZSwKQEAgLTc2LDcgKzc1LDcgQEAgY2xhc3MgVXBkYXRlUHJvcGVydGllcyhvYmplY3QpOgogICAg
ICAgICByZXR1cm4gbmFtZSBpbiBzZWxmLl9jbGFzc2VzCiAKICAgICBkZWYgX19pdGVyX18oc2Vs
Zik6Ci0gICAgICAgIGZvciBuYW1lIGluIGl0ZXJrZXlzKHNlbGYuX2NsYXNzZXMpOgorICAgICAg
ICBmb3IgbmFtZSBpbiBzZWxmLl9jbGFzc2VzLmtleXMoKToKICAgICAgICAgICAgIHlpZWxkIGdl
dGF0dHIoc2VsZiwgbmFtZSkKIAogCkBAIC0zMTMsMTggKzMxMiwyMSBAQCBkZWYgYnVpbGRfY29u
ZGl0aW9uYWxfdHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToKIAogZGVmIGJ1
aWxkX3VuY29uZGl0aW9uYWxfdHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToK
ICAgICByb290ID0gZXhwZWN0ZWR0cmVlLk5vZGUoTm9uZSwgTm9uZSkKLSAgICBmb3IgcnVuX2lu
Zm8sIHZhbHVlcyBpbiBpdGVyaXRlbXMocmVzdWx0cyk6Ci0gICAgICAgIGZvciB2YWx1ZSwgY291
bnQgaW4gaXRlcml0ZW1zKHZhbHVlcyk6CisgICAgZm9yIHJ1bl9pbmZvLCB2YWx1ZXMgaW4gcmVz
dWx0cy5pdGVtcygpOgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIHZhbHVlcy5pdGVtcygp
OgogICAgICAgICAgICAgcm9vdC5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAogICAgICAg
ICByb290LnJ1bl9pbmZvLmFkZChydW5faW5mbykKICAgICByZXR1cm4gcm9vdAogCiAKIGNsYXNz
IFByb3BlcnR5VXBkYXRlKG9iamVjdCk6Ci0gICAgcHJvcGVydHlfbmFtZSA9IE5vbmUKLSAgICBj
bHNfZGVmYXVsdF92YWx1ZSA9IE5vbmUKLSAgICB2YWx1ZV90eXBlID0gTm9uZQotICAgIHByb3Bl
cnR5X2J1aWxkZXIgPSBOb25lCisgICAgcHJvcGVydHlfbmFtZSA9IE5vbmUgICMgdHlwZTogQ2xh
c3NWYXJbc3RyXQorICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zh
cltBbnldCisgICAgdmFsdWVfdHlwZSA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbdHlwZV0KKyAg
ICAjIHByb3BlcnR5X2J1aWxkZXIgaXMgYSBjbGFzcyB2YXJpYWJsZSBzZXQgdG8gZWl0aGVyIGJ1
aWxkX2NvbmRpdGlvbmFsX3RyZWUKKyAgICAjIG9yIGJ1aWxkX3VuY29uZGl0aW9uYWxfdHJlZS4g
VE9ETzogTWFrZSB0aGlzIHR5cGUgc3RyaWN0ZXIgd2hlbiB0aG9zZQorICAgICMgbWV0aG9kcyBh
cmUgYW5ub3RhdGVkLgorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBOb25lICAjIHR5cGU6IENsYXNz
VmFyW0NhbGxhYmxlWy4uLiwgQW55XV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlKToK
ICAgICAgICAgc2VsZi5ub2RlID0gbm9kZQpAQCAtNDExLDcgKzQxMyw3IEBAIGNsYXNzIFByb3Bl
cnR5VXBkYXRlKG9iamVjdCk6CiAgICAgICAgIGZvciBlIGluIGVycm9yczoKICAgICAgICAgICAg
IGlmIGRpc2FibGVfaW50ZXJtaXR0ZW50OgogICAgICAgICAgICAgICAgIGNvbmRpdGlvbiA9IGUu
Y29uZC5jaGlsZHJlblswXSBpZiBlLmNvbmQgZWxzZSBOb25lCi0gICAgICAgICAgICAgICAgbXNn
ID0gZGlzYWJsZV9pbnRlcm1pdHRlbnQgaWYgaXNpbnN0YW5jZShkaXNhYmxlX2ludGVybWl0dGVu
dCwgc3RyaW5nX3R5cGVzKyh0ZXh0X3R5cGUsKSkgZWxzZSAidW5zdGFibGUiCisgICAgICAgICAg
ICAgICAgbXNnID0gZGlzYWJsZV9pbnRlcm1pdHRlbnQgaWYgaXNpbnN0YW5jZShkaXNhYmxlX2lu
dGVybWl0dGVudCwgc3RyKSBlbHNlICJ1bnN0YWJsZSIKICAgICAgICAgICAgICAgICBzZWxmLm5v
ZGUuc2V0KCJkaXNhYmxlZCIsIG1zZywgY29uZGl0aW9uKQogICAgICAgICAgICAgICAgIHNlbGYu
bm9kZS5uZXdfZGlzYWJsZWQgPSBUcnVlCiAgICAgICAgICAgICBlbHNlOgpAQCAtNDk5LDcgKzUw
MSw3IEBAIGNsYXNzIFByb3BlcnR5VXBkYXRlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciBydW5faW5mbyBpbiBub2RlLnJ1bl9pbmZvfQogCiAgICAgICAgIG5vZGVfYnlf
cnVuX2luZm8gPSB7cnVuX2luZm86IG5vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgKHJ1bl9pbmZvLCBub2RlKSBpbiBpdGVyaXRlbXMocnVuX2luZm9faW5kZXgpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIChydW5faW5mbywgbm9kZSkgaW4gcnVuX2luZm9faW5k
ZXguaXRlbXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUucmVzdWx0X3Zh
bHVlc30KIAogICAgICAgICBydW5faW5mb19ieV9jb25kaXRpb24gPSBzZWxmLnJ1bl9pbmZvX2J5
X2NvbmRpdGlvbihydW5faW5mb19pbmRleCwKQEAgLTUxMiw3ICs1MTQsNyBAQCBjbGFzcyBQcm9w
ZXJ0eVVwZGF0ZShvYmplY3QpOgogICAgICAgICAgICAgIyB1c2luZyB0aGUgcHJvcGVydGllcyB3
ZSd2ZSBzcGVjaWZpZWQgYW5kIG5vdCBtYXRjaGluZyBhbnkgcnVuX2luZm8KICAgICAgICAgICAg
IHRvcF9sZXZlbF9wcm9wcywgZGVwZW5kZW50X3Byb3BzID0gc2VsZi5ub2RlLnJvb3QucnVuX2lu
Zm9fcHJvcGVydGllcwogICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMgPSBzZXQodG9wX2xl
dmVsX3Byb3BzKQotICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcnZhbHVlcyhkZXBlbmRlbnRf
cHJvcHMpOgorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZGVwZW5kZW50X3Byb3BzLnZhbHVlcygp
OgogICAgICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzIHw9IHNldChpdGVtKQogICAgICAg
ICAgICAgZm9yIGNvbmRpdGlvbiBpbiBjdXJyZW50X2NvbmRpdGlvbnM6CiAgICAgICAgICAgICAg
ICAgaWYgKChub3QgY29uZGl0aW9uLnZhcmlhYmxlcy5pc3N1YnNldCh1cGRhdGVfcHJvcGVydGll
cykgYW5kCkBAIC02MTQsNyArNjE2LDggQEAgY2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0KToK
ICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IENvbmRpdGlvbkVycm9yOgogICAgICAgICAgICAg
ICAgICAgICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9wX3NldCwgdmFsdWUpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvciA9IENvbmRpdGlvbkVycm9yKGV4cHIpCi0gICAgICAgICAgICAg
ICAgICAgIGV4cHIgPSBtYWtlX2V4cHIocHJvcF9zZXQsIHZhbHVlKQorICAgICAgICAgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9w
X3NldCwgdmFsdWUpCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAg
IyBUaGUgcm9vdCBub2RlIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcKICAgICAgICAgICAgICAgICAg
ICAgZXhwciA9IE5vbmUKQEAgLTY5NSw3ICs2OTgsNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQ
cm9wZXJ0eVVwZGF0ZSk6CiAgICAgICAgICAgICByYWlzZSBDb25kaXRpb25FcnJvcgogCiAgICAg
ICAgIGNvdW50cyA9IHt9Ci0gICAgICAgIGZvciBzdGF0dXMsIGNvdW50IGluIGl0ZXJpdGVtcyhu
ZXcpOgorICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBpbiBuZXcuaXRlbXMoKToKICAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2Uoc3RhdHVzLCB0dXBsZSk6CiAgICAgICAgICAgICAgICAgY291bnRz
W3N0YXR1c1swXV0gPSBjb3VudAogICAgICAgICAgICAgICAgIGNvdW50cy51cGRhdGUoe2ludGVy
bWl0dGVudDogMCBmb3IgaW50ZXJtaXR0ZW50IGluIHN0YXR1c1sxOl0gaWYgaW50ZXJtaXR0ZW50
IG5vdCBpbiBjb3VudHN9KQpAQCAtNzA5LDI0ICs3MTIsMjcgQEAgY2xhc3MgRXhwZWN0ZWRVcGRh
dGUoUHJvcGVydHlVcGRhdGUpOgogICAgICAgICAjIENvdW50cyB3aXRoIDAgYXJlIGNvbnNpZGVy
ZWQgaW50ZXJtaXR0ZW50LgogICAgICAgICBzdGF0dXNlcyA9IFsiT0siLCAiUEFTUyIsICJGQUlM
IiwgIkVSUk9SIiwgIlRJTUVPVVQiLCAiQ1JBU0giXQogICAgICAgICBzdGF0dXNfcHJpb3JpdHkg
PSB7dmFsdWU6IGkgZm9yIGksIHZhbHVlIGluIGVudW1lcmF0ZShzdGF0dXNlcyl9Ci0gICAgICAg
IHNvcnRlZF9uZXcgPSBzb3J0ZWQoaXRlcml0ZW1zKGNvdW50cyksIGtleT1sYW1iZGEgeDooLTEg
KiB4WzFdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0dXNfcHJpb3JpdHkuZ2V0KHhbMF0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzdGF0dXNfcHJpb3Jp
dHkpKSkpCisgICAgICAgIHNvcnRlZF9uZXcgPSBzb3J0ZWQoY291bnRzLml0ZW1zKCksIGtleT1s
YW1iZGEgeDooLTEgKiB4WzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0dXNfcHJpb3JpdHkuZ2V0KHhbMF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzdGF0dXNf
cHJpb3JpdHkpKSkpCiAgICAgICAgIGV4cGVjdGVkID0gW10KICAgICAgICAgZm9yIHN0YXR1cywg
Y291bnQgaW4gc29ydGVkX25ldzoKICAgICAgICAgICAgICMgSWYgd2UgYXJlIG5vdCByZW1vdmlu
ZyBleGlzdGluZyByZWNvcmRlZCBpbnRlcm1pdHRlbnRzLCB3aXRoIGEgY291bnQgb2YgMCwKICAg
ICAgICAgICAgICMgYWRkIHRoZW0gaW4gdG8gZXhwZWN0ZWQuCiAgICAgICAgICAgICBpZiBjb3Vu
dCA+IDAgb3Igbm90IHNlbGYucmVtb3ZlX2ludGVybWl0dGVudDoKICAgICAgICAgICAgICAgICBl
eHBlY3RlZC5hcHBlbmQoc3RhdHVzKQorCisgICAgICAgICMgSWYgdGhlIG5ldyBpbnRlcm1pdHRl
bnQgaXMgYSBzdWJzZXQgb2YgdGhlIGV4aXN0aW5nIG9uZSwganVzdCB1c2UgdGhlIGV4aXN0aW5n
IG9uZQorICAgICAgICAjIFRoaXMgcHJldmVudHMgZnJlcXVlbnQgZmxpcC1mbG9wcGluZyBvZiBy
ZXN1bHRzIGJldHdlZW4gZS5nLiBbT0ssIFRJTUVPVVRdIGFuZAorICAgICAgICAjIFtUSU1FT1VU
LCBPS10KKyAgICAgICAgaWYgY3VycmVudCBhbmQgc2V0KGV4cGVjdGVkKS5pc3N1YnNldChzZXQo
Y3VycmVudCkpOgorICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQKKwogICAgICAgICBpZiBzZWxm
LnVwZGF0ZV9pbnRlcm1pdHRlbnQ6CiAgICAgICAgICAgICBpZiBsZW4oZXhwZWN0ZWQpID09IDE6
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCiAgICAgICAgICAgICByZXR1cm4g
ZXhwZWN0ZWQKIAotICAgICAgICAjIElmIG5vdGhpbmcgaGFzIGNoYW5nZWQgYW5kIG5vdCBzZWxm
LnVwZGF0ZV9pbnRlcm1pdHRlbnQsIHByZXNlcnZlIGV4aXN0aW5nCi0gICAgICAgICMgaW50ZXJt
aXR0ZW50LgotICAgICAgICBpZiBzZXQoZXhwZWN0ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50KSk6
Ci0gICAgICAgICAgICByZXR1cm4gY3VycmVudAogICAgICAgICAjIElmIHdlIGFyZSBub3QgdXBk
YXRpbmcgaW50ZXJtaXR0ZW50cywgcmV0dXJuIHRoZSBzdGF0dXMgd2l0aCB0aGUgaGlnaGVzdCBv
Y2N1cmVuY2UuCiAgICAgICAgIHJldHVybiBleHBlY3RlZFswXQogCkBAIC03NjIsNyArNzY4LDcg
QEAgY2xhc3MgTWluQXNzZXJ0c1VwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CiAKIAogY2xhc3MgQXBw
ZW5kT25seUxpc3RVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgotICAgIGNsc19kZWZhdWx0X3ZhbHVl
ID0gW10KKyAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IFtdICAjIHR5cGU6IENsYXNzVmFyW0xpc3Rb
c3RyXV0KICAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25kaXRpb25hbF90cmVlCiAK
ICAgICBkZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBjdXJyZW50LCBuZXcpOgpAQCAtNzc0LDcgKzc4
MCw3IEBAIGNsYXNzIEFwcGVuZE9ubHlMaXN0VXBkYXRlKFByb3BlcnR5VXBkYXRlKToKICAgICAg
ICAgZm9yIGl0ZW0gaW4gbmV3OgogICAgICAgICAgICAgaWYgaXRlbSBpcyBOb25lOgogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoaXRlbSwgdGV4
dF90eXBlKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgogICAgICAg
ICAgICAgICAgIHJ2LmFkZChpdGVtKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAg
ICBydiB8PSBpdGVtCkBAIC04MTUsMTQgKzgyMSwxNCBAQCBjbGFzcyBMZWFrT2JqZWN0VXBkYXRl
KEFwcGVuZE9ubHlMaXN0VXBkYXRlKToKIAogY2xhc3MgTGVha1RocmVzaG9sZFVwZGF0ZShQcm9w
ZXJ0eVVwZGF0ZSk6CiAgICAgcHJvcGVydHlfbmFtZSA9ICJsZWFrLXRocmVzaG9sZCIKLSAgICBj
bHNfZGVmYXVsdF92YWx1ZSA9IHt9CisgICAgY2xzX2RlZmF1bHRfdmFsdWUgPSB7fSAgIyB0eXBl
OiBDbGFzc1ZhcltEaWN0W3N0ciwgaW50XV0KICAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRf
dW5jb25kaXRpb25hbF90cmVlCiAKICAgICBkZWYgZnJvbV9yZXN1bHRfdmFsdWUoc2VsZiwgcmVz
dWx0KToKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIHRvX2luaV92YWx1ZShzZWxm
LCBkYXRhKToKLSAgICAgICAgcmV0dXJuIFsiJXM6JXMiICUgaXRlbSBmb3IgaXRlbSBpbiBzb3J0
ZWQoaXRlcml0ZW1zKGRhdGEpKV0KKyAgICAgICAgcmV0dXJuIFsiJXM6JXMiICUgaXRlbSBmb3Ig
aXRlbSBpbiBzb3J0ZWQoZGF0YS5pdGVtcygpKV0KIAogICAgIGRlZiBmcm9tX2luaV92YWx1ZShz
ZWxmLCBkYXRhKToKICAgICAgICAgcnYgPSB7fQpAQCAtODk3LDEwICs5MDMsMTAgQEAgZGVmIG1h
a2VfZXhwcihwcm9wX3NldCwgcmhzKToKIAogCiBkZWYgbWFrZV9ub2RlKHZhbHVlKToKLSAgICBp
ZiBpc2luc3RhbmNlKHZhbHVlLCBpbnRlZ2VyX3R5cGVzKyhmbG9hdCwpKToKKyAgICBpZiBpc2lu
c3RhbmNlKHZhbHVlLCAoaW50LCBmbG9hdCwpKToKICAgICAgICAgbm9kZSA9IE51bWJlck5vZGUo
dmFsdWUpCi0gICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgotICAgICAgICBu
b2RlID0gU3RyaW5nTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2
YWx1ZSwgc3RyKToKKyAgICAgICAgbm9kZSA9IFN0cmluZ05vZGUoc3RyKHZhbHVlKSkKICAgICBl
bGlmIGhhc2F0dHIodmFsdWUsICJfX2l0ZXJfXyIpOgogICAgICAgICBub2RlID0gTGlzdE5vZGUo
KQogICAgICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKQEAgLTkwOSwxNCArOTE1LDE0IEBAIGRlZiBt
YWtlX25vZGUodmFsdWUpOgogCiAKIGRlZiBtYWtlX3ZhbHVlX25vZGUodmFsdWUpOgotICAgIGlm
IGlzaW5zdGFuY2UodmFsdWUsIGludGVnZXJfdHlwZXMrKGZsb2F0LCkpOgorICAgIGlmIGlzaW5z
dGFuY2UodmFsdWUsIChpbnQsIGZsb2F0LCkpOgogICAgICAgICBub2RlID0gVmFsdWVOb2RlKHZh
bHVlKQotICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgdGV4dF90eXBlKToKLSAgICAgICAgbm9k
ZSA9IFZhbHVlTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1
ZSwgc3RyKToKKyAgICAgICAgbm9kZSA9IFZhbHVlTm9kZShzdHIodmFsdWUpKQogICAgIGVsaWYg
aGFzYXR0cih2YWx1ZSwgIl9faXRlcl9fIik6CiAgICAgICAgIG5vZGUgPSBMaXN0Tm9kZSgpCiAg
ICAgICAgIGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICAgICAgbm9kZS5hcHBlbmQobWFrZV9u
b2RlKGl0ZW0pKQorICAgICAgICAgICAgbm9kZS5hcHBlbmQobWFrZV92YWx1ZV9ub2RlKGl0ZW0p
KQogICAgIGVsc2U6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkRvbid0IGtub3cgaG93IHRv
IGNvbnZlcnQgJXMgaW50byBub2RlIiAlIHR5cGUodmFsdWUpKQogICAgIHJldHVybiBub2RlCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9tZXRhZGF0YS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CmluZGV4IGFiOGQ0NzQwZjNmYy4uOWM1NGU1
NzBjMDFiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weQpAQCAtMSwxMiArMSwx
MSBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGFycmF5
CiBpbXBvcnQgb3MKLWltcG9ydCBzeXMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRk
aWN0LCBuYW1lZHR1cGxlCitmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgTGlzdCwgVHVwbGUKIAog
ZnJvbSBtb3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2cKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVf
c3RyLCBlbnN1cmVfdGV4dCwgaXRlcml0ZW1zLCBpdGVya2V5cywgaXRlcnZhbHVlcywgdGV4dF90
eXBlCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgaW50ZXJuLCByYW5nZQorZnJvbSBzaXggaW1wb3J0
IGVuc3VyZV9zdHIsIGVuc3VyZV90ZXh0Citmcm9tIHN5cyBpbXBvcnQgaW50ZXJuCiAKIGZyb20g
LiBpbXBvcnQgbWFuaWZlc3R1cGRhdGUKIGZyb20gLiBpbXBvcnQgdGVzdGxvYWRlcgpAQCAtMjIs
NyArMjEsNyBAQCBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoIndlYi1w
bGF0Zm9ybS10ZXN0cyIpCiB0cnk6CiAgICAgaW1wb3J0IHVqc29uIGFzIGpzb24KIGV4Y2VwdCBJ
bXBvcnRFcnJvcjoKLSAgICBpbXBvcnQganNvbgorICAgIGltcG9ydCBqc29uICAjIHR5cGU6IGln
bm9yZQogCiAKIGNsYXNzIFJ1bkluZm8ob2JqZWN0KToKQEAgLTQ1LDExICs0NCwxMSBAQCBjbGFz
cyBSdW5JbmZvKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLmNhbm9uaWNhbF9yZXByID09
IG90aGVyLmNhbm9uaWNhbF9yZXByCiAKICAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgotICAgICAg
ICBmb3Iga2V5LCB2YWx1ZSBpbiBpdGVyaXRlbXMoc2VsZi5kYXRhKToKKyAgICAgICAgZm9yIGtl
eSwgdmFsdWUgaW4gc2VsZi5kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICB5aWVsZCBrZXksIHZh
bHVlCiAKICAgICBkZWYgaXRlbXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBsaXN0KGl0ZXJpdGVt
cyhzZWxmKSkKKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVtcygpKQogCiAKIGRlZiB1cGRh
dGVfZXhwZWN0ZWQodGVzdF9wYXRocywgc2VydmVfcm9vdCwgbG9nX2ZpbGVfbmFtZXMsCkBAIC05
Myw3ICs5Miw3IEBAIGRlZiB1cGRhdGVfZXhwZWN0ZWQodGVzdF9wYXRocywgc2VydmVfcm9vdCwg
bG9nX2ZpbGVfbmFtZXMsCiAKIGRlZiBkb19kZWxheWVkX2ltcG9ydHMoc2VydmVfcm9vdD1Ob25l
KToKICAgICBnbG9iYWwgbWFuaWZlc3QsIG1hbmlmZXN0aXRlbQotICAgIGZyb20gbWFuaWZlc3Qg
aW1wb3J0IG1hbmlmZXN0LCBpdGVtIGFzIG1hbmlmZXN0aXRlbQorICAgIGZyb20gbWFuaWZlc3Qg
aW1wb3J0IG1hbmlmZXN0LCBpdGVtIGFzIG1hbmlmZXN0aXRlbSAgIyB0eXBlOiBpZ25vcmUKIAog
CiBkZWYgZmlsZXNfaW5fcmVwbyhyZXBvX3Jvb3QpOgpAQCAtMTI5LDcgKzEyOCw3IEBAIGRlZiB1
bmV4cGVjdGVkX2NoYW5nZXMobWFuaWZlc3RzLCBjaGFuZ2VfZGF0YSwgZmlsZXNfY2hhbmdlZCk6
CiAgICAgZmlsZXNfY2hhbmdlZCA9IHNldChmaWxlc19jaGFuZ2VkKQogCiAgICAgcm9vdF9tYW5p
ZmVzdCA9IE5vbmUKLSAgICBmb3IgbWFuaWZlc3QsIHBhdGhzIGluIGl0ZXJpdGVtcyhtYW5pZmVz
dHMpOgorICAgIGZvciBtYW5pZmVzdCwgcGF0aHMgaW4gbWFuaWZlc3RzLml0ZW1zKCk6CiAgICAg
ICAgIGlmIHBhdGhzWyJ1cmxfYmFzZSJdID09ICIvIjoKICAgICAgICAgICAgIHJvb3RfbWFuaWZl
c3QgPSBtYW5pZmVzdAogICAgICAgICAgICAgYnJlYWsKQEAgLTE3MCw5ICsxNjksMTAgQEAgY2xh
c3MgSW50ZXJuZWREYXRhKG9iamVjdCk6CiAgICAgdHlwZV9jb252ID0gTm9uZQogICAgIHJldl90
eXBlX2NvbnYgPSBOb25lCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWF4X2JpdHM9OCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG1heF9iaXRzOiBpbnQgPSA4KToKICAgICAgICAgc2VsZi5t
YXhfaWR4ID0gMioqbWF4X2JpdHMgLSAyCiAgICAgICAgICMgUmVzZXJ2ZSAwIGFzIGEgc2VudGlu
YWwKKyAgICAgICAgc2VsZi5fZGF0YTogVHVwbGVbTGlzdFtvYmplY3RdLCBEaWN0W2ludCwgb2Jq
ZWN0XV0KICAgICAgICAgc2VsZi5fZGF0YSA9IFtOb25lXSwge30KIAogICAgIGRlZiBjbGVhcihz
ZWxmKToKQEAgLTI0MCw3ICsyNDAsNyBAQCBkZWYgcGFja19yZXN1bHQoZGF0YSk6CiBkZWYgdW5w
YWNrX3Jlc3VsdChkYXRhKToKICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIGludCk6CiAgICAgICAg
IHJldHVybiAoc3RhdHVzX2ludGVybi5nZXQoZGF0YSksIE5vbmUpCi0gICAgaWYgaXNpbnN0YW5j
ZShkYXRhLCB0ZXh0X3R5cGUpOgorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgc3RyKToKICAgICAg
ICAgcmV0dXJuIChkYXRhLCBOb25lKQogICAgICMgVW5wYWNrIG11bHRpcGxlIHN0YXR1c2VzIGlu
dG8gYSB0dXBsZSB0byBiZSB1c2VkIGluIHRoZSBSZXN1bHRzIG5hbWVkIHR1cGxlIGJlbG93LAog
ICAgICMgc2VwYXJhdGluZyBgc3RhdHVzYCBhbmQgYGtub3duX2ludGVybWl0dGVudGAuCkBAIC0y
NTksNyArMjU5LDcgQEAgZGVmIGxvYWRfdGVzdF9kYXRhKHRlc3RfcGF0aHMpOgogICAgIG1hbmlm
ZXN0cyA9IG1hbmlmZXN0X2xvYWRlci5sb2FkKCkKIAogICAgIGlkX3Rlc3RfbWFwID0ge30KLSAg
ICBmb3IgdGVzdF9tYW5pZmVzdCwgcGF0aHMgaW4gaXRlcml0ZW1zKG1hbmlmZXN0cyk6CisgICAg
Zm9yIHRlc3RfbWFuaWZlc3QsIHBhdGhzIGluIG1hbmlmZXN0cy5pdGVtcygpOgogICAgICAgICBp
ZF90ZXN0X21hcC51cGRhdGUoY3JlYXRlX3Rlc3RfdHJlZShwYXRoc1sibWV0YWRhdGFfcGF0aCJd
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21hbmlm
ZXN0KSkKICAgICByZXR1cm4gaWRfdGVzdF9tYXAKQEAgLTI4NywxMCArMjg3LDEwIEBAIGRlZiB1
cGRhdGVfcmVzdWx0cyhpZF90ZXN0X21hcCwKICAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2lu
dGVybWl0dGVudCwKICAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAogICAg
ICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpOgotICAgIHRlc3RfZmlsZV9pdGVt
cyA9IHNldChpdGVydmFsdWVzKGlkX3Rlc3RfbWFwKSkKKyAgICB0ZXN0X2ZpbGVfaXRlbXMgPSBz
ZXQoaWRfdGVzdF9tYXAudmFsdWVzKCkpCiAKICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGUg
PSB7fQotICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfY2xzIGluIGl0ZXJpdGVtcyh3cHR0ZXN0Lm1h
bmlmZXN0X3Rlc3RfY2xzKToKKyAgICBmb3IgdGVzdF90eXBlLCB0ZXN0X2NscyBpbiB3cHR0ZXN0
Lm1hbmlmZXN0X3Rlc3RfY2xzLml0ZW1zKCk6CiAgICAgICAgIGlmIHRlc3RfY2xzLnJlc3VsdF9j
bHM6CiAgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGVbKHRlc3RfdHlwZSwgRmFs
c2UpXSA9IHRlc3RfY2xzLnJlc3VsdF9jbHMuZGVmYXVsdF9leHBlY3RlZAogICAgICAgICBpZiB0
ZXN0X2Nscy5zdWJ0ZXN0X3Jlc3VsdF9jbHM6CkBAIC0zMjcsMTAgKzMyNyw3IEBAIGRlZiB3cml0
ZV9uZXdfZXhwZWN0ZWQobWV0YWRhdGFfcGF0aCwgZXhwZWN0ZWQpOgogICAgICAgICB0cnk6CiAg
ICAgICAgICAgICB3aXRoIG9wZW4odG1wX3BhdGgsICJ3YiIpIGFzIGY6CiAgICAgICAgICAgICAg
ICAgZi53cml0ZShtYW5pZmVzdF9zdHIuZW5jb2RlKCJ1dGY4IikpCi0gICAgICAgICAgICBpZiBz
eXMudmVyc2lvbl9pbmZvID49ICgzLCAzKToKLSAgICAgICAgICAgICAgICBvcy5yZXBsYWNlKHRt
cF9wYXRoLCBwYXRoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBvcy5yZW5h
bWUodG1wX3BhdGgsIHBhdGgpCisgICAgICAgICAgICBvcy5yZXBsYWNlKHRtcF9wYXRoLCBwYXRo
KQogICAgICAgICBleGNlcHQgKEV4Y2VwdGlvbiwgS2V5Ym9hcmRJbnRlcnJ1cHQpOgogICAgICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zLnVubGluayh0bXBfcGF0aCkKQEAgLTQzMSw3
ICs0MjgsNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKICAgICAgICAgICAgIGFj
dGlvbl9tYXBbImxzYW5fbGVhayJdKGl0ZW0pCiAKICAgICAgICAgbW96bGVha19kYXRhID0gZGF0
YS5nZXQoIm1vemxlYWsiLCB7fSkKLSAgICAgICAgZm9yIHNjb3BlLCBzY29wZV9kYXRhIGluIGl0
ZXJpdGVtcyhtb3psZWFrX2RhdGEpOgorICAgICAgICBmb3Igc2NvcGUsIHNjb3BlX2RhdGEgaW4g
bW96bGVha19kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICBmb3Iga2V5LCBhY3Rpb24gaW4gWygi
b2JqZWN0cyIsICJtb3psZWFrX29iamVjdCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInRvdGFsIiwgIm1vemxlYWtfdG90YWwiKV06CiAgICAgICAgICAgICAgICAgZm9yIGl0
ZW0gaW4gc2NvcGVfZGF0YS5nZXQoa2V5LCBbXSk6CkBAIC02NjgsMTEgKzY2NSwxMSBAQCBjbGFz
cyBUZXN0RmlsZURhdGEob2JqZWN0KToKICAgICAgICAgIyBSZXR1cm4gc3VidGVzdCBub2RlcyBw
cmVzZW50IGluIHRoZSBleHBlY3RlZCBmaWxlLCBidXQgbWlzc2luZyBmcm9tIHRoZSBkYXRhCiAg
ICAgICAgIHJ2ID0gW10KIAotICAgICAgICBmb3IgdGVzdF9pZCwgc3VidGVzdHMgaW4gaXRlcml0
ZW1zKHNlbGYuZGF0YSk6CisgICAgICAgIGZvciB0ZXN0X2lkLCBzdWJ0ZXN0cyBpbiBzZWxmLmRh
dGEuaXRlbXMoKToKICAgICAgICAgICAgIHRlc3QgPSBleHBlY3RlZC5nZXRfdGVzdChlbnN1cmVf
dGV4dCh0ZXN0X2lkKSkKICAgICAgICAgICAgIGlmIG5vdCB0ZXN0OgogICAgICAgICAgICAgICAg
IGNvbnRpbnVlCi0gICAgICAgICAgICBzZWVuX3N1YnRlc3RzID0gc2V0KGVuc3VyZV90ZXh0KGl0
ZW0pIGZvciBpdGVtIGluIGl0ZXJrZXlzKHN1YnRlc3RzKSBpZiBpdGVtIGlzIG5vdCBOb25lKQor
ICAgICAgICAgICAgc2Vlbl9zdWJ0ZXN0cyA9IHNldChlbnN1cmVfdGV4dChpdGVtKSBmb3IgaXRl
bSBpbiBzdWJ0ZXN0cy5rZXlzKCkgaWYgaXRlbSBpcyBub3QgTm9uZSkKICAgICAgICAgICAgIG1p
c3Npbmdfc3VidGVzdHMgPSBzZXQodGVzdC5zdWJ0ZXN0cy5rZXlzKCkpIC0gc2Vlbl9zdWJ0ZXN0
cwogICAgICAgICAgICAgZm9yIGl0ZW0gaW4gbWlzc2luZ19zdWJ0ZXN0czoKICAgICAgICAgICAg
ICAgICBleHBlY3RlZF9zdWJ0ZXN0ID0gdGVzdC5nZXRfc3VidGVzdChpdGVtKQpAQCAtNjkxLDcg
KzY4OCw3IEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmplY3QpOgogICAgICAgICAjIHNpbmNlIHJl
bW92aW5nIHRoZXNlIG1heSBiZSBpbmFwcHJvcHJpYXRlCiAgICAgICAgIHRvcF9sZXZlbF9wcm9w
cywgZGVwZW5kZW50X3Byb3BzID0gdXBkYXRlX3Byb3BlcnRpZXMKICAgICAgICAgYWxsX3Byb3Bl
cnRpZXMgPSBzZXQodG9wX2xldmVsX3Byb3BzKQotICAgICAgICBmb3IgaXRlbSBpbiBpdGVydmFs
dWVzKGRlcGVuZGVudF9wcm9wcyk6CisgICAgICAgIGZvciBpdGVtIGluIGRlcGVuZGVudF9wcm9w
cy52YWx1ZXMoKToKICAgICAgICAgICAgIGFsbF9wcm9wZXJ0aWVzIHw9IHNldChpdGVtKQogCiAg
ICAgICAgIGZpbHRlcmVkID0gW10KQEAgLTc0MSw5ICs3MzgsOSBAQCBjbGFzcyBUZXN0RmlsZURh
dGEob2JqZWN0KToKICAgICAgICAgICAgIHRlc3RfZXhwZWN0ZWQgPSBleHBlY3RlZC5nZXRfdGVz
dCh0ZXN0X2lkKQogICAgICAgICAgICAgZXhwZWN0ZWRfYnlfdGVzdFt0ZXN0X2lkXSA9IHRlc3Rf
ZXhwZWN0ZWQKIAotICAgICAgICBmb3IgdGVzdF9pZCwgdGVzdF9kYXRhIGluIGl0ZXJpdGVtcyhz
ZWxmLmRhdGEpOgorICAgICAgICBmb3IgdGVzdF9pZCwgdGVzdF9kYXRhIGluIHNlbGYuZGF0YS5p
dGVtcygpOgogICAgICAgICAgICAgdGVzdF9pZCA9IGVuc3VyZV9zdHIodGVzdF9pZCkKLSAgICAg
ICAgICAgIGZvciBzdWJ0ZXN0X2lkLCByZXN1bHRzX2xpc3QgaW4gaXRlcml0ZW1zKHRlc3RfZGF0
YSk6CisgICAgICAgICAgICBmb3Igc3VidGVzdF9pZCwgcmVzdWx0c19saXN0IGluIHRlc3RfZGF0
YS5pdGVtcygpOgogICAgICAgICAgICAgICAgIGZvciBwcm9wLCBydW5faW5mbywgdmFsdWUgaW4g
cmVzdWx0c19saXN0OgogICAgICAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBkaXJlY3Rv
cnkgbWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgaWYgc3VidGVzdF9pZCBpcyBOb25lIGFu
ZCB0ZXN0X2lkLmVuZHN3aXRoKCJfX2Rpcl9fIik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tcGNv
bnRleHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNTBjMDQ3
ODJhNjUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQucHkKQEAgLTAsMCArMSwxMSBAQAoraW1w
b3J0IG11bHRpcHJvY2Vzc2luZworCitfY29udGV4dCA9IE5vbmUKKworCitkZWYgZ2V0X2NvbnRl
eHQoKToKKyAgICBnbG9iYWwgX2NvbnRleHQKKworICAgIGlmIF9jb250ZXh0IGlzIE5vbmU6Cisg
ICAgICAgIF9jb250ZXh0ID0gbXVsdGlwcm9jZXNzaW5nLmdldF9jb250ZXh0KCJzcGF3biIpCisg
ICAgcmV0dXJuIF9jb250ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvY2Vzcy5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGEyYjg5NGNiNzRkLi4wMDAwMDAwMDAwMDAKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJv
Y2Vzcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLWltcG9ydCBzeXMKLQotaW1w
b3J0IHNpeAotCi0KLWRlZiBjYXN0X2VudihlbnYpOgotICAgICIiIkVuY29kZSBhbGwgdGhlIGVu
dmlyb25tZW50IHZhbHVlcyBhcyB0aGUgYXBwcm9wcmlhdGUgdHlwZSBmb3IgZWFjaCBQeXRob24g
dmVyc2lvbgotICAgIFRoaXMgYXNzdW1lcyB0aGF0IGFsbCB0aGUgZGF0YSBpcyBvciBjYW4gYmUg
cmVwcmVzZW50ZWQgYXMgVVRGOCIiIgotCi0gICAgZW52X3R5cGUgPSBzaXguZW5zdXJlX2JpbmFy
eSBpZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMyBlbHNlIHNpeC5lbnN1cmVfc3RyCi0gICAgcmV0
dXJuIHtlbnZfdHlwZShrZXkpOiBlbnZfdHlwZSh2YWx1ZSkgZm9yIGtleSwgdmFsdWUgaW4gc2l4
Lml0ZXJpdGVtcyhlbnYpfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQppbmRleCBh
YmQ4NDA5NGJiMzMuLmU2NWRmNWVlODk5MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVj
dHMucHkKQEAgLTEsNiArMSw1IEBACiBpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgaW1wCi1mcm9t
IHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKIGZyb20gLmJyb3dzZXJzIGltcG9ydCBwcm9kdWN0X2xp
c3QKIApAQCAtMzQsMzQgKzMzLDI5IEBAIGNsYXNzIFByb2R1Y3Qob2JqZWN0KToKICAgICAgICAg
bW9kdWxlID0gcHJvZHVjdF9tb2R1bGUoY29uZmlnLCBwcm9kdWN0KQogICAgICAgICBkYXRhID0g
bW9kdWxlLl9fd3B0cnVubmVyX18KICAgICAgICAgc2VsZi5uYW1lID0gcHJvZHVjdAorICAgICAg
ICBpZiBpc2luc3RhbmNlKGRhdGFbImJyb3dzZXIiXSwgc3RyKToKKyAgICAgICAgICAgIHNlbGYu
X2Jyb3dzZXJfY2xzID0ge05vbmU6IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pfQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fYnJvd3Nlcl9jbHMgPSB7a2V5OiBnZXRh
dHRyKG1vZHVsZSwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
a2V5LCB2YWx1ZSBpbiBkYXRhWyJicm93c2VyIl0uaXRlbXMoKX0KICAgICAgICAgc2VsZi5jaGVj
a19hcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImNoZWNrX2FyZ3MiXSkKLSAgICAgICAgc2Vs
Zi5icm93c2VyX2NscyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pCiAgICAgICAg
IHNlbGYuZ2V0X2Jyb3dzZXJfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXJf
a3dhcmdzIl0pCiAgICAgICAgIHNlbGYuZ2V0X2V4ZWN1dG9yX2t3YXJncyA9IGdldGF0dHIobW9k
dWxlLCBkYXRhWyJleGVjdXRvcl9rd2FyZ3MiXSkKICAgICAgICAgc2VsZi5lbnZfb3B0aW9ucyA9
IGdldGF0dHIobW9kdWxlLCBkYXRhWyJlbnZfb3B0aW9ucyJdKSgpCiAgICAgICAgIHNlbGYuZ2V0
X2Vudl9leHRyYXMgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiZW52X2V4dHJhcyJdKQogICAgICAg
ICBzZWxmLnJ1bl9pbmZvX2V4dHJhcyA9IChnZXRhdHRyKG1vZHVsZSwgZGF0YVsicnVuX2luZm9f
ZXh0cmFzIl0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFz
IiBpbiBkYXRhIGVsc2UgbGFtYmRhICoqa3dhcmdzOnt9KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBkYXRhIGVsc2UgbGFtYmRhICoqa3dh
cmdzOnt9KQogICAgICAgICBzZWxmLmdldF90aW1lb3V0X211bHRpcGxpZXIgPSBnZXRhdHRyKG1v
ZHVsZSwgZGF0YVsidGltZW91dF9tdWx0aXBsaWVyIl0pCiAKICAgICAgICAgc2VsZi5leGVjdXRv
cl9jbGFzc2VzID0ge30KLSAgICAgICAgZm9yIHRlc3RfdHlwZSwgY2xzX25hbWUgaW4gaXRlcml0
ZW1zKGRhdGFbImV4ZWN1dG9yIl0pOgorICAgICAgICBmb3IgdGVzdF90eXBlLCBjbHNfbmFtZSBp
biBkYXRhWyJleGVjdXRvciJdLml0ZW1zKCk6CiAgICAgICAgICAgICBjbHMgPSBnZXRhdHRyKG1v
ZHVsZSwgY2xzX25hbWUpCiAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2NsYXNzZXNbdGVzdF90
eXBlXSA9IGNscwogCi0KLWRlZiBsb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Ns
cz1GYWxzZSk6Ci0gICAgcnYgPSBQcm9kdWN0KGNvbmZpZywgcHJvZHVjdCkKLSAgICBpZiBub3Qg
bG9hZF9jbHM6Ci0gICAgICAgIHJldHVybiAocnYuY2hlY2tfYXJncywKLSAgICAgICAgICAgICAg
ICBydi5icm93c2VyX2NscywKLSAgICAgICAgICAgICAgICBydi5nZXRfYnJvd3Nlcl9rd2FyZ3Ms
Ci0gICAgICAgICAgICAgICAgcnYuZXhlY3V0b3JfY2xhc3NlcywKLSAgICAgICAgICAgICAgICBy
di5nZXRfZXhlY3V0b3Jfa3dhcmdzLAotICAgICAgICAgICAgICAgIHJ2LmVudl9vcHRpb25zLAot
ICAgICAgICAgICAgICAgIHJ2LmdldF9lbnZfZXh0cmFzLAotICAgICAgICAgICAgICAgIHJ2LnJ1
bl9pbmZvX2V4dHJhcykKLSAgICByZXR1cm4gcnYKKyAgICBkZWYgZ2V0X2Jyb3dzZXJfY2xzKHNl
bGYsIHRlc3RfdHlwZSk6CisgICAgICAgIGlmIHRlc3RfdHlwZSBpbiBzZWxmLl9icm93c2VyX2Ns
czoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9icm93c2VyX2Nsc1t0ZXN0X3R5cGVdCisgICAg
ICAgIHJldHVybiBzZWxmLl9icm93c2VyX2Nsc1tOb25lXQogCiAKIGRlZiBsb2FkX3Byb2R1Y3Rf
dXBkYXRlKGNvbmZpZywgcHJvZHVjdCk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHku
cHkKaW5kZXggODhkMWMyMzJiZmI1Li5lZWI1YWYyMzAwMjkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9zdGFiaWxpdHkucHkKQEAgLTUsNyArNSw2IEBAIGltcG9ydCBpbwogaW1wb3J0IG9zCiBm
cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdCwgZGVmYXVsdGRpY3QKIGZyb20gZGF0
ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKIGZyb20g
bW96bG9nIGltcG9ydCByZWFkZXIKIGZyb20gbW96bG9nLmZvcm1hdHRlcnMgaW1wb3J0IEpTT05G
b3JtYXR0ZXIKQEAgLTEzLDggKzEyLDggQEAgZnJvbSBtb3psb2cuaGFuZGxlcnMgaW1wb3J0IEJh
c2VIYW5kbGVyLCBTdHJlYW1IYW5kbGVyLCBMb2dMZXZlbEZpbHRlcgogCiBoZXJlID0gb3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKQogbG9jYWxwYXRocyA9IGltcC5sb2FkX3NvdXJjZSgibG9jYWxw
YXRocyIsIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5w
YXJkaXIsICJsb2NhbHBhdGhzLnB5IikpKQotZnJvbSBjaS50Yy5naXRodWJfY2hlY2tzX291dHB1
dCBpbXBvcnQgZ2V0X2doX2NoZWNrc19vdXRwdXR0ZXIKLWZyb20gd3B0Lm1hcmtkb3duIGltcG9y
dCBtYXJrZG93bl9hZGp1c3QsIHRhYmxlCitmcm9tIGNpLnRjLmdpdGh1Yl9jaGVja3Nfb3V0cHV0
IGltcG9ydCBnZXRfZ2hfY2hlY2tzX291dHB1dHRlciAgIyB0eXBlOiBpZ25vcmUKK2Zyb20gd3B0
Lm1hcmtkb3duIGltcG9ydCBtYXJrZG93bl9hZGp1c3QsIHRhYmxlICAjIHR5cGU6IGlnbm9yZQog
CiAKICMgSWYgYSB0ZXN0IHRha2VzIG1vcmUgdGhhbiAoRkxBS1lfVEhSRVNIT0xEKnRpbWVvdXQp
IGFuZCBkb2VzIG5vdCBjb25zaXN0ZW50bHkKQEAgLTIyLDcgKzIxLDcgQEAgZnJvbSB3cHQubWFy
a2Rvd24gaW1wb3J0IG1hcmtkb3duX2FkanVzdCwgdGFibGUKIEZMQUtZX1RIUkVTSE9MRCA9IDAu
OAogCiAKLWNsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CitjbGFzcyBMb2dBY3Rp
b25GaWx0ZXIoQmFzZUhhbmRsZXIpOiAgIyB0eXBlOiBpZ25vcmUKIAogICAgICIiIkhhbmRsZXIg
dGhhdCBmaWx0ZXJzIG91dCBtZXNzYWdlcyBub3Qgb2YgYSBnaXZlbiBzZXQgb2YgYWN0aW9ucy4K
IApAQCAtNDQsNyArNDMsNyBAQCBjbGFzcyBMb2dBY3Rpb25GaWx0ZXIoQmFzZUhhbmRsZXIpOgog
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuaW5uZXIoaXRlbSkKIAogCi1jbGFzcyBMb2dIYW5kbGVy
KHJlYWRlci5Mb2dIYW5kbGVyKToKK2NsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRsZXIp
OiAgIyB0eXBlOiBpZ25vcmUKIAogICAgICIiIkhhbmRsZSB1cGRhdGluZyB0ZXN0IGFuZCBzdWJ0
ZXN0IHN0YXR1cyBpbiBsb2cuCiAKQEAgLTE0MiwxMCArMTQxLDEwIEBAIGRlZiBwcm9jZXNzX3Jl
c3VsdHMobG9nLCBpdGVyYXRpb25zKToKICAgICBoYW5kbGVyID0gTG9nSGFuZGxlcigpCiAgICAg
cmVhZGVyLmhhbmRsZV9sb2cocmVhZGVyLnJlYWQobG9nKSwgaGFuZGxlcikKICAgICByZXN1bHRz
ID0gaGFuZGxlci5yZXN1bHRzCi0gICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiBpdGVyaXRlbXMo
cmVzdWx0cyk6CisgICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiByZXN1bHRzLml0ZW1zKCk6CiAg
ICAgICAgIGlmIGlzX2luY29uc2lzdGVudCh0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CiAg
ICAgICAgICAgICBpbmNvbnNpc3RlbnQuYXBwZW5kKCh0ZXN0X25hbWUsIE5vbmUsIHRlc3RbInN0
YXR1cyJdLCBbXSkpCi0gICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gaXRlcml0
ZW1zKHRlc3RbInN1YnRlc3RzIl0pOgorICAgICAgICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0
IGluIHRlc3RbInN1YnRlc3RzIl0uaXRlbXMoKToKICAgICAgICAgICAgIGlmIGlzX2luY29uc2lz
dGVudChzdWJ0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CiAgICAgICAgICAgICAgICAgaW5j
b25zaXN0ZW50LmFwcGVuZCgodGVzdF9uYW1lLCBzdWJ0ZXN0X25hbWUsIHN1YnRlc3RbInN0YXR1
cyJdLCBzdWJ0ZXN0WyJtZXNzYWdlcyJdKSkKIApAQCAtMjM1LDcgKzIzNCw3IEBAIGRlZiB3cml0
ZV9yZXN1bHRzKGxvZywgcmVzdWx0cywgaXRlcmF0aW9ucywgcHJfbnVtYmVyPU5vbmUsIHVzZV9k
ZXRhaWxzPUZhbHNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRlc3RzIiBpZiBsZW4ocmVzdWx0cykgPiAxCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgInRlc3QiKSkKIAotICAgIGZvciB0
ZXN0X25hbWUsIHRlc3QgaW4gaXRlcml0ZW1zKHJlc3VsdHMpOgorICAgIGZvciB0ZXN0X25hbWUs
IHRlc3QgaW4gcmVzdWx0cy5pdGVtcygpOgogICAgICAgICBiYXNldXJsID0gImh0dHA6Ly93M2Mt
dGVzdC5vcmcvc3VibWlzc2lvbnMiCiAgICAgICAgIGlmICJodHRwcyIgaW4gb3MucGF0aC5zcGxp
dGV4dCh0ZXN0X25hbWUpWzBdLnNwbGl0KCIuIilbMTpdOgogICAgICAgICAgICAgYmFzZXVybCA9
ICJodHRwczovL3czYy10ZXN0Lm9yZy9zdWJtaXNzaW9ucyIKQEAgLTMwNSw3ICszMDQsNyBAQCBk
ZWYgZ2V0X3N0ZXBzKGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0YXJ0LCBrd2FyZ3Nf
ZXh0cmFzKToKICAgICBmb3Iga3dhcmdzX2V4dHJhIGluIGt3YXJnc19leHRyYXM6CiAgICAgICAg
IGlmIGt3YXJnc19leHRyYToKICAgICAgICAgICAgIGZsYWdzX3N0cmluZyA9ICIgd2l0aCBmbGFn
cyAlcyIgJSAiICIuam9pbigKLSAgICAgICAgICAgICAgICAiJXM9JXMiICUgaXRlbSBmb3IgaXRl
bSBpbiBpdGVyaXRlbXMoa3dhcmdzX2V4dHJhKSkKKyAgICAgICAgICAgICAgICAiJXM9JXMiICUg
aXRlbSBmb3IgaXRlbSBpbiBrd2FyZ3NfZXh0cmEuaXRlbXMoKSkKICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgIGZsYWdzX3N0cmluZyA9ICIiCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEu
anMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0ZHJpdmVyLWV4dHJhLmpzCmluZGV4IDljMGM2OWFmM2EzZi4uODQyYWJmNDExZjkwIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKQEAgLTM0
LDcgKzM0LDcgQEAKICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICJ0ZXN0ZHJpdmVy
LWNvbXBsZXRlIikgewogICAgICAgICAgICAgY29uc3QgY21kX2lkID0gZGF0YS5jbWRfaWQ7CiAg
ICAgICAgICAgICBjb25zdCBbb25fc3VjY2Vzcywgb25fZmFpbHVyZV0gPSBwZW5kaW5nLmdldChj
bWRfaWQpOwotICAgICAgICAgICAgcGVuZGluZy5jbGVhcihjbWRfaWQpOworICAgICAgICAgICAg
cGVuZGluZy5kZWxldGUoY21kX2lkKTsKICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVyID0gZGF0
YS5zdGF0dXMgPT09ICJzdWNjZXNzIiA/IG9uX3N1Y2Nlc3MgOiBvbl9mYWlsdXJlOwogICAgICAg
ICAgICAgcmVzb2x2ZXIoZGF0YSk7CiAgICAgICAgICAgICBpZiAoaXNfdGVzdF9jb250ZXh0KSB7
CkBAIC0xMzYsNiArMTM2LDkgQEAKICAgICAgICAgICAgIGlmICh0ZXN0aGFybmVzc19jb250ZXh0
ID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUcmllZCB0byBy
dW4gaW4gYSBub24tdGVzdGhhcm5lc3Mgd2luZG93IHdpdGhvdXQgYSBjYWxsIHRvIHNldF90ZXN0
X2NvbnRleHQiKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhY3Rpb25fbXNnLmNv
bnRleHQgPT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhY3Rpb25fbXNnLmNvbnRleHQgPSBn
ZXRfd2luZG93X2lkKHdpbmRvdyk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbWRfaWQg
PSBjdHhfY21kX2lkKys7CiAgICAgICAgICAgICBhY3Rpb25fbXNnLmNtZF9pZCA9IGNtZF9pZDsK
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0X2RyaXZlci5tZXNzYWdlX3Rlc3Qoe3R5cGU6ICJ0ZXN0
ZHJpdmVyLWNvbW1hbmQiLApAQCAtMTY5LDYgKzE3MiwxMCBAQAogICAgICAgICByZXR1cm4gY3Jl
YXRlX2FjdGlvbigiY2xpY2siLCB7c2VsZWN0b3IsIGNvbnRleHR9KTsKICAgICB9OwogCisgICAg
d2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLmRlbGV0ZV9hbGxfY29va2llcyA9IGZ1bmN0aW9u
KGNvbnRleHQ9bnVsbCkgeworICAgICAgICByZXR1cm4gY3JlYXRlX2FjdGlvbigiZGVsZXRlX2Fs
bF9jb29raWVzIiwge2NvbnRleHR9KTsKKyAgICB9OworCiAgICAgd2luZG93LnRlc3RfZHJpdmVy
X2ludGVybmFsLnNlbmRfa2V5cyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGtleXMpIHsKICAgICAgICAg
Y29uc3Qgc2VsZWN0b3IgPSBnZXRfc2VsZWN0b3IoZWxlbWVudCk7CiAgICAgICAgIGNvbnN0IGNv
bnRleHQgPSBnZXRfY29udGV4dChlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0
LXNlcnZvLmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKaW5kZXggYTEwYjY5ZGY1NTA0Li40
YTI3ZGMyN2VmNmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Ro
YXJuZXNzcmVwb3J0LXNlcnZvLmpzCkBAIC0xLDQgKzEsNCBAQAotdmFyIHByb3BzID0ge291dHB1
dDolKG91dHB1dClkfTsKK3ZhciBwcm9wcyA9IHtvdXRwdXQ6JShvdXRwdXQpZCwgZGVidWc6ICUo
ZGVidWcpc307CiB2YXIgc3RhcnRfbG9jID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwog
c3RhcnRfbG9jLmhyZWYgPSBsb2NhdGlvbi5ocmVmOwogc2V0dXAocHJvcHMpOwpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2Ry
aXZlci5qcwppbmRleCBjODg4NDEzNjA0NzAuLjc4MTk1MzhkYmI4ZiAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhh
cm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2
ZXIuanMKQEAgLTEsNCArMSw0IEBACi1zZXR1cCh7b3V0cHV0OiUob3V0cHV0KWR9KTsKK3NldHVw
KHtvdXRwdXQ6JShvdXRwdXQpZCwgZGVidWc6ICUoZGVidWcpc30pOwogCiBhZGRfY29tcGxldGlv
bl9jYWxsYmFjayhmdW5jdGlvbigpIHsKICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5j
dGlvbiAodGVzdHMsIHN0YXR1cykgewpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
aGFybmVzc3JlcG9ydC5qcwppbmRleCA5Y2Q2ODBlMTRhZWQuLmQzODU2OTI0NDVjNSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKQEAgLTczLDYg
KzczLDcgQEAgd2luZG93Ll9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4dF9ldmVudCA9IGZ1bmN0aW9u
KCkgewogICB2YXIgcHJvcHMgPSB7b3V0cHV0OiAlKG91dHB1dClkLAogICAgICAgICAgICAgICAg
dGltZW91dF9tdWx0aXBsaWVyOiAlKHRpbWVvdXRfbXVsdGlwbGllcilzLAogICAgICAgICAgICAg
ICAgZXhwbGljaXRfdGltZW91dDogJShleHBsaWNpdF90aW1lb3V0KXMsCisgICAgICAgICAgICAg
ICBkZWJ1ZzogJShkZWJ1ZylzLAogICAgICAgICAgICAgICAgbWVzc2FnZV9ldmVudHM6IFsiY29t
cGxldGlvbiJdfTsKIAogICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cywg
aGFybmVzc19zdGF0dXMpIHsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5Cmlu
ZGV4IDRhM2ZhNDI3MzY1NC4uOTQ5MmE4YmMzOGU2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3Rsb2FkZXIucHkKQEAgLTEsMTYgKzEsMTQgQEAKIGltcG9ydCBoYXNobGliCiBpbXBvcnQg
anNvbgogaW1wb3J0IG9zCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHNw
bGl0Citmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQKIGZyb20gYWJjIGltcG9ydCBB
QkNNZXRhLCBhYnN0cmFjdG1ldGhvZAotZnJvbSBzaXgubW92ZXMucXVldWUgaW1wb3J0IEVtcHR5
Citmcm9tIHF1ZXVlIGltcG9ydCBFbXB0eQogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVs
dGRpY3QsIGRlcXVlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKLWZyb20gc2l4
IGltcG9ydCBlbnN1cmVfYmluYXJ5LCBpdGVyaXRlbXMKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBy
YW5nZQogCiBmcm9tIC4gaW1wb3J0IG1hbmlmZXN0aW5jbHVkZQogZnJvbSAuIGltcG9ydCBtYW5p
ZmVzdGV4cGVjdGVkCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAogZnJvbSAuIGltcG9ydCB3cHR0
ZXN0CiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAogCkBAIC0yMiw5ICsyMCw5IEBAIGRv
d25sb2FkX2Zyb21fZ2l0aHViID0gTm9uZQogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgogICAg
ICMgVGhpcyByZWxpZXMgb24gYW4gYWxyZWFkeSBsb2FkZWQgbW9kdWxlIGhhdmluZyBzZXQgdGhl
IHN5cy5wYXRoIGNvcnJlY3RseSA6KAogICAgIGdsb2JhbCBtYW5pZmVzdCwgbWFuaWZlc3RfdXBk
YXRlLCBkb3dubG9hZF9mcm9tX2dpdGh1YgotICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlm
ZXN0CisgICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QgICMgdHlwZTogaWdub3JlCiAg
ICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgdXBkYXRlIGFzIG1hbmlmZXN0X3VwZGF0ZQotICAgIGZy
b20gbWFuaWZlc3QuZG93bmxvYWQgaW1wb3J0IGRvd25sb2FkX2Zyb21fZ2l0aHViCisgICAgZnJv
bSBtYW5pZmVzdC5kb3dubG9hZCBpbXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIgICMgdHlwZTog
aWdub3JlCiAKIAogY2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKQEAgLTQxLDcgKzM5LDcg
QEAgY2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKICAgICAgICAgICAgIHJhaXNlCiAKICAg
ICAgICAgc2VsZi5ncm91cF9ieV90ZXN0ID0ge30KLSAgICAgICAgZm9yIGdyb3VwLCB0ZXN0X2lk
cyBpbiBpdGVyaXRlbXMoc2VsZi5fZGF0YSk6CisgICAgICAgIGZvciBncm91cCwgdGVzdF9pZHMg
aW4gc2VsZi5fZGF0YS5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHRlc3RfaWQgaW4gdGVzdF9p
ZHM6CiAgICAgICAgICAgICAgICAgc2VsZi5ncm91cF9ieV90ZXN0W3Rlc3RfaWRdID0gZ3JvdXAK
IApAQCAtNTEsNiArNDksMTYgQEAgY2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKICAgICBk
ZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFba2V5
XQogCitkZWYgcmVhZF9pbmNsdWRlX2Zyb21fZmlsZShmaWxlKToKKyAgICBuZXdfaW5jbHVkZSA9
IFtdCisgICAgd2l0aCBvcGVuKGZpbGUpIGFzIGY6CisgICAgICAgIGZvciBsaW5lIGluIGY6Cisg
ICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgICAgICAgICAjIEFsbG93IHdob2xl
LWxpbmUgY29tbWVudHM7CisgICAgICAgICAgICAjIGZyYWdtZW50cyBtZWFuIHdlIGNhbid0IGhh
dmUgcGFydGlhbCBsaW5lICMtYmFzZWQgY29tbWVudHMKKyAgICAgICAgICAgIGlmIGxlbihsaW5l
KSA+IDAgYW5kIG5vdCBsaW5lLnN0YXJ0c3dpdGgoIiMiKToKKyAgICAgICAgICAgICAgICBuZXdf
aW5jbHVkZS5hcHBlbmQobGluZSkKKyAgICByZXR1cm4gbmV3X2luY2x1ZGUKIAogZGVmIHVwZGF0
ZV9pbmNsdWRlX2Zvcl9ncm91cHModGVzdF9ncm91cHMsIGluY2x1ZGUpOgogICAgIGlmIGluY2x1
ZGUgaXMgTm9uZToKQEAgLTkzLDcgKzEwMSw3IEBAIGNsYXNzIEhhc2hDaHVua2VyKFRlc3RDaHVu
a2VyKToKICAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFuaWZlc3QpOgogICAgICAgICBjaHVua19p
bmRleCA9IHNlbGYuY2h1bmtfbnVtYmVyIC0gMQogICAgICAgICBmb3IgdGVzdF90eXBlLCB0ZXN0
X3BhdGgsIHRlc3RzIGluIG1hbmlmZXN0OgotICAgICAgICAgICAgaCA9IGludChoYXNobGliLm1k
NShlbnN1cmVfYmluYXJ5KHRlc3RfcGF0aCkpLmhleGRpZ2VzdCgpLCAxNikKKyAgICAgICAgICAg
IGggPSBpbnQoaGFzaGxpYi5tZDUodGVzdF9wYXRoLmVuY29kZSgpKS5oZXhkaWdlc3QoKSwgMTYp
CiAgICAgICAgICAgICBpZiBoICUgc2VsZi50b3RhbF9jaHVua3MgPT0gY2h1bmtfaW5kZXg6CiAg
ICAgICAgICAgICAgICAgeWllbGQgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzCiAKQEAgLTEx
Miw3ICsxMjAsNyBAQCBjbGFzcyBEaXJlY3RvcnlIYXNoQ2h1bmtlcihUZXN0Q2h1bmtlcik6CiAg
ICAgICAgICAgICAgICAgaGFzaF9wYXRoID0gb3MucGF0aC5zZXAuam9pbihvcy5wYXRoLmRpcm5h
bWUodGVzdF9wYXRoKS5zcGxpdChvcy5wYXRoLnNlcCwgZGVwdGgpWzpkZXB0aF0pCiAgICAgICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGhhc2hfcGF0aCA9IG9zLnBhdGguZGlybmFtZSh0
ZXN0X3BhdGgpCi0gICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGVuc3VyZV9iaW5hcnko
aGFzaF9wYXRoKSkuaGV4ZGlnZXN0KCksIDE2KQorICAgICAgICAgICAgaCA9IGludChoYXNobGli
Lm1kNShoYXNoX3BhdGguZW5jb2RlKCkpLmhleGRpZ2VzdCgpLCAxNikKICAgICAgICAgICAgIGlm
IGggJSBzZWxmLnRvdGFsX2NodW5rcyA9PSBjaHVua19pbmRleDoKICAgICAgICAgICAgICAgICB5
aWVsZCB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMKIApAQCAtMTczLDcgKzE4MSw3IEBAIGNs
YXNzIE1hbmlmZXN0TG9hZGVyKG9iamVjdCk6CiAKICAgICBkZWYgbG9hZChzZWxmKToKICAgICAg
ICAgcnYgPSB7fQotICAgICAgICBmb3IgdXJsX2Jhc2UsIHBhdGhzIGluIGl0ZXJpdGVtcyhzZWxm
LnRlc3RfcGF0aHMpOgorICAgICAgICBmb3IgdXJsX2Jhc2UsIHBhdGhzIGluIHNlbGYudGVzdF9w
YXRocy5pdGVtcygpOgogICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IHNlbGYubG9hZF9tYW5p
ZmVzdCh1cmxfYmFzZT11cmxfYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKipwYXRocykKICAgICAgICAgICAgIHBhdGhfZGF0YSA9IHsidXJsX2Jh
c2UiOiB1cmxfYmFzZX0KQEAgLTM5MCw3ICszOTgsOCBAQCBjbGFzcyBHcm91cGVkU291cmNlKFRl
c3RTb3VyY2UpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0
ZXN0cywgKiprd2FyZ3MpOgotICAgICAgICB0ZXN0X3F1ZXVlID0gUXVldWUoKQorICAgICAgICBt
cCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHRlc3RfcXVldWUgPSBtcC5RdWV1
ZSgpCiAgICAgICAgIGdyb3VwcyA9IFtdCiAKICAgICAgICAgc3RhdGUgPSB7fQpAQCAtNDIzLDcg
KzQzMiw4IEBAIGNsYXNzIEdyb3VwZWRTb3VyY2UoVGVzdFNvdXJjZSk6CiBjbGFzcyBTaW5nbGVU
ZXN0U291cmNlKFRlc3RTb3VyY2UpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBtYWtlX3F1
ZXVlKGNscywgdGVzdHMsICoqa3dhcmdzKToKLSAgICAgICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkK
KyAgICAgICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICB0ZXN0X3F1ZXVl
ID0gbXAuUXVldWUoKQogICAgICAgICBwcm9jZXNzZXMgPSBrd2FyZ3NbInByb2Nlc3NlcyJdCiAg
ICAgICAgIHF1ZXVlcyA9IFtkZXF1ZShbXSkgZm9yIF8gaW4gcmFuZ2UocHJvY2Vzc2VzKV0KICAg
ICAgICAgbWV0YWRhdGFzID0gW2Nscy5ncm91cF9tZXRhZGF0YShOb25lKSBmb3IgXyBpbiByYW5n
ZShwcm9jZXNzZXMpXQpAQCAtNDY3LDkgKzQ3NywxMCBAQCBjbGFzcyBHcm91cEZpbGVUZXN0U291
cmNlKFRlc3RTb3VyY2UpOgogCiAgICAgICAgIGlkc190b190ZXN0cyA9IHt0ZXN0LmlkOiB0ZXN0
IGZvciB0ZXN0IGluIHRlc3RzfQogCi0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAg
ICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1w
LlF1ZXVlKCkKIAotICAgICAgICBmb3IgZ3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gaXRlcml0ZW1z
KHRlc3RzX2J5X2dyb3VwKToKKyAgICAgICAgZm9yIGdyb3VwX25hbWUsIHRlc3RfaWRzIGluIHRl
c3RzX2J5X2dyb3VwLml0ZW1zKCk6CiAgICAgICAgICAgICBncm91cF9tZXRhZGF0YSA9IHsic2Nv
cGUiOiBncm91cF9uYW1lfQogICAgICAgICAgICAgZ3JvdXAgPSBkZXF1ZSgpCiAKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RydW5uZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CmluZGV4IDBiZGU1YmEzNDhlYS4uNGRhMTI1NWQx
M2I3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkKQEAgLTEsMTQgKzEs
MTIgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwotCi1pbXBvcnQg
bXVsdGlwcm9jZXNzaW5nCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNrCi1mcm9t
IHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gcXVldWUgaW1wb3J0IEVtcHR5CiBm
cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBp
bXBvcnQgUHJvY2VzcywgY3VycmVudF9wcm9jZXNzLCBRdWV1ZQogCiBmcm9tIG1vemxvZyBpbXBv
cnQgc3RydWN0dXJlZGxvZywgY2FwdHVyZQogCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAorCiAj
IFNwZWNpYWwgdmFsdWUgdXNlZCBhcyBhIHNlbnRpbmFsIGluIHZhcmlvdXMgY29tbWFuZHMKIFN0
b3AgPSBvYmplY3QoKQogCkBAIC0yNCwzMCArMjIsMTIgQEAgZGVmIHJlbGVhc2VfbW96bG9nX2xv
Y2soKToKICAgICAgICAgcGFzcwogCiAKLWNsYXNzIE1lc3NhZ2VMb2dnZXIob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZV9mdW5jKToKLSAgICAgICAgc2VsZi5zZW5kX21l
c3NhZ2UgPSBtZXNzYWdlX2Z1bmMKLQotICAgIGRlZiBfbG9nX2RhdGEoc2VsZiwgYWN0aW9uLCAq
Kmt3YXJncyk6Ci0gICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJsb2ciLCBhY3Rpb24sIGt3YXJn
cykKLQotICAgIGRlZiBwcm9jZXNzX291dHB1dChzZWxmLCBwcm9jZXNzLCBkYXRhLCBjb21tYW5k
KToKLSAgICAgICAgc2VsZi5fbG9nX2RhdGEoInByb2Nlc3Nfb3V0cHV0IiwgcHJvY2Vzcz1wcm9j
ZXNzLCBkYXRhPWRhdGEsIGNvbW1hbmQ9Y29tbWFuZCkKLQorY2xhc3MgTG9nTWVzc2FnZUhhbmRs
ZXI6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlbmRfbWVzc2FnZSk6CisgICAgICAgIHNlbGYu
c2VuZF9tZXNzYWdlID0gc2VuZF9tZXNzYWdlCiAKLWRlZiBfbG9nX2Z1bmMobGV2ZWxfbmFtZSk6
Ci0gICAgZGVmIGxvZyhzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgc2VsZi5fbG9nX2RhdGEobGV2
ZWxfbmFtZS5sb3dlcigpLCBtZXNzYWdlPW1lc3NhZ2UpCi0gICAgbG9nLl9fZG9jX18gPSAiIiJM
b2cgYSBtZXNzYWdlIHdpdGggbGV2ZWwgJXMKLQotOnBhcmFtIG1lc3NhZ2U6IFRoZSBzdHJpbmcg
bWVzc2FnZSB0byBsb2cKLSIiIiAlIGxldmVsX25hbWUKLSAgICBsb2cuX19uYW1lX18gPSBzdHIo
bGV2ZWxfbmFtZSkubG93ZXIoKQotICAgIHJldHVybiBsb2cKLQotIyBDcmVhdGUgYWxsIHRoZSBt
ZXRob2RzIG9uIFN0cnVjdHVyZWRMb2cgZm9yIGRlYnVnIGxldmVscwotZm9yIGxldmVsX25hbWUg
aW4gc3RydWN0dXJlZGxvZy5sb2dfbGV2ZWxzOgotICAgIHNldGF0dHIoTWVzc2FnZUxvZ2dlciwg
bGV2ZWxfbmFtZS5sb3dlcigpLCBfbG9nX2Z1bmMobGV2ZWxfbmFtZSkpCisgICAgZGVmIF9fY2Fs
bF9fKHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgibG9nIiwgZGF0YSkK
IAogCiBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CkBAIC02OCw3ICs0OCw3IEBAIGNsYXNzIFRl
c3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5yZXN1bHRfcXVldWUgPSByZXN1bHRfcXVl
dWUKIAogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKLSAgICAgICAgc2VsZi5uYW1l
ID0gY3VycmVudF9wcm9jZXNzKCkubmFtZQorICAgICAgICBzZWxmLm5hbWUgPSBtcGNvbnRleHQu
Z2V0X2NvbnRleHQoKS5jdXJyZW50X3Byb2Nlc3MoKS5uYW1lCiAgICAgICAgIHNlbGYubG9nZ2Vy
ID0gbG9nZ2VyCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtOTgsNyArNzgsMTIgQEAg
Y2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgICIi
Ik1haW4gbG9vcCBhY2NlcHRpbmcgY29tbWFuZHMgb3ZlciB0aGUgcGlwZSBhbmQgdHJpZ2dlcmlu
ZwogICAgICAgICB0aGUgYXNzb2NpYXRlZCBtZXRob2RzIiIiCi0gICAgICAgIHNlbGYuc2V0dXAo
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnNldHVwKCkKKyAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkFuIGVycm9yIG9j
Y3VyZWQgZHVyaW5nIGV4ZWN1dG9yIHNldHVwOlxuJXMiICUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIHJhaXNlCiAg
ICAgICAgIGNvbW1hbmRzID0geyJydW5fdGVzdCI6IHNlbGYucnVuX3Rlc3QsCiAgICAgICAgICAg
ICAgICAgICAgICJyZXNldCI6IHNlbGYucmVzZXQsCiAgICAgICAgICAgICAgICAgICAgICJzdG9w
Ijogc2VsZi5zdG9wLApAQCAtMTUzLDcgKzEzOCw5IEBAIGRlZiBzdGFydF9ydW5uZXIocnVubmVy
X2NvbW1hbmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRfcXVldWUsCiAgICAgIyBpbiB0aGUgbG9nZ2lu
ZyBtb2R1bGUgdW5sb2NrZWQKICAgICByZWxlYXNlX21vemxvZ19sb2NrKCkKIAotICAgIGxvZ2dl
ciA9IE1lc3NhZ2VMb2dnZXIoc2VuZF9tZXNzYWdlKQorICAgIHByb2NfbmFtZSA9IG1wY29udGV4
dC5nZXRfY29udGV4dCgpLmN1cnJlbnRfcHJvY2VzcygpLm5hbWUKKyAgICBsb2dnZXIgPSBzdHJ1
Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIocHJvY19uYW1lKQorICAgIGxvZ2dlci5hZGRfaGFu
ZGxlcihMb2dNZXNzYWdlSGFuZGxlcihzZW5kX21lc3NhZ2UpKQogCiAgICAgd2l0aCBjYXB0dXJl
LkNhcHR1cmVJTyhsb2dnZXIsIGNhcHR1cmVfc3RkaW8pOgogICAgICAgICB0cnk6CkBAIC0yNjUs
NyArMjUyLDcgQEAgY2xhc3MgQnJvd3Nlck1hbmFnZXIob2JqZWN0KToKIAogY2xhc3MgX1J1bm5l
ck1hbmFnZXJTdGF0ZShvYmplY3QpOgogICAgIGJlZm9yZV9pbml0ID0gbmFtZWR0dXBsZSgiYmVm
b3JlX2luaXQiLCBbXSkKLSAgICBpbml0aWFsaXppbmcgPSBuYW1lZHR1cGxlKCJpbml0aWFsaXpp
bmdfYnJvd3NlciIsCisgICAgaW5pdGlhbGl6aW5nID0gbmFtZWR0dXBsZSgiaW5pdGlhbGl6aW5n
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwg
Imdyb3VwX21ldGFkYXRhIiwgImZhaWx1cmVfY291bnQiXSkKICAgICBydW5uaW5nID0gbmFtZWR0
dXBsZSgicnVubmluZyIsIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwgImdyb3VwX21ldGFkYXRhIl0p
CiAgICAgcmVzdGFydGluZyA9IG5hbWVkdHVwbGUoInJlc3RhcnRpbmciLCBbInRlc3QiLCAidGVz
dF9ncm91cCIsICJncm91cF9tZXRhZGF0YSJdKQpAQCAtMzA2LDkgKzI5MywxMSBAQCBjbGFzcyBU
ZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5leGVjdXRv
cl9jbHMgPSBleGVjdXRvcl9jbHMKICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3MgPSBleGVj
dXRvcl9rd2FyZ3MKIAorICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisKICAg
ICAgICAgIyBGbGFncyB1c2VkIHRvIHNodXQgZG93biB0aGlzIHRocmVhZCBpZiB3ZSBnZXQgYSBz
aWdpbnQKICAgICAgICAgc2VsZi5wYXJlbnRfc3RvcF9mbGFnID0gc3RvcF9mbGFnCi0gICAgICAg
IHNlbGYuY2hpbGRfc3RvcF9mbGFnID0gbXVsdGlwcm9jZXNzaW5nLkV2ZW50KCkKKyAgICAgICAg
c2VsZi5jaGlsZF9zdG9wX2ZsYWcgPSBtcC5FdmVudCgpCiAKICAgICAgICAgc2VsZi5yZXJ1biA9
IHJlcnVuCiAgICAgICAgIHNlbGYucnVuX2NvdW50ID0gMApAQCAtMzIxLDggKzMxMCw4IEBAIGNs
YXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBhc3NlcnQg
cmVjb3JkaW5nIGlzIG5vdCBOb25lCiAgICAgICAgIHNlbGYucmVjb3JkaW5nID0gcmVjb3JkaW5n
CiAKLSAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gUXVldWUoKQotICAgICAgICBzZWxmLnJl
bW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAuUXVl
dWUoKQorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IG1wLlF1ZXVlKCkKIAogICAgICAgICBz
ZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBOb25lCiAKQEAgLTMzMiw2ICszMjEsNyBAQCBjbGFzcyBU
ZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKIAogICAgICAgICBzZWxmLnRlc3Rf
Y291bnQgPSAwCiAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCA9IDAKKyAgICAgICAgc2Vs
Zi51bmV4cGVjdGVkX3Bhc3NfY291bnQgPSAwCiAKICAgICAgICAgIyBUaGlzIG1heSBub3QgcmVh
bGx5IGJlIHdoYXQgd2Ugd2FudAogICAgICAgICBzZWxmLmRhZW1vbiA9IFRydWUKQEAgLTM1NCw3
ICszNDQsOCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAg
ICAgICAgc3BpbnMuIiIiCiAgICAgICAgIHNlbGYucmVjb3JkaW5nLnNldChbInRlc3RydW5uZXIi
LCAic3RhcnR1cCJdKQogICAgICAgICBzZWxmLmxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0
dXJlZExvZ2dlcihzZWxmLnN1aXRlX25hbWUpCi0gICAgICAgIHdpdGggc2VsZi5icm93c2VyX2Ns
cyhzZWxmLmxvZ2dlciwgKipzZWxmLmJyb3dzZXJfa3dhcmdzKSBhcyBicm93c2VyOgorICAgICAg
ICB3aXRoIHNlbGYuYnJvd3Nlcl9jbHMoc2VsZi5sb2dnZXIsIHJlbW90ZV9xdWV1ZT1zZWxmLmNv
bW1hbmRfcXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnNlbGYuYnJvd3Nl
cl9rd2FyZ3MpIGFzIGJyb3dzZXI6CiAgICAgICAgICAgICBzZWxmLmJyb3dzZXIgPSBCcm93c2Vy
TWFuYWdlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyb3dzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmNvbW1hbmRfcXVldWUsCkBAIC00OTQsNiArNDg1LDcgQEAgY2xhc3MgVGVzdFJ1bm5l
ck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlLmZhaWx1cmVfY291bnQgKyAxKQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3NbImdyb3VwX21ldGFk
YXRhIl0gPSBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhCisgICAgICAgICAgICBzZWxmLmV4ZWN1
dG9yX2t3YXJnc1siYnJvd3Nlcl9zZXR0aW5ncyJdID0gc2VsZi5icm93c2VyLmJyb3dzZXJfc2V0
dGluZ3MKICAgICAgICAgICAgIHNlbGYuc3RhcnRfdGVzdF9ydW5uZXIoKQogCiAgICAgZGVmIHN0
YXJ0X3Rlc3RfcnVubmVyKHNlbGYpOgpAQCAtNTE0LDkgKzUwNiwxMSBAQCBjbGFzcyBUZXN0UnVu
bmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICBleGVjdXRvcl9i
cm93c2VyX2t3YXJncywKICAgICAgICAgICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8sCiAgICAg
ICAgICAgICAgICAgc2VsZi5jaGlsZF9zdG9wX2ZsYWcpCi0gICAgICAgIHNlbGYudGVzdF9ydW5u
ZXJfcHJvYyA9IFByb2Nlc3ModGFyZ2V0PXN0YXJ0X3J1bm5lciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFtZT0iVGVzdFJ1bm5lci0laSIgJSBzZWxmLm1hbmFnZXJfbnVt
YmVyKQorCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2Vs
Zi50ZXN0X3J1bm5lcl9wcm9jID0gbXAuUHJvY2Vzcyh0YXJnZXQ9c3RhcnRfcnVubmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9YXJncywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJUZXN0UnVubmVyLSVp
IiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5z
dGFydCgpCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0IHJ1bm5lciBzdGFydGVkIikK
ICAgICAgICAgIyBOb3cgd2Ugd2FpdCBmb3IgZWl0aGVyIGFuIGluaXRfc3VjY2VlZGVkIGV2ZW50
IG9yIGFuIGluaXRfZmFpbGVkIGV2ZW50CkBAIC02MDUsNiArNTk5LDcgQEAgY2xhc3MgVGVzdFJ1
bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICByZXR1cm4KICAgICAg
ICAgaWYgc2VsZi50aW1lciBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYudGltZXIuY2Fu
Y2VsKCkKKwogICAgICAgICAjIFdyaXRlIHRoZSByZXN1bHQgb2YgZWFjaCBzdWJ0ZXN0CiAgICAg
ICAgIGZpbGVfcmVzdWx0LCB0ZXN0X3Jlc3VsdHMgPSByZXN1bHRzCiAgICAgICAgIHN1YnRlc3Rf
dW5leHBlY3RlZCA9IEZhbHNlCkBAIC02MjUsNiArNjIwLDExIEBAIGNsYXNzIFRlc3RSdW5uZXJN
YW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3Rl
ZF9jb3VudCArPSAxCiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhwZWN0
ZWQgY291bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQogICAg
ICAgICAgICAgICAgIHN1YnRlc3RfdW5leHBlY3RlZCA9IFRydWUKKworICAgICAgICAgICAgaXNf
dW5leHBlY3RlZF9wYXNzID0gaXNfdW5leHBlY3RlZCBhbmQgcmVzdWx0LnN0YXR1cyA9PSAiUEFT
UyIKKyAgICAgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWRfcGFzczoKKyAgICAgICAgICAgICAgICBz
ZWxmLnVuZXhwZWN0ZWRfcGFzc19jb3VudCArPSAxCisKICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LnRlc3Rfc3RhdHVzKHRlc3QuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHQubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5zdGF0dXMsCkBAIC02MzMsMzQgKzYzMyw0MCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0
aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtu
b3duX2ludGVybWl0dGVudD1rbm93bl9pbnRlcm1pdHRlbnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGFjaz1yZXN1bHQuc3RhY2spCiAKLSAgICAgICAgIyBXZSBoYXZl
IGEgY291cGxlIG9mIHN0YXR1cyBjb2RlcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHksIGJ1dCBu
b3QgZXhwb3NlZCB0byB0aGUKLSAgICAgICAgIyB1c2VyLiBUaGVzZSBhcmUgdXNlZCB0byBpbmRp
Y2F0ZSB0aGF0IHNvbWUgcG9zc2libHktYnJva2VuIHN0YXRlIHdhcyByZWFjaGVkCi0gICAgICAg
ICMgYW5kIHdlIHNob3VsZCByZXN0YXJ0IHRoZSBydW5uZXIgYmVmb3JlIHRoZSBuZXh0IHRlc3Qu
Ci0gICAgICAgICMgSU5URVJOQUwtRVJST1IgaW5kaWNhdGVzIGEgUHl0aG9uIGV4Y2VwdGlvbiB3
YXMgY2F1Z2h0IGluIHRoZSBoYXJuZXNzCi0gICAgICAgICMgRVhURVJOQUwtVElNRU9VVCBpbmRp
Y2F0ZXMgd2UgaGFkIHRvIGZvcmNpYmx5IGtpbGwgdGhlIGJyb3dzZXIgZnJvbSB0aGUgaGFybmVz
cwotICAgICAgICAjIGJlY2F1c2UgdGhlIHRlc3QgZGlkbid0IHJldHVybiBhIHJlc3VsdCBhZnRl
ciByZWFjaGluZyB0aGUgdGVzdC1pbnRlcm5hbCB0aW1lb3V0Ci0gICAgICAgIHN0YXR1c19zdWJu
cyA9IHsiSU5URVJOQUwtRVJST1IiOiAiRVJST1IiLAotICAgICAgICAgICAgICAgICAgICAgICAg
IkVYVEVSTkFMLVRJTUVPVVQiOiAiVElNRU9VVCJ9CiAgICAgICAgIGV4cGVjdGVkID0gdGVzdC5l
eHBlY3RlZCgpCiAgICAgICAgIGtub3duX2ludGVybWl0dGVudCA9IHRlc3Qua25vd25faW50ZXJt
aXR0ZW50KCkKLSAgICAgICAgc3RhdHVzID0gc3RhdHVzX3N1Ym5zLmdldChmaWxlX3Jlc3VsdC5z
dGF0dXMsIGZpbGVfcmVzdWx0LnN0YXR1cykKKyAgICAgICAgc3RhdHVzID0gZmlsZV9yZXN1bHQu
c3RhdHVzCiAKICAgICAgICAgaWYgc2VsZi5icm93c2VyLmNoZWNrX2NyYXNoKHRlc3QuaWQpIGFu
ZCBzdGF0dXMgIT0gIkNSQVNIIjoKLSAgICAgICAgICAgIGlmIHRlc3QudGVzdF90eXBlID09ICJj
cmFzaHRlc3QiOgorICAgICAgICAgICAgaWYgdGVzdC50ZXN0X3R5cGUgPT0gImNyYXNodGVzdCIg
b3Igc3RhdHVzID09ICJFWFRFUk5BTC1USU1FT1VUIjoKICAgICAgICAgICAgICAgICBzZWxmLmxv
Z2dlci5pbmZvKCJGb3VuZCBhIGNyYXNoIGR1bXAgZmlsZTsgY2hhbmdpbmcgc3RhdHVzIHRvIENS
QVNIIikKICAgICAgICAgICAgICAgICBzdGF0dXMgPSAiQ1JBU0giCiAgICAgICAgICAgICBlbHNl
OgogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZvdW5kIGEgY3Jhc2ggZHVt
cDsgc2hvdWxkIGNoYW5nZSBzdGF0dXMgZnJvbSAlcyB0byBDUkFTSCBidXQgdGhpcyBjYXVzZXMg
aW5zdGFiaWxpdHkiICUgKHN0YXR1cywpKQogCisgICAgICAgICMgV2UgaGF2ZSBhIGNvdXBsZSBv
ZiBzdGF0dXMgY29kZXMgdGhhdCBhcmUgdXNlZCBpbnRlcm5hbGx5LCBidXQgbm90IGV4cG9zZWQg
dG8gdGhlCisgICAgICAgICMgdXNlci4gVGhlc2UgYXJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBz
b21lIHBvc3NpYmx5LWJyb2tlbiBzdGF0ZSB3YXMgcmVhY2hlZAorICAgICAgICAjIGFuZCB3ZSBz
aG91bGQgcmVzdGFydCB0aGUgcnVubmVyIGJlZm9yZSB0aGUgbmV4dCB0ZXN0LgorICAgICAgICAj
IElOVEVSTkFMLUVSUk9SIGluZGljYXRlcyBhIFB5dGhvbiBleGNlcHRpb24gd2FzIGNhdWdodCBp
biB0aGUgaGFybmVzcworICAgICAgICAjIEVYVEVSTkFMLVRJTUVPVVQgaW5kaWNhdGVzIHdlIGhh
ZCB0byBmb3JjaWJseSBraWxsIHRoZSBicm93c2VyIGZyb20gdGhlIGhhcm5lc3MKKyAgICAgICAg
IyBiZWNhdXNlIHRoZSB0ZXN0IGRpZG4ndCByZXR1cm4gYSByZXN1bHQgYWZ0ZXIgcmVhY2hpbmcg
dGhlIHRlc3QtaW50ZXJuYWwgdGltZW91dAorICAgICAgICBzdGF0dXNfc3VibnMgPSB7IklOVEVS
TkFMLUVSUk9SIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJFWFRFUk5BTC1U
SU1FT1VUIjogIlRJTUVPVVQifQorICAgICAgICBzdGF0dXMgPSBzdGF0dXNfc3VibnMuZ2V0KHN0
YXR1cywgc3RhdHVzKQorCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCArPSAxCiAgICAgICAgIGlz
X3VuZXhwZWN0ZWQgPSBleHBlY3RlZCAhPSBzdGF0dXMgYW5kIHN0YXR1cyBub3QgaW4ga25vd25f
aW50ZXJtaXR0ZW50CiAgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWQ6CiAgICAgICAgICAgICBzZWxm
LnVuZXhwZWN0ZWRfY291bnQgKz0gMQogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVu
ZXhwZWN0ZWQgY291bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50
KQogCisgICAgICAgIGlzX3VuZXhwZWN0ZWRfcGFzcyA9IGlzX3VuZXhwZWN0ZWQgYW5kIHN0YXR1
cyA9PSAiT0siCisgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWRfcGFzczoKKyAgICAgICAgICAgIHNl
bGYudW5leHBlY3RlZF9wYXNzX2NvdW50ICs9IDEKKwogICAgICAgICBpZiAiYXNzZXJ0aW9uX2Nv
dW50IiBpbiBmaWxlX3Jlc3VsdC5leHRyYToKLSAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9
IGZpbGVfcmVzdWx0LmV4dHJhLnBvcCgiYXNzZXJ0aW9uX2NvdW50IikKLSAgICAgICAgICAgIGlm
IGFzc2VydGlvbl9jb3VudCA+IDA6CisgICAgICAgICAgICBhc3NlcnRpb25fY291bnQgPSBmaWxl
X3Jlc3VsdC5leHRyYVsiYXNzZXJ0aW9uX2NvdW50Il0KKyAgICAgICAgICAgIGlmIGFzc2VydGlv
bl9jb3VudCBpcyBub3QgTm9uZSBhbmQgYXNzZXJ0aW9uX2NvdW50ID4gMDoKICAgICAgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5hc3NlcnRpb25fY291bnQodGVzdC5pZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KGFzc2VydGlvbl9jb3VudCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QubWluX2Fzc2VydGlv
bl9jb3VudCwKQEAgLTcyMiw4ICs3MjgsOCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJl
YWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5zdG9wX3J1bm5lcigpCiAgICAgICAgIHJldHVy
biBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKHNlbGYuc3RhdGUudGVzdCwgc2VsZi5z
dGF0ZS50ZXN0X2dyb3VwLCBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhLCAwKQogCi0gICAgZGVm
IGxvZyhzZWxmLCBhY3Rpb24sIGt3YXJncyk6Ci0gICAgICAgIGdldGF0dHIoc2VsZi5sb2dnZXIs
IGFjdGlvbikoKiprd2FyZ3MpCisgICAgZGVmIGxvZyhzZWxmLCBkYXRhKToKKyAgICAgICAgc2Vs
Zi5sb2dnZXIubG9nX3JhdyhkYXRhKQogCiAgICAgZGVmIGVycm9yKHNlbGYsIG1lc3NhZ2UpOgog
ICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcihtZXNzYWdlKQpAQCAtNzYxLDIwICs3NjcsMjYgQEAg
Y2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKCJ3YWl0aW5nIGZvciBydW5uZXIgcHJvY2VzcyB0byBlbmQiKQogICAgICAg
ICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muam9pbigxMCkKICAgICAgICAgc2VsZi5sb2dnZXIuZGVi
dWcoIkFmdGVyIGpvaW4iKQorICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAg
ICAgICAgIGlmIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5pc19hbGl2ZSgpOgogICAgICAgICAgICAg
IyBUaGlzIG1pZ2h0IGxlYWsgYSBmaWxlIGhhbmRsZSBmcm9tIHRoZSBxdWV1ZQogICAgICAgICAg
ICAgc2VsZi5sb2dnZXIud2FybmluZygiRm9yY2libHkgdGVybWluYXRpbmcgcnVubmVyIHByb2Nl
c3MiKQogICAgICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnRlcm1pbmF0ZSgpCisgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0ZXIgdGVybWluYXRpbmcgcnVubmVyIHByb2Nl
c3MiKQogCiAgICAgICAgICAgICAjIE11bHRpcHJvY2Vzc2luZyBxdWV1ZXMgYXJlIGJhY2tlZCBi
eSBvcGVyYXRpbmcgc3lzdGVtIHBpcGVzLiBJZgogICAgICAgICAgICAgIyB0aGUgcGlwZSBpbiB0
aGUgY2hpbGQgcHJvY2VzcyBoYWQgYnVmZmVyZWQgZGF0YSBhdCB0aGUgdGltZSBvZgogICAgICAg
ICAgICAgIyBmb3JjZWQgdGVybWluYXRpb24sIHRoZSBxdWV1ZSBpcyBubyBsb25nZXIgaW4gYSB1
c2FibGUgc3RhdGUKICAgICAgICAgICAgICMgKHN1YnNlcXVlbnQgYXR0ZW1wdHMgdG8gcmV0cmll
dmUgaXRlbXMgbWF5IGJsb2NrIGluZGVmaW5pdGVseSkuCiAgICAgICAgICAgICAjIERpc2NhcmQg
dGhlIHBvdGVudGlhbGx5LWNvcnJ1cHRlZCBxdWV1ZSBhbmQgY3JlYXRlIGEgbmV3IG9uZS4KKyAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJSZWNyZWF0aW5nIGNvbW1hbmQgcXVldWUiKQor
ICAgICAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlLmNhbmNlbF9qb2luX3RocmVhZCgpCiAgICAg
ICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUuY2xvc2UoKQotICAgICAgICAgICAgc2VsZi5jb21t
YW5kX3F1ZXVlID0gUXVldWUoKQorICAgICAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAu
UXVldWUoKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlJlY3JlYXRpbmcgcmVtb3Rl
IHF1ZXVlIikKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlLmNhbmNlbF9qb2luX3RocmVh
ZCgpCiAgICAgICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBz
ZWxmLnJlbW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVl
ID0gbXAuUXVldWUoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVi
dWcoIlJ1bm5lciBwcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJWkiICUgc2VsZi50ZXN0X3J1bm5l
cl9wcm9jLmV4aXRjb2RlKQogCkBAIC05MTUsMyArOTI3LDYgQEAgY2xhc3MgTWFuYWdlckdyb3Vw
KG9iamVjdCk6CiAKICAgICBkZWYgdW5leHBlY3RlZF9jb3VudChzZWxmKToKICAgICAgICAgcmV0
dXJuIHN1bShtYW5hZ2VyLnVuZXhwZWN0ZWRfY291bnQgZm9yIG1hbmFnZXIgaW4gc2VsZi5wb29s
KQorCisgICAgZGVmIHVuZXhwZWN0ZWRfcGFzc19jb3VudChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHN1bShtYW5hZ2VyLnVuZXhwZWN0ZWRfcGFzc19jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBv
b2wpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMv
dGVzdF9zYXVjZS5weQppbmRleCBlMWUxOGVjNWU5Y2QuLjMyNDVkMTI1YzUzNCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNl
LnB5CkBAIC0xLDYgKzEsNyBAQAoraW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzeXMKK2Zyb20gdW5p
dHRlc3QgaW1wb3J0IG1vY2sKIAotaW1wb3J0IG1vY2sKIGltcG9ydCBweXRlc3QKIAogZnJvbSBv
cy5wYXRoIGltcG9ydCBqb2luLCBkaXJuYW1lCkBAIC0xMSw2ICsxMiw4IEBAIHNhdWNlID0gcHl0
ZXN0LmltcG9ydG9yc2tpcCgid3B0cnVubmVyLmJyb3dzZXJzLnNhdWNlIikKIAogZnJvbSB3cHRz
ZXJ2ZS5jb25maWcgaW1wb3J0IENvbmZpZ0J1aWxkZXIKIAorbG9nZ2VyID0gbG9nZ2luZy5nZXRM
b2dnZXIoKQorCiAKIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9zdWNjZXNzKCk6CiAgICAgd2l0aCBt
b2NrLnBhdGNoLm9iamVjdChzYXVjZS5TYXVjZUNvbm5lY3QsICJ1cGxvYWRfcHJlcnVuX2V4ZWMi
KSxcCkBAIC0yOSw3ICszMiw3IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9zdWNjZXNzKCk6CiAg
ICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAgICAgICAgIHNhdWNl
X2Nvbm5lY3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9o
b3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdpdGggQ29uZmlnQnVp
bGRlcihsb2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgog
ICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQogICAgICAgICAgICAg
d2l0aCBzYXVjZV9jb25uZWN0OgogICAgICAgICAgICAgICAgIHBhc3MKQEAgLTU5LDcgKzYyLDcg
QEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfZXhpdChyZWFkeWZpbGUsIHJldHVybmNv
ZGUpOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCiAgICAgICAgICAg
ICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJy
b3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgorICAgICAgICB3aXRoIENv
bmZpZ0J1aWxkZXIobG9nZ2VyLCBicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2Nv
bmZpZzoKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKICAgICAg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhzYXVjZS5TYXVjZUV4Y2VwdGlvbik6CiAgICAgICAg
ICAgICAgICAgd2l0aCBzYXVjZV9jb25uZWN0OgpAQCAtODgsNyArOTEsNyBAQCBkZWYgdGVzdF9z
YXVjZWNvbm5lY3RfY2xlYW51cCgpOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9
ImRkZCIsCiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0
aCBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmln
OgorICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIobG9nZ2VyLCBicm93c2VyX2hvc3Q9ImV4YW1w
bGUubmV0IikgYXMgZW52X2NvbmZpZzoKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwg
ZW52X2NvbmZpZykKICAgICAgICAgICAgIHdpdGggc2F1Y2VfY29ubmVjdDoKICAgICAgICAgICAg
ICAgICBQb3Blbi5yZXR1cm5fdmFsdWUucG9sbC5yZXR1cm5fdmFsdWUgPSBOb25lCkBAIC0xMTIs
NyArMTE1LDcgQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfbmV2ZXJfcmVhZHkoKToK
ICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAogICAgICAgICAgICAgc2F1
Y2VfY29ubmVjdF9hcmdzPVtdKQogCi0gICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2Vy
X2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKKyAgICAgICAgd2l0aCBDb25maWdC
dWlsZGVyKGxvZ2dlciwgYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6
CiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCiAgICAgICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoc2F1Y2UuU2F1Y2VFeGNlcHRpb24pOgogICAgICAgICAgICAg
ICAgIHdpdGggc2F1Y2VfY29ubmVjdDoKQEAgLTE0MSw3ICsxNDQsOCBAQCBkZWYgdGVzdF9zYXVj
ZWNvbm5lY3RfdHVubmVsX2RvbWFpbnMoKToKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmlu
YXJ5PSJkZGQiLAogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtdKQogCi0gICAgICAg
IHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IiwKKyAgICAgICAg
d2l0aCBDb25maWdCdWlsZGVyKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
b3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0
ZXJuYXRlX2hvc3RzPXsiYWx0IjogImV4YW1wbGUub3JnIn0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdWJkb21haW5zPXsiYSIsICJiIn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBub3Rfc3ViZG9tYWlucz17IngiLCAieSJ9KSBhcyBlbnZfY29uZmlnOgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0
ay5weQppbmRleCA2MTUwZDUwYWNmOTMuLmIyMGQzNTc2Njc0ZSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJv
d3NlcnMvdGVzdF93ZWJraXRndGsucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsu
cHkKQEAgLTEsMyArMSw0IEBACitpbXBvcnQgbG9nZ2luZwogZnJvbSBvcy5wYXRoIGltcG9ydCBq
b2luLCBkaXJuYW1lCiAKIGltcG9ydCBweXRlc3QKQEAgLTksNiArMTAsOCBAQCBmcm9tIHdwdHJ1
bm5lciBpbXBvcnQgZW52aXJvbm1lbnQsIHByb2R1Y3RzCiB0ZXN0X3BhdGhzID0geyIvIjogeyJ0
ZXN0c19wYXRoIjogam9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4u
IiwgIi4uIil9fSAgIyByZXBvIHJvb3QKIGVudmlyb25tZW50LmRvX2RlbGF5ZWRfaW1wb3J0cyhO
b25lLCB0ZXN0X3BhdGhzKQogCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKIAogQGFj
dGl2ZV9wcm9kdWN0cygicHJvZHVjdCIpCiBkZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNhdGVf
ZG9tYWluX2xpc3QocHJvZHVjdCk6CkBAIC0yMiwxMCArMjUsNyBAQCBkZWYgdGVzdF93ZWJraXRn
dGtfY2VydGlmaWNhdGVfZG9tYWluX2xpc3QocHJvZHVjdCk6CiAgICAgaWYgcHJvZHVjdCBub3Qg
aW4gWyJlcGlwaGFueSIsICJ3ZWJraXQiLCAid2Via2l0Z3RrX21pbmlicm93c2VyIl06CiAgICAg
ICAgIHB5dGVzdC5za2lwKCIlcyBkb2Vzbid0IHN1cHBvcnQgY2VydGlmaWNhdGVfZG9tYWluX2xp
c3QiICUgcHJvZHVjdCkKIAotICAgIChjaGVja19hcmdzLAotICAgICB0YXJnZXRfYnJvd3Nlcl9j
bHMsIGdldF9icm93c2VyX2t3YXJncywKLSAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0X2V4ZWN1
dG9yX2t3YXJncywKLSAgICAgZW52X29wdGlvbnMsIGdldF9lbnZfZXh0cmFzLCBydW5faW5mb19l
eHRyYXMpID0gcHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0KQorICAgIHByb2R1Y3Rf
ZGF0YSA9IHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAKICAgICBjZXJ0X2ZpbGUgPSAi
L2hvbWUvdXNlci93cHQvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbSIKICAgICB2YWxpZF9kb21haW5z
X3Rlc3QgPSBbImEuZXhhbXBsZS5vcmciLCAiYi5leGFtcGxlLm9yZyIsICJleGFtcGxlLm9yZyIs
CkBAIC00MSwxMiArNDEsMjUgQEAgZGVmIHRlc3Rfd2Via2l0Z3RrX2NlcnRpZmljYXRlX2RvbWFp
bl9saXN0KHByb2R1Y3QpOgogICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gTm9uZQog
ICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKICAgICBrd2FyZ3NbInBhdXNl
X29uX3VuZXhwZWN0ZWQiXSA9IEZhbHNlCi0gICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJf
aG9zdD0iZXhhbXBsZS5uZXQiLAorICAgIGt3YXJnc1siZGVidWdfdGVzdCJdID0gRmFsc2UKKyAg
ICB3aXRoIENvbmZpZ0J1aWxkZXIobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICBicm93
c2VyX2hvc3Q9ImV4YW1wbGUubmV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRl
X2hvc3RzPXsiYWx0IjogImV4YW1wbGUub3JnIn0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN1
YmRvbWFpbnM9eyJhIiwgImIifSwKICAgICAgICAgICAgICAgICAgICAgICAgbm90X3N1YmRvbWFp
bnM9eyJ4IiwgInkifSkgYXMgZW52X2NvbmZpZzoKIAotICAgICAgICBleGVjdXRvcl9hcmdzID0g
Z2V0X2V4ZWN1dG9yX2t3YXJncyhOb25lLCBlbnZfY29uZmlnLCBOb25lLCBOb25lLCAqKmt3YXJn
cykKKyAgICAgICAgIyBXZSBkb24ndCB3YW50IHRvIGFjdHVhbGx5IGNyZWF0ZSBhIHRlc3QgZW52
aXJvbm1lbnQ7IHRoZSBnZXRfZXhlY3V0b3Jfa3dhcmdzCisgICAgICAgICMgZnVuY3Rpb24gb25s
eSByZWFsbHkgd2FudHMgYW4gb2JqZWN0IHdpdGggdGhlIGNvbmZpZyBrZXkKKworICAgICAgICBj
bGFzcyBNb2NrRW52aXJvbm1lbnQ6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29u
ZmlnKToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZworCisgICAgICAgIGV4
ZWN1dG9yX2FyZ3MgPSBwcm9kdWN0X2RhdGEuZ2V0X2V4ZWN1dG9yX2t3YXJncyhOb25lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9u
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE1vY2tFbnZpcm9ubWVudChlbnZfY29uZmlnKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgICAg
IGFzc2VydCgnY2FwYWJpbGl0aWVzJyBpbiBleGVjdXRvcl9hcmdzKQogICAgICAgICBhc3NlcnQo
J3dlYmtpdGd0azpicm93c2VyT3B0aW9ucycgaW4gZXhlY3V0b3JfYXJnc1snY2FwYWJpbGl0aWVz
J10pCiAgICAgICAgIGFzc2VydCgnY2VydGlmaWNhdGVzJyBpbiBleGVjdXRvcl9hcmdzWydjYXBh
YmlsaXRpZXMnXVsnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zJ10pCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90
ZXN0X2Zvcm1hdHRlcnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkKaW5kZXggNjBiMWIwYTVh
ODc4Li4wNDUyNmRhNzAyYmEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkKQEAgLTEsMTIgKzEsOSBAQAogaW1wb3J0IGpzb24KIGlt
cG9ydCB0aW1lCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0cmluZ0lPCi0K
LWltcG9ydCBtb2NrCitmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIG1vemxvZyBpbXBv
cnQgaGFuZGxlcnMsIHN0cnVjdHVyZWRsb2cKIAotZnJvbSAuLmZvcm1hdHRlcnMgaW1wb3J0IHdw
dHJlcG9ydAogZnJvbSAuLmZvcm1hdHRlcnMud3B0c2NyZWVuc2hvdCBpbXBvcnQgV3B0c2NyZWVu
c2hvdEZvcm1hdHRlcgogZnJvbSAuLmZvcm1hdHRlcnMud3B0cmVwb3J0IGltcG9ydCBXcHRyZXBv
cnRGb3JtYXR0ZXIKIApAQCAtOTcsNDUgKzk0LDYgQEAgZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVf
c3Vycm9nYXRlKGNhcGZkKToKICAgICBhc3NlcnQgc3VidGVzdFsibWVzc2FnZSJdID09IHUiXFUw
MDAxRjYwMSBVK2RlMGFVK2Q4M2QiCiAKIAotZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVfc3Vycm9n
YXRlX3VjczIoY2FwZmQpOgotICAgICMgU2luY2UgVUNTNCBpcyBhIHN1cGVyc2V0IG9mIFVDUzIg
d2UgY2FuIG1lYW5pbmdmdWxseSB0ZXN0IHRoZSBVQ1MyIGNvZGUgb24gYQotICAgICMgVUNTNCBi
dWlsZCwgYnV0IG5vdCB0aGUgcmV2ZXJzZS4gSG93ZXZlciBVQ1MyIGlzIGhhcmRlciB0byBoYW5k
bGUgYW5kIFVDUzQgaXMKLSAgICAjIHRoZSBjb21tb25lc3QgKGFuZCBzZW5zaWJsZSkgY29uZmln
dXJhdGlvbiwgc28gdGhhdCdzIE9LLgotICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKLSAgICBsb2dn
ZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRlc3RfYSIpCi0gICAgbG9nZ2Vy
LmFkZF9oYW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBXcHRyZXBvcnRGb3Jt
YXR0ZXIoKSkpCi0KLSAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KHdwdHJlcG9ydCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdzdXJyb2dhdGVfcmVwbGFjZW1lbnQnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd3B0cmVwb3J0LlN1cnJvZ2F0ZVJlcGxhY2VtZW50VWNzMigpKToK
LSAgICAgICAgIyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgotICAgICAgICBsb2dnZXIuc3VpdGVf
c3RhcnQoWyJ0ZXN0LWlkLTEiXSkgICMgbm8gcnVuX2luZm8gYXJnIQotICAgICAgICBsb2dnZXIu
dGVzdF9zdGFydCgidGVzdC1pZC0xIikKLSAgICAgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0
LWlkLTEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidGVzdD11Ik5hbWUgd2l0aCBz
dXJyb2dhdGVcdUQ4MDAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPSJGQUlM
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9dSJcVTAwMDFGNjAxIFx1REUw
QVx1RDgzRCBcdUQ4M0RcdURFMEEiKQotICAgICAgICBsb2dnZXIudGVzdF9lbmQoInRlc3QtaWQt
MSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IlBBU1MiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZT11Ilx1REUwQVx1RDgzRCBcdUQ4M0RcdURFMEEgXFUwMDAxRjYw
MSIpCi0gICAgICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQotCi0gICAgIyBjaGVjayBub3RoaW5nIGdv
dCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgotICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0
cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQotICAgIGNhcHR1cmVkID0g
Y2FwZmQucmVhZG91dGVycigpCi0gICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgotICAgIGFz
c2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKLQotICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQg
b2YgdGhlIGZvcm1hdHRlcgotICAgIG91dHB1dC5zZWVrKDApCi0gICAgb3V0cHV0X29iaiA9IGpz
b24ubG9hZChvdXRwdXQpCi0gICAgdGVzdCA9IG91dHB1dF9vYmpbInJlc3VsdHMiXVswXQotICAg
IGFzc2VydCB0ZXN0WyJtZXNzYWdlIl0gPT0gdSJVK2RlMGFVK2Q4M2QgXFUwMDAxZjYwYSBcVTAw
MDFGNjAxIgotICAgIHN1YnRlc3QgPSB0ZXN0WyJzdWJ0ZXN0cyJdWzBdCi0gICAgYXNzZXJ0IHN1
YnRlc3RbIm5hbWUiXSA9PSB1Ik5hbWUgd2l0aCBzdXJyb2dhdGVVK2Q4MDAiCi0gICAgYXNzZXJ0
IHN1YnRlc3RbIm1lc3NhZ2UiXSA9PSB1IlxVMDAwMUY2MDEgVStkZTBhVStkODNkIFxVMDAwMWY2
MGEiCi0KLQogZGVmIHRlc3Rfd3B0cmVwb3J0X2tub3duX2ludGVybWl0dGVudChjYXBmZCk6CiAg
ICAgb3V0cHV0ID0gU3RyaW5nSU8oKQogICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0
dXJlZExvZ2dlcigidGVzdF9hIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X3Byb2R1Y3RzLnB5CmluZGV4IDVkMmJjZjA3NWQwZi4uMTIwYzdlNzJjNjNmIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkKQEAg
LTEsNiArMSw2IEBACiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRpcm5hbWUKK2Zyb20gdW5p
dHRlc3QgaW1wb3J0IG1vY2sKIAotaW1wb3J0IG1vY2sKIGltcG9ydCBweXRlc3QKIAogZnJvbSAu
YmFzZSBpbXBvcnQgYWxsX3Byb2R1Y3RzLCBhY3RpdmVfcHJvZHVjdHMKQEAgLTE0LDcgKzE0LDcg
QEAgZW52aXJvbm1lbnQuZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRlc3RfcGF0aHMpCiBAYWN0
aXZlX3Byb2R1Y3RzKCJwcm9kdWN0IikKIGRlZiB0ZXN0X2xvYWRfYWN0aXZlX3Byb2R1Y3QocHJv
ZHVjdCk6CiAgICAgIiIidGVzdCB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IGxvYWQgdGhlIHByb2R1Y3Qg
b2YgdGhlIGN1cnJlbnQgdGVzdGVudiIiIgotICAgIHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwg
cHJvZHVjdCkKKyAgICBwcm9kdWN0cy5Qcm9kdWN0KHt9LCBwcm9kdWN0KQogICAgICMgdGVzdCBw
YXNzZXMgaWYgaXQgZG9lc24ndCB0aHJvdwogCiAKQEAgLTIyLDcgKzIyLDcgQEAgZGVmIHRlc3Rf
bG9hZF9hY3RpdmVfcHJvZHVjdChwcm9kdWN0KToKIGRlZiB0ZXN0X2xvYWRfYWxsX3Byb2R1Y3Rz
KHByb2R1Y3QpOgogICAgICIiInRlc3QgZXZlcnkgcHJvZHVjdCBlaXRoZXIgbG9hZHMgb3IgdGhy
b3dzIEltcG9ydEVycm9yIiIiCiAgICAgdHJ5OgotICAgICAgICBwcm9kdWN0cy5sb2FkX3Byb2R1
Y3Qoe30sIHByb2R1Y3QpCisgICAgICAgIHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAg
ICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICBwYXNzCiAKQEAgLTMxLDI2ICszMSwyNCBA
QCBkZWYgdGVzdF9sb2FkX2FsbF9wcm9kdWN0cyhwcm9kdWN0KToKICAgICAic2F1Y2UiOiBweXRl
c3QubWFyay5za2lwKCJuZWVkcyBlbnYgZXh0cmFzIGt3YXJncyIpLAogfSkKIGRlZiB0ZXN0X3Nl
cnZlcl9zdGFydF9jb25maWcocHJvZHVjdCk6Ci0gICAgKGNoZWNrX2FyZ3MsCi0gICAgIHRhcmdl
dF9icm93c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdzLAotICAgICBleGVjdXRvcl9jbGFzc2Vz
LCBnZXRfZXhlY3V0b3Jfa3dhcmdzLAotICAgICBlbnZfb3B0aW9ucywgZ2V0X2Vudl9leHRyYXMs
IHJ1bl9pbmZvX2V4dHJhcykgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisg
ICAgcHJvZHVjdF9kYXRhID0gcHJvZHVjdHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKIAotICAgIGVu
dl9leHRyYXMgPSBnZXRfZW52X2V4dHJhcygpCisgICAgZW52X2V4dHJhcyA9IHByb2R1Y3RfZGF0
YS5nZXRfZW52X2V4dHJhcygpCiAKICAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KGVudmlyb25t
ZW50LnNlcnZlLCAic3RhcnQiKSBhcyBzdGFydDoKICAgICAgICAgd2l0aCBlbnZpcm9ubWVudC5U
ZXN0RW52aXJvbm1lbnQodGVzdF9wYXRocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfb3B0aW9ucywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InR5cGUiOiAibm9uZSJ9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfZXh0cmFzKToK
ICAgICAgICAgICAgIHN0YXJ0LmFzc2VydF9jYWxsZWRfb25jZSgpCiAgICAgICAgICAgICBhcmdz
ID0gc3RhcnQuY2FsbF9hcmdzCi0gICAgICAgICAgICBjb25maWcgPSBhcmdzWzBdWzBdCi0gICAg
ICAgICAgICBpZiAic2VydmVyX2hvc3QiIGluIGVudl9vcHRpb25zOgotICAgICAgICAgICAgICAg
IGFzc2VydCBjb25maWdbInNlcnZlcl9ob3N0Il0gPT0gZW52X29wdGlvbnNbInNlcnZlcl9ob3N0
Il0KKyAgICAgICAgICAgIGNvbmZpZyA9IGFyZ3NbMF1bMV0KKyAgICAgICAgICAgIGlmICJzZXJ2
ZXJfaG9zdCIgaW4gcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zOgorICAgICAgICAgICAgICAgIGFz
c2VydCBjb25maWdbInNlcnZlcl9ob3N0Il0gPT0gcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zWyJz
ZXJ2ZXJfaG9zdCJdCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGFzc2VydCBj
b25maWdbInNlcnZlcl9ob3N0Il0gPT0gY29uZmlnWyJicm93c2VyX2hvc3QiXQogICAgICAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29uZmlnWyJiaW5kX2FkZHJlc3MiXSwgYm9vbCkKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQppbmRl
eCAzOTRkMmEwMDE3N2IuLjc3Y2Q4NWI4MjBkNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9h
ZGVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQpAQCAtMSw1ICsxLDMgQEAKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwotCiBpbXBvcnQgb3MKIGltcG9ydCBz
eXMKIGltcG9ydCB0ZW1wZmlsZQpAQCAtOCw2ICs2LDcgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9t
IG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAogZnJvbSAuLnRlc3Rsb2FkZXIgaW1wb3J0IFRlc3RG
aWx0ZXIgYXMgRmlsdGVyLCBUZXN0TG9hZGVyIGFzIExvYWRlcgorZnJvbSAuLnRlc3Rsb2FkZXIg
aW1wb3J0IHJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUKIGZyb20gLnRlc3Rfd3B0dGVzdCBpbXBvcnQg
bWFrZV9tb2NrX21hbmlmZXN0CiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCkBA
IC01OCw2ICs1NywyOCBAQCBkZWYgdGVzdF9sb2FkZXJfaDJfdGVzdHMoKToKICAgICBhc3NlcnQg
bGVuKGxvYWRlci5kaXNhYmxlZF90ZXN0c1sidGVzdGhhcm5lc3MiXSkgPT0gMQogICAgIGFzc2Vy
dCBsb2FkZXIuZGlzYWJsZWRfdGVzdHNbInRlc3RoYXJuZXNzIl1bMF0udXJsID09ICIvYS9iYXIu
aDIuaHRtbCIKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAor
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iTmFtZWRUZW1wb3JhcnlGaWxlIGNhbm5vdCBiZSBy
ZW9wZW5lZCBvbiBXaW4zMiIpCitkZWYgdGVzdF9pbmNsdWRlX2ZpbGUoKToKKyAgICB0ZXN0X2Nh
c2VzID0gIiIiCisjIFRoaXMgaXMgYSBjb21tZW50CisvZm9vL2Jhci1lcnJvci5odHRwcy5odG1s
CisvZm9vL2Jhci1zdWNjZXNzLmh0dHBzLmh0bWwKKy9mb28vaWRsaGFybmVzcy5odHRwcy5hbnku
aHRtbAorL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXIuaHRtbAorICAgICIiIgorCisg
ICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUobW9kZT0id3QiKSBhcyBmOgorICAg
ICAgICBmLndyaXRlKHRlc3RfY2FzZXMpCisgICAgICAgIGYuZmx1c2goKQorCisgICAgICAgIGlu
Y2x1ZGUgPSByZWFkX2luY2x1ZGVfZnJvbV9maWxlKGYubmFtZSkKKworICAgICAgICBhc3NlcnQg
bGVuKGluY2x1ZGUpID09IDQKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2Jhci1lcnJvci5odHRwcy5o
dG1sIiBpbiBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9iYXItc3VjY2Vzcy5odHRwcy5o
dG1sIiBpbiBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFu
eS5odG1sIiBpbiBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9pZGxoYXJuZXNzLmh0dHBz
LmFueS53b3JrZXIuaHRtbCIgaW4gaW5jbHVkZQogCiBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBs
YXRmb3JtID09ICJ3aW4zMiIsCiAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJOYW1lZFRlbXBv
cmFyeUZpbGUgY2Fubm90IGJlIHJlb3BlbmVkIG9uIFdpbjMyIikKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rl
c3RfdXBkYXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKaW5kZXggYTFiYThkZTI4NzgwLi44MDRm
NzUxMjUxODAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBk
YXRlLnB5CkBAIC0xLDExICsxLDEyIEBACiBpbXBvcnQganNvbgotaW1wb3J0IG1vY2sKIGltcG9y
dCBvcwotaW1wb3J0IHB5dGVzdAogaW1wb3J0IHN5cwogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwor
ZnJvbSB1bml0dGVzdCBpbXBvcnQgbW9jaworCitpbXBvcnQgcHl0ZXN0CiAKLWZyb20gLi4gaW1w
b3J0IG1ldGFkYXRhLCBtYW5pZmVzdHVwZGF0ZQorZnJvbSAuLiBpbXBvcnQgbWV0YWRhdGEsIG1h
bmlmZXN0dXBkYXRlLCB3cHRtYW5pZmVzdAogZnJvbSAuLnVwZGF0ZS51cGRhdGUgaW1wb3J0IFdQ
VFVwZGF0ZQogZnJvbSAuLnVwZGF0ZS5iYXNlIGltcG9ydCBTdGVwUnVubmVyLCBTdGVwCiBmcm9t
IG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZywgaGFuZGxlcnMsIGZvcm1hdHRlcnMKQEAgLTQ0
Miw3ICs0NDMsNyBAQCBkZWYgdGVzdF91cGRhdGVfcmVvcmRlcl9leHBlY3RlZCgpOgogCiAgICAg
YXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0
LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAgICAgImV4cGVjdGVkIiwg
ZGVmYXVsdF9ydW5faW5mbykgPT0gWyJGQUlMIiwgIlBBU1MiXQorICAgICAgICAiZXhwZWN0ZWQi
LCBkZWZhdWx0X3J1bl9pbmZvKSA9PSBbIlBBU1MiLCAiRkFJTCJdCiAKIAogZGVmIHRlc3RfdXBk
YXRlX2FuZF9wcmVzZXJ2ZV91bmNoYW5nZWRfZXhwZWN0ZWRfaW50ZXJtaXR0ZW50KCk6CkBAIC0x
NjcyLDMgKzE2NzMsMTA1IEBAIGRlZiB0ZXN0X3VwZGF0ZV9waWNrbGUoKToKICAgICB3cHR1cGRh
dGUgPSBXUFRVcGRhdGUobG9nZ2VyLCAqKmFyZ3MyKQogICAgIHdwdHVwZGF0ZSA9IFdQVFVwZGF0
ZShsb2dnZXIsIHJ1bm5lcl9jbHM9VXBkYXRlUnVubmVyLCAqKmFyZ3MpCiAgICAgd3B0dXBkYXRl
LnJ1bigpCisKKworZGVmIHRlc3RfdXBkYXRlX3NlcmlhbGl6ZV9xdW90ZWQoKToKKyAgICB0ZXN0
cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAg
ICAgICAgICAgIGIiIiJbdGVzdC5odG1dCisgIGV4cGVjdGVkOiAiRVJST1IiCisgIFt0ZXN0MV0K
KyAgICBleHBlY3RlZDoKKyAgICAgaWYgb3MgPT0gImxpbnV4IjogWyJQQVNTIiwgIkZBSUwiXQor
ICAgICAiRVJST1IiCisiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFy
dCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0
YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAg
ICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorICAgIGxvZ18xID0gc3Vp
dGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50
IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVz
dCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Rh
dHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImxp
bnV4In0pCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRl
c3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRl
c3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiRVJST1IifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6
ICJ3aW4ifSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9n
XzIsIGZ1bGxfdXBkYXRlPVRydWUsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworCisgICAg
bWFuaWZlc3Rfc3RyID0gd3B0bWFuaWZlc3Quc2VyaWFsaXplKHVwZGF0ZWRbMF1bMV0ubm9kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9lbXB0eV9kYXRh
PVRydWUpCisgICAgYXNzZXJ0IG1hbmlmZXN0X3N0ciA9PSAiIiJbdGVzdC5odG1dCisgIFt0ZXN0
MV0KKyAgICBleHBlY3RlZDoKKyAgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlMXQor
ICAgICAgRVJST1IKKyIiIgorCisKK2RlZiB0ZXN0X3VwZGF0ZV9zZXJpYWxpemVfdW5xdW90ZWQo
KToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFy
bmVzcyIsCisgICAgICAgICAgICAgIGIiIiJbdGVzdC5odG1dCisgIGV4cGVjdGVkOiBFUlJPUgor
ICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6CisgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBG
QUlMXQorICAgICBFUlJPUgorIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rf
c3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1IiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkKKyAgICBsb2dfMSA9
IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAg
ICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0
dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6
ICJsaW51eCJ9KQorICAgIGxvZ18yID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3Qi
OiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIjogIkVSUk9SIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5k
IiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsi
b3MiOiAid2luIn0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEs
IGxvZ18yLCBmdWxsX3VwZGF0ZT1UcnVlLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUpCisKKwor
ICAgIG1hbmlmZXN0X3N0ciA9IHdwdG1hbmlmZXN0LnNlcmlhbGl6ZSh1cGRhdGVkWzBdWzFdLm5v
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBfZW1wdHlf
ZGF0YT1UcnVlKQorICAgIGFzc2VydCBtYW5pZmVzdF9zdHIgPT0gIiIiW3Rlc3QuaHRtXQorICBb
dGVzdDFdCisgICAgZXhwZWN0ZWQ6CisgICAgICBpZiBvcyA9PSAibGludXgiOiBbUEFTUywgRkFJ
TF0KKyAgICAgIEVSUk9SCisiIiIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L3Rlc3Rfd3B0dGVzdC5weQppbmRleCA0ZWVlOWNjYjFiNjkuLjU5YWE2MzZhOTAzNyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weQpAQCAtMSw1
ICsxLDUgQEAKLWltcG9ydCBtb2NrCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitmcm9tIHVuaXR0
ZXN0IGltcG9ydCBtb2NrCiAKIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0IGFzIHdwdG1h
bmlmZXN0CiBmcm9tIG1hbmlmZXN0Lml0ZW0gaW1wb3J0IFRlc3RoYXJuZXNzVGVzdCwgUmVmVGVz
dApAQCAtMjAyLDE0ICsyMDIsMTYgQEAgZGVmIHRlc3RfZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1
cygpOgogCiAKIGRlZiB0ZXN0X21ldGFkYXRhX2Z1enp5KCk6Ci0gICAgaXRlbSA9IFJlZlRlc3Qo
Ii4iLCAiYS9mdXp6eS5odG1sIiwgIi8iLCAiYS9mdXp6eS5odG1sIiwKKyAgICBpdGVtID0gUmVm
VGVzdCh0ZXN0c19yb290PSIuIiwKKyAgICAgICAgICAgICAgICAgICBwYXRoPSJhL2Z1enp5Lmh0
bWwiLAorICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIvIiwKKyAgICAgICAgICAgICAgICAg
ICB1cmw9ImEvZnV6enkuaHRtbCIsCiAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcz1bWyIv
YS9mdXp6eS1yZWYuaHRtbCIsICI9PSJdXSwKICAgICAgICAgICAgICAgICAgICBmdXp6eT1bW1si
L2EvZnV6enkuaHRtbCIsICcvYS9mdXp6eS1yZWYuaHRtbCcsICc9PSddLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW1syLCAzXSwgWzEwLCAxNV1dXV0pCiAgICAgcyA9IG1vY2suTW9jayhy
ZWxfcGF0aD0iYS9mdXp6eS5odG1sIiwgcmVsX3BhdGhfcGFydHM9KCJhIiwgImZ1enp5Lmh0bWwi
KSwgaGFzaD0iMCIqNDApCiAgICAgcy5tYW5pZmVzdF9pdGVtcyA9IG1vY2suTW9jayhyZXR1cm5f
dmFsdWU9KGl0ZW0uaXRlbV90eXBlLCBbaXRlbV0pKQogCi0KICAgICBtYW5pZmVzdCA9IHdwdG1h
bmlmZXN0Lk1hbmlmZXN0KCIiKQogCiAgICAgdHJlZSwgc291cmNlZmlsZV9tb2NrID0gdHJlZV9h
bmRfc291cmNlZmlsZV9tb2NrcyhbKHMsIE5vbmUsIFRydWUpXSkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9i
YXNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL2Jhc2UucHkKaW5kZXggNTQ3ODA4ZTUyOTMzLi40N2VhN2ZmYjQxZjAgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3VwZGF0ZS9iYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNlLnB5CkBAIC0xLDkgKzEsMTEgQEAK
K2Zyb20gdHlwaW5nIGltcG9ydCBDbGFzc1ZhciwgTGlzdCwgVHlwZQorCiBleGl0X3VuY2xlYW4g
PSBvYmplY3QoKQogZXhpdF9jbGVhbiA9IG9iamVjdCgpCiAKIAogY2xhc3MgU3RlcChvYmplY3Qp
OgotICAgIHByb3ZpZGVzID0gW10KKyAgICBwcm92aWRlcyA9IFtdICAjIHR5cGU6IENsYXNzVmFy
W0xpc3Rbc3RyXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgogICAgICAgICBz
ZWxmLmxvZ2dlciA9IGxvZ2dlcgpAQCAtNDUsNyArNDcsNyBAQCBjbGFzcyBTdGVwKG9iamVjdCk6
CiAKIAogY2xhc3MgU3RlcFJ1bm5lcihvYmplY3QpOgotICAgIHN0ZXBzID0gW10KKyAgICBzdGVw
cyA9IFtdICAjIHR5cGU6IENsYXNzVmFyW0xpc3RbVHlwZVtTdGVwXV1dCiAKICAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBzdGF0ZSk6CiAgICAgICAgICIiIkNsYXNzIHRoYXQgcnVucyBh
IHNwZWNpZmllZCBzZXJpZXMgb2YgU3RlcHMgd2l0aCBhIGNvbW1vbiBTdGF0ZSIiIgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdXBkYXRlL3N0YXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CmluZGV4IGJkYjIzZmVkOTllMS4uYTUy
NmMyNGM5NTlmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CkBA
IC0xLDUgKzEsNSBAQAogaW1wb3J0IG9zCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1BpY2tsZSBh
cyBwaWNrbGUgICMgbm9xYTogTjgxMworaW1wb3J0IHBpY2tsZQogCiBoZXJlID0gb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCiAKQEAgLTk3LDcgKzk3LDcgQEAgY2xh
c3MgU2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBu
b3Qgb3MucGF0aC5pc2ZpbGUoY2xzLmZpbGVuYW1lKToKICAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQotICAgICAgICAgICAgd2l0aCBvcGVuKGNscy5maWxlbmFtZSkgYXMgZjoKKyAgICAgICAg
ICAgIHdpdGggb3BlbihjbHMuZmlsZW5hbWUsICJyYiIpIGFzIGY6CiAgICAgICAgICAgICAgICAg
dHJ5OgogICAgICAgICAgICAgICAgICAgICBydiA9IHBpY2tsZS5sb2FkKGYpCiAgICAgICAgICAg
ICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiTG9hZGluZyBkYXRhICVyIiAlIChydi5fZGF0YSwpKQpA
QCAtMTExLDcgKzExMSw3IEBAIGNsYXNzIFNhdmVkU3RhdGUoQmFzZVN0YXRlKToKIAogICAgIGRl
ZiBzYXZlKHNlbGYpOgogICAgICAgICAiIiJXcml0ZSB0aGUgc3RhdGUgdG8gZGlzayIiIgotICAg
ICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAgICAgICB3aXRoIG9w
ZW4oc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIHBpY2tsZS5kdW1wKHNl
bGYsIGYpCiAKICAgICBkZWYgY2xlYXIoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Vw
ZGF0ZS9zeW5jLnB5CmluZGV4IGY4Nzg3NTJmNDUxNC4uMmM5ODM0YzY3MmQ2IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91
cGRhdGUvc3luYy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQpAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBV
cGRhdGVDaGVja291dChTdGVwKToKICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5sb2Nh
bF9icmFuY2gpCiAgICAgICAgIHN5bmNfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChzeW5jX3RyZWUu
cm9vdCkKICAgICAgICAgaWYgc3luY19wYXRoIG5vdCBpbiBzeXMucGF0aDoKLSAgICAgICAgICAg
IGZyb20gdXBkYXRlIGltcG9ydCBzZXR1cF9wYXRocworICAgICAgICAgICAgZnJvbSAudXBkYXRl
IGltcG9ydCBzZXR1cF9wYXRocwogICAgICAgICAgICAgc2V0dXBfcGF0aHMoc3luY19wYXRoKQog
CiAgICAgZGVmIHJlc3RvcmUoc2VsZiwgc3RhdGUpOgpAQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBV
cGRhdGVNYW5pZmVzdChTdGVwKToKICAgICBwcm92aWRlcyA9IFsibWFuaWZlc3RfcGF0aCIsICJ0
ZXN0X21hbmlmZXN0Il0KIAogICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgotICAgICAgICBm
cm9tIG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdAorICAgICAgICBmcm9tIG1hbmlmZXN0IGltcG9y
dCBtYW5pZmVzdCAgIyB0eXBlOiBpZ25vcmUKICAgICAgICAgc3RhdGUubWFuaWZlc3RfcGF0aCA9
IG9zLnBhdGguam9pbihzdGF0ZS5tZXRhZGF0YV9wYXRoLCAiTUFOSUZFU1QuanNvbiIpCiAgICAg
ICAgIHN0YXRlLnRlc3RfbWFuaWZlc3QgPSBtYW5pZmVzdC5sb2FkX2FuZF91cGRhdGUoc3RhdGUu
c3luY1sicGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRlLm1hbmlmZXN0X3BhdGgsCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdHJlZS5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3VwZGF0ZS90cmVlLnB5CmluZGV4IGYzNjI3NzBmZjE2ZC4uMmY0M2JhY2QxNWJmIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci91cGRhdGUvdHJlZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdHJlZS5weQpAQCAtMyw4ICszLDYgQEAgaW1wb3J0
IHJlCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRlbXBmaWxlCiAKLWZyb20gc2l4Lm1vdmVz
IGltcG9ydCByYW5nZQotCiBmcm9tIC4uIGltcG9ydCB2Y3MKIGZyb20gLi52Y3MgaW1wb3J0IGdp
dCwgaGcKIApAQCAtODcsNyArODUsNyBAQCBjbGFzcyBIZ1RyZWUob2JqZWN0KToKIAogICAgIEBw
cm9wZXJ0eQogICAgIGRlZiBpc19jbGVhbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuaGco
InN0YXR1cyIpLnN0cmlwKCkgPT0gIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuaGcoInN0YXR1cyIp
LnN0cmlwKCkgPT0gYiIiCiAKICAgICBkZWYgYWRkX25ldyhzZWxmLCBwcmVmaXg9Tm9uZSk6CiAg
ICAgICAgIGlmIHByZWZpeCBpcyBub3QgTm9uZToKQEAgLTEwNSw3ICsxMDMsNyBAQCBjbGFzcyBI
Z1RyZWUob2JqZWN0KToKICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vy
cm9yOgogICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIHBhdGNoX25hbWVzID0gW2l0ZW0uc3Ry
aXAoKSBmb3IgaXRlbSBpbiBzZWxmLmhnKCJxc2VyaWVzIikuc3BsaXQoIlxuIikgaWYgaXRlbS5z
dHJpcCgpXQorICAgICAgICBwYXRjaF9uYW1lcyA9IFtpdGVtLnN0cmlwKCkgZm9yIGl0ZW0gaW4g
c2VsZi5oZygicXNlcmllcyIpLnNwbGl0KGIiXG4iKSBpZiBpdGVtLnN0cmlwKCldCiAKICAgICAg
ICAgc3VmZml4ID0gMAogICAgICAgICB0ZXN0X25hbWUgPSBwYXRjaF9uYW1lCkBAIC0xNDIsNyAr
MTQwLDcgQEAgY2xhc3MgR2l0VHJlZShvYmplY3QpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJvb3Q9Tm9uZSwgbG9nX2Vycm9yPVRydWUpOgogICAgICAgICBpZiByb290IGlzIE5vbmU6Ci0g
ICAgICAgICAgICByb290ID0gZ2l0KCJyZXYtcGFyc2UiLCAiLS1zaG93LXRvcGxldmVsIiwgbG9n
X2Vycm9yPWxvZ19lcnJvcikuc3RyaXAoKQorICAgICAgICAgICAgcm9vdCA9IGdpdCgicmV2LXBh
cnNlIiwgIi0tc2hvdy10b3BsZXZlbCIsIGxvZ19lcnJvcj1sb2dfZXJyb3IpLnN0cmlwKCkuZGVj
b2RlKCd1dGYtOCcpCiAgICAgICAgIHNlbGYucm9vdCA9IHJvb3QKICAgICAgICAgc2VsZi5naXQg
PSB2Y3MuYmluZF90b19yZXBvKGdpdCwgc2VsZi5yb290LCBsb2dfZXJyb3I9bG9nX2Vycm9yKQog
ICAgICAgICBzZWxmLm1lc3NhZ2UgPSBOb25lCkBAIC0xNzgsNyArMTc2LDcgQEAgY2xhc3MgR2l0
VHJlZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2NsZWFuKHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZi5naXQoInN0YXR1cyIpLnN0cmlwKCkgPT0gIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYuZ2l0KCJzdGF0dXMiKS5zdHJpcCgpID09IGIiIgogCiAgICAgZGVmIGFkZF9u
ZXcoc2VsZiwgcHJlZml4PU5vbmUpOgogICAgICAgICAiIiJBZGQgZmlsZXMgdG8gdGhlIHN0YWdp
bmcgYXJlYS4KQEAgLTIwMyw3ICsyMDEsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAg
ICAgICAgICBmLnNlZWsoMCkKICAgICAgICAgICAgIGlnbm9yZWRfZmlsZXMgPSBzeW5jX3RyZWUu
Z2l0KCJjaGVjay1pZ25vcmUiLCAiLS1uby1pbmRleCIsICItLXN0ZGluIiwgIi16Iiwgc3RkaW49
ZikKICAgICAgICAgYXJncyA9IFtdCi0gICAgICAgIGZvciBlbnRyeSBpbiBpZ25vcmVkX2ZpbGVz
LnNwbGl0KCdcMCcpOgorICAgICAgICBmb3IgZW50cnkgaW4gaWdub3JlZF9maWxlcy5kZWNvZGUo
J3V0Zi04Jykuc3BsaXQoJ1wwJyk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZChvcy5wYXRoLmpv
aW4ocHJlZml4LCBlbnRyeSkpCiAgICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgICBzZWxmLmdp
dCgiYWRkIiwgIi0tZm9yY2UiLCAqYXJncykKQEAgLTIxOSw3ICsyMTcsNyBAQCBjbGFzcyBHaXRU
cmVlKG9iamVjdCk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZChyZWZfZmlsdGVyKQogICAgICAg
ICBkYXRhID0gc2VsZi5naXQoInNob3ctcmVmIiwgKmFyZ3MpCiAgICAgICAgIHJ2ID0gW10KLSAg
ICAgICAgZm9yIGxpbmUgaW4gZGF0YS5zcGxpdCgiXG4iKToKKyAgICAgICAgZm9yIGxpbmUgaW4g
ZGF0YS5zcGxpdChiIlxuIik6CiAgICAgICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBzaGExLCByZWYgPSBsaW5lLnNwbGl0
KCkKQEAgLTIzNyw3ICsyMzUsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgICAg
ICBhcmdzLmFwcGVuZChyZWZfZmlsdGVyKQogICAgICAgICBkYXRhID0gc2VsZi5naXQoImxzLXJl
bW90ZSIsIHJlbW90ZSwgKmFyZ3MpCiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAgZm9yIGxpbmUg
aW4gZGF0YS5zcGxpdCgiXG4iKToKKyAgICAgICAgZm9yIGxpbmUgaW4gZGF0YS5zcGxpdChiIlxu
Iik6CiAgICAgICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgogICAgICAgICAgICAgICAgIGNv
bnRpbnVlCiAgICAgICAgICAgICBzaGExLCByZWYgPSBsaW5lLnNwbGl0KCkKQEAgLTI1MCw4ICsy
NDgsOCBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgIDpwYXJhbSByZW1vdGU6IHRo
ZSByZW1vdGUgVVJMCiAgICAgICAgIDpwYXJhbSBicmFuY2g6IHRoZSBicmFuY2ggbmFtZSIiIgog
ICAgICAgICBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZW1vdGUocmVtb3RlLCBicmFuY2gp
OgotICAgICAgICAgICAgaWYgcmVmID09ICJyZWZzL2hlYWRzLyVzIiAlIGJyYW5jaDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5jb21taXRfY2xzKHNlbGYsIHNoYTEpCisgICAgICAgICAg
ICBpZiByZWYuZGVjb2RlKCd1dGYtOCcpID09ICJyZWZzL2hlYWRzLyVzIiAlIGJyYW5jaDoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5jb21taXRfY2xzKHNlbGYsIHNoYTEuZGVjb2RlKCd1
dGYtOCcpKQogICAgICAgICBhc3NlcnQgRmFsc2UKIAogICAgIGRlZiBjcmVhdGVfcGF0Y2goc2Vs
ZiwgcGF0Y2hfbmFtZSwgbWVzc2FnZSk6CkBAIC0yOTksOCArMjk3LDggQEAgY2xhc3MgR2l0VHJl
ZShvYmplY3QpOgogCiAgICAgICAgIGFyZ3MgPSBbXQogICAgICAgICBpZiBicmFuY2g6Ci0gICAg
ICAgICAgICBicmFuY2hlcyA9IFtyZWZbbGVuKCJyZWZzL2hlYWRzLyIpOl0gZm9yIHNoYTEsIHJl
ZiBpbiBzZWxmLmxpc3RfcmVmcygpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiByZWYuc3Rh
cnRzd2l0aCgicmVmcy9oZWFkcy8iKV0KKyAgICAgICAgICAgIGJyYW5jaGVzID0gW3JlZltsZW4o
InJlZnMvaGVhZHMvIik6XS5kZWNvZGUoJ3V0Zi04JykgZm9yIHNoYTEsIHJlZiBpbiBzZWxmLmxp
c3RfcmVmcygpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWYuc3RhcnRzd2l0aChiInJl
ZnMvaGVhZHMvIildCiAgICAgICAgICAgICBicmFuY2ggPSBnZXRfdW5pcXVlX25hbWUoYnJhbmNo
ZXMsIGJyYW5jaCkKIAogICAgICAgICAgICAgYXJncyArPSBbIi1iIiwgYnJhbmNoXQpAQCAtMzM2
LDggKzMzNCw4IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgcnYgPSBbXQogCiAg
ICAgICAgIGZvciByZXBvX3BhdGggaW4gcmVwb19wYXRoczoKLSAgICAgICAgICAgIHBhdGhzID0g
dmNzLmdpdCgibHMtdHJlZSIsICItciIsICItLW5hbWUtb25seSIsICJIRUFEIiwgcmVwbz1yZXBv
X3BhdGgpLnNwbGl0KCJcbiIpCi0gICAgICAgICAgICBydi5leHRlbmQob3MucGF0aC5yZWxwYXRo
KG9zLnBhdGguam9pbihyZXBvX3BhdGgsIGl0ZW0pLCBzZWxmLnJvb3QpIGZvciBpdGVtIGluIHBh
dGhzCisgICAgICAgICAgICBwYXRocyA9IHZjcy5naXQoImxzLXRyZWUiLCAiLXIiLCAiLS1uYW1l
LW9ubHkiLCAiSEVBRCIsIHJlcG89cmVwb19wYXRoKS5zcGxpdChiIlxuIikKKyAgICAgICAgICAg
IHJ2LmV4dGVuZChvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKHJlcG9fcGF0aCwgaXRlbS5k
ZWNvZGUoJ3V0Zi04JykpLCBzZWxmLnJvb3QpIGZvciBpdGVtIGluIHBhdGhzCiAgICAgICAgICAg
ICAgICAgICAgICAgaWYgaXRlbS5zdHJpcCgpKQogICAgICAgICByZXR1cm4gcnYKIApAQCAtMzQ1
LDExICszNDMsMTEgQEAgY2xhc3MgR2l0VHJlZShvYmplY3QpOgogICAgICAgICAiIiJMaXN0IHN1
Ym1vZHVsZSBkaXJlY3RvcmllcyIiIgogICAgICAgICBvdXRwdXQgPSBzZWxmLmdpdCgic3VibW9k
dWxlIiwgInN0YXR1cyIsICItLXJlY3Vyc2l2ZSIpCiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAg
Zm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBvdXRw
dXQuc3BsaXQoYiJcbiIpOgogICAgICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQogICAgICAg
ICAgICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IHBhcnRzID0gbGluZS5zcGxpdCgiICIpCisgICAgICAgICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQo
YiIgIikKICAgICAgICAgICAgIHJ2LmFwcGVuZChwYXJ0c1sxXSkKICAgICAgICAgcmV0dXJuIHJ2
CiAKQEAgLTQwMyw1ICs0MDEsNSBAQCBjbGFzcyBDb21taXQob2JqZWN0KToKICAgICAgICAgc2Vs
Zi5naXQgPSBzZWxmLnRyZWUuZ2l0CiAKICAgICBkZWYgX2dldF9tZXRhKHNlbGYpOgotICAgICAg
ICBhdXRob3IsIGVtYWlsLCBtZXNzYWdlID0gc2VsZi5naXQoInNob3ciLCAiLXMiLCAiLS1mb3Jt
YXQ9Zm9ybWF0OiVhblxuJWFlXG4lQiIsIHNlbGYuc2hhMSkuc3BsaXQoIlxuIiwgMikKKyAgICAg
ICAgYXV0aG9yLCBlbWFpbCwgbWVzc2FnZSA9IHNlbGYuZ2l0KCJzaG93IiwgIi1zIiwgIi0tZm9y
bWF0PWZvcm1hdDolYW5cbiVhZVxuJUIiLCBzZWxmLnNoYTEpLmRlY29kZSgndXRmLTgnKS5zcGxp
dCgiXG4iLCAyKQogICAgICAgICByZXR1cm4gYXV0aG9yLCBlbWFpbCwgc2VsZi5tc2dfY2xzKG1l
c3NhZ2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3VwZGF0ZS5weQppbmRleCA4
MGU1MDlkZDM4M2IuLjI2NWEzMzExYmViMSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3VwZGF0ZS5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91
cGRhdGUvdXBkYXRlLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAK
LWZyb20gc2l4IGltcG9ydCBpdGVydmFsdWVzCi0KIGZyb20gLm1ldGFkYXRhIGltcG9ydCBNZXRh
ZGF0YVVwZGF0ZVJ1bm5lcgogZnJvbSAuc3luYyBpbXBvcnQgU3luY0Zyb21VcHN0cmVhbVJ1bm5l
cgogZnJvbSAudHJlZSBpbXBvcnQgR2l0VHJlZSwgSGdUcmVlLCBOb1ZDU1RyZWUKQEAgLTExMSw3
ICsxMDksNyBAQCBjbGFzcyBSZW1vdmVPYnNvbGV0ZShTdGVwKToKICAgICAgICAgc3RhdGUudGVz
dHNfcGF0aCA9IHN0YXRlLnBhdGhzWyIvIl1bInRlc3RzX3BhdGgiXQogICAgICAgICBzdGF0ZS5t
ZXRhZGF0YV9wYXRoID0gc3RhdGUucGF0aHNbIi8iXVsibWV0YWRhdGFfcGF0aCJdCiAKLSAgICAg
ICAgZm9yIHVybF9wYXRocyBpbiBpdGVydmFsdWVzKHBhdGhzKToKKyAgICAgICAgZm9yIHVybF9w
YXRocyBpbiBwYXRocy52YWx1ZXMoKToKICAgICAgICAgICAgIHRlc3RzX3BhdGggPSB1cmxfcGF0
aHNbInRlc3RzX3BhdGgiXQogICAgICAgICAgICAgbWV0YWRhdGFfcGF0aCA9IHVybF9wYXRoc1si
bWV0YWRhdGFfcGF0aCJdCiAgICAgICAgICAgICBmb3IgZGlycGF0aCwgZGlybmFtZXMsIGZpbGVu
YW1lcyBpbiBvcy53YWxrKG1ldGFkYXRhX3BhdGgpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5Cmlu
ZGV4IDg5NmQ4YTBkMmM2ZS4uMzQxOWE1MDdkYmFlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5
CkBAIC0xLDUgKzEsNiBAQAogaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20gZnVuY3Rvb2xzIGltcG9y
dCBwYXJ0aWFsCitmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKIAogZnJvbSBtb3psb2cgaW1w
b3J0IGdldF9kZWZhdWx0X2xvZ2dlcgogCkBAIC03LDcgKzgsNyBAQCBmcm9tIHdwdHNlcnZlLnV0
aWxzIGltcG9ydCBpc29tb3JwaGljX2RlY29kZQogCiBsb2dnZXIgPSBOb25lCiAKLWRlZiB2Y3Mo
YmluX25hbWUpOgorZGVmIHZjcyhiaW5fbmFtZTogc3RyKSAtPiBDYWxsYWJsZVsuLi4sIE5vbmVd
OgogICAgIGRlZiBpbm5lcihjb21tYW5kLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBnbG9i
YWwgbG9nZ2VyCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVy
LnB5CmluZGV4IGRmYWUwNTdmZDMzMi4uNTY1ZTNkNGU0M2JlIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJf
c2VydmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKQEAgLTUsMTQgKzUsMTUgQEAgaW1wb3J0
IHBsYXRmb3JtCiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawor
ZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBUeXBlCiAKIGltcG9ydCBtb3pwcm9jZXNzCiAK
LWZyb20gLnByb2Nlc3MgaW1wb3J0IGNhc3RfZW52Citmcm9tIC5icm93c2Vycy5iYXNlIGltcG9y
dCBPdXRwdXRIYW5kbGVyCiAKIAogX19hbGxfXyA9IFsiU2VsZW5pdW1TZXJ2ZXIiLCAiQ2hyb21l
RHJpdmVyU2VydmVyIiwgIkNXVENocm9tZURyaXZlclNlcnZlciIsCi0gICAgICAgICAgICJFZGdl
Q2hyb21pdW1Ecml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIiLCAiR2Vja29Ecml2ZXJT
ZXJ2ZXIiLAorICAgICAgICAgICAiRWRnZUNocm9taXVtRHJpdmVyU2VydmVyIiwgIk9wZXJhRHJp
dmVyU2VydmVyIiwKICAgICAgICAgICAgIkludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIiLCAi
RWRnZURyaXZlclNlcnZlciIsCiAgICAgICAgICAgICJTZXJ2b0RyaXZlclNlcnZlciIsICJXZWJL
aXREcml2ZXJTZXJ2ZXIiLCAiV2ViRHJpdmVyU2VydmVyIl0KIApAQCAtMjEsNiArMjIsNyBAQCBj
bGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICBfX21ldGFjbGFzc19fID0gYWJjLkFC
Q01ldGEKIAogICAgIGRlZmF1bHRfYmFzZV9wYXRoID0gIi8iCisgICAgb3V0cHV0X2hhbmRsZXJf
Y2xzID0gT3V0cHV0SGFuZGxlciAgIyB0eXBlOiBDbGFzc1ZhcltUeXBlW091dHB1dEhhbmRsZXJd
XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBob3N0PSIxMjcuMC4w
LjEiLCBwb3J0PU5vbmUsCiAgICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgZW52PU5vbmUs
IGFyZ3M9Tm9uZSk6CkBAIC0zMSwxMiArMzMsMTQgQEAgY2xhc3MgV2ViRHJpdmVyU2VydmVyKG9i
amVjdCk6CiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCiAgICAgICAgIHNlbGYuYmluYXJ5
ID0gYmluYXJ5CiAgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKwogICAgICAgICBpZiBiYXNlX3Bh
dGggPT0gIiI6CiAgICAgICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IHNlbGYuZGVmYXVsdF9iYXNl
X3BhdGgKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9w
YXRoCiAgICAgICAgIHNlbGYuZW52ID0gb3MuZW52aXJvbi5jb3B5KCkgaWYgZW52IGlzIE5vbmUg
ZWxzZSBlbnYKIAorICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUKICAgICAgICAg
c2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fY21kID0gTm9uZQogICAgICAgICBzZWxm
Ll9hcmdzID0gYXJncyBpZiBhcmdzIGlzIG5vdCBOb25lIGVsc2UgW10KQEAgLTQ2LDE4ICs1MCwy
OCBAQCBjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgbWFrZV9jb21tYW5k
KHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIGNvbW1hbmQgZm9yIHN0YXJ0aW5n
IHRoZSBzZXJ2ZXIgcHJvY2VzcyBhcyBhIGxpc3QuIiIiCiAKLSAgICBkZWYgc3RhcnQoc2VsZiwg
YmxvY2s9RmFsc2UpOgorICAgIGRlZiBzdGFydChzZWxmLAorICAgICAgICAgICAgICBibG9jaz1G
YWxzZSwKKyAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzPU5vbmUsCisgICAgICAg
ICAgICAgIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncz1Ob25lKToKICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgc2VsZi5fcnVuKGJsb2NrKQorICAgICAgICAgICAgc2VsZi5fcnVuKGJsb2Nr
LCBvdXRwdXRfaGFuZGxlcl9rd2FyZ3MsIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncykKICAg
ICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAgICAgc2VsZi5zdG9wKCkK
IAotICAgIGRlZiBfcnVuKHNlbGYsIGJsb2NrKToKKyAgICBkZWYgX3J1bihzZWxmLCBibG9jaywg
b3V0cHV0X2hhbmRsZXJfa3dhcmdzLCBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpOgorICAg
ICAgICBpZiBvdXRwdXRfaGFuZGxlcl9rd2FyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIG91dHB1
dF9oYW5kbGVyX2t3YXJncyA9IHt9CisgICAgICAgIGlmIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3
YXJncyBpcyBOb25lOgorICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0g
e30KICAgICAgICAgc2VsZi5fY21kID0gc2VsZi5tYWtlX2NvbW1hbmQoKQorICAgICAgICBzZWxm
Ll9vdXRwdXRfaGFuZGxlciA9IHNlbGYub3V0cHV0X2hhbmRsZXJfY2xzKHNlbGYubG9nZ2VyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX2NtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKm91dHB1dF9oYW5kbGVyX2t3YXJncykKICAgICAgICAgc2VsZi5fcHJvYyA9IG1v
enByb2Nlc3MuUHJvY2Vzc0hhbmRsZXIoCiAgICAgICAgICAgICBzZWxmLl9jbWQsCi0gICAgICAg
ICAgICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLm9uX291dHB1dCwKLSAgICAgICAgICAgIGVudj1j
YXN0X2VudihzZWxmLmVudiksCisgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLl9v
dXRwdXRfaGFuZGxlciwKKyAgICAgICAgICAgIGVudj1zZWxmLmVudiwKICAgICAgICAgICAgIHN0
b3JlT3V0cHV0PUZhbHNlKQogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBX
ZWJEcml2ZXI6ICVzIiAlICcgJy5qb2luKHNlbGYuX2NtZCkpCkBAIC02OCw2ICs4Miw3IEBAIGNs
YXNzIFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIHJhaXNlIElPRXJy
b3IoCiAgICAgICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgZXhlY3V0YWJsZSBub3QgZm91bmQ6
ICVzIiAlIHNlbGYuYmluYXJ5KQogICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgc2VsZi5fb3V0
cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChzZWxmLl9wcm9jLnBpZCkKIAogICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygKICAgICAgICAgICAgICJXYWl0aW5nIGZvciBXZWJEcml2ZXIg
dG8gYmVjb21lIGFjY2Vzc2libGU6ICVzIiAlIHNlbGYudXJsKQpAQCAtNzgsMjcgKzkzLDI4IEBA
IGNsYXNzIFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICJXZWJEcml2
ZXIgd2FzIG5vdCBhY2Nlc3NpYmxlICIKICAgICAgICAgICAgICAgICAid2l0aGluIHRoZSB0aW1l
b3V0OlxuJXMiICUgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKICAgICAgICAgICAgIHJhaXNlCi0K
KyAgICAgICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIuc3RhcnQoKipvdXRwdXRfaGFuZGxlcl9zdGFy
dF9rd2FyZ3MpCiAgICAgICAgIGlmIGJsb2NrOgogICAgICAgICAgICAgc2VsZi5fcHJvYy53YWl0
KCkKIAogICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKICAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoIlN0b3BwaW5nIFdlYkRyaXZlciIpCisgICAgICAgIGNsZWFuID0gVHJ1ZQogICAg
ICAgICBpZiBzZWxmLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICBraWxsX3Jlc3VsdCA9IHNlbGYu
X3Byb2Mua2lsbCgpCiAgICAgICAgICAgICBpZiBmb3JjZSBhbmQga2lsbF9yZXN1bHQgIT0gMDoK
LSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvYy5raWxsKDkpCi0gICAgICAgICAgICBy
ZXR1cm4ga2lsbF9yZXN1bHQKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmlzX2FsaXZlKCkKKyAg
ICAgICAgICAgICAgICBjbGVhbiA9IEZhbHNlCisgICAgICAgICAgICAgICAgc2VsZi5fcHJvYy5r
aWxsKDkpCisgICAgICAgIHN1Y2Nlc3MgPSBub3Qgc2VsZi5pc19hbGl2ZSgpCisgICAgICAgIGlm
IHN1Y2Nlc3MgYW5kIHNlbGYuX291dHB1dF9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgIyBPbmx5IHRyeSB0byBkbyBvdXRwdXQgcG9zdC1wcm9jZXNzaW5nIGlmIHdlIG1hbmFnZWQg
dG8gc2h1dCBkb3duCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9j
ZXNzX3N0b3AoY2xlYW4pCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUK
KyAgICAgICAgcmV0dXJuIHN1Y2Nlc3MKIAogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAg
ICAgcmV0dXJuIGhhc2F0dHIoc2VsZi5fcHJvYywgInByb2MiKSBhbmQgc2VsZi5fcHJvYy5wb2xs
KCkgaXMgTm9uZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgc2Vs
Zi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLl9jbWQpKQotCiAg
ICAgQHByb3BlcnR5CiAgICAgZGVmIHBpZChzZWxmKToKICAgICAgICAgaWYgc2VsZi5fcHJvYyBp
cyBub3QgTm9uZToKQEAgLTEyMyw4OCArMTM5LDQyIEBAIGNsYXNzIFNlbGVuaXVtU2VydmVyKFdl
YkRyaXZlclNlcnZlcik6CiAKIAogY2xhc3MgQ2hyb21lRHJpdmVyU2VydmVyKFdlYkRyaXZlclNl
cnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJjaHJvbWVkcml2
ZXIiLCBwb3J0PU5vbmUsCi0gICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25l
KToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwg
bG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdz
KQotCiAgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJp
bmFyeSwKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJwb3J0Iiwgc3RyKHNlbGYucG9ydCkpLAog
ICAgICAgICAgICAgICAgIGNtZF9hcmcoInVybC1iYXNlIiwgc2VsZi5iYXNlX3BhdGgpIGlmIHNl
bGYuYmFzZV9wYXRoIGVsc2UgIiIsCiAgICAgICAgICAgICAgICAgY21kX2FyZygiZW5hYmxlLWNo
cm9tZS1sb2dzIildICsgc2VsZi5fYXJncwogCi1jbGFzcyBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIo
V2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnks
IHBvcnQ9Tm9uZSwgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKIAorY2xhc3MgQ1dU
Q2hyb21lRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgZGVmIG1ha2VfY29tbWFu
ZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKICAgICAgICAgICAgICAgICAi
LS1wb3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIAotY2xhc3MgRWRnZUNo
cm9taXVtRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIGxvZ2dlciwgYmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLCBwb3J0PU5vbmUsCi0gICAgICAgICAg
ICAgICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVy
Ll9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwg
YmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQogCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2
ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgog
ICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgIGNtZF9hcmcoInBv
cnQiLCBzdHIoc2VsZi5wb3J0KSksCiAgICAgICAgICAgICAgICAgY21kX2FyZygidXJsLWJhc2Ui
LCBzZWxmLmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIl0gKyBzZWxmLl9hcmdz
CiAKLWNsYXNzIEVkZ2VEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Im1pY3Jvc29mdHdlYmRyaXZlci5leGUiLCBwb3J0
PU5vbmUsCi0gICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgaG9zdD0ibG9jYWxob3N0Iiwg
YXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAg
ICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBhcmdzPWFyZ3Mp
CiAKK2NsYXNzIEVkZ2VEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFr
ZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAg
ICAgICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCi1jbGFz
cyBPcGVyYURyaXZlclNlcnZlcihDaHJvbWVEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeT0ib3BlcmFkcml2ZXIiLCBwb3J0PU5vbmUsCi0gICAgICAg
ICAgICAgICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKLSAgICAgICAgQ2hyb21lRHJpdmVy
U2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9
cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQogCitjbGFzcyBPcGVyYURyaXZl
clNlcnZlcihDaHJvbWVEcml2ZXJTZXJ2ZXIpOgorICAgIHBhc3MKIAogY2xhc3MgSW50ZXJuZXRF
eHBsb3JlckRyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeT0iSUVEcml2ZXJTZXJ2ZXIuZXhlIiwgcG9ydD1Ob25lLAotICAg
ICAgICAgICAgICAgICBiYXNlX3BhdGg9IiIsIGhvc3Q9ImxvY2FsaG9zdCIsIGFyZ3M9Tm9uZSk6
Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKLSAgICAgICAgICAgIHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCBob3N0PWhvc3QsIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQotCiAgICAgZGVm
IG1ha2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKICAgICAg
ICAgICAgICAgICAiLS1wb3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIAog
Ci1jbGFzcyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIG1hcmlvbmV0dGVfcG9ydD0yODI4LCBiaW5hcnk9ImdlY2tvZHJp
dmVyIiwKLSAgICAgICAgICAgICAgICAgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD1Ob25lLCBhcmdz
PU5vbmUpOgotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotICAgICAgICBlbnZbIlJV
U1RfQkFDS1RSQUNFIl0gPSAiMSIKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKHNl
bGYsIGxvZ2dlciwgYmluYXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9z
dD1ob3N0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWNhc3RfZW52KGVudiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCi0gICAgICAgIHNlbGYubWFyaW9u
ZXR0ZV9wb3J0ID0gbWFyaW9uZXR0ZV9wb3J0Ci0KLSAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYp
OgotICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAotICAgICAgICAgICAgICAgICItLW1hcmlv
bmV0dGUtcG9ydCIsIHN0cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCi0gICAgICAgICAgICAgICAg
Ii0taG9zdCIsIHNlbGYuaG9zdCwKLSAgICAgICAgICAgICAgICAiLS1wb3J0Iiwgc3RyKHNlbGYu
cG9ydCldICsgc2VsZi5fYXJncwotCi0KIGNsYXNzIFNhZmFyaURyaXZlclNlcnZlcihXZWJEcml2
ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT0ic2FmYXJp
ZHJpdmVyIiwgcG9ydD1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIu
X19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBh
cmdzPWFyZ3MpCi0KICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4g
W3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9y
dCldICsgc2VsZi5fYXJncwpAQCAtMjEyLDEzICsxODIsMTMgQEAgY2xhc3MgU2FmYXJpRHJpdmVy
U2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAKIGNsYXNzIFNlcnZvRHJpdmVyU2VydmVyKFdlYkRy
aXZlclNlcnZlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJzZXJ2
byIsIGJpbmFyeV9hcmdzPU5vbmUsIGhvc3Q9IjEyNy4wLjAuMSIsCi0gICAgICAgICAgICAgICAg
IHBvcnQ9Tm9uZSwgYXJncz1Ob25lKToKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkK
KyAgICAgICAgICAgICAgICAgcG9ydD1Ob25lLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAg
ICAgZW52ID0gZW52IGlmIGVudiBpcyBub3QgTm9uZSBlbHNlIG9zLmVudmlyb24uY29weSgpCiAg
ICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgogICAgICAgICBXZWJEcml2ZXJTZXJ2
ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBob3N0PWhvc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3J0PXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYo
ZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCiAgICAgICAgIHNlbGYuYmluYXJ5
X2FyZ3MgPSBiaW5hcnlfYXJncwogCkBAIC0yMzMsOSArMjAzLDYgQEAgY2xhc3MgU2Vydm9Ecml2
ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKIAogCiBjbGFzcyBXZWJLaXREcml2ZXJTZXJ2ZXIo
V2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9
Tm9uZSwgcG9ydD1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQotCiAgICAg
ZGVmIG1ha2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwgIi0t
cG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCiAKQEAgLTI1NCw3ICsyMjEs
NyBAQCBkZWYgZ2V0X2ZyZWVfcG9ydCgpOgogICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgIHMuYmluZCgoIjEyNy4wLjAuMSIsIDApKQotICAgICAg
ICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAg
ICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gcy5nZXRzb2Nr
bmFtZSgpWzFdCkBAIC0yNjUsNyArMjMyLDcgQEAgZGVmIGdldF9mcmVlX3BvcnQoKToKIGRlZiB3
YWl0X2Zvcl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9NjApOgogICAgICIiIldhaXRzIHVudGlsIG5l
dHdvcmsgc2VydmljZSBnaXZlbiBhcyBhIHR1cGxlIG9mIChob3N0LCBwb3J0KSBiZWNvbWVzCiAg
ICAgYXZhaWxhYmxlIG9yIHRoZSBgdGltZW91dGAgZHVyYXRpb24gaXMgcmVhY2hlZCwgYXQgd2hp
Y2ggcG9pbnQKLSAgICBgYHNvY2tldC5lcnJvcmBgIGlzIHJhaXNlZC4iIiIKKyAgICBgYHNvY2tl
dC50aW1lb3V0YGAgaXMgcmFpc2VkLiIiIgogICAgIGVuZCA9IHRpbWUudGltZSgpICsgdGltZW91
dAogICAgIHdoaWxlIGVuZCA+IHRpbWUudGltZSgpOgogICAgICAgICBzbyA9IHNvY2tldC5zb2Nr
ZXQoKQpAQCAtMjczLDcgKzI0MCw3IEBAIGRlZiB3YWl0X2Zvcl9zZXJ2aWNlKGFkZHIsIHRpbWVv
dXQ9NjApOgogICAgICAgICAgICAgc28uY29ubmVjdChhZGRyKQogICAgICAgICBleGNlcHQgc29j
a2V0LnRpbWVvdXQ6CiAgICAgICAgICAgICBwYXNzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJy
b3IgYXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIGlmIGUu
ZXJybm8gIT0gZXJybm8uRUNPTk5SRUZVU0VEOgogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAg
ICAgIGVsc2U6CkBAIC0yODEsNCArMjQ4LDQgQEAgZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwg
dGltZW91dD02MCk6CiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzby5jbG9zZSgpCiAg
ICAgICAgIHRpbWUuc2xlZXAoMC41KQotICAgIHJhaXNlIHNvY2tldC5lcnJvcigiU2VydmljZSBp
cyB1bmF2YWlsYWJsZTogJXM6JWkiICUgYWRkcikKKyAgICByYWlzZSBzb2NrZXQudGltZW91dCgi
U2VydmljZSBpcyB1bmF2YWlsYWJsZTogJXM6JWkiICUgYWRkcikKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1h
bmRsaW5lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKaW5kZXggOWQxZDQwNDgwOTU0Li5jNzA1MGViODBj
MmIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CkBAIC0x
LDExICsxLDkgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBwcmlu
dF9mdW5jdGlvbgogaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20g
Y29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CiBmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBv
cnQgZmluZF9leGVjdXRhYmxlCiBmcm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEKLWZyb20g
c2l4IGltcG9ydCBlbnN1cmVfdGV4dCwgaXRlcmtleXMsIGl0ZXJ2YWx1ZXMsIGl0ZXJpdGVtcwog
CiBmcm9tIC4gaW1wb3J0IGNvbmZpZwogZnJvbSAuIGltcG9ydCB3cHR0ZXN0CkBAIC0xNiw3ICsx
NCw3IEBAIGRlZiBhYnNfcGF0aChwYXRoKToKIAogCiBkZWYgdXJsX29yX3BhdGgocGF0aCk6Ci0g
ICAgZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQorICAgIGZyb20g
dXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQogCiAgICAgcGFyc2VkID0gdXJscGFyc2UocGF0
aCkKICAgICBpZiBsZW4ocGFyc2VkLnNjaGVtZSkgPiAyOgpAQCAtNzIsNiArNzAsMTAgQEAgc2No
ZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1U
cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0iZmFpbF9vbl91bmV4cGVjdGVkIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkV4aXQgd2l0aCBzdGF0dXMgY29kZSAwIHdo
ZW4gdGVzdCBleHBlY3RhdGlvbnMgYXJlIHZpb2xhdGVkIikKKyAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCItLW5vLWZhaWwtb24tdW5leHBlY3RlZC1wYXNzIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSJmYWlsX29uX3VuZXhwZWN0ZWRfcGFzcyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJFeGl0IHdpdGggc3RhdHVzIGNvZGUgMCB3aGVuIGFsbCB1bmV4cGVjdGVk
IHJlc3VsdHMgYXJlIFBBU1MiKQogCiAgICAgbW9kZV9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1l
bnRfZ3JvdXAoIk1vZGUiKQogICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWxpc3QtdGVz
dC1ncm91cHMiLCBhY3Rpb249InN0b3JlX3RydWUiLApAQCAtMTMxLDYgKzEzMyw4IEBAIHNjaGVt
ZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iVGVzdCB0eXBlcyB0byBydW4iKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFk
ZF9hcmd1bWVudCgiLS1pbmNsdWRlIiwgYWN0aW9uPSJhcHBlbmQiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJVUkwgcHJlZml4IHRvIGluY2x1ZGUiKQorICAg
IHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlLWZpbGUiLCBhY3Rp
b249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
QSBmaWxlIGxpc3RpbmcgVVJMIHByZWZpeCBmb3IgdGVzdHMiKQogICAgIHRlc3Rfc2VsZWN0aW9u
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1leGNsdWRlIiwgYWN0aW9uPSJhcHBlbmQiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJVUkwgcHJlZml4IHRvIGV4Y2x1
ZGUiKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlLW1h
bmlmZXN0IiwgdHlwZT1hYnNfcGF0aCwKQEAgLTE3MCw2ICsxNzQsOCBAQCBzY2hlbWUgaG9zdCBh
bmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJIYWx0
IHRoZSB0ZXN0IHJ1bm5lciBhZnRlciBlYWNoIHRlc3QgKHRoaXMgaGFwcGVucyBieSBkZWZhdWx0
IGlmIG9ubHkgYSBzaW5nbGUgdGVzdCBpcyBydW4pIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRk
X2FyZ3VtZW50KCctLW5vLXBhdXNlLWFmdGVyLXRlc3QnLCBkZXN0PSJwYXVzZV9hZnRlcl90ZXN0
IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJEb24ndCBoYWx0IHRoZSB0ZXN0IHJ1bm5lciBpcnJlc3BlY3RpdmUgb2YgdGhlIG51
bWJlciBvZiB0ZXN0cyBydW4iKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0t
ZGVidWctdGVzdCcsIGRlc3Q9ImRlYnVnX3Rlc3QiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVuIHRlc3RzIHdpdGggYWRkaXRp
b25hbCBkZWJ1Z2dpbmcgZmVhdHVyZXMgZW5hYmxlZCIpCiAKICAgICBkZWJ1Z2dpbmdfZ3JvdXAu
YWRkX2FyZ3VtZW50KCctLXBhdXNlLW9uLXVuZXhwZWN0ZWQnLCBhY3Rpb249InN0b3JlX3RydWUi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSGFsdCB0aGUgdGVzdCBy
dW5uZXIgd2hlbiBhbiB1bmV4cGVjdGVkIHJlc3VsdCBpcyBlbmNvdW50ZXJlZCIpCkBAIC0xODEs
NyArMTg3LDYgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iUGF0aCBvciB1cmwgdG8gc3ltYm9scyBmaWxlIHVzZWQgdG8g
YW5hbHlzZSBjcmFzaCBtaW5pZHVtcHMuIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCItLXN0YWNrd2Fsay1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc3RhY2t3YWxr
ZXIgcHJvZ3JhbSB1c2VkIHRvIGFuYWx5c2UgbWluaWR1bXBzLiIpCi0KICAgICBkZWJ1Z2dpbmdf
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLXBkYiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEcm9wIGludG8gcGRiIG9uIHB5dGhvbiBl
eGNlcHRpb24iKQogCkBAIC0xOTYsNiArMjAxLDggQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIi
KQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoJy0td2ViZHJpdmVyLWFyZycsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBhY3Rpb249ImFwcGVuZCIsIGRl
c3Q9IndlYmRyaXZlcl9hcmdzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
IkV4dHJhIGFyZ3VtZW50IGZvciB0aGUgV2ViRHJpdmVyIGJpbmFyeSIpCisgICAgY29uZmlnX2dy
b3VwLmFkZF9hcmd1bWVudCgiLS1hZGItYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGFkYiBiaW5hcnkgdG8gdXNlIikK
ICAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBhY2thZ2UtbmFtZSIsIGFjdGlvbj0i
c3RvcmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQW5kcm9pZCBwYWNr
YWdlIG5hbWUgdG8gcnVuIHRlc3RzIGFnYWluc3QiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tZGV2aWNlLXNlcmlhbCIsIGFjdGlvbj0ic3RvcmUiLApAQCAtMjg0LDYgKzI5MSw4
IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iRGlzYWJsZSBmaXNzaW9uIGluIEdlY2tvLiIpCiAgICAgZ2Vja29fZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLXN0YWNrZml4LWRpciIsIGRlc3Q9InN0YWNrZml4X2RpciIsIGFjdGlvbj0i
c3RvcmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVj
dG9yeSBjb250YWluaW5nIGFzc2VydGlvbiBzdGFjayBmaXhpbmcgc2NyaXB0cyIpCisgICAgZ2Vj
a29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNwZWNpYWxwb3dlcnMtcGF0aCIsIGFjdGlvbj0ic3Rv
cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIHNwZWNpYWxQ
b3dlcnMgZXh0ZW5zaW9uIHhwaSBmaWxlIikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQo
Ii0tc2V0cHJlZiIsIGRlc3Q9ImV4dHJhX3ByZWZzIiwgYWN0aW9uPSdhcHBlbmQnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBtZXRhdmFyPSJQUkVGPVZBTFVFIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRGVmaW5lcyBhbiBleHRyYSB1c2Vy
IHByZWZlcmVuY2UgKG92ZXJyaWRlcyB0aG9zZSBpbiBwcmVmc19yb290KSIpCkBAIC0zMTIsMTQg
KzMyMSwxNyBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0idXNlcl9zdHlsZXNo
ZWV0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkluamVjdCBhIHVzZXIg
Q1NTIHN0eWxlc2hlZXQgaW50byBldmVyeSB0ZXN0LiIpCiAKLSAgICBzZXJ2b19ncm91cCA9IHBh
cnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoIkNocm9tZS1zcGVjaWZpYyIpCi0gICAgc2Vydm9fZ3Jv
dXAuYWRkX2FyZ3VtZW50KCItLWVuYWJsZS1tb2pvanMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBk
ZWZhdWx0PUZhbHNlLAorICAgIGNocm9tZV9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3Jv
dXAoIkNocm9tZS1zcGVjaWZpYyIpCisgICAgY2hyb21lX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1l
bmFibGUtbW9qb2pzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRW5hYmxlIE1vam9KUyBmb3IgdGVzdGluZy4g
Tm90ZSB0aGF0IHRoaXMgZmxhZyBpcyB1c2FsbHkgIgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZW5hYmxlZCBhdXRvbWF0aWNhbGx5IGJ5IGB3cHQgcnVuYCwgaWYgaXQgc3VjY2VlZHMg
aW4gZG93bmxvYWRpbmcgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIHJpZ2h0
IHZlcnNpb24gb2YgbW9qb2pzLnppcCBvciBpZiAtLW1vam9qcy1wYXRoIGlzIHNwZWNpZmllZC4i
KQotICAgIHNlcnZvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1tb2pvanMtcGF0aCIsCisgICAgY2hy
b21lX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1tb2pvanMtcGF0aCIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gbW9qb2pzIGdlbi8gZGlyZWN0b3J5LiBJZiBpdCBp
cyBub3Qgc3BlY2lmaWVkLCBgd3B0IHJ1bmAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAid2lsbCBkb3dubG9hZCBhbmQgZXh0cmFjdCBtb2pvanMuemlwIGludG8gX3ZlbnYyL21vam9q
cy9nZW4uIikKKyAgICBjaHJvbWVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWVuYWJsZS1zd2lmdHNo
YWRlciIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IkVuYWJsZSBTd2lmdFNoYWRlciBmb3IgQ1BVLWJhc2VkIDNE
IGdyYXBoaWNzLiBUaGlzIGNhbiBiZSB1c2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImluIGVudmlyb25tZW50cyB3aXRoIG5vIGhhcmR3YXJlIEdQVSBhdmFpbGFibGUuIikKIAog
ICAgIHNhdWNlX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiU2F1Y2UgTGFicy1z
cGVjaWZpYyIpCiAgICAgc2F1Y2VfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNhdWNlLWJyb3dzZXIi
LCBkZXN0PSJzYXVjZV9icm93c2VyIiwKQEAgLTM1NCwxMyArMzY2LDE3IEBAIHNjaGVtZSBob3N0
IGFuZCBwb3J0LiIiIikKIAogICAgIHRhc2tjbHVzdGVyX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1
bWVudF9ncm91cCgiVGFza2NsdXN0ZXItc3BlY2lmaWMiKQogICAgIHRhc2tjbHVzdGVyX2dyb3Vw
LmFkZF9hcmd1bWVudCgiLS1naXRodWItY2hlY2tzLXRleHQtZmlsZSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ZW5zdXJlX3RleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9c3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJQYXRoIHRvIEdpdEh1YiBjaGVja3Mgb3V0cHV0IGZpbGUiKQogCiAgICAg
d2Via2l0X2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiV2ViS2l0LXNwZWNpZmlj
IikKICAgICB3ZWJraXRfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXdlYmtpdC1wb3J0IiwgZGVzdD0i
d2Via2l0X3BvcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iV2ViS2l0
IHBvcnQiKQogCisgICAgc2FmYXJpX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgi
U2FmYXJpLXNwZWNpZmljIikKKyAgICBzYWZhcmlfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWtpbGwt
c2FmYXJpIiwgZGVzdD0ia2lsbF9zYWZhcmkiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0
PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iS2lsbCBTYWZhcmkg
d2hlbiBzdG9wcGluZyB0aGUgYnJvd3NlciIpCisKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ0
ZXN0X2xpc3QiLCBuYXJncz0iKiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMaXN0
IG9mIFVSTHMgZm9yIHRlc3RzIHRvIHJ1biwgb3IgcGF0aHMgaW5jbHVkaW5nIHRlc3RzIHRvIHJ1
bi4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGVxdWl2YWxlbnQgdG8gLS1pbmNs
dWRlKSIpCkBAIC00MDIsNyArNDE4LDcgQEAgZGVmIHNldF9mcm9tX2NvbmZpZyhrd2FyZ3MpOgog
ICAgICAgICAgICAgICAgICAgICAoImhvc3RfY2VydF9wYXRoIiwgImhvc3RfY2VydF9wYXRoIiwg
VHJ1ZSksCiAgICAgICAgICAgICAgICAgICAgICgiaG9zdF9rZXlfcGF0aCIsICJob3N0X2tleV9w
YXRoIiwgVHJ1ZSldfQogCi0gICAgZm9yIHNlY3Rpb24sIHZhbHVlcyBpbiBpdGVyaXRlbXMoa2V5
cyk6CisgICAgZm9yIHNlY3Rpb24sIHZhbHVlcyBpbiBrZXlzLml0ZW1zKCk6CiAgICAgICAgIGZv
ciBjb25maWdfdmFsdWUsIGt3X3ZhbHVlLCBpc19wYXRoIGluIHZhbHVlczoKICAgICAgICAgICAg
IGlmIGt3X3ZhbHVlIGluIGt3YXJncyBhbmQga3dhcmdzW2t3X3ZhbHVlXSBpcyBOb25lOgogICAg
ICAgICAgICAgICAgIGlmIG5vdCBpc19wYXRoOgpAQCAtNDM4LDcgKzQ1NCw3IEBAIGRlZiBnZXRf
dGVzdF9wYXRocyhjb25maWcpOgogICAgICMgU2V0IHVwIHRlc3RfcGF0aHMKICAgICB0ZXN0X3Bh
dGhzID0gT3JkZXJlZERpY3QoKQogCi0gICAgZm9yIHNlY3Rpb24gaW4gaXRlcmtleXMoY29uZmln
KToKKyAgICBmb3Igc2VjdGlvbiBpbiBjb25maWcua2V5cygpOgogICAgICAgICBpZiBzZWN0aW9u
LnN0YXJ0c3dpdGgoIm1hbmlmZXN0OiIpOgogICAgICAgICAgICAgbWFuaWZlc3Rfb3B0cyA9IGNv
bmZpZy5nZXQoc2VjdGlvbikKICAgICAgICAgICAgIHVybF9iYXNlID0gbWFuaWZlc3Rfb3B0cy5n
ZXQoInVybF9iYXNlIiwgIi8iKQpAQCAtNDY0LDcgKzQ4MCw3IEBAIGRlZiBleGVfcGF0aChuYW1l
KToKIAogCiBkZWYgY2hlY2tfcGF0aHMoa3dhcmdzKToKLSAgICBmb3IgdGVzdF9wYXRocyBpbiBp
dGVydmFsdWVzKGt3YXJnc1sidGVzdF9wYXRocyJdKToKKyAgICBmb3IgdGVzdF9wYXRocyBpbiBr
d2FyZ3NbInRlc3RfcGF0aHMiXS52YWx1ZXMoKToKICAgICAgICAgaWYgbm90ICgidGVzdHNfcGF0
aCIgaW4gdGVzdF9wYXRocyBhbmQKICAgICAgICAgICAgICAgICAibWV0YWRhdGFfcGF0aCIgaW4g
dGVzdF9wYXRocyk6CiAgICAgICAgICAgICBwcmludCgiRmF0YWw6IG11c3Qgc3BlY2lmeSBib3Ro
IGEgdGVzdCBwYXRoIGFuZCBtZXRhZGF0YSBwYXRoIikKQEAgLTQ3Miw3ICs0ODgsNyBAQCBkZWYg
Y2hlY2tfcGF0aHMoa3dhcmdzKToKICAgICAgICAgaWYgIm1hbmlmZXN0X3BhdGgiIG5vdCBpbiB0
ZXN0X3BhdGhzOgogICAgICAgICAgICAgdGVzdF9wYXRoc1sibWFuaWZlc3RfcGF0aCJdID0gb3Mu
cGF0aC5qb2luKHRlc3RfcGF0aHNbIm1ldGFkYXRhX3BhdGgiXSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTUFOSUZFU1QuanNvbiIpCi0g
ICAgICAgIGZvciBrZXksIHBhdGggaW4gaXRlcml0ZW1zKHRlc3RfcGF0aHMpOgorICAgICAgICBm
b3Iga2V5LCBwYXRoIGluIHRlc3RfcGF0aHMuaXRlbXMoKToKICAgICAgICAgICAgIG5hbWUgPSBr
ZXkuc3BsaXQoIl8iLCAxKVswXQogCiAgICAgICAgICAgICBpZiBuYW1lID09ICJtYW5pZmVzdCI6
CkBAIC01ODgsNyArNjA0LDcgQEAgZGVmIGNoZWNrX2FyZ3Moa3dhcmdzKToKICAgICAgICAga3dh
cmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBUcnVlCiAKICAgICBpZiBrd2FyZ3NbInJlZnRlc3Rf
c2NyZWVuc2hvdCJdIGlzIE5vbmU6Ci0gICAgICAgIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90
Il0gPSAidW5leHBlY3RlZCIKKyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9
ICJ1bmV4cGVjdGVkIiBpZiBub3Qga3dhcmdzWyJkZWJ1Z190ZXN0Il0gZWxzZSAiYWx3YXlzIgog
CiAgICAgaWYga3dhcmdzWyJlbmFibGVfd2VicmVuZGVyIl0gaXMgTm9uZToKICAgICAgICAga3dh
cmdzWyJlbmFibGVfd2VicmVuZGVyIl0gPSBGYWxzZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dGxvZ2dpbmcucHkKaW5kZXggNDQ0ZDFkOTYyZDI1Li5iNWNiNTg4ODFmZDAgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dGxvZ2dpbmcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCBsb2dn
aW5nCitmcm9tIHRocmVhZGluZyBpbXBvcnQgVGhyZWFkCiAKIGZyb20gbW96bG9nIGltcG9ydCBj
b21tYW5kbGluZSwgc3RkYWRhcHRlciwgc2V0X2RlZmF1bHRfbG9nZ2VyCiBmcm9tIG1vemxvZy5z
dHJ1Y3R1cmVkbG9nIGltcG9ydCBTdHJ1Y3R1cmVkTG9nZ2VyLCBsb2dfbGV2ZWxzCkBAIC02NSwz
ICs2Niw0MiBAQCBjbGFzcyBMb2dnZWRBYm92ZUxldmVsSGFuZGxlcihvYmplY3QpOgogICAgICAg
ICAgICAgbm90IHNlbGYuaGFzX2xvZyBhbmQKICAgICAgICAgICAgIGxvZ19sZXZlbHNbZGF0YVsi
bGV2ZWwiXV0gPD0gc2VsZi5taW5fbGV2ZWwpOgogICAgICAgICAgICAgc2VsZi5oYXNfbG9nID0g
VHJ1ZQorCisKK2NsYXNzIFF1ZXVlSGFuZGxlcihsb2dnaW5nLkhhbmRsZXIpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBxdWV1ZSwgbGV2ZWw9bG9nZ2luZy5OT1RTRVQpOgorICAgICAgICBzZWxm
LnF1ZXVlID0gcXVldWUKKyAgICAgICAgbG9nZ2luZy5IYW5kbGVyLl9faW5pdF9fKHNlbGYsIGxl
dmVsPWxldmVsKQorCisgICAgZGVmIGNyZWF0ZUxvY2soc2VsZik6CisgICAgICAgICMgVGhlIHF1
ZXVlIHByb3ZpZGVzIGl0cyBvd24gbG9ja2luZworICAgICAgICBzZWxmLmxvY2sgPSBOb25lCisK
KyAgICBkZWYgZW1pdChzZWxmLCByZWNvcmQpOgorICAgICAgICBtc2cgPSBzZWxmLmZvcm1hdChy
ZWNvcmQpCisgICAgICAgIGRhdGEgPSB7ImFjdGlvbiI6ICJsb2ciLAorICAgICAgICAgICAgICAg
ICJsZXZlbCI6IHJlY29yZC5sZXZlbG5hbWUsCisgICAgICAgICAgICAgICAgInRocmVhZCI6IHJl
Y29yZC50aHJlYWROYW1lLAorICAgICAgICAgICAgICAgICJwaWQiOiByZWNvcmQucHJvY2VzcywK
KyAgICAgICAgICAgICAgICAic291cmNlIjogc2VsZi5uYW1lLAorICAgICAgICAgICAgICAgICJt
ZXNzYWdlIjogbXNnfQorICAgICAgICBzZWxmLnF1ZXVlLnB1dChkYXRhKQorCisKK2NsYXNzIExv
Z1F1ZXVlVGhyZWFkKFRocmVhZCk6CisgICAgIiIiVGhyZWFkIGZvciBoYW5kbGluZyBsb2cgbWVz
c2FnZXMgZnJvbSBhIHF1ZXVlIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1ZXVlLCBsb2dn
ZXIpOgorICAgICAgICBzZWxmLnF1ZXVlID0gcXVldWUKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBs
b2dnZXIKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhuYW1lPSJUaHJlYWQtTG9nIikKKworICAg
IGRlZiBydW4oc2VsZik6CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYucXVldWUuZ2V0KCkKKyAgICAgICAgICAgIGV4Y2Vw
dCAoRU9GRXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg
ICBpZiBkYXRhIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgIyBBIE5vbmUgbWVzc2FnZSBpcyB1
c2VkIHRvIHNodXQgZG93biB0aGUgbG9nZ2luZyB0aHJlYWQKKyAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICAgICAgc2VsZi5sb2dnZXIubG9nX3JhdyhkYXRhKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRp
b25hbC5weQppbmRleCAzYjExZTgzMDEyYWIuLjMwZGQxNDQ5MTU2ZSAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29u
ZGl0aW9uYWwucHkKQEAgLTEsNSArMSw1IEBACiBpbXBvcnQgb3BlcmF0b3IKLWZyb20gc2l4IGlt
cG9ydCBlbnN1cmVfdGV4dCwgaXRlcml0ZW1zLCBpdGVya2V5cywgdGV4dF90eXBlCitmcm9tIHNp
eCBpbXBvcnQgZW5zdXJlX3RleHQKIAogZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBE
YXRhTm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBLZXlWYWx1ZU5vZGUsIExpc3ROb2RlLCBWYWx1ZU5v
ZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLCBWYXJpYWJsZU5vZGUKIGZyb20gLi5wYXJzZXIgaW1w
b3J0IHBhcnNlCkBAIC0zMDAsOSArMzAwLDkgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6
CiAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgogICAgICAgICAgICAgdmFsdWVf
bm9kZSA9IExpc3ROb2RlKCkKICAgICAgICAgICAgIGZvciBpdGVtIGluIHZhbHVlOgotICAgICAg
ICAgICAgICAgIHZhbHVlX25vZGUuYXBwZW5kKFZhbHVlTm9kZSh0ZXh0X3R5cGUoaXRlbSkpKQor
ICAgICAgICAgICAgICAgIHZhbHVlX25vZGUuYXBwZW5kKFZhbHVlTm9kZShzdHIoaXRlbSkpKQog
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZSh0ZXh0X3R5
cGUodmFsdWUpKQorICAgICAgICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZShzdHIodmFsdWUp
KQogICAgICAgICBpZiBjb25kaXRpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpZiBub3Qg
aXNpbnN0YW5jZShjb25kaXRpb24sIENvbmRpdGlvbmFsTm9kZSk6CiAgICAgICAgICAgICAgICAg
Y29uZGl0aW9uYWxfbm9kZSA9IENvbmRpdGlvbmFsTm9kZSgpCkBAIC0zNjgsMTcgKzM2OCwxNyBA
QCBjbGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKICAgICBkZWYgX2ZsYXR0ZW4oc2VsZik6CiAg
ICAgICAgIHJ2ID0ge30KICAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06Ci0g
ICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gaXRlcml0ZW1zKG5vZGUuX2RhdGEpOgorICAg
ICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIG5vZGUuX2RhdGEuaXRlbXMoKToKICAgICAgICAg
ICAgICAgICBpZiBuYW1lIG5vdCBpbiBydjoKICAgICAgICAgICAgICAgICAgICAgcnZbbmFtZV0g
PSB2YWx1ZQogICAgICAgICByZXR1cm4gcnYKIAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0g
ICAgICAgIGZvciBpdGVtIGluIGl0ZXJpdGVtcyhzZWxmLl9mbGF0dGVuKCkpOgorICAgICAgICBm
b3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlbXMoKToKICAgICAgICAgICAgIHlpZWxkIGl0
ZW0KIAogICAgIGRlZiBpdGVya2V5cyhzZWxmKToKLSAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcmtl
eXMoc2VsZi5fZmxhdHRlbigpKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigp
LmtleXMoKToKICAgICAgICAgICAgIHlpZWxkIGl0ZW0KIAogICAgIGRlZiBpdGVyX3Byb3BlcnRp
ZXMoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5w
eQppbmRleCAwZjgyZDcwMDZiNjkuLjVlOWQyYjY0Mjc0NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qv
bm9kZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5CkBAIC0xLDUgKzEsMyBAQAotZnJvbSBzaXgu
bW92ZXMgaW1wb3J0IHJhbmdlCi0KIGNsYXNzIE5vZGVWaXNpdG9yKG9iamVjdCk6CiAgICAgZGVm
IHZpc2l0KHNlbGYsIG5vZGUpOgogICAgICAgICAjIFRoaXMgaXMgdWdseSBhcyBoZWxsLCBidXQg
d2UgZG9uJ3QgaGF2ZSBtdWx0aW1ldGhvZHMgYW5kCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJz
ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkKaW5kZXggOTExZWZhYzgwZjI3Li40Yzk3YzY5MTQx
MzkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIu
cHkKQEAgLTEyLDEwICsxMiw3IEBACiAKICMgVE9ETzoga2VlcCBjb21tZW50cyBpbiB0aGUgdHJl
ZQogCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKLQotZnJvbSBzaXgg
aW1wb3J0IGJpbmFyeV90eXBlLCB0ZXh0X3R5cGUsIEJ5dGVzSU8sIHVuaWNocgotZnJvbSBzaXgu
bW92ZXMgaW1wb3J0IHJhbmdlCitmcm9tIGlvIGltcG9ydCBCeXRlc0lPCiAKIGZyb20gLm5vZGUg
aW1wb3J0IChOb2RlLCBBdG9tTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsIEJpbmFyeU9wZXJh
dG9yTm9kZSwKICAgICAgICAgICAgICAgICAgICBDb25kaXRpb25hbE5vZGUsIERhdGFOb2RlLCBJ
bmRleE5vZGUsIEtleVZhbHVlTm9kZSwgTGlzdE5vZGUsCkBAIC01MCw3ICs0Nyw3IEBAIGF0b21z
ID0geyJUcnVlIjogVHJ1ZSwKICAgICAgICAgICJSZXNldCI6IG9iamVjdCgpfQogCiBkZWYgZGVj
b2RlKHMpOgotICAgIGFzc2VydCBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQg
aXNpbnN0YW5jZShzLCBzdHIpCiAgICAgcmV0dXJuIHMKIAogCkBAIC01OSw3ICs1Niw3IEBAIGRl
ZiBwcmVjZWRlbmNlKG9wZXJhdG9yX25vZGUpOgogCiAKIGNsYXNzIFRva2VuVHlwZXMob2JqZWN0
KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5v
bmU6CiAgICAgICAgIGZvciB0eXBlIGluIFsiZ3JvdXBfc3RhcnQiLCAiZ3JvdXBfZW5kIiwgInBh
cmVuIiwgImxpc3Rfc3RhcnQiLCAibGlzdF9lbmQiLCAic2VwYXJhdG9yIiwgImlkZW50IiwgInN0
cmluZyIsICJudW1iZXIiLCAiYXRvbSIsICJlb2YiXToKICAgICAgICAgICAgIHNldGF0dHIoc2Vs
ZiwgdHlwZSwgdHlwZSkKIApAQCAtNzksNyArNzYsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0
KToKIAogICAgIGRlZiB0b2tlbml6ZShzZWxmLCBzdHJlYW0pOgogICAgICAgICBzZWxmLnJlc2V0
KCkKLSAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHN0cmVhbSwgdGV4dF90eXBlKQorICAg
ICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uoc3RyZWFtLCBzdHIpCiAgICAgICAgIGlmIGlzaW5z
dGFuY2Uoc3RyZWFtLCBieXRlcyk6CiAgICAgICAgICAgICBzdHJlYW0gPSBCeXRlc0lPKHN0cmVh
bSkKICAgICAgICAgaWYgbm90IGhhc2F0dHIoc3RyZWFtLCAibmFtZSIpOgpAQCAtODksNyArODYs
NyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLm5leHRfbGluZV9z
dGF0ZSA9IHNlbGYubGluZV9zdGFydF9zdGF0ZQogICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVt
ZXJhdGUoc3RyZWFtKToKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmUsIGJpbmFy
eV90eXBlKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGluZSwgYnl0ZXMpCiAgICAg
ICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5uZXh0X2xpbmVfc3RhdGUKICAgICAgICAgICAgIGFz
c2VydCBzZWxmLnN0YXRlIGlzIG5vdCBOb25lCiAgICAgICAgICAgICBzdGF0ZXMgPSBbXQpAQCAt
OTcsNyArOTQsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYu
bGluZV9udW1iZXIgPSBpICsgMQogICAgICAgICAgICAgc2VsZi5pbmRleCA9IDAKICAgICAgICAg
ICAgIHNlbGYubGluZSA9IGxpbmUuZGVjb2RlKCd1dGYtOCcpLnJzdHJpcCgpCi0gICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLmxpbmUsIHRleHRfdHlwZSkKKyAgICAgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKHNlbGYubGluZSwgc3RyKQogICAgICAgICAgICAgd2hpbGUgc2VsZi5z
dGF0ZSAhPSBzZWxmLmVvbF9zdGF0ZToKICAgICAgICAgICAgICAgICBzdGF0ZXMuYXBwZW5kKHNl
bGYuc3RhdGUpCiAgICAgICAgICAgICAgICAgdG9rZW5zID0gc2VsZi5zdGF0ZSgpCkBAIC01MDUs
NyArNTAyLDcgQEAgY2xhc3MgVG9rZW5pemVyKG9iamVjdCk6CiAgICAgICAgICAgICB2YWx1ZSAr
PSBzZWxmLmVzY2FwZV92YWx1ZShjKQogICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKIAotICAg
ICAgICByZXR1cm4gdW5pY2hyKHZhbHVlKQorICAgICAgICByZXR1cm4gY2hyKHZhbHVlKQogCiAg
ICAgZGVmIGVzY2FwZV92YWx1ZShzZWxmLCBjKToKICAgICAgICAgaWYgJzAnIDw9IGMgPD0gJzkn
OgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6
ZXIucHkKaW5kZXggZWM4ZDgwZWQ2ZjcxLi5lMzFhNjA3OTFlYTcgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L3NlcmlhbGl6ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQpAQCAtMSw0ICsx
LDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogZnJvbSBzaXgg
aW1wb3J0IGVuc3VyZV90ZXh0CiAKIGZyb20gLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBWYWx1
ZU5vZGUsIExpc3ROb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZQpAQCAtMzQsNiArMzMsNyBAQCBj
bGFzcyBNYW5pZmVzdFNlcmlhbGl6ZXIoTm9kZVZpc2l0b3IpOgogICAgICAgICBydiA9ICJcbiIu
am9pbihzZWxmLnZpc2l0KHJvb3QpKQogICAgICAgICBpZiBub3QgcnY6CiAgICAgICAgICAgICBy
ZXR1cm4gcnYKKyAgICAgICAgcnYgPSBydi5zdHJpcCgpCiAgICAgICAgIGlmIHJ2Wy0xXSAhPSAi
XG4iOgogICAgICAgICAgICAgcnYgPSBydiArICJcbiIKICAgICAgICAgcmV0dXJuIHJ2CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0
cy90ZXN0X3NlcmlhbGl6ZXIucHkKaW5kZXggYjI0Nzg1NTgwMWVhLi4wMmU1MjgxNWRiZGMgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKQEAgLTEsOCArMSw1IEBACi1pbXBvcnQgc3lzCiBp
bXBvcnQgdW5pdHRlc3QKIAotaW1wb3J0IHB5dGVzdAotCiBmcm9tIC4uIGltcG9ydCBwYXJzZXIs
IHNlcmlhbGl6ZXIKIAogCkBAIC0xOTIsNyArMTg5LDYgQEAgY2xhc3MgVG9rZW5pemVyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICByIiIia2V5OiAiIyIKICIi
IikKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMubWF4dW5pY29kZSA9PSAweEZGRkYsIHJl
YXNvbj0ibmFycm93IHVuaWNvZGUiKQogICAgIGRlZiB0ZXN0X2VzY2FwZV85KHNlbGYpOgogICAg
ICAgICBzZWxmLmNvbXBhcmUoYnIiIiJrZXk6IFxVMTBGRkZGYWJjIiIiLAogICAgICAgICAgICAg
ICAgICAgICAgdSIiImtleTogXFUwMDEwRkZGRmFiYwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
cnVubmVyLnB5CmluZGV4IGUxZDllZjhiMWE5MS4uMjVhMjUxNWVmNmY4IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRy
dW5uZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0cnVubmVyLnB5CkBAIC0xLDE1ICsxLDEzIEBACi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KIGltcG9ydCBqc29u
CiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2
YWx1ZXMKIAogaW1wb3J0IHdwdHNlcnZlCiBmcm9tIHdwdHNlcnZlIGltcG9ydCBzc2x1dGlscwog
CiBmcm9tIC4gaW1wb3J0IGVudmlyb25tZW50IGFzIGVudgogZnJvbSAuIGltcG9ydCBpbnN0cnVt
ZW50cworZnJvbSAuIGltcG9ydCBtcGNvbnRleHQKIGZyb20gLiBpbXBvcnQgcHJvZHVjdHMKIGZy
b20gLiBpbXBvcnQgdGVzdGxvYWRlcgogZnJvbSAuIGltcG9ydCB3cHRjb21tYW5kbGluZQpAQCAt
MTgsNyArMTYsNiBAQCBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKIGZyb20gbW96bG9nIGltcG9ydCBj
YXB0dXJlLCBoYW5kbGVycwogZnJvbSAuZm9udCBpbXBvcnQgRm9udEluc3RhbGxlcgogZnJvbSAu
dGVzdHJ1bm5lciBpbXBvcnQgTWFuYWdlckdyb3VwCi1mcm9tIC5icm93c2Vycy5iYXNlIGltcG9y
dCBOdWxsQnJvd3NlcgogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCkBAIC02
NSw2ICs2Miw5IEBAIGRlZiBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIGRlYnVnPU5v
bmUsIHJ1bl9pbmZvX2V4dHJhcz1Ob25lLCBjaHVua2VyX2t3CiAgICAgbWFuaWZlc3RfZmlsdGVy
cyA9IFtdCiAKICAgICBpbmNsdWRlID0ga3dhcmdzWyJpbmNsdWRlIl0KKyAgICBpZiBrd2FyZ3Nb
ImluY2x1ZGVfZmlsZSJdOgorICAgICAgICBpbmNsdWRlID0gaW5jbHVkZSBvciBbXQorICAgICAg
ICBpbmNsdWRlLmV4dGVuZCh0ZXN0bG9hZGVyLnJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUoa3dhcmdz
WyJpbmNsdWRlX2ZpbGUiXSkpCiAgICAgaWYgdGVzdF9ncm91cHM6CiAgICAgICAgIGluY2x1ZGUg
PSB0ZXN0bG9hZGVyLnVwZGF0ZV9pbmNsdWRlX2Zvcl9ncm91cHModGVzdF9ncm91cHMsIGluY2x1
ZGUpCiAKQEAgLTk2LDcgKzk2LDcgQEAgZGVmIGdldF9sb2FkZXIodGVzdF9wYXRocywgcHJvZHVj
dCwgZGVidWc9Tm9uZSwgcnVuX2luZm9fZXh0cmFzPU5vbmUsIGNodW5rZXJfa3cKIGRlZiBsaXN0
X3Rlc3RfZ3JvdXBzKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICBlbnYuZG9f
ZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKIAotICAgIHJ1bl9pbmZvX2V4dHJh
cyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0o
Kiprd2FyZ3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3Nb
ImNvbmZpZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5f
aW5mbywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2lu
Zm9fZXh0cmFzLCAqKmt3YXJncykKQEAgLTExMCwxMiArMTEwLDEyIEBAIGRlZiBsaXN0X2Rpc2Fi
bGVkKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIAogICAgIHJ2ID0gW10KIAotICAg
IHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJd
LCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMu
UHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMoKiprd2Fy
Z3MpCiAKICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMs
IHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5m
b19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykKIAotICAgIGZvciB0ZXN0X3R5cGUs
IHRlc3RzIGluIGl0ZXJpdGVtcyh0ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0cyk6CisgICAgZm9y
IHRlc3RfdHlwZSwgdGVzdHMgaW4gdGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHMuaXRlbXMoKToK
ICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CiAgICAgICAgICAgICBydi5hcHBlbmQoeyJ0ZXN0
IjogdGVzdC5pZCwgInJlYXNvbiI6IHRlc3QuZGlzYWJsZWQoKX0pCiAgICAgcHJpbnQoanNvbi5k
dW1wcyhydiwgaW5kZW50PTIpKQpAQCAtMTI0LDcgKzEyNCw3IEBAIGRlZiBsaXN0X2Rpc2FibGVk
KHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIGRlZiBsaXN0X3Rlc3RzKHRlc3RfcGF0
aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dl
ciwgdGVzdF9wYXRocykKIAotICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJv
ZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAgcnVuX2lu
Zm9fZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KS5y
dW5faW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBn
ZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykK
QEAgLTEzOSw4ICsxMzksMTAgQEAgZGVmIGdldF9wYXVzZV9hZnRlcl90ZXN0KHRlc3RfbG9hZGVy
LCAqKmt3YXJncyk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYga3dhcmdz
WyJoZWFkbGVzcyJdOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIGt3YXJn
c1siZGVidWdfdGVzdCJdOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgdGVzdHMg
PSB0ZXN0X2xvYWRlci50ZXN0cwotICAgICAgICBpc19zaW5nbGVfdGVzdGhhcm5lc3MgPSAoc3Vt
KGxlbihpdGVtKSBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKHRlc3RzKSkgPT0gMSBhbmQKKyAgICAg
ICAgaXNfc2luZ2xlX3Rlc3RoYXJuZXNzID0gKHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gdGVz
dHMudmFsdWVzKCkpID09IDEgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZW4odGVzdHMuZ2V0KCJ0ZXN0aGFybmVzcyIsIFtdKSkgPT0gMSkKICAgICAgICAgaWYga3dhcmdz
WyJyZXBlYXQiXSA9PSAxIGFuZCBrd2FyZ3NbInJlcnVuIl0gPT0gMSBhbmQgaXNfc2luZ2xlX3Rl
c3RoYXJuZXNzOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTE1MSwxNSArMTUzLDE4IEBA
IGRlZiBnZXRfcGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgogZGVmIHJ1
bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAiIiJT
ZXQgdXAgdGhlIHRlc3QgZW52aXJvbm1lbnQsIGxvYWQgdGhlIGxpc3Qgb2YgdGVzdHMgdG8gYmUg
ZXhlY3V0ZWQsIGFuZAogICAgIGludm9rZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBjb2RlIHRvIGV4
ZWN1dGUgdGVzdHMiIiIKKyAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAgICAgaWYg
a3dhcmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSBpcyBOb25lOgogICAgICAgICByZWNvcmRlciA9
IGluc3RydW1lbnRzLk51bGxJbnN0cnVtZW50KCkKICAgICBlbHNlOgogICAgICAgICByZWNvcmRl
ciA9IGluc3RydW1lbnRzLkluc3RydW1lbnQoa3dhcmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSkK
LSAgICB3aXRoIHJlY29yZGVyIGFzIHJlY29yZGluZywgY2FwdHVyZS5DYXB0dXJlSU8obG9nZ2Vy
LCBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pOgorICAgIHdpdGggcmVjb3JkZXIgYXMg
cmVjb3JkaW5nLCBjYXB0dXJlLkNhcHR1cmVJTyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3Rk
aW8iXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXBfY29udGV4dD1tcCk6CiAgICAgICAgIHJlY29yZGluZy5zZXQoWyJzdGFydHVwIl0pCiAgICAg
ICAgIGVudi5kb19kZWxheWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQogCi0gICAgICAg
IHByb2R1Y3QgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Ns
cz1UcnVlKQorICAgICAgICBwcm9kdWN0ID0gcHJvZHVjdHMuUHJvZHVjdChjb25maWcsIHByb2R1
Y3QpCiAKICAgICAgICAgZW52X2V4dHJhcyA9IHByb2R1Y3QuZ2V0X2Vudl9leHRyYXMoKiprd2Fy
Z3MpCiAKQEAgLTE5NCw2ICsxOTksNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRo
cywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICBza2lwcGVkX3Rlc3RzID0gMAogICAgICAg
ICB0ZXN0X3RvdGFsID0gMAogICAgICAgICB1bmV4cGVjdGVkX3RvdGFsID0gMAorICAgICAgICB1
bmV4cGVjdGVkX3Bhc3NfdG90YWwgPSAwCiAKICAgICAgICAgaWYgbGVuKHRlc3RfbG9hZGVyLnRl
c3RfaWRzKSA9PSAwIGFuZCBrd2FyZ3NbInRlc3RfbGlzdCJdOgogICAgICAgICAgICAgbG9nZ2Vy
LmNyaXRpY2FsKCJVbmFibGUgdG8gZmluZCBhbnkgdGVzdHMgYXQgdGhlIHBhdGgocyk6IikKQEAg
LTIxOSw2ICsyMjUsNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVj
dCwgKiprd2FyZ3MpOgogICAgICAgICB3aXRoIGVudi5UZXN0RW52aXJvbm1lbnQodGVzdF9wYXRo
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3RpbWVvdXRf
bXVsdGlwbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwYXVz
ZV9hZnRlcl90ZXN0Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nb
ImRlYnVnX3Rlc3QiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1si
ZGVidWdfaW5mbyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5l
bnZfb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcs
CkBAIC0yMjksNyArMjM2LDcgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHBy
b2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB0ZXN0
X2Vudmlyb25tZW50LmVuc3VyZV9zdGFydGVkKCkKICAgICAgICAgICAgIGV4Y2VwdCBlbnYuVGVz
dEVudmlyb25tZW50RXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwo
IkVycm9yIHN0YXJ0aW5nIHRlc3QgZW52aXJvbm1lbnQ6ICVzIiAlIGUubWVzc2FnZSkKKyAgICAg
ICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkVycm9yIHN0YXJ0aW5nIHRlc3QgZW52aXJvbm1l
bnQ6ICVzIiAlIGUpCiAgICAgICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICAgICAgcmVjb3Jk
aW5nLnNldChbInN0YXJ0dXAiXSkKQEAgLTI0Nyw2ICsyNTQsNyBAQCBkZWYgcnVuX3Rlc3RzKGNv
bmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogCiAgICAgICAgICAgICAgICAg
dGVzdF9jb3VudCA9IDAKICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50ID0gMAorICAg
ICAgICAgICAgICAgIHVuZXhwZWN0ZWRfcGFzc19jb3VudCA9IDAKIAogICAgICAgICAgICAgICAg
IHRlc3RzID0gW10KICAgICAgICAgICAgICAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfbG9hZGVy
LnRlc3RfdHlwZXM6CkBAIC0yNjUsMjUgKzI3MywxOSBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywg
dGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgIGZvciB0ZXN0
X3R5cGUgaW4ga3dhcmdzWyJ0ZXN0X3R5cGVzIl06CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dl
ci5pbmZvKCJSdW5uaW5nICVzIHRlc3RzIiAlIHRlc3RfdHlwZSkKIAotICAgICAgICAgICAgICAg
ICAgICAjIFdlYkRyaXZlciB0ZXN0cyBtYXkgY3JlYXRlIGFuZCBkZXN0cm95IG11bHRpcGxlIGJy
b3dzZXIKLSAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXMgcGFydCBvZiB0aGVpciBl
eHBlY3RlZCBiZWhhdmlvci4gVGhlc2UKLSAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMg
YXJlIG1hbmFnZWQgYnkgYSBXZWJEcml2ZXIgc2VydmVyIGJpbmFyeS4gVGhpcwotICAgICAgICAg
ICAgICAgICAgICAjIG9idmlhdGVzIHRoZSBuZWVkIGZvciB3cHRydW5uZXIgdG8gcHJvdmlkZSBh
IGJyb3dzZXIsIHNvCi0gICAgICAgICAgICAgICAgICAgICMgdGhlIE51bGxCcm93c2VyIGlzIHVz
ZWQgaW4gcGxhY2Ugb2YgdGhlICJ0YXJnZXQiIGJyb3dzZXIKLSAgICAgICAgICAgICAgICAgICAg
aWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgotICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nl
cl9jbHMgPSBOdWxsQnJvd3NlcgotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJvd3Nlcl9jbHMgPSBwcm9kdWN0LmJyb3dzZXJfY2xzCisgICAgICAg
ICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9jbHModGVzdF90
eXBlKQogCi0gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRf
YnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3
YXJncyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfa3dhcmdzKGxvZ2dlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5
cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG51bV90ZXN0X2dyb3Vwcz1sZW4odGVzdF9ncm91cHMpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQogCiAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhl
Y3V0b3JfY2xhc3Nlcy5nZXQodGVzdF90eXBlKQotICAgICAgICAgICAgICAgICAgICBleGVjdXRv
cl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNh
Y2hlX21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncyA9IHByb2R1
Y3QuZ2V0X2V4ZWN1dG9yX2t3YXJncyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0X2Vudmlyb25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3
YXJncykKIApAQCAtMzM0LDEwICszMzYsMTMgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3Rf
cGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
YWlzZQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jb3VudCArPSBtYW5hZ2VyX2dyb3Vw
LnRlc3RfY291bnQoKQogICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9jb3VudCAr
PSBtYW5hZ2VyX2dyb3VwLnVuZXhwZWN0ZWRfY291bnQoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdW5leHBlY3RlZF9wYXNzX2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudW5leHBlY3RlZF9wYXNz
X2NvdW50KCkKICAgICAgICAgICAgICAgICByZWNvcmRpbmcuc2V0KFsiYWZ0ZXItZW5kIl0pCiAg
ICAgICAgICAgICAgICAgdGVzdF90b3RhbCArPSB0ZXN0X2NvdW50CiAgICAgICAgICAgICAgICAg
dW5leHBlY3RlZF90b3RhbCArPSB1bmV4cGVjdGVkX2NvdW50Ci0gICAgICAgICAgICAgICAgbG9n
Z2VyLmluZm8oIkdvdCAlaSB1bmV4cGVjdGVkIHJlc3VsdHMiICUgdW5leHBlY3RlZF9jb3VudCkK
KyAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwgKz0gdW5leHBlY3RlZF9wYXNz
X2NvdW50CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkdvdCAlaSB1bmV4cGVjdGVkIHJl
c3VsdHMsIHdpdGggJWkgdW5leHBlY3RlZCBwYXNzZXMiICUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodW5leHBlY3RlZF9jb3VudCwgdW5leHBlY3RlZF9wYXNzX2NvdW50KSkKICAgICAg
ICAgICAgICAgICBsb2dnZXIuc3VpdGVfZW5kKCkKICAgICAgICAgICAgICAgICBpZiByZXBlYXRf
dW50aWxfdW5leHBlY3RlZCBhbmQgdW5leHBlY3RlZF90b3RhbCA+IDA6CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrCkBAIC0zNTksNiArMzY0LDEzIEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0
ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgICAgIGxvZ2dlci5pbmZvKCJUb2xl
cmF0aW5nICVzIHVuZXhwZWN0ZWQgcmVzdWx0cyIgJSB1bmV4cGVjdGVkX3RvdGFsKQogICAgICAg
ICByZXR1cm4gVHJ1ZQogCisgICAgYWxsX3VuZXhwZWN0ZWRfcGFzc2VkID0gKHVuZXhwZWN0ZWRf
dG90YWwgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwg
PT0gdW5leHBlY3RlZF9wYXNzX3RvdGFsKQorICAgIGlmIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCBh
bmQgbm90IGt3YXJnc1siZmFpbF9vbl91bmV4cGVjdGVkX3Bhc3MiXToKKyAgICAgICAgbG9nZ2Vy
LmluZm8oIlRvbGVyYXRpbmcgJWkgdW5leHBlY3RlZCByZXN1bHRzIGJlY2F1c2UgdGhleSBhbGwg
UEFTUyIgJQorICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwpCisgICAg
ICAgIHJldHVybiBUcnVlCisKICAgICByZXR1cm4gdW5leHBlY3RlZF90b3RhbCA9PSAwCiAKIApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0dGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKaW5kZXggMzFiMjQ1NjEyYmUwLi4wY2Q3MmUy
ODViMDAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQpAQCAtMSw5ICsxLDkgQEAK
IGltcG9ydCBvcwogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVz
LnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVm
YXVsdGRpY3QKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIHN0cmluZ190eXBlcworZnJvbSB0
eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIFR5cGUKK2Zyb20gdXJsbGliLnBhcnNl
IGltcG9ydCB1cmxqb2luCiAKIGZyb20gLndwdG1hbmlmZXN0LnBhcnNlciBpbXBvcnQgYXRvbXMK
IApAQCAtODMsNyArODMsNyBAQCBkZWYgZ2V0X3J1bl9pbmZvKG1ldGFkYXRhX3Jvb3QsIHByb2R1
Y3QsICoqa3dhcmdzKToKICAgICByZXR1cm4gUnVuSW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0
LCAqKmt3YXJncykKIAogCi1jbGFzcyBSdW5JbmZvKGRpY3QpOgorY2xhc3MgUnVuSW5mbyhEaWN0
W3N0ciwgQW55XSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGFkYXRhX3Jvb3QsIHByb2R1
Y3QsIGRlYnVnLAogICAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb249Tm9uZSwKICAgICAg
ICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVsPU5vbmUsCkBAIC0xNTAsMjIgKzE1MCwyOCBAQCBk
ZWYgc2VydmVyX3Byb3RvY29sKG1hbmlmZXN0X2l0ZW0pOgogCiBjbGFzcyBUZXN0KG9iamVjdCk6
CiAKLSAgICByZXN1bHRfY2xzID0gTm9uZQotICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUK
LSAgICB0ZXN0X3R5cGUgPSBOb25lCisgICAgcmVzdWx0X2NscyA9IE5vbmUgICMgdHlwZTogQ2xh
c3NWYXJbVHlwZVtSZXN1bHRdXQorICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUgICMgdHlw
ZTogQ2xhc3NWYXJbVHlwZVtTdWJ0ZXN0UmVzdWx0XV0KKyAgICB0ZXN0X3R5cGUgPSBOb25lICAj
IHR5cGU6IENsYXNzVmFyW3N0cl0KIAogICAgIGRlZmF1bHRfdGltZW91dCA9IDEwICAjIHNlY29u
ZHMKICAgICBsb25nX3RpbWVvdXQgPSA2MCAgIyBzZWNvbmRzCiAKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLAot
ICAgICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgcHJvdG9jb2w9Imh0dHAi
LCBxdWljPUZhbHNlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jv
b3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAg
ICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgc3ViZG9tYWluPUZh
bHNlLAorICAgICAgICAgICAgICAgICBxdWljPUZhbHNlKToKKyAgICAgICAgc2VsZi51cmxfYmFz
ZSA9IHVybF9iYXNlCiAgICAgICAgIHNlbGYudGVzdHNfcm9vdCA9IHRlc3RzX3Jvb3QKICAgICAg
ICAgc2VsZi51cmwgPSB1cmwKICAgICAgICAgc2VsZi5faW5oZXJpdF9tZXRhZGF0YSA9IGluaGVy
aXRfbWV0YWRhdGEKICAgICAgICAgc2VsZi5fdGVzdF9tZXRhZGF0YSA9IHRlc3RfbWV0YWRhdGEK
ICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCBpZiB0aW1lb3V0IGlzIG5vdCBOb25lIGVs
c2Ugc2VsZi5kZWZhdWx0X3RpbWVvdXQKICAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotICAgICAg
ICBzZWxmLmVudmlyb25tZW50ID0geyJwcm90b2NvbCI6IHByb3RvY29sLCAicHJlZnMiOiBzZWxm
LnByZWZzLCAicXVpYyI6IHF1aWN9CisgICAgICAgIHNlbGYuc3ViZG9tYWluID0gc3ViZG9tYWlu
CisgICAgICAgIHNlbGYuZW52aXJvbm1lbnQgPSB7InVybF9iYXNlIjogdXJsX2Jhc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInByb3RvY29sIjogcHJvdG9jb2wsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInByZWZzIjogc2VsZi5wcmVmcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicXVpYyI6IHF1aWN9CiAKICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToK
ICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIFRlc3QpOgpAQCAtMTg0LDEzICsxOTAs
MTUgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmcm9t
X21hbmlmZXN0KGNscywgbWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRh
ZGF0YSwgdGVzdF9tZXRhZGF0YSk6CiAgICAgICAgIHRpbWVvdXQgPSBjbHMubG9uZ190aW1lb3V0
IGlmIG1hbmlmZXN0X2l0ZW0udGltZW91dCA9PSAibG9uZyIgZWxzZSBjbHMuZGVmYXVsdF90aW1l
b3V0Ci0gICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAorICAgICAg
ICByZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAg
bWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0
ZW0udXJsLAogICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAgICAgICAg
ICAgICAgICAgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVv
dXQsCiAgICAgICAgICAgICAgICAgICAgcGF0aD1vcy5wYXRoLmpvaW4obWFuaWZlc3RfZmlsZS50
ZXN0c19yb290LCBtYW5pZmVzdF9pdGVtLnBhdGgpLAotICAgICAgICAgICAgICAgICAgIHByb3Rv
Y29sPXNlcnZlcl9wcm90b2NvbChtYW5pZmVzdF9pdGVtKSkKKyAgICAgICAgICAgICAgICAgICBw
cm90b2NvbD1zZXJ2ZXJfcHJvdG9jb2wobWFuaWZlc3RfaXRlbSksCisgICAgICAgICAgICAgICAg
ICAgc3ViZG9tYWluPW1hbmlmZXN0X2l0ZW0uc3ViZG9tYWluKQogCiAgICAgQHByb3BlcnR5CiAg
ICAgZGVmIGlkKHNlbGYpOgpAQCAtMjk5LDcgKzMwNyw3IEBAIGNsYXNzIFRlc3Qob2JqZWN0KToK
ICAgICAgICAgcnYgPSB7fQogICAgICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKE5vbmUp
OgogICAgICAgICAgICAgdGhyZXNob2xkID0gbWV0YS5sZWFrX3RocmVzaG9sZAotICAgICAgICAg
ICAgZm9yIGtleSwgdmFsdWUgaW4gaXRlcml0ZW1zKHRocmVzaG9sZCk6CisgICAgICAgICAgICBm
b3Iga2V5LCB2YWx1ZSBpbiB0aHJlc2hvbGQuaXRlbXMoKToKICAgICAgICAgICAgICAgICBpZiBr
ZXkgbm90IGluIHJ2OgogICAgICAgICAgICAgICAgICAgICBydltrZXldID0gdmFsdWUKICAgICAg
ICAgcmV0dXJuIHJ2CkBAIC0zNDEsNyArMzQ5LDcgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogCiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgIGV4cGVjdGVkID0gbWV0YWRhdGEuZ2V0KCJleHBlY3Rl
ZCIpCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBzdHJpbmdfdHlwZXMpOgor
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgc3RyKToKICAgICAgICAgICAgICAg
ICByZXR1cm4gZXhwZWN0ZWQKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwg
bGlzdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCkBAIC0zOTMsMTEgKzQw
MSwxMSBAQCBjbGFzcyBUZXN0aGFybmVzc1Rlc3QoVGVzdCk6CiAgICAgc3VidGVzdF9yZXN1bHRf
Y2xzID0gVGVzdGhhcm5lc3NTdWJ0ZXN0UmVzdWx0CiAgICAgdGVzdF90eXBlID0gInRlc3RoYXJu
ZXNzIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9t
ZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2Us
IHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAg
ICAgICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgdGVz
dGRyaXZlcj1GYWxzZSwKLSAgICAgICAgICAgICAgICAganNzaGVsbD1GYWxzZSwgc2NyaXB0cz1O
b25lLCBxdWljPUZhbHNlKToKLSAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290
LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAg
ICAgICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wsIHF1aWMpCisgICAgICAgICAgICAgICAgIGpz
c2hlbGw9RmFsc2UsIHNjcmlwdHM9Tm9uZSwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToK
KyAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBp
bmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0aW1lb3V0LAorICAgICAgICAgICAgICAg
ICAgICAgIHBhdGgsIHByb3RvY29sLCBzdWJkb21haW4sIHF1aWMpCiAKICAgICAgICAgc2VsZi50
ZXN0ZHJpdmVyID0gdGVzdGRyaXZlcgogICAgICAgICBzZWxmLmpzc2hlbGwgPSBqc3NoZWxsCkBA
IC00MTIsNyArNDIwLDggQEAgY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICBz
Y3JpcHRfbWV0YWRhdGEgPSBtYW5pZmVzdF9pdGVtLnNjcmlwdF9tZXRhZGF0YSBvciBbXQogICAg
ICAgICBzY3JpcHRzID0gW3YgZm9yIChrLCB2KSBpbiBzY3JpcHRfbWV0YWRhdGEKICAgICAgICAg
ICAgICAgICAgICBpZiBrID09ICJzY3JpcHQiXQotICAgICAgICByZXR1cm4gY2xzKG1hbmlmZXN0
X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9maWxlLnVybF9i
YXNlLAorICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAg
ICAgICAgICAgICAgICBtYW5pZmVzdF9pdGVtLnVybCwKICAgICAgICAgICAgICAgICAgICBpbmhl
cml0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCkBAIC00MjIs
NiArNDMxLDcgQEAgY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICAgICAgICAg
ICAgIHRlc3Rkcml2ZXI9dGVzdGRyaXZlciwKICAgICAgICAgICAgICAgICAgICBqc3NoZWxsPWpz
c2hlbGwsCiAgICAgICAgICAgICAgICAgICAgc2NyaXB0cz1zY3JpcHRzLAorICAgICAgICAgICAg
ICAgICAgIHN1YmRvbWFpbj1tYW5pZmVzdF9pdGVtLnN1YmRvbWFpbiwKICAgICAgICAgICAgICAg
ICAgICBxdWljPXF1aWMpCiAKICAgICBAcHJvcGVydHkKQEAgLTQ1MiwxMSArNDYyLDExIEBAIGNs
YXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogICAgIHJlc3VsdF9jbHMgPSBSZWZ0ZXN0UmVzdWx0CiAg
ICAgdGVzdF90eXBlID0gInJlZnRlc3QiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNf
cm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2VzLAot
ICAgICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1O
b25lLCBkcGk9Tm9uZSwgZnV6enk9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLAotICAgICAgICAgICAg
ICAgICBxdWljPUZhbHNlKToKLSAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290
LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAg
ICAgICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wsIHF1aWMpCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0
YWRhdGEsIHJlZmVyZW5jZXMsCisgICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1O
b25lLCB2aWV3cG9ydF9zaXplPU5vbmUsIGRwaT1Ob25lLCBmdXp6eT1Ob25lLAorICAgICAgICAg
ICAgICAgICBwcm90b2NvbD0iaHR0cCIsIHN1YmRvbWFpbj1GYWxzZSwgcXVpYz1GYWxzZSk6Cisg
ICAgICAgIFRlc3QuX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5o
ZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgdGltZW91dCwKKyAgICAgICAgICAgICAgICAg
ICAgICBwYXRoLCBwcm90b2NvbCwgc3ViZG9tYWluLCBxdWljKQogCiAgICAgICAgIGZvciBfLCBy
ZWZfdHlwZSBpbiByZWZlcmVuY2VzOgogICAgICAgICAgICAgaWYgcmVmX3R5cGUgbm90IGluICgi
PT0iLCAiIT0iKToKQEAgLTQ4NiwxMyArNDk2LDE1IEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3Qp
OgogCiAgICAgICAgIHVybCA9IG1hbmlmZXN0X3Rlc3QudXJsCiAKLSAgICAgICAgbm9kZSA9IGNs
cyhtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3Rf
ZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jv
b3QsCiAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfdGVzdC51cmwsCiAgICAgICAgICAgICAg
ICAgICAgaW5oZXJpdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0ZXN0X21ldGFkYXRh
LAogICAgICAgICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9dGlt
ZW91dCwKICAgICAgICAgICAgICAgICAgICBwYXRoPW1hbmlmZXN0X3Rlc3QucGF0aCwKKyAgICAg
ICAgICAgICAgICAgICBzdWJkb21haW49bWFuaWZlc3RfdGVzdC5zdWJkb21haW4sCiAgICAgICAg
ICAgICAgICAgICAgcXVpYz1xdWljLAogICAgICAgICAgICAgICAgICAgICoqY2xzLmNsc19rd2Fy
Z3MobWFuaWZlc3RfdGVzdCkpCiAKQEAgLTUwNywyMCArNTE5LDIzIEBAIGNsYXNzIFJlZnRlc3RU
ZXN0KFRlc3QpOgogICAgICAgICAjIFBlciB0aGUgbG9naWMgZG9jdW1lbnRlZCBhYm92ZSwgdGhp
cyBtZWFucyB0aGF0IG5vbmUgb2YgdGhlIG1pc21hdGNoZXMgcHJvdmlkZWQgbWF0Y2gsCiAgICAg
ICAgIG1pc21hdGNoX3dhbGsgPSBOb25lCiAgICAgICAgIGlmIHJlZnNfYnlfdHlwZVsiIT0iXToK
LSAgICAgICAgICAgIG1pc21hdGNoX3dhbGsgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnRl
c3RzX3Jvb3QsCisgICAgICAgICAgICBtaXNtYXRjaF93YWxrID0gUmVmdGVzdFRlc3QobWFuaWZl
c3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVmc19ieV90eXBlWyIhPSJdWzBdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10p
CiAgICAgICAgICAgICBjbXBfcmVmID0gbWlzbWF0Y2hfd2FsawogICAgICAgICAgICAgZm9yIHJl
Zl91cmwgaW4gcmVmc19ieV90eXBlWyIhPSJdWzE6XToKLSAgICAgICAgICAgICAgICBjbXBfc2Vs
ZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAg
ICBjbXBfc2VsZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbXSkKICAgICAgICAgICAgICAgICBjbXBfcmVmLnJlZmVyZW5jZXMuYXBwZW5kKChjbXBf
c2VsZiwgIiE9IikpCi0gICAgICAgICAgICAgICAgY21wX3JlZiA9IFJlZnRlc3RUZXN0KG1hbmlm
ZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICBjbXBfcmVmID0gUmVmdGVzdFRl
c3QobWFuaWZlc3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWZfdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwK
QEAgLTUzNiw3ICs1NTEsOCBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKICAgICAgICAgICAg
ICMgRm9yIGVhY2ggPT0gcmVmLCBhZGQgYSByZWZlcmVuY2UgdG8gdGhpcyBub2RlIHdob3NlIHRh
aWwgaXMgdGhlIG1pc21hdGNoIGxpc3QuCiAgICAgICAgICAgICAjIFBlciB0aGUgbG9naWMgZG9j
dW1lbnRlZCBhYm92ZSwgdGhpcyBtZWFucyBhbnkgb25lIG9mIHRoZSBtYXRjaGVzIG11c3QgcGFz
cyBwbHVzIGFsbCB0aGUgbWlzbWF0Y2hlcy4KICAgICAgICAgICAgIGZvciByZWZfdXJsIGluIHJl
ZnNfYnlfdHlwZVsiPT0iXToKLSAgICAgICAgICAgICAgICByZWYgPSBSZWZ0ZXN0VGVzdChtYW5p
ZmVzdF9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgcmVmID0gUmVmdGVzdFRlc3Qo
bWFuaWZlc3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVmX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLApAQCAtNjA1LDEyICs2MjEsMTIg
QEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiBjbGFzcyBQcmludFJlZnRlc3RUZXN0KFJlZnRl
c3RUZXN0KToKICAgICB0ZXN0X3R5cGUgPSAicHJpbnQtcmVmdGVzdCIKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRh
dGEsIHJlZmVyZW5jZXMsCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19y
b290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMsCiAg
ICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCB2aWV3cG9ydF9zaXplPU5v
bmUsIGRwaT1Ob25lLCBmdXp6eT1Ob25lLAotICAgICAgICAgICAgICAgICBwYWdlX3Jhbmdlcz1O
b25lLCBwcm90b2NvbD0iaHR0cCIsIHF1aWM9RmFsc2UpOgotICAgICAgICBzdXBlcihQcmludFJl
ZnRlc3RUZXN0LCBzZWxmKS5fX2luaXRfXyh0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRh
dGEsIHRlc3RfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2VzPU5vbmUsIHBy
b3RvY29sPSJodHRwIiwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAgICAgICAgc3Vw
ZXIoUHJpbnRSZWZ0ZXN0VGVzdCwgc2VsZikuX19pbml0X18odXJsX2Jhc2UsIHRlc3RzX3Jvb3Qs
IHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcywgdGltZW91dCwgcGF0aCwg
dmlld3BvcnRfc2l6ZSwgZHBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdXp6eSwgcHJvdG9jb2wsIHF1aWM9cXVpYykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnV6enksIHByb3RvY29sLCBzdWJkb21haW49
c3ViZG9tYWluLCBxdWljPXF1aWMpCiAgICAgICAgIHNlbGYuX3BhZ2VfcmFuZ2VzID0gcGFnZV9y
YW5nZXMKIAogICAgIEBjbGFzc21ldGhvZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0
LnB5CmluZGV4IDcxMWFkNWFmNzlmMi4uYjgzNDc3ZTVjYTcyIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2FjY2VwdF9hbGVydC9hY2NlcHQu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2Nl
cHRfYWxlcnQvYWNjZXB0LnB5CkBAIC0xLDcgKzEsOSBAQAoraW1wb3J0IHB5dGVzdAorCiBmcm9t
IHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0cy5zdXBwb3J0
LmhlbHBlcnMgaW1wb3J0IHdhaXRfZm9yX25ld19oYW5kbGUKIGZyb20gdGVzdHMuc3VwcG9ydC5z
eW5jIGltcG9ydCBQb2xsCiAKIApAQCAtMTAsNyArMTIsNyBAQCBkZWYgYWNjZXB0X2FsZXJ0KHNl
c3Npb24pOgogICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9hbGVydC9hY2Nl
cHQiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2Vf
dmFsdWUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxl
cnQoJ0hlbGxvJyk7PC9zY3JpcHQ+IikKIAogICAgIHJlc3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNl
c3Npb24pCkBAIC0zMywyNyArMzUsNDEgQEAgZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lv
bik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCiAKIAotZGVm
IHRlc3RfYWNjZXB0X2FsZXJ0KHNlc3Npb24pOgorZGVmIHRlc3RfYWNjZXB0X2FsZXJ0KHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmFs
ZXJ0KCdIZWxsbycpOzwvc2NyaXB0PiIpCisKICAgICByZXNwb25zZSA9IGFjY2VwdF9hbGVydChz
ZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0
CisKIAotZGVmIHRlc3RfYWNjZXB0X2NvbmZpcm0oc2Vzc2lvbik6CitkZWYgdGVzdF9hY2NlcHRf
Y29uZmlybShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2Ny
aXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cuY29uZmlybSgnSGVsbG8nKTs8L3NjcmlwdD4iKQor
CiAgICAgcmVzcG9uc2UgPSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2Vz
cyhyZXNwb25zZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlv
bik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dAorCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhl
Y3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3cucmVzdWx0IikgaXMgVHJ1ZQogCiAKLWRlZiB0ZXN0
X2FjY2VwdF9wcm9tcHQoc2Vzc2lvbik6CitkZWYgdGVzdF9hY2NlcHRfcHJvbXB0KHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzY3JpcHQ+
CiAgICAgICAgICAgd2luZG93LnJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFt
ZTogJywgJ0ZlZGVyZXInKTsKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgICIiIikKKwogICAg
IHJlc3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgor
ICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gd2luZG93LnJlc3VsdCIpID09ICJGZWRlcmVyIgogCiAKQEAgLTY4LDMg
Kzg0LDI3IEBAIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfYWxlcnQoc2Vzc2lvbik6CiAKICAgICByZXNw
b25zZSA9IGFjY2VwdF9hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAg
ICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKKworZGVmIHRlc3RfYWNjZXB0X2luX3BvcHVwX3dpbmRv
dyhzZXNzaW9uLCBpbmxpbmUpOgorICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcwor
CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCisgICAgICAgIDxidXR0b24gb25jbGljaz0i
d2luZG93Lm9wZW4oJ2Fib3V0OmJsYW5rJywgJ19ibGFuaycsICd3aWR0aD01MDA7IGhlaWdodD0y
MDA7cmVzaXphYmxlPXllcycpOyI+b3BlbjwvYnV0dG9uPgorICAgICAgICAiIiIpCisgICAgYnV0
dG9uID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQorICAgIGJ1dHRvbi5j
bGljaygpCisKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxl
KHNlc3Npb24sIG9yaWdfaGFuZGxlcykKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKKyAg
ICAgICAgPHNjcmlwdD53aW5kb3cuYWxlcnQoIkhlbGxvIik8L3NjcmlwdD4KKyAgICAgICAgIiIi
KQorCisgICAgcmVzcG9uc2UgPSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKKyAgICBhc3NlcnRfc3Vj
Y2VzcyhyZXNwb25zZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2Vw
dGlvbik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQu
cHkKaW5kZXggZjA1MTUzNzkwMjYxLi4zYTE5NDMyZmM2YTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2ll
L2FkZC5weQpAQCAtMSwxMyArMSwxMyBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIGRhdGV0aW1l
IGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCiAK
IGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20g
dGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjbGVhcl9hbGxfY29va2llcwogCisKIGRlZiBh
ZGRfY29va2llKHNlc3Npb24sIGNvb2tpZSk6CiAgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0
LnNlbmQoCiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2Nvb2tpZSIuZm9y
bWF0KCoqdmFycyhzZXNzaW9uKSksCkBAIC01NCw2ICs1NCw0MyBAQCBkZWYgdGVzdF9ub19icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgK
KyAgICAicGFnZSIsCisgICAgWworICAgICAgICAiYWJvdXQ6YmxhbmsiLAorICAgICAgICAiYmxv
Yjpmb28vYmFyIiwKKyAgICAgICAgImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgsPHA+Zm9v
PC9wPiIsCisgICAgICAgICJmaWxlOi8vL2Zvby9iYXIiLAorICAgICAgICAiZnRwOi8vZXhhbXBs
ZS5vcmciLAorICAgICAgICAiamF2YXNjcmlwdDpmb28iLAorICAgICAgICAid3M6Ly9leGFtcGxl
Lm9yZyIsCisgICAgICAgICJ3c3M6Ly9leGFtcGxlLm9yZyIsCisgICAgXSwKKyAgICBpZHM9Wwor
ICAgICAgICAiYWJvdXQiLAorICAgICAgICAiYmxvYiIsCisgICAgICAgICJkYXRhIiwKKyAgICAg
ICAgImZpbGUiLAorICAgICAgICAiZnRwIiwKKyAgICAgICAgImphdmFzY3JpcHQiLAorICAgICAg
ICAid2Vic29ja2V0IiwKKyAgICAgICAgInNlY3VyZSB3ZWJzb2NrZXQiLAorICAgIF0sCispCitk
ZWYgdGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lKHNlc3Npb24sIHBhZ2UpOgorICAgIG5l
d19jb29raWUgPSB7CisgICAgICAgICJuYW1lIjogImhlbGxvIiwKKyAgICAgICAgInZhbHVlIjog
IndvcmxkIiwKKyAgICAgICAgImRvbWFpbiI6IHBhZ2UsCisgICAgICAgICJwYXRoIjogIi8iLAor
ICAgICAgICAiaHR0cE9ubHkiOiBGYWxzZSwKKyAgICAgICAgInNlY3VyZSI6IEZhbHNlCisgICAg
fQorCisgICAgcmVzdWx0ID0gYWRkX2Nvb2tpZShzZXNzaW9uLCBuZXdfY29va2llKQorICAgIGFz
c2VydF9lcnJvcihyZXN1bHQsICJpbnZhbGlkIGNvb2tpZSBkb21haW4iKQorCisKIGRlZiB0ZXN0
X2FkZF9kb21haW5fY29va2llKHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZyk6CiAgICAgbmV3
X2Nvb2tpZSA9IHsKICAgICAgICAgIm5hbWUiOiAiaGVsbG8iLApAQCAtNzIsMTEgKzEwOSwxMSBA
QCBkZWYgdGVzdF9hZGRfZG9tYWluX2Nvb2tpZShzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcp
OgogCiAgICAgY29va2llID0gc2Vzc2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0ICJk
b21haW4iIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0s
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCBzdHIp
CiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFt
ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5z
dGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJ2YWx1ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImhl
bGxvIgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gIndvcmxkIgpAQCAtMTAyLDExICsx
MzksMTEgQEAgZGVmIHRlc3RfYWRkX2Nvb2tpZV9mb3JfaXAoc2Vzc2lvbiwgdXJsLCBzZXJ2ZXJf
Y29uZmlnLCBjb25maWd1cmF0aW9uKToKIAogICAgIGNvb2tpZSA9IHNlc3Npb24uY29va2llcygi
aGVsbG8iKQogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAiZG9tYWluIiBpbiBjb29r
aWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCB0ZXh0X3R5cGUpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgc3RyKQogCiAgICAgYXNzZXJ0
IGNvb2tpZVsibmFtZSJdID09ICJoZWxsbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09
ICJ3b3JsZCIKQEAgLTEzMSw5ICsxNjgsOSBAQCBkZWYgdGVzdF9hZGRfbm9uX3Nlc3Npb25fY29v
a2llKHNlc3Npb24sIHVybCk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxv
IikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNv
b2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJu
YW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5j
ZShjb29raWVbInZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgImV4cGlyeSIgaW4gY29va2llCiAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJleHBpcnkiXSwgaW50KQogCkBAIC0xNTYsOSAr
MTkzLDkgQEAgZGVmIHRlc3RfYWRkX3Nlc3Npb25fY29va2llKHNlc3Npb24sIHVybCk6CiAKICAg
ICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGlu
IGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUp
CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQg
InZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0s
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikK
ICAgICBpZiAiZXhwaXJ5IiBpbiBjb29raWU6CiAgICAgICAgIGFzc2VydCBjb29raWUuZ2V0KCJl
eHBpcnkiKSBpcyBOb25lCiAKQEAgLTE4MSwxMSArMjE4LDExIEBAIGRlZiB0ZXN0X2FkZF9zZXNz
aW9uX2Nvb2tpZV93aXRoX2xlYWRpbmdfZG90X2NoYXJhY3Rlcl9pbl9kb21haW4oc2Vzc2lvbiwg
dXJsLCBzCiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3Nl
cnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJd
LCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikK
ICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZh
bHVlIl0sIHN0cikKICAgICBhc3NlcnQgImRvbWFpbiIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlz
aW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsiZG9tYWluIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9
PSAiaGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAid29ybGQiCkBAIC0yMDks
MTEgKzI0NiwxMSBAQCBkZWYgdGVzdF9hZGRfY29va2llX3dpdGhfdmFsaWRfc2FtZXNpdGVfZmxh
ZyhzZXNzaW9uLCB1cmwsIHNhbWVfc2l0ZSk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tp
ZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQg
aXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgInNhbWVTaXRlIiBp
biBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRf
dHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAog
ICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tpZVsi
dmFsdWUiXSA9PSAid29ybGQiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2JhY2svYmFjay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvYmFjay9iYWNrLnB5CmluZGV4IDljYTUyZThmMjIzZS4uODZh
ZDIyNzhhYjM5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2JhY2svYmFjay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2JhY2svYmFjay5weQpAQCAtMSw0ICsxLDYgQEAKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQoraW1wb3J0IHB5dGVzdAorZnJvbSB3ZWJkcml2
ZXIgaW1wb3J0IGVycm9yCisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtNyw3ICs5LDcgQEAgZGVmIGJhY2soc2Vz
c2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2JhY2siLmZvcm1h
dCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vz
c2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+IikKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPHA+IikKIApAQCAtMzEsNyArMzMsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19oaXN0b3J5
KHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0X2Rh
dGFfdXJscyhzZXNzaW9uKToKK2RlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHRlc3RfcGFnZXMgPSBbCiAgICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAg
aW5saW5lKCI8cCBpZD0yPiIpLApAQCAtNDYsNyArNDgsNyBAQCBkZWYgdGVzdF9kYXRhX3VybHMo
c2Vzc2lvbik6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRlc3RfcGFnZXNbMF0KIAogCi1k
ZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlz
c2VkX2JlZm9yZXVubG9hZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHVybF9iZWZvcmV1bmxvYWQg
PSBpbmxpbmUoIiIiCiAgICAgICA8aW5wdXQgdHlwZT0idGV4dCI+CiAgICAgICA8c2NyaXB0PgpA
QCAtODgsNyArOTAsNyBAQCBkZWYgdGVzdF9mcmFnbWVudHMoc2Vzc2lvbiwgdXJsKToKICAgICBh
c3NlcnQgc2Vzc2lvbi51cmwgPT0gdGVzdF9wYWdlc1swXQogCiAKLWRlZiB0ZXN0X2hpc3Rvcnlf
cHVzaHN0YXRlKHNlc3Npb24sIHVybCk6CitkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHB1c2hzdGF0ZV9wYWdlID0gaW5saW5lKCIiIgogICAgICAgPHNj
cmlwdD4KICAgICAgICAgZnVuY3Rpb24gcHVzaFN0YXRlKCkgewpAQCAtMTA5LDMgKzExMSw0MiBA
QCBkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgogCiAgICAgYXNzZXJ0
IHNlc3Npb24udXJsID09IHB1c2hzdGF0ZV9wYWdlCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0
ZV9zY3JpcHQoInJldHVybiBoaXN0b3J5LnN0YXRlOyIpIGlzIE5vbmUKKworCitkZWYgdGVzdF9y
ZW1vdmVkX2lmcmFtZShzZXNzaW9uLCB1cmwsIGlubGluZSk6CisgICAgcGFnZSA9IGlubGluZSgi
PHA+Zm9vIikKKworICAgIHNlc3Npb24udXJsID0gcGFnZQorICAgIHNlc3Npb24udXJsID0gdXJs
KCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sIikK
KworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxz
ZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHJlc3BvbnNlID0g
YmFjayhzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0
IHNlc3Npb24udXJsID09IHBhZ2UKKworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMg
bm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFi
aWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29y
aWdpbihzZXNzaW9uLCB1cmwpOgorICAgIGJhc2VfcGF0aCA9ICgiL3dlYmRyaXZlci90ZXN0cy9z
dXBwb3J0L2h0bWwvc3ViZnJhbWUuaHRtbCIgKworICAgICAgICAgICAgICAgICAiP3BpcGU9aGVh
ZGVyKENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5LHNhbWUtb3JpZ2luIikKKyAgICBmaXJzdF9w
YWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBzIikKKyAgICBzZWNvbmRfcGFnZSA9
IHVybChiYXNlX3BhdGgsIHByb3RvY29sPSJodHRwcyIsIGRvbWFpbj0iYWx0IikKKworICAgIHNl
c3Npb24udXJsID0gZmlyc3RfcGFnZQorICAgIHNlc3Npb24udXJsID0gc2Vjb25kX3BhZ2UKKwor
ICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQorCisgICAg
cmVzcG9uc2UgPSBiYWNrKHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisK
KyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gZmlyc3RfcGFnZQorCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKGVycm9yLlN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgICAgIGVs
ZW0uY2xpY2soKQorICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZh
bHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9iYWNrL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvYmFjay91c2VyX3Byb21wdHMucHkKaW5kZXggNzEyMWY3YzZiMmE2Li45
ZDA0ZjBmNGFiMTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvYmFjay91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iYWNrL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICsz
LDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGJhY2soc2Vzc2lv
bik6CkBAIC0xMiw3ICsxMSw3IEBAIGRlZiBiYWNrKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIHBhZ2VzKHNlc3Npb24pOgorZGVmIHBhZ2VzKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgcGFnZXMgPSBbCiAgICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5saW5l
KCI8cCBpZD0yPiIpLApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL19faW5pdF9f
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQx
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2JpZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvYmlkaS9uZXdfc2Vzc2lvbi9jb25uZWN0LnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzU3ZGEzMWJhODYyCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25l
d19zZXNzaW9uL2Nvbm5lY3QucHkKQEAgLTAsMCArMSwzNCBAQAoraW1wb3J0IHB5dGVzdAoraW1w
b3J0IGFzeW5jaW8KK2ltcG9ydCB3ZWJzb2NrZXRzCitpbXBvcnQgd2ViZHJpdmVyCisKKyMgY2xh
c3NpYyBzZXNzaW9uIHRvIGVuYWJsZSBiaWRpIGNhcGFiaWxpdHkgbWFudWFsbHkKKyMgSW50ZW5k
ZWQgdG8gYmUgdGhlIGZpcnN0IHRlc3QgaW4gdGhpcyBmaWxlCitAcHl0ZXN0Lm1hcmsuYXN5bmNp
bworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7IndlYlNvY2tldFVybCI6IFRydWV9KQorYXN5
bmMgZGVmIHRlc3Rfd2Vic29ja2V0X3VybF9jb25uZWN0KHNlc3Npb24pOgorICAgIHdlYnNvY2tl
dF91cmwgPSBzZXNzaW9uLmNhcGFiaWxpdGllc1sid2ViU29ja2V0VXJsIl0KKyAgICBhc3luYyB3
aXRoIHdlYnNvY2tldHMuY29ubmVjdCh3ZWJzb2NrZXRfdXJsKSBhcyB3ZWJzb2NrZXQ6CisgICAg
ICAgIGF3YWl0IHdlYnNvY2tldC5zZW5kKCJIZWxsbyB3b3JsZCEiKQorCisjIHRlc3QgYmlkaV9z
ZXNzaW9uIHNlbmQKKyMgdXNpbmcgYmlkaV9zZXNzaW9uIGlzIHRoZSByZWNvbW1lbmRlZCB3YXkg
dG8gdGVzdCBiaWRpCitAcHl0ZXN0Lm1hcmsuYXN5bmNpbworYXN5bmMgZGVmIHRlc3RfYmlkaV9z
ZXNzaW9uX3NlbmQoYmlkaV9zZXNzaW9uKToKKyAgICBhd2FpdCBiaWRpX3Nlc3Npb24uc2VuZF9j
b21tYW5kKCJ0ZXN0LnRlc3QiLCB7fSkKKworIyBiaWRpIHNlc3Npb24gZm9sbG93aW5nIGEgYmlk
aSBzZXNzaW9uIHdpdGggYSBkaWZmZXJlbnQgY2FwYWJpbGl0aWVzCisjIHRvIHRlc3Qgc2Vzc2lv
biByZWNyZWF0aW9uCitAcHl0ZXN0Lm1hcmsuYXN5bmNpbworQHB5dGVzdC5tYXJrLmNhcGFiaWxp
dGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2FzeW5jIGRlZiB0ZXN0X2JpZGlf
c2Vzc2lvbl93aXRoX2RpZmZlcmVudF9jYXBhYmlsaXR5KGJpZGlfc2Vzc2lvbik6CisgICAgYXdh
aXQgYmlkaV9zZXNzaW9uLnNlbmRfY29tbWFuZCgidGVzdC50ZXN0Iiwge30pCisKKyMgY2xhc3Np
YyBzZXNzaW9uIGZvbGxvd2luZyBhIGJpZGkgc2Vzc2lvbiB0byB0ZXN0IHNlc3Npb24KKyMgcmVj
cmVhdGlvbgorIyBJbnRlbmRlZCB0byBiZSB0aGUgbGFzdCB0ZXN0IGluIHRoaXMgZmlsZSB0byBt
YWtlIHN1cmUKKyMgY2xhc3NpYyBzZXNzaW9uIGlzIG5vdCBpbXBhY3RlZCBieSBiaWRpIHRlc3Rz
CitAcHl0ZXN0Lm1hcmsuYXN5bmNpbworZGVmIHRlc3RfY2xhc3NpY19hZnRlcl9iaWRpX3Nlc3Np
b24oc2Vzc2lvbik6CisgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHNlc3Npb24sIHdlYmRyaXZl
ci5iaWRpLkJpZGlTZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Nsb3NlX3dpbmRvdy9jbG9zZS5weQppbmRl
eCA1M2FmNTczMGY4M2YuLjdiMzgyZmE5YmJjYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cv
Y2xvc2UucHkKQEAgLTIsNyArMiw2IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyIGlt
cG9ydCBlcnJvcgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGNsb3NlKHNlc3Npb24pOgpAQCAtNDYsNyArNDUsNyBAQCBkZWYgdGVzdF9j
bG9zZV9icm93c2luZ19jb250ZXh0KHNlc3Npb24pOgogICAgIGFzc2VydCBuZXdfaGFuZGxlIG5v
dCBpbiBoYW5kbGVzCiAKIAotZGVmIHRlc3RfY2xvc2VfYnJvd3NpbmdfY29udGV4dF93aXRoX2Rp
c21pc3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNlc3Npb24pOgorZGVmIHRlc3RfY2xvc2VfYnJv
d3NpbmdfY29udGV4dF93aXRoX2Rpc21pc3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNlc3Npb24s
IGlubGluZSk6CiAgICAgb3JpZ2luYWxfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcwogCiAgICAg
bmV3X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCkBAIC04MSwzICs4MCwyMyBAQCBkZWYg
dGVzdF9jbG9zZV9sYXN0X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbik6CiAKICAgICAjIFdpdGgg
bm8gbW9yZSBvcGVuIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0cywgdGhlIHNlc3Npb24gaXMg
Y2xvc2VkLgogICAgIHNlc3Npb24uc2Vzc2lvbl9pZCA9IE5vbmUKKworCitkZWYgdGVzdF9lbGVt
ZW50X3VzYWdlX2FmdGVyX2Nsb3NpbmdfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBpbmxpbmUp
OgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0nYSc+Zm9vIikKKyAgICBhID0gc2Vz
c2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKKyAgICBmaXJzdCA9IHNlc3Npb24ud2luZG93
X2hhbmRsZQorCisgICAgc2Vjb25kID0gc2Vzc2lvbi5uZXdfd2luZG93KHR5cGVfaGludD0idGFi
IikKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZWNvbmQKKworICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8cCBpZD0nYic+b3RoZXIiKQorICAgIGIgPSBzZXNzaW9uLmZpbmQuY3NzKCJw
IiwgYWxsPUZhbHNlKQorCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gZmlyc3QKKyAgICBy
ZXNwb25zZSA9IGNsb3NlKHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisg
ICAgYXNzZXJ0IGxlbihzZXNzaW9uLmhhbmRsZXMpID09IDEKKworICAgIHNlc3Npb24ud2luZG93
X2hhbmRsZSA9IHNlY29uZAorICAgIGFzc2VydCBiLmF0dHJpYnV0ZSgiaWQiKSA9PSAiYiIKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVs
ZXRlX3Nlc3Npb24vZGVsZXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9kZWxldGVfc2Vzc2lvbi9kZWxldGUucHkKaW5kZXggZDBiNGQ3OTYzMDhlLi5h
MzAzMmNjMTM0NzUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVsZXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVsZXRlLnB5CkBA
IC0yLDcgKzIsNiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9t
IHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZGVsZXRlX3Nlc3Np
b24oc2Vzc2lvbik6CkBAIC0xOSw3ICsxOCw3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFs
dWUoc2Vzc2lvbik6CiAgICAgc2Vzc2lvbi5lbmQoKQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9i
ZWZvcmV1bmxvYWRfcHJvbXB0KHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVu
bG9hZF9wcm9tcHQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxl
cnQvZGlzbWlzcy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZGlzbWlzc19hbGVydC9kaXNtaXNzLnB5CmluZGV4IGRhNjViYWMzODhkZi4uYTI4ZGVjNzY4
NzUwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weQpAQCAtMSw3ICsx
LDkgQEAKK2ltcG9ydCBweXRlc3QKKwogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3Vj
aEFsZXJ0RXhjZXB0aW9uCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCB3YWl0X2Zvcl9uZXdf
aGFuZGxlCiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTEwLDcg
KzEyLDcgQEAgZGVmIGRpc21pc3NfYWxlcnQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNl
c3Npb24ve3Nlc3Npb25faWR9L2FsZXJ0L2Rpc21pc3MiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikp
KQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0
ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+IikKIAog
ICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQpAQCAtMzMsMjggKzM1LDQ1IEBA
IGRlZiB0ZXN0X25vX3VzZXJfcHJvbXB0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggYWxlcnQiKQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfYWxlcnQoc2Vzc2lv
bik6CitkZWYgdGVzdF9kaXNtaXNzX2FsZXJ0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwvc2NyaXB0PiIp
CisKICAgICByZXNwb25zZSA9IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3Vj
Y2VzcyhyZXNwb25zZSkKIAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2Vw
dGlvbik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dAorCiAKLWRlZiB0ZXN0X2Rpc21pc3Nf
Y29uZmlybShzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21pc3NfY29uZmlybShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3
aW5kb3cuY29uZmlybSgnSGVsbG8nKTs8L3NjcmlwdD4iKQorCiAgICAgcmVzcG9uc2UgPSBkaXNt
aXNzX2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9u
LmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4g
d2luZG93LnJlc3VsdDsiKSBpcyBGYWxzZQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfcHJvbXB0KHNl
c3Npb24pOgotICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQg
PSB3aW5kb3cucHJvbXB0KCdFbnRlciBZb3VyIE5hbWU6ICcsICdGZWRlcmVyJyk7PC9zY3JpcHQ+
IikKK2RlZiB0ZXN0X2Rpc21pc3NfcHJvbXB0KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiCisgICAgICAgIDxzY3JpcHQ+d2luZG93LnJlc3VsdCA9IHdpbmRv
dy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4KKyAgICAg
ICAgIiIiKQorCiAgICAgcmVzcG9uc2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Npb24pCiAgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxl
cnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LnJlc3VsdCIpIGlzIE5vbmUKIAog
CiBkZWYgdGVzdF91bmV4cGVjdGVkX2FsZXJ0KHNlc3Npb24pOgogICAgIHNlc3Npb24uZXhlY3V0
ZV9zY3JpcHQoInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGFsZXJ0KCdIZWxsbycpOyB9LCAxMDAp
OyIpCisKICAgICB3YWl0ID0gUG9sbCgKICAgICAgICAgc2Vzc2lvbiwKICAgICAgICAgdGltZW91
dD01LApAQCAtNjQsMyArODMsMjcgQEAgZGVmIHRlc3RfdW5leHBlY3RlZF9hbGVydChzZXNzaW9u
KToKIAogICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhj
ZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKKworZGVmIHRlc3RfZGlzbWlz
c19pbl9wb3B1cF93aW5kb3coc2Vzc2lvbiwgaW5saW5lKToKKyAgICBvcmlnX2hhbmRsZXMgPSBz
ZXNzaW9uLmhhbmRsZXMKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgorICAgICAgICA8
YnV0dG9uIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsICdfYmxhbmsnLCAnd2lk
dGg9NTAwOyBoZWlnaHQ9MjAwO3Jlc2l6YWJsZT15ZXMnKTsiPm9wZW48L2J1dHRvbj4KKyAgICAg
ICAgIiIiKQorICAgIGJ1dHRvbiA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxz
ZSkKKyAgICBidXR0b24uY2xpY2soKQorCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2Fp
dF9mb3JfbmV3X2hhbmRsZShzZXNzaW9uLCBvcmlnX2hhbmRsZXMpCisgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCisgICAgICAgIDxzY3JpcHQ+d2luZG93LmFsZXJ0KCJIZWxsbyIpPC9zY3Jp
cHQ+CisgICAgICAgICIiIikKKworICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9u
KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfY2xlYXIvY2xlYXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xlYXIvY2xlYXIucHkKaW5kZXggMDE4OWMzOGMyNzcwLi5iNjVmNDQz
YWE3NTggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9jbGVhci9jbGVhci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvY2xlYXIucHkKQEAgLTExLDcgKzEx
LDYgQEAgZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfaW5f
ZXZlbnRzLAogICAgIGFzc2VydF9zdWNjZXNzLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogQHB5dGVzdC5maXh0dXJlCkBAIC0zNyw3ICszNiw3IEBAIGRl
ZiB0ZXh0X2ZpbGUodG1wZGlyX2ZhY3RvcnkpOgogICAgIHJldHVybiBmaAogCiAKLWRlZiB0ZXN0
X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3Zh
bHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4i
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApA
QCAtNDgsMTAgKzQ3LDE3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6
CiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5k
b3cpOgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQorICAgIHJlc3BvbnNl
ID0gZWxlbWVudF9jbGVhcihzZXNzaW9uLCBlbGVtZW50KQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9
IGNsb3NlZF93aW5kb3cKICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxl
bWVudCkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAg
ICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9
IGVsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxlbWVudCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQo
c2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vz
c2lvbikKQEAgLTYwLDcgKzY2LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
d2luZG93IikKIAogCi1kZWYgdGVzdF9jb25uZWN0ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0
ZXN0X2Nvbm5lY3RlZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1
dCIsIGFsbD1GYWxzZSkKIApAQCAtNjksNyArNzUsNyBAQCBkZWYgdGVzdF9jb25uZWN0ZWRfZWxl
bWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJzdGFsZSBlbGVtZW50
IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6
CitkZWYgdGVzdF9wb2ludGVyX2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgc3R5bGU9J21hcmdpbi1sZWZ0OiAtMTAwMHB4JyB2
YWx1ZT1mb29iYXI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAKQEAgLTc3LDcgKzgzLDcgQEAgZGVmIHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFi
bGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50
ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbik6
CitkZWYgdGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGlucHV0IHZhbHVlPWZvb2Jhcj4KICAg
ICAgICAgPGRpdj48L2Rpdj4KQEAgLTExNCw3ICsxMjAsNyBAQCBkZWYgdGVzdF9rZXlib2FyZF9p
bnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGltZSIs
ICIxOTo0OCIsICIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJtb250aCIsICIyMDE3
LTExIiwgIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoIndlZWsiLCAiMjAxNy1XNTIi
LCAiIildKQotZGVmIHRlc3RfaW5wdXQoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJh
Y2tlZF9ldmVudHMsIHR5cGUsIHZhbHVlLCBkZWZhdWx0KToKK2RlZiB0ZXN0X2lucHV0KHNlc3Np
b24sIGlubGluZSwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHR5cGUsIHZh
bHVlLCBkZWZhdWx0KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9JXMg
dmFsdWU9JyVzJz4iICUgKHR5cGUsIHZhbHVlKSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50
LCB0cmFja2VkX2V2ZW50cykKQEAgLTE0NCw3ICsxNTAsNyBAQCBkZWYgdGVzdF9pbnB1dChzZXNz
aW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgdHlwZSwgdmFsdWUsIGRl
ZmF1bAogICAgICAgICAgICAgICAgICAgICAgICAgICAibW9udGgiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAid2VlayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIl0pCi1k
ZWYgdGVzdF9pbnB1dF9kaXNhYmxlZChzZXNzaW9uLCB0eXBlKToKK2RlZiB0ZXN0X2lucHV0X2Rp
c2FibGVkKHNlc3Npb24sIGlubGluZSwgdHlwZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxpbnB1dCB0eXBlPSVzIGRpc2FibGVkPiIgJSB0eXBlKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTY5LDcgKzE3NSw3IEBAIGRlZiB0
ZXN0X2lucHV0X2Rpc2FibGVkKHNlc3Npb24sIHR5cGUpOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAibW9udGgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAid2VlayIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJmaWxlIl0pCi1kZWYgdGVzdF9pbnB1dF9yZWFkb25seShzZXNz
aW9uLCB0eXBlKToKK2RlZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIGlubGluZSwgdHlw
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzIHJlYWRvbmx5PiIg
JSB0eXBlKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKIApAQCAtMTc3LDcgKzE4Myw3IEBAIGRlZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24s
IHR5cGUpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0
ZSIpCiAKIAotZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywg
dHJhY2tlZF9ldmVudHMpOgorZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwgaW5saW5lLCBhZGRf
ZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjx0ZXh0YXJlYT5mb29iYXI8L3RleHRhcmVhPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoInRleHRhcmVhIiwgYWxsPUZhbHNlKQogICAgIGFkZF9ldmVudF9saXN0ZW5lcnMo
ZWxlbWVudCwgdHJhY2tlZF9ldmVudHMpCkBAIC0xODksNyArMTk1LDcgQEAgZGVmIHRlc3RfdGV4
dGFyZWEoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAg
IGFzc2VydF9pbl9ldmVudHMoc2Vzc2lvbiwgWyJmb2N1cyIsICJjaGFuZ2UiLCAiYmx1ciJdKQog
CiAKLWRlZiB0ZXN0X3RleHRhcmVhX2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFy
ZWFfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PHRleHRhcmVhIGRpc2FibGVkPjwvdGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygidGV4dGFyZWEiLCBhbGw9RmFsc2UpCiAKQEAgLTE5Nyw3ICsyMDMsNyBAQCBkZWYg
dGVzdF90ZXh0YXJlYV9kaXNhYmxlZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0ZXN0X3RleHRhcmVhX3JlYWRv
bmx5KHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFyZWFfcmVhZG9ubHkoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRleHRhcmVhIHJlYWRvbmx5PjwvdGV4dGFy
ZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBhbGw9RmFs
c2UpCiAKQEAgLTIwNSw3ICsyMTEsNyBAQCBkZWYgdGVzdF90ZXh0YXJlYV9yZWFkb25seShzZXNz
aW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUi
KQogCiAKLWRlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2RlZiB0ZXN0
X2lucHV0X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGVsZW1lbnQuc2VuZF9rZXlzKHN0cih0ZXh0
X2ZpbGUpKQpAQCAtMjE1LDcgKzIyMSw3IEBAIGRlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vzc2lvbiwg
dGV4dF9maWxlKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgog
CiAKLWRlZiB0ZXN0X2lucHV0X2ZpbGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2Rl
ZiB0ZXN0X2lucHV0X2ZpbGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIG11bHRpcGxlPiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGVs
ZW1lbnQuc2VuZF9rZXlzKHN0cih0ZXh0X2ZpbGUpKQpAQCAtMjI2LDcgKzIzMiw3IEBAIGRlZiB0
ZXN0X2lucHV0X2ZpbGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKICAgICBhc3NlcnQg
ZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X3NlbGVjdChzZXNz
aW9uKToKK2RlZiB0ZXN0X3NlbGVjdChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAgIDxvcHRpb24+Zm9vCkBA
IC0yNDEsNyArMjQ3LDcgQEAgZGVmIHRlc3Rfc2VsZWN0KHNlc3Npb24pOgogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRlc3RfYnV0
dG9uKHNlc3Npb24pOgorZGVmIHRlc3RfYnV0dG9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxidXR0b24+PC9idXR0b24+IikKICAgICBidXR0b24gPSBzZXNz
aW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAKQEAgLTI0OSw3ICsyNTUsNyBAQCBk
ZWYgdGVzdF9idXR0b24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52
YWxpZCBlbGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVzdF9idXR0b25fd2l0aF9zdWJ0cmVlKHNl
c3Npb24pOgorZGVmIHRlc3RfYnV0dG9uX3dpdGhfc3VidHJlZShzZXNzaW9uLCBpbmxpbmUpOgog
ICAgICIiIgogICAgIEVsZW1lbnRzIGluc2lkZSBidXR0b24gZWxlbWVudHMgYXJlIGludGVyYWN0
YWJsZS4KICAgICAiIiIKQEAgLTI2NCw3ICsyNzAsNyBAQCBkZWYgdGVzdF9idXR0b25fd2l0aF9z
dWJ0cmVlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0
ZXN0X2NvbnRlbnRlZGl0YWJsZShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2Vk
X2V2ZW50cyk6CitkZWYgdGVzdF9jb250ZW50ZWRpdGFibGUoc2Vzc2lvbiwgaW5saW5lLCBhZGRf
ZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxwIGNvbnRlbnRlZGl0YWJsZT5mb29iYXI8L3A+IikKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKICAgICBhZGRfZXZlbnRfbGlzdGVuZXJzKGVsZW1l
bnQsIHRyYWNrZWRfZXZlbnRzKQpAQCAtMjc3LDcgKzI4Myw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRl
ZGl0YWJsZShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAg
ICAgYXNzZXJ0X2VsZW1lbnRfaGFzX2ZvY3VzKHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBkb2N1bWVudC5ib2R5IikpCiAKIAotZGVmIHRlc3RfZGVzaWdubW9kZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2Rlc2lnbm1vZGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiZm9vYmFyIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYm9keSIsIGFs
bD1GYWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgiaW5uZXJIVE1MIikgPT0gImZv
b2JhciIKQEAgLTI4OSw3ICsyOTUsNyBAQCBkZWYgdGVzdF9kZXNpZ25tb2RlKHNlc3Npb24pOgog
ICAgIGFzc2VydF9lbGVtZW50X2hhc19mb2N1cyhzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1
cm4gZG9jdW1lbnQuYm9keSIpKQogCiAKLWRlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9mb2N1
c193aGVuX2VtcHR5KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRz
KToKK2RlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9mb2N1c193aGVuX2VtcHR5KHNlc3Npb24s
IGlubGluZSwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0
cmFja2VkX2V2ZW50cykKQEAgLTMxMyw3ICszMTksNyBAQCBkZWYgdGVzdF9yZXNldHRhYmxlX2Vs
ZW1lbnRfZm9jdXNfd2hlbl9lbXB0eShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFj
awogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRpbWUiLCAiZm9vIiksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgibW9udGgiLCAiZm9vIiksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgid2VlayIsICJmb28iKV0pCi1kZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRfZG9lc19u
b3Rfc2F0aXNmeV92YWxpZGF0aW9uX2NvbnN0cmFpbnRzKHNlc3Npb24sIHR5cGUsIGludmFsaWRf
dmFsdWUpOgorZGVmIHRlc3RfcmVzZXR0YWJsZV9lbGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFs
aWRhdGlvbl9jb25zdHJhaW50cyhzZXNzaW9uLCBpbmxpbmUsIHR5cGUsIGludmFsaWRfdmFsdWUp
OgogICAgICIiIgogICAgIFNvbWUgVUFzIGFsbG93IGludmFsaWQgaW5wdXQgdG8gY2VydGFpbiB0
eXBlcyBvZiBjb25zdHJhaW5lZAogICAgIGZvcm0gY29udHJvbHMuICBGb3IgZXhhbXBsZSwgR2Vj
a28gYWxsb3dzIG5vbi12YWxpZCBjaGFyYWN0ZXJzCkBAIC0zNTAsNyArMzU2LDcgQEAgZGVmIHRl
c3RfcmVzZXR0YWJsZV9lbGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFsaWRhdGlvbl9jb25zdHJh
aW50cyhzZXNzaW9uLCB0eXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1Ym1pdCIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJidXR0b24iLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaW1hZ2UiXSkKLWRlZiB0ZXN0X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlw
ZSk6CitkZWYgdGVzdF9ub25fZWRpdGFibGVfaW5wdXRzKHNlc3Npb24sIGlubGluZSwgdHlwZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzPiIgJSB0eXBlKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzU4
LDcgKzM2NCw3IEBAIGRlZiB0ZXN0X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlwZSk6
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0YXRlIikKIAog
Ci1kZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24pOgorZGVmIHRlc3Rfc2Nyb2xsX2lu
dG9fdmlldyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgog
ICAgICAgICA8aW5wdXQgdmFsdWU9Zm9vYmFyPgogICAgICAgICA8ZGl2IHN0eWxlPSdoZWlnaHQ6
IDIwMHZoOyB3aWR0aDogNTAwMHZoJz4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIv
dXNlcl9wcm9tcHRzLnB5CmluZGV4IGNmYjg1MGUwOGQ1YS4uN2E4NTY0YTY4NGE3IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xlYXIvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2
IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsZWFy
KHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZWxlbWVudF9jbGVhcihz
ZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQi
LCBhbGw9RmFsc2UpCkBAIC01Niw3ICs1NSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xpY2svYnViYmxpbmcucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcucHkKaW5kZXggYTA2OWE1YTVkZjNkLi43NjIw
ZWMzMjI0ZmMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZWxlbWVudF9jbGljay9idWJibGluZy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcucHkKQEAg
LTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1
Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBl
bGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1l
bnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1l
bnQuaWQpKQogCiAKLWRlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNz
aW9uKToKK2RlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c3R5bGU+CiAg
ICAgICAgIGJvZHkgKiB7CkBAIC00NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1
YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9uKToKICAgICBhc3NlcnQgdGhyZWUgaW4gY2xpY2tzCiAK
IAotZGVmIHRlc3Rfc3Bpbl9ldmVudF9sb29wKHNlc3Npb24pOgorZGVmIHRlc3Rfc3Bpbl9ldmVu
dF9sb29wKHNlc3Npb24sIGlubGluZSk6CiAgICAgIiIiCiAgICAgV2FpdCB1bnRpbCB0aGUgdXNl
ciBhZ2VudCBldmVudCBsb29wIGhhcyBzcHVuIGVub3VnaCB0aW1lcyB0bwogICAgIHByb2Nlc3Mg
dGhlIERPTSBldmVudHMgZ2VuZXJhdGVkIGJ5IGNsaWNraW5nLgpAQCAtODYsNyArODUsNyBAQCBk
ZWYgdGVzdF9zcGluX2V2ZW50X2xvb3Aoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHRocmVlIGluIGRl
bGF5ZWRfY2xpY2tzCiAKIAotZGVmIHRlc3RfZWxlbWVudF9kaXNhcHBlYXJzX2R1cmluZ19jbGlj
ayhzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfZGlzYXBwZWFyc19kdXJpbmdfY2xpY2soc2Vz
c2lvbiwgaW5saW5lKToKICAgICAiIiIKICAgICBXaGVuIGFuIGVsZW1lbnQgaW4gdGhlIGV2ZW50
IGJ1YmJsaW5nIG9yZGVyIGRpc2FwcGVhcnMgKGl0cyBDU1MKICAgICBkaXNwbGF5IHN0eWxlIGlz
IHNldCB0byAibm9uZSIpIGR1cmluZyBhIGNsaWNrLCBHZWNrbyBhbmQgQmxpbmsKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9j
bGljay9jZW50ZXJfcG9pbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2VudGVyX3BvaW50LnB5CmluZGV4IGRhNjBhMDg3Mjc3
ZC4uZWYwYzlhN2ZlMjdkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2VudGVyX3BvaW50LnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jZW50
ZXJfcG9pbnQucHkKQEAgLTIsNyArMiw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20g
dGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjZW50ZXJfcG9pbnQKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24s
IGVsZW1lbnQpOgpAQCAtMTIsNyArMTEsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBl
bGVtZW50KToKICAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHNx
dWFyZShzaXplKToKK2RlZiBzcXVhcmUoaW5saW5lLCBzaXplKToKICAgICByZXR1cm4gaW5saW5l
KCIiIgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGJvZHkge3sgbWFyZ2luOiAwIH19CkBAIC00
MSw4ICs0MCw4IEBAIGRlZiBhc3NlcnRfb25lX2NsaWNrKHNlc3Npb24pOgogICAgIHJldHVybiB0
dXBsZShjbGlja3NbMF0pCiAKIAotZGVmIHRlc3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uKToK
LSAgICBzZXNzaW9uLnVybCA9IHNxdWFyZSg0NDQpCitkZWYgdGVzdF9lbnRpcmVseV9pbl92aWV3
KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoaW5saW5lLCA0NDQp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiN0YXJnZXQiLCBhbGw9RmFsc2UpCiAK
ICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKQEAgLTUzLDgg
KzUyLDggQEAgZGVmIHRlc3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uKToKIAogCiBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInNpemUiLCByYW5nZSgxLCAxMSkpCi1kZWYgdGVzdF9jc3NfcGl4
ZWxfcm91bmRpbmcoc2Vzc2lvbiwgc2l6ZSk6Ci0gICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoc2l6
ZSkKK2RlZiB0ZXN0X2Nzc19waXhlbF9yb3VuZGluZyhzZXNzaW9uLCBpbmxpbmUsIHNpemUpOgor
ICAgIHNlc3Npb24udXJsID0gc3F1YXJlKGlubGluZSwgc2l6ZSkKICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiI3RhcmdldCIsIGFsbD1GYWxzZSkKICAgICBleHBlY3RlZF9jbGlja19w
b2ludCA9IGNlbnRlcl9wb2ludChlbGVtZW50KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2sucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2sv
Y2xpY2sucHkKaW5kZXggM2E1ZDczNzIxNmQ5Li5iMWIxMDE2MmU0ZDYgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9j
bGljay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xpY2svY2xpY2sucHkKQEAgLTEsNyArMSw2IEBACiBmcm9tIHdlYmRyaXZlciBp
bXBvcnQgRWxlbWVudAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMSw3
ICsxMCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAgICAg
ICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3Zh
bHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5mb28iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogCkBAIC0yMiwxMCArMjEsMTcgQEAgZGVm
IHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKIAogZGVmIHRlc3Rfbm9fdG9wX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgZWxlbWVudCA9IEVs
ZW1lbnQoImZvbyIsIHNlc3Npb24pCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Np
b24sIGVsZW1lbnQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQogCisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJl
c3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRs
ZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9u
LCBlbGVtZW50KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIp
CisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUp
OgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2V2
ZW50cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9jbGljay9ldmVudHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi5lM2QzMmMxYmNiNDQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZXZlbnRzLnB5CkBAIC0wLDAg
KzEsMzMgQEAKK2Zyb20gd2ViZHJpdmVyIGltcG9ydCBFbGVtZW50Citmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxw
ZXJzIGltcG9ydCBmaWx0ZXJfZGljdAorCitkZWYgZ2V0X2V2ZW50cyhzZXNzaW9uKToKKyAgICAi
IiJSZXR1cm4gbGlzdCBvZiBtb3VzZSBldmVudHMgcmVjb3JkZWQgaW4gdGhlIGZpeHR1cmUuIiIi
CisgICAgcmV0dXJuIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhbGxFdmVudHMuZXZl
bnRzOyIpIG9yIFtdCisKK2RlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgorICAg
IHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiUE9TVCIsICJzZXNzaW9u
L3tzZXNzaW9uX2lkfS9lbGVtZW50L3tlbGVtZW50X2lkfS9jbGljayIuZm9ybWF0KAorICAgICAg
ICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50
X2lkPWVsZW1lbnQuaWQpKQorCitkZWYgdGVzdF9ldmVudF9tb3VzZW1vdmUoc2Vzc2lvbiwgdXJs
KToKKyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNr
L3N1cHBvcnQvdGVzdF9jbGlja193ZHNwZWMuaHRtbCIpCisKKyAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygnI291dGVyJywgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9j
bGljayhzZXNzaW9uLCBlbGVtZW50KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisg
ICAgZXZlbnRzID0gZ2V0X2V2ZW50cyhzZXNzaW9uKQorICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9
PSA0CisKKyAgICBleHBlY3RlZCA9IFsKKyAgICAgICAgeyJ0eXBlIjogIm1vdXNlbW92ZSIsICJi
dXR0b25zIjogMCwgImJ1dHRvbiI6IDB9LAorICAgICAgICB7InR5cGUiOiAibW91c2Vkb3duIiwg
ImJ1dHRvbnMiOiAxLCAiYnV0dG9uIjogMH0sCisgICAgICAgIHsidHlwZSI6ICJtb3VzZXVwIiwg
ImJ1dHRvbnMiOiAwLCAiYnV0dG9uIjogMH0sCisgICAgICAgIHsidHlwZSI6ICJjbGljayIsICJi
dXR0b25zIjogMCwgImJ1dHRvbiI6IDB9LAorICAgIF0KKyAgICBmaWx0ZXJlZF9ldmVudHMgPSBb
ZmlsdGVyX2RpY3QoZSwgZXhwZWN0ZWRbMF0pIGZvciBlIGluIGV2ZW50c10KKworICAgIGFzc2Vy
dCBleHBlY3RlZCA9PSBmaWx0ZXJlZF9ldmVudHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9j
bGljay9maWxlX3VwbG9hZC5weQppbmRleCBjZDViYjQzNDIwNGQuLjczODMyZDBmODVhZSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL2ZpbGVfdXBsb2FkLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5weQpAQCAtMSw1ICsx
LDUgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKKwog
CiBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICByZXR1cm4gc2Vzc2lv
bi50cmFuc3BvcnQuc2VuZCgKQEAgLTgsNyArOCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Np
b24sIGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1k
ZWYgdGVzdF9maWxlX3VwbG9hZF9zdGF0ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2ZpbGVfdXBsb2Fk
X3N0YXRlKHNlc3Npb24saW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHR5cGU9ZmlsZT4iKQogCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9pbnRlcmFjdGFi
aWxpdHkucHkKaW5kZXggNzQ2M2Q0OTNlM2Q4Li5kNTU4NjBjODc0NmYgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9p
bnRlcmFjdGFiaWxpdHkucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weQpAQCAtMSw3ICsxLDYg
QEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAt
MTEsNyArMTAsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAg
ICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25l
KHNlc3Npb24pOgorZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGJ1dHRvbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+Zm9v
YmFyPC9idXR0b24+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24i
LCBhbGw9RmFsc2UpCiAKQEAgLTE5LDcgKzE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNl
c3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0
YWJsZSIpCiAKIAotZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVz
dF92aXNpYmlsaXR5X2hpZGRlbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCIiIjxidXR0b24gc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+Zm9vYmFyPC9idXR0
b24+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFs
c2UpCiAKQEAgLTI3LDcgKzI2LDcgQEAgZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lv
bik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxl
IikKIAogCi1kZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbiBoaWRkZW4+Zm9v
YmFyPC9idXR0b24+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwg
YWxsPUZhbHNlKQogCkBAIC0zNSw3ICszNCw3IEBAIGRlZiB0ZXN0X2hpZGRlbihzZXNzaW9uKToK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQog
CiAKLWRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzYWJsZWQoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8YnV0dG9uIGRpc2FibGVk
PmZvb2JhcjwvYnV0dG9uPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0
dG9uIiwgYWxsPUZhbHNlKQogCkBAIC00NCw3ICs0Myw3IEBAIGRlZiB0ZXN0X2Rpc2FibGVkKHNl
c3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidHJhbnNmb3JtIiwgWyJ0cmFu
c2xhdGUoLTEwMHB4LCAtMTAwcHgpIiwgInJvdGF0ZSg1MGRlZykiXSkKLWRlZiB0ZXN0X2VsZW1l
bnRfbm90X2ludGVyYWN0YWJsZV9jc3NfdHJhbnNmb3JtKHNlc3Npb24sIHRyYW5zZm9ybSk6Citk
ZWYgdGVzdF9lbGVtZW50X25vdF9pbnRlcmFjdGFibGVfY3NzX3RyYW5zZm9ybShzZXNzaW9uLCBp
bmxpbmUsIHRyYW5zZm9ybSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAg
IDxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7IHRyYW5zZm9ybToge3RyYW5zZm9ybX07Ij4KQEAgLTU1LDcg
KzU0LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX2Nzc190cmFuc2Zvcm0o
c2Vzc2lvbiwgdHJhbnNmb3JtKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50
IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJs
ZV9vdXRfb2ZfdmlldyhzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJs
ZV9vdXRfb2ZfdmlldyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGlucHV0IHsKQEAgLTczLDcgKzcyLDcgQEAg
ZGVmIHRlc3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX291dF9vZl92aWV3KHNlc3Npb24pOgog
CiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFnX25hbWUiLCBbImRpdiIsICJzcGFuIl0p
Ci1kZWYgdGVzdF96ZXJvX3NpemVkX2VsZW1lbnQoc2Vzc2lvbiwgdGFnX25hbWUpOgorZGVmIHRl
c3RfemVyb19zaXplZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdGFnX25hbWUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8ezB9PjwvezB9PiIuZm9ybWF0KHRhZ19uYW1lKSkKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWdfbmFtZSwgYWxsPUZhbHNlKQogCkBAIC04MSw3
ICs4MCw3IEBAIGRlZiB0ZXN0X3plcm9fc2l6ZWRfZWxlbWVudChzZXNzaW9uLCB0YWdfbmFtZSk6
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikK
IAogCi1kZWYgdGVzdF9lbGVtZW50X2ludGVyY2VwdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxl
bWVudF9pbnRlcmNlcHRlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCIiIgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGRpdiB7CkBAIC0xMDIsMTQgKzEwMSwx
NCBAQCBkZWYgdGVzdF9lbGVtZW50X2ludGVyY2VwdGVkKHNlc3Npb24pOgogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgImVsZW1lbnQgY2xpY2sgaW50ZXJjZXB0ZWQiKQogCiAKLWRlZiB0ZXN0
X2VsZW1lbnRfaW50ZXJjZXB0ZWRfbm9fcG9pbnRlcl9ldmVudHMoc2Vzc2lvbik6CitkZWYgdGVz
dF9lbGVtZW50X2ludGVyY2VwdGVkX25vX3BvaW50ZXJfZXZlbnRzKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPVJv
Z2VyIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICByZXNwb25zZSA9IGVsZW1lbnRf
Y2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVt
ZW50IGNsaWNrIGludGVyY2VwdGVkIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X25vdF92aXNpYmxl
X292ZXJmbG93X2hpZGRlbihzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X3Zpc2libGVf
b3ZlcmZsb3dfaGlkZGVuKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiCiAgICAgICAgIDxzdHlsZT4KICAgICAgICAgZGl2IHsKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZp
Z2F0ZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9jbGljay9uYXZpZ2F0ZS5weQppbmRleCBkNzc2YTFlYjg0ZTYuLjQ5MjcxODI5MmExNyAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
bGVtZW50X2NsaWNrL25hdmlnYXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZpZ2F0ZS5weQpAQCAtMSw1ICsxLDkg
QEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24KKwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20g
dGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCB3YWl0X2Zvcl9uZXdfaGFuZGxlCiBmcm9tIHRl
c3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTEwLDcgKzE0LDcgQEAgZGVmIGVs
ZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVs
ZW1lbnQuaWQpKQogCiAKLWRlZiB0ZXN0X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29u
ZmlnKToKK2RlZiB0ZXN0X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxp
bmUpOgogICAgIGxpbmsgPSAiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQv
aW5wdXQuaHRtbCIKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj17dXJsfT4xMjM0
NTY8L2E+Ii5mb3JtYXQodXJsPWxpbmspKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJhIiwgYWxsPUZhbHNlKQpAQCAtMjIsNyArMjYsNyBAQCBkZWYgdGVzdF9udW1iZXJzX2xpbmso
c2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09ICJodHRw
Oi8ve2hvc3R9Ontwb3J0fXt1cmx9Ii5mb3JtYXQoaG9zdD1ob3N0LCBwb3J0PXBvcnQsIHVybD1s
aW5rKQogCiAKLWRlZiB0ZXN0X211bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmln
KToKK2RlZiB0ZXN0X211bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxp
bmUpOgogICAgIGxpbmsgPSAiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQv
aW5wdXQuaHRtbCIKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHAgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgd2lkdGg6IDUwcHg7Ij4KQEAgLTM3LDcgKzQx
LDcgQEAgZGVmIHRlc3RfbXVsdGlfbGluZV9saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgog
ICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSAiaHR0cDovL3tob3N0fTp7cG9ydH17dXJsfSIuZm9y
bWF0KGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCB1cmw9bGluaykKIAogCi1kZWYgdGVzdF9saW5rX3Vu
bG9hZF9ldmVudChzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2xpbmtfdW5sb2Fk
X2V2ZW50KHNlc3Npb24sIHNlcnZlcl9jb25maWcsIGlubGluZSk6CiAgICAgbGluayA9ICIvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC9pbnB1dC5odG1sIgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keSBvbnVubG9hZD0iY2hlY2tVbmxvYWQo
KSI+CkBAIC02OCw3ICs3Miw3IEBAIGRlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2ZW50KHNlc3Npb24s
IHNlcnZlcl9jb25maWcpOgogICAgIGFzc2VydCByZXNwb25zZSBpcyBUcnVlCiAKIAotZGVmIHRl
c3RfbGlua19oYXNoKHNlc3Npb24pOgorZGVmIHRlc3RfbGlua19oYXNoKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgaWQgPSAiYW5jaG9yIgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAg
ICAgICA8YSBocmVmPSIje3VybH0iPmFhYWE8L2E+CkBAIC05MywzNCArOTcsOTQgQEAgZGVmIHRl
c3RfbGlua19oYXNoKHNlc3Npb24pOgogICAgICAgICAgICAgIiIiLCBhcmdzPShlbGVtZW50LCkp
IGlzIFRydWUKIAogCi1kZWYgdGVzdF9saW5rX29wZW5fdGFyZ2V0X2luX25ld193aW5kb3coc2Vz
c2lvbiwgdXJsKToKLSAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgidGFyZ2V0IiwgWworICAgICIiLAorICAgICJfYmxhbmsiLAorICAg
ICJfcGFyZW50IiwKKyAgICAiX3NlbGYiLAorICAgICJfdG9wIiwKK10pCitkZWYgdGVzdF9saW5r
X2Zyb21fdG9wbGV2ZWxfY29udGV4dF93aXRoX3RhcmdldChzZXNzaW9uLCBpbmxpbmUsIHRhcmdl
dCk6CisgICAgdGFyZ2V0X3BhZ2UgPSBpbmxpbmUoIjxwIGlkPSdmb28nPmZvbzwvcD4iKQogCi0g
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCi0gICAgICAgIDxhIGhyZWY9Int9IiB0YXJnZXQ9
Il9ibGFuayI+T3BlbiBpbiBuZXcgd2luZG93PC9hPgotICAgICIiIi5mb3JtYXQoaW5saW5lKCI8
cCBpZD1mb28iKSkpCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9J3t9JyB0YXJn
ZXQ9J3t9Jz5jbGljazwvYT4iLmZvcm1hdCh0YXJnZXRfcGFnZSwgdGFyZ2V0KSkKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKIAorICAgIG9yaWdfaGFuZGxl
cyA9IHNlc3Npb24uaGFuZGxlcworCiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Np
b24sIGVsZW1lbnQpCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKLSAgICBkZWYgZmlu
ZF9uZXdfaGFuZGxlKHNlc3Npb24pOgotICAgICAgICBuZXdfaGFuZGxlcyA9IGxpc3Qoc2V0KHNl
c3Npb24uaGFuZGxlcykgLSBzZXQob3JpZ19oYW5kbGVzKSkKLSAgICAgICAgaWYgbmV3X2hhbmRs
ZXMgYW5kIGxlbihuZXdfaGFuZGxlcykgPT0gMToKLSAgICAgICAgICAgIHJldHVybiBuZXdfaGFu
ZGxlc1swXQotICAgICAgICByZXR1cm4gTm9uZQorICAgIGlmIHRhcmdldCA9PSAiX2JsYW5rIjoK
KyAgICAgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNz
aW9uLCBvcmlnX2hhbmRsZXMpCiAKICAgICB3YWl0ID0gUG9sbCgKICAgICAgICAgc2Vzc2lvbiwK
ICAgICAgICAgdGltZW91dD01LAotICAgICAgICBtZXNzYWdlPSJObyBuZXcgd2luZG93IGhhcyBi
ZWVuIG9wZW5lZCIpCi0gICAgbmV3X2hhbmRsZSA9IHdhaXQudW50aWwoZmluZF9uZXdfaGFuZGxl
KQorICAgICAgICBpZ25vcmVkX2V4Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAg
ICAgICAgbWVzc2FnZT0iRXhwZWN0ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAg
IHdhaXQudW50aWwobGFtYmRhIHM6IHMuZmluZC5jc3MoIiNmb28iKSkKKworCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInRhcmdldCIsIFsKKyAgICAiIiwKKyAgICAiX2JsYW5rIiwKKyAgICAi
X3BhcmVudCIsCisgICAgIl9zZWxmIiwKKyAgICAiX3RvcCIsCitdKQorZGVmIHRlc3RfbGlua19m
cm9tX25lc3RlZF9jb250ZXh0X3dpdGhfdGFyZ2V0KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCB0
YXJnZXQpOgorICAgIHRhcmdldF9wYWdlID0gaW5saW5lKCI8cCBpZD0nZm9vJz5mb288L3A+IikK
KworICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPGEgaHJlZj0ne30nIHRhcmdldD0n
e30nPmNsaWNrPC9hPiIuZm9ybWF0KHRhcmdldF9wYWdlLCB0YXJnZXQpKSkKKyAgICBmcmFtZSA9
IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRj
aF9mcmFtZShmcmFtZSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIuZm9ybWF0
KHRhcmdldCksIGFsbD1GYWxzZSkKIAotICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19o
YW5kbGUKLSAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIikKKyAgICBvcmlnX2hhbmRsZXMgPSBz
ZXNzaW9uLmhhbmRsZXMKKworICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBl
bGVtZW50KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgaWYgdGFyZ2V0ID09
ICJfYmxhbmsiOgorICAgICAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdf
aGFuZGxlKHNlc3Npb24sIG9yaWdfaGFuZGxlcykKKworICAgICMgV2l0aCB0aGUgY3VycmVudCBi
cm93c2luZyBjb250ZXh0IHJlbW92ZWQgdGhlIG5hdmlnYXRpb24gc2hvdWxkCisgICAgIyBub3Qg
dGltZW91dC4gU3dpdGNoIHRvIHRoZSB0YXJnZXQgY29udGV4dCwgYW5kIHdhaXQgdW50aWwgdGhl
IGV4cGVjdGVkCisgICAgIyBlbGVtZW50IGlzIGF2YWlsYWJsZS4KKyAgICBpZiB0YXJnZXQgPT0g
Il9wYXJlbnQiOgorICAgICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZSgicGFyZW50IikKKyAgICBl
bGlmIHRhcmdldCA9PSAiX3RvcCI6CisgICAgICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKE5vbmUp
CisKKyAgICB3YWl0ID0gUG9sbCgKKyAgICAgICAgc2Vzc2lvbiwKKyAgICAgICAgdGltZW91dD01
LAorICAgICAgICBpZ25vcmVkX2V4Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAg
ICAgICAgbWVzc2FnZT0iRXhwZWN0ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAg
IHdhaXQudW50aWwobGFtYmRhIHM6IHMuZmluZC5jc3MoIiNmb28iKSkKKworCisjIENhcGFiaWxp
dHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlOgor
IyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODg0
NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVl
fSkKK2RlZiB0ZXN0X2xpbmtfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgdXJsKToKKyAg
ICBiYXNlX3BhdGggPSAoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1YmZyYW1lLmh0
bWwiICsKKyAgICAgICAgICAgICAgICAgIj9waXBlPWhlYWRlcihDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSxzYW1lLW9yaWdpbiIpCisgICAgdGFyZ2V0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBw
cm90b2NvbD0iaHR0cHMiLCBkb21haW49ImFsdCIpCisKKyAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGEgaHJlZj0ne30nPmNsaWNrIG1lPC9hPiIuZm9ybWF0KHRhcmdldF9wYWdlKSwgcHJvdG9j
b2w9Imh0dHBzIikKKyAgICBsaW5rID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkK
KworICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBsaW5rKQorICAgIGFzc2Vy
dF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRhcmdldF9w
YWdlCisKKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQogCiAKLWRl
ZiB0ZXN0X2xpbmtfY2xvc2VzX3dpbmRvdyhzZXNzaW9uKToKK2RlZiB0ZXN0X2xpbmtfY2xvc2Vz
X3dpbmRvdyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIG5ld19oYW5kbGUgPSBzZXNzaW9uLm5ld193
aW5kb3coKQogICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKIApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2Nyb2xsX2ludG9fdmlldy5weQppbmRleCA0
YjAyNmU5ODZhMjEuLmMyZGM2NDg1Mjg2ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkKQEAgLTIsNyArMiw3IEBAIGltcG9ydCBweXRl
c3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjZW50ZXJfcG9p
bnQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorCiAKIGRlZiBlbGVt
ZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9y
dC5zZW5kKApAQCAtMTgsNyArMTgsNyBAQCBkZWYgYXNzZXJ0X29uZV9jbGljayhzZXNzaW9uKToK
ICAgICByZXR1cm4gdHVwbGUoY2xpY2tzWzBdKQogCiAKLWRlZiB0ZXN0X3Njcm9sbF9pbnRvX3Zp
ZXcoc2Vzc2lvbik6CitkZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dCB0eXBlPXRleHQg
dmFsdWU9RmVkZXJlcgogICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAw
dmg7IHRvcDogNTAwdmgiPiIiIikKQEAgLTM4LDcgKzM4LDcgQEAgZGVmIHRlc3Rfc2Nyb2xsX2lu
dG9fdmlldyhzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm9mZnNldCIs
IHJhbmdlKDksIDAsIC0xKSkKLWRlZiB0ZXN0X3BhcnRpYWxseV92aXNpYmxlX2RvZXNfbm90X3Nj
cm9sbChzZXNzaW9uLCBvZmZzZXQpOgorZGVmIHRlc3RfcGFydGlhbGx5X3Zpc2libGVfZG9lc19u
b3Rfc2Nyb2xsKHNlc3Npb24sIG9mZnNldCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiIiIKICAgICAgICAgPHN0eWxlPgogICAgICAgICBib2R5IHt7CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2sv
c2VsZWN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
bGVtZW50X2NsaWNrL3NlbGVjdC5weQppbmRleCBkY2Y5MmU2NDU4OTQuLjYyZDQwNzU1YjU5YiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
bGVtZW50X2NsaWNrL3NlbGVjdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2VsZWN0LnB5CkBAIC0xLDcgKzEsNCBAQAot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRlc3RfY2xp
Y2tfb3B0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfb3B0aW9uKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAg
ICA8b3B0aW9uPmZpcnN0CkBAIC0xNyw3ICsxNCw3IEBAIGRlZiB0ZXN0X2NsaWNrX29wdGlvbihz
ZXNzaW9uKToKICAgICBhc3NlcnQgbm90IG9wdGlvbnNbMF0uc2VsZWN0ZWQKIAogCi1kZWYgdGVz
dF9jbGlja19tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9jbGlja19tdWx0aXBs
ZV9vcHRpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIK
ICAgICAgIDxzZWxlY3QgbXVsdGlwbGU+CiAgICAgICAgIDxvcHRpb24+Zmlyc3QKQEAgLTMzLDcg
KzMwLDcgQEAgZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFz
c2VydCBub3Qgb3B0aW9uc1sxXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X2NsaWNrX3ByZXNlbGVj
dGVkX29wdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX29wdGlvbihz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNl
bGVjdD4KICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtNTMsNyArNTAsNyBAQCBkZWYgdGVzdF9j
bGlja19wcmVzZWxlY3RlZF9vcHRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBvcHRpb25z
WzFdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0
aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9u
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8
c2VsZWN0IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC03Myw3ICs3MCw3IEBA
IGRlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToKICAg
ICBhc3NlcnQgbm90IG9wdGlvbnNbMV0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19kZXNl
bGVjdHNfb3RoZXJzKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfZGVzZWxlY3RzX290aGVycyhz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNl
bGVjdD4KICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtOTIsNyArODksNyBAQCBkZWYgdGVzdF9j
bGlja19kZXNlbGVjdHNfb3RoZXJzKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzBdLnNl
bGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3Ro
ZXJzKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rf
b3RoZXJzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAg
ICAgICA8c2VsZWN0IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xMTIsNyAr
MTA5LDcgQEAgZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJz
KHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzJdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3Rf
Y2xpY2tfc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRf
b3B0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAg
ICAgICA8c2VsZWN0PgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xMzAsNyArMTI3LDcgQEAg
ZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRp
b25zWzFdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0
aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2Vs
ZWN0IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xNTIsNyArMTQ5LDcgQEAg
ZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFz
c2VydCBub3Qgb3B0aW9uc1sxXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X291dF9vZl92aWV3X2Ry
b3Bkb3duKHNlc3Npb24pOgorZGVmIHRlc3Rfb3V0X29mX3ZpZXdfZHJvcGRvd24oc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAg
ICAgICAgIDxvcHRpb24+MQpAQCAtMTgyLDcgKzE3OSw3IEBAIGRlZiB0ZXN0X291dF9vZl92aWV3
X2Ryb3Bkb3duKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzE0XS5zZWxlY3RlZAogCiAK
LWRlZiB0ZXN0X291dF9vZl92aWV3X211bHRpcGxlKHNlc3Npb24pOgorZGVmIHRlc3Rfb3V0X29m
X3ZpZXdfbXVsdGlwbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgIDxzZWxlY3QgbXVsdGlwbGU+CiAgICAgICAgIDxvcHRpb24+MQpAQCAtMjEz
LDcgKzIxMCw3IEBAIGRlZiB0ZXN0X291dF9vZl92aWV3X211bHRpcGxlKHNlc3Npb24pOgogICAg
IGFzc2VydCBsYXN0X29wdGlvbi5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X29wdGlvbl9kaXNhYmxl
ZChzZXNzaW9uKToKK2RlZiB0ZXN0X29wdGlvbl9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAg
IDxvcHRpb24gZGlzYWJsZWQ+Zm9vCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zaGFk
b3dfZG9tLnB5CmluZGV4IGI1MmYyNzQyOWMxOS4uNDU0OTNiNzMwZDY5IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2sv
c2hhZG93X2RvbS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weQpAQCAtMSw2ICsxLDUgQEAKLWZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNz
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGltcG9ydCBweXRlc3QK
K2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9z
dWNjZXNzCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMCw3
ICs5LDggQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAg
ICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiBnZXRfY2hlY2tib3hfZG9tKCk6CitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiBnZXRfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0dXJu
IGlubGluZSgiIiIKICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLWNoZWNrYm94
LWVsZW1lbnQgewpAQCAtMzIsOCArMzIsOCBAQCBkZWYgZ2V0X2NoZWNrYm94X2RvbSgpOgogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xpY2tfb24iLCBbImN1c3RvbV9lbGVtZW50Iiwg
ImNoZWNrYm94X2VsZW1lbnQiXSkKLWRlZiB0ZXN0X3NoYWRvd19lbGVtZW50X2NsaWNrKHNlc3Np
b24sIGNsaWNrX29uKToKLSAgICBzZXNzaW9uLnVybCA9IGdldF9jaGVja2JveF9kb20oKQorZGVm
IHRlc3Rfc2hhZG93X2VsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZ2V0X2NoZWNrYm94X2RvbSwgY2xp
Y2tfb24pOgorICAgIHNlc3Npb24udXJsID0gZ2V0X2NoZWNrYm94X2RvbQogICAgIGN1c3RvbV9l
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQiLCBhbGw9
RmFsc2UpCiAgICAgY2hlY2tib3hfZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21f
ZWxlbWVudCwpKQpAQCAtNDcsNyArNDcsOCBAQCBkZWYgdGVzdF9zaGFkb3dfZWxlbWVudF9jbGlj
ayhzZXNzaW9uLCBjbGlja19vbik6CiAgICAgYXNzZXJ0IGlzX3Bvc3RfY2hlY2tlZCA9PSBUcnVl
CiAKIAotZGVmIGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpOgorQHB5dGVzdC5maXh0
dXJlCitkZWYgZ2V0X25lc3RlZF9zaGFkb3dfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0
dXJuIGlubGluZSgiIiIKICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLW5lc3Rp
bmctZWxlbWVudCB7CkBAIC04Myw4ICs4NCw4IEBAIGRlZiBnZXRfbmVzdGVkX3NoYWRvd19jaGVj
a2JveF9kb20oKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNsaWNrX29uIiwgWyJv
dXRlcl9lbGVtZW50IiwgImlubmVyX2VsZW1lbnQiLCAiY2hlY2tib3hfZWxlbWVudCJdKQotZGVm
IHRlc3RfbmVzdGVkX3NoYWRvd19lbGVtZW50X2NsaWNrKHNlc3Npb24sIGNsaWNrX29uKToKLSAg
ICBzZXNzaW9uLnVybCA9IGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpCitkZWYgdGVz
dF9uZXN0ZWRfc2hhZG93X2VsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZ2V0X25lc3RlZF9zaGFkb3df
Y2hlY2tib3hfZG9tLCBjbGlja19vbik6CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfbmVzdGVkX3No
YWRvd19jaGVja2JveF9kb20KICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
Y3VzdG9tLW5lc3RpbmctZWxlbWVudCIsIGFsbD1GYWxzZSkKICAgICBpbm5lcl9lbGVtZW50ID0g
c2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2N1c3RvbS1jaGVja2JveC1lbGVtZW50JykiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KG91dGVyX2VsZW1lbnQsKSkKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9zdGFsZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9jbGljay9zdGFsZS5weQppbmRleCBjZDI0ZGQ3MDYwM2QuLjhkMmFlMzQ4
ZWY0ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X2NsaWNrL3N0YWxlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdGFsZS5weQpAQCAtMSw1ICsxLDQg
QEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNr
KHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vz
c2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAK
LWRlZiB0ZXN0X2lzX3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfaXNfc3RhbGUoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbj5mb288L2J1dHRvbj4i
KQogICAgIGJ1dHRvbiA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbj5iYXI8L2J1dHRvbj4iKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2Ns
aWNrL3N1cHBvcnQvdGVzdF9jbGlja193ZHNwZWMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdXBwb3J0L3Rlc3RfY2xpY2tf
d2RzcGVjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hOTQ1
MWVjODJiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC90ZXN0X2NsaWNrX3dkc3BlYy5o
dG1sCkBAIC0wLDAgKzEsMTAwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRm
LTg+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IEVsZW1lbnQgQ2xpY2s8L3RpdGxl
PgorICAgIDxzdHlsZT4KKyAgICAgIGRpdiB7IHBhZGRpbmc6MHB4OyBtYXJnaW46IDBweDsgfQor
ICAgICAgI3RyYWNrUG9pbnRlciB7IHBvc2l0aW9uOiBmaXhlZDsgfQorICAgICAgI3Jlc3VsdENv
bnRhaW5lciB7IHdpZHRoOiA2MDBweDsgaGVpZ2h0OiA2MHB4OyB9CisgICAgICAuYXJlYSB7IHdp
ZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOyB9CisgICAg
ICAuYmxvY2sgeyB3aWR0aDogNXB4OyBoZWlnaHQ6IDVweDsgYm9yZGVyOiBzb2xpZCAxcHggcmVk
OyB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICAidXNlIHN0cmljdCI7Cisg
ICAgICAgIHZhciBlbHMgPSB7fTsKKyAgICAgICAgdmFyIGFsbEV2ZW50cyA9IHsgZXZlbnRzOiBb
XSB9OworICAgICAgICBmdW5jdGlvbiBkaXNwbGF5TWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRzIikuaW5uZXJIVE1MID0gIjxwPiIg
KyBtZXNzYWdlICsgIjwvcD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5k
TWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZXZlbnRzIikuaW5uZXJIVE1MICs9ICI8cD4iICsgbWVzc2FnZSArICI8L3A+IjsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIHJlY29yZFBvaW50ZXJFdmVudChldmVudCkgeworICAgICAg
ICAgIGlmIChldmVudC50eXBlID09PSAiY29udGV4dG1lbnUiKSB7CisgICAgICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgIH0KKyAgICAgICAgICBhbGxFdmVudHMuZXZl
bnRzLnB1c2goeworICAgICAgICAgICAgInR5cGUiOiBldmVudC50eXBlLAorICAgICAgICAgICAg
ImJ1dHRvbiI6IGV2ZW50LmJ1dHRvbiwKKyAgICAgICAgICAgICJidXR0b25zIjogZXZlbnQuYnV0
dG9ucywKKyAgICAgICAgICAgICJwYWdlWCI6IGV2ZW50LnBhZ2VYLAorICAgICAgICAgICAgInBh
Z2VZIjogZXZlbnQucGFnZVksCisgICAgICAgICAgICAiY3RybEtleSI6IGV2ZW50LmN0cmxLZXks
CisgICAgICAgICAgICAibWV0YUtleSI6IGV2ZW50Lm1ldGFLZXksCisgICAgICAgICAgICAiYWx0
S2V5IjogZXZlbnQuYWx0S2V5LAorICAgICAgICAgICAgInNoaWZ0S2V5IjogZXZlbnQuc2hpZnRL
ZXksCisgICAgICAgICAgICAidGFyZ2V0IjogZXZlbnQudGFyZ2V0LmlkCisgICAgICAgICAgfSk7
CisgICAgICAgICAgYXBwZW5kTWVzc2FnZShldmVudC50eXBlICsgIiAiICsKKyAgICAgICAgICAg
ICAgImJ1dHRvbjogIiArIGV2ZW50LmJ1dHRvbiArICIsICIgKworICAgICAgICAgICAgICAicGFn
ZVg6ICIgKyBldmVudC5wYWdlWCArICIsICIgKworICAgICAgICAgICAgICAicGFnZVk6ICIgKyBl
dmVudC5wYWdlWSArICIsICIgKworICAgICAgICAgICAgICAiYnV0dG9uOiAiICsgZXZlbnQuYnV0
dG9uICsgIiwgIiArCisgICAgICAgICAgICAgICJidXR0b25zOiAiICsgZXZlbnQuYnV0dG9ucyAr
ICIsICIgKworICAgICAgICAgICAgICAiY3RybEtleTogIiArIGV2ZW50LmN0cmxLZXkgKyAiLCAi
ICsKKyAgICAgICAgICAgICAgImFsdEtleTogIiArIGV2ZW50LmFsdEtleSArICIsICIgKworICAg
ICAgICAgICAgICAibWV0YUtleTogIiArIGV2ZW50Lm1ldGFLZXkgKyAiLCAiICsKKyAgICAgICAg
ICAgICAgInNoaWZ0S2V5OiAiICsgZXZlbnQuc2hpZnRLZXkgKyAiLCAiICsKKyAgICAgICAgICAg
ICAgInRhcmdldCBpZDogIiArIGV2ZW50LnRhcmdldC5pZCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiByZWNvcmRGaXJzdFBvaW50ZXJNb3ZlKGV2ZW50KSB7CisgICAgICAgICAgcmVj
b3JkUG9pbnRlckV2ZW50KGV2ZW50KTsKKyAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0
ZW5lcigibW91c2Vtb3ZlIiwgcmVjb3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiByZXNldEV2ZW50cygpIHsKKyAgICAgICAgICBhbGxFdmVudHMuZXZl
bnRzLmxlbmd0aCA9IDA7CisgICAgICAgICAgZGlzcGxheU1lc3NhZ2UoIiIpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gbW92ZShlbCwgb2Zmc2V0WCwgb2Zmc2V0WSwgdGltZW91dCkg
eworICAgICAgICAgIHJldHVybiBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgZWwuc3R5bGUudG9wID0gZXZlbnQuY2xp
ZW50WSArIG9mZnNldFkgKyAicHgiOworICAgICAgICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gZXZl
bnQuY2xpZW50WCArIG9mZnNldFggKyAicHgiOworICAgICAgICAgICAgfSwgdGltZW91dCk7Cisg
ICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgb3V0ZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKTsKKyAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgcmVjb3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAg
ICAgICAgb3V0ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCByZWNvcmRQb2ludGVyRXZlbnQp
OworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgcmVjb3JkUG9p
bnRlckV2ZW50KTsKKyAgICAgICAgICBvdXRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24i
LCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNldXAiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIG91dGVyLmFkZEV2ZW50
TGlzdGVuZXIoImNvbnRleHRtZW51IiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKworICAgICAgICAg
IC8vdmlzdWFsIGN1ZSBmb3IgbW91c2Vtb3ZlCisgICAgICAgICAgdmFyIHBvaW50ZXIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidHJhY2tQb2ludGVyIik7CisgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG1vdmUocG9pbnRlciwgMTUsIDE1LCAzMCkpOwor
ICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0
cmFja1BvaW50ZXIiIGNsYXNzPSJibG9jayI+PC9kaXY+CisgIDxkaXY+CisgICAgPGgyPkNsaWNr
UmVwb3J0ZXI8L2gyPgorICAgIDxkaXYgaWQ9Im91dGVyIiBjbGFzcz0iYXJlYSI+CisgICAgPC9k
aXY+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJyZXN1bHRDb250YWluZXIiPgorICAgIDxoMj5FdmVu
dHM8L2gyPgorICAgIDxkaXYgaWQ9ImV2ZW50cyI+PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9lbGVtZW50X2NsaWNrL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21wdHMucHkK
aW5kZXggYjM3MDZmZTRhZjE2Li4xNDBhY2ViM2NlZGYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21w
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
bGVtZW50X2NsaWNrL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRl
c3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFu
ZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVu
dCk6CkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQp
OgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5w
dXQiLCBhbGw9RmFsc2UpCkBAIC0zMiw3ICszMSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5
dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAg
ICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAg
LTUwLDcgKzQ5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVu
dF9lZGl0YWJsZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVudF9lZGl0YWJsZS5weQppbmRleCAxNmViYzJkMDE4
ZmIuLjdmNjI4Zjk2YTUzYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9jb250ZW50X2VkaXRhYmxlLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9z
ZW5kX2tleXMvY29udGVudF9lZGl0YWJsZS5weQpAQCAtMSw5ICsxLDQgQEAKLWltcG9ydCBweXRl
c3QKLQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRl
c3Rfc2V0c19pbnNlcnRpb25fcG9pbnRfdG9fZW5kKHNlc3Npb24pOgorZGVmIHRlc3Rfc2V0c19p
bnNlcnRpb25fcG9pbnRfdG9fZW5kKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoJzxkaXYgY29udGVudGVkaXRhYmxlPXRydWU+SGVsbG8sPC9kaXY+JykKICAgICBp
bnB1dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKICAgICBpbnB1dC5zZW5k
X2tleXMoJyB3b3JsZCEnKQpAQCAtMTUsNyArMTAsNyBAQCBkZWYgdGVzdF9zZXRzX2luc2VydGlv
bl9wb2ludF90b19lbmQoc2Vzc2lvbik6CiAjCiAjIDEzLiBTZXQgdGhlIHRleHQgaW5zZXJ0aW9u
IGNhcmV0IHVzaW5nIHNldCBzZWxlY3Rpb24gcmFuZ2UgdXNpbmcgY3VycmVudAogIyAgICAgdGV4
dCBsZW5ndGggZm9yIGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgcGFyYW1ldGVycy4KLWRlZiB0ZXN0
X3NldHNfaW5zZXJ0aW9uX3BvaW50X3RvX2FmdGVyX2xhc3RfdGV4dF9ub2RlKHNlc3Npb24pOgor
ZGVmIHRlc3Rfc2V0c19pbnNlcnRpb25fcG9pbnRfdG9fYWZ0ZXJfbGFzdF90ZXh0X25vZGUoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgnPGRpdiBjb250ZW50ZWRp
dGFibGU9dHJ1ZT5IZWw8c3Bhbj5sbzwvc3Bhbj4sPC9kaXY+JykKICAgICBpbnB1dCA9IHNlc3Np
b24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKICAgICBpbnB1dC5zZW5kX2tleXMoIiB3b3Js
ZCEiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2V2ZW50cy5weQppbmRleCA0
MWIwMGVmMzdmYTIuLjRiZTE0MzJiZjNjMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3Nl
bmRfa2V5cy9ldmVudHMucHkKQEAgLTUsNyArNSw2IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X2V2ZW50c19lcXVhbCwKICAgICBhc3NlcnRfc3VjY2Vz
cywKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4g
aW1wb3J0IG1hcF9maWxlc190b19tdWx0aWxpbmVfdGV4dAogCkBAIC0zMSw3ICszMCw3IEBAIGRl
ZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0
ZXh0IjogdGV4dH0pCiAKIAotZGVmIHRlc3RfZmlsZV91cGxvYWQoc2Vzc2lvbiwgY3JlYXRlX2Zp
bGVzLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYgdGVzdF9maWxl
X3VwbG9hZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNr
ZWRfZXZlbnRzLCBpbmxpbmUpOgogICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImlu
cHV0IiwKICAgICAgICAgImNoYW5nZSIsCkBAIC01MCw3ICs0OSw3IEBAIGRlZiB0ZXN0X2ZpbGVf
dXBsb2FkKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tl
ZF9ldmVudHMpCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0YWciLCBbImlucHV0Iiwg
InRleHRhcmVhIl0pCi1kZWYgdGVzdF9mb3JtX2NvbnRyb2xfc2VuZF90ZXh0KHNlc3Npb24sIGFk
ZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCB0YWcpOgorZGVmIHRlc3RfZm9ybV9j
b250cm9sX3NlbmRfdGV4dChzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2
ZW50cywgaW5saW5lLCB0YWcpOgogICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImZv
Y3VzIiwKICAgICAgICAgImtleWRvd24iLApAQCAtNzcsNyArNzYsNyBAQCBkZWYgdGVzdF9mb3Jt
X2NvbnRyb2xfc2VuZF90ZXh0KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRf
ZXZlbnRzLCB0YQogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFnIiwgWyJpbnB1dCIs
ICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3Rfbm90X2JsdXJyZWQoc2Vzc2lvbiwgdGFnKToKK2RlZiB0
ZXN0X25vdF9ibHVycmVkKHNlc3Npb24sIGlubGluZSwgdGFnKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPCVzPiIgJSB0YWcpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFn
LCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zp
bGVfdXBsb2FkLnB5CmluZGV4IDdmYmFiOGE2NmFhNC4uZWY3OTJmNGRkODU1IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2Vu
ZF9rZXlzL2ZpbGVfdXBsb2FkLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkKQEAgLTEsNyAr
MSw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9maWxlc191cGxvYWRlZCwgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IG1h
cF9maWxlc190b19tdWx0aWxpbmVfdGV4dAogCkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBlbGVtZW50
X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4
dH0pCiAKIAotZGVmIHRlc3RfZW1wdHlfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2VtcHR5X3Rl
eHQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5
cGU9ZmlsZT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1G
YWxzZSkKIApAQCAtMjIsNyArMjEsNyBAQCBkZWYgdGVzdF9lbXB0eV90ZXh0KHNlc3Npb24pOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0
ZXN0X211bHRpcGxlX2ZpbGVzKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0
aXBsZV9maWxlcyhzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBj
cmVhdGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgdGVzdF9t
dWx0aXBsZV9maWxlcyhzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191
cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9m
aWxlc19sYXN0X3BhdGhfbm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVz
dF9tdWx0aXBsZV9maWxlc19sYXN0X3BhdGhfbm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxl
cywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKICAg
ICBmaWxlcy5hcHBlbmQoImZvbyBiYXIiKQogCkBAIC00OSw3ICs0OCw3IEBAIGRlZiB0ZXN0X211
bHRpcGxlX2ZpbGVzX2xhc3RfcGF0aF9ub3RfZm91bmQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToK
ICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgW10pCiAKIAotZGVm
IHRlc3RfbXVsdGlwbGVfZmlsZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3dpdGhvdXRfbXVsdGlwbGVf
YXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNy
ZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKIAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgdHlwZT1maWxlPiIpCkBAIC02Miw3ICs2MSw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2Zp
bGVzX3dpdGhvdXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAg
ICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIFtdKQogCiAKLWRlZiB0
ZXN0X211bHRpcGxlX2ZpbGVzX3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2Rl
ZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBp
bmxpbmUpOgogICAgIGZpcnN0X2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQog
ICAgIHNlY29uZF9maWxlcyA9IGNyZWF0ZV9maWxlcyhbImpvaG4iLCAiZG9lIl0pCiAKQEAgLTgw
LDcgKzc5LDcgQEAgZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfc2VuZF90d2ljZShzZXNzaW9uLCBj
cmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50
LCBmaXJzdF9maWxlcyArIHNlY29uZF9maWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxl
c19yZXNldF93aXRoX2VsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0
ZXN0X211bHRpcGxlX2ZpbGVzX3Jlc2V0X3dpdGhfZWxlbWVudF9jbGVhcihzZXNzaW9uLCBjcmVh
dGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlyc3RfZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28i
LCAiYmFyIl0pCiAgICAgc2Vjb25kX2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiam9obiIsICJkb2Ui
XSkKIApAQCAtMTAyLDcgKzEwMSw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3Jlc2V0X3dp
dGhfZWxlbWVudF9jbGVhcihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxl
c191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBzZWNvbmRfZmlsZXMpCiAKIAotZGVmIHRlc3Rf
c2luZ2xlX2ZpbGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3NpbmdsZV9maWxl
KHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxl
cyhbImZvbyJdKQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+
IikKQEAgLTExNCw3ICsxMTMsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZShzZXNzaW9uLCBjcmVh
dGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBm
aWxlcykKIAogCi1kZWYgdGVzdF9zaW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxl
X2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc2luZ2xlX2ZpbGVf
cmVwbGFjZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVz
LCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogCiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKQEAgLTEyOSw3ICsx
MjgsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxlX2F0
dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRl
ZChzZXNzaW9uLCBlbGVtZW50LCBbZmlsZXNbMV1dKQogCiAKLWRlZiB0ZXN0X3NpbmdsZV9maWxl
X2FwcGVuZHNfd2l0aF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToK
K2RlZiB0ZXN0X3NpbmdsZV9maWxlX2FwcGVuZHNfd2l0aF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsi
Zm9vIiwgImJhciJdKQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZp
bGUgbXVsdGlwbGU+IikKQEAgLTE0NCw3ICsxNDMsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZV9h
cHBlbmRzX3dpdGhfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAg
ICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRl
ZiB0ZXN0X3RyYW5zcGFyZW50KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF90cmFu
c3BhcmVudChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVh
dGVfZmlsZXMoWyJmb28iXSkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgdHlw
ZT1maWxlIHN0eWxlPSJvcGFjaXR5OiAwIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMTU0LDcgKzE1Myw3IEBAIGRlZiB0ZXN0X3Ry
YW5zcGFyZW50KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9h
ZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X29ic2N1cmVkKHNlc3Np
b24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9vYnNjdXJlZChzZXNzaW9uLCBjcmVhdGVfZmls
ZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHN0eWxlPgpAQCAtMTc4LDcgKzE3Nyw3IEBA
IGRlZiB0ZXN0X29ic2N1cmVkKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2Zp
bGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X291dHNp
ZGVfdmlld3BvcnQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X291dHNpZGVfdmll
d3BvcnQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRl
X2ZpbGVzKFsiZm9vIl0pCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9
ZmlsZSBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0xMDB2aCI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTE4OCw3ICsxODcsNyBAQCBkZWYg
dGVzdF9vdXRzaWRlX3ZpZXdwb3J0KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0
X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X2hp
ZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24sIGNy
ZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIGhpZGRlbj4iKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTE5OCw3
ICsxOTcsNyBAQCBkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBh
c3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRl
c3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9kaXNwbGF5
X25vbmUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRl
X2ZpbGVzKFsiZm9vIl0pCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9
ZmlsZSBzdHlsZT0iZGlzcGxheTogbm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTIwOSw3ICsyMDgsNyBAQCBkZWYgdGVzdF9k
aXNwbGF5X25vbmUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKIAogCiBAcHl0ZXN0Lm1hcmsuY2Fw
YWJpbGl0aWVzKHsic3RyaWN0RmlsZUludGVyYWN0YWJpbGl0eSI6IFRydWV9KQotZGVmIHRlc3Rf
c3RyaWN0X2hpZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc3RyaWN0X2hp
ZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVf
ZmlsZXMoWyJmb28iXSkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9Zmls
ZSBoaWRkZW4+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9
RmFsc2UpCkBAIC0yMTksNyArMjE4LDcgQEAgZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihzZXNzaW9u
LCBjcmVhdGVfZmlsZXMpOgogCiAKIEBweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJzdHJpY3RG
aWxlSW50ZXJhY3RhYmlsaXR5IjogVHJ1ZX0pCi1kZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25l
KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25lKHNl
c3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhb
ImZvbyJdKQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWZpbGUgc3R5
bGU9ImRpc3BsYXk6IG5vbmUiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9r
ZXlzL2Zvcm1fY29udHJvbHMucHkKaW5kZXggZTUzZDA2MTBmMWVkLi4wNDAzZGM5MjM3MmUgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9zZW5kX2tleXMvZm9ybV9jb250cm9scy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMu
cHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNz
ZXJ0X2VsZW1lbnRfaGFzX2ZvY3VzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKIAogCiBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6
CkBAIC0xMCw3ICs5LDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQs
IHRleHQpOgogICAgICAgICB7InRleHQiOiB0ZXh0fSkKIAogCi1kZWYgdGVzdF9pbnB1dChzZXNz
aW9uKToKK2RlZiB0ZXN0X2lucHV0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1
dCIsIGFsbD1GYWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAi
IgpAQCAtMjAsNyArMTksNyBAQCBkZWYgdGVzdF9pbnB1dChzZXNzaW9uKToKICAgICBhc3NlcnRf
ZWxlbWVudF9oYXNfZm9jdXMoZWxlbWVudCkKIAogCi1kZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9u
KToKK2RlZiB0ZXN0X3RleHRhcmVhKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjx0ZXh0YXJlYT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJ0
ZXh0YXJlYSIsIGFsbD1GYWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUi
KSA9PSAiIgpAQCAtMzAsNyArMjksNyBAQCBkZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uKToKICAg
ICBhc3NlcnRfZWxlbWVudF9oYXNfZm9jdXMoZWxlbWVudCkKIAogCi1kZWYgdGVzdF9pbnB1dF9h
cHBlbmQoc2Vzc2lvbik6CitkZWYgdGVzdF9pbnB1dF9hcHBlbmQoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWE+IikKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1l
bnQucHJvcGVydHkoInZhbHVlIikgPT0gImEiCkBAIC00Miw3ICs0MSw3IEBAIGRlZiB0ZXN0X2lu
cHV0X2FwcGVuZChzZXNzaW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUi
KSA9PSAiYWJjIgogCiAKLWRlZiB0ZXN0X3RleHRhcmVhX2FwcGVuZChzZXNzaW9uKToKK2RlZiB0
ZXN0X3RleHRhcmVhX2FwcGVuZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8dGV4dGFyZWE+YTwvdGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygidGV4dGFyZWEiLCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVy
dHkoInZhbHVlIikgPT0gImEiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5k
X2tleXMvaW50ZXJhY3RhYmlsaXR5LnB5CmluZGV4IDA3MTc1MzdhZTVkOC4uMjczODQzZmI3YjQ2
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0
YWJpbGl0eS5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGlt
cG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpZnJhbWUsIGlubGluZQogCiAKIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNz
aW9uLCBlbGVtZW50LCB0ZXh0KToKQEAgLTEwLDcgKzksNyBAQCBkZWYgZWxlbWVudF9zZW5kX2tl
eXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9KQogCiAK
LWRlZiB0ZXN0X2JvZHlfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfYm9keV9p
c19pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPGJvZHkgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
aW5wdXQnKS52YWx1ZSArPSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAgLTI5LDcg
KzI4LDcgQEAgZGVmIHRlc3RfYm9keV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0X2RvY3Vt
ZW50X2VsZW1lbnRfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfZG9jdW1lbnRf
ZWxlbWVudF9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiIiIKICAgICAgICAgPGh0bWwgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignaW5wdXQnKS52YWx1ZSArPSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4K
QEAgLTQ5LDcgKzQ4LDcgQEAgZGVmIHRlc3RfZG9jdW1lbnRfZWxlbWVudF9pc19pbnRlcmFjdGFi
bGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9v
IgogCiAKLWRlZiB0ZXN0X2lmcmFtZV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVz
dF9pZnJhbWVfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIiIiCiAgICAgICAgIDxib2R5IG9ua2V5cHJlc3M9
ImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykudmFsdWUgKz0gZXZlbnQua2V5Ij4KICAg
ICAgICAgICA8aW5wdXQ+CkBAIC03Myw3ICs3Miw3IEBAIGRlZiB0ZXN0X2lmcmFtZV9pc19pbnRl
cmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9
PSAiZm9vIgogCiAKLWRlZiB0ZXN0X3RyYW5zcGFyZW50X2VsZW1lbnQoc2Vzc2lvbik6CitkZWYg
dGVzdF90cmFuc3BhcmVudF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJvcGFjaXR5OiAwIj4iIiIpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC04Miw3ICs4MSw3
IEBAIGRlZiB0ZXN0X3RyYW5zcGFyZW50X2VsZW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGVs
ZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0gImZvbyIKIAogCi1kZWYgdGVzdF9yZWFkb25seV9l
bGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgcmVhZG9ubHk+IikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTkxLDcg
KzkwLDcgQEAgZGVmIHRlc3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnQg
ZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X29ic2N1cmVkX2Vs
ZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9vYnNjdXJlZF9lbGVtZW50KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8aW5wdXQ+CiAgICAgICA8
ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTNlbTsgaGVpZ2h0OiA1ZW07IGJh
Y2tncm91bmQ6IGJsdWU7Ij48L2Rpdj4KQEAgLTEwMyw3ICsxMDIsNyBAQCBkZWYgdGVzdF9vYnNj
dXJlZF9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1
ZSIpID09ICJmb28iCiAKIAotZGVmIHRlc3Rfbm90X2FfZm9jdXNhYmxlX2VsZW1lbnQoc2Vzc2lv
bik6CitkZWYgdGVzdF9ub3RfYV9mb2N1c2FibGVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PmZvbzwvZGl2PiIpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApAQCAtMTExLDcgKzExMCw3IEBA
IGRlZiB0ZXN0X25vdF9hX2ZvY3VzYWJsZV9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3Rf
ZGlzcGxheV9ub25lKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5
OiBub25lIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxs
PUZhbHNlKQogCkBAIC0xMTksNyArMTE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Np
b24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJs
ZSIpCiAKIAotZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF92
aXNpYmlsaXR5X2hpZGRlbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCIiIjxpbnB1dCBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuIj4iIiIpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0xMjcsNyArMTI2
LDcgQEAgZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9o
aWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGhpZGRlbj4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTM1LDcgKzEzNCw3IEBAIGRl
ZiB0ZXN0X2hpZGRlbihzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVt
ZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgor
ZGVmIHRlc3RfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiIiI8aW5wdXQgZGlzYWJsZWQ+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192
aWV3LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192aWV3LnB5CmluZGV4IDE4Zjg3ZmZhYWVjNi4uMjA1
YzRlMzBlMWVkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3Njcm9sbF9pbnRvX3ZpZXcucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5
cy9zY3JvbGxfaW50b192aWV3LnB5CkBAIC0xLDYgKzEsNiBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVy
cyBpbXBvcnQgaXNfZWxlbWVudF9pbl92aWV3cG9ydAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCisKIAogZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1l
bnQsIHRleHQpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKApAQCAtMTAsNyAr
MTAsNyBAQCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAg
ICAgICAgIHsidGV4dCI6IHRleHR9KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9u
b3Rfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfb3V0c2lk
ZV9vZl9ub3Rfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6
IC05OTk5cHg7XCI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAKQEAgLTIwLDcgKzIwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29m
X25vdF9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgogICAgIGFzc2VydCBub3QgaXNfZWxl
bWVudF9pbl92aWV3cG9ydChzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRf
b3V0c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVu
dF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHN0eWxlPVwibWFyZ2luLXRvcDogMTAydmg7XCI+
IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAK
QEAgLTMwLDcgKzMwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVf
dmlld3BvcnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGlzX2VsZW1lbnRfaW5fdmlld3BvcnQoc2Vz
c2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9vdXRz
aWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9vcHRpb25fc2Vs
ZWN0X2NvbnRhaW5lcl9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdCBzdHls
ZT0ibWFyZ2luLXRvcDogMTAydmg7Ij4KICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb28iPmZv
bzwvb3B0aW9uPgpAQCAtNDcsNyArNDcsNyBAQCBkZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRh
aW5lcl9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
IGlzX2VsZW1lbnRfaW5fdmlld3BvcnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9v
cHRpb25fc3RheXNfb3V0c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVm
IHRlc3Rfb3B0aW9uX3N0YXlzX291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0
IG11bHRpcGxlIHN0eWxlPSJoZWlnaHQ6IDEwNXZoOyBtYXJnaW4tdG9wOiAxMDB2aDsiPgogICAg
ICAgICAgIDxvcHRpb24gdmFsdWU9ImZvbyIgaWQ9ImZvbyIgc3R5bGU9ImhlaWdodDogMTAwdmg7
Ij5mb288L29wdGlvbj4KQEAgLTY2LDcgKzY2LDcgQEAgZGVmIHRlc3Rfb3B0aW9uX3N0YXlzX291
dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IGlz
X2VsZW1lbnRfaW5fdmlld3BvcnQoc2Vzc2lvbiwgb3B0aW9uX2JhcikKIAogCi1kZWYgdGVzdF9j
b250ZW50ZWRpdGFibGVfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vz
c2lvbik6CitkZWYgdGVzdF9jb250ZW50ZWRpdGFibGVfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9s
bGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGRpdiBjb250ZW50ZWRpdGFibGUgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMDJ2aDtcIj48L2Rp
dj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zZW5kX2tleXMucHkKaW5kZXgg
ZWRmOTFlNzc2MTQ4Li5hYTM5M2UxNmQ4MTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5CkBAIC00LDcgKzQsNiBAQCBmcm9tIHdlYmRyaXZlciBp
bXBvcnQgRWxlbWVudAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRf
c3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVm
IGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgpAQCAtMTUsNyArMTQs
NyBAQCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAg
ICAgIHsidGV4dCI6IHRleHR9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNl
c3Npb24sIGh0dHApOgorZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0
cCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0yNSw3ICsy
NCw3IEBAIGRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgogICAg
ICAgICBhc3NlcnRfZXJyb3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFsaWQg
YXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6Citk
ZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzYsMTAgKzM1LDE3IEBAIGRlZiB0ZXN0X251bGxf
cmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250
ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28i
LCBzZXNzaW9uKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxl
bWVudCwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQogCisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJl
c3BvbnNlID0gZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgImZvbyIpCiAgICAg
YXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53
aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X3Nl
bmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQo
c2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vz
c2lvbikKQEAgLTQ5LDcgKzU1LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uLCBjbG9zZWRfZnJhbWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUi
LCBbVHJ1ZSwgTm9uZSwgMSwgW10sIHt9XSkKLWRlZiB0ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNl
c3Npb24sIHZhbHVlKToKK2RlZiB0ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNlc3Npb24sIGlubGlu
ZSwgdmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTU3LDcgKzYz
LDcgQEAgZGVmIHRlc3RfaW52YWxpZF90ZXh0X3R5cGUoc2Vzc2lvbiwgdmFsdWUpOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X3N0
YWxlX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9zdGFsZV9lbGVtZW50KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5
cy91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3VzZXJfcHJvbXB0cy5weQppbmRleCA2MjFiZGZmYTY2
NDIuLmMxMDQ2ODQwZmE0ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy91c2VyX3Byb21wdHMucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRf
a2V5cy91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFz
c2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0
ZXh0KToKQEAgLTE1LDcgKzE0LDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVs
ZW1lbnQsIHRleHQpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlw
ZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFs
bD1GYWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAg
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3lu
Y19zY3JpcHQvY29sbGVjdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CmluZGV4IDQ4
NGEyNDdjZmZkOS4uMmRjOWI5YTAwOWFjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25z
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhl
Y3V0ZV9hc3luY19zY3JpcHQvY29sbGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBpbXBvcnQg
b3MKIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3Nj
cmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC0zNSw3ICszMiw3IEBAIGRlZiB0
ZXN0X2FycmF5KHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0p
CiAKIAotZGVmIHRlc3RfZmlsZV9saXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxl
X2xpc3Qoc2Vzc2lvbiwgdG1wZGlyLCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2lu
KCJmb28udHh0IiksIHRtcGRpci5qb2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNTQsMTEgKzUxLDExIEBA
IGRlZiB0ZXN0X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwg
YWN0dWFsIGluIHppcChmaWxlcywgdmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShh
Y3R1YWwsIGRpY3QpCiAgICAgICAgIGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRo
LmJhc2VuYW1lKHN0cihleHBlY3RlZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3Rf
aHRtbF9hbGxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rp
b24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAg
ICAgPHA+Zm9vCiAgICAgICAgIDxwPmJhcgpAQCAtODYsNyArODMsNyBAQCBkZWYgdGVzdF9odG1s
X2FsbF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lv
biwgcHNbMV0sIHZhbHVlWzVdKQogCiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9u
KToKK2RlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC0x
MDQsNyArMTAxLDcgQEAgZGVmIHRlc3RfaHRtbF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAg
ICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVm
IHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9o
dG1sX2Zvcm1fY29udHJvbHNfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgIDxpbnB1dD4K
QEAgLTEyNCw3ICsxMjEsNyBAQCBkZWYgdGVzdF9odG1sX2Zvcm1fY29udHJvbHNfY29sbGVjdGlv
bihzZXNzaW9uKToKICAgICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3Rl
ZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24p
OgorZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdD4KICAgICAgICAgICAg
IDxvcHRpb24+CkBAIC0xNDQsNyArMTQxLDcgQEAgZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxl
Y3Rpb24oc2Vzc2lvbik6CiAgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhw
ZWN0ZWQsIGFjdHVhbCkKIAogCi1kZWYgdGVzdF9ub2RlX2xpc3Qoc2Vzc2lvbik6CitkZWYgdGVz
dF9ub2RlX2xpc3Qoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgICAgPHA+Zm9vCiAgICAgICAgIDxwPmJhcgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9l
eGVjdXRlX2FzeW5jLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5CmluZGV4IGM3NjljYTgx
MWVlMC4uNTc0NmVkNmYwNWYzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2V4ZWN1dGVfYXN5bmMucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRl
X2FzeW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5CkBAIC0xLDggKzEsMTAgQEAKIGltcG9ydCBw
eXRlc3QKIAorZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9u
CiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCitmcm9t
IHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3Nj
cmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC01MCw5ICs1MiwxNiBAQCBkZWYg
dGVzdF9hYm9ydF9ieV91c2VyX3Byb21wdF90d2ljZShzZXNzaW9uLCBkaWFsb2dfdHlwZSk6CiAK
ICAgICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCiAKLSAgICAjIFRoZSBmaXJzdCBhbGVydCBoYXMg
YmVlbiBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9tcHQgaGFuZGxlciwgdGhlIHNlY29uZCBvbmUg
cmVtYWlucy4KLSAgICAjIEZJWE1FOiB0aGlzIGlzIGhvdyBicm93c2VycyBjdXJyZW50bHkgd29y
aywgYnV0IHRoZSBzcGVjIHNob3VsZCBjbGFyaWZ5IGlmIHRoaXMgaXMgdGhlCi0gICAgIyAgICAg
ICAgZXhwZWN0ZWQgYmVoYXZpb3IsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZl
ci9pc3N1ZXMvMTE1My4KLSAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09ICJCeWUiCisg
ICAgIyBUaGUgZmlyc3QgYWxlcnQgaGFzIGJlZW4gYWNjZXB0ZWQgYnkgdGhlIHVzZXIgcHJvbXB0
IGhhbmRsZXIsIHRoZSBzZWNvbmQKKyAgICAjIGFsZXJ0IHdpbGwgc3RpbGwgYmUgb3BlbmVkIGJl
Y2F1c2UgdGhlIGN1cnJlbnQgc3RlcCBpc24ndCBhYm9ydGVkLgorICAgIHdhaXQgPSBQb2xsKAor
ICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUsCisgICAgICAgIG1lc3NhZ2U9IlNl
Y29uZCBhbGVydCBoYXMgbm90IGJlZW4gb3BlbmVkIiwKKyAgICAgICAgaWdub3JlZF9leGNlcHRp
b25zPU5vU3VjaEFsZXJ0RXhjZXB0aW9uCisgICAgKQorICAgIHRleHQgPSB3YWl0LnVudGlsKGxh
bWJkYSBzOiBzLmFsZXJ0LnRleHQpCisKKyAgICBhc3NlcnQgdGV4dCA9PSAiQnllIgogCiAgICAg
c2Vzc2lvbi5hbGVydC5hY2NlcHQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVzLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2Fz
eW5jX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CmluZGV4IDM5NGFlMzI5NGNkMy4uZTUxYjNlM2VhNTc5
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2V4ZWN1dGVfYXN5bmNfc2NyaXB0L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0
aWVzLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lv
biwgc2NyaXB0LCBhcmdzPU5vbmUpOgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9hc3lu
Y19zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdzPU5vbmUpOgogICAgICAgICBib2R5KQogCiAK
LWRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfY29udGVudF9h
dHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0IHZhbHVlPWZvb2Jhcj4iKQogICAgIHJlc3BvbnNlID0gZXhlY3V0ZV9hc3luY19zY3JpcHQo
c2Vzc2lvbiwgIiIiCiAgICAgICAgIGNvbnN0IHJlc29sdmUgPSBhcmd1bWVudHNbMF07CkBAIC0y
MSw3ICsyMCw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFz
c2VydF9zdWNjZXNzKHJlc3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmli
dXRlKHNlc3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQ+CiAgICAgICAgIDxz
Y3JpcHQ+CkBAIC0zNyw3ICszNiw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lk
bF9hdHRyaWJ1dGVfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxl
bWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAg
ICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC01OSw3ICs1OCw3IEBAIGRlZiB0ZXN0X2lk
bF9hdHRyaWJ1dGVfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNl
c3Npb24sIGJhciwgdmFsdWUpCiAKIAotZGVmIHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5
KHNlc3Npb24pOgorZGVmIHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIHNlc3Npb24u
ZXhlY3V0ZV9zY3JpcHQoIiIiCiAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiaW5wdXQiKTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2NvbGxl
Y3Rpb25zLnB5CmluZGV4IGJlMGIzYTAxOGM1MC4uODI5MWZkNzEzODhiIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0
L2NvbGxlY3Rpb25zLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBp
bXBvcnQgb3MKIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX3Nj
cmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC0zMSw3ICsyOCw3IEBAIGRlZiB0
ZXN0X2FycmF5KHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0p
CiAKIAotZGVmIHRlc3RfZmlsZV9saXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxl
X2xpc3Qoc2Vzc2lvbiwgdG1wZGlyLCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2lu
KCJmb28udHh0IiksIHRtcGRpci5qb2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNDcsMTEgKzQ0LDExIEBA
IGRlZiB0ZXN0X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwg
YWN0dWFsIGluIHppcChmaWxlcywgdmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShh
Y3R1YWwsIGRpY3QpCiAgICAgICAgIGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGFjdHVhbFsibmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRo
LmJhc2VuYW1lKHN0cihleHBlY3RlZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3Rf
aHRtbF9hbGxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rp
b24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAg
ICAgPHA+Zm9vCiAgICAgICAgIDxwPmJhcgpAQCAtNzYsNyArNzMsNyBAQCBkZWYgdGVzdF9odG1s
X2FsbF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lv
biwgcHNbMV0sIHZhbHVlWzVdKQogCiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9u
KToKK2RlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC05
MSw3ICs4OCw3IEBAIGRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAg
YXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0
ZXN0X2h0bWxfZm9ybV9jb250cm9sc19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRt
bF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGZvcm0+CiAgICAgICAgICAgICA8aW5wdXQ+CkBA
IC0xMDgsNyArMTA1LDcgQEAgZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24o
c2Vzc2lvbik6CiAgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQs
IGFjdHVhbCkKIAogCi1kZWYgdGVzdF9odG1sX29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uKToK
K2RlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzZWxlY3Q+CiAgICAgICAgICAgICA8
b3B0aW9uPgpAQCAtMTI1LDcgKzEyMiw3IEBAIGRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0
aW9uKHNlc3Npb24pOgogICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVj
dGVkLCBhY3R1YWwpCiAKIAotZGVmIHRlc3Rfbm9kZV9saXN0KHNlc3Npb24pOgorZGVmIHRlc3Rf
bm9kZV9saXN0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIi
CiAgICAgICAgIDxwPmZvbwogICAgICAgICA8cD5iYXIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3Nj
cmlwdC9jeWNsaWMucHkKaW5kZXggMTZiZGNkZDFkZWE1Li5lMzA5NGY4OWYzYjcgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9z
Y3JpcHQvY3ljbGljLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0
ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxl
bWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogCiAKIGRlZiBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6
CkBAIC00OSw3ICs0OCw3IEBAIGRlZiB0ZXN0X29iamVjdF9pbl9hcnJheShzZXNzaW9uKToKICAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJqYXZhc2NyaXB0IGVycm9yIikKIAogCi1kZWYgdGVz
dF9lbGVtZW50X2luX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2luX2Nv
bGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRp
dj48L2Rpdj4iKQogICAgIGRpdnMgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiKQogCkBAIC02Myw3
ICs2Miw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfaW5fY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAg
ICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRl
ZiB0ZXN0X2VsZW1lbnRfaW5fb2JqZWN0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbl9v
YmplY3Qoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48
L2Rpdj4iKQogICAgIGRpdiA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
eGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5CmluZGV4IGJkNzE5YjI3ODU5
ZS4uMGY5MzRjYmI0NDUwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2V4ZWN1dGUucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9leGVjdXRl
LnB5CkBAIC0xLDkgKzEsOSBAQAogaW1wb3J0IHB5dGVzdAogCitmcm9tIHdlYmRyaXZlci5lcnJv
ciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBp
bXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0zNCw3
ICszNCw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2Zy
YW1lKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAot
ZGVmIHRlc3Rfb3BlbmluZ19uZXdfd2luZG93X2tlZXBzX2N1cnJlbnRfd2luZG93X2hhbmRsZShz
ZXNzaW9uKToKK2RlZiB0ZXN0X29wZW5pbmdfbmV3X3dpbmRvd19rZWVwc19jdXJyZW50X3dpbmRv
d19oYW5kbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9u
LndpbmRvd19oYW5kbGUKICAgICBvcmlnaW5hbF9oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCiAK
QEAgLTU3LDcgKzU3LDcgQEAgZGVmIHRlc3RfZW5kaW5nX2NvbW1lbnQoc2Vzc2lvbik6CiAgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIDEpCiAKIAotZGVmIHRlc3Rfb3ZlcnJpZGVfbGlzdGVu
ZXJzKHNlc3Npb24pOgorZGVmIHRlc3Rfb3ZlcnJpZGVfbGlzdGVuZXJzKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiA8c2NyaXB0PgogY2FsbGVkID0gW107
CkBAIC04OCw5ICs4OCwxNiBAQCBkZWYgdGVzdF9hYm9ydF9ieV91c2VyX3Byb21wdF90d2ljZShz
ZXNzaW9uLCBkaWFsb2dfdHlwZSk6CiAKICAgICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCiAKLSAg
ICAjIFRoZSBmaXJzdCBhbGVydCBoYXMgYmVlbiBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9tcHQg
aGFuZGxlciwgdGhlIHNlY29uZCBvbmUgcmVtYWlucy4KLSAgICAjIEZJWE1FOiB0aGlzIGlzIGhv
dyBicm93c2VycyBjdXJyZW50bHkgd29yaywgYnV0IHRoZSBzcGVjIHNob3VsZCBjbGFyaWZ5IGlm
IHRoaXMgaXMgdGhlCi0gICAgIyAgICAgICAgZXhwZWN0ZWQgYmVoYXZpb3IsIHNlZSBodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvMTE1My4KLSAgICBhc3NlcnQgc2Vzc2lv
bi5hbGVydC50ZXh0ID09ICJCeWUiCisgICAgIyBUaGUgZmlyc3QgYWxlcnQgaGFzIGJlZW4gYWNj
ZXB0ZWQgYnkgdGhlIHVzZXIgcHJvbXB0IGhhbmRsZXIsIHRoZSBzZWNvbmQKKyAgICAjIGFsZXJ0
IHdpbGwgc3RpbGwgYmUgb3BlbmVkIGJlY2F1c2UgdGhlIGN1cnJlbnQgc3RlcCBpc24ndCBhYm9y
dGVkLgorICAgIHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0
PTUsCisgICAgICAgIG1lc3NhZ2U9IlNlY29uZCBhbGVydCBoYXMgbm90IGJlZW4gb3BlbmVkIiwK
KyAgICAgICAgaWdub3JlZF9leGNlcHRpb25zPU5vU3VjaEFsZXJ0RXhjZXB0aW9uCisgICAgKQor
ICAgIHRleHQgPSB3YWl0LnVudGlsKGxhbWJkYSBzOiBzLmFsZXJ0LnRleHQpCisKKyAgICBhc3Nl
cnQgdGV4dCA9PSAiQnllIgogCiAgICAgc2Vzc2lvbi5hbGVydC5hY2NlcHQoKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3Nj
cmlwdC9wcm9wZXJ0aWVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CmluZGV4IDJiZTRmMWYzY2NjOS4u
NTE5OTk5MzZlNzFhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0
aWVzLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgc2Ny
aXB0LCBhcmdzPU5vbmUpOgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vz
c2lvbiwgc2NyaXB0LCBhcmdzPU5vbmUpOgogICAgICAgICBib2R5KQogCiAKLWRlZiB0ZXN0X2Nv
bnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZv
b2Jhcj4iKQogICAgIHJlc3BvbnNlID0gZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgIiIiCiAgICAg
ICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKQEAgLTIw
LDcgKzE5LDcgQEAgZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1
dGUoc2Vzc2lvbik6CitkZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dD4KICAgICAgICAgPHNj
cmlwdD4KQEAgLTM1LDcgKzM0LDcgQEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToK
ICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRs
X2F0dHJpYnV0ZV9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVt
ZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAg
ICAgIDxwPmZvbwogICAgICAgICA8cD5iYXIKQEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfaWRs
X2F0dHJpYnV0ZV9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vz
c2lvbiwgYmFyLCB2YWx1ZSkKIAogCi1kZWYgdGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHko
c2Vzc2lvbik6CitkZWYgdGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZXhlY3V0ZV9z
Y3JpcHQoc2Vzc2lvbiwgIiIiCiAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiaW5wdXQiKTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L2ZpbmQucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CmluZGV4IDlm
MDkxMWQ1NmRjMC4uNDUxMDYxN2RhNWE2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L2ZpbmQu
cHkKQEAgLTMsNyArMyw2IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9y
dCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vz
c2lvbiwgdXNpbmcsIHZhbHVlKToKQEAgLTQ4LDcgKzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9z
ZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAo
InhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywg
dmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZh
bHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJl
Zj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPiIpCiAKQEAgLTY0LDcgKzYzLDcgQEAg
ZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBo
cmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHls
ZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQi
KSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50
LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGlubGlu
ZSwgZG9jdW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZShkb2N1bWVudCkKIApAQCAtODEsNyArODAsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1l
bnRfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+
UEFSVElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJTksiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0n
dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksi
KSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwg
ZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4
dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoZG9jdW1lbnQpCiAKQEAgLTEwMiw3ICsxMDEsNyBAQCBk
ZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInhwYXRoIiwgIi8vKltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25h
bWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNl
KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiI8YSBocmVmPSIjIiBpZD0ibGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPiIiIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBkb2N0eXBlPSJ4aHRtbCIpCiAgICAgZXhwZWN0ZWQgPSBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQubGlua3NbMF0iKQpAQCAtMTE2
LDcgKzExNSw3IEBAIGRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFs
dWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIsICI6cm9vdCIp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImh0bWwiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvaHRtbCIpXSkKLWRlZiB0ZXN0X2h0bWxk
b2N1bWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNl
c3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IikKICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAg
ICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVu
dC91c2VyX3Byb21wdHMucHkKaW5kZXggNjEzNDY2YjYyYjUxLi5hZGE4ZThlYmVlMzMgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9l
bGVtZW50L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2
IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MsCiAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywg
dmFsdWUpOgpAQCAtMTgsNyArMTcsNyBAQCBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5n
LCB2YWx1ZSk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8cD5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAi
LCBhbGw9RmFsc2UpCkBAIC0zNiw3ICszNSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5iYXI8L3A+IikKIApAQCAtNTEsNyAr
NTAsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
K2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Ns
b3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxwPmJhcjwvcD4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50
X2Zyb21fZWxlbWVudC9maW5kLnB5CmluZGV4IGFhNjQ4MTE3OTc2Yi4uODc5ZGUzNzEzZjk5IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5w
eQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0
IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNz
ZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNz
aW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZmlu
ZF9lbGVtZW50KHNlc3Npb24sIGVsZW1lbnRfaWQsIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgIHsi
dXNpbmciOiB1c2luZywgInZhbHVlIjogdmFsdWV9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1l
dGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgorZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUo
c2Vzc2lvbiwgaHR0cCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48
YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQogCkBAIC01NCw3ICs1Myw3
IEBAIGRlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUpOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4
dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvL2EiKV0pCi1kZWYgdGVzdF9maW5kX2Vs
ZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNz
aW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0
PC9hPjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1G
YWxzZSkKQEAgLTcwLDcgKzY5LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIHVz
aW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQi
KSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGlu
ayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlu
a190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRf
bGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAg
OCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChk
b2N1bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxz
ZSkKQEAgLTg4LDcgKzg3LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNz
aW9uLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhU
PC9hPiIsICJMSU5LIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1
cHBlcmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVmIHRlc3Rf
ZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6
CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5l
LCBkb2N1bWVudCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8ZGl2PnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtOTgsNyArOTcsNyBAQCBkZWYg
dGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZh
bHVlKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwgWygiY3Nz
IHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCi1kZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24s
IHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNp
bmcsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGRpdj48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9
RmFsc2UpCkBAIC0xMTIsNyArMTExLDcgQEAgZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCB1
c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0
ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1l
IiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvLypbbmFtZSgp
PSdhJ10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVl
KToKK2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPHA+PGEgaHJlZj0iIyIgaWQ9ImxpbmtU
ZXh0Ij5mdWxsIGxpbmsgdGV4dDwvYT48L3A+IiIiLAogICAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3R5cGU9InhodG1sIikKICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2Ny
aXB0KCIiInJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwIikiIiIpCkBAIC0xMjMsNyAr
MTIyLDcgQEAgZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6
CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQpCiAKIAot
ZGVmIHRlc3RfcGFyZW50X2h0bWxkb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9o
dG1sZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IikKICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiInJldHVybiBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikiIiIpCiAgICAgZXhwZWN0ZWQgPSBzZXNzaW9u
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IikKQEAgLTEz
Myw3ICsxMzIsNyBAQCBkZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24pOgogICAg
IGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQogCiAKLWRlZiB0
ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9ub2RlX2Vycm9ycyhzZXNzaW9uKToKK2RlZiB0ZXN0X3Bh
cmVudF9vZl9kb2N1bWVudF9ub2RlX2Vycm9ycyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiKQogICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9z
Y3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQiKQogCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9m
cm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5w
eQppbmRleCAzZmRhZjRlNDdlZDcuLjA1MzdhNzg2MTg5YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVt
ZW50L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CkBA
IC04LDcgKzgsNiBAQCBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFz
c2VydF9zdWNjZXNzLAogICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZCwKICkKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lv
biwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKQEAgLTIwLDcgKzE5LDcgQEAgZGVmIGZpbmRf
ZWxlbWVudChzZXNzaW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgogCiAKIEBweXRlc3Qu
Zml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCBy
ZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRp
dj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxs
PUZhbHNlKQpAQCAtMzksNyArMzgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAg
ICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAt
NTUsNyArNTQsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21f
c2hhZG93X3Jvb3QvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjhmYzkzMzE5ZjQzCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5
IEBACitpbXBvcnQgcHl0ZXN0CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFn
ZShpbmxpbmUpOgorICAgIGRlZiBnZXRfc2hhZG93X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAg
ICAgICByZXR1cm4gaW5saW5lKCIiIgorICAgICAgICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVu
dD48L2N1c3RvbS1zaGFkb3ctZWxlbWVudD4KKyAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAor
ICAgICAgICAgICAgICAgICAgICBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHt7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
YXR0YWNoU2hhZG93KHt7bW9kZTogJ29wZW4nfX0pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHswfSB9fQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBgOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19CisgICAgICAgICAg
ICAgICAgICAgIH19KTsKKyAgICAgICAgICAgIDwvc2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2Nv
bnRlbnQpKQorICAgIHJldHVybiBnZXRfc2hhZG93X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hh
ZG93X3Jvb3QvZmluZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg3OTQxZDQ5NWUxMwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weQpAQCAtMCwwICsxLDE0MSBAQAoraW1wb3J0IHB5
dGVzdAorCitmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2Vs
ZW1lbnQsIGFzc2VydF9zdWNjZXNzCisKKworZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFk
b3dfaWQsIHVzaW5nLCB2YWx1ZSk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQo
CisgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lk
fS9lbGVtZW50Ii5mb3JtYXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lv
bl9pZCwKKyAgICAgICAgICAgIHNoYWRvd19pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5n
IjogdXNpbmcsICJ2YWx1ZSI6IHZhbHVlfSkKKworCitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92
YWx1ZShzZXNzaW9uLCBodHRwLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJsID0g
Z2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4
dDwvYT48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3Vz
dG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9t
X2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHBhdGggPSAiL3Nlc3Npb24ve3Nlc3Npb25faWR9
L3NoYWRvdy97c2hhZG93X2lkfS9lbGVtZW50Ii5mb3JtYXQoCisgICAgICAgIHNlc3Npb25faWQ9
c2Vzc2lvbi5zZXNzaW9uX2lkLCBzaGFkb3dfaWQ9c2hhZG93X3Jvb3QuaWQpCisgICAgd2l0aCBo
dHRwLnBvc3QocGF0aCwgTm9uZSkgYXMgcmVzcG9uc2U6CisgICAgICAgIGFzc2VydF9lcnJvcihS
ZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVm
IHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6Cisg
ICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgIm5vdFJlYWwiLCAiY3NzIHNlbGVj
dG9yIiwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1l
KToKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCAibm90UmVhbCIsICJjc3Mg
c2VsZWN0b3IiLCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdp
bmRvdyIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyIsIFsiYSIsIFRydWUs
IE5vbmUsIDEsIFtdLCB7fV0pCitkZWYgdGVzdF9pbnZhbGlkX3VzaW5nX2FyZ3VtZW50KHNlc3Np
b24sIHVzaW5nKToKKyAgICAjIFN0ZXAgMSAtIDIKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVu
dChzZXNzaW9uLCAibm90UmVhbCIsIHVzaW5nLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgidmFsdWUiLCBbTm9uZSwgW10sIHt9XSkKK2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJn
dW1lbnQoc2Vzc2lvbiwgdmFsdWUpOgorICAgICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0g
ZmluZF9lbGVtZW50KHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsIHZhbHVlKQor
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK2RlZiB0
ZXN0X2RldGFjaGVkX3NoYWRvd19yb290KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAg
c2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IHR5cGU9J2NoZWNrYm94
Jy8+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3Rv
bS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9l
bGVtZW50LnNoYWRvd19yb290CisgICAgc2Vzc2lvbi5yZWZyZXNoKCkKKworICAgIHJlc3BvbnNl
ID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIiwgImlucHV0IikK
KyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJkZXRhY2hlZCBzaGFkb3cgcm9vdCIpCisKKwor
ZGVmIHRlc3RfZm91bmRfZWxlbWVudF9lcXVpdmFsZW5jZShzZXNzaW9uLCBnZXRfc2hhZG93X3Bh
Z2UpOgorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBl
PSdjaGVja2JveCcvPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0ZWQgPSBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignaW5wdXQnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxl
bWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNo
YWRvd19yb290LmlkLCAiY3NzIiwgImlucHV0IikKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVj
dGVkKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIsICIjbGlua1RleHQiKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJsaW5rIHRleHQiLCAiZnVsbCBsaW5rIHRleHQiKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQi
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy9hIildKQorZGVmIHRlc3RfZmluZF9lbGVt
ZW50KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAg
OCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48YSBocmVmPSMg
aWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkK
KyAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNb
MF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjbGlua1RleHQnKSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAgc2hh
ZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmlu
ZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCB1c2luZywgdmFsdWUpCisgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2
YWx1ZSwgZXhwZWN0ZWQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2
YWx1ZSIsIFsKKyAgICAoIjxhIGhyZWY9Iz5saW5rIHRleHQ8L2E+IiwgImxpbmsgdGV4dCIpLAor
ICAgICgiPGEgaHJlZj0jPiZuYnNwO2xpbmsgdGV4dCZuYnNwOzwvYT4iLCAibGluayB0ZXh0Iiks
CisgICAgKCI8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPiIsICJsaW5rXG50ZXh0IiksCisgICAg
KCI8YSBocmVmPSM+bGluayZhbXA7dGV4dDwvYT4iLCAibGluayZ0ZXh0IiksCisgICAgKCI8YSBo
cmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHls
ZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQi
KSwKK10pCitkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGdldF9zaGFk
b3dfcGFnZSwgZG9jdW1lbnQsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9u
LnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkp
CisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVs
ZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnYScpWzBd
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2Vs
ZW1lbnQsKSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisK
KyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImxp
bmsgdGV4dCIsIHZhbHVlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2Vy
dF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUiLCBbCisgICAgKCI8YSBocmVmPSM+cGFydGlh
bCBsaW5rIHRleHQ8L2E+IiwgImxpbmsiKSwKKyAgICAoIjxhIGhyZWY9Iz4mbmJzcDtwYXJ0aWFs
IGxpbmsgdGV4dCZuYnNwOzwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwg
bGluayB0ZXh0PC9hPiIsICJrIHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+
dGV4dDwvYT4iLCAia1xudCIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayZhbXA7dGV4
dDwvYT4iLCAiayZ0IiksCisgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+Iiwg
IkxJTksiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2Fz
ZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksiKSwKK10pCitkZWYgdGVzdF9maW5kX2Vs
ZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVu
dCwgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRv
d19wYWdlKCI8ZGl2PnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKKyAgICBjdXN0b21fZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxz
ZSkKKyAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVu
dHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdhJylbMF0iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQorICAgIHNo
YWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHJlc3BvbnNlID0g
ZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAicGFydGlhbCBsaW5rIHRleHQi
LCB2YWx1ZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnRfc2FtZV9l
bGVtZW50KHNlc3Npb24sIHZhbHVlLCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoInVzaW5nLHZhbHVlIiwgWygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCitk
ZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVl
KToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgi
PGRpdj48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3Vz
dG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9t
X2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Np
b24sIHNoYWRvd19yb290LmlkLCB1c2luZywgdmFsdWUpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCBlbGVtZW50IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvdXNl
cl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zODEzYTdkZjVkMzIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudF9mcm9tX3NoYWRvd19yb290L3VzZXJfcHJvbXB0cy5weQpAQCAtMCwwICsxLDEyOSBA
QAorIyBNRVRBOiB0aW1lb3V0PWxvbmcKKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAorICAgIGFzc2VydF9lcnJvciwKKyAgICBhc3NlcnRfc2Ft
ZV9lbGVtZW50LAorICAgIGFzc2VydF9zdWNjZXNzLAorICAgIGFzc2VydF9kaWFsb2dfaGFuZGxl
ZCwKKykKKworCitkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZh
bHVlKToKKyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1Qi
LCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnQiLmZvcm1h
dCgKKyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAg
ICAgZWxlbWVudF9pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5nIjogdXNpbmcsICJ2YWx1
ZSI6IHZhbHVlfSkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgZ2V0X3NoYWRv
d19wYWdlKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFk
b3dfcGFnZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQorICAgICAgICBvdXRlcl9lbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAg
ICAgICBzaGFkb3dfcm9vdCA9IG91dGVyX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICAgICAgaW5u
ZXJfZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0u
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdwJykiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShvdXRlcl9lbGVtZW50LCkpCisKKyAgICAgICAg
Y3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAgICBy
ZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyBzZWxl
Y3RvciIsICJwIikKKyAgICAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKwor
ICAgICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFs
b2dfdHlwZSwgZXhwZWN0ZWRfcmV0dmFsPXJldHZhbCkKKworICAgICAgICBhc3NlcnRfc2FtZV9l
bGVtZW50KHNlc3Npb24sIHZhbHVlLCBpbm5lcl9lbGVtZW50KQorCisgICAgcmV0dXJuIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QuZml4dHVy
ZQorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAgIHNl
c3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisgICAg
ICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1l
bnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5zaGFk
b3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9n
X3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93
X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19o
YW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZh
bD1yZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Ns
b3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFn
ZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2
PjxwPmJhcjwvcD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19y
b290ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2co
ZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5k
X2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisg
ICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisK
KyAgICAgICAgYXNzZXJ0IHNlc3Npb24uYWxlcnQudGV4dCA9PSBkaWFsb2dfdHlwZQorICAgICAg
ICBzZXNzaW9uLmFsZXJ0LmRpc21pc3MoKQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMo
eyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJhY2NlcHQifSkKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisg
ICAgKCJjb25maXJtIiwgVHJ1ZSksCisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3Rf
YWNjZXB0KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9n
X3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGll
cyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImFjY2VwdCBhbmQgbm90aWZ5In0pCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVy
dCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAor
XSkKK2RlZiB0ZXN0X2FjY2VwdF9hbmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVz
dC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRpc21pc3Mi
fSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAg
ICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0
IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzcyhjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisK
K0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJk
aXNtaXNzIGFuZCBub3RpZnkifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5
cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFs
c2UpLAorICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzc19hbmRfbm90
aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUs
IHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFu
ZGxlZFByb21wdEJlaGF2aW9yIjogImlnbm9yZSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJkaWFsb2dfdHlwZSIsIFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2RlZiB0ZXN0
X2lnbm9yZShjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24sIGRpYWxv
Z190eXBlKToKKyAgICBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
ZGlhbG9nX3R5cGUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwg
cmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSks
CisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kZWZhdWx0KGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy9maW5kLnB5CmluZGV4IGMxMzgxYTBlODJhYy4u
NDdmMDA5NzM5Mzg1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weQpAQCAtMyw3
ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBS
ZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNp
bmcsIHZhbHVlKToKQEAgLTQ4LDcgKzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9h
cmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFy
dGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwg
Ii8vYSIpXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToK
K2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgog
ICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSMgaWQ9
bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+IikKIApAQCAtNjUsNyArNjQsNyBAQCBkZWYgdGVz
dF9maW5kX2VsZW1lbnRzKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+
TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4
dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0p
Ci1kZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFs
dWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBk
b2N1bWVudCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8YSBocmVmPSM+bm90IHdhbnRlZDwvYT48YnIvPnswfSIuZm9ybWF0KGRvY3VtZW50KSkK
ICAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5s
aW5rc1sxXTsiKQpAQCAtODgsNyArODcsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xpbmtf
dGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwg
TElOSyBURVhUPC9hPiIsICJMSU5LIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJh
bnNmb3JtOiB1cHBlcmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQot
ZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVu
dCwgdmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNz
aW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9Ii5mb3Jt
YXQoZG9jdW1lbnQpKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0
dXJuIGRvY3VtZW50LmxpbmtzWzFdOyIpCkBAIC0xMTYsNyArMTE1LDcgQEAgZGVmIHRlc3Rfbm9f
ZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4
cGF0aCIsICIvLypbbmFtZSgpPSdhJ10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vz
c2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBp
bmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGEgaHJl
Zj0iIyIgaWQ9ImxpbmtUZXh0Ij5mdWxsIGxpbmsgdGV4dDwvYT4iIiIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmxpbmtzWzBdOyIpCkBAIC0xMzQsNyArMTMzLDcg
QEAgZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgWygiY3NzIHNlbGVjdG9yIiwgIjpyb290IiksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiaHRtbCIpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAoInhwYXRoIiwgIi9odG1sIildKQotZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNl
c3Npb24sIHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwgaW5s
aW5lLCB1c2luZywgdmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIHJl
c3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAgICAgdmFsdWUg
PSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVu
dHMvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDAxZWI4ZmYzYzg2My4uZjlhNDVlNTI3NTE1IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudHMvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkKQEAgLTgsNyAr
OCw2IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1
Y2Nlc3MsCiAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNp
bmcsIHZhbHVlKToKQEAgLTE4LDcgKzE3LDcgQEAgZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwg
dXNpbmcsIHZhbHVlKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxwPmJhcjwvcD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygicCIsIGFsbD1GYWxzZSkKQEAgLTM4LDcgKzM3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBA
cHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJhcjwvcD4iKQogCkBAIC01
Myw3ICs1Miw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPHA+YmFyPC9wPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmlu
ZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9l
bGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5weQppbmRleCA1YzI2N2JhNjQ3OWUuLmFlNmY5NzZl
OWY5NyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1l
bnQvZmluZC5weQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIu
dHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2Vzcwot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxl
bWVudHMoc2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKQEAgLTE0LDcgKzEzLDcg
QEAgZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToK
ICAgICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCiAKIAotZGVmIHRlc3Rf
bnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCk6CitkZWYgdGVzdF9udWxsX3BhcmFt
ZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4i
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKQEAg
LTU0LDcgKzUzLDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9u
LCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQi
LCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAi
YSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0
ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRf
ZWxlbWVudHMoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0g
OQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5m
dWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJkaXYiLCBhbGw9RmFsc2UpCkBAIC03MCw3ICs2OSw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVu
dHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+
IiwgIkxJTksgVEVYVCIpLAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTog
dXBwZXJjYXNlJz5saW5rIHRleHQ8L2E+IiwgIkxJTksgVEVYVCIpLAogXSkKLWRlZiB0ZXN0X2Zp
bmRfZWxlbWVudHNfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVz
dF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1
ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEg
aHJlZj0jPm5vdCB3YW50ZWQ8L2E+PGJyLz57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTk0LDcg
KzkzLDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1l
bnQsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4iLCAiTElO
SyIpLAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5w
YXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVu
dHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0
X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVu
dCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1l
bnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBA
IC0xMTAsNyArMTA5LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4
dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgidXNpbmcsdmFsdWUiLCBbKCJjc3Mgc2VsZWN0b3IiLCAiI3dvbnRFeGlzdCIpXSkKLWRlZiB0
ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X25vX2VsZW1l
bnQoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTEyNCw3ICsxMjMsNyBAQCBkZWYgdGVz
dF9ub19lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAoInhwYXRoIiwgIi8vKltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVzcGFj
ZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Np
b24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8
cD48YSBocmVmPSIjIiBpZD0ibGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPjwvcD4iIiIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQogICAgIGZyb21fZWxlbWVu
dCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInAiKSIiIikKQEAgLTEzOSw3ICsxMzgsNyBAQCBkZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uo
c2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24s
IGZvdW5kX2VsZW1lbnQsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9odG1sZG9jdW1l
bnQoc2Vzc2lvbik6CitkZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIpCiAgICAgZnJvbV9lbGVtZW50ID0gc2Vz
c2lvbi5leGVjdXRlX3NjcmlwdCgiIiJyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9k
eSIpIiIiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudCIpCkBAIC0xNTMsNyArMTUyLDcgQEAgZGVmIHRlc3RfcGFy
ZW50X2h0bWxkb2N1bWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Np
b24sIGZvdW5kX2VsZW1lbnQsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9vZl9kb2N1
bWVudF9ub2RlX2Vycm9ycyhzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9u
b2RlX2Vycm9ycyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIi
KQogICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQiKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJf
cHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGNhN2JjNzcz
NWQwOC4uNDY3YmVjMDlhMWJkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0
cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAg
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfc3VjY2VzcywK
ICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBlbGVtZW50X2lk
LCB1c2luZywgdmFsdWUpOgpAQCAtMjAsNyArMTksNyBAQCBkZWYgZmluZF9lbGVtZW50cyhzZXNz
aW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAg
ICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAt
NDEsNyArNDAsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNTcsNyArNTYsNyBA
QCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9i
dXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290
L2NvbmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iOGZjOTMzMTlmNDMKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudHNfZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5IEBACitpbXBv
cnQgcHl0ZXN0CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFnZShpbmxpbmUp
OgorICAgIGRlZiBnZXRfc2hhZG93X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAgICAgICByZXR1
cm4gaW5saW5lKCIiIgorICAgICAgICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVudD48L2N1c3Rv
bS1zaGFkb3ctZWxlbWVudD4KKyAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgICAg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAorICAgICAgICAg
ICAgICAgICAgICBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdHJ1Y3RvcigpIHt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1cGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoU2hh
ZG93KHt7bW9kZTogJ29wZW4nfX0pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHt7IHswfSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBgOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19CisgICAgICAgICAgICAgICAgICAg
IH19KTsKKyAgICAgICAgICAgIDwvc2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2NvbnRlbnQpKQor
ICAgIHJldHVybiBnZXRfc2hhZG93X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290
L2ZpbmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC9maW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uZjcwYTRiNDVhYWRiCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zy
b21fc2hhZG93X3Jvb3QvZmluZC5weQpAQCAtMCwwICsxLDE0NCBAQAoraW1wb3J0IHB5dGVzdAor
Citmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQs
IGFzc2VydF9zdWNjZXNzCisKKworZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X2lk
LCB1c2luZywgdmFsdWUpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAg
ICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRvd19pZH0vZWxl
bWVudHMiLmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lk
LAorICAgICAgICAgICAgc2hhZG93X2lkPXNoYWRvd19pZCksCisgICAgICAgIHsidXNpbmciOiB1
c2luZywgInZhbHVlIjogdmFsdWV9KQorCisKK2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVl
KHNlc3Npb24sIGh0dHAsIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+
PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCisgICAgY3Vz
dG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBh
bGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAor
CisgICAgcGF0aCA9ICIvc2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2Vs
ZW1lbnRzIi5mb3JtYXQoCisgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLCBz
aGFkb3dfaWQ9c2hhZG93X3Jvb3QuaWQpCisgICAgd2l0aCBodHRwLnBvc3QocGF0aCwgTm9uZSkg
YXMgcmVzcG9uc2U6CisgICAgICAgIGFzc2VydF9lcnJvcihSZXNwb25zZS5mcm9tX2h0dHAocmVz
cG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBmaW5kX2Vs
ZW1lbnRzKHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CisgICAgcmVzcG9uc2UgPSBm
aW5kX2VsZW1lbnRzKHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQor
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nIiwgWygiYSIpLCAoVHJ1ZSksIChOb25lKSwgKDEpLCAo
W10pLCAoe30pXSkKK2RlZiB0ZXN0X2ludmFsaWRfdXNpbmdfYXJndW1lbnQoc2Vzc2lvbiwgdXNp
bmcpOgorICAgICMgU3RlcCAxIC0gMgorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNz
aW9uLCAibm90UmVhbCIsIHVzaW5nLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFs
dWUiLCBbTm9uZSwgW10sIHt9XSkKK2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQo
c2Vzc2lvbiwgdmFsdWUpOgorICAgICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0gZmluZF9l
bGVtZW50cyhzZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCB2YWx1ZSkKKyAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikKKworCitkZWYgdGVzdF9k
ZXRhY2hlZF9zaGFkb3dfcm9vdChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Np
b24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPjwv
ZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hh
ZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVu
dC5zaGFkb3dfcm9vdAorICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXNwb25zZSA9IGZp
bmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAiaW5wdXQiKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgImRldGFjaGVkIHNoYWRvdyByb290IikKKworCitkZWYg
dGVzdF9maW5kX2VsZW1lbnRzX2VxdWl2YWxlbmNlKHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6
CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IGlkPSdjaGVj
aycgdHlwZT0nY2hlY2tib3gnLz48aW5wdXQgaWQ9J3RleHQnLz48L2Rpdj4iKQorICAgIGN1c3Rv
bV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxs
PUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAg
ICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mi
LCAiaW5wdXQiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFso
ImNzcyBzZWxlY3RvciIsICIjbGlua1RleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJsaW5rIHRleHQiLCAiZnVsbCBsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgi
eHBhdGgiLCAiLy9hIildKQorZGVmIHRlc3RfZmluZF9lbGVtZW50cyhzZXNzaW9uLCBnZXRfc2hh
ZG93X3BhZ2UsIHVzaW5nLCB2YWx1ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lvbi51
cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGlu
ayB0ZXh0PC9hPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBj
dXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhz
ZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgdXNpbmcsIHZhbHVlKQorICAgIGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUi
LCBbCisgICAgKCI8YSBocmVmPSM+bGluayB0ZXh0PC9hPiIsICJsaW5rIHRleHQiKSwKKyAgICAo
IjxhIGhyZWY9Iz4mbmJzcDtsaW5rIHRleHQmbmJzcDs8L2E+IiwgImxpbmsgdGV4dCIpLAorICAg
ICgiPGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4iLCAibGlua1xudGV4dCIpLAorICAgICgiPGEg
aHJlZj0jPmxpbmsmYW1wO3RleHQ8L2E+IiwgImxpbmsmdGV4dCIpLAorICAgICgiPGEgaHJlZj0j
PkxJTksgVEVYVDwvYT4iLCAiTElOSyBURVhUIiksCisgICAgKCI8YSBocmVmPSMgc3R5bGU9J3Rl
eHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4iLCAiTElOSyBURVhUIiksCitd
KQorZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19w
YWdlLCBkb2N1bWVudCwgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJs
ID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9
PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJkaXYiLCBhbGw9RmFsc2UpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBj
dXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwo
J2EnKVsxXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1
c3RvbV9lbGVtZW50LCkpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwg
c2hhZG93X3Jvb3QuaWQsICJsaW5rIHRleHQiLCB2YWx1ZSkKKyAgICB2YWx1ZSA9IGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KQorICAg
IGFzc2VydCBsZW4odmFsdWUpID09IDEKKworICAgIGZvdW5kX2VsZW1lbnQgPSB2YWx1ZVswXQor
ICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZm91bmRfZWxlbWVudCwgZXhwZWN0ZWQp
CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2YWx1ZSIsIFsKKyAgICAo
IjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJl
Zj0jPiZuYnNwO3BhcnRpYWwgbGluayB0ZXh0Jm5ic3A7PC9hPiIsICJsaW5rIiksCisgICAgKCI8
YSBocmVmPSM+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgImsgdCIpLAorICAgICgiPGEgaHJlZj0j
PnBhcnRpYWwgbGluazxicj50ZXh0PC9hPiIsICJrXG50IiksCisgICAgKCI8YSBocmVmPSM+cGFy
dGlhbCBsaW5rJmFtcDt0ZXh0PC9hPiIsICJrJnQiKSwKKyAgICAoIjxhIGhyZWY9Iz5QQVJUSUFM
IExJTksgVEVYVDwvYT4iLCAiTElOSyIpLAorICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRy
YW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAorXSkK
K2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3No
YWRvd19wYWdlLCBkb2N1bWVudCwgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Np
b24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxi
ci8+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jv
b3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5l
eGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3JBbGwoJ2EnKVsxXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy
Z3M9KGN1c3RvbV9lbGVtZW50LCkpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vz
c2lvbiwgc2hhZG93X3Jvb3QuaWQsICJwYXJ0aWFsIGxpbmsgdGV4dCIsIHZhbHVlKQorICAgIHZh
bHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFs
dWUsIGxpc3QpCisgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gMQorCisgICAgZm91bmRfZWxlbWVu
dCA9IHZhbHVlWzBdCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBmb3VuZF9lbGVt
ZW50LCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVl
IiwgWygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCitkZWYgdGVzdF9ub19lbGVtZW50
KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAt
IDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48L2Rpdj4iKQorICAg
IGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50
IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jv
b3QKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQs
IHVzaW5nLCB2YWx1ZSkKKyAgICBhc3NlcnQgcmVzcG9uc2UuYm9keVsidmFsdWUiXSA9PSBbXQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hh
ZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uYzRiOTAzYzgzNmVmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jv
b3QvdXNlcl9wcm9tcHRzLnB5CkBAIC0wLDAgKzEsMTMxIEBACisjIE1FVEE6IHRpbWVvdXQ9bG9u
ZworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAo
CisgICAgYXNzZXJ0X2Vycm9yLAorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQsCisgICAgYXNzZXJ0
X3N1Y2Nlc3MsCisgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAorKQorCisKK2RlZiBmaW5kX2Vs
ZW1lbnRzKHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZhbHVlKToKKyAgICByZXR1cm4gc2Vz
c2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9p
ZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnRzIi5mb3JtYXQoCisgICAgICAgICAgICBzZXNz
aW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9c2hhZG93
X2lkKSwKKyAgICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCisKKworQHB5
dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFy
PC9wPjxkaXY+IikKKyAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1
c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBv
dXRlcl9lbGVtZW50LnNoYWRvd19yb290CisgICAgICAgIGlubmVyX2VsZW1lbnQgPSBzZXNzaW9u
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcigncCcpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXJncz0ob3V0ZXJfZWxlbWVudCwpKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9n
X3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1l
bnRzKHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAg
ICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZSh2YWx1ZSwgbGlzdCkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gMQorCisgICAg
ICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190
eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQorCisgICAgICAgIGFzc2VydF9zYW1lX2VsZW1l
bnQoc2Vzc2lvbiwgdmFsdWVbMF0sIGlubmVyX2VsZW1lbnQpCisKKyAgICByZXR1cm4gY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJl
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vz
c2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAgICAg
ICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVu
dCIsIGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNoYWRv
d19yb290CisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2df
dHlwZSkKKworICAgICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93
X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19o
YW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZh
bD1yZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Ns
b3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFn
ZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2
PjxwPmJhcjwvcD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19y
b290ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2co
ZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5k
X2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQor
ICAgICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJ1bmV4cGVjdGVkIGFsZXJ0IG9wZW4iKQor
CisgICAgICAgIGFzc2VydCBzZXNzaW9uLmFsZXJ0LnRleHQgPT0gZGlhbG9nX3R5cGUKKyAgICAg
ICAgc2Vzc2lvbi5hbGVydC5kaXNtaXNzKCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24KKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVz
KHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0In0pCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAor
ICAgICgiY29uZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0
X2FjY2VwdChjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRpYWxv
Z190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRp
ZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJhY2NlcHQgYW5kIG5vdGlmeSJ9KQorQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxl
cnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwK
K10pCitkZWYgdGVzdF9hY2NlcHRfYW5kX25vdGlmeShjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRl
c3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNz
In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisg
ICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21w
dCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3MoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKwor
CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAi
ZGlzbWlzcyBhbmQgbm90aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190
eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZh
bHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3NfYW5kX25v
dGlmeShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBl
LCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhh
bmRsZWRQcm9tcHRCZWhhdmlvciI6ICJpZ25vcmUifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgiZGlhbG9nX3R5cGUiLCBbImFsZXJ0IiwgImNvbmZpcm0iLCAicHJvbXB0Il0pCitkZWYgdGVz
dF9pZ25vcmUoY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uLCBkaWFs
b2dfdHlwZSk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUs
IHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2Up
LAorICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGVmYXVsdChjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAg
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9mb3J3YXJkL2ZvcndhcmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZvcndhcmQvZm9yd2FyZC5weQppbmRleCA0YTFlMjE1ODE1MTguLjk3YTkz
NWM4Y2Q4MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9mb3J3YXJkL2ZvcndhcmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL2ZvcndhcmQucHkKQEAgLTEsNSArMSw3IEBACitp
bXBvcnQgcHl0ZXN0Citmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKKwogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmb3J3YXJkKHNlc3Np
b24pOgpAQCAtNyw3ICs5LDcgQEAgZGVmIGZvcndhcmQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NU
IiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2ZvcndhcmQiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikp
KQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9u
dWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxkaXY+IikKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+IikKICAgICBzZXNz
aW9uLmJhY2soKQpAQCAtMjcsNyArMjksNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAK
IAotZGVmIHRlc3Rfbm9fYnJvd3NpbmdfaGlzdG9yeShzZXNzaW9uKToKK2RlZiB0ZXN0X25vX2Jy
b3dzaW5nX2hpc3Rvcnkoc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmwgPSBpbmxpbmUoIjxkaXYg
aWQ9Zm9vPiIpCiAKICAgICBzZXNzaW9uLnVybCA9IHVybApAQCAtNDAsNyArNDIsNyBAQCBkZWYg
dGVzdF9ub19icm93c2luZ19oaXN0b3J5KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnBy
b3BlcnR5KCJpZCIpID09ICJmb28iCiAKIAotZGVmIHRlc3RfZGF0YV91cmxzKHNlc3Npb24pOgor
ZGVmIHRlc3RfZGF0YV91cmxzKHNlc3Npb24sIGlubGluZSk6CiAgICAgdGVzdF9wYWdlcyA9IFsK
ICAgICAgICAgaW5saW5lKCI8cCBpZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+Iiks
CkBAIC01Nyw3ICs1OSw3IEBAIGRlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uKToKICAgICBhc3Nl
cnQgc2Vzc2lvbi51cmwgPT0gdGVzdF9wYWdlc1sxXQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9i
ZWZvcmV1bmxvYWQoc2Vzc2lvbik6CitkZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNl
c3Npb24sIGlubGluZSk6CiAgICAgdXJsX2JlZm9yZXVubG9hZCA9IGlubGluZSgiIiIKICAgICAg
IDxpbnB1dCB0eXBlPSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CkBAIC0xMDUsNyArMTA3LDcgQEAg
ZGVmIHRlc3RfZnJhZ21lbnRzKHNlc3Npb24sIHVybCk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJs
ID09IHRlc3RfcGFnZXNbMl0KIAogCi1kZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9u
LCB1cmwpOgorZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBwdXNoc3RhdGVfcGFnZSA9IGlubGluZSgiIiIKICAgICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1
bmN0aW9uIHB1c2hTdGF0ZSgpIHsKQEAgLTEzMCwzICsxMzIsNDUgQEAgZGVmIHRlc3RfaGlzdG9y
eV9wdXNoc3RhdGUoc2Vzc2lvbiwgdXJsKToKIAogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSAi
e30jcHVzaHN0YXRlIi5mb3JtYXQocHVzaHN0YXRlX3BhZ2UpCiAgICAgYXNzZXJ0IHNlc3Npb24u
ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBoaXN0b3J5LnN0YXRlOyIpID09IHsiZm9vIjogImJhciJ9
CisKKworZGVmIHRlc3RfcmVtb3ZlZF9pZnJhbWUoc2Vzc2lvbiwgdXJsLCBpbmxpbmUpOgorICAg
IHBhZ2UgPSBpbmxpbmUoIjxwPmZvbyIpCisKKyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbCIpCisgICAgc2Vz
c2lvbi51cmwgPSBwYWdlCisKKyAgICBzZXNzaW9uLmJhY2soKQorCisgICAgc3ViZnJhbWUgPSBz
ZXNzaW9uLmZpbmQuY3NzKCIjc3ViLWZyYW1lIiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24uc3dp
dGNoX2ZyYW1lKHN1YmZyYW1lKQorCisgICAgcmVzcG9uc2UgPSBmb3J3YXJkKHNlc3Npb24pCisg
ICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0g
cGFnZQorCisKKyMgQ2FwYWJpbGl0eSBuZWVkZWQgYXMgbG9uZyBhcyBubyB2YWxpZCBjZXJ0aWZp
Y2F0ZSBpcyBhdmFpbGFibGU6CisjICAgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvaXNzdWVzLzI4ODQ3CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0
SW5zZWN1cmVDZXJ0cyI6IFRydWV9KQorZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIHVy
bCk6CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJm
cmFtZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwoYmFzZV9w
YXRoLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2VfcGF0aCwg
cHJvdG9jb2w9Imh0dHBzIiwgZG9tYWluPSJhbHQiKQorCisgICAgc2Vzc2lvbi51cmwgPSBmaXJz
dF9wYWdlCisgICAgc2Vzc2lvbi51cmwgPSBzZWNvbmRfcGFnZQorICAgIHNlc3Npb24uYmFjaygp
CisKKyAgICBlbGVtID0gc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKwor
ICAgIHJlc3BvbnNlID0gZm9yd2FyZChzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3Bv
bnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHNlY29uZF9wYWdlCisKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoZXJyb3IuU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAg
ICAgICAgZWxlbS5jbGljaygpCisgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUi
LCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZvcndhcmQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQppbmRleCBl
NWVlYThmNDQ1NzEuLjNlZWFmNmU3MWNkYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQvdXNlcl9w
cm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3Is
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZm9yd2FyZChzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGZvcndhcmQo
c2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgcGFnZXMoc2Vzc2lvbik6CitkZWYg
cGFnZXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBwYWdlcyA9IFsKICAgICAgICAgaW5saW5lKCI8
cCBpZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVu
dC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9hY3RpdmVfZWxlbWVudC9nZXQucHkKaW5kZXggN2Y4MjFmM2E0MGQ1Li4xMDg1YWQ4MmYxOGYg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2FjdGl2ZV9lbGVtZW50L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC9nZXQucHkKQEAgLTEsNSArMSw0
IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3Nl
cnRfaXNfYWN0aXZlX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgcmVhZF9nbG9iYWwoc2Vzc2lvbiwgbmFtZSk6
CkBAIC0yMSw3ICsyMCw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRv
dyIpCiAKIAotZGVmIHRlc3Rfc3VjY2Vzc19kb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3N1
Y2Nlc3NfZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICA8aDE+SGVhZGluZzwvaDE+CkBAIC0z
Niw3ICszNSw3IEBAIGRlZiB0ZXN0X3N1Y2Nlc3NfZG9jdW1lbnQoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3Vj
ZXNzX2lucHV0KHNlc3Npb24pOgorZGVmIHRlc3Rfc3VjZXNzX2lucHV0KHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxib2R5PgogICAgICAg
ICAgICAgPGgxPkhlYWRpbmc8L2gxPgpAQCAtNTAsNyArNDksNyBAQCBkZWYgdGVzdF9zdWNlc3Nf
aW5wdXQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVs
ZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjZXNzX2lucHV0X25vbl9pbnRlcmFjdGFibGUoc2Vzc2lv
bik6CitkZWYgdGVzdF9zdWNlc3NfaW5wdXRfbm9uX2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keT4KICAgICAg
ICAgICAgIDxoMT5IZWFkaW5nPC9oMT4KQEAgLTY0LDcgKzYzLDcgQEAgZGVmIHRlc3Rfc3VjZXNz
X2lucHV0X25vbl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9l
bGVtZW50KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjY2Vzc19leHBsaWNpdF9m
b2N1cyhzZXNzaW9uKToKK2RlZiB0ZXN0X3N1Y2Nlc3NfZXhwbGljaXRfZm9jdXMoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGJvZHk+CiAg
ICAgICAgICAgICA8aDE+SGVhZGluZzwvaDE+CkBAIC0xMDUsNyArMTA0LDcgQEAgZGVmIHRlc3Rf
c3VjY2Vzc19leHBsaWNpdF9mb2N1cyhzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2Vs
ZW1lbnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9zdWNjZXNzX2lmcmFtZV9jb250
ZW50KHNlc3Npb24pOgorZGVmIHRlc3Rfc3VjY2Vzc19pZnJhbWVfY29udGVudChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8Ym9keT48L2JvZHk+IikKICAgICBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiIgogICAgICAgICBsZXQgaWZyYW1lID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CkBAIC0xMjAsNyArMTE5LDcgQEAgZGVmIHRlc3Rfc3Vj
Y2Vzc19pZnJhbWVfY29udGVudChzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1l
bnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9taXNzaW5nX2RvY3VtZW50X2VsZW1l
bnQoc2Vzc2lvbik6CitkZWYgdGVzdF9taXNzaW5nX2RvY3VtZW50X2VsZW1lbnQoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJvZHk+PC9ib2R5PiIpCiAgICAg
c2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgiIiIKICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkucmVt
b3ZlKSB7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3By
b21wdHMucHkKaW5kZXggN2ZhN2JlMWRkZTk5Li4xZmY3NzY5N2I3MDcgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVt
ZW50L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyAr
OCw2IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X2lz
X2FjdGl2ZV9lbGVtZW50LAogICAgIGFzc2VydF9zdWNjZXNzCiApCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Np
b24pOgpAQCAtMTcsNyArMTYsNyBAQCBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Npb24pOgog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHR5cGU9dGV4dD4iKQogCkBAIC0zNCw3ICszMyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5
dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAK
QEAgLTQ5LDcgKzQ4LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWxl
cnRfdGV4dC9nZXQucHkKaW5kZXggYjY0Njc4NjUzZTA4Li43ZWU3ZmYxODA4ZjkgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0
X3RleHQvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5CkBAIC0xLDkgKzEsNiBAQAotZnJvbSBzaXggaW1w
b3J0IHRleHRfdHlwZQotCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRF
eGNlcHRpb24KIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJv
ciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0yNywzNiArMjQs
MzYgQEAgZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCiAKIAotZGVmIHRlc3RfZ2V0X2FsZXJ0X3RleHQo
c2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfYWxlcnRfdGV4dChzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5hbGVydCgnSGVsbG8nKTs8L3Nj
cmlwdD4iKQogICAgIHJlc3BvbnNlID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3Nl
cnRfc3VjY2VzcyhyZXNwb25zZSkKICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5
LCBkaWN0KQogICAgIGFzc2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBhbGVydF90
ZXh0ID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQotICAgIGFzc2VydCBpc2luc3RhbmNlKGFsZXJ0
X3RleHQsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShhbGVydF90ZXh0LCBzdHIp
CiAgICAgYXNzZXJ0IGFsZXJ0X3RleHQgPT0gIkhlbGxvIgogCiAKLWRlZiB0ZXN0X2dldF9jb25m
aXJtX3RleHQoc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfY29uZmlybV90ZXh0KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmNvbmZpcm0o
J0hlbGxvJyk7PC9zY3JpcHQ+IikKICAgICByZXNwb25zZSA9IGdldF9hbGVydF90ZXh0KHNlc3Np
b24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
cmVzcG9uc2UuYm9keSwgZGljdCkKICAgICBhc3NlcnQgInZhbHVlIiBpbiByZXNwb25zZS5ib2R5
CiAgICAgY29uZmlybV90ZXh0ID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQotICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvbmZpcm1fdGV4dCwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvbmZpcm1fdGV4dCwgc3RyKQogICAgIGFzc2VydCBjb25maXJtX3RleHQgPT0gIkhlbGxvIgog
CiAKLWRlZiB0ZXN0X2dldF9wcm9tcHRfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2dldF9wcm9t
cHRfdGV4dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2Ny
aXB0PndpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3Njcmlw
dD4iKQogICAgIHJlc3BvbnNlID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRf
c3VjY2VzcyhyZXNwb25zZSkKICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBk
aWN0KQogICAgIGFzc2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBwcm9tcHRfdGV4
dCA9IHJlc3BvbnNlLmJvZHlbInZhbHVlIl0KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShwcm9tcHRf
dGV4dCwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHByb21wdF90ZXh0LCBzdHIp
CiAgICAgYXNzZXJ0IHByb21wdF90ZXh0ID09ICJFbnRlciBZb3VyIE5hbWU6ICIKIAogCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9j
b21wdXRlZF9sYWJlbC9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX2xhYmVsL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9s
YWJlbC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9jb21wdXRlZF9sYWJlbC9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi4zOTA0YzZjZTQxZjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9nZXQucHkK
QEAgLTAsMCArMSwzNiBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZlci5lcnJvciBp
bXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQorCisKK2RlZiBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwg
ZWxlbWVudCk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJH
RVQiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vY29tcHV0ZWRs
YWJlbCIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQs
CisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQpKQorCisKK2RlZiB0ZXN0X25vX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBnZXRf
Y29tcHV0ZWRfbGFiZWwoc2Vzc2lvbikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBz
dWNoIHdpbmRvdyIpCisKKworZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CisgICAg
cmVzcG9uc2UgPSBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbikKKyAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIGFsZXJ0IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
Imh0bWwsdGFnLGxhYmVsIiwgWworICAgICgiPGJ1dHRvbj5vazwvYnV0dG9uPiIsICJidXR0b24i
LCAib2siKSwKKyAgICAoIjxidXR0b24gYXJpYS1sYWJlbGxlZGJ5PVwib25lIHR3b1wiPjwvYnV0
dG9uPjxkaXYgaWQ9b25lPm9rPC9kaXY+PGRpdiBpZD10d28+Z288L2Rpdj4iLCAiYnV0dG9uIiwg
Im9rIGdvIiksCisgICAgKCI8YnV0dG9uIGFyaWEtbGFiZWw9Zm9vPmJhcjwvYnV0dG9uPiIsICJi
dXR0b24iLCAiZm9vIiksCisgICAgKCI8bGFiZWw+PGlucHV0PiBmb288L2xhYmVsPiIsICJpbnB1
dCIsICJmb28iKSwKKyAgICAoIjxsYWJlbCBmb3I9Yj5mb288bGFiZWw+PGlucHV0IGlkPWI+Iiwg
ImlucHV0IiwgImZvbyIpXSkKK2RlZiB0ZXN0X2dldF9jb21wdXRlZF9sYWJlbChzZXNzaW9uLCBo
dG1sLCB0YWcsIGxhYmVsKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiezB9Ii5mb3JtYXQo
dGFnKSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWcsIGFsbD1GYWxzZSkKKyAg
ICByZXN1bHQgPSBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBh
c3NlcnRfc3VjY2VzcyhyZXN1bHQsIGxhYmVsKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9fX2luaXRfXy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1
dGVkX3JvbGUvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX3JvbGUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9nZXQucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMGZkNjI4ZjE1NmIKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9jb21wdXRlZF9yb2xlL2dldC5weQpAQCAtMCwwICsxLDM0IEBACitpbXBvcnQgcHl0
ZXN0CisKK2Zyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgor
Citmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRf
c3VjY2VzcworZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCisKKworZGVm
IGdldF9jb21wdXRlZF9yb2xlKHNlc3Npb24sIGVsZW1lbnQpOgorICAgIHJldHVybiBzZXNzaW9u
LnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2Vs
ZW1lbnQve2VsZW1lbnRfaWR9L2NvbXB1dGVkcm9sZSIuZm9ybWF0KAorICAgICAgICAgICAgc2Vz
c2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1l
bnQpKQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dp
bmRvdyk6CisgICAgcmVzcG9uc2UgPSBnZXRfY29tcHV0ZWRfcm9sZShzZXNzaW9uLCAiaWQiKQor
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVz
dF9ub191c2VyX3Byb21wdChzZXNzaW9uKToKKyAgICByZXNwb25zZSA9IGdldF9jb21wdXRlZF9y
b2xlKHNlc3Npb24sICJpZCIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBh
bGVydCIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJodG1sLHRhZyxleHBlY3RlZCIs
IFsKKyAgICAoIjxsaSByb2xlPW1lbnVpdGVtPmZvbyIsICJsaSIsICJtZW51IiksCisgICAgKCI8
aW5wdXQgcm9sZT1zZWFyY2hib3g+IiwgImlucHV0IiwgInNlYXJjaGJveCIpLAorICAgICgiPGlt
ZyByb2xlPXByZXNlbnRhdGlvbj4iLCAiaW1nIiwgInByZXNlbnRhdGlvbiIpXSkKK2RlZiB0ZXN0
X2NvbXB1dGVkX3JvbGVzKHNlc3Npb24sIGh0bWwsIHRhZywgZXhwZWN0ZWQpOgorICAgIHNlc3Np
b24udXJsID0gaW5saW5lKGh0bWwpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFn
LCBhbGw9RmFsc2UpCisgICAgcmVzdWx0ID0gZ2V0X2NvbXB1dGVkX3JvbGUoc2Vzc2lvbiwgZWxl
bWVudC5pZCkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsIGV4cGVjdGVkKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVu
dF91cmwvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfY3VycmVudF91cmwvZ2V0LnB5CmluZGV4IDAzODNhOGFiYTllOS4uMWNhMTNhMWE2ZDVl
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9jdXJyZW50X3VybC9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvZ2V0LnB5CkBAIC0xLDExICsxLDEyIEBA
Ci1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCitpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMu
c3VwcG9ydCBpbXBvcnQgcGxhdGZvcm1fbmFtZQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc3VjY2VzcwogCi1kb2MgPSBpbmxpbmUoIjxwPmZyYW1lIikKLWFsZXJ0X2Rv
YyA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoKTwvc2NyaXB0PiIpCisKK0BweXRlc3Qu
Zml4dHVyZQorZGVmIGRvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjxwPmZyYW1lIikK
IAogCiBkZWYgZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pOgpAQCAtMTgsMTQgKzE5LDE0IEBAIGRl
ZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVz
dF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9u
b19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgZG9jKToKICAgICBzZXNz
aW9uLnVybCA9IGRvYwogCiAgICAgcmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikK
ICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgZG9jKQogCiAKLWRlZiB0ZXN0X2dldF9jdXJy
ZW50X3VybF9tYXRjaGVzX2xvY2F0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2N1cnJlbnRf
dXJsX21hdGNoZXNfbG9jYXRpb24oc2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRv
YwogCiAgICAgcmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKQEAgLTM3LDcgKzM4
LDcgQEAgZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX3BheWxvYWQoc2Vzc2lvbik6CiAKICAgICBy
ZXNwb25zZSA9IGdldF9jdXJyZW50X3VybChzZXNzaW9uKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSkK
KyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKQogCiAKIGRlZiB0ZXN0X2dldF9jdXJy
ZW50X3VybF9zcGVjaWFsX3BhZ2VzKHNlc3Npb24pOgpAQCAtNzYsNyArNzcsNyBAQCBkZWYgdGVz
dF9zZXRfbWFsZm9ybWVkX3VybChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJpbnZhbGlkIGFyZ3VtZW50IikKIAogCi1kZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0ZXJf
bW9kaWZpZWRfbG9jYXRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0
ZXJfbW9kaWZpZWRfbG9jYXRpb24oc2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRv
YwogCiAgICAgcmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRf
dXJsL2lmcmFtZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weQppbmRleCA5NDRlNjFiNTgzZmQuLjgwYTk2MGNl
OGExNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9nZXRfY3VycmVudF91cmwvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weQpAQCAtMSw3
ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJh
bWUsIGlubGluZQogCiAKICIiIgpAQCAtMTUsOSArMTQsMjAgQEAgYWxzbyBlbmZvcmNlIHByb2Nl
c3MgaXNvbGF0aW9uIGJhc2VkIG9uIHNpdGUgb3JpZ2luLgogVGhpcyBpcyBrbm93biB0byBzb21l
dGltZXMgY2F1c2UgcHJvYmxlbXMgZm9yIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbnMuCiAiIiIK
IAotZnJhbWVfZG9jID0gaW5saW5lKCI8cD5mcmFtZSIpCi1vbmVfZnJhbWVfZG9jID0gaW5saW5l
KCI8aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCi1uZXN0ZWRfZnJhbWVz
X2RvYyA9IGlubGluZSgiPGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgb25lX2ZyYW1lX2Rv
YykKKworQHB5dGVzdC5maXh0dXJlCitkZWYgZnJhbWVfZG9jKGlubGluZSk6CisgICAgcmV0dXJu
IGlubGluZSgiPHA+ZnJhbWUiKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG9uZV9mcmFtZV9k
b2MoaW5saW5lLCBmcmFtZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUoIjxpZnJhbWUgc3JjPScl
cyc+PC9pZnJhbWU+IiAlIGZyYW1lX2RvYykKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBuZXN0
ZWRfZnJhbWVzX2RvYyhpbmxpbmUsIG9uZV9mcmFtZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUo
IjxpZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCiAKIAogZGVmIGdl
dF9jdXJyZW50X3VybChzZXNzaW9uKToKQEAgLTI1LDcgKzM1LDcgQEAgZGVmIGdldF9jdXJyZW50
X3VybChzZXNzaW9uKToKICAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS91cmwi
LmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToK
K2RlZiB0ZXN0X2lmcmFtZShzZXNzaW9uLCBvbmVfZnJhbWVfZG9jKToKICAgICB0b3BfbGV2ZWxf
ZG9jID0gb25lX2ZyYW1lX2RvYwogICAgIHNlc3Npb24udXJsID0gdG9wX2xldmVsX2RvYwogCkBA
IC0zNyw3ICs0Nyw3IEBAIGRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3Vj
Y2VzcyhyZXNwb25zZSwgdG9wX2xldmVsX2RvYykKIAogCi1kZWYgdGVzdF9uZXN0ZWRfaWZyYW1l
KHNlc3Npb24pOgorZGVmIHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uLCBuZXN0ZWRfZnJhbWVz
X2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBuZXN0ZWRfZnJhbWVzX2RvYwogICAgIHRvcF9sZXZl
bF9kb2MgPSBzZXNzaW9uLnVybAogCkBAIC01Myw3ICs2Myw3IEBAIGRlZiB0ZXN0X25lc3RlZF9p
ZnJhbWUoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb21haW4iLCBb
IiIsICJhbHQiXSwgaWRzPVsic2FtZV9vcmlnaW4iLCAiY3Jvc3Nfb3JpZ2luIl0pCi1kZWYgdGVz
dF9vcmlnaW4oc2Vzc2lvbiwgZG9tYWluLCB1cmwpOgorZGVmIHRlc3Rfb3JpZ2luKHNlc3Npb24s
IGlubGluZSwgaWZyYW1lLCBkb21haW4pOgogICAgIHRvcF9sZXZlbF9kb2MgPSBpbmxpbmUoaWZy
YW1lKCI8cD5mcmFtZSIsIGRvbWFpbj1kb21haW4pKQogCiAgICAgc2Vzc2lvbi51cmwgPSB0b3Bf
bGV2ZWxfZG9jCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21w
dHMucHkKaW5kZXggZjBlOTVkMTJmMTRlLi5kNjU3YzE4ODI0MWQgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL3Vz
ZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBp
bXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfY3VycmVudF91cmwoc2Vz
c2lvbik6CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lvbik6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlh
bG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0x
PiIpCiAgICAgICAgIGV4cGVjdGVkX3VybCA9IHNlc3Npb24udXJsCkBAIC0yNyw3ICsyNiw3IEBA
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8cCBpZD0xPiIpCiAKQEAgLTQyLDcgKzQxLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIpCiAKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
YXR0cmlidXRlL2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dldC5weQppbmRleCBiMThkOWNhOGIyMmEuLjUy
OGNiZDI5ZjAyMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dl
dC5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9hdHRyaWJ1
dGUoc2Vzc2lvbiwgZWxlbWVudCwgYXR0cik6CkBAIC0xMyw4ICsxMiwxNCBAQCBkZWYgZ2V0X2Vs
ZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgogCiAKIGRlZiB0ZXN0X25v
X3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdp
bmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9l
bGVtZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaWQiKQorICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9lbGVt
ZW50X2F0dHJpYnV0ZShzZXNzaW9uLCAiZm9vIiwgImlkIikKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3Jp
Z2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lv
biwgZWxlbWVudC5pZCwgImlkIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IGVsZW1lbnQiKQogCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xv
c2VkX2ZyYW1lKToKQEAgLTI4LDcgKzMzLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQo
c2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAK
IAotZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3Rh
bGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlk
PWZvbz4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtMzYsNyArNDEsNyBAQCBkZWYgdGVzdF9lbGVt
ZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVt
ZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3Rfbm9ybWFsKHNlc3Npb24pOgorZGVmIHRlc3Rf
bm9ybWFsKHNlc3Npb24sIGlubGluZSk6CiAgICAgIyAxMy4yIFN0ZXAgNQogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1jaGVja2JveD4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTczLDcgKzc4LDcgQEAgZGVmIHRl
c3Rfbm9ybWFsKHNlc3Npb24pOgogICAgICgidHJhY2siLCBbImRlZmF1bHQiXSksCiAgICAgKCJ2
aWRlbyIsIFsiYXV0b3BsYXkiLCAiY29udHJvbHMiLCAibG9vcCIsICJtdXRlZCJdKQogXSkKLWRl
ZiB0ZXN0X2Jvb2xlYW5fYXR0cmlidXRlKHNlc3Npb24sIHRhZywgYXR0cnMpOgorZGVmIHRlc3Rf
Ym9vbGVhbl9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lLCB0YWcsIGF0dHJzKToKICAgICBmb3Ig
YXR0ciBpbiBhdHRyczoKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7MH0gezF9PiIu
Zm9ybWF0KHRhZywgYXR0cikpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKHRh
ZywgYWxsPUZhbHNlKQpAQCAtODEsNyArODYsNyBAQCBkZWYgdGVzdF9ib29sZWFuX2F0dHJpYnV0
ZShzZXNzaW9uLCB0YWcsIGF0dHJzKToKICAgICAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAi
dHJ1ZSIpCiAKIAotZGVmIHRlc3RfZ2xvYmFsX2Jvb2xlYW5fYXR0cmlidXRlcyhzZXNzaW9uKToK
K2RlZiB0ZXN0X2dsb2JhbF9ib29sZWFuX2F0dHJpYnV0ZXMoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAgaGlkZGVuPmZvbyIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAgICAgcmVzdWx0ID0gZ2V0X2VsZW1lbnRf
YXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQuaWQsICJoaWRkZW4iKQpAQCAtMTAzLDMgKzEwOCwx
NCBAQCBkZWYgdGVzdF9nbG9iYWxfYm9vbGVhbl9hdHRyaWJ1dGVzKHNlc3Npb24pOgogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogICAgIHJlc3VsdCA9IGdl
dF9lbGVtZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaXRlbXNjb3BlIikKICAg
ICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsIE5vbmUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJpc19yZWxhdGl2ZSIsIFtUcnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29s
dXRlIl0pCitkZWYgdGVzdF9hbmNob3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVs
YXRpdmUpOgorICAgIGhyZWYgPSAiL2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgi
L2Zvby5odG1sIikKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9v
PC9hPiIuZm9ybWF0KGhyZWYpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwg
YWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lv
biwgZWxlbWVudC5pZCwgImhyZWYiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBocmVm
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9w
cm9tcHRzLnB5CmluZGV4IDVlZTc5MjlhZmRmOC4uMDA5Y2IxZTVmYTFlIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0
dHJpYnV0ZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5CkBA
IC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0
X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgpAQCAtMTUsNyArMTQs
NyBAQCBkZWYgZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFs
bD1GYWxzZSkKQEAgLTMxLDcgKzMwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAg
ICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00Nyw3ICs0Niw3
IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
I2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVl
L2dldC5weQppbmRleCA0ZTg3MDRkNTBhZjkuLjM2OWNhOWM2OTlmOCAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3Nf
dmFsdWUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNz
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2Vs
ZW1lbnRfY3NzX3ZhbHVlKHNlc3Npb24sIGVsZW1lbnRfaWQsIHByb3ApOgpAQCAtMTQsOSArMTMs
MTYgQEAgZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9w
KToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRf
d2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93Cisg
ICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudC5pZCwg
ImRpc3BsYXkiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikK
ICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCAiZm9vIiwgImJh
ciIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAg
c2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBn
ZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImRpc3BsYXkiKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rf
bm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNl
ID0gZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlKHNlc3Npb24sICJmb28iLCAiYmFyIikKQEAgLTI4LDcg
KzM0LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9z
dGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBA
IC0zNyw3ICs0Myw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVz
dF9wcm9wZXJ0eV9uYW1lX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbmFtZV92
YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1
dCBzdHlsZT0iZGlzcGxheTogYmxvY2siPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ1LDcgKzUxLDcgQEAgZGVmIHRlc3RfcHJv
cGVydHlfbmFtZV92YWx1ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJi
bG9jayIpCiAKIAotZGVmIHRlc3RfcHJvcGVydHlfbmFtZV9ub3RfZXhpc3RlbnQoc2Vzc2lvbik6
CitkZWYgdGVzdF9wcm9wZXJ0eV9uYW1lX25vdF9leGlzdGVudChzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3Vz
ZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weQppbmRleCA1MjliNmFlOTE4
M2QuLmIxZjlhM2ZiMGEwMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvdXNlcl9wcm9tcHRzLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfY3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRl
c3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9u
LCBlbGVtZW50X2lkLCBwcm9wKToKQEAgLTE4LDcgKzE3LDcgQEAgZGVmIGdldF9lbGVtZW50X2Nz
c192YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUK
LWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToK
ICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBi
bG9jayI+IiIiKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCkBAIC0zNCw3ICszMyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogYmxv
Y2siPiIiIikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxs
PUZhbHNlKQpAQCAtNTAsNyArNDksNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9jayI+
IiIiKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5CmluZGV4IDVj
MDI0N2VkYjcwMi4uMTBmN2EwOGFlNzNlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50
X3Byb3BlcnR5L2dldC5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0
ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxl
bWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKQEAgLTEzLDkgKzEyLDE2
IEBAIGRlZiBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToK
IAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2lu
ZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAg
cmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAidmFs
dWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICBy
ZXNwb25zZSA9IGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24sICJmb28iLCAiaWQiKQogICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24u
d2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1l
bnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudC5pZCwgInZhbHVlIikKKyAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVt
ZW50X3Byb3BlcnR5KHNlc3Npb24sICJmb28iLCAiaWQiKQpAQCAtMjcsNyArMzMsNyBAQCBkZWYg
dGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lv
bik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb29iYXI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAg
LTM2LDcgKzQyLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRl
c3RfcHJvcGVydHlfbm9uX2V4aXN0ZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbm9u
X2V4aXN0ZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKIApAQCAtNDUsNyArNTEsNyBAQCBkZWYgdGVzdF9wcm9wZXJ0eV9ub25fZXhpc3RlbnQoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVu
dHNbMF0uZm9vIiwgYXJncz0oZWxlbWVudCwpKSBpcyBOb25lCiAKIAotZGVmIHRlc3RfY29udGVu
dF9hdHRyaWJ1dGUoc2Vzc2lvbik6CitkZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vYmFy
PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQog
CkBAIC01Myw3ICs1OSw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgog
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxf
YXR0cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vPiIpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Np
b24uZXhlY3V0ZV9zY3JpcHQoIiIiYXJndW1lbnRzWzBdLnZhbHVlID0gImJhciI7IiIiLCBhcmdz
PShlbGVtZW50LCkpCkBAIC03MCw3ICs3Niw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vz
c2lvbik6CiAgICAgKCJudWxsIiwgTm9uZSksCiAgICAgKCJ1bmRlZmluZWQiLCBOb25lKSwKIF0p
Ci1kZWYgdGVzdF9wcmltaXRpdmVzKHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZl
KToKK2RlZiB0ZXN0X3ByaW1pdGl2ZXMoc2Vzc2lvbiwgaW5saW5lLCBqc19wcmltaXRpdmUsIHB5
X3ByaW1pdGl2ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1
dD4KIApAQCAtOTMsNyArOTksNyBAQCBkZWYgdGVzdF9wcmltaXRpdmVzKHNlc3Npb24sIGpzX3By
aW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKICAgICAoIm51bGwiLCBOb25lKSwKICAgICAoInVuZGVm
aW5lZCIsIE5vbmUpLAogXSkKLWRlZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0X2J5X2V4ZWN1dGVfc2Ny
aXB0KHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKK2RlZiB0ZXN0X3ByaW1p
dGl2ZXNfc2V0X2J5X2V4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGlubGluZSwganNfcHJpbWl0aXZl
LCBweV9wcmltaXRpdmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vz
c2lvbi5leGVjdXRlX3NjcmlwdCgiYXJndW1lbnRzWzBdLmZvb2JhciA9IHt9Ii5mb3JtYXQoanNf
cHJpbWl0aXZlKSwgYXJncz0oZWxlbWVudCwpKQpAQCAtMTAyLDcgKzEwOCw3IEBAIGRlZiB0ZXN0
X3ByaW1pdGl2ZXNfc2V0X2J5X2V4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwg
cHlfcHJpbWl0aXZlKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgcHlfcHJpbWl0aXZl
KQogCiAKLWRlZiB0ZXN0X211dGF0ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X211dGF0
ZWRfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgdHlwZT1jaGVja2JveD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKICAgICBlbGVtZW50LmNsaWNrKCkKQEAgLTExNCwzICsxMjAsMTQg
QEAgZGVmIHRlc3RfbXV0YXRlZF9lbGVtZW50KHNlc3Npb24pOgogCiAgICAgcmVzcG9uc2UgPSBn
ZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAiY2hlY2tlZCIpCiAgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIFRydWUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJpc19yZWxhdGl2ZSIsIFtUcnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29s
dXRlIl0pCitkZWYgdGVzdF9hbmNob3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVs
YXRpdmUpOgorICAgIGhyZWYgPSAiL2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgi
L2Zvby5odG1sIikKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9v
PC9hPiIuZm9ybWF0KGhyZWYpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwg
YWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9u
LCBlbGVtZW50LmlkLCAiaHJlZiIpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIHVybCgi
L2Zvby5odG1sIikpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVy
dHkvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDE2YTA5ODUzNmZkZS4uZTVlNzY5NDc4NjNlIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9l
bGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0
cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFs
b2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAog
ZGVmIGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24sIGVsZW1lbnRfaWQsIG5hbWUpOgpAQCAt
MTMsNyArMTIsNyBAQCBkZWYgZ2V0X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudF9p
ZCwgbmFtZSk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtMjksNyArMjgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCBy
ZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQog
ICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAg
LTQ1LDcgKzQ0LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L2dldC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVj
dC9nZXQucHkKaW5kZXggNDk0YzQ1ZjhlNDViLi45YWI0ZGI0YzYwNGYgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVj
dC9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF9yZWN0L2dldC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRl
c3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZWxlbWVudF9yZWN0Ci1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9u
LCBlbGVtZW50X2lkKToKQEAgLTE0LDkgKzEzLDE2IEBAIGRlZiBnZXRfZWxlbWVudF9yZWN0KHNl
c3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9
IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwg
ZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIp
CiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sICJmb28iKQogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2lu
ZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRf
cmVjdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9u
LCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9u
LCAiZm9vIikKQEAgLTI4LDcgKzM0LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAot
ZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNl
c3Npb24ucmVmcmVzaCgpCkBAIC0zNyw3ICs0Myw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUo
c2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJl
bmNlIikKIAogCi1kZWYgdGVzdF9iYXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2ljKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVu
dF9yZWN0L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC91c2VyX3Byb21wdHMucHkKaW5kZXggYzUxODY2
Y2I4NzU4Li4yMDEzMTYwMzM4MWIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC91c2VyX3Byb21wdHMucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVu
dF9yZWN0L3VzZXJfcHJvbXB0cy5weQpAQCAtNCw3ICs0LDYgQEAgaW1wb3J0IHB5dGVzdAogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBp
bXBvcnQgZWxlbWVudF9yZWN0Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE4
LDcgKzE3LDcgQEAgZGVmIGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlh
bG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+
IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNl
KQpAQCAtMzQsNyArMzMsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUwLDcgKzQ5LDcgQEAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikK
ICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9zaGFkb3dfcm9vdC9jb25mdGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvY29uZnRlc3Qu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZmMwYzkxYzNkM2YK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMjIg
QEAKK2ltcG9ydCBweXRlc3QKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tib3hfZG9tKGlu
bGluZSk6CisgICAgcmV0dXJuIGlubGluZSgiIiIKKyAgICAgICAgPHN0eWxlPgorICAgICAgICAg
ICAgY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQgeworICAgICAgICAgICAgICAgIGRpc3BsYXk6Ymxv
Y2s7IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0
eWxlPgorICAgICAgICA8Y3VzdG9tLWNoZWNrYm94LWVsZW1lbnQ+PC9jdXN0b20tY2hlY2tib3gt
ZWxlbWVudD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLmRl
ZmluZSgnY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQnLAorICAgICAgICAgICAgICAgIGNsYXNzIGV4
dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KS5pbm5lckhUTUwgPSBg
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IHR5cGU9ImNoZWNr
Ym94Ii8+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgPC9zY3JpcHQ+IiIi
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L2dldC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgyZTUyNDIwYTJjMAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvZ2V0LnB5CkBAIC0wLDAgKzEsNjAgQEAKK2ltcG9ydCBw
eXRlc3QKKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwg
YXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKKworCitkZWYgZ2V0X3NoYWRvd19y
b290KHNlc3Npb24sIGVsZW1lbnRfaWQpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5z
ZW5kKAorICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1lbnQve2VsZW1l
bnRfaWR9L3NoYWRvdyIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNl
c3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnRfaWQpKQorCisKK2RlZiB0
ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAg
IG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9
IGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9v
dChzZXNzaW9uLCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdp
bmRvdyIpCisKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAg
ICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorICAgIHJlc3BvbnNlID0g
Z2V0X3NoYWRvd19yb290KHNlc3Npb24sICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNz
aW9uKToKKyAgICByZXN1bHQgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgImZvbyIpCisgICAg
YXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3RfZWxl
bWVudF9zdGFsZShzZXNzaW9uLCBjaGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hl
Y2tib3hfZG9tCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2Jv
eC1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXN1
bHQgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJy
b3IocmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQorCisKK2RlZiB0ZXN0X2dldF9z
aGFkb3dfcm9vdChzZXNzaW9uLCBjaGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hl
Y2tib3hfZG9tCisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAg
ICAicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2N1c3RvbS1jaGVja2JveC1lbGVtZW50
Jykuc2hhZG93Um9vdC5ob3N0IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0g
Z2V0X3NoYWRvd19yb290KHNlc3Npb24sIGN1c3RvbV9lbGVtZW50LmlkKQorICAgIHZhbHVlID0g
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRp
Y3QpCisgICAgYXNzZXJ0ICJzaGFkb3ctNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmIiBpbiB2
YWx1ZQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgY3VzdG9tX2VsZW1lbnQsIGV4
cGVjdGVkKQorCisKK2RlZiB0ZXN0X25vX3NoYWRvd19yb290KHNlc3Npb24sIGlubGluZSk6Cisg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PHA+bm8gc2hhZG93IHJvb3Q8L3A+PC9kaXY+
IikKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQorICAg
IHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBzaGFkb3cgcm9vdCIpCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3No
YWRvd19yb290L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzI2NzFiOTVhNTM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKQEAgLTAsMCArMSwxMTcg
QEAKKyMgTUVUQTogdGltZW91dD1sb25nCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2Vy
dF9kaWFsb2dfaGFuZGxlZAorCisKK2RlZiBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVu
dF9pZCk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQi
LCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vc2hhZG93Ii5mb3Jt
YXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAg
ICAgIGVsZW1lbnRfaWQ9ZWxlbWVudF9pZCkpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2csIGNoZWNrYm94X2RvbSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51
cmwgPSBjaGVja2JveF9kb20KKyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1
c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFs
b2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBn
ZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgdmFsdWUgPSBhc3Nl
cnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRp
Y3QpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3Rl
eHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCisKKyAgICByZXR1cm4gY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0
dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGNoZWNrYm94X2RvbSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vz
c2lvbi51cmwgPSBjaGVja2JveF9kb20KKyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0
ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9u
c2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAidW5leHBlY3RlZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3Nl
cnRfZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhw
ZWN0ZWRfcmV0dmFsPXJldHZhbCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgY2hl
Y2tib3hfZG9tKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKGRpYWxvZ190eXBlKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9kb20K
KyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVt
ZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRl
eHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vz
c2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAidW5leHBl
Y3RlZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09
IGRpYWxvZ190eXBlCisgICAgICAgIHNlc3Npb24uYWxlcnQuZGlzbWlzcygpCisKKyAgICByZXR1
cm4gY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uCisKKworQHB5dGVz
dC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImFjY2VwdCJ9
KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAg
ICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIs
ICIiKSwKK10pCitkZWYgdGVzdF9hY2NlcHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0
ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0
IGFuZCBub3RpZnkifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJl
dHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgVHJ1ZSksCisg
ICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3RfYWNjZXB0X2FuZF9ub3RpZnkoY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToK
KyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUs
IHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0
QmVoYXZpb3IiOiAiZGlzbWlzcyJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2df
dHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBG
YWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzKGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZh
bCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxl
ZFByb21wdEJlaGF2aW9yIjogImRpc21pc3MgYW5kIG5vdGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwK
KyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYg
dGVzdF9kaXNtaXNzX2FuZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsu
Y2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiaWdub3JlIn0pCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlIiwgWyJhbGVydCIsICJjb25maXJtIiwg
InByb21wdCJdKQorZGVmIHRlc3RfaWdub3JlKGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9j
bG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAg
ICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0
X2RlZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2df
dHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdf
bmFtZS9nZXQucHkKaW5kZXggZmZlNmRkNjQxZTgyLi5jZmM2M2JkNzg4ZGUgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
dGFnX25hbWUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nl
c3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRf
ZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTEwLDkgKzksMTYgQEAg
ZGVmIGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0
ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAg
IG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9
IGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1l
bnRfdGFnX25hbWUoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxf
aGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVt
ZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisK
IAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgog
ICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgImZvbyIpCkBAIC0y
NCw3ICszMCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgogICAgIGFz
c2VydF9lcnJvcihyZXN1bHQsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1l
bnRfc3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5y
ZWZyZXNoKCkKQEAgLTMzLDcgKzM5LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9u
KToKICAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQog
CiAKLWRlZiB0ZXN0X2dldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0
X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50
X3RhZ19uYW1lL3VzZXJfcHJvbXB0cy5weQppbmRleCAxMmE3ZDQ0ODQyMWUuLjg5Njk3ZDBhZDZh
MiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2Vy
X3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3Nl
cnRfZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKIGRlZiBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAg
LTEyLDcgKzExLDcgQEAgZGVmIGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRf
aWQpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywg
aW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2Zv
byIsIGFsbD1GYWxzZSkKQEAgLTI4LDcgKzI3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00NCw3
ICs0Myw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0
LnB5CmluZGV4IDVmMTY5YTNhMjMzYi4uNzJkYzBjZjczNWU1IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2VsZW1lbnRfdGV4dC9nZXQucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3RleHQoc2Vz
c2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xMCwyOSArOSwzMiBAQCBkZWYgZ2V0X2VsZW1lbnRfdGV4
dChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29u
dGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1l
bnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Np
b24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5k
b3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCAiZm9vIikKICAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9u
LndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9lbGVt
ZW50X3RleHQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vz
c2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQogCiAKLWRlZiB0ZXN0X2dldHRpbmdfdGV4dF9vZl9hX25vbl9leGlzdGFudF9lbGVtZW50X2lz
X2FuX2Vycm9yKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0dGluZ190ZXh0X29mX2Ffbm9uX2V4aXN0
YW50X2VsZW1lbnRfaXNfYW5fZXJyb3Ioc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiIiI8Ym9keT5IZWxsbyB3b3JsZDwvYm9keT4iIiIpCiAKICAgICByZXN1bHQg
PSBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXN1
bHQsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X3JlYWRfZWxlbWVudF90ZXh0KHNl
c3Npb24pOgotICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgotICAgICAgICA8Ym9keT4KLSAg
ICAgICAgICBOb2lzZSBiZWZvcmUgPHNwYW4gaWQ9J2lkJz5UaGlzIGhhcyBhbiBJRDwvc3Bhbj4u
IE5vaXNlIGFmdGVyCi0gICAgICAgIDwvYm9keT4iIiIpCi0KK2RlZiB0ZXN0X3JlYWRfZWxlbWVu
dF90ZXh0KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIkJlZm9y
ZSBmPHNwYW4gaWQ9J2lkJz5vbzwvc3Bhbj4gYWZ0ZXIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjaWQiLCBhbGw9RmFsc2UpCiAKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF90
ZXh0KHNlc3Npb24sIGVsZW1lbnQuaWQpCi0gICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiVGhp
cyBoYXMgYW4gSUQiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIm9vIikKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfdGV4dC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDFlZTVj
ZGU0ZGE1Mi4uOWYwYmIzODZjZGY1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfdGV4dC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAK
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9z
dWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnRf
aWQpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVt
ZW50X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxwIGlkPWZvbz5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMCw3ICsyOSw3IEBAIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAg
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUs
IHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD1mb28+YmFyPC9w
PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNl
KQpAQCAtNDYsNyArNDUsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPWZvbz5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFt
ZWRfY29va2llL2dldC5weQppbmRleCAxMDJjMThmMDI3NWMuLmQxZTgzYjZhODE1MiAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFt
ZWRfY29va2llL2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0LnB5CkBAIC0xLDEyICsxLDEwIEBACiBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKLWZy
b20gc2l4IGltcG9ydCBpbnRlZ2VyX3R5cGVzLCB0ZXh0X3R5cGUKIAogCiBmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0
ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGNsZWFyX2FsbF9jb29raWVzCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X25hbWVkX2Nvb2tpZShz
ZXNzaW9uLCBuYW1lKToKQEAgLTM4LDEzICszNiwxMyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vz
c2lvbl9jb29raWUoc2Vzc2lvbiwgdXJsKToKICAgICAjIHRhYmxlIGZvciBjb29raWUgY29udmVy
c2lvbgogICAgICMgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZGZuLXRhYmxlLWZv
ci1jb29raWUtY29udmVyc2lvbgogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tp
ZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAg
IGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAicGF0
aCIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJwYXRoIl0sIHRleHRf
dHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInBhdGgiXSwgc3RyKQogICAgIGFz
c2VydCAiZG9tYWluIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRv
bWFpbiJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4i
XSwgc3RyKQogICAgIGFzc2VydCAic2VjdXJlIiBpbiBjb29raWUKICAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb29raWVbInNlY3VyZSJdLCBib29sKQogICAgIGFzc2VydCAiaHR0cE9ubHkiIGluIGNv
b2tpZQpAQCAtNTIsNyArNTAsNyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vzc2lvbl9jb29raWUo
c2Vzc2lvbiwgdXJsKToKICAgICBpZiAiZXhwaXJ5IiBpbiBjb29raWU6CiAgICAgICAgIGFzc2Vy
dCBjb29raWUuZ2V0KCJleHBpcnkiKSBpcyBOb25lCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4g
Y29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5
cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAg
ICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImZvbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1
ZSJdID09ICJiYXIiCkBAIC03MiwxMyArNzAsMTMgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX2Nvb2tp
ZShzZXNzaW9uLCB1cmwpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAog
ICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2ll
WyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUi
XSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNv
b2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAiZXhwaXJ5IiBpbiBjb29raWUKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZShjb29raWVbImV4cGlyeSJdLCBpbnRlZ2VyX3R5cGVzKQorICAgIGFz
c2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZXhwaXJ5Il0sIGludCkKICAgICBhc3NlcnQgInNhbWVT
aXRlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0s
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0
cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiZm9vIgogICAgIGFzc2VydCBjb29r
aWVbInZhbHVlIl0gPT0gImJhciIKQEAgLTg3LDcgKzg1LDcgQEAgZGVmIHRlc3RfZ2V0X25hbWVk
X2Nvb2tpZShzZXNzaW9uLCB1cmwpOgogICAgICAgICBjb29raWVbImV4cGlyeSJdKS5zdHJmdGlt
ZSh1dGNfc3RyaW5nX2Zvcm1hdCkgPT0gYV9kYXlfZnJvbV9ub3cKIAogCi1kZWYgdGVzdF9kdXBs
aWNhdGVkX2Nvb2tpZShzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcpOgorZGVmIHRlc3RfZHVw
bGljYXRlZF9jb29raWUoc2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAg
IG5ld19jb29raWUgPSB7CiAgICAgICAgICJuYW1lIjogImhlbGxvIiwKICAgICAgICAgInZhbHVl
IjogIndvcmxkIiwKQEAgLTExMywxMSArMTExLDExIEBAIGRlZiB0ZXN0X2R1cGxpY2F0ZWRfY29v
a2llKHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llLCBkaWN0KQogCiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQg
aXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0g
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJzYW1lU2l0
ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0
ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIp
CiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gbmV3X2Nvb2tpZVsibmFtZSJdCiAgICAg
YXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAibmV3d29ybGQiCkBAIC0xMzYsMTEgKzEzNCwxMSBA
QCBkZWYgdGVzdF9nZXRfY29va2llX3dpdGhfc2FtZV9zaXRlX2ZsYWcoc2Vzc2lvbiwgdXJsLCBz
YW1lX3NpdGUpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAogICAgIGFz
c2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1l
Il0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3Ry
KQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNv
b2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsi
dmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQotICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsi
bmFtZSJdID09ICJmb28iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAiYmFyIgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
cGFnZV9zb3VyY2Uvc291cmNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5CmluZGV4IDU0ODRjY2JmMmVlZi4u
Y2M0ZTIwODgzNWM4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF9wYWdlX3NvdXJjZS9zb3VyY2UucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5
CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBnZXRfcGFnZV9zb3VyY2Uoc2Vzc2lvbik6CkBAIC0xNyw3ICsxNiw3
IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRl
c3Rfc291cmNlX21hdGNoZXNfb3V0ZXJfaHRtbChzZXNzaW9uKToKK2RlZiB0ZXN0X3NvdXJjZV9t
YXRjaGVzX291dGVyX2h0bWwoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGh0bWw+PGhlYWQ+PHRpdGxlPkNoZWVzZTwvdGl0bGU+PGJvZHk+UGVhcyIpCiAKICAg
ICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQub3V0ZXJIVE1MIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291
cmNlL3VzZXJfcHJvbXB0cy5weQppbmRleCAzYjBjZGZmOTdkZDkuLjEzY2IzMTU5NWU2MSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
cGFnZV9zb3VyY2UvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weQpAQCAt
Myw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxl
ZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9w
YWdlX3NvdXJjZShzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGdldF9wYWdlX3NvdXJj
ZShzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxkaXYvPiIpCiAgICAgICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3Njcmlw
dCgicmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vdXRlckhUTUwiKQpAQCAtMjgsNyAr
MjcsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
K2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGRpdi8+IikKIApAQCAtNDMsNyArNDIsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAg
ICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxl
L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X3RpdGxlL2dldC5weQppbmRleCAzNDQwNTc3NGJhMDYuLmU2OTZlYzM0MDMzOSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUv
Z2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X3RpdGxlL2dldC5weQpAQCAtMSw3ICsxLDQgQEAKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5
cGUKLQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAK
IGRlZiBnZXRfdGl0bGUoc2Vzc2lvbik6CkBAIC0xNCw3ICsxMSw3IEBAIGRlZiB0ZXN0X3BheWxv
YWQoc2Vzc2lvbik6CiAKICAgICByZXNwb25zZSA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIHZh
bHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFs
dWUsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKQogCiAKIGRl
ZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgpA
QCAtMjIsMjggKzE5LDI4IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Np
b24sIGNsb3NlZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
d2luZG93IikKIAogCi1kZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF9mcmFtZSk6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9m
cmFtZSwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0
bGU+IikKIAogICAgIHJlc3BvbnNlID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UsICJGb28iKQogCiAKLWRlZiB0ZXN0X3dpdGhfZHVwbGljYXRlZF90aXRs
ZShzZXNzaW9uKToKK2RlZiB0ZXN0X3dpdGhfZHVwbGljYXRlZF90aXRsZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Rmlyc3Q8L3RpdGxlPjx0aXRs
ZT5TZWNvbmQ8L3RpdGxlPiIpCiAKICAgICByZXN1bHQgPSBnZXRfdGl0bGUoc2Vzc2lvbikKICAg
ICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJGaXJzdCIpCiAKIAotZGVmIHRlc3Rfd2l0aG91dF90
aXRsZShzZXNzaW9uKToKK2RlZiB0ZXN0X3dpdGhvdXRfdGl0bGUoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGgyPkhlbGxvPC9oMj4iKQogCiAgICAgcmVzdWx0
ID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiIikKIAog
Ci1kZWYgdGVzdF9hZnRlcl9tb2RpZmljYXRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9hZnRlcl9t
b2RpZmljYXRpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PHRpdGxlPkluaXRpYWw8L3RpdGxlPjxoMj5IZWxsbzwvaDI+IikKICAgICBzZXNzaW9uLmV4ZWN1
dGVfc2NyaXB0KCJkb2N1bWVudC50aXRsZSA9ICdVcGRhdGVkJyIpCiAKQEAgLTUxLDcgKzQ4LDcg
QEAgZGVmIHRlc3RfYWZ0ZXJfbW9kaWZpY2F0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNj
ZXNzKHJlc3VsdCwgIlVwZGF0ZWQiKQogCiAKLWRlZiB0ZXN0X3N0cmlwX2FuZF9jb2xsYXBzZShz
ZXNzaW9uKToKK2RlZiB0ZXN0X3N0cmlwX2FuZF9jb2xsYXBzZShzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIGRvY3VtZW50ID0gIjx0aXRsZT4gICBhIGJcdGNcbmRcdCBcbiBlXHRcbiA8L3RpdGxlPjxo
Mj5IZWxsbzwvaDI+IgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGRvY3VtZW50KQogCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90
aXRsZS9pZnJhbWUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF90aXRsZS9pZnJhbWUucHkKaW5kZXggNTk5MWJmMzU5MDY5Li45YzVhYjBiNTk1ZDMg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X3RpdGxlL2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9pZnJhbWUucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQg
cHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAogCiAi
IiIKQEAgLTE1LDkgKzE0LDIwIEBAIGFsc28gZW5mb3JjZSBwcm9jZXNzIGlzb2xhdGlvbiBiYXNl
ZCBvbiBzaXRlIG9yaWdpbi4KIFRoaXMgaXMga25vd24gdG8gc29tZXRpbWVzIGNhdXNlIHByb2Js
ZW1zIGZvciBXZWJEcml2ZXIgaW1wbGVtZW50YXRpb25zLgogIiIiCiAKLWZyYW1lX2RvYyA9IGlu
bGluZSgiPHRpdGxlPmNoZWVzZTwvdGl0bGU+PHA+ZnJhbWUiKQotb25lX2ZyYW1lX2RvYyA9IGlu
bGluZSgiPHRpdGxlPmJhcjwvdGl0bGU+PGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgZnJh
bWVfZG9jKQotbmVzdGVkX2ZyYW1lc19kb2MgPSBpbmxpbmUoIjx0aXRsZT5mb288L3RpdGxlPjxp
ZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCisKK0BweXRlc3QuZml4
dHVyZQorZGVmIGZyYW1lX2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjx0aXRsZT5j
aGVlc2U8L3RpdGxlPjxwPmZyYW1lIikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBvbmVfZnJh
bWVfZG9jKGlubGluZSwgZnJhbWVfZG9jKToKKyAgICByZXR1cm4gaW5saW5lKCI8dGl0bGU+YmFy
PC90aXRsZT48aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCisKKworQHB5
dGVzdC5maXh0dXJlCitkZWYgbmVzdGVkX2ZyYW1lc19kb2MoaW5saW5lLCBvbmVfZnJhbWVfZG9j
KToKKyAgICByZXR1cm4gaW5saW5lKCI8dGl0bGU+Zm9vPC90aXRsZT48aWZyYW1lIHNyYz0nJXMn
PjwvaWZyYW1lPiIgJSBvbmVfZnJhbWVfZG9jKQogCiAKIGRlZiBnZXRfdGl0bGUoc2Vzc2lvbik6
CkBAIC0yNSwxNCArMzUsMTQgQEAgZGVmIGdldF90aXRsZShzZXNzaW9uKToKICAgICAgICAgIkdF
VCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS90aXRsZSIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkp
CiAKIAotZGVmIHRlc3Rfbm9faWZyYW1lKHNlc3Npb24pOgorZGVmIHRlc3Rfbm9faWZyYW1lKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb29iYXI8
L3RpdGxlPjxoMj5IZWxsbzwvaDI+IikKIAogICAgIHJlc3VsdCA9IGdldF90aXRsZShzZXNzaW9u
KQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIkZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWZy
YW1lKHNlc3Npb24pOgorZGVmIHRlc3RfaWZyYW1lKHNlc3Npb24sIG9uZV9mcmFtZV9kb2MpOgog
ICAgIHNlc3Npb24udXJsID0gb25lX2ZyYW1lX2RvYwogCiAgICAgZnJhbWUgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCkBAIC00Myw3ICs1Myw3IEBAIGRlZiB0ZXN0X2lm
cmFtZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgImJhciIpCiAKIAot
ZGVmIHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uKToKK2RlZiB0ZXN0X25lc3RlZF9pZnJhbWUo
c2Vzc2lvbiwgbmVzdGVkX2ZyYW1lc19kb2MpOgogICAgIHNlc3Npb24udXJsID0gbmVzdGVkX2Zy
YW1lc19kb2MKIAogICAgIG91dGVyX2ZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwg
YWxsPUZhbHNlKQpAQCAtNTgsNyArNjgsNyBAQCBkZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Np
b24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9tYWluIiwgWyIiLCAiYWx0Il0s
IGlkcz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdpbiJdKQotZGVmIHRlc3Rfb3JpZ2luKHNl
c3Npb24sIGRvbWFpbiwgdXJsKToKK2RlZiB0ZXN0X29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIGlm
cmFtZSwgZG9tYWluKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPmZvbzwvdGl0
bGU+e30iLmZvcm1hdCgKICAgICAgICAgaWZyYW1lKCI8dGl0bGU+YmFyPC90aXRsZT48cD5mcmFt
ZSIsIGRvbWFpbj1kb21haW4pKSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9t
cHRzLnB5CmluZGV4IDc2ZDY1YzA4OGEwYi4uMGZkNTFlNDZmMzJhIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS91c2VyX3By
b21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVz
dAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgpAQCAtMTIsNyAr
MTEsNyBAQCBkZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKICAgICAgICAg
ZXhwZWN0ZWRfdGl0bGUgPSBzZXNzaW9uLnRpdGxlCkBAIC0yOCw3ICsyNyw3IEBAIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxp
bmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlh
bG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+
Rm9vPC90aXRsZT4iKQogCkBAIC00Myw3ICs0Miw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUp
OgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKIApA
QCAtMTE3LDcgKzExNiw3IEBAIGRlZiB0ZXN0X2RlZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKICMgdHJpZ2dlciB0aGUg
Y3JlYXRpb24gb2YgYSBkaWFsb2cgYXQgYWxsLiBUaGVyZWZvcmUsIHRoaXMgdGVzdCBzaG91bGQg
b25seSBiZQogIyBydW4gaW4gY29udGV4dHMgdGhhdCBzdXBwb3J0IHRoZSBkaWFsb2cgKGEgY29u
ZGl0aW9uIHRoYXQgbWF5IG5vdCBiZQogIyBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkpLgotIyBk
ZWYgdGVzdF90aXRsZV93aXRoX25vbl9zaW1wbGVfZGlhbG9nKHNlc3Npb24pOgorIyBkZWYgdGVz
dF90aXRsZV93aXRoX25vbl9zaW1wbGVfZGlhbG9nKHNlc3Npb24sIGlubGluZSk6CiAjICAgIGRv
Y3VtZW50ID0gIjx0aXRsZT5XaXRoIG5vbi1zaW1wbGUgZGlhbG9nPC90aXRsZT48aDI+SGVsbG88
L2gyPiIKICMgICAgc3Bhd24gPSAiIiIKICMgICAgICAgIHZhciBkb25lID0gYXJndW1lbnRzWzBd
OwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfaGFuZGxlL2dldC5weQppbmRleCA4YzI2MjAzM2Mz
ODMuLjY4NDQxZGE1ZWY4NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hhbmRsZS9nZXQu
cHkKQEAgLTEsMyArMSw1IEBACitpbXBvcnQgcHl0ZXN0CisKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtMTksMyAr
MjEsMjMgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJh
bWUpOgogZGVmIHRlc3RfYmFzaWMoc2Vzc2lvbik6CiAgICAgcmVzcG9uc2UgPSBnZXRfd2luZG93
X2hhbmRsZShzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBzZXNzaW9uLndp
bmRvd19oYW5kbGUpCisKKworIyBDYXBhYmlsaXR5IG5lZWRlZCBhcyBsb25nIGFzIG5vIHZhbGlk
IGNlcnRpZmljYXRlIGlzIGF2YWlsYWJsZToKKyMgICBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjg4NDcKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMo
eyJhY2NlcHRJbnNlY3VyZUNlcnRzIjogVHJ1ZX0pCitkZWYgdGVzdF9uYXZpZ2F0aW9uX3dpdGhf
Y29vcF9oZWFkZXJzKHNlc3Npb24sIHVybCk6CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVy
L3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/
cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorCisg
ICAgc2Vzc2lvbi51cmwgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHJl
c3BvbnNlID0gZ2V0X3dpbmRvd19oYW5kbGUoc2Vzc2lvbikKKyAgICBmaXJzdF9oYW5kbGUgPSBh
c3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgICMgbmF2aWdhdGluZyB0byBhbm90aGVyIGRv
bWFpbiB3aXRoIENPT1AgaGVhZGVycyB3aWxsIGZvcmNlIGEgcHJvY2VzcyBjaGFuZ2UKKyAgICAj
IGluIG1vc3QgYnJvd3NlcnMKKyAgICBzZXNzaW9uLnVybCA9IHVybChiYXNlX3BhdGgsIHByb3Rv
Y29sPSJodHRwcyIsIGRvbWFpbj0iYWx0IikKKyAgICByZXNwb25zZSA9IGdldF93aW5kb3dfaGFu
ZGxlKHNlc3Npb24pCisgICAgc2Vjb25kX2hhbmRsZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQorCisgICAgYXNzZXJ0IGZpcnN0X2hhbmRsZSA9PSBzZWNvbmRfaGFuZGxlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3df
cmVjdC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF93aW5kb3dfcmVjdC9nZXQucHkKaW5kZXggNzkzNjUwZmVlZjQ2Li5mNzU5MmEzMGUwNjcg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X3dpbmRvd19yZWN0L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVjdC9nZXQucHkKQEAgLTEsOCArMSw0IEBACiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotYWxlcnRf
ZG9jID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5hbGVydCgpPC9zY3JpcHQ+IikKIAogCiBkZWYg
Z2V0X3dpbmRvd19yZWN0KHNlc3Npb24pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5lc3MuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDA0OWQ4MzVmMmZjLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNo
YXJzZXQ9dXRmLTg+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5p
by93ZWJkcml2ZXIvIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanM+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL2lkbGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0gICJ1c2Ugc3RyaWN0IjsKLQotICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewotICAgIGNv
bnN0IGlkbF9hcnJheSA9IG5ldyBJZGxBcnJheSgpOwotICAgIGNvbnN0IGlkbCA9IGF3YWl0IGZl
dGNoKCIvaW50ZXJmYWNlcy93ZWJkcml2ZXIuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKLSAg
ICBjb25zdCBodG1sID0gYXdhaXQgZmV0Y2goIi9pbnRlcmZhY2VzL2h0bWwuaWRsIikudGhlbihy
ID0+IHIudGV4dCgpKTsKLSAgICBpZGxfYXJyYXkuYWRkX2lkbHMoaWRsKTsKLSAgICBpZGxfYXJy
YXkuYWRkX2RlcGVuZGVuY3lfaWRscyhodG1sKTsKLSAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMo
ewotICAgICAgTmF2aWdhdG9yOiBbIm5hdmlnYXRvciJdCi0gICAgfSk7Ci0gICAgaWRsX2FycmF5
LnRlc3QoKTsKLSAgfSwgIlRlc3QgSURMIGltcGxlbWVudGF0aW9uIG9mIHdlYmRyaXZlciBBUEki
KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLndpbmRvdy5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaWRsaGFybmVzcy53aW5kb3cuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lOTJlMTUxZDg5ODMKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5l
c3Mud2luZG93LmpzCkBAIC0wLDAgKzEsMTYgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2Vz
L1dlYklETFBhcnNlci5qcworLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5q
cworCisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyLworCisidXNlIHN0cmljdCI7
CisKK2lkbF90ZXN0KAorICBbIndlYmRyaXZlciJdLAorICBbImh0bWwiXSwKKyAgaWRsX2FycmF5
ID0+IHsKKyAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAgICAgTmF2aWdhdG9yOiBbIm5h
dmlnYXRvciJdCisgICAgfSk7CisgIH0KKyk7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50
X2VuYWJsZWQvZW5hYmxlZC5weQppbmRleCA4OGIxNTM0ZGVkMWEuLjRhNWE5MmJhNWU5MSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19l
bGVtZW50X2VuYWJsZWQvZW5hYmxlZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5CkBAIC0xLDcg
KzEsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVt
ZW50X2lkKToKQEAgLTE1LDE2ICsxNCwyMyBAQCBkZWYgaXNfZWxlbWVudF9lbmFibGVkKHNlc3Np
b24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNs
b3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBl
bGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikK
ICAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCAiZm9vIikKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndp
bmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRf
ZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9lbmFibGVkKHNl
c3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93
IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVu
dF9zdGFsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2Up
CiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTM0LDcgKzQwLDcgQEAgZGVmIHRlc3RfZWxlbWVu
dF9zdGFsZShzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQi
LCBbImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X2Zv
cm1fY29udHJvbF9kaXNhYmxlZChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2Zvcm1fY29u
dHJvbF9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8e30gZGlzYWJsZWQvPiIuZm9ybWF0KGVsZW1lbnQpKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtNDMsNyArNDksNyBA
QCBkZWYgdGVzdF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAog
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAi
c2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVzdF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNz
aW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGlu
bGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7fS8+Ii5mb3JtYXQo
ZWxlbWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZh
bHNlKQogCkBAIC01Miw3ICs1OCw3IEBAIGRlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNl
c3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIs
IFsiYnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfZmll
bGRzZXRfZGlzYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2Zp
ZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRhbnQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGZpZWxkc2V0IGRpc2FibGVkPjx7fS8+PC9maWVsZHNl
dD4iLmZvcm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVt
ZW50LCBhbGw9RmFsc2UpCiAKQEAgLTYxLDcgKzY3LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlz
YWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImVsZW1lbnQiLCBbImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFy
ZWEiXSkKLWRlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVt
ZW50KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBpbmxp
bmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZmllbGRzZXQ+PHt9Lz48
L2ZpZWxkc2V0PiIuZm9ybWF0KGVsZW1lbnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtNzAsNyArNzYsNyBAQCBkZWYgdGVzdF9maWVs
ZHNldF9lbmFibGVkX2Rlc2NlbmRhbnQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0Iiwg
InRleHRhcmVhIl0pCi1kZWYgdGVzdF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5kYW50X2xlZ2Vu
ZChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRh
bnRfbGVnZW5kKHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxmaWVsZHNldCBkaXNhYmxlZD48bGVnZW5kPjx7fS8+PC9sZWdlbmQ+PC9maWVsZHNl
dD4iLmZvcm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVt
ZW50LCBhbGw9RmFsc2UpCiAKQEAgLTc5LDcgKzg1LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlz
YWJsZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0Iiwg
InRleHRhcmVhIl0pCi1kZWYgdGVzdF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnRfbGVnZW5k
KHNlc3Npb24sIGVsZW1lbnQpOgorZGVmIHRlc3RfZmllbGRzZXRfZW5hYmxlZF9kZXNjZW5kYW50
X2xlZ2VuZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZmllbGRzZXQ+PGxlZ2VuZD48e30vPjwvbGVnZW5kPjwvZmllbGRzZXQ+Ii5mb3JtYXQo
ZWxlbWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZh
bHNlKQogCkBAIC04OCw3ICs5NCw3IEBAIGRlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2Vu
ZGFudF9sZWdlbmQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0p
Ci1kZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6
CitkZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lLCBl
bGVtZW50KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8e30gZGlzYWJsZWQ9ImRpc2Fi
bGVkIi8+IiIiLmZvcm1hdChlbGVtZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0
eXBlPSJ4aHRtbCIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxs
PUZhbHNlKQpAQCAtOTgsNyArMTA0LDcgQEAgZGVmIHRlc3RfeGh0bWxfZm9ybV9jb250cm9sX2Rp
c2FibGVkKHNlc3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
ZWxlbWVudCIsIFsiYnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVm
IHRlc3RfeGh0bWxfZm9ybV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYg
dGVzdF94aHRtbF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjx7fS8+IiIiLmZvcm1hdChlbGVtZW50KSwg
ZG9jdHlwZT0ieGh0bWwiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQs
IGFsbD1GYWxzZSkKIApAQCAtMTA2LDcgKzExMiw3IEBAIGRlZiB0ZXN0X3hodG1sX2Zvcm1fY29u
dHJvbF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnQpOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3Vs
dCwgVHJ1ZSkKIAogCi1kZWYgdGVzdF94bWxfYWx3YXlzX25vdF9lbmFibGVkKHNlc3Npb24pOgor
ZGVmIHRlc3RfeG1sX2Fsd2F5c19ub3RfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCIiIjxub3RlPjwvbm90ZT4iIiIsIGRvY3R5cGU9InhtbCIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIm5vdGUiLCBhbGw9RmFsc2UpCiAKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxl
bWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weQppbmRl
eCBiZDhiYzgxYmRmY2MuLjVkZDdkNTgyYmQzZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvdXNlcl9wcm9t
cHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
aXNfZWxlbWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9y
dCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJv
ciwgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNz
aW9uLCBlbGVtZW50X2lkKToKQEAgLTE3LDcgKzE2LDcgQEAgZGVmIGlzX2VsZW1lbnRfZW5hYmxl
ZChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gZGlzYWJsZWQ+IikKICAgICAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3
IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgaWQ9Zm9vIGRpc2FibGVkPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtNDksNyArNDgsNyBAQCBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1m
b28gZGlzYWJsZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28i
LCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2Vs
ZWN0ZWQucHkKaW5kZXggNzlhMTYxNWRkOWZkLi42YzhlODE1NWNhYjEgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxl
Y3RlZC9zZWxlY3RlZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkKQEAgLTEsMTIgKzEsMTgg
QEAKK2ltcG9ydCBweXRlc3QKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKIAogCi1jaGVja19kb2MgPSBpbmxpbmUoIiIiCitAcHl0ZXN0LmZpeHR1cmUKK2Rl
ZiBjaGVja19kb2MoaW5saW5lKToKKyAgICByZXR1cm4gaW5saW5lKCIiIgogICAgIDxpbnB1dCBp
ZD1jaGVja2VkIHR5cGU9Y2hlY2tib3ggY2hlY2tlZD4KICAgICA8aW5wdXQgaWQ9bm90Q2hlY2tl
ZCB0eXBlPWNoZWNrYm94PgogICAgICIiIikKLW9wdGlvbl9kb2MgPSBpbmxpbmUoIiIiCisKKwor
QHB5dGVzdC5maXh0dXJlCitkZWYgb3B0aW9uX2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxp
bmUoIiIiCiAgICAgPHNlbGVjdD4KICAgICAgIDxvcHRpb24gaWQ9bm90U2VsZWN0ZWQ+ci0KICAg
ICAgIDxvcHRpb24gaWQ9c2VsZWN0ZWQgc2VsZWN0ZWQ+cisKQEAgLTIyLDE2ICsyOCwyNCBAQCBk
ZWYgaXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBkZWYgdGVz
dF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBv
cmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisKKyAgICByZXNwb25zZSA9
IGlzX2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBpc19lbGVtZW50
X3NlbGVjdGVkKHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hh
bmRsZQorICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50
LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAog
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAg
IHJlc3BvbnNlID0gaXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCAiZm9vIikKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3RfZWxlbWVu
dF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgY2hlY2tf
ZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjY2hlY2tlZCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpA
QCAtNDAsNyArNTQsNyBAQCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFz
c2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRl
c3RfZWxlbWVudF9jaGVja2VkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9jaGVja2VkKHNl
c3Npb24sIGNoZWNrX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBjaGVja19kb2MKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2NoZWNrZWQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ4LDcg
KzYyLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9jaGVja2VkKHNlc3Npb24pOgogICAgIGFzc2VydF9z
dWNjZXNzKHJlc3VsdCwgVHJ1ZSkKIAogCi1kZWYgdGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQo
c2Vzc2lvbik6CitkZWYgdGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbiwgY2hlY2tf
ZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjbm90Q2hlY2tlZCIsIGFsbD1GYWxzZSkKIApAQCAtNTYsNyArNzAsNyBAQCBk
ZWYgdGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzdWx0LCBGYWxzZSkKIAogCi1kZWYgdGVzdF9lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24p
OgorZGVmIHRlc3RfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBvcHRpb25fZG9jKToKICAgICBz
ZXNzaW9uLnVybCA9IG9wdGlvbl9kb2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
I3NlbGVjdGVkIiwgYWxsPUZhbHNlKQogCkBAIC02NCw3ICs3OCw3IEBAIGRlZiB0ZXN0X2VsZW1l
bnRfc2VsZWN0ZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBUcnVlKQog
CiAKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X3NlbGVjdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxl
bWVudF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbiwgb3B0aW9uX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwg
PSBvcHRpb25fZG9jCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNub3RTZWxlY3Rl
ZCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxl
Y3RlZC91c2VyX3Byb21wdHMucHkKaW5kZXggNjc0ZjgwYzVjNzViLi45NmRhMmMwOGJkN2UgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNf
ZWxlbWVudF9zZWxlY3RlZC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0
cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3Nl
cnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAog
ZGVmIGlzX2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xNCw3ICsx
Myw3IEBAIGRlZiBpc19lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlk
PWZvbyB0eXBlPWNoZWNrYm94IGNoZWNrZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMSw3ICszMCw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9
Zm9vIHR5cGU9Y2hlY2tib3ggY2hlY2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
IAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9v
IHR5cGU9Y2hlY2tib3ggY2hlY2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9tYXhpbWl6ZV93aW5kb3cv
bWF4aW1pemUucHkKaW5kZXggNjkwM2VlY2U3MGQwLi5lMjMzZTQ1YTEwZDcgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2lu
ZG93L21heGltaXplLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5CkBAIC04NCw2ICs4NCw3IEBAIGRl
ZiB0ZXN0X21heGltaXplX3doZW5fcmVzaXplZF90b19tYXhfc2l6ZShzZXNzaW9uKToKICAgICBz
ZXNzaW9uLmVuZCgpCiAgICAgc2Vzc2lvbi53aW5kb3cubWF4aW1pemUoKQogICAgIGF2YWlsYWJs
ZSA9IHNlc3Npb24ud2luZG93LnNpemUKKyAgICBzZXNzaW9uLndpbmRvdy5zaXplID0gKDgwMCwg
NjAwKQogICAgIHNlc3Npb24uZW5kKCkKIAogICAgIHNlc3Npb24ud2luZG93LnNpemUgPSBhdmFp
bGFibGUKQEAgLTk1LDQgKzk2LDUgQEAgZGVmIHRlc3RfbWF4aW1pemVfd2hlbl9yZXNpemVkX3Rv
X21heF9zaXplKHNlc3Npb24pOgogICAgICMgaXRzIGV4cGVjdGVkIGRpbWVuc2lvbnMuCiAgICAg
YmVmb3JlID0gc2Vzc2lvbi53aW5kb3cuc2l6ZQogICAgIHNlc3Npb24ud2luZG93Lm1heGltaXpl
KCkKLSAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3cuc2l6ZSA9PSBiZWZvcmUKKyAgICBhZnRlciA9
IHNlc3Npb24ud2luZG93LnNpemUKKyAgICBhc3NlcnQgYWZ0ZXIgPT0gYmVmb3JlCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRl
X3RvL25hdmlnYXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9uYXZpZ2F0ZV90by9uYXZpZ2F0ZS5weQppbmRleCAyODllNDMyMTAxMWYuLjI1ZDc2ODE2
N2FhMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9uYXZpZ2F0ZV90by9uYXZpZ2F0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL25hdmlnYXRlLnB5CkBAIC0xLDggKzEs
MTEgQEAKLWZyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQgcGxhdGZvcm1fbmFtZQoraW1wb3J0IHRp
bWUKKworaW1wb3J0IHB5dGVzdAorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiBmcm9tIHdl
YmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKK2Zyb20gdGVzdHMuc3VwcG9ydCBp
bXBvcnQgcGxhdGZvcm1fbmFtZQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBuYXZpZ2F0ZV90byhzZXNzaW9uLCB1cmwpOgpAQCAtMTcsNyAr
MjAsNyBAQCBkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwKToKICAg
ICAgICAgYXNzZXJ0X2Vycm9yKFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSksICJpbnZhbGlk
IGFyZ3VtZW50IikKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgor
ZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHJlc3Bv
bnNlID0gbmF2aWdhdGVfdG8oc2Vzc2lvbiwgaW5saW5lKCI8ZGl2Lz4iKSkKICAgICB2YWx1ZSA9
IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogICAgIGFzc2VydCB2YWx1ZSBpcyBOb25lCkBAIC0y
OCw3ICszMSw3IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNs
b3NlZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93
IikKIAogCi1kZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFt
ZSk6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwg
aW5saW5lKToKICAgICBkb2MgPSBpbmxpbmUoIjxwPmZvbyIpCiAKICAgICByZXNwb25zZSA9IG5h
dmlnYXRlX3RvKHNlc3Npb24sIGRvYykKQEAgLTUyLDMgKzU1LDQ4IEBAIGRlZiB0ZXN0X2ZpbGVf
cHJvdG9jb2woc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAgaWYgc2Vzc2lvbi51cmwuZW5k
c3dpdGgoJy8nKToKICAgICAgICAgdXJsICs9ICcvJwogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9
PSB1cmwKKworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlm
aWNhdGUgaXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2Vw
dEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbihzZXNzaW9uLCBp
bmxpbmUsIHVybCk6CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
aHRtbC9zdWJmcmFtZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jv
c3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1
cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJh
c2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBzIiwgZG9tYWluPSJhbHQiKQorCisgICAgcmVzcG9uc2Ug
PSBuYXZpZ2F0ZV90byhzZXNzaW9uLCBmaXJzdF9wYWdlKQorICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IGZpcnN0X3BhZ2UKKyAgICBlbGVt
ID0gc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNl
ID0gbmF2aWdhdGVfdG8oc2Vzc2lvbiwgc2Vjb25kX3BhZ2UpCisgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gc2Vjb25kX3BhZ2UKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoZXJyb3IuU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToK
KyAgICAgICAgZWxlbS5jbGljaygpCisKKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwg
YWxsPUZhbHNlKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJwYWdlTG9hZFN0cmF0
ZWd5IjogImVhZ2VyIn0pCitkZWYgdGVzdF91dGY4X21ldGFfdGFnX2FmdGVyXzEwMjRfYnl0ZXMo
c2Vzc2lvbiwgdXJsKToKKyAgICBwYWdlID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
aHRtbC9tZXRhLXV0ZjgtYWZ0ZXItMTAyNC1ieXRlcy5odG1sIikKKworICAgICMgTG9hZGluZyB0
aGUgcGFnZSB3aWxsIGNhdXNlIGEgcmVhbCBwYXJzZSBjb21tZW5jaW5nLCBhbmQgYSByZW5hdmln
YXRpb24KKyAgICAjIHRvIHRoZSBzYW1lIFVSTCBnZXR0aW5nIHRyaWdnZXJlZCBzdWJzZXF1ZW50
bHkuIFRlc3QgdGhhdCB0aGUgbmF2aWdhdGUKKyAgICAjIGNvbW1hbmQgd2FpdHMgbG9uZyBlbm91
Z2guCisgICAgcmVzcG9uc2UgPSBuYXZpZ2F0ZV90byhzZXNzaW9uLCBwYWdlKQorICAgIGFzc2Vy
dF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgIyBJZiB0aGUgY29tbWFuZCByZXR1cm5zIHRvbyBl
YXJseSB0aGUgcHJvcGVydHkgd2lsbCBiZSByZXNldCBkdWUgdG8gdGhlCisgICAgIyBzdWJzZXF1
ZW50IHBhZ2UgbG9hZC4KKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cuZm9vID0g
J2JhciciKQorCisgICAgIyBVc2UgZGVsYXkgdG8gYWxsb3cgYSBwb3NzaWJsZSBtaXNzaW5nIHN1
YnNlcXVlbnQgbmF2aWdhdGlvbiB0byBzdGFydAorICAgIHRpbWUuc2xlZXAoMSkKKworICAgIGFz
c2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LmZvbyIpID09ICJiYXIi
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvbmF2aWdhdGVfdG8vdXNlcl9wcm9tcHRzLnB5CmluZGV4IDZhOTRj
MTFiZjFkMy4uNjgyYmM0MGY0ZmU5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3Vz
ZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFz
c2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIG5hdmlnYXRlX3RvKHNlc3Npb24sIHVybCk6CkBAIC0xMyw3ICsxMiw3IEBA
IGRlZiBuYXZpZ2F0ZV90byhzZXNzaW9uLCB1cmwpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICB1cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKQEAgLTMwLDcgKzI5LDcgQEAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgdXJsID0gaW5saW5lKCI8ZGl2Lz4iKQogCkBAIC00
Nyw3ICs0Niw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICB1cmwgPSBpbmxp
bmUoIjxkaXYvPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vcmVzcG9uc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CmluZGV4
IGNiZTllN2Q3ZmIxNC4uNDNhOGQ1NzkzMTE0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24v
cmVzcG9uc2UucHkKQEAgLTEsMjkgKzEsMjcgQEAKIGltcG9ydCB1dWlkCiBpbXBvcnQgcHl0ZXN0
CiAKLWZyb20gc2l4IGltcG9ydCBzdHJpbmdfdHlwZXMKLQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCiAKIAogZGVmIHRlc3Rfc2Vzc2lvbmlkKG5ld19z
ZXNzaW9uLCBhZGRfYnJvd3Nlcl9jYXBhYmlsaXRpZXMpOgogICAgIHJlc3BvbnNlLCBfID0gbmV3
X3Nlc3Npb24oeyJjYXBhYmlsaXRpZXMiOiB7ImFsd2F5c01hdGNoIjogYWRkX2Jyb3dzZXJfY2Fw
YWJpbGl0aWVzKHt9KX19KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0g
ICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWVbInNlc3Npb25JZCJdLCBzdHJpbmdfdHlwZXMpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWVbInNlc3Npb25JZCJdLCBzdHIpCiAgICAgdXVpZC5V
VUlEKGhleD12YWx1ZVsic2Vzc2lvbklkIl0pCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJjYXBhYmlsaXR5LCB0eXBlIiwgWwotICAgICgiYnJvd3Nlck5hbWUiLCBzdHJpbmdfdHlwZXMp
LAotICAgICgiYnJvd3NlclZlcnNpb24iLCBzdHJpbmdfdHlwZXMpLAotICAgICgicGxhdGZvcm1O
YW1lIiwgc3RyaW5nX3R5cGVzKSwKKyAgICAoImJyb3dzZXJOYW1lIiwgc3RyKSwKKyAgICAoImJy
b3dzZXJWZXJzaW9uIiwgc3RyKSwKKyAgICAoInBsYXRmb3JtTmFtZSIsIHN0ciksCiAgICAgKCJh
Y2NlcHRJbnNlY3VyZUNlcnRzIiwgYm9vbCksCi0gICAgKCJwYWdlTG9hZFN0cmF0ZWd5Iiwgc3Ry
aW5nX3R5cGVzKSwKKyAgICAoInBhZ2VMb2FkU3RyYXRlZ3kiLCBzdHIpLAogICAgICgicHJveHki
LCBkaWN0KSwKICAgICAoInNldFdpbmRvd1JlY3QiLCBib29sKSwKICAgICAoInRpbWVvdXRzIiwg
ZGljdCksCiAgICAgKCJzdHJpY3RGaWxlSW50ZXJhY3RhYmlsaXR5IiwgYm9vbCksCi0gICAgKCJ1
bmhhbmRsZWRQcm9tcHRCZWhhdmlvciIsIHN0cmluZ190eXBlcyksCisgICAgKCJ1bmhhbmRsZWRQ
cm9tcHRCZWhhdmlvciIsIHN0ciksCiBdKQogZGVmIHRlc3RfY2FwYWJpbGl0eV90eXBlKHNlc3Np
b24sIGNhcGFiaWxpdHksIHR5cGUpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKHNlc3Npb24uY2Fw
YWJpbGl0aWVzLCBkaWN0KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRf
dXJsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDUyZGVjYzkw
YWExCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5CkBAIC0wLDAgKzEsNyBAQAor
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCisKK2RlZiB0
ZXN0X3dlYnNvY2tldF91cmwobmV3X3Nlc3Npb24sIGFkZF9icm93c2VyX2NhcGFiaWxpdGllcyk6
CisgICAgcmVzcG9uc2UsIF8gPSBuZXdfc2Vzc2lvbih7ImNhcGFiaWxpdGllcyI6IHsKKyAgICAg
ICAgImFsd2F5c01hdGNoIjogYWRkX2Jyb3dzZXJfY2FwYWJpbGl0aWVzKHsid2ViU29ja2V0VXJs
IjogVHJ1ZX0pfX0pCisgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBh
c3NlcnQgdmFsdWVbImNhcGFiaWxpdGllcyJdWyJ3ZWJTb2NrZXRVcmwiXS5zdGFydHN3aXRoKCJ3
czovLyIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL25ld193aW5kb3cvbmV3X3RhYi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfdGFiLnB5CmluZGV4IDkzMDBiMDRjNDVm
YS4uMjcwZTRiNTFiODhmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3RhYi5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3RhYi5weQpAQCAt
MSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBp
bXBvcnQgb3BlbmVyLCB3aW5kb3dfbmFtZQogCkBAIC0zMiw3ICszMSw3IEBAIGRlZiB0ZXN0X2tl
ZXBzX2N1cnJlbnRfd2luZG93X2hhbmRsZShzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vzc2lvbi53
aW5kb3dfaGFuZGxlID09IG9yaWdpbmFsX2hhbmRsZQogCiAKLWRlZiB0ZXN0X29wZW5zX2Fib3V0
X2JsYW5rX2luX25ld190YWIoc2Vzc2lvbik6CitkZWYgdGVzdF9vcGVuc19hYm91dF9ibGFua19p
bl9uZXdfdGFiKHNlc3Npb24sIGlubGluZSk6CiAgICAgdXJsID0gaW5saW5lKCI8cD5mb28iKQog
ICAgIHNlc3Npb24udXJsID0gdXJsCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfd2luZG93L25ld193aW5k
b3cucHkKaW5kZXggYjM0ODU0Y2MyZjNmLi5kM2MyMjQ1MDI3MDQgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2lu
ZG93LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
bmV3X3dpbmRvdy9uZXdfd2luZG93LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBvcGVuZXIsIHdpbmRvd19uYW1lCiAK
QEAgLTMyLDcgKzMxLDcgQEAgZGVmIHRlc3Rfa2VlcHNfY3VycmVudF93aW5kb3dfaGFuZGxlKHNl
c3Npb24pOgogICAgIGFzc2VydCBzZXNzaW9uLndpbmRvd19oYW5kbGUgPT0gb3JpZ2luYWxfaGFu
ZGxlCiAKIAotZGVmIHRlc3Rfb3BlbnNfYWJvdXRfYmxhbmtfaW5fbmV3X3dpbmRvdyhzZXNzaW9u
KToKK2RlZiB0ZXN0X29wZW5zX2Fib3V0X2JsYW5rX2luX25ld193aW5kb3coc2Vzc2lvbiwgaW5s
aW5lKToKICAgICB1cmwgPSBpbmxpbmUoIjxwPmZvbyIpCiAgICAgc2Vzc2lvbi51cmwgPSB1cmwK
IApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9jb25mdGVzdC5weQppbmRleCA5NzBm
N2I3ZGQ5YmUuLjE4OGY4ZGRiYjVlZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlv
bnMvY29uZnRlc3QucHkKQEAgLTMyLDYgKzMyLDIyIEBAIGRlZiBtb3VzZV9jaGFpbihzZXNzaW9u
KToKICAgICAgICAgeyJwb2ludGVyVHlwZSI6ICJtb3VzZSJ9KQogCiAKK0BweXRlc3QuZml4dHVy
ZQorZGVmIHRvdWNoX2NoYWluKHNlc3Npb24pOgorICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMu
c2VxdWVuY2UoCisgICAgICAgICJwb2ludGVyIiwKKyAgICAgICAgInBvaW50ZXJfaWQiLAorICAg
ICAgICB7InBvaW50ZXJUeXBlIjogInRvdWNoIn0pCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYg
cGVuX2NoYWluKHNlc3Npb24pOgorICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2Uo
CisgICAgICAgICJwb2ludGVyIiwKKyAgICAgICAgInBvaW50ZXJfaWQiLAorICAgICAgICB7InBv
aW50ZXJUeXBlIjogInBlbiJ9KQorCisKIEBweXRlc3QuZml4dHVyZQogZGVmIG5vbmVfY2hhaW4o
c2Vzc2lvbik6CiAgICAgcmV0dXJuIHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgibm9uZSIsICJu
b25lX2lkIikKQEAgLTY2LDMgKzgyLDggQEAgZGVmIHRlc3RfYWN0aW9uc19wYWdlKHNlc3Npb24s
IHVybCk6CiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiB0ZXN0X2FjdGlvbnNfc2Nyb2xsX3BhZ2Uoc2Vz
c2lvbiwgdXJsKToKICAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9wZXJm
b3JtX2FjdGlvbnMvc3VwcG9ydC90ZXN0X2FjdGlvbnNfc2Nyb2xsX3dkc3BlYy5odG1sIikKKwor
CitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlKHNlc3Npb24s
IHVybCk6CisgICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9h
Y3Rpb25zL3N1cHBvcnQvdGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwiKQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMva2V5X2V2ZW50cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkKaW5kZXggYzM5NTgwMTVi
ZmQ0Li44ZGJlMDI0ZDE4MzkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMv
a2V5X2V2ZW50cy5weQpAQCAtNSw3ICs1LDggQEAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVm
YXVsdGRpY3QKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3Vw
cG9ydC5rZXlzIGltcG9ydCBBTExfRVZFTlRTLCBLZXlzLCBBTFRFUk5BVElWRV9LRVlfTkFNRVMK
LWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJf
ZGljdCwgZ2V0X2V2ZW50cywgZ2V0X2tleXMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1
cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5zdXBw
b3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3Rfa2V5dXBfb25seV9z
ZW5kc19ub19ldmVudHMoc2Vzc2lvbiwga2V5X3JlcG9ydGVyLCBrZXlfY2hhaW4pOgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvcG9pbnRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXIucHkKaW5kZXggYWQ1NDY5MjE0NjBlLi42
NzRkNDZkN2I2MTAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlci5w
eQpAQCAtNSwxNyArNSwxMiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlci5lcnJvciBp
bXBvcnQgTm9TdWNoV2luZG93RXhjZXB0aW9uCiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25z
LnN1cHBvcnQubW91c2UgaW1wb3J0IGdldF9pbnZpZXdfY2VudGVyLCBnZXRfdmlld3BvcnRfcmVj
dAotZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRl
cl9kaWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJl
ZmluZSBpbXBvcnQgZ2V0X2V2ZW50cwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9tb3ZlX3RvX2Nvb3JkaW5hdGVzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGlt
cG9ydCBpbmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGlj
dAogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCi1kZWYgbGlua19kb2Mo
ZGVzdCk6Ci0gICAgY29udGVudCA9ICI8YSBocmVmPVwie31cIiBpZD1cImxpbmtcIj5kZXN0aW5h
dGlvbjwvYT4iLmZvcm1hdChkZXN0KQotICAgIHJldHVybiBpbmxpbmUoY29udGVudCkKLQotCiBk
ZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICB2
YWx1ZSA9IG1vdXNlX2NoYWluLmNsaWNrKCkucGVyZm9ybSgpCiAgICAgYXNzZXJ0IHZhbHVlIGlz
IE5vbmUKQEAgLTk1LDkgKzkwLDkgQEAgZGVmIHRlc3RfY2xpY2tfZWxlbWVudF9jZW50ZXIoc2Vz
c2lvbiwgdGVzdF9hY3Rpb25zX3BhZ2UsIG1vdXNlX2NoYWluKToKICAgICAgICAgICAgIGFzc2Vy
dCBlWyJ0YXJnZXQiXSA9PSAib3V0ZXIiCiAKIAotZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihz
ZXNzaW9uLCB1cmwpOgorZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwsIGlu
bGluZSk6CiAgICAgZGVzdGluYXRpb24gPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvYWN0aW9ucy9z
dXBwb3J0L3Rlc3RfYWN0aW9uc193ZHNwZWMuaHRtbCIpCi0gICAgc3RhcnQgPSBsaW5rX2RvYyhk
ZXN0aW5hdGlvbikKKyAgICBzdGFydCA9IGlubGluZSgiPGEgaHJlZj1cInt9XCIgaWQ9XCJsaW5r
XCI+ZGVzdGluYXRpb248L2E+Ii5mb3JtYXQoZGVzdGluYXRpb24pKQogCiAgICAgZGVmIGNsaWNr
KGxpbmspOgogICAgICAgICBtb3VzZV9jaGFpbiA9IHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgK
QEAgLTExNSw2ICsxMTAsODUgQEAgZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1
cmwpOgogICAgIFBvbGwoc2Vzc2lvbiwgbWVzc2FnZT1lcnJvcl9tZXNzYWdlKS51bnRpbChsYW1i
ZGEgczogcy51cmwgPT0gZGVzdGluYXRpb24pCiAKIAorZGVmIHRlc3RfcGVuX3BvaW50ZXJfcHJv
cGVydGllcyhzZXNzaW9uLCB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCBwZW5fY2hhaW4pOgor
ICAgIHBvaW50ZXJBcmVhID0gc2Vzc2lvbi5maW5kLmNzcygiI3BvaW50ZXJBcmVhIiwgYWxsPUZh
bHNlKQorICAgIGNlbnRlciA9IGdldF9pbnZpZXdfY2VudGVyKHBvaW50ZXJBcmVhLnJlY3QsIGdl
dF92aWV3cG9ydF9yZWN0KHNlc3Npb24pKQorICAgIHBlbl9jaGFpbi5wb2ludGVyX21vdmUoMCwg
MCwgb3JpZ2luPXBvaW50ZXJBcmVhKSBcCisgICAgICAgIC5wb2ludGVyX2Rvd24ocHJlc3N1cmU9
MC4zNiwgdGlsdF94PS03MiwgdGlsdF95PTksIHR3aXN0PTg2KSBcCisgICAgICAgIC5wb2ludGVy
X21vdmUoMTAsIDEwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBvaW50ZXJfdXAo
KSBcCisgICAgICAgIC5wb2ludGVyX21vdmUoODAsIDUwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwK
KyAgICAgICAgLnBlcmZvcm0oKQorICAgIGV2ZW50cyA9IGdldF9ldmVudHMoc2Vzc2lvbikKKyAg
ICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gMTAKKyAgICBldmVudF90eXBlcyA9IFtlWyJ0eXBlIl0g
Zm9yIGUgaW4gZXZlbnRzXQorICAgIGFzc2VydCBbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRl
ciIsICJwb2ludGVybW92ZSIsICJwb2ludGVyZG93biIsCisgICAgICAgICAgICAicG9pbnRlcm92
ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJtb3ZlIiwgInBvaW50ZXJ1cCIsCisgICAgICAg
ICAgICAicG9pbnRlcm91dCIsICJwb2ludGVybGVhdmUiXSA9PSBldmVudF90eXBlcworICAgIGFz
c2VydCBldmVudHNbM11bInR5cGUiXSA9PSAicG9pbnRlcmRvd24iCisgICAgYXNzZXJ0IGV2ZW50
c1szXVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJdLCBhYnM9MS4wKQorICAg
IGFzc2VydCBldmVudHNbM11bInBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwg
YWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEi
CisgICAgYXNzZXJ0IGV2ZW50c1szXVsicG9pbnRlclR5cGUiXSA9PSAicGVuIgorICAgICMgVGhl
IGRlZmF1bHQgdmFsdWUgb2Ygd2lkdGggYW5kIGhlaWdodCBmb3IgbW91c2UgYW5kIHBlbiBpbnB1
dHMgaXMgMQorICAgIGFzc2VydCByb3VuZChldmVudHNbM11bIndpZHRoIl0sIDIpID09IDEKKyAg
ICBhc3NlcnQgcm91bmQoZXZlbnRzWzNdWyJoZWlnaHQiXSwgMikgPT0gMQorICAgIGFzc2VydCBy
b3VuZChldmVudHNbM11bInByZXNzdXJlIl0sIDIpID09IDAuMzYKKyAgICBhc3NlcnQgZXZlbnRz
WzNdWyJ0aWx0WCJdID09IC03MgorICAgIGFzc2VydCBldmVudHNbM11bInRpbHRZIl0gPT0gOQor
ICAgIGFzc2VydCBldmVudHNbM11bInR3aXN0Il0gPT0gODYKKyAgICBhc3NlcnQgZXZlbnRzWzZd
WyJ0eXBlIl0gPT0gInBvaW50ZXJtb3ZlIgorICAgIGFzc2VydCBldmVudHNbNl1bInBhZ2VYIl0g
PT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbIngiXSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZl
bnRzWzZdWyJwYWdlWSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0rMTAsIGFicz0xLjAp
CisgICAgYXNzZXJ0IGV2ZW50c1s2XVsidGFyZ2V0Il0gPT0gInBvaW50ZXJBcmVhIgorICAgIGFz
c2VydCBldmVudHNbNl1bInBvaW50ZXJUeXBlIl0gPT0gInBlbiIKKyAgICBhc3NlcnQgcm91bmQo
ZXZlbnRzWzZdWyJ3aWR0aCJdLCAyKSA9PSAxCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1s2XVsi
aGVpZ2h0Il0sIDIpID09IDEKKyAgICAjIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHByZXNzdXJlIGZv
ciBhbGwgaW5wdXRzIGlzIDAuNSwgb3RoZXIgcHJvcGVydGllcyBhcmUgMAorICAgIGFzc2VydCBy
b3VuZChldmVudHNbNl1bInByZXNzdXJlIl0sIDIpID09IDAuNQorICAgIGFzc2VydCBldmVudHNb
Nl1bInRpbHRYIl0gPT0gMAorICAgIGFzc2VydCBldmVudHNbNl1bInRpbHRZIl0gPT0gMAorICAg
IGFzc2VydCBldmVudHNbNl1bInR3aXN0Il0gPT0gMAorCisKK2RlZiB0ZXN0X3RvdWNoX3BvaW50
ZXJfcHJvcGVydGllcyhzZXNzaW9uLCB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCB0b3VjaF9j
aGFpbik6CisgICAgcG9pbnRlckFyZWEgPSBzZXNzaW9uLmZpbmQuY3NzKCIjcG9pbnRlckFyZWEi
LCBhbGw9RmFsc2UpCisgICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50ZXIocG9pbnRlckFyZWEu
cmVjdCwgZ2V0X3ZpZXdwb3J0X3JlY3Qoc2Vzc2lvbikpCisgICAgdG91Y2hfY2hhaW4ucG9pbnRl
cl9tb3ZlKDAsIDAsIG9yaWdpbj1wb2ludGVyQXJlYSkgXAorICAgICAgICAucG9pbnRlcl9kb3du
KHdpZHRoPTIzLCBoZWlnaHQ9MzEsIHByZXNzdXJlPTAuNzgsIHRpbHRfeD0yMSwgdGlsdF95PS04
LCB0d2lzdD0zNTUpIFwKKyAgICAgICAgLnBvaW50ZXJfbW92ZSgxMCwgMTAsIG9yaWdpbj1wb2lu
dGVyQXJlYSwgd2lkdGg9MzksIGhlaWdodD0zNSwgcHJlc3N1cmU9MC45MSwgdGlsdF94PS0xOSwg
dGlsdF95PTYyLCB0d2lzdD0zNDUpIFwKKyAgICAgICAgLnBvaW50ZXJfdXAoKSBcCisgICAgICAg
IC5wb2ludGVyX21vdmUoODAsIDUwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBl
cmZvcm0oKQorICAgIGV2ZW50cyA9IGdldF9ldmVudHMoc2Vzc2lvbikKKyAgICBhc3NlcnQgbGVu
KGV2ZW50cykgPT0gNworICAgIGV2ZW50X3R5cGVzID0gW2VbInR5cGUiXSBmb3IgZSBpbiBldmVu
dHNdCisgICAgYXNzZXJ0IFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJk
b3duIiwgInBvaW50ZXJtb3ZlIiwKKyAgICAgICAgICAgICJwb2ludGVydXAiLCAicG9pbnRlcm91
dCIsICJwb2ludGVybGVhdmUiXSA9PSBldmVudF90eXBlcworICAgIGFzc2VydCBldmVudHNbMl1b
InR5cGUiXSA9PSAicG9pbnRlcmRvd24iCisgICAgYXNzZXJ0IGV2ZW50c1syXVsicGFnZVgiXSA9
PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNb
Ml1bInBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzPTEuMCkKKyAgICBh
c3NlcnQgZXZlbnRzWzJdWyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2
ZW50c1syXVsicG9pbnRlclR5cGUiXSA9PSAidG91Y2giCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50
c1syXVsid2lkdGgiXSwgMikgPT0gMjMKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJoZWln
aHQiXSwgMikgPT0gMzEKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJwcmVzc3VyZSJdLCAy
KSA9PSAwLjc4CisgICAgYXNzZXJ0IGV2ZW50c1syXVsidGlsdFgiXSA9PSAyMQorICAgIGFzc2Vy
dCBldmVudHNbMl1bInRpbHRZIl0gPT0gLTgKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJ0d2lzdCJd
ID09IDM1NQorICAgIGFzc2VydCBldmVudHNbM11bInR5cGUiXSA9PSAicG9pbnRlcm1vdmUiCisg
ICAgYXNzZXJ0IGV2ZW50c1szXVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJd
KzEwLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbM11bInBhZ2VZIl0gPT0gcHl0ZXN0LmFw
cHJveChjZW50ZXJbInkiXSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0YXJn
ZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50c1szXVsicG9pbnRlclR5cGUi
XSA9PSAidG91Y2giCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1szXVsid2lkdGgiXSwgMikgPT0g
MzkKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzNdWyJoZWlnaHQiXSwgMikgPT0gMzUKKyAgICBh
c3NlcnQgcm91bmQoZXZlbnRzWzNdWyJwcmVzc3VyZSJdLCAyKSA9PSAwLjkxCisgICAgYXNzZXJ0
IGV2ZW50c1szXVsidGlsdFgiXSA9PSAtMTkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WSJd
ID09IDYyCisgICAgYXNzZXJ0IGV2ZW50c1szXVsidHdpc3QiXSA9PSAzNDUKKworCiBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoImRyYWdfZHVyYXRpb24iLCBbMCwgMzAwLCA4MDBdKQogQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJkeCwgZHkiLCBbCiAgICAgKDIwLCAwKSwgKDAsIDE1KSwgKDEw
LCAxNSksICgtMjAsIDApLCAoMTAsIC0xNSksICgtMTAsIC0xNSkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3Bv
aW50ZXJfY29udGV4dG1lbnUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRtZW51LnB5CmluZGV4IGZk
YTNmMThiYmMxYy4uNTBmNjg0MzI3ZjJhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRt
ZW51LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfY29udGV4dG1lbnUucHkKQEAgLTEsNyArMSw4IEBACiBp
bXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQua2V5cyBp
bXBvcnQgS2V5cwotZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1w
b3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5z
dXBwb3J0LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBl
cnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2Rp
ZmllciwgcHJvcCIsIFsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9w
b2ludGVyX2RibGNsaWNrLnB5CmluZGV4IDhjODljZWY1ZjM4MC4uNWJlNjM1YTRkNTYwIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZv
cm1fYWN0aW9ucy9wb2ludGVyX2RibGNsaWNrLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2su
cHkKQEAgLTEsNyArMSw4IEBACiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gdGVzdHMucGVyZm9ybV9h
Y3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJv
bSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMK
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGlu
YXRlcworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAog
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbGlja19wYXVzZSIsIFswLCAyMDBdKQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGljay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfbW9kaWZpZXJf
Y2xpY2sucHkKaW5kZXggYmE4MWY2ZDA5MGIyLi4yOGM0MDg2ZTBmOGMgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25z
L3BvaW50ZXJfbW9kaWZpZXJfY2xpY2sucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGlj
ay5weQpAQCAtMSw3ICsxLDggQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5wZXJmb3Jt
X2FjdGlvbnMuc3VwcG9ydC5rZXlzIGltcG9ydCBLZXlzCi1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0
aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20g
dGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCitm
cm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoIm1vZGlmaWVyLCBwcm9wIiwgWwpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9p
bnRlcl9vcmlnaW4ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX29yaWdpbi5weQppbmRleCA0YzlkYzg3OWU5OTku
LmM0ZTVkYjdhMDAxNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMv
cG9pbnRlcl9vcmlnaW4ucHkKQEAgLTMsMjMgKzMsMjUgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3
ZWJkcml2ZXIgaW1wb3J0IE1vdmVUYXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbgogCiBmcm9tIHRl
c3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0Lm1vdXNlIGltcG9ydCBnZXRfaW52aWV3X2NlbnRl
ciwgZ2V0X3ZpZXdwb3J0X3JlY3QKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogCiAKLWRlZiBvcmlnaW5fZG9jKGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6Ci0g
ICAgcmV0dXJuIGlubGluZSgiIiIKLSAgICAgIDxkaXYgaWQ9Im91dGVyIiBzdHlsZT0iezF9Igot
ICAgICAgICAgICBvbm1vdXNlbW92ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xpZW50
WCwgeTogZXZlbnQuY2xpZW50WX19Ij4KLSAgICAgICAgPGRpdiBpZD0iaW5uZXIiIHN0eWxlPSJ7
MH0iPjwvZGl2PgotICAgICAgPC9kaXY+Ci0gICAgIiIiLmZvcm1hdChpbm5lcl9zdHlsZSwgb3V0
ZXJfc3R5bGUpKQorQHB5dGVzdC5maXh0dXJlCitkZWYgb3JpZ2luX2RvYyhpbmxpbmUpOgorICAg
IGRlZiBvcmlnaW5fZG9jKGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6CisgICAgICAgIHJl
dHVybiBpbmxpbmUoIiIiCisgICAgICAgICAgPGRpdiBpZD0ib3V0ZXIiIHN0eWxlPSJ7MX0iCisg
ICAgICAgICAgICAgICBvbm1vdXNlbW92ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xp
ZW50WCwgeTogZXZlbnQuY2xpZW50WX19Ij4KKyAgICAgICAgICAgIDxkaXYgaWQ9ImlubmVyIiBz
dHlsZT0iezB9Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgIiIiLmZvcm1hdChp
bm5lcl9zdHlsZSwgb3V0ZXJfc3R5bGUpKQorICAgIHJldHVybiBvcmlnaW5fZG9jCiAKIAogZGVm
IGdldF9jbGlja19jb29yZGluYXRlcyhzZXNzaW9uKToKICAgICByZXR1cm4gc2Vzc2lvbi5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdy5jb29yZHM7IikKIAogCi1kZWYgdGVzdF92aWV3cG9y
dF9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3Rfdmlld3BvcnRfaW5zaWRl
KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBwb2ludCA9IHsieCI6IDUw
LCAieSI6IDUwfQogCiAgICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMTAwcHg7
IGhlaWdodDogNTBweDsgYmFja2dyb3VuZDogZ3JlZW47IikKQEAgLTM5LDcgKzQxLDcgQEAgZGVm
IHRlc3Rfdmlld3BvcnRfb3V0c2lkZShzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgICAgICAg
ICAucGVyZm9ybSgpCiAKIAotZGVmIHRlc3RfcG9pbnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2Vf
Y2hhaW4pOgorZGVmIHRlc3RfcG9pbnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9y
aWdpbl9kb2MpOgogICAgIHN0YXJ0X3BvaW50ID0geyJ4IjogNTAsICJ5IjogNTB9CiAgICAgb2Zm
c2V0ID0geyJ4IjogMTAsICJ5IjogNX0KIApAQCAtNjEsNyArNjMsNyBAQCBkZWYgdGVzdF9wb2lu
dGVyX291dHNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgICAgICAgICAgLnBlcmZvcm0o
KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWlu
KToKK2RlZiB0ZXN0X2VsZW1lbnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluLCBv
cmlnaW5fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9yaWdpbl9kb2MoIndpZHRoOiAxMDBweDsg
aGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiKQogICAgIGVsZW0gPSBzZXNzaW9uLmZp
bmQuY3NzKCIjaW5uZXIiLCBhbGw9RmFsc2UpCiAgICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50
ZXIoZWxlbS5yZWN0LCBnZXRfdmlld3BvcnRfcmVjdChzZXNzaW9uKSkKQEAgLTc1LDcgKzc3LDcg
QEAgZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgog
ICAgIGFzc2VydCBjbGlja19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJd
LCBhYnMgPSAxLjApCiAKIAotZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0aF9vZmZz
ZXQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRf
d2l0aF9vZmZzZXQoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHNlc3Np
b24udXJsID0gb3JpZ2luX2RvYygid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91
bmQ6IGdyZWVuOyIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1G
YWxzZSkKICAgICBjZW50ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihlbGVtLnJlY3QsIGdldF92aWV3
cG9ydF9yZWN0KHNlc3Npb24pKQpAQCAtODksNyArOTEsNyBAQCBkZWYgdGVzdF9lbGVtZW50X2Nl
bnRlcl9wb2ludF93aXRoX29mZnNldChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgYXNzZXJ0
IGNsaWNrX2Nvb3Jkc1sieSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0gKyAxNSwgYWJz
ID0gMS4wKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfaW5fdmlld19jZW50ZXJfcG9pbnRfcGFydGx5
X3Zpc2libGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9pbl92aWV3
X2NlbnRlcl9wb2ludF9wYXJ0bHlfdmlzaWJsZShzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2lu
X2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCIiIndpZHRoOiAxMDBweDsgaGVp
Z2h0OiA1MHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAtNTBweDsgdG9wOiAtMjVweDsiIiIpCiAg
ICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKQEAgLTEwNCw3
ICsxMDYsNyBAQCBkZWYgdGVzdF9lbGVtZW50X2luX3ZpZXdfY2VudGVyX3BvaW50X3BhcnRseV92
aXNpYmxlKHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICBhc3NlcnQgY2xpY2tfY29vcmRzWyJ5
Il0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzID0gMS4wKQogCiAKLWRlZiB0ZXN0
X2VsZW1lbnRfbGFyZ2VyX3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVm
IHRlc3RfZWxlbWVudF9sYXJnZXJfdGhhbl92aWV3cG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbiwg
b3JpZ2luX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMzAwdnc7
IGhlaWdodDogMzAwdmg7IGJhY2tncm91bmQ6IGdyZWVuOyIpCiAgICAgZWxlbSA9IHNlc3Npb24u
ZmluZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKICAgICBjZW50ZXIgPSBnZXRfaW52aWV3X2Nl
bnRlcihlbGVtLnJlY3QsIGdldF92aWV3cG9ydF9yZWN0KHNlc3Npb24pKQpAQCAtMTE4LDcgKzEy
MCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfbGFyZ2VyX3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91
c2VfY2hhaW4pOgogICAgIGFzc2VydCBjbGlja19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94
KGNlbnRlclsieSJdLCBhYnMgPSAxLjApCiAKIAotZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29m
X3ZpZXdfcG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CitkZWYgdGVzdF9lbGVtZW50X291dHNp
ZGVfb2Zfdmlld19wb3J0KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBz
ZXNzaW9uLnVybCA9IG9yaWdpbl9kb2MoIiIid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJh
Y2tncm91bmQ6IGdyZWVuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlv
bjogcmVsYXRpdmU7IGxlZnQ6IC0yMDBweDsgdG9wOiAtMTAwcHg7IiIiKQogICAgIGVsZW0gPSBz
ZXNzaW9uLmZpbmQuY3NzKCIjaW5uZXIiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2lu
dGVyX3BhdXNlX2RibGNsaWNrLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxjbGljay5weQppbmRl
eCA4NTY3OWYzNjE0YTguLmQ0NjE3OGExZDY1MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVz
ZV9kYmxjbGljay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3BhdXNlX2RibGNsaWNrLnB5CkBAIC0xLDUg
KzEsNiBAQAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5tb3VzZSBpbXBvcnQg
Z2V0X2ludmlld19jZW50ZXIsIGdldF92aWV3cG9ydF9yZWN0Ci1mcm9tIHRlc3RzLnBlcmZvcm1f
YWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zy
b20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRz
Citmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogX0RCTENM
SUNLX0lOVEVSVkFMID0gNjQwCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfdHJpcGxlY2xpY2su
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1f
YWN0aW9ucy9wb2ludGVyX3RyaXBsZWNsaWNrLnB5CmluZGV4IDgxZDUxYmUxYTdlNi4uODIzOWZj
MmE2MDYyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3RyaXBsZWNsaWNrLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3Bv
aW50ZXJfdHJpcGxlY2xpY2sucHkKQEAgLTEsMTMgKzEsMTMgQEAKLWZyb20gdGVzdHMucGVyZm9y
bV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cwor
ZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVu
dHMKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29y
ZGluYXRlcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCitmcm9tIHRl
c3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogbG90c19vZl90ZXh0ID0g
IkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQs
IHNlZCBkbyBlaXVzbW9kIHRlbXBvciAiXAogICAgICAgICAgICAgICAgImluY2lkaWR1bnQgdXQg
bGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBx
dWlzIG5vc3RydWQgIlwKICAgICAgICAgICAgICAgICJleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJv
cmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4iCiAKIAotZGVmIHRl
c3RfdHJpcGxlY2xpY2tfYXRfY29vcmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVm
IHRlc3RfdHJpcGxlY2xpY2tfYXRfY29vcmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIGlu
bGluZSk6CiAgICAgIiIiCiAgICAgICAgIFRoaXMgdGVzdCBkb2VzIGEgdHJpcGxlIGNsaWNrIG9u
IGEgY29vcmRpbmF0ZS4gT24gZGVza3RvcCBwbGF0Zm9ybXMKICAgICAgICAgdGhpcyB3aWxsIHNl
bGVjdCBhIHBhcmFncmFwaC4gT24gbW9iaWxlIHRoaXMgd2lsbCBub3QgaGF2ZSB0aGUgc2FtZQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
ZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5CmluZGV4
IDJkMzhlMWRmZjg3Ni4uOWU4N2ViZmFjMWQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L2tleXMu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJm
b3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5CkBAIC0yMSw3ICsyMSw2IEBAIGltcG9ydCBzeXMK
IAogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIGZyb20gaW5zcGVjdCBpbXBv
cnQgZ2V0bWVtYmVycwotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQogCiBjbGFzcyBLZXlzKG9i
amVjdCk6CiAgICAgIiIiCkBAIC0xMDcsNyArMTA2LDcgQEAgY2xhc3MgS2V5cyhvYmplY3QpOgog
ICAgIFJfREVMRVRFID0gdSJcdUUwNUQiCiAKIAotQUxMX0tFWVMgPSBnZXRtZW1iZXJzKEtleXMs
IGxhbWJkYSB4OiB0eXBlKHgpID09IHRleHRfdHlwZSkKK0FMTF9LRVlTID0gZ2V0bWVtYmVycyhL
ZXlzLCBsYW1iZGEgeDogdHlwZSh4KSA9PSBzdHIpCiAKIEFMTF9FVkVOVFMgPSBPcmRlcmVkRGlj
dCgKICAgICBbCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQv
cmVmaW5lLnB5CmluZGV4IGQ1ZDI0ZTkzNGY2MS4uMzVjOTYyYjllY2JmIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9u
cy9zdXBwb3J0L3JlZmluZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjcsMTIg
KzI3LDMgQEAgZGVmIGdldF9rZXlzKGlucHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAg
ZWxzZToKICAgICAgICAgcmV0dXJuIHJ2Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6
Ci0gICAgIiIiRmlsdGVyIGBzb3VyY2VgIGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBh
cyBgZGAgZGljdC4KLQotICAgIDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgot
ICAgIDpwYXJhbSBkOiBkaWN0aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJp
bmcuCi0gICAgIiIiCi0gICAgcmV0dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3Rlc3RfYWN0aW9uc19wb2ludGVyX3dkc3BlYy5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMvc3VwcG9ydC90ZXN0X2FjdGlvbnNfcG9pbnRlcl93ZHNwZWMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYxZmQ5YjJkYTNmOAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9y
bV9hY3Rpb25zL3N1cHBvcnQvdGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwKQEAgLTAs
MCArMSwxMDIgQEAKK++7vzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3QgQWN0aW9uczwvdGl0bGU+CisgICAgPHN0eWxl
PgorICAgICAgZGl2IHsgcGFkZGluZzowcHg7IG1hcmdpbjogMHB4OyB9CisgICAgICAjdHJhY2tQ
b2ludGVyIHsgcG9zaXRpb246IGZpeGVkOyB9CisgICAgICAjcmVzdWx0Q29udGFpbmVyIHsgd2lk
dGg6IDYwMHB4OyBoZWlnaHQ6IDYwcHg7IH0KKyAgICAgIC5hcmVhIHsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQtY29sb3I6ICNjY2M7IH0KKyAgICA8L3N0eWxlPgorICAg
IDxzY3JpcHQ+CisgICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgdmFyIGVscyA9IHt9Owor
ICAgICAgICB2YXIgYWxsRXZlbnRzID0geyBldmVudHM6IFtdIH07CisgICAgICAgIGZ1bmN0aW9u
IGRpc3BsYXlNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJldmVudHMiKS5pbm5lckhUTUwgPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9wPiI7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhcHBlbmRNZXNzYWdlKG1lc3NhZ2UpIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJldmVudHMiKS5pbm5lckhUTUwgKz0g
IjxwPiIgKyBtZXNzYWdlICsgIjwvcD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cmVjb3JkUG9pbnRlckV2ZW50KGV2ZW50KSB7CisgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09
ICJjb250ZXh0bWVudSIpIHsKKyAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgICAgICAgfQorICAgICAgICAgIGFsbEV2ZW50cy5ldmVudHMucHVzaCh7CisgICAgICAgICAg
ICAidHlwZSI6IGV2ZW50LnR5cGUsCisgICAgICAgICAgICAiYnV0dG9uIjogZXZlbnQuYnV0dG9u
LAorICAgICAgICAgICAgImJ1dHRvbnMiOiBldmVudC5idXR0b25zLAorICAgICAgICAgICAgInBh
Z2VYIjogZXZlbnQucGFnZVgsCisgICAgICAgICAgICAicGFnZVkiOiBldmVudC5wYWdlWSwKKyAg
ICAgICAgICAgICJjdHJsS2V5IjogZXZlbnQuY3RybEtleSwKKyAgICAgICAgICAgICJtZXRhS2V5
IjogZXZlbnQubWV0YUtleSwKKyAgICAgICAgICAgICJhbHRLZXkiOiBldmVudC5hbHRLZXksCisg
ICAgICAgICAgICAic2hpZnRLZXkiOiBldmVudC5zaGlmdEtleSwKKyAgICAgICAgICAgICJ0YXJn
ZXQiOiBldmVudC50YXJnZXQuaWQsCisgICAgICAgICAgICAicG9pbnRlclR5cGUiOiBldmVudC5w
b2ludGVyVHlwZSwKKyAgICAgICAgICAgICJ3aWR0aCI6IGV2ZW50LndpZHRoLAorICAgICAgICAg
ICAgImhlaWdodCI6IGV2ZW50LmhlaWdodCwKKyAgICAgICAgICAgICJwcmVzc3VyZSI6IGV2ZW50
LnByZXNzdXJlLAorICAgICAgICAgICAgInRhbmdlbnRpYWxQcmVzc3VyZSI6IGV2ZW50LnRhbmdl
bnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICJ0aWx0WCI6IGV2ZW50LnRpbHRYLAorICAgICAg
ICAgICAgInRpbHRZIjogZXZlbnQudGlsdFksCisgICAgICAgICAgICAidHdpc3QiOiBldmVudC50
d2lzdCwKKyAgICAgICAgICAgICJhbHRpdHVkZUFuZ2xlIjogZXZlbnQuYWx0aXR1ZGVBbmdsZSwK
KyAgICAgICAgICAgICJhemltdXRoQW5nbGUiOiBldmVudC5hemltdXRoQW5nbGUKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgICBhcHBlbmRNZXNzYWdlKGV2ZW50LnR5cGUgKyAiICIgKworICAgICAg
ICAgICAgICAiYnV0dG9uOiAiICsgZXZlbnQuYnV0dG9uICsgIiwgIiArCisgICAgICAgICAgICAg
ICJwYWdlWDogIiArIGV2ZW50LnBhZ2VYICsgIiwgIiArCisgICAgICAgICAgICAgICJwYWdlWTog
IiArIGV2ZW50LnBhZ2VZICsgIiwgIiArCisgICAgICAgICAgICAgICJidXR0b246ICIgKyBldmVu
dC5idXR0b24gKyAiLCAiICsKKyAgICAgICAgICAgICAgImJ1dHRvbnM6ICIgKyBldmVudC5idXR0
b25zICsgIiwgIiArCisgICAgICAgICAgICAgICJjdHJsS2V5OiAiICsgZXZlbnQuY3RybEtleSAr
ICIsICIgKworICAgICAgICAgICAgICAiYWx0S2V5OiAiICsgZXZlbnQuYWx0S2V5ICsgIiwgIiAr
CisgICAgICAgICAgICAgICJtZXRhS2V5OiAiICsgZXZlbnQubWV0YUtleSArICIsICIgKworICAg
ICAgICAgICAgICAic2hpZnRLZXk6ICIgKyBldmVudC5zaGlmdEtleSArICIsICIgKworICAgICAg
ICAgICAgICAidGFyZ2V0IGlkOiAiICsgZXZlbnQudGFyZ2V0LmlkICsgIiwgIiArCisgICAgICAg
ICAgICAgICJwb2ludGVyVHlwZTogIiArIGV2ZW50LnBvaW50ZXJUeXBlICsgIiwgIiArCisgICAg
ICAgICAgICAgICJ3aWR0aDogIiArIGV2ZW50LndpZHRoICsgIiwgIiArCisgICAgICAgICAgICAg
ICJoZWlnaHQ6ICIgKyBldmVudC5oZWlnaHQgKyAiLCAiICsKKyAgICAgICAgICAgICAgInByZXNz
dXJlOiAiICsgZXZlbnQucHJlc3N1cmUgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRhbmdlbnRp
YWxQcmVzc3VyZTogIiArIGV2ZW50LnRhbmdlbnRpYWxQcmVzc3VyZSArICIsICIgKworICAgICAg
ICAgICAgICAidGlsdFg6ICIgKyBldmVudC50aWx0WCArICIsICIgKworICAgICAgICAgICAgICAi
dGlsdFk6ICIgKyBldmVudC50aWx0WSArICIsICIgKworICAgICAgICAgICAgICAidHdpc3Q6ICIg
KyBldmVudC50d2lzdCArICIsICIgKworICAgICAgICAgICAgICAiYWx0aXR1ZGVBbmdsZTogIiAr
IGV2ZW50LmFsdGl0dWRlQW5nbGUgKyAiLCAiICsKKyAgICAgICAgICAgICAgImF6aW11dGhBbmds
ZTogIiArIGV2ZW50LmF6aW11dGhBbmdsZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biByZXNldEV2ZW50cygpIHsKKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRzLmxlbmd0aCA9IDA7
CisgICAgICAgICAgZGlzcGxheU1lc3NhZ2UoIiIpOworICAgICAgICB9CisKKyAgICAgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgIHZhciBwb2ludGVyQXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb2lu
dGVyQXJlYSIpOworICAgICAgICAgIHBvaW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50
ZXJkb3duIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRF
dmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAg
ICAgcG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgcmVjb3JkUG9pbnRl
ckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVy
b3ZlciIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEuYWRkRXZl
bnRMaXN0ZW5lcigicG9pbnRlcmVudGVyIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAg
ICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0IiwgcmVjb3JkUG9pbnRl
ckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVy
bGVhdmUiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0cmFja1BvaW50ZXIiIGNsYXNzPSJibG9jayI+
PC9kaXY+CisgIDxkaXY+CisgICAgPGgyPlBvaW50ZXJSZXBvcnRlcjwvaDI+CisgICAgPGRpdiBp
ZD0icG9pbnRlckFyZWEiIGNsYXNzPSJhcmVhIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxk
aXYgaWQ9InJlc3VsdENvbnRhaW5lciI+CisgICAgPGgyPkV2ZW50czwvaDI+CisgICAgPGRpdiBp
ZD0iZXZlbnRzIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy93aGVlbC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvcGVyZm9ybV9hY3Rpb25zL3doZWVsLnB5CmluZGV4IGZjODRmMmYyZTAxNC4uNjc3MzQ4MDBi
MTlkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weQpAQCAtMiw4ICsy
LDkgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNo
V2luZG93RXhjZXB0aW9uCiAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVm
aW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2Fj
dGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcworZnJvbSB0ZXN0cy5z
dXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3RfbnVsbF9yZXNw
b25zZV92YWx1ZShzZXNzaW9uLCB3aGVlbF9jaGFpbik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5w
eQppbmRleCAzNDFlMDY5ZjdiYjYuLjg5Mjk2ZDJiMTQ2YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50
Y21kLnB5CkBAIC0xLDExICsxLDggQEAKLWltcG9ydCBiYXNlNjQKK2Zyb20gYmFzZTY0IGltcG9y
dCBkZWNvZGVieXRlcwogCiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVf
YmluYXJ5Ci0KIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3Is
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZG9fcHJpbnQoc2Vzc2lvbiwgb3B0aW9ucyk6CkBAIC0yNywxMSArMjQsMTEgQEAg
ZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6
CiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAg
ICAgcmVzcG9uc2UgPSBkb19wcmludChzZXNzaW9uLCB7fSkKICAgICB2YWx1ZSA9IGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQotICAgIHBkZiA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZW5zdXJlX2Jp
bmFyeSh2YWx1ZSkpCisgICAgcGRmID0gZGVjb2RlYnl0ZXModmFsdWUuZW5jb2RlKCkpCiAgICAg
YXNzZXJ0X3BkZihwZGYpCiAKIAotZGVmIHRlc3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2h0bWxfZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiVGVzdCIpCiAKICAgICByZXNwb25zZSA9IGRvX3ByaW50KHNlc3Npb24sIHsKQEAg
LTQwLDcgKzM3LDcgQEAgZGVmIHRlc3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKICAgICAgICAg
InNocmlua1RvRml0IjogRmFsc2UKICAgICB9KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCi0gICAgcGRmID0gYmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5KHZh
bHVlKSkKKyAgICBwZGYgPSBkZWNvZGVieXRlcyh2YWx1ZS5lbmNvZGUoKSkKICAgICAjIFRPRE86
IFRlc3QgdGhhdCB0aGUgb3V0cHV0IGlzIHJlYXNvbmFibGUKICAgICBhc3NlcnRfcGRmKHBkZikK
IApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9wcmludC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3ByaW50L3VzZXJfcHJvbXB0cy5weQppbmRleCBhM2Y3YTEwYWMzNzIuLjBh
MjliNTE4YWM5YSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9wcmludC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC91c2VyX3Byb21wdHMucHkKQEAgLTEsMTcg
KzEsMTQgQEAKICMgTUVUQTogdGltZW91dD1sb25nCi1pbXBvcnQgYmFzZTY0Citmcm9tIGJhc2U2
NCBpbXBvcnQgZGVjb2RlYnl0ZXMKIAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHNpeCBpbXBvcnQg
ZW5zdXJlX2JpbmFyeQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGZyb20gLnByaW50Y21kIGltcG9ydCBkb19w
cmludCwgYXNzZXJ0X3BkZgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC0yMCw3ICsxNyw3IEBAIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CiAgICAgICAgIHJlc3BvbnNlID0gZG9fcHJpbnQoc2Vzc2lvbiwge30pCiAgICAgICAgIHZhbHVl
ID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKLSAgICAgICAgcGRmID0gYmFzZTY0LmRlY29k
ZXN0cmluZyhlbnN1cmVfYmluYXJ5KHZhbHVlKSkKKyAgICAgICAgcGRmID0gZGVjb2RlYnl0ZXMo
dmFsdWUuZW5jb2RlKCkpCiAgICAgICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9uLCBl
eHBlY3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQogCiAgICAg
ICAgIGFzc2VydF9wZGYocGRmKQpAQCAtMjksNyArMjYsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCBy
ZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC00
NCw3ICs0MSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0Lz4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC9yZWZyZXNoLnB5CmluZGV4
IGVlZjQxMzAxN2U1ZS4uMzM1OTVkMGZmNzFhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5w
eQpAQCAtMiw3ICsyLDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBp
bXBvcnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0
aW9uCiAKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAog
CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiByZWZyZXNoKHNlc3Npb24pOgogICAgICAgICAiUE9TVCIs
ICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9yZWZyZXNoIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSkK
IAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVs
bF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZGl2PiIpCiAKICAgICByZXNwb25zZSA9IHJlZnJlc2goc2Vzc2lvbikKQEAgLTI0LDcg
KzIzLDcgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2Vk
X3dpbmRvdyk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQog
CiAKLWRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToK
K2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpbmxp
bmUpOgogICAgIHVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKIAogICAgIHNlc3Npb24udXJs
ID0gdXJsCkBAIC00MCw3ICszOSw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnQgc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIs
IGFsbD1GYWxzZSkKIAogCi1kZWYgdGVzdF9iYXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2lj
KHNlc3Npb24sIGlubGluZSk6CiAgICAgdXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogCiAg
ICAgc2Vzc2lvbi51cmwgPSB1cmwKQEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfYmFzaWMoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCiAK
IAotZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rp
c21pc3NlZF9iZWZvcmV1bmxvYWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmxfYmVmb3JldW5s
b2FkID0gaW5saW5lKCIiIgogICAgICAgPGlucHV0IHR5cGU9InRleHQiPgogICAgICAgPHNjcmlw
dD4KQEAgLTc5LDcgKzc4LDcgQEAgZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNz
aW9uKToKICAgICBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIAogCi1kZWYg
dGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgorZGVmIHRlc3RfaGlzdG9yeV9w
dXNoc3RhdGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBwdXNoc3RhdGVfcGFnZSA9IGlubGluZSgi
IiIKICAgICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1bmN0aW9uIHB1c2hTdGF0ZSgpIHsKQEAgLTEx
MSw3ICsxMTAsNyBAQCBkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgog
ICAgICAgICBlbGVtZW50LnByb3BlcnR5KCJpZCIpCiAKIAotZGVmIHRlc3RfcmVmcmVzaF9zd2l0
Y2hlc190b19wYXJlbnRfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjcmVhdGVfZnJhbWUpOgor
ZGVmIHRlc3RfcmVmcmVzaF9zd2l0Y2hlc190b19wYXJlbnRfYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uLCBjcmVhdGVfZnJhbWUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxk
aXYgaWQ9Zm9vPiIpCiAKICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShjcmVhdGVfZnJhbWUoKSkK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cmVmcmVzaC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3JlZnJlc2gvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGI4ZWY0MThlMTE1Zi4u
N2U5NDRiNTNiMDk2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3JlZnJlc2gvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC91c2VyX3Byb21wdHMucHkKQEAg
LTQsNyArNCw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0
IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbgogCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0x
NCw3ICsxMyw3IEBAIGRlZiByZWZyZXNoKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKICAgICAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3
IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZGl2IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
I2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Ns
b3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlw
ZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogICAgICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9h
Y3Rpb25zL3JlbGVhc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9yZWxlYXNlLnB5CmluZGV4IDFmNDg2Zjc3NTlmZC4uNWRm
MWZmNGJlOTAyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9yZWxlYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3JlbGVhc2UucHkK
QEAgLTIwLDQgKzIwLDQgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX3dpbmRvdyk6CiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IHJlbGVhc2VfYWN0aW9ucyhzZXNzaW9u
KQotICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggd2luZG93IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvc2Vx
dWVuY2UucHkKaW5kZXggMmQ4MTZmODA5NGIzLi43NTE0M2Q4NWNhNjAgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25z
L3NlcXVlbmNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5CkBAIC0xLDYgKzEsNyBAQAogIyBNRVRB
OiB0aW1lb3V0PWxvbmcKIAotZnJvbSB0ZXN0cy5yZWxlYXNlX2FjdGlvbnMuc3VwcG9ydC5yZWZp
bmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5y
ZWxlYXNlX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMsIGdldF9rZXlz
Citmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBkZWYg
dGVzdF9yZWxlYXNlX25vX2FjdGlvbnNfc2VuZHNfbm9fZXZlbnRzKHNlc3Npb24sIGtleV9yZXBv
cnRlcik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3N1cHBvcnQvcmVm
aW5lLnB5CmluZGV4IDNhNmQ2M2UwNGNlOS4uOTBmNzIyNTg3YzNiIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9z
dXBwb3J0L3JlZmluZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjIsMTIgKzIy
LDMgQEAgZGVmIGdldF9rZXlzKGlucHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAgZWxz
ZToKICAgICAgICAgcmV0dXJuIHJ2Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6Ci0g
ICAgIiIiRmlsdGVyIGBzb3VyY2VgIGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBg
ZGAgZGljdC4KLQotICAgIDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgotICAg
IDpwYXJhbSBkOiBkaWN0aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcu
Ci0gICAgIiIiCi0gICAgcmV0dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Nl
bmRfYWxlcnRfdGV4dC9zZW5kLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zZW5kX2FsZXJ0X3RleHQvc2VuZC5weQppbmRleCA1ZGE2NzU5MGRhMzQuLmQ1
ODQ2YWQ1NmIzYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zZW5kX2FsZXJ0X3RleHQvc2VuZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3NlbmRfYWxlcnRfdGV4dC9zZW5kLnB5CkBAIC00
LDEyICs0LDExIEBAIGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2Vw
dGlvbgogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vzcwot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBv
cnQuc3luYyBpbXBvcnQgUG9sbAogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIHBhZ2Uoc2Vzc2lv
bik6CitkZWYgcGFnZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdFbnRl
ciBZb3VyIE5hbWU6ICcsICdOYW1lJyk7PC9zY3JpcHQ+CiAgICAgIiIiKQpAQCAtNTUsNyArNTQs
NyBAQCBkZWYgdGVzdF9ub191c2VyX3Byb21wdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImRpYWxvZ190eXBlIiwgWyJhbGVydCIsICJjb25maXJtIl0pCi1kZWYgdGVz
dF9hbGVydF9lbGVtZW50X25vdF9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgZGlhbG9nX3R5cGUpOgor
ZGVmIHRlc3RfYWxlcnRfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSwg
ZGlhbG9nX3R5cGUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy57
fSgnSGVsbG8nKTs8L3NjcmlwdD4iLmZvcm1hdChkaWFsb2dfdHlwZSkpCiAKICAgICByZXNwb25z
ZSA9IHNlbmRfYWxlcnRfdGV4dChzZXNzaW9uLCAiRmVkZXJlciIpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0
dXMucHkKaW5kZXggMWYwZjFiYzRmZTc3Li44YzdhZTIyYTY3YjUgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3RhdHVzL3N0YXR1cy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9z
dGF0dXMucHkKQEAgLTEsNyArMSw1IEBACiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBpbXBvcnQg
dGV4dF90eXBlCi0KIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3Vj
Y2VzcwogCiAKQEAgLTE4LDcgKzE2LDcgQEAgZGVmIHRlc3RfZ2V0X3N0YXR1c19ub19zZXNzaW9u
KGh0dHApOgogICAgICAgICB2YWx1ZSA9IHBhcnNlZF9vYmpbInZhbHVlIl0KIAogICAgICAgICBh
c3NlcnQgdmFsdWVbInJlYWR5Il0gaW4gW1RydWUsIEZhbHNlXQotICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZSh2YWx1ZVsibWVzc2FnZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKHZhbHVlWyJtZXNzYWdlIl0sIHN0cikKIAogCiBkZWYgdGVzdF9zdGF0dXNfd2l0aF9z
ZXNzaW9uX3J1bm5pbmdfb25fZW5kcG9pbnRfbm9kZShzZXNzaW9uKToKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0
L2Fzc2VydHMucHkKaW5kZXggM2MzZDY3N2M5MGVjLi5lNjBkNTNiNmM2ZjAgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3Nl
cnRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3VwcG9ydC9hc3NlcnRzLnB5CkBAIC0xLDggKzEsNiBAQAotaW1wb3J0IGJhc2U2NAogaW1wb3J0
IGltZ2hkcgogaW1wb3J0IHN0cnVjdAotCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFyeSwg
dGV4dF90eXBlCitmcm9tIGJhc2U2NCBpbXBvcnQgZGVjb2RlYnl0ZXMKIAogZnJvbSB3ZWJkcml2
ZXIgaW1wb3J0IEVsZW1lbnQsIE5vU3VjaEFsZXJ0RXhjZXB0aW9uLCBXZWJEcml2ZXJFeGNlcHRp
b24KIApAQCAtNTIsOCArNTAsOCBAQCBkZWYgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCBlcnJvcl9j
b2RlKToKICAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzID09IGVycm9yc1tlcnJvcl9jb2RlXQog
ICAgIGFzc2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBhc3NlcnQgcmVzcG9uc2Uu
Ym9keVsidmFsdWUiXVsiZXJyb3IiXSA9PSBlcnJvcl9jb2RlCi0gICAgYXNzZXJ0IGlzaW5zdGFu
Y2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsibWVzc2FnZSJdLCB0ZXh0X3R5cGUpCi0gICAgYXNz
ZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsic3RhY2t0cmFjZSJdLCB0ZXh0
X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsibWVz
c2FnZSJdLCBzdHIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUi
XVsic3RhY2t0cmFjZSJdLCBzdHIpCiAgICAgYXNzZXJ0X3Jlc3BvbnNlX2hlYWRlcnMocmVzcG9u
c2UuaGVhZGVycykKIAogCkBAIC0yMTQsNiArMjEyLDYgQEAgZGVmIGFzc2VydF9tb3ZlX3RvX2Nv
b3JkaW5hdGVzKHBvaW50LCB0YXJnZXQsIGV2ZW50cyk6CiAKIGRlZiBhc3NlcnRfcG5nKHNjcmVl
bnNob3QpOgogICAgICIiIlRlc3QgdGhhdCBzY3JlZW5zaG90IGlzIGEgQmFzZTY0IGVuY29kZWQg
UE5HIGZpbGUuIiIiCi0gICAgaW1hZ2UgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5h
cnkoc2NyZWVuc2hvdCkpCisgICAgaW1hZ2UgPSBkZWNvZGVieXRlcyhzY3JlZW5zaG90LmVuY29k
ZSgpKQogICAgIG1pbWVfdHlwZSA9IGltZ2hkci53aGF0KCIiLCBpbWFnZSkKICAgICBhc3NlcnQg
bWltZV90eXBlID09ICJwbmciLCAiRXhwZWN0ZWQgaW1hZ2UgdG8gYmUgUE5HLCBidXQgaXQgd2Fz
IHt9Ii5mb3JtYXQobWltZV90eXBlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0
aW9uLnB5CmluZGV4IDI1YThlYjk1ZDExNC4uOWRhNGJiN2JlNWZmIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVudGlj
YXRpb24ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5CkBAIC0xLDE1ICsxLDEyIEBACi1mcm9tIHNpeC5t
b3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQorZnJvbSB1cmxsaWIucGFyc2UgaW1w
b3J0IHVybGVuY29kZQogCiAKLWRlZiBiYXNpY19hdXRoZW50aWNhdGlvbih1c2VybmFtZT1Ob25l
LCBwYXNzd29yZD1Ob25lLCBwcm90b2NvbD0iaHR0cCIpOgotICAgIGZyb20gLmZpeHR1cmVzIGlt
cG9ydCBzZXJ2ZXJfY29uZmlnLCB1cmwKLSAgICBidWlsZF91cmwgPSB1cmwoc2VydmVyX2NvbmZp
ZygpKQotCitkZWYgYmFzaWNfYXV0aGVudGljYXRpb24odXJsLCB1c2VybmFtZT1Ob25lLCBwYXNz
d29yZD1Ob25lLCBwcm90b2NvbD0iaHR0cCIpOgogICAgIHF1ZXJ5ID0ge30KIAotICAgIHJldHVy
biBidWlsZF91cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hdXRoZW50aWNhdGlvbi5weSIs
Ci0gICAgICAgICAgICAgICAgICAgICBxdWVyeT11cmxlbmNvZGUocXVlcnkpLAotICAgICAgICAg
ICAgICAgICAgICAgcHJvdG9jb2w9cHJvdG9jb2wpCisgICAgcmV0dXJuIHVybCgiL3dlYmRyaXZl
ci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5IiwKKyAgICAgICAgICAgICAgIHF1ZXJ5
PXVybGVuY29kZShxdWVyeSksCisgICAgICAgICAgICAgICBwcm90b2NvbD1wcm90b2NvbCkKIAog
CiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMu
cHkKaW5kZXggOTU3YzRkMDU4NjhiLi5kYjMyOTMxMTMxZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9maXh0dXJlcy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
Zml4dHVyZXMucHkKQEAgLTIsMTUgKzIsMTUgQEAgaW1wb3J0IGNvcHkKIGltcG9ydCBqc29uCiBp
bXBvcnQgb3MKIAoraW1wb3J0IGFzeW5jaW8KIGltcG9ydCBweXRlc3QKIGltcG9ydCB3ZWJkcml2
ZXIKIAotZnJvbSBzaXggaW1wb3J0IHN0cmluZ190eXBlcwotCi1mcm9tIHNpeC5tb3Zlcy51cmxs
aWIucGFyc2UgaW1wb3J0IHVybHVuc3BsaXQKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmx1
bnNwbGl0CiAKIGZyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQgZGVmYXVsdHMKLWZyb20gdGVzdHMu
c3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjbGVhbnVwX3Nlc3Npb24KK2Zyb20gdGVzdHMuc3VwcG9y
dC5oZWxwZXJzIGltcG9ydCBjbGVhbnVwX3Nlc3Npb24sIGRlZXBfdXBkYXRlCitmcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBidWlsZF9pbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5o
dHRwX3JlcXVlc3QgaW1wb3J0IEhUVFBSZXF1ZXN0CiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBp
bXBvcnQgUG9sbAogCkBAIC0zOCw2ICszOCwxNyBAQCBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3Rz
KG1ldGFmdW5jKToKICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJjYXBhYmlsaXRp
ZXMiLCBtYXJrZXIuYXJncywgaWRzPU5vbmUpCiAKIAorIyBFbnN1cmUgdGhhdCB0aGUgZXZlbnQg
bG9vcCBpcyByZXN0YXJ0ZWQgb25jZSBwZXIgc2Vzc2lvbiByYXRoZXIgdGhhbiB0aGUgZGVmYXVs
dCAgb2Ygb25jZSBwZXIgdGVzdAorIyBpZiB3ZSBkb24ndCBkbyB0aGlzLCB0ZXN0cyB3aWxsIHRy
eSB0byByZXVzZSBhIGNsb3NlZCBldmVudCBsb29wIGFuZCBmYWlsIHdpdGggYW4gZXJyb3IgdGhh
dCB0aGUgImZ1dHVyZQorIyBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IGxvb3AiCitAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGV2ZW50X2xvb3AoKToKKyAgICAiIiJDaGFuZ2Ug
ZXZlbnRfbG9vcCBmaXh0dXJlIHRvIHNlc3Npb24gbGV2ZWwuIiIiCisgICAgbG9vcCA9IGFzeW5j
aW8uZ2V0X2V2ZW50X2xvb3BfcG9saWN5KCkubmV3X2V2ZW50X2xvb3AoKQorICAgIHlpZWxkIGxv
b3AKKyAgICBsb29wLmNsb3NlKCkKKworCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiBhZGRfZXZlbnRf
bGlzdGVuZXJzKHNlc3Npb24pOgogICAgICIiIlJlZ2lzdGVyIGxpc3RlbmVycyBmb3IgdHJhY2tl
ZCBldmVudHMgb24gZWxlbWVudC4iIiIKQEAgLTk0LDcgKzEwNSw4IEBAIGRlZiBodHRwKGNvbmZp
Z3VyYXRpb24pOgogCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiBzZXJ2ZXJfY29uZmlnKCk6Ci0gICAg
cmV0dXJuIGpzb24ubG9hZHMob3MuZW52aXJvbi5nZXQoIldEX1NFUlZFUl9DT05GSUciKSkKKyAg
ICB3aXRoIG9wZW4ob3MuZW52aXJvbi5nZXQoIldEX1NFUlZFUl9DT05GSUdfRklMRSIpLCAiciIp
IGFzIGY6CisgICAgICAgIHJldHVybiBqc29uLmxvYWQoZikKIAogCiBAcHl0ZXN0LmZpeHR1cmUo
c2NvcGU9InNlc3Npb24iKQpAQCAtMTEwLDggKzEyMiwyMyBAQCBkZWYgY29uZmlndXJhdGlvbigp
OgogICAgIH0KIAogCithc3luYyBkZWYgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25lY2Vzc2Fy
eShjYXBzLCByZXF1ZXN0X2JpZGkpOgorICAgIGdsb2JhbCBfY3VycmVudF9zZXNzaW9uCisKKyAg
ICAjIElmIHRoZXJlIGlzIGEgc2Vzc2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYWN0
aXZlIG9yIHRoZSBjdXJyZW50IHNlc3Npb24KKyAgICAjIGlzIG9mIGRpZmZlcmVudCB0eXBlIHRo
YW4gdGhlIG9uZSB3ZSB3b3VsZCBsaWtlIHRvIGNyZWF0ZSwgZW5kIGl0IG5vdy4KKyAgICBpZiBf
Y3VycmVudF9zZXNzaW9uIGlzIG5vdCBOb25lOgorICAgICAgICBpc19iaWRpID0gaXNpbnN0YW5j
ZShfY3VycmVudF9zZXNzaW9uLCB3ZWJkcml2ZXIuQmlkaVNlc3Npb24pCisgICAgICAgIGlmIGlz
X2JpZGkgIT0gcmVxdWVzdF9iaWRpIG9yIG5vdCBfY3VycmVudF9zZXNzaW9uLm1hdGNoKGNhcHMp
OgorICAgICAgICAgICAgaWYgaXNfYmlkaToKKyAgICAgICAgICAgICAgICBhd2FpdCBfY3VycmVu
dF9zZXNzaW9uLmVuZCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIF9jdXJy
ZW50X3Nlc3Npb24uZW5kKCkKKyAgICAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24gPSBOb25lCisK
KwogQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCi1kZWYgc2Vzc2lvbihjYXBhYmls
aXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3QpOgorYXN5bmMgZGVmIHNlc3Npb24oY2FwYWJp
bGl0aWVzLCBjb25maWd1cmF0aW9uLCByZXF1ZXN0KToKICAgICAiIiJDcmVhdGUgYW5kIHN0YXJ0
IGEgc2Vzc2lvbiBmb3IgYSB0ZXN0IHRoYXQgZG9lcyBub3QgaXRzZWxmIHRlc3Qgc2Vzc2lvbiBj
cmVhdGlvbi4KIAogICAgIEJ5IGRlZmF1bHQgdGhlIHNlc3Npb24gd2lsbCBzdGF5IG9wZW4gYWZ0
ZXIgZWFjaCB0ZXN0LCBidXQgd2UgYWx3YXlzIHRyeSB0byBzdGFydCBhCkBAIC0xMjMsMTQgKzE1
MCwxMCBAQCBkZWYgc2Vzc2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3Qp
OgogICAgICMgVXBkYXRlIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzIHdpdGggY3VzdG9tIG9u
ZXMgZnJvbSB0aGUKICAgICAjIGNhcGFiaWxpdGllcyBmaXh0dXJlLCB3aGljaCBjYW4gYmUgc2V0
IGJ5IHRlc3RzCiAgICAgY2FwcyA9IGNvcHkuZGVlcGNvcHkoY29uZmlndXJhdGlvblsiY2FwYWJp
bGl0aWVzIl0pCi0gICAgY2Fwcy51cGRhdGUoY2FwYWJpbGl0aWVzKQorICAgIGRlZXBfdXBkYXRl
KGNhcHMsIGNhcGFiaWxpdGllcykKICAgICBjYXBzID0geyJhbHdheXNNYXRjaCI6IGNhcHN9CiAK
LSAgICAjIElmIHRoZXJlIGlzIGEgc2Vzc2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMg
YWN0aXZlLCBlbmQgaXQgbm93Ci0gICAgaWYgX2N1cnJlbnRfc2Vzc2lvbiBpcyBub3QgTm9uZSBh
bmQgKAotICAgICAgICAgICAgY2FwcyAhPSBfY3VycmVudF9zZXNzaW9uLnJlcXVlc3RlZF9jYXBh
YmlsaXRpZXMpOgotICAgICAgICBfY3VycmVudF9zZXNzaW9uLmVuZCgpCi0gICAgICAgIF9jdXJy
ZW50X3Nlc3Npb24gPSBOb25lCisgICAgYXdhaXQgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25l
Y2Vzc2FyeShjYXBzLCBGYWxzZSkKIAogICAgIGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgTm9uZToK
ICAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9uKApAQCAtMTM5LDYg
KzE2Miw3IEBAIGRlZiBzZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVz
dCk6CiAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwcykKICAgICB0cnk6CiAgICAgICAgIF9j
dXJyZW50X3Nlc3Npb24uc3RhcnQoKQorCiAgICAgZXhjZXB0IHdlYmRyaXZlci5lcnJvci5TZXNz
aW9uTm90Q3JlYXRlZEV4Y2VwdGlvbjoKICAgICAgICAgaWYgbm90IF9jdXJyZW50X3Nlc3Npb24u
c2Vzc2lvbl9pZDoKICAgICAgICAgICAgIHJhaXNlCkBAIC0xNTIsNiArMTc2LDQ4IEBAIGRlZiBz
ZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgY2xlYW51
cF9zZXNzaW9uKF9jdXJyZW50X3Nlc3Npb24pCiAKIAorQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJm
dW5jdGlvbiIpCithc3luYyBkZWYgYmlkaV9zZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJh
dGlvbiwgcmVxdWVzdCk6CisgICAgIiIiQ3JlYXRlIGFuZCBzdGFydCBhIGJpZGkgc2Vzc2lvbiBm
b3IgYSB0ZXN0IHRoYXQgZG9lcyBub3QgaXRzZWxmIHRlc3QKKyAgICBiaWRpIHNlc3Npb24gY3Jl
YXRpb24uCisgICAgQnkgZGVmYXVsdCB0aGUgc2Vzc2lvbiB3aWxsIHN0YXkgb3BlbiBhZnRlciBl
YWNoIHRlc3QsIGJ1dCB3ZSBhbHdheXMgdHJ5IHRvIHN0YXJ0IGEKKyAgICBuZXcgb25lIGFuZCBh
c3N1bWUgdGhhdCBpZiB0aGF0IGZhaWxzIHRoZXJlIGlzIGFscmVhZHkgYSB2YWxpZCBzZXNzaW9u
LiBUaGlzIG1ha2VzIGl0CisgICAgcG9zc2libGUgdG8gcmVjb3ZlciBmcm9tIHNvbWUgZXJyb3Jz
IHRoYXQgbWlnaHQgbGVhdmUgdGhlIHNlc3Npb24gaW4gYSBiYWQgc3RhdGUsIGJ1dAorICAgIGRv
ZXMgbm90IGRlbWFuZCB0aGF0IHdlIHN0YXJ0IGEgbmV3IHNlc3Npb24gcGVyIHRlc3QuIiIiCisg
ICAgZ2xvYmFsIF9jdXJyZW50X3Nlc3Npb24KKworICAgICMgVXBkYXRlIGNvbmZpZ3VyYXRpb24g
Y2FwYWJpbGl0aWVzIHdpdGggY3VzdG9tIG9uZXMgZnJvbSB0aGUKKyAgICAjIGNhcGFiaWxpdGll
cyBmaXh0dXJlLCB3aGljaCBjYW4gYmUgc2V0IGJ5IHRlc3RzCisgICAgY2FwcyA9IGNvcHkuZGVl
cGNvcHkoY29uZmlndXJhdGlvblsiY2FwYWJpbGl0aWVzIl0pCisgICAgZGVlcF91cGRhdGUoY2Fw
cywgY2FwYWJpbGl0aWVzKQorICAgIGNhcHMgPSB7ImFsd2F5c01hdGNoIjogY2Fwc30KKworICAg
IGF3YWl0IHJlc2V0X2N1cnJlbnRfc2Vzc2lvbl9pZl9uZWNlc3NhcnkoY2FwcywgVHJ1ZSkKKwor
ICAgIGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgTm9uZToKKyAgICAgICAgX2N1cnJlbnRfc2Vzc2lv
biA9IHdlYmRyaXZlci5TZXNzaW9uKAorICAgICAgICAgICAgY29uZmlndXJhdGlvblsiaG9zdCJd
LAorICAgICAgICAgICAgY29uZmlndXJhdGlvblsicG9ydCJdLAorICAgICAgICAgICAgY2FwYWJp
bGl0aWVzPWNhcHMsCisgICAgICAgICAgICBlbmFibGVfYmlkaT1UcnVlKQorCisgICAgdHJ5Ogor
ICAgICAgICBfY3VycmVudF9zZXNzaW9uLnN0YXJ0KCkKKyAgICAgICAgYXdhaXQgX2N1cnJlbnRf
c2Vzc2lvbi5iaWRpX3Nlc3Npb24uc3RhcnQoKQorICAgIGV4Y2VwdCB3ZWJkcml2ZXIuZXJyb3Iu
U2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb246CisgICAgICAgIGlmIG5vdCBfY3VycmVudF9zZXNz
aW9uLnNlc3Npb25faWQ6CisgICAgICAgICAgICByYWlzZQorCisgICAgIyBFbmZvcmNlIGEgZml4
ZWQgZGVmYXVsdCB3aW5kb3cgc2l6ZSBhbmQgcG9zaXRpb24KKyAgICBfY3VycmVudF9zZXNzaW9u
LndpbmRvdy5zaXplID0gZGVmYXVsdHMuV0lORE9XX1NJWkUKKyAgICBfY3VycmVudF9zZXNzaW9u
LndpbmRvdy5wb3NpdGlvbiA9IGRlZmF1bHRzLldJTkRPV19QT1NJVElPTgorCisgICAgeWllbGQg
X2N1cnJlbnRfc2Vzc2lvbi5iaWRpX3Nlc3Npb24KKworICAgIGF3YWl0IF9jdXJyZW50X3Nlc3Np
b24uYmlkaV9zZXNzaW9uLmVuZCgpCisgICAgY2xlYW51cF9zZXNzaW9uKF9jdXJyZW50X3Nlc3Np
b24pCisKKwogQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCiBkZWYgY3VycmVudF9z
ZXNzaW9uKCk6CiAgICAgcmV0dXJuIF9jdXJyZW50X3Nlc3Npb24KQEAgLTE1OSwxNCArMjI1LDEz
IEBAIGRlZiBjdXJyZW50X3Nlc3Npb24oKToKIAogQHB5dGVzdC5maXh0dXJlCiBkZWYgdXJsKHNl
cnZlcl9jb25maWcpOgotICAgIGRlZiBpbm5lcihwYXRoLCBwcm90b2NvbD0iaHR0cCIsIGRvbWFp
bj0iIiwgc3ViZG9tYWluPSIiLCBxdWVyeT0iIiwgZnJhZ21lbnQ9IiIpOgorICAgIGRlZiB1cmwo
cGF0aCwgcHJvdG9jb2w9Imh0dHAiLCBkb21haW49IiIsIHN1YmRvbWFpbj0iIiwgcXVlcnk9IiIs
IGZyYWdtZW50PSIiKToKICAgICAgICAgZG9tYWluID0gc2VydmVyX2NvbmZpZ1siZG9tYWlucyJd
W2RvbWFpbl1bc3ViZG9tYWluXQogICAgICAgICBwb3J0ID0gc2VydmVyX2NvbmZpZ1sicG9ydHMi
XVtwcm90b2NvbF1bMF0KICAgICAgICAgaG9zdCA9ICJ7MH06ezF9Ii5mb3JtYXQoZG9tYWluLCBw
b3J0KQogICAgICAgICByZXR1cm4gdXJsdW5zcGxpdCgocHJvdG9jb2wsIGhvc3QsIHBhdGgsIHF1
ZXJ5LCBmcmFnbWVudCkpCiAKLSAgICBpbm5lci5fX25hbWVfXyA9ICJ1cmwiCi0gICAgcmV0dXJu
IGlubmVyCisgICAgcmV0dXJuIHVybAogCiAKIEBweXRlc3QuZml4dHVyZQpAQCAtMTgyLDcgKzI0
Nyw3IEBAIGRlZiBjcmVhdGVfZGlhbG9nKHNlc3Npb24pOgogICAgICAgICBpZiB0ZXh0IGlzIE5v
bmU6CiAgICAgICAgICAgICB0ZXh0ID0gIiIKIAotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0
ZXh0LCBzdHJpbmdfdHlwZXMpLCAiYHRleHRgIHBhcmFtZXRlciBtdXN0IGJlIGEgc3RyaW5nIgor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0ZXh0LCBzdHIpLCAiYHRleHRgIHBhcmFtZXRlciBt
dXN0IGJlIGEgc3RyaW5nIgogCiAgICAgICAgICMgU2NyaXB0IGNvbXBsZXRlcyBpdHNlbGYgd2hl
biB0aGUgdXNlciBwcm9tcHQgaGFzIGJlZW4gb3BlbmVkLgogICAgICAgICAjIEZvciBwcm9tcHQo
KSBkaWFsb2dzLCBhZGQgYSB2YWx1ZSBmb3IgdGhlICdkZWZhdWx0JyBhcmd1bWVudCwKQEAgLTIz
OCwxNSArMzAzLDU0IEBAIGRlZiBjbG9zZWRfZnJhbWUoc2Vzc2lvbiwgdXJsKToKIAogCiBAcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjbG9zZWRfd2luZG93KHNlc3Npb24pOgorZGVmIGNsb3NlZF93aW5k
b3coc2Vzc2lvbiwgaW5saW5lKToKICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndpbmRv
d19oYW5kbGUKICAgICBuZXdfaGFuZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKIAogICAgIHNl
c3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKKyAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0IGlkPSdhJyB2YWx1ZT0nYic+IikKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKICAgICBzZXNzaW9uLndpbmRvdy5jbG9zZSgpCiAg
ICAgYXNzZXJ0IG5ld19oYW5kbGUgbm90IGluIHNlc3Npb24uaGFuZGxlcywgIlVuYWJsZSB0byBj
bG9zZSB3aW5kb3cge30iLmZvcm1hdChuZXdfaGFuZGxlKQogCi0gICAgeWllbGQgbmV3X2hhbmRs
ZQorICAgIHlpZWxkIChvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQpCiAKICAgICBzZXNzaW9uLndp
bmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBp
bmxpbmUodXJsKToKKyAgICAiIiJUYWtlcyBhIHNvdXJjZSBleHRyYWN0IGFuZCBwcm9kdWNlcyB3
ZWxsLWZvcm1lZCBkb2N1bWVudHMuCisKKyAgICBCYXNlZCBvbiB0aGUgZGVzaXJlZCBkb2N1bWVu
dCB0eXBlLCB0aGUgZXh0cmFjdCBpcyBlbWJlZGRlZCB3aXRoCisgICAgcHJlZGVmaW5lZCBib2ls
ZXJwbGF0ZSBpbiBvcmRlciB0byBwcm9kdWNlIHdlbGwtZm9ybWVkIGRvY3VtZW50cy4KKyAgICBU
aGUgbWVkaWEgdHlwZSBhbmQgY2hhcmFjdGVyIHNldCBtYXkgYWxzbyBiZSBpbmRpdmlkdWFsbHkg
Y29uZmlndXJlZC4KKworICAgIFRoaXMgaGVscGVyIGZ1bmN0aW9uIG9yaWdpbmFsbHkgdXNlZCBk
YXRhIFVSTHMsIGJ1dCBzaW5jZSB0aGVzZQorICAgIGFyZSBub3QgdW5pdmVyc2FsbHkgc3VwcG9y
dGVkIChvciBpbmRlZWQgc3RhbmRhcmRpc2VkISkgYWNyb3NzCisgICAgYnJvd3NlcnMsIGl0IG5v
dyBkZWxlZ2F0ZXMgdGhlIHNlcnZpbmcgb2YgdGhlIGRvY3VtZW50IHRvIHdwdHNlcnZlLgorICAg
IFRoaXMgZmlsZSBhbHNvIGFjdHMgYXMgYSB3cHRzZXJ2ZSBoYW5kbGVyIChzZWUgdGhlIG1haW4g
ZnVuY3Rpb24KKyAgICBiZWxvdykgd2hpY2ggY29uZmlndXJlcyB0aGUgSFRUUCByZXNwb25zZSB1
c2luZyBxdWVyeSBwYXJhbWV0ZXJzLgorCisgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgVVJM
IHRvIHRoZSB3cHRzZXJ2ZSBoYW5kbGVyLCB3aGljaCBpbiB0dXJuCisgICAgd2lsbCBzZXJ2ZSBh
biBIVFRQIHJlc3BvbnNlIHdpdGggdGhlIHJlcXVlc3RlZCBzb3VyY2UgZXh0cmFjdAorICAgIGlu
bGluZWQgaW4gYSB3ZWxsLWZvcm1lZCBkb2N1bWVudCwgYW5kIHRoZSBDb250ZW50LVR5cGUgaGVh
ZGVyCisgICAgb3B0aW9uYWxseSBjb25maWd1cmVkIHVzaW5nIHRoZSBkZXNpcmVkIG1lZGlhIHR5
cGUgYW5kIGNoYXJhY3RlciBzZXQuCisKKyAgICBBbnkgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3Vt
ZW50cyBhcmUgcGFzc2VkIG9uIHRvIHRoZSBidWlsZF91cmwKKyAgICBmdW5jdGlvbiwgd2hpY2gg
Y29tZXMgZnJvbSB0aGUgdXJsIGZpeHR1cmUuCisgICAgIiIiCisgICAgZGVmIGlubGluZShzcmMs
ICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIGJ1aWxkX2lubGluZSh1cmwsIHNyYywgKiprd2Fy
Z3MpCisKKyAgICByZXR1cm4gaW5saW5lCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgaWZyYW1l
KGlubGluZSk6CisgICAgIiIiSW5saW5lcyBkb2N1bWVudCBleHRyYWN0IGFzIHRoZSBzb3VyY2Ug
ZG9jdW1lbnQgb2YgYW4gPGlmcmFtZT4uIiIiCisgICAgZGVmIGlmcmFtZShzcmMsICoqa3dhcmdz
KToKKyAgICAgICAgcmV0dXJuICI8aWZyYW1lIHNyYz0ne30nPjwvaWZyYW1lPiIuZm9ybWF0KGlu
bGluZShzcmMsICoqa3dhcmdzKSkKKworICAgIHJldHVybiBpZnJhbWUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0
L2hlbHBlcnMucHkKaW5kZXggZjg1NzA4M2I0Nzc0Li40M2JkYjQxY2Y5ODMgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxw
ZXJzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3VwcG9ydC9oZWxwZXJzLnB5CkBAIC0xLDUgKzEsNiBAQAogZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBwcmludF9mdW5jdGlvbgogCitpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBtYXRoCiBpbXBv
cnQgc3lzCiAKQEAgLTEwNiw2ICsxMDcsMjAgQEAgZGVmIGNsZWFyX2FsbF9jb29raWVzKHNlc3Np
b24pOgogICAgIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoIkRFTEVURSIsICJzZXNzaW9uLyVzL2Nv
b2tpZSIgJSBzZXNzaW9uLnNlc3Npb25faWQpCiAKIAorZGVmIGRlZXBfdXBkYXRlKHNvdXJjZSwg
b3ZlcnJpZGVzKToKKyAgICAiIiIKKyAgICBVcGRhdGUgYSBuZXN0ZWQgZGljdGlvbmFyeSBvciBz
aW1pbGFyIG1hcHBpbmcuCisgICAgTW9kaWZ5IGBgc291cmNlYGAgaW4gcGxhY2UuCisgICAgIiIi
CisgICAgZm9yIGtleSwgdmFsdWUgaW4gb3ZlcnJpZGVzLml0ZW1zKCk6CisgICAgICAgIGlmIGlz
aW5zdGFuY2UodmFsdWUsIGNvbGxlY3Rpb25zLk1hcHBpbmcpIGFuZCB2YWx1ZToKKyAgICAgICAg
ICAgIHJldHVybmVkID0gZGVlcF91cGRhdGUoc291cmNlLmdldChrZXksIHt9KSwgdmFsdWUpCisg
ICAgICAgICAgICBzb3VyY2Vba2V5XSA9IHJldHVybmVkCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzb3VyY2Vba2V5XSA9IG92ZXJyaWRlc1trZXldCisgICAgcmV0dXJuIHNvdXJjZQorCisK
IGRlZiBkb2N1bWVudF9kaW1lbnNpb25zKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBsZShzZXNz
aW9uLmV4ZWN1dGVfc2NyaXB0KCIiIgogICAgICAgICBsZXQgcmVjdCA9IGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKQEAgLTIyMSwzICsyMzYsMjcgQEAg
ZGVmIGF2YWlsYWJsZV9zY3JlZW5fc2l6ZShzZXNzaW9uKToKICAgICAgICAgICAgIHNjcmVlbi5h
dmFpbEhlaWdodCAtIHNjcmVlbi5hdmFpbFRvcCwKICAgICAgICAgXTsKICAgICAgICAgIiIiKSkK
KworZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6CisgICAgIiIiRmlsdGVyIGBzb3VyY2VgIGRp
Y3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBgZGAgZGljdC4KKworICAgIDpwYXJhbSBz
b3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgorICAgIDpwYXJhbSBkOiBkaWN0aW9uYXJ5IHdo
b3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcuCisgICAgIiIiCisgICAgcmV0dXJuIHtr
OiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CisKKworZGVmIHdhaXRfZm9yX25ld19oYW5k
bGUoc2Vzc2lvbiwgaGFuZGxlc19iZWZvcmUpOgorICAgIGRlZiBmaW5kX25ld19oYW5kbGUoc2Vz
c2lvbik6CisgICAgICAgIG5ld19oYW5kbGVzID0gbGlzdChzZXQoc2Vzc2lvbi5oYW5kbGVzKSAt
IHNldChoYW5kbGVzX2JlZm9yZSkpCisgICAgICAgIGlmIG5ld19oYW5kbGVzIGFuZCBsZW4obmV3
X2hhbmRsZXMpID09IDE6CisgICAgICAgICAgICByZXR1cm4gbmV3X2hhbmRsZXNbMF0KKyAgICAg
ICAgcmV0dXJuIE5vbmUKKworICAgIHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAg
ICAgICB0aW1lb3V0PTUsCisgICAgICAgIG1lc3NhZ2U9Ik5vIG5ldyB3aW5kb3cgaGFzIGJlZW4g
b3BlbmVkIikKKworICAgIHJldHVybiB3YWl0LnVudGlsKGZpbmRfbmV3X2hhbmRsZSkKKwpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBw
b3J0L2h0bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lc19ub19iZmNhY2hlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xOTcyMTg3ZDIxZmUKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N1cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBm
dW5jdGlvbiByZW1vdmUoKSB7CisgICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzdWItZnJhbWUiKTsKKyAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkZWxldGUiKTsKKyAgICAgIGRpdi5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgfQor
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPCEtLSB1bmxvYWQgaGFuZGxlciBwcmV2ZW50cyB0aGUg
cGFnZSBmcm9tIGJlaW5nIGFkZGVkIHRvIHRoZSBiZmNhY2hlIG9uIG5hdmlnYXRpb24gLS0+Cis8
Ym9keSBvbnVubG9hZD0iIj4KKyAgPGRpdiBpZD0iZGVsZXRlIj4KKyAgICA8aWZyYW1lIHNyYz0i
c3ViZnJhbWUuaHRtbCIgaWQ9InN1Yi1mcmFtZSI+PC9pZnJhbWU+CisgIDwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvbWV0YS11dGY4LWFmdGVyLTEwMjQtYnl0ZXMuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1s
L21ldGEtdXRmOC1hZnRlci0xMDI0LWJ5dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi5iNTkxNjE0OGI1NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9tZXRhLXV0
ZjgtYWZ0ZXItMTAyNC1ieXRlcy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPCEtLSBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2lu
ZyBlbGl0LiBOdWxsYSBldSBpYWN1bGlzCitsZWN0dXMuIFF1aXNxdWUgdWxsYW1jb3JwZXIgZXN0
IGF0IG51bmMgY29uc2VjdGV0dXIgc3VzY2lwaXQuIEFsaXF1YW0gaW1wZXJkaWV0CittYXVyaXMg
aW4gbnVsbGEgb3JuYXJlLCBpZCBlbGVpZmVuZCB0dXJwaXMgcGxhY2VyYXQuIFZlc3RpYnVsdW0g
bG9yZW0gbGliZXJvLAorc29sbGljaXR1ZGluIGluIG9yY2kgc3VzY2lwaXQsIGRpY3R1bSB2ZXN0
aWJ1bHVtIG51bGxhLiBVdCBhYyBlc3QgdGluY2lkdW50LAorY3Vyc3VzIGxlbyB2ZWwsIHBlbGxl
bnRlc3F1ZSBvcmNpLiBTZWQgbWF0dGlzIG1ldHVzIGF1Z3VlLCBhYyB0aW5jaWR1bnQgbnVuYwor
bG9ib3J0aXMgaW4uIFByb2luIGV1IGlwc3VtIGF1Y3RvciBsb3JlbSBzYWdpdHRpcyBtYWxlc3Vh
ZGEuIFZpdmFtdXMgbWF4aW11cywKK2Vyb3MgZnJpbmdpbGxhIHZ1bHB1dGF0ZSB0aW5jaWR1bnQs
IHRlbGx1cyB0ZWxsdXMgdml2ZXJyYSBhdWd1ZSwgc2VkIGlhY3VsaXMKK2lwc3VtIGxhY3VzIHF1
aXMgdGVsbHVzLiBNb3JiaSBldCBlbmltIGF0IGFudGUgbW9sZXN0aWUgaW1wZXJkaWV0IGV0IGV0
IG51bGxhLgorQWxpcXVhbSBjb25zZXF1YXQgcmhvbmN1cyBtYWduYSwgdml0YWUgc29kYWxlcyB1
cm5hIG1heGltdXMgZWdldC4gTWF1cmlzIGV1CitsYW9yZWV0IHR1cnBpcywgZWdldCBjb25kaW1l
bnR1bSBsZWN0dXMuIE1hZWNlbmFzIHZlbCBsb3JlbSB2ZWwgbnVsbGEgZWZmaWNpdHVyCitldWlz
bW9kLiBTZWQgbG9ib3J0aXMgZW5pbSBhYyBvZGlvIGJpYmVuZHVtLCBpZCB2ZWhpY3VsYSBuaWJo
IHRlbXB1cy4gUGhhc2VsbHVzCitzb2RhbGVzLCBpcHN1bSBmZXVnaWF0IGFsaXF1YW0gdmVoaWN1
bGEsIGRpYW0gbGVvIGN1cnN1cyBlc3QsIG5lYyB2YXJpdXMgbnVuYworZmVsaXMgdml0YWUgZXN0
LiBDdXJhYml0dXIgYWMgcHVydXMgbmlzbC4gTWF1cmlzIGNvbmRpbWVudHVtLCBtYWduYSBxdWlz
Citjb25zZWN0ZXR1ciBiaWFtLiAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxkaXYgaWQ9
ImJvZHkiPjwvZGl2PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0dHBfcmVxdWVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKaW5kZXgg
ODk1ZDEzMTlhYzBhLi4yNDJkYzljOTE4ODcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0dHBf
cmVxdWVzdC5weQpAQCAtMSw5ICsxLDcgQEAKIGltcG9ydCBjb250ZXh0bGliCiBpbXBvcnQganNv
bgogCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCi0KLWZyb20gc2l4Lm1vdmVzLmh0dHBfY2xp
ZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENv
bm5lY3Rpb24KIAogCiBjbGFzcyBIVFRQUmVxdWVzdChvYmplY3QpOgpAQCAtMzEsNyArMjksNyBA
QCBjbGFzcyBIVFRQUmVxdWVzdChvYmplY3QpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoIkZhaWxlZCB0byBlbmNvZGUgcmVxdWVzdCBib2R5IGFzIEpTT046IHt9Ii5mb3JtYXQo
CiAgICAgICAgICAgICAgICAgICAgIGpzb24uZHVtcHMoYm9keSwgaW5kZW50PTIpKSkKIAotICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZShwYXlsb2FkLCBzdHIpOgogICAgICAgICAgICAgICAgIHBheWxvYWQgPSBi
b2R5LmVuY29kZSgidXRmLTgiKQogCiAgICAgICAgIGNvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxm
Lmhvc3QsIHNlbGYucG9ydCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weQppbmRleCA2MTQ5Y2NjY2Jl
MzIuLjJlN2FkOGMxMzA5YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2ltYWdlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weQpAQCAtMSwxNCArMSwx
MiBAQAotaW1wb3J0IGJhc2U2NAogaW1wb3J0IG1hdGgKIGltcG9ydCBzdHJ1Y3QKLQotZnJvbSBz
aXggaW1wb3J0IGVuc3VyZV9iaW5hcnkKK2Zyb20gYmFzZTY0IGltcG9ydCBkZWNvZGVieXRlcwog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3BuZwogCiAKIGRlZiBw
bmdfZGltZW5zaW9ucyhzY3JlZW5zaG90KToKICAgICBhc3NlcnRfcG5nKHNjcmVlbnNob3QpCi0g
ICAgaW1hZ2UgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkoc2NyZWVuc2hvdCkp
CisgICAgaW1hZ2UgPSBkZWNvZGVieXRlcyhzY3JlZW5zaG90LmVuY29kZSgpKQogICAgIHdpZHRo
LCBoZWlnaHQgPSBzdHJ1Y3QudW5wYWNrKCI+TEwiLCBpbWFnZVsxNjoyNF0pCiAgICAgcmV0dXJu
IGludCh3aWR0aCksIGludChoZWlnaHQpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQppbmRleCBk
MjNjYTc1ZDFjODAuLjQ5NGNhNzRmOTI2NSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5CkBA
IC0xLDYgKzEsNiBAQAogIiIiSGVscGVycyBmb3IgaW5saW5pbmcgZXh0cmFjdHMgb2YgZG9jdW1l
bnRzIGluIHRlc3RzLiIiIgogCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVy
bGVuY29kZQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQogCiAKIEJPSUxFUlBM
QVRFUyA9IHsKQEAgLTI0LDMxICsyNCw4IEBAIE1JTUVfVFlQRVMgPSB7CiAgICAgInhtbCI6ICJ0
ZXh0L3htbCIsCiB9CiAKLWRlZiBpbmxpbmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25l
LCBjaGFyc2V0PU5vbmUsICoqa3dhcmdzKToKLSAgICAiIiIKLSAgICBUYWtlcyBhIHNvdXJjZSBl
eHRyYWN0IGFuZCBwcm9kdWNlcyB3ZWxsLWZvcm1lZCBkb2N1bWVudHMuCi0KLSAgICBCYXNlZCBv
biB0aGUgZGVzaXJlZCBkb2N1bWVudCB0eXBlLCB0aGUgZXh0cmFjdCBpcyBlbWJlZGRlZCB3aXRo
Ci0gICAgcHJlZGVmaW5lZCBib2lsZXJwbGF0ZSBpbiBvcmRlciB0byBwcm9kdWNlIHdlbGwtZm9y
bWVkIGRvY3VtZW50cy4KLSAgICBUaGUgbWVkaWEgdHlwZSBhbmQgY2hhcmFjdGVyIHNldCBtYXkg
YWxzbyBiZSBpbmRpdmlkdWFsbHkgY29uZmlndXJlZC4KLQotICAgIFRoaXMgaGVscGVyIGZ1bmN0
aW9uIG9yaWdpbmFsbHkgdXNlZCBkYXRhIFVSTHMsIGJ1dCBzaW5jZSB0aGVzZQotICAgIGFyZSBu
b3QgdW5pdmVyc2FsbHkgc3VwcG9ydGVkIChvciBpbmRlZWQgc3RhbmRhcmRpc2VkISkgYWNyb3Nz
Ci0gICAgYnJvd3NlcnMsIGl0IG5vdyBkZWxlZ2F0ZXMgdGhlIHNlcnZpbmcgb2YgdGhlIGRvY3Vt
ZW50IHRvIHdwdHNlcnZlLgotICAgIFRoaXMgZmlsZSBhbHNvIGFjdHMgYXMgYSB3cHRzZXJ2ZSBo
YW5kbGVyIChzZWUgdGhlIG1haW4gZnVuY3Rpb24KLSAgICBiZWxvdykgd2hpY2ggY29uZmlndXJl
cyB0aGUgSFRUUCByZXNwb25zZSB1c2luZyBxdWVyeSBwYXJhbWV0ZXJzLgotCi0gICAgVGhpcyBm
dW5jdGlvbiByZXR1cm5zIGEgVVJMIHRvIHRoZSB3cHRzZXJ2ZSBoYW5kbGVyLCB3aGljaCBpbiB0
dXJuCi0gICAgd2lsbCBzZXJ2ZSBhbiBIVFRQIHJlc3BvbnNlIHdpdGggdGhlIHJlcXVlc3RlZCBz
b3VyY2UgZXh0cmFjdAotICAgIGlubGluZWQgaW4gYSB3ZWxsLWZvcm1lZCBkb2N1bWVudCwgYW5k
IHRoZSBDb250ZW50LVR5cGUgaGVhZGVyCi0gICAgb3B0aW9uYWxseSBjb25maWd1cmVkIHVzaW5n
IHRoZSBkZXNpcmVkIG1lZGlhIHR5cGUgYW5kIGNoYXJhY3RlciBzZXQuCi0KLSAgICBBbnkgYWRk
aXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgcGFzc2VkIG9uIHRvIHRoZSBidWlsZF91cmwK
LSAgICBmdW5jdGlvbi4KLSAgICAiIiIKLSAgICBmcm9tIC5maXh0dXJlcyBpbXBvcnQgc2VydmVy
X2NvbmZpZywgdXJsCi0gICAgYnVpbGRfdXJsID0gdXJsKHNlcnZlcl9jb25maWcoKSkKIAorZGVm
IGJ1aWxkX2lubGluZShidWlsZF91cmwsIHNyYywgZG9jdHlwZT0iaHRtbCIsIG1pbWU9Tm9uZSwg
Y2hhcnNldD1Ob25lLCAqKmt3YXJncyk6CiAgICAgaWYgbWltZSBpcyBOb25lOgogICAgICAgICBt
aW1lID0gTUlNRV9UWVBFU1tkb2N0eXBlXQogICAgIGlmIGNoYXJzZXQgaXMgTm9uZToKQEAgLTYy
LDExICszOSw2IEBAIGRlZiBpbmxpbmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBj
aGFyc2V0PU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgKiprd2FyZ3MpCiAKIAotZGVmIGlmcmFt
ZShzcmMsICoqa3dhcmdzKToKLSAgICAiIiJJbmxpbmVzIGRvY3VtZW50IGV4dHJhY3QgYXMgdGhl
IHNvdXJjZSBkb2N1bWVudCBvZiBhbiA8aWZyYW1lPi4iIiIKLSAgICByZXR1cm4gIjxpZnJhbWUg
c3JjPSd7fSc+PC9pZnJhbWU+Ii5mb3JtYXQoaW5saW5lKHNyYywgKiprd2FyZ3MpKQotCi0KIGRl
ZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICBkb2MgPSByZXF1ZXN0LkdFVC5maXJzdChi
ImRvYyIsIE5vbmUpCiAgICAgbWltZSA9IHJlcXVlc3QuR0VULmZpcnN0KGIibWltZSIsIE5vbmUp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3N1cHBvcnQvbWVyZ2VfZGljdGlvbmFyaWVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQppbmRleCBj
ZjA2YzliNDMzY2UuLjcyZjFjYWIzNTJkZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
bWVyZ2VfZGljdGlvbmFyaWVzLnB5CkBAIC0xLDEwICsxLDMgQEAKLWRlZiBpdGVyaXRlbXMoZCk6
Ci0gICAgIiIiQ3JlYXRlIGEga2V5LXZhbHVlIGl0ZXJhdG9yIGZvciB0aGUgZ2l2ZW4gZGljdCBp
biBib3RoIFB5dGhvbiAyLnggYW5kCi0gICAgUHl0aG9uIDMueCBlbnZpcm9ubWVudHMiIiIKLSAg
ICBpZiBoYXNhdHRyKGQsICJpdGVyaXRlbXMiKToKLSAgICAgICAgcmV0dXJuIGQuaXRlcml0ZW1z
KCkKLSAgICByZXR1cm4gZC5pdGVtcygpCi0KIGRlZiBtZXJnZV9kaWN0aW9uYXJpZXMoZmlyc3Qs
IHNlY29uZCk6CiAgICAgIiIiR2l2ZW4gdHdvIGRpY3Rpb25hcmllcywgY3JlYXRlIGEgdGhpcmQg
dGhhdCBkZWZpbmVzIGFsbCBzcGVjaWZpZWQKICAgICBrZXkvdmFsdWUgcGFpcnMuIFRoaXMgbWVy
Z2VfZGljdGlvbmFyaWVzIGlzIHBlcmZvcm1lZCAiZGVlcGx5IiBvbiBhbnkgbmVzdGVkCkBAIC0x
Miw3ICs1LDcgQEAgZGVmIG1lcmdlX2RpY3Rpb25hcmllcyhmaXJzdCwgc2Vjb25kKToKICAgICBh
biBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQuIiIiCiAgICAgcmVzdWx0ID0gZGljdChmaXJzdCkK
IAotICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZXJpdGVtcyhzZWNvbmQpOgorICAgIGZvciBrZXks
IHZhbHVlIGluIHNlY29uZC5pdGVtcygpOgogICAgICAgICBpZiBrZXkgaW4gcmVzdWx0IGFuZCBy
ZXN1bHRba2V5XSAhPSB2YWx1ZToKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0W2tl
eV0sIGRpY3QpIGFuZCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KToKICAgICAgICAgICAgICAgICBy
ZXN1bHRba2V5XSA9IG1lcmdlX2RpY3Rpb25hcmllcyhyZXN1bHRba2V5XSwgdmFsdWUpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBv
cnQvc3luYy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3VwcG9ydC9zeW5jLnB5CmluZGV4IGZhNWQxODU1MGNjZS4uMzBmZjg3MmI2ZTE1IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
c3luYy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3N1cHBvcnQvc3luYy5weQpAQCAtMiw4ICsyLDYgQEAgaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBv
cnQgc3lzCiBpbXBvcnQgdGltZQogCi1pbXBvcnQgc2l4Ci0KIGZyb20gd2ViZHJpdmVyIGltcG9y
dCBlcnJvcgogCiAKQEAgLTE0MCw2ICsxMzgsNiBAQCBjbGFzcyBQb2xsKG9iamVjdCk6CiAgICAg
ICAgICAgICBtZXNzYWdlID0gIlRpbWVkIG91dCBhZnRlciB7fSBzZWNvbmRzIi5mb3JtYXQoZWxh
cHNlZCkKICAgICAgICAgICAgIGlmIHNlbGYuZXhjX21zZyBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgICAgICBtZXNzYWdlID0gInt9IHdpdGggbWVzc2FnZToge30iLmZvcm1hdChtZXNzYWdlLCBz
ZWxmLmV4Y19tc2cpCi0gICAgICAgICAgICBzaXgucmVyYWlzZShzZWxmLmV4Y19jbHMsIHNlbGYu
ZXhjX2NscyhtZXNzYWdlPW1lc3NhZ2UpLCB0YikKKyAgICAgICAgICAgIHJhaXNlIHNlbGYuZXhj
X2NscyhtZXNzYWdlPW1lc3NhZ2UpLndpdGhfdHJhY2ViYWNrKHRiKQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFt
ZS9jcm9zc19vcmlnaW4ucHkKaW5kZXggOTA1ZjFlYjU2ZGNlLi42MzNlYmEzZjQyNDggMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNo
X3RvX2ZyYW1lL2Nyb3NzX29yaWdpbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkKQEAgLTEs
MTAgKzEsOSBAQAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQor
ZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCiAKIGltcG9ydCB3ZWJkcml2ZXIucHJv
dG9jb2wgYXMgcHJvdG9jb2wKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZG9jdW1lbnRf
bG9jYXRpb24KLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5l
CiAKIAogIiIiCkBAIC0yNyw3ICsyNiw3IEBAIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwg
ZnJhbWUpOgogICAgICAgICBzZXNzaW9uPXNlc3Npb24pCiAKIAotZGVmIHRlc3RfY3Jvc3Nfb3Jp
Z2luX2lmcmFtZShzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2Nyb3NzX29yaWdp
bl9pZnJhbWUoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZywgaW5saW5lLCBpZnJhbWUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiIiwgZG9tYWluPSJhbHQiKSkKICAgICBmcmFtZV9l
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC0zOCw3
ICszNyw3IEBAIGRlZiB0ZXN0X2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lvbiwgc2VydmVyX2Nv
bmZpZyk6CiAgICAgYXNzZXJ0IHBhcnNlX3Jlc3VsdC5uZXRsb2MgIT0gc2VydmVyX2NvbmZpZ1si
YnJvd3Nlcl9ob3N0Il0KIAogCi1kZWYgdGVzdF9uZXN0ZWRfY3Jvc3Nfb3JpZ2luX2lmcmFtZShz
ZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X25lc3RlZF9jcm9zc19vcmlnaW5faWZy
YW1lKHNlc3Npb24sIHNlcnZlcl9jb25maWcsIGlubGluZSwgaWZyYW1lKToKICAgICBmcmFtZTIg
PSBpZnJhbWUoIiIsIGRvbWFpbj0iYWx0Iiwgc3ViZG9tYWluPSJ3d3ciKQogICAgIGZyYW1lMSA9
IGlmcmFtZShmcmFtZTIpCiAgICAgdG9wX2RvYyA9IGlubGluZShmcmFtZTEsIGRvbWFpbj0iYWx0
IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weQppbmRleCA3MDVmYTc5
YTVkZTAuLjljY2FiMmM2Yzk2ZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3
aXRjaC5weQpAQCAtMiwxMSArMiwxMCBAQCBpbXBvcnQgcHl0ZXN0CiAKIGltcG9ydCB3ZWJkcml2
ZXIucHJvdG9jb2wgYXMgcHJvdG9jb2wKIAotZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IFN0YWxlRWxl
bWVudFJlZmVyZW5jZUV4Y2VwdGlvbgorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IE5vU3VjaEVsZW1l
bnRFeGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3Nh
bWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZSwgaWZyYW1lCiAKIAogZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFt
ZSk6CkBAIC0xNywxOCArMTYsMTMgQEAgZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFt
ZSk6CiAgICAgICAgIHNlc3Npb249c2Vzc2lvbikKIAogCi1kZWYgZnJhbWVzZXQoKmRvY3MpOgot
ICAgIGZyYW1lcyA9IGxpc3QobWFwKGxhbWJkYSBkb2M6ICI8ZnJhbWUgc3JjPSd7fSc+PC9mcmFt
ZT4iLmZvcm1hdChpbmxpbmUoZG9jKSksIGRvY3MpKQotICAgIHJldHVybiAiPGZyYW1lc2V0IHJv
d3M9J3t9Jz5cbnt9PC9mcmFtZXNldD4iLmZvcm1hdChsZW4oZnJhbWVzKSAqICIqLCIsICJcbiIu
am9pbihmcmFtZXMpKQotCi0KIGRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24s
IGh0dHApOgogICAgIHBhdGggPSAiL3Nlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1lIi5mb3JtYXQo
Kip2YXJzKHNlc3Npb24pKQogICAgIHdpdGggaHR0cC5wb3N0KHBhdGgsIE5vbmUpIGFzIHJlc3Bv
bnNlOgogICAgICAgICBhc3NlcnRfZXJyb3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwg
ImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vz
c2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSwgaWZy
YW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZy
YW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC00Miw3ICsz
NiwxNiBAQCBkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgogICAgIDAsCiAg
ICAgeyJlbGVtZW50LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiI6ICJmb28ifSwKIF0pCi1k
ZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93LCBp
ZCk6CitkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCB1cmwsIGlkKToK
KyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQorCisgICAg
c2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lcy5o
dG1sIikKKworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFs
bD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHNlc3Np
b24ud2luZG93LmNsb3NlKCkKKwogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Np
b24sIGlkKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIApA
QCAtNjEsMTMgKzY0LDE4IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX2ZyYW1lLCBpZCk6CiAgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1
Y2ggd2luZG93IikKIAogCitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFk
eV90b3BfbGV2ZWwoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0
Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgTm9uZSkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIHdpbmRvdyIpCisKKwogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFsi
Zm9vIiwgVHJ1ZSwgW10sIHt9XSkKIGRlZiB0ZXN0X2ZyYW1lX2lkX2ludmFsaWRfdHlwZXMoc2Vz
c2lvbiwgdmFsdWUpOgogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIHZh
bHVlKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAK
LWRlZiB0ZXN0X2ZyYW1lX2lkX251bGwoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF9udWxs
KHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJh
bWUoInt9PGRpdj5mb28iLmZvcm1hdChpZnJhbWUoIjxwPmJhciIpKSkpCiAKICAgICBmcmFtZTEg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCkBAIC04MiwxMCArOTAsMjcg
QEAgZGVmIHRlc3RfZnJhbWVfaWRfbnVsbChzZXNzaW9uKToKICAgICByZXNwb25zZSA9IHN3aXRj
aF90b19mcmFtZShzZXNzaW9uLCBOb25lKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQog
Ci0gICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgogICAgICAg
ICBlbGVtZW50Mi50ZXh0Ci0gICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVy
ZW5jZUV4Y2VwdGlvbik6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNl
cHRpb24pOgogICAgICAgICBlbGVtZW50MS50ZXh0CiAKICAgICBmcmFtZSA9IHNlc3Npb24uZmlu
ZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Np
b24sIGZyYW1lLCBmcmFtZTEpCisKKworZGVmIHRlc3RfZmluZF9lbGVtZW50X3doaWxlX2ZyYW1l
X2lzX3N0aWxsX2xvYWRpbmcoc2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLnRpbWVvdXRzLmlt
cGxpY2l0ID0gNQorCisgICAgZnJhbWVfdXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBv
cnQvaHRtbC9zdWJmcmFtZS5odG1sP3BpcGU9dHJpY2tsZShkMikiKQorICAgIHBhZ2VfdXJsID0g
IjxodG1sPjxib2R5PjxpZnJhbWUgc3JjPSd7fSc+PC9pZnJhbWU+PC9ib2R5PjwvaHRtbD4iLmZv
cm1hdChmcmFtZV91cmwpCisKKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAi
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9IGFyZ3VtZW50c1swXTsiLCBhcmdz
PVtwYWdlX3VybF0pCisKKyAgICBmcmFtZTEgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBh
bGw9RmFsc2UpCisgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoZnJhbWUxKQorCisgICAgIyBFbnN1
cmUgdGhhdCB0aGUgaXMgYWx3YXlzIGEgdmFsaWQgYnJvd3NpbmcgY29udGV4dCwgYW5kIHRoZSBl
bGVtZW50CisgICAgIyBjYW4gYmUgZm91bmQgZXZlbnR1YWxseS4KKyAgICBzZXNzaW9uLmZpbmQu
Y3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3Rv
X2ZyYW1lL3N3aXRjaF9udW1iZXIucHkKaW5kZXggNzc1Mjk1NDQ2NzlhLi5jODg1OGU3N2ZmMTAg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF9udW1iZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5w
eQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2Nv
bCBhcyBwcm90b2NvbAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lLCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToK
QEAgLTIxLDcgKzIwLDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX291dF9vZl9ib3VuZHMo
c2Vzc2lvbiwgdmFsdWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5kZXgiLCBb
MSwgNjU1MzVdKQotZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3VuZHMo
c2Vzc2lvbiwgaW5kZXgpOgorZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9i
b3VuZHMoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGluZGV4KToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogCiAgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJh
bWUoc2Vzc2lvbiwgaW5kZXgpCkBAIC0yOSw3ICsyOCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX251
bWJlcl9pbmRleF9vdXRfb2ZfYm91bmRzKHNlc3Npb24sIGluZGV4KToKIAogCiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoImluZGV4LCB2YWx1ZSIsIFtbMCwgImZvbyJdLCBbMSwgImJhciJdXSkK
LWRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleChzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgor
ZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBp
bmRleCwgdmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJ7fXt9Ii5mb3JtYXQoaWZy
YW1lKCI8cD5mb28iKSwgaWZyYW1lKCI8cD5iYXIiKSkpCiAKICAgICByZXNwb25zZSA9IHN3aXRj
aF90b19mcmFtZShzZXNzaW9uLCBpbmRleCkKQEAgLTM5LDcgKzM4LDcgQEAgZGVmIHRlc3RfZnJh
bWVfaWRfbnVtYmVyX2luZGV4KHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVs
ZW1lbnQudGV4dCA9PSB2YWx1ZQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9u
ZXN0ZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXhfbmVzdGVkKHNl
c3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUo
Int9PHA+Zm9vIi5mb3JtYXQoaWZyYW1lKCI8cD5iYXIiKSkpKQogCiAgICAgZXhwZWN0ZWRfdGV4
dCA9IFsiZm9vIiwgImJhciJdCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2Zy
YW1lL3N3aXRjaF93ZWJlbGVtZW50LnB5CmluZGV4IDg5NDgwYjY2YjNhNi4uYTMwZDJkOGQzMzlj
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2Vi
ZWxlbWVudC5weQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZl
ci5wcm90b2NvbCBhcyBwcm90b2NvbAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lLCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24s
IGZyYW1lKToKQEAgLTE0LDE0ICsxMywxNCBAQCBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24s
IGZyYW1lKToKICAgICAgICAgc2Vzc2lvbj1zZXNzaW9uKQogCiAKLWRlZiBmcmFtZXNldCgqZG9j
cyk6CitkZWYgZnJhbWVzZXQoaW5saW5lLCAqZG9jcyk6CiAgICAgZnJhbWVzID0gbGlzdChtYXAo
bGFtYmRhIGRvYzogIjxmcmFtZSBzcmM9J3t9Jz48L2ZyYW1lPiIuZm9ybWF0KGlubGluZShkb2Mp
KSwgZG9jcykpCiAgICAgcmV0dXJuICI8ZnJhbWVzZXQgcm93cz0ne30nPlxue308L2ZyYW1lc2V0
PiIuZm9ybWF0KGxlbihmcmFtZXMpICogIiosIiwgIlxuIi5qb2luKGZyYW1lcykpCiAKIAogQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28iXSwgWzEsICJi
YXIiXV0pCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4
LCB2YWx1ZSk6Ci0gICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoZnJhbWVzZXQoIjxwPmZvbyIsICI8
cD5iYXIiKSkKK2RlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfZnJhbWUoc2Vzc2lvbiwgaW5s
aW5lLCBpbmRleCwgdmFsdWUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKGZyYW1lc2V0KGlu
bGluZSwgIjxwPmZvbyIsICI8cD5iYXIiKSkKICAgICBmcmFtZXMgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJmcmFtZSIpCiAgICAgYXNzZXJ0IGxlbihmcmFtZXMpID09IDIKIApAQCAtMzMsNyArMzIsNyBA
QCBkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1
ZSk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpbmRleCwgdmFsdWUiLCBbWzAsICJm
b28iXSwgWzEsICJiYXIiXV0pCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2lmcmFtZShz
ZXNzaW9uLCBpbmRleCwgdmFsdWUpOgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9pZnJh
bWUoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGluZGV4LCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoInt9e30iLmZvcm1hdChpZnJhbWUoIjxwPmZvbyIpLCBpZnJhbWUoIjxwPmJh
ciIpKSkKICAgICBmcmFtZXMgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiKQogICAgIGFzc2Vy
dCBsZW4oZnJhbWVzKSA9PSAyCkBAIC00NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dl
YmVsZW1lbnRfaWZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVsZW1l
bnQudGV4dCA9PSB2YWx1ZQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbmVzdGVk
KHNlc3Npb24pOgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9uZXN0ZWQoc2Vzc2lvbiwg
aW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgie308cD5m
b28iLmZvcm1hdChpZnJhbWUoIjxwPmJhciIpKSkpCiAKICAgICBleHBlY3RlZF90ZXh0ID0gWyJm
b28iLCAiYmFyIl0KQEAgLTU4LDcgKzU3LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVu
dF9uZXN0ZWQoc2Vzc2lvbik6CiAgICAgICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gZXhwZWN0
ZWRfdGV4dFtpXQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbm9fZWxlbWVudF9y
ZWZlcmVuY2Uoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2VsZW1l
bnRfcmVmZXJlbmNlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygi
aWZyYW1lIiwgYWxsPUZhbHNlKQogICAgIGZyYW1lLmlkID0gImJhciIKQEAgLTY3LDcgKzY2LDcg
QEAgZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9ub19lbGVtZW50X3JlZmVyZW5jZShzZXNz
aW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQogCiAK
LWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNlKHNlc3Npb24pOgor
ZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9zdGFsZV9yZWZlcmVuY2Uoc2Vzc2lvbiwgaW5s
aW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikp
CiAgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAKQEAg
LTc3LDkgKzc2LDI3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJl
bmNlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInN0YWxlIGVsZW1lbnQg
cmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2Vs
ZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2Vs
ZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+Zm9v
IikKICAgICBub19mcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKICAg
ICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBub19mcmFtZSkKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGZyYW1lIikKKworCitkZWYgdGVzdF9mcmFtZV9p
ZF93ZWJlbGVtZW50X2Nsb25lZF9pbnRvX2lmcmFtZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6
CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8Ym9keT48cD5oZWxsbyB3b3JsZDwv
cD48L2JvZHk+IikpCisKKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiIgorICAgICAgICBj
b25zdCBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF07
CisgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
ICAgICBkaXYuaW5uZXJIVE1MID0gJ0kgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2luZG93IGFu
ZCBhcHBlbmRlZCBpbnRvIHRoZSBpZnJhbWUnOworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRv
dy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgIiIiKQorCisgICAgZnJhbWUg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgcmVzcG9uc2UgPSBz
d2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UpCisKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQor
ICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gIkkgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2lu
ZG93IGFuZCBhcHBlbmRlZCBpbnRvIHRoZSBpZnJhbWUiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUv
c3dpdGNoLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9z
d2l0Y2hfdG9fcGFyZW50X2ZyYW1lL3N3aXRjaC5weQppbmRleCBlZjJkYTQ1ZjE2MjUuLjljNmRi
OGQyY2Q2MSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lL3N3aXRjaC5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUv
c3dpdGNoLnB5CkBAIC0xLDkgKzEsOCBAQAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHdlYmRyaXZl
ciBpbXBvcnQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uCitmcm9tIHdlYmRyaXZlciBp
bXBvcnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lLCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX3BhcmVudF9m
cmFtZShzZXNzaW9uKToKQEAgLTExLDcgKzEwLDcgQEAgZGVmIHN3aXRjaF90b19wYXJlbnRfZnJh
bWUoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1l
L3BhcmVudCIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3RfbnVsbF9yZXNw
b25zZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lv
biwgaW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+
Zm9vIikpCiAgICAgZnJhbWVfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFs
bD1GYWxzZSkKICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZV9lbGVtZW50KQpAQCAtMjEs
NyArMjAsMTYgQEAgZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKICAgICBh
c3NlcnQgdmFsdWUgaXMgTm9uZQogCiAKLWRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRl
eHQoc2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5l
d193aW5kb3coKQorCisgICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9odG1sL2ZyYW1lcy5odG1sIikKKworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNz
cygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJm
cmFtZSkKKworICAgIHNlc3Npb24ud2luZG93LmNsb3NlKCkKKwogICAgIHJlc3BvbnNlID0gc3dp
dGNoX3RvX3BhcmVudF9mcmFtZShzZXNzaW9uKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKIApAQCAtNDksMTkgKzU3LDI5IEBAIGRlZiB0ZXN0X25vX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBzZXNzaW9uLmZpbmQuY3Nz
KCIjZGVsZXRlIiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0ZXN0X3N0YWxlX2VsZW1lbnRfZnJvbV9p
ZnJhbWUoc2Vzc2lvbik6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFk
eV90b3BfbGV2ZWwoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0
Y2hfdG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCB3aW5kb3ciKQorCisKK2RlZiB0ZXN0X3N3aXRjaF9mcm9tX2lmcmFtZShzZXNzaW9u
LCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5m
b28iKSkKICAgICBmcmFtZV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxs
PUZhbHNlKQogICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKGZyYW1lX2VsZW1lbnQpCi0gICAgc3Rh
bGVfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKICAgICByZXN1bHQgPSBzd2l0
Y2hfdG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0KQog
Ci0gICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6
Ci0gICAgICAgIHN0YWxlX2VsZW1lbnQudGV4dAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC50ZXh0CisKIAorZGVmIHRlc3Rf
c3dpdGNoX2Zyb21fdG9wX2xldmVsKHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxwPmZvbyIpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBh
bGw9RmFsc2UpCiAKLWRlZiB0ZXN0X3N3aXRjaF9mcm9tX3RvcF9sZXZlbChzZXNzaW9uKToKICAg
ICByZXN1bHQgPSBzd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1
Y2Nlc3MocmVzdWx0KQorCisgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiZm9vIgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hf
dG9fd2luZG93L3N3aXRjaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkKaW5kZXggOThiNGJlZTE2ZTJkLi4y
OGQ0MzJhOGI1YjQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fd2luZG93L3N3aXRjaC5w
eQpAQCAtMSwzICsxLDYgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3Ig
aW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sIE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBmcm9t
IHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCkBAIC01MSwzICs1
NCw0NyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIHVybCk6CiAgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKICAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3dfaGFu
ZGxlID09IG5ld19oYW5kbGUKKworCitkZWYgdGVzdF9zd2l0Y2hfdG9fd2luZG93X3NldHNfdG9w
X2xldmVsX2NvbnRleHQoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgorICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCisKKyAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5j
c3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZSkK
KyAgICBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBz
d2l0Y2hfdG9fd2luZG93KHNlc3Npb24sIHNlc3Npb24ud2luZG93X2hhbmRsZSkKKyAgICBhc3Nl
cnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFs
bD1GYWxzZSkKKworCitkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZF9hZnRlcl90YWJfc3dpdGNo
KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPSdhJz5m
b28iKQorICAgIHBhcmFncmFwaCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisK
KyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3codHlwZV9oaW50
PSJ0YWIiKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24p
OgorICAgICAgICBwYXJhZ3JhcGguYXR0cmlidXRlKCJpZCIpCisKKworQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJkaWFsb2dfdHlwZSIsIFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkK
K2RlZiB0ZXN0X2ZpbmRzX2V4aXNpbmdfdXNlcl9wcm9tcHRfYWZ0ZXJfdGFiX3N3aXRjaChzZXNz
aW9uLCBkaWFsb2dfdHlwZSk6CisgICAgb3JpZ2luYWxfaGFuZGxlID0gc2Vzc2lvbi53aW5kb3df
aGFuZGxlCisgICAgbmV3X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCisKKyAgICBzZXNz
aW9uLmV4ZWN1dGVfc2NyaXB0KCJ7fSgnZm9vJyk7Ii5mb3JtYXQoZGlhbG9nX3R5cGUpKQorCisg
ICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fd2luZG93KHNlc3Npb24sIG5ld19oYW5kbGUpCisgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNo
QWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKworICAgIHNlc3Np
b24ud2luZG93LmNsb3NlKCkKKworICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3dpbmRvdyhzZXNz
aW9uLCBvcmlnaW5hbF9oYW5kbGUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAg
ICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVt
ZW50X3NjcmVlbnNob3QvaWZyYW1lLnB5CmluZGV4IDgzZjU1ZGVmZjc1My4uZTdmMWIwYzgwNTNk
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFt
ZS5weQpAQCAtMiw3ICsyLDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBp
bXBvcnQgcG5nX2RpbWVuc2lvbnMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlm
cmFtZSwgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zCiAKQEAgLTY4
LDcgKzY3LDcgQEAgZGVmIHRha2VfZWxlbWVudF9zY3JlZW5zaG90KHNlc3Npb24sIGVsZW1lbnRf
aWQpOgogICAgICkKIAogCi1kZWYgdGVzdF9mcmFtZV9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRl
c3RfZnJhbWVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgIyBDcmVhdGUg
YSByZWZlcmVuY2UgZWxlbWVudCB3aGljaCBsb29rcyBleGFjdGx5IGxpa2UgdGhlIGZyYW1lJ3Mg
Y29udGVudAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJ7MH17MX0iLmZvcm1hdChSRUZFUkVO
Q0VfU1RZTEUsIFJFRkVSRU5DRV9DT05URU5UKSkKIApAQCAtOTcsNyArOTYsNyBAQCBkZWYgdGVz
dF9mcmFtZV9lbGVtZW50KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
ZG9tYWluIiwgWyIiLCAiYWx0Il0sIGlkcz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdpbiJd
KQotZGVmIHRlc3Rfc291cmNlX29yaWdpbihzZXNzaW9uLCB1cmwsIGRvbWFpbik6CitkZWYgdGVz
dF9zb3VyY2Vfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBkb21haW4pOgogICAgICMg
Q3JlYXRlIGEgcmVmZXJlbmNlIGVsZW1lbnQgd2hpY2ggbG9va3MgZXhhY3RseSBsaWtlIHRoZSBp
ZnJhbWUKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiezB9ezF9Ii5mb3JtYXQoUkVGRVJFTkNF
X1NUWUxFLCBSRUZFUkVOQ0VfQ09OVEVOVCkpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2Ny
ZWVuc2hvdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
dGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weQppbmRleCA2ZmY2Mzk2ZWRiMmEu
LjRkM2JmYjBlNWM2OCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50
X3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRl
c3RzLnN1cHBvcnQuaW1hZ2UgaW1wb3J0IHBuZ19kaW1lbnNpb25zCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBlbGVtZW50X2RpbWVuc2lv
bnMKIApAQCAtMjAsNyArMTksNyBAQCBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChz
ZXNzaW9uLCBjbG9zZWRfd2luZG93KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBz
dWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBj
bG9zZWRfZnJhbWUpOgorZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9z
ZWRfZnJhbWUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAt
MzAsNyArMjksNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF9mcmFtZSk6CiAgICAgYXNzZXJ0IHBuZ19kaW1lbnNpb25zKHNjcmVlbnNob3QpID09IGVsZW1l
bnRfZGltZW5zaW9ucyhzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X3N0YWxlKHNlc3Np
b24pOgorZGVmIHRlc3Rfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0
IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0zOSw3ICszOCw3IEBAIGRl
ZiB0ZXN0X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBl
bGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNl
c3Npb24pOgorZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hv
dC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQppbmRleCA1ZDFi
NDk3ZmYyYzQuLjM5ZmVmZTkzMjVhOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21w
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90
YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBp
bXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3BuZywgYXNzZXJ0X3N1Y2Nlc3MK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiB0YWtlX2Vs
ZW1lbnRfc2NyZWVuc2hvdChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE3LDcgKzE2LDcgQEAg
ZGVmIHRha2VfZWxlbWVudF9zY3JlZW5zaG90KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAg
ICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQog
ICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBA
IC0zNSw3ICszNCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
IAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAg
ICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFr
ZV9zY3JlZW5zaG90L2lmcmFtZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lmcmFtZS5weQppbmRleCA2MDFjMDM5ZDU2ZGUu
LjgxODgxYzFkYWU3MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lmcmFtZS5w
eQpAQCAtMiw5ICsyLDggQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBv
cnQgcG5nX2RpbWVuc2lvbnMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFt
ZSwgaW5saW5lCiAKLWZyb20gLiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zLCB2aWV3cG9ydF9k
aW1lbnNpb25zCitmcm9tIC4gaW1wb3J0IHZpZXdwb3J0X2RpbWVuc2lvbnMKIAogREVGQVVMVF9D
T05URU5UID0gIjxkaXYgaWQ9J2NvbnRlbnQnPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0Ljwv
ZGl2PiIKIApAQCAtNjMsNyArNjIsNyBAQCBkZWYgdGFrZV9zY3JlZW5zaG90KHNlc3Npb24pOgog
ICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L3NjcmVlbnNob3QiLmZvcm1hdCgq
KnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgaWZyYW1lX2NvbnRlbnQg
PSAiezB9ezF9Ii5mb3JtYXQoSU5ORVJfSUZSQU1FX1NUWUxFLCBERUZBVUxUX0NPTlRFTlQpCiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiezB9ezF9IiIiLmZvcm1hdChPVVRFUl9JRlJBTUVf
U1RZTEUsIGlmcmFtZShpZnJhbWVfY29udGVudCkpKQogCkBAIC04Miw3ICs4MSw3IEBAIGRlZiB0
ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uKToKIAogCiBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRvbWFpbiIsIFsiIiwgImFsdCJdLCBpZHM9WyJzYW1l
X29yaWdpbiIsICJjcm9zc19vcmlnaW4iXSkKLWRlZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lv
biwgZG9tYWluKToKK2RlZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCBpZnJh
bWUsIGRvbWFpbik6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoInswfXsxfSIuZm9ybWF0KFJF
RkVSRU5DRV9TVFlMRSwgUkVGRVJFTkNFX0NPTlRFTlQpKQogCiAgICAgcmVzcG9uc2UgPSB0YWtl
X3NjcmVlbnNob3Qoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9z
Y3JlZW5zaG90LnB5CmluZGV4IGQ2MTMwOTE5MTY3YS4uOWU3MWE2MzNjNzA4IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVu
c2hvdC9zY3JlZW5zaG90LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkKQEAgLTEsNiArMSw1IEBA
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRf
cG5nLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmltYWdlIGltcG9ydCBwbmdf
ZGltZW5zaW9ucwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZy
b20gLiBpbXBvcnQgdmlld3BvcnRfZGltZW5zaW9ucwogCkBAIC0xNSw3ICsxNCw3IEBAIGRlZiB0
ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9u
b19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAKICAgICByZXNwb25zZSA9IHRha2Vfc2NyZWVu
c2hvdChzZXNzaW9uKQpAQCAtMjUsNyArMjQsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250
ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0IHBuZ19kaW1lbnNpb25zKHZh
bHVlKSA9PSB2aWV3cG9ydF9kaW1lbnNpb25zKHNlc3Npb24pCiAKIAotZGVmIHRlc3RfZm9ybWF0
X2FuZF9kaW1lbnNpb25zKHNlc3Npb24pOgorZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25z
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQog
CiAgICAgcmVzcG9uc2UgPSB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90
L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvdGFrZV9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQppbmRleCBhZDllMzY5NTE0OGQu
LjdkNTdmOGYyNzE2YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3Vz
ZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfcG5nLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKQEAgLTEy
LDcgKzExLDcgQEAgZGVmIHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKIApAQCAtMjks
NyArMjgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC00NCw3ICs0Myw3IEBAIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlh
bG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439024</attachid>
            <date>2021-09-23 01:48:43 -0700</date>
            <delta_ts>2021-09-23 04:20:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-tests.diff</filename>
            <type>text/plain</type>
            <size>806419</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxODg1
NmNkYTNmYjguLmFiMWNlZTBlNzNhMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTIyICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViRHJpdmVyXSBV
cGRhdGUgdzNjIGFuZCBzZWxlbml1bSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHM6IFJ1biB3
aXRoIHB5dGhvbjMKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5OiBVc2Ug
YSBuZXdlciB2ZXJzaW9uIG9mIHB5dGVzdCBhbmQgaXRzIGRlcGVuZGVuY2llcyB0byBtYXRjaCB3
aGF0IHRlc3RzIGV4cGVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90
ZXN0cy9weXRlc3RfcnVubmVyLnB5OgorICAgICAgICAoY29sbGVjdCk6IFVzZSBjb250ZXh0bGli
IHRvIHJlZGlyZWN0IHN0ZG91dCB0byAvZGV2L251bGwgd2hpbGUgY29sbGVjdGluZyB0ZXN0cy4K
KyAgICAgICAgKHJ1bik6IFVzZSBFeGl0Q29kZSBuZXcgZW51bSBhZGRlZCB0byBweXRlc3QuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVu
aXVtX2V4ZWN1dG9yLnB5OgorICAgICAgICAoV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvci5fX2lu
aXRfXyk6IERvIG5vdCBlbmNvZGUgcGF0aHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5OgorICAgICAg
ICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLmNvbGxlY3RfdGVzdHMpOiBVc2UgaXRlbXMo
KSBpbnN0ZWFkIG9mIGl0ZXJpdGVtcygpIHRoYXQgZG9lc24ndCBleGlzdCBpbiBweXRob24zLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2Nf
ZXhlY3V0b3IucHk6CisgICAgICAgIChXZWJLaXREcml2ZXJTZXJ2ZXIuX19pbml0X18pOgorICAg
ICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX19pbml0X18pOgorICAgICAgICAoV2ViRHJpdmVy
VzNDRXhlY3V0b3Iuc2V0dXApOgorICAgICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX3J1bm5l
cik6CisKIDIwMjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4MjA4Mik6IFtHVEtdIFRlc3RzIHRpbWVvdXQg
d2hlbiB1c2luZyB4dmZiIGFmdGVyIHIyODIwODIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
cnVuLXdlYmRyaXZlci10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10ZXN0cwpp
bmRleCBmNDkxNzQ5NjNmOGUuLmUyNDY4NDM0NTNmYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy9ydW4td2ViZHJpdmVyLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10
ZXN0cwpAQCAtMSw0ICsxLDQgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uMwogCiAjIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgogIwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvX19pbml0X18ucHkKaW5kZXggZWI2ODBlNWE0ODljLi40MjZjNDI4NGQ0ZDQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weQpAQCAtMzUsNiArMzUsNyBAQCBBdXRvSW5zdGFs
bC5zZXRfZGlyZWN0b3J5KG9zLnBhdGguam9pbihsaWJyYXJpZXMsICdhdXRvaW5zdGFsbGVkJywg
J3B5dGhvbi17fScuZgogCiBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA1KToKICAgICBBdXRv
SW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdweWxpbnQnLCBWZXJzaW9uKDIsIDYsIDApKSkKKyAg
ICBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCd3ZWJzb2NrZXRzJywgVmVyc2lvbig4LCAx
KSkpCiBlbGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDIsIDcpIGFuZCBzeXMudmVyc2lvbl9pbmZv
IDwgKDMsKToKICAgICBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdweWxpbnQnLCBWZXJz
aW9uKDAsIDI4LCAwKSkpCiAgICAgQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbG9naWxh
Yi5jb21tb24nLCBWZXJzaW9uKDAsIDU4LCAxKSwgcHlwaV9uYW1lPSdsb2dpbGFiLWNvbW1vbics
IGFsaWFzZXM9Wydsb2dpbGFiJ10pKQpAQCAtNTMsMTYgKzU0LDE3IEBAIEF1dG9JbnN0YWxsLnJl
Z2lzdGVyKFBhY2thZ2UoJ2Z1bmNzaWdzJywgVmVyc2lvbigxLCAwLCAyKSkpCiBBdXRvSW5zdGFs
bC5yZWdpc3RlcihQYWNrYWdlKCdpbXBvcnRsaWJfbWV0YWRhdGEnLCBWZXJzaW9uKDEsIDcsIDAp
KSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2dlbnNoaScsIFZlcnNpb24oMCwgNywg
MyksIHB5cGlfbmFtZT0nR2Vuc2hpJykpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdo
dG1sNWxpYicsIFZlcnNpb24oMSwgMSkpKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgn
aW5pY29uZmlnJywgVmVyc2lvbigxLCAxLCAxKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNr
YWdlKCdtZWNoYW5pemUnLCBWZXJzaW9uKDAsIDQsIDUpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVy
KFBhY2thZ2UoJ21vcmVfaXRlcnRvb2xzJywgVmVyc2lvbig0LCAyLCAwKSwgcHlwaV9uYW1lPSdt
b3JlLWl0ZXJ0b29scycpKQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW96cHJvY2Vz
cycsIFZlcnNpb24oMSwgMiwgMCkpKQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW96
bG9nJywgVmVyc2lvbig2LCAxKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb3pw
cm9jZXNzJywgVmVyc2lvbigxLCAzLCAwKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCdtb3psb2cnLCBWZXJzaW9uKDcsIDEsIDApLCB3aGVlbD1UcnVlKSkKIEF1dG9JbnN0YWxsLnJl
Z2lzdGVyKFBhY2thZ2UoJ21venRlcm0nLCBWZXJzaW9uKDEsIDAsIDApKSkKLUF1dG9JbnN0YWxs
LnJlZ2lzdGVyKFBhY2thZ2UoJ3BsdWdneScsIFZlcnNpb24oMCwgNSwgMikpKQorQXV0b0luc3Rh
bGwucmVnaXN0ZXIoUGFja2FnZSgncGx1Z2d5JywgVmVyc2lvbigwLCAxMywgMSkpKQogQXV0b0lu
c3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHknLCBWZXJzaW9uKDEsIDUsIDIpKSkKK0F1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3B5dGVzdF9hc3luY2lvJywgVmVyc2lvbigwLCAxNCksIHB5
cGlfbmFtZT0ncHl0ZXN0LWFzeW5jaW8nKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2Uo
J3B5dGVzdF90aW1lb3V0JywgVmVyc2lvbigxLCA0LCAyKSwgcHlwaV9uYW1lPSdweXRlc3QtdGlt
ZW91dCcpKQotIyBQeXRlc3QgaGVsZCB0byAzLnggZHVlIHRvIFdQVCB3ZWJkcml2ZXIgY29tcGF0
aWJpbGl0eQotQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVyc2lvbigz
LCA2LCAyKSwgaW1wbGljaXRfZGVwcz1bJ3B5dGVzdF90aW1lb3V0J10pKQorQXV0b0luc3RhbGwu
cmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVyc2lvbig2LCAxLCAyKSwgaW1wbGljaXRfZGVw
cz1bJ3B5dGVzdF9hc3luY2lvJywgJ3B5dGVzdF90aW1lb3V0J10pKQogQXV0b0luc3RhbGwucmVn
aXN0ZXIoUGFja2FnZSgncHljb2Rlc3R5bGUnLCBWZXJzaW9uKDIsIDUsIDApKSkKIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3NjYW5kaXInLCBWZXJzaW9uKDEsIDEwLCAwKSkpCiBBdXRv
SW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdzb3Vwc2lldmUnLCBWZXJzaW9uKDEsIDksIDYpKSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVz
dF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRl
c3RfcnVubmVyLnB5CmluZGV4IDBlYzY1Zjk0YmZhYy4uZjFlNDE0ODUyMmIxIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRlc3RfcnVubmVyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5u
ZXIucHkKQEAgLTIwLDYgKzIwLDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
K2ltcG9ydCBjb250ZXh0bGliCiBpbXBvcnQgZXJybm8KIGltcG9ydCBvcwogaW1wb3J0IHNodXRp
bApAQCAtMjksNyArMzAsNyBAQCBpbXBvcnQgdGVtcGZpbGUKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi53ZWJraXRfZmluZGVyIGltcG9ydCBXZWJLaXRGaW5kZXIKIGltcG9ydCBweXRlc3QKLWZyb20g
X3B5dGVzdC5tYWluIGltcG9ydCBFWElUX0lOVEVSTkFMRVJST1IKK2Zyb20gX3B5dGVzdC5jb25m
aWcgaW1wb3J0IEV4aXRDb2RlCiAKIAogY2xhc3MgVGVtcG9yYXJ5RGlyZWN0b3J5KG9iamVjdCk6
CkBAIC0xNjgsMTYgKzE2OSwxNCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTWFya2VyKG9iamVj
dCk6CiAKIGRlZiBjb2xsZWN0KGRpcmVjdG9yeSwgYXJncywgaWdub3JlX3BhcmFtPU5vbmUpOgog
ICAgIGNvbGxlY3RfcmVjb3JkZXIgPSBDb2xsZWN0UmVjb3JkZXIoaWdub3JlX3BhcmFtKQotICAg
IHN0ZG91dCA9IHN5cy5zdGRvdXQKLSAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3diJykgYXMg
ZGV2bnVsbDoKLSAgICAgICAgc3lzLnN0ZG91dCA9IGRldm51bGwKLSAgICAgICAgd2l0aCBUZW1w
b3JhcnlEaXJlY3RvcnkoKSBhcyBjYWNoZV9kaXJlY3Rvcnk6Ci0gICAgICAgICAgICBjbWQgPSBb
Jy0tY29sbGVjdC1vbmx5JywKLSAgICAgICAgICAgICAgICAgICAnLS1iYXNldGVtcD0lcycgJSBj
YWNoZV9kaXJlY3RvcnldCi0gICAgICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCi0gICAgICAgICAg
ICBjbWQuYXBwZW5kKGRpcmVjdG9yeSkKLSAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1
Z2lucz1bY29sbGVjdF9yZWNvcmRlcl0pCi0gICAgc3lzLnN0ZG91dCA9IHN0ZG91dAorICAgIHdp
dGggb3Blbihvcy5kZXZudWxsLCAndycpIGFzIGY6CisgICAgICAgIHdpdGggY29udGV4dGxpYi5y
ZWRpcmVjdF9zdGRvdXQoZik6CisgICAgICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgp
IGFzIGNhY2hlX2RpcmVjdG9yeToKKyAgICAgICAgICAgICAgICBjbWQgPSBbJy0tY29sbGVjdC1v
bmx5JywKKyAgICAgICAgICAgICAgICAgICAgICAgJy0tYmFzZXRlbXAnLCBjYWNoZV9kaXJlY3Rv
cnldCisgICAgICAgICAgICAgICAgY21kLmV4dGVuZChhcmdzKQorICAgICAgICAgICAgICAgIGNt
ZC5hcHBlbmQoZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1
Z2lucz1bY29sbGVjdF9yZWNvcmRlcl0pCiAgICAgcmV0dXJuIGNvbGxlY3RfcmVjb3JkZXIudGVz
dHMKIAogCkBAIC0xOTIsMTYgKzE5MSwxNiBAQCBkZWYgcnVuKHBhdGgsIGFyZ3MsIHRpbWVvdXQs
IGVudiwgZXhwZWN0YXRpb25zLCBpZ25vcmVfcGFyYW09Tm9uZSk6CiAgICAgd2l0aCBUZW1wb3Jh
cnlEaXJlY3RvcnkoKSBhcyBjYWNoZV9kaXJlY3Rvcnk6CiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIGNtZCA9IFsnLXZ2JywKLSAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJlPW5vJywKLSAg
ICAgICAgICAgICAgICAgICAnLS1iYXNldGVtcD0lcycgJSBjYWNoZV9kaXJlY3RvcnksCisgICAg
ICAgICAgICAgICAgICAgJy0tY2FwdHVyZScsICdubycsCisgICAgICAgICAgICAgICAgICAgJy0t
YmFzZXRlbXAnLCBjYWNoZV9kaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgJy0tc2hvd2xv
Y2FscycsCi0gICAgICAgICAgICAgICAgICAgJy0tdGltZW91dD0lcycgJSB0aW1lb3V0LAorICAg
ICAgICAgICAgICAgICAgICctLXRpbWVvdXQnLCBzdHIodGltZW91dCksCiAgICAgICAgICAgICAg
ICAgICAgJy1wJywgJ25vOmNhY2hlcHJvdmlkZXInXQogICAgICAgICAgICAgY21kLmV4dGVuZChh
cmdzKQogICAgICAgICAgICAgY21kLmFwcGVuZChwYXRoKQogICAgICAgICAgICAgcmVzdWx0ID0g
cHl0ZXN0Lm1haW4oY21kLCBwbHVnaW5zPVtoYXJuZXNzX3JlY29yZGVyLCBzdWJ0ZXN0c19yZWNv
cmRlciwgZXhwZWN0YXRpb25zX21hcmtlcl0pCiAKLSAgICAgICAgICAgIGlmIHJlc3VsdCA9PSBF
WElUX0lOVEVSTkFMRVJST1I6CisgICAgICAgICAgICBpZiByZXN1bHQgPT0gRXhpdENvZGUuSU5U
RVJOQUxfRVJST1I6CiAgICAgICAgICAgICAgICAgaGFybmVzc19yZWNvcmRlci5vdXRjb21lID0g
KCdFUlJPUicsIE5vbmUpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAg
ICAgIGhhcm5lc3NfcmVjb3JkZXIub3V0Y29tZSA9ICgnRVJST1InLCBzdHIoZSkpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfc2Vs
ZW5pdW1fZXhlY3V0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0
cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHkKaW5kZXggZmJkNzYyNmY1NTllLi41ZTU3
NDgzZGE2MjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rl
c3RzL3dlYmRyaXZlcl9zZWxlbml1bV9leGVjdXRvci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHkKQEAg
LTQwLDggKzQwLDggQEAgY2xhc3MgV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvcihvYmplY3QpOgog
ICAgICAgICBzZWxmLl9lbnYgPSBlbnYKICAgICAgICAgc2VsZi5fZW52LnVwZGF0ZShkcml2ZXIu
YnJvd3Nlcl9lbnYoKSkKIAotICAgICAgICBzZWxmLl9hcmdzID0gWyctLWRyaXZlcj0lcycgJSBz
ZWxmLl9kcml2ZXJfbmFtZSwgJy0tZHJpdmVyLWJpbmFyeT0lcycgJSBkcml2ZXIuYmluYXJ5X3Bh
dGgoKS5lbmNvZGUoKV0KLSAgICAgICAgYnJvd3Nlcl9wYXRoID0gZHJpdmVyLmJyb3dzZXJfcGF0
aCgpLmVuY29kZSgpCisgICAgICAgIHNlbGYuX2FyZ3MgPSBbJy0tZHJpdmVyPSVzJyAlIHNlbGYu
X2RyaXZlcl9uYW1lLCAnLS1kcml2ZXItYmluYXJ5PSVzJyAlIGRyaXZlci5iaW5hcnlfcGF0aCgp
XQorICAgICAgICBicm93c2VyX3BhdGggPSBkcml2ZXIuYnJvd3Nlcl9wYXRoKCkKICAgICAgICAg
aWYgYnJvd3Nlcl9wYXRoOgogICAgICAgICAgICAgc2VsZi5fYXJncy5leHRlbmQoWyctLWJyb3dz
ZXItYmluYXJ5PSVzJyAlIGJyb3dzZXJfcGF0aF0pCiAgICAgICAgIGJyb3dzZXJfYXJncyA9IGRy
aXZlci5icm93c2VyX2FyZ3MoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5CmluZGV4IDY1
YzA0ZTViZjMzMC4uZmJjZDJmZDdjNDY4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5
CkBAIC0xNjUsNSArMTY1LDUgQEAgY2xhc3MgV2ViRHJpdmVyVGVzdFJ1bm5lcihvYmplY3QpOgog
ICAgICAgICBpZiBkaXJlY3RvcnkgYW5kIG5vdCBvcy5wYXRoLmV4aXN0cyhkaXJlY3RvcnkpOgog
ICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlyZWN0b3J5KQogCi0gICAgICAgIHdpdGggb3Blbihv
dXRwdXRfcGF0aCwgJ3diJykgYXMgZnA6CisgICAgICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwg
J3cnKSBhcyBmcDoKICAgICAgICAgICAgIGpzb24uZHVtcChqc29uX3Jlc3VsdHMsIGZwKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVy
X3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5CmluZGV4IGIwYmVlYTBm
OTE0Mi4uMDY1MTJlNGZkNzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dl
YmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVy
X3NlbGVuaXVtLnB5CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RSdW5uZXJT
ZWxlbml1bShvYmplY3QpOgogICAgICAgICAjIENvbGxlY3RlZCB0ZXN0cyBhcmUgcmVsYXRpdmUg
dG8gdGVzdCBkaXJlY3RvcnkuCiAgICAgICAgIGJhc2VfZGlyID0gb3MucGF0aC5qb2luKHNlbGYu
X3Rlc3RzX2Rpciwgb3MucGF0aC5kaXJuYW1lKHJlbGF0aXZlX3Rlc3RzX2RpcikpCiAgICAgICAg
IGNvbGxlY3RlZF90ZXN0cyA9IHt9Ci0gICAgICAgIGZvciB0ZXN0LCBzdWJ0ZXN0cyBpbiBleGVj
dXRvci5jb2xsZWN0KG9zLnBhdGguam9pbihzZWxmLl90ZXN0c19kaXIsIHJlbGF0aXZlX3Rlc3Rz
X2RpcikpLml0ZXJpdGVtcygpOgorICAgICAgICBmb3IgdGVzdCwgc3VidGVzdHMgaW4gZXhlY3V0
b3IuY29sbGVjdChvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyLCByZWxhdGl2ZV90ZXN0c19k
aXIpKS5pdGVtcygpOgogICAgICAgICAgICAgY29sbGVjdGVkX3Rlc3RzW29zLnBhdGguam9pbihi
YXNlX2RpciwgdGVzdCldID0gc3VidGVzdHMKICAgICAgICAgc2VsZW5pdW1fdGVzdHMgPSBbXQog
ICAgICAgICBpZiBub3QgdGVzdHM6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVjdXRvci5weQppbmRl
eCBjYzJkMDc1YmMwYWYuLjE4NDNkZTU1Mzc3OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVjdXRvci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1
dG9yLnB5CkBAIC0xMTUsOCArMTE1LDggQEAgY2xhc3MgV2ViS2l0RHJpdmVyU2VydmVyKFdlYkRy
aXZlclNlcnZlcik6CiAgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAnLycKICAgICB0ZXN0X2VudiA9
IE5vbmUKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCBwb3J0
PU5vbmUsIGJhc2VfcGF0aD0nJywgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVy
Ll9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNl
X3BhdGgsIGFyZ3M9YXJncywgZW52PXNlbGYudGVzdF9lbnYpCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGxvZ2dlciwgYmluYXJ5PU5vbmUsIHBvcnQ9Tm9uZSwgYmFzZV9wYXRoPScnLCBlbnY9Tm9u
ZSwgYXJncz1Ob25lKToKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNlX3BhdGgsIGVudj1zZWxmLnRl
c3RfZW52LCBhcmdzPWFyZ3MpCiAKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAg
ICByZXR1cm4gW3NlbGYuYmluYXJ5LCAnLS1wb3J0PSVzJyAlIHN0cihzZWxmLnBvcnQpXSArIHNl
bGYuX2FyZ3MKQEAgLTEzNSw4ICsxMzUsOCBAQCBjbGFzcyBXZWJEcml2ZXJXM0NFeGVjdXRvcihX
ZHNwZWNFeGVjdXRvcik6CiAgICAgICAgIHNlcnZlcl9jb25maWcgPSB7J2Jyb3dzZXJfaG9zdCc6
IHNlcnZlci5ob3N0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvbWFpbnMnOiB7Jyc6
IHsnJzogc2VydmVyLmhvc3QoKX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2FsdCc6eyAnJzogJzEyNy4wLjAuMSd9fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAn
cG9ydHMnOiB7J2h0dHAnOiBbc3RyKHNlcnZlci5odHRwX3BvcnQoKSldLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHMnOiBbc3RyKHNlcnZlci5odHRwc19wb3J0KCkp
XX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnRzJzogeydodHRwJzogW3NlcnZlci5o
dHRwX3BvcnQoKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwcyc6
IFtzZXJ2ZXIuaHR0cHNfcG9ydCgpXX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvY19y
b290Jzogc2VydmVyLmRvY3VtZW50X3Jvb3QoKX0KICAgICAgICAgc2VsZi5ydW5uZXIgPSBUZXN0
UnVubmVyKCkKICAgICAgICAgV2RzcGVjRXhlY3V0b3IuX19pbml0X18oc2VsZiwgc2VsZi5ydW5u
ZXIubG9nZ2VyLCBkcml2ZXIuYnJvd3Nlcl9uYW1lKCksIHNlcnZlcl9jb25maWcsIGRyaXZlci5i
aW5hcnlfcGF0aCgpLCBOb25lLCBjYXBhYmlsaXRpZXM9ZHJpdmVyLmNhcGFiaWxpdGllcygpKQpA
QCAtMTQ3LDEzICsxNDcsMTMgQEAgY2xhc3MgV2ViRHJpdmVyVzNDRXhlY3V0b3IoV2RzcGVjRXhl
Y3V0b3IpOgogICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUgPSBRdWV1ZSgpCiAKICAgICBkZWYg
c2V0dXAoc2VsZik6Ci0gICAgICAgIHNlbGYucHJvdG9jb2wuc2V0dXAoc2VsZi5ydW5uZXIpCisg
ICAgICAgIHN1cGVyKFdlYkRyaXZlclczQ0V4ZWN1dG9yLCBzZWxmKS5zZXR1cChzZWxmLnJ1bm5l
cikKICAgICAgICAgYXJncyA9IChzZWxmLl90ZXN0X3F1ZXVlLAogICAgICAgICAgICAgICAgIHNl
bGYuX3Jlc3VsdF9xdWV1ZSwKICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnNlc3Npb25f
Y29uZmlnWydob3N0J10sCiAgICAgICAgICAgICAgICAgc3RyKHNlbGYucHJvdG9jb2wuc2Vzc2lv
bl9jb25maWdbJ3BvcnQnXSksCiAgICAgICAgICAgICAgICAganNvbi5kdW1wcyhzZWxmLnByb3Rv
Y29sLnNlc3Npb25fY29uZmlnWydjYXBhYmlsaXRpZXMnXSksCi0gICAgICAgICAgICAgICAganNv
bi5kdW1wcyhzZWxmLnNlcnZlcl9jb25maWcpLAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy
X2NvbmZpZywKICAgICAgICAgICAgICAgICBzZWxmLl90aW1lb3V0LAogICAgICAgICAgICAgICAg
IHNlbGYuX2V4cGVjdGF0aW9ucykKICAgICAgICAgc2VsZi5fcHJvY2VzcyA9IFByb2Nlc3ModGFy
Z2V0PVdlYkRyaXZlclczQ0V4ZWN1dG9yLl9ydW5uZXIsIGFyZ3M9YXJncykKQEAgLTE3NCwxMyAr
MTc0LDE4IEBAIGNsYXNzIFdlYkRyaXZlclczQ0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKICAg
ICAgICAgICAgIGlmIHRlc3QgPT0gJ1RFQVJET1dOJzoKICAgICAgICAgICAgICAgICBicmVhawog
Ci0gICAgICAgICAgICBlbnYgPSB7J1dEX0hPU1QnOiBob3N0LAotICAgICAgICAgICAgICAgICAg
ICdXRF9QT1JUJzogcG9ydCwKLSAgICAgICAgICAgICAgICAgICAnV0RfQ0FQQUJJTElUSUVTJzog
Y2FwYWJpbGl0aWVzLAotICAgICAgICAgICAgICAgICAgICdXRF9TRVJWRVJfQ09ORklHJzogc2Vy
dmVyX2NvbmZpZ30KLSAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJpdmVyU2VydmVyLnRl
c3RfZW52KQotICAgICAgICAgICAgYXJncyA9IFsnLS1zdHJpY3QnLCAnLXAnLCAnbm86bW96bG9n
J10KLSAgICAgICAgICAgIHJlc3VsdF9xdWV1ZS5wdXQocHl0ZXN0X3J1bm5lci5ydW4odGVzdCwg
YXJncywgdGltZW91dCwgZW52LCBleHBlY3RhdGlvbnMpKQorICAgICAgICAgICAgd2l0aCBweXRl
c3RfcnVubmVyLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9yeToKKyAgICAg
ICAgICAgICAgICBzZXJ2ZXJfY29uZmlnX3BhdGggPSBvcy5wYXRoLmpvaW4oY2FjaGVfZGlyZWN0
b3J5LCAnd2Rfc2VydmVyX2NvbmZpZy5qc29uJykKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4o
c2VydmVyX2NvbmZpZ19wYXRoLCAndycpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgIGpzb24u
ZHVtcChzZXJ2ZXJfY29uZmlnLCBmKQorCisgICAgICAgICAgICAgICAgZW52ID0geydXRF9IT1NU
JzogaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ1dEX1BPUlQnOiBwb3J0LAorICAgICAg
ICAgICAgICAgICAgICAgICAnV0RfQ0FQQUJJTElUSUVTJzogY2FwYWJpbGl0aWVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAnV0RfU0VSVkVSX0NPTkZJR19GSUxFJzogc2VydmVyX2NvbmZpZ19w
YXRofQorICAgICAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJpdmVyU2VydmVyLnRlc3Rf
ZW52KQorICAgICAgICAgICAgICAgIGFyZ3MgPSBbJy0tc3RyaWN0JywgJy1wJywgJ25vOm1vemxv
ZyddCisgICAgICAgICAgICAgICAgcmVzdWx0X3F1ZXVlLnB1dChweXRlc3RfcnVubmVyLnJ1bih0
ZXN0LCBhcmdzLCB0aW1lb3V0LCBlbnYsIGV4cGVjdGF0aW9ucykpCiAKICAgICBkZWYgcnVuKHNl
bGYsIHRlc3QpOgogICAgICAgICBzZWxmLl90ZXN0X3F1ZXVlLnB1dCh0ZXN0KQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nIGIvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDkwMmI5MmJmZWY5Yi4uNmQ0NTgwOGY1MGVmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXZWJEcml2ZXJdIFVwZGF0ZSB3M2MgYW5kIHNlbGVuaXVtIHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA1NTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWw6CisgICAgICAgICog
aW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbjoKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxl
bml1bS9weS86CisgICAgICAgICogaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb246CisgICAgICAg
ICogaW1wb3J0ZWQvdzNjL3Rvb2xzLzoKKyAgICAgICAgKiBpbXBvcnRlZC93M2Mvd2ViZHJpdmVy
LzoKKwogMjAyMS0wOC0yMiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbV1BFXVtXZWJEcml2ZXJdIEJhc2ljIGZ1bGxzY3JlZW4gc3VwcG9ydCBmb3IgdGhlIGhl
YWRsZXNzIGJhY2tlbmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMuanNvbiBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgppbmRleCA0NTY2
N2Y5NzJmMDMuLjk0MjlhNDIyMGNiNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvVGVzdEV4
cGVjdGF0aW9ucy5qc29uCisrKyBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNv
bgpAQCAtMjkxLDYgKzI5MSwzMCBAQAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0
X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3
cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0K
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2No
ZW1lW2Fib3V0XSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9fQorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9zY2hlbWVbYmxvYl0i
OiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJ
TCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW2RhdGFdIjogeworICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInRl
c3RfY29va2llX3Vuc3VwcG9ydGVkX3NjaGVtZVtmaWxlXSI6IHsKKyAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIzMDYxNiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91
bnN1cHBvcnRlZF9zY2hlbWVbZnRwXSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9
fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9z
Y2hlbWVbamF2YXNjcmlwdF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1l
W3dlYnNvY2tldF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW3NlY3Vy
ZSB3ZWJzb2NrZXRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJz
dGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9LApAQCAtNzQ0LDcgKzc2OCwxMCBAQAogICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMTgwNjQ1In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rf
bm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAi
fX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAgICAgICAgICAgICJ3
cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifSwK
KyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtp
dC5vcmcvYi8yMTI5NTAifX0KQEAgLTc2Myw3ICs3OTAsMTAgQEAKICAgICAiaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NsaWNrLnB5IjogewogICAgICAgICAic3Vi
dGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsK
LSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjog
eyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3Np
bmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtODAwLDEz
ICs4MzAsMTMgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudC9maW5kLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7Ci0gICAgICAgICAg
ICAidGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0WzxhIGhyZWY9Iz5saW5rPGJyPnRleHQ8L2E+
LWxpbmtcbnRleHRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4
dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPi1saW5rXFxudGV4dF0iOiB7CiAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndl
YmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9m
aW5kX2VsZW1lbnRfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZSc+bGluayB0ZXh0PC9hPi1MSU5LIFRFWFRdIjogewogICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfZmluZF9lbGVt
ZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4t
a1xudF0iOiB7CisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3Rl
eHRbPGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXFxudF0iOiB7CiAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjog
IndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVz
dF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRy
YW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4tTElOS10iOiB7CkBAIC04
MjIsMTMgKzg1MiwxMyBAQAogICAgIH0sCiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50cy9maW5kLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7Ci0gICAg
ICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50
ZXh0PC9hPi1saW5rXG50ZXh0XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNf
bGlua190ZXh0WzxhIGhyZWY9Iz5saW5rPGJyPnRleHQ8L2E+LWxpbmtcXG50ZXh0XSI6IHsKICAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICJ0ZXN0X2ZpbmRfZWxlbWVudHNfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFu
c2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPi1MSU5LIFRFWFRdIjogewogICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3Rf
ZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJy
PnRleHQ8L2E+LWtcbnRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19wYXJ0
aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8L2E+LWtcXG50XSI6
IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jIHN0
eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4tTElO
S10iOiB7CkBAIC04NDQsMTMgKzg3NCwxMyBAQAogICAgIH0sCiAgICAgImltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5weSI6IHsKICAg
ICAgICAgInN1YnRlc3RzIjogewotICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19saW5r
X3RleHRbPGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4tbGlua1xudGV4dF0iOiB7CisgICAgICAg
ICAgICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0
PC9hPi1saW5rXFxudGV4dF0iOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8
YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4t
TElOSyBURVhUXSI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRb
PGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXG50XSI6IHsKKyAgICAgICAgICAg
ICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jPnBhcnRpYWwg
bGluazxicj50ZXh0PC9hPi1rXFxudF0iOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQi
fX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX3BhcnRp
YWxfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+
cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJTktdIjogewpAQCAtODY5LDEzICs4OTksMTMgQEAKICAg
ICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9t
X2VsZW1lbnQvZmluZC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewotICAgICAgICAgICAg
InRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPi1s
aW5rXG50ZXh0XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3RleHRb
PGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4tbGlua1xcbnRleHRdIjogewogICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3RfZmlu
ZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBl
cmNhc2UnPmxpbmsgdGV4dDwvYT4tTElOSyBURVhUXSI6IHsKICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVu
dF9wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8L2E+LWtc
bnRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0
WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xcbnRdIjogewogICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rf
ZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFu
c2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJTktdIjogewpAQCAtOTM1
LDcgKzk2NSwxMCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
c2VuZF9rZXlzL3NlbmRfa2V5cy5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewogICAgICAg
ICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAg
ICAgICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8yMTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTExNTIsNyArMTE4NSwxMCBAQAogICAg
ICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0ZS9nZXQu
cHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9i
cm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjog
eyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CisgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJz
dGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn0sCisgICAgICAg
ICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0IjogewogICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2Iv
MjEyOTUwIn19CkBAIC0xMTYzLDcgKzExOTksMTAgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5IjogewogICAgICAgICAic3Vi
dGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsK
LSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjog
eyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3Np
bmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTE3NCw3
ICsxMjEzLDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfcHJvcGVydHkvZ2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAg
ICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAg
ICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIx
Mjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTE5Niw3ICsxMjM4LDEwIEBACiAgICAgImlt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5Ijog
ewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3Np
bmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVz
IjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAg
ICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2Iv
MjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
InRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1
MCJ9fQpAQCAtMTIxOCw3ICsxMjYzLDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsK
ICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAg
ICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6
IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0
IjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZB
SUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzY4LDcgKzE0MTYsMTAg
QEAKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzIwNTkyMyJ9fQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAg
ICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJ
TCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0Ijogewog
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzc5LDcgKzE0MzAsMTAgQEAKICAg
ICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3NlbGVj
dGVkLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190
b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7Indw
ZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQor
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAg
ICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIxMjk1MCJ9fQpAQCAtMTQ0Miw3ICsxNDk2LDEwIEBACiAgICAgImltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkiOiB7CiAgICAgICAgICJz
dWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0Ijog
ewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjA1OTk0In19CisgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogeworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjA1OTk0In0sCisgICAgICAgICAgICAgICAgICAgICJndGsi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0sCkBAIC0xNDk1
LDUgKzE1NTIsMjkgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L21pbmltaXplX3dpbmRvdy9taW5pbWl6ZS5weSIgOiB7CiAgICAgICAgICJleHBlY3RlZCI6IHsg
IndwZSI6IHsgInN0YXR1cyI6IFsiU0tJUCJdIH0gfQorICAgIH0sCisgICAgImltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weSI6
IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRz
LnB5IjogeworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAiaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvZmluZC5w
eSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L3VzZXJfcHJv
bXB0cy5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJT
S0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvZ2V0LnB5Ijog
eworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkiOiB7
CisgICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJdLCAiYnVn
IjogIndlYmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICB9LAorICAgICJpbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2JpZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weSI6IHsKKyAgICAgICAgImV4
cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIzMDYxNSJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
bmV3X3Nlc3Npb24vd2Vic29ja2V0X3VybC5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAi
YWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNSJ9
fQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sCmluZGV4IGZj
YWMyNTJlODk5YS4uMTY5MGFkMDdkZDc5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQ
YWdlLmh0bWwKQEAgLTg2LDcgKzg2LDcgQEAKICAgPC9kaXY+CiAKIDwvZGl2PgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKKwogPGRpdiBpZD0iZm9ybWFnZWRkb24iPgogICAgIDxm
b3JtIGFjdGlvbj0iIyI+CiAgICAgICAgIEtleSBVcDogPGlucHV0IHR5cGU9InRleHQiIGlkPSJr
ZXlVcCIgb25rZXl1cD0iamF2YXNjcmlwdDp1cGRhdGVDb250ZW50KHRoaXMpIi8+PGJyLz4KQEAg
LTE1MSwxNSArMTUxLDE1IEBACiAgICAgICAgICAgIC8+CiAKICAgICA8aW5wdXQgaWQ9ImNoYW5n
ZWFibGUiIG5hbWU9ImNoYW5nZWFibGUiIG9uZm9jdXM9ImFwcGVuZE1lc3NhZ2UoJ2ZvY3VzJyki
IG9uY2hhbmdlPSJhcHBlbmRNZXNzYWdlKCdjaGFuZ2UnKSIgb25ibHVyPSJhcHBlbmRNZXNzYWdl
KCdibHVyJykiLz4KLSAgICAgICAgICAgCi0gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJw
bGFpbkJ1dHRvbiIgCisKKyAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InBsYWluQnV0dG9u
IgogICAgIAkJb25mb2N1cz0iYXBwZW5kTWVzc2FnZSgnZm9jdXMnKSIKICAgICAgICAgICAgCW9u
a2V5ZG93bj0iYXBwZW5kTWVzc2FnZSgna2V5ZG93bicpIgogICAgICAgICAgICAJb25rZXlwcmVz
cz0iYXBwZW5kTWVzc2FnZSgna2V5cHJlc3MnKSIKICAgICAgICAgICAgCW9ua2V5dXA9ImFwcGVu
ZE1lc3NhZ2UoJ2tleXVwJykiCiAgICAgICAgICAgIAlvbmJsdXI9ImFwcGVuZE1lc3NhZ2UoJ2Js
dXInKSIKICAgICAgICAgICAgCW9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NsaWNrJykiCi0gICAg
ICAgICAgIAlvbm1vdXNlZG93bj0iYXBwZW5kTWVzc2FnZSgnbW91c2Vkb3duICcpIiAKKyAgICAg
ICAgICAgCW9ubW91c2Vkb3duPSJhcHBlbmRNZXNzYWdlKCdtb3VzZWRvd24gJykiCiAgICAgICAg
ICAgIAlvbm1vdXNldXA9ImFwcGVuZE1lc3NhZ2UoJ21vdXNldXAgJykiCiAgICAgICAgICAgICBv
bm1vdXNlb3Zlcj0icmVnaXN0ZXIoJ21vdXNlb3ZlciAnKSIKICAgICAgICAgICAgIG9ubW91c2Vt
b3ZlPSJyZWdpc3RlcignbW91c2Vtb3ZlICcpIgpAQCAtMTczLDcgKzE3Myw3IEBACiAgICAgPGJ1
dHRvbiB0eXBlPSJidXR0b24iIG9uY2xpY2s9InZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3N3aXRjaEZvY3VzJyk7IHZhciBjbGlja0V2ZW50ID0gZG9jdW1lbnQuY3JlYXRl
RXZlbnQoJ01vdXNlRXZlbnRzJyk7IGNsaWNrRXZlbnQuaW5pdE1vdXNlRXZlbnQoJ2NsaWNrJywg
dHJ1ZSwgdHJ1ZSwgbnVsbCwgMCwgMCwgMCwgMCwgMCxmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgMCwgZWxlbWVudCk7ZWxlbWVudC5kaXNwYXRjaEV2ZW50KGNsaWNrRXZlbnQpOyI+RG8gbWFn
aWM8L2J1dHRvbj48YnIvPgogICAgIDxsYWJlbCBpZD0ibGFiZWxGb3JDaGVja2JveCIgZm9yPSJs
YWJlbGVkQ2hlY2tib3giIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2xhYmVsY2xpY2snKSI+VG9n
Z2xlIGNoZWNrYm94PC9sYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJsYWJlbGVkQ2hl
Y2tib3giIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NoYm94Y2xpY2snKSIvPgogICA8L2Zvcm0+
Ci0gIAorCiAgIDxmb3JtIGFjdGlvbj0iamF2YXNjcmlwdFBhZ2UuaHRtbCIgaWQ9InN1Ym1pdExp
c3RlbmluZ0Zvcm0iIG9uc3VibWl0PSJhcHBlbmRNZXNzYWdlKCdmb3JtLW9uc3VibWl0ICcpOyBy
ZXR1cm4gZmFsc2U7Ij4KICAgICA8cD4KICAgICAgIDxpbnB1dCBpZD0ic3VibWl0TGlzdGVuaW5n
Rm9ybS10ZXh0IiB0eXBlPSJ0ZXh0IiBvbnN1Ym1pdD0iYXBwZW5kTWVzc2FnZSgndGV4dC1vbnN1
Ym1pdCAnKSIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgndGV4dC1vbmNsaWNrICcpOyIgLz4KQEAg
LTE5OCw3ICsxOTgsNyBAQAogICAgICAgICA8YSBocmVmPSIjIiBpZD0iaGlkZGVubGluayI+b2s8
L2E+CiAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KLSAgICAKKwogICAgIDxkaXYgc3R5bGU9InZp
c2liaWxpdHk6IGhpZGRlbjsiPgogICAgICAgPHNwYW4+CiAgICAgICAgIDxpbnB1dCBpZD0idW5j
bGlja2FibGUiIC8+CkBAIC0yNjUsNyArMjY1LDcgQEAKIAogPGEgaWQ9Im5ld193aW5kb3ciIG9u
bW91c2V1cD0id2luZG93Lm9wZW4oJ2Nsb3NlYWJsZV93aW5kb3cuaHRtbCcsICdjbG9zZV9tZScp
IiBocmVmPSIjIj5DbGljayBtZSB0byBvcGVuIGEgbmV3IHdpbmRvdzwvYT4KIAotPGEgaWQ9InRo
cm93aW5nLW1vdXNlb3ZlciIgb25tb3VzZW92ZXI9InRocm93IG5ldyBFcnJvcigpIiBocmVmPSIj
dGhyb3dpbmctbW91c2VvdmVyIj5Nb3VzZSBvdmVyIG1lIHdpbGwgdGhyb3cgYSBKUyBlcnJvcjwv
YT4KKzxhIGlkPSJ0aHJvd2luZy1tb3VzZW92ZXIiIG9ubW91c2VvdmVyPSJ0aHJvdyBuZXcgRXJy
b3IoJ0kgbGlrZSBjaGVlc2UnKSIgaHJlZj0iI3Rocm93aW5nLW1vdXNlb3ZlciI+TW91c2Ugb3Zl
ciBtZSB3aWxsIHRocm93IGEgSlMgZXJyb3I8L2E+CiAKIDxkaXYgaWQ9InBhcmVudCI+CiAgICAg
PHNwYW4gaWQ9Im1vdmFibGUiIG9ubW91c2VvdmVyPSJ2YXIgcCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdtb3ZhYmxlJyk7IGRpc3BsYXlNZXNzYWdlKCdwYXJlbnQgbWF0Y2hlcz8gJyArIChw
ICE9IGV2ZW50LnJlbGF0ZWRUYXJnZXQpKTsiPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbiBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2ltcG9ydGVyLmpzb24KaW5kZXggZDk4NWM4ZWRhYzc1Li41YmEwYzNhNWQzMDMg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpz
b24KKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbgpA
QCAtMSw2ICsxLDYgQEAKIHsKICAgICAicmVwb3NpdG9yeSI6ICJodHRwczovL2dpdGh1Yi5jb20v
U2VsZW5pdW1IUS9zZWxlbml1bS5naXQiLAotICAgICJyZXZpc2lvbiI6ICJkNGY5ZmUyMTNkZDZl
NWIxMGI4OWJlMzYwYmU2MzU3NDdlZDNlMTM4IiwKKyAgICAicmV2aXNpb24iOiAiZTNmY2Y3OTEy
MzljMGU5YmE1YzA0Njg2MDI1ZjU3OGI1NjFlY2Q2ZiIsCiAgICAgInBhdGhzX3RvX2ltcG9ydCI6
IFsKICAgICAgICAgImNvbW1vbiIsCiAgICAgICAgICJweS9jb25mdGVzdC5weSIsCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5CmluZGV4IDZkNjRm
M2ZmZTdjMC4uYjIzNThiN2Y2NWU5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9jb25mdGVzdC5weQpAQCAtMTYsMzEgKzE2LDI1IEBACiAjIHVuZGVyIHRoZSBM
aWNlbnNlLgogCiBpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHNvY2tldAogaW1w
b3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAKIGltcG9ydCBweXRlc3QK
LWZyb20gX3B5dGVzdC5za2lwcGluZyBpbXBvcnQgTWFya0V2YWx1YXRvcgogCiBmcm9tIHNlbGVu
aXVtIGltcG9ydCB3ZWJkcml2ZXIKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNp
cmVkQ2FwYWJpbGl0aWVzCiBmcm9tIHRlc3Quc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi53ZWJz
ZXJ2ZXIgaW1wb3J0IFNpbXBsZVdlYlNlcnZlcgogZnJvbSB0ZXN0LnNlbGVuaXVtLndlYmRyaXZl
ci5jb21tb24ubmV0d29yayBpbXBvcnQgZ2V0X2xhbl9pcAogCi1pZiBzeXMudmVyc2lvbl9pbmZv
WzBdID09IDM6Ci0gICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotZWxzZToK
LSAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsb3BlbgorZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBv
cnQgdXJsb3BlbgogCiBkcml2ZXJzID0gKAotICAgICdCbGFja0JlcnJ5JywKICAgICAnQ2hyb21l
JywKICAgICAnRWRnZScsCiAgICAgJ0ZpcmVmb3gnLAogICAgICdJZScsCi0gICAgJ01hcmlvbmV0
dGUnLAogICAgICdSZW1vdGUnLAogICAgICdTYWZhcmknLAogICAgICdXZWJLaXRHVEsnLApAQCAt
ODIsMTAgKzc2LDI4IEBAIGRlZiBkcml2ZXIocmVxdWVzdCk6CiAgICAgZXhjZXB0IEF0dHJpYnV0
ZUVycm9yOgogICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoaXMgdGVzdCByZXF1aXJlcyBhIC0t
ZHJpdmVyIHRvIGJlIHNwZWNpZmllZC4nKQogCisgICAgIyBza2lwIHRlc3RzIGlmIG5vdCBhdmFp
bGFibGUgb24gdGhlIHBsYXRmb3JtCisgICAgX3BsYXRmb3JtID0gcGxhdGZvcm0uc3lzdGVtKCkK
KyAgICBpZiBkcml2ZXJfY2xhc3MgPT0gIlNhZmFyaSIgYW5kIF9wbGF0Zm9ybSAhPSAiRGFyd2lu
IjoKKyAgICAgICAgcHl0ZXN0LnNraXAoIlNhZmFyaSB0ZXN0cyBjYW4gb25seSBydW4gb24gYW4g
QXBwbGUgT1MiKQorICAgIGlmIChkcml2ZXJfY2xhc3MgPT0gIkllIiBvciBkcml2ZXJfY2xhc3Mg
PT0gIkVkZ2UiKSBhbmQgX3BsYXRmb3JtICE9ICJXaW5kb3dzIjoKKyAgICAgICAgcHl0ZXN0LnNr
aXAoIklFIGFuZCBFZGdlSFRNTCBUZXN0cyBjYW4gb25seSBydW4gb24gV2luZG93cyIpCisgICAg
aWYgIldlYktpdCIgaW4gZHJpdmVyX2NsYXNzIGFuZCBfcGxhdGZvcm0gIT0gIkxpbnV4IjoKKyAg
ICAgICAgcHl0ZXN0LnNraXAoIldlYmtpdCB0ZXN0cyBjYW4gb25seSBydW4gb24gTGludXgiKQor
CiAgICAgIyBjb25kaXRpb25hbGx5IG1hcmsgdGVzdHMgYXMgZXhwZWN0ZWQgdG8gZmFpbCBiYXNl
ZCBvbiBkcml2ZXIKLSAgICByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbCA9IHJlcXVlc3Qubm9kZS5f
ZXZhbHhmYWlsIG9yIE1hcmtFdmFsdWF0b3IoCi0gICAgICAgIHJlcXVlc3Qubm9kZSwgJ3hmYWls
X3swfScuZm9ybWF0KGRyaXZlcl9jbGFzcy5sb3dlcigpKSkKLSAgICBpZiByZXF1ZXN0Lm5vZGUu
X2V2YWx4ZmFpbC5pc3RydWUoKToKKyAgICBtYXJrZXIgPSByZXF1ZXN0Lm5vZGUuZ2V0X2Nsb3Nl
c3RfbWFya2VyKCd4ZmFpbF97MH0nLmZvcm1hdChkcml2ZXJfY2xhc3MubG93ZXIoKSkpCisKKyAg
ICBpZiBtYXJrZXIgaXMgbm90IE5vbmU6CisgICAgICAgIGlmICJydW4iIGluIG1hcmtlci5rd2Fy
Z3M6CisgICAgICAgICAgICBpZiBtYXJrZXIua3dhcmdzWyJydW4iXSBpcyBGYWxzZToKKyAgICAg
ICAgICAgICAgICBweXRlc3Quc2tpcCgpCisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgInJhaXNlcyIgaW4gbWFya2VyLmt3YXJnczoKKyAg
ICAgICAgICAgIG1hcmtlci5rd2FyZ3MucG9wKCJyYWlzZXMiKQorICAgICAgICBweXRlc3QueGZh
aWwoKiptYXJrZXIua3dhcmdzKQorCiAgICAgICAgIGRlZiBmaW4oKToKICAgICAgICAgICAgIGds
b2JhbCBkcml2ZXJfaW5zdGFuY2UKICAgICAgICAgICAgIGlmIGRyaXZlcl9pbnN0YW5jZSBpcyBu
b3QgTm9uZToKQEAgLTkzLDI1ICsxMDUsMTIgQEAgZGVmIGRyaXZlcihyZXF1ZXN0KToKICAgICAg
ICAgICAgIGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6
ZXIoZmluKQogCi0gICAgIyBza2lwIGRyaXZlciBpbnN0YW50aWF0aW9uIGlmIHhmYWlsKHJ1bj1G
YWxzZSkKLSAgICBpZiBub3QgcmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCdydW54ZmFpbCcpOgot
ICAgICAgICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5pc3RydWUoKToKLSAgICAgICAgICAg
IGlmIHJlcXVlc3Qubm9kZS5fZXZhbHhmYWlsLmdldCgncnVuJykgaXMgRmFsc2U6Ci0gICAgICAg
ICAgICAgICAgeWllbGQKLSAgICAgICAgICAgICAgICByZXR1cm4KLQogICAgIGRyaXZlcl9wYXRo
ID0gcmVxdWVzdC5jb25maWcub3B0aW9uLmV4ZWN1dGFibGUKICAgICBvcHRpb25zID0gTm9uZQog
CiAgICAgZ2xvYmFsIGRyaXZlcl9pbnN0YW5jZQogICAgIGlmIGRyaXZlcl9pbnN0YW5jZSBpcyBO
b25lOgotICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ0JsYWNrQmVycnknOgotICAgICAgICAg
ICAga3dhcmdzLnVwZGF0ZSh7J2RldmljZV9wYXNzd29yZCc6ICdwYXNzd29yZCd9KQogICAgICAg
ICBpZiBkcml2ZXJfY2xhc3MgPT0gJ0ZpcmVmb3gnOgotICAgICAgICAgICAga3dhcmdzLnVwZGF0
ZSh7J2NhcGFiaWxpdGllcyc6IHsnbWFyaW9uZXR0ZSc6IEZhbHNlfX0pCi0gICAgICAgICAgICBv
cHRpb25zID0gZ2V0X29wdGlvbnMoZHJpdmVyX2NsYXNzLCByZXF1ZXN0LmNvbmZpZykKLSAgICAg
ICAgaWYgZHJpdmVyX2NsYXNzID09ICdNYXJpb25ldHRlJzoKLSAgICAgICAgICAgIGRyaXZlcl9j
bGFzcyA9ICdGaXJlZm94JwogICAgICAgICAgICAgb3B0aW9ucyA9IGdldF9vcHRpb25zKGRyaXZl
cl9jbGFzcywgcmVxdWVzdC5jb25maWcpCiAgICAgICAgIGlmIGRyaXZlcl9jbGFzcyA9PSAnUmVt
b3RlJzoKICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IERlc2lyZWRDYXBhYmlsaXRpZXMuRklS
RUZPWC5jb3B5KCkKQEAgLTEyOSw3ICsxMjgsOCBAQCBkZWYgZHJpdmVyKHJlcXVlc3QpOgogICAg
ICAgICAgICAga3dhcmdzWydvcHRpb25zJ10gPSBvcHRpb25zCiAgICAgICAgIGRyaXZlcl9pbnN0
YW5jZSA9IGdldGF0dHIod2ViZHJpdmVyLCBkcml2ZXJfY2xhc3MpKCoqa3dhcmdzKQogICAgIHlp
ZWxkIGRyaXZlcl9pbnN0YW5jZQotICAgIGlmIE1hcmtFdmFsdWF0b3IocmVxdWVzdC5ub2RlLCAn
bm9fZHJpdmVyX2FmdGVyX3Rlc3QnKS5pc3RydWUoKToKKworICAgIGlmIHJlcXVlc3Qubm9kZS5n
ZXRfY2xvc2VzdF9tYXJrZXIoIm5vX2RyaXZlcl9hZnRlcl90ZXN0Iik6CiAgICAgICAgIGRyaXZl
cl9pbnN0YW5jZSA9IE5vbmUKIAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9fLnB5CmluZGV4IDRhMDQ5Yjg1OTEzMi4u
MzIzY2FhZWI3OTBjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQpAQCAtMTYsNCArMTYsNCBAQAogIyB1bmRl
ciB0aGUgTGljZW5zZS4KIAogCi1fX3ZlcnNpb25fXyA9ICI0LjAuMGE2IgorX192ZXJzaW9uX18g
PSAiNC4wLjBhNyIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKaW5kZXggNGNiMTFj
ODlkNThlLi5lODI3YjA3ZTFlM2EgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5
CkBAIC0xNTgsNyArMTU4LDcgQEAgY2xhc3MgRWxlbWVudE5vdFZpc2libGVFeGNlcHRpb24oSW52
YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CiBjbGFzcyBFbGVtZW50Tm90SW50ZXJhY3RhYmxl
RXhjZXB0aW9uKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgogICAgICIiIgogICAgIFRo
cm93biB3aGVuIGFuIGVsZW1lbnQgaXMgcHJlc2VudCBpbiB0aGUgRE9NIGJ1dCBpbnRlcmFjdGlv
bnMKLSAgICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90aGVyIGVsZW1lbnQgZG8gdG8g
cGFpbnQgb3JkZXIKKyAgICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90aGVyIGVsZW1l
bnQgZHVlIHRvIHBhaW50IG9yZGVyCiAgICAgIiIiCiAgICAgcGFzcwogCkBAIC0yNzMsNyArMjcz
LDcgQEAgY2xhc3MgU2NyZWVuc2hvdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogY2xh
c3MgRWxlbWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToK
ICAgICAiIiIKICAgICBUaGUgRWxlbWVudCBDbGljayBjb21tYW5kIGNvdWxkIG5vdCBiZSBjb21w
bGV0ZWQgYmVjYXVzZSB0aGUgZWxlbWVudCByZWNlaXZpbmcgdGhlIGV2ZW50cwotICAgIGlzIG9i
c2N1cmluZyB0aGUgZWxlbWVudCB0aGF0IHdhcyByZXF1ZXN0ZWQgY2xpY2tlZC4KKyAgICBpcyBv
YnNjdXJpbmcgdGhlIGVsZW1lbnQgdGhhdCB3YXMgcmVxdWVzdGVkIHRvIGJlIGNsaWNrZWQuCiAg
ICAgIiIiCiAgICAgcGFzcwogCkBAIC0yODgsNyArMjg4LDcgQEAgY2xhc3MgSW5zZWN1cmVDZXJ0
aWZpY2F0ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogCiBjbGFzcyBJbnZhbGlkQ29v
cmRpbmF0ZXNFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAiIiIKLSAgICBUaGUg
Y29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50ZXJhY3Rpb25zIG9wZXJhdGlvbiBhcmUgaW52
YWxpZC4KKyAgICBUaGUgY29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50ZXJhY3Rpb24ncyBv
cGVyYXRpb24gYXJlIGludmFsaWQuCiAgICAgIiIiCiAgICAgcGFzcwogCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19p
bml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvX19pbml0X18ucHkKaW5kZXggOWI5M2RjYzI4NDdjLi5lNzU3NjM2YWM3NWIgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTE2LDE0ICsxNiwxNCBAQAog
IyB1bmRlciB0aGUgTGljZW5zZS4KIAogZnJvbSAuc2FmYXJpLndlYmRyaXZlciBpbXBvcnQgV2Vi
RHJpdmVyIGFzIFNhZmFyaSAgIyBub3FhCi1mcm9tIC53ZWJraXRndGsud2ViZHJpdmVyIGltcG9y
dCBXZWJEcml2ZXIgYXMgV2ViS2l0R1RLICMgbm9xYQotZnJvbSAud2Via2l0Z3RrLm9wdGlvbnMg
aW1wb3J0IE9wdGlvbnMgYXMgV2ViS2l0R1RLT3B0aW9ucyAjIG5vcWEKLWZyb20gLndwZXdlYmtp
dC53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXUEVXZWJLaXQgIyBub3FhCi1mcm9tIC53
cGV3ZWJraXQub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXUEVXZWJLaXRPcHRpb25zICMgbm9x
YQorZnJvbSAud2Via2l0Z3RrLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFdlYktpdEdU
SyAgIyBub3FhCitmcm9tIC53ZWJraXRndGsub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXZWJL
aXRHVEtPcHRpb25zICAjIG5vcWEKK2Zyb20gLndwZXdlYmtpdC53ZWJkcml2ZXIgaW1wb3J0IFdl
YkRyaXZlciBhcyBXUEVXZWJLaXQgICMgbm9xYQorZnJvbSAud3Bld2Via2l0Lm9wdGlvbnMgaW1w
b3J0IE9wdGlvbnMgYXMgV1BFV2ViS2l0T3B0aW9ucyAgIyBub3FhCiBmcm9tIC5yZW1vdGUud2Vi
ZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgUmVtb3RlICAjIG5vcWEKIGZyb20gLmNvbW1vbi5k
ZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcyAgIyBub3FhCiBm
cm9tIC5jb21tb24uYWN0aW9uX2NoYWlucyBpbXBvcnQgQWN0aW9uQ2hhaW5zICAjIG5vcWEKIGZy
b20gLmNvbW1vbi50b3VjaF9hY3Rpb25zIGltcG9ydCBUb3VjaEFjdGlvbnMgICMgbm9xYQogZnJv
bSAuY29tbW9uLnByb3h5IGltcG9ydCBQcm94eSAgIyBub3FhCiAKLV9fdmVyc2lvbl9fID0gJzQu
MC4wYTYnCitfX3ZlcnNpb25fXyA9ICc0LjAuMGE3JwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25z
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9vcHRpb25zLnB5CmluZGV4IGJmZjI1MTcyN2IzZS4uOTIwMzQ4MTI4OWQyIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL29wdGlvbnMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5CkBAIC00OSwx
MiArNDksMTIgQEAgY2xhc3MgQmFzZU9wdGlvbnMob2JqZWN0KToKICAgICAgICAgIiIiUmV0dXJu
IG1pbmltYWwgY2FwYWJpbGl0aWVzIG5lY2Vzc2FyeSBhcyBhIGRpY3Rpb25hcnkuIiIiCiAKIAot
CiBjbGFzcyBBcmdPcHRpb25zKEJhc2VPcHRpb25zKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKICAgICAgICAgc3VwZXIoQXJnT3B0aW9ucywgc2VsZikuX19pbml0X18oKQogICAgICAgICBz
ZWxmLl9hcmd1bWVudHMgPSBbXQorICAgICAgICBzZWxmLl9pZ25vcmVfbG9jYWxfcHJveHkgPSBG
YWxzZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGFyZ3VtZW50cyhzZWxmKToKQEAgLTc1LDYg
Kzc1LDEyIEBAIGNsYXNzIEFyZ09wdGlvbnMoQmFzZU9wdGlvbnMpOgogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignYXJndW1lbnQgY2FuIG5vdCBiZSBudWxsJykK
IAorICAgIGRlZiBpZ25vcmVfbG9jYWxfcHJveHlfZW52aXJvbm1lbnRfdmFyaWFibGVzKHNlbGYp
OgorICAgICAgICAiIiIKKyAgICAgICAgICAgIEJ5IGNhbGxpbmcgdGhpcyB5b3Ugd2lsbCBpZ25v
cmUgSFRUUF9QUk9YWSBhbmQgSFRUUFNfUFJPWFkgZnJvbSBiZWluZyBwaWNrZWQgdXAgYW5kIHVz
ZWQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9pZ25vcmVfbG9jYWxfcHJveHkgPSBUcnVl
CisKICAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5f
Y2FwcwogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkKaW5k
ZXggZDIwYTkwMmZhYzdlLi44YzMyZTBkYmVjYzEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VydmljZS5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL3NlcnZpY2UucHkKQEAgLTQ2LDYgKzQ2LDggQEAgY2xhc3MgU2VydmljZShv
YmplY3QpOgogCiAgICAgICAgIHNlbGYuc3RhcnRfZXJyb3JfbWVzc2FnZSA9IHN0YXJ0X2Vycm9y
X21lc3NhZ2UKICAgICAgICAgc2VsZi5sb2dfZmlsZSA9IGxvZ19maWxlCisgICAgICAgICMgRGVm
YXVsdCB2YWx1ZSBmb3IgZXZlcnkgcHl0aG9uIHN1YnByb2Nlc3M6IHN1YnByb2Nlc3MuUG9wZW4o
Li4uLCBjcmVhdGlvbmZsYWdzPTApCisgICAgICAgIHNlbGYuY3JlYXRpb25mbGFncyA9IDAKICAg
ICAgICAgc2VsZi5lbnYgPSBlbnYgb3Igb3MuZW52aXJvbgogCiAgICAgQHByb3BlcnR5CkBAIC03
Myw3ICs3NSw4IEBAIGNsYXNzIFNlcnZpY2Uob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXBsYXRmb3JtLnN5c3RlbSgpICE9ICdX
aW5kb3dzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
b3V0PXNlbGYubG9nX2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0ZGVycj1zZWxmLmxvZ19maWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGRpbj1QSVBFKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGRpbj1QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGlvbmZsYWdzPXNlbGYuY3JlYXRpb25mbGFncykKICAgICAg
ICAgZXhjZXB0IFR5cGVFcnJvcjoKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdCBP
U0Vycm9yIGFzIGVycjoKQEAgLTk4LDkgKzEwMSwxMCBAQCBjbGFzcyBTZXJ2aWNlKG9iamVjdCk6
CiAgICAgICAgICAgICBzZWxmLmFzc2VydF9wcm9jZXNzX3N0aWxsX3J1bm5pbmcoKQogICAgICAg
ICAgICAgaWYgc2VsZi5pc19jb25uZWN0YWJsZSgpOgogICAgICAgICAgICAgICAgIGJyZWFrCisK
ICAgICAgICAgICAgIGNvdW50ICs9IDEKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKLSAgICAg
ICAgICAgIGlmIGNvdW50ID09IDMwOgorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjUpCisgICAg
ICAgICAgICBpZiBjb3VudCA9PSA2MDoKICAgICAgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJF
eGNlcHRpb24oIkNhbiBub3QgY29ubmVjdCB0byB0aGUgU2VydmljZSAlcyIgJSBzZWxmLnBhdGgp
CiAKICAgICBkZWYgYXNzZXJ0X3Byb2Nlc3Nfc3RpbGxfcnVubmluZyhzZWxmKToKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vdXRpbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CmluZGV4IDk1N2YyZmQyNjY5OS4uMWY2
MGU0NDU3M2EyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkK
QEAgLTM2LDcgKzM2LDcgQEAgZGVmIGZyZWVfcG9ydCgpOgogICAgIERldGVybWluZXMgYSBmcmVl
IHBvcnQgdXNpbmcgc29ja2V0cy4KICAgICAiIiIKICAgICBmcmVlX3NvY2tldCA9IHNvY2tldC5z
b2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKLSAgICBmcmVlX3NvY2tl
dC5iaW5kKCgnMC4wLjAuMCcsIDApKQorICAgIGZyZWVfc29ja2V0LmJpbmQoKCcxMjcuMC4wLjEn
LCAwKSkKICAgICBmcmVlX3NvY2tldC5saXN0ZW4oNSkKICAgICBwb3J0ID0gZnJlZV9zb2NrZXQu
Z2V0c29ja25hbWUoKVsxXQogICAgIGZyZWVfc29ja2V0LmNsb3NlKCkKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1v
dGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0aW9uLnB5CmluZGV4
IDZmMWMxYjQ3MTIwNy4uMjQ0OGMxYjA2YjRjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25u
ZWN0aW9uLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkKQEAgLTE0MSw3ICsxNDEs
NyBAQCBjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHJldHVybiB1cmxs
aWIzLlBvb2xNYW5hZ2VyKCoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykgaWYgc2VsZi5fcHJveHlf
dXJsIGlzIE5vbmUgZWxzZSBcCiAgICAgICAgICAgICB1cmxsaWIzLlByb3h5TWFuYWdlcihzZWxm
Ll9wcm94eV91cmwsICoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykKIAotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9RmFsc2UsIHJlc29sdmVfaXA9
Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9h
bGl2ZT1GYWxzZSwgcmVzb2x2ZV9pcD1Ob25lLCBpZ25vcmVfcHJveHk9RmFsc2UpOgogICAgICAg
ICBpZiByZXNvbHZlX2lwIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaW1wb3J0IHdhcm5pbmdz
CiAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKApAQCAtMTQ5LDcgKzE0OSw3IEBAIGNsYXNzIFJl
bW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5p
bmcpCiAgICAgICAgIHNlbGYua2VlcF9hbGl2ZSA9IGtlZXBfYWxpdmUKICAgICAgICAgc2VsZi5f
dXJsID0gcmVtb3RlX3NlcnZlcl9hZGRyCi0gICAgICAgIHNlbGYuX3Byb3h5X3VybCA9IHNlbGYu
X2dldF9wcm94eV91cmwoKQorICAgICAgICBzZWxmLl9wcm94eV91cmwgPSBzZWxmLl9nZXRfcHJv
eHlfdXJsKCkgaWYgbm90IGlnbm9yZV9wcm94eSBlbHNlIE5vbmUKICAgICAgICAgaWYga2VlcF9h
bGl2ZToKICAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSBzZWxmLl9nZXRfY29ubmVjdGlvbl9tYW5h
Z2VyKCkKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGNsYXNzIFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0
KToKICAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50
LyRpZC92YWx1ZScpLAogICAgICAgICAgICAgQ29tbWFuZC5TRU5EX0tFWVNfVE9fQUNUSVZFX0VM
RU1FTlQ6CiAgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQva2V5
cycpLAotICAgICAgICAgICAgQ29tbWFuZC5VUExPQURfRklMRTogKCdQT1NUJywgIi9zZXNzaW9u
LyRzZXNzaW9uSWQvZmlsZSIpLAorICAgICAgICAgICAgQ29tbWFuZC5VUExPQURfRklMRTogKCdQ
T1NUJywgIi9zZXNzaW9uLyRzZXNzaW9uSWQvc2UvZmlsZSIpLAogICAgICAgICAgICAgQ29tbWFu
ZC5HRVRfRUxFTUVOVF9WQUxVRToKICAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8k
c2Vzc2lvbklkL2VsZW1lbnQvJGlkL3ZhbHVlJyksCiAgICAgICAgICAgICBDb21tYW5kLkdFVF9F
TEVNRU5UX1RBR19OQU1FOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dl
YmRyaXZlci5weQppbmRleCA2MjI4MmQ1MjY5NWIuLmM0ODMxMDNkM2E1MCAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Jl
bW90ZS93ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkKQEAgLTIwLDE5ICsyMCwy
MyBAQAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEKIGltcG9ydCBiYXNlNjQKIGltcG9ydCBjb3B5
Ci1mcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCitmcm9tIGNvbnRleHRsaWIg
aW1wb3J0IChjb250ZXh0bWFuYWdlciwgYXN5bmNjb250ZXh0bWFuYWdlcikKK2ltcG9ydCBpbXBv
cnRsaWIKIGltcG9ydCBwa2d1dGlsCiBpbXBvcnQgd2FybmluZ3MKK2ltcG9ydCBzeXMKIAogZnJv
bSAuY29tbWFuZCBpbXBvcnQgQ29tbWFuZAogZnJvbSAuZXJyb3JoYW5kbGVyIGltcG9ydCBFcnJv
ckhhbmRsZXIKIGZyb20gLmZpbGVfZGV0ZWN0b3IgaW1wb3J0IEZpbGVEZXRlY3RvciwgTG9jYWxG
aWxlRGV0ZWN0b3IKIGZyb20gLm1vYmlsZSBpbXBvcnQgTW9iaWxlCiBmcm9tIC5yZW1vdGVfY29u
bmVjdGlvbiBpbXBvcnQgUmVtb3RlQ29ubmVjdGlvbgorZnJvbSAuc2NyaXB0X2tleSBpbXBvcnQg
U2NyaXB0S2V5CiBmcm9tIC5zd2l0Y2hfdG8gaW1wb3J0IFN3aXRjaFRvCiBmcm9tIC53ZWJlbGVt
ZW50IGltcG9ydCBXZWJFbGVtZW50CiAKIGZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMg
aW1wb3J0IChJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSmF2YXNjcmlwdEV4Y2VwdGlvbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJFeGNlcHRpb24sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9TdWNoQ29va2llRXhjZXB0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVua25vd25NZXRob2RFeGNlcHRpb24p
CkBAIC00OCw2ICs1MiwxNCBAQCB0cnk6CiBleGNlcHQgTmFtZUVycm9yOgogICAgIHBhc3MKIAor
Y2RwID0gTm9uZQorCisKK2RlZiBpbXBvcnRfY2RwKCk6CisgICAgZ2xvYmFsIGNkcAorICAgIGlm
IGNkcCBpcyBOb25lOgorICAgICAgICBjZHAgPSBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgic2Vs
ZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5iaWRpLmNkcCIpCisKIAogX1czQ19DQVBBQklMSVRZX05B
TUVTID0gZnJvemVuc2V0KFsKICAgICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycsCkBAIC02OCw2ICs4
MCw4IEBAIF9PU1NfVzNDX0NPTlZFUlNJT04gPSB7CiAgICAgJ3BsYXRmb3JtJzogJ3BsYXRmb3Jt
TmFtZScKIH0KIAorZGV2dG9vbHMgPSBOb25lCisKIAogZGVmIF9tYWtlX3czY19jYXBzKGNhcHMp
OgogICAgICIiIk1ha2VzIGEgVzNDIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyBvYmplY3QuCkBA
IC0xMDIsNyArMTE2LDcgQEAgZGVmIF9tYWtlX3czY19jYXBzKGNhcHMpOgogICAgIHJldHVybiB7
ImZpcnN0TWF0Y2giOiBbe31dLCAiYWx3YXlzTWF0Y2giOiBhbHdheXNfbWF0Y2h9CiAKIAotZGVm
IGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhlY3V0b3IsIGtl
ZXBfYWxpdmUpOgorZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1h
bmRfZXhlY3V0b3IsIGtlZXBfYWxpdmUsIGlnbm9yZV9sb2NhbF9wcm94eT1GYWxzZSk6CiAgICAg
ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBT
YWZhcmlSZW1vdGVDb25uZWN0aW9uCiAKICAgICBjYW5kaWRhdGVzID0gW1JlbW90ZUNvbm5lY3Rp
b25dICsgW1NhZmFyaVJlbW90ZUNvbm5lY3Rpb25dCkBAIC0xMTEsNyArMTI1LDcgQEAgZGVmIGdl
dF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBf
YWxpdmUpOgogICAgICAgICBSZW1vdGVDb25uZWN0aW9uCiAgICAgKQogCi0gICAgcmV0dXJuIGhh
bmRsZXIoY29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZlKQorICAgIHJldHVy
biBoYW5kbGVyKGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmU9a2VlcF9hbGl2ZSwgaWdub3Jl
X3Byb3h5PWlnbm9yZV9sb2NhbF9wcm94eSkKIAogCiBAYWRkX21ldGFjbGFzcyhBQkNNZXRhKQpA
QCAtMTYzLDggKzE3NywxMCBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAg
ICAgICAtIG9wdGlvbnMgLSBpbnN0YW5jZSBvZiBhIGRyaXZlciBvcHRpb25zLk9wdGlvbnMgY2xh
c3MKICAgICAgICAgIiIiCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHt9CisgICAgICAgIF9pZ25v
cmVfbG9jYWxfcHJveHkgPSBGYWxzZQogICAgICAgICBpZiBvcHRpb25zIGlzIG5vdCBOb25lOgog
ICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gb3B0aW9ucy50b19jYXBhYmlsaXRpZXMoKQorICAg
ICAgICAgICAgX2lnbm9yZV9sb2NhbF9wcm94eSA9IG9wdGlvbnMuX2lnbm9yZV9sb2NhbF9wcm94
eQogICAgICAgICBpZiBkZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKGRlc2lyZWRfY2FwYWJpbGl0aWVzLCBkaWN0KToKICAgICAg
ICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkRlc2lyZWQgQ2FwYWJpbGl0aWVz
IG11c3QgYmUgYSBkaWN0aW9uYXJ5IikKQEAgLTE3MiwxMCArMTg4LDEzIEBAIGNsYXNzIFdlYkRy
aXZlcihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMudXBkYXRl
KGRlc2lyZWRfY2FwYWJpbGl0aWVzKQogICAgICAgICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IgPSBj
b21tYW5kX2V4ZWN1dG9yCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5jb21tYW5kX2V4ZWN1
dG9yLCAoc3RyLCBieXRlcykpOgotICAgICAgICAgICAgc2VsZi5jb21tYW5kX2V4ZWN1dG9yID0g
Z2V0X3JlbW90ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29tbWFuZF9leGVjdXRvcj1jb21t
YW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlPWtlZXBfYWxpdmUpCisgICAgICAgICAgICBzZWxmLmNv
bW1hbmRfZXhlY3V0b3IgPSBnZXRfcmVtb3RlX2Nvbm5lY3Rpb24oY2FwYWJpbGl0aWVzLCBjb21t
YW5kX2V4ZWN1dG9yPWNvbW1hbmRfZXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcF9hbGl2ZT1rZWVwX2FsaXZlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlnbm9yZV9sb2NhbF9wcm94eT1faWdub3JlX2xvY2FsX3Byb3h5KQogICAgICAgICBzZWxmLl9p
c19yZW1vdGUgPSBUcnVlCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUKLSAgICAgICAg
c2VsZi5jYXBhYmlsaXRpZXMgPSB7fQorICAgICAgICBzZWxmLmNhcHMgPSB7fQorICAgICAgICBz
ZWxmLnBpbm5lZF9zY3JpcHRzID0ge30KICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyID0gRXJy
b3JIYW5kbGVyKCkKICAgICAgICAgc2VsZi5zdGFydF9jbGllbnQoKQogICAgICAgICBzZWxmLnN0
YXJ0X3Nlc3Npb24oY2FwYWJpbGl0aWVzLCBicm93c2VyX3Byb2ZpbGUpCkBAIC0yMzUsOCArMjU0
LDggQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgICAgICAgICAgICAg
bmFtZSA9IGRyaXZlci5uYW1lCiAgICAgICAgICIiIgotICAgICAgICBpZiAnYnJvd3Nlck5hbWUn
IGluIHNlbGYuY2FwYWJpbGl0aWVzOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2FwYWJpbGl0
aWVzWydicm93c2VyTmFtZSddCisgICAgICAgIGlmICdicm93c2VyTmFtZScgaW4gc2VsZi5jYXBz
OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2Fwc1snYnJvd3Nlck5hbWUnXQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ2Jyb3dzZXJOYW1lIG5vdCBzcGVjaWZp
ZWQgaW4gc2Vzc2lvbiBjYXBhYmlsaXRpZXMnKQogCkBAIC0yNzksMTIgKzI5OCwxMiBAQCBjbGFz
cyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgIGlmICdzZXNzaW9uSWQnIG5vdCBp
biByZXNwb25zZToKICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2VbJ3ZhbHVlJ10KICAg
ICAgICAgc2VsZi5zZXNzaW9uX2lkID0gcmVzcG9uc2VbJ3Nlc3Npb25JZCddCi0gICAgICAgIHNl
bGYuY2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCd2YWx1ZScpCisgICAgICAgIHNlbGYuY2Fw
cyA9IHJlc3BvbnNlLmdldCgndmFsdWUnKQogCiAgICAgICAgICMgaWYgY2FwYWJpbGl0aWVzIGlz
IG5vbmUgd2UgYXJlIHByb2JhYmx5IHNwZWFraW5nIHRvCiAgICAgICAgICMgYSBXM0MgZW5kcG9p
bnQKLSAgICAgICAgaWYgc2VsZi5jYXBhYmlsaXRpZXMgaXMgTm9uZToKLSAgICAgICAgICAgIHNl
bGYuY2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCdjYXBhYmlsaXRpZXMnKQorICAgICAgICBp
ZiBzZWxmLmNhcHMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY2FwcyA9IHJlc3BvbnNlLmdl
dCgnY2FwYWJpbGl0aWVzJykKIAogICAgICAgICAjIERvdWJsZSBjaGVjayB0byBzZWUgaWYgd2Ug
aGF2ZSBhIFczQyBDb21wbGlhbnQgYnJvd3NlcgogICAgICAgICBzZWxmLnczYyA9IHJlc3BvbnNl
LmdldCgnc3RhdHVzJykgaXMgTm9uZQpAQCAtNjg5LDYgKzcwOCwyNiBAQCBjbGFzcyBXZWJEcml2
ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgIHdhcm5pbmdzLndhcm4oImZpbmRfZWxlbWVudHNf
YnlfKiBjb21tYW5kcyBhcmUgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBmaW5kX2VsZW1lbnRzKCkg
aW5zdGVhZCIpCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuQ1NTX1NF
TEVDVE9SLCB2YWx1ZT1jc3Nfc2VsZWN0b3IpCiAKKyAgICBkZWYgcGluX3NjcmlwdChzZWxmLCBz
Y3JpcHQpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAgICAgc2NyaXB0X2tleSA9
IFNjcmlwdEtleSgpCisgICAgICAgIHNlbGYucGlubmVkX3NjcmlwdHNbc2NyaXB0X2tleS5pZF0g
PSBzY3JpcHQKKyAgICAgICAgcmV0dXJuIHNjcmlwdF9rZXkKKworICAgIGRlZiB1bnBpbihzZWxm
LCBzY3JpcHRfa2V5KToKKyAgICAgICAgIiIiCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYu
cGlubmVkX3NjcmlwdHMucG9wKHNjcmlwdF9rZXkuaWQpCisKKyAgICBkZWYgZ2V0X3Bpbm5lZF9z
Y3JpcHRzKHNlbGYpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu
IGxpc3Qoc2VsZi5waW5uZWRfc2NyaXB0cy5rZXlzKCkpCisKICAgICBkZWYgZXhlY3V0ZV9zY3Jp
cHQoc2VsZiwgc2NyaXB0LCAqYXJncyk6CiAgICAgICAgICIiIgogICAgICAgICBTeW5jaHJvbm91
c2x5IEV4ZWN1dGVzIEphdmFTY3JpcHQgaW4gdGhlIGN1cnJlbnQgd2luZG93L2ZyYW1lLgpAQCAt
NzAyLDYgKzc0MSwxMiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAKICAgICAg
ICAgICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC50aXRsZTsn
KQogICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzY3JpcHQsIFNjcmlwdEtleSk6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gc2VsZi5waW5uZWRf
c2NyaXB0c1tzY3JpcHQuaWRdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAg
ICAgICAgICAgcmFpc2UgSmF2YXNjcmlwdEV4Y2VwdGlvbigiUGlubmVkIHNjcmlwdCBjb3VsZCBu
b3QgYmUgZm91bmQiKQorCiAgICAgICAgIGNvbnZlcnRlZF9hcmdzID0gbGlzdChhcmdzKQogICAg
ICAgICBjb21tYW5kID0gTm9uZQogICAgICAgICBpZiBzZWxmLnczYzoKQEAgLTEwNjcsOCArMTEx
Miw3IEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKIAogICAgIGRlZiBmaW5kX2Vs
ZW1lbnQoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIKLSAgICAgICAg
RmluZCBhbiBlbGVtZW50IGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0b3IuIFByZWZlciB0
aGUgZmluZF9lbGVtZW50X2J5XyogbWV0aG9kcyB3aGVuCi0gICAgICAgIHBvc3NpYmxlLgorICAg
ICAgICBGaW5kIGFuIGVsZW1lbnQgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4KIAog
ICAgICAgICA6VXNhZ2U6CiAgICAgICAgICAgICA6OgpAQCAtMTA5NSw4ICsxMTM5LDcgQEAgY2xh
c3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgZGVmIGZpbmRfZWxlbWVudHMoc2Vs
ZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIKLSAgICAgICAgRmluZCBlbGVt
ZW50cyBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLiBQcmVmZXIgdGhlIGZpbmRfZWxl
bWVudHNfYnlfKiBtZXRob2RzIHdoZW4KLSAgICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQg
ZWxlbWVudHMgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4KIAogICAgICAgICA6VXNh
Z2U6CiAgICAgICAgICAgICA6OgpAQCAtMTEwOCw3ICsxMTUxLDcgQEAgY2xhc3MgV2ViRHJpdmVy
KEJhc2VXZWJEcml2ZXIpOgogICAgICAgICBpZiBpc2luc3RhbmNlKGJ5LCBSZWxhdGl2ZUJ5KToK
ICAgICAgICAgICAgIF9wa2cgPSAnLicuam9pbihfX25hbWVfXy5zcGxpdCgnLicpWzotMV0pCiAg
ICAgICAgICAgICByYXdfZnVuY3Rpb24gPSBwa2d1dGlsLmdldF9kYXRhKF9wa2csICdmaW5kRWxl
bWVudHMuanMnKS5kZWNvZGUoJ3V0ZjgnKQotICAgICAgICAgICAgZmluZF9lbGVtZW50X2pzID0g
InJldHVybiAoJXMpLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7IiAlIHJhd19mdW5jdGlvbgorICAg
ICAgICAgICAgZmluZF9lbGVtZW50X2pzID0gInJldHVybiAoe30pLmFwcGx5KG51bGwsIGFyZ3Vt
ZW50cyk7Ii5mb3JtYXQocmF3X2Z1bmN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXhl
Y3V0ZV9zY3JpcHQoZmluZF9lbGVtZW50X2pzLCBieS50b19kaWN0KCkpCiAKICAgICAgICAgaWYg
c2VsZi53M2M6CkBAIC0xMTM1LDcgKzExNzgsMTYgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJE
cml2ZXIpOgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJucyB0aGUgZHJpdmVycyBjdXJyZW50
IGRlc2lyZWQgY2FwYWJpbGl0aWVzIGJlaW5nIHVzZWQKICAgICAgICAgIiIiCi0gICAgICAgIHJl
dHVybiBzZWxmLmNhcGFiaWxpdGllcworICAgICAgICB3YXJuaW5ncy53YXJuKCJkZXNpcmVkX2Nh
cGFiaWxpdGllcyBpcyBkZXByZWNhdGVkLiBQbGVhc2UgY2FsbCBjYXBhYmlsaXRpZXMuIiwKKyAg
ICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKKyAg
ICAgICAgcmV0dXJuIHNlbGYuY2FwcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNhcGFiaWxp
dGllcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybnMgdGhlIGRyaXZlcnMgY3Vy
cmVudCBjYXBhYmlsaXRpZXMgYmVpbmcgdXNlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy
biBzZWxmLmNhcHMKIAogICAgIGRlZiBnZXRfc2NyZWVuc2hvdF9hc19maWxlKHNlbGYsIGZpbGVu
YW1lKToKICAgICAgICAgIiIiCkBAIC0xNDE3LDMgKzE0NjksMTEwIEBAIGNsYXNzIFdlYkRyaXZl
cihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBkcml2ZXIuZ2V0X2xvZygnc2VydmVy
JykKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRf
TE9HLCB7J3R5cGUnOiBsb2dfdHlwZX0pWyd2YWx1ZSddCisKKyAgICBAYXN5bmNjb250ZXh0bWFu
YWdlcgorICAgIGFzeW5jIGRlZiBhZGRfanNfZXJyb3JfbGlzdGVuZXIoc2VsZik6CisgICAgICAg
ICIiIgorICAgICAgICBMaXN0ZW5zIGZvciBKUyBlcnJvcnMgYW5kIHdoZW4gdGhlIGNvbnRleHRt
YW5hZ2VyIGV4aXRzIGNoZWNrIGlmIHRoZXJlIHdlcmUgSlMgRXJyb3JzCisKKyAgICAgICAgOlVz
YWdlOgorICAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBhc3luYyB3aXRoIGRyaXZl
ci5hZGRfanNfZXJyb3JfbGlzdGVuZXIoKSBhcyBlcnJvcjoKKyAgICAgICAgICAgICAgICAgICAg
ZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInRocm93aW5nLW1vdXNlb3ZlciIpLmNsaWNrKCkK
KyAgICAgICAgICAgICAgICBhc3NlcnQgZXJyb3IgaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgZXJyb3IuZXhjZXB0aW9uX2RldGFpbHMuc3RhY2tfdHJhY2UuY2FsbF9mcmFtZXNb
MF0uZnVuY3Rpb25fbmFtZSA9PSAib25tb3VzZW92ZXIiCisgICAgICAgICIiIgorICAgICAgICBh
c3NlcnQgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNykKKyAgICAgICAgZ2xvYmFsIGNkcAorICAg
ICAgICBhc3luYyB3aXRoIHNlbGYuX2dldF9iaWRpX2Nvbm5lY3Rpb24oKToKKyAgICAgICAgICAg
IGdsb2JhbCBkZXZ0b29scworICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9j
b250ZXh0KCdwYWdlLmVuYWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUo
ZGV2dG9vbHMucGFnZS5lbmFibGUoKSkKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nl
c3Npb25fY29udGV4dCgncnVudGltZS5lbmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lv
bi5leGVjdXRlKGRldnRvb2xzLnJ1bnRpbWUuZW5hYmxlKCkpCisgICAgICAgICAgICBqc19leGNl
cHRpb24gPSBkZXZ0b29scy5ydW50aW1lLkV4Y2VwdGlvblRocm93bihOb25lLCBOb25lKQorICAg
ICAgICAgICAgYXN5bmMgd2l0aCBzZXNzaW9uLndhaXRfZm9yKGRldnRvb2xzLnJ1bnRpbWUuRXhj
ZXB0aW9uVGhyb3duKSBhcyBleGNlcHRpb246CisgICAgICAgICAgICAgICAgeWllbGQganNfZXhj
ZXB0aW9uCisgICAgICAgICAgICBqc19leGNlcHRpb24udGltZXN0YW1wID0gZXhjZXB0aW9uLnZh
bHVlLnRpbWVzdGFtcAorICAgICAgICAgICAganNfZXhjZXB0aW9uLmV4Y2VwdGlvbl9kZXRhaWxz
ID0gZXhjZXB0aW9uLnZhbHVlLmV4Y2VwdGlvbl9kZXRhaWxzCisKKyAgICBAYXN5bmNjb250ZXh0
bWFuYWdlcgorICAgIGFzeW5jIGRlZiBhZGRfbGlzdGVuZXIoc2VsZiwgZXZlbnRfdHlwZSk6Cisg
ICAgICAgICcnJworICAgICAgICBMaXN0ZW5zIGZvciBjZXJ0YWluIGV2ZW50cyB0aGF0IGFyZSBw
YXNzZWQgaW4uCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV2ZW50X3R5cGU6IFRoZSB0
eXBlIG9mIGV2ZW50IHRoYXQgd2Ugd2FudCB0byBsb29rIGF0LgorCisgICAgICAgICA6VXNhZ2U6
CisgICAgICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGFzeW5jIHdpdGggZHJpdmVyLmFk
ZF9saXN0ZW5lcihDb25zb2xlLmxvZykgYXMgbWVzc2FnZXM6CisgICAgICAgICAgICAgICAgICAg
IGRyaXZlci5leGVjdXRlX3NjcmlwdCgiY29uc29sZS5sb2coJ0kgbGlrZSBjaGVlc2UnKSIpCisg
ICAgICAgICAgICAgICAgYXNzZXJ0IG1lc3NhZ2VzWyJtZXNzYWdlIl0gPT0gIkkgbG92ZSBjaGVl
c2UiCisKKyAgICAgICAgJycnCisgICAgICAgIGFzc2VydCBzeXMudmVyc2lvbl9pbmZvID49ICgz
LCA3KQorICAgICAgICBnbG9iYWwgY2RwCisgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVy
LmNvbW1vbi5iaWRpLmNvbnNvbGUgaW1wb3J0IENvbnNvbGUKKworICAgICAgICBhc3luYyB3aXRo
IHNlbGYuX2dldF9iaWRpX2Nvbm5lY3Rpb24oKToKKyAgICAgICAgICAgIGdsb2JhbCBkZXZ0b29s
cworICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9jb250ZXh0KCdwYWdlLmVu
YWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUoZGV2dG9vbHMucGFnZS5l
bmFibGUoKSkKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nlc3Npb25fY29udGV4dCgn
Y29uc29sZS5lbmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5leGVjdXRlKGRldnRv
b2xzLmNvbnNvbGUuZW5hYmxlKCkpCisgICAgICAgICAgICBjb25zb2xlID0geworICAgICAgICAg
ICAgICAgICJtZXNzYWdlIjogTm9uZSwKKyAgICAgICAgICAgICAgICAibGV2ZWwiOiBOb25lCisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBhc3luYyB3aXRoIHNlc3Npb24ud2FpdF9mb3IoZGV2
dG9vbHMuY29uc29sZS5NZXNzYWdlQWRkZWQpIGFzIG1lc3NhZ2VzOgorICAgICAgICAgICAgICAg
IHlpZWxkIGNvbnNvbGUKKyAgICAgICAgICAgIGlmIGV2ZW50X3R5cGUgPT0gQ29uc29sZS5FUlJP
UjoKKyAgICAgICAgICAgICAgICBpZiBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLmxldmVsID09ICJl
cnJvciI6CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbIm1lc3NhZ2UiXSA9IG1lc3NhZ2Vz
LnZhbHVlLm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAgICAgICBjb25zb2xlWyJsZXZlbCJd
ID0gbWVzc2FnZXMudmFsdWUubWVzc2FnZS5sZXZlbAorICAgICAgICAgICAgZWxpZiBldmVudF90
eXBlID09IENvbnNvbGUuQUxMOgorICAgICAgICAgICAgICAgIGNvbnNvbGVbIm1lc3NhZ2UiXSA9
IG1lc3NhZ2VzLnZhbHVlLm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAgIGNvbnNvbGVbImxl
dmVsIl0gPSBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLmxldmVsCisKKyAgICBAYXN5bmNjb250ZXh0
bWFuYWdlcgorICAgIGFzeW5jIGRlZiBfZ2V0X2JpZGlfY29ubmVjdGlvbihzZWxmKToKKyAgICAg
ICAgZ2xvYmFsIGNkcAorICAgICAgICBpbXBvcnRfY2RwKCkKKyAgICAgICAgd3NfdXJsID0gTm9u
ZQorICAgICAgICBpZiBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIik6CisgICAgICAgICAgICB3
c191cmwgPSBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIikuZ2V0KCJjZHAiKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgdmVyc2lvbiwgd3NfdXJsID0gc2VsZi5fZ2V0X2NkcF9kZXRhaWxz
KCkKKworICAgICAgICBpZiB3c191cmwgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRy
aXZlckV4Y2VwdGlvbigiVW5hYmxlIHRvIGZpbmQgdXJsIHRvIGNvbm5lY3QgdG8gZnJvbSBjYXBh
YmlsaXRpZXMiKQorCisgICAgICAgIGNkcC5pbXBvcnRfZGV2dG9vbHModmVyc2lvbikKKworICAg
ICAgICBnbG9iYWwgZGV2dG9vbHMKKyAgICAgICAgZGV2dG9vbHMgPSBpbXBvcnRsaWIuaW1wb3J0
X21vZHVsZSgic2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXZ0b29scy52e30iLmZvcm1hdCh2
ZXJzaW9uKSkKKyAgICAgICAgYXN5bmMgd2l0aCBjZHAub3Blbl9jZHAod3NfdXJsKSBhcyBjb25u
OgorICAgICAgICAgICAgdGFyZ2V0cyA9IGF3YWl0IGNvbm4uZXhlY3V0ZShkZXZ0b29scy50YXJn
ZXQuZ2V0X3RhcmdldHMoKSkKKyAgICAgICAgICAgIHRhcmdldF9pZCA9IHRhcmdldHNbMF0udGFy
Z2V0X2lkCisgICAgICAgICAgICBhc3luYyB3aXRoIGNvbm4ub3Blbl9zZXNzaW9uKHRhcmdldF9p
ZCkgYXMgc2Vzc2lvbjoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZXNzaW9uCisKKyAgICBkZWYg
X2dldF9jZHBfZGV0YWlscyhzZWxmKToKKyAgICAgICAgaW1wb3J0IGpzb24KKyAgICAgICAgaW1w
b3J0IHVybGxpYjMKKworICAgICAgICBodHRwID0gdXJsbGliMy5Qb29sTWFuYWdlcigpCisgICAg
ICAgIGRlYnVnZ2VyX2FkZHJlc3MgPSBzZWxmLmNhcHMuZ2V0KCJ7MH06Y2hyb21lT3B0aW9ucyIu
Zm9ybWF0KHNlbGYudmVuZG9yX3ByZWZpeCkpLmdldCgiZGVidWdnZXJBZGRyZXNzIikKKyAgICAg
ICAgcmVzID0gaHR0cC5yZXF1ZXN0KCdHRVQnLCAiaHR0cDovL3swfS9qc29uL3ZlcnNpb24iLmZv
cm1hdChkZWJ1Z2dlcl9hZGRyZXNzKSkKKyAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmVzLmRh
dGEpCisKKyAgICAgICAgYnJvd3Nlcl92ZXJzaW9uID0gZGF0YS5nZXQoIkJyb3dzZXIiKQorICAg
ICAgICB3ZWJzb2NrZXRfdXJsID0gZGF0YS5nZXQoIndlYlNvY2tldERlYnVnZ2VyVXJsIikKKwor
ICAgICAgICBpbXBvcnQgcmUKKyAgICAgICAgdmVyc2lvbiA9IHJlLnNlYXJjaChyIi4qLyhcZCsp
XC4iLCBicm93c2VyX3ZlcnNpb24pLmdyb3VwKDEpCisKKyAgICAgICAgcmV0dXJuIHZlcnNpb24s
IHdlYnNvY2tldF91cmwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2Vi
ZWxlbWVudC5weQppbmRleCA2ZjNlYmJjYzNiNTQuLjA5M2U0MmE1YmExMyAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Jl
bW90ZS93ZWJlbGVtZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weQpAQCAtNTM0LDkgKzUz
NCwxNCBAQCBjbGFzcyBXZWJFbGVtZW50KEJhc2VXZWJFbGVtZW50KToKICAgICAgICAgIyB0cmFu
c2ZlciBmaWxlIHRvIGFub3RoZXIgbWFjaGluZSBvbmx5IGlmIHJlbW90ZSBkcml2ZXIgaXMgdXNl
ZAogICAgICAgICAjIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBmb3IgamF2YSBiaW5kaW5nCiAgICAg
ICAgIGlmIHNlbGYucGFyZW50Ll9pc19yZW1vdGU6Ci0gICAgICAgICAgICBsb2NhbF9maWxlID0g
c2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKCp2YWx1ZSkKLSAgICAgICAg
ICAgIGlmIGxvY2FsX2ZpbGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBz
ZWxmLl91cGxvYWQobG9jYWxfZmlsZSkKKyAgICAgICAgICAgIGxvY2FsX2ZpbGVzID0gbGlzdCht
YXAobGFtYmRhIGtleXNfdG9fc2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKGtleXNfdG9fc2VuZCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLmpvaW4odmFsdWUpLnNwbGl0
KCdcbicpKSkKKyAgICAgICAgICAgIGlmIE5vbmUgbm90IGluIGxvY2FsX2ZpbGVzOgorICAgICAg
ICAgICAgICAgIHJlbW90ZV9maWxlcyA9IFtdCisgICAgICAgICAgICAgICAgZm9yIGZpbGUgaW4g
bG9jYWxfZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9maWxlcy5hcHBlbmQoc2Vs
Zi5fdXBsb2FkKGZpbGUpKQorICAgICAgICAgICAgICAgIHZhbHVlID0gJ1xuJy5qb2luKHJlbW90
ZV9maWxlcykKIAogICAgICAgICBzZWxmLl9leGVjdXRlKENvbW1hbmQuU0VORF9LRVlTX1RPX0VM
RU1FTlQsCiAgICAgICAgICAgICAgICAgICAgICAgeyd0ZXh0JzogIiIuam9pbihrZXlzX3RvX3R5
cGluZyh2YWx1ZSkpLApAQCAtNzA0LDggKzcwOSw3IEBAIGNsYXNzIFdlYkVsZW1lbnQoQmFzZVdl
YkVsZW1lbnQpOgogCiAgICAgZGVmIGZpbmRfZWxlbWVudChzZWxmLCBieT1CeS5JRCwgdmFsdWU9
Tm9uZSk6CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGFuIGVsZW1lbnQgZ2l2ZW4gYSBCeSBz
dHJhdGVneSBhbmQgbG9jYXRvci4gUHJlZmVyIHRoZSBmaW5kX2VsZW1lbnRfYnlfKiBtZXRob2Rz
IHdoZW4KLSAgICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQgYW4gZWxlbWVudCBnaXZlbiBh
IEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAgICAgICAgICAg
IDo6CkBAIC03MzIsOCArNzM2LDcgQEAgY2xhc3MgV2ViRWxlbWVudChCYXNlV2ViRWxlbWVudCk6
CiAKICAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6CiAg
ICAgICAgICIiIgotICAgICAgICBGaW5kIGVsZW1lbnRzIGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5k
IGxvY2F0b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50c19ieV8qIG1ldGhvZHMgd2hlbgotICAg
ICAgICBwb3NzaWJsZS4KKyAgICAgICAgRmluZCBlbGVtZW50cyBnaXZlbiBhIEJ5IHN0cmF0ZWd5
IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAgICAgICAgICAgIDo6CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5w
eQppbmRleCAyMmM2MjNlNjEwYWYuLmQ2OTI0Mjg5OThmNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1v
dGVfY29ubmVjdGlvbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5CkBAIC0yMyw4
ICsyMyw4IEBAIGNsYXNzIFNhZmFyaVJlbW90ZUNvbm5lY3Rpb24oUmVtb3RlQ29ubmVjdGlvbik6
CiAKICAgICBicm93c2VyX25hbWUgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLlNBRkFSSVsnYnJvd3Nl
ck5hbWUnXQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2Vl
cF9hbGl2ZT1UcnVlKToKLSAgICAgICAgUmVtb3RlQ29ubmVjdGlvbi5fX2luaXRfXyhzZWxmLCBy
ZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmUpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
bW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVlLCBpZ25vcmVfcHJveHk9RmFsc2UpOgor
ICAgICAgICBSZW1vdGVDb25uZWN0aW9uLl9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRk
ciwga2VlcF9hbGl2ZSwgaWdub3JlX3Byb3h5PWlnbm9yZV9wcm94eSkKIAogICAgICAgICBzZWxm
Ll9jb21tYW5kc1siR0VUX1BFUk1JU1NJT05TIl0gPSAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL2FwcGxlL3Blcm1pc3Npb25zJykKICAgICAgICAgc2VsZi5fY29tbWFuZHNbIlNFVF9QRVJN
SVNTSU9OUyJdID0gKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBwbGUvcGVybWlzc2lv
bnMnKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CmluZGV4IDM5NzQ5MjU0OWMyZC4uMmU3YTA2YjRlZmU4
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBpX2V4YW1wbGVfdGVzdHMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CkBAIC0xLDIwICsxLDMgQEAKLSMgTGljZW5zZWQgdG8g
dGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCi0jIG9yIG1v
cmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQot
IyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgot
IyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBm
aWxlCi0jIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUK
LSMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp
YW5jZQotIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0Ci0jCi0jICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut
Mi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywKLSMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4KLSMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9S
IENPTkRJVElPTlMgT0YgQU5ZCi0jIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBT
ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQotIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy
bWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCi0jIHVuZGVyIHRoZSBMaWNlbnNlLgotCiAjIENvcHly
aWdodCAyMDA4LTIwMDkgV2ViRHJpdmVyIGNvbW1pdHRlcnMKICMgQ29weXJpZ2h0IDIwMDgtMjAw
OSBHb29nbGUgSW5jLgogIwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190
ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVzdHMucHkKaW5kZXggY2EwZDA4
MDBhMzJjLi40YzkxYzIyN2YwZGIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxp
bmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190ZXN0cy5weQpAQCAt
MTc4LDE0ICsxNzgsMTQgQEAgZGVmIGdldFNjcm9sbFRvcChkcml2ZXIpOgogICAgIHJldHVybiBk
cml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCIpCiAK
IAotQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3goCi0gICAgcmVhc29uPSdodHRwczovL2dpdGh1
Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvNDA4JykKLUBweXRlc3QubWFyay54ZmFpbF9yZW1v
dGUoCi0gICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMv
NDA4JykKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKLWRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9D
bGlja0VsZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgi
c2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF90YWxsX2ZyYW1lLmh0bWwiKQotICAgIGRyaXZlci5z
d2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAidGFsbF9mcmFtZSIp
KQotICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJjaGVja2JveCIp
Ci0gICAgZWxlbWVudC5jbGljaygpCi0gICAgYXNzZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKQor
IyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveCgKKyMgICAgIHJlYXNvbj0naHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCisjIEBweXRlc3QubWFyay54ZmFpbF9y
ZW1vdGUoCisjICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lz
c3Vlcy80MDgnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCisjIGRlZiB0ZXN0U2hvdWxk
QmVBYmxlVG9DbGlja0VsZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisjICAgICBw
YWdlcy5sb2FkKCJzY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3RhbGxfZnJhbWUuaHRtbCIpCisj
ICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwg
InRhbGxfZnJhbWUiKSkKKyMgICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5B
TUUsICJjaGVja2JveCIpCisjICAgICBlbGVtZW50LmNsaWNrKCkKKyMgICAgIGFzc2VydCBlbGVt
ZW50LmlzX3NlbGVjdGVkKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9m
aW5kaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2ZpbmRpbmdfdGVzdHMu
cHkKaW5kZXggZDZlNzg0MjgwNTczLi45YjgwMWRjMzBkN2MgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJf
ZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5CkBAIC0zMzUsMTYgKzMzNSwxNiBAQCBkZWYgdGVzdF9G
aW5kaW5nX0FMaW5rX0J5X1hwYXRoX1VzaW5nX0NvbnRhaW5zX0tleXdvcmRfU2hvdWxkX1dvcmso
ZHJpdmVyLCBwYWdlcwogICAgIGFzc2VydCAiaGVsbG8gd29ybGQiIGluIGVsZW1lbnQudGV4dAog
CiAKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2Vw
dGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2VzPUludmFsaWRTZWxl
Y3RvckV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1JbnZhbGlk
U2VsZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1JbnZh
bGlkU2VsZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1O
b1N1Y2hFbGVtZW50RXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3dlYmtpdGd0ayhyYWlz
ZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQotZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9f
RmluZF9FbGVtZW50X0J5X1hQYXRoX1dpdGhfTmFtZXNwYWNlKGRyaXZlciwgcGFnZXMpOgotICAg
IHBhZ2VzLmxvYWQoInN2Z1BhZ2UuaHRtbCIpCi0gICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuWFBBVEgsICIvL3N2ZzpzdmcvL3N2Zzp0ZXh0IikKLSAgICBhc3NlcnQgZWxlbWVu
dC50ZXh0ID09ICJUZXN0IENoYXJ0IgorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNl
cz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1
bWVkZ2UocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhm
YWlsX2ZpcmVmb3gocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5dGVzdC5t
YXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQorIyBAcHl0
ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBA
cHl0ZXN0Lm1hcmsueGZhaWxfd2Via2l0Z3RrKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRp
b24pCisjIGRlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfRWxlbWVudF9CeV9YUGF0aF9X
aXRoX05hbWVzcGFjZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoInN2Z1BhZ2Uu
aHRtbCIpCisjICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8v
c3ZnOnN2Zy8vc3ZnOnRleHQiKQorIyAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiVGVzdCBD
aGFydCIKIAogCiBkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0VsZW1lbnRfQnlfWFBh
dGhfSW5fWG1sX0RvY3VtZW50KGRyaXZlciwgcGFnZXMpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVz
dHMucHkKaW5kZXggOGE3NTliNjAwYjk4Li4xOGIzNDY1NzU4MTYgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1lX3N3aXRj
aGluZ190ZXN0cy5weQpAQCAtMzY4LDIzICszNjgsMjMgQEAgZGVmIHRlc3RTaG91bGRCZUFibGVU
b1N3aXRjaFRvVGhlVG9wSWZUaGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzV2l0aFdlYmVsZW1l
bnQKICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxl
bWVudF9sb2NhdGVkKChCeS5JRCwgInN1Y2Nlc3MiKSkpCiAKIAotQHB5dGVzdC5tYXJrLnhmYWls
X2Nocm9tZShyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFp
bF9jaHJvbWl1bWVkZ2UocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCi1AcHl0ZXN0Lm1h
cmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2Ry
aXZlci9pc3N1ZXMvNjE0JykKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRy
aXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczov
L2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKLUBweXRlc3QubWFy
ay54ZmFpbF93ZWJraXRndGsocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCi1AcHl0ZXN0
Lm1hcmsueGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRvRG9Bbnl0aGluZ1Ro
ZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9h
ZCgiZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRtbCIpCi0gICAgZHJpdmVy
LnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIpKQot
Ci0gICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1l
IikKLSAgICBraWxsSWZyYW1lLmNsaWNrKCkKLQotICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hGcmFtZUV4Y2VwdGlvbik6Ci0gICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJr
aWxsSWZyYW1lIikuY2xpY2soKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1O
b1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdl
KHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmly
ZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vl
cy82MTQnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNl
cHRpb24sCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1
Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKKyMgQHB5dGVzdC5tYXJrLnhm
YWlsX3dlYmtpdGd0ayhyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKKyMgQHB5dGVzdC5t
YXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRvRG9Bbnl0aGluZ1Ro
ZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5s
b2FkKCJmcmFtZV9zd2l0Y2hpbmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1sIikKKyMgICAgIGRy
aXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZTEi
KSkKKworIyAgICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxs
SWZyYW1lIikKKyMgICAgIGtpbGxJZnJhbWUuY2xpY2soKQorCisjICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoTm9TdWNoRnJhbWVFeGNlcHRpb24pOgorIyAgICAgICAgIGRyaXZlci5maW5kX2VsZW1l
bnQoQnkuSUQsICJraWxsSWZyYW1lIikuY2xpY2soKQogCiAKIGRlZiB0ZXN0U2hvdWxkUmV0dXJu
V2luZG93VGl0bGVJbkFGcmFtZXNldChkcml2ZXIsIHBhZ2VzKToKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9wYWdlX2xvYWRpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkaW5nX3Rlc3Rz
LnB5CmluZGV4IDE0MTFlZTU5ZGExYi4uOWJjN2E1YjUwZWNkIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVz
dHMucHkKQEAgLTE1LDEyICsxNSwxMiBAQAogIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAjIHVuZGVyIHRoZSBMaWNlbnNlLgogCi1pbXBv
cnQgcHl0ZXN0Ci0KLWZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRy
aXZlckV4Y2VwdGlvbgotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBC
eQotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJX
YWl0Ci1mcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25k
aXRpb25zIGFzIEVDCisjIGltcG9ydCBweXRlc3QKKyMKKyMgZnJvbSBzZWxlbml1bS5jb21tb24u
ZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCisjIGZyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKKyMgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3Vw
cG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0CisjIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVy
LnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKIAogCiBkZWYgdGVzdFNo
b3VsZFdhaXRGb3JEb2N1bWVudFRvQmVMb2FkZWQoZHJpdmVyLCBwYWdlcyk6CkBAIC00MCwyNSAr
NDAsMjUgQEAgZGVmIHRlc3RTaG91bGRXYWl0Rm9yRG9jdW1lbnRUb0JlTG9hZGVkKGRyaXZlciwg
cGFnZXMpOgogIyAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIKIAog
Ci1kZWYgdGVzdFNob3VsZEJlQWJsZVRvR2V0QUZyYWdtZW50T25UaGVDdXJyZW50UGFnZShkcml2
ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCi0gICAgbG9jYXRp
b24gPSBkcml2ZXIuY3VycmVudF91cmwKLSAgICBkcml2ZXIuZ2V0KGxvY2F0aW9uICsgIiN0ZXh0
IikKLSAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaWQxIikKKyMgZGVm
IHRlc3RTaG91bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBhZ2UoZHJpdmVyLCBw
YWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisjICAgICBsb2NhdGlv
biA9IGRyaXZlci5jdXJyZW50X3VybAorIyAgICAgZHJpdmVyLmdldChsb2NhdGlvbiArICIjdGV4
dCIpCisjICAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaWQxIikKIAog
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQot
QHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQotZGVm
IHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0RG9lc05vdFJlc29sdmUoZHJpdmVy
KToKLSAgICAjICBPZiBjb3Vyc2UsIHdlJ3JlIHVwIHRoZSBjcmVlayBpZiB0aGlzIGV2ZXIgZG9l
cyBnZXQgcmVnaXN0ZXJlZAotICAgIGRyaXZlci5nZXQoImh0dHA6Ly93d3cudGhpc3VybGRvZXNu
b3RleGlzdC5jb214LyIpCisjIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJE
cml2ZXJFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRy
aXZlckV4Y2VwdGlvbikKKyMgZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0
RG9lc05vdFJlc29sdmUoZHJpdmVyKToKKyMgICAgICMgIE9mIGNvdXJzZSwgd2UncmUgdXAgdGhl
IGNyZWVrIGlmIHRoaXMgZXZlciBkb2VzIGdldCByZWdpc3RlcmVkCisjICAgICBkcml2ZXIuZ2V0
KCJodHRwOi8vd3d3LnRoaXN1cmxkb2Vzbm90ZXhpc3QuY29teC8iKQogCiAKLUBweXRlc3QubWFy
ay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsu
eGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1kZWYgdGVzdFNob3VsZFJl
dHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgotICAgICMgIEhl
cmUncyBob3BpbmcgdGhhdCB0aGVyZSdzIG5vdGhpbmcgaGVyZS4gVGhlcmUgc2hvdWxkbid0IGJl
Ci0gICAgZHJpdmVyLmdldCgiaHR0cDovL2xvY2FsaG9zdDozMDAxIikKKyMgQHB5dGVzdC5tYXJr
LnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJr
LnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorIyBkZWYgdGVzdFNob3Vs
ZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgorIyAgICAg
IyAgSGVyZSdzIGhvcGluZyB0aGF0IHRoZXJlJ3Mgbm90aGluZyBoZXJlLiBUaGVyZSBzaG91bGRu
J3QgYmUKKyMgICAgIGRyaXZlci5nZXQoImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMSIpCiAKICMgZGVm
IHRlc3RTaG91bGRCZUFibGVUb0xvYWRBUGFnZVdpdGhGcmFtZXNldHNBbmRXYWl0VW50aWxBbGxG
cmFtZXNBcmVMb2FkZWQoKSB7CiAjICAgICBkcml2ZXIuZ2V0KHBhZ2VzLmZyYW1lc2V0UGFnZSkK
QEAgLTgxLDU1ICs4MSw1NSBAQCBkZWYgdGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRo
YXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgogIyAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIu
dGl0bGUsIGFueU9mKGVxdWFsVG8ob3JpZ2luYWxUaXRsZSksIGVxdWFsVG8oIldlIExlYXZlIEZy
b20gSGVyZSIpKSk7CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVmIHRlc3RTaG91
bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6
Ci0gICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisjIEBweXRlc3QubWFyay54ZmFpbF9z
YWZhcmkKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhp
c3RvcnkoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikK
IAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIp
LnN1Ym1pdCgpCi0gICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lz
KCJXZSBBcnJpdmUgSGVyZSIpKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwg
dmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyMgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVy
LCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkKIAotICAgIGRyaXZlci5i
YWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCisj
ICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2
ZSBGcm9tIEhlcmUiCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVmIHRlc3RTaG91
bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnlJblByZXNlbmNlT2ZJZnJh
bWVzKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyMg
QHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdh
dGVCYWNrSW5UaGVCcm93c2VySGlzdG9yeUluUHJlc2VuY2VPZklmcmFtZXMoZHJpdmVyLCBwYWdl
cyk6CisjICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCiAKLSAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50KGJ5PUJ5Lk5BTUUsIHZhbHVlPSJzYW1lV2luZG93IikuY2xpY2soKQorIyAgICAg
ZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT0ic2FtZVdpbmRvdyIpLmNsaWNr
KCkKIAotICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBoYXMgaWZyYW1lcyIK
KyMgICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBoYXMgaWZyYW1lcyIKIAot
ICAgIGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0
IFBhZ2UiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09
ICJYSFRNTCBUZXN0IFBhZ2UiCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlRm9y
d2FyZHNJblRoZUJyb3dzZXJIaXN0b3J5KGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQo
ImZvcm1QYWdlLmh0bWwiKQorIyBkZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdhdGVGb3J3YXJk
c0luVGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKIAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVl
PSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCi0gICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVu
dGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorIyAgICAgZHJpdmVyLmZpbmRfZWxl
bWVudChieT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyMgICAgIFdlYkRy
aXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkK
IAotICAgIGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2
ZSBGcm9tIEhlcmUiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRp
dGxlID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCiAKLSAgICBkcml2ZXIuZm9yd2FyZCgpCi0gICAg
YXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisjICAgICBkcml2ZXIuZm9y
d2FyZCgpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIKIAog
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfaWUKLUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJ1bj1G
YWxzZSkKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocnVuPUZhbHNlKQotQHB5dGVzdC5tYXJr
LnhmYWlsX2Nocm9tZShydW49RmFsc2UpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdl
KHJ1bj1GYWxzZSkKLWRlZiB0ZXN0U2hvdWxkTm90SGFuZ2lmRG9jdW1lbnRPcGVuQ2FsbElzTmV2
ZXJGb2xsb3dlZEJ5RG9jdW1lbnRDbG9zZUNhbGwoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMu
bG9hZCgiZG9jdW1lbnRfd3JpdGVfaW5fb25sb2FkLmh0bWwiKQotICAgIGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuWFBBVEgsICIvL2JvZHkiKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKKyMgQHB5
dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocnVuPUZhbHNlKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
cmVtb3RlKHJ1bj1GYWxzZSkKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShydW49RmFsc2Up
CisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocnVuPUZhbHNlKQorIyBkZWYgdGVz
dFNob3VsZE5vdEhhbmdpZkRvY3VtZW50T3BlbkNhbGxJc05ldmVyRm9sbG93ZWRCeURvY3VtZW50
Q2xvc2VDYWxsKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgiZG9jdW1lbnRfd3Jp
dGVfaW5fb25sb2FkLmh0bWwiKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwg
Ii8vYm9keSIpCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVUb1JlZnJlc2hBUGFnZShkcml2ZXIs
IHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisjIGRlZiB0ZXN0U2hv
dWxkQmVBYmxlVG9SZWZyZXNoQVBhZ2UoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2Fk
KCJ4aHRtbFRlc3QuaHRtbCIpCiAKLSAgICBkcml2ZXIucmVmcmVzaCgpCisjICAgICBkcml2ZXIu
cmVmcmVzaCgpCiAKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2Ui
CisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vc2NyaXB0X3Bpbm5pbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2NyaXB0
X3Bpbm5pbmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li41ZWY5Y2UzYTdmNWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2NyaXB0X3Bpbm5p
bmdfdGVzdHMucHkKQEAgLTAsMCArMSw2OSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUg
RnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRv
ciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVk
IHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBj
b3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIp
OyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGgg
dGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMK
KyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5s
ZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAor
IyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv
biBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBP
RiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5z
ZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQg
bGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJv
bSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgSmF2YXNjcmlwdEV4Y2VwdGlvbgor
CisKK2RlZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRfcGlubmluZyhkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZlci5waW5uZWRfc2Ny
aXB0cyA9IHt9CisgICAgc2NyaXB0X2tleSA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gJ2kg
bGlrZSBjaGVlc2UnOyIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoc2Ny
aXB0X2tleSkKKworICAgIGFzc2VydCByZXN1bHQgPT0gJ2kgbGlrZSBjaGVlc2UnCisKKworZGVm
IHRlc3Rfc2hvdWxkX2FsbG93X3Bpbm5lZF9zY3JpcHRzX3RvX3Rha2VfYXJndW1lbnRzKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVy
LnBpbm5lZF9zY3JpcHRzID0ge30KKyAgICBoZWxsbyA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1
cm4gYXJndW1lbnRzWzBdIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCho
ZWxsbywgImNoZWVzZSIpCisKKyAgICBhc3NlcnQgcmVzdWx0ID09ICJjaGVlc2UiCisKKworZGVm
IHRlc3Rfc2hvdWxkX2xpc3RfYWxsX3Bpbm5lZF9zY3JpcHRzKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnBpbm5lZF9zY3JpcHRz
ID0ge30KKyAgICBleHBlY3RlZCA9IFtdCisgICAgZXhwZWN0ZWQuYXBwZW5kKGRyaXZlci5waW5f
c2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpLmlkKQorICAgIGV4cGVjdGVkLmFwcGVuZChk
cml2ZXIucGluX3NjcmlwdCgicmV0dXJuICdjaGVlc2UnOyIpLmlkKQorICAgIGV4cGVjdGVkLmFw
cGVuZChkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuIDQyOyIpLmlkKQorCisgICAgcmVzdWx0ID0g
ZHJpdmVyLmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGV4cGVjdGVkID09IHJlc3Vs
dAorCisKK2RlZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRzX3RvX2JlX3VucGlubmVkKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVy
LnBpbm5lZF9zY3JpcHRzID0ge30KKyAgICBjaGVlc2UgPSBkcml2ZXIucGluX3NjcmlwdCgicmV0
dXJuICdjaGVlc2UnOyIpCisgICAgZHJpdmVyLnVucGluKGNoZWVzZSkKKyAgICByZXN1bHRzID0g
ZHJpdmVyLmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGNoZWVzZSBub3QgaW4gcmVz
dWx0cworCisKK2RlZiB0ZXN0X2NhbGxpbmdfdW5waW5uZWRfc2NyaXB0X2NhdXNlc19lcnJvcihk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGNo
ZWVzZSA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gJ2JyaWUnOyIpCisgICAgZHJpdmVyLnVu
cGluKGNoZWVzZSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSmF2YXNjcmlwdEV4Y2VwdGlvbik6
CisgICAgICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdChjaGVlc2UpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vc2VsZWN0X2NsYXNzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190ZXN0
cy5weQppbmRleCA1MmI3ZDliOThlMWMuLjMxNTI2YWQ0MmNkMiAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2NsYXNzX3Rl
c3RzLnB5CkBAIC05MSwyMCArOTEsMjAgQEAgZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2lu
Z2xlKGRyaXZlciwgcGFnZXMpOgogICAgICAgICAgICAgYXNzZXJ0IHNlbC5maXJzdF9zZWxlY3Rl
ZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCiAKIAotQHB5dGVzdC5tYXJrLnhm
YWlsX2Nocm9tZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJv
bWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9t
aXVtZWRnZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVk
cml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQot
ZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2hvdWxkTm9ybWFsaXplU3BhY2VzKGRyaXZlciwg
cGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQotCi0gICAgZm9yIHNlbGVj
dCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzV2l0aFNwYWNlc106Ci0gICAgICAgIHNlbCA9IFNlbGVj
dChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkKLSAgICAgICAg
Zm9yIHggaW4gcmFuZ2UobGVuKHNlbGVjdFsndmFsdWVzJ10pKToKLSAgICAgICAgICAgIHByaW50
KHNlbGVjdFsndmFsdWVzJ11beF0pCi0gICAgICAgICAgICBzZWwuc2VsZWN0X2J5X3Zpc2libGVf
dGV4dChzZWxlY3RbJ3ZhbHVlcyddW3hdKQotICAgICAgICAgICAgYXNzZXJ0IHNlbC5maXJzdF9z
ZWxlY3RlZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCisjIEBweXRlc3QubWFy
ay54ZmFpbF9jaHJvbWUoCisjICAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcv
cC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQorIyBAcHl0ZXN0Lm1hcmsueGZh
aWxfY2hyb21pdW1lZGdlKAorIyAgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3Jn
L3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKKyMgQHB5dGVzdC5tYXJrLnhm
YWlsX3NhZmFyaQorIyBkZWYgdGVzdFNlbGVjdEJ5VmlzaWJsZVRleHRTaG91bGROb3JtYWxpemVT
cGFjZXMoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikK
KworIyAgICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzV2l0aFNwYWNlc106Cisj
ICAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0
WyduYW1lJ10pKQorIyAgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3RbJ3ZhbHVlcydd
KSk6CisjICAgICAgICAgICAgIHByaW50KHNlbGVjdFsndmFsdWVzJ11beF0pCisjICAgICAgICAg
ICAgIHNlbC5zZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11beF0pCisjICAg
ICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rfc2VsZWN0ZWRfb3B0aW9uLnRleHQgPT0gc2VsZWN0
Wyd2YWx1ZXMnXVt4XQogCiAKIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJlYXNvbj0naHR0
cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTQwMycpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0
cy5weQppbmRleCA4NWViMjQ3YjI5ODYuLjk4NTA5YjE0MTUyNSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3dpbmRvd190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5CkBAIC0x
NCwzMCArMTQsMzAgQEAKICMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlCiAjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz
aW9ucyBhbmQgbGltaXRhdGlvbnMKICMgdW5kZXIgdGhlIExpY2Vuc2UuCi1pbXBvcnQgb3MKKwog
aW1wb3J0IHB5dGVzdAogCiBmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBX
ZWJEcml2ZXJFeGNlcHRpb24KIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdCBp
bXBvcnQgV2ViRHJpdmVyV2FpdAogCiAKLUBweXRlc3QubWFyay54ZmFpbF9pZQotQHB5dGVzdC5t
YXJrLnhmYWlsX2Nocm9taXVtZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCi1AcHl0ZXN0
Lm1hcmsueGZhaWxfZmlyZWZveChyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCi1AcHl0ZXN0Lm1h
cmsueGZhaWxfcmVtb3RlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKLWRlZiB0ZXN0U2hvdWxk
TWF4aW1pemVUaGVXaW5kb3coZHJpdmVyKToKLSAgICByZXNpemVfdGltZW91dCA9IDUKLSAgICB3
YWl0ID0gV2ViRHJpdmVyV2FpdChkcml2ZXIsIHJlc2l6ZV90aW1lb3V0KQotICAgIG9sZF9zaXpl
ID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgZHJpdmVyLnNldF93aW5kb3dfc2l6ZSgy
MDAsIDIwMCkKLSAgICB3YWl0LnVudGlsKAotICAgICAgICBsYW1iZGEgZHI6IGRyLmdldF93aW5k
b3dfc2l6ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0aCJdICE9IDIwMCBhbmQgb2xk
X3NpemVbImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCi0gICAgc2l6ZSA9IGRyaXZlci5nZXRf
d2luZG93X3NpemUoKQotICAgIGRyaXZlci5tYXhpbWl6ZV93aW5kb3coKQotICAgIHdhaXQudW50
aWwobGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAhPSBzaXplKQotICAgIG5ld19zaXpl
ID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgYXNzZXJ0IG5ld19zaXplWyJ3aWR0aCJd
ID4gc2l6ZVsid2lkdGgiXQotICAgIGFzc2VydCBuZXdfc2l6ZVsiaGVpZ2h0Il0gPiBzaXplWyJo
ZWlnaHQiXQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2No
cm9taXVtZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIEBweXRlc3QubWFyay54ZmFp
bF9maXJlZm94KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKKyMgQHB5dGVzdC5tYXJrLnhmYWls
X3JlbW90ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIGRlZiB0ZXN0U2hvdWxkTWF4aW1p
emVUaGVXaW5kb3coZHJpdmVyKToKKyMgICAgIHJlc2l6ZV90aW1lb3V0ID0gNQorIyAgICAgd2Fp
dCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCByZXNpemVfdGltZW91dCkKKyMgICAgIG9sZF9zaXpl
ID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIuc2V0X3dpbmRvd19zaXpl
KDIwMCwgMjAwKQorIyAgICAgd2FpdC51bnRpbCgKKyMgICAgICAgICBsYW1iZGEgZHI6IGRyLmdl
dF93aW5kb3dfc2l6ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0aCJdICE9IDIwMCBh
bmQgb2xkX3NpemVbImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCisjICAgICBzaXplID0gZHJp
dmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIubWF4aW1pemVfd2luZG93KCkKKyMg
ICAgIHdhaXQudW50aWwobGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAhPSBzaXplKQor
IyAgICAgbmV3X3NpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyMgICAgIGFzc2VydCBu
ZXdfc2l6ZVsid2lkdGgiXSA+IHNpemVbIndpZHRoIl0KKyMgICAgIGFzc2VydCBuZXdfc2l6ZVsi
aGVpZ2h0Il0gPiBzaXplWyJoZWlnaHQiXQogCiAKIGRlZiB0ZXN0X3Nob3VsZF9nZXRfdGhlX3Np
emVfb2ZfdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CkBAIC0xMTIsMzcgKzExMiwzNyBAQCBk
ZWYgdGVzdF9zaG91bGRfc2V0X3RoZV9yZWN0X29mX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIp
OgogICAgIGFzc2VydCBuZXdfcmVjdC5nZXQoJ2hlaWdodCcpID09IHRhcmdldF9oZWlnaHQKIAog
Ci1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBp
bXBsZW1lbnRlZCcpCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKG9zLmVudmlyb24uZ2V0KCdUUkFWSVMn
KSA9PSAndHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21t
YW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCi1AcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVy
X3Rlc3QKLWRlZiB0ZXN0X3Nob3VsZF9mdWxsc2NyZWVuX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2
ZXIpOgotICAgIHN0YXJ0X3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2lu
ZG93LmlubmVyV2lkdGg7JykKLSAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoJ3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7JykKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3Nh
ZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCisjIEBweXRl
c3QubWFyay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0cnVlJywKKyMgICAg
ICAgICAgICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBjYXVzZXMgVHJhdmlz
IHRvIGhhbmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QKKyMgZGVmIHRl
c3Rfc2hvdWxkX2Z1bGxzY3JlZW5fdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CisjICAgICBz
dGFydF93aWR0aCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lcldp
ZHRoOycpCisjICAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVy
biB3aW5kb3cuaW5uZXJIZWlnaHQ7JykKIAotICAgIGRyaXZlci5mdWxsc2NyZWVuX3dpbmRvdygp
CisjICAgICBkcml2ZXIuZnVsbHNjcmVlbl93aW5kb3coKQogCi0gICAgV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDIpXAotICAgICAgICAudW50aWwobGFtYmRhIGQ6IGRyaXZlci5leGVjdXRlX3Njcmlw
dCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpID4gc3RhcnRfd2lkdGgpCisjICAgICBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMilcCisjICAgICAgICAgLnVudGlsKGxhbWJkYSBkOiBkcml2ZXIu
ZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKSA+IHN0YXJ0X3dpZHRo
KQogCi0gICAgZW5kX3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93
LmlubmVyV2lkdGg7JykKLSAgICBlbmRfaGVpZ2h0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdy
ZXR1cm4gd2luZG93LmlubmVySGVpZ2h0OycpCisjICAgICBlbmRfd2lkdGggPSBkcml2ZXIuZXhl
Y3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKQorIyAgICAgZW5kX2hlaWdo
dCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDsnKQog
Ci0gICAgZHJpdmVyLnF1aXQoKSAgIyBLaWxsIGRyaXZlciBzbyB3ZSBhcmVuJ3QgcnVubmluZyBm
dWxsc2NyZWVuIGFmdGVyCisjICAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdl
IGFyZW4ndCBydW5uaW5nIGZ1bGxzY3JlZW4gYWZ0ZXIKIAotICAgIGFzc2VydCBlbmRfd2lkdGgg
PiBzdGFydF93aWR0aAotICAgIGFzc2VydCBlbmRfaGVpZ2h0ID4gc3RhcnRfaGVpZ2h0CisjICAg
ICBhc3NlcnQgZW5kX3dpZHRoID4gc3RhcnRfd2lkdGgKKyMgICAgIGFzc2VydCBlbmRfaGVpZ2h0
ID4gc3RhcnRfaGVpZ2h0CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9V2Vi
RHJpdmVyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmlt
aXplIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKLUBweXRlc3QubWFyay5za2lwaWYob3MuZW52
aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0cnVlJywKLSAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSdNaW5pbWl6ZSBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCi1AcHl0ZXN0Lm1hcmsu
bm9fZHJpdmVyX2FmdGVyX3Rlc3QKLWRlZiB0ZXN0X3Nob3VsZF9taW5pbWl6ZV90aGVfY3VycmVu
dF93aW5kb3coZHJpdmVyKToKLSAgICBkcml2ZXIubWluaW1pemVfd2luZG93KCkKLSAgICBtaW5p
bWl6ZWQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5oaWRkZW47JykK
LSAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4ndCBydW5uaW5nIG1p
bmltaXplZCBhZnRlcgotCi0gICAgYXNzZXJ0IG1pbmltaXplZCBpcyBUcnVlCisjIEBweXRlc3Qu
bWFyay54ZmFpbF9zYWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyMgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1hbmQgbm90IGltcGxlbWVudGVk
JykKKyMgQHB5dGVzdC5tYXJrLnNraXBpZihvcy5lbnZpcm9uLmdldCgnVFJBVklTJykgPT0gJ3Ry
dWUnLAorIyAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFuZCBjYXVz
ZXMgVHJhdmlzIHRvIGhhbmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QK
KyMgZGVmIHRlc3Rfc2hvdWxkX21pbmltaXplX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgor
IyAgICAgZHJpdmVyLm1pbmltaXplX3dpbmRvdygpCisjICAgICBtaW5pbWl6ZWQgPSBkcml2ZXIu
ZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5oaWRkZW47JykKKyMgICAgIGRyaXZlci5x
dWl0KCkgICMgS2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1bm5pbmcgbWluaW1pemVkIGFmdGVy
CisKKyMgICAgIGFzc2VydCBtaW5pbWl6ZWQgaXMgVHJ1ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24gYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvaW1wb3J0ZXIuanNvbgppbmRleCBmNDAwZWY1YTM5NTcuLmVhYTgwMTg3MjMwNSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24KKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24KQEAgLTEsNiArMSw2IEBA
CiB7CiAgICAgInJlcG9zaXRvcnkiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMuZ2l0IiwKLSAgICAicmV2aXNpb24iOiAiYjU3ZGE5N2ZjMDVlNTQ0MGFlNjc1MDI3
ZGQ0NWEyNmJlNDhlMmRiZCIsCisgICAgInJldmlzaW9uIjogImViOGJkY2U1NTJhMmE5YjEwMDEw
Zjc3NTVlZDlkOGQwNzczZDU0OGUiLAogICAgICJwYXRoc190b19pbXBvcnQiOiBbCiAgICAgICAg
ICJ0b29scy93ZWJkcml2ZXIiLAogICAgICAgICAidG9vbHMvd3B0cnVubmVyIiwKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZl
ci93ZWJkcml2ZXIvX19pbml0X18ucHkKaW5kZXggZDg2MGI5ZWEyNTMzLi5hODE3NTE0MDdlNzAg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL19faW5pdF9fLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CkBAIC02LDYgKzYsNyBAQCBmcm9t
IC5jbGllbnQgaW1wb3J0ICgKICAgICBGaW5kLAogICAgIEZyYW1lLAogICAgIFNlc3Npb24sCisg
ICAgU2hhZG93Um9vdCwKICAgICBUaW1lb3V0cywKICAgICBXaW5kb3cpCiBmcm9tIC5lcnJvciBp
bXBvcnQgKApAQCAtMzQsMyArMzUsNSBAQCBmcm9tIC5lcnJvciBpbXBvcnQgKAogICAgIFVua25v
d25NZXRob2RFeGNlcHRpb24sCiAgICAgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24sCiAg
ICAgV2ViRHJpdmVyRXhjZXB0aW9uKQorZnJvbSAuYmlkaSBpbXBvcnQgKAorICAgIEJpZGlTZXNz
aW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvYmlkaS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi4wYmNkNDg5Y2QzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpLnB5CkBAIC0w
LDAgKzEsNTYgQEAKK2ltcG9ydCBjb3B5CitpbXBvcnQgd2Vic29ja2V0cworCitmcm9tIC4gaW1w
b3J0IGNsaWVudAorCitjbGFzcyBCaWRpU2Vzc2lvbihjbGllbnQuU2Vzc2lvbik6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIGhvc3QsCisgICAgICAgICAgICAgICAg
IHBvcnQsCisgICAgICAgICAgICAgICAgIHVybF9wcmVmaXg9Ii8iLAorICAgICAgICAgICAgICAg
ICBjYXBhYmlsaXRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uPU5vbmUpOgor
ICAgICAgICAiIiIKKyAgICAgICAgQWRkIGEgY2FwYWJpbGl0eSBvZiAid2ViU29ja2V0VXJsIjog
VHJ1ZSB0byBlbmFibGUKKyAgICAgICAgQmlkaXJlY3Rpb25hbCBjb25uZWN0aW9uIGluIHNlc3Np
b24gY3JlYXRpb24uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLndlYnNvY2tldF90cmFuc3Bv
cnQgPSBOb25lCisgICAgICAgIGNhcGFiaWxpdGllcyA9IHNlbGYuX2VuYWJsZV93ZWJzb2NrZXQo
Y2FwYWJpbGl0aWVzKQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGhvc3QsIHBvcnQsIHVybF9w
cmVmaXgsIGNhcGFiaWxpdGllcywgZXh0ZW5zaW9uKQorCisgICAgZGVmIF9lbmFibGVfd2Vic29j
a2V0KHNlbGYsIGNhcHMpOgorICAgICAgICBpZiBjYXBzOgorICAgICAgICAgICAgY2Fwcy5zZXRk
ZWZhdWx0KCJhbHdheXNNYXRjaCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNhcHMgPSB7ImFsd2F5c01hdGNoIjogeyJ3ZWJT
b2NrZXRVcmwiOiBUcnVlfX0KKyAgICAgICAgcmV0dXJuIGNhcHMKKworICAgIGRlZiBtYXRjaChz
ZWxmLCBjYXBhYmlsaXRpZXMpOgorICAgICAgICAiIiJFeHBlbnNpdmUgbWF0Y2ggdG8gc2VlIGlm
IGNhcGFiaWxpdGllcyBpcyB0aGUgc2FtZSBhcyBwcmV2aW91c2x5CisgICAgICAgIHJlcXVlc3Rl
ZCBjYXBhYmlsaXRpZXMgaWYgd2Vic29ja2V0IHdvdWxkIGJlIGVuYWJsZWQuCisKKyAgICAgICAg
OnJldHVybiBCb29sZWFuLgorICAgICAgICAiIiIKKyAgICAgICAgY2FwcyA9IGNvcHkuZGVlcGNv
cHkoY2FwYWJpbGl0aWVzKQorICAgICAgICBjYXBzID0gc2VsZi5fZW5hYmxlX3dlYnNvY2tldChj
YXBzKQorICAgICAgICByZXR1cm4gc3VwZXIoKS5tYXRjaChjYXBzKQorCisgICAgYXN5bmMgZGVm
IHN0YXJ0KHNlbGYpOgorICAgICAgICAiIiJTdGFydCBhIG5ldyBXZWJEcml2ZXIgQmlkaXJlY3Rp
b25hbCBzZXNzaW9uCisgICAgICAgIHdpdGggd2Vic29ja2V0IGNvbm5lY3RlZC4KKworICAgICAg
ICA6cmV0dXJuOiBEaWN0aW9uYXJ5IHdpdGggYGNhcGFiaWxpdGllc2AgYW5kIGBzZXNzaW9uSWRg
LgorICAgICAgICAiIiIKKyAgICAgICAgdmFsdWUgPSBzdXBlcigpLnN0YXJ0KCkKKworICAgICAg
ICBpZiBub3Qgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0IG9yIG5vdCBzZWxmLndlYnNvY2tldF90
cmFuc3BvcnQub3BlbjoKKyAgICAgICAgICAgIHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydCA9IGF3
YWl0IHdlYnNvY2tldHMuY29ubmVjdChzZWxmLmNhcGFiaWxpdGllc1sid2ViU29ja2V0VXJsIl0p
CisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgYXN5bmMgZGVmIGVuZChzZWxmKToKKyAgICAg
ICAgIiIiQ2xvc2Ugd2Vic29ja2V0IGNvbm5lY3Rpb24gZmlyc3QgYmVmb3JlIGNsb3Npbmcgc2Vz
c2lvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydDoK
KyAgICAgICAgICAgIGF3YWl0IHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydC5jbG9zZSgpCisgICAg
ICAgICAgICBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQgPSBOb25lCisgICAgICAgIHN1cGVyKCku
ZW5kKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJk
cml2ZXIvd2ViZHJpdmVyL2JpZGkvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTdjNTYzMzJmOTAyCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvYmlkaS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDMgQEAKKyMgZmxha2U4OiBub3FhCisK
K2Zyb20gLmNsaWVudCBpbXBvcnQgQmlkaVNlc3Npb24KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvY2xpZW50LnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIv
YmlkaS9jbGllbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40
MzA5YTI1ZTM4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVudC5weQpAQCAtMCwwICsxLDM5
MyBAQAoraW1wb3J0IGFzeW5jaW8KK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBqc29uCitpbXBv
cnQgbG9nZ2luZworaW1wb3J0IHN5cworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRp
Y3QKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIEF3YWl0YWJsZSwgQ2FsbGFibGUsIENvcm91dGlu
ZSwgTGlzdCwgT3B0aW9uYWwsIE1hcHBpbmcsIE11dGFibGVNYXBwaW5nCitmcm9tIHVybGxpYi5w
YXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UKKworaW1wb3J0IHdlYnNvY2tldHMKKworCits
b2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigid2ViZHJpdmVyLmJpZGkiKQorCisKK2NsYXNzIEJp
ZGlFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXJyOiBzdHIs
IG1zZzogc3RyLCBzdGFjazogT3B0aW9uYWxbc3RyXSA9IE5vbmUpOgorICAgICAgICBzZWxmLmVy
ciA9IGVycgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBzZWxmLnN0YWNrID0gc3Rh
Y2sKKworCitkZWYgZ2V0X3J1bm5pbmdfbG9vcCgpIC0+IGFzeW5jaW8uQWJzdHJhY3RFdmVudExv
b3A6CisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNyk6CisgICAgICAgIHJldHVybiBh
c3luY2lvLmdldF9ydW5uaW5nX2xvb3AoKQorICAgICMgVW5saWtlIHRoZSBhYm92ZSwgdGhpcyB3
aWxsIGFjdHVhbGx5IGNyZWF0ZSBhbiBldmVudCBsb29wCisgICAgIyBpZiB0aGVyZSBpc24ndCBv
bmU7IGhvcGVmdWxseSBydW5uaW5nIHRlc3RzIGluIFB5dGhvbiA+PSAzLjcKKyAgICAjIHdpbGwg
YWxsb3cgdXMgdG8gY2F0Y2ggYW55IGJlaGF2aW91ciBkaWZmZXJlbmNlCisgICAgcmV0dXJuIGFz
eW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQorCisKK2NsYXNzIEJpZGlTZXNzaW9uOgorICAgICIiIkEg
V2ViRHJpdmVyIEJpRGkgc2Vzc2lvbi4KKworICAgIFRoaXMgaXMgdGhlIG1haW4gcmVwcmVzZW50
YXRpb24gb2YgYSBCaURpIHNlc3Npb24gYW5kIHByb3ZpZGVzIHRoZQorICAgIGludGVyZmFjZSBm
b3IgcnVubmluZyBjb21tYW5kcyBpbiB0aGUgc2Vzc2lvbiwgYW5kIGZvciBhdHRhY2hpbmcKKyAg
ICBldmVudCBoYW5kbGVycyB0byB0aGUgc2Vzc2lvbi4gRm9yIGV4YW1wbGU6CisKKyAgICBhc3lu
YyBkZWYgb25fbG9nKGRhdGEpOgorICAgICAgICBwcmludChkYXRhKQorCisgICAgc2Vzc2lvbiA9
IEJpZGlTZXNzaW9uKCJ3czovL2xvY2FsaG9zdDo0NDQ1IiwgY2FwYWJpbGl0aWVzKQorICAgIHNl
c3Npb24uYWRkX2V2ZW50X2xpc3RlbmVyKCJsb2cuZW50cnlBZGRlZCIsIG9uX2xvZykKKyAgICBh
d2FpdCBzZXNzaW9uLnN0YXJ0KCkKKyAgICBhd2FpdCBzZXNzaW9uLnN1YnNjcmliZSgibG9nLmVu
dHJ5QWRkZWQiKQorICAgICMgRG8gc29tZSBzdHVmZiB3aXRoIHRoZSBzZXNzaW9uCisgICAgc2Vz
c2lvbi5lbmQoKQorCisgICAgSWYgdGhlIHNlc3Npb24gaWQgaXMgcHJvdmlkZWQgaXQncyBhc3N1
bWVkIHRoYXQgdGhlIHVuZGVybHlpbmcKKyAgICBXZWJEcml2ZXIgc2Vzc2lvbiB3YXMgYWxyZWFk
eSBjcmVhdGVkLCBhbmQgdGhlIFdlYlNvY2tldCBVUkwgd2FzCisgICAgdGFrZW4gZnJvbSB0aGUg
bmV3IHNlc3Npb24gcmVzcG9uc2UuIElmIG5vIHNlc3Npb24gaWQgaXMgcHJvdmlkZWQsIGl0J3MK
KyAgICBhc3N1bWVkIHRoYXQgYSBCaURpLW9ubHkgc2Vzc2lvbiBzaG91bGQgYmUgY3JlYXRlZCB3
aGVuIHN0YXJ0KCkgaXMgY2FsbGVkLgorCisgICAgSXQgY2FuIGFsc28gYmUgdXNlZCBhcyBhIGNv
bnRleHQgbWFuYWdlciwgd2l0aCB0aGUgV2ViU29ja2V0IHRyYW5zcG9ydAorICAgIGltcGxpY3Rs
eSBiZWluZyBjcmVhdGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgZW50ZXJlZCwgYW5kIGNsb3NlZCB3
aGVuCisgICAgdGhlIGNvbnRleHQgaXMgZXhpdGVkLgorCisgICAgOnBhcmFtIHdlYnNvY2tldF91
cmw6IFdlYlNvY2tldHMgVVJMIG9uIHdoaWNoIHRvIGNvbm5lY3QgdG8gdGhlIHNlc3Npb24uCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZXhjbHVkZXMgYW55IHBhdGggY29tcG9uZW50
LgorICAgIDpwYXJhbSBzZXNzaW9uX2lkOiBTdHJpbmcgaWQgb2YgZXhpc3RpbmcgSFRUUCBzZXNz
aW9uCisgICAgOnBhcmFtIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzIHJlc3BvbnNlIG9mIGV4
aXN0aW5nIHNlc3Npb24KKyAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxpdGllczogRGljdGlv
bmFyeSByZXByZXNlbnRpbmcgdGhlIGNhcGFiaWxpdGllcyByZXF1ZXN0LgorCisgICAgIiIiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgd2Vic29ja2V0X3VybDog
c3RyLAorICAgICAgICAgICAgICAgICBzZXNzaW9uX2lkOiBPcHRpb25hbFtzdHJdID0gTm9uZSwK
KyAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55
XV0gPSBOb25lLAorICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzOiBPcHRp
b25hbFtNYXBwaW5nW3N0ciwgQW55XV0gPSBOb25lLAorICAgICAgICAgICAgICAgICBsb29wOiBP
cHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpOgorICAgICAgICBzZWxm
LnRyYW5zcG9ydDogT3B0aW9uYWxbVHJhbnNwb3J0XSA9IE5vbmUKKworICAgICAgICAjIFRoZSBm
dWxsIFVSTCBmb3IgYSB3ZWJzb2NrZXQgbG9va3MgbGlrZQorICAgICAgICAjIHdzOi8vPGhvc3Q+
Ojxwb3J0Pi9zZXNzaW9uIHdoZW4gd2UncmUgY3JlYXRpbmcgYSBzZXNzaW9uIGFuZAorICAgICAg
ICAjIHdzOi8vPGhvc3Q+Ojxwb3J0Pi9zZXNzaW9uLzxzZXNzaW9uaWQ+IHdoZW4gd2UncmUgY29u
bmVjdGluZyB0byBhbiBleGlzdGluZyBzZXNzaW9uLgorICAgICAgICAjIFRvIGJlIHVzZXIgZnJp
ZW5kbHksIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgY2xhc3Mgd2FzIGNyZWF0ZWQgd2l0aCBl
aXRoZXIgYQorICAgICAgICAjIGZ1bGwgVVJMIGluY2x1ZGluZyB0aGUgcGF0aCwgYW5kIGFsc28g
dGhlIGNhc2Ugd2hlcmUganVzdCBhIHNlcnZlciB1cmwgaXMgcGFzc2VkIGluLgorICAgICAgICBw
YXJzZWRfdXJsID0gdXJscGFyc2Uod2Vic29ja2V0X3VybCkKKyAgICAgICAgaWYgcGFyc2VkX3Vy
bC5wYXRoID09ICIiIG9yIHBhcnNlZF91cmwucGF0aCA9PSAiLyI6CisgICAgICAgICAgICBpZiBz
ZXNzaW9uX2lkIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgd2Vic29ja2V0X3VybCA9IHVybGpv
aW4od2Vic29ja2V0X3VybCwgInNlc3Npb24iKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICB3ZWJzb2NrZXRfdXJsID0gdXJsam9pbih3ZWJzb2NrZXRfdXJsLCBmInNlc3Npb24v
e3Nlc3Npb25faWR9IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNlc3Npb25faWQg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5wYXRoICE9IGYiL3Nl
c3Npb24ve3Nlc3Npb25faWR9IjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cihmIldlYlNvY2tldCBVUkwge3Nlc3Npb25faWR9IGRvZXNuJ3QgbWF0Y2ggc2Vzc2lvbiBpZCIp
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBhcnNlZF91cmwucGF0aCAh
PSAiL3Nlc3Npb24iOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiV2Vi
U29ja2V0IFVSTCB7c2Vzc2lvbl9pZH0gZG9lc24ndCBtYXRjaCBzZXNzaW9uIHVybCIpCisKKyAg
ICAgICAgaWYgc2Vzc2lvbl9pZCBpcyBOb25lIGFuZCBjYXBhYmlsaXRpZXMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUcmllZCB0byBjcmVhdGUgQmlEaS1vbmx5
IHNlc3Npb24gd2l0aCBleGlzdGluZyBjYXBhYmlsaXRpZXMiKQorCisgICAgICAgIHNlbGYud2Vi
c29ja2V0X3VybCA9IHdlYnNvY2tldF91cmwKKyAgICAgICAgc2VsZi5yZXF1ZXN0ZWRfY2FwYWJp
bGl0aWVzID0gcmVxdWVzdGVkX2NhcGFiaWxpdGllcworICAgICAgICBzZWxmLmNhcGFiaWxpdGll
cyA9IGNhcGFiaWxpdGllcworICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBzZXNzaW9uX2lkCisK
KyAgICAgICAgc2VsZi5jb21tYW5kX2lkID0gMAorICAgICAgICBzZWxmLnBlbmRpbmdfY29tbWFu
ZHM6IE11dGFibGVNYXBwaW5nW2ludCwgImFzeW5jaW8uRnV0dXJlW0FueV0iXSA9IHt9CisgICAg
ICAgIHNlbGYuZXZlbnRfbGlzdGVuZXJzOiBNdXRhYmxlTWFwcGluZ1tPcHRpb25hbFtzdHJdLCBM
aXN0W0NhbGxhYmxlW1tzdHIsIE1hcHBpbmdbc3RyLCBBbnldXSwgQW55XV1dID0gZGVmYXVsdGRp
Y3QobGlzdCkKKworICAgICAgICAjIE1vZHVsZXMuCisgICAgICAgICMgRm9yIGVhY2ggbW9kdWxl
LCBoYXZlIGEgcHJvcGVydHkgcmVwcmVzZW50aW5nIHRoYXQgbW9kdWxlCisgICAgICAgIHNlbGYu
c2Vzc2lvbiA9IFNlc3Npb24oc2VsZikKKworICAgICAgICBpZiBsb29wIGlzIE5vbmU6CisgICAg
ICAgICAgICBsb29wID0gZ2V0X3J1bm5pbmdfbG9vcCgpCisgICAgICAgIHNlbGYubG9vcCA9IGxv
b3AKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2h0dHAoY2xzLAorICAgICAgICAg
ICAgICAgICAgc2Vzc2lvbl9pZDogc3RyLAorICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVz
OiBNYXBwaW5nW3N0ciwgQW55XSwKKyAgICAgICAgICAgICAgICAgIGxvb3A6IE9wdGlvbmFsW2Fz
eW5jaW8uQWJzdHJhY3RFdmVudExvb3BdID0gTm9uZSkgLT4gIkJpZGlTZXNzaW9uIjoKKyAgICAg
ICAgIiIiQ3JlYXRlIGEgQmlEaSBzZXNzaW9uIGZyb20gYW4gZXhpc3RpbmcgSFRUUCBzZXNzaW9u
CisKKyAgICAgICAgOnBhcmFtIHNlc3Npb25faWQ6IFN0cmluZyBpZCBvZiB0aGUgc2Vzc2lvbgor
ICAgICAgICA6cGFyYW0gY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXMgcmV0dXJuZWQgaW4gdGhl
IE5ldyBTZXNzaW9uIEhUVFAgcmVzcG9uc2UuIiIiCisgICAgICAgIHdlYnNvY2tldF91cmwgPSBj
YXBhYmlsaXRpZXMuZ2V0KCJ3ZWJTb2NrZXRVcmwiKQorICAgICAgICBpZiB3ZWJzb2NrZXRfdXJs
IGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyB3ZWJTb2NrZXRVcmwg
Zm91bmQgaW4gY2FwYWJpbGl0aWVzIikKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uod2Vic29j
a2V0X3VybCwgc3RyKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIndlYlNvY2tldFVy
bCBpcyBub3QgYSBzdHJpbmciKQorICAgICAgICByZXR1cm4gY2xzKHdlYnNvY2tldF91cmwsIHNl
c3Npb25faWQ9c2Vzc2lvbl9pZCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcywgbG9vcD1sb29w
KQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGJpZGlfb25seShjbHMsCisgICAgICAgICAg
ICAgICAgICB3ZWJzb2NrZXRfdXJsOiBzdHIsCisgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRf
Y2FwYWJpbGl0aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55XV0sCisgICAgICAgICAgICAg
ICAgICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpIC0+
ICJCaWRpU2Vzc2lvbiI6CisgICAgICAgICIiIkNyZWF0ZSBhIEJpRGkgc2Vzc2lvbiB3aGVyZSB0
aGVyZSBpcyBubyBleGlzdGluZyBIVFRQIHNlc3Npb24KKworICAgICAgICA6cGFyYW0gd2ViZG9j
a2V0X3VybDogVVJMIHRvIHRoZSBXZWJTb2NrZXQgc2VydmVyIGxpc3RlbmluZyBmb3IgQmlEaSBj
b25uZWN0aW9ucworICAgICAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxpdGllczogQ2FwYWJp
bGl0aWVzIHJlcXVlc3QgZm9yIGVzdGFibGlzaGluZyB0aGUgc2Vzc2lvbi4iIiIKKyAgICAgICAg
cmV0dXJuIGNscyh3ZWJzb2NrZXRfdXJsLCByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzPXJlcXVlc3Rl
ZF9jYXBhYmlsaXRpZXMsIGxvb3A9bG9vcCkKKworICAgIGFzeW5jIGRlZiBfX2FlbnRlcl9fKHNl
bGYpIC0+ICJCaWRpU2Vzc2lvbiI6CisgICAgICAgIGF3YWl0IHNlbGYuc3RhcnQoKQorICAgICAg
ICByZXR1cm4gc2VsZgorCisgICAgYXN5bmMgZGVmIF9fYWV4aXRfXyhzZWxmLCAqYXJnczogQW55
KSAtPiBOb25lOgorICAgICAgICBhd2FpdCBzZWxmLmVuZCgpCisKKyAgICBhc3luYyBkZWYgc3Rh
cnQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgIiIiQ29ubmVjdCB0byB0aGUgV2ViRHJpdmVyIEJp
RGkgcmVtb3RlIHZpYSBXZWJTb2NrZXRzIiIiCisgICAgICAgIHNlbGYudHJhbnNwb3J0ID0gVHJh
bnNwb3J0KHNlbGYud2Vic29ja2V0X3VybCwgc2VsZi5vbl9tZXNzYWdlLCBsb29wPXNlbGYubG9v
cCkKKworICAgICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKKyAgICAgICAgICAgIHNl
bGYuc2Vzc2lvbl9pZCwgc2VsZi5jYXBhYmlsaXRpZXMgPSBhd2FpdCBzZWxmLnNlc3Npb24ubmV3
KHNlbGYucmVxdWVzdGVkX2NhcGFiaWxpdGllcykKKworICAgICAgICBhd2FpdCBzZWxmLnRyYW5z
cG9ydC5zdGFydCgpCisKKyAgICBhc3luYyBkZWYgc2VuZF9jb21tYW5kKHNlbGYsIG1ldGhvZDog
c3RyLCBwYXJhbXM6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBBd2FpdGFibGVbTWFwcGluZ1tzdHIs
IEFueV1dOgorICAgICAgICAiIiJTZW5kIGEgY29tbWFuZCB0byB0aGUgcmVtb3RlIHNlcnZlciIi
IgorICAgICAgICAjIHRoaXMgaXNuJ3QgdGhyZWFkc2FmZQorICAgICAgICBzZWxmLmNvbW1hbmRf
aWQgKz0gMQorICAgICAgICBjb21tYW5kX2lkID0gc2VsZi5jb21tYW5kX2lkCisKKyAgICAgICAg
Ym9keSA9IHsKKyAgICAgICAgICAgICJpZCI6IGNvbW1hbmRfaWQsCisgICAgICAgICAgICAibWV0
aG9kIjogbWV0aG9kLAorICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcworICAgICAgICB9Cisg
ICAgICAgIGFzc2VydCBjb21tYW5kX2lkIG5vdCBpbiBzZWxmLnBlbmRpbmdfY29tbWFuZHMKKyAg
ICAgICAgc2VsZi5wZW5kaW5nX2NvbW1hbmRzW2NvbW1hbmRfaWRdID0gc2VsZi5sb29wLmNyZWF0
ZV9mdXR1cmUoKQorICAgICAgICBhc3NlcnQgc2VsZi50cmFuc3BvcnQgaXMgbm90IE5vbmUKKyAg
ICAgICAgYXdhaXQgc2VsZi50cmFuc3BvcnQuc2VuZChib2R5KQorCisgICAgICAgIHJldHVybiBz
ZWxmLnBlbmRpbmdfY29tbWFuZHNbY29tbWFuZF9pZF0KKworICAgIGFzeW5jIGRlZiBvbl9tZXNz
YWdlKHNlbGYsIGRhdGE6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBOb25lOgorICAgICAgICAiIiJI
YW5kbGUgYSBtZXNzYWdlIGZyb20gdGhlIHJlbW90ZSBzZXJ2ZXIiIiIKKyAgICAgICAgaWYgImlk
IiBpbiBkYXRhOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY29tbWFuZCByZXNwb25zZSBvciBl
cnJvcgorICAgICAgICAgICAgZnV0dXJlID0gc2VsZi5wZW5kaW5nX2NvbW1hbmRzLmdldChkYXRh
WyJpZCJdKQorICAgICAgICAgICAgaWYgZnV0dXJlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcihmIk5vIHBlbmRpbmcgY29tbWFuZCB3aXRoIGlkIHtkYXRhWydpZCdd
fSIpCisgICAgICAgICAgICBpZiAicmVzdWx0IiBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGZ1
dHVyZS5zZXRfcmVzdWx0KGRhdGFbInJlc3VsdCJdKQorICAgICAgICAgICAgZWxpZiAiZXJyb3Ii
IGluIGRhdGEgYW5kICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKGRhdGFbImVycm9yIl0sIHN0cikKKyAgICAgICAgICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShkYXRhWyJtZXNzYWdlIl0sIHN0cikKKyAgICAgICAgICAgICAgICBmdXR1cmUuc2V0
X2V4Y2VwdGlvbihCaWRpRXhjZXB0aW9uKGRhdGFbImVycm9yIl0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyJtZXNzYWdlIl0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmdldCgi
c3RhY2t0cmFjZSIpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQorICAgICAgICBlbGlm
ICJtZXRob2QiIGluIGRhdGEgYW5kICJwYXJhbXMiIGluIGRhdGE6CisgICAgICAgICAgICAjIFRo
aXMgaXMgYW4gZXZlbnQKKyAgICAgICAgICAgIG1ldGhvZCA9IGRhdGFbIm1ldGhvZCJdCisgICAg
ICAgICAgICBsaXN0ZW5lcnMgPSBzZWxmLmV2ZW50X2xpc3RlbmVycy5nZXQobWV0aG9kLCBbXSkK
KyAgICAgICAgICAgIGlmIG5vdCBsaXN0ZW5lcnM6CisgICAgICAgICAgICAgICAgbGlzdGVuZXJz
ID0gc2VsZi5ldmVudF9saXN0ZW5lcnMuZ2V0KE5vbmUsIFtdKQorICAgICAgICAgICAgZm9yIGxp
c3RlbmVyIGluIGxpc3RlbmVyczoKKyAgICAgICAgICAgICAgICBhd2FpdCBsaXN0ZW5lcihtZXRo
b2QsIGRhdGFbInBhcmFtcyJdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQorCisgICAgYXN5bmMgZGVm
IGVuZChzZWxmKSAtPiBOb25lOgorICAgICAgICAiIiJDbG9zZSB3ZWJzb2NrZXQgY29ubmVjdGlv
bi4iIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYudHJhbnNwb3J0IGlzIG5vdCBOb25lCisgICAgICAg
IGF3YWl0IHNlbGYudHJhbnNwb3J0LmVuZCgpCisKKyAgICBkZWYgYWRkX2V2ZW50X2xpc3RlbmVy
KHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBPcHRpb25hbFtzdHJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm46IENhbGxhYmxlW1tzdHIsIE1hcHBpbmdbc3Ry
LCBBbnldXSwgQXdhaXRhYmxlW0FueV1dKSAtPiBOb25lOgorICAgICAgICAiIiJBZGQgYSBsaXN0
ZW5lciBmb3IgdGhlIGV2ZW50IHdpdGggYSBnaXZlbiBuYW1lLgorCisgICAgICAgIElmIG5hbWUg
aXMgTm9uZSwgdGhlIGxpc3RlbmVyIGlzIGNhbGxlZCBmb3IgYWxsIG1lc3NhZ2VzIHRoYXQgYXJl
IG5vdCBvdGhlcndpc2UKKyAgICAgICAgaGFuZGxlZC4KKworICAgICAgICA6cGFyYW0gbmFtZTog
TmFtZSBvZiBldmVudCB0byBsaXN0ZW4gZm9yIG9yIE5vbmUgdG8gcmVnaXN0ZXIgYSBkZWZhdWx0
IGhhbmRsZXIKKyAgICAgICAgOnBhcmFtIGZuOiBBc3luYyBjYWxsYmFjayBmdW5jdGlvbiB0aGF0
IHJlY2VpdmVzIGV2ZW50IGRhdGEKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXZlbnRfbGlz
dGVuZXJzW25hbWVdLmFwcGVuZChmbikKKworCitjbGFzcyBUcmFuc3BvcnQ6CisgICAgIiIiTG93
IGxldmVsIG1lc3NhZ2UgaGFuZGxlciBmb3IgdGhlIFdlYlNvY2tldHMgY29ubmVjdGlvbiIiIgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmw6IHN0ciwKKyAgICAgICAgICAgICAgICAgbXNnX2hh
bmRsZXI6IENhbGxhYmxlW1tNYXBwaW5nW3N0ciwgQW55XV0sIENvcm91dGluZVtBbnksIEFueSwg
Tm9uZV1dLAorICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0
RXZlbnRMb29wXSA9IE5vbmUpOgorICAgICAgICBzZWxmLnVybCA9IHVybAorICAgICAgICBzZWxm
LmNvbm5lY3Rpb246IE9wdGlvbmFsW3dlYnNvY2tldHMuV2ViU29ja2V0Q2xpZW50UHJvdG9jb2xd
ID0gTm9uZQorICAgICAgICBzZWxmLm1zZ19oYW5kbGVyID0gbXNnX2hhbmRsZXIKKyAgICAgICAg
c2VsZi5zZW5kX2J1ZjogTGlzdFtNYXBwaW5nW3N0ciwgQW55XV0gPSBbXQorCisgICAgICAgIGlm
IGxvb3AgaXMgTm9uZToKKyAgICAgICAgICAgIGxvb3AgPSBnZXRfcnVubmluZ19sb29wKCkKKyAg
ICAgICAgc2VsZi5sb29wID0gbG9vcAorCisgICAgICAgIHNlbGYucmVhZF9tZXNzYWdlX3Rhc2s6
IE9wdGlvbmFsW2FzeW5jaW8uVGFza1tBbnldXSA9IE5vbmUKKworICAgIGFzeW5jIGRlZiBzdGFy
dChzZWxmKSAtPiBOb25lOgorICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBhd2FpdCB3ZWJzb2Nr
ZXRzLmNsaWVudC5jb25uZWN0KHNlbGYudXJsKQorICAgICAgICBzZWxmLnJlYWRfbWVzc2FnZV90
YXNrID0gc2VsZi5sb29wLmNyZWF0ZV90YXNrKHNlbGYucmVhZF9tZXNzYWdlcygpKQorCisgICAg
ICAgIGZvciBtc2cgaW4gc2VsZi5zZW5kX2J1ZjoKKyAgICAgICAgICAgIGF3YWl0IHNlbGYuX3Nl
bmQoc2VsZi5jb25uZWN0aW9uLCBtc2cpCisKKyAgICBhc3luYyBkZWYgc2VuZChzZWxmLCBkYXRh
OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgaWYgc2VsZi5jb25uZWN0aW9u
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5fc2VuZChzZWxmLmNvbm5lY3Rp
b24sIGRhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNlbmRfYnVmLmFwcGVu
ZChkYXRhKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGFzeW5jIGRlZiBfc2VuZChjb25uZWN0
aW9uOiB3ZWJzb2NrZXRzLldlYlNvY2tldENsaWVudFByb3RvY29sLCBkYXRhOiBNYXBwaW5nW3N0
ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgbXNnID0ganNvbi5kdW1wcyhkYXRhKQorICAgICAg
ICBsb2dnZXIuZGVidWcoIuKGkiAlcyIsIG1zZykKKyAgICAgICAgYXdhaXQgY29ubmVjdGlvbi5z
ZW5kKG1zZykKKworICAgIGFzeW5jIGRlZiBoYW5kbGUoc2VsZiwgbXNnOiBzdHIpIC0+IE5vbmU6
CisgICAgICAgIGxvZ2dlci5kZWJ1Zygi4oaQICVzIiwgbXNnKQorICAgICAgICBkYXRhID0ganNv
bi5sb2Fkcyhtc2cpCisgICAgICAgIGF3YWl0IHNlbGYubXNnX2hhbmRsZXIoZGF0YSkKKworICAg
IGFzeW5jIGRlZiBlbmQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgaWYgc2VsZi5jb25uZWN0aW9u
OgorICAgICAgICAgICAgYXdhaXQgc2VsZi5jb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgICAg
IHNlbGYuY29ubmVjdGlvbiA9IE5vbmUKKworICAgIGFzeW5jIGRlZiByZWFkX21lc3NhZ2VzKHNl
bGYpIC0+IE5vbmU6CisgICAgICAgIGFzc2VydCBzZWxmLmNvbm5lY3Rpb24gaXMgbm90IE5vbmUK
KyAgICAgICAgYXN5bmMgZm9yIG1zZyBpbiBzZWxmLmNvbm5lY3Rpb246CisgICAgICAgICAgICBp
ZiBub3QgaXNpbnN0YW5jZShtc2csIHN0cik6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiR290IGEgYmluYXJ5IG1lc3NhZ2UiKQorICAgICAgICAgICAgYXdhaXQgc2VsZi5oYW5k
bGUobXNnKQorCisKK2NsYXNzIGNvbW1hbmQ6CisgICAgIiIiRGVjb3JhdG9yIGZvciBpbXBsZW1l
bnRpbmcgYmlkaSBjb21tYW5kcworCisgICAgSW1wbGVtZW50aW5nIGEgY29tbWFuZCBpbnZvbHZl
cyBzcGVjaWZ5aW5nIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQKKyAgICBidWlsZHMgdGhlIHBhcmFt
ZXRlcnMgdG8gdGhlIGNvbW1hbmQuIFRoZSBkZWNvcmF0b3IgYXJyYW5nZXMgdGhvc2UKKyAgICBw
YXJhbWV0ZXJzIHRvIGJlIHR1cm5lZCBpbnRvIGEgc2VuZF9jb21tYW5kIGNhbGwsIHVzaW5nIHRo
ZSBjbGFzcworICAgIGFuZCBtZXRob2QgbmFtZXMgdG8gZGV0ZXJtaW5lIHRoZSBtZXRob2QgaW4g
dGhlIGNhbGwuCisKKyAgICBDb21tYW5kcyBkZWNvcmF0ZWQgaW4gdGhpcyB3YXkgZG9uJ3QgcmV0
dXJuIGEgZnV0dXJlLCBidXQgYXdhaXQKKyAgICB0aGUgYWN0dWFsIHJlc3BvbnNlLiBJbiBzb21l
IGNhc2VzIGl0IGNhbiBiZSB1c2VmdWwgdG8KKyAgICBwb3N0LXByb2Nlc3MgdGhpcyByZXNwb25z
ZSBiZWZvcmUgcmV0dXJuaW5nIGl0IHRvIHRoZSBjbGllbnQuIFRoaXMKKyAgICBjYW4gYmUgZG9u
ZSBieSBzcGVjaWZ5aW5nIGEgc2Vjb25kIGRlY29yYXRlZCBtZXRob2QgbGlrZQorICAgIEBjb21t
YW5kX25hbWUucmVzdWx0LiBUaGF0IG1ldGhvZCB3aWxsIHRoZW4gYmUgY2FsbGVkIG9uY2UgdGhl
CisgICAgcmVzdWx0IG9mIHRoZSBvcmlnaW5hbCBjb21tYW5kIGlzIGtub3duLCBhbmQgdGhlIHJl
dHVybiB2YWx1ZSBvZgorICAgIHRoZSBtZXRob2QgdXNlZCBhcyB0aGUgcmVzcG9uc2Ugb2YgdGhl
IGNvbW1hbmQuCisKKyAgICBTbyBmb3IgYW4gZXhhbXBsZSwgaWYgd2UgaGFkIGEgY29tbWFuZCB0
ZXN0LnRlc3RNZXRob2QsIHdoaWNoCisgICAgcmV0dXJuZWQgYSByZXN1bHQgd2hpY2ggd2Ugd2Fu
dCB0byBjb252ZXJ0IHRvIGEgVGVzdFJlc3VsdCB0eXBlLAorICAgIHRoZSBpbXBsZW1lbnRhdGlv
biBtaWdodCBsb29rIGxpa2U6CisKKyAgICBjbGFzcyBUZXN0KEJpZGlNb2R1bGUpOgorICAgICAg
ICBAY29tbWFuZAorICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgdGVzdF9kYXRhPU5vbmUp
OgorICAgICAgICAgICAgcmV0dXJuIHsidGVzdERhdGEiOiB0ZXN0X2RhdGF9CisKKyAgICAgICBA
dGVzdF9tZXRob2QucmVzdWx0CisgICAgICAgZGVmIGNvbnZlcnRfdGVzdF9tZXRob2RfcmVzdWx0
KHNlbGYsIHJlc3VsdCk6CisgICAgICAgICAgIHJldHVybiBUZXN0RGF0YSgqKnJlc3VsdCkKKyAg
ICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmbjogQ2FsbGFibGVbLi4uLCBNYXBwaW5n
W3N0ciwgQW55XV0pOgorICAgICAgICBzZWxmLnBhcmFtc19mbiA9IGZuCisgICAgICAgIHNlbGYu
cmVzdWx0X2ZuOiBPcHRpb25hbFtDYWxsYWJsZVsuLi4sIEFueV1dID0gTm9uZQorCisgICAgZGVm
IHJlc3VsdChzZWxmLCBmbjogQ2FsbGFibGVbW0FueSwgTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnld
XSwgTWFwcGluZ1tzdHIsIEFueV1dKSAtPiBOb25lOgorICAgICAgICBzZWxmLnJlc3VsdF9mbiA9
IGZuCisKKyAgICBkZWYgX19zZXRfbmFtZV9fKHNlbGYsIG93bmVyOiBBbnksIG5hbWU6IHN0cikg
LT4gTm9uZToKKyAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBjbGFzcyBpcyBjcmVh
dGVkCisgICAgICAgICMgc2VlIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2Rh
dGFtb2RlbC5odG1sI29iamVjdC5fX3NldF9uYW1lX18KKyAgICAgICAgcGFyYW1zX2ZuID0gc2Vs
Zi5wYXJhbXNfZm4KKyAgICAgICAgcmVzdWx0X2ZuID0gc2VsZi5yZXN1bHRfZm4KKworICAgICAg
ICBAZnVuY3Rvb2xzLndyYXBzKHBhcmFtc19mbikKKyAgICAgICAgYXN5bmMgZGVmIGlubmVyKHNl
bGY6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gQW55OgorICAgICAgICAgICAgcGFyYW1zID0gcGFy
YW1zX2ZuKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgICAgICAjIENvbnZlcnQgdGhlIGNsYXNz
bmFtZSBhbmQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgYmlkaSBjb21tYW5kIG5hbWUKKyAgICAgICAg
ICAgIG1vZF9uYW1lID0gb3duZXIuX19uYW1lX18ubG93ZXIoKQorICAgICAgICAgICAgaWYgaGFz
YXR0cihvd25lciwgInByZWZpeCIpOgorICAgICAgICAgICAgICAgIG1vZF9uYW1lID0gZiJ7b3du
ZXIucHJlZml4fTp7bW9kX25hbWV9IgorICAgICAgICAgICAgY21kX25hbWUgPSBmInttb2RfbmFt
ZX0ue3RvX2NhbWVsY2FzZShuYW1lKX0iCisKKyAgICAgICAgICAgIGZ1dHVyZSA9IGF3YWl0IHNl
bGYuc2Vzc2lvbi5zZW5kX2NvbW1hbmQoY21kX25hbWUsIHBhcmFtcykKKyAgICAgICAgICAgIHJl
c3VsdCA9IGF3YWl0IGZ1dHVyZQorCisgICAgICAgICAgICBpZiByZXN1bHRfZm4gaXMgbm90IE5v
bmU6CisgICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSByZXN1bHQgaWYgd2UgaGF2ZSBhIGNv
bnZlcnNpb24gZnVuY3Rpb24gZGVmaW5lZAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3Vs
dF9mbihzZWxmLCByZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICAgICAg
IyBPdmVyd3JpdGUgdGhlIG1ldGhvZCBvbiB0aGUgb3duZXIgY2xhc3Mgd2l0aCB0aGUgd3JhcHBl
cgorICAgICAgICBzZXRhdHRyKG93bmVyLCBuYW1lLCBpbm5lcikKKworICAgIGRlZiBfX2NhbGxf
XygqYXJnczogQW55LCAqKmt3YXJnczogQW55KSAtPiBBd2FpdGFibGVbQW55XToKKyAgICAgICAg
IyBUaGlzIGlzbid0IHJlYWxseSB1c2VkLCBidXQgbXlweSBkb2Vzbid0IHVuZGVyc3RhbmQgX19z
ZXRfbmFtZV9fCisgICAgICAgIHBhc3MKKworCitkZWYgdG9fY2FtZWxjYXNlKG5hbWU6IHN0cikg
LT4gc3RyOgorICAgICIiIkNvbnZlcnQgYSBweXRob24gc3R5bGUgbWV0aG9kIG5hbWUgZm9vX2Jh
ciB0byBhIEJpRGkgY29tbWFuZCBuYW1lIGZvb0JhciIiIgorICAgIHBhcnRzID0gbmFtZS5zcGxp
dCgiXyIpCisgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5sb3dlcigpCisgICAgZm9yIGkgaW4gcmFu
Z2UoMSwgbGVuKHBhcnRzKSk6CisgICAgICAgIHBhcnRzW2ldID0gcGFydHNbaV0udGl0bGUoKQor
ICAgIHJldHVybiAiIi5qb2luKHBhcnRzKQorCisKK2NsYXNzIEJpZGlNb2R1bGU6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHNlc3Npb246IEJpZGlTZXNzaW9uKToKKyAgICAgICAgc2VsZi5zZXNz
aW9uID0gc2Vzc2lvbgorCisKK2NsYXNzIFNlc3Npb24oQmlkaU1vZHVsZSk6CisgICAgQGNvbW1h
bmQKKyAgICBkZWYgbmV3KHNlbGYsIGNhcGFiaWxpdGllczogTWFwcGluZ1tzdHIsIEFueV0pIC0+
IE1hcHBpbmdbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV06CisgICAgICAgIHJldHVybiB7ImNhcGFi
aWxpdGllcyI6IGNhcGFiaWxpdGllc30KKworICAgIEBuZXcucmVzdWx0CisgICAgZGVmIF9uZXco
c2VsZiwgcmVzdWx0OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gQW55OgorICAgICAgICByZXR1cm4g
cmVzdWx0LmdldCgic2Vzc2lvbl9pZCIpLCByZXN1bHQuZ2V0KCJjYXBhYmlsaXRpZXMiLCB7fSkK
KworICAgIEBjb21tYW5kCisgICAgZGVmIHN1YnNjcmliZShzZWxmLAorICAgICAgICAgICAgICAg
ICAgZXZlbnRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSwKKyAgICAgICAgICAgICAgICAg
IGNvbnRleHRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSkgLT4gTWFwcGluZ1tzdHIsIEFu
eV06CisgICAgICAgIHBhcmFtczogTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnldID0geyJldmVudHMi
OiBldmVudHMgaWYgZXZlbnRzIGlzIG5vdCBOb25lIGVsc2UgW119CisgICAgICAgIGlmIGNvbnRl
eHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFyYW1zWyJjb250ZXh0cyJdID0gY29udGV4
dHMKKyAgICAgICAgcmV0dXJuIHBhcmFtcworCisgICAgQGNvbW1hbmQKKyAgICBkZWYgdW5zdWJz
Y3JpYmUoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiBPcHRpb25hbFtMaXN0W3N0
cl1dID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dHM6IE9wdGlvbmFsW0xpc3Rb
c3RyXV0gPSBOb25lKSAtPiBNYXBwaW5nW3N0ciwgQW55XToKKyAgICAgICAgcGFyYW1zOiBNdXRh
YmxlTWFwcGluZ1tzdHIsIEFueV0gPSB7ImV2ZW50cyI6IGV2ZW50cyBpZiBldmVudHMgaXMgbm90
IE5vbmUgZWxzZSBbXX0KKyAgICAgICAgaWYgY29udGV4dHMgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBwYXJhbXNbImNvbnRleHRzIl0gPSBjb250ZXh0cworICAgICAgICByZXR1cm4gcGFyYW1z
CisKKworY2xhc3MgVGVzdChCaWRpTW9kdWxlKToKKyAgICAiIiJWZXJ5IHRlbXBvcmFyeSBtb2R1
bGUgdGhhdCBkb2VzIG5vdGhpbmcsIGV4Y2VwdCBkZW1vbnN0cmF0ZSBhIHZlbmRvciBwcmVmaXgg
YW5kCisgICAgcHJvdmlkZSBhIHdheSB0byB3b3JrIHdpdGggR2Vja28ncyBjdXJyZW50IHNrZWxl
dG9uIGltcGxlbWVudGF0aW9uLiIiIgorCisgICAgcHJlZml4ID0gIm1veiIKKworICAgIEBjb21t
YW5kCisgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJu
IGt3YXJncwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dl
YmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CmluZGV4IGY0ZTNjNzYzNzk1ZS4u
MmM3YjFjNWRiZWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CkBAIC0xLDkgKzEs
OSBAQAogZnJvbSAuIGltcG9ydCBlcnJvcgogZnJvbSAuIGltcG9ydCBwcm90b2NvbAogZnJvbSAu
IGltcG9ydCB0cmFuc3BvcnQKK2Zyb20gLmJpZGkuY2xpZW50IGltcG9ydCBCaWRpU2Vzc2lvbgog
Ci1mcm9tIHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIgaW1w
b3J0IHBhcnNlIGFzIHVybHBhcnNlCitmcm9tIHVybGxpYiBpbXBvcnQgcGFyc2UgYXMgdXJscGFy
c2UKIAogCiBkZWYgY29tbWFuZChmdW5jKToKQEAgLTExNiwxNCArMTE2LDQ5IEBAIGNsYXNzIEFj
dGlvblNlcXVlbmNlKG9iamVjdCk6CiAgICAgZGVmIF9rZXlfYWN0aW9uKHNlbGYsIHN1YnR5cGUs
IHZhbHVlKToKICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjogc3VidHlwZSwg
InZhbHVlIjogdmFsdWV9KQogCi0gICAgZGVmIF9wb2ludGVyX2FjdGlvbihzZWxmLCBzdWJ0eXBl
LCBidXR0b24pOgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5cGUiOiBzdWJ0eXBl
LCAiYnV0dG9uIjogYnV0dG9ufSkKKyAgICBkZWYgX3BvaW50ZXJfYWN0aW9uKHNlbGYsIHN1YnR5
cGUsIGJ1dHRvbj1Ob25lLCB4PU5vbmUsIHk9Tm9uZSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5v
bmUsIHdpZHRoPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9Tm9uZSwgcHJl
c3N1cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbHRfeT1Ob25lLCB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmds
ZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgorICAgICAgICBhY3Rpb24gPSB7CisgICAgICAg
ICAgICAidHlwZSI6IHN1YnR5cGUKKyAgICAgICAgfQorICAgICAgICBpZiBidXR0b24gaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImJ1dHRvbiJdID0gYnV0dG9uCisgICAgICAgIGlm
IHggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIngiXSA9IHgKKyAgICAgICAgaWYg
eSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsieSJdID0geQorICAgICAgICBpZiBk
dXJhdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiZHVyYXRpb24iXSA9IGR1
cmF0aW9uCisgICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlv
blsib3JpZ2luIl0gPSBvcmlnaW4KKyAgICAgICAgaWYgd2lkdGggaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBhY3Rpb25bIndpZHRoIl0gPSB3aWR0aAorICAgICAgICBpZiBoZWlnaHQgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImhlaWdodCJdID0gaGVpZ2h0CisgICAgICAgIGlm
IHByZXNzdXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJwcmVzc3VyZSJdID0g
cHJlc3N1cmUKKyAgICAgICAgaWYgdGFuZ2VudGlhbF9wcmVzc3VyZSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIGFjdGlvblsidGFuZ2VudGlhbFByZXNzdXJlIl0gPSB0YW5nZW50aWFsX3ByZXNz
dXJlCisgICAgICAgIGlmIHRpbHRfeCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsi
dGlsdFgiXSA9IHRpbHRfeAorICAgICAgICBpZiB0aWx0X3kgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBhY3Rpb25bInRpbHRZIl0gPSB0aWx0X3kKKyAgICAgICAgaWYgdHdpc3QgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBhY3Rpb25bInR3aXN0Il0gPSB0d2lzdAorICAgICAgICBpZiBhbHRp
dHVkZV9hbmdsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiYWx0aXR1ZGVBbmds
ZSJdID0gYWx0aXR1ZGVfYW5nbGUKKyAgICAgICAgaWYgYXppbXV0aF9hbmdsZSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIGFjdGlvblsiYXppbXV0aEFuZ2xlIl0gPSBhemltdXRoX2FuZ2xlCisg
ICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGFjdGlvbikKIAogICAgIGRlZiBwYXVzZShzZWxm
LCBkdXJhdGlvbik6CiAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsidHlwZSI6ICJwYXVz
ZSIsICJkdXJhdGlvbiI6IGR1cmF0aW9ufSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAotICAgIGRl
ZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5vbmUpOgor
ICAgIGRlZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5v
bmUsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgcHJlc3N1
cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwgdGlsdF95PU5v
bmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmdsZT1Ob25l
LCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBvaW50ZXJNb3ZlIGFj
dGlvbi4KIAogICAgICAgICA6cGFyYW0geDogRGVzdGluYXRpb24geC1heGlzIGNvb3JkaW5hdGUg
b2YgcG9pbnRlciBpbiBDU1MgcGl4ZWxzLgpAQCAtMTMzLDE2ICsxNjgsMTAgQEAgY2xhc3MgQWN0
aW9uU2VxdWVuY2Uob2JqZWN0KToKICAgICAgICAgOnBhcmFtIG9yaWdpbjogT3JpZ2luIG9mIGNv
b3JkaW5hdGVzLCBlaXRoZXIgInZpZXdwb3J0IiwgInBvaW50ZXIiIG9yCiAgICAgICAgICAgICAg
ICAgICAgICAgIGFuIEVsZW1lbnQuIElmIE5vbmUsIHJlbW90ZSBlbmQgZGVmYXVsdHMgdG8gInZp
ZXdwb3J0Ii4KICAgICAgICAgIiIiCi0gICAgICAgIGFjdGlvbiA9IHsKLSAgICAgICAgICAgICJ0
eXBlIjogInBvaW50ZXJNb3ZlIiwKLSAgICAgICAgICAgICJ4IjogeCwKLSAgICAgICAgICAgICJ5
IjogeQotICAgICAgICB9Ci0gICAgICAgIGlmIGR1cmF0aW9uIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgYWN0aW9uWyJkdXJhdGlvbiJdID0gZHVyYXRpb24KLSAgICAgICAgaWYgb3JpZ2luIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IG9yaWdpbgotICAgICAg
ICBzZWxmLl9hY3Rpb25zLmFwcGVuZChhY3Rpb24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0
aW9uKCJwb2ludGVyTW92ZSIsIHg9eCwgeT15LCBkdXJhdGlvbj1kdXJhdGlvbiwgb3JpZ2luPW9y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9d2lkdGgsIGhlaWdodD1o
ZWlnaHQsIHByZXNzdXJlPXByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
YW5nZW50aWFsX3ByZXNzdXJlPXRhbmdlbnRpYWxfcHJlc3N1cmUsIHRpbHRfeD10aWx0X3gsIHRp
bHRfeT10aWx0X3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3aXN0PXR3aXN0LCBh
bHRpdHVkZV9hbmdsZT1hbHRpdHVkZV9hbmdsZSwgYXppbXV0aF9hbmdsZT1hemltdXRoX2FuZ2xl
KQogICAgICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIHBvaW50ZXJfdXAoc2VsZiwgYnV0dG9u
PTApOgpAQCAtMTUxLDE2ICsxODAsMjEgQEAgY2xhc3MgQWN0aW9uU2VxdWVuY2Uob2JqZWN0KToK
ICAgICAgICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24g
d2l0aC4KICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50
cyBtYWluIGRldmljZSBidXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9wb2ludGVy
X2FjdGlvbigicG9pbnRlclVwIiwgYnV0dG9uKQorICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlv
bigicG9pbnRlclVwIiwgYnV0dG9uPWJ1dHRvbikKICAgICAgICAgcmV0dXJuIHNlbGYKIAotICAg
IGRlZiBwb2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPTApOgorICAgIGRlZiBwb2ludGVyX2Rvd24o
c2VsZiwgYnV0dG9uPTAsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLCBwcmVzc3VyZT1Ob25lLAor
ICAgICAgICAgICAgICAgICAgICAgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9u
ZSwgdGlsdF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVk
ZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBv
aW50ZXJEb3duIGFjdGlvbiBmb3IgYGJ1dHRvbmAuCiAKICAgICAgICAgOnBhcmFtIGJ1dHRvbjog
UG9pbnRlciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4KICAgICAgICAgICAgICAgICAg
ICAgICAgRGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCiAg
ICAgICAgICIiIgotICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlckRvd24iLCBi
dXR0b24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVyRG93biIsIGJ1dHRv
bj1idXR0b24sIHdpZHRoPXdpZHRoLCBoZWlnaHQ9aGVpZ2h0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcmVzc3VyZT1wcmVzc3VyZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT10YW5nZW50
aWFsX3ByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWx0X3g9dGlsdF94
LCB0aWx0X3k9dGlsdF95LCB0d2lzdD10d2lzdCwgYWx0aXR1ZGVfYW5nbGU9YWx0aXR1ZGVfYW5n
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF6aW11dGhfYW5nbGU9YXppbXV0aF9h
bmdsZSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBjbGljayhzZWxmLCBlbGVtZW50
PU5vbmUsIGJ1dHRvbj0wKToKQEAgLTI3MywxOSArMzA3LDIyIEBAIGNsYXNzIFdpbmRvdyhvYmpl
Y3QpOgogCiAgICAgICAgIHJldHVybiBoYW5kbGVzCiAKLSAgICBAcHJvcGVydHkKKyAgICAjIFRo
ZSBtYW55ICJ0eXBlOiBpZ25vcmUiIGNvbW1lbnRzIGhlcmUgYW5kIGJlbG93IGFyZSB0byBzaWxl
bmNlIG15cHkncworICAgICMgIkRlY29yYXRlZCBwcm9wZXJ0eSBub3Qgc3VwcG9ydGVkIiBlcnJv
ciwgd2hpY2ggaXMgZHVlIHRvIGEgbGltaXRhdGlvbgorICAgICMgaW4gbXlweSwgc2VlIGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRob24vbXlweS9pc3N1ZXMvMTM2Mi4KKyAgICBAcHJvcGVydHkgICMg
dHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgcmVjdChzZWxmKToKICAgICAgICAg
cmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdy9y
ZWN0IikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAg
ICBAY29tbWFuZAogICAgIGRlZiBzaXplKHNlbGYpOgogICAgICAgICAiIiJHZXRzIHRoZSB3aW5k
b3cgc2l6ZSBhcyBhIHR1cGxlIG9mIGAod2lkdGgsIGhlaWdodClgLiIiIgogICAgICAgICByZWN0
ID0gc2VsZi5yZWN0CiAgICAgICAgIHJldHVybiAocmVjdFsid2lkdGgiXSwgcmVjdFsiaGVpZ2h0
Il0pCiAKLSAgICBAc2l6ZS5zZXR0ZXIKKyAgICBAc2l6ZS5zZXR0ZXIgICMgdHlwZTogaWdub3Jl
CiAgICAgQGNvbW1hbmQKICAgICBkZWYgc2l6ZShzZWxmLCBuZXdfc2l6ZSk6CiAgICAgICAgICIi
IlNldCB3aW5kb3cgc2l6ZSBieSBwYXNzaW5nIGEgdHVwbGUgb2YgYCh3aWR0aCwgaGVpZ2h0KWAu
IiIiCkBAIC0yOTMsMTQgKzMzMCwxNCBAQCBjbGFzcyBXaW5kb3cob2JqZWN0KToKICAgICAgICAg
Ym9keSA9IHsid2lkdGgiOiB3aWR0aCwgImhlaWdodCI6IGhlaWdodH0KICAgICAgICAgc2VsZi5z
ZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndpbmRvdy9yZWN0IiwgYm9keSkK
IAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29t
bWFuZAogICAgIGRlZiBwb3NpdGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0cyB0aGUgd2luZG93
IHBvc2l0aW9uIGFzIGEgdHVwbGUgb2YgYCh4LCB5KWAuIiIiCiAgICAgICAgIHJlY3QgPSBzZWxm
LnJlY3QKICAgICAgICAgcmV0dXJuIChyZWN0WyJ4Il0sIHJlY3RbInkiXSkKIAotICAgIEBwb3Np
dGlvbi5zZXR0ZXIKKyAgICBAcG9zaXRpb24uc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBj
b21tYW5kCiAgICAgZGVmIHBvc2l0aW9uKHNlbGYsIG5ld19wb3NpdGlvbik6CiAgICAgICAgICIi
IlNldCB3aW5kb3cgcG9zaXRpb24gYnkgcGFzc2luZyBhIHR1cGxlIG9mIGAoeCwgeSlgLiIiIgpA
QCAtMzM4LDYgKzM3NSw0MiBAQCBjbGFzcyBGcmFtZShvYmplY3QpOgogICAgICAgICByZXR1cm4g
Y2xzKHV1aWQsIHNlc3Npb24pCiAKIAorY2xhc3MgU2hhZG93Um9vdChvYmplY3QpOgorICAgIGlk
ZW50aWZpZXIgPSAic2hhZG93LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiIKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uLCBpZCk6CisgICAgICAgICIiIgorICAgICAgICBDb25z
dHJ1Y3QgYSBuZXcgc2hhZG93IHJvb3QgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgOnBhcmFt
IGlkOiBTaGFkb3cgcm9vdCBVVUlEIHdoaWNoIG11c3QgYmUgdW5pcXVlIGFjcm9zcworICAgICAg
ICAgICAgYWxsIGJyb3dzaW5nIGNvbnRleHRzLgorICAgICAgICA6cGFyYW0gc2Vzc2lvbjogQ3Vy
cmVudCBgYHdlYmRyaXZlci5TZXNzaW9uYGAuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmlk
ID0gaWQKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAgQGNsYXNzbWV0aG9k
CisgICAgZGVmIGZyb21fanNvbihjbHMsIGpzb24sIHNlc3Npb24pOgorICAgICAgICB1dWlkID0g
anNvbltTaGFkb3dSb290LmlkZW50aWZpZXJdCisgICAgICAgIHJldHVybiBjbHModXVpZCwgc2Vz
c2lvbikKKworICAgIGRlZiBzZW5kX3NoYWRvd19jb21tYW5kKHNlbGYsIG1ldGhvZCwgdXJpLCBi
b2R5PU5vbmUpOgorICAgICAgICB1cmwgPSAic2hhZG93L3t9L3t9Ii5mb3JtYXQoc2VsZi5pZCwg
dXJpKQorICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKG1l
dGhvZCwgdXJsLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZmluZF9lbGVtZW50KHNl
bGYsIHN0cmF0ZWd5LCBzZWxlY3Rvcik6CisgICAgICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRl
Z3ksCisgICAgICAgICAgICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAgICAgIHJldHVybiBz
ZWxmLnNlbmRfc2hhZG93X2NvbW1hbmQoIlBPU1QiLCAiZWxlbWVudCIsIGJvZHkpCisKKyAgICBA
Y29tbWFuZAorICAgIGRlZiBmaW5kX2VsZW1lbnRzKHNlbGYsIHN0cmF0ZWd5LCBzZWxlY3Rvcik6
CisgICAgICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgInZh
bHVlIjogc2VsZWN0b3J9CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2hhZG93X2NvbW1hbmQo
IlBPU1QiLCAiZWxlbWVudHMiLCBib2R5KQorCisKIGNsYXNzIEZpbmQob2JqZWN0KToKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6CiAgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Np
b24KQEAgLTM2NSw3ICs0MzgsNyBAQCBjbGFzcyBDb29raWVzKG9iamVjdCk6CiAgICAgICAgIGNv
b2tpZSA9IHsibmFtZSI6IG5hbWUsCiAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBOb25lfQog
Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UobmFtZSwgc3RyaW5nX3R5cGVzKToKKyAgICAgICAgaWYg
aXNpbnN0YW5jZShuYW1lLCBzdHIpOgogICAgICAgICAgICAgY29va2llWyJ2YWx1ZSJdID0gdmFs
dWUKICAgICAgICAgZWxpZiBoYXNhdHRyKHZhbHVlLCAidmFsdWUiKToKICAgICAgICAgICAgIGNv
b2tpZVsidmFsdWUiXSA9IHZhbHVlLnZhbHVlCkBAIC0zODQsMTIgKzQ1NywxMiBAQCBjbGFzcyBV
c2VyUHJvbXB0KG9iamVjdCk6CiAgICAgZGVmIGFjY2VwdChzZWxmKToKICAgICAgICAgc2VsZi5z
ZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L2FjY2VwdCIpCiAKLSAg
ICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQK
ICAgICBkZWYgdGV4dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nl
c3Npb25fY29tbWFuZCgiR0VUIiwgImFsZXJ0L3RleHQiKQogCi0gICAgQHRleHQuc2V0dGVyCisg
ICAgQHRleHQuc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHRl
eHQoc2VsZiwgdmFsdWUpOgogICAgICAgICBib2R5ID0geyJ0ZXh0IjogdmFsdWV9CkBAIC00MDEs
OCArNDc0LDE2IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAgaG9z
dCwKICAgICAgICAgICAgICAgICAgcG9ydCwKICAgICAgICAgICAgICAgICAgdXJsX3ByZWZpeD0i
LyIsCisgICAgICAgICAgICAgICAgIGVuYWJsZV9iaWRpPUZhbHNlLAogICAgICAgICAgICAgICAg
ICBjYXBhYmlsaXRpZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uPU5vbmUpOgor
CisgICAgICAgIGlmIGVuYWJsZV9iaWRpOgorICAgICAgICAgICAgaWYgY2FwYWJpbGl0aWVzIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRkZWZhdWx0KCJhbHdh
eXNNYXRjaCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0geyJhbHdheXNNYXRjaCI6IHsi
d2ViU29ja2V0VXJsIjogVHJ1ZX19CisKICAgICAgICAgc2VsZi50cmFuc3BvcnQgPSB0cmFuc3Bv
cnQuSFRUUFdpcmVQcm90b2NvbChob3N0LCBwb3J0LCB1cmxfcHJlZml4KQogICAgICAgICBzZWxm
LnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMKICAgICAgICAgc2VsZi5jYXBh
YmlsaXRpZXMgPSBOb25lCkBAIC00MTAsNiArNDkxLDggQEAgY2xhc3MgU2Vzc2lvbihvYmplY3Qp
OgogICAgICAgICBzZWxmLnRpbWVvdXRzID0gTm9uZQogICAgICAgICBzZWxmLndpbmRvdyA9IE5v
bmUKICAgICAgICAgc2VsZi5maW5kID0gTm9uZQorICAgICAgICBzZWxmLmVuYWJsZV9iaWRpID0g
ZW5hYmxlX2JpZGkKKyAgICAgICAgc2VsZi5iaWRpX3Nlc3Npb24gPSBOb25lCiAgICAgICAgIHNl
bGYuZXh0ZW5zaW9uID0gTm9uZQogICAgICAgICBzZWxmLmV4dGVuc2lvbl9jbHMgPSBleHRlbnNp
b24KIApAQCAtNDM2LDYgKzUxOSw5IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICBkZWYg
X19kZWxfXyhzZWxmKToKICAgICAgICAgc2VsZi5lbmQoKQogCisgICAgZGVmIG1hdGNoKHNlbGYs
IGNhcGFiaWxpdGllcyk6CisgICAgICAgIHJldHVybiBzZWxmLnJlcXVlc3RlZF9jYXBhYmlsaXRp
ZXMgPT0gY2FwYWJpbGl0aWVzCisKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAgICIiIlN0
YXJ0IGEgbmV3IFdlYkRyaXZlciBzZXNzaW9uLgogCkBAIC00NTgsNiArNTQ0LDE0IEBAIGNsYXNz
IFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gdmFsdWVbInNlc3Np
b25JZCJdCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gdmFsdWVbImNhcGFiaWxpdGllcyJd
CiAKKyAgICAgICAgaWYgIndlYlNvY2tldFVybCIgaW4gc2VsZi5jYXBhYmlsaXRpZXM6CisgICAg
ICAgICAgICBzZWxmLmJpZGlfc2Vzc2lvbiA9IEJpZGlTZXNzaW9uLmZyb21faHR0cChzZWxmLnNl
c3Npb25faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmNhcGFiaWxpdGllcykKKyAgICAgICAgZWxpZiBzZWxmLmVuYWJsZV9iaWRp
OgorICAgICAgICAgICAgc2VsZi5lbmQoKQorICAgICAgICAgICAgcmFpc2UgZXJyb3IuU2Vzc2lv
bk5vdENyZWF0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBiaWRpIHNl
c3Npb24sIGJ1dCB3ZWJTb2NrZXRVcmwgY2FwYWJpbGl0eSBub3QgZm91bmQiKQorCiAgICAgICAg
IGlmIHNlbGYuZXh0ZW5zaW9uX2NsczoKICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9uID0gc2Vs
Zi5leHRlbnNpb25fY2xzKHNlbGYpCiAKQEAgLTQ3MCw3ICs1NjQsNyBAQCBjbGFzcyBTZXNzaW9u
KG9iamVjdCk6CiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5zZW5kX2NvbW1hbmQo
IkRFTEVURSIsICJzZXNzaW9uLyVzIiAlIHNlbGYuc2Vzc2lvbl9pZCkKLSAgICAgICAgZXhjZXB0
IGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCAoT1NFcnJv
ciwgZXJyb3IuSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbik6CiAgICAgICAgICAgICBwYXNzCiAg
ICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBOb25lCkBAIC01
NDUsMTIgKzYzOSwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIHVybCA9IHVy
bHBhcnNlLnVybGpvaW4oInNlc3Npb24vJXMvIiAlIHNlbGYuc2Vzc2lvbl9pZCwgdXJpKQogICAg
ICAgICByZXR1cm4gc2VsZi5zZW5kX2NvbW1hbmQobWV0aG9kLCB1cmwsIGJvZHksIHRpbWVvdXQp
CiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNv
bW1hbmQKICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Np
b25fY29tbWFuZCgiR0VUIiwgInVybCIpCiAKLSAgICBAdXJsLnNldHRlcgorICAgIEB1cmwuc2V0
dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHVybChzZWxmLCB1cmwp
OgogICAgICAgICBpZiB1cmxwYXJzZS51cmxzcGxpdCh1cmwpLm5ldGxvYyBpcyBOb25lOgpAQCAt
NTcwLDEyICs2NjQsMTIgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgIGRlZiByZWZyZXNo
KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIs
ICJyZWZyZXNoIikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25v
cmUKICAgICBAY29tbWFuZAogICAgIGRlZiB0aXRsZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ0aXRsZSIpCiAKLSAgICBAcHJvcGVydHkK
KyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgc291
cmNlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VU
IiwgInNvdXJjZSIpCkBAIC01ODcsMTIgKzY4MSwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6
CiAKICAgICAgICAgcmV0dXJuIHZhbHVlWyJoYW5kbGUiXQogCi0gICAgQHByb3BlcnR5CisgICAg
QHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHdpbmRvd19o
YW5kbGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJH
RVQiLCAid2luZG93IikKIAotICAgIEB3aW5kb3dfaGFuZGxlLnNldHRlcgorICAgIEB3aW5kb3df
aGFuZGxlLnNldHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB3aW5k
b3dfaGFuZGxlKHNlbGYsIGhhbmRsZSk6CiAgICAgICAgIGJvZHkgPSB7ImhhbmRsZSI6IGhhbmRs
ZX0KQEAgLTYwOCwxMiArNzAyLDEyIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKIAogICAgICAg
ICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsIHVybCwgYm9keSkKIAot
ICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFu
ZAogICAgIGRlZiBoYW5kbGVzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Np
b25fY29tbWFuZCgiR0VUIiwgIndpbmRvdy9oYW5kbGVzIikKIAotICAgIEBwcm9wZXJ0eQorICAg
IEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiBhY3RpdmVf
ZWxlbWVudChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQo
IkdFVCIsICJlbGVtZW50L2FjdGl2ZSIpCkBAIC02ODMsNyArNzc3LDYgQEAgY2xhc3MgU2Vzc2lv
bihvYmplY3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3QiKQogCi0KIGNsYXNzIEVs
ZW1lbnQob2JqZWN0KToKICAgICAiIiIKICAgICBSZXByZXNlbnRhdGlvbiBvZiBhIHdlYiBlbGVt
ZW50LgpAQCAtNzQyLDEyICs4MzUsMTIgQEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIGRl
ZiBzZW5kX2tleXMoc2VsZiwgdGV4dCk6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVu
dF9jb21tYW5kKCJQT1NUIiwgInZhbHVlIiwgeyJ0ZXh0IjogdGV4dH0pCiAKLSAgICBAcHJvcGVy
dHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYg
dGV4dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdF
VCIsICJ0ZXh0IikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25v
cmUKICAgICBAY29tbWFuZAogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgIm5hbWUiKQpAQCAtNzU2LDEyICs4NDksMTIg
QEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBzdHlsZShzZWxmLCBwcm9wZXJ0eV9u
YW1lKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJj
c3MvJXMiICUgcHJvcGVydHlfbmFtZSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAg
IyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiByZWN0KHNlbGYpOgogICAgICAg
ICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInJlY3QiKQogCi0gICAg
QHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAg
ICAgZGVmIHNlbGVjdGVkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRf
Y29tbWFuZCgiR0VUIiwgInNlbGVjdGVkIikKQEAgLTc3MCw2ICs4NjMsMTEgQEAgY2xhc3MgRWxl
bWVudChvYmplY3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAgICAgICByZXR1cm4g
c2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3QiKQogCisgICAgQHBy
b3BlcnR5ICAjIHR5cGU6IGlnbm9yZQorICAgIEBjb21tYW5kCisgICAgZGVmIHNoYWRvd19yb290
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwg
InNoYWRvdyIpCisKICAgICBAY29tbWFuZAogICAgIGRlZiBhdHRyaWJ1dGUoc2VsZiwgbmFtZSk6
CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAiYXR0cmli
dXRlLyVzIiAlIG5hbWUpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5CmluZGV4IDgzNzk2NTZk
NzNkZC4uYTQxM2E5NTBkNDhlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQpAQCAtMSwx
MiArMSwxNyBAQAogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBp
bXBvcnQgaXRlcnZhbHVlcworZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBEZWZhdWx0RGlj
dCwgVHlwZQogCiAKIGNsYXNzIFdlYkRyaXZlckV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgIGh0
dHBfc3RhdHVzID0gTm9uZQotICAgIHN0YXR1c19jb2RlID0gTm9uZQorICAgICMgVGhlIHN0YXR1
c19jb2RlIGNsYXNzIHZhcmlhYmxlIGlzIHVzZWQgdG8gbWFwIHRoZSBKU09OIEVycm9yIENvZGUg
KHNlZQorICAgICMgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZXJyb3JzKSB0byBh
IFdlYkRyaXZlckV4Y2VwdGlvbiBzdWJjbGFzcy4KKyAgICAjIEhvd2V2ZXIsIGh0dHBfc3RhdHVz
IG5lZWQgbm90IG1hdGNoLCBhbmQgYm90aCBhcmUgc2V0IGFzIGluc3RhbmNlCisgICAgIyB2YXJp
YWJsZXMsIHNoYWRvd2luZyB0aGUgY2xhc3MgdmFyaWFibGVzLiBUT0RPOiBNYXRjaCBvbiBib3Ro
IGh0dHBfc3RhdHVzCisgICAgIyBhbmQgc3RhdHVzX2NvZGUgYW5kIGxldCB0aGVzZSBiZSBjbGFz
cyB2YXJpYWJsZXMgb25seS4KKyAgICBodHRwX3N0YXR1cyA9IE5vbmUgICMgdHlwZTogQ2xhc3NW
YXJbaW50XQorICAgIHN0YXR1c19jb2RlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltzdHJdCiAK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgaHR0cF9zdGF0dXM9Tm9uZSwgc3RhdHVzX2NvZGU9Tm9u
ZSwgbWVzc2FnZT1Ob25lLCBzdGFja3RyYWNlPU5vbmUpOgogICAgICAgICBzdXBlcihXZWJEcml2
ZXJFeGNlcHRpb24sIHNlbGYpCkBAIC0zNCw2ICszOSwxMSBAQCBjbGFzcyBXZWJEcml2ZXJFeGNl
cHRpb24oRXhjZXB0aW9uKToKICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKIAogCitjbGFzcyBEZXRh
Y2hlZFNoYWRvd1Jvb3RFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0
YXR1cyA9IDQwNAorICAgIHN0YXR1c19jb2RlID0gImRldGFjaGVkIHNoYWRvdyByb290IgorCisK
IGNsYXNzIEVsZW1lbnRDbGlja0ludGVyY2VwdGVkRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlv
bik6CiAgICAgaHR0cF9zdGF0dXMgPSA0MDAKICAgICBzdGF0dXNfY29kZSA9ICJlbGVtZW50IGNs
aWNrIGludGVyY2VwdGVkIgpAQCAtMTE0LDYgKzEyNCwxMSBAQCBjbGFzcyBOb1N1Y2hGcmFtZUV4
Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgIHN0YXR1c19jb2RlID0gIm5vIHN1Y2gg
ZnJhbWUiCiAKIAorY2xhc3MgTm9TdWNoU2hhZG93Um9vdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNl
cHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2NvZGUgPSAibm8gc3Vj
aCBzaGFkb3cgcm9vdCIKKworCiBjbGFzcyBOb1N1Y2hXaW5kb3dFeGNlcHRpb24oV2ViRHJpdmVy
RXhjZXB0aW9uKToKICAgICBodHRwX3N0YXR1cyA9IDQwNAogICAgIHN0YXR1c19jb2RlID0gIm5v
IHN1Y2ggd2luZG93IgpAQCAtMjA5LDcgKzIyNCw3IEBAIGRlZiBnZXQoZXJyb3JfY29kZSk6CiAg
ICAgcmV0dXJuIF9lcnJvcnMuZ2V0KGVycm9yX2NvZGUsIFdlYkRyaXZlckV4Y2VwdGlvbikKIAog
Ci1fZXJyb3JzID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QoKQotZm9yIGl0ZW0gaW4gbGlzdChp
dGVydmFsdWVzKGxvY2FscygpKSk6CitfZXJyb3JzOiBEZWZhdWx0RGljdFtzdHIsIFR5cGVbV2Vi
RHJpdmVyRXhjZXB0aW9uXV0gPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdCgpCitmb3IgaXRlbSBp
biBsaXN0KGxvY2FscygpLnZhbHVlcygpKToKICAgICBpZiB0eXBlKGl0ZW0pID09IHR5cGUgYW5k
IGlzc3ViY2xhc3MoaXRlbSwgV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAgICAgX2Vycm9yc1tp
dGVtLnN0YXR1c19jb2RlXSA9IGl0ZW0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkK
aW5kZXggYzgxMWY2ZjI2ZGI3Li5lNzFlMDFkNjIwODMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L3Byb3RvY29sLnB5CkBAIC0yLDggKzIsNiBAQCBpbXBvcnQganNvbgogCiBpbXBvcnQgd2ViZHJp
dmVyCiAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKLQogCiAiIiJXZWJEcml2ZXIgd2lyZSBw
cm90b2NvbCBjb2RlY3MuIiIiCiAKQEAgLTIyLDYgKzIwLDggQEAgY2xhc3MgRW5jb2Rlcihqc29u
LkpTT05FbmNvZGVyKToKICAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLkZyYW1lLmlkZW50
aWZpZXI6IG9iai5pZH0KICAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgd2ViZHJpdmVyLldp
bmRvdyk6CiAgICAgICAgICAgICByZXR1cm4ge3dlYmRyaXZlci5GcmFtZS5pZGVudGlmaWVyOiBv
YmouaWR9CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIHdlYmRyaXZlci5TaGFkb3dSb290
KToKKyAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLlNoYWRvd1Jvb3QuaWRlbnRpZmllcjog
b2JqLmlkfQogICAgICAgICByZXR1cm4gc3VwZXIoRW5jb2Rlciwgc2VsZikuZGVmYXVsdChvYmop
CiAKIApAQCAtNDAsNiArNDAsOCBAQCBjbGFzcyBEZWNvZGVyKGpzb24uSlNPTkRlY29kZXIpOgog
ICAgICAgICAgICAgcmV0dXJuIHdlYmRyaXZlci5GcmFtZS5mcm9tX2pzb24ocGF5bG9hZCwgc2Vs
Zi5zZXNzaW9uKQogICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgZGljdCkgYW5kIHdl
YmRyaXZlci5XaW5kb3cuaWRlbnRpZmllciBpbiBwYXlsb2FkOgogICAgICAgICAgICAgcmV0dXJu
IHdlYmRyaXZlci5XaW5kb3cuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lvbikKKyAgICAg
ICAgZWxpZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpIGFuZCB3ZWJkcml2ZXIuU2hhZG93Um9v
dC5pZGVudGlmaWVyIGluIHBheWxvYWQ6CisgICAgICAgICAgICByZXR1cm4gd2ViZHJpdmVyLlNo
YWRvd1Jvb3QuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lvbikKICAgICAgICAgZWxpZiBp
c2luc3RhbmNlKHBheWxvYWQsIGRpY3QpOgotICAgICAgICAgICAgcmV0dXJuIHtrOiBzZWxmLm9i
amVjdF9ob29rKHYpIGZvciBrLCB2IGluIGl0ZXJpdGVtcyhwYXlsb2FkKX0KKyAgICAgICAgICAg
IHJldHVybiB7azogc2VsZi5vYmplY3RfaG9vayh2KSBmb3IgaywgdiBpbiBwYXlsb2FkLml0ZW1z
KCl9CiAgICAgICAgIHJldHVybiBwYXlsb2FkCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3Bv
cnQucHkKaW5kZXggZTgzNmIxOWExNThkLi41YTFjZTI4OWVjMDkgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9y
dC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dl
YmRyaXZlci90cmFuc3BvcnQucHkKQEAgLTEsMTAgKzEsOSBAQAogaW1wb3J0IGpzb24KIGltcG9y
dCBzZWxlY3QKIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZSwgUFkzCi1mcm9tIHNpeC5tb3Zl
cy5jb2xsZWN0aW9uc19hYmMgaW1wb3J0IE1hcHBpbmcKLWZyb20gc2l4Lm1vdmVzLmh0dHBfY2xp
ZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgotZnJvbSBzaXgubW92ZXMudXJsbGliIGltcG9ydCBw
YXJzZSBhcyB1cmxwYXJzZQorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24K
K2Zyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBNYXBwaW5nLCBTZXF1ZW5jZSwgVHVwbGUK
K2Zyb20gdXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQogCiBmcm9tIC4gaW1wb3J0IGVy
cm9yCiAKQEAgLTE0LDcgKzEzLDcgQEAgZnJvbSAuIGltcG9ydCBlcnJvcgogbWlzc2luZyA9IG9i
amVjdCgpCiAKIAotY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmcpOgorY2xhc3MgUmVzcG9u
c2VIZWFkZXJzKE1hcHBpbmdbc3RyLCBzdHJdKToKICAgICAiIiJSZWFkLW9ubHkgZGljdGlvbmFy
eS1saWtlIEFQSSBmb3IgYWNjZXNzaW5nIHJlc3BvbnNlIGhlYWRlcnMuCiAKICAgICBUaGlzIGNs
YXNzOgpAQCAtMjMsMTEgKzIyLDkgQEAgY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmcpOgog
ICAgICAgKiBIYXMgY2FzZS1pbnNlbnNpdGl2ZSBoZWFkZXIgbG9va3VwLgogICAgICAgKiBBbHdh
eXMgcmV0dXJucyBhbGwgaGVhZGVyIHZhbHVlcyB0aGF0IGhhdmUgdGhlIHNhbWUgbmFtZSwgc2Vw
YXJhdGVkIGJ5CiAgICAgICAgIGNvbW1hcy4KLQotICAgIEl0IGRvZXMgbm90IGVuc3VyZSBoZWFk
ZXIgdHlwZXMgKGUuZy4gYmluYXJ5IHZzIHN0cmluZykuCiAgICAgIiIiCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGl0ZW1zKToKLSAgICAgICAgc2VsZi5oZWFkZXJzX2RpY3QgPSB7fQorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBpdGVtczogU2VxdWVuY2VbVHVwbGVbc3RyLCBzdHJdXSk6CisgICAg
ICAgIHNlbGYuaGVhZGVyc19kaWN0OiBEaWN0W3N0ciwgTGlzdFtzdHJdXSA9IHt9CiAgICAgICAg
IGZvciBrZXksIHZhbHVlIGluIGl0ZW1zOgogICAgICAgICAgICAga2V5ID0ga2V5Lmxvd2VyKCkK
ICAgICAgICAgICAgIGlmIGtleSBub3QgaW4gc2VsZi5oZWFkZXJzX2RpY3Q6CkBAIC0xNDUsMTUg
KzE0MiwxOCBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAgICAgZGVmIGNsb3Nl
KHNlbGYpOgogICAgICAgICAiIiJDbG9zZXMgdGhlIGN1cnJlbnQgSFRUUCBjb25uZWN0aW9uLCBp
ZiB0aGVyZSBpcyBvbmUuIiIiCiAgICAgICAgIGlmIHNlbGYuX2Nvbm46Ci0gICAgICAgICAgICBz
ZWxmLl9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAg
ICAgICMgVGhlIHJlbW90ZSBjbG9zZWQgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgIHNlbGYuX2Nvbm4gPSBOb25lCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYg
Y29ubmVjdGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0cyB0aGUgY3VycmVudCBIVFRQIGNvbm5l
Y3Rpb24sIG9yIGxhemlseSBjcmVhdGVzIG9uZS4iIiIKICAgICAgICAgaWYgbm90IHNlbGYuX2Nv
bm46CiAgICAgICAgICAgICBjb25uX2t3YXJncyA9IHt9Ci0gICAgICAgICAgICBpZiBub3QgUFkz
OgotICAgICAgICAgICAgICAgIGNvbm5fa3dhcmdzWyJzdHJpY3QiXSA9IFRydWUKICAgICAgICAg
ICAgICMgV2UgYXJlIG5vdCBzZXR0aW5nIGFuIEhUVFAgdGltZW91dCBvdGhlciB0aGFuIHRoZSBk
ZWZhdWx0IHdoZW4gdGhlCiAgICAgICAgICAgICAjIGNvbm5lY3Rpb24gaXRzIGNyZWF0ZWQuIFRo
ZSBzZW5kIG1ldGhvZCBoYXMgYSB0aW1lb3V0IHZhbHVlIGlmIG5lZWRlZC4KICAgICAgICAgICAg
IHNlbGYuX2Nvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxmLmhvc3QsIHNlbGYucG9ydCwgKipjb25u
X2t3YXJncykKQEAgLTIzNSw3ICsyMzUsNyBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVj
dCk6CiAgICAgICAgIHJldHVybiBSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2UsIGRlY29kZXI9
ZGVjb2RlciwgKipjb2RlY19rd2FyZ3MpCiAKICAgICBkZWYgX3JlcXVlc3Qoc2VsZiwgbWV0aG9k
LCB1cmksIHBheWxvYWQsIGhlYWRlcnM9Tm9uZSwgdGltZW91dD1Ob25lKToKLSAgICAgICAgaWYg
aXNpbnN0YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHBh
eWxvYWQsIHN0cik6CiAgICAgICAgICAgICBwYXlsb2FkID0gcGF5bG9hZC5lbmNvZGUoInV0Zi04
IikKIAogICAgICAgICBpZiBoZWFkZXJzIGlzIE5vbmU6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKaW5kZXggMGFkZjBh
OTRiMTVkLi40YTA3OWM3MjViZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKQEAgLTYsNyArNiw2IEBAIHdwdHJ1
bm5lciBpcyBhIGhhcm5lc3MgZm9yIHJ1bm5pbmcgdGhlIFczQyBgd2ViLXBsYXRmb3JtLXRlc3Rz
IHRlc3RzdWl0ZWBfLgogLi4gdG9jdHJlZTo6CiAgICA6bWF4ZGVwdGg6IDIKIAotICAgZG9jcy91
c2FnZQogICAgZG9jcy9leHBlY3RhdGlvbgogICAgZG9jcy9kZXNpZ24KICAgIGRvY3MvaW50ZXJu
YWxzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL2RvY3MvdXNhZ2UucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci9kb2NzL3VzYWdlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVm
ZDk3YmY2YzEyLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDI0MiAr
MCwwIEBACi1HZXR0aW5nIFN0YXJ0ZWQKLT09PT09PT09PT09PT09PQotCi1JbnN0YWxsaW5nIHdw
dHJ1bm5lcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIGVhc2llc3Qgd2F5IHRvIGluc3Rh
bGwgd3B0cnVubmVyIGlzIGludG8gYSB2aXJ0dWFsZW52LCB1c2luZyBwaXA6OgotCi0gIHZpcnR1
YWxlbnYgd3B0cnVubmVyCi0gIGNkIHdwdHJ1bm5lcgotICBzb3VyY2UgYmluL2FjdGl2YXRlCi0g
IHBpcCBpbnN0YWxsIHdwdHJ1bm5lcgotCi1UaGlzIHdpbGwgaW5zdGFsbCB0aGUgYmFzZSBkZXBl
bmRlbmNpZXMgZm9yIHdwdHJ1bm5lciwgYnV0IG5vdCBhbnkKLWV4dHJhIGRlcGVuZGVuY2llcyBy
ZXF1aXJlZCB0byB0ZXN0IGFnYWluc3Qgc3BlY2lmaWMgYnJvd3NlcnMuIEluCi1vcmRlciB0byBk
byB0aGlzIHlvdSBtdXN0IHVzZSB1c2UgdGhlIGV4dHJhIHJlcXVpcmVtZW50cyBmaWxlcyBpbgot
YGAkVklSVFVBTF9FTlYvcmVxdWlyZW1lbnRzL3JlcXVpcmVtZW50c19icm93c2VyLnR4dGBgLiBG
b3IgZXhhbXBsZSwKLWluIG9yZGVyIHRvIHRlc3QgYWdhaW5zdCBGaXJlZm94IHlvdSB3b3VsZCBo
YXZlIHRvIHJ1bjo6Ci0KLSAgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzL3JlcXVpcmVtZW50
c19maXJlZm94LnR4dAotCi1JZiB5b3UgaW50ZW5kIHRvIHdvcmsgb24gdGhlIGNvZGUsIHRoZSBg
YC1lYGAgb3B0aW9uIHRvIHBpcCBzaG91bGQgYmUKLXVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBh
IHNvdXJjZSBjaGVja291dCBpLmUuIGluc2lkZSBhIHZpcnR1YWwKLWVudmlyb25tZW50IGNyZWF0
ZWQgYXMgYWJvdmU6OgotCi0gIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dwdHJ1
bm5lci5naXQKLSAgY2Qgd3B0cnVubmVyCi0gIHBpcCBpbnN0YWxsIC1lIC4vCi0KLUluIGFkZGl0
aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMgaW5zdGFsbGVkIGJ5IHBpcCwgd3B0cnVubmVyIHJlcXVp
cmVzCi1hIGNvcHkgb2YgdGhlIHdlYi1wbGF0Zm9ybS10ZXN0cyByZXBvc2l0b3J5LiBUaGlzIGNh
biBiZSBsb2NhdGVkCi1hbnl3aGVyZSBvbiB0aGUgZmlsZXN5c3RlbSwgYnV0IHRoZSBlYXNpZXN0
IG9wdGlvbiBpcyB0byBwdXQgaXQKLXVuZGVyIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYXMg
dGhlIHdwdHJ1bm5lciBjaGVja291dDo6Ci0KLSAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotCi1JdCBpcyBhbHNvIG5lY2Vzc2FyeSB0byBn
ZW5lcmF0ZSBhIHdlYi1wbGF0Zm9ybS10ZXN0cyBgYE1BTklGRVNULmpzb25gYAotZmlsZS4gSXQn
cyByZWNvbW1lbmRlZCB0byBhbHNvIHB1dCB0aGF0IHVuZGVyIHRoZSBzYW1lIHBhcmVudCBkaXJl
Y3RvcnkgYXMKLXRoZSB3cHRydW5uZXIgY2hlY2tvdXQsIGluIGEgZGlyZWN0b3J5IG5hbWVkIGBg
bWV0YWBgOjoKLQotICBta2RpciBtZXRhCi0gIGNkIHdlYi1wbGF0Zm9ybS10ZXN0cwotICBweXRo
b24gbWFuaWZlc3QgLS1wYXRoIC4uL21ldGEvTUFOSUZFU1QuanNvbgotCi1UaGUgYGBNQU5JRkVT
VC5qc29uYGAgZmlsZSBuZWVkcyB0byBiZSByZWdlbmVyYXRlZCBlYWNoIHRpbWUgdGhlCi13ZWIt
cGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQgaXMgdXBkYXRlZC4gVG8gYWlkIHdpdGggdGhlIHVwZGF0
ZSBwcm9jZXNzCi10aGVyZSBpcyBhIHRvb2wgY2FsbGVkIGBgd3B0dXBkYXRlYGAsIHdoaWNoIGlz
IGRlc2NyaWJlZCBpbgotOnJlZjpgd3B0dXBkYXRlLWxhYmVsYC4KLQotUnVubmluZyB0aGUgVGVz
dHMKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUEgdGVzdCBydW4gaXMgc3RhcnRlZCB1c2luZyB0aGUg
YGB3cHRydW5uZXJgYCBjb21tYW5kLiAgVGhlIGNvbW1hbmQKLXRha2VzIG11bHRpcGxlIG9wdGlv
bnMsIG9mIHdoaWNoIHRoZSBmb2xsb3dpbmcgYXJlIG1vc3Qgc2lnbmlmaWNhbnQ6Ci0KLWBgLS1w
cm9kdWN0YGAgKGRlZmF1bHRzIHRvIGBmaXJlZm94YCkKLSAgVGhlIHByb2R1Y3QgdG8gdGVzdCBh
Z2FpbnN0OiBgY2hyb21lYCwgYGZpcmVmb3hgLCBvciBgc2Vydm9gLgotCi1gYC0tYmluYXJ5YGAg
KHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIG9yIGBzZXJ2b2ApCi0gIFRoZSBwYXRo
IHRvIGEgYmluYXJ5IGZpbGUgZm9yIHRoZSBwcm9kdWN0IChicm93c2VyKSB0byB0ZXN0IGFnYWlu
c3QuCi0KLWBgLS13ZWJkcml2ZXItYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGNo
cm9tZWApCi0gIFRoZSBwYXRoIHRvIGEgYCpkcml2ZXJgIGJpbmFyeTsgZS5nLiwgYSBgY2hyb21l
ZHJpdmVyYCBiaW5hcnkuCi0KLWBgLS1jZXJ0dXRpbC1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJv
ZHVjdCBpcyBgZmlyZWZveGAgWyNdXykKLSAgVGhlIHBhdGggdG8gYSBgY2VydHV0aWxgIGJpbmFy
eSAoZm9yIHRlc3RzIHRoYXQgbXVzdCBiZSBydW4gb3ZlciBodHRwcykuCi0KLWBgLS1tZXRhZGF0
YWBgIChyZXF1aXJlZCBvbmx5IHdoZW4gbm90IGB1c2luZyBkZWZhdWx0IHBhdGhzYF8pCi0gIFRo
ZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGVzdCBtZXRhZGF0YS4gWyNdXwotCi1g
YC0tdGVzdHNgYCAocmVxdWlyZWQgb25seSB3aGVuIG5vdCBgdXNpbmcgZGVmYXVsdCBwYXRoc2Bf
KQotICBUaGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgd2ViLXBsYXRmb3JtLXRl
c3RzIGNoZWNrb3V0LgotCi1gYC0tcHJlZnMtcm9vdGBgIChyZXF1aXJlZCBvbmx5IHdoZW4gdGVz
dGluZyBhIEZpcmVmb3ggYmluYXJ5KQotICBUaGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWlu
aW5nIEZpcmVmb3ggdGVzdC1oYXJuZXNzIHByZWZlcmVuY2VzLiBbI11fCi0KLWBgLS1jb25maWdg
YCAoc2hvdWxkIGRlZmF1bHQgdG8gYHdwdHJ1bm5lci5kZWZhdWx0LmluaWApCi0gIFRoZSBwYXRo
IHRvIHRoZSBjb25maWcgKGluaSkgZmlsZS4KLQotLi4gWyNdIFRoZSBgYC0tY2VydHV0aWwtYmlu
YXJ5YGAgb3B0aW9uIGlzIHJlcXVpcmVkIHdoZW4gdGhlIHByb2R1Y3QgaXMKLSAgIGBgZmlyZWZv
eGBgIHVubGVzcyBgYC0tc3NsLXR5cGU9bm9uZWBgIGlzIHNwZWNpZmllZC4KLQotLi4gWyNdIFRo
ZSBgYC0tbWV0YWRhdGFgYCBwYXRoIGlzIHRvIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnM6Ci0K
LSAgKiBhIGBgTUFOSUZFU1QuanNvbmBgIGZpbGUgKHRoZSB3ZWItcGxhdGZvcm0tdGVzdHMgZG9j
dW1lbnRhdGlvbiBoYXMKLSAgICBpbnN0cnVjdGlvbnMgb24gZ2VuZXJhdGluZyB0aGlzIGZpbGUp
Ci0gICogKG9wdGlvbmFsbHkpIGFueSBleHBlY3RhdGlvbiBmaWxlcyAoc2VlIDpyZWY6YHdwdHVw
ZGF0ZS1sYWJlbGApCi0KLS4uIFsjXSBFeGFtcGxlIGBgLS1wcmVmcy1yb290YGAgdmFsdWU6IGBg
fi9tb3ppbGxhLWNlbnRyYWwvdGVzdGluZy9wcm9maWxlc2BgLgotCi1UaGVyZSBhcmUgYWxzbyBh
IHZhcmlldHkgb2Ygb3RoZXIgY29tbWFuZC1saW5lIG9wdGlvbnMgYXZhaWxhYmxlOyB1c2UKLWBg
LS1oZWxwYGAgdG8gbGlzdCB0aGVtLgotCi1UaGUgZm9sbG93aW5nIGV4YW1wbGVzIHNob3cgaG93
IHRvIHN0YXJ0IHdwdHJ1bm5lciB3aXRoIHZhcmlvdXMgb3B0aW9ucy4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tCi1TdGFydGluZyB3cHRydW5uZXIKLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgZXhh
bXBsZXMgYmVsb3cgYXNzdW1lIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3J5IGxheW91dCwKLXRob3Vn
aCBubyBzcGVjaWZpYyBmb2xkZXIgc3RydWN0dXJlIGlzIHJlcXVpcmVkOjoKLQotICB+L3Rlc3R0
d2Yvd3B0cnVubmVyICAgICAgICAgICMgd3B0cnVubmVyIGNoZWNrb3V0Ci0gIH4vdGVzdHR3Zi93
ZWItcGxhdGZvcm0tdGVzdHMgIyB3ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQKLSAgfi90ZXN0
dHdmL21ldGEgICAgICAgICAgICAgICAjIG1ldGFkYXRhCi0KLVRvIHRlc3QgYSBGaXJlZm94IE5p
Z2h0bHkgYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVudCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRy
dW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyBleGFtcGxlOjoK
LQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3Rlc3R0d2YvbWV0YS8gLS10ZXN0cz1+L3Rlc3R0
d2Yvd2ViLXBsYXRmb3JtLXRlc3RzLyBcCi0gICAgLS1iaW5hcnk9fi9tb3ppbGxhLWNlbnRyYWwv
b2JqLXg4Nl82NC1hcHBsZS1kYXJ3aW4xNC4zLjAvZGlzdC9OaWdodGx5LmFwcC9Db250ZW50cy9N
YWNPUy9maXJlZm94IFwKLSAgICAtLWNlcnR1dGlsLWJpbmFyeT1+L21vemlsbGEtY2VudHJhbC9v
YmoteDg2XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9zZWN1cml0eS9uc3MvY21kL2NlcnR1dGlsL2Nl
cnR1dGlsIFwKLSAgICAtLXByZWZzLXJvb3Q9fi9tb3ppbGxhLWNlbnRyYWwvdGVzdGluZy9wcm9m
aWxlcwotCi0KLUFuZCB0byB0ZXN0IGEgQ2hyb21pdW0gYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9u
bWVudCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIg
dG8gdGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3Rl
c3R0d2YvbWV0YS8gLS10ZXN0cz1+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRlc3RzLyBcCi0gICAg
LS1iaW5hcnk9fi9jaHJvbWl1bS9zcmMvb3V0L1JlbGVhc2UvQ2hyb21pdW0uYXBwL0NvbnRlbnRz
L01hY09TL0Nocm9taXVtIFwKLSAgICAtLXdlYmRyaXZlci1iaW5hcnk9L3Vzci9sb2NhbC9iaW4v
Y2hyb21lZHJpdmVyIC0tcHJvZHVjdD1jaHJvbWUKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJ1
bm5pbmcgdGVzdCBzdWJzZXRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyByZXN0cmljdCBh
IHRlc3QgcnVuIGp1c3QgdG8gdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIHdlYi1wbGF0Zm9ybS10ZXN0
cwotc3ViZGlyZWN0b3J5LCBzcGVjaWZ5IHRoZSBkaXJlY3RvcnkgbmFtZSBpbiB0aGUgcG9zaXRp
b25hbCBhcmd1bWVudHMgYWZ0ZXIKLXRoZSBvcHRpb25zOyBmb3IgZXhhbXBsZSwgcnVuIGp1c3Qg
dGhlIHRlc3RzIGluIHRoZSBgZG9tYCBzdWJkaXJlY3Rvcnk6OgotCi0gIHdwdHJ1bm5lciAtLW1l
dGFkYXRhPX4vdGVzdHR3Zi9tZXRhIC0tdGVzdHM9fi90ZXN0dHdmL3dlYi1wbGF0Zm9ybS10ZXN0
cy8gXAotICAgIC0tYmluYXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3Bh
dGgvdG8vY2VydHV0aWwgXAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2Zp
bGVzIFwKLSAgICBkb20KLQotLS0tLS0tLS0tLS0tLS0tLS0tLQotUnVubmluZyBpbiBwYXJhbGxl
bAotLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBzcGVlZCB1cCB0aGUgdGVzdGluZyBwcm9jZXNz
LCB1c2UgdGhlIGBgLS1wcm9jZXNzZXNgYCBvcHRpb24gdG8gaGF2ZQotd3B0cnVubmVyIHJ1biBt
dWx0aXBsZSBicm93c2VyIGluc3RhbmNlcyBpbiBwYXJhbGxlbC4gRm9yIGV4YW1wbGUsIHRvCi1o
YXZlIHdwdHJ1bm5lciBhdHRlbXB0IHRvIHJ1biB0ZXN0cyBhZ2FpbnN0IHdpdGggc2l4IGJyb3dz
ZXIgaW5zdGFuY2VzCi1pbiBwYXJhbGxlbCwgc3BlY2lmeSBgYC0tcHJvY2Vzc2VzPTZgYC4gQnV0
IG5vdGUgdGhhdCBiZWhhdmlvdXIgaW4gdGhpcwotbW9kZSBpcyBuZWNlc3NhcmlseSBsZXNzIGRl
dGVybWluaXN0aWMgdGhhbiB3aXRoIGBgLS1wcm9jZXNzZXM9MWBgICh0aGUKLWRlZmF1bHQpLCBz
byB0aGVyZSBtYXkgYmUgbW9yZSBub2lzZSBpbiB0aGUgdGVzdCByZXN1bHRzLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Vc2luZyBkZWZhdWx0IHBhdGhzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LVRoZSAob3RoZXJ3aXNlLXJlcXVpcmVkKSBgYC0tdGVzdHNgYCBhbmQgYGAtLW1ldGFkYXRhYGAg
Y29tbWFuZC1saW5lCi1vcHRpb25zL2ZsYWdzIGJlIG9taXR0ZWQgaWYgYW55IGNvbmZpZ3VyYXRp
b24gZmlsZSBpcyBmb3VuZCB0aGF0Ci1jb250YWlucyBhIHNlY3Rpb24gc3BlY2lmeWluZyB0aGUg
YGB0ZXN0c2BgIGFuZCBgYG1ldGFkYXRhYGAga2V5cy4KLQotU2VlIHRoZSBgQ29uZmlndXJhdGlv
biBGaWxlYF8gc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAotY29uZmlndXJhdGlv
biBmaWxlcywgaW5jbHVkaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIGV4cGVjdGVkCi1sb2Nh
dGlvbnMuCi0KLVRoZSBjb250ZW50IG9mIHRoZSBgYHdwdHJ1bm5lci5kZWZhdWx0LmluaWBgIGRl
ZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlCi1tYWtlcyB3cHRydW5uZXIgbG9vayBmb3IgdGVzdHMg
KHRoYXQgaXMsIGEgd2ViLXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0KQotYXMgYSBzdWJkaXJlY3Rv
cnkgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG5hbWVkIGBgdGVzdHNgYCwgYW5kIGZvcgotbWV0
YWRhdGEgZmlsZXMgaW4gYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG5h
bWVkIGBgbWV0YWBgLgotCi1PdXRwdXQKLS0tLS0tLQotCi13cHRydW5uZXIgdXNlcyBgdGhlIG1v
emxvZyBwYWNrYWdlCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnL21v
emJhc2UvbW96bG9nLmh0bWw+YF8pIGZvcgotb3V0cHV0LiBUaGlzIHN0cnVjdHVyZXMgZXZlbnRz
IHN1Y2ggYXMgdGVzdCByZXN1bHRzIG9yIGxvZyBtZXNzYWdlcyBhcwotSlNPTiBvYmplY3RzIHRo
YXQgY2FuIHRoZW4gYmUgZmVkIHRvIG90aGVyIHRvb2xzIGZvcgotaW50ZXJwcmV0YXRpb24uIE1v
cmUgZGV0YWlscyBhYm91dCB0aGUgbWVzc2FnZSBmb3JtYXQgYXJlIGdpdmVuIGluCi1gdGhlIG1v
emxvZyBkb2N1bWVudGF0aW9uCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEu
b3JnL21vemJhc2UvbW96bG9nLmh0bWw+YF8uCi0KLUJ5IGRlZmF1bHQgdGhlIHJhdyBKU09OIG1l
c3NhZ2VzIGFyZSBkdW1wZWQgdG8gc3Rkb3V0LiBUaGlzIGlzCi1jb252ZW5pZW50IGZvciBwaXBp
bmcgaW50byBvdGhlciB0b29scywgYnV0IG5vdCBpZGVhbCBmb3IgaHVtYW5zCi1yZWFkaW5nIHRo
ZSBvdXRwdXQuIGBtb3psb2cKLTxodHRwczovL2ZpcmVmb3gtc291cmNlLWRvY3MubW96aWxsYS5v
cmcvbW96YmFzZS9tb3psb2cuaHRtbD5gXyBjb21lcwotd2l0aCBzZXZlcmFsIG90aGVyIGZvcm1h
dHRlcnMsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggY29tbWFuZAotbGluZSBvcHRpb25z
LiBUaGUgZ2VuZXJhbCBmb3JtYXQgb2YgdGhlc2Ugb3B0aW9ucyBpcwotYGAtLWxvZy1uYW1lPWRl
c3RgYCwgd2hlcmUgYGBuYW1lYGAgaXMgdGhlIG5hbWUgb2YgdGhlIGZvcm1hdCBhbmQKLWBgZGVz
dGBgIGlzIGEgcGF0aCB0byBhIGRlc3RpbmF0aW9uIGZpbGUsIG9yIGBgLWBgIGZvciBzdGRvdXQu
IFRoZSByYXcKLUpTT04gZGF0YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2BgIGZvcm1hdHRlciBz
bywgdGhlIGRlZmF1bHQgc2V0dXAKLWNvcnJlc3BvbmRzIHRvIGBgLS1sb2ctcmF3PS1gYC4KLQot
QSByZWFzb25hYmxlIG91dHB1dCBmb3JtYXQgZm9yIGh1bWFucyBpcyBwcm92aWRlZCBhcyBgYG1h
Y2hgYC4gU28gaW4KLW9yZGVyIHRvIG91dHB1dCB0aGUgZnVsbCByYXcgbG9nIHRvIGEgZmlsZSBh
bmQgYSBodW1hbi1yZWFkYWJsZQotc3VtbWFyeSB0byBzdGRvdXQsIG9uZSBtaWdodCBwYXNzIHRo
ZSBvcHRpb25zOjoKLQotICAtLWxvZy1yYXc9b3V0cHV0LmxvZyAtLWxvZy1tYWNoPS0KLQotQ29u
ZmlndXJhdGlvbiBGaWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQotd3B0cnVubmVyIHVzZXMgYSBg
YC5pbmlgYCBmaWxlIHRvIGNvbnRyb2wgc29tZSBjb25maWd1cmF0aW9uCi1zZWN0aW9ucy4gVGhl
IGZpbGUgaGFzIHRocmVlIHNlY3Rpb25zOyBgYFtwcm9kdWN0c11gYCwKLWBgW21hbmlmZXN0OmRl
ZmF1bHRdYGAgYW5kIGBgW3dlYi1wbGF0Zm9ybS10ZXN0c11gYC4KLQotYGBbcHJvZHVjdHNdYGAg
aXMgdXNlZCB0bwotZGVmaW5lIHRoZSBzZXQgb2YgYXZhaWxhYmxlIHByb2R1Y3RzLiBCeSBkZWZh
dWx0IHRoaXMgc2VjdGlvbiBpcyBlbXB0eQotd2hpY2ggbWVhbnMgdGhhdCBhbGwgdGhlIHByb2R1
Y3RzIGRpc3RyaWJ1dGVkIHdpdGggd3B0cnVubmVyIGFyZQotZW5hYmxlZCAoYWx0aG91Z2ggdGhl
aXIgZGVwZW5kZW5jaWVzIG1heSBub3QgYmUgaW5zdGFsbGVkKS4gVGhlIHNldAotb2YgZW5hYmxl
ZCBwcm9kdWN0cyBjYW4gYmUgc2V0IGJ5IHVzaW5nIHRoZSBwcm9kdWN0IG5hbWUgYXMgdGhlCi1r
ZXkuIEZvciBidWlsdCBpbiBwcm9kdWN0cyB0aGUgdmFsdWUgaXMgZW1wdHkuIEl0IGlzIGFsc28g
cG9zc2libGUgdG8KLXByb3ZpZGUgdGhlIHBhdGggdG8gYSBzY3JpcHQgaW1wbGVtZW50aW5nIHRo
ZSBicm93c2VyIGZ1bmN0aW9uYWxpdHkKLWUuZy46OgotCi0gIFtwcm9kdWN0c10KLSAgY2hyb21l
ID0KLSAgbmV0c2NhcGU0ID0gcGF0aC90by9uZXRzY2FwZS5weQotCi1gYFttYW5pZmVzdDpkZWZh
dWx0XWBgIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBwYXRocyBmb3IgdGhlIHRlc3RzIGFuZCBtZXRh
ZGF0YSwKLXJlbGF0aXZlIHRvIHRoZSBjb25maWcgZmlsZS4gRm9yIGV4YW1wbGU6OgotCi0gIFtt
YW5pZmVzdDpkZWZhdWx0XQotICB0ZXN0cyA9IH4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVzdHMK
LSAgbWV0YWRhdGEgPSB+L3Rlc3R0d2YvbWV0YQotCi0KLWBgW3dlYi1wbGF0Zm9ybS10ZXN0c11g
YCBpcyB1c2VkIHRvIHNldCB0aGUgcHJvcGVydGllcyBvZiB0aGUgdXBzdHJlYW0KLXJlcG9zaXRv
cnkgd2hlbiB1cGRhdGluZyB0aGUgcGF0aHMuIGBgcmVtb3RlX3VybGBgIHNwZWNpZmllcyB0aGUg
Z2l0Ci11cmwgdG8gcHVsbCBmcm9tOyBgYGJyYW5jaGBgIHRoZSBicmFuY2ggdG8gc3luYyBhZ2Fp
bnN0IGFuZAotYGBzeW5jX3BhdGhgYCB0aGUgbG9jYWwgcGF0aCwgcmVsYXRpdmUgdG8gdGhlIGNv
bmZpZ3VyYXRpb24gZmlsZSwgdG8KLXVzZSB3aGVuIGNoZWNraW5nIG91dCB0aGUgdGVzdHMgZS5n
Ljo6Ci0KLSAgW3dlYi1wbGF0Zm9ybS10ZXN0c10KLSAgcmVtb3RlX3VybCA9IGh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotICBicmFuY2ggPSBtYXN0ZXIKLSAg
c3luY19wYXRoID0gc3luYwotCi1BIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0IGNvbnRhaW4gYWxs
IHRoZSBhYm92ZSBmaWVsZHM7IGZhbGxpbmcgYmFjawotdG8gdGhlIGRlZmF1bHQgdmFsdWVzIGZv
ciB1bnNwZWNpZmllZCBmaWVsZHMgaXMgbm90IHlldCBzdXBwb3J0ZWQuCi0KLVRoZSBgYHdwdHJ1
bm5lcmBgIGFuZCBgYHdwdHVwZGF0ZWBgIGNvbW1hbmRzIHdpbGwgdXNlIGNvbmZpZ3VyYXRpb24K
LWZpbGVzIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6Ci0KLSAqIEFueSBwYXRoIHN1cHBsaWVkIHdp
dGggYSBgYC0tY29uZmlnYGAgZmxhZyB0byB0aGUgY29tbWFuZC4KLQotICogQSBmaWxlIGNhbGxl
ZCBgYHdwdHJ1bm5lci5pbmlgYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkKLQotICogVGhlIGRl
ZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIChgYHdwdHJ1bm5lci5kZWZhdWx0LmluaWBgIGluIHRo
ZQotICAgc291cmNlIGRpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dAppbmRleCAxZWJh
MTE0YTMxYzIuLjgzNTZjNDc4NWRjMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dApAQCAtMSw5
ICsxLDggQEAKIGh0bWw1bGliPT0xLjEKLW1vemluZm89PTEuMi4xICAjIGh0dHBzOi8vYnVnemls
bGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKLW1vemxvZz09Ni4xCi1tb3pk
ZWJ1Zz09MC4yCi0jIFBpbGxvdyA3IHJlcXVpcmVzIFB5dGhvbiAzCi1waWxsb3c9PTYuMi4yICAj
IHB5dXA6IDw3LjAKLXVybGxpYjNbc2VjdXJlXT09MS4yNS4xMAotcmVxdWVzdHM9PTIuMjQuMAot
c2l4PT0xLjE1LjAKK21vemluZm89PTEuMi4yICAjIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKK21vemxvZz09Ny4xLjAKK21vemRlYnVnPT0wLjMu
MAorcGlsbG93PT04LjMuMQordXJsbGliM1tzZWN1cmVdPT0xLjI2LjYKK3JlcXVlc3RzPT0yLjI1
LjEKK3NpeD09MS4xNi4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAppbmRl
eCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19jaHJvbWUudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09
MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4
dAppbmRleCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2Fu
ZHJvaWQudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApAQCAtMSArMSBAQAotbW96cHJvY2Vz
cz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2Uu
dHh0CmluZGV4IDBhNjEyMDhkNzdjMS4uN2FkMDE4MGI4NTQ1IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4
dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19lZGdlLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pw
cm9jZXNzPT0xLjMuMAogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfZmlyZWZveC50eHQKaW5kZXggOGI0NTcwM2E1NTk2Li42YmYyODBjNDdjOTIgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2ZpcmVmb3gudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CkBAIC0xLDEwICsxLDEwIEBACiBtYXJp
b25ldHRlX2RyaXZlcj09My4xLjAKLW1vemNyYXNoPT0yLjAuMAotbW96aW5zdGFsbD09Mi4wLjAK
K21vemNyYXNoPT0yLjEuMAorbW96aW5zdGFsbD09Mi4wLjEKIG1vemxlYWs9PTAuMgogbW96bmV0
d29yaz09MS4xLjAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAogbW96cHJv
ZmlsZT09Mi41LjAKLW1venJ1bm5lcj09OC4wLjAKK21venJ1bm5lcj09OC4yLjEKIG1venZlcnNp
b249PTIuMy4wCi1wc3V0aWw9PTUuNy4yCitwc3V0aWw9PTUuOC4wCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50
eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19pZS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X2llLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19pZS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNzPT0xLjIuMAor
bW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50
eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19vcGVyYS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX29wZXJhLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNz
PT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19zYWZhcmkudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjY1Yjc2YWE4NWNj
NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CkBAIC0xICsxLDIgQEAK
LW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAorcHN1dGlsPT01LjguMApkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfc2F1Y2UudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CmluZGV4IDM0YzY2ZWUyMzhiNi4uZDFkMGY3
ZTJiZWUyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CkBAIC0xLDMgKzEs
MyBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCiBzZWxlbml1bT09My4x
NDEuMAotcmVxdWVzdHM9PTIuMjQuMAorcmVxdWVzdHM9PTIuMjUuMQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vy
dm8udHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfc2Vydm8udHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19zZXJ2by50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNz
PT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJr
aXQudHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJr
aXQudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCitt
b3pwcm9jZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvc2V0dXAucHkKaW5kZXggYTQ1OWUyYzQ3MTQxLi5jMjA5NTU4NDhkYmYg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
c2V0dXAucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci9zZXR1cC5weQpAQCAtMiw4ICsyLDYgQEAKICMgTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkg
b2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBmaWxlLAogIyBZb3UgY2Fu
IG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLgogCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0KIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKIGlt
cG9ydCBzeXMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvdG94LmluaSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvdG94LmluaQppbmRleCA3OThmNjRhM2U0MjIuLmM0OWU3NTllYWQ4YyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvdG94LmluaQpA
QCAtMiwxNiArMiwxMiBAQAogeGZhaWxfc3RyaWN0PXRydWUKIAogW3RveF0KLWVudmxpc3QgPSBw
eTI3LXtiYXNlLGNocm9tZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2FmYXJpLHNhdWNlLHNlcnZv
LHdlYmtpdCx3ZWJraXRndGtfbWluaWJyb3dzZXIsZXBpcGhhbnl9LHtweTM1LHB5MzYscHkzNyxw
eTM4fS1iYXNlCitlbnZsaXN0ID0gcHkzOS17YmFzZSxjaHJvbWUsZWRnZSxmaXJlZm94LGllLG9w
ZXJhLHNhZmFyaSxzYXVjZSxzZXJ2byx3ZWJraXQsd2Via2l0Z3RrX21pbmlicm93c2VyLGVwaXBo
YW55fSx7cHkzNixweTM3LHB5Mzh9LWJhc2UKIHNraXBfbWlzc2luZ19pbnRlcnByZXRlcnMgPSBG
YWxzZQogCiBbdGVzdGVudl0KIGRlcHMgPQotICAgICBweXRlc3Q+PTIuOQotICAgICBweXRlc3Qt
Y292Ci0gICAgIHB5dGVzdC14ZGlzdAotICAgICAjIG1vY2sgbm8gbG9uZ2VyIHN1cHBvcnRzIFB5
dGhvbiAyIHNpbmNlIHY0Ci0gICAgIG1vY2s9PTMuKgorICAgICAtcnt0b3hpbmlkaXJ9Ly4uL3Jl
cXVpcmVtZW50c19weXRlc3QudHh0CiAgICAgIC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzLnR4
dAogICAgICBjaHJvbWU6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKICAg
ICAgZWRnZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZWRnZS50eHQKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5Cmlu
ZGV4IDYxMTA0NTBiNzI4Mi4uNGJkODcxZDFmYmQ1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lk
X3dlYmxheWVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKQEAgLTEsOSArMSw4
IEBACi1pbXBvcnQgc3VicHJvY2VzcwotCi1mcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVj
dXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9t
dWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAg
IyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBp
bXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9tIC5jaHJvbWUg
aW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCi1mcm9tIC4u
d2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitmcm9tIC5jaHJvbWVf
YW5kcm9pZCBpbXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCiBmcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwg
ICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9x
YTogRjQwMQpAQCAtMTEsNyArMTAsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hyb21l
IGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0
cnVubmVyX18gPSB7InByb2R1Y3QiOiAiYW5kcm9pZF93ZWJsYXllciIsCiAgICAgICAgICAgICAg
ICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6ICJXZWJsYXllclNoZWxsIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTog
IldlYmxheWVyU2hlbGwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjog
Ik51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5l
c3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVj
dXRvciJ9LApAQCAtMjgsMjMgKzI4LDI0IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAg
ICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nl
cl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2Rl
ZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmln
LCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKICAg
ICAgICAgICAgICJkZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCiAgICAg
ICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAot
ICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3Mi
KX0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9h
cmdzIiksCisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJncy5nZXQoInN0YWNr
d2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBrd2FyZ3MuZ2V0KCJz
eW1ib2xzX3BhdGgiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVy
X2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2Fy
Z3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICAjIFVzZSB1cGRhdGUoKSB0byBtb2Rp
ZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNlLgogICAgIF93cHRzZXJ2ZV9wb3J0cy51cGRhdGUo
c2V0KAotICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwJ10gKyBzZXJ2ZXJfY29u
ZmlnWydwb3J0cyddWydodHRwcyddICsKLSAgICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsn
d3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzcyddCisgICAgICAgIHRlc3RfZW52aXJv
bm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sn
cG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0
cyddWyd3cyddICsgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ3dzcyddCiAgICAg
KSkKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9tZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICBleGVjdXRvcl9rd2Fy
Z3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmly
b25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZGVsIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0
aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJdCiAgICAgY2FwYWJpbGl0aWVzID0g
ZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXQpAQCAtNzQsNjEgKzc1LDIyIEBAIGRlZiBl
bnZfb3B0aW9ucygpOgogICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4wLjAuMSJ9CiAK
IAotI1RPRE86IHJlZmFjdG9yIGNvbW1vbiBlbGVtZW50cyBvZiBXZWJsYXllclNoZWxsIGFuZCBD
aHJvbWVBbmRyb2lkQnJvd3NlcgotY2xhc3MgV2VibGF5ZXJTaGVsbChCcm93c2VyKToKK2NsYXNz
IFdlYmxheWVyU2hlbGwoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKICAgICAiIiJDaHJvbWUg
aXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaAogICAg
IGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KICAgICAiIiIKIAot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0i
Y2hyb21lZHJpdmVyIiwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCisg
ICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCisgICAgICAg
ICAgICAgICAgIHJlbW90ZV9xdWV1ZT1Ob25lLAogICAgICAgICAgICAgICAgICBkZXZpY2Vfc2Vy
aWFsPU5vbmUsCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICBzdGFja3dh
bGtfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKICAg
ICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUgYGJp
bmFyeWAgYXJndW1lbnQgZ2l2ZXMKICAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBm
b3IgdGVzdGluZy4iIiIKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCisg
ICAgICAgIHN1cGVyKFdlYmxheWVyU2hlbGwsIHNlbGYpLl9faW5pdF9fKGxvZ2dlciwKKyAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVldWUsIGRldmljZV9zZXJpYWws
CisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNrd2Fsa19iaW5hcnksIHN5bWJv
bHNfcGF0aCkKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKLSAgICAgICAgc2VsZi5kZXZp
Y2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAotICAgICAgICBzZWxmLnNlcnZlciA9IENocm9tZURy
aXZlclNlcnZlcihzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0gICAgICAgIHNlbGYuc2V0
dXBfYWRiX3JldmVyc2UoKQotCi0gICAgZGVmIF9hZGJfcnVuKHNlbGYsIGFyZ3MpOgotICAgICAg
ICBjbWQgPSBbJ2FkYiddCi0gICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKLSAgICAgICAg
ICAgIGNtZC5leHRlbmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCi0gICAgICAgIGNtZC5l
eHRlbmQoYXJncykKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnICcuam9pbihjbWQpKQotICAg
ICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kKQotCi0gICAgZGVmIHNldHVwX2FkYl9yZXZl
cnNlKHNlbGYpOgotICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2FpdC1mb3ItZGV2aWNlJ10pCi0g
ICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAg
ICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKLSAgICAgICAgIyAi
YWRiIHJldmVyc2UiIGJhc2ljYWxseSBmb3J3YXJkcyBuZXR3b3JrIGNvbm5lY3Rpb24gZnJvbSBk
ZXZpY2UgdG8KLSAgICAgICAgIyBob3N0LgotICAgICAgICBmb3IgcG9ydCBpbiBfd3B0c2VydmVf
cG9ydHM6Ci0gICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUg
cG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6
Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQotCi0gICAgZGVmIHN0b3Ao
c2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNl
KQotCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAot
Ci0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5
IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0IHNh
eSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMgaXMg
YWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAgZGVm
IGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0gICAgICAgIHNlbGYuX2FkYl9y
dW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICBzZWxmLl9hZGJfcnVuKFsn
cmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKLQotICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNl
bGYpOgotICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBz
ZWxmLnNlcnZlci51cmx9CisgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0gX3dwdHNlcnZl
X3BvcnRzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRy
b2lkX3dlYnZpZXcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45
ZDYyMDkzNGVmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkK
QEAgLTAsMCArMSw5NSBAQAorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICAjIG5vcWE6
IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBn
ZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5jaHJvbWUgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC5jaHJvbWVf
YW5kcm9pZCBpbXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCitmcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwg
ICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9x
YTogRjQwMQorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiYW5kcm9pZF93ZWJ2aWV3
IiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgICAg
ICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJTeXN0ZW1XZWJWaWV3U2hlbGwiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCisgICAgICAg
ICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5l
c3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJX
ZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Indkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAg
ICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAi
ZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJl
bnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMi
OiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjog
ImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCitfd3B0c2VydmVfcG9ydHMgPSBzZXQoKQorCisK
K2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJk
cml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUs
IHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorICAgIHJldHVybiB7ImJpbmFyeSI6
IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1si
ZGV2aWNlX3NlcmlhbCJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3Nb
IndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJn
cy5nZXQoIndlYmRyaXZlcl9hcmdzIiksCisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6
IGt3YXJncy5nZXQoInN0YWNrd2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAgICJzeW1ib2xzX3Bh
dGgiOiBrd2FyZ3MuZ2V0KCJzeW1ib2xzX3BhdGgiKX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAorICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgIyBVc2UgdXBkYXRlKCkgdG8gbW9kaWZ5
IHRoZSBnbG9iYWwgbGlzdCBpbiBwbGFjZS4KKyAgICBfd3B0c2VydmVfcG9ydHMudXBkYXRlKHNl
dCgKKyAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHRl
c3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwcyddICsKKyAgICAgICAgdGVzdF9l
bnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ3dzJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZp
Z1sncG9ydHMnXVsnd3NzJ10KKyAgICApKQorCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21l
X2V4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVu
X2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICoqa3dhcmdzKQorICAgIGRlbCBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdWyJnb29n
OmNocm9tZU9wdGlvbnMiXVsicHJlZnMiXQorICAgIGNhcGFiaWxpdGllcyA9IGV4ZWN1dG9yX2t3
YXJnc1siY2FwYWJpbGl0aWVzIl0KKyAgICAjIE5vdGUgdGhhdCBmb3IgV2ViVmlldywgd2UgbGF1
bmNoIGEgdGVzdCBzaGVsbCBhbmQgaGF2ZSB0aGUgdGVzdCBzaGVsbCB1c2UgV2ViVmlldy4KKyAg
ICAjIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9IRUFE
L2FuZHJvaWRfd2Vidmlldy9kb2NzL3dlYnZpZXctc2hlbGwubWQKKyAgICBjYXBhYmlsaXRpZXNb
Imdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkUGFja2FnZSJdID0gXAorICAgICAgICBrd2Fy
Z3MuZ2V0KCJwYWNrYWdlX25hbWUiLCAib3JnLmNocm9taXVtLndlYnZpZXdfc2hlbGwiKQorICAg
IGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRBY3Rpdml0eSJdID0g
XAorICAgICAgICAib3JnLmNocm9taXVtLndlYnZpZXdfc2hlbGwuV2ViUGxhdGZvcm1UZXN0c0Fj
dGl2aXR5IgorICAgIGlmIGt3YXJncy5nZXQoImRldmljZV9zZXJpYWwiKToKKyAgICAgICAgY2Fw
YWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZERldmljZVNlcmlhbCJdID0g
a3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0KKworICAgICMgV29ya2Fyb3VuZDogZHJpdmVyLnF1aXQo
KSBjYW5ub3QgcXVpdCBTeXN0ZW1XZWJWaWV3U2hlbGwuCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJw
YXVzZV9hZnRlcl90ZXN0Il0gPSBGYWxzZQorICAgICMgV29ya2Fyb3VuZDogZHJpdmVyLmNsb3Nl
KCkgaXMgbm90IHN1cHBvcnRlZC4KKyAgICBleGVjdXRvcl9rd2FyZ3NbInJlc3RhcnRfYWZ0ZXJf
dGVzdCJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0g
RmFsc2UKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKipr
d2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgICMgYWxs
b3cgdGhlIHVzZSBvZiBob3N0LXJlc29sdmVyLXJ1bGVzIGluIGxpZXUgb2YgbW9kaWZ5aW5nIC9l
dGMvaG9zdHMgZmlsZQorICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4wLjAuMSJ9CisK
KworY2xhc3MgU3lzdGVtV2ViVmlld1NoZWxsKENocm9tZUFuZHJvaWRCcm93c2VyQmFzZSk6Cisg
ICAgIiIiQ2hyb21lIGlzIGJhY2tlZCBieSBjaHJvbWVkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVk
IHRocm91Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuQ2hyb21lRHJpdmVyU2VydmVyYGAu
CisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRy
aXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCisgICAgICAgICAgICAgICAgIHJlbW90ZV9xdWV1
ZT1Ob25lLAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsCisgICAgICAgICAg
ICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIHN0YWNrd2Fsa19i
aW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5vbmUpOgorICAgICAg
ICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5
YCBhcmd1bWVudCBnaXZlcworICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0
ZXN0aW5nLiIiIgorICAgICAgICBzdXBlcihTeXN0ZW1XZWJWaWV3U2hlbGwsIHNlbGYpLl9faW5p
dF9fKGxvZ2dlciwKKyAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVl
dWUsIGRldmljZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNr
d2Fsa19iaW5hcnksIHN5bWJvbHNfcGF0aCkKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkK
KyAgICAgICAgc2VsZi53cHRzZXJ2ZXJfcG9ydHMgPSBfd3B0c2VydmVfcG9ydHMKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2Jhc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CmluZGV4IDk5ZjZlNWNmZjRjOC4uMjgy
ZTJkN2FkNWVlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkK
QEAgLTEsMzQgKzEsMTQgQEAKK2ltcG9ydCBlbnVtCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9y
bQogaW1wb3J0IHNvY2tldAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9k
Ci1mcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5Ci1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAK
IGZyb20gLi53cHRjb21tYW5kbGluZSBpbXBvcnQgcmVxdWlyZV9hcmcgICMgbm9xYTogRjQwMQog
CiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCiAKLWRlZiBpbmhlcml0KHN1cGVy
X21vZHVsZSwgY2hpbGRfZ2xvYmFscywgcHJvZHVjdF9uYW1lKToKLSAgICBzdXBlcl93cHRydW5u
ZXIgPSBzdXBlcl9tb2R1bGUuX193cHRydW5uZXJfXwotICAgIGNoaWxkX2dsb2JhbHNbIl9fd3B0
cnVubmVyX18iXSA9IGNoaWxkX3dwdHJ1bm5lciA9IGRlZXBjb3B5KHN1cGVyX3dwdHJ1bm5lcikK
LQotICAgIGNoaWxkX3dwdHJ1bm5lclsicHJvZHVjdCJdID0gcHJvZHVjdF9uYW1lCi0KLSAgICBm
b3IgayBpbiAoImNoZWNrX2FyZ3MiLCAiYnJvd3NlciIsICJicm93c2VyX2t3YXJncyIsICJleGVj
dXRvcl9rd2FyZ3MiLAotICAgICAgICAgICAgICAiZW52X2V4dHJhcyIsICJlbnZfb3B0aW9ucyIs
ICJ0aW1lb3V0X211bHRpcGxpZXIiKToKLSAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1bm5lcltr
XQotICAgICAgICBjaGlsZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIGF0
dHIpCi0KLSAgICBmb3IgdiBpbiBzdXBlcl9tb2R1bGUuX193cHRydW5uZXJfX1siZXhlY3V0b3Ii
XS52YWx1ZXMoKToKLSAgICAgICAgY2hpbGRfZ2xvYmFsc1t2XSA9IGdldGF0dHIoc3VwZXJfbW9k
dWxlLCB2KQotCi0gICAgaWYgInJ1bl9pbmZvX2V4dHJhcyIgaW4gc3VwZXJfd3B0cnVubmVyOgot
ICAgICAgICBhdHRyID0gc3VwZXJfd3B0cnVubmVyWyJydW5faW5mb19leHRyYXMiXQotICAgICAg
ICBjaGlsZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIGF0dHIpCi0KLQog
ZGVmIGNtZF9hcmcobmFtZSwgdmFsdWU9Tm9uZSk6CiAgICAgcHJlZml4ID0gIi0iIGlmIHBsYXRm
b3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIiBlbHNlICItLSIKICAgICBydiA9IHByZWZpeCArIG5h
bWUKQEAgLTY1LDcgKzQ1LDcgQEAgZGVmIGdldF9mcmVlX3BvcnQoKToKICAgICAgICAgcyA9IHNv
Y2tldC5zb2NrZXQoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzLmJpbmQoKCIxMjcuMC4w
LjEiLCAwKSkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9T
RXJyb3I6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
cmV0dXJuIHMuZ2V0c29ja25hbWUoKVsxXQpAQCAtMTI2LDYgKzEwNiwxMiBAQCBjbGFzcyBCcm93
c2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0ZXN0
KToKKyAgICAgICAgIiIiRGljdGlvbmFyeSBvZiBtZXRhZGF0YSB0aGF0IGlzIGNvbnN0YW50IGZv
ciBhIHNwZWNpZmljIGxhdW5jaCBvZiBhIGJyb3dzZXIuCisKKyAgICAgICAgVGhpcyBpcyB1c2Vk
IHRvIGRldGVybWluZSB3aGVuIHRoZSBicm93c2VyIGluc3RhbmNlIGNvbmZpZ3VyYXRpb24gY2hh
bmdlcywgcmVxdWlyaW5nCisgICAgICAgIGEgcmVsYXVuY2ggb2YgdGhlIGJyb3dzZXIuIFRoZSB0
ZXN0IHJ1bm5lciBjYWxscyB0aGlzIG1ldGhvZCBmb3IgZWFjaCB0ZXN0LCBhbmQgaWYgdGhlCisg
ICAgICAgIHJldHVybmVkIHZhbHVlIGRpZmZlcnMgZnJvbSB0aGF0IGZvciB0aGUgcHJldmlvdXMg
dGVzdCwgdGhlIGJyb3dzZXIgaXMgcmVsYXVuY2hlZC4KKyAgICAgICAgIiIiCiAgICAgICAgIHJl
dHVybiB7fQogCiAgICAgQGFic3RyYWN0bWV0aG9kCkBAIC0xNTcsNiArMTQzLDEwIEBAIGNsYXNz
IEJyb3dzZXIob2JqZWN0KToKICAgICAgICAgd2l0aCB3aGljaCBpdCBzaG91bGQgYmUgaW5zdGFu
dGlhdGVkIiIiCiAgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHt9CiAKKyAgICBkZWYg
bWF5YmVfcGFyc2VfdG9tYnN0b25lKHNlbGYpOgorICAgICAgICAiIiJQb3NzaWJseSBwYXJzZSB0
b21ic3RvbmVzIG9uIEFuZHJvaWQgZGV2aWNlIGZvciBBbmRyb2lkIHRhcmdldCIiIgorICAgICAg
ICBwYXNzCisKICAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CiAgICAg
ICAgICIiIkNoZWNrIGlmIGEgY3Jhc2ggb2NjdXJlZCBhbmQgb3V0cHV0IGFueSB1c2VmdWwgaW5m
b3JtYXRpb24gdG8gdGhlCiAgICAgICAgIGxvZy4gUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGlu
ZyB3aGV0aGVyIGEgY3Jhc2ggb2NjdXJlZC4iIiIKQEAgLTE4MiwxMSArMTcyLDggQEAgY2xhc3Mg
TnVsbEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gVHJ1ZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0KLWNsYXNzIEV4ZWN1dG9yQnJvd3NlcihvYmplY3Qp
OgorY2xhc3MgRXhlY3V0b3JCcm93c2VyOgogICAgICIiIlZpZXcgb2YgdGhlIEJyb3dzZXIgdXNl
ZCBieSB0aGUgRXhlY3V0b3Igb2JqZWN0LgogICAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhl
IEV4ZWN1dG9yIHJ1bnMgaW4gYSBjaGlsZCBwcm9jZXNzIGFuZAogICAgIHdlIGNhbid0IHNoaXAg
QnJvd3NlciBpbnN0YW5jZXMgYmV0d2VlbiBwcm9jZXNzZXMgb24gV2luZG93cy4KQEAgLTE5Niw1
ICsxODMsOTUgQEAgY2xhc3MgRXhlY3V0b3JCcm93c2VyKG9iamVjdCk6CiAgICAgdXAgdGhlIGJy
b3dzZXIgZnJvbSB0aGUgcnVubmVyIHByb2Nlc3MuCiAgICAgIiIiCiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgZm9yIGssIHYgaW4gaXRlcml0ZW1zKGt3YXJncyk6
CisgICAgICAgIGZvciBrLCB2IGluIGt3YXJncy5pdGVtcygpOgogICAgICAgICAgICAgc2V0YXR0
cihzZWxmLCBrLCB2KQorCisKK0BlbnVtLnVuaXF1ZQorY2xhc3MgT3V0cHV0SGFuZGxlclN0YXRl
KGVudW0uSW50RW51bSk6CisgICAgQkVGT1JFX1BST0NFU1NfU1RBUlQgPSAxCisgICAgQUZURVJf
UFJPQ0VTU19TVEFSVCA9IDIKKyAgICBBRlRFUl9IQU5ETEVSX1NUQVJUID0gMworICAgIEFGVEVS
X1BST0NFU1NfU1RPUCA9IDQKKworCitjbGFzcyBPdXRwdXRIYW5kbGVyOgorICAgICIiIkNsYXNz
IGZvciBoYW5kbGluZyBvdXRwdXQgZnJvbSBhIGJyb3dzZXIgcHJvY2Vzcy4KKworICAgIFRoaXMg
Y2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGNvbnN1bWluZyB0aGUgbG9nZ2luZyBmcm9tIGEgYnJv
d3NlciBwcm9jZXNzCisgICAgYW5kIHBhc3NpbmcgaXQgaW50byB0aGUgcmVsZXZhbnQgbG9nZ2Vy
LiBBIGNsYXNzIGluc3RhbmNlIGlzIGRlc2lnbmVkIHRvCisgICAgYmUgcGFzc2VkIGFzIHRoZSBw
cm9jZXNzT3V0cHV0TGluZSBhcmd1bWVudCB0byBtb3pwcm9jZXNzLlByb2Nlc3NIYW5kbGVyLgor
CisgICAgVGhlIHNldHVwIG9mIHRoaXMgY2xhc3MgaXMgY29tcGxleCBmb3IgdmFyaW91cyByZWFz
b25zOgorCisgICAgKiBXZSBuZWVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3Mg
YmVmb3JlIHN0YXJ0aW5nIHRoZSBwcm9jZXNzCisgICAgKiBXZSB3YW50IGFjY2VzcyB0byBkYXRh
IGFib3V0IHRoZSBydW5uaW5nIHByb2Nlc3MgZS5nLiB0aGUgcGlkCisgICAgKiBXZSB3YW50IHRv
IGxhdW5jaCB0aGUgcHJvY2VzcyBhbmQgbGF0ZXIgc2V0dXAgYWRkaXRpb25hbCBsb2cgaGFuZGxp
bmcKKyAgICAgIHdoaWNoIGlzIHJlc3Ryb3NwZWN0aXZlbHkgYXBwbGllZCB0byBhbnkgZXhpc3Rp
bmcgb3V0cHV0ICh0aGlzIHN1cHBvcnRzCisgICAgICBwcmVsYXVuY2hpbmcgYnJvd3NlcnMgZm9y
IHBlcmZvcm1hbmNlLCBidXQgaGF2aW5nIGxvZyBvdXRwdXQgZGVwZW5kIG9uIHRoZQorICAgICAg
dGVzdHMgdGhhdCBhcmUgcnVuIGUuZy4gZm9yIGxlYWsgc3VwcHJlc3Npb24pLgorCisgICAgVGhl
cmVmb3JlIHRoZSBsaWZlY3ljbGUgaXMgYXMgZm9sbG93czo6CisKKyAgICAgIG91dHB1dF9oYW5k
bGVyID0gT3V0cHV0SGFuZGxlcihsb2dnZXIsIGNvbW1hbmQsICoqb3V0cHV0X2hhbmRsZXJfa3dh
cmdzKQorICAgICAgcHJvYyA9IFByb2Nlc3NIYW5kbGVyKGNvbW1hbmQsIC4uLiwgcHJvY2Vzc091
dHB1dExpbmU9b3V0cHV0X2hhbmRsZXIpCisgICAgICBvdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9j
ZXNzX3N0YXJ0KHByb2MucGlkKQorICAgICAgWy4uLl0KKyAgICAgICMgQWxsIGxvZ2dpbmcgdG8g
dGhpcyBwb2ludCB3YXMgYnVmZmVyZWQgaW4tbWVtb3J5LCBidXQgYWZ0ZXIgc3RhcnQoKQorICAg
ICAgIyBpdCdzIGFjdHVhbGx5IHNlbnQgdG8gdGhlIGxvZ2dlci4KKyAgICAgIG91dHB1dF9oYW5k
bGVyLnN0YXJ0KCoqb3V0cHV0X2xvZ2dlcl9zdGFydF9rd2FyZ3MpCisgICAgICBbLi4uXQorICAg
ICAgcHJvYy53YWl0KCkKKyAgICAgIG91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcCgp
CisKKyAgICBTaW5jZSB0aGUgcHJvY2VzcyBsaWZldGltZSBhbmQgdGhlIG91dHB1dCBoYW5kbGVy
IGxpZmV0aW1lIGFyZSBjb3VwbGVkIChpdCBkb2Vzbid0CisgICAgd29yayB0byByZXVzZSBhbiBv
dXRwdXQgaGFuZGxlciBmb3IgbXVsdGlwbGUgcHJvY2Vzc2VzKSwgaXQgbWlnaHQgbWFrZSBzZW5z
ZSB0byBoYXZlCisgICAgYSBzaW5nbGUgY2xhc3MgdGhhdCBvd25zIHRoZSBwcm9jZXNzIGFuZCB0
aGUgb3V0cHV0IHByb2Nlc3NpbmcgZm9yIHRoZSBwcm9jZXNzLgorICAgIFRoaXMgaXMgY29tcGxp
Y2F0ZWQgYnkgdGhlIGZhY3QgdGhhdCB3ZSBkb24ndCBhbHdheXMgcnVuIHRoZSBwcm9jZXNzIGRp
cmVjdGx5LAorICAgIGJ1dCBzb21ldGltZXMgdXNlIGEgd3JhcHBlciBlLmcuIG1venJ1bm5lci4K
KyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGNvbW1hbmQsICoqa3dh
cmdzKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5jb21tYW5k
ID0gY29tbWFuZAorICAgICAgICBzZWxmLnBpZCA9IE5vbmUKKyAgICAgICAgc2VsZi5zdGF0ZSA9
IE91dHB1dEhhbmRsZXJTdGF0ZS5CRUZPUkVfUFJPQ0VTU19TVEFSVAorICAgICAgICBzZWxmLmxp
bmVfYnVmZmVyID0gW10KKworICAgIGRlZiBhZnRlcl9wcm9jZXNzX3N0YXJ0KHNlbGYsIHBpZCk6
CisgICAgICAgIGFzc2VydCBzZWxmLnN0YXRlID09IE91dHB1dEhhbmRsZXJTdGF0ZS5CRUZPUkVf
UFJPQ0VTU19TVEFSVAorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiT3V0cHV0SGFuZGxlci5h
ZnRlcl9wcm9jZXNzX3N0YXJ0IikKKyAgICAgICAgc2VsZi5waWQgPSBwaWQKKyAgICAgICAgc2Vs
Zi5zdGF0ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9QUk9DRVNTX1NUQVJUCisKKyAgICBk
ZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBhc3NlcnQgc2VsZi5zdGF0ZSA9PSBP
dXRwdXRIYW5kbGVyU3RhdGUuQUZURVJfUFJPQ0VTU19TVEFSVAorICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiT3V0cHV0SGFuZGxlci5zdGFydCIpCisgICAgICAgICMgTmVlZCB0byBjaGFuZ2Ug
dGhlIHN0YXRlIGhlcmUgYmVmb3JlIHdlIHRyeSB0byBlbXB0eSB0aGUgYnVmZmVyCisgICAgICAg
ICMgb3Igd2UnbGwganVzdCByZS1idWZmZXIgdGhlIGV4aXN0aW5nIG91dHB1dC4KKyAgICAgICAg
c2VsZi5zdGF0ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9IQU5ETEVSX1NUQVJUCisgICAg
ICAgIGZvciBpdGVtIGluIHNlbGYubGluZV9idWZmZXI6CisgICAgICAgICAgICBzZWxmKGl0ZW0p
CisgICAgICAgIHNlbGYubGluZV9idWZmZXIgPSBOb25lCisKKyAgICBkZWYgYWZ0ZXJfcHJvY2Vz
c19zdG9wKHNlbGYsIGNsZWFuX3NodXRkb3duPVRydWUpOgorICAgICAgICAjIElmIHdlIGRpZG4n
dCBnZXQgYXMgZmFyIGFzIGNvbmZpZ3VyZSwganVzdAorICAgICAgICAjIGR1bXAgYWxsIGxvZ3Mg
d2l0aCBubyBjb25maWd1cmF0aW9uCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJPdXRwdXRI
YW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcCIpCisgICAgICAgIGlmIHNlbGYuc3RhdGUgPCBPdXRw
dXRIYW5kbGVyU3RhdGUuQUZURVJfSEFORExFUl9TVEFSVDoKKyAgICAgICAgICAgIHNlbGYuc3Rh
cnQoKQorICAgICAgICBzZWxmLnN0YXRlID0gT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX1BST0NF
U1NfU1RPUAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGxpbmUpOgorICAgICAgICBpZiBzZWxm
LnN0YXRlIDwgT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX0hBTkRMRVJfU1RBUlQ6CisgICAgICAg
ICAgICBzZWxmLmxpbmVfYnVmZmVyLmFwcGVuZChsaW5lKQorICAgICAgICAgICAgcmV0dXJuCisK
KyAgICAgICAgIyBDb3VsZCBhc3NlcnQgdGhhdCB0aGVyZSdzIG5vIG91dHB1dCBoYW5kbGVkIG9u
Y2Ugd2UncmUgaW4gdGhlCisgICAgICAgICMgYWZ0ZXJfcHJvY2Vzc19zdG9wIHBoYXNlLCBhbHRo
b3VnaCB0ZWNobmljYWxseSB0aGVyZSdzIGEgcmFjZSBjb25kaXRpb24KKyAgICAgICAgIyBoZXJl
IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB0aGUgbG9nZ2luZyB0aHJlYWQgaGFzIGZpbmlzaGVkIGRy
YWluaW5nIHRoZQorICAgICAgICAjIGxvZ3MuIFRoZSBzb2x1dGlvbiBtaWdodCBiZSB0byBtb3Zl
IHRoaXMgaW50byBtb3pwcm9jZXNzIGl0c2VsZi4KKworICAgICAgICBzZWxmLmxvZ2dlci5wcm9j
ZXNzX291dHB1dChzZWxmLnBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFuZCkgaWYgc2VsZi5jb21tYW5k
IGVsc2UgIiIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkK
aW5kZXggZmQyNTFhNDMxYzMwLi4wYjZhMGM2MThkZmMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9t
ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKQEAgLTEsNSArMSw2IEBACiBmcm9tIC4gaW1wb3J0
IGNocm9tZV9zcGtpX2NlcnRzCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJy
b3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3Fh
OiBGNDAxCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3Fh
OiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVy
CiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRv
cl9rd2FyZ3MKQEAgLTEyLDcgKzEzLDggQEAgZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9t
ZSBpbXBvcnQgKENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAKIAogX193
cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJjaHJvbWUiLAogICAgICAgICAgICAgICAgICAiY2hl
Y2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiQ2hy
b21lQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJDaHJvbWVC
cm93c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJv
d3NlciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldl
YkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJwcmludC1yZWZ0ZXN0IjogIkNocm9tZURyaXZlclByaW50UmVmVGVz
dEV4ZWN1dG9yIiwKQEAgLTI4LDE2ICszMCwxNSBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6
CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJy
b3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6
CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNv
bmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0s
CiAgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFy
eSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVy
X2FyZ3MiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZp
ZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9n
Z2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAg
ICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3Rf
ZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRl
cl9kb25lIl0gPSBUcnVlCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9wYWdl
bG9hZCJdID0gRmFsc2UKQEAgLTgxLDkgKzgyLDMxIEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVz
dF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAg
ICMgUG9pbnQgYWxsIC50ZXN0IGRvbWFpbnMgdG8gbG9jYWxob3N0IGZvciBDaHJvbWUKICAgICBj
aHJvbWVfb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1ob3N0LXJlc29sdmVyLXJ1bGVzPU1BUCBu
b25leGlzdGVudC4qLnRlc3Qgfk5PVEZPVU5ELCBNQVAgKi50ZXN0IDEyNy4wLjAuMSIpCiAKKyAg
ICAjIENsYXNzaWZ5IGBodHRwLXByaXZhdGVgLCBgaHR0cC1wdWJsaWNgIGFuZCBodHRwcyB2YXJp
YW50cyBpbiB0aGUKKyAgICAjIGFwcHJvcHJpYXRlIElQIGFkZHJlc3Mgc3BhY2VzLgorICAgICMg
Rm9yIG1vcmUgZGV0YWlscywgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3JmY3MvYmxvYi9tYXN0ZXIvcmZjcy9hZGRyZXNzX3NwYWNlX292ZXJyaWRlcy5tZAorICAg
IGFkZHJlc3Nfc3BhY2Vfb3ZlcnJpZGVzX3BvcnRzID0gWworICAgICAgICAoImh0dHAtcHJpdmF0
ZSIsICJwcml2YXRlIiksCisgICAgICAgICgiaHR0cC1wdWJsaWMiLCAicHVibGljIiksCisgICAg
ICAgICgiaHR0cHMtcHJpdmF0ZSIsICJwcml2YXRlIiksCisgICAgICAgICgiaHR0cHMtcHVibGlj
IiwgInB1YmxpYyIpLAorICAgIF0KKyAgICBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19hcmcgPSAi
LCIuam9pbigKKyAgICAgICAgIjEyNy4wLjAuMTp7fT17fSIuZm9ybWF0KHBvcnRfbnVtYmVyLCBh
ZGRyZXNzX3NwYWNlKQorICAgICAgICBmb3IgcG9ydF9uYW1lLCBhZGRyZXNzX3NwYWNlIGluIGFk
ZHJlc3Nfc3BhY2Vfb3ZlcnJpZGVzX3BvcnRzCisgICAgICAgIGZvciBwb3J0X251bWJlciBpbiB0
ZXN0X2Vudmlyb25tZW50LmNvbmZpZy5wb3J0cy5nZXQocG9ydF9uYW1lLCBbXSkKKyAgICApCisg
ICAgaWYgYWRkcmVzc19zcGFjZV9vdmVycmlkZXNfYXJnOgorICAgICAgICBjaHJvbWVfb3B0aW9u
c1siYXJncyJdLmFwcGVuZCgKKyAgICAgICAgICAgICItLWlwLWFkZHJlc3Mtc3BhY2Utb3ZlcnJp
ZGVzPSIgKyBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19hcmcpCisKICAgICBpZiBrd2FyZ3NbImVu
YWJsZV9tb2pvanMiXToKICAgICAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0t
ZW5hYmxlLWJsaW5rLWZlYXR1cmVzPU1vam9KUyxNb2pvSlNUZXN0IikKIAorICAgIGlmIGt3YXJn
c1siZW5hYmxlX3N3aWZ0c2hhZGVyIl06CisgICAgICAgICMgaHR0cHM6Ly9jaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYy8rL0hFQUQvZG9jcy9ncHUvc3dpZnRzaGFkZXIubWQK
KyAgICAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5leHRlbmQoWyItLXVzZS1nbD1hbmdsZSIs
ICItLXVzZS1hbmdsZT1zd2lmdHNoYWRlciJdKQorCiAgICAgIyBDb3B5IG92ZXIgYW55IG90aGVy
IGZsYWdzIHRoYXQgd2VyZSBwYXNzZWQgaW4gdmlhIC0tYmluYXJ5X2FyZ3MKICAgICBpZiBrd2Fy
Z3NbImJpbmFyeV9hcmdzIl0gaXMgbm90IE5vbmU6CiAgICAgICAgIGNocm9tZV9vcHRpb25zWyJh
cmdzIl0uZXh0ZW5kKGt3YXJnc1siYmluYXJ5X2FyZ3MiXSkKQEAgLTExMyw3ICsxMzYsNyBAQCBj
bGFzcyBDaHJvbWVCcm93c2VyKEJyb3dzZXIpOgogICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAot
ICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgICAgICAgICAg
d2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJDcmVhdGVzIGEgbmV3
IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcwog
ICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgogICAgICAg
ICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9t
ZV9hbmRyb2lkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKaW5kZXggNDg1Yjk2ZjMxZTdk
Li4zYmEwMTU4OGIyOTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CkBAIC0xLDcgKzEsOSBAQAoraW1wb3J0IG1venByb2Nl
c3MKIGltcG9ydCBzdWJwcm9jZXNzCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1
dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211
bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAj
IG5vcWE6IEY0MDEKIGZyb20gLmNocm9tZSBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGNocm9t
ZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJvbWVE
cml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChX
ZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCkBAIC0xMSw3ICsxMyw4
IEBAIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldk
c3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6
ICJjaHJvbWVfYW5kcm9pZCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNr
X2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVBbmRyb2lkQnJvd3Nl
ciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJDaHJvbWVBbmRyb2lkQnJv
d3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dz
ZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJE
cml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAid2RzcGVjIjogIkNocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCkBA
IC0yOSwyMyArMzIsMjQgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVf
YXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0
ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKICAgICByZXR1cm4geyJwYWNrYWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdLAog
ICAgICAgICAgICAgImRldmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKICAg
ICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0s
Ci0gICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJn
cyIpfQorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVy
X2FyZ3MiKSwKKyAgICAgICAgICAgICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzLmdldCgic3Rh
Y2t3YWxrX2JpbmFyeSIpLAorICAgICAgICAgICAgInN5bWJvbHNfcGF0aCI6IGt3YXJncy5nZXQo
InN5bWJvbHNfcGF0aCIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2
ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3
YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwK
ICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgICMgVXNlIHVwZGF0ZSgpIHRvIG1v
ZGlmeSB0aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCiAgICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0
ZShzZXQoCi0gICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHNlcnZlcl9j
b25maWdbJ3BvcnRzJ11bJ2h0dHBzJ10gKwotICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cydd
Wyd3cyddICsgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3NzJ10KKyAgICAgICAgdGVzdF9lbnZp
cm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHRlc3RfZW52aXJvbm1lbnQuY29uZmln
Wydwb3J0cyddWydodHRwcyddICsKKyAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3Bv
cnRzJ11bJ3dzJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMnXVsnd3NzJ10KICAg
ICApKQogCi0gICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgIGV4ZWN1dG9yX2t3
YXJncyA9IGNocm9tZV9leGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52
aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncykKICAgICAjIFJlbW92ZSB1bnN1cHBvcnRlZCBvcHRpb25z
IG9uIG1vYmlsZS4KICAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29v
ZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KQEAgLTY5LDIwICs3Myw4MiBAQCBkZWYgZW52X29w
dGlvbnMoKToKICAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEifQogCiAKLWNs
YXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgotICAgICIiIkNocm9tZSBpcyBiYWNr
ZWQgYnkgY2hyb21lZHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCi0gICAgYGB3cHRy
dW5uZXIud2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBgLgotICAgICIiIgorY2xhc3MgTG9n
Y2F0UnVubmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nl
ciwgcmVtb3RlX3F1ZXVlKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAg
c2VsZi5icm93c2VyID0gYnJvd3NlcgorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IHJlbW90
ZV9xdWV1ZQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBzZWxmLl9ydW4oKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAg
ICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVmIF9ydW4oc2VsZik6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICMgVE9ETzogYWRiIGxvZ2NhdCAtYyBmYWlsIHJhbmRvbWx5IHdpdGggbWVzc2Fn
ZQorICAgICAgICAgICAgIyAiZmFpbGVkIHRvIGNsZWFyIHRoZSAnbWFpbicgbG9nIgorICAgICAg
ICAgICAgc2VsZi5icm93c2VyLmNsZWFyX2xvZygpCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNz
LkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJGYWls
ZWQgdG8gY2xlYXIgbG9nY2F0IGJ1ZmZlciIpCisKKyAgICAgICAgc2VsZi5fY21kID0gc2VsZi5i
cm93c2VyLmxvZ2NhdF9jbWQoKQorICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vzcy5Qcm9j
ZXNzSGFuZGxlcigKKyAgICAgICAgICAgIHNlbGYuX2NtZCwKKyAgICAgICAgICAgIHByb2Nlc3NP
dXRwdXRMaW5lPXNlbGYub25fb3V0cHV0LAorICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFsc2Up
CisgICAgICAgIHNlbGYuX3Byb2MucnVuKCkKKworICAgIGRlZiBfc2VuZF9tZXNzYWdlKHNlbGYs
IGNvbW1hbmQsICphcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZW1vdGVf
cXVldWUucHV0KChjb21tYW5kLCBhcmdzKSkKKyAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9y
OgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRXJyb3Igd2hlbiBzZW5kIHRvIHJl
bW90ZSBxdWV1ZSIpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwYWNrYWdlX25h
bWUsIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCi0gICAgICAgICAgICAgICAgIGRl
dmljZV9zZXJpYWw9Tm9uZSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6Ci0gICAgICAgIEJyb3dzZXIu
X19pbml0X18oc2VsZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9IHBhY2th
Z2VfbmFtZQorICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgaWYgc2Vs
Zi5pc19hbGl2ZSgpOgorICAgICAgICAgICAga2lsbF9yZXN1bHQgPSBzZWxmLl9wcm9jLmtpbGwo
KQorICAgICAgICAgICAgaWYgZm9yY2UgYW5kIGtpbGxfcmVzdWx0ICE9IDA6CisgICAgICAgICAg
ICAgICAgc2VsZi5fcHJvYy5raWxsKDkpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAg
ICAgIHJldHVybiBoYXNhdHRyKHNlbGYuX3Byb2MsICJwcm9jIikgYW5kIHNlbGYuX3Byb2MucG9s
bCgpIGlzIE5vbmUKKworICAgIGRlZiBvbl9vdXRwdXQoc2VsZiwgbGluZSk6CisgICAgICAgIGRh
dGEgPSB7CisgICAgICAgICAgICAiYWN0aW9uIjogInByb2Nlc3Nfb3V0cHV0IiwKKyAgICAgICAg
ICAgICJwcm9jZXNzIjogIkxPR0NBVCIsCisgICAgICAgICAgICAiY29tbWFuZCI6ICJsb2djYXQi
LAorICAgICAgICAgICAgImRhdGEiOiBsaW5lCisgICAgICAgIH0KKyAgICAgICAgc2VsZi5fc2Vu
ZF9tZXNzYWdlKCJsb2ciLCBkYXRhKQorCisKK2NsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyQmFz
ZShCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLAorICAgICAgICAgICAg
ICAgICB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAorICAgICAgICAgICAgICAgICBy
ZW1vdGVfcXVldWUgPSBOb25lLAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUs
CisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAg
IHN0YWNrd2Fsa19iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5v
bmUpOgorICAgICAgICBzdXBlcihDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UsIHNlbGYpLl9faW5p
dF9fKGxvZ2dlcikKICAgICAgICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAor
ICAgICAgICBzZWxmLnN0YWNrd2Fsa19iaW5hcnkgPSBzdGFja3dhbGtfYmluYXJ5CisgICAgICAg
IHNlbGYuc3ltYm9sc19wYXRoID0gc3ltYm9sc19wYXRoCisgICAgICAgIHNlbGYucmVtb3RlX3F1
ZXVlID0gcmVtb3RlX3F1ZXVlCiAgICAgICAgIHNlbGYuc2VydmVyID0gQ2hyb21lRHJpdmVyU2Vy
dmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKyAgICAgICAgaWYgc2VsZi5yZW1vdGVf
cXVldWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5uZXIgPSBMb2dj
YXRSdW5uZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLCBzZWxmLnJlbW90ZV9xdWV1ZSkKKworICAgIGRlZiBzZXR1cChzZWxmKToK
ICAgICAgICAgc2VsZi5zZXR1cF9hZGJfcmV2ZXJzZSgpCisgICAgICAgIGlmIHNlbGYucmVtb3Rl
X3F1ZXVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2djYXRfcnVubmVyLnN0YXJ0
KCkKIAogICAgIGRlZiBfYWRiX3J1bihzZWxmLCBhcmdzKToKICAgICAgICAgY21kID0gWydhZGIn
XQpAQCAtOTIsMTQgKzE1OCw2IEBAIGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dzZXIp
OgogICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCcgJy5qb2luKGNtZCkpCiAgICAgICAgIHN1YnBy
b2Nlc3MuY2hlY2tfY2FsbChjbWQpCiAKLSAgICBkZWYgc2V0dXBfYWRiX3JldmVyc2Uoc2VsZik6
Ci0gICAgICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1kZXZpY2UnXSkKLSAgICAgICAgc2Vs
Zi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10pCi0gICAgICAgIHNlbGYuX2Fk
Yl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICAjICJhZGIgcmV2ZXJz
ZSIgZm9yd2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20gZGV2aWNlIHRvIGhvc3QuCi0gICAg
ICAgIGZvciBwb3J0IGluIF93cHRzZXJ2ZV9wb3J0czoKLSAgICAgICAgICAgIHNlbGYuX2FkYl9y
dW4oWydyZXZlcnNlJywgJ3RjcDolZCcgJSBwb3J0LCAndGNwOiVkJyAlIHBvcnRdKQotCiAgICAg
ZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxv
Y2s9RmFsc2UpCiAKQEAgLTExOSw2ICsxNzcsNjAgQEAgY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dz
ZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuc3RvcCgpCiAgICAgICAgIHNlbGYuX2FkYl9ydW4o
Wydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQogICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2
ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgaWYgc2VsZi5yZW1vdGVfcXVldWUgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5uZXIuc3RvcChmb3JjZT1UcnVl
KQogCiAgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBFeGVj
dXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KKworICAgIGRl
ZiBjbGVhcl9sb2coc2VsZik6CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydsb2djYXQnLCAnLWMn
XSkKKworICAgIGRlZiBsb2djYXRfY21kKHNlbGYpOgorICAgICAgICBjbWQgPSBbJ2FkYiddCisg
ICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAgICAgICAgICAgIGNtZC5leHRlbmQoWyct
cycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCisgICAgICAgIGNtZC5leHRlbmQoWydsb2djYXQnLCAn
KjpEJ10pCisgICAgICAgIHJldHVybiBjbWQKKworICAgIGRlZiBjaGVja19jcmFzaChzZWxmLCBw
cm9jZXNzLCB0ZXN0KToKKyAgICAgICAgc2VsZi5tYXliZV9wYXJzZV90b21ic3RvbmUoKQorICAg
ICAgICAjIEV4aXN0ZW5jZSBvZiBhIHRvbWJzdG9uZSBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFu
IHRlc3QgdGFyZ2V0IGhhcworICAgICAgICAjIGNyYXNoZWQuIEFsd2F5cyByZXR1cm4gRmFsc2Ug
c28gd2UgZG9uJ3QgY2hhbmdlIHRoZSB0ZXN0IHJlc3VsdHMuCisgICAgICAgIHJldHVybiBGYWxz
ZQorCisgICAgZGVmIG1heWJlX3BhcnNlX3RvbWJzdG9uZShzZWxmKToKKyAgICAgICAgaWYgc2Vs
Zi5zdGFja3dhbGtfYmluYXJ5OgorICAgICAgICAgICAgY21kID0gW3NlbGYuc3RhY2t3YWxrX2Jp
bmFyeSwgIi1hIiwgIi13Il0KKyAgICAgICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAg
ICAgICAgICAgICAgICBjbWQuZXh0ZW5kKFsiLS1kZXZpY2UiLCBzZWxmLmRldmljZV9zZXJpYWxd
KQorICAgICAgICAgICAgY21kLmV4dGVuZChbIi0tb3V0cHV0LWRpcmVjdG9yeSIsIHNlbGYuc3lt
Ym9sc19wYXRoXSkKKyAgICAgICAgICAgIHJhd19vdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNrX291
dHB1dChjbWQpCisgICAgICAgICAgICBmb3IgbGluZSBpbiByYXdfb3V0cHV0LnNwbGl0bGluZXMo
KToKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dCgiVFJBQ0UiLCBs
aW5lLCAibG9nY2F0IikKKworICAgIGRlZiBzZXR1cF9hZGJfcmV2ZXJzZShzZWxmKToKKyAgICAg
ICAgc2VsZi5fYWRiX3J1bihbJ3dhaXQtZm9yLWRldmljZSddKQorICAgICAgICBzZWxmLl9hZGJf
cnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgc2VsZi5fYWRiX3J1bihb
J3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgICMgImFkYiByZXZlcnNlIiBmb3J3
YXJkcyBuZXR3b3JrIGNvbm5lY3Rpb24gZnJvbSBkZXZpY2UgdG8gaG9zdC4KKyAgICAgICAgZm9y
IHBvcnQgaW4gc2VsZi53cHRzZXJ2ZXJfcG9ydHM6CisgICAgICAgICAgICBzZWxmLl9hZGJfcnVu
KFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKKworY2xhc3Mg
Q2hyb21lQW5kcm9pZEJyb3dzZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKKyAgICAiIiJD
aHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3Vn
aAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KKyAgICAi
IiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHBhY2thZ2VfbmFtZSwKKyAgICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAgICAgICAg
ICAgICAgcmVtb3RlX3F1ZXVlID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgZGV2aWNlX3Nlcmlh
bD1Ob25lLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAg
ICAgICAgICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNf
cGF0aD1Ob25lKToKKyAgICAgICAgc3VwZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXIsIHNlbGYpLl9f
aW5pdF9fKGxvZ2dlciwKKyAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVf
cXVldWUsIGRldmljZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0
YWNrd2Fsa19iaW5hcnksIHN5bWJvbHNfcGF0aCkKKyAgICAgICAgc2VsZi5wYWNrYWdlX25hbWUg
PSBwYWNrYWdlX25hbWUKKyAgICAgICAgc2VsZi53cHRzZXJ2ZXJfcG9ydHMgPSBfd3B0c2VydmVf
cG9ydHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9z
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmU0YWM1Mjg3ZjE5
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weQpAQCAtMCwwICsxLDgxIEBA
Citmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJn
Citmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAg
ICMgbm9xYTogRjQwMQorZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENXVENocm9tZURy
aXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJh
c2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGlt
cG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVj
dXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBv
cnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQorCisKK19fd3B0cnVu
bmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lX2lvcyIsCisgICAgICAgICAgICAgICAgICJjaGVj
a19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25l
OiAiQ2hyb21laU9TQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNw
ZWMiOiAiTnVsbEJyb3dzZXIifSwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0
aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciJ9LAor
ICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAg
ICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAg
ICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91
dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCitkZWYgY2hlY2tfYXJn
cygqKmt3YXJncyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIp
CisKKworZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRh
LCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dh
cmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBr
d2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9n
Z2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCisgICAg
ZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisgICAgZXhlY3V0b3Jf
a3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IHt9CisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwor
CisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYgZW52
X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitjbGFzcyBDaHJvbWVpT1NCcm93c2VyKEJy
b3dzZXIpOgorICAgICIiIkNocm9tZWlPUyBpcyBiYWNrZWQgYnkgQ1dUQ2hyb21lRHJpdmVyLCB3
aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkNXVENo
cm9tZURyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgaW5pdF90aW1lb3V0ID0gMTIwCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2
ZXJfYXJncz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVz
ZW50YXRpb24gb2YgQ2hyb21lLiIiIgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxv
Z2dlcikKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIoc2VsZi5s
b2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFy
eT13ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dh
cmdzKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYg
c3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9
Zm9yY2UpCisKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIu
cGlkCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlz
IG9ubHkgaW5kaWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNu
J3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAg
IyBpcyBhY3RpdmUuCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisKKyAg
ICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVj
dXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7Indl
YmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVf
c3BraV9jZXJ0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9zcGtpX2NlcnRzLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjVjY2JjNmJjOGEyCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvY2hyb21lX3Nwa2lfY2VydHMucHkKQEAgLTAsMCArMSwxMyBAQAorIyBUaGlzIGZp
bGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgJ3dwdCByZWdlbi1jZXJ0cycKKyMgRE8g
Tk9UIEVESVQgTUFOVUFMTFkuCisKKyMgdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVt
CitXUFRfRklOR0VSUFJJTlQgPSAnRTk2QXNaM1BNY0ZJNXhHNm9KL05mMDc2b1pmdm9vdWJ3OG5s
UndabjBKaz0nCisKKyMgc2lnbmVkLWV4Y2hhbmdlL3Jlc291cmNlcy8xMjcuMC4wLjEuc3hnLnBl
bQorU1hHX1dQVF9GSU5HRVJQUklOVCA9ICcwUnQ0bVQ2U0pYb2pFTUhUbktubEovaEJLTUJjSTRr
dGVCbGhSMWVUVGRrPScKKworSUdOT1JFX0NFUlRJRklDQVRFX0VSUk9SU19TUEtJX0xJU1QgPSBb
CisgICAgV1BUX0ZJTkdFUlBSSU5ULAorICAgIFNYR19XUFRfRklOR0VSUFJJTlQKK10KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2VkZ2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CmluZGV4IGJkYjM3YjNmODRjMi4u
MzEwMWU5YzdiZWEzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Uu
cHkKQEAgLTEsNyArMSw3IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u
CiBpbXBvcnQgdGltZQogaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dz
ZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxC
cm93c2VyICAjIG5vcWE6IEY0MDEKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdl
RHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMg
YmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBp
bXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQpAQCAtMTAs
NyArMTAsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yZWRnZSBpbXBvcnQgRWRnZURyaXZl
cldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVj
dCI6ICJlZGdlIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIs
Ci0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIkVkZ2VCcm93c2VyIiwKKyAgICAgICAgICAg
ICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAogICAgICAgICAgICAgICAgICAi
ZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRl
c3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkVk
Z2VEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMzQsNyArMzUsNyBAQCBkZWYgY2hlY2tfYXJn
cygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIp
CiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmln
LCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9p
bmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7IndlYmRyaXZlcl9iaW5h
cnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJf
YXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiksCiAgICAgICAgICAgICAidGltZW91
dF9tdWx0aXBsaWVyIjogZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsCkBAIC00Miwx
MCArNDMsOSBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2Rl
ZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1
bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRv
cl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdl
ciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9l
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRh
LCAqKmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRy
dWUKICAgICBleGVjdXRvcl9rd2FyZ3NbInRpbWVvdXRfbXVsdGlwbGllciJdID0gZ2V0X3RpbWVv
dXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwKQEAgLTY1
LDEwICs2NSwxMCBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogCiBjbGFzcyBFZGdlQnJvd3NlcihC
cm93c2VyKToKLSAgICB1c2VkX3BvcnRzID0gc2V0KCkKICAgICBpbml0X3RpbWVvdXQgPSA2MAog
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgdGltZW91
dF9tdWx0aXBsaWVyPU5vbmUsIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICB0aW1lb3V0X211
bHRpcGxpZXI9Tm9uZSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBC
cm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBFZGdl
RHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
X3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5CmluZGV4IGMyNTQ1ZGU0NmYw
Yi4uZTU5NDlmZTNlNTdmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQpAQCAtMSwxMiArMSwyOCBAQAotZnJvbSAuYmFzZSBp
bXBvcnQgaW5oZXJpdAotZnJvbSAuIGltcG9ydCBlZGdlCitmcm9tIC5iYXNlIGltcG9ydCBOdWxs
QnJvd3NlciAgIyBub3FhOiBGNDAxCitmcm9tIC5lZGdlIGltcG9ydCAoRWRnZUJyb3dzZXIsICAj
IG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBFZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3Is
ICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBjaGVja19hcmdzLCAgIyBub3FhOiBG
NDAxCisgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAg
ICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAgICAgICAg
ICAgICAgICAgICBlbnZfZXh0cmFzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAg
ZW52X29wdGlvbnMsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBydW5faW5mb19l
eHRyYXMsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBnZXRfdGltZW91dF9tdWx0
aXBsaWVyKSAgIyBub3FhOiBGNDAxCiAKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2
ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVz
dEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCiAKIAotaW5oZXJpdChlZGdlLCBnbG9iYWxzKCksICJl
ZGdlX3dlYmRyaXZlciIpCi0KLSMgX193cHRydW5uZXJfXyBtYWdpY2FsbHkgYXBwZWFycyBmcm9t
IGluaGVyaXQsIEY4MjEgaXMgdW5kZWZpbmVkIG5hbWUKLV9fd3B0cnVubmVyX19bImV4ZWN1dG9y
Il1bInRlc3RoYXJuZXNzIl0gPSAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIgICMgbm9x
YTogRjgyMQotX193cHRydW5uZXJfX1siZXhlY3V0b3IiXVsicmVmdGVzdCJdID0gIldlYkRyaXZl
clJlZlRlc3RFeGVjdXRvciIgICMgbm9xYTogRjgyMQorX193cHRydW5uZXJfXyA9IHsicHJvZHVj
dCI6ICJlZGdlX3dlYmRyaXZlciIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNo
ZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiRWRnZUJyb3dz
ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2Vy
In0sCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJp
dmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIndkc3BlYyI6ICJFZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAg
ICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAg
ICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVu
dl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4
dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0
aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRn
ZWNocm9taXVtLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uNGYyZTBkZGM0ZDAyCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvZWRnZWNocm9taXVtLnB5CkBAIC0wLDAgKzEsMTE5IEBACitmcm9tIC5iYXNlIGltcG9ydCBC
cm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBO
dWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9t
dWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQg
RWRnZUNocm9taXVtRHJpdmVyU2VydmVyCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRv
cl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0
b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3Fh
OiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yZWRnZWNocm9taXVtIGltcG9ydCBFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvciAg
IyBub3FhOiBGNDAxCisKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlY2hyb21p
dW0iLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAg
ICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VDaHJvbWl1bUJyb3dzZXIiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCisgICAg
ICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhh
cm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6
ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIndkc3BlYyI6ICJFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAg
ICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAg
ICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52
X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0
aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIiLH0KKworCitkZWYgY2hlY2tfYXJncygq
Kmt3YXJncyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisK
KworZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJd
LAorICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5h
cnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZl
cl9hcmdzIil9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVz
dF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2Fy
Z3MpOgorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmly
b25tZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9p
bmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UKKwor
ICAgIGNhcGFiaWxpdGllcyA9IHsKKyAgICAgICAgIm1zOmVkZ2VPcHRpb25zIjogeworICAgICAg
ICAgICAgInByZWZzIjogeworICAgICAgICAgICAgICAgICJwcm9maWxlIjogeworICAgICAgICAg
ICAgICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogeworICAgICAgICAg
ICAgICAgICAgICAgICAgInBvcHVwcyI6IDEKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidXNlQXV0b21hdGlvbkV4
dGVuc2lvbiI6IEZhbHNlLAorICAgICAgICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsiZW5hYmxl
LWF1dG9tYXRpb24iXSwKKyAgICAgICAgICAgICJ3M2MiOiBUcnVlCisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgY2FwYWJpbGl0
aWVzWyJwYWdlTG9hZFN0cmF0ZWd5Il0gPSAibm9uZSIKKworICAgIGZvciAoa3dhcmcsIGNhcGFi
aWxpdHkpIGluIFsoImJpbmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJhcmdzIild
OgorICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY2Fw
YWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3YXJnXQor
CisgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOgorICAgICAgICBpZiAiYXJncyIgbm90IGluIGNh
cGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1si
bXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdID0gW10KKyAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5v
dCBpbiBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXToKKyAgICAgICAgICAg
IGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVz
cyIpCisKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVz
CisKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2Fy
Z3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7
fQorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bUJyb3dzZXIoQnJvd3Nlcik6CisgICAgIiIiTWljcm9z
b2Z0RWRnZSBpcyBiYWNrZWQgYnkgTVNFZGdlRHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJv
dWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcmBg
LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJk
cml2ZXJfYmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJf
YXJncz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50
YXRpb24gb2YgTWljcm9zb2Z0RWRnZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcworICAg
ICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgorICAgICAgICBC
cm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5h
cnkKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIoc2VsZi5s
b2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13
ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcmdzPXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToK
KyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYgc3RvcChz
ZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2Up
CisKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCisK
KyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkg
aW5kaWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5
IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAgIyBpcyBh
Y3RpdmUuCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisKKyAgICBkZWYg
Y2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVjdXRvcl9i
cm93c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZl
cl91cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2VwaXBoYW55LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uZDYxZjc0ZTIyNjhhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkKQEAg
LTAsMCArMSw4MCBAQAorZnJvbSAuYmFzZSBpbXBvcnQgKE51bGxCcm93c2VyLCAgIyBub3FhOiBG
NDAxCisgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGVfZG9tYWluX2xpc3QsCisgICAgICAg
ICAgICAgICAgICAgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgICMgbm9xYTogRjQwMQorICAgICAg
ICAgICAgICAgICAgIG1heWJlX2FkZF9hcmdzKQorZnJvbSAud2Via2l0IGltcG9ydCBXZWJLaXRC
cm93c2VyCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9l
eGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0
IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9y
LCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViRHJpdmVyQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVj
dXRvcnMuZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yICAj
IG5vcWE6IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlcGlwaGFueSIsCisg
ICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAg
ICAgICAiYnJvd3NlciI6IHtOb25lOiAiRXBpcGhhbnlCcm93c2VyIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAg
ICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAi
ZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Ii
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVm
VGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAi
V2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImNyYXNodGVzdCI6ICJXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvciJ9LAorICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAg
ICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52
X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0
cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRp
cGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKipr
d2FyZ3MpOgorICAgIHBhc3MKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorICAgICMgV29ya2Fyb3VuZCBm
b3IgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvaXNzdWVzLzE3MgorICAg
IHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzID0gWyItLWhvc3Q9MTI3LjAuMC4xIl0KKyAgICB3ZWJk
cml2ZXJfYXJncyA9IG1heWJlX2FkZF9hcmdzKHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzLCBrd2Fy
Z3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpKQorICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1si
YmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJp
dmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjogd2ViZHJpdmVyX2Fy
Z3N9CisKKworZGVmIGNhcGFiaWxpdGllcyhzZXJ2ZXJfY29uZmlnLCAqKmt3YXJncyk6CisgICAg
YXJncyA9IGt3YXJncy5nZXQoImJpbmFyeV9hcmdzIiwgW10pCisgICAgaWYgIi0tYXV0b21hdGlv
bi1tb2RlIiBub3QgaW4gYXJnczoKKyAgICAgICAgYXJncy5hcHBlbmQoIi0tYXV0b21hdGlvbi1t
b2RlIikKKworICAgIHJldHVybiB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJFcGlwaGFueSIs
CisgICAgICAgICJicm93c2VyVmVyc2lvbiI6ICIzLjMxLjQiLCAgIyBGaXJzdCB2ZXJzaW9uIHRv
IHN1cHBvcnQgYXV0b21hdGlvbgorICAgICAgICAicGxhdGZvcm1OYW1lIjogIkFOWSIsCisgICAg
ICAgICJ3ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMiOiB7CisgICAgICAgICAgICAiYmluYXJ5Ijog
a3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICJhcmdzIjogYXJncywKKyAgICAgICAgICAg
ICJjZXJ0aWZpY2F0ZXMiOiBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChzZXJ2ZXJfY29uZmlnLmRv
bWFpbnNfc2V0LCBrd2FyZ3NbImhvc3RfY2VydF9wYXRoIl0pfX0KKworCitkZWYgZXhlY3V0b3Jf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRh
LAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0g
YmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5m
b19kYXRhLCAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUi
XSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0
aWVzKHRlc3RfZW52aXJvbm1lbnQuY29uZmlnLCAqKmt3YXJncykKKyAgICByZXR1cm4gZXhlY3V0
b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQor
CisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2RlZiBydW5faW5mb19l
eHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiB7IndlYmtpdF9wb3J0IjogImd0ayJ9CisKKwor
Y2xhc3MgRXBpcGhhbnlCcm93c2VyKFdlYktpdEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCisgICAgICAg
ICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgV2ViS2l0
QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncykKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2ZpcmVmb3gucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CmluZGV4IDE1MTUzMDg5N2Q5
Yi4uYWMyNzQ1MzEyN2FiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2ZpcmVmb3gucHkKQEAgLTEsOSArMSwxMiBAQAoraW1wb3J0IGJhc2U2NAoraW1wb3J0IGlvCiBp
bXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzaWduYWwKIGlt
cG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB6aXBm
aWxlCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKIAogaW1wb3J0IG1v
emluZm8KQEAgLTE1LDI2ICsxOCwzMCBAQCBmcm9tIG1venJ1bm5lciBpbXBvcnQgRmlyZWZveFJ1
bm5lcgogZnJvbSBtb3pydW5uZXIudXRpbHMgaW1wb3J0IHRlc3RfZW52aXJvbm1lbnQsIGdldF9z
dGFja19maXhlcl9mdW5jdGlvbgogZnJvbSBtb3pjcmFzaCBpbXBvcnQgbW96Y3Jhc2gKIAotZnJv
bSAuYmFzZSBpbXBvcnQgKGdldF9mcmVlX3BvcnQsCi0gICAgICAgICAgICAgICAgICAgQnJvd3Nl
ciwKK2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAogICAgICAgICAgICAgICAgICAgIEV4ZWN1
dG9yQnJvd3NlciwKLSAgICAgICAgICAgICAgICAgICByZXF1aXJlX2FyZywKKyAgICAgICAgICAg
ICAgICAgICBOdWxsQnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICBPdXRwdXRIYW5kbGVyLAor
ICAgICAgICAgICAgICAgICAgIE91dHB1dEhhbmRsZXJTdGF0ZSwKKyAgICAgICAgICAgICAgICAg
ICBicm93c2VyX2NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAgY21kX2FyZywKLSAgICAgICAg
ICAgICAgICAgICBicm93c2VyX2NvbW1hbmQpCisgICAgICAgICAgICAgICAgICAgZ2V0X2ZyZWVf
cG9ydCwKKyAgICAgICAgICAgICAgICAgICByZXF1aXJlX2FyZykKIGZyb20gLi5leGVjdXRvcnMg
aW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwogZnJvbSAuLmV4
ZWN1dG9ycy5leGVjdXRvcm1hcmlvbmV0dGUgaW1wb3J0IChNYXJpb25ldHRlVGVzdGhhcm5lc3NF
eGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVQcmludFJl
ZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNYXJpb25ldHRlV2RzcGVjRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUNy
YXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4ucHJvY2VzcyBpbXBvcnQgY2Fz
dF9lbnYKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBXZWJEcml2ZXJTZXJ2ZXIKIAog
CiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCiBfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImZpcmVmb3giLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVj
a19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRmlyZWZveEJyb3dzZXIiLAor
ICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiRmlyZWZveEJyb3dzZXIiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkZpcmVmb3hXZFNwZWNCcm93c2Vy
In0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsiY3Jhc2h0ZXN0IjogIk1hcmlvbmV0
dGVDcmFzaHRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVz
dGhhcm5lc3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvciIs
CkBAIC01MywxMSArNjAsMTEgQEAgZGVmIGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBl
LCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgaWYga3dhcmdzWyJ0aW1lb3V0X211bHRp
cGxpZXIiXSBpcyBub3QgTm9uZToKICAgICAgICAgcmV0dXJuIGt3YXJnc1sidGltZW91dF9tdWx0
aXBsaWVyIl0KICAgICBpZiB0ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgotICAgICAgICBpZiBydW5f
aW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgICAg
IGlmIHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKSBv
ciBydW5faW5mb19kYXRhLmdldCgidHNhbiIpOgogICAgICAgICAgICAgcmV0dXJuIDQKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiAyCi0gICAgZWxpZiBydW5faW5mb19kYXRhWyJk
ZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgZWxpZiBydW5faW5mb19k
YXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikgb3IgcnVuX2luZm9fZGF0
YS5nZXQoInRzYW4iKToKICAgICAgICAgaWYgcnVuX2luZm9fZGF0YS5nZXQoImNjb3YiKToKICAg
ICAgICAgICAgIHJldHVybiA0CiAgICAgICAgIGVsc2U6CkBAIC03Niw3ICs4Myw3IEBAIGRlZiBj
aGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQog
CiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywg
Kiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5m
b19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3Nb
ImJpbmFyeSJdLAogICAgICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3Qi
XSwKICAgICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3YXJnc1siZXh0cmFfcHJlZnMiXSwKQEAg
LTEwMSwxMyArMTA4LDI0IEBAIGRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZv
X2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICAgICAgImNvbmZpZyI6IGNvbmZpZywK
ICAgICAgICAgICAgICJicm93c2VyX2NoYW5uZWwiOiBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJd
LAogICAgICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzWyJoZWFkbGVzcyJdLAotICAgICAgICAg
ICAgInByZWxvYWRfYnJvd3NlciI6IGt3YXJnc1sicHJlbG9hZF9icm93c2VyIl19CisgICAgICAg
ICAgICAicHJlbG9hZF9icm93c2VyIjoga3dhcmdzWyJwcmVsb2FkX2Jyb3dzZXIiXSBhbmQgbm90
IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdIGFuZCBub3Qga3dhcmdzWyJudW1fdGVzdF9ncm91
cHMiXSA9PSAxLAorICAgICAgICAgICAgInNwZWNpYWxwb3dlcnNfcGF0aCI6IGt3YXJnc1sic3Bl
Y2lhbHBvd2Vyc19wYXRoIl19CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitjbGFzcyBXZFNwZWNQ
cm9maWxlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2ZpbGUpOgorICAgICAg
ICBzZWxmLnByb2ZpbGUgPSBwcm9maWxlCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cyk6CisgICAgICAgIHNlbGYucHJvZmlsZS5jbGVhbnVwKCkKKworCitkZWYgZXhlY3V0b3Jfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAog
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFz
ZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xv
c2VfYWZ0ZXJfZG9uZSJdID0gdGVzdF90eXBlICE9ICJyZWZ0ZXN0IgogICAgIGV4ZWN1dG9yX2t3
YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0gPSBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3Rf
dHlwZSwKQEAgLTEyMSwyMiArMTM5LDYzIEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICBl
eGVjdXRvcl9rd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwiXSA9IGt3YXJnc1sicmVmdGVzdF9pbnRl
cm5hbCJdCiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gPSBr
d2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdCiAgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMi
OgotICAgICAgICBvcHRpb25zID0ge30KKyAgICAgICAgb3B0aW9ucyA9IHsiYXJncyI6IFtdfQog
ICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdOgogICAgICAgICAgICAgb3B0aW9uc1siYmluYXJ5
Il0gPSBrd2FyZ3NbImJpbmFyeSJdCiAgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5X2FyZ3MiXToK
ICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXSA9IGt3YXJnc1siYmluYXJ5X2FyZ3MiXQotICAg
ICAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06Ci0gICAgICAgICAgICBpZiAiYXJncyIgbm90IGlu
IG9wdGlvbnM6Ci0gICAgICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdID0gW10KLSAgICAgICAg
ICAgIGlmICItLWhlYWRsZXNzIiBub3QgaW4gb3B0aW9uc1siYXJncyJdOgotICAgICAgICAgICAg
ICAgIG9wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxlc3MiKQotICAgICAgICBvcHRpb25z
WyJwcmVmcyJdID0gewotICAgICAgICAgICAgIm5ldHdvcmsuZG5zLmxvY2FsRG9tYWlucyI6ICIs
Ii5qb2luKHNlcnZlcl9jb25maWcuZG9tYWluc19zZXQpCi0gICAgICAgIH0KLSAgICAgICAgZm9y
IHByZWYsIHZhbHVlIGluIGt3YXJnc1siZXh0cmFfcHJlZnMiXToKLSAgICAgICAgICAgIG9wdGlv
bnNbInByZWZzIl0udXBkYXRlKHtwcmVmOiBQcmVmZXJlbmNlcy5jYXN0KHZhbHVlKX0pCisKKyAg
ICAgICAgcHJvZmlsZV9jcmVhdG9yID0gUHJvZmlsZUNyZWF0b3IobG9nZ2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5j
b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJleHRy
YV9wcmVmcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2Fy
Z3NbImdlY2tvX2UxMHMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga3dhcmdzWyJlbmFibGVfZmlzc2lvbiJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50
LmNvbmZpZy5zc2xfY29uZmlnWyJjYV9jZXJ0X3BhdGgiXSkKKyAgICAgICAgaWYga3dhcmdzWyJw
cm9jZXNzZXMiXSA+IDE6CisgICAgICAgICAgICAjIFdpdGggbXVsdGlwbGUgcHJvY2Vzc2VzLCB3
ZSB3b3VsZCBuZWVkIGEgcHJvZmlsZSBkaXJlY3RvcnkgcGVyIHByb2Nlc3MsIGJ1dCB3ZQorICAg
ICAgICAgICAgIyBkb24ndCBoYXZlIGFuIGVhc3kgd2F5IHRvIGRvIHRoYXQsIHNvIGluY2x1ZGUg
dGhlIHByb2ZpbGUgaW4gdGhlIGNhcGFiaWx0aWVzCisgICAgICAgICAgICAjIGRpcmVjdGx5IGlu
c3RlYWQuIFRoaXMgbWVhbnMgcmVjcmVhdGluZyBpdCBwZXIgc2Vzc2lvbiwgd2hpY2ggaXMgc2xv
dworICAgICAgICAgICAgb3B0aW9uc1sicHJvZmlsZSJdID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0
ZV9iYXNlNjQoKQorICAgICAgICAgICAgcHJvZmlsZSA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHByb2ZpbGUgPSBwcm9maWxlX2NyZWF0b3IuY3JlYXRlKCkKKyAgICAgICAgICAg
IG9wdGlvbnNbImFyZ3MiXS5leHRlbmQoWyItLXByb2ZpbGUiLCBwcm9maWxlLnByb2ZpbGVdKQor
ICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5lbnZfZXh0cmFzX2Ntcy5hcHBlbmQoV2RTcGVj
UHJvZmlsZShwcm9maWxlKSkKKwogICAgICAgICBjYXBhYmlsaXRpZXNbIm1vejpmaXJlZm94T3B0
aW9ucyJdID0gb3B0aW9ucworCisgICAgICAgICMgVGhpcyBnZXRzIHJldXNlZCBmb3IgZmlyZWZv
eF9hbmRyb2lkLCBidXQgdGhlIGVudmlyb25tZW50IHNldHVwCisgICAgICAgICMgaXNuJ3QgcmVx
dWlyZWQgaW4gdGhhdCBjYXNlCisgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il06CisgICAgICAg
ICAgICBlbnZpcm9uID0gZ2V0X2Vudmlyb24obG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzWyJzdHlsb190aHJlYWRzIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga3dhcmdzWyJoZWFkbGVzcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGt3YXJnc1siY2hhb3NfbW9kZV9mbGFncyJdKQorICAgICAgICAgICAg
bGVha19yZXBvcnRfZmlsZSA9IHNldHVwX2xlYWtfcmVwb3J0KGt3YXJnc1sibGVha19jaGVjayJd
LCBwcm9maWxlLCBlbnZpcm9uKQorCisgICAgICAgICAgICAjIFRoaXMgZG9lc24ndCB3b3JrIHdp
dGggd2RzcGVjIHRlc3RzCisgICAgICAgICAgICAjIEluIHBhcnRpY3VsYXIgdGVzdHMgY2FuIGNy
ZWF0ZSBhIHNlc3Npb24gd2l0aG91dCBwYXNzaW5nIGluIHRoZSBjYXBhYmlsaXRlcworICAgICAg
ICAgICAgIyBhbmQgaW4gdGhvc2UgY2FzZXMgd2UgZ2V0IHRoZSBkZWZhdWx0IGdlY2tvZHJpdmVy
IHByb2ZpbGUgd2hpY2ggZG9lc24ndAorICAgICAgICAgICAgIyBndWFyYW50ZWUgemVybyBuZXR3
b3JrIGFjY2VzcworICAgICAgICAgICAgZGVsIGVudmlyb25bIk1PWl9ESVNBQkxFX05PTkxPQ0FM
X0NPTk5FQ1RJT05TIl0KKyAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siZW52aXJvbiJdID0g
ZW52aXJvbgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJd
IGFuZCAiLS1oZWFkbGVzcyIgbm90IGluIG9wdGlvbnNbImFyZ3MiXToKKyAgICAgICAgICAgICAg
ICBvcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhlYWRsZXNzIikKKyAgICAgICAgICAgIGxlYWtf
cmVwb3J0X2ZpbGUgPSBOb25lCisKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdGFja2ZpeF9k
aXIiXSA9IGt3YXJnc1sic3RhY2tmaXhfZGlyIl0sCisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1si
bGVha19yZXBvcnRfZmlsZSJdID0gbGVha19yZXBvcnRfZmlsZQorICAgICAgICBleGVjdXRvcl9r
d2FyZ3NbImFzYW4iXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikKKwogICAgIGlmIGt3YXJn
c1siY2VydHV0aWxfYmluYXJ5Il0gaXMgTm9uZToKICAgICAgICAgY2FwYWJpbGl0aWVzWyJhY2Nl
cHRJbnNlY3VyZUNlcnRzIl0gPSBUcnVlCiAgICAgaWYgY2FwYWJpbGl0aWVzOgpAQCAtMTQ0LDYg
KzIwMyw3IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBj
YWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgIGV4ZWN1dG9yX2t3YXJnc1siZGVidWci
XSA9IHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0KICAgICBleGVjdXRvcl9rd2FyZ3NbImNjb3YiXSA9
IHJ1bl9pbmZvX2RhdGEuZ2V0KCJjY292IiwgRmFsc2UpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJi
cm93c2VyX3ZlcnNpb24iXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0KCJicm93c2VyX3ZlcnNpb24iKQor
ICAgIGV4ZWN1dG9yX2t3YXJnc1siZGVidWdfdGVzdCJdID0ga3dhcmdzWyJkZWJ1Z190ZXN0Il0K
ICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKIApAQCAtMTc3LDE2ICsyMzcsMTEgQEAgZGVm
IHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CiAgICAgICAgICAgIndhc20iOiBrd2FyZ3MuZ2V0
KCJ3YXNtIiwgVHJ1ZSksCiAgICAgICAgICAgInZlcmlmeSI6IGt3YXJnc1sidmVyaWZ5Il0sCiAg
ICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzLmdldCgiaGVhZGxlc3MiLCBGYWxzZSkgb3IgIk1P
Wl9IRUFETEVTUyIgaW4gb3MuZW52aXJvbiwKLSAgICAgICAgICAic3ctZTEwcyI6IFRydWUsCi0g
ICAgICAgICAgImZpc3Npb24iOiBrd2FyZ3MuZ2V0KCJlbmFibGVfZmlzc2lvbiIpIG9yIGdldF9i
b29sX3ByZWYoImZpc3Npb24uYXV0b3N0YXJ0Iil9Ci0KLSAgICAjIFRoZSB2YWx1ZSBvZiBgc3ct
ZTEwc2AgZGVmYXVsdHMgdG8gd2hldGhlciB0aGUgInBhcmVudF9pbnRlcmNlcHQiCi0gICAgIyBp
bXBsZW1lbnRhdGlvbiBpcyBlbmFibGVkIGZvciB0aGUgY3VycmVudCBidWlsZC4gVGhpcyB2YWx1
ZSwgaG93ZXZlciwKLSAgICAjIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGV4cGxpY2l0bHkgc2V0dGlu
ZyB0aGUgcHJlZiB3aXRoIHRoZSBgLS1zZXRwcmVmYCBDTEkKLSAgICAjIGZsYWcsIHdoaWNoIGlz
IGNoZWNrZWQgaGVyZS4KLSAgICBzd19lMTBzX292ZXJyaWRlID0gZ2V0X2Jvb2xfcHJlZl9pZl9l
eGlzdHMoImRvbS5zZXJ2aWNlV29ya2Vycy5wYXJlbnRfaW50ZXJjZXB0IikKLSAgICBpZiBzd19l
MTBzX292ZXJyaWRlIGlzIG5vdCBOb25lOgotICAgICAgICBydlsic3ctZTEwcyJdID0gc3dfZTEw
c19vdmVycmlkZQorICAgICAgICAgICJmaXNzaW9uIjoga3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Np
b24iKSBvciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpLAorICAgICAgICAgICJz
ZXNzaW9uSGlzdG9yeUluUGFyZW50IjogKGt3YXJncy5nZXQoImVuYWJsZV9maXNzaW9uIikgb3IK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfYm9vbF9wcmVmKCJmaXNz
aW9uLmF1dG9zdGFydCIpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5zZXNzaW9uSGlzdG9yeUluUGFyZW50IikpLAorICAgICAg
ICAgICJzd2dsIjogZ2V0X2Jvb2xfcHJlZigiZ2Z4LndlYnJlbmRlci5zb2Z0d2FyZSIpfQogCiAg
ICAgcnYudXBkYXRlKHJ1bl9pbmZvX2Jyb3dzZXJfdmVyc2lvbigqKmt3YXJncykpCiAKQEAgLTIw
OCwxMSArMjYzLDQ2IEBAIGRlZiBydW5faW5mb19icm93c2VyX3ZlcnNpb24oKiprd2FyZ3MpOgog
CiAKIGRlZiB1cGRhdGVfcHJvcGVydGllcygpOgotICAgIHJldHVybiAoWyJvcyIsICJkZWJ1ZyIs
ICJ3ZWJyZW5kZXIiLCAiZmlzc2lvbiIsICJlMTBzIiwgInN3LWUxMHMiLCAicHJvY2Vzc29yIl0s
CisgICAgcmV0dXJuIChbIm9zIiwgImRlYnVnIiwgIndlYnJlbmRlciIsICJmaXNzaW9uIiwgImUx
MHMiLCAicHJvY2Vzc29yIiwgInN3Z2wiXSwKICAgICAgICAgICAgIHsib3MiOiBbInZlcnNpb24i
XSwgInByb2Nlc3NvciI6IFsiYml0cyJdfSkKIAogCi1jbGFzcyBGaXJlZm94SW5zdGFuY2VNYW5h
Z2VyKG9iamVjdCk6CitkZWYgZ2V0X2Vudmlyb24obG9nZ2VyLCBiaW5hcnksIGRlYnVnX2luZm8s
IHN0eWxvX3RocmVhZHMsIGhlYWRsZXNzLCBlbmFibGVfd2VicmVuZGVyLAorICAgICAgICAgICAg
ICAgIGNoYW9zX21vZGVfZmxhZ3M9Tm9uZSk6CisgICAgZW52ID0gdGVzdF9lbnZpcm9ubWVudCh4
cmVQYXRoPW9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoYmluYXJ5KSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dlcj1kZWJ1Z19pbmZvIGlzIG5vdCBOb25lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXNlTFNhbj1UcnVlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nPWxvZ2dlcikKKworICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHN0
eWxvX3RocmVhZHMpCisgICAgaWYgY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAg
ICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoY2hhb3NfbW9kZV9mbGFncykKKyAgICBpZiBo
ZWFkbGVzczoKKyAgICAgICAgZW52WyJNT1pfSEVBRExFU1MiXSA9ICIxIgorICAgIGlmIGVuYWJs
ZV93ZWJyZW5kZXI6CisgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjEiCisgICAgICAg
IGVudlsiTU9aX0FDQ0VMRVJBVEVEIl0gPSAiMSIKKyAgICBlbHNlOgorICAgICAgICBlbnZbIk1P
Wl9XRUJSRU5ERVIiXSA9ICIwIgorICAgIHJldHVybiBlbnYKKworCitkZWYgc2V0dXBfbGVha19y
ZXBvcnQobGVha19jaGVjaywgcHJvZmlsZSwgZW52KToKKyAgICBsZWFrX3JlcG9ydF9maWxlID0g
Tm9uZQorICAgIGlmIGxlYWtfY2hlY2s6CisgICAgICAgIGZpbGVuYW1lID0gInJ1bnRlc3RzX2xl
YWtzXyVzLmxvZyIgJSBvcy5nZXRwaWQoKQorICAgICAgICBpZiBwcm9maWxlIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGguam9pbihwcm9maWxlLnBy
b2ZpbGUsIGZpbGVuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGVha19yZXBvcnRf
ZmlsZSA9IG9zLnBhdGguam9pbih0ZW1wZmlsZS5nZXR0ZW1wZGlyKCksIGZpbGVuYW1lKQorICAg
ICAgICBpZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3JlcG9ydF9maWxlKToKKyAgICAgICAgICAgIG9z
LnJlbW92ZShsZWFrX3JlcG9ydF9maWxlKQorICAgICAgICBlbnZbIlhQQ09NX01FTV9CTE9BVF9M
T0ciXSA9IGxlYWtfcmVwb3J0X2ZpbGUKKworICAgIHJldHVybiBsZWFrX3JlcG9ydF9maWxlCisK
KworY2xhc3MgRmlyZWZveEluc3RhbmNlTWFuYWdlcjoKICAgICBfX21ldGFjbGFzc19fID0gQUJD
TWV0YQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBiaW5hcnlfYXJn
cywgcHJvZmlsZV9jcmVhdG9yLCBkZWJ1Z19pbmZvLApAQCAtMjY3LDIwICszNTcsOCBAQCBjbGFz
cyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIG1hcmlvbmV0dGVfcG9y
dCA9IGdldF9mcmVlX3BvcnQoKQogICAgICAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlcyh7Im1h
cmlvbmV0dGUucG9ydCI6IG1hcmlvbmV0dGVfcG9ydH0pCiAKLSAgICAgICAgZW52ID0gdGVzdF9l
bnZpcm9ubWVudCh4cmVQYXRoPW9zLnBhdGguZGlybmFtZShzZWxmLmJpbmFyeSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdnZXI9c2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBO
b25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUxTYW49VHJ1ZSwgbG9nPXNl
bGYubG9nZ2VyKQotCi0gICAgICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5
bG9fdGhyZWFkcykKLSAgICAgICAgaWYgc2VsZi5jaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoc2VsZi5jaGFvc19tb2Rl
X2ZsYWdzKQotICAgICAgICBpZiBzZWxmLmhlYWRsZXNzOgotICAgICAgICAgICAgZW52WyJNT1pf
SEVBRExFU1MiXSA9ICIxIgotICAgICAgICBpZiBzZWxmLmVuYWJsZV93ZWJyZW5kZXI6Ci0gICAg
ICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIxIgotICAgICAgICAgICAgZW52WyJNT1pf
QUNDRUxFUkFURUQiXSA9ICIxIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZW52WyJNT1pf
V0VCUkVOREVSIl0gPSAiMCIKKyAgICAgICAgZW52ID0gZ2V0X2Vudmlyb24oc2VsZi5sb2dnZXIs
IHNlbGYuYmluYXJ5LCBzZWxmLmRlYnVnX2luZm8sIHNlbGYuc3R5bG9fdGhyZWFkcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5oZWFkbGVzcywgc2VsZi5lbmFibGVfd2VicmVuZGVy
LCBzZWxmLmNoYW9zX21vZGVfZmxhZ3MpCiAKICAgICAgICAgYXJncyA9IHNlbGYuYmluYXJ5X2Fy
Z3NbOl0gaWYgc2VsZi5iaW5hcnlfYXJncyBlbHNlIFtdCiAgICAgICAgIGFyZ3MgKz0gW2NtZF9h
cmcoIm1hcmlvbmV0dGUiKSwgImFib3V0OmJsYW5rIl0KQEAgLTI4OSwyNiArMzY3LDI2IEBAIGNs
YXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLmRlYnVnX2luZm8pCiAKLSAgICAgICAgaWYgc2VsZi5sZWFrX2No
ZWNrOgotICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGguam9pbihwcm9maWxl
LnByb2ZpbGUsICJydW50ZXN0c19sZWFrc18lcy5sb2ciICUgb3MuZ2V0cGlkKCkpCi0gICAgICAg
ICAgICBpZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3JlcG9ydF9maWxlKToKLSAgICAgICAgICAgICAg
ICBvcy5yZW1vdmUobGVha19yZXBvcnRfZmlsZSkKLSAgICAgICAgICAgIGVudlsiWFBDT01fTUVN
X0JMT0FUX0xPRyJdID0gbGVha19yZXBvcnRfZmlsZQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgbGVha19yZXBvcnRfZmlsZSA9IE5vbmUKLQotICAgICAgICBvdXRwdXRfaGFuZGxlciA9IE91
dHB1dEhhbmRsZXIoc2VsZi5sb2dnZXIsIHNlbGYuc3RhY2tmaXhfZGlyLCBzZWxmLnN5bWJvbHNf
cGF0aCwgc2VsZi5hc2FuKQorICAgICAgICBsZWFrX3JlcG9ydF9maWxlID0gc2V0dXBfbGVha19y
ZXBvcnQoc2VsZi5sZWFrX2NoZWNrLCBwcm9maWxlLCBlbnYpCisgICAgICAgIG91dHB1dF9oYW5k
bGVyID0gRmlyZWZveE91dHB1dEhhbmRsZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrZml4X2Rpcj1zZWxmLnN0YWNrZml4X2RpciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX3Bh
dGg9c2VsZi5zeW1ib2xzX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXNhbj1zZWxmLmFzYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZT1sZWFrX3JlcG9ydF9maWxlKQogICAg
ICAgICBydW5uZXIgPSBGaXJlZm94UnVubmVyKHByb2ZpbGU9cHJvZmlsZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBiaW5hcnk9Y21kWzBdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNtZGFyZ3M9Y21kWzE6XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbnY9Y2FzdF9lbnYoZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9
ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfY2xhc3M9UHJvY2Vz
c0hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc19hcmdzPXsi
cHJvY2Vzc091dHB1dExpbmUiOiBbb3V0cHV0X2hhbmRsZXJdfSkKICAgICAgICAgaW5zdGFuY2Ug
PSBCcm93c2VySW5zdGFuY2Uoc2VsZi5sb2dnZXIsIHJ1bm5lciwgbWFyaW9uZXR0ZV9wb3J0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlciwgbGVha19y
ZXBvcnRfZmlsZSkKIAogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgRmlyZWZv
eCIpCi0gICAgICAgIHJ1bm5lci5zdGFydChkZWJ1Z19hcmdzPWRlYnVnX2FyZ3MsIGludGVyYWN0
aXZlPXNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5kZWJ1Z19pbmZvLmludGVyYWN0aXZlKQorICAg
ICAgICBydW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLAorICAgICAgICAgICAgICAg
ICAgICAgaW50ZXJhY3RpdmU9c2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxmLmRlYnVnX2luZm8uaW50
ZXJhY3RpdmUpCisgICAgICAgIG91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RhcnQocnVu
bmVyLnByb2Nlc3NfaGFuZGxlci5waWQpCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJGaXJl
Zm94IFN0YXJ0ZWQiKQogCiAgICAgICAgIHJldHVybiBpbnN0YW5jZQpAQCAtMzMwLDYgKzQwOCw3
IEBAIGNsYXNzIFNpbmdsZUluc3RhbmNlTWFuYWdlcihGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKToK
ICAgICAgICAgICAgIGlmIGluc3RhbmNlOgogICAgICAgICAgICAgICAgIGluc3RhbmNlLnN0b3Ao
Zm9yY2UpCiAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY2xlYW51cCgpCisgICAgICAgIHNlbGYu
YmFzZV9wcm9maWxlLmNsZWFudXAoKQogCiAKIGNsYXNzIFByZWxvYWRJbnN0YW5jZU1hbmFnZXIo
RmlyZWZveEluc3RhbmNlTWFuYWdlcik6CkBAIC0zNTIsMTUgKzQzMSwxNiBAQCBjbGFzcyBQcmVs
b2FkSW5zdGFuY2VNYW5hZ2VyKEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIpOgogICAgICAgICByZXR1
cm4gc2VsZi5jdXJyZW50CiAKICAgICBkZWYgdGVhcmRvd24oc2VsZiwgZm9yY2U9RmFsc2UpOgot
ICAgICAgICBmb3IgaW5zdGFuY2UsIHNraXBfbWFyaW9uZXR0ZSBpbiBbKHNlbGYucHJldmlvdXMs
IEZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxm
LmN1cnJlbnQsIEZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZWxmLnBlbmRpbmcsIFRydWUpXToKKyAgICAgICAgZm9yIGluc3RhbmNlLCB1bnVzZWQg
aW4gWyhzZWxmLnByZXZpb3VzLCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2VsZi5jdXJyZW50LCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2VsZi5wZW5kaW5nLCBUcnVlKV06CiAgICAgICAgICAgICBpZiBpbnN0YW5jZToKLSAg
ICAgICAgICAgICAgICBpbnN0YW5jZS5zdG9wKGZvcmNlLCBza2lwX21hcmlvbmV0dGU9c2tpcF9t
YXJpb25ldHRlKQorICAgICAgICAgICAgICAgIGluc3RhbmNlLnN0b3AoZm9yY2UsIHVudXNlZCkK
ICAgICAgICAgICAgICAgICBpbnN0YW5jZS5jbGVhbnVwKCkKKyAgICAgICAgc2VsZi5iYXNlX3By
b2ZpbGUuY2xlYW51cCgpCiAKIAotY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9iamVjdCk6CitjbGFz
cyBCcm93c2VySW5zdGFuY2U6CiAgICAgc2h1dGRvd25fdGltZW91dCA9IDcwCiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBydW5uZXIsIG1hcmlvbmV0dGVfcG9ydCwgb3V0cHV0X2hh
bmRsZXIsIGxlYWtfcmVwb3J0X2ZpbGUpOgpAQCAtMzcxLDI1ICs0NTEsMzUgQEAgY2xhc3MgQnJv
d3Nlckluc3RhbmNlKG9iamVjdCk6CiAgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIgPSBvdXRw
dXRfaGFuZGxlcgogICAgICAgICBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgPSBsZWFrX3JlcG9ydF9m
aWxlCiAKLSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSwgc2tpcF9tYXJpb25ldHRlPUZh
bHNlKToKLSAgICAgICAgIiIiU3RvcCBGaXJlZm94IiIiCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9y
Y2U9RmFsc2UsIHVudXNlZD1GYWxzZSk6CisgICAgICAgICIiIlN0b3AgRmlyZWZveAorCisgICAg
ICAgIDpwYXJhbSBmb3JjZTogU2lnbmFsIHRoZSBmaXJlZm94IHByb2Nlc3Mgd2l0aG91dCB3YWl0
aW5nIGZvciBhIGNsZWFuIHNodXRkb3duCisgICAgICAgIDpwYXJhbSB1bnVzZWQ6IFRoaXMgaW5z
dGFuY2Ugd2FzIG5vdCB1c2VkIGZvciBydW5uaW5nIHRlc3RzIGFuZCBzbworICAgICAgICAgICAg
ICAgICAgICAgICBkb2Vzbid0IGhhdmUgYW4gYWN0aXZlIG1hcmlvbmV0dGUgc2Vzc2lvbiBhbmQg
ZG9lc24ndCByZXF1aXJlCisgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCBwb3N0cHJvY2Vz
c2luZy4KKyAgICAgICAgIiIiCiAgICAgICAgIGlzX3J1bm5pbmcgPSBzZWxmLnJ1bm5lciBpcyBu
b3QgTm9uZSBhbmQgc2VsZi5ydW5uZXIuaXNfcnVubmluZygpCiAgICAgICAgIGlmIGlzX3J1bm5p
bmc6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RvcHBpbmcgRmlyZWZveCAlcyIg
JSBzZWxmLnBpZCgpKQogICAgICAgICAgICAgc2h1dGRvd25fbWV0aG9kcyA9IFsoVHJ1ZSwgbGFt
YmRhOiBzZWxmLnJ1bm5lci53YWl0KHNlbGYuc2h1dGRvd25fdGltZW91dCkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChz
aWduYWwuU0lHVEVSTSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2Us
IGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHS0lMTCkpXQotICAgICAgICAgICAg
aWYgc2tpcF9tYXJpb25ldHRlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFs
c2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHVEVSTSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zaHV0ZG93bl90aW1lb3V0KSldCisgICAgICAgICAgICBpZiBoYXNhdHRyKHNpZ25hbCwgIlNJ
R0tJTEwiKToKKyAgICAgICAgICAgICAgICBzaHV0ZG93bl9tZXRob2RzLmFwcGVuZCgoRmFsc2Us
IGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHS0lMTCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnNodXRkb3duX3RpbWVvdXQpKSkKKyAgICAgICAgICAgIGlmIHVudXNlZCBvciBmb3Jj
ZToKKyAgICAgICAgICAgICAgICAjIERvbid0IHdhaXQgZm9yIHRoZSBpbnN0YW5jZSB0byBjbG9z
ZSBpdHNlbGYKICAgICAgICAgICAgICAgICBzaHV0ZG93bl9tZXRob2RzID0gc2h1dGRvd25fbWV0
aG9kc1sxOl0KICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAjIEZvciBGaXJlZm94
IHdlIGFzc3VtZSB0aGF0IHN0b3BwaW5nIHRoZSBydW5uZXIgcHJvbXB0cyB0aGUKICAgICAgICAg
ICAgICAgICAjIGJyb3dzZXIgdG8gc2h1dCBkb3duLiBUaGlzIGFsbG93cyB0aGUgbGVhayBsb2cg
dG8gYmUgd3JpdHRlbgotICAgICAgICAgICAgICAgIGZvciBjbGVhbiwgc3RvcF9mIGluIHNodXRk
b3duX21ldGhvZHM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBmb3JjZSBvciBub3QgY2xl
YW46Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXRjb2RlID0gc3RvcF9mKCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIHJldGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQnJvd3NlciBleGl0ZWQgd2l0aCByZXR1cm4g
Y29kZSAlcyIgJSByZXRjb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisg
ICAgICAgICAgICAgICAgZm9yIGksIChjbGVhbiwgc3RvcF9mKSBpbiBlbnVtZXJhdGUoc2h1dGRv
d25fbWV0aG9kcyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTaHV0
dGluZyBkb3duIGF0dGVtcHQgJWkvJWkiICUgKGkgKyAxLCBsZW4oc2h1dGRvd25fbWV0aG9kcykp
KQorICAgICAgICAgICAgICAgICAgICByZXRjb2RlID0gc3RvcF9mKCkKKyAgICAgICAgICAgICAg
ICAgICAgaWYgcmV0Y29kZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYubG9nZ2VyLmluZm8oIkJyb3dzZXIgZXhpdGVkIHdpdGggcmV0dXJuIGNvZGUgJXMiICUgcmV0
Y29kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBleGNlcHQg
T1NFcnJvcjoKICAgICAgICAgICAgICAgICAjIFRoaXMgY2FuIGhhcHBlbiBvbiBXaW5kb3dzIGlm
IHRoZSBwcm9jZXNzIGlzIGFscmVhZHkgZGVhZAogICAgICAgICAgICAgICAgIHBhc3MKQEAgLTM5
Nyw4ICs0ODcsOCBAQCBjbGFzcyBCcm93c2VySW5zdGFuY2Uob2JqZWN0KToKICAgICAgICAgICAg
ICMgVGhlIGJyb3dzZXIgd2FzIGFscmVhZHkgc3RvcHBlZCwgd2hpY2ggd2UgYXNzdW1lIHdhcyBh
IGNyYXNoCiAgICAgICAgICAgICAjIFRPRE86IFNob3VsZCB3ZSBjaGVjayB0aGUgZXhpdCBjb2Rl
IGhlcmU/CiAgICAgICAgICAgICBjbGVhbiA9IEZhbHNlCi0gICAgICAgIGlmIG5vdCBza2lwX21h
cmlvbmV0dGU6Ci0gICAgICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3N0b3AoY2xl
YW5fc2h1dGRvd249Y2xlYW4pCisgICAgICAgIGlmIG5vdCB1bnVzZWQ6CisgICAgICAgICAgICBz
ZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcChjbGVhbl9zaHV0ZG93bj1jbGVh
bikKIAogICAgIGRlZiBwaWQoc2VsZik6CiAgICAgICAgIGlmIHNlbGYucnVubmVyLnByb2Nlc3Nf
aGFuZGxlciBpcyBOb25lOgpAQCAtNDE1LDEyICs1MDUsMTMgQEAgY2xhc3MgQnJvd3Nlckluc3Rh
bmNlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgZGVmIGNsZWFudXAoc2Vs
Zik6Ci0gICAgICAgICMgbW96cHJvZmlsZSBoYW5kbGVzIGRlbGV0aW5nIHRoZSBwcm9maWxlIHdo
ZW4gdGhlIHJlZmNvdW50IHJlYWNoZXMgMAorICAgICAgICBzZWxmLnJ1bm5lci5jbGVhbnVwKCkK
ICAgICAgICAgc2VsZi5ydW5uZXIgPSBOb25lCiAKIAotY2xhc3MgT3V0cHV0SGFuZGxlcihvYmpl
Y3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHN0YWNrZml4X2Rpciwgc3ltYm9s
c19wYXRoLCBhc2FuKToKK2NsYXNzIEZpcmVmb3hPdXRwdXRIYW5kbGVyKE91dHB1dEhhbmRsZXIp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGNvbW1hbmQsIHN5bWJvbHNfcGF0aD1O
b25lLCBzdGFja2ZpeF9kaXI9Tm9uZSwgYXNhbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgbGVh
a19yZXBvcnRfZmlsZT1Ob25lKToKICAgICAgICAgIiIiRmlsdGVyIGZvciBoYW5kbGluZyBGaXJl
Zm94IHByb2Nlc3Mgb3V0cHV0LgogCiAgICAgICAgIFRoaXMgcmVjZWl2ZXMgRmlyZWZveCBwcm9j
ZXNzIG91dHB1dCBpbiB0aGUgX19jYWxsX18gZnVuY3Rpb24sIGRvZXMKQEAgLTQzMSw5ICs1MjIs
NyBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgIG9mIHRoZSBvdXRwdXQg
aGFuZGxlcnMuCiAgICAgICAgICIiIgogCi0gICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCi0g
ICAgICAgICMgVGhlc2UgYXJlIGZpbGxlZCBpbiBhZnRlciBzZXR1cCgpIGlzIGNhbGxlZAotICAg
ICAgICBzZWxmLmluc3RhbmNlID0gTm9uZQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dl
ciwgY29tbWFuZCkKIAogICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0aAog
ICAgICAgICBpZiBzdGFja2ZpeF9kaXI6CkBAIC00NDUsMjEgKzUzNCwxOCBAQCBjbGFzcyBPdXRw
dXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLnN0YWNr
X2ZpeGVyID0gTm9uZQogICAgICAgICBzZWxmLmFzYW4gPSBhc2FuCisgICAgICAgIHNlbGYubGVh
a19yZXBvcnRfZmlsZSA9IGxlYWtfcmVwb3J0X2ZpbGUKIAorICAgICAgICAjIFRoZXNlIGFyZSBm
aWxsZWQgaW4gYWZ0ZXIgY29uZmlndXJlX2hhbmRsZXJzKCkgaXMgY2FsbGVkCiAgICAgICAgIHNl
bGYubHNhbl9oYW5kbGVyID0gTm9uZQogICAgICAgICBzZWxmLm1vemxlYWtfYWxsb3dlZCA9IE5v
bmUKICAgICAgICAgc2VsZi5tb3psZWFrX3RocmVzaG9sZHMgPSBOb25lCiAgICAgICAgIHNlbGYu
Z3JvdXBfbWV0YWRhdGEgPSB7fQogCi0gICAgICAgIHNlbGYubGluZV9idWZmZXIgPSBbXQotICAg
ICAgICBzZWxmLnNldHVwX3JhbiA9IEZhbHNlCi0KLSAgICBkZWYgc2V0dXAoc2VsZiwgaW5zdGFu
Y2U9Tm9uZSwgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgbHNhbl9kaXNhYmxlZD1GYWxzZSwKLSAgICAg
ICAgICAgICAgbHNhbl9hbGxvd2VkPU5vbmUsIGxzYW5fbWF4X3N0YWNrX2RlcHRoPU5vbmUsIG1v
emxlYWtfYWxsb3dlZD1Ob25lLAotICAgICAgICAgICAgICBtb3psZWFrX3RocmVzaG9sZHM9Tm9u
ZSwgKiprd2FyZ3MpOgorICAgIGRlZiBzdGFydChzZWxmLCBncm91cF9tZXRhZGF0YT1Ob25lLCBs
c2FuX2Rpc2FibGVkPUZhbHNlLCBsc2FuX2FsbG93ZWQ9Tm9uZSwKKyAgICAgICAgICAgICAgbHNh
bl9tYXhfc3RhY2tfZGVwdGg9Tm9uZSwgbW96bGVha19hbGxvd2VkPU5vbmUsIG1vemxlYWtfdGhy
ZXNob2xkcz1Ob25lLAorICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgICAgICIiIkNvbmZp
Z3VyZSB0aGUgb3V0cHV0IGhhbmRsZXIiIiIKLSAgICAgICAgc2VsZi5pbnN0YW5jZSA9IGluc3Rh
bmNlCi0KICAgICAgICAgaWYgZ3JvdXBfbWV0YWRhdGEgaXMgTm9uZToKICAgICAgICAgICAgIGdy
b3VwX21ldGFkYXRhID0ge30KICAgICAgICAgc2VsZi5ncm91cF9tZXRhZGF0YSA9IGdyb3VwX21l
dGFkYXRhCkBAIC00NzUsMTggKzU2MSwxMyBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93
QWxsPWxzYW5fZGlzYWJsZWQpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxzYW5f
aGFuZGxlciA9IE5vbmUKKyAgICAgICAgc3VwZXIoKS5zdGFydCgpCiAKLSAgICAgICAgc2VsZi5z
ZXR1cF9yYW4gPSBUcnVlCi0KLSAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lX2J1ZmZlcjoK
LSAgICAgICAgICAgIHNlbGYuX19jYWxsX18obGluZSkKLSAgICAgICAgc2VsZi5saW5lX2J1ZmZl
ciA9IFtdCi0KLSAgICBkZWYgYWZ0ZXJfc3RvcChzZWxmLCBjbGVhbl9zaHV0ZG93bj1UcnVlKToK
LSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiUFJPQ0VTUyBMRUFLUyAlcyIgJSBzZWxmLmluc3Rh
bmNlLmxlYWtfcmVwb3J0X2ZpbGUpCisgICAgZGVmIGFmdGVyX3Byb2Nlc3Nfc3RvcChzZWxmLCBj
bGVhbl9zaHV0ZG93bj1UcnVlKToKKyAgICAgICAgc3VwZXIoKS5hZnRlcl9wcm9jZXNzX3N0b3Ao
Y2xlYW5fc2h1dGRvd24pCiAgICAgICAgIGlmIHNlbGYubHNhbl9oYW5kbGVyOgogICAgICAgICAg
ICAgc2VsZi5sc2FuX2hhbmRsZXIucHJvY2VzcygpCi0gICAgICAgIGlmIHNlbGYuaW5zdGFuY2Uu
bGVha19yZXBvcnRfZmlsZSBpcyBub3QgTm9uZToKKyAgICAgICAgaWYgc2VsZi5sZWFrX3JlcG9y
dF9maWxlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgbm90IGNsZWFuX3NodXRkb3duOgog
ICAgICAgICAgICAgICAgICMgSWYgd2UgZGlkbid0IGdldCBhIGNsZWFuIHNodXRkb3duIHRoZXJl
IHByb2JhYmx5IGlzbid0IGEgbGVhayByZXBvcnQgZmlsZQogICAgICAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLndhcm5pbmcoIkZpcmVmb3ggZGlkbid0IGV4aXQgY2xlYW5seSwgbm90IHByb2Nlc3Np
bmcgbGVhayBsb2dzIikKQEAgLTQ5NCwyMSArNTc1LDI0IEBAIGNsYXNzIE91dHB1dEhhbmRsZXIo
b2JqZWN0KToKICAgICAgICAgICAgICAgICAjIFdlIGhhdmUgdG8gaWdub3JlIG1pc3NpbmcgbGVh
a3MgaW4gdGhlIHRhYiBiZWNhdXNlIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUKICAgICAgICAgICAg
ICAgICAjIGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVkIGFuZCBpbiB0aGF0IGNhc2Ugd2UgZG9uJ3Qg
d2FudCB0aGUgdGVzdCB0byBmYWlsLgogICAgICAgICAgICAgICAgICMgSWRlYWxseSB3ZSB3b3Vs
ZCByZWNvcmQgd2hpY2ggY29udGVudCBwcm9jZXNzIGNyYXNoZWQgYW5kIGp1c3Qgc2tpcCB0aG9z
ZS4KKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJQUk9DRVNTIExFQUtTICVzIiAl
IHNlbGYubGVha19yZXBvcnRfZmlsZSkKICAgICAgICAgICAgICAgICBtb3psZWFrLnByb2Nlc3Nf
bGVha19sb2coCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuaW5zdGFuY2UubGVha19yZXBvcnRf
ZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlLAogICAgICAg
ICAgICAgICAgICAgICBsZWFrX3RocmVzaG9sZHM9c2VsZi5tb3psZWFrX3RocmVzaG9sZHMsCiAg
ICAgICAgICAgICAgICAgICAgIGlnbm9yZV9taXNzaW5nX2xlYWtzPVsidGFiIiwgImdtcGx1Z2lu
Il0sCiAgICAgICAgICAgICAgICAgICAgIGxvZz1zZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAg
ICAgICAgc3RhY2tfZml4ZXI9c2VsZi5zdGFja19maXhlciwKICAgICAgICAgICAgICAgICAgICAg
c2NvcGU9c2VsZi5ncm91cF9tZXRhZGF0YS5nZXQoInNjb3BlIiksCiAgICAgICAgICAgICAgICAg
ICAgIGFsbG93ZWQ9c2VsZi5tb3psZWFrX2FsbG93ZWQpCisgICAgICAgICAgICBpZiBvcy5wYXRo
LmV4aXN0cyhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpOgorICAgICAgICAgICAgICAgIG9zLnVubGlu
ayhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwgbGluZSk6
CiAgICAgICAgICIiIldyaXRlIGEgbGluZSBvZiBvdXRwdXQgZnJvbSB0aGUgZmlyZWZveCBwcm9j
ZXNzIHRvIHRoZSBsb2ciIiIKICAgICAgICAgaWYgYiJHTGliLUdPYmplY3QtQ1JJVElDQUwiIGlu
IGxpbmU6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYgbGluZToKLSAgICAgICAgICAg
IGlmIG5vdCBzZWxmLnNldHVwX3JhbjoKKyAgICAgICAgICAgIGlmIHNlbGYuc3RhdGUgPCBPdXRw
dXRIYW5kbGVyU3RhdGUuQUZURVJfSEFORExFUl9TVEFSVDoKICAgICAgICAgICAgICAgICBzZWxm
LmxpbmVfYnVmZmVyLmFwcGVuZChsaW5lKQogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAg
ICAgICAgZGF0YSA9IGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKQpAQCAtNTE3LDE0ICs2
MDEsMTIgQEAgY2xhc3MgT3V0cHV0SGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgc2Vs
Zi5sc2FuX2hhbmRsZXI6CiAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYubHNhbl9oYW5kbGVy
LmxvZyhkYXRhKQogICAgICAgICAgICAgaWYgZGF0YSBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLmluc3RhbmNlIGFuZAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5zdGFuY2UucnVubmVy
LnByb2Nlc3NfaGFuZGxlciBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmluc3RhbmNlLnJ1bm5lci5wcm9jZXNzX2hhbmRsZXIucGlkLAorICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KHNlbGYucGlkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLmluc3RhbmNl
LnJ1bm5lci5jb21tYW5kKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFuZCkpCiAKIAotY2xhc3MgUHJvZmlsZUNy
ZWF0b3Iob2JqZWN0KToKK2NsYXNzIFByb2ZpbGVDcmVhdG9yOgogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywgdGVzdF90eXBlLCBleHRyYV9wcmVmcywg
ZTEwcywKICAgICAgICAgICAgICAgICAgZW5hYmxlX2Zpc3Npb24sIGJyb3dzZXJfY2hhbm5lbCwg
YmluYXJ5LCBjZXJ0dXRpbF9iaW5hcnksIGNhX2NlcnRpZmljYXRlX3BhdGgpOgogICAgICAgICBz
ZWxmLmxvZ2dlciA9IGxvZ2dlcgpAQCAtNTQwLDE4ICs2MjIsMzggQEAgY2xhc3MgUHJvZmlsZUNy
ZWF0b3Iob2JqZWN0KToKICAgICAgICAgc2VsZi5jZXJ0dXRpbF9iaW5hcnkgPSBjZXJ0dXRpbF9i
aW5hcnkKICAgICAgICAgc2VsZi5jYV9jZXJ0aWZpY2F0ZV9wYXRoID0gY2FfY2VydGlmaWNhdGVf
cGF0aAogCi0gICAgZGVmIGNyZWF0ZShzZWxmKToKKyAgICBkZWYgY3JlYXRlKHNlbGYsICoqa3dh
cmdzKToKICAgICAgICAgIiIiQ3JlYXRlIGEgRmlyZWZveCBwcm9maWxlIGFuZCByZXR1cm4gdGhl
IG1venByb2ZpbGUgUHJvZmlsZSBvYmplY3QgcG9pbnRpbmcgYXQgdGhhdAotICAgICAgICBwcm9m
aWxlIiIiCisgICAgICAgIHByb2ZpbGUKKworICAgICAgICA6cGFyYW0ga3dhcmdzOiBBZGRpdGlv
bmFsIGFyZ3VtZW50cyB0byBwYXNzIGludG8gdGhlIHByb2ZpbGUgY29uc3RydWN0b3IKKyAgICAg
ICAgIiIiCiAgICAgICAgIHByZWZlcmVuY2VzID0gc2VsZi5fbG9hZF9wcmVmcygpCiAKLSAgICAg
ICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKHByZWZlcmVuY2VzPXByZWZlcmVuY2VzKQorICAg
ICAgICBwcm9maWxlID0gRmlyZWZveFByb2ZpbGUocHJlZmVyZW5jZXM9cHJlZmVyZW5jZXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlPUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuX3NldF9yZXF1
aXJlZF9wcmVmcyhwcm9maWxlKQogICAgICAgICBpZiBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGgg
aXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLl9zZXR1cF9zc2wocHJvZmlsZSkKIAogICAg
ICAgICByZXR1cm4gcHJvZmlsZQogCisgICAgZGVmIGNyZWF0ZV9iYXNlNjQoc2VsZiwgKiprd2Fy
Z3MpOgorICAgICAgICBwcm9maWxlID0gc2VsZi5jcmVhdGUoKiprd2FyZ3MpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHdpdGggaW8uQnl0ZXNJTygpIGFzIGJ1ZjoKKyAgICAgICAgICAgICAg
ICB3aXRoIHppcGZpbGUuWmlwRmlsZShidWYsICJ3IiwgY29tcHJlc3Npb249emlwZmlsZS5aSVBf
REVGTEFURUQpIGFzIHppcGY6CisgICAgICAgICAgICAgICAgICAgIGZvciBkaXJwYXRoLCBfLCBm
aWxlbmFtZXMgaW4gb3Mud2Fsayhwcm9maWxlLnByb2ZpbGUpOgorICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzcmNfcGF0aCA9IG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXN0X3BhdGggPSBvcy5wYXRoLnJlbHBhdGgoc3JjX3BhdGgs
IHByb2ZpbGUucHJvZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIG9wZW4o
c3JjX3BhdGgsICJyYiIpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpp
cGYud3JpdGVzdHIoZGVzdF9wYXRoLCBmLnJlYWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
YmFzZTY0LmI2NGVuY29kZShidWYuZ2V0dmFsdWUoKSkuZGVjb2RlKCJhc2NpaSIpLnN0cmlwKCkK
KyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHByb2ZpbGUuY2xlYW51cCgpCisKICAgICBk
ZWYgX2xvYWRfcHJlZnMoc2VsZik6CiAgICAgICAgIHByZWZzID0gUHJlZmVyZW5jZXMoKQogCkBA
IC02NDEsMTQgKzc0MywxMyBAQCBjbGFzcyBQcm9maWxlQ3JlYXRvcihvYmplY3QpOgogCiAKICAg
ICAgICAgZW52W2Vudl92YXJdID0gKG9zLnBhdGgucGF0aHNlcC5qb2luKFtjZXJ0dXRpbF9kaXIs
IGVudltlbnZfdmFyXV0pCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBlbnZfdmFyIGluIGVu
diBlbHNlIGNlcnR1dGlsX2RpcikuZW5jb2RlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSBvciAndXRmLTgnLCAncmVwbGFjZScpCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBlbnZfdmFyIGluIGVudiBlbHNlIGNlcnR1dGlsX2RpcikK
IAogICAgICAgICBkZWYgY2VydHV0aWwoKmFyZ3MpOgogICAgICAgICAgICAgY21kID0gW3NlbGYu
Y2VydHV0aWxfYmluYXJ5XSArIGxpc3QoYXJncykKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnBy
b2Nlc3Nfb3V0cHV0KCJjZXJ0dXRpbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChjbWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYo
ZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVudj1lbnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiLmpvaW4oY21kKSkKIApA
QCAtNjcwLDcgKzc3MSw2IEBAIGNsYXNzIFByb2ZpbGVDcmVhdG9yKG9iamVjdCk6CiAgICAgICAg
IGNlcnR1dGlsKCItTCIsICItZCIsIGNlcnRfZGJfcGF0aCkKIAogCi0KIGNsYXNzIEZpcmVmb3hC
cm93c2VyKEJyb3dzZXIpOgogICAgIGluaXRfdGltZW91dCA9IDcwCiAKQEAgLTY3OSw3ICs3Nzks
OCBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgICAgICAgICAgY2Ff
Y2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZhbHNlLCBlbmFibGVfd2VicmVuZGVyPUZhbHNl
LCBlbmFibGVfZmlzc2lvbj1GYWxzZSwKICAgICAgICAgICAgICAgICAgc3RhY2tmaXhfZGlyPU5v
bmUsIGJpbmFyeV9hcmdzPU5vbmUsIHRpbWVvdXRfbXVsdGlwbGllcj1Ob25lLCBsZWFrX2NoZWNr
PUZhbHNlLAogICAgICAgICAgICAgICAgICBhc2FuPUZhbHNlLCBzdHlsb190aHJlYWRzPTEsIGNo
YW9zX21vZGVfZmxhZ3M9Tm9uZSwgY29uZmlnPU5vbmUsCi0gICAgICAgICAgICAgICAgIGJyb3dz
ZXJfY2hhbm5lbD0ibmlnaHRseSIsIGhlYWRsZXNzPU5vbmUsIHByZWxvYWRfYnJvd3Nlcj1GYWxz
ZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHki
LCBoZWFkbGVzcz1Ob25lLCBwcmVsb2FkX2Jyb3dzZXI9RmFsc2UsCisgICAgICAgICAgICAgICAg
IHNwZWNpYWxwb3dlcnNfcGF0aD1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19p
bml0X18oc2VsZiwgbG9nZ2VyKQogCiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCkBAIC02
ODgsNiArNzg5LDcgQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAg
ICBzZWxmLmluaXRfdGltZW91dCA9IHNlbGYuaW5pdF90aW1lb3V0ICogdGltZW91dF9tdWx0aXBs
aWVyCiAKICAgICAgICAgc2VsZi5pbnN0YW5jZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fc2V0dGlu
Z3MgPSBOb25lCiAKICAgICAgICAgc2VsZi5zdGFja2ZpeF9kaXIgPSBzdGFja2ZpeF9kaXIKICAg
ICAgICAgc2VsZi5zeW1ib2xzX3BhdGggPSBzeW1ib2xzX3BhdGgKQEAgLTY5Niw2ICs3OTgsOCBA
QCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgc2VsZi5hc2FuID0gYXNh
bgogICAgICAgICBzZWxmLmxlYWtfY2hlY2sgPSBsZWFrX2NoZWNrCiAKKyAgICAgICAgc2VsZi5z
cGVjaWFscG93ZXJzX3BhdGggPSBzcGVjaWFscG93ZXJzX3BhdGgKKwogICAgICAgICBwcm9maWxl
X2NyZWF0b3IgPSBQcm9maWxlQ3JlYXRvcihsb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByZWZzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZywKQEAgLTcyNiwxOSArODMwLDE5IEBAIGNsYXNzIEZpcmVm
b3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzYW4pCiAKLQogICAgIGRlZiBzZXR0aW5ncyhz
ZWxmLCB0ZXN0KToKLSAgICAgICAgcmV0dXJuIHsiY2hlY2tfbGVha3MiOiBzZWxmLmxlYWtfY2hl
Y2sgYW5kIG5vdCB0ZXN0LmxlYWtzLAotICAgICAgICAgICAgICAgICJsc2FuX2Rpc2FibGVkIjog
dGVzdC5sc2FuX2Rpc2FibGVkLAotICAgICAgICAgICAgICAgICJsc2FuX2FsbG93ZWQiOiB0ZXN0
LmxzYW5fYWxsb3dlZCwKLSAgICAgICAgICAgICAgICAibHNhbl9tYXhfc3RhY2tfZGVwdGgiOiB0
ZXN0LmxzYW5fbWF4X3N0YWNrX2RlcHRoLAotICAgICAgICAgICAgICAgICJtb3psZWFrX2FsbG93
ZWQiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha19hbGxvd2VkLAotICAgICAgICAg
ICAgICAgICJtb3psZWFrX3RocmVzaG9sZHMiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96
bGVha190aHJlc2hvbGR9CisgICAgICAgIHNlbGYuX3NldHRpbmdzID0geyJjaGVja19sZWFrcyI6
IHNlbGYubGVha19jaGVjayBhbmQgbm90IHRlc3QubGVha3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICJsc2FuX2Rpc2FibGVkIjogdGVzdC5sc2FuX2Rpc2FibGVkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAibHNhbl9hbGxvd2VkIjogdGVzdC5sc2FuX2FsbG93ZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJsc2FuX21heF9zdGFja19kZXB0aCI6IHRlc3QubHNhbl9tYXhf
c3RhY2tfZGVwdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQi
OiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha19hbGxvd2VkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAibW96bGVha190aHJlc2hvbGRzIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0
ZXN0Lm1vemxlYWtfdGhyZXNob2xkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lh
bF9wb3dlcnMiOiBzZWxmLnNwZWNpYWxwb3dlcnNfcGF0aCBhbmQgdGVzdC51cmxfYmFzZSA9PSAi
L19tb3ppbGxhLyJ9CisgICAgICAgIHJldHVybiBzZWxmLl9zZXR0aW5ncwogCiAgICAgZGVmIHN0
YXJ0KHNlbGYsIGdyb3VwX21ldGFkYXRhPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5p
bnN0YW5jZSA9IHNlbGYuaW5zdGFuY2VfbWFuYWdlci5nZXQoKQotICAgICAgICBzZWxmLmluc3Rh
bmNlLm91dHB1dF9oYW5kbGVyLnNldHVwKHNlbGYuaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBfbWV0YWRhdGEsCisgICAgICAgIHNlbGYu
aW5zdGFuY2Uub3V0cHV0X2hhbmRsZXIuc3RhcnQoZ3JvdXBfbWV0YWRhdGEsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKICAgICBkZWYgc3Rv
cChzZWxmLCBmb3JjZT1GYWxzZSk6CkBAIC03NTYsNyArODYwLDExIEBAIGNsYXNzIEZpcmVmb3hC
cm93c2VyKEJyb3dzZXIpOgogCiAgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAg
ICAgIGFzc2VydCBzZWxmLmluc3RhbmNlIGlzIG5vdCBOb25lCi0gICAgICAgIHJldHVybiBFeGVj
dXRvckJyb3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0Ijogc2VsZi5pbnN0YW5jZS5tYXJpb25ldHRl
X3BvcnR9CisgICAgICAgIGV4dGVuc2lvbnMgPSBbXQorICAgICAgICBpZiBzZWxmLl9zZXR0aW5n
cy5nZXQoInNwZWNpYWxfcG93ZXJzIiwgRmFsc2UpOgorICAgICAgICAgICAgZXh0ZW5zaW9ucy5h
cHBlbmQoc2VsZi5zcGVjaWFscG93ZXJzX3BhdGgpCisgICAgICAgIHJldHVybiBFeGVjdXRvckJy
b3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0Ijogc2VsZi5pbnN0YW5jZS5tYXJpb25ldHRlX3BvcnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXh0ZW5zaW9ucyI6IGV4dGVuc2lv
bnN9CiAKICAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CiAgICAgICAg
IGR1bXBfZGlyID0gb3MucGF0aC5qb2luKHNlbGYuaW5zdGFuY2UucnVubmVyLnByb2ZpbGUucHJv
ZmlsZSwgIm1pbmlkdW1wcyIpCkBAIC03NzEsMyArODc5LDM5IEBAIGNsYXNzIEZpcmVmb3hCcm93
c2VyKEJyb3dzZXIpOgogICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLndhcm5pbmcoIkxvb2tpbmcgZm9yIGNyYXNoIGR1bXAgZmlsZXMgZmFpbGVkIikKICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIEZpcmVmb3hXZFNwZWNCcm93c2VyKE51
bGxCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBsZWFrX2NoZWNrPUZh
bHNlLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCAqKmt3YXJn
cykKKyAgICAgICAgc2VsZi5sZWFrX2NoZWNrID0gbGVha19jaGVjaworCisgICAgZGVmIHNldHRp
bmdzKHNlbGYsIHRlc3QpOgorICAgICAgICByZXR1cm4geyJjaGVja19sZWFrcyI6IHNlbGYubGVh
a19jaGVjayBhbmQgbm90IHRlc3QubGVha3MsCisgICAgICAgICAgICAgICAgImxzYW5fZGlzYWJs
ZWQiOiB0ZXN0LmxzYW5fZGlzYWJsZWQsCisgICAgICAgICAgICAgICAgImxzYW5fYWxsb3dlZCI6
IHRlc3QubHNhbl9hbGxvd2VkLAorICAgICAgICAgICAgICAgICJsc2FuX21heF9zdGFja19kZXB0
aCI6IHRlc3QubHNhbl9tYXhfc3RhY2tfZGVwdGgsCisgICAgICAgICAgICAgICAgIm1vemxlYWtf
YWxsb3dlZCI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX2FsbG93ZWQsCisgICAg
ICAgICAgICAgICAgIm1vemxlYWtfdGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVz
dC5tb3psZWFrX3RocmVzaG9sZH0KKworCitjbGFzcyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2
ZXJTZXJ2ZXIpOgorICAgIG91dHB1dF9oYW5kbGVyX2NscyA9IEZpcmVmb3hPdXRwdXRIYW5kbGVy
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBtYXJpb25ldHRlX3BvcnQ9MjgyOCwg
YmluYXJ5PSJnZWNrb2RyaXZlciIsCisgICAgICAgICAgICAgICAgIGhvc3Q9IjEyNy4wLjAuMSIs
IHBvcnQ9Tm9uZSwgZW52PU5vbmUsIGFyZ3M9Tm9uZSk6CisgICAgICAgIGlmIGVudiBpcyBOb25l
OgorICAgICAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgZW52WyJSVVNU
X0JBQ0tUUkFDRSJdID0gIjEiCisgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9
aG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9ydCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmdzPWFyZ3MpCisgICAgICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0g
bWFyaW9uZXR0ZV9wb3J0CisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICItLW1hcmlvbmV0dGUtcG9ydCIs
IHN0cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCisgICAgICAgICAgICAgICAgIi0taG9zdCIsIHNl
bGYuaG9zdCwKKyAgICAgICAgICAgICAgICAiLS1wb3J0Iiwgc3RyKHNlbGYucG9ydCldICsgc2Vs
Zi5fYXJncwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9hbmRyb2lkLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmly
ZWZveF9hbmRyb2lkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
NGQ3ZWJmNWUxZmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9hbmRyb2lkLnB5
CkBAIC0wLDAgKzEsMjkwIEBACitpbXBvcnQgb3MKKworaW1wb3J0IG1vem5ldHdvcmsKK2Zyb20g
bW96cnVubmVyIGltcG9ydCBGZW5uZWNFbXVsYXRvclJ1bm5lcgorCitmcm9tIC5iYXNlIGltcG9y
dCAoZ2V0X2ZyZWVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICBjbWRfYXJnLAorICAgICAgICAg
ICAgICAgICAgIGJyb3dzZXJfY29tbWFuZCkKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JtYXJp
b25ldHRlIGltcG9ydCAoTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0
MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0
ZVJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6
IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIEV4
ZWN1dG9yQnJvd3NlcikKK2Zyb20gLmZpcmVmb3ggaW1wb3J0IChnZXRfdGltZW91dF9tdWx0aXBs
aWVyLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFz
IGFzIGZ4X3J1bl9pbmZvX2V4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfcHJv
cGVydGllcywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3
YXJncywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgIFByb2ZpbGVDcmVhdG9y
IGFzIEZpcmVmb3hQcm9maWxlQ3JlYXRvcikKKworCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0
IjogImZpcmVmb3hfYW5kcm9pZCIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNo
ZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJGaXJlZm94QW5kcm9pZEJy
b3dzZXIiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIk1h
cmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWZ0ZXN0IjogIk1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImNyYXNodGVzdCI6ICJNYXJpb25ldHRlQ3Jhc2h0ZXN0RXhlY3V0
b3IifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdz
IiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3Mi
LAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAg
ICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAg
InJ1bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAi
dXBkYXRlX3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMiLAorICAgICAgICAgICAgICAg
ICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCisKK2Rl
ZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICBwYXNzCisKKworZGVmIGJyb3dzZXJfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAg
ICByZXR1cm4geyJhZGJfYmluYXJ5Ijoga3dhcmdzWyJhZGJfYmluYXJ5Il0sCisgICAgICAgICAg
ICAicGFja2FnZV9uYW1lIjoga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwKKyAgICAgICAgICAgICJk
ZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCisgICAgICAgICAgICAicHJl
ZnNfcm9vdCI6IGt3YXJnc1sicHJlZnNfcm9vdCJdLAorICAgICAgICAgICAgImV4dHJhX3ByZWZz
Ijoga3dhcmdzWyJleHRyYV9wcmVmcyJdLAorICAgICAgICAgICAgInRlc3RfdHlwZSI6IHRlc3Rf
dHlwZSwKKyAgICAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCisg
ICAgICAgICAgICAic3ltYm9sc19wYXRoIjoga3dhcmdzWyJzeW1ib2xzX3BhdGgiXSwKKyAgICAg
ICAgICAgICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzWyJzdGFja3dhbGtfYmluYXJ5Il0sCisg
ICAgICAgICAgICAiY2VydHV0aWxfYmluYXJ5Ijoga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSwK
KyAgICAgICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjogY29uZmlnLnNzbF9jb25maWdbImNh
X2NlcnRfcGF0aCJdLAorICAgICAgICAgICAgImVuYWJsZV93ZWJyZW5kZXIiOiBrd2FyZ3NbImVu
YWJsZV93ZWJyZW5kZXIiXSwKKyAgICAgICAgICAgICJzdGFja2ZpeF9kaXIiOiBrd2FyZ3NbInN0
YWNrZml4X2RpciJdLAorICAgICAgICAgICAgImJpbmFyeV9hcmdzIjoga3dhcmdzWyJiaW5hcnlf
YXJncyJdLAorICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IGdldF90aW1lb3V0X211
bHRpcGxpZXIodGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKSwKKyAgICAgICAg
ICAgICJlMTBzIjogcnVuX2luZm9fZGF0YVsiZTEwcyJdLAorICAgICAgICAgICAgIyBkZXNrdG9w
IG9ubHkKKyAgICAgICAgICAgICJsZWFrX2NoZWNrIjogRmFsc2UsCisgICAgICAgICAgICAic3R5
bG9fdGhyZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAorICAgICAgICAgICAgImNoYW9z
X21vZGVfZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSwKKyAgICAgICAgICAgICJj
b25maWciOiBjb25maWcsCisgICAgICAgICAgICAiaW5zdGFsbF9mb250cyI6IGt3YXJnc1siaW5z
dGFsbF9mb250cyJdLAorICAgICAgICAgICAgInRlc3RzX3Jvb3QiOiBjb25maWcuZG9jX3Jvb3Qs
CisgICAgICAgICAgICAic3BlY2lhbHBvd2Vyc19wYXRoIjoga3dhcmdzWyJzcGVjaWFscG93ZXJz
X3BhdGgiXX0KKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisK
KworZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CisgICAgcnYgPSBmeF9ydW5faW5mb19l
eHRyYXMoKiprd2FyZ3MpCisgICAgcGFja2FnZSA9IGt3YXJnc1sicGFja2FnZV9uYW1lIl0KKyAg
ICBydi51cGRhdGUoeyJlMTBzIjogVHJ1ZSBpZiBwYWNrYWdlIGlzIG5vdCBOb25lIGFuZCAiZ2Vj
a292aWV3IiBpbiBwYWNrYWdlIGVsc2UgRmFsc2UsCisgICAgICAgICAgICAgICAiaGVhZGxlc3Mi
OiBGYWxzZX0pCisgICAgcmV0dXJuIHJ2CisKKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgIyBU
aGUgc2VydmVyIGhvc3QgaXMgc2V0IHRvIHB1YmxpYyBsb2NhbGhvc3QgSVAgc28gdGhhdCByZXNv
dXJjZXMgY2FuIGJlIGFjY2Vzc2VkCisgICAgIyBmcm9tIEFuZHJvaWQgZW11bGF0b3IKKyAgICBy
ZXR1cm4geyJzZXJ2ZXJfaG9zdCI6IG1vem5ldHdvcmsuZ2V0X2lwKCksCisgICAgICAgICAgICAi
YmluZF9hZGRyZXNzIjogRmFsc2UsCisgICAgICAgICAgICAic3VwcG9ydHNfZGVidWdnZXIiOiBU
cnVlfQorCisKK2NsYXNzIFByb2ZpbGVDcmVhdG9yKEZpcmVmb3hQcm9maWxlQ3JlYXRvcik6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgY29uZmlnLCB0ZXN0X3R5
cGUsIGV4dHJhX3ByZWZzLAorICAgICAgICAgICAgICAgICBlbmFibGVfZmlzc2lvbiwgYnJvd3Nl
cl9jaGFubmVsLCBjZXJ0dXRpbF9iaW5hcnksIGNhX2NlcnRpZmljYXRlX3BhdGgpOgorICAgICAg
ICBzdXBlcihQcm9maWxlQ3JlYXRvciwgc2VsZikuX19pbml0X18obG9nZ2VyLCBwcmVmc19yb290
LCBjb25maWcsIHRlc3RfdHlwZSwgZXh0cmFfcHJlZnMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUcnVlLCBlbmFibGVfZmlzc2lvbiwgYnJvd3Nlcl9jaGFu
bmVsLCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2VydHV0aWxfYmluYXJ5LCBjYV9jZXJ0aWZpY2F0ZV9wYXRoKQorCisgICAgZGVmIF9zZXRfcmVx
dWlyZWRfcHJlZnMoc2VsZiwgcHJvZmlsZSk6CisgICAgICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVu
Y2VzKHsKKyAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMiOiAiLCIuam9pbihz
ZWxmLmNvbmZpZy5kb21haW5zX3NldCksCisgICAgICAgICAgICAiZG9tLmRpc2FibGVfb3Blbl9k
dXJpbmdfbG9hZCI6IEZhbHNlLAorICAgICAgICAgICAgInBsYWNlcy5oaXN0b3J5LmVuYWJsZWQi
OiBGYWxzZSwKKyAgICAgICAgICAgICJkb20uc2VuZF9hZnRlcl9wYWludF90b19jb250ZW50Ijog
VHJ1ZSwKKyAgICAgICAgICAgICJuZXR3b3JrLnByZWxvYWQiOiBUcnVlLAorICAgICAgICAgICAg
ImJyb3dzZXIudGFicy5yZW1vdGUuYXV0b3N0YXJ0IjogVHJ1ZSwKKyAgICAgICAgfSkKKworICAg
ICAgICBpZiBzZWxmLnRlc3RfdHlwZSA9PSAicmVmdGVzdCI6CisgICAgICAgICAgICBzZWxmLmxv
Z2dlci5pbmZvKCJTZXR0aW5nIGFuZHJvaWQgcmVmdGVzdCBwcmVmZXJlbmNlcyIpCisgICAgICAg
ICAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlcyh7CisgICAgICAgICAgICAgICAgImJyb3dzZXIu
dmlld3BvcnQuZGVza3RvcFdpZHRoIjogODAwLAorICAgICAgICAgICAgICAgICMgRGlzYWJsZSBo
aWdoIERQSQorICAgICAgICAgICAgICAgICJsYXlvdXQuY3NzLmRldlBpeGVsc1BlclB4IjogIjEu
MCIsCisgICAgICAgICAgICAgICAgIyBFbnN1cmUgdGhhdCB0aGUgZnVsbCBicm93c2VyIGVsZW1l
bnQKKyAgICAgICAgICAgICAgICAjIGFwcGVhcnMgaW4gdGhlIHNjcmVlbnNob3QKKyAgICAgICAg
ICAgICAgICAiYXB6LmFsbG93X3pvb21pbmciOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAiYW5k
cm9pZC53aWRnZXRfcGFpbnRzX2JhY2tncm91bmQiOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAj
IEVuc3VyZSB0aGF0IHNjcm9sbGJhcnMgYXJlIGFsd2F5cyBwYWludGVkCisgICAgICAgICAgICAg
ICAgImxheW91dC50ZXN0aW5nLm92ZXJsYXktc2Nyb2xsYmFycy5hbHdheXMtdmlzaWJsZSI6IFRy
dWUsCisgICAgICAgICAgICB9KQorCisKK2NsYXNzIEZpcmVmb3hBbmRyb2lkQnJvd3NlcihCcm93
c2VyKToKKyAgICBpbml0X3RpbWVvdXQgPSAzMDAKKyAgICBzaHV0ZG93bl90aW1lb3V0ID0gNjAK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByZWZzX3Jvb3QsIHRlc3RfdHlwZSwg
cGFja2FnZV9uYW1lPSJvcmcubW96aWxsYS5nZWNrb3ZpZXcudGVzdCIsCisgICAgICAgICAgICAg
ICAgIGRldmljZV9zZXJpYWw9ImVtdWxhdG9yLTU0NDQiLCBleHRyYV9wcmVmcz1Ob25lLCBkZWJ1
Z19pbmZvPU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lLCBzdGFja3dh
bGtfYmluYXJ5PU5vbmUsIGNlcnR1dGlsX2JpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAgICBj
YV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUsIGUxMHM9RmFsc2UsIGVuYWJsZV93ZWJyZW5kZXI9RmFs
c2UsIHN0YWNrZml4X2Rpcj1Ob25lLAorICAgICAgICAgICAgICAgICBiaW5hcnlfYXJncz1Ob25l
LCB0aW1lb3V0X211bHRpcGxpZXI9Tm9uZSwgbGVha19jaGVjaz1GYWxzZSwgYXNhbj1GYWxzZSwK
KyAgICAgICAgICAgICAgICAgc3R5bG9fdGhyZWFkcz0xLCBjaGFvc19tb2RlX2ZsYWdzPU5vbmUs
IGNvbmZpZz1Ob25lLCBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLAorICAgICAgICAgICAgICAg
ICBpbnN0YWxsX2ZvbnRzPUZhbHNlLCB0ZXN0c19yb290PU5vbmUsIHNwZWNpYWxwb3dlcnNfcGF0
aD1Ob25lLCBhZGJfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKKwor
ICAgICAgICBzdXBlcihGaXJlZm94QW5kcm9pZEJyb3dzZXIsIHNlbGYpLl9faW5pdF9fKGxvZ2dl
cikKKyAgICAgICAgc2VsZi5wcmVmc19yb290ID0gcHJlZnNfcm9vdAorICAgICAgICBzZWxmLnRl
c3RfdHlwZSA9IHRlc3RfdHlwZQorICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9IHBhY2thZ2Vf
bmFtZQorICAgICAgICBzZWxmLmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCisgICAgICAg
IHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KKyAgICAgICAgc2VsZi5zeW1ib2xzX3BhdGgg
PSBzeW1ib2xzX3BhdGgKKyAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5ID0gc3RhY2t3YWxr
X2JpbmFyeQorICAgICAgICBzZWxmLmNlcnR1dGlsX2JpbmFyeSA9IGNlcnR1dGlsX2JpbmFyeQor
ICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBjYV9jZXJ0aWZpY2F0ZV9wYXRoCisg
ICAgICAgIHNlbGYuZTEwcyA9IFRydWUKKyAgICAgICAgc2VsZi5lbmFibGVfd2VicmVuZGVyID0g
ZW5hYmxlX3dlYnJlbmRlcgorICAgICAgICBzZWxmLnN0YWNrZml4X2RpciA9IHN0YWNrZml4X2Rp
cgorICAgICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3MKKyAgICAgICAgc2VsZi50
aW1lb3V0X211bHRpcGxpZXIgPSB0aW1lb3V0X211bHRpcGxpZXIKKyAgICAgICAgc2VsZi5sZWFr
X2NoZWNrID0gbGVha19jaGVjaworICAgICAgICBzZWxmLmFzYW4gPSBhc2FuCisgICAgICAgIHNl
bGYuc3R5bG9fdGhyZWFkcyA9IHN0eWxvX3RocmVhZHMKKyAgICAgICAgc2VsZi5jaGFvc19tb2Rl
X2ZsYWdzID0gY2hhb3NfbW9kZV9mbGFncworICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwor
ICAgICAgICBzZWxmLmJyb3dzZXJfY2hhbm5lbCA9IGJyb3dzZXJfY2hhbm5lbAorICAgICAgICBz
ZWxmLmluc3RhbGxfZm9udHMgPSBpbnN0YWxsX2ZvbnRzCisgICAgICAgIHNlbGYudGVzdHNfcm9v
dCA9IHRlc3RzX3Jvb3QKKyAgICAgICAgc2VsZi5zcGVjaWFscG93ZXJzX3BhdGggPSBzcGVjaWFs
cG93ZXJzX3BhdGgKKyAgICAgICAgc2VsZi5hZGJfYmluYXJ5ID0gYWRiX2JpbmFyeQorCisgICAg
ICAgIHNlbGYucHJvZmlsZV9jcmVhdG9yID0gUHJvZmlsZUNyZWF0b3IobG9nZ2VyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZzX3Jvb3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9wcmVmcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydHV0aWxf
YmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
X2NlcnRpZmljYXRlX3BhdGgpCisKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBOb25l
CisgICAgICAgIHNlbGYucHJvZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBOb25l
CisgICAgICAgIHNlbGYuX3NldHRpbmdzID0ge30KKworICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0
ZXN0KToKKyAgICAgICAgc2VsZi5fc2V0dGluZ3MgPSB7ImNoZWNrX2xlYWtzIjogc2VsZi5sZWFr
X2NoZWNrIGFuZCBub3QgdGVzdC5sZWFrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImxz
YW5fYWxsb3dlZCI6IHRlc3QubHNhbl9hbGxvd2VkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAibHNhbl9tYXhfc3RhY2tfZGVwdGgiOiB0ZXN0LmxzYW5fbWF4X3N0YWNrX2RlcHRoLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW96bGVha19hbGxvd2VkIjogc2VsZi5sZWFrX2NoZWNr
IGFuZCB0ZXN0Lm1vemxlYWtfYWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm1v
emxlYWtfdGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX3RocmVz
aG9sZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNwZWNpYWxfcG93ZXJzIjogc2VsZi5z
cGVjaWFscG93ZXJzX3BhdGggYW5kIHRlc3QudXJsX2Jhc2UgPT0gIi9fbW96aWxsYS8ifQorICAg
ICAgICByZXR1cm4gc2VsZi5fc2V0dGluZ3MKKworICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJn
cyk6CisgICAgICAgIGlmIHNlbGYubWFyaW9uZXR0ZV9wb3J0IGlzIE5vbmU6CisgICAgICAgICAg
ICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9IGdldF9mcmVlX3BvcnQoKQorCisgICAgICAgIGFkZG9u
cyA9IFtzZWxmLnNwZWNpYWxwb3dlcnNfcGF0aF0gaWYgc2VsZi5fc2V0dGluZ3MuZ2V0KCJzcGVj
aWFsX3Bvd2VycyIpIGVsc2UgTm9uZQorICAgICAgICBzZWxmLnByb2ZpbGUgPSBzZWxmLnByb2Zp
bGVfY3JlYXRvci5jcmVhdGUoYWRkb25zPWFkZG9ucykKKyAgICAgICAgc2VsZi5wcm9maWxlLnNl
dF9wcmVmZXJlbmNlcyh7Im1hcmlvbmV0dGUucG9ydCI6IHNlbGYubWFyaW9uZXR0ZV9wb3J0fSkK
KworICAgICAgICBpZiBzZWxmLmluc3RhbGxfZm9udHM6CisgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiQ29weWluZyBBaGVtIGZvbnQgdG8gcHJvZmlsZSIpCisgICAgICAgICAgICBmb250
X2RpciA9IG9zLnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgImZvbnRzIikKKyAgICAg
ICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhmb250X2Rpcik6CisgICAgICAgICAgICAgICAg
b3MubWFrZWRpcnMoZm9udF9kaXIpCisgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2lu
KHNlbGYudGVzdHNfcm9vdCwgImZvbnRzIiwgIkFoZW0udHRmIiksICJyYiIpIGFzIHNyYzoKKyAg
ICAgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGZvbnRfZGlyLCAiQWhlbS50dGYi
KSwgIndiIikgYXMgZGVzdDoKKyAgICAgICAgICAgICAgICAgICAgZGVzdC53cml0ZShzcmMucmVh
ZCgpKQorCisgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IE5vbmUKKworICAgICAgICBk
ZWJ1Z19hcmdzLCBjbWQgPSBicm93c2VyX2NvbW1hbmQoc2VsZi5wYWNrYWdlX25hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJpbmFyeV9hcmdzIGlm
IHNlbGYuYmluYXJ5X2FyZ3MgZWxzZSBbXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbY21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykK
KworICAgICAgICBlbnYgPSB7fQorICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSIl0gPSAi
MSIKKyAgICAgICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEiCisgICAg
ICAgIGVudlsiTU9aX0RJU0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXSA9ICIxIgorICAgICAg
ICBlbnZbIlNUWUxPX1RIUkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCisgICAgICAg
IGlmIHNlbGYuY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGVudlsi
TU9aX0NIQU9TTU9ERSJdID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKKyAgICAgICAgaWYg
c2VsZi5lbmFibGVfd2VicmVuZGVyOgorICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0g
PSAiMSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0g
IjAiCisKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBGZW5uZWNFbXVsYXRvclJ1bm5lcihhcHA9c2Vs
Zi5wYWNrYWdlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJvZmlsZT1zZWxmLnByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY21kYXJncz1jbWRbMTpdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3ltYm9sc19wYXRoPXNlbGYuc3ltYm9sc19wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbD1zZWxmLmRldmljZV9zZXJpYWws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUT0RPIC0gY2hv
b3NlIGFwcHJvcHJpYXRlIGxvZyBkaXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2dkaXI9b3MuZ2V0Y3dkKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWRiX3BhdGg9c2VsZi5hZGJfYmluYXJ5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0X2NsZWFudXA9VHJ1ZSkKKwor
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgJXMiICUgc2VsZi5wYWNrYWdlX25h
bWUpCisgICAgICAgICMgY29ubmVjdCB0byBhIHJ1bm5pbmcgZW11bGF0b3IKKyAgICAgICAgc2Vs
Zi5ydW5uZXIuZGV2aWNlLmNvbm5lY3QoKQorCisgICAgICAgIHNlbGYucnVubmVyLnN0b3AoKQor
ICAgICAgICBzZWxmLnJ1bm5lci5zdGFydChkZWJ1Z19hcmdzPWRlYnVnX2FyZ3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludGVyYWN0aXZlPXNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5k
ZWJ1Z19pbmZvLmludGVyYWN0aXZlKQorCisgICAgICAgIHNlbGYucnVubmVyLmRldmljZS5kZXZp
Y2UuZm9yd2FyZCgKKyAgICAgICAgICAgIGxvY2FsPSJ0Y3A6e30iLmZvcm1hdChzZWxmLm1hcmlv
bmV0dGVfcG9ydCksCisgICAgICAgICAgICByZW1vdGU9InRjcDp7fSIuZm9ybWF0KHNlbGYubWFy
aW9uZXR0ZV9wb3J0KSkKKworICAgICAgICBmb3IgcG9ydHMgaW4gc2VsZi5jb25maWcucG9ydHMu
dmFsdWVzKCk6CisgICAgICAgICAgICBmb3IgcG9ydCBpbiBwb3J0czoKKyAgICAgICAgICAgICAg
ICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlLnJldmVyc2UoCisgICAgICAgICAgICAgICAgICAg
IGxvY2FsPSJ0Y3A6e30iLmZvcm1hdChwb3J0KSwKKyAgICAgICAgICAgICAgICAgICAgcmVtb3Rl
PSJ0Y3A6e30iLmZvcm1hdChwb3J0KSkKKworICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiJXMg
U3RhcnRlZCIgJSBzZWxmLnBhY2thZ2VfbmFtZSkKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNl
PUZhbHNlKToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBpZiBzZWxmLnJ1bm5lci5kZXZpY2UuY29ubmVjdGVkOgorICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmRldmljZS5yZW1vdmVfZm9y
d2FyZHMoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlLnJl
bW92ZV9yZXZlcnNlcygpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor
ICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gcmVtb3Zl
IGZvcndhcmRlZCBvciByZXZlcnNlZCBwb3J0czogJXMiICUgZSkKKyAgICAgICAgICAgICMgV2Ug
YXNzdW1lIHRoYXQgc3RvcHBpbmcgdGhlIHJ1bm5lciBwcm9tcHRzIHRoZQorICAgICAgICAgICAg
IyBicm93c2VyIHRvIHNodXQgZG93bi4KKyAgICAgICAgICAgIHNlbGYucnVubmVyLmNsZWFudXAo
KQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1Zygic3RvcHBlZCIpCisKKyAgICBkZWYgcGlkKHNl
bGYpOgorICAgICAgICBpZiBzZWxmLnJ1bm5lci5wcm9jZXNzX2hhbmRsZXIgaXMgTm9uZToKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYucnVubmVyLnByb2Nlc3NfaGFuZGxlci5waWQKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0
ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBpc19hbGl2ZShzZWxm
KToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ydW5u
ZXIuaXNfcnVubmluZygpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGNsZWFudXAo
c2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBzZWxmLnN0b3AoZm9yY2UpCisKKyAgICBkZWYg
ZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3Nlciwg
eyJtYXJpb25ldHRlX3BvcnQiOiBzZWxmLm1hcmlvbmV0dGVfcG9ydCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMgV2UgbmV2ZXIgd2FudCBtYXJpb25ldHRlIHRvIGluc3RhbGwg
ZXh0ZW5zaW9ucyBiZWNhdXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRo
YXQgZG9lc24ndCB3b3JrIG9uIEFuZHJvaWQ7IGluc3RlYWQgdGhleSBhcmUgaW4gdGhlIHByb2Zp
bGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHRlbnNpb25zIjogW119CisK
KyAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CisgICAgICAgIGlmIG5v
dCBvcy5lbnZpcm9uLmdldCgiTUlOSURVTVBfU1RBQ0tXQUxLIiwgIiIpIGFuZCBzZWxmLnN0YWNr
d2Fsa19iaW5hcnk6CisgICAgICAgICAgICBvcy5lbnZpcm9uWyJNSU5JRFVNUF9TVEFDS1dBTEsi
XSA9IHNlbGYuc3RhY2t3YWxrX2JpbmFyeQorICAgICAgICByZXR1cm4gYm9vbChzZWxmLnJ1bm5l
ci5jaGVja19mb3JfY3Jhc2hlcyh0ZXN0X25hbWU9dGVzdCkpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9p
ZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2llLnB5CmluZGV4IDc4YzIyYjkwOWFjZi4uYzg1MWRhZjBiNjNjIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9pZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQpAQCAtMSwxMiArMSwxMSBAQAot
ZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwot
ZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQot
ZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2
ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxs
QnJvd3NlciwgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhl
Y3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZy
b20gLi5leGVjdXRvcnMuZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVyIGltcG9ydCBJbnRlcm5ldEV4
cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9f
ID0geyJwcm9kdWN0IjogImllIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hl
Y2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIkludGVybmV0RXhwbG9yZXJC
cm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiTnVsbEJyb3dzZXIiLAogICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7Indkc3BlYyI6ICJJbnRlcm5ldEV4cGxvcmVyRHJp
dmVyV2RzcGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjog
ImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJl
eGVjdXRvcl9rd2FyZ3MiLApAQCAtMTgsMTggKzE3LDE3IEBAIF9fd3B0cnVubmVyX18gPSB7InBy
b2R1Y3QiOiAiaWUiLAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJn
KGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJn
cyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAg
ICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJd
LAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2Fy
Z3MiKX0KIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwg
dGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAg
ICAgICAgICAqKmt3YXJncyk6CiAgICAgb3B0aW9ucyA9IHt9CiAgICAgb3B0aW9uc1sicmVxdWly
ZVdpbmRvd0ZvY3VzIl0gPSBUcnVlCiAgICAgY2FwYWJpbGl0aWVzID0ge30KICAgICBjYXBhYmls
aXRpZXNbInNlOmllT3B0aW9ucyJdID0gb3B0aW9ucwotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJh
c2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19k
YXRhLCAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQog
ICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1
dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMKICAgICByZXR1cm4gZXhl
Y3V0b3Jfa3dhcmdzCkBAIC0zOSwzNSArMzcsMyBAQCBkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6
CiAKIGRlZiBlbnZfb3B0aW9ucygpOgogICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjog
RmFsc2V9Ci0KLWNsYXNzIEludGVybmV0RXhwbG9yZXJCcm93c2VyKEJyb3dzZXIpOgotICAgIHVz
ZWRfcG9ydHMgPSBzZXQoKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJp
dmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6Ci0gICAgICAgIEJyb3dzZXIuX19pbml0
X18oc2VsZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLnNlcnZlciA9IEludGVybmV0RXhwbG9yZXJE
cml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2Fy
Z3MpCi0gICAgICAgIHNlbGYud2ViZHJpdmVyX2hvc3QgPSAibG9jYWxob3N0IgotICAgICAgICBz
ZWxmLndlYmRyaXZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXIucG9ydAotCi0gICAgZGVmIHN0YXJ0KHNl
bGYsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQotCi0gICAgZGVmIHN0
b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZv
cmNlKQotCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBp
ZAotCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBv
bmx5IGluZGljYXRlcyB0aGUgc2VydmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0
IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMg
aXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAg
ZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYgZXhlY3V0
b3JfYnJvd3NlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJk
cml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9vcGVyYS5weQppbmRleCA4MDVmZWRlZTYzNmMuLmYzYTI5MjljZThlYiAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvb3BlcmEucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkKQEAgLTEsNCArMSw1IEBA
CiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJn
Citmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC5iYXNl
IGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4ud2Vi
ZHJpdmVyX3NlcnZlciBpbXBvcnQgT3BlcmFEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMg
aW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwpAQCAtOSw3ICsx
MCw4IEBAIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JvcGVyYSBpbXBvcnQgT3BlcmFEcml2ZXJX
ZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3Qi
OiAib3BlcmEiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwK
LSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiT3BlcmFCcm93c2VyIiwKKyAgICAgICAgICAg
ICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIk9wZXJhQnJvd3NlciIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAg
ImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3Ii
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZU
ZXN0RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJP
cGVyYURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCkBAIC0yNCwxOCArMjYsMTcgQEAgZGVmIGNoZWNr
X2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5h
cnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNv
bmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBy
dW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBr
d2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3Nb
IndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJn
cy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhl
Y3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5m
b19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgZnJvbSBzZWxlbml1
bS53ZWJkcml2ZXIgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKIAotICAgIGV4ZWN1dG9yX2t3
YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLCAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoq
a3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQog
ICAgIGNhcGFiaWxpdGllcyA9IGRpY3QoRGVzaXJlZENhcGFiaWxpdGllcy5PUEVSQS5pdGVtcygp
KQogICAgIGNhcGFiaWxpdGllcy5zZXRkZWZhdWx0KCJvcGVyYU9wdGlvbnMiLCB7fSlbInByZWZz
Il0gPSB7CkBAIC03MSw3ICs3Miw3IEBAIGNsYXNzIE9wZXJhQnJvd3NlcihCcm93c2VyKToKICAg
ICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVy
X2JpbmFyeT0ib3BlcmFkcml2ZXIiLAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1O
b25lKToKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgog
ICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIE9wZXJhLiAgVGhlIGBi
aW5hcnlgIGFyZ3VtZW50IGdpdmVzCiAgICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2Ug
Zm9yIHRlc3RpbmcuIiIiCiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CmluZGV4IGNiMmIx
NzVkNGRmYi4uMjBhNTQ3NWFjZjBiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvc2FmYXJpLnB5CkBAIC0xLDQgKzEsMTEgQEAKK2ltcG9ydCBvcworaW1wb3J0IHBsaXN0
bGliCitmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCisKK2ltcG9y
dCBwc3V0aWwKKwogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCBy
ZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQog
ZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQog
ZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFNhZmFyaURyaXZlclNlcnZlcgogZnJvbSAu
LmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdz
CkBAIC0xMCw3ICsxNyw4IEBAIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzYWZhcmkgaW1wb3J0
IFNhZmFyaURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJf
XyA9IHsicHJvZHVjdCI6ICJzYWZhcmkiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6
ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiU2FmYXJpQnJvd3Nl
ciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJTYWZhcmlCcm93c2VyIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAog
ICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRl
c3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRl
c3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3ZHNwZWMiOiAiU2FmYXJpRHJpdmVyV2RzcGVjRXhlY3V0b3IiLApAQCAtMjYsMTUg
KzM0LDE0IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2Fy
Z3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBl
LCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhs
b2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAg
cmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAot
ICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3Mi
KX0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9h
cmdzIiksCisgICAgICAgICAgICAia2lsbF9zYWZhcmkiOiBrd2FyZ3MuZ2V0KCJraWxsX3NhZmFy
aSIsIEZhbHNlKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2Nv
bmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKLSAgICAgICAgICAgICAgICAgICAg
Kiprd2FyZ3MpOgotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKK2RlZiBl
eGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9p
bmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9y
X2t3YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dh
cmdzKQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAg
IGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSB7fQogICAgIGlmIHRlc3RfdHlwZSA9
PSAidGVzdGhhcm5lc3MiOgpAQCAtNTgsMTUgKzY1LDYwIEBAIGNsYXNzIFNhZmFyaUJyb3dzZXIo
QnJvd3Nlcik6CiAgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLlNhZmFyaURyaXZlclNlcnZlcmBg
LgogICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2Jp
bmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwga2lsbF9zYWZhcmk9RmFs
c2UsICoqa3dhcmdzKToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBv
ZiBTYWZhcmkuICBUaGUgYHdlYmRyaXZlcl9iaW5hcnlgCiAgICAgICAgIGFyZ3VtZW50IGdpdmVz
IHRoZSBXZWJEcml2ZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4gKFRoZSBicm93c2VyCiAg
ICAgICAgIGJpbmFyeSBsb2NhdGlvbiBjYW5ub3QgYmUgc3BlY2lmaWVkLCBhcyBTYWZhcmkgYW5k
IFNhZmFyaURyaXZlciBhcmUKLSAgICAgICAgY291cGxlZC4pIiIiCisgICAgICAgIGNvdXBsZWQu
KSBJZiBga2lsbF9zYWZhcmlgIGlzIFRydWUsIHRoZW4gYEJyb3dzZXIuc3RvcGAgd2lsbCBzdG9w
IFNhZmFyaS4iIiIKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAg
ICAgIHNlbGYuc2VydmVyID0gU2FmYXJpRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFy
eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2
ZXJfYXJncykKKyAgICAgICAgaWYgIi8iIG5vdCBpbiB3ZWJkcml2ZXJfYmluYXJ5OgorICAgICAg
ICAgICAgd2RfcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSh3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgd2RfcGF0aCA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAg
c2VsZi5zYWZhcmlfcGF0aCA9IHNlbGYuX2ZpbmRBc3NvY2lhdGVkU2FmYXJpRXhlY3V0YWJsZSh3
ZF9wYXRoKQorCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiV2ViRHJpdmVyIGV4ZWN1dGFibGUgcGF0
aDogJXMiICUgd2RfcGF0aCkKKyAgICAgICAgbG9nZ2VyLmRlYnVnKCJTYWZhcmkgZXhlY3V0YWJs
ZSBwYXRoOiAlcyIgJSBzZWxmLnNhZmFyaV9wYXRoKQorCisgICAgICAgIHNlbGYua2lsbF9zYWZh
cmkgPSBraWxsX3NhZmFyaQorCisgICAgZGVmIF9maW5kQXNzb2NpYXRlZFNhZmFyaUV4ZWN1dGFi
bGUoc2VsZiwgd2RfcGF0aCk6CisgICAgICAgIGJ1bmRsZV9wYXRocyA9IFsKKyAgICAgICAgICAg
IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUod2RfcGF0aCksICIuLiIsICIuLiIpLCAgIyBi
dW5kbGVkIFNhZmFyaSAoZS5nLiBTVFApCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0
aC5kaXJuYW1lKHdkX3BhdGgpLCAiU2FmYXJpLmFwcCIpLCAgIyBsb2NhbCBTYWZhcmkgYnVpbGQK
KyAgICAgICAgICAgICIvQXBwbGljYXRpb25zL1NhZmFyaS5hcHAiLCAgIyBzeXN0ZW0gU2FmYXJp
CisgICAgICAgIF0KKworICAgICAgICBmb3IgYnVuZGxlX3BhdGggaW4gYnVuZGxlX3BhdGhzOgor
ICAgICAgICAgICAgaW5mb19wYXRoID0gb3MucGF0aC5qb2luKGJ1bmRsZV9wYXRoLCAiQ29udGVu
dHMiLCAiSW5mby5wbGlzdCIpCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoaW5m
b19wYXRoKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICB3aXRoIG9w
ZW4oaW5mb19wYXRoLCAicmIiKSBhcyBmcDoKKyAgICAgICAgICAgICAgICBpbmZvID0gcGxpc3Rs
aWIubG9hZChmcCkKKworICAgICAgICAgICAgIyBjaGVjayB3ZSBoYXZlIGEgU2FmYXJpIGZhbWls
eSBidW5kbGUKKyAgICAgICAgICAgIGlmICJDRkJ1bmRsZUlkZW50aWZpZXIiIG5vdCBpbiBpbmZv
OgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZGVudCA9IGluZm9bIkNG
QnVuZGxlSWRlbnRpZmllciJdCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpZGVudCwg
c3RyKSBvciBub3QgaWRlbnQuc3RhcnRzd2l0aCgiY29tLmFwcGxlLlNhZmFyaSIpOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICMgZ2V0IHRoZSBleGVjdXRhYmxlIG5h
bWUKKyAgICAgICAgICAgIGlmICJDRkJ1bmRsZUV4ZWN1dGFibGUiIG5vdCBpbiBpbmZvOgorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBleGUgPSBpbmZvWyJDRkJ1bmRsZUV4
ZWN1dGFibGUiXQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZXhlLCBzdHIpOgorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGV4ZV9wYXRoID0gb3MucGF0aC5q
b2luKGJ1bmRsZV9wYXRoLCAiQ29udGVudHMiLCAiTWFjT1MiLCBleGUpCisgICAgICAgICAgICBp
ZiBub3Qgb3MucGF0aC5pc2ZpbGUoZXhlX3BhdGgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisKKyAgICAgICAgICAgIHJldHVybiBleGVfcGF0aAogCiAgICAgZGVmIHN0YXJ0KHNlbGYsICoq
a3dhcmdzKToKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCkBAIC03NCw2
ICsxMjYsMjAgQEAgY2xhc3MgU2FmYXJpQnJvd3NlcihCcm93c2VyKToKICAgICBkZWYgc3RvcChz
ZWxmLCBmb3JjZT1GYWxzZSk6CiAgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2Up
CiAKKyAgICAgICAgaWYgc2VsZi5raWxsX3NhZmFyaToKKyAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJHb2luZyB0byBzdG9wIFNhZmFyaSIpCisgICAgICAgICAgICBmb3IgcHJvYyBpbiBw
c3V0aWwucHJvY2Vzc19pdGVyKGF0dHJzPVsiZXhlIl0pOgorICAgICAgICAgICAgICAgIGlmIHBy
b2MuaW5mb1siZXhlIl0gaXMgbm90IE5vbmUgYW5kIG9zLnBhdGguc2FtZWZpbGUocHJvYy5pbmZv
WyJleGUiXSwgc2VsZi5zYWZhcmlfcGF0aCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKCJTdG9wcGluZyBTYWZhcmkgJXMiICUgcHJvYy5waWQpCisgICAgICAgICAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2MudGVybWluYXRlKCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm9jLndhaXQoMTApCisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgcHN1dGlsLlRpbWVv
dXRFeHBpcmVkOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Mua2lsbCgpCisgICAg
ICAgICAgICAgICAgICAgIGV4Y2VwdCBwc3V0aWwuTm9TdWNoUHJvY2VzczoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKwogICAgIGRlZiBwaWQoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLnNlcnZlci5waWQKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVj
ZS5weQppbmRleCBjNTdhYzk0MmVkNGUuLjQ5MTMxOTkxNzU5OSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2F1Y2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKQEAgLTEyLDcgKzEyLDcgQEAgaW1wb3J0IHRp
bWUKIAogaW1wb3J0IHJlcXVlc3RzCiAKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8g
YXMgU3RyaW5nSU8KK2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gLmJhc2UgaW1wb3J0
IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0
IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKQEAgLTk1LDE2ICs5NSwxNSBA
QCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAic2F1
Y2Vfa2V5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRh
LCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgc2F1Y2VfY29uZmlnID0g
Z2V0X3NhdWNlX2NvbmZpZygqKmt3YXJncykKIAogICAgIHJldHVybiB7InNhdWNlX2NvbmZpZyI6
IHNhdWNlX2NvbmZpZ30KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVy
X2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2Fy
Z3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNl
X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3Mo
dGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKIAog
ICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBnZXRfY2FwYWJpbGl0aWVzKCoq
a3dhcmdzKQogCkBAIC0yMjgsNyArMjI3LDcgQEAgY2xhc3MgU2F1Y2VFeGNlcHRpb24oRXhjZXB0
aW9uKToKIGNsYXNzIFNhdWNlQnJvd3NlcihCcm93c2VyKToKICAgICBpbml0X3RpbWVvdXQgPSAz
MDAKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHNhdWNlX2NvbmZpZyk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgc2F1Y2VfY29uZmlnLCAqKmt3YXJncyk6CiAgICAg
ICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLnNhdWNlX2Nv
bmZpZyA9IHNhdWNlX2NvbmZpZwogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3NlcnZvLnB5CmluZGV4IGI5NDc2NTQwYWM3Yy4uMTc5MWMxZGEyNzA2IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zZXJ2by5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQpAQCAtMzMsNyArMzMsNyBAQCBkZWYg
Y2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikK
IAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJpbmFy
eSI6IGt3YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdzWyJkZWJ1
Z19pbmZvIl0sCkBAIC00MywxMCArNDMsOSBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBl
LCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICB9CiAKIAotZGVmIGV4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vu
dmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6
Ci0gICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19k
YXRhLCAqKmt3YXJncykKKyAgICBydiA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwg
dGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgcnZbInBhdXNl
X2FmdGVyX3Rlc3QiXSA9IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdCiAgICAgaWYgdGVzdF90
eXBlID09ICJ3ZHNwZWMiOgogICAgICAgICBydlsiY2FwYWJpbGl0aWVzIl0gPSB7fQpAQCAtNzEs
NyArNzAsNyBAQCBkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToKIAogY2xhc3MgU2Vydm9Ccm93c2Vy
KE51bGxCcm93c2VyKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGRl
YnVnX2luZm89Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwKLSAgICAgICAgICAgICAgICAgdXNlcl9z
dHlsZXNoZWV0cz1Ob25lLCBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUpOgorICAgICAgICAgICAg
ICAgICB1c2VyX3N0eWxlc2hlZXRzPU5vbmUsIGNhX2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwgKipr
d2FyZ3MpOgogICAgICAgICBOdWxsQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAg
ICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CiAgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVn
X2luZm8KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2
ZXIucHkKaW5kZXggNDM3OTRlNDE3MDZkLi45YTZhMWE0MDJiMzYgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3NlcnZvZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5CkBAIC02LDEyICs2LDE2
IEBAIGZyb20gbW96cHJvY2VzcyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKIAogZnJvbSB0b29scy5z
ZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19maWxlCiAKLWZyb20gLmJhc2UgaW1wb3J0IEJy
b3dzZXIsIHJlcXVpcmVfYXJnLCBnZXRfZnJlZV9wb3J0LCBicm93c2VyX2NvbW1hbmQsIEV4ZWN1
dG9yQnJvd3NlcgorZnJvbSAuYmFzZSBpbXBvcnQgKEJyb3dzZXIsCisgICAgICAgICAgICAgICAg
ICAgRXhlY3V0b3JCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIE91dHB1dEhhbmRsZXIsCisg
ICAgICAgICAgICAgICAgICAgcmVxdWlyZV9hcmcsCisgICAgICAgICAgICAgICAgICAgZ2V0X2Zy
ZWVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQpCiBmcm9tIC5iYXNl
IGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhl
Y3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZy
b20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZXJ2b2RyaXZlciBpbXBvcnQgKFNlcnZvV2ViRHJpdmVy
VGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAj
IG5vcWE6IEY0MDEKLWZyb20gLi5wcm9jZXNzIGltcG9ydCBjYXN0X2VudgogCiBoZXJlID0gb3Mu
cGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCkBAIC0zNiw3ICs0MCw3IEBAIGRlZiBjaGVja19hcmdz
KCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRlZiBi
cm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3Mp
OgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4gewogICAgICAgICAiYmluYXJ5Ijoga3dhcmdz
WyJiaW5hcnkiXSwKICAgICAgICAgImJpbmFyeV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJd
LApAQCAtNDcsOSArNTEsOCBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5m
b19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICB9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
ICoqa3dhcmdzKToKLSAgICBydiA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2Vy
dmVyX2NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIs
IHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRl
c3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAg
IHJ2ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBy
dW5faW5mb19kYXRhLCAqKmt3YXJncykKICAgICByZXR1cm4gcnYKIAogCkBAIC03Nyw3ICs4MCw4
IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyQnJvd3NlcihCcm93c2VyKToKICAgICBpbml0X3RpbWVv
dXQgPSAzMDAgICMgTGFyZ2UgdGltZW91dCBmb3IgY2FzZXMgd2hlcmUgd2UncmUgYm9vdGluZyBh
biBBbmRyb2lkIGVtdWxhdG9yCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5h
cnksIGRlYnVnX2luZm89Tm9uZSwgd2ViZHJpdmVyX2hvc3Q9IjEyNy4wLjAuMSIsCi0gICAgICAg
ICAgICAgICAgIHNlcnZlcl9jb25maWc9Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwgdXNlcl9zdHls
ZXNoZWV0cz1Ob25lLCBoZWFkbGVzcz1Ob25lKToKKyAgICAgICAgICAgICAgICAgc2VydmVyX2Nv
bmZpZz1Ob25lLCBiaW5hcnlfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICB1c2VyX3N0eWxl
c2hlZXRzPU5vbmUsIGhlYWRsZXNzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgQnJvd3Nlci5f
X2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CiAgICAg
ICAgIHNlbGYuYmluYXJ5X2FyZ3MgPSBiaW5hcnlfYXJncyBvciBbXQpAQCAtOTEsNiArOTUsNyBA
QCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYudXNl
cl9zdHlsZXNoZWV0cyA9IHVzZXJfc3R5bGVzaGVldHMgaWYgdXNlcl9zdHlsZXNoZWV0cyBlbHNl
IFtdCiAgICAgICAgIHNlbGYuaGVhZGxlc3MgPSBoZWFkbGVzcyBpZiBoZWFkbGVzcyBlbHNlIEZh
bHNlCiAgICAgICAgIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCA9IHNlcnZlcl9jb25maWcuc3Ns
X2NvbmZpZ1siY2FfY2VydF9wYXRoIl0KKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlciA9IE5v
bmUKIAogICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYud2ViZHJp
dmVyX3BvcnQgPSBnZXRfZnJlZV9wb3J0KCkKQEAgLTEyOSwxMyArMTM0LDE2IEBAIGNsYXNzIFNl
cnZvV2ViRHJpdmVyQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgc2VsZi5jb21tYW5kID0gZGVi
dWdfYXJncyArIHNlbGYuY29tbWFuZAogCiAgICAgICAgIGlmIG5vdCBzZWxmLmRlYnVnX2luZm8g
b3Igbm90IHNlbGYuZGVidWdfaW5mby5pbnRlcmFjdGl2ZToKKyAgICAgICAgICAgIHNlbGYub3V0
cHV0X2hhbmRsZXIgPSBPdXRwdXRIYW5kbGVyKHNlbGYubG9nZ2VyLCBzZWxmLmNvbW1hbmQpCiAg
ICAgICAgICAgICBzZWxmLnByb2MgPSBQcm9jZXNzSGFuZGxlcihzZWxmLmNvbW1hbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1bc2Vs
Zi5vbl9vdXRwdXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVPdXRw
dXQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKKyAgICAgICAgICAgIHNlbGYu
b3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChzZWxmLnByb2MucGlkKQorICAgICAg
ICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlci5zdGFydCgpCiAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWNhc3Rf
ZW52KGVudikpCisgICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYu
Y29tbWFuZCwgZW52PWVudikKIAogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU2Vydm8gU3Rh
cnRlZCIpCiAKQEAgLTE0Nyw2ICsxNTUsOCBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIo
QnJvd3Nlcik6CiAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAj
IFRoaXMgY2FuIGhhcHBlbiBvbiBXaW5kb3dzIGlmIHRoZSBwcm9jZXNzIGlzIGFscmVhZHkgZGVh
ZAogICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgaWYgc2VsZi5vdXRwdXRfaGFuZGxlciBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vz
c19zdG9wKCkKIAogICAgIGRlZiBwaWQoc2VsZik6CiAgICAgICAgIGlmIHNlbGYucHJvYyBpcyBO
b25lOgpAQCAtMTU3LDEyICsxNjcsNiBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJv
d3Nlcik6CiAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICAgICAgICAgIHJldHVy
biBOb25lCiAKLSAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgotICAgICAgICAiIiJXcml0
ZSBhIGxpbmUgb2Ygb3V0cHV0IGZyb20gdGhlIHByb2Nlc3MgdG8gdGhlIGxvZyIiIgotICAgICAg
ICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5jb21t
YW5kKSkKLQogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYucHJv
Yy5wb2xsKCkgaXMgTm9uZQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93
ZWJraXQucHkKaW5kZXggZGE5M2NmMTY0Mzk5Li5hZDI0NzcxYWM5Y2UgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL3dlYmtpdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKQEAgLTEsNSArMSw1IEBACiBmcm9t
IC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9t
IC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyLCBjZXJ0aWZpY2F0ZV9kb21haW5f
bGlzdCAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllciwgY2VydGlmaWNhdGVfZG9tYWluX2xpc3QgICMgbm9xYTogRjQwMQog
ZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jf
a3dhcmdzCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJp
dmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwgICMgbm9x
YTogRjQwMQpAQCAtMTAsNyArMTAsOCBAQCBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQg
V2ViS2l0RHJpdmVyU2VydmVyCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAid2Via2l0
IiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAg
ICAgICAgICAgICJicm93c2VyIjogIldlYktpdEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAi
YnJvd3NlciI6IHtOb25lOiAiV2ViS2l0QnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImJyb3dz
ZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9y
IjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVj
dXRvciIsCkBAIC0yOSw3ICszMCw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICBy
ZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJraXRfcG9ydCIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdz
KHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nl
cl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2Fy
Z3MpOgogICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICAg
ICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAgICAg
ICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KQEAg
LTU0LDEyICs1NSwxMSBAQCBkZWYgY2FwYWJpbGl0aWVzX2Zvcl9wb3J0KHNlcnZlcl9jb25maWcs
ICoqa3dhcmdzKToKICAgICByZXR1cm4ge30KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBl
eGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9p
bmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9r
d2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUK
LSAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzX2Zvcl9w
b3J0KHNlcnZlcl9jb25maWcsCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9
IGNhcGFiaWxpdGllc19mb3JfcG9ydCh0ZXN0X2Vudmlyb25tZW50LmNvbmZpZywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKQogICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIApAQCAtODIsNyArODIsNyBAQCBjbGFz
cyBXZWJLaXRCcm93c2VyKEJyb3dzZXIpOgogICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCi0gICAgICAgICAgICAg
ICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJn
cz1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2Vy
KQogICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLnNlcnZlciA9IFdl
YktpdERyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRn
dGtfbWluaWJyb3dzZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li43YTAyYWQxNDkwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWluaWJy
b3dzZXIucHkKQEAgLTAsMCArMSw4NCBAQAorZnJvbSAuYmFzZSBpbXBvcnQgKE51bGxCcm93c2Vy
LCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGVfZG9tYWluX2xp
c3QsCisgICAgICAgICAgICAgICAgICAgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgICMgbm9xYTog
RjQwMQorICAgICAgICAgICAgICAgICAgIG1heWJlX2FkZF9hcmdzKQorZnJvbSAud2Via2l0IGlt
cG9ydCBXZWJLaXRCcm93c2VyCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2Fy
Z3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJk
cml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAx
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVm
VGVzdEV4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViRHJpdmVyQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEK
K2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3Bl
Y0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJ3
ZWJraXRndGtfbWluaWJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJj
aGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIldlYktpdEdU
S01pbmlCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJO
dWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nl
cl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjog
IldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3Ii
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyYXNodGVzdCI6ICJXZWJEcml2ZXJD
cmFzaHRlc3RFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjog
ImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9l
eHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAor
ICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisg
ICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlw
bGllciJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHBhc3MKKworCitkZWYg
YnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywg
Kiprd2FyZ3MpOgorICAgICMgV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn
L0dOT01FL2xpYnNvdXAvaXNzdWVzLzE3MgorICAgIHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzID0g
WyItLWhvc3Q9MTI3LjAuMC4xIl0KKyAgICB3ZWJkcml2ZXJfYXJncyA9IG1heWJlX2FkZF9hcmdz
KHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzLCBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpKQor
ICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAid2Vi
ZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAg
IndlYmRyaXZlcl9hcmdzIjogd2ViZHJpdmVyX2FyZ3N9CisKKworZGVmIGNhcGFiaWxpdGllcyhz
ZXJ2ZXJfY29uZmlnLCAqKmt3YXJncyk6CisgICAgYnJvd3Nlcl9yZXF1aXJlZF9hcmdzID0gWyIt
LWF1dG9tYXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWphdmFzY3JpcHQt
Y2FuLW9wZW4td2luZG93cy1hdXRvbWF0aWNhbGx5PXRydWUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWVuYWJsZS14c3MtYXVkaXRvcj1mYWxzZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi0tZW5hYmxlLW1lZGlhLWNhcGFiaWxpdGllcz10cnVlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtZW5jcnlwdGVkLW1lZGlhPXRydWUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1tZWRpYS1zdHJlYW09dHJ1ZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLW1vY2stY2FwdHVyZS1kZXZpY2Vz
PXRydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS13ZWJhdWRpbz10
cnVlIl0KKyAgICBhcmdzID0ga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBbXSkKKyAgICBhcmdz
ID0gbWF5YmVfYWRkX2FyZ3MoYnJvd3Nlcl9yZXF1aXJlZF9hcmdzLCBhcmdzKQorICAgIHJldHVy
biB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJNaW5pQnJvd3NlciIsCisgICAgICAgICJ3ZWJr
aXRndGs6YnJvd3Nlck9wdGlvbnMiOiB7CisgICAgICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJi
aW5hcnkiXSwKKyAgICAgICAgICAgICJhcmdzIjogYXJncywKKyAgICAgICAgICAgICJjZXJ0aWZp
Y2F0ZXMiOiBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChzZXJ2ZXJfY29uZmlnLmRvbWFpbnNfc2V0
LCBrd2FyZ3NbImhvc3RfY2VydF9wYXRoIl0pfX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAorICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUK
KyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzKHRlc3Rf
ZW52aXJvbm1lbnQuY29uZmlnLCAqKmt3YXJncykKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdz
CisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBl
bnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2RlZiBydW5faW5mb19leHRyYXMoKipr
d2FyZ3MpOgorICAgIHJldHVybiB7IndlYmtpdF9wb3J0IjogImd0ayJ9CisKKworY2xhc3MgV2Vi
S2l0R1RLTWluaUJyb3dzZXIoV2ViS2l0QnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAg
ICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBXZWJLaXRCcm93
c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29u
ZmlnLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvY29uZmlnLnB5CmluZGV4IGQ0NmJlYjhlNzFkYi4uOGE5YmRiZjczMGQ2IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9jb25maWcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvY29uZmlnLnB5CkBAIC0xLDExICsxLDEyIEBACi1mcm9tIHNpeC5tb3Zl
cy5jb25maWdwYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQYXJzZXIKK2Zyb20gY29uZmlncGFyc2Vy
IGltcG9ydCBDb25maWdQYXJzZXIKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0
aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIERpY3QKIAog
aGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAotY2xhc3MgQ29uZmlnRGljdChkaWN0
KToKK2NsYXNzIENvbmZpZ0RpY3QoRGljdFtzdHIsIEFueV0pOgogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBiYXNlX3BhdGgsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYuYmFzZV9wYXRo
ID0gYmFzZV9wYXRoCiAgICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdz
KQpAQCAtMjAsNyArMjEsNyBAQCBjbGFzcyBDb25maWdEaWN0KGRpY3QpOgogZGVmIHJlYWQoY29u
ZmlnX3BhdGgpOgogICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKGNvbmZpZ19wYXRo
KQogICAgIGNvbmZpZ19yb290ID0gb3MucGF0aC5kaXJuYW1lKGNvbmZpZ19wYXRoKQotICAgIHBh
cnNlciA9IFNhZmVDb25maWdQYXJzZXIoKQorICAgIHBhcnNlciA9IENvbmZpZ1BhcnNlcigpCiAg
ICAgc3VjY2VzcyA9IHBhcnNlci5yZWFkKGNvbmZpZ19wYXRoKQogICAgIGFzc2VydCBjb25maWdf
cGF0aCBpbiBzdWNjZXNzLCBzdWNjZXNzCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJv
bm1lbnQucHkKaW5kZXggMjUyN2QyNmQzOTFkLi4zZmU5NzE0NTZlZDYgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmly
b25tZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CkBAIC0xLDE1ICsxLDE0IEBACiBpbXBvcnQganNv
bgogaW1wb3J0IG9zCi1pbXBvcnQgbXVsdGlwcm9jZXNzaW5nCiBpbXBvcnQgc2lnbmFsCiBpbXBv
cnQgc29ja2V0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotZnJvbSBzaXggaW1wb3J0IGl0ZXJp
dGVtcwogCi1mcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1bHRfbG9nZ2VyLCBoYW5kbGVycywg
cHJveHkKK2Zyb20gbW96bG9nIGltcG9ydCBnZXRfZGVmYXVsdF9sb2dnZXIsIGhhbmRsZXJzCiAK
LWZyb20gLndwdGxvZ2dpbmcgaW1wb3J0IExvZ0xldmVsUmV3cml0ZXIKK2Zyb20gLiBpbXBvcnQg
bXBjb250ZXh0Citmcm9tIC53cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3JpdGVyLCBRdWV1
ZUhhbmRsZXIsIExvZ1F1ZXVlVGhyZWFkCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pCiByZXBvX3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBh
cmRpciwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQpAQCAtNTAsMjQgKzQ5LDU4IEBAIGNsYXNzIFRl
c3RFbnZpcm9ubWVudEVycm9yKEV4Y2VwdGlvbik6CiAgICAgcGFzcwogCiAKK2RlZiBnZXRfc2Vy
dmVyX2xvZ2dlcigpOgorICAgIGxvZ2dlciA9IGdldF9kZWZhdWx0X2xvZ2dlcihjb21wb25lbnQ9
IndwdHNlcnZlIikKKyAgICBsb2dfZmlsdGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxGaWx0ZXIobGFt
YmRhIHg6IHgsICJpbmZvIikKKyAgICAjIERvd25ncmFkZSBlcnJvcnMgdG8gd2FybmluZ3MgZm9y
IHRoZSBzZXJ2ZXIKKyAgICBsb2dfZmlsdGVyID0gTG9nTGV2ZWxSZXdyaXRlcihsb2dfZmlsdGVy
LCBbImVycm9yIl0sICJ3YXJuaW5nIikKKyAgICBsb2dnZXIuY29tcG9uZW50X2ZpbHRlciA9IGxv
Z19maWx0ZXIKKyAgICByZXR1cm4gbG9nZ2VyCisKKworY2xhc3MgUHJveHlMb2dnaW5nQ29udGV4
dDoKKyAgICAiIiJDb250ZXh0IG1hbmFnZXIgb2JqZWN0IHRoYXQgaGFuZGxlcyBzZXR1cCBhbmQg
dGVhcmRvd24gb2YgYSBsb2cgcXVldWUKKyAgICBmb3IgaGFuZGxpbmcgbG9nZ2luZyBtZXNzYWdl
cyBmcm9tIHdwdHNlcnZlLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6Cisg
ICAgICAgIG1wX2NvbnRleHQgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICBzZWxm
LmxvZ19xdWV1ZSA9IG1wX2NvbnRleHQuUXVldWUoKQorICAgICAgICBzZWxmLmxvZ2dpbmdfdGhy
ZWFkID0gTG9nUXVldWVUaHJlYWQoc2VsZi5sb2dfcXVldWUsIGxvZ2dlcikKKyAgICAgICAgc2Vs
Zi5sb2dnZXJfaGFuZGxlciA9IFF1ZXVlSGFuZGxlcihzZWxmLmxvZ19xdWV1ZSkKKworICAgIGRl
ZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuc3RhcnQoKQor
ICAgICAgICByZXR1cm4gc2VsZi5sb2dnZXJfaGFuZGxlcgorCisgICAgZGVmIF9fZXhpdF9fKHNl
bGYsICphcmdzKToKKyAgICAgICAgc2VsZi5sb2dfcXVldWUucHV0KE5vbmUpCisgICAgICAgICMg
V2FpdCBmb3IgdGhyZWFkIHRvIHNodXQgZG93biBidXQgbm90IGZvciB0b28gbG9uZyBzaW5jZSBp
dCdzIGEgZGFlbW9uCisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuam9pbigxKQorCisKIGNs
YXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0
IG93bnMgdGhlIHRlc3QgZW52aXJvbm1lbnQgaS5lLiB0aGUgaHR0cCBhbmQKICAgICB3ZWJzb2Nr
ZXRzIHNlcnZlcnMiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywgdGVzdGhh
cm5lc3NfdGltZW91dF9tdWx0aXBsZXIsCi0gICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rl
c3QsIGRlYnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCisgICAgICAg
ICAgICAgICAgIHBhdXNlX2FmdGVyX3Rlc3QsIGRlYnVnX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlv
bnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCiAgICAgICAgICAgICAgICAgIGVuYWJsZV9xdWlj
PUZhbHNlLCBtb2pvanNfcGF0aD1Ob25lKToKKwogICAgICAgICBzZWxmLnRlc3RfcGF0aHMgPSB0
ZXN0X3BhdGhzCiAgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQogICAgICAgICBzZWxmLmNvbmZp
Z19jdHggPSBOb25lCiAgICAgICAgIHNlbGYuY29uZmlnID0gTm9uZQorICAgICAgICBzZWxmLnNl
cnZlcl9sb2dnZXIgPSBnZXRfc2VydmVyX2xvZ2dlcigpCisgICAgICAgIHNlbGYuc2VydmVyX2xv
Z2dpbmdfY3R4ID0gUHJveHlMb2dnaW5nQ29udGV4dChzZWxmLnNlcnZlcl9sb2dnZXIpCiAgICAg
ICAgIHNlbGYudGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIgPSB0ZXN0aGFybmVzc190aW1l
b3V0X211bHRpcGxlcgogICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBwYXVzZV9hZnRl
cl90ZXN0CisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKICAgICAgICAgc2Vs
Zi50ZXN0X3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3AoInRlc3Rfc2VydmVyX3BvcnQiLCBUcnVl
KQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCiAgICAgICAgIHNlbGYub3B0
aW9ucyA9IG9wdGlvbnMgaWYgb3B0aW9ucyBpcyBub3QgTm9uZSBlbHNlIHt9CiAKLSAgICAgICAg
c2VsZi5jYWNoZV9tYW5hZ2VyID0gbXVsdGlwcm9jZXNzaW5nLk1hbmFnZXIoKQotICAgICAgICBz
ZWxmLnN0YXNoID0gc2VydmUuc3Rhc2guU3Rhc2hTZXJ2ZXIoKQorICAgICAgICBtcF9jb250ZXh0
ID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyID0g
bXBfY29udGV4dC5NYW5hZ2VyKCkKKyAgICAgICAgc2VsZi5zdGFzaCA9IHNlcnZlLnN0YXNoLlN0
YXNoU2VydmVyKG1wX2NvbnRleHQ9bXBfY29udGV4dCkKICAgICAgICAgc2VsZi5lbnZfZXh0cmFz
ID0gZW52X2V4dHJhcwogICAgICAgICBzZWxmLmVudl9leHRyYXNfY21zID0gTm9uZQogICAgICAg
ICBzZWxmLnNzbF9jb25maWcgPSBzc2xfY29uZmlnCkBAIC03NSw2ICsxMDgsNyBAQCBjbGFzcyBU
ZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgc2VsZi5tb2pvanNfcGF0aCA9IG1vam9q
c19wYXRoCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBzZXJ2ZXJfbG9nX2hh
bmRsZXIgPSBzZWxmLnNlcnZlcl9sb2dnaW5nX2N0eC5fX2VudGVyX18oKQogICAgICAgICBzZWxm
LmNvbmZpZ19jdHggPSBzZWxmLmJ1aWxkX2NvbmZpZygpCiAKICAgICAgICAgc2VsZi5jb25maWcg
PSBzZWxmLmNvbmZpZ19jdHguX19lbnRlcl9fKCkKQEAgLTgyLDggKzExNiw2IEBAIGNsYXNzIFRl
c3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICBzZWxmLnN0YXNoLl9fZW50ZXJfXygpCiAg
ICAgICAgIHNlbGYuY2FjaGVfbWFuYWdlci5fX2VudGVyX18oKQogCi0gICAgICAgIHNlbGYuc2V0
dXBfc2VydmVyX2xvZ2dpbmcoKQotCiAgICAgICAgIGFzc2VydCBzZWxmLmVudl9leHRyYXNfY21z
IGlzIE5vbmUsICgKICAgICAgICAgICAgICJBIFRlc3RFbnZpcm9ubWVudCBvYmplY3QgY2Fubm90
IGJlIG5lc3RlZCIpCiAKQEAgLTk0LDggKzEyNiwxMSBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQo
b2JqZWN0KToKICAgICAgICAgICAgIGNtLl9fZW50ZXJfXygpCiAgICAgICAgICAgICBzZWxmLmVu
dl9leHRyYXNfY21zLmFwcGVuZChjbSkKIAotICAgICAgICBzZWxmLnNlcnZlcnMgPSBzZXJ2ZS5z
dGFydChzZWxmLmNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5nZXRfcm91dGVzKCkpCisgICAgICAgIHNlbGYuc2VydmVycyA9IHNlcnZlLnN0YXJ0KHNlbGYu
c2VydmVyX2xvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5j
b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3JvdXRl
cygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcF9jb250ZXh0PW1wY29u
dGV4dC5nZXRfY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2dfaGFuZGxlcnM9W3NlcnZlcl9sb2dfaGFuZGxlcl0pCiAKICAgICAgICAgaWYgc2VsZi5vcHRp
b25zLmdldCgic3VwcG9ydHNfZGVidWdnZXIiKSBhbmQgc2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxm
LmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICBzZWxmLmlnbm9yZV9pbnRlcnJ1
cHRzKCkKQEAgLTEwNCw5ICsxMzksOSBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToK
ICAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190Yik6CiAgICAg
ICAgIHNlbGYucHJvY2Vzc19pbnRlcnJ1cHRzKCkKIAotICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2
ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2
ZXJzIGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHBvcnQsIHNlcnZl
ciBpbiBzZXJ2ZXJzOgotICAgICAgICAgICAgICAgIHNlcnZlci5raWxsKCkKKyAgICAgICAgICAg
ICAgICBzZXJ2ZXIuc3RvcCgpCiAgICAgICAgIGZvciBjbSBpbiBzZWxmLmVudl9leHRyYXNfY21z
OgogICAgICAgICAgICAgY20uX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikKIApA
QCAtMTE1LDYgKzE1MCw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAg
ICBzZWxmLmNhY2hlX21hbmFnZXIuX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikK
ICAgICAgICAgc2VsZi5zdGFzaC5fX2V4aXRfXygpCiAgICAgICAgIHNlbGYuY29uZmlnX2N0eC5f
X2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQorICAgICAgICBzZWxmLnNlcnZlcl9s
b2dnaW5nX2N0eC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQogCiAgICAgZGVm
IGlnbm9yZV9pbnRlcnJ1cHRzKHNlbGYpOgogICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5T
SUdJTlQsIHNpZ25hbC5TSUdfSUdOKQpAQCAtMTI1LDExICsxNjEsMTUgQEAgY2xhc3MgVGVzdEVu
dmlyb25tZW50KG9iamVjdCk6CiAgICAgZGVmIGJ1aWxkX2NvbmZpZyhzZWxmKToKICAgICAgICAg
b3ZlcnJpZGVfcGF0aCA9IG9zLnBhdGguam9pbihzZXJ2ZV9wYXRoKHNlbGYudGVzdF9wYXRocyks
ICJjb25maWcuanNvbiIpCiAKLSAgICAgICAgY29uZmlnID0gc2VydmUuQ29uZmlnQnVpbGRlcigp
CisgICAgICAgIGNvbmZpZyA9IHNlcnZlLkNvbmZpZ0J1aWxkZXIoc2VsZi5zZXJ2ZXJfbG9nZ2Vy
KQogCiAgICAgICAgIHBvcnRzID0gewogICAgICAgICAgICAgImh0dHAiOiBbODAwMCwgODAwMV0s
CisgICAgICAgICAgICAiaHR0cC1wcml2YXRlIjogWzgwMDJdLAorICAgICAgICAgICAgImh0dHAt
cHVibGljIjogWzgwMDNdLAogICAgICAgICAgICAgImh0dHBzIjogWzg0NDMsIDg0NDRdLAorICAg
ICAgICAgICAgImh0dHBzLXByaXZhdGUiOiBbODQ0NV0sCisgICAgICAgICAgICAiaHR0cHMtcHVi
bGljIjogWzg0NDZdLAogICAgICAgICAgICAgIndzIjogWzg4ODhdLAogICAgICAgICAgICAgIndz
cyI6IFs4ODg5XSwKICAgICAgICAgICAgICJoMiI6IFs5MDAwXSwKQEAgLTE2MCwyNCArMjAwLDYg
QEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIGNvbmZp
ZwogCi0gICAgZGVmIHNldHVwX3NlcnZlcl9sb2dnaW5nKHNlbGYpOgotICAgICAgICBzZXJ2ZXJf
bG9nZ2VyID0gZ2V0X2RlZmF1bHRfbG9nZ2VyKGNvbXBvbmVudD0id3B0c2VydmUiKQotICAgICAg
ICBhc3NlcnQgc2VydmVyX2xvZ2dlciBpcyBub3QgTm9uZQotICAgICAgICBsb2dfZmlsdGVyID0g
aGFuZGxlcnMuTG9nTGV2ZWxGaWx0ZXIobGFtYmRhIHg6IHgsICJpbmZvIikKLSAgICAgICAgIyBE
b3duZ3JhZGUgZXJyb3JzIHRvIHdhcm5pbmdzIGZvciB0aGUgc2VydmVyCi0gICAgICAgIGxvZ19m
aWx0ZXIgPSBMb2dMZXZlbFJld3JpdGVyKGxvZ19maWx0ZXIsIFsiZXJyb3IiXSwgIndhcm5pbmci
KQotICAgICAgICBzZXJ2ZXJfbG9nZ2VyLmNvbXBvbmVudF9maWx0ZXIgPSBsb2dfZmlsdGVyCi0K
LSAgICAgICAgc2VydmVyX2xvZ2dlciA9IHByb3h5LlF1ZXVlZFByb3h5TG9nZ2VyKHNlcnZlcl9s
b2dnZXIpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBTZXQgYXMgdGhlIGRlZmF1bHQg
bG9nZ2VyIGZvciB3cHRzZXJ2ZQotICAgICAgICAgICAgc2VydmUuc2V0X2xvZ2dlcihzZXJ2ZXJf
bG9nZ2VyKQotICAgICAgICAgICAgc2VydmUubG9nZ2VyID0gc2VydmVyX2xvZ2dlcgotICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgIyBUaGlzIGhhcHBlbnMgaWYgbG9nZ2lu
ZyBoYXMgYWxyZWFkeSBiZWVuIHNldCB1cCBmb3Igd3B0c2VydmUKLSAgICAgICAgICAgIHBhc3MK
LQogICAgIGRlZiBnZXRfcm91dGVzKHNlbGYpOgogICAgICAgICByb3V0ZV9idWlsZGVyID0gc2Vy
dmUuUm91dGVzQnVpbGRlcigpCiAKQEAgLTE5MSw3ICsyMTMsOCBAQCBjbGFzcyBUZXN0RW52aXJv
bm1lbnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAoc2VsZi5vcHRpb25zLmdldCgidGVzdGhh
cm5lc3NyZXBvcnQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMiKSwKICAgICAgICAgICAgICAgICAg
eyJvdXRwdXQiOiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QsCiAgICAgICAgICAgICAgICAgICAidGlt
ZW91dF9tdWx0aXBsaWVyIjogc2VsZi50ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKLSAg
ICAgICAgICAgICAgICAgICJleHBsaWNpdF90aW1lb3V0IjogInRydWUiIGlmIHNlbGYuZGVidWdf
aW5mbyBpcyBub3QgTm9uZSBlbHNlICJmYWxzZSJ9LAorICAgICAgICAgICAgICAgICAgImV4cGxp
Y2l0X3RpbWVvdXQiOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lIGVsc2Ug
ImZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICJkZWJ1ZyI6ICJ0cnVlIiBpZiBzZWxmLmRlYnVn
X3Rlc3QgZWxzZSAiZmFsc2UifSwKICAgICAgICAgICAgICAgICAgInRleHQvamF2YXNjcmlwdDtj
aGFyc2V0PXV0ZjgiLAogICAgICAgICAgICAgICAgICAiL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyIpXToKICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGgu
am9pbihoZXJlLCBwYXRoKSkKQEAgLTIwOSw3ICsyMzIsNyBAQCBjbGFzcyBUZXN0RW52aXJvbm1l
bnQob2JqZWN0KToKICAgICAgICAgcm91dGVfYnVpbGRlci5hZGRfaGFuZGxlcigiR0VUIiwgIi9y
ZXNvdXJjZXMvdGVzdGRyaXZlci5qcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU3RyaW5nSGFuZGxlcihkYXRhLCAidGV4dC9qYXZhc2NyaXB0IikpCiAKLSAgICAgICAgZm9y
IHVybF9iYXNlLCBwYXRocyBpbiBpdGVyaXRlbXMoc2VsZi50ZXN0X3BhdGhzKToKKyAgICAgICAg
Zm9yIHVybF9iYXNlLCBwYXRocyBpbiBzZWxmLnRlc3RfcGF0aHMuaXRlbXMoKToKICAgICAgICAg
ICAgIGlmIHVybF9iYXNlID09ICIvIjoKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAg
ICAgICAgcm91dGVfYnVpbGRlci5hZGRfbW91bnRfcG9pbnQodXJsX2Jhc2UsIHBhdGhzWyJ0ZXN0
c19wYXRoIl0pCkBAIC0yNDEsMTMgKzI2NCwxMyBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2Jq
ZWN0KToKICAgICAgICAgZmFpbGVkID0gW10KICAgICAgICAgcGVuZGluZyA9IFtdCiAgICAgICAg
IGhvc3QgPSBzZWxmLmNvbmZpZ1sic2VydmVyX2hvc3QiXQotICAgICAgICBmb3Igc2NoZW1lLCBz
ZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Igc2NoZW1lLCBz
ZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHBvcnQsIHNl
cnZlciBpbiBzZXJ2ZXJzOgogICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXIuaXNfYWxpdmUo
KToKICAgICAgICAgICAgICAgICAgICAgZmFpbGVkLmFwcGVuZCgoc2NoZW1lLCBwb3J0KSkKIAog
ICAgICAgICBpZiBub3QgZmFpbGVkIGFuZCBzZWxmLnRlc3Rfc2VydmVyX3BvcnQ6Ci0gICAgICAg
ICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAg
ICAgICAgICAgZm9yIHNjaGVtZSwgc2VydmVycyBpbiBzZWxmLnNlcnZlcnMuaXRlbXMoKToKICAg
ICAgICAgICAgICAgICAjIFRPRE8oSGV4Y2xlcyk6IEZpbmQgYSB3YXkgdG8gdGVzdCBRVUlDJ3Mg
VURQIHBvcnQuCiAgICAgICAgICAgICAgICAgaWYgc2NoZW1lID09ICJxdWljLXRyYW5zcG9ydCI6
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0yNTYsNyArMjc5LDcgQEAgY2xhc3Mg
VGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHMuc2V0dGltZW91
dCgwLjEpCiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAg
IHMuY29ubmVjdCgoaG9zdCwgcG9ydCkpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBzb2Nr
ZXQuZXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAg
ICAgICAgICAgICAgICAgcGVuZGluZy5hcHBlbmQoKGhvc3QsIHBvcnQpKQogICAgICAgICAgICAg
ICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgICAgICAgICAgcy5jbG9zZSgpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5CmluZGV4IGIxMWQz
MGJiOTRhYS4uOTYzZWQzMzdmZGU0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvYWN0aW9ucy5weQpAQCAtMTMsNiArMTMsMTggQEAgY2xhc3MgQ2xpY2tBY3Rpb24o
b2JqZWN0KToKICAgICAgICAgc2VsZi5wcm90b2NvbC5jbGljay5lbGVtZW50KGVsZW1lbnQpCiAK
IAorY2xhc3MgRGVsZXRlQWxsQ29va2llc0FjdGlvbihvYmplY3QpOgorICAgIG5hbWUgPSAiZGVs
ZXRlX2FsbF9jb29raWVzIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9j
b2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29s
ID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAg
c2VsZi5sb2dnZXIuZGVidWcoIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAgICAgc2VsZi5w
cm90b2NvbC5jb29raWVzLmRlbGV0ZV9hbGxfY29va2llcygpCisKKwogY2xhc3MgU2VuZEtleXNB
Y3Rpb24ob2JqZWN0KToKICAgICBuYW1lID0gInNlbmRfa2V5cyIKIApAQCAtMTcxLDYgKzE4Myw3
IEBAIGNsYXNzIFNldFVzZXJWZXJpZmllZEFjdGlvbihvYmplY3QpOgogCiAKIGFjdGlvbnMgPSBb
Q2xpY2tBY3Rpb24sCisgICAgICAgICAgIERlbGV0ZUFsbENvb2tpZXNBY3Rpb24sCiAgICAgICAg
ICAgIFNlbmRLZXlzQWN0aW9uLAogICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZUFjdGlvbiwKICAg
ICAgICAgICAgR2VuZXJhdGVUZXN0UmVwb3J0QWN0aW9uLApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jh
c2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvYmFzZS5weQppbmRleCA0YzM4OTFjMWNiNjcuLmE4OGFiODJlNzhkMyAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKQEAgLTgsMjkg
KzgsMzAgQEAgaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHNvY2tldAogaW1wb3J0IHN5cwogZnJv
bSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCi1mcm9tIHNpeCBpbXBvcnQgdGV4
dF90eXBlCi1mcm9tIHNpeC5tb3Zlcy5odHRwX2NsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24K
LWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJsc3BsaXQsIHVy
bHVuc3BsaXQKK2Zyb20gaHR0cC5jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9uCitmcm9tIHR5
cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIE9wdGlvbmFsLCBUdXBsZSwgVHlw
ZSwgVFlQRV9DSEVDS0lORworZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHNw
bGl0LCB1cmx1bnNwbGl0CiAKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCiBmcm9tIC5h
Y3Rpb25zIGltcG9ydCBhY3Rpb25zCiBmcm9tIC5wcm90b2NvbCBpbXBvcnQgUHJvdG9jb2wsIEJh
c2VQcm90b2NvbFBhcnQKIAoraWYgVFlQRV9DSEVDS0lORzoKKyAgICBmcm9tIC4ud2ViZHJpdmVy
X3NlcnZlciBpbXBvcnQgV2ViRHJpdmVyU2VydmVyCisKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pCiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKToKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50
LCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgdGltZW91dF9tdWx0aXBsaWVyID0ga3dh
cmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXQogICAgIGlmIHRpbWVvdXRfbXVsdGlwbGllciBpcyBO
b25lOgogICAgICAgICB0aW1lb3V0X211bHRpcGxpZXIgPSAxCiAKLSAgICBleGVjdXRvcl9rd2Fy
Z3MgPSB7InNlcnZlcl9jb25maWciOiBzZXJ2ZXJfY29uZmlnLAorICAgIGV4ZWN1dG9yX2t3YXJn
cyA9IHsic2VydmVyX2NvbmZpZyI6IHRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAogICAgICAgICAg
ICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogdGltZW91dF9tdWx0aXBsaWVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdfaW5mbyJd
fQogCiAgICAgaWYgdGVzdF90eXBlIGluICgicmVmdGVzdCIsICJwcmludC1yZWZ0ZXN0Iik6Ci0g
ICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sic2NyZWVuc2hvdF9jYWNoZSJdID0gY2FjaGVfbWFuYWdl
ci5kaWN0KCkKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzY3JlZW5zaG90X2NhY2hlIl0gPSB0
ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIuZGljdCgpCiAKICAgICBpZiB0ZXN0X3R5cGUg
PT0gIndkc3BlYyI6CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siYmluYXJ5Il0gPSBrd2FyZ3Mu
Z2V0KCJiaW5hcnkiKQpAQCAtNDIsNyArNDMsNyBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAj
IHdhbnQgdG8gdmlldyB0aGUgcmVzdWx0cywgaG93ZXZlciwgdGhlIGV4ZWN1dG9yIGhhcyB0byBz
a2lwIHRoYXQgY2xlYW51cC4KICAgICBpZiBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSBvciBr
d2FyZ3NbInBhdXNlX29uX3VuZXhwZWN0ZWQiXToKICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJj
bGVhbnVwX2FmdGVyX3Rlc3QiXSA9IEZhbHNlCi0KKyAgICBleGVjdXRvcl9rd2FyZ3NbImRlYnVn
X3Rlc3QiXSA9IGt3YXJnc1siZGVidWdfdGVzdCJdCiAgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJn
cwogCiAKQEAgLTE4MCwxMSArMTgxLDExIEBAIGNsYXNzIFRpbWVkUnVubmVyKG9iamVjdCk6CiAg
ICAgICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQogCiAgICAgZGVmIHJ1
bihzZWxmKToKLSAgICAgICAgaWYgc2VsZi5zZXRfdGltZW91dCgpIGlzIFN0b3A6Ci0gICAgICAg
ICAgICByZXR1cm4gU3RvcAotCi0gICAgICAgIGlmIHNlbGYuYmVmb3JlX3J1bigpIGlzIFN0b3A6
Ci0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICBmb3Igc2V0dXBfZm4gaW4gW3NlbGYu
c2V0X3RpbWVvdXQsIHNlbGYuYmVmb3JlX3J1bl06CisgICAgICAgICAgICBlcnIgPSBzZXR1cF9m
bigpCisgICAgICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSAo
RmFsc2UsIGVycikKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKIAogICAgICAg
ICBleGVjdXRvciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYucnVuX2Z1bmMpCiAgICAg
ICAgIGV4ZWN1dG9yLnN0YXJ0KCkKQEAgLTI0Myw4ICsyNDQsMTQgQEAgY2xhc3MgVGVzdEV4ZWN1
dG9yKG9iamVjdCk6CiAgICAgIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKIAotICAg
IHRlc3RfdHlwZSA9IE5vbmUKLSAgICBjb252ZXJ0X3Jlc3VsdCA9IE5vbmUKKyAgICB0ZXN0X3R5
cGUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW3N0cl0KKyAgICAjIGNvbnZlcnRfcmVzdWx0IGlz
IGEgY2xhc3MgdmFyaWFibGUgc2V0IHRvIGEgY2FsbGFibGUgY29udmVydGVyCisgICAgIyAoZS5n
LiByZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIpIGNvbnZlcnRpbmcgZnJvbSBhbiBpbnN0YW5jZSBv
ZgorICAgICMgVVJMTWFuaWZlc3RJdGVtIChlLmcuIFJlZlRlc3QpICsgdHlwZS1kZXBlbmRlbnQg
cmVzdWx0cyBvYmplY3QgKworICAgICMgdHlwZS1kZXBlbmRlbnQgZXh0cmEgZGF0YSwgcmV0dXJu
aW5nIGEgdHVwbGUgb2YgUmVzdWx0IGFuZCBsaXN0IG9mCisgICAgIyBTdWJ0ZXN0UmVzdWx0LiBG
b3Igbm93LCBhbnkgY2FsbGFibGUgaXMgYWNjZXB0ZWQuIFRPRE86IE1ha2UgdGhpcyB0eXBlCisg
ICAgIyBzdHJpY3RlciB3aGVuIG1vcmUgb2YgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaXMgYW5ub3Rh
dGVkLgorICAgIGNvbnZlcnRfcmVzdWx0ID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltDYWxsYWJs
ZVsuLi4sIEFueV1dCiAgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IEZhbHNlCiAgICAgc3VwcG9y
dHNfanNzaGVsbCA9IEZhbHNlCiAgICAgIyBFeHRyYSB0aW1lb3V0IHRvIHVzZSBhZnRlciBpbnRl
cm5hbCB0ZXN0IHRpbWVvdXQgYXQgd2hpY2ggdGhlIGhhcm5lc3MKQEAgLTI4NywxOCArMjk0LDE1
IEBAIGNsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgogICAgICAgICAiIiJSdW4gYSBwYXJ0aWN1
bGFyIHRlc3QuCiAKICAgICAgICAgOnBhcmFtIHRlc3Q6IFRoZSB0ZXN0IHRvIHJ1biIiIgotICAg
ICAgICBpZiB0ZXN0LmVudmlyb25tZW50ICE9IHNlbGYubGFzdF9lbnZpcm9ubWVudDoKLSAgICAg
ICAgICAgIHNlbGYub25fZW52aXJvbm1lbnRfY2hhbmdlKHRlc3QuZW52aXJvbm1lbnQpCiAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGlmIHRlc3QuZW52aXJvbm1lbnQgIT0gc2VsZi5sYXN0X2Vu
dmlyb25tZW50OgorICAgICAgICAgICAgICAgIHNlbGYub25fZW52aXJvbm1lbnRfY2hhbmdlKHRl
c3QuZW52aXJvbm1lbnQpCiAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmRvX3Rlc3QodGVzdCkK
ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgZXhjZXB0aW9uX3N0
cmluZyA9IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndh
cm5pbmcoZXhjZXB0aW9uX3N0cmluZykKICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucmVzdWx0
X2Zyb21fZXhjZXB0aW9uKHRlc3QsIGUsIGV4Y2VwdGlvbl9zdHJpbmcpCiAKLSAgICAgICAgaWYg
cmVzdWx0IGlzIFN0b3A6Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KICAgICAgICAgIyBs
b2cgcmVzdWx0IG9mIHBhcmVudCB0ZXN0CiAgICAgICAgIGlmIHJlc3VsdFswXS5zdGF0dXMgPT0g
IkVSUk9SIjoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKHJlc3VsdFswXS5tZXNzYWdl
KQpAQCAtMzA3LDE0ICszMTEsMTggQEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9iamVjdCk6CiAKICAg
ICAgICAgc2VsZi5ydW5uZXIuc2VuZF9tZXNzYWdlKCJ0ZXN0X2VuZGVkIiwgdGVzdCwgcmVzdWx0
KQogCi0gICAgZGVmIHNlcnZlcl91cmwoc2VsZiwgcHJvdG9jb2wpOgorICAgIGRlZiBzZXJ2ZXJf
dXJsKHNlbGYsIHByb3RvY29sLCBzdWJkb21haW49RmFsc2UpOgogICAgICAgICBzY2hlbWUgPSAi
aHR0cHMiIGlmIHByb3RvY29sID09ICJoMiIgZWxzZSBwcm90b2NvbAotICAgICAgICByZXR1cm4g
IiVzOi8vJXM6JXMiICUgKHNjaGVtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1bMF0pCisgICAg
ICAgIGhvc3QgPSBzZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdCisgICAgICAgIGlm
IHN1YmRvbWFpbjoKKyAgICAgICAgICAgICMgVGhlIG9ubHkgc3VwcG9ydGVkIHN1YmRvbWFpbiBm
aWxlbmFtZSBmbGFnIGlzICJ3d3ciLgorICAgICAgICAgICAgaG9zdCA9ICJ7c3ViZG9tYWlufS57
aG9zdH0iLmZvcm1hdChzdWJkb21haW49Ind3dyIsIGhvc3Q9aG9zdCkKKyAgICAgICAgcmV0dXJu
ICJ7c2NoZW1lfTovL3tob3N0fTp7cG9ydH0iLmZvcm1hdChzY2hlbWU9c2NoZW1lLCBob3N0PWhv
c3QsCisgICAgICAgICAgICBwb3J0PXNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2Nv
bF1bMF0pCiAKICAgICBkZWYgdGVzdF91cmwoc2VsZiwgdGVzdCk6Ci0gICAgICAgIHJldHVybiB1
cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJdKSwgdGVz
dC51cmwpCisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmly
b25tZW50WyJwcm90b2NvbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdC5zdWJkb21haW4pLCB0ZXN0LnVybCkKIAogICAgIEBhYnN0cmFjdG1ldGhvZAogICAg
IGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgpAQCAtMzMyLDcgKzM0MCw3IEBAIGNsYXNzIFRlc3RF
eGVjdXRvcihvYmplY3QpOgogICAgICAgICAgICAgc3RhdHVzID0gZS5zdGF0dXMKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIHN0YXR1cyA9ICJJTlRFUk5BTC1FUlJPUiIKLSAgICAgICAgbWVz
c2FnZSA9IHRleHRfdHlwZShnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQorICAgICAgICBtZXNz
YWdlID0gc3RyKGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikpCiAgICAgICAgIGlmIG1lc3NhZ2U6
CiAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKICAgICAgICAgbWVzc2FnZSArPSBleGNlcHRp
b25fc3RyaW5nCkBAIC00MjMsNyArNDMxLDcgQEAgY2xhc3MgUmVmVGVzdEltcGxlbWVudGF0aW9u
KG9iamVjdCk6CiAKICAgICAgICAgaWYgbGVuKGxoc19oYXNoZXMpICE9IGxlbihyaHNfaGFzaGVz
KToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkdvdCBkaWZmZXJlbnQgbnVtYmVyIG9m
IHBhZ2VzIikKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmV0dXJuIHJl
bGF0aW9uID09ICIhPSIsIE5vbmUKIAogICAgICAgICBhc3NlcnQgbGVuKGxoc19zY3JlZW5zaG90
cykgPT0gbGVuKGxoc19oYXNoZXMpID09IGxlbihyaHNfc2NyZWVuc2hvdHMpID09IGxlbihyaHNf
aGFzaGVzKQogCkBAIC01OTAsMTEgKzU5OCwxMSBAQCBjbGFzcyBSZWZUZXN0SW1wbGVtZW50YXRp
b24ob2JqZWN0KToKIAogY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICBj
b252ZXJ0X3Jlc3VsdCA9IHB5dGVzdF9yZXN1bHRfY29udmVydGVyCi0gICAgcHJvdG9jb2xfY2xz
ID0gTm9uZQorICAgIHByb3RvY29sX2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbVHlwZVtQ
cm90b2NvbF1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2
ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAogICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJf
YXJncywgdGltZW91dF9tdWx0aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAotICAgICAgICAg
ICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgZGVi
dWdfaW5mbz1Ob25lLCBlbnZpcm9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5kb19k
ZWxheWVkX2ltcG9ydHMoKQogICAgICAgICBUZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKQEAgLTYwMyw3ICs2MTEs
MTMgQEAgY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi53
ZWJkcml2ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzCiAgICAgICAgIHNlbGYudGltZW91dF9tdWx0
aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0g
Y2FwYWJpbGl0aWVzCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBzZWxmLnByb3RvY29sX2Nscyhz
ZWxmLCBicm93c2VyKQorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uIGlmIGVudmlyb24g
aXMgbm90IE5vbmUgZWxzZSB7fQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX2t3YXJncyA9
IE5vbmUKKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSBOb25lCisK
KyAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHNl
bGYucHJvdG9jb2xfY2xzKHNlbGYsIHNlbGYuYnJvd3NlcikKKyAgICAgICAgc3VwZXIoKS5zZXR1
cChydW5uZXIpCiAKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxm
LnByb3RvY29sLmlzX2FsaXZlKCkKQEAgLTcwNiw3ICs3MjAsNyBAQCBjbGFzcyBDb25uZWN0aW9u
bGVzc1Byb3RvY29sKFByb3RvY29sKToKIAogCiBjbGFzcyBXZHNwZWNQcm90b2NvbChQcm90b2Nv
bCk6Ci0gICAgc2VydmVyX2NscyA9IE5vbmUKKyAgICBzZXJ2ZXJfY2xzID0gTm9uZSAgIyB0eXBl
OiBDbGFzc1ZhcltPcHRpb25hbFtUeXBlW1dlYkRyaXZlclNlcnZlcl1dXQogCiAgICAgaW1wbGVt
ZW50cyA9IFtDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2NvbFBhcnRdCiAKQEAgLTcxNywxNCArNzMx
LDIxIEBAIGNsYXNzIFdkc3BlY1Byb3RvY29sKFByb3RvY29sKToKICAgICAgICAgc2VsZi5jYXBh
YmlsaXRpZXMgPSBzZWxmLmV4ZWN1dG9yLmNhcGFiaWxpdGllcwogICAgICAgICBzZWxmLnNlc3Np
b25fY29uZmlnID0gTm9uZQogICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5lbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgc2VsZi5lbnZpcm9uLnVwZGF0
ZShleGVjdXRvci5lbnZpcm9uKQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX2t3YXJncyA9
IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX2t3YXJncworICAgICAgICBzZWxmLm91dHB1dF9oYW5k
bGVyX3N0YXJ0X2t3YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncwog
CiAgICAgZGVmIGNvbm5lY3Qoc2VsZik6CiAgICAgICAgICIiIkNvbm5lY3QgdG8gYnJvd3NlciB2
aWEgdGhlIEhUVFAgc2VydmVyLiIiIgogICAgICAgICBzZWxmLnNlcnZlciA9IHNlbGYuc2VydmVy
X2NscygKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgYmluYXJ5PXNlbGYu
d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgIGFyZ3M9c2VsZi53ZWJkcml2ZXJfYXJncykK
LSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisgICAgICAgICAgICBhcmdz
PXNlbGYud2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAgICBlbnY9c2VsZi5lbnZpcm9uKQorICAg
ICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzPXNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3M9c2Vs
Zi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpCiAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
CiAgICAgICAgICAgICAiV2ViRHJpdmVyIEhUVFAgc2VydmVyIGxpc3RlbmluZyBhdCAlcyIgJSBz
ZWxmLnNlcnZlci51cmwpCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9jb25maWcgPSB7Imhvc3QiOiBz
ZWxmLnNlcnZlci5ob3N0LApAQCAtNzYyLDcgKzc4Myw3IEBAIGNsYXNzIENhbGxiYWNrSGFuZGxl
cihvYmplY3QpOgogICAgIFdlYkRyaXZlci4gVGhpbmdzIHRoYXQgYXJlIG1vcmUgZGlmZmVyZW50
IHRvIFdlYkRyaXZlciBtYXkgbmVlZCB0byBjcmVhdGUgYQogICAgIGZ1bGx5IGN1c3RvbSBpbXBs
ZW1lbnRhdGlvbi4iIiIKIAotICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxlbWVudGVk
RXJyb3IsKQorICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxlbWVudGVkRXJyb3IsKSAg
IyB0eXBlOiBDbGFzc1ZhcltUdXBsZVtUeXBlW0V4Y2VwdGlvbl0sIC4uLl1dCiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cpOgogICAgICAgICBz
ZWxmLnByb3RvY29sID0gcHJvdG9jb2wKQEAgLTgzMSw3ICs4NTIsNyBAQCBjbGFzcyBBY3Rpb25D
b250ZXh0KG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5pbml0aWFsX3dpbmRvdyA9IHNlbGYucHJv
dG9jb2wuYmFzZS5jdXJyZW50X3dpbmRvdwogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3dp
dGNoaW5nIHRvIHdpbmRvdyAlcyIgJSBzZWxmLmNvbnRleHQpCi0gICAgICAgIHNlbGYucHJvdG9j
b2wudGVzdGRyaXZlci5zd2l0Y2hfdG9fd2luZG93KHNlbGYuY29udGV4dCkKKyAgICAgICAgc2Vs
Zi5wcm90b2NvbC50ZXN0ZHJpdmVyLnN3aXRjaF90b193aW5kb3coc2VsZi5jb250ZXh0LCBzZWxm
LmluaXRpYWxfd2luZG93KQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKICAgICAg
ICAgaWYgc2VsZi5jb250ZXh0IGlzIE5vbmU6CkBAIC04MzksNSArODYwLDQgQEAgY2xhc3MgQWN0
aW9uQ29udGV4dChvYmplY3QpOgogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTd2l0Y2hp
bmcgYmFjayB0byBpbml0aWFsIHdpbmRvdyIpCiAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5z
ZXRfd2luZG93KHNlbGYuaW5pdGlhbF93aW5kb3cpCi0gICAgICAgIHNlbGYucHJvdG9jb2wudGVz
dGRyaXZlci5fc3dpdGNoX3RvX2ZyYW1lKE5vbmUpCiAgICAgICAgIHNlbGYuaW5pdGlhbF93aW5k
b3cgPSBOb25lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JjaHJvbWUucHkKaW5kZXggM2E3MDQ3NTQxMzdmLi40MzFkMzk4ZWJkMjcgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJv
bWUucHkKQEAgLTEsNyArMSw3IEBACiBpbXBvcnQgb3MKIGltcG9ydCB0cmFjZWJhY2sKIAotZnJv
bSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCitmcm9tIHVybGxpYi5wYXJz
ZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNQcm90b2NvbCwgV2Rz
cGVjRXhlY3V0b3IsIGdldF9wYWdlcwogZnJvbSAuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IFdl
YkRyaXZlclByb3RvY29sLCBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsIFdlYkRyaXZlclJ1bgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9yZWRnZWNocm9taXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uZWJiYTA2YTllMWFiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNo
cm9taXVtLnB5CkBAIC0wLDAgKzEsMTAgQEAKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9y
dCBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1
dG9yLCBXZHNwZWNQcm90b2NvbAorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29s
KFdkc3BlY1Byb3RvY29sKToKKyAgICBzZXJ2ZXJfY2xzID0gRWRnZUNocm9taXVtRHJpdmVyU2Vy
dmVyCisKKworY2xhc3MgRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhl
Y3V0b3IpOgorICAgIHByb3RvY29sX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29sCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
bWFyaW9uZXR0ZS5weQppbmRleCA3ZTJjYzhlMzhhNDQuLjI1YTMzNjBiN2Q4MCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJp
b25ldHRlLnB5CkBAIC01LDggKzUsNyBAQCBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawog
aW1wb3J0IHV1aWQKIAotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgaXRlcmtleXMKLWZyb20g
c2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSB1cmxsaWIucGFyc2Ug
aW1wb3J0IHVybGpvaW4KIAogZXJyb3JzID0gTm9uZQogbWFyaW9uZXR0ZSA9IE5vbmUKQEAgLTMz
LDI3ICszMiwyMiBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEFjdGlvblNlcXVlbmNlUHJvdG9j
b2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTdG9yYWdlUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBTZWxlY3RvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIENvb2tp
ZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRLZXlzUHJvdG9jb2xQ
YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBDb3ZlcmFnZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgR2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgU2V0UGVybWlzc2lvblByb3RvY29sUGFydCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgUHJpbnRQcm90b2NvbFBhcnQpCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAotZnJv
bSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEdlY2tvRHJpdmVyU2VydmVyCisgICAgICAgICAg
ICAgICAgICAgICAgIFByaW50UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBE
ZWJ1Z1Byb3RvY29sUGFydCkKIAogCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6Ci0gICAgZ2xv
YmFsIGVycm9ycywgbWFyaW9uZXR0ZQorICAgIGdsb2JhbCBlcnJvcnMsIG1hcmlvbmV0dGUsIEFk
ZG9ucwogCi0gICAgIyBNYXJpb25ldHRlIGNsaWVudCB1c2VkIHRvIGJlIGNhbGxlZCBtYXJpb25l
dHRlLCByZWNlbnRseSBpdCBjaGFuZ2VkCi0gICAgIyB0byBtYXJpb25ldHRlX2RyaXZlciBmb3Ig
dW5mYXRob21hYmxlIHJlYXNvbnMKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBtYXJpb25ldHRl
Ci0gICAgICAgIGZyb20gbWFyaW9uZXR0ZSBpbXBvcnQgZXJyb3JzCi0gICAgZXhjZXB0IEltcG9y
dEVycm9yOgotICAgICAgICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyIGltcG9ydCBtYXJpb25ldHRl
LCBlcnJvcnMKKyAgICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyIGltcG9ydCBtYXJpb25ldHRlLCBl
cnJvcnMKKyAgICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyLmFkZG9ucyBpbXBvcnQgQWRkb25zCiAK
IAogZGVmIF9zd2l0Y2hfdG9fd2luZG93KG1hcmlvbmV0dGUsIGhhbmRsZSk6CkBAIC0xMzMsNyAr
MTI3LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFy
dCk6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5KYXZh
c2NyaXB0RXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBoYXBwZW4g
aWYgd2UgbmF2aWdhdGUsIGJ1dCBqdXN0IGtlZXAgZ29pbmcKLSAgICAgICAgICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZyhlLm1lc3NhZ2UpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVi
dWcoZSkKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoK
ICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU29ja2V0IGNsb3NlZCIpCkBAIC00
NDEsNiArNDM1LDE1IEBAIGNsYXNzIE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFydChDbGlja1By
b3RvY29sUGFydCk6CiAgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKIAogCitjbGFzcyBN
YXJpb25ldHRlQ29va2llc1Byb3RvY29sUGFydChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBk
ZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1h
cmlvbmV0dGUKKworICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMoc2VsZik6CisgICAgICAgIHNl
bGYubG9nZ2VyLmluZm8oIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAgICAgcmV0dXJuIHNl
bGYubWFyaW9uZXR0ZS5kZWxldGVfYWxsX2Nvb2tpZXMoKQorCisKIGNsYXNzIE1hcmlvbmV0dGVT
ZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVw
KHNlbGYpOgogICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRl
CkBAIC00NzMsOCArNDc2LDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQ
YXJ0KFRlc3REcml2ZXJQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgb2JqWyJtZXNzYWdlIl0g
PSBzdHIobWVzc2FnZSkKICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgi
d2luZG93LnBvc3RNZXNzYWdlKCVzLCAnKicpIiAlIGpzb24uZHVtcHMob2JqKSkKIAotICAgIGRl
ZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGZyYW1lX251bWJlcik6Ci0gICAgICAgIHNlbGYubWFy
aW9uZXR0ZS5zd2l0Y2hfdG9fZnJhbWUoZnJhbWVfbnVtYmVyKQorICAgIGRlZiBfc3dpdGNoX3Rv
X2ZyYW1lKHNlbGYsIGluZGV4X29yX2VsZW0pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBz
ZWxmLm1hcmlvbmV0dGUuc3dpdGNoX3RvX2ZyYW1lKGluZGV4X29yX2VsZW0pCisgICAgICAgIGV4
Y2VwdCAoZXJyb3JzLk5vU3VjaEZyYW1lRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgIGVycm9y
cy5TdGFsZUVsZW1lbnRFeGNlcHRpb24pIGFzIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yIGZyb20gZQogCiAgICAgZGVmIF9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlbGYpOgogICAg
ICAgICBzZWxmLm1hcmlvbmV0dGUuc3dpdGNoX3RvX3BhcmVudF9mcmFtZSgpCkBAIC00ODksNyAr
NDk2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0KENvdmVyYWdlUHJv
dG9jb2xQYXJ0KToKICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIHNjcmlwdCA9ICIiIgot
ICAgICAgICAgICAgY29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0aWxzLmlt
cG9ydCgiY2hyb21lOi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0aWxzLmpz
bSIpOworICAgICAgICAgICAgY29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0
aWxzLmltcG9ydCgiY2hyb21lOi8vcmVtb3RlL2NvbnRlbnQvbWFyaW9uZXR0ZS9QZXJUZXN0Q292
ZXJhZ2VVdGlscy5qc20iKTsKICAgICAgICAgICAgIHJldHVybiBQZXJUZXN0Q292ZXJhZ2VVdGls
cy5lbmFibGVkOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRl
LnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTQ5OSw3
ICs1MDYsNyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJhZ2VQ
cm90b2NvbFBhcnQpOgogICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAgIHZhciBjYWxs
YmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAgICAgICAgIGNv
bnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTov
L21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20iKTsKKyAgICAgICAg
ICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNo
cm9tZTovL3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNt
Iik7CiAgICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5iZWZvcmVUZXN0KCkudGhlbihj
YWxsYmFjaywgY2FsbGJhY2spOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5t
YXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToK
QEAgLTUxOSw3ICs1MjYsNyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQo
Q292ZXJhZ2VQcm90b2NvbFBhcnQpOgogICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAg
IHZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAg
ICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQo
ImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20iKTsK
KyAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5p
bXBvcnQoImNocm9tZTovL3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUvUGVyVGVzdENvdmVyYWdl
VXRpbHMuanNtIik7CiAgICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5hZnRlclRlc3Qo
KS50aGVuKGNhbGxiYWNrLCBjYWxsYmFjayk7CiAgICAgICAgICAgICAiIiIKICAgICAgICAgd2l0
aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVYVF9D
SFJPTUUpOgpAQCAtNTYzLDEyICs1NzAsMjIgQEAgY2xhc3MgTWFyaW9uZXR0ZVZpcnR1YWxBdXRo
ZW50aWNhdG9yUHJvdG9jb2xQYXJ0KFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXIKICAg
ICBkZWYgc2V0X3VzZXJfdmVyaWZpZWQoc2VsZiwgYXV0aGVudGljYXRvcl9pZCwgdXYpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzZXRfdXNlcl92ZXJpZmllZCBub3QgeWV0
IGltcGxlbWVudGVkIikKIAorCiBjbGFzcyBNYXJpb25ldHRlU2V0UGVybWlzc2lvblByb3RvY29s
UGFydChTZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0dXAoc2VsZik6CiAg
ICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKIAotICAgIGRl
ZiBzZXRfcGVybWlzc2lvbihzZWxmLCBuYW1lLCBzdGF0ZSwgb25lX3JlYWxtKToKLSAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic2V0X3Blcm1pc3Npb24gbm90IHlldCBpbXBsZW1l
bnRlZCIpCisgICAgZGVmIHNldF9wZXJtaXNzaW9uKHNlbGYsIGRlc2NyaXB0b3IsIHN0YXRlLCBv
bmVfcmVhbG0pOgorICAgICAgICBib2R5ID0geworICAgICAgICAgICAgImRlc2NyaXB0b3IiOiBk
ZXNjcmlwdG9yLAorICAgICAgICAgICAgInN0YXRlIjogc3RhdGUsCisgICAgICAgIH0KKyAgICAg
ICAgaWYgb25lX3JlYWxtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYm9keVsib25lUmVhbG0i
XSA9IG9uZV9yZWFsbQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUu
X3NlbmRfbWVzc2FnZSgiV2ViRHJpdmVyOlNldFBlcm1pc3Npb24iLCBib2R5KQorICAgICAgICBl
eGNlcHQgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uOgorICAgICAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic2V0X3Blcm1pc3Npb24gbm90IHlldCBpbXBsZW1l
bnRlZCIpCiAKIAogY2xhc3MgTWFyaW9uZXR0ZVByaW50UHJvdG9jb2xQYXJ0KFByaW50UHJvdG9j
b2xQYXJ0KToKQEAgLTYyMSw2ICs2MzgsMzAgQEAgcmVuZGVyKCclcycpLnRoZW4ocmVzdWx0ID0+
IGNhbGxiYWNrKHJlc3VsdCkpIiIiICUgcGRmX2Jhc2U2NCwgbmV3X3NhbmRib3g9RmFsc2UKICAg
ICAgICAgZmluYWxseToKICAgICAgICAgICAgIF9zd2l0Y2hfdG9fd2luZG93KHNlbGYubWFyaW9u
ZXR0ZSwgaGFuZGxlKQogCisKK2NsYXNzIE1hcmlvbmV0dGVEZWJ1Z1Byb3RvY29sUGFydChEZWJ1
Z1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlv
bmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhz
ZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1h
cmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpOgorICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5l
eGVjdXRlX3NjcmlwdCgiIiIKK2NvbnN0IHsgcmVxdWlyZSB9ID0gQ2hyb21lVXRpbHMuaW1wb3J0
KCJyZXNvdXJjZTovL2RldnRvb2xzL3NoYXJlZC9Mb2FkZXIuanNtIik7Citjb25zdCB7IFRhcmdl
dEZhY3RvcnkgfSA9IHJlcXVpcmUoImRldnRvb2xzL2NsaWVudC9mcmFtZXdvcmsvdGFyZ2V0Iik7
Citjb25zdCB7IGdEZXZUb29scyB9ID0gcmVxdWlyZSgiZGV2dG9vbHMvY2xpZW50L2ZyYW1ld29y
ay9kZXZ0b29scyIpOworCitjb25zdCBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVu
Z3RoIC0gMV07CisKK2FzeW5jIGZ1bmN0aW9uIGxvYWREZXZUb29scygpIHsKKyAgICBjb25zdCB0
YXJnZXQgPSBhd2FpdCBUYXJnZXRGYWN0b3J5LmZvclRhYih3aW5kb3cuZ0Jyb3dzZXIuc2VsZWN0
ZWRUYWIpOworICAgIGF3YWl0IGdEZXZUb29scy5zaG93VG9vbGJveCh0YXJnZXQsICJ3ZWJjb25z
b2xlIiwgIndpbmRvdyIpOworfQorCitsb2FkRGV2VG9vbHMoKS5jYXRjaCgoKSA9PiBkdW1wKCJE
ZXZ0b29scyBmYWlsZWQgdG8gbG9hZCIpKQorICAgICAgICAgICAgICAudGhlbihjYWxsYmFjayk7
CisiIiIsIGFzeW5jaHJvbm91cz1UcnVlKQorCisKIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQ
cm90b2NvbCk6CiAgICAgaW1wbGVtZW50cyA9IFtNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKQEAg
LTYyOCw2ICs2NjksNyBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAg
ICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVN0b3JhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAg
ICAgICAgICBNYXJpb25ldHRlU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25l
dHRlQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTZW5k
S2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVBY3Rpb25TZXF1
ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVUZXN0RHJpdmVy
UHJvdG9jb2xQYXJ0LApAQCAtNjM2LDcgKzY3OCw4IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2Nv
bChQcm90b2NvbCk6CiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlR2VuZXJhdGVUZXN0UmVw
b3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVZpcnR1YWxBdXRo
ZW50aWNhdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNldFBl
cm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQ
cm90b2NvbFBhcnRdCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2NvbFBh
cnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlRGVidWdQcm90b2NvbFBhcnRdCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcz1Ob25l
LCB0aW1lb3V0X211bHRpcGxpZXI9MSwgZTEwcz1UcnVlLCBjY292PUZhbHNlKToKICAgICAgICAg
ZG9fZGVsYXllZF9pbXBvcnRzKCkKQEAgLTY4MCwxMSArNzIzLDEyIEBAIGNsYXNzIE1hcmlvbmV0
dGVQcm90b2NvbChQcm90b2NvbCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAg
c2VsZi5tYXJpb25ldHRlLl9yZXF1ZXN0X2luX2FwcF9zaHV0ZG93bigpCiAgICAgICAgICAgICAg
ICAgc2VsZi5tYXJpb25ldHRlLmRlbGV0ZV9zZXNzaW9uKHNlbmRfcmVxdWVzdD1GYWxzZSkKKyAg
ICAgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuY2xlYW51cCgpCiAgICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgICMgVGhpcyBpcyB0eXBpY2FsbHkgYmVjYXVz
ZSB0aGUgc2Vzc2lvbiBuZXZlciBzdGFydGVkCiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAg
ICBpZiBzZWxmLm1hcmlvbmV0dGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkZWwgc2VsZi5t
YXJpb25ldHRlCisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBOb25lCiAgICAgICAgIHN1
cGVyKE1hcmlvbmV0dGVQcm90b2NvbCwgc2VsZikudGVhcmRvd24oKQogCiAgICAgZGVmIGlzX2Fs
aXZlKHNlbGYpOgpAQCAtNjk2LDIwICs3NDAsMTkgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29s
KFByb3RvY29sKToKIAogICAgIGRlZiBvbl9lbnZpcm9ubWVudF9jaGFuZ2Uoc2VsZiwgb2xkX2Vu
dmlyb25tZW50LCBuZXdfZW52aXJvbm1lbnQpOgogICAgICAgICAjVW5zZXQgYWxsIHRoZSBvbGQg
cHJlZnMKLSAgICAgICAgZm9yIG5hbWUgaW4gaXRlcmtleXMob2xkX2Vudmlyb25tZW50LmdldCgi
cHJlZnMiLCB7fSkpOgorICAgICAgICBmb3IgbmFtZSBpbiBvbGRfZW52aXJvbm1lbnQuZ2V0KCJw
cmVmcyIsIHt9KS5rZXlzKCk6CiAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuZXhlY3V0b3Iub3Jp
Z2luYWxfcHJlZl92YWx1ZXNbbmFtZV0KICAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAg
ICAgICAgICAgICAgICAgc2VsZi5wcmVmcy5jbGVhcihuYW1lKQogICAgICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgICAgICBzZWxmLnByZWZzLnNldChuYW1lLCB2YWx1ZSkKIAotICAgICAgICBm
b3IgbmFtZSwgdmFsdWUgaW4gaXRlcml0ZW1zKG5ld19lbnZpcm9ubWVudC5nZXQoInByZWZzIiwg
e30pKToKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIG5ld19lbnZpcm9ubWVudC5nZXQoInBy
ZWZzIiwge30pLml0ZW1zKCk6CiAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yLm9yaWdpbmFsX3By
ZWZfdmFsdWVzW25hbWVdID0gc2VsZi5wcmVmcy5nZXQobmFtZSkKICAgICAgICAgICAgIHNlbGYu
cHJlZnMuc2V0KG5hbWUsIHZhbHVlKQogCiAKIGNsYXNzIEV4ZWN1dGVBc3luY1NjcmlwdFJ1bihU
aW1lZFJ1bm5lcik6Ci0KICAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CiAgICAgICAgIHRpbWVv
dXQgPSBzZWxmLnRpbWVvdXQKIApAQCAtNzIyLDggKzc2NSw5IEBAIGNsYXNzIEV4ZWN1dGVBc3lu
Y1NjcmlwdFJ1bihUaW1lZFJ1bm5lcik6CiAgICAgICAgICAgICAgICAgIyB0aW1lb3V0IGlzIHNl
dCB0b28gaGlnaC4gVGhpcyB3b3JrcyBhdCBsZWFzdC4KICAgICAgICAgICAgICAgICBzZWxmLnBy
b3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQoMioqMjggLSAxKQogICAgICAgICBleGNlcHQgSU9FcnJv
cjoKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IG1hcmlvbmV0dGUgY29ubmVj
dGlvbiBiZWZvcmUgc3RhcnRpbmcgdGVzdCIpCi0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAg
ICAgICAgICAgbXNnID0gIkxvc3QgbWFyaW9uZXR0ZSBjb25uZWN0aW9uIGJlZm9yZSBzdGFydGlu
ZyB0ZXN0IgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAg
cmV0dXJuICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICBkZWYgYmVmb3JlX3J1bihzZWxm
KToKICAgICAgICAgaW5kZXggPSBzZWxmLnVybC5yZmluZCgiL3N0b3JhZ2UvIikKQEAgLTc0Nyw3
ICs3OTEsNyBAQCBjbGFzcyBFeGVjdXRlQXN5bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgogICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiTm9TdWNoV2luZG93RXhjZXB0aW9uIG9uIGNvbW1h
bmQsIHNldHRpbmcgc3RhdHVzIHRvIENSQVNIIikKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0g
RmFsc2UsICgiQ1JBU0giLCBOb25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0g
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKGUsIGVycm9ycy5KYXZhc2NyaXB0RXhjZXB0aW9uKSBh
bmQgZS5tZXNzYWdlLnN0YXJ0c3dpdGgoIkRvY3VtZW50IHdhcyB1bmxvYWRlZCIpOgorICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShlLCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbikgYW5kIHN0
cihlKS5zdGFydHN3aXRoKCJEb2N1bWVudCB3YXMgdW5sb2FkZWQiKToKICAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gIkRvY3VtZW50IHVubG9hZGVkOyBtYXliZSB0ZXN0IG5hdmlnYXRlZCB0aGUg
dG9wLWxldmVsLWJyb3dzaW5nIGNvbnRleHQ/IgogICAgICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgICAgICBtZXNzYWdlID0gZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKQpAQCAtNzY1LDcgKzgw
OSw3IEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhl
Y3V0b3IpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVy
X2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCiAgICAgICAgICAgICAgICAgIGNsb3NlX2Fm
dGVyX2RvbmU9VHJ1ZSwgZGVidWdfaW5mbz1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgZGVidWc9RmFsc2UsIGNjb3Y9RmFsc2UsICoqa3dhcmdzKToKKyAgICAgICAg
ICAgICAgICAgZGVidWc9RmFsc2UsIGNjb3Y9RmFsc2UsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dh
cmdzKToKICAgICAgICAgIiIiTWFyaW9uZXR0ZS1iYXNlZCBleGVjdXRvciBmb3IgdGVzdGhhcm5l
c3MuanMgdGVzdHMiIiIKICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKQEAg
LTc4MSw2ICs4MjUsOSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0
aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgc2VsZi5jbG9zZV9hZnRlcl9kb25lID0gY2xvc2Vf
YWZ0ZXJfZG9uZQogICAgICAgICBzZWxmLndpbmRvd19pZCA9IHN0cih1dWlkLnV1aWQ0KCkpCiAg
ICAgICAgIHNlbGYuZGVidWcgPSBkZWJ1ZworICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1
Z190ZXN0CisKKyAgICAgICAgc2VsZi5pbnN0YWxsX2V4dGVuc2lvbnMgPSBicm93c2VyLmV4dGVu
c2lvbnMKIAogICAgICAgICBzZWxmLm9yaWdpbmFsX3ByZWZfdmFsdWVzID0ge30KIApAQCAtNzg5
LDYgKzgzNiwxMSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFy
bmVzc0V4ZWN1dG9yKToKIAogICAgIGRlZiBzZXR1cChzZWxmLCBydW5uZXIpOgogICAgICAgICBz
dXBlcihNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciwgc2VsZikuc2V0dXAocnVubmVyKQor
ICAgICAgICBmb3IgZXh0ZW5zaW9uX3BhdGggaW4gc2VsZi5pbnN0YWxsX2V4dGVuc2lvbnM6Cisg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJJbnN0YWxsaW5nIGV4dGVuc2lvbiBmcm9tICVz
IiAlIGV4dGVuc2lvbl9wYXRoKQorICAgICAgICAgICAgYWRkb25zID0gQWRkb25zKHNlbGYucHJv
dG9jb2wubWFyaW9uZXR0ZSkKKyAgICAgICAgICAgIGFkZG9ucy5pbnN0YWxsKGV4dGVuc2lvbl9w
YXRoKQorCiAgICAgICAgIHNlbGYucHJvdG9jb2wudGVzdGhhcm5lc3MubG9hZF9ydW5uZXIoc2Vs
Zi5sYXN0X2Vudmlyb25tZW50WyJwcm90b2NvbCJdKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYp
OgpAQCAtODQyLDYgKzg5NCw5IEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9y
KFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3dp
bmRvdyh0ZXN0X3dpbmRvdykKICAgICAgICAgcHJvdG9jb2wudGVzdGhhcm5lc3MudGVzdF93aW5k
b3dfbG9hZGVkKCkKIAorICAgICAgICBpZiBzZWxmLmRlYnVnX3Rlc3Q6CisgICAgICAgICAgICBz
ZWxmLnByb3RvY29sLmRlYnVnLmxvYWRfZGV2dG9vbHMoKQorCiAgICAgICAgIGhhbmRsZXIgPSBD
YWxsYmFja0hhbmRsZXIoc2VsZi5sb2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdykKICAgICAg
ICAgcHJvdG9jb2wubWFyaW9uZXR0ZS5uYXZpZ2F0ZSh1cmwpCiAgICAgICAgIHdoaWxlIFRydWU6
CkBAIC04NjgsNyArOTIzLDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZU
ZXN0RXhlY3V0b3IpOgogICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIHJlZnRlc3Rf
aW50ZXJuYWw9RmFsc2UsCiAgICAgICAgICAgICAgICAgIHJlZnRlc3Rfc2NyZWVuc2hvdD0idW5l
eHBlY3RlZCIsIGNjb3Y9RmFsc2UsCiAgICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5v
bmUsIGNhcGFiaWxpdGllcz1Ob25lLCBkZWJ1Zz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgYnJv
d3Nlcl92ZXJzaW9uPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgYnJvd3Nlcl92
ZXJzaW9uPU5vbmUsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToKICAgICAgICAgIiIiTWFy
aW9uZXR0ZS1iYXNlZCBleGVjdXRvciBmb3IgcmVmdGVzdHMiIiIKICAgICAgICAgUmVmVGVzdEV4
ZWN1dG9yLl9faW5pdF9fKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2dnZXIsCkBAIC04OTEsNiArOTQ2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRv
cihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAgICBzZWxmLm9yaWdpbmFsX3ByZWZfdmFsdWVzID0g
e30KICAgICAgICAgc2VsZi5ncm91cF9tZXRhZGF0YSA9IGdyb3VwX21ldGFkYXRhCiAgICAgICAg
IHNlbGYuZGVidWcgPSBkZWJ1ZworICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1Z190ZXN0
CiAKICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAicmVmdGVzdC5qcyIpKSBh
cyBmOgogICAgICAgICAgICAgc2VsZi5zY3JpcHQgPSBmLnJlYWQoKQpAQCAtOTUzLDcgKzEwMDks
MTIgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgog
ICAgICAgICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gc2VsZi5wcm90b2NvbC5hc3NlcnRzLmdldCgp
CiAgICAgICAgICAgICBpZiAiZXh0cmEiIG5vdCBpbiByZXN1bHQ6CiAgICAgICAgICAgICAgICAg
cmVzdWx0WyJleHRyYSJdID0ge30KLSAgICAgICAgICAgIHJlc3VsdFsiZXh0cmEiXVsiYXNzZXJ0
aW9uX2NvdW50Il0gPSBhc3NlcnRpb25fY291bnQKKyAgICAgICAgICAgIGlmIGFzc2VydGlvbl9j
b3VudCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXN1bHRbImV4dHJhIl1bImFzc2Vy
dGlvbl9jb3VudCJdID0gYXNzZXJ0aW9uX2NvdW50CisKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190
ZXN0IGFuZCByZXN1bHRbInN0YXR1cyJdIGluIFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIl0gYW5k
ICJleHRyYSIgaW4gcmVzdWx0OgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93
aW5kb3coc2VsZi5wcm90b2NvbC5iYXNlLndpbmRvd19oYW5kbGVzKClbMF0pCisgICAgICAgICAg
ICBzZWxmLnByb3RvY29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXplcih0ZXN0LCByZXN1bHQp
CiAKICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQogCkBA
IC0xMDAwLDggKzEwNjEsNyBAQCBjbGFzcyBJbnRlcm5hbFJlZlRlc3RJbXBsZW1lbnRhdGlvbihS
ZWZUZXN0SW1wbGVtZW50YXRpb24pOgogICAgICAgICBkYXRhID0geyJzY3JlZW5zaG90Ijogc2Ny
ZWVuc2hvdCwgImlzUHJpbnQiOiBzZWxmLmV4ZWN1dG9yLmlzX3ByaW50fQogICAgICAgICBpZiBz
ZWxmLmV4ZWN1dG9yLmdyb3VwX21ldGFkYXRhIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZGF0
YVsidXJsQ291bnQiXSA9IHt1cmxqb2luKHNlbGYuZXhlY3V0b3Iuc2VydmVyX3VybChrZXlbMF0p
LCBrZXlbMV0pOnZhbHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXks
IHZhbHVlIGluIGl0ZXJpdGVtcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuZXhlY3V0b3IuZ3JvdXBfbWV0YWRhdGEuZ2V0KCJ1cmxfY291bnQiLCB7fSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYuZXhlY3V0
b3IuZ3JvdXBfbWV0YWRhdGEuZ2V0KCJ1cmxfY291bnQiLCB7fSkuaXRlbXMoKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiB2YWx1ZSA+IDF9CiAgICAgICAgIHNlbGYuY2hyb21l
X3Njb3BlID0gY2hyb21lX3Njb3BlCiAgICAgICAgIGlmIGNocm9tZV9zY29wZToKQEAgLTEwNTMs
MTIgKzExMTMsMzIgQEAgY2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24oUmVmVGVz
dEltcGxlbWVudGF0aW9uKToKIAogCiBjbGFzcyBHZWNrb0RyaXZlclByb3RvY29sKFdkc3BlY1By
b3RvY29sKToKLSAgICBzZXJ2ZXJfY2xzID0gR2Vja29Ecml2ZXJTZXJ2ZXIKKyAgICBzZXJ2ZXJf
Y2xzID0gTm9uZSAgIyBUbyBhdm9pZCBjaXJjdWxhciBpbXBvcnRzIHdlIHNldCB0aGlzIGF0IHJ1
bnRpbWUKIAogCiBjbGFzcyBNYXJpb25ldHRlV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3Ip
OgogICAgIHByb3RvY29sX2NscyA9IEdlY2tvRHJpdmVyUHJvdG9jb2wKIAorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHdlYmRyaXZlcl9iaW5h
cnksCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCB0aW1lb3V0X211bHRpcGxpZXI9
MSwgY2FwYWJpbGl0aWVzPU5vbmUsCisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwg
ZW52aXJvbj1Ob25lLCBzdGFja2ZpeF9kaXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9s
c19wYXRoPU5vbmUsIGxlYWtfcmVwb3J0X2ZpbGU9Tm9uZSwgYXNhbj1GYWxzZSwKKyAgICAgICAg
ICAgICAgICAgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgYnJvd3Nlcl9zZXR0aW5ncz1Ob25lLCAqKmt3
YXJncyk6CisKKyAgICAgICAgZnJvbSAuLmJyb3dzZXJzLmZpcmVmb3ggaW1wb3J0IEdlY2tvRHJp
dmVyU2VydmVyCisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCBicm93c2VyLCBzZXJ2
ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdl
YmRyaXZlcl9hcmdzLCB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsIGRlYnVnX2lu
Zm89ZGVidWdfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uPWVudmlyb24s
ICoqa3dhcmdzKQorICAgICAgICBzZWxmLnByb3RvY29sX2Nscy5zZXJ2ZXJfY2xzID0gR2Vja29E
cml2ZXJTZXJ2ZXIKKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MgPSB7InN0YWNr
Zml4X2RpciI6IHN0YWNrZml4X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN5bWJvbHNfcGF0aCI6IHN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImFzYW4iOiBhc2FuLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibGVha19yZXBvcnRfZmlsZSI6IGxlYWtfcmVwb3J0X2ZpbGV9CisgICAg
ICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0geyJncm91cF9tZXRhZGF0YSI6
IGdyb3VwX21ldGFkYXRhfQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJn
cy51cGRhdGUoYnJvd3Nlcl9zZXR0aW5ncykKKworCiAKIGNsYXNzIE1hcmlvbmV0dGVDcmFzaHRl
c3RFeGVjdXRvcihDcmFzaHRlc3RFeGVjdXRvcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVu
aXVtLnB5CmluZGV4IGZmMjYzNTFmODRlZC4uOWQ2NzVjYjNlZjg3IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3JzZWxlbml1bS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQpA
QCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CiBp
bXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0CkBAIC02LDcgKzUsNyBAQCBpbXBv
cnQgdGhyZWFkaW5nCiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHV1aWQK
LWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSB1cmxsaWIu
cGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxl
ciwKICAgICAgICAgICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCkBAIC0xOSwxMCArMTgsMTAg
QEAgZnJvbSAucHJvdG9jb2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAg
ICAgICAgICAgICBQcm90b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIENsaWNrUHJvdG9jb2xQYXJ0LAorICAg
ICAgICAgICAgICAgICAgICAgICBDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBTZW5kS2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0
aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3REcml2
ZXJQcm90b2NvbFBhcnQpCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogCiBoZXJlID0g
b3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCkBAIC0xODMsNiArMTgyLDE1IEBAIGNsYXNzIFNl
bGVuaXVtQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1
cm4gZWxlbWVudC5jbGljaygpCiAKIAorY2xhc3MgU2VsZW5pdW1Db29raWVzUHJvdG9jb2xQYXJ0
KENvb2tpZXNQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBkZWxldGVfYWxs
X2Nvb2tpZXMoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkRlbGV0aW5nIGFsbCBj
b29raWVzIikKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmRlbGV0ZV9hbGxfY29va2ll
cygpCisKKwogY2xhc3MgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3Rv
Y29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9
IHNlbGYucGFyZW50LndlYmRyaXZlcgpAQCAtMjE5LDYgKzIyNyw3IEBAIGNsYXNzIFNlbGVuaXVt
UHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1UZXN0aGFybmVz
c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtU2VsZWN0b3JQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0LAorICAg
ICAgICAgICAgICAgICAgU2VsZW5pdW1Db29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAg
ICAgICAgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNl
bGVuaXVtVGVzdERyaXZlclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVt
QWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnRdCkBAIC0yNjcsOCArMjc2LDkgQEAgY2xhc3MgU2Vs
ZW5pdW1SdW4oVGltZWRSdW5uZXIpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnBy
b3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQodGltZW91dCArIHNlbGYuZXh0cmFfdGltZW91dCkKICAg
ICAgICAgZXhjZXB0IGV4Y2VwdGlvbnMuRXJyb3JJblJlc3BvbnNlRXhjZXB0aW9uOgotICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVyIGNvbm5lY3Rpb24iKQotICAg
ICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBj
b25uZWN0aW9uIgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAg
ICAgcmV0dXJuICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICBkZWYgcnVuX2Z1bmMoc2Vs
Zik6CiAgICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkKaW5kZXggZWZlOTNhYmM2OWM3Li5mMzIyNDIxYmQzZmEg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cnNlcnZvLnB5CkBAIC0xLDQgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m
dW5jdGlvbgogaW1wb3J0IGJhc2U2NAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwpAQCAtNyw3ICs2
LDYgQEAgaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNr
CiBpbXBvcnQgdXVpZAotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9zdHIsIGl0ZXJpdGVtcwogCiBm
cm9tIG1venByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAKQEAgLTIzLDcgKzIxLDYgQEAg
ZnJvbSAuYmFzZSBpbXBvcnQgKENvbm5lY3Rpb25sZXNzUHJvdG9jb2wsCiAgICAgICAgICAgICAg
ICAgICAgV2RzcGVjUHJvdG9jb2wpCiBmcm9tIC5wcm9jZXNzIGltcG9ydCBQcm9jZXNzVGVzdEV4
ZWN1dG9yCiBmcm9tIC4uYnJvd3NlcnMuYmFzZSBpbXBvcnQgYnJvd3Nlcl9jb21tYW5kCi1mcm9t
IC4ucHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9y
dCBTZXJ2b0RyaXZlclNlcnZlcgogCiAKQEAgLTQ4LDcgKzQ1LDcgQEAgZGVmIGJ1aWxkX3NlcnZv
X2NvbW1hbmQodGVzdCwgdGVzdF91cmxfZnVuYywgYnJvd3NlciwgYmluYXJ5LCBwYXVzZV9hZnRl
cl90ZXN0LAogICAgICAgICBhcmdzICs9IFsiLVoiLCBkZWJ1Z19vcHRzXQogICAgIGZvciBzdHls
ZXNoZWV0IGluIGJyb3dzZXIudXNlcl9zdHlsZXNoZWV0czoKICAgICAgICAgYXJncyArPSBbIi0t
dXNlci1zdHlsZXNoZWV0Iiwgc3R5bGVzaGVldF0KLSAgICBmb3IgcHJlZiwgdmFsdWUgaW4gaXRl
cml0ZW1zKHRlc3QuZW52aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KSk6CisgICAgZm9yIHByZWYs
IHZhbHVlIGluIHRlc3QuZW52aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KS5pdGVtcygpOgogICAg
ICAgICBhcmdzICs9IFsiLS1wcmVmIiwgIiVzPSVzIiAlIChwcmVmLCB2YWx1ZSldCiAgICAgaWYg
YnJvd3Nlci5jYV9jZXJ0aWZpY2F0ZV9wYXRoOgogICAgICAgICBhcmdzICs9IFsiLS1jZXJ0aWZp
Y2F0ZS1wYXRoIiwgYnJvd3Nlci5jYV9jZXJ0aWZpY2F0ZV9wYXRoXQpAQCAtMTAzLDExICsxMDAs
MTEgQEAgY2xhc3MgU2Vydm9UZXN0aGFybmVzc0V4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3Ip
OgogICAgICAgICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9
W3NlbGYub25fb3V0cHV0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9uRmluaXNoPXNlbGYub25fZmluaXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZW52PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RvcmVPdXRwdXQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5j
b21tYW5kLCBlbnY9Y2FzdF9lbnYoZW52KSkKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnBy
b2Nlc3MuUG9wZW4oc2VsZi5jb21tYW5kLCBlbnY9ZW52KQogCiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllcgpA
QCAtMjM1LDcgKzIzMiw3IEBAIGNsYXNzIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0
RXhlY3V0b3IpOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuaW50ZXJhY3RpdmU6CiAgICAgICAg
ICAgICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPVtz
ZWxmLm9uX291dHB1dF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW52PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZW52PWVudikKIAogCiAgICAgICAgICAgICAgICAgdHJ5OgpAQCAtMjQ3LDcgKzI0
NCw3IEBAIGNsYXNzIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgog
ICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAg
ICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKICAg
ICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHJ2ID0gc2VsZi5wcm9jLndh
aXQoKQogICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKQEAgLTI2NCw3
ICsyNjEsOSBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9y
KToKICAgICAgICAgICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwgInJiIikgYXMgZjoKICAgICAg
ICAgICAgICAgICAjIE1pZ2h0IG5lZWQgdG8gc3RyaXAgdmFyaWFibGUgaGVhZGVycyBvciBzb21l
dGhpbmcgaGVyZQogICAgICAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQotICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlLCBbZW5zdXJlX3N0cihiYXNlNjQuYjY0ZW5jb2RlKGRhdGEpKV0KKyAg
ICAgICAgICAgICAgICAjIFJldHVybmluZyB0aGUgc2NyZWVuc2hvdCBhcyBhIHN0cmluZyBjb3Vs
ZCBwb3RlbnRpYWxseSBiZSBhdm9pZGVkLAorICAgICAgICAgICAgICAgICMgc2VlIGh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODkyOS4KKyAgICAgICAg
ICAgICAgICByZXR1cm4gVHJ1ZSwgW2Jhc2U2NC5iNjRlbmNvZGUoZGF0YSkuZGVjb2RlKCldCiAK
ICAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAgcmVzdWx0ID0gc2VsZi5pbXBs
ZW1lbnRhdGlvbi5ydW5fdGVzdCh0ZXN0KQpAQCAtMzU3LDExICszNTYsMTEgQEAgY2xhc3MgU2Vy
dm9DcmFzaHRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKIAogICAgICAgICBpZiBu
b3Qgc2VsZi5pbnRlcmFjdGl2ZToKICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5k
bGVyKGNvbW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9
Y2FzdF9lbnYoZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dj1lbnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZU91dHB1
dD1GYWxzZSkKICAgICAgICAgICAgIHNlbGYucHJvYy5ydW4oKQogICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3Blbihjb21tYW5kLCBlbnY9Y2FzdF9l
bnYoZW52KSkKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFu
ZCwgZW52PWVudikKIAogICAgICAgICBzZWxmLnByb2Mud2FpdCgpCiAKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIu
cHkKaW5kZXggMmNkMWRiZjNhZDA2Li4wMzliY2QxNGUyYmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9l
eGVjdXRvcnNlcnZvZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5
CkBAIC0xMCw3ICsxMCw2IEBAIGZyb20gLmJhc2UgaW1wb3J0IChQcm90b2NvbCwKICAgICAgICAg
ICAgICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLAogICAgICAgICAgICAgICAgICAgIFRpbWVk
UnVubmVyLAogICAgICAgICAgICAgICAgICAgIHN0cmlwX3NlcnZlcikKLWZyb20gLi50ZXN0cnVu
bmVyIGltcG9ydCBTdG9wCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgd2FpdF9mb3Jf
c2VydmljZQogCiB3ZWJkcml2ZXIgPSBOb25lCkBAIC0xODQsOCArMTgzLDkgQEAgY2xhc3MgU2Vy
dm9XZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAg
ICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbi50aW1lb3V0cy5zY3JpcHQgPSB0aW1l
b3V0CiAgICAgICAgICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAogICAgICAgICAgICAg
ZXhjZXB0IElPRXJyb3I6Ci0gICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3Qg
d2ViZHJpdmVyIGNvbm5lY3Rpb24iKQotICAgICAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAg
ICAgICAgICAgICAgbXNnID0gIkxvc3QgV2ViRHJpdmVyIGNvbm5lY3Rpb24iCisgICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgICAgIHJldHVybiAoIklO
VEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBTZXJ2b1dlYkRy
aXZlclJ1bihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuZG9fdGVzdGhhcm5lc3MsCkBAIC0yNzYsOCArMjc2LDkgQEAgY2xhc3MgU2Vy
dm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAg
ICAgICBzZWxmLnByb3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0ID0gdGltZW91dAogICAg
ICAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAgICAgICAgIGV4Y2VwdCBJ
T0Vycm9yOgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IHdlYmRyaXZl
ciBjb25uZWN0aW9uIikKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICAgICAg
ICAgIG1zZyA9ICJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9uIgorICAgICAgICAgICAgICAgIHNl
bGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgICAgICByZXR1cm4gKCJJTlRFUk5BTC1F
UlJPUiIsIG1zZykKIAogICAgICAgICByZXR1cm4gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5sb2dn
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zY3JlZW5zaG90LApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
d2ViZHJpdmVyLnB5CmluZGV4IGJhZDVmZDA3MjIzNy4uNmQ1OTE2YTZhZmJjIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJp
dmVyLnB5CkBAIC0xLDQgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGltcG9ydCBzb2NrZXQKQEAgLTYsNyArNSw3
IEBAIGltcG9ydCB0aHJlYWRpbmcKIGltcG9ydCB0aW1lCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBv
cnQgdXVpZAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCitmcm9t
IHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC5iYXNlIGltcG9ydCAoQ2FsbGJh
Y2tIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgIENyYXNodGVzdEV4ZWN1dG9yLApAQCAtMjAs
MjIgKzE5LDIzIEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNl
bGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29s
UGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAg
ICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0
ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNldFBlcm1p
c3Npb25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50
aWNhdG9yUHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKKyAgICAg
ICAgICAgICAgICAgICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCisgICAg
ICAgICAgICAgICAgICAgICAgIERlYnVnUHJvdG9jb2xQYXJ0KQogCi1pbXBvcnQgd2ViZHJpdmVy
IGFzIGNsaWVudAorZnJvbSB3ZWJkcml2ZXIuY2xpZW50IGltcG9ydCBTZXNzaW9uCiBmcm9tIHdl
YmRyaXZlciBpbXBvcnQgZXJyb3IKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykK
IAogCiBjbGFzcyBXZWJEcml2ZXJDYWxsYmFja0hhbmRsZXIoQ2FsbGJhY2tIYW5kbGVyKToKLSAg
ICB1bmltcGxlbWVudGVkX2V4YyA9IChOb3RJbXBsZW1lbnRlZEVycm9yLCBjbGllbnQuVW5rbm93
bkNvbW1hbmRFeGNlcHRpb24pCisgICAgdW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50
ZWRFcnJvciwgZXJyb3IuVW5rbm93bkNvbW1hbmRFeGNlcHRpb24pCiAKIAogY2xhc3MgV2ViRHJp
dmVyQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKQEAgLTQ5LDcgKzQ5LDcgQEAg
Y2xhc3MgV2ViRHJpdmVyQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKICAgICBk
ZWYgc2V0X3RpbWVvdXQoc2VsZiwgdGltZW91dCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAg
IHNlbGYud2ViZHJpdmVyLnRpbWVvdXRzLnNjcmlwdCA9IHRpbWVvdXQKLSAgICAgICAgZXhjZXB0
IGNsaWVudC5XZWJEcml2ZXJFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCBlcnJvci5XZWJEcml2
ZXJFeGNlcHRpb246CiAgICAgICAgICAgICAjIHdvcmthcm91bmQgaHR0cHM6Ly9idWdzLmNocm9t
aXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTIwNTcKICAgICAgICAgICAg
IGJvZHkgPSB7InR5cGUiOiAic2NyaXB0IiwgIm1zIjogdGltZW91dCAqIDEwMDB9CiAgICAgICAg
ICAgICBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ0aW1lb3V0
cyIsIGJvZHkpCkBAIC03MSwxNiArNzEsMTYgQEAgY2xhc3MgV2ViRHJpdmVyQmFzZVByb3RvY29s
UGFydChCYXNlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAg
IHRyeToKICAgICAgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5leGVjdXRlX2FzeW5jX3Njcmlw
dCgiIikKLSAgICAgICAgICAgIGV4Y2VwdCAoY2xpZW50LlRpbWVvdXRFeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgIGNsaWVudC5TY3JpcHRUaW1lb3V0RXhjZXB0aW9uLAotICAgICAgICAg
ICAgICAgICAgICBjbGllbnQuSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uKToKKyAgICAgICAgICAg
IGV4Y2VwdCAoZXJyb3IuVGltZW91dEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJy
b3IuU2NyaXB0VGltZW91dEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IuSmF2
YXNjcmlwdEVycm9yRXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICAjIEEgSmF2YXNjcmlwdEVy
cm9yRXhjZXB0aW9uIHdpbGwgaGFwcGVuIHdoZW4gd2UgbmF2aWdhdGU7CiAgICAgICAgICAgICAg
ICAgIyBieSBpZ25vcmluZyBpdCBpdCdzIHBvc3NpYmxlIHRvIHJlbG9hZCB0aGUgdGVzdCB3aGls
c3QgdGhlCiAgICAgICAgICAgICAgICAgIyBoYXJuZXNzIHJlbWFpbnMgcGF1c2VkCiAgICAgICAg
ICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwKLSAgICAg
ICAgICAgICAgICAgICAgY2xpZW50Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAg
ICAgZXJyb3IuTm9TdWNoV2luZG93RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICBlcnJv
ci5Vbmtub3duRXJyb3JFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAgICAgIElPRXJyb3IpOgog
ICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgpAQCAt
MTE2LDcgKzExNiw3IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KFRl
c3RoYXJuZXNzUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg
ICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0gaGFuZGxlCiAgICAgICAgICAgICAgICAg
c2VsZi53ZWJkcml2ZXIud2luZG93LmNsb3NlKCkKLSAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQu
Tm9TdWNoV2luZG93RXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjZXB0IGVycm9yLk5vU3VjaFdp
bmRvd0V4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYud2ViZHJp
dmVyLndpbmRvd19oYW5kbGUgPSBzZWxmLnJ1bm5lcl9oYW5kbGUKICAgICAgICAgcmV0dXJuIHNl
bGYucnVubmVyX2hhbmRsZQpAQCAtMTkwLDYgKzE5MCwxNSBAQCBjbGFzcyBXZWJEcml2ZXJDbGlj
a1Byb3RvY29sUGFydChDbGlja1Byb3RvY29sUGFydCk6CiAgICAgICAgIHJldHVybiBlbGVtZW50
LmNsaWNrKCkKIAogCitjbGFzcyBXZWJEcml2ZXJDb29raWVzUHJvdG9jb2xQYXJ0KENvb2tpZXNQ
cm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2
ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMo
c2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkRlbGV0aW5nIGFsbCBjb29raWVzIikK
KyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJERUxF
VEUiLCAiY29va2llIikKKworCiBjbGFzcyBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFydChT
ZW5kS2V5c1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxm
LndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgpAQCAtMTk3LDcgKzIwNiw3IEBAIGNs
YXNzIFdlYkRyaXZlclNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToK
ICAgICBkZWYgc2VuZF9rZXlzKHNlbGYsIGVsZW1lbnQsIGtleXMpOgogICAgICAgICB0cnk6CiAg
ICAgICAgICAgICByZXR1cm4gZWxlbWVudC5zZW5kX2tleXMoa2V5cykKLSAgICAgICAgZXhjZXB0
IGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24gYXMgZToKKyAgICAgICAgZXhjZXB0IGVycm9y
LlVua25vd25FcnJvckV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGh0
dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0x
OTk5CiAgICAgICAgICAgICBpZiAoZS5odHRwX3N0YXR1cyAhPSA1MDAgb3IKICAgICAgICAgICAg
ICAgICBlLnN0YXR1c19jb2RlICE9ICJ1bmtub3duIGVycm9yIik6CkBAIC0yMjcsOCArMjM2LDEy
IEBAIGNsYXNzIFdlYkRyaXZlclRlc3REcml2ZXJQcm90b2NvbFBhcnQoVGVzdERyaXZlclByb3Rv
Y29sUGFydCk6CiAgICAgICAgICAgICBvYmpbIm1lc3NhZ2UiXSA9IHN0cihtZXNzYWdlKQogICAg
ICAgICBzZWxmLndlYmRyaXZlci5leGVjdXRlX3NjcmlwdCgid2luZG93LnBvc3RNZXNzYWdlKCVz
LCAnKicpIiAlIGpzb24uZHVtcHMob2JqKSkKIAotICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNl
bGYsIGZyYW1lX251bWJlcik6Ci0gICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9mcmFtZShm
cmFtZV9udW1iZXIpCisgICAgZGVmIF9zd2l0Y2hfdG9fZnJhbWUoc2VsZiwgaW5kZXhfb3JfZWxl
bSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9mcmFt
ZShpbmRleF9vcl9lbGVtKQorICAgICAgICBleGNlcHQgKGVycm9yLlN0YWxlRWxlbWVudFJlZmVy
ZW5jZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICBlcnJvci5Ob1N1Y2hGcmFtZUV4Y2VwdGlv
bikgYXMgZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IgZnJvbSBlCiAKICAgICBkZWYg
X3N3aXRjaF90b19wYXJlbnRfZnJhbWUoc2VsZik6CiAgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3
aXRjaF9mcmFtZSgicGFyZW50IikKQEAgLTI4MywxNyArMjk2LDI0IEBAIGNsYXNzIFdlYkRyaXZl
clZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KFZpcnR1YWxBdXRoZW50aWNhdG9yUHJv
dG9jb2xQYXJ0CiAgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiUE9TVCIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL3V2IiAlIGF1dGhlbnRpY2F0
b3JfaWQsIHV2KQogCiAKK2NsYXNzIFdlYkRyaXZlckRlYnVnUHJvdG9jb2xQYXJ0KERlYnVnUHJv
dG9jb2xQYXJ0KToKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcigpCisKKwogY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9j
b2wpOgogICAgIGltcGxlbWVudHMgPSBbV2ViRHJpdmVyQmFzZVByb3RvY29sUGFydCwKICAgICAg
ICAgICAgICAgICAgIFdlYkRyaXZlclRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgV2ViRHJpdmVyU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICBXZWJEcml2ZXJDbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZl
ckNvb2tpZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZW5kS2V5
c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckFjdGlvblNlcXVlbmNl
UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVGVzdERyaXZlclByb3Rv
Y29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckdlbmVyYXRlVGVzdFJlcG9ydFBy
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclNldFBlcm1pc3Npb25Qcm90
b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRv
clByb3RvY29sUGFydF0KKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclZpcnR1YWxBdXRoZW50
aWNhdG9yUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyRGVidWdQcm90
b2NvbFBhcnRdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNh
cGFiaWxpdGllcywgKiprd2FyZ3MpOgogICAgICAgICBzdXBlcihXZWJEcml2ZXJQcm90b2NvbCwg
c2VsZikuX19pbml0X18oZXhlY3V0b3IsIGJyb3dzZXIpCkBAIC0zMDgsNyArMzI4LDcgQEAgY2xh
c3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICBob3N0LCBwb3J0ID0gc2Vs
Zi51cmwuc3BsaXQoIjoiKVsxXS5zdHJpcCgiLyIpLCBzZWxmLnVybC5zcGxpdCgnOicpWy0xXS5z
dHJpcCgiLyIpCiAKICAgICAgICAgY2FwYWJpbGl0aWVzID0geyJhbHdheXNNYXRjaCI6IHNlbGYu
Y2FwYWJpbGl0aWVzfQotICAgICAgICBzZWxmLndlYmRyaXZlciA9IGNsaWVudC5TZXNzaW9uKGhv
c3QsIHBvcnQsIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgICAgIHNlbGYud2ViZHJp
dmVyID0gU2Vzc2lvbihob3N0LCBwb3J0LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQogICAg
ICAgICBzZWxmLndlYmRyaXZlci5zdGFydCgpCiAKICAgICBkZWYgdGVhcmRvd24oc2VsZik6CkBA
IC0zMzEsNyArMzUxLDcgQEAgY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAg
ICAgICAgICAgIyA1IHNlY29uZHMgb2YgZXh0cmFfdGltZW91dCB3ZSBoYXZlIGFzIG1heGltdW0g
dG8gZW5kIHRoZSB0ZXN0IGJlZm9yZQogICAgICAgICAgICAgIyB0aGUgZXh0ZXJuYWwgdGltZW91
dCBmcm9tIHRlc3RydW5uZXIgdHJpZ2dlcnMuCiAgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5z
ZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdyIsIHRpbWVvdXQ9MikKLSAgICAgICAg
ZXhjZXB0IChzb2NrZXQudGltZW91dCwgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwgY2xp
ZW50LkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb24pOgorICAgICAgICBleGNlcHQgKHNvY2tldC50
aW1lb3V0LCBlcnJvci5Vbmtub3duRXJyb3JFeGNlcHRpb24sIGVycm9yLkludmFsaWRTZXNzaW9u
SWRFeGNlcHRpb24pOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJldHVybiBU
cnVlCiAKQEAgLTM0MywxOSArMzYzLDIwIEBAIGNsYXNzIFdlYkRyaXZlclJ1bihUaW1lZFJ1bm5l
cik6CiAgICAgZGVmIHNldF90aW1lb3V0KHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQoc2VsZi50aW1lb3V0ICsgc2VsZi5leHRy
YV90aW1lb3V0KQotICAgICAgICBleGNlcHQgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbjoK
LSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9u
IikKLSAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgIGV4Y2VwdCBlcnJvci5Vbmtub3du
RXJyb3JFeGNlcHRpb246CisgICAgICAgICAgICBtc2cgPSAiTG9zdCBXZWJEcml2ZXIgY29ubmVj
dGlvbiIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgIHJl
dHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIHJ1bl9mdW5jKHNlbGYpOgog
ICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUsIHNlbGYuZnVuYyhz
ZWxmLnByb3RvY29sLCBzZWxmLnVybCwgc2VsZi50aW1lb3V0KQotICAgICAgICBleGNlcHQgKGNs
aWVudC5UaW1lb3V0RXhjZXB0aW9uLCBjbGllbnQuU2NyaXB0VGltZW91dEV4Y2VwdGlvbik6Cisg
ICAgICAgIGV4Y2VwdCAoZXJyb3IuVGltZW91dEV4Y2VwdGlvbiwgZXJyb3IuU2NyaXB0VGltZW91
dEV4Y2VwdGlvbik6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFM
LVRJTUVPVVQiLCBOb25lKQotICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBjbGllbnQu
VW5rbm93bkVycm9yRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwg
ZXJyb3IuVW5rbm93bkVycm9yRXhjZXB0aW9uKToKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0g
RmFsc2UsICgiQ1JBU0giLCBOb25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0g
ICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShlLCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uKSBh
bmQKKyAgICAgICAgICAgIGlmIChpc2luc3RhbmNlKGUsIGVycm9yLldlYkRyaXZlckV4Y2VwdGlv
bikgYW5kCiAgICAgICAgICAgICAgICAgICAgIGUuaHR0cF9zdGF0dXMgPT0gNDA4IGFuZAogICAg
ICAgICAgICAgICAgICAgICBlLnN0YXR1c19jb2RlID09ICJhc3luY2hyb25vdXMgc2NyaXB0IHRp
bWVvdXQiKToKICAgICAgICAgICAgICAgICAjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vYnVncy5j
aHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDAxCkBAIC00NDks
NyArNDcwLDcgQEAgY2xhc3MgV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVz
c0V4ZWN1dG9yKToKICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkg
b3IgbGVuKHJlc3VsdCkgIT0gMjoKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
ICAgICAgIGlzX2FsaXZlID0gc2VsZi5pc19hbGl2ZSgpCi0gICAgICAgICAgICAgICAgZXhjZXB0
IGNsaWVudC5XZWJEcml2ZXJFeGNlcHRpb246CisgICAgICAgICAgICAgICAgZXhjZXB0IGVycm9y
LldlYkRyaXZlckV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAgICAgaXNfYWxpdmUgPSBGYWxz
ZQogCiAgICAgICAgICAgICAgICAgaWYgbm90IGlzX2FsaXZlOgpAQCAtNDgzLDcgKzUwNCw3IEBA
IGlmIChsb2NhdGlvbi5ocmVmID09PSAiYWJvdXQ6YmxhbmsiKSB7CiB9IGVsc2UgewogICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIiwgKCkgPT4ge2lmIChkb2N1
bWVudC5yZWFkeVN0YXRlICE9PSAibG9hZGluZyIpIHtjYWxsYmFjayh0cnVlKX19KTsKIH0iIiIs
IGFzeW5jaHJvbm91cz1UcnVlKQotICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5KYXZhc2NyaXB0
RXJyb3JFeGNlcHRpb246CisgICAgICAgICAgICBleGNlcHQgZXJyb3IuSmF2YXNjcmlwdEVycm9y
RXhjZXB0aW9uOgogICAgICAgICAgICAgICAgICMgV2UgY2FuIGdldCBhbiBlcnJvciBoZXJlIGlm
IHRoZSBzY3JpcHQgcnVucyBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuawogICAgICAgICAgICAg
ICAgICMgZG9jdW1lbnQgYmVmb3JlIGl0IGhhcyBuYXZpZ2F0ZWQsIHdpdGggdGhlIGRyaXZlciBy
ZXR1cm5pbmcgYW4gZXJyb3IKICAgICAgICAgICAgICAgICAjIGluZGljYXRpbmcgdGhhdCB0aGUg
ZG9jdW1lbnQgd2FzIHVubG9hZGVkCkBAIC00OTcsNyArNTE4LDcgQEAgY2xhc3MgV2ViRHJpdmVy
UmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwK
ICAgICAgICAgICAgICAgICAgc2NyZWVuc2hvdF9jYWNoZT1Ob25lLCBjbG9zZV9hZnRlcl9kb25l
PVRydWUsCi0gICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5v
bmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCBjYXBhYmls
aXRpZXM9Tm9uZSwgZGVidWdfdGVzdD1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJXZWJE
cml2ZXItYmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCiAgICAgICAgIFJlZlRlc3RFeGVj
dXRvci5fX2luaXRfXyhzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9n
Z2VyLApAQCAtNTEyLDYgKzUzMyw3IEBAIGNsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihS
ZWZUZXN0RXhlY3V0b3IpOgogICAgICAgICBzZWxmLmltcGxlbWVudGF0aW9uID0gUmVmVGVzdElt
cGxlbWVudGF0aW9uKHNlbGYpCiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3Nl
X2FmdGVyX2RvbmUKICAgICAgICAgc2VsZi5oYXNfd2luZG93ID0gRmFsc2UKKyAgICAgICAgc2Vs
Zi5kZWJ1Z190ZXN0ID0gZGVidWdfdGVzdAogCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpv
aW4oaGVyZSwgInRlc3Qtd2FpdC5qcyIpKSBhcyBmOgogICAgICAgICAgICAgc2VsZi53YWl0X3Nj
cmlwdCA9IGYucmVhZCgpICUgeyJjbGFzc25hbWUiOiAicmVmdGVzdC13YWl0In0KQEAgLTUyOSwx
MyArNTUxLDE2IEBAIGNsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0
b3IpOgogICAgICAgICApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wu
d2ViZHJpdmVyLndpbmRvdy5wb3NpdGlvbiA9ICgwLCAwKQotICAgICAgICBleGNlcHQgY2xpZW50
LkludmFsaWRBcmd1bWVudEV4Y2VwdGlvbjoKKyAgICAgICAgZXhjZXB0IGVycm9yLkludmFsaWRB
cmd1bWVudEV4Y2VwdGlvbjoKICAgICAgICAgICAgICMgU2FmYXJpIDEyIHRocm93cyB3aXRoIDAg
b3IgMSwgdHJlYXRpbmcgdGhlbSBhcyBib29sczsgZml4ZWQgaW4gU1RQCiAgICAgICAgICAgICBz
ZWxmLnByb3RvY29sLndlYmRyaXZlci53aW5kb3cucG9zaXRpb24gPSAoMiwgMikKICAgICAgICAg
c2VsZi5wcm90b2NvbC53ZWJkcml2ZXIud2luZG93LnNpemUgPSAoODAwICsgd2lkdGhfb2Zmc2V0
LCA2MDAgKyBoZWlnaHRfb2Zmc2V0KQogCiAgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50
YXRpb24ucnVuX3Rlc3QodGVzdCkKIAorICAgICAgICBpZiBzZWxmLmRlYnVnX3Rlc3QgYW5kIHJl
c3VsdFsic3RhdHVzIl0gaW4gWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiXSBhbmQgImV4dHJhIiBp
biByZXN1bHQ6CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLmRlYnVnLmxvYWRfcmVmdGVzdF9h
bmFseXplcih0ZXN0LCByZXN1bHQpCisKICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1
bHQodGVzdCwgcmVzdWx0KQogCiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3Bv
cnRfc2l6ZSwgZHBpLCBwYWdlX3Jhbmdlcyk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvcHJvdG9jb2wucHkKaW5kZXggYmQ3NjhiMTA3M2M3Li5mOTU0N2FkOTA0YmMg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9wcm90b2NvbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkK
QEAgLTEsNiArMSw3IEBACiBpbXBvcnQgdHJhY2ViYWNrCiAKIGZyb20gYWJjIGltcG9ydCBBQkNN
ZXRhLCBhYnN0cmFjdG1ldGhvZAorZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBMaXN0LCBU
eXBlCiAKIAogY2xhc3MgUHJvdG9jb2wob2JqZWN0KToKQEAgLTE2LDcgKzE3LDcgQEAgY2xhc3Mg
UHJvdG9jb2wob2JqZWN0KToKICAgICA6cGFyYW0gQnJvd3NlciBicm93c2VyOiBUaGUgQnJvd3Nl
ciB1c2luZyB0aGlzIHByb3RvY29sIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKIAot
ICAgIGltcGxlbWVudHMgPSBbXQorICAgIGltcGxlbWVudHMgPSBbXSAgIyB0eXBlOiBDbGFzc1Zh
cltMaXN0W1R5cGVbUHJvdG9jb2xQYXJ0XV1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhl
Y3V0b3IsIGJyb3dzZXIpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKQEAgLTgy
LDcgKzgzLDcgQEAgY2xhc3MgUHJvdG9jb2xQYXJ0KG9iamVjdCk6CiAgICAgOnBhcmFtIFByb3Rv
Y29sIHBhcmVudDogVGhlIHBhcmVudCBwcm90b2NvbCIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBB
QkNNZXRhCiAKLSAgICBuYW1lID0gTm9uZQorICAgIG5hbWUgPSBOb25lICAjIHR5cGU6IENsYXNz
VmFyW3N0cl0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgogICAgICAgICBzZWxm
LnBhcmVudCA9IHBhcmVudApAQCAtMjgxLDYgKzI4MiwxOCBAQCBjbGFzcyBDbGlja1Byb3RvY29s
UGFydChQcm90b2NvbFBhcnQpOgogICAgICAgICBwYXNzCiAKIAorY2xhc3MgQ29va2llc1Byb3Rv
Y29sUGFydChQcm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9yIG1hbmFnaW5n
IGNvb2tpZXMiIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJj
b29raWVzIgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGRlbGV0ZV9hbGxfY29va2ll
cyhzZWxmKToKKyAgICAgICAgIiIiRGVsZXRlIGFsbCBjb29raWVzLiIiIgorICAgICAgICBwYXNz
CisKKwogY2xhc3MgU2VuZEtleXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAiIiJQ
cm90b2NvbCBwYXJ0IGZvciBwZXJmb3JtaW5nIHRydXN0ZWQgY2xpY2tzIiIiCiAgICAgX19tZXRh
Y2xhc3NfXyA9IEFCQ01ldGEKQEAgLTM1OCw0MyArMzcxLDcyIEBAIGNsYXNzIFRlc3REcml2ZXJQ
cm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiBB
ZGRpdGlvbmFsIGRhdGEgdG8gYWRkIHRvIHRoZSBtZXNzYWdlLiIiIgogICAgICAgICBwYXNzCiAK
LSAgICBkZWYgc3dpdGNoX3RvX3dpbmRvdyhzZWxmLCB3cHRydW5uZXJfaWQpOgorICAgIGRlZiBz
d2l0Y2hfdG9fd2luZG93KHNlbGYsIHdwdHJ1bm5lcl9pZCwgaW5pdGlhbF93aW5kb3c9Tm9uZSk6
CiAgICAgICAgICIiIlN3aXRjaCB0byBhIHdpbmRvdyBnaXZlbiBhIHdwdHJ1bm5lciB3aW5kb3cg
aWQKIAotICAgICAgICA6cGFyYW0gc3RyIHdwdHJ1bm5lcl9pZDogd2luZG93IGlkIiIiCisgICAg
ICAgIDpwYXJhbSBzdHIgd3B0cnVubmVyX2lkOiBUZXN0ZHJpdmVyLXNwZWNpZmljIGlkIGZvciB0
aGUgdGFyZ2V0IHdpbmRvdworICAgICAgICA6cGFyYW0gc3RyIGluaXRpYWxfd2luZG93OiBXZWJE
cml2ZXIgd2luZG93IGlkIGZvciB0aGUgdGVzdCB3aW5kb3ciIiIKICAgICAgICAgaWYgd3B0cnVu
bmVyX2lkIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KIAorICAgICAgICBpZiBpbml0aWFs
X3dpbmRvdyBpcyBOb25lOgorICAgICAgICAgICAgaW5pdGlhbF93aW5kb3cgPSBzZWxmLnBhcmVu
dC5iYXNlLmN1cnJlbnRfd2luZG93CisKICAgICAgICAgc3RhY2sgPSBbc3RyKGl0ZW0pIGZvciBp
dGVtIGluIHNlbGYucGFyZW50LmJhc2Uud2luZG93X2hhbmRsZXMoKV0KKyAgICAgICAgZmlyc3Qg
PSBUcnVlCiAgICAgICAgIHdoaWxlIHN0YWNrOgogICAgICAgICAgICAgaXRlbSA9IHN0YWNrLnBv
cCgpCisKICAgICAgICAgICAgIGlmIGl0ZW0gaXMgTm9uZToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgZmlyc3QgaXMgRmFsc2UKICAgICAgICAgICAgICAgICBzZWxmLl9zd2l0Y2hfdG9fcGFyZW50
X2ZyYW1lKCkKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiBpc2lu
c3RhbmNlKGl0ZW0sIHN0cik6Ci0gICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5zZXRf
d2luZG93KGl0ZW0pCisKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgc3RyKToKKyAg
ICAgICAgICAgICAgICBpZiBub3QgZmlyc3Qgb3IgaXRlbSAhPSBpbml0aWFsX3dpbmRvdzoKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5zZXRfd2luZG93KGl0ZW0pCisgICAg
ICAgICAgICAgICAgZmlyc3QgPSBGYWxzZQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9zd2l0Y2hfdG9fZnJhbWUoaXRlbSkKKyAgICAgICAgICAgICAgICBhc3NlcnQg
Zmlyc3QgaXMgRmFsc2UKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3N3aXRjaF90b19mcmFtZShpdGVtKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1
ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICAjIFRoZSBmcmFtZSBubyBsb25nZXIgZXhpc3Rz
LCBvciBkb2Vzbid0IGhhdmUgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCwgc28gY29udGludWUK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgICAgIGhhbmRsZV93aW5kb3dfaWQgPSBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2Ny
aXB0KCJyZXR1cm4gd2luZG93Ll9fd3B0cnVubmVyX2lkIikKLSAgICAgICAgICAgICAgICBpZiBz
dHIoaGFuZGxlX3dpbmRvd19pZCkgPT0gd3B0cnVubmVyX2lkOgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgICAgICAgICAjIEdldCB0aGUgd2luZG93IGlkIGFuZCBhIGxpc3Qg
b2YgZWxlbWVudHMgY29udGFpbmluZyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMuCisgICAgICAg
ICAgICAgICAgIyBGb3IgZW1iZWQgd2UgY2FuJ3QgdGVsbCBmcHIgc3VyZSBpZiB0aGVyZSdzIGEg
bmVzdGVkIGJyb3dzaW5nIGNvbnRleHQsIHNvIGFsd2F5cyByZXR1cm4gaXQKKyAgICAgICAgICAg
ICAgICAjIGFuZCBmYWlsIGxhdGVyIGlmIHRoZXJlIGlzbid0CisgICAgICAgICAgICAgICAgcmVz
dWx0ID0gc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgiIiIKKyAgICAgICAgICAgICAg
ICBsZXQgY29udGV4dFBhcmVudHMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoImZyYW1lLCBpZnJhbWUsIGVtYmVkLCBvYmplY3QiKSkKKyAgICAgICAgICAgICAgICAgICAg
LmZpbHRlcihlbGVtID0+IGVsZW0ubG9jYWxOYW1lICE9PSAiZW1iZWQiID8gKGVsZW0uY29udGVu
dFdpbmRvdyAhPT0gbnVsbCkgOiB0cnVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gW3dpbmRv
dy5fX3dwdHJ1bm5lcl9pZCwgY29udGV4dFBhcmVudHNdIiIiKQogICAgICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBmcmFtZV9jb3Vu
dCA9IHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3cubGVuZ3Ro
IikKLSAgICAgICAgICAgICMgTm9uZSBoZXJlIG1ha2VzIHVzIHN3aXRjaCBiYWNrIHRvIHRoZSBw
YXJlbnQgYWZ0ZXIgd2UndmUgcHJvY2Vzc2VkIGFsbCB0aGUgc3ViZnJhbWVzCi0gICAgICAgICAg
ICBzdGFjay5hcHBlbmQoTm9uZSkKLSAgICAgICAgICAgIGlmIGZyYW1lX2NvdW50OgotICAgICAg
ICAgICAgICAgIHN0YWNrLmV4dGVuZChyZXZlcnNlZChyYW5nZSgwLCBmcmFtZV9jb3VudCkpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIHJlc3VsdCBpcyBOb25l
OgorICAgICAgICAgICAgICAgICMgV2l0aCBtYXJpb25ldHRlIGF0IGxlYXN0IHRoaXMgaXMgcG9z
c2libGUgaWYgdGhlIGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVkLiBOb3QgcXVpdGUKKyAgICAgICAg
ICAgICAgICAjIHN1cmUgaG93IHdlIHdhbnQgdG8gaGFuZGxlIHRoYXQgY2FzZS4KKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBoYW5kbGVfd2luZG93X2lkLCBuZXN0ZWRf
Y29udGV4dF9jb250YWluZXJzID0gcmVzdWx0CisKKyAgICAgICAgICAgIGlmIGhhbmRsZV93aW5k
b3dfaWQgYW5kIHN0cihoYW5kbGVfd2luZG93X2lkKSA9PSB3cHRydW5uZXJfaWQ6CisgICAgICAg
ICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIGZvciBlbGVtIGluIHJldmVyc2VkKG5lc3Rl
ZF9jb250ZXh0X2NvbnRhaW5lcnMpOgorICAgICAgICAgICAgICAgICMgTm9uZSBoZXJlIG1ha2Vz
IHVzIHN3aXRjaCBiYWNrIHRvIHRoZSBwYXJlbnQgYWZ0ZXIgd2UndmUgcHJvY2Vzc2VkIHRoZSBm
cmFtZQorICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZChOb25lKQorICAgICAgICAgICAgICAg
IHN0YWNrLmFwcGVuZChlbGVtKQogCiAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiV2luZG93IHdp
dGggaWQgJXMgbm90IGZvdW5kIiAlIHdwdHJ1bm5lcl9pZCkKIAogICAgIEBhYnN0cmFjdG1ldGhv
ZAotICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGluZGV4KToKKyAgICBkZWYgX3N3aXRj
aF90b19mcmFtZShzZWxmLCBpbmRleF9vcl9lbGVtKToKICAgICAgICAgIiIiU3dpdGNoIHRvIGEg
ZnJhbWUgaW4gdGhlIGN1cnJlbnQgd2luZG93CiAKLSAgICAgICAgOnBhcmFtIGludCBpbmRleDog
RnJhbWUgaWQiIiIKKyAgICAgICAgOnBhcmFtIGludCBpbmRleF9vcl9lbGVtOiBGcmFtZSBpZCBv
ciBjb250YWluZXIgZWxlbWVudCIiIgogICAgICAgICBwYXNzCiAKICAgICBAYWJzdHJhY3RtZXRo
b2QKQEAgLTUwMywzICs1NDUsMzIgQEAgY2xhc3MgUHJpbnRQcm90b2NvbFBhcnQoUHJvdG9jb2xQ
YXJ0KToKICAgICBkZWYgcmVuZGVyX2FzX3BkZihzZWxmLCB3aWR0aCwgaGVpZ2h0KToKICAgICAg
ICAgIiIiT3V0cHV0IGRvY3VtZW50IGFzIFBERiIiIgogICAgICAgICBwYXNzCisKKworY2xhc3Mg
RGVidWdQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZv
ciBkZWJ1Z2dpbmcgdGVzdCBmYWlsdXJlcy4iIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0
YQorCisgICAgbmFtZSA9ICJkZWJ1ZyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBs
b2FkX2RldnRvb2xzKHNlbGYpOgorICAgICAgICAiIiJMb2FkIGRldnRvb2xzIGluIHRoZSBjdXJy
ZW50IHdpbmRvdyIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgbG9hZF9yZWZ0ZXN0X2FuYWx5
emVyKHNlbGYsIHRlc3QsIHJlc3VsdCk6CisgICAgICAgIGltcG9ydCBpbworICAgICAgICBpbXBv
cnQgbW96bG9nCisgICAgICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCBxdW90ZSwgdXJsam9p
bgorCisgICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2VyID0gbW96bG9nLnN0cnVjdHVyZWRsb2cuU3Ry
dWN0dXJlZExvZ2dlcigiZGVidWdfdGVzdCIpCisgICAgICAgIG91dHB1dCA9IGlvLlN0cmluZ0lP
KCkKKyAgICAgICAgZGVidWdfdGVzdF9sb2dnZXIuc3VpdGVfc3RhcnQoW10pCisgICAgICAgIGRl
YnVnX3Rlc3RfbG9nZ2VyLmFkZF9oYW5kbGVyKG1vemxvZy5oYW5kbGVycy5TdHJlYW1IYW5kbGVy
KG91dHB1dCwgZm9ybWF0dGVyPW1vemxvZy5mb3JtYXR0ZXJzLlRicGxGb3JtYXR0ZXIoKSkpCisg
ICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2VyLnRlc3Rfc3RhcnQodGVzdC5pZCkKKyAgICAgICAgIyBB
bHdheXMgdXNlIFBBU1MgYXMgdGhlIGV4cGVjdGVkIHZhbHVlIHNvIHdlIGdldCBvdXRwdXQgZXZl
biBmb3IgZXhwZWN0ZWQgZmFpbHVyZXMKKyAgICAgICAgZGVidWdfdGVzdF9sb2dnZXIudGVzdF9l
bmQodGVzdC5pZCwgcmVzdWx0WyJzdGF0dXMiXSwgIlBBU1MiLCBleHRyYT1yZXN1bHQuZ2V0KCJl
eHRyYSIpKQorCisgICAgICAgIHNlbGYucGFyZW50LmJhc2UubG9hZCh1cmxqb2luKHNlbGYucGFy
ZW50LmV4ZWN1dG9yLnNlcnZlcl91cmwoImh0dHBzIiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiL2NvbW1vbi90aGlyZF9wYXJ0eS9yZWZ0ZXN0LWFuYWx5emVyLnhodG1sI2xvZz0l
cyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlKG91dHB1dC5nZXR2YWx1
ZSgpKSkpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9weXRlc3RydW5uZXIvcnVubmVyLnB5CmluZGV4IDNkMzI5MTc2NTliMy4uNTA4MTlhOTM1ODk5
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
cHl0ZXN0cnVubmVyL3J1bm5lci5weQpAQCAtMjQsNyArMjQsNyBAQCBkZWYgZG9fZGVsYXllZF9p
bXBvcnRzKCk6CiAgICAgaW1wb3J0IHB5dGVzdAogCiAKLWRlZiBydW4ocGF0aCwgc2VydmVyX2Nv
bmZpZywgc2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCk6CitkZWYgcnVuKHBhdGgsIHNlcnZlcl9j
b25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTAsIGVudmlyb249Tm9uZSk6CiAgICAgIiIi
CiAgICAgUnVuIFB5dGhvbiB0ZXN0IGF0IGBgcGF0aGBgIGluIHB5dGVzdC4gIFRoZSBwcm92aWRl
ZCBgYHNlc3Npb25gYAogICAgIGlzIGV4cG9zZWQgYXMgYSBmaXh0dXJlIGF2YWlsYWJsZSBpbiB0
aGUgc2NvcGUgb2YgdGhlIHRlc3QgZnVuY3Rpb25zLgpAQCAtNDEsMjggKzQxLDQwIEBAIGRlZiBy
dW4ocGF0aCwgc2VydmVyX2NvbmZpZywgc2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCk6CiAgICAg
aWYgcHl0ZXN0IGlzIE5vbmU6CiAgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCiAKLSAgICBv
cy5lbnZpcm9uWyJXRF9IT1NUIl0gPSBzZXNzaW9uX2NvbmZpZ1siaG9zdCJdCi0gICAgb3MuZW52
aXJvblsiV0RfUE9SVCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCi0gICAgb3MuZW52
aXJvblsiV0RfQ0FQQUJJTElUSUVTIl0gPSBqc29uLmR1bXBzKHNlc3Npb25fY29uZmlnWyJjYXBh
YmlsaXRpZXMiXSkKLSAgICBvcy5lbnZpcm9uWyJXRF9TRVJWRVJfQ09ORklHIl0gPSBqc29uLmR1
bXBzKHNlcnZlcl9jb25maWcuYXNfZGljdF9mb3Jfd2RfZW52X3ZhcmlhYmxlKCkpCi0KLSAgICBo
YXJuZXNzID0gSGFybmVzc1Jlc3VsdFJlY29yZGVyKCkKLSAgICBzdWJ0ZXN0cyA9IFN1YnRlc3RS
ZXN1bHRSZWNvcmRlcigpCi0KLSAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hl
OgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBweXRlc3QubWFpbihbIi0tc3RyaWN0IiwgICMg
dHVybiB3YXJuaW5ncyBpbnRvIGVycm9ycwotICAgICAgICAgICAgICAgICAgICAgICAgICItdnYi
LCAgIyBzaG93IGVhY2ggaW5kaXZpZHVhbCBzdWJ0ZXN0IGFuZCBmdWxsIGZhaWx1cmUgbG9ncwot
ICAgICAgICAgICAgICAgICAgICAgICAgICItLWNhcHR1cmUiLCAibm8iLCAgIyBlbmFibGUgc3Rk
b3V0L3N0ZGVyciBmcm9tIHRlc3RzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmFzZXRl
bXAiLCBjYWNoZSwgICMgdGVtcG9yYXJ5IGRpcmVjdG9yeQotICAgICAgICAgICAgICAgICAgICAg
ICAgICItLXNob3dsb2NhbHMiLCAgIyBkaXNwbGF5IGNvbnRlbnRzIG9mIHZhcmlhYmxlcyBpbiBs
b2NhbCBzY29wZQotICAgICAgICAgICAgICAgICAgICAgICAgICItcCIsICJubzptb3psb2ciLCAg
IyB1c2UgdGhlIFdQVCByZXN1bHQgcmVjb3JkZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAi
LXAiLCAibm86Y2FjaGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUgcHJlc2VydmF0aW9uIGFj
cm9zcyBpbnZvY2F0aW9ucwotICAgICAgICAgICAgICAgICAgICAgICAgICItbz1jb25zb2xlX291
dHB1dF9zdHlsZT1jbGFzc2ljIiwgICMgZGlzYWJsZSB0ZXN0IHByb2dyZXNzIGJhcgotICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhdGhdLAotICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2lu
cz1baGFybmVzcywgc3VidGVzdHNdKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0g
ICAgICAgICAgICBoYXJuZXNzLm91dGNvbWUgPSAoIklOVEVSTkFMLUVSUk9SIiwgc3RyKGUpKQor
ICAgIG9sZF9lbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICB0cnk6CisgICAgICAgIHdp
dGggVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgY2FjaGU6CisgICAgICAgICAgICBvcy5lbnZpcm9u
WyJXRF9IT1NUIl0gPSBzZXNzaW9uX2NvbmZpZ1siaG9zdCJdCisgICAgICAgICAgICBvcy5lbnZp
cm9uWyJXRF9QT1JUIl0gPSBzdHIoc2Vzc2lvbl9jb25maWdbInBvcnQiXSkKKyAgICAgICAgICAg
IG9zLmVudmlyb25bIldEX0NBUEFCSUxJVElFUyJdID0ganNvbi5kdW1wcyhzZXNzaW9uX2NvbmZp
Z1siY2FwYWJpbGl0aWVzIl0pCisKKyAgICAgICAgICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5q
b2luKGNhY2hlLCAid2Rfc2VydmVyX2NvbmZpZy5qc29uIikKKyAgICAgICAgICAgIG9zLmVudmly
b25bIldEX1NFUlZFUl9DT05GSUdfRklMRSJdID0gY29uZmlnX3BhdGgKKyAgICAgICAgICAgIHdp
dGggb3Blbihjb25maWdfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGpzb24uZHVt
cChzZXJ2ZXJfY29uZmlnLmFzX2RpY3QoKSwgZikKKworICAgICAgICAgICAgaWYgZW52aXJvbjoK
KyAgICAgICAgICAgICAgICBvcy5lbnZpcm9uLnVwZGF0ZShlbnZpcm9uKQorCisgICAgICAgICAg
ICBoYXJuZXNzID0gSGFybmVzc1Jlc3VsdFJlY29yZGVyKCkKKyAgICAgICAgICAgIHN1YnRlc3Rz
ID0gU3VidGVzdFJlc3VsdFJlY29yZGVyKCkKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHB5dGVzdC5tYWluKFsiLS1zdHJpY3QiLCAgIyB0dXJuIHdhcm5pbmdzIGludG8gZXJy
b3JzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItdnYiLCAgIyBzaG93IGVhY2ggaW5k
aXZpZHVhbCBzdWJ0ZXN0IGFuZCBmdWxsIGZhaWx1cmUgbG9ncworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLS1jYXB0dXJlIiwgIm5vIiwgICMgZW5hYmxlIHN0ZG91dC9zdGRlcnIgZnJv
bSB0ZXN0cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1iYXNldGVtcCIsIGNhY2hl
LCAgIyB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
LXNob3dsb2NhbHMiLCAgIyBkaXNwbGF5IGNvbnRlbnRzIG9mIHZhcmlhYmxlcyBpbiBsb2NhbCBz
Y29wZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAibm86bW96bG9nIiwgICMg
dXNlIHRoZSBXUFQgcmVzdWx0IHJlY29yZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItcCIsICJubzpjYWNoZXByb3ZpZGVyIiwgICMgZGlzYWJsZSBzdGF0ZSBwcmVzZXJ2YXRpb24g
YWNyb3NzIGludm9jYXRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbz1jb25z
b2xlX291dHB1dF9zdHlsZT1jbGFzc2ljIiwgICMgZGlzYWJsZSB0ZXN0IHByb2dyZXNzIGJhcgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5zPVtoYXJuZXNzLCBzdWJ0ZXN0c10pCisgICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgaGFybmVzcy5vdXRjb21lID0gKCJJTlRF
Uk5BTC1FUlJPUiIsIHN0cihlKSkKKworICAgIGZpbmFsbHk6CisgICAgICAgIG9zLmVudmlyb24g
PSBvbGRfZW52aXJvbgogCiAgICAgcmV0dXJuIChoYXJuZXNzLm91dGNvbWUsIHN1YnRlc3RzLnJl
c3VsdHMpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4cGVjdGVkdHJlZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4cGVjdGVkdHJlZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc2YWRlOTVmMDdmNwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4cGVjdGVkdHJlZS5weQpAQCAtMCwwICsxLDEzMSBAQAorZnJvbSBtYXRoIGltcG9y
dCBsb2cKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CisKK2NsYXNzIE5vZGUo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcHJvcCwgdmFsdWUpOgorICAgICAgICBz
ZWxmLnByb3AgPSBwcm9wCisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorICAgICAgICBzZWxm
LnBhcmVudCA9IE5vbmUKKworICAgICAgICBzZWxmLmNoaWxkcmVuID0gc2V0KCkKKworICAgICAg
ICAjIFBvcHVsYXRlZCBmb3IgbGVhZiBub2RlcworICAgICAgICBzZWxmLnJ1bl9pbmZvID0gc2V0
KCkKKyAgICAgICAgc2VsZi5yZXN1bHRfdmFsdWVzID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAg
ZGVmIGFkZChzZWxmLCBub2RlKToKKyAgICAgICAgc2VsZi5jaGlsZHJlbi5hZGQobm9kZSkKKyAg
ICAgICAgbm9kZS5wYXJlbnQgPSBzZWxmCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAg
ICAgIHlpZWxkIHNlbGYKKyAgICAgICAgZm9yIG5vZGUgaW4gc2VsZi5jaGlsZHJlbjoKKyAgICAg
ICAgICAgIGZvciBpdGVtIGluIG5vZGU6CisgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorCisg
ICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiAxICsgc3VtKGxlbihpdGVtKSBm
b3IgaXRlbSBpbiBzZWxmLmNoaWxkcmVuKQorCisKK2RlZiBlbnRyb3B5KHJlc3VsdHMpOgorICAg
ICIiIlRoaXMgaXMgYmFzaWNhbGx5IGEgbWVhc3VyZSBvZiB0aGUgdW5pZm9ybWl0eSBvZiB0aGUg
dmFsdWVzIGluIHJlc3VsdHMKKyAgICBiYXNlZCBvbiB0aGUgc2hhbm5vbiBlbnRyb3B5IiIiCisK
KyAgICByZXN1bHRfY291bnRzID0gZGVmYXVsdGRpY3QoaW50KQorICAgIHRvdGFsID0gZmxvYXQo
bGVuKHJlc3VsdHMpKQorICAgIGZvciB2YWx1ZXMgaW4gcmVzdWx0cy52YWx1ZXMoKToKKyAgICAg
ICAgIyBOb3Qgc3VyZSB0aGlzIGlzIHJpZ2h0LCBwb3NzaWJseSB3YW50IHRvIHRyZWF0IG11bHRp
cGxlIHZhbHVlcyBhcworICAgICAgICAjIGRpc3RpbmN0IGZyb20gbXVsdGlwbGUgb2YgdGhlIHNh
bWUgdmFsdWU/CisgICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1ZXM6CisgICAgICAgICAgICByZXN1
bHRfY291bnRzW3ZhbHVlXSArPSAxCisKKyAgICBlbnRyb3B5X3N1bSA9IDAKKworICAgIGZvciBj
b3VudCBpbiByZXN1bHRfY291bnRzLnZhbHVlcygpOgorICAgICAgICBwcm9wID0gZmxvYXQoY291
bnQpIC8gdG90YWwKKyAgICAgICAgZW50cm9weV9zdW0gLT0gcHJvcCAqIGxvZyhwcm9wLCAyKQor
CisgICAgcmV0dXJuIGVudHJvcHlfc3VtCisKKworZGVmIHNwbGl0X3Jlc3VsdHMocHJvcCwgcmVz
dWx0cyk6CisgICAgIiIiU3BsaXQgYSBkaWN0aW9uYXJ5IG9mIHJlc3VsdHMgaW50byBhIGRpY3Rp
b25hcnkgb2YgZGljdGlvbmFyaWVzIHdoZXJlCisgICAgZWFjaCBzdWItZGljdGlvbmFyeSBoYXMg
YSBzcGVjaWZpYyB2YWx1ZSBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkiIiIKKyAgICBieV9wcm9wID0g
ZGVmYXVsdGRpY3QoZGljdCkKKyAgICBmb3IgcnVuX2luZm8sIHZhbHVlIGluIHJlc3VsdHMuaXRl
bXMoKToKKyAgICAgICAgYnlfcHJvcFtydW5faW5mb1twcm9wXV1bcnVuX2luZm9dID0gdmFsdWUK
KworICAgIHJldHVybiBieV9wcm9wCisKKworZGVmIGJ1aWxkX3RyZWUocHJvcGVydGllcywgZGVw
ZW5kZW50X3Byb3BzLCByZXN1bHRzLCB0cmVlPU5vbmUpOgorICAgICIiIkJ1aWxkIGEgZGVjaXNp
b24gdHJlZSBtYXBwaW5nIHByb3BlcnRpZXMgdG8gcmVzdWx0cworCisgICAgOnBhcmFtIHByb3Bl
cnRpZXM6IC0gQSBsaXN0IG9mIHJ1bl9pbmZvIHByb3BlcnRpZXMgdG8gY29uc2lkZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiB0aGUgdHJlZQorICAgIDpwYXJhbSBkZXBlbmRlbnRfcHJv
cHM6IC0gQSBkaWN0aW9uYXJ5IG1hcHBpbmcgcHJvcGVydHkgbmFtZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdG8gcHJvcGVydGllcyB0aGF0IHNob3VsZCBvbmx5IGJlIGNvbnNpZGVy
ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBwcm9wZXJ0aWVzIGlu
IHRoZSBrZXkuIEZvciBleGFtcGxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im9z
IjogWyJ2ZXJzaW9uIl19IG1lYW5zIHRoYXQgInZlcnNpb24iIHdvbid0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBiZSB1c2VkIHVudGlsIGFmdGVyIG9zLgorICAgIDpwYXJhbSByZXN1
bHRzOiBEaWN0aW9uYXJ5IG1hcHBpbmcgcnVuX2luZm8gdG8gc2V0IG9mIHJlc3VsdHMKKyAgICA6
dHJlZTogQSBOb2RlIG9iamVjdCB0byB1c2UgYXMgdGhlIHJvb3Qgb2YgdGhlIChzdWIpdHJlZSIi
IgorCisgICAgaWYgdHJlZSBpcyBOb25lOgorICAgICAgICB0cmVlID0gTm9kZShOb25lLCBOb25l
KQorCisgICAgcHJvcF9pbmRleCA9IHtwcm9wOiBpIGZvciBpLCBwcm9wIGluIGVudW1lcmF0ZShw
cm9wZXJ0aWVzKX0KKworICAgIGFsbF9yZXN1bHRzID0gZGVmYXVsdGRpY3QoaW50KQorICAgIGZv
ciByZXN1bHRfdmFsdWVzIGluIHJlc3VsdHMudmFsdWVzKCk6CisgICAgICAgIGZvciByZXN1bHRf
dmFsdWUsIGNvdW50IGluIHJlc3VsdF92YWx1ZXMuaXRlbXMoKToKKyAgICAgICAgICAgIGFsbF9y
ZXN1bHRzW3Jlc3VsdF92YWx1ZV0gKz0gY291bnQKKworICAgICMgSWYgdGhlcmUgaXMgb25seSBv
bmUgcmVzdWx0IHdlIGFyZSBkb25lCisgICAgaWYgbm90IHByb3BlcnRpZXMgb3IgbGVuKGFsbF9y
ZXN1bHRzKSA9PSAxOgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIGFsbF9yZXN1bHRzLml0
ZW1zKCk6CisgICAgICAgICAgICB0cmVlLnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50Cisg
ICAgICAgIHRyZWUucnVuX2luZm8gfD0gc2V0KHJlc3VsdHMua2V5cygpKQorICAgICAgICByZXR1
cm4gdHJlZQorCisgICAgcmVzdWx0c19wYXJ0aXRpb25zID0gW10KKyAgICByZW1vdmVfcHJvcGVy
dGllcyA9IHNldCgpCisgICAgZm9yIHByb3AgaW4gcHJvcGVydGllczoKKyAgICAgICAgcmVzdWx0
X3NldHMgPSBzcGxpdF9yZXN1bHRzKHByb3AsIHJlc3VsdHMpCisgICAgICAgIGlmIGxlbihyZXN1
bHRfc2V0cykgPT0gMToKKyAgICAgICAgICAgICMgSWYgdGhpcyBwcm9wZXJ0eSBkb2Vzbid0IHBh
cnRpdGlvbiB0aGUgc3BhY2UgdGhlbiBqdXN0IHJlbW92ZSBpdAorICAgICAgICAgICAgIyBmcm9t
IHRoZSBzZXQgdG8gY29uc2lkZXIKKyAgICAgICAgICAgIHJlbW92ZV9wcm9wZXJ0aWVzLmFkZChw
cm9wKQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbmV3X2VudHJvcHkgPSAwLgorICAg
ICAgICByZXN1bHRzX3NldHNfZW50cm9weSA9IFtdCisgICAgICAgIGZvciBwcm9wX3ZhbHVlLCBy
ZXN1bHRfc2V0IGluIHJlc3VsdF9zZXRzLml0ZW1zKCk6CisgICAgICAgICAgICByZXN1bHRzX3Nl
dHNfZW50cm9weS5hcHBlbmQoKGVudHJvcHkocmVzdWx0X3NldCksIHByb3BfdmFsdWUsIHJlc3Vs
dF9zZXQpKQorICAgICAgICAgICAgbmV3X2VudHJvcHkgKz0gKGZsb2F0KGxlbihyZXN1bHRfc2V0
KSkgLyBsZW4ocmVzdWx0cykpICogcmVzdWx0c19zZXRzX2VudHJvcHlbLTFdWzBdCisKKyAgICAg
ICAgcmVzdWx0c19wYXJ0aXRpb25zLmFwcGVuZCgobmV3X2VudHJvcHksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdHNfc2V0c19lbnRyb3B5KSkKKworICAgICMgSW4gdGhlIGNhc2UgdGhhdCBu
byBwcm9wZXJ0aWVzIHBhcnRpdGlvbiB0aGUgc3BhY2UKKyAgICBpZiBub3QgcmVzdWx0c19wYXJ0
aXRpb25zOgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIGFsbF9yZXN1bHRzLml0ZW1zKCk6
CisgICAgICAgICAgICB0cmVlLnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CisgICAgICAg
IHRyZWUucnVuX2luZm8gfD0gc2V0KHJlc3VsdHMua2V5cygpKQorICAgICAgICByZXR1cm4gdHJl
ZQorCisgICAgIyBzcGxpdCBieSB0aGUgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBlbnRyb3B5
CisgICAgcmVzdWx0c19wYXJ0aXRpb25zLnNvcnQoa2V5PWxhbWJkYSB4OiAoeFswXSwgcHJvcF9p
bmRleFt4WzFdXSkpCisgICAgXywgYmVzdF9wcm9wLCBzdWJfcmVzdWx0cyA9IHJlc3VsdHNfcGFy
dGl0aW9uc1swXQorCisgICAgIyBDcmVhdGUgYSBuZXcgc2V0IG9mIHByb3BlcnRpZXMgdGhhdCBj
YW4gYmUgdXNlZAorICAgIG5ld19wcm9wcyA9IHByb3BlcnRpZXNbOnByb3BfaW5kZXhbYmVzdF9w
cm9wXV0gKyBwcm9wZXJ0aWVzW3Byb3BfaW5kZXhbYmVzdF9wcm9wXSArIDE6XQorICAgIG5ld19w
cm9wcy5leHRlbmQoZGVwZW5kZW50X3Byb3BzLmdldChiZXN0X3Byb3AsIFtdKSkKKyAgICBpZiBy
ZW1vdmVfcHJvcGVydGllczoKKyAgICAgICAgbmV3X3Byb3BzID0gW2l0ZW0gZm9yIGl0ZW0gaW4g
bmV3X3Byb3BzIGlmIGl0ZW0gbm90IGluIHJlbW92ZV9wcm9wZXJ0aWVzXQorCisgICAgZm9yIF8s
IHByb3BfdmFsdWUsIHJlc3VsdHNfc2V0cyBpbiBzdWJfcmVzdWx0czoKKyAgICAgICAgbm9kZSA9
IE5vZGUoYmVzdF9wcm9wLCBwcm9wX3ZhbHVlKQorICAgICAgICB0cmVlLmFkZChub2RlKQorICAg
ICAgICBidWlsZF90cmVlKG5ld19wcm9wcywgZGVwZW5kZW50X3Byb3BzLCByZXN1bHRzX3NldHMs
IG5vZGUpCisgICAgcmV0dXJuIHRyZWUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5CmluZGV4IDkx
MDM1OGY1MTU5Ni4uMzllMjQ4YjI1MWIwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKQEAg
LTc3LDEzICs3NywxNSBAQCBjbGFzcyBGb250SW5zdGFsbGVyKG9iamVjdCk6CiAKICAgICAgICAg
IyBQZXIgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXN1bHRzLWNvbGxl
Y3Rpb24vaXNzdWVzLzIxOAogICAgICAgICAjIGluc3RhbGxpbmcgQWhlbSBvbiBtYWNPUyBpcyBm
bGFreSwgc28gY2hlY2sgaWYgaXQgYWN0dWFsbHkgaW5zdGFsbGVkCi0gICAgICAgIGZvbnRzID0g
Y2hlY2tfb3V0cHV0KFsnL3Vzci9zYmluL3N5c3RlbV9wcm9maWxlcicsICcteG1sJywgJ1NQRm9u
dHNEYXRhVHlwZSddKQorICAgICAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBmOgor
ICAgICAgICAgICAgZm9udHMgPSBjaGVja19vdXRwdXQoWycvdXNyL3NiaW4vc3lzdGVtX3Byb2Zp
bGVyJywgJy14bWwnLCAnU1BGb250c0RhdGFUeXBlJ10sIHN0ZGVycj1mKQorCiAgICAgICAgIHRy
eToKICAgICAgICAgICAgICMgaWYgcHkzCi0gICAgICAgICAgICByZWFkUGxpc3RGcm9tQnl0ZXMg
PSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tQnl0ZXMKKyAgICAgICAgICAgIGxvYWRfcGxpc3QgPSBw
bGlzdGxpYi5sb2FkcwogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAg
ICByZWFkUGxpc3RGcm9tQnl0ZXMgPSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tU3RyaW5nCi0gICAg
ICAgIGZvbnRzID0gcmVhZFBsaXN0RnJvbUJ5dGVzKGZvbnRzKQorICAgICAgICAgICAgbG9hZF9w
bGlzdCA9IHBsaXN0bGliLnJlYWRQbGlzdEZyb21TdHJpbmcKKyAgICAgICAgZm9udHMgPSBsb2Fk
X3BsaXN0KGZvbnRzKQogICAgICAgICBhc3NlcnQgbGVuKGZvbnRzKSA9PSAxCiAgICAgICAgIGZv
ciBmb250IGluIGZvbnRzWzBdWydfaXRlbXMnXToKICAgICAgICAgICAgIGlmIGZvbnRbJ3BhdGgn
XSA9PSBpbnN0YWxsZWRfZm9udF9wYXRoOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9fX2luaXRfXy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Zvcm1hdHRlcnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3Jt
YXR0ZXJzL2Nocm9taXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uZTg2ZjMzMzBhZjlmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weQpA
QCAtMCwwICsxLDI3NiBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCB0aW1lCisKK2Zyb20gY29sbGVj
dGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0Citmcm9tIG1vemxvZy5mb3JtYXR0ZXJzIGltcG9ydCBi
YXNlCisKKworY2xhc3MgQ2hyb21pdW1Gb3JtYXR0ZXIoYmFzZS5CYXNlRm9ybWF0dGVyKTogICMg
dHlwZTogaWdub3JlCisgICAgIiIiRm9ybWF0dGVyIHRvIHByb2R1Y2UgcmVzdWx0cyBtYXRjaGlu
ZyB0aGUgQ2hyb21pdW0gSlNPTiBUZXN0IFJlc3VsdHMgZm9ybWF0LgorICAgIGh0dHBzOi8vY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0ZXIvZG9jcy90ZXN0aW5n
L2pzb25fdGVzdF9yZXN1bHRzX2Zvcm1hdC5tZAorCisgICAgTm90YWJseSwgZWFjaCB0ZXN0IGhh
cyBhbiAiYXJ0aWZhY3RzIiBmaWVsZCB0aGF0IGlzIGEgZGljdCBjb25zaXN0aW5nIG9mCisgICAg
ICAgICJsb2ciOiBhIGxpc3Qgb2Ygc3RyaW5ncyAob25lIHBlciBzdWJ0ZXN0ICsgb25lIGZvciBo
YXJuZXNzIHN0YXR1cywgc2VlCisgICAgICAgICAgICBfYXBwZW5kX3Rlc3RfbWVzc2FnZSBmb3Ig
dGhlIGZvcm1hdCkKKyAgICAgICAgInNjcmVlbnNob3RzIjogYSBsaXN0IG9mIHN0cmluZ3MgaW4g
dGhlIGZvcm1hdCBvZiAidXJsOiBiYXNlNjQiCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKKyAgICAgICAgIyBXaGV0aGVyIHRoZSBydW4gd2FzIGludGVycnVwdGVkLCBlaXRo
ZXIgYnkgdGhlIHRlc3QgcnVubmVyIG9yIHVzZXIuCisgICAgICAgIHNlbGYuaW50ZXJydXB0ZWQg
PSBGYWxzZQorCisgICAgICAgICMgQSBtYXAgb2YgdGVzdCBzdGF0dXMgdG8gdGhlIG51bWJlciBv
ZiB0ZXN0cyB0aGF0IGhhZCB0aGF0IHN0YXR1cy4KKyAgICAgICAgc2VsZi5udW1fZmFpbHVyZXNf
Ynlfc3RhdHVzID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAgICAgICMgU3RhcnQgdGltZSwgZXhw
cmVzc2VkIGFzIG9mZnNldCBzaW5jZSBVTklYIGVwb2NoIGluIHNlY29uZHMuCisgICAgICAgIHNl
bGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMgPSBOb25lCisKKyAgICAgICAgIyBUcmllIG9mIHRl
c3QgcmVzdWx0cy4gRWFjaCBkaXJlY3RvcnkgaW4gdGhlIHRlc3QgbmFtZSBpcyBhIG5vZGUgaW4K
KyAgICAgICAgIyB0aGUgdHJpZSBhbmQgdGhlIGxlYWYgY29udGFpbnMgdGhlIGRpY3Qgb2YgcGVy
LXRlc3QgZGF0YS4KKyAgICAgICAgc2VsZi50ZXN0cyA9IHt9CisKKyAgICAgICAgIyBUd28gZGlj
dGlvbmFyaWVzIGtleWVkIGJ5IHRlc3QgbmFtZS4gVmFsdWVzIGFyZSBsaXN0cyBvZiBzdHJpbmdz
OgorICAgICAgICAjIGFjdHVhbCBtZXRhZGF0YSBjb250ZW50IGFuZCBvdGhlciBtZXNzYWdlcywg
cmVzcGVjdGl2ZWx5LgorICAgICAgICAjIFNlZSBfYXBwZW5kX3Rlc3RfbWVzc2FnZSBmb3IgZXhh
bXBsZXMuCisgICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhID0gZGVmYXVsdGRpY3QobGlzdCkK
KyAgICAgICAgc2VsZi5tZXNzYWdlcyA9IGRlZmF1bHRkaWN0KGxpc3QpCisKKyAgICAgICAgIyBM
aXN0IG9mIHRlc3RzIHRoYXQgaGF2ZSBmYWlsaW5nIHN1YnRlc3RzLgorICAgICAgICBzZWxmLnRl
c3RzX3dpdGhfc3VidGVzdF9mYWlscyA9IHNldCgpCisKKyAgICAgICAgIyBCcm93c2VyIGxvZyBm
b3IgdGhlIGN1cnJlbnQgdGVzdCB1bmRlciBleGVjdXRpb24uCisgICAgICAgICMgVGhlc2UgbG9n
cyBhcmUgZnJvbSBDaHJvbWVEcml2ZXIncyBzdGRvdXQvZXJyLCBzbyB3ZSBjYW5ub3Qgc2F5IGZv
cgorICAgICAgICAjIHN1cmUgd2hpY2ggdGVzdCBhIG1lc3NhZ2UgaXMgZnJvbSwgYnV0IGluc3Rl
YWQgd2UgY29ycmVsYXRlIHRoZW0gYmFzZWQKKyAgICAgICAgIyBvbiB0aW1pbmcuCisgICAgICAg
IHNlbGYuYnJvd3Nlcl9sb2cgPSBbXQorCisgICAgZGVmIF9hcHBlbmRfdGVzdF9tZXNzYWdlKHNl
bGYsIHRlc3QsIHN1YnRlc3QsIHdwdF9hY3R1YWxfc3RhdHVzLCBtZXNzYWdlKToKKyAgICAgICAg
ciIiIgorICAgICAgICBBcHBlbmRzIHRoZSBtZXNzYWdlIGRhdGEgZm9yIGEgdGVzdCBvciBzdWJ0
ZXN0LgorCisgICAgICAgIDpwYXJhbSBzdHIgdGVzdDogdGhlIG5hbWUgb2YgdGhlIHRlc3QKKyAg
ICAgICAgOnBhcmFtIHN0ciBzdWJ0ZXN0OiB0aGUgbmFtZSBvZiB0aGUgc3VidGVzdCB3aXRoIHRo
ZSBtZXNzYWdlLiBXaWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSBpZiB0
aGlzIGlzIGNhbGxlZCBmb3IgYSB0ZXN0LgorICAgICAgICA6cGFyYW0gc3RyIHdwdF9hY3R1YWxf
c3RhdHVzOiB0aGUgdGVzdCBzdGF0dXMgYXMgcmVwb3J0ZWQgYnkgV1BUCisgICAgICAgIDpwYXJh
bSBzdHIgbWVzc2FnZTogdGhlIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIG1lc3NhZ2UgZm9yIHRo
aXMgdGVzdAorCisgICAgICAgIEV4YW1wbGUgYWN0dWFsX21ldGFkYXRhIG9mIGEgdGVzdCB3aXRo
IGEgc3VidGVzdDoKKyAgICAgICAgICAgICJbdGVzdF9uYW1lXVxuICBleHBlY3RlZDogT0tcbiIK
KyAgICAgICAgICAgICIgIFtzdWJ0ZXN0X25hbWVdXG4gICAgZXhwZWN0ZWQ6IEZBSUxcbiIKKwor
ICAgICAgICBOT1RFOiB0aHJvdWdob3V0IHRoaXMgZnVuY3Rpb24gd2Ugb3V0cHV0IGEga2V5IGNh
bGxlZCAiZXhwZWN0ZWQiIGJ1dAorICAgICAgICBmaWxsIGl0IGluIHdpdGggdGhlIGFjdHVhbCBz
dGF0dXMuIFRoaXMgaXMgYnkgZGVzaWduLiBUaGUgZ29hbCBvZiB0aGlzCisgICAgICAgIG91dHB1
dCBpcyB0byBsb29rIGV4YWN0bHkgbGlrZSBXUFQncyBleHBlY3RhdGlvbiBtZXRhZGF0YSBzbyB0
aGF0IGl0CisgICAgICAgIGNhbiBiZSBlYXNpbHkgZGlmZi1lZC4KKworICAgICAgICBNZXNzYWdl
cyBhcmUgYXBwZW5kZWQgdmVyYmF0aW0gdG8gc2VsZi5tZXNzYWdlc1t0ZXN0XS4KKyAgICAgICAg
IiIiCisgICAgICAgIGlmIHN1YnRlc3Q6CisgICAgICAgICAgICByZXN1bHQgPSAiICBbJXNdXG4g
ICAgZXhwZWN0ZWQ6ICVzXG4iICUgKHN1YnRlc3QsIHdwdF9hY3R1YWxfc3RhdHVzKQorICAgICAg
ICAgICAgc2VsZi5hY3R1YWxfbWV0YWRhdGFbdGVzdF0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAg
ICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICAgICAgc2VsZi5tZXNzYWdlc1t0ZXN0XS5hcHBl
bmQoIiVzOiAlc1xuIiAlIChzdWJ0ZXN0LCBtZXNzYWdlKSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICMgTm8gc3VidGVzdCwgc28gdGhpcyBpcyB0aGUgdG9wLWxldmVsIHRlc3QuIFRoZSBy
ZXN1bHQgbXVzdCBiZQorICAgICAgICAgICAgIyBwcmVwZW5kZWQgdG8gdGhlIGxpc3QsIHNvIHRo
YXQgaXQgY29tZXMgYmVmb3JlIGFueSBzdWJ0ZXN0LgorICAgICAgICAgICAgdGVzdF9uYW1lX2xh
c3RfcGFydCA9IHRlc3Quc3BsaXQoIi8iKVstMV0KKyAgICAgICAgICAgIHJlc3VsdCA9ICJbJXNd
XG4gIGV4cGVjdGVkOiAlc1xuIiAlICh0ZXN0X25hbWVfbGFzdF9wYXJ0LCB3cHRfYWN0dWFsX3N0
YXR1cykKKyAgICAgICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhW3Rlc3RdLmluc2VydCgwLCBy
ZXN1bHQpCisgICAgICAgICAgICBpZiBtZXNzYWdlOgorICAgICAgICAgICAgICAgIHNlbGYubWVz
c2FnZXNbdGVzdF0uaW5zZXJ0KDAsICJIYXJuZXNzOiAlc1xuIiAlIG1lc3NhZ2UpCisKKyAgICBk
ZWYgX2FwcGVuZF9hcnRpZmFjdChzZWxmLCBjdXJfZGljdCwgYXJ0aWZhY3RfbmFtZSwgYXJ0aWZh
Y3RfdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQXBwZW5kcyBhcnRpZmFjdHMgdG8gdGhl
IHNwZWNpZmllZCBkaWN0aW9uYXJ5LgorICAgICAgICA6cGFyYW0gZGljdCBjdXJfZGljdDogdGhl
IHRlc3QgbGVhZiBkaWN0aW9uYXJ5IHRvIGFwcGVuZCB0bworICAgICAgICA6cGFyYW0gc3RyIGFy
dGlmYWN0X25hbWU6IHRoZSBuYW1lIG9mIHRoZSBhcnRpZmFjdAorICAgICAgICA6cGFyYW0gc3Ry
IGFydGlmYWN0X3ZhbHVlOiB0aGUgdmFsdWUgb2YgdGhlIGFydGlmYWN0CisgICAgICAgICIiIgor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhcnRpZmFjdF92YWx1ZSwgc3RyKSwgImFydGlmYWN0
X3ZhbHVlIG11c3QgYmUgYSBzdHIiCisgICAgICAgIGlmICJhcnRpZmFjdHMiIG5vdCBpbiBjdXJf
ZGljdC5rZXlzKCk6CisgICAgICAgICAgICBjdXJfZGljdFsiYXJ0aWZhY3RzIl0gPSBkZWZhdWx0
ZGljdChsaXN0KQorICAgICAgICBjdXJfZGljdFsiYXJ0aWZhY3RzIl1bYXJ0aWZhY3RfbmFtZV0u
YXBwZW5kKGFydGlmYWN0X3ZhbHVlKQorCisgICAgZGVmIF9zdG9yZV90ZXN0X3Jlc3VsdChzZWxm
LCBuYW1lLCBhY3R1YWwsIGV4cGVjdGVkLCBhY3R1YWxfbWV0YWRhdGEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlcywgd3B0X2FjdHVhbCwgc3VidGVzdF9mYWlsdXJlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9zY3JlZW5zaG90cz1Ob25lKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFN0b3JlcyB0aGUgcmVzdWx0IG9mIGEgc2luZ2xlIHRlc3QgaW4gfHNl
bGYudGVzdHN8CisKKyAgICAgICAgOnBhcmFtIHN0ciBuYW1lOiBuYW1lIG9mIHRoZSB0ZXN0Lgor
ICAgICAgICA6cGFyYW0gc3RyIGFjdHVhbDogYWN0dWFsIHN0YXR1cyBvZiB0aGUgdGVzdC4KKyAg
ICAgICAgOnBhcmFtIHN0ciBleHBlY3RlZDogZXhwZWN0ZWQgc3RhdHVzZXMgb2YgdGhlIHRlc3Qu
CisgICAgICAgIDpwYXJhbSBsaXN0IGFjdHVhbF9tZXRhZGF0YTogYSBsaXN0IG9mIG1ldGFkYXRh
IGl0ZW1zLgorICAgICAgICA6cGFyYW0gbGlzdCBtZXNzYWdlczogYSBsaXN0IG9mIHRlc3QgbWVz
c2FnZXMuCisgICAgICAgIDpwYXJhbSBzdHIgd3B0X2FjdHVhbDogYWN0dWFsIHN0YXR1cyByZXBv
cnRlZCBieSB3cHQsIG1heSBkaWZmZXIgZnJvbSB8YWN0dWFsfC4KKyAgICAgICAgOnBhcmFtIGJv
b2wgc3VidGVzdF9mYWlsdXJlOiB3aGV0aGVyIHRoaXMgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBz
dWJ0ZXN0cy4KKyAgICAgICAgOnBhcmFtIE9wdGlvbmFsW2xpc3RdIHJlZnRlc3Rfc2NyZWVuc2hv
dHM6IHNlZSBleGVjdXRvcnMvYmFzZS5weSBmb3IgZGVmaW5pdGlvbi4KKyAgICAgICAgIiIiCisg
ICAgICAgICMgVGhlIHRlc3QgbmFtZSBjYW4gY29udGFpbiBhIGxlYWRpbmcgLyB3aGljaCB3aWxs
IHByb2R1Y2UgYW4gZW1wdHkKKyAgICAgICAgIyBzdHJpbmcgaW4gdGhlIGZpcnN0IHBvc2l0aW9u
IG9mIHRoZSBsaXN0IHJldHVybmVkIGJ5IHNwbGl0LiBXZSB1c2UKKyAgICAgICAgIyBmaWx0ZXIo
Tm9uZSkgdG8gcmVtb3ZlIHN1Y2ggZW50cmllcy4KKyAgICAgICAgbmFtZV9wYXJ0cyA9IGZpbHRl
cihOb25lLCBuYW1lLnNwbGl0KCIvIikpCisgICAgICAgIGN1cl9kaWN0ID0gc2VsZi50ZXN0cwor
ICAgICAgICBmb3IgbmFtZV9wYXJ0IGluIG5hbWVfcGFydHM6CisgICAgICAgICAgICBjdXJfZGlj
dCA9IGN1cl9kaWN0LnNldGRlZmF1bHQobmFtZV9wYXJ0LCB7fSkKKyAgICAgICAgY3VyX2RpY3Rb
ImFjdHVhbCJdID0gYWN0dWFsCisgICAgICAgIGN1cl9kaWN0WyJleHBlY3RlZCJdID0gZXhwZWN0
ZWQKKyAgICAgICAgaWYgc3VidGVzdF9mYWlsdXJlOgorICAgICAgICAgICAgc2VsZi5fYXBwZW5k
X2FydGlmYWN0KGN1cl9kaWN0LCAid3B0X3N1YnRlc3RfZmFpbHVyZSIsICJ0cnVlIikKKyAgICAg
ICAgaWYgd3B0X2FjdHVhbCAhPSBhY3R1YWw6CisgICAgICAgICAgICBzZWxmLl9hcHBlbmRfYXJ0
aWZhY3QoY3VyX2RpY3QsICJ3cHRfYWN0dWFsX3N0YXR1cyIsIHdwdF9hY3R1YWwpCisgICAgICAg
IGlmIHdwdF9hY3R1YWwgPT0gJ0NSQVNIJzoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYu
YnJvd3Nlcl9sb2c6CisgICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2FydGlmYWN0KGN1cl9k
aWN0LCAid3B0X2NyYXNoX2xvZyIsIGxpbmUpCisgICAgICAgIGZvciBtZXRhZGF0YSBpbiBhY3R1
YWxfbWV0YWRhdGE6CisgICAgICAgICAgICBzZWxmLl9hcHBlbmRfYXJ0aWZhY3QoY3VyX2RpY3Qs
ICJ3cHRfYWN0dWFsX21ldGFkYXRhIiwgbWV0YWRhdGEpCisgICAgICAgIGZvciBtZXNzYWdlIGlu
IG1lc3NhZ2VzOgorICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2FydGlmYWN0KGN1cl9kaWN0LCAi
d3B0X2xvZyIsIG1lc3NhZ2UpCisKKyAgICAgICAgIyBTdG9yZSBzY3JlZW5zaG90cyAoaWYgYW55
KS4KKyAgICAgICAgZm9yIGl0ZW0gaW4gcmVmdGVzdF9zY3JlZW5zaG90cyBvciBbXToKKyAgICAg
ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGl0ZW0sIGRpY3QpOgorICAgICAgICAgICAgICAgICMg
U2tpcCB0aGUgcmVsYXRpb24gc3RyaW5nLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICBkYXRhID0gIiVzOiAlcyIgJSAoaXRlbVsidXJsIl0sIGl0ZW1bInNjcmVlbnNob3Qi
XSkKKyAgICAgICAgICAgIHNlbGYuX2FwcGVuZF9hcnRpZmFjdChjdXJfZGljdCwgInNjcmVlbnNo
b3RzIiwgZGF0YSkKKworICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgdGhlcmUgd2FzIGEgcmVncmVz
c2lvbiBvciB1bmV4cGVjdGVkIHN0YXR1cy4gVGhpcyBvbmx5CisgICAgICAgICMgaGFwcGVucyBm
b3IgdGVzdHMgdGhhdCB3ZXJlIHJ1bgorICAgICAgICBpZiBhY3R1YWwgIT0gIlNLSVAiOgorICAg
ICAgICAgICAgaWYgYWN0dWFsIG5vdCBpbiBleHBlY3RlZDoKKyAgICAgICAgICAgICAgICBjdXJf
ZGljdFsiaXNfdW5leHBlY3RlZCJdID0gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIGFjdHVhbCAh
PSAiUEFTUyI6CisgICAgICAgICAgICAgICAgICAgIGN1cl9kaWN0WyJpc19yZWdyZXNzaW9uIl0g
PSBUcnVlCisKKyAgICBkZWYgX21hcF9zdGF0dXNfbmFtZShzZWxmLCBzdGF0dXMpOgorICAgICAg
ICAiIiIKKyAgICAgICAgTWFwcyBhIFdQVCBzdGF0dXMgdG8gYSBDaHJvbWl1bSBzdGF0dXMuCisK
KyAgICAgICAgQ2hyb21pdW0gaGFzIGZpdmUgbWFpbiBzdGF0dXNlcyB0aGF0IHdlIGhhdmUgdG8g
bWFwIHRvOgorICAgICAgICBDUkFTSDogdGhlIHRlc3QgaGFybmVzcyBjcmFzaGVkCisgICAgICAg
IEZBSUw6IHRoZSB0ZXN0IGRpZCBub3QgcnVuIGFzIGV4cGVjdGVkCisgICAgICAgIFBBU1M6IHRo
ZSB0ZXN0IHJhbiBhcyBleHBlY3RlZAorICAgICAgICBTS0lQOiB0aGUgdGVzdCB3YXMgbm90IHJ1
bgorICAgICAgICBUSU1FT1VUOiB0aGUgZGlkIG5vdCBmaW5pc2ggaW4gdGltZSBhbmQgd2FzIGFi
b3J0ZWQKKworICAgICAgICA6cGFyYW0gc3RyIHN0YXR1czogdGhlIHN0cmluZyBzdGF0dXMgb2Yg
YSB0ZXN0IGZyb20gV1BUCisgICAgICAgIDpyZXR1cm46IGEgY29ycmVzcG9uZGluZyBzdHJpbmcg
c3RhdHVzIGZvciBDaHJvbWl1bQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc3RhdHVzID09ICJP
SyI6CisgICAgICAgICAgICByZXR1cm4gIlBBU1MiCisgICAgICAgIGlmIHN0YXR1cyA9PSAiTk9U
UlVOIjoKKyAgICAgICAgICAgIHJldHVybiAiU0tJUCIKKyAgICAgICAgaWYgc3RhdHVzID09ICJF
WFRFUk5BTC1USU1FT1VUIjoKKyAgICAgICAgICAgIHJldHVybiAiVElNRU9VVCIKKyAgICAgICAg
aWYgc3RhdHVzIGluICgiRVJST1IiLCAiUFJFQ09ORElUSU9OX0ZBSUxFRCIpOgorICAgICAgICAg
ICAgcmV0dXJuICJGQUlMIgorICAgICAgICBpZiBzdGF0dXMgPT0gIklOVEVSTkFMLUVSUk9SIjoK
KyAgICAgICAgICAgIHJldHVybiAiQ1JBU0giCisgICAgICAgICMgQW55IG90aGVyIHN0YXR1cyBq
dXN0IGdldHMgcmV0dXJuZWQgYXMtaXMuCisgICAgICAgIHJldHVybiBzdGF0dXMKKworICAgIGRl
ZiBfZ2V0X2V4cGVjdGVkX3N0YXR1c19mcm9tX2RhdGEoc2VsZiwgYWN0dWFsX3N0YXR1cywgZGF0
YSk6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBleHBlY3RlZCBzdGF0dXNlcyBmcm9t
IGEgfGRhdGF8IGRpY3Rpb25hcnkuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgbm8gZXhwZWN0ZWQg
c3RhdHVzIGluIGRhdGEsIHRoZSBhY3R1YWwgc3RhdHVzIGlzIHJldHVybmVkLgorICAgICAgICBU
aGlzIGlzIGJlY2F1c2UgbW96bG9nIHdpbGwgZGVsZXRlICJleHBlY3RlZCIgZnJvbSB8ZGF0YXwg
aWYgaXQgaXMgdGhlCisgICAgICAgIHNhbWUgYXMgInN0YXR1cyIuIFNvIHRoZSBwcmVzZW5jZSBv
ZiAiZXhwZWN0ZWQiIGltcGxpZXMgdGhhdCAic3RhdHVzIiBpcworICAgICAgICB1bmV4cGVjdGVk
LiBDb252ZXJzZWx5LCB0aGUgYWJzZW5jZSBvZiAiZXhwZWN0ZWQiIGltcGxpZXMgdGhlICJzdGF0
dXMiCisgICAgICAgIGlzIGV4cGVjdGVkLiBTbyB3ZSB1c2UgdGhlICJleHBlY3RlZCIgc3RhdHVz
IGlmIGl0J3MgdGhlcmUgb3IgZmFsbCBiYWNrCisgICAgICAgIHRvIHRoZSBhY3R1YWwgc3RhdHVz
IGlmIGl0J3Mgbm90LgorCisgICAgICAgIElmIHRoZSB0ZXN0IGhhcyBtdWx0aXBsZSBzdGF0dXNl
cywgaXQgd2lsbCBoYXZlIG90aGVyIHN0YXR1c2VzIGxpc3RlZCBhcworICAgICAgICAia25vd25f
aW50ZXJtaXR0ZW50IiBpbiB8ZGF0YXwuIElmIHRoZXNlIGV4aXN0LCB0aGV5IHdpbGwgYmUgYWRk
ZWQgdG8KKyAgICAgICAgdGhlIHJldHVybmVkIHN0YXR1cyB3aXRoIHNwYWNlZCBpbiBiZXR3ZWVu
LgorCisgICAgICAgIDpwYXJhbSBzdHIgYWN0dWFsX3N0YXR1czogdGhlIGFjdHVhbCBzdGF0dXMg
b2YgdGhlIHRlc3QKKyAgICAgICAgOnBhcmFtIGRhdGE6IGEgZGF0YSBkaWN0aW9uYXJ5IHRvIGV4
dHJhY3QgZXhwZWN0ZWQgc3RhdHVzIGZyb20KKyAgICAgICAgOnJldHVybiBzdHI6IHRoZSBleHBl
Y3RlZCBzdGF0dXNlcyBhcyBhIHN0cmluZworICAgICAgICAiIiIKKyAgICAgICAgZXhwZWN0ZWRf
c3RhdHVzZXMgPSBzZWxmLl9tYXBfc3RhdHVzX25hbWUoZGF0YVsiZXhwZWN0ZWQiXSkgaWYgImV4
cGVjdGVkIiBpbiBkYXRhIGVsc2UgYWN0dWFsX3N0YXR1cworICAgICAgICBpZiBkYXRhLmdldCgi
a25vd25faW50ZXJtaXR0ZW50Iik6CisgICAgICAgICAgICBhbGxfc3RhdHN1ZXMgPSB7c2VsZi5f
bWFwX3N0YXR1c19uYW1lKG90aGVyX3N0YXR1cykgZm9yIG90aGVyX3N0YXR1cyBpbiBkYXRhWyJr
bm93bl9pbnRlcm1pdHRlbnQiXX0KKyAgICAgICAgICAgIGFsbF9zdGF0c3Vlcy5hZGQoZXhwZWN0
ZWRfc3RhdHVzZXMpCisgICAgICAgICAgICBleHBlY3RlZF9zdGF0dXNlcyA9ICIgIi5qb2luKHNv
cnRlZChhbGxfc3RhdHN1ZXMpKQorICAgICAgICByZXR1cm4gZXhwZWN0ZWRfc3RhdHVzZXMKKwor
ICAgIGRlZiBzdWl0ZV9zdGFydChzZWxmLCBkYXRhKToKKyAgICAgICAgIyB8ZGF0YXwgY29udGFp
bnMgYSB0aW1lc3RhbXAgaW4gbWljcm9zZWNvbmRzLCB3aGlsZSB0aW1lLnRpbWUoKSBnaXZlcwor
ICAgICAgICAjIGl0IGluIHNlY29uZHMuCisgICAgICAgIHNlbGYuc3RhcnRfdGltZXN0YW1wX3Nl
Y29uZHMgPSAoZmxvYXQoZGF0YVsidGltZSJdKSAvIDEwMDAgaWYgInRpbWUiIGluIGRhdGEKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHRpbWUudGltZSgpKQor
CisgICAgZGVmIHRlc3Rfc3RhdHVzKHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBk
YXRhWyJ0ZXN0Il0KKyAgICAgICAgd3B0X2FjdHVhbF9zdGF0dXMgPSBkYXRhWyJzdGF0dXMiXQor
ICAgICAgICBhY3R1YWxfc3RhdHVzID0gc2VsZi5fbWFwX3N0YXR1c19uYW1lKHdwdF9hY3R1YWxf
c3RhdHVzKQorICAgICAgICBleHBlY3RlZF9zdGF0dXNlcyA9IHNlbGYuX2dldF9leHBlY3RlZF9z
dGF0dXNfZnJvbV9kYXRhKGFjdHVhbF9zdGF0dXMsIGRhdGEpCisKKyAgICAgICAgaXNfdW5leHBl
Y3RlZCA9IGFjdHVhbF9zdGF0dXMgbm90IGluIGV4cGVjdGVkX3N0YXR1c2VzCisgICAgICAgIGlm
IGlzX3VuZXhwZWN0ZWQgYW5kIHRlc3RfbmFtZSBub3QgaW4gc2VsZi50ZXN0c193aXRoX3N1YnRl
c3RfZmFpbHM6CisgICAgICAgICAgICBzZWxmLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscy5hZGQo
dGVzdF9uYW1lKQorICAgICAgICAjIFdlIHNob3VsZCBhbHdheXMgZ2V0IGEgc3VidGVzdCBpbiB0
aGUgZGF0YSBkaWN0LCBidXQgaXQncyB0ZWNobmljYWxseQorICAgICAgICAjIHBvc3NpYmxlIHRo
YXQgaXQncyBtaXNzaW5nLiBCZSByZXNpbGllbnQgaGVyZS4KKyAgICAgICAgc3VidGVzdF9uYW1l
ID0gZGF0YS5nZXQoInN1YnRlc3QiLCAiVU5LTk9XTiBTVUJURVNUIikKKyAgICAgICAgc2VsZi5f
YXBwZW5kX3Rlc3RfbWVzc2FnZSh0ZXN0X25hbWUsIHN1YnRlc3RfbmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3cHRfYWN0dWFsX3N0YXR1cywgZGF0YS5nZXQoIm1lc3Nh
Z2UiLCAiIikpCisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3Rf
bmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICAjIFNhdmUgdGhlIHN0YXR1cyByZXBvcnRlZCBi
eSBXUFQgc2luY2Ugd2UgbWlnaHQgY2hhbmdlIGl0IHdoZW4KKyAgICAgICAgIyByZXBvcnRpbmcg
dG8gQ2hyb21pdW0uCisgICAgICAgIHdwdF9hY3R1YWxfc3RhdHVzID0gZGF0YVsic3RhdHVzIl0K
KyAgICAgICAgYWN0dWFsX3N0YXR1cyA9IHNlbGYuX21hcF9zdGF0dXNfbmFtZSh3cHRfYWN0dWFs
X3N0YXR1cykKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVzZXMgPSBzZWxmLl9nZXRfZXhwZWN0ZWRf
c3RhdHVzX2Zyb21fZGF0YShhY3R1YWxfc3RhdHVzLCBkYXRhKQorICAgICAgICBzdWJ0ZXN0X2Zh
aWx1cmUgPSBGYWxzZQorICAgICAgICBpZiB0ZXN0X25hbWUgaW4gc2VsZi50ZXN0c193aXRoX3N1
YnRlc3RfZmFpbHM6CisgICAgICAgICAgICBzdWJ0ZXN0X2ZhaWx1cmUgPSBUcnVlCisgICAgICAg
ICAgICAjIENsZWFuIHVwIHRoZSB0ZXN0IGxpc3QgdG8gYXZvaWQgYWNjdW11bGF0aW5nIHRvbyBt
YW55LgorICAgICAgICAgICAgc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMucmVtb3ZlKHRl
c3RfbmFtZSkKKyAgICAgICAgICAgICMgVGhpcyB0ZXN0IHBhc3NlZCBidXQgaXQgaGFzIGZhaWxp
bmcgc3VidGVzdHMuIFNpbmNlIHdlIGNhbiBvbmx5CisgICAgICAgICAgICAjIHJlcG9ydCBhIHNp
bmdsZSBzdGF0dXMgdG8gQ2hyb21pdW0sIHdlIGNob29zZSBGQUlMIHRvIGluZGljYXRlCisgICAg
ICAgICAgICAjIHRoYXQgc29tZXRoaW5nIGFib3V0IHRoaXMgdGVzdCBkaWQgbm90IHJ1biBjb3Jy
ZWN0bHkuCisgICAgICAgICAgICBpZiBhY3R1YWxfc3RhdHVzID09ICJQQVNTIjoKKyAgICAgICAg
ICAgICAgICBhY3R1YWxfc3RhdHVzID0gIkZBSUwiCisKKyAgICAgICAgc2VsZi5fYXBwZW5kX3Rl
c3RfbWVzc2FnZSh0ZXN0X25hbWUsIE5vbmUsIHdwdF9hY3R1YWxfc3RhdHVzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0KCJtZXNzYWdlIiwgIiIpKQorICAgICAg
ICBzZWxmLl9zdG9yZV90ZXN0X3Jlc3VsdCh0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFjdHVhbF9zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4cGVjdGVkX3N0YXR1c2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmFjdHVhbF9tZXRhZGF0YVt0ZXN0X25hbWVdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RfbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdwdF9hY3R1YWxfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdWJ0ZXN0X2ZhaWx1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGEuZ2V0KCJleHRyYSIsIHt9KS5nZXQoInJlZnRlc3Rfc2NyZWVuc2hvdHMiKSkKKworICAgICAg
ICAjIFJlbW92ZSB0aGUgdGVzdCBmcm9tIGRpY3RzIHRvIGF2b2lkIGFjY3VtdWxhdGluZyB0b28g
bWFueS4KKyAgICAgICAgc2VsZi5hY3R1YWxfbWV0YWRhdGEucG9wKHRlc3RfbmFtZSkKKyAgICAg
ICAgc2VsZi5tZXNzYWdlcy5wb3AodGVzdF9uYW1lKQorCisgICAgICAgICMgVXBkYXRlIHRoZSBj
b3VudCBvZiBob3cgbWFueSB0ZXN0cyByYW4gd2l0aCBlYWNoIHN0YXR1cy4KKyAgICAgICAgc2Vs
Zi5udW1fZmFpbHVyZXNfYnlfc3RhdHVzW2FjdHVhbF9zdGF0dXNdICs9IDEKKworICAgICAgICAj
IE5ldyB0ZXN0LCBuZXcgYnJvd3NlciBsb2dzLgorICAgICAgICBzZWxmLmJyb3dzZXJfbG9nID0g
W10KKworICAgIGRlZiBzdWl0ZV9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgICMgQ3JlYXRlIHRo
ZSBmaW5hbCByZXN1bHQgZGljdGlvbmFyeQorICAgICAgICBmaW5hbF9yZXN1bHQgPSB7CisgICAg
ICAgICAgICAjIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkcyB0aGF0IHdlIGp1c3QgaGFy
ZC1jb2RlLgorICAgICAgICAgICAgImludGVycnVwdGVkIjogRmFsc2UsCisgICAgICAgICAgICAi
cGF0aF9kZWxpbWl0ZXIiOiAiLyIsCisgICAgICAgICAgICAidmVyc2lvbiI6IDMsCisgICAgICAg
ICAgICAic2Vjb25kc19zaW5jZV9lcG9jaCI6IHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMs
CisgICAgICAgICAgICAibnVtX2ZhaWx1cmVzX2J5X3R5cGUiOiBzZWxmLm51bV9mYWlsdXJlc19i
eV9zdGF0dXMsCisgICAgICAgICAgICAidGVzdHMiOiBzZWxmLnRlc3RzCisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIGpzb24uZHVtcHMoZmluYWxfcmVzdWx0KQorCisgICAgZGVmIHByb2Nlc3Nf
b3V0cHV0KHNlbGYsIGRhdGEpOgorICAgICAgICBjbWQgPSBkYXRhLmdldCgiY29tbWFuZCIsICIi
KQorICAgICAgICBpZiBhbnkoYyBpbiBjbWQgZm9yIGMgaW4gWyJjaHJvbWVkcml2ZXIiLCAibG9n
Y2F0Il0pOgorICAgICAgICAgICAgc2VsZi5icm93c2VyX2xvZy5hcHBlbmQoZGF0YVsnZGF0YSdd
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZm9ybWF0dGVycy90ZXN0cy9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMv
X19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNjlk
ZTI5YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0cmVwb3J0LnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRy
ZXBvcnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44NmQ0YzQy
Zjk3YjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3dwdHJlcG9ydC5weQpAQCAtMCwwICsx
LDEzNSBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCByZQorCitmcm9tIG1vemxvZy5zdHJ1Y3R1cmVk
LmZvcm1hdHRlcnMuYmFzZSBpbXBvcnQgQmFzZUZvcm1hdHRlcgorZnJvbSAuLmV4ZWN1dG9ycy5i
YXNlIGltcG9ydCBzdHJpcF9zZXJ2ZXIKKworCitMT05FX1NVUlJPR0FURV9SRSA9IHJlLmNvbXBp
bGUodSJbXHVEODAwLVx1REZGRl0iKQorCisKK2RlZiBzdXJyb2dhdGVfcmVwbGFjZW1lbnQobWF0
Y2gpOgorICAgIHJldHVybiAiVSsiICsgaGV4KG9yZChtYXRjaC5ncm91cCgpKSlbMjpdCisKKwor
ZGVmIHJlcGxhY2VfbG9uZV9zdXJyb2dhdGUoZGF0YSk6CisgICAgcmV0dXJuIExPTkVfU1VSUk9H
QVRFX1JFLnN1Ym4oc3Vycm9nYXRlX3JlcGxhY2VtZW50LCBkYXRhKVswXQorCisKK2NsYXNzIFdw
dHJlcG9ydEZvcm1hdHRlcihCYXNlRm9ybWF0dGVyKTogICMgdHlwZTogaWdub3JlCisgICAgIiIi
Rm9ybWF0dGVyIHRoYXQgcHJvZHVjZXMgcmVzdWx0cyBpbiB0aGUgZm9ybWF0IHRoYXQgd3B0cmVw
b3J0IGV4cGVjdHMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYu
cmF3X3Jlc3VsdHMgPSB7fQorICAgICAgICBzZWxmLnJlc3VsdHMgPSB7fQorCisgICAgZGVmIHN1
aXRlX3N0YXJ0KHNlbGYsIGRhdGEpOgorICAgICAgICBpZiAncnVuX2luZm8nIGluIGRhdGE6Cisg
ICAgICAgICAgICBzZWxmLnJlc3VsdHNbJ3J1bl9pbmZvJ10gPSBkYXRhWydydW5faW5mbyddCisg
ICAgICAgIHNlbGYucmVzdWx0c1sndGltZV9zdGFydCddID0gZGF0YVsndGltZSddCisgICAgICAg
IHNlbGYucmVzdWx0c1sicmVzdWx0cyJdID0gW10KKworICAgIGRlZiBzdWl0ZV9lbmQoc2VsZiwg
ZGF0YSk6CisgICAgICAgIHNlbGYucmVzdWx0c1sndGltZV9lbmQnXSA9IGRhdGFbJ3RpbWUnXQor
ICAgICAgICBmb3IgdGVzdF9uYW1lIGluIHNlbGYucmF3X3Jlc3VsdHM6CisgICAgICAgICAgICBy
ZXN1bHQgPSB7InRlc3QiOiB0ZXN0X25hbWV9CisgICAgICAgICAgICByZXN1bHQudXBkYXRlKHNl
bGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0c1sicmVz
dWx0cyJdLmFwcGVuZChyZXN1bHQpCisgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYucmVz
dWx0cykgKyAiXG4iCisKKyAgICBkZWYgZmluZF9vcl9jcmVhdGVfdGVzdChzZWxmLCBkYXRhKToK
KyAgICAgICAgdGVzdF9uYW1lID0gZGF0YVsidGVzdCJdCisgICAgICAgIGlmIHRlc3RfbmFtZSBu
b3QgaW4gc2VsZi5yYXdfcmVzdWx0czoKKyAgICAgICAgICAgIHNlbGYucmF3X3Jlc3VsdHNbdGVz
dF9uYW1lXSA9IHsKKyAgICAgICAgICAgICAgICAic3VidGVzdHMiOiBbXSwKKyAgICAgICAgICAg
ICAgICAic3RhdHVzIjogIiIsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiBOb25lCisgICAg
ICAgICAgICB9CisgICAgICAgIHJldHVybiBzZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0KKwor
ICAgIGRlZiB0ZXN0X3N0YXJ0KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0ID0gc2VsZi5maW5k
X29yX2NyZWF0ZV90ZXN0KGRhdGEpCisgICAgICAgIHRlc3RbInN0YXJ0X3RpbWUiXSA9IGRhdGFb
InRpbWUiXQorCisgICAgZGVmIGNyZWF0ZV9zdWJ0ZXN0KHNlbGYsIGRhdGEpOgorICAgICAgICB0
ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0ZV90ZXN0KGRhdGEpCisgICAgICAgIHN1YnRlc3RfbmFt
ZSA9IHJlcGxhY2VfbG9uZV9zdXJyb2dhdGUoZGF0YVsic3VidGVzdCJdKQorCisgICAgICAgIHN1
YnRlc3QgPSB7CisgICAgICAgICAgICAibmFtZSI6IHN1YnRlc3RfbmFtZSwKKyAgICAgICAgICAg
ICJzdGF0dXMiOiAiIiwKKyAgICAgICAgICAgICJtZXNzYWdlIjogTm9uZQorICAgICAgICB9Cisg
ICAgICAgIHRlc3RbInN1YnRlc3RzIl0uYXBwZW5kKHN1YnRlc3QpCisKKyAgICAgICAgcmV0dXJu
IHN1YnRlc3QKKworICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBkYXRhKToKKyAgICAgICAgc3Vi
dGVzdCA9IHNlbGYuY3JlYXRlX3N1YnRlc3QoZGF0YSkKKyAgICAgICAgc3VidGVzdFsic3RhdHVz
Il0gPSBkYXRhWyJzdGF0dXMiXQorICAgICAgICBpZiAiZXhwZWN0ZWQiIGluIGRhdGE6CisgICAg
ICAgICAgICBzdWJ0ZXN0WyJleHBlY3RlZCJdID0gZGF0YVsiZXhwZWN0ZWQiXQorICAgICAgICBp
ZiAia25vd25faW50ZXJtaXR0ZW50IiBpbiBkYXRhOgorICAgICAgICAgICAgc3VidGVzdFsia25v
d25faW50ZXJtaXR0ZW50Il0gPSBkYXRhWyJrbm93bl9pbnRlcm1pdHRlbnQiXQorICAgICAgICBp
ZiAibWVzc2FnZSIgaW4gZGF0YToKKyAgICAgICAgICAgIHN1YnRlc3RbIm1lc3NhZ2UiXSA9IHJl
cGxhY2VfbG9uZV9zdXJyb2dhdGUoZGF0YVsibWVzc2FnZSJdKQorCisgICAgZGVmIHRlc3RfZW5k
KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0ZV90ZXN0KGRh
dGEpCisgICAgICAgIHN0YXJ0X3RpbWUgPSB0ZXN0LnBvcCgic3RhcnRfdGltZSIpCisgICAgICAg
IHRlc3RbImR1cmF0aW9uIl0gPSBkYXRhWyJ0aW1lIl0gLSBzdGFydF90aW1lCisgICAgICAgIHRl
c3RbInN0YXR1cyJdID0gZGF0YVsic3RhdHVzIl0KKyAgICAgICAgaWYgImV4cGVjdGVkIiBpbiBk
YXRhOgorICAgICAgICAgICAgdGVzdFsiZXhwZWN0ZWQiXSA9IGRhdGFbImV4cGVjdGVkIl0KKyAg
ICAgICAgaWYgImtub3duX2ludGVybWl0dGVudCIgaW4gZGF0YToKKyAgICAgICAgICAgIHRlc3Rb
Imtub3duX2ludGVybWl0dGVudCJdID0gZGF0YVsia25vd25faW50ZXJtaXR0ZW50Il0KKyAgICAg
ICAgaWYgIm1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAgICB0ZXN0WyJtZXNzYWdlIl0gPSBy
ZXBsYWNlX2xvbmVfc3Vycm9nYXRlKGRhdGFbIm1lc3NhZ2UiXSkKKyAgICAgICAgaWYgInJlZnRl
c3Rfc2NyZWVuc2hvdHMiIGluIGRhdGEuZ2V0KCJleHRyYSIsIHt9KToKKyAgICAgICAgICAgIHRl
c3RbInNjcmVlbnNob3RzIl0gPSB7CisgICAgICAgICAgICAgICAgc3RyaXBfc2VydmVyKGl0ZW1b
InVybCJdKTogInNoYTE6IiArIGl0ZW1bImhhc2giXQorICAgICAgICAgICAgICAgIGZvciBpdGVt
IGluIGRhdGFbImV4dHJhIl1bInJlZnRlc3Rfc2NyZWVuc2hvdHMiXQorICAgICAgICAgICAgICAg
IGlmIHR5cGUoaXRlbSkgPT0gZGljdAorICAgICAgICAgICAgfQorICAgICAgICB0ZXN0X25hbWUg
PSBkYXRhWyJ0ZXN0Il0KKyAgICAgICAgcmVzdWx0ID0geyJ0ZXN0IjogZGF0YVsidGVzdCJdfQor
ICAgICAgICByZXN1bHQudXBkYXRlKHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSkKKyAgICAg
ICAgc2VsZi5yZXN1bHRzWyJyZXN1bHRzIl0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgc2VsZi5y
YXdfcmVzdWx0cy5wb3AodGVzdF9uYW1lKQorCisgICAgZGVmIGFzc2VydGlvbl9jb3VudChzZWxm
LCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQor
ICAgICAgICB0ZXN0WyJhc3NlcnRzIl0gPSB7CisgICAgICAgICAgICAiY291bnQiOiBkYXRhWyJj
b3VudCJdLAorICAgICAgICAgICAgIm1pbiI6IGRhdGFbIm1pbl9leHBlY3RlZCJdLAorICAgICAg
ICAgICAgIm1heCI6IGRhdGFbIm1heF9leHBlY3RlZCJdCisgICAgICAgIH0KKworICAgIGRlZiBs
c2FuX2xlYWsoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmICJsc2FuX2xlYWtzIiBub3QgaW4gc2Vs
Zi5yZXN1bHRzOgorICAgICAgICAgICAgc2VsZi5yZXN1bHRzWyJsc2FuX2xlYWtzIl0gPSBbXQor
ICAgICAgICBsc2FuX2xlYWtzID0gc2VsZi5yZXN1bHRzWyJsc2FuX2xlYWtzIl0KKyAgICAgICAg
bHNhbl9sZWFrcy5hcHBlbmQoeyJmcmFtZXMiOiBkYXRhWyJmcmFtZXMiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzY29wZSI6IGRhdGFbInNjb3BlIl0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYWxsb3dlZF9tYXRjaCI6IGRhdGEuZ2V0KCJhbGxvd2VkX21hdGNoIil9KQor
CisgICAgZGVmIGZpbmRfb3JfY3JlYXRlX21vemxlYWsoc2VsZiwgZGF0YSk6CisgICAgICAgIGlm
ICJtb3psZWFrIiBub3QgaW4gc2VsZi5yZXN1bHRzOgorICAgICAgICAgICAgc2VsZi5yZXN1bHRz
WyJtb3psZWFrIl0gPSB7fQorICAgICAgICBzY29wZSA9IGRhdGFbInNjb3BlIl0KKyAgICAgICAg
aWYgc2NvcGUgbm90IGluIHNlbGYucmVzdWx0c1sibW96bGVhayJdOgorICAgICAgICAgICAgc2Vs
Zi5yZXN1bHRzWyJtb3psZWFrIl1bc2NvcGVdID0geyJvYmplY3RzIjogW10sICJ0b3RhbCI6IFtd
fQorICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHRzWyJtb3psZWFrIl1bc2NvcGVdCisKKyAgICBk
ZWYgbW96bGVha19vYmplY3Qoc2VsZiwgZGF0YSk6CisgICAgICAgIHNjb3BlX2RhdGEgPSBzZWxm
LmZpbmRfb3JfY3JlYXRlX21vemxlYWsoZGF0YSkKKyAgICAgICAgc2NvcGVfZGF0YVsib2JqZWN0
cyJdLmFwcGVuZCh7InByb2Nlc3MiOiBkYXRhWyJwcm9jZXNzIl0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogZGF0YVsibmFtZSJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxsb3dlZCI6IGRhdGEuZ2V0KCJhbGxvd2VkIiwg
RmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnl0ZXMiOiBk
YXRhWyJieXRlcyJdfSkKKworICAgIGRlZiBtb3psZWFrX3RvdGFsKHNlbGYsIGRhdGEpOgorICAg
ICAgICBzY29wZV9kYXRhID0gc2VsZi5maW5kX29yX2NyZWF0ZV9tb3psZWFrKGRhdGEpCisgICAg
ICAgIHNjb3BlX2RhdGFbInRvdGFsIl0uYXBwZW5kKHsiYnl0ZXMiOiBkYXRhWyJieXRlcyJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRocmVzaG9sZCI6IGRhdGEuZ2V0
KCJ0aHJlc2hvbGQiLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
cm9jZXNzIjogZGF0YVsicHJvY2VzcyJdfSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVu
c2hvdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjc1MDU0OGIyODE1NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRl
cnMvd3B0c2NyZWVuc2hvdC5weQpAQCAtMCwwICsxLDQ3IEBACitpbXBvcnQgcmVxdWVzdHMKK2Zy
b20gbW96bG9nLnN0cnVjdHVyZWQuZm9ybWF0dGVycy5iYXNlIGltcG9ydCBCYXNlRm9ybWF0dGVy
CisKK0RFRkFVTFRfQVBJID0gImh0dHBzOi8vd3B0LmZ5aS9hcGkvc2NyZWVuc2hvdHMvaGFzaGVz
IgorCisKK2NsYXNzIFdwdHNjcmVlbnNob3RGb3JtYXR0ZXIoQmFzZUZvcm1hdHRlcik6ICAjIHR5
cGU6IGlnbm9yZQorICAgICIiIkZvcm1hdHRlciB0aGF0IG91dHB1dHMgc2NyZWVuc2hvdHMgaW4g
dGhlIGZvcm1hdCBleHBlY3RlZCBieSB3cHQuZnlpLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGFwaT1Ob25lKToKKyAgICAgICAgc2VsZi5hcGkgPSBhcGkgb3IgREVGQVVMVF9BUEkKKyAg
ICAgICAgc2VsZi5jYWNoZSA9IHNldCgpCisKKyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0
YSk6CisgICAgICAgICMgVE9ETyhIZXhjbGVzKTogV2UgbWlnaHQgd2FudCB0byBtb3ZlIHRoZSBy
ZXF1ZXN0IGludG8gYSBkaWZmZXJlbnQKKyAgICAgICAgIyBwbGFjZSwgbWFrZSBpdCBub24tYmxv
Y2tpbmcsIGFuZCBoYW5kbGUgZXJyb3JzIGJldHRlci4KKyAgICAgICAgcGFyYW1zID0ge30KKyAg
ICAgICAgcnVuX2luZm8gPSBkYXRhLmdldCgicnVuX2luZm8iLCB7fSkKKyAgICAgICAgaWYgInBy
b2R1Y3QiIGluIHJ1bl9pbmZvOgorICAgICAgICAgICAgcGFyYW1zWyJicm93c2VyIl0gPSBydW5f
aW5mb1sicHJvZHVjdCJdCisgICAgICAgIGlmICJicm93c2VyX3ZlcnNpb24iIGluIHJ1bl9pbmZv
OgorICAgICAgICAgICAgcGFyYW1zWyJicm93c2VyX3ZlcnNpb24iXSA9IHJ1bl9pbmZvWyJicm93
c2VyX3ZlcnNpb24iXQorICAgICAgICBpZiAib3MiIGluIHJ1bl9pbmZvOgorICAgICAgICAgICAg
cGFyYW1zWyJvcyJdID0gcnVuX2luZm9bIm9zIl0KKyAgICAgICAgaWYgIm9zX3ZlcnNpb24iIGlu
IHJ1bl9pbmZvOgorICAgICAgICAgICAgcGFyYW1zWyJvc192ZXJzaW9uIl0gPSBydW5faW5mb1si
b3NfdmVyc2lvbiJdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHIgPSByZXF1ZXN0cy5nZXQo
c2VsZi5hcGksIHBhcmFtcz1wYXJhbXMpCisgICAgICAgICAgICByLnJhaXNlX2Zvcl9zdGF0dXMo
KQorICAgICAgICAgICAgc2VsZi5jYWNoZSA9IHNldChyLmpzb24oKSkKKyAgICAgICAgZXhjZXB0
IChyZXF1ZXN0cy5leGNlcHRpb25zLlJlcXVlc3RFeGNlcHRpb24sIFZhbHVlRXJyb3IpOgorICAg
ICAgICAgICAgcGFzcworCisgICAgZGVmIHRlc3RfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICBp
ZiAicmVmdGVzdF9zY3JlZW5zaG90cyIgbm90IGluIGRhdGEuZ2V0KCJleHRyYSIsIHt9KToKKyAg
ICAgICAgICAgIHJldHVybgorICAgICAgICBvdXRwdXQgPSAiIgorICAgICAgICBmb3IgaXRlbSBp
biBkYXRhWyJleHRyYSJdWyJyZWZ0ZXN0X3NjcmVlbnNob3RzIl06CisgICAgICAgICAgICBpZiB0
eXBlKGl0ZW0pICE9IGRpY3Q6CisgICAgICAgICAgICAgICAgIyBTa2lwIHRoZSByZWxhdGlvbiBz
dHJpbmcuCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGNoZWNrc3VtID0g
InNoYTE6IiArIGl0ZW1bImhhc2giXQorICAgICAgICAgICAgaWYgY2hlY2tzdW0gaW4gc2VsZi5j
YWNoZToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgc2VsZi5jYWNoZS5h
ZGQoY2hlY2tzdW0pCisgICAgICAgICAgICBvdXRwdXQgKz0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2
NCx7fVxuIi5mb3JtYXQoaXRlbVsic2NyZWVuc2hvdCJdKQorICAgICAgICByZXR1cm4gb3V0cHV0
IGlmIG91dHB1dCBlbHNlIE5vbmUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1lbnRzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvaW5zdHJ1bWVudHMu
cHkKaW5kZXggYTg4N2NmNGZkYTcyLi40ZTNlMDEzYWVjNDMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1lbnRz
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2luc3RydW1lbnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogaW1wb3J0IHRpbWUKIGltcG9y
dCB0aHJlYWRpbmcKLWZyb20gc2l4Lm1vdmVzLnF1ZXVlIGltcG9ydCBRdWV1ZQorZnJvbSBxdWV1
ZSBpbXBvcnQgUXVldWUKIAogIiIiSW5zdHJ1bWVudGF0aW9uIGZvciBtZWFzdXJpbmcgaGlnaC1s
ZXZlbCB0aW1lIHNwZW50IG9uIHZhcmlvdXMgdGFza3MgaW5zaWRlIHRoZSBydW5uZXIuCiAKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CmluZGV4IDMxYzU3
ZTljYjczNC4uMWNkMDM1YTNiMjQzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21h
bmlmZXN0ZXhwZWN0ZWQucHkKQEAgLTEsOCArMSw2IEBACiBpbXBvcnQgb3MKIGZyb20gY29sbGVj
dGlvbnMgaW1wb3J0IGRlcXVlCi1mcm9tIHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzLCB0ZXh0X3R5
cGUKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgotCitmcm9tIHVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcyBp
bXBvcnQgc3RhdGljCiBmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcy5iYXNlIGltcG9ydCBNYW5p
ZmVzdEl0ZW0KQEAgLTQ5LDcgKzQ3LDcgQEAgZGVmIGxpc3RfcHJvcChuYW1lLCBub2RlKToKICAg
ICAiIiJMaXN0IHByb3BlcnR5IiIiCiAgICAgdHJ5OgogICAgICAgICBsaXN0X3Byb3AgPSBub2Rl
LmdldChuYW1lKQotICAgICAgICBpZiBpc2luc3RhbmNlKGxpc3RfcHJvcCwgc3RyaW5nX3R5cGVz
KToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShsaXN0X3Byb3AsIHN0cik6CiAgICAgICAgICAgICBy
ZXR1cm4gW2xpc3RfcHJvcF0KICAgICAgICAgcmV0dXJuIGxpc3QobGlzdF9wcm9wKQogICAgIGV4
Y2VwdCBLZXlFcnJvcjoKQEAgLTU5LDcgKzU3LDcgQEAgZGVmIGxpc3RfcHJvcChuYW1lLCBub2Rl
KToKIGRlZiBzdHJfcHJvcChuYW1lLCBub2RlKToKICAgICB0cnk6CiAgICAgICAgIHByb3AgPSBu
b2RlLmdldChuYW1lKQotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwcm9wLCBzdHJpbmdfdHlw
ZXMpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwcm9wLCBzdHIpOgogICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcgogICAgICAgICByZXR1cm4gcHJvcAogICAgIGV4Y2VwdCBLZXlFcnJv
cjoKQEAgLTcwLDcgKzY4LDcgQEAgZGVmIHRhZ3Mobm9kZSk6CiAgICAgIiIiU2V0IG9mIHRhZ3Mg
dGhhdCBoYXZlIGJlZW4gYXBwbGllZCB0byB0aGUgdGVzdCIiIgogICAgIHRyeToKICAgICAgICAg
dmFsdWUgPSBub2RlLmdldCgidGFncyIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHRl
eHRfdHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CiAgICAgICAgICAg
ICByZXR1cm4ge3ZhbHVlfQogICAgICAgICByZXR1cm4gc2V0KHZhbHVlKQogICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKQEAgLTc5LDcgKzc3LDcgQEAgZGVmIHRhZ3Mobm9kZSk6CiAKIGRlZiBwcmVmcyhu
b2RlKToKICAgICBkZWYgdmFsdWUoaW5pX3ZhbHVlKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShp
bmlfdmFsdWUsIHRleHRfdHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoaW5pX3ZhbHVlLCBz
dHIpOgogICAgICAgICAgICAgcmV0dXJuIHR1cGxlKHByZWZfcGllY2Uuc3RyaXAoKSBmb3IgcHJl
Zl9waWVjZSBpbiBpbmlfdmFsdWUuc3BsaXQoJzonLCAxKSkKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgICMgdGhpcyBzaG91bGQgYmUgdGhpbmdzIGxpa2UgQFJlc2V0LCB3aGljaCBhcmUgYXBw
YXJlbnRseSB0eXBlICdvYmplY3QnCkBAIC04Nyw3ICs4NSw3IEBAIGRlZiBwcmVmcyhub2RlKToK
IAogICAgIHRyeToKICAgICAgICAgbm9kZV9wcmVmcyA9IG5vZGUuZ2V0KCJwcmVmcyIpCi0gICAg
ICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9wcmVmcywgdGV4dF90eXBlKToKKyAgICAgICAgaWYgaXNp
bnN0YW5jZShub2RlX3ByZWZzLCBzdHIpOgogICAgICAgICAgICAgcnYgPSBkaWN0KHZhbHVlKG5v
ZGVfcHJlZnMpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcnYgPSBkaWN0KHZhbHVlKGl0
ZW0pIGZvciBpdGVtIGluIG5vZGVfcHJlZnMpCkBAIC05OSw3ICs5Nyw3IEBAIGRlZiBwcmVmcyhu
b2RlKToKIGRlZiBzZXRfcHJvcChuYW1lLCBub2RlKToKICAgICB0cnk6CiAgICAgICAgIG5vZGVf
aXRlbXMgPSBub2RlLmdldChuYW1lKQotICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMs
IHRleHRfdHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9pdGVtcywgc3RyKToKICAg
ICAgICAgICAgIHJ2ID0ge25vZGVfaXRlbXN9CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBy
diA9IHNldChub2RlX2l0ZW1zKQpAQCAtMTEyLDcgKzExMCw3IEBAIGRlZiBsZWFrX3RocmVzaG9s
ZChub2RlKToKICAgICBydiA9IHt9CiAgICAgdHJ5OgogICAgICAgICBub2RlX2l0ZW1zID0gbm9k
ZS5nZXQoImxlYWstdGhyZXNob2xkIikKLSAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1z
LCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHN0cik6CiAg
ICAgICAgICAgICBub2RlX2l0ZW1zID0gW25vZGVfaXRlbXNdCiAgICAgICAgIGZvciBpdGVtIGlu
IG5vZGVfaXRlbXM6CiAgICAgICAgICAgICBwcm9jZXNzLCB2YWx1ZSA9IGl0ZW0ucnNwbGl0KCI6
IiwgMSkKQEAgLTE0MCw3ICsxMzgsNyBAQCBkZWYgZnV6enlfcHJvcChub2RlKToKICAgICAgIG1h
eERpZmZlcmVuY2VzPTEwO3RvdGFsUGl4ZWxzPTEwLTIwCiAKICAgICAgIHNwZWNpZmllcyB0aGF0
IGZvciBhbnkgdGVzdC9yZWYgcGFpciBmb3Igd2hpY2ggbm8gb3RoZXIgcnVsZSBpcyBzdXBwbGll
ZCwKLSAgICAgIHRoZXJlIG11c3QgYmUgYSBtYXhpbXVtIHBpeGVsIGRpZmZlcmVuY2Ugb2YgZXhh
Y3RseSAxMCwgYW5kIGJldHdlbiAxMCBhbmQKKyAgICAgIHRoZXJlIG11c3QgYmUgYSBtYXhpbXVt
IHBpeGVsIGRpZmZlcmVuY2Ugb2YgZXhhY3RseSAxMCwgYW5kIGJldHdlZW4gMTAgYW5kCiAgICAg
ICAyMCB0b3RhbCBwaXhlbHMgZGlmZmVyZW50LgogCiAgICAgICB0ZXN0Lmh0bWw9PXJlZi5odG06
MTA7MjAKQEAgLTE2OSw3ICsxNjcsNyBAQCBkZWYgZnV6enlfcHJvcChub2RlKToKICAgICBpZiBu
b3QgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCk6CiAgICAgICAgIHZhbHVlID0gW3ZhbHVlXQogICAg
IGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCB0ZXh0
X3R5cGUpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgogICAgICAgICAg
ICAgcnYuYXBwZW5kKGl0ZW0pCiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBwYXJ0cyA9
IGl0ZW0ucnNwbGl0KCI6IiwgMSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0
aW5jbHVkZS5weQppbmRleCA3OWI1YjE5YjNhM2YuLjk3MzQ4ZTZkNTJmOSAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFu
aWZlc3RpbmNsdWRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weQpAQCAtNiw4ICs2LDcgQEAgYmUg
aW5jbHVkZWQgb3IgZXhjbHVkZWQuCiAiIiIKIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKLWZyb20g
c2l4IGltcG9ydCBpdGVyaXRlbXMKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQg
dXJscGFyc2UsIHVybHNwbGl0Citmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UsIHVy
bHNwbGl0CiAKIGZyb20gLndwdG1hbmlmZXN0Lm5vZGUgaW1wb3J0IERhdGFOb2RlCiBmcm9tIC53
cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKQEAgLTk1LDcgKzk0LDcgQEAg
Y2xhc3MgSW5jbHVkZU1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAgICAgICAgIGlmIHBhdGhzOgog
ICAgICAgICAgICAgdXJscyA9IFtdCiAgICAgICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKLSAg
ICAgICAgICAgICAgICBmb3IgbWFuaWZlc3QsIGRhdGEgaW4gaXRlcml0ZW1zKHRlc3RfbWFuaWZl
c3RzKToKKyAgICAgICAgICAgICAgICBmb3IgbWFuaWZlc3QsIGRhdGEgaW4gdGVzdF9tYW5pZmVz
dHMuaXRlbXMoKToKICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBGYWxzZQogICAgICAgICAg
ICAgICAgICAgICByZWxfcGF0aCA9IG9zLnBhdGgucmVscGF0aChwYXRoLCBkYXRhWyJ0ZXN0c19w
YXRoIl0pCiAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yID0gbWFuaWZlc3QuaXRlcnBhdGgg
aWYgb3MucGF0aC5pc2ZpbGUocGF0aCkgZWxzZSBtYW5pZmVzdC5pdGVyZGlyCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9t
YW5pZmVzdHVwZGF0ZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5CmluZGV4IDEyOTQ1N2IzZmQxMi4uYjI1
ZDQ5YjBmYjdjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5w
eQpAQCAtMSw5ICsxLDggQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24K
IGltcG9ydCBvcwotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1
cmxzcGxpdAorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHNwbGl0CiBmcm9t
IGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlLCBkZWZhdWx0ZGljdCwgZGVxdWUKIGZyb20g
bWF0aCBpbXBvcnQgY2VpbAotZnJvbSBzaXggaW1wb3J0IGludGVnZXJfdHlwZXMsIGl0ZXJrZXlz
LCBpdGVydmFsdWVzLCBpdGVyaXRlbXMsIHN0cmluZ190eXBlcywgdGV4dF90eXBlCitmcm9tIHR5
cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKIAogZnJvbSAu
d3B0bWFuaWZlc3QgaW1wb3J0IHNlcmlhbGl6ZQogZnJvbSAud3B0bWFuaWZlc3Qubm9kZSBpbXBv
cnQgKERhdGFOb2RlLCBDb25kaXRpb25hbE5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLApAQCAt
NzYsNyArNzUsNyBAQCBjbGFzcyBVcGRhdGVQcm9wZXJ0aWVzKG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiBuYW1lIGluIHNlbGYuX2NsYXNzZXMKIAogICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAg
ICAgICAgZm9yIG5hbWUgaW4gaXRlcmtleXMoc2VsZi5fY2xhc3Nlcyk6CisgICAgICAgIGZvciBu
YW1lIGluIHNlbGYuX2NsYXNzZXMua2V5cygpOgogICAgICAgICAgICAgeWllbGQgZ2V0YXR0cihz
ZWxmLCBuYW1lKQogCiAKQEAgLTMxMywxOCArMzEyLDIxIEBAIGRlZiBidWlsZF9jb25kaXRpb25h
bF90cmVlKF8sIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHJlc3VsdHMpOgogCiBkZWYgYnVpbGRfdW5j
b25kaXRpb25hbF90cmVlKF8sIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHJlc3VsdHMpOgogICAgIHJv
b3QgPSBleHBlY3RlZHRyZWUuTm9kZShOb25lLCBOb25lKQotICAgIGZvciBydW5faW5mbywgdmFs
dWVzIGluIGl0ZXJpdGVtcyhyZXN1bHRzKToKLSAgICAgICAgZm9yIHZhbHVlLCBjb3VudCBpbiBp
dGVyaXRlbXModmFsdWVzKToKKyAgICBmb3IgcnVuX2luZm8sIHZhbHVlcyBpbiByZXN1bHRzLml0
ZW1zKCk6CisgICAgICAgIGZvciB2YWx1ZSwgY291bnQgaW4gdmFsdWVzLml0ZW1zKCk6CiAgICAg
ICAgICAgICByb290LnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CiAgICAgICAgIHJvb3Qu
cnVuX2luZm8uYWRkKHJ1bl9pbmZvKQogICAgIHJldHVybiByb290CiAKIAogY2xhc3MgUHJvcGVy
dHlVcGRhdGUob2JqZWN0KToKLSAgICBwcm9wZXJ0eV9uYW1lID0gTm9uZQotICAgIGNsc19kZWZh
dWx0X3ZhbHVlID0gTm9uZQotICAgIHZhbHVlX3R5cGUgPSBOb25lCi0gICAgcHJvcGVydHlfYnVp
bGRlciA9IE5vbmUKKyAgICBwcm9wZXJ0eV9uYW1lID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zhcltz
dHJdCisgICAgY2xzX2RlZmF1bHRfdmFsdWUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW0FueV0K
KyAgICB2YWx1ZV90eXBlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zhclt0eXBlXQorICAgICMgcHJv
cGVydHlfYnVpbGRlciBpcyBhIGNsYXNzIHZhcmlhYmxlIHNldCB0byBlaXRoZXIgYnVpbGRfY29u
ZGl0aW9uYWxfdHJlZQorICAgICMgb3IgYnVpbGRfdW5jb25kaXRpb25hbF90cmVlLiBUT0RPOiBN
YWtlIHRoaXMgdHlwZSBzdHJpY3RlciB3aGVuIHRob3NlCisgICAgIyBtZXRob2RzIGFyZSBhbm5v
dGF0ZWQuCisgICAgcHJvcGVydHlfYnVpbGRlciA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbQ2Fs
bGFibGVbLi4uLCBBbnldXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUpOgogICAgICAg
ICBzZWxmLm5vZGUgPSBub2RlCkBAIC00MTEsNyArNDEzLDcgQEAgY2xhc3MgUHJvcGVydHlVcGRh
dGUob2JqZWN0KToKICAgICAgICAgZm9yIGUgaW4gZXJyb3JzOgogICAgICAgICAgICAgaWYgZGlz
YWJsZV9pbnRlcm1pdHRlbnQ6CiAgICAgICAgICAgICAgICAgY29uZGl0aW9uID0gZS5jb25kLmNo
aWxkcmVuWzBdIGlmIGUuY29uZCBlbHNlIE5vbmUKLSAgICAgICAgICAgICAgICBtc2cgPSBkaXNh
YmxlX2ludGVybWl0dGVudCBpZiBpc2luc3RhbmNlKGRpc2FibGVfaW50ZXJtaXR0ZW50LCBzdHJp
bmdfdHlwZXMrKHRleHRfdHlwZSwpKSBlbHNlICJ1bnN0YWJsZSIKKyAgICAgICAgICAgICAgICBt
c2cgPSBkaXNhYmxlX2ludGVybWl0dGVudCBpZiBpc2luc3RhbmNlKGRpc2FibGVfaW50ZXJtaXR0
ZW50LCBzdHIpIGVsc2UgInVuc3RhYmxlIgogICAgICAgICAgICAgICAgIHNlbGYubm9kZS5zZXQo
ImRpc2FibGVkIiwgbXNnLCBjb25kaXRpb24pCiAgICAgICAgICAgICAgICAgc2VsZi5ub2RlLm5l
d19kaXNhYmxlZCA9IFRydWUKICAgICAgICAgICAgIGVsc2U6CkBAIC00OTksNyArNTAxLDcgQEAg
Y2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIHJ1bl9pbmZvIGluIG5vZGUucnVuX2luZm99CiAKICAgICAgICAgbm9kZV9ieV9ydW5faW5m
byA9IHtydW5faW5mbzogbm9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocnVu
X2luZm8sIG5vZGUpIGluIGl0ZXJpdGVtcyhydW5faW5mb19pbmRleCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgKHJ1bl9pbmZvLCBub2RlKSBpbiBydW5faW5mb19pbmRleC5pdGVt
cygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9kZS5yZXN1bHRfdmFsdWVzfQog
CiAgICAgICAgIHJ1bl9pbmZvX2J5X2NvbmRpdGlvbiA9IHNlbGYucnVuX2luZm9fYnlfY29uZGl0
aW9uKHJ1bl9pbmZvX2luZGV4LApAQCAtNTEyLDcgKzUxNCw3IEBAIGNsYXNzIFByb3BlcnR5VXBk
YXRlKG9iamVjdCk6CiAgICAgICAgICAgICAjIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIHdlJ3ZlIHNw
ZWNpZmllZCBhbmQgbm90IG1hdGNoaW5nIGFueSBydW5faW5mbwogICAgICAgICAgICAgdG9wX2xl
dmVsX3Byb3BzLCBkZXBlbmRlbnRfcHJvcHMgPSBzZWxmLm5vZGUucm9vdC5ydW5faW5mb19wcm9w
ZXJ0aWVzCiAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGllcyA9IHNldCh0b3BfbGV2ZWxfcHJv
cHMpCi0gICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKGRlcGVuZGVudF9wcm9wcyk6
CisgICAgICAgICAgICBmb3IgaXRlbSBpbiBkZXBlbmRlbnRfcHJvcHMudmFsdWVzKCk6CiAgICAg
ICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMgfD0gc2V0KGl0ZW0pCiAgICAgICAgICAgICBm
b3IgY29uZGl0aW9uIGluIGN1cnJlbnRfY29uZGl0aW9uczoKICAgICAgICAgICAgICAgICBpZiAo
KG5vdCBjb25kaXRpb24udmFyaWFibGVzLmlzc3Vic2V0KHVwZGF0ZV9wcm9wZXJ0aWVzKSBhbmQK
QEAgLTYxNCw3ICs2MTYsOCBAQCBjbGFzcyBQcm9wZXJ0eVVwZGF0ZShvYmplY3QpOgogICAgICAg
ICAgICAgICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJyb3I6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBleHByID0gbWFrZV9leHByKHByb3Bfc2V0LCB2YWx1ZSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGVycm9yID0gQ29uZGl0aW9uRXJyb3IoZXhwcikKLSAgICAgICAgICAgICAgICAgICAg
ZXhwciA9IG1ha2VfZXhwcihwcm9wX3NldCwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgICAgICBleHByID0gbWFrZV9leHByKHByb3Bfc2V0LCB2
YWx1ZSkKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAjIFRoZSBy
b290IG5vZGUgbmVlZHMgc3BlY2lhbCBoYW5kbGluZwogICAgICAgICAgICAgICAgICAgICBleHBy
ID0gTm9uZQpAQCAtNjk1LDcgKzY5OCw3IEBAIGNsYXNzIEV4cGVjdGVkVXBkYXRlKFByb3BlcnR5
VXBkYXRlKToKICAgICAgICAgICAgIHJhaXNlIENvbmRpdGlvbkVycm9yCiAKICAgICAgICAgY291
bnRzID0ge30KLSAgICAgICAgZm9yIHN0YXR1cywgY291bnQgaW4gaXRlcml0ZW1zKG5ldyk6Cisg
ICAgICAgIGZvciBzdGF0dXMsIGNvdW50IGluIG5ldy5pdGVtcygpOgogICAgICAgICAgICAgaWYg
aXNpbnN0YW5jZShzdGF0dXMsIHR1cGxlKToKICAgICAgICAgICAgICAgICBjb3VudHNbc3RhdHVz
WzBdXSA9IGNvdW50CiAgICAgICAgICAgICAgICAgY291bnRzLnVwZGF0ZSh7aW50ZXJtaXR0ZW50
OiAwIGZvciBpbnRlcm1pdHRlbnQgaW4gc3RhdHVzWzE6XSBpZiBpbnRlcm1pdHRlbnQgbm90IGlu
IGNvdW50c30pCkBAIC03MDksMjQgKzcxMiwyNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9w
ZXJ0eVVwZGF0ZSk6CiAgICAgICAgICMgQ291bnRzIHdpdGggMCBhcmUgY29uc2lkZXJlZCBpbnRl
cm1pdHRlbnQuCiAgICAgICAgIHN0YXR1c2VzID0gWyJPSyIsICJQQVNTIiwgIkZBSUwiLCAiRVJS
T1IiLCAiVElNRU9VVCIsICJDUkFTSCJdCiAgICAgICAgIHN0YXR1c19wcmlvcml0eSA9IHt2YWx1
ZTogaSBmb3IgaSwgdmFsdWUgaW4gZW51bWVyYXRlKHN0YXR1c2VzKX0KLSAgICAgICAgc29ydGVk
X25ldyA9IHNvcnRlZChpdGVyaXRlbXMoY291bnRzKSwga2V5PWxhbWJkYSB4OigtMSAqIHhbMV0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXR1c19wcmlvcml0eS5nZXQoeFswXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0eSkpKSkK
KyAgICAgICAgc29ydGVkX25ldyA9IHNvcnRlZChjb3VudHMuaXRlbXMoKSwga2V5PWxhbWJkYSB4
OigtMSAqIHhbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXR1c19wcmlvcml0eS5nZXQoeFswXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0
eSkpKSkKICAgICAgICAgZXhwZWN0ZWQgPSBbXQogICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBp
biBzb3J0ZWRfbmV3OgogICAgICAgICAgICAgIyBJZiB3ZSBhcmUgbm90IHJlbW92aW5nIGV4aXN0
aW5nIHJlY29yZGVkIGludGVybWl0dGVudHMsIHdpdGggYSBjb3VudCBvZiAwLAogICAgICAgICAg
ICAgIyBhZGQgdGhlbSBpbiB0byBleHBlY3RlZC4KICAgICAgICAgICAgIGlmIGNvdW50ID4gMCBv
ciBub3Qgc2VsZi5yZW1vdmVfaW50ZXJtaXR0ZW50OgogICAgICAgICAgICAgICAgIGV4cGVjdGVk
LmFwcGVuZChzdGF0dXMpCisKKyAgICAgICAgIyBJZiB0aGUgbmV3IGludGVybWl0dGVudCBpcyBh
IHN1YnNldCBvZiB0aGUgZXhpc3Rpbmcgb25lLCBqdXN0IHVzZSB0aGUgZXhpc3Rpbmcgb25lCisg
ICAgICAgICMgVGhpcyBwcmV2ZW50cyBmcmVxdWVudCBmbGlwLWZsb3BwaW5nIG9mIHJlc3VsdHMg
YmV0d2VlbiBlLmcuIFtPSywgVElNRU9VVF0gYW5kCisgICAgICAgICMgW1RJTUVPVVQsIE9LXQor
ICAgICAgICBpZiBjdXJyZW50IGFuZCBzZXQoZXhwZWN0ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50
KSk6CisgICAgICAgICAgICByZXR1cm4gY3VycmVudAorCiAgICAgICAgIGlmIHNlbGYudXBkYXRl
X2ludGVybWl0dGVudDoKICAgICAgICAgICAgIGlmIGxlbihleHBlY3RlZCkgPT0gMToKICAgICAg
ICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRbMF0KICAgICAgICAgICAgIHJldHVybiBleHBlY3Rl
ZAogCi0gICAgICAgICMgSWYgbm90aGluZyBoYXMgY2hhbmdlZCBhbmQgbm90IHNlbGYudXBkYXRl
X2ludGVybWl0dGVudCwgcHJlc2VydmUgZXhpc3RpbmcKLSAgICAgICAgIyBpbnRlcm1pdHRlbnQu
Ci0gICAgICAgIGlmIHNldChleHBlY3RlZCkuaXNzdWJzZXQoc2V0KGN1cnJlbnQpKToKLSAgICAg
ICAgICAgIHJldHVybiBjdXJyZW50CiAgICAgICAgICMgSWYgd2UgYXJlIG5vdCB1cGRhdGluZyBp
bnRlcm1pdHRlbnRzLCByZXR1cm4gdGhlIHN0YXR1cyB3aXRoIHRoZSBoaWdoZXN0IG9jY3VyZW5j
ZS4KICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCiAKQEAgLTc2Miw3ICs3NjgsNyBAQCBjbGFz
cyBNaW5Bc3NlcnRzVXBkYXRlKFByb3BlcnR5VXBkYXRlKToKIAogCiBjbGFzcyBBcHBlbmRPbmx5
TGlzdFVwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6Ci0gICAgY2xzX2RlZmF1bHRfdmFsdWUgPSBbXQor
ICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gW10gICMgdHlwZTogQ2xhc3NWYXJbTGlzdFtzdHJdXQog
ICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKIAogICAgIGRl
ZiB1cGRhdGVkX3ZhbHVlKHNlbGYsIGN1cnJlbnQsIG5ldyk6CkBAIC03NzQsNyArNzgwLDcgQEAg
Y2xhc3MgQXBwZW5kT25seUxpc3RVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgogICAgICAgICBmb3Ig
aXRlbSBpbiBuZXc6CiAgICAgICAgICAgICBpZiBpdGVtIGlzIE5vbmU6CiAgICAgICAgICAgICAg
ICAgY29udGludWUKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpdGVtLCB0ZXh0X3R5cGUp
OgorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGl0ZW0sIHN0cik6CiAgICAgICAgICAgICAg
ICAgcnYuYWRkKGl0ZW0pCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJ2IHw9
IGl0ZW0KQEAgLTgxNSwxNCArODIxLDE0IEBAIGNsYXNzIExlYWtPYmplY3RVcGRhdGUoQXBwZW5k
T25seUxpc3RVcGRhdGUpOgogCiBjbGFzcyBMZWFrVGhyZXNob2xkVXBkYXRlKFByb3BlcnR5VXBk
YXRlKToKICAgICBwcm9wZXJ0eV9uYW1lID0gImxlYWstdGhyZXNob2xkIgotICAgIGNsc19kZWZh
dWx0X3ZhbHVlID0ge30KKyAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IHt9ICAjIHR5cGU6IENsYXNz
VmFyW0RpY3Rbc3RyLCBpbnRdXQogICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRp
dGlvbmFsX3RyZWUKIAogICAgIGRlZiBmcm9tX3Jlc3VsdF92YWx1ZShzZWxmLCByZXN1bHQpOgog
ICAgICAgICByZXR1cm4gcmVzdWx0CiAKICAgICBkZWYgdG9faW5pX3ZhbHVlKHNlbGYsIGRhdGEp
OgotICAgICAgICByZXR1cm4gWyIlczolcyIgJSBpdGVtIGZvciBpdGVtIGluIHNvcnRlZChpdGVy
aXRlbXMoZGF0YSkpXQorICAgICAgICByZXR1cm4gWyIlczolcyIgJSBpdGVtIGZvciBpdGVtIGlu
IHNvcnRlZChkYXRhLml0ZW1zKCkpXQogCiAgICAgZGVmIGZyb21faW5pX3ZhbHVlKHNlbGYsIGRh
dGEpOgogICAgICAgICBydiA9IHt9CkBAIC04OTcsMTAgKzkwMywxMCBAQCBkZWYgbWFrZV9leHBy
KHByb3Bfc2V0LCByaHMpOgogCiAKIGRlZiBtYWtlX25vZGUodmFsdWUpOgotICAgIGlmIGlzaW5z
dGFuY2UodmFsdWUsIGludGVnZXJfdHlwZXMrKGZsb2F0LCkpOgorICAgIGlmIGlzaW5zdGFuY2Uo
dmFsdWUsIChpbnQsIGZsb2F0LCkpOgogICAgICAgICBub2RlID0gTnVtYmVyTm9kZSh2YWx1ZSkK
LSAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSk6Ci0gICAgICAgIG5vZGUgPSBT
dHJpbmdOb2RlKHRleHRfdHlwZSh2YWx1ZSkpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBz
dHIpOgorICAgICAgICBub2RlID0gU3RyaW5nTm9kZShzdHIodmFsdWUpKQogICAgIGVsaWYgaGFz
YXR0cih2YWx1ZSwgIl9faXRlcl9fIik6CiAgICAgICAgIG5vZGUgPSBMaXN0Tm9kZSgpCiAgICAg
ICAgIGZvciBpdGVtIGluIHZhbHVlOgpAQCAtOTA5LDE0ICs5MTUsMTQgQEAgZGVmIG1ha2Vfbm9k
ZSh2YWx1ZSk6CiAKIAogZGVmIG1ha2VfdmFsdWVfbm9kZSh2YWx1ZSk6Ci0gICAgaWYgaXNpbnN0
YW5jZSh2YWx1ZSwgaW50ZWdlcl90eXBlcysoZmxvYXQsKSk6CisgICAgaWYgaXNpbnN0YW5jZSh2
YWx1ZSwgKGludCwgZmxvYXQsKSk6CiAgICAgICAgIG5vZGUgPSBWYWx1ZU5vZGUodmFsdWUpCi0g
ICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgotICAgICAgICBub2RlID0gVmFs
dWVOb2RlKHRleHRfdHlwZSh2YWx1ZSkpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIp
OgorICAgICAgICBub2RlID0gVmFsdWVOb2RlKHN0cih2YWx1ZSkpCiAgICAgZWxpZiBoYXNhdHRy
KHZhbHVlLCAiX19pdGVyX18iKToKICAgICAgICAgbm9kZSA9IExpc3ROb2RlKCkKICAgICAgICAg
Zm9yIGl0ZW0gaW4gdmFsdWU6Ci0gICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX25vZGUoaXRl
bSkpCisgICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX3ZhbHVlX25vZGUoaXRlbSkpCiAgICAg
ZWxzZToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRG9uJ3Qga25vdyBob3cgdG8gY29udmVy
dCAlcyBpbnRvIG5vZGUiICUgdHlwZSh2YWx1ZSkpCiAgICAgcmV0dXJuIG5vZGUKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L21ldGFkYXRhLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvbWV0YWRhdGEucHkKaW5kZXggYWI4ZDQ3NDBmM2ZjLi45YzU0ZTU3MGMwMWIg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL21ldGFkYXRhLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CkBAIC0xLDEyICsxLDExIEBACi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgYXJyYXkKIGltcG9y
dCBvcwotaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QsIG5h
bWVkdHVwbGUKK2Zyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBUdXBsZQogCiBmcm9tIG1v
emxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZwotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9zdHIsIGVu
c3VyZV90ZXh0LCBpdGVyaXRlbXMsIGl0ZXJrZXlzLCBpdGVydmFsdWVzLCB0ZXh0X3R5cGUKLWZy
b20gc2l4Lm1vdmVzIGltcG9ydCBpbnRlcm4sIHJhbmdlCitmcm9tIHNpeCBpbXBvcnQgZW5zdXJl
X3N0ciwgZW5zdXJlX3RleHQKK2Zyb20gc3lzIGltcG9ydCBpbnRlcm4KIAogZnJvbSAuIGltcG9y
dCBtYW5pZmVzdHVwZGF0ZQogZnJvbSAuIGltcG9ydCB0ZXN0bG9hZGVyCkBAIC0yMiw3ICsyMSw3
IEBAIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigid2ViLXBsYXRmb3Jt
LXRlc3RzIikKIHRyeToKICAgICBpbXBvcnQgdWpzb24gYXMganNvbgogZXhjZXB0IEltcG9ydEVy
cm9yOgotICAgIGltcG9ydCBqc29uCisgICAgaW1wb3J0IGpzb24gICMgdHlwZTogaWdub3JlCiAK
IAogY2xhc3MgUnVuSW5mbyhvYmplY3QpOgpAQCAtNDUsMTEgKzQ0LDExIEBAIGNsYXNzIFJ1bklu
Zm8ob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuY2Fub25pY2FsX3JlcHIgPT0gb3RoZXIu
Y2Fub25pY2FsX3JlcHIKIAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0gICAgICAgIGZvciBr
ZXksIHZhbHVlIGluIGl0ZXJpdGVtcyhzZWxmLmRhdGEpOgorICAgICAgICBmb3Iga2V5LCB2YWx1
ZSBpbiBzZWxmLmRhdGEuaXRlbXMoKToKICAgICAgICAgICAgIHlpZWxkIGtleSwgdmFsdWUKIAog
ICAgIGRlZiBpdGVtcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGxpc3QoaXRlcml0ZW1zKHNlbGYp
KQorICAgICAgICByZXR1cm4gbGlzdChzZWxmLml0ZW1zKCkpCiAKIAogZGVmIHVwZGF0ZV9leHBl
Y3RlZCh0ZXN0X3BhdGhzLCBzZXJ2ZV9yb290LCBsb2dfZmlsZV9uYW1lcywKQEAgLTkzLDcgKzky
LDcgQEAgZGVmIHVwZGF0ZV9leHBlY3RlZCh0ZXN0X3BhdGhzLCBzZXJ2ZV9yb290LCBsb2dfZmls
ZV9uYW1lcywKIAogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cyhzZXJ2ZV9yb290PU5vbmUpOgogICAg
IGdsb2JhbCBtYW5pZmVzdCwgbWFuaWZlc3RpdGVtCi0gICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQg
bWFuaWZlc3QsIGl0ZW0gYXMgbWFuaWZlc3RpdGVtCisgICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQg
bWFuaWZlc3QsIGl0ZW0gYXMgbWFuaWZlc3RpdGVtICAjIHR5cGU6IGlnbm9yZQogCiAKIGRlZiBm
aWxlc19pbl9yZXBvKHJlcG9fcm9vdCk6CkBAIC0xMjksNyArMTI4LDcgQEAgZGVmIHVuZXhwZWN0
ZWRfY2hhbmdlcyhtYW5pZmVzdHMsIGNoYW5nZV9kYXRhLCBmaWxlc19jaGFuZ2VkKToKICAgICBm
aWxlc19jaGFuZ2VkID0gc2V0KGZpbGVzX2NoYW5nZWQpCiAKICAgICByb290X21hbmlmZXN0ID0g
Tm9uZQotICAgIGZvciBtYW5pZmVzdCwgcGF0aHMgaW4gaXRlcml0ZW1zKG1hbmlmZXN0cyk6Cisg
ICAgZm9yIG1hbmlmZXN0LCBwYXRocyBpbiBtYW5pZmVzdHMuaXRlbXMoKToKICAgICAgICAgaWYg
cGF0aHNbInVybF9iYXNlIl0gPT0gIi8iOgogICAgICAgICAgICAgcm9vdF9tYW5pZmVzdCA9IG1h
bmlmZXN0CiAgICAgICAgICAgICBicmVhawpAQCAtMTcwLDkgKzE2OSwxMCBAQCBjbGFzcyBJbnRl
cm5lZERhdGEob2JqZWN0KToKICAgICB0eXBlX2NvbnYgPSBOb25lCiAgICAgcmV2X3R5cGVfY29u
diA9IE5vbmUKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXhfYml0cz04KToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbWF4X2JpdHM6IGludCA9IDgpOgogICAgICAgICBzZWxmLm1heF9pZHgg
PSAyKiptYXhfYml0cyAtIDIKICAgICAgICAgIyBSZXNlcnZlIDAgYXMgYSBzZW50aW5hbAorICAg
ICAgICBzZWxmLl9kYXRhOiBUdXBsZVtMaXN0W29iamVjdF0sIERpY3RbaW50LCBvYmplY3RdXQog
ICAgICAgICBzZWxmLl9kYXRhID0gW05vbmVdLCB7fQogCiAgICAgZGVmIGNsZWFyKHNlbGYpOgpA
QCAtMjQwLDcgKzI0MCw3IEBAIGRlZiBwYWNrX3Jlc3VsdChkYXRhKToKIGRlZiB1bnBhY2tfcmVz
dWx0KGRhdGEpOgogICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgaW50KToKICAgICAgICAgcmV0dXJu
IChzdGF0dXNfaW50ZXJuLmdldChkYXRhKSwgTm9uZSkKLSAgICBpZiBpc2luc3RhbmNlKGRhdGEs
IHRleHRfdHlwZSk6CisgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBzdHIpOgogICAgICAgICByZXR1
cm4gKGRhdGEsIE5vbmUpCiAgICAgIyBVbnBhY2sgbXVsdGlwbGUgc3RhdHVzZXMgaW50byBhIHR1
cGxlIHRvIGJlIHVzZWQgaW4gdGhlIFJlc3VsdHMgbmFtZWQgdHVwbGUgYmVsb3csCiAgICAgIyBz
ZXBhcmF0aW5nIGBzdGF0dXNgIGFuZCBga25vd25faW50ZXJtaXR0ZW50YC4KQEAgLTI1OSw3ICsy
NTksNyBAQCBkZWYgbG9hZF90ZXN0X2RhdGEodGVzdF9wYXRocyk6CiAgICAgbWFuaWZlc3RzID0g
bWFuaWZlc3RfbG9hZGVyLmxvYWQoKQogCiAgICAgaWRfdGVzdF9tYXAgPSB7fQotICAgIGZvciB0
ZXN0X21hbmlmZXN0LCBwYXRocyBpbiBpdGVyaXRlbXMobWFuaWZlc3RzKToKKyAgICBmb3IgdGVz
dF9tYW5pZmVzdCwgcGF0aHMgaW4gbWFuaWZlc3RzLml0ZW1zKCk6CiAgICAgICAgIGlkX3Rlc3Rf
bWFwLnVwZGF0ZShjcmVhdGVfdGVzdF90cmVlKHBhdGhzWyJtZXRhZGF0YV9wYXRoIl0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWFuaWZlc3QpKQog
ICAgIHJldHVybiBpZF90ZXN0X21hcApAQCAtMjg3LDEwICsyODcsMTAgQEAgZGVmIHVwZGF0ZV9y
ZXN1bHRzKGlkX3Rlc3RfbWFwLAogICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0
ZW50LAogICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCiAgICAgICAgICAg
ICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCk6Ci0gICAgdGVzdF9maWxlX2l0ZW1zID0gc2V0
KGl0ZXJ2YWx1ZXMoaWRfdGVzdF9tYXApKQorICAgIHRlc3RfZmlsZV9pdGVtcyA9IHNldChpZF90
ZXN0X21hcC52YWx1ZXMoKSkKIAogICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZSA9IHt9Ci0g
ICAgZm9yIHRlc3RfdHlwZSwgdGVzdF9jbHMgaW4gaXRlcml0ZW1zKHdwdHRlc3QubWFuaWZlc3Rf
dGVzdF9jbHMpOgorICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfY2xzIGluIHdwdHRlc3QubWFuaWZl
c3RfdGVzdF9jbHMuaXRlbXMoKToKICAgICAgICAgaWYgdGVzdF9jbHMucmVzdWx0X2NsczoKICAg
ICAgICAgICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZVsodGVzdF90eXBlLCBGYWxzZSldID0g
dGVzdF9jbHMucmVzdWx0X2Nscy5kZWZhdWx0X2V4cGVjdGVkCiAgICAgICAgIGlmIHRlc3RfY2xz
LnN1YnRlc3RfcmVzdWx0X2NsczoKQEAgLTMyNywxMCArMzI3LDcgQEAgZGVmIHdyaXRlX25ld19l
eHBlY3RlZChtZXRhZGF0YV9wYXRoLCBleHBlY3RlZCk6CiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIHdpdGggb3Blbih0bXBfcGF0aCwgIndiIikgYXMgZjoKICAgICAgICAgICAgICAgICBmLndy
aXRlKG1hbmlmZXN0X3N0ci5lbmNvZGUoInV0ZjgiKSkKLSAgICAgICAgICAgIGlmIHN5cy52ZXJz
aW9uX2luZm8gPj0gKDMsIDMpOgotICAgICAgICAgICAgICAgIG9zLnJlcGxhY2UodG1wX3BhdGgs
IHBhdGgpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG9zLnJlbmFtZSh0bXBf
cGF0aCwgcGF0aCkKKyAgICAgICAgICAgIG9zLnJlcGxhY2UodG1wX3BhdGgsIHBhdGgpCiAgICAg
ICAgIGV4Y2VwdCAoRXhjZXB0aW9uLCBLZXlib2FyZEludGVycnVwdCk6CiAgICAgICAgICAgICB0
cnk6CiAgICAgICAgICAgICAgICAgb3MudW5saW5rKHRtcF9wYXRoKQpAQCAtNDMxLDcgKzQyOCw3
IEBAIGNsYXNzIEV4cGVjdGVkVXBkYXRlcihvYmplY3QpOgogICAgICAgICAgICAgYWN0aW9uX21h
cFsibHNhbl9sZWFrIl0oaXRlbSkKIAogICAgICAgICBtb3psZWFrX2RhdGEgPSBkYXRhLmdldCgi
bW96bGVhayIsIHt9KQotICAgICAgICBmb3Igc2NvcGUsIHNjb3BlX2RhdGEgaW4gaXRlcml0ZW1z
KG1vemxlYWtfZGF0YSk6CisgICAgICAgIGZvciBzY29wZSwgc2NvcGVfZGF0YSBpbiBtb3psZWFr
X2RhdGEuaXRlbXMoKToKICAgICAgICAgICAgIGZvciBrZXksIGFjdGlvbiBpbiBbKCJvYmplY3Rz
IiwgIm1vemxlYWtfb2JqZWN0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
dG90YWwiLCAibW96bGVha190b3RhbCIpXToKICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBz
Y29wZV9kYXRhLmdldChrZXksIFtdKToKQEAgLTY2OCwxMSArNjY1LDExIEBAIGNsYXNzIFRlc3RG
aWxlRGF0YShvYmplY3QpOgogICAgICAgICAjIFJldHVybiBzdWJ0ZXN0IG5vZGVzIHByZXNlbnQg
aW4gdGhlIGV4cGVjdGVkIGZpbGUsIGJ1dCBtaXNzaW5nIGZyb20gdGhlIGRhdGEKICAgICAgICAg
cnYgPSBbXQogCi0gICAgICAgIGZvciB0ZXN0X2lkLCBzdWJ0ZXN0cyBpbiBpdGVyaXRlbXMoc2Vs
Zi5kYXRhKToKKyAgICAgICAgZm9yIHRlc3RfaWQsIHN1YnRlc3RzIGluIHNlbGYuZGF0YS5pdGVt
cygpOgogICAgICAgICAgICAgdGVzdCA9IGV4cGVjdGVkLmdldF90ZXN0KGVuc3VyZV90ZXh0KHRl
c3RfaWQpKQogICAgICAgICAgICAgaWYgbm90IHRlc3Q6CiAgICAgICAgICAgICAgICAgY29udGlu
dWUKLSAgICAgICAgICAgIHNlZW5fc3VidGVzdHMgPSBzZXQoZW5zdXJlX3RleHQoaXRlbSkgZm9y
IGl0ZW0gaW4gaXRlcmtleXMoc3VidGVzdHMpIGlmIGl0ZW0gaXMgbm90IE5vbmUpCisgICAgICAg
ICAgICBzZWVuX3N1YnRlc3RzID0gc2V0KGVuc3VyZV90ZXh0KGl0ZW0pIGZvciBpdGVtIGluIHN1
YnRlc3RzLmtleXMoKSBpZiBpdGVtIGlzIG5vdCBOb25lKQogICAgICAgICAgICAgbWlzc2luZ19z
dWJ0ZXN0cyA9IHNldCh0ZXN0LnN1YnRlc3RzLmtleXMoKSkgLSBzZWVuX3N1YnRlc3RzCiAgICAg
ICAgICAgICBmb3IgaXRlbSBpbiBtaXNzaW5nX3N1YnRlc3RzOgogICAgICAgICAgICAgICAgIGV4
cGVjdGVkX3N1YnRlc3QgPSB0ZXN0LmdldF9zdWJ0ZXN0KGl0ZW0pCkBAIC02OTEsNyArNjg4LDcg
QEAgY2xhc3MgVGVzdEZpbGVEYXRhKG9iamVjdCk6CiAgICAgICAgICMgc2luY2UgcmVtb3Zpbmcg
dGhlc2UgbWF5IGJlIGluYXBwcm9wcmlhdGUKICAgICAgICAgdG9wX2xldmVsX3Byb3BzLCBkZXBl
bmRlbnRfcHJvcHMgPSB1cGRhdGVfcHJvcGVydGllcwogICAgICAgICBhbGxfcHJvcGVydGllcyA9
IHNldCh0b3BfbGV2ZWxfcHJvcHMpCi0gICAgICAgIGZvciBpdGVtIGluIGl0ZXJ2YWx1ZXMoZGVw
ZW5kZW50X3Byb3BzKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gZGVwZW5kZW50X3Byb3BzLnZhbHVl
cygpOgogICAgICAgICAgICAgYWxsX3Byb3BlcnRpZXMgfD0gc2V0KGl0ZW0pCiAKICAgICAgICAg
ZmlsdGVyZWQgPSBbXQpAQCAtNzQxLDkgKzczOCw5IEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmpl
Y3QpOgogICAgICAgICAgICAgdGVzdF9leHBlY3RlZCA9IGV4cGVjdGVkLmdldF90ZXN0KHRlc3Rf
aWQpCiAgICAgICAgICAgICBleHBlY3RlZF9ieV90ZXN0W3Rlc3RfaWRdID0gdGVzdF9leHBlY3Rl
ZAogCi0gICAgICAgIGZvciB0ZXN0X2lkLCB0ZXN0X2RhdGEgaW4gaXRlcml0ZW1zKHNlbGYuZGF0
YSk6CisgICAgICAgIGZvciB0ZXN0X2lkLCB0ZXN0X2RhdGEgaW4gc2VsZi5kYXRhLml0ZW1zKCk6
CiAgICAgICAgICAgICB0ZXN0X2lkID0gZW5zdXJlX3N0cih0ZXN0X2lkKQotICAgICAgICAgICAg
Zm9yIHN1YnRlc3RfaWQsIHJlc3VsdHNfbGlzdCBpbiBpdGVyaXRlbXModGVzdF9kYXRhKToKKyAg
ICAgICAgICAgIGZvciBzdWJ0ZXN0X2lkLCByZXN1bHRzX2xpc3QgaW4gdGVzdF9kYXRhLml0ZW1z
KCk6CiAgICAgICAgICAgICAgICAgZm9yIHByb3AsIHJ1bl9pbmZvLCB2YWx1ZSBpbiByZXN1bHRz
X2xpc3Q6CiAgICAgICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIGRpcmVjdG9yeSBtZXRh
ZGF0YQogICAgICAgICAgICAgICAgICAgICBpZiBzdWJ0ZXN0X2lkIGlzIE5vbmUgYW5kIHRlc3Rf
aWQuZW5kc3dpdGgoIl9fZGlyX18iKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1MGMwNDc4MmE2NQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weQpAQCAtMCwwICsxLDExIEBACitpbXBvcnQgbXVs
dGlwcm9jZXNzaW5nCisKK19jb250ZXh0ID0gTm9uZQorCisKK2RlZiBnZXRfY29udGV4dCgpOgor
ICAgIGdsb2JhbCBfY29udGV4dAorCisgICAgaWYgX2NvbnRleHQgaXMgTm9uZToKKyAgICAgICAg
X2NvbnRleHQgPSBtdWx0aXByb2Nlc3NpbmcuZ2V0X2NvbnRleHQoInNwYXduIikKKyAgICByZXR1
cm4gX2NvbnRleHQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2Nlc3MucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4YTJiODk0Y2I3NGQuLjAwMDAwMDAwMDAwMAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotaW1wb3J0IHN5cwotCi1pbXBvcnQgc2l4
Ci0KLQotZGVmIGNhc3RfZW52KGVudik6Ci0gICAgIiIiRW5jb2RlIGFsbCB0aGUgZW52aXJvbm1l
bnQgdmFsdWVzIGFzIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGZvciBlYWNoIFB5dGhvbiB2ZXJzaW9u
Ci0gICAgVGhpcyBhc3N1bWVzIHRoYXQgYWxsIHRoZSBkYXRhIGlzIG9yIGNhbiBiZSByZXByZXNl
bnRlZCBhcyBVVEY4IiIiCi0KLSAgICBlbnZfdHlwZSA9IHNpeC5lbnN1cmVfYmluYXJ5IGlmIHN5
cy52ZXJzaW9uX2luZm9bMF0gPCAzIGVsc2Ugc2l4LmVuc3VyZV9zdHIKLSAgICByZXR1cm4ge2Vu
dl90eXBlKGtleSk6IGVudl90eXBlKHZhbHVlKSBmb3Iga2V5LCB2YWx1ZSBpbiBzaXguaXRlcml0
ZW1zKGVudil9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5CmluZGV4IGFiZDg0MDk0
YmIzMy4uZTY1ZGY1ZWU4OTkzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQpA
QCAtMSw2ICsxLDUgQEAKIGltcG9ydCBpbXBvcnRsaWIKIGltcG9ydCBpbXAKLWZyb20gc2l4IGlt
cG9ydCBpdGVyaXRlbXMKIAogZnJvbSAuYnJvd3NlcnMgaW1wb3J0IHByb2R1Y3RfbGlzdAogCkBA
IC0zNCwzNCArMzMsMjkgQEAgY2xhc3MgUHJvZHVjdChvYmplY3QpOgogICAgICAgICBtb2R1bGUg
PSBwcm9kdWN0X21vZHVsZShjb25maWcsIHByb2R1Y3QpCiAgICAgICAgIGRhdGEgPSBtb2R1bGUu
X193cHRydW5uZXJfXwogICAgICAgICBzZWxmLm5hbWUgPSBwcm9kdWN0CisgICAgICAgIGlmIGlz
aW5zdGFuY2UoZGF0YVsiYnJvd3NlciJdLCBzdHIpOgorICAgICAgICAgICAgc2VsZi5fYnJvd3Nl
cl9jbHMgPSB7Tm9uZTogZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXIiXSl9CisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBzZWxmLl9icm93c2VyX2NscyA9IHtrZXk6IGdldGF0dHIobW9k
dWxlLCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZh
bHVlIGluIGRhdGFbImJyb3dzZXIiXS5pdGVtcygpfQogICAgICAgICBzZWxmLmNoZWNrX2FyZ3Mg
PSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiY2hlY2tfYXJncyJdKQotICAgICAgICBzZWxmLmJyb3dz
ZXJfY2xzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXIiXSkKICAgICAgICAgc2VsZi5n
ZXRfYnJvd3Nlcl9rd2FyZ3MgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiYnJvd3Nlcl9rd2FyZ3Mi
XSkKICAgICAgICAgc2VsZi5nZXRfZXhlY3V0b3Jfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRh
dGFbImV4ZWN1dG9yX2t3YXJncyJdKQogICAgICAgICBzZWxmLmVudl9vcHRpb25zID0gZ2V0YXR0
cihtb2R1bGUsIGRhdGFbImVudl9vcHRpb25zIl0pKCkKICAgICAgICAgc2VsZi5nZXRfZW52X2V4
dHJhcyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJlbnZfZXh0cmFzIl0pCiAgICAgICAgIHNlbGYu
cnVuX2luZm9fZXh0cmFzID0gKGdldGF0dHIobW9kdWxlLCBkYXRhWyJydW5faW5mb19leHRyYXMi
XSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJydW5faW5mb19leHRyYXMiIGluIGRh
dGEgZWxzZSBsYW1iZGEgKiprd2FyZ3M6e30pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICJydW5faW5mb19leHRyYXMiIGluIGRhdGEgZWxzZSBsYW1iZGEgKiprd2FyZ3M6e30p
CiAgICAgICAgIHNlbGYuZ2V0X3RpbWVvdXRfbXVsdGlwbGllciA9IGdldGF0dHIobW9kdWxlLCBk
YXRhWyJ0aW1lb3V0X211bHRpcGxpZXIiXSkKIAogICAgICAgICBzZWxmLmV4ZWN1dG9yX2NsYXNz
ZXMgPSB7fQotICAgICAgICBmb3IgdGVzdF90eXBlLCBjbHNfbmFtZSBpbiBpdGVyaXRlbXMoZGF0
YVsiZXhlY3V0b3IiXSk6CisgICAgICAgIGZvciB0ZXN0X3R5cGUsIGNsc19uYW1lIGluIGRhdGFb
ImV4ZWN1dG9yIl0uaXRlbXMoKToKICAgICAgICAgICAgIGNscyA9IGdldGF0dHIobW9kdWxlLCBj
bHNfbmFtZSkKICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3JfY2xhc3Nlc1t0ZXN0X3R5cGVdID0g
Y2xzCiAKLQotZGVmIGxvYWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QsIGxvYWRfY2xzPUZhbHNl
KToKLSAgICBydiA9IFByb2R1Y3QoY29uZmlnLCBwcm9kdWN0KQotICAgIGlmIG5vdCBsb2FkX2Ns
czoKLSAgICAgICAgcmV0dXJuIChydi5jaGVja19hcmdzLAotICAgICAgICAgICAgICAgIHJ2LmJy
b3dzZXJfY2xzLAotICAgICAgICAgICAgICAgIHJ2LmdldF9icm93c2VyX2t3YXJncywKLSAgICAg
ICAgICAgICAgICBydi5leGVjdXRvcl9jbGFzc2VzLAotICAgICAgICAgICAgICAgIHJ2LmdldF9l
eGVjdXRvcl9rd2FyZ3MsCi0gICAgICAgICAgICAgICAgcnYuZW52X29wdGlvbnMsCi0gICAgICAg
ICAgICAgICAgcnYuZ2V0X2Vudl9leHRyYXMsCi0gICAgICAgICAgICAgICAgcnYucnVuX2luZm9f
ZXh0cmFzKQotICAgIHJldHVybiBydgorICAgIGRlZiBnZXRfYnJvd3Nlcl9jbHMoc2VsZiwgdGVz
dF90eXBlKToKKyAgICAgICAgaWYgdGVzdF90eXBlIGluIHNlbGYuX2Jyb3dzZXJfY2xzOgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2Jyb3dzZXJfY2xzW3Rlc3RfdHlwZV0KKyAgICAgICAgcmV0
dXJuIHNlbGYuX2Jyb3dzZXJfY2xzW05vbmVdCiAKIAogZGVmIGxvYWRfcHJvZHVjdF91cGRhdGUo
Y29uZmlnLCBwcm9kdWN0KToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weQppbmRl
eCA4OGQxYzIzMmJmYjUuLmVlYjVhZjIzMDAyOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0
YWJpbGl0eS5weQpAQCAtNSw3ICs1LDYgQEAgaW1wb3J0IGlvCiBpbXBvcnQgb3MKIGZyb20gY29s
bGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0LCBkZWZhdWx0ZGljdAogZnJvbSBkYXRldGltZSBp
bXBvcnQgZGF0ZXRpbWUKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAogZnJvbSBtb3psb2cg
aW1wb3J0IHJlYWRlcgogZnJvbSBtb3psb2cuZm9ybWF0dGVycyBpbXBvcnQgSlNPTkZvcm1hdHRl
cgpAQCAtMTMsOCArMTIsOCBAQCBmcm9tIG1vemxvZy5oYW5kbGVycyBpbXBvcnQgQmFzZUhhbmRs
ZXIsIFN0cmVhbUhhbmRsZXIsIExvZ0xldmVsRmlsdGVyCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5h
bWUoX19maWxlX18pCiBsb2NhbHBhdGhzID0gaW1wLmxvYWRfc291cmNlKCJsb2NhbHBhdGhzIiwg
b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRpciwg
ImxvY2FscGF0aHMucHkiKSkpCi1mcm9tIGNpLnRjLmdpdGh1Yl9jaGVja3Nfb3V0cHV0IGltcG9y
dCBnZXRfZ2hfY2hlY2tzX291dHB1dHRlcgotZnJvbSB3cHQubWFya2Rvd24gaW1wb3J0IG1hcmtk
b3duX2FkanVzdCwgdGFibGUKK2Zyb20gY2kudGMuZ2l0aHViX2NoZWNrc19vdXRwdXQgaW1wb3J0
IGdldF9naF9jaGVja3Nfb3V0cHV0dGVyICAjIHR5cGU6IGlnbm9yZQorZnJvbSB3cHQubWFya2Rv
d24gaW1wb3J0IG1hcmtkb3duX2FkanVzdCwgdGFibGUgICMgdHlwZTogaWdub3JlCiAKIAogIyBJ
ZiBhIHRlc3QgdGFrZXMgbW9yZSB0aGFuIChGTEFLWV9USFJFU0hPTEQqdGltZW91dCkgYW5kIGRv
ZXMgbm90IGNvbnNpc3RlbnRseQpAQCAtMjIsNyArMjEsNyBAQCBmcm9tIHdwdC5tYXJrZG93biBp
bXBvcnQgbWFya2Rvd25fYWRqdXN0LCB0YWJsZQogRkxBS1lfVEhSRVNIT0xEID0gMC44CiAKIAot
Y2xhc3MgTG9nQWN0aW9uRmlsdGVyKEJhc2VIYW5kbGVyKToKK2NsYXNzIExvZ0FjdGlvbkZpbHRl
cihCYXNlSGFuZGxlcik6ICAjIHR5cGU6IGlnbm9yZQogCiAgICAgIiIiSGFuZGxlciB0aGF0IGZp
bHRlcnMgb3V0IG1lc3NhZ2VzIG5vdCBvZiBhIGdpdmVuIHNldCBvZiBhY3Rpb25zLgogCkBAIC00
NCw3ICs0Myw3IEBAIGNsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CiAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5pbm5lcihpdGVtKQogCiAKLWNsYXNzIExvZ0hhbmRsZXIocmVhZGVy
LkxvZ0hhbmRsZXIpOgorY2xhc3MgTG9nSGFuZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6ICAjIHR5
cGU6IGlnbm9yZQogCiAgICAgIiIiSGFuZGxlIHVwZGF0aW5nIHRlc3QgYW5kIHN1YnRlc3Qgc3Rh
dHVzIGluIGxvZy4KIApAQCAtMTQyLDEwICsxNDEsMTAgQEAgZGVmIHByb2Nlc3NfcmVzdWx0cyhs
b2csIGl0ZXJhdGlvbnMpOgogICAgIGhhbmRsZXIgPSBMb2dIYW5kbGVyKCkKICAgICByZWFkZXIu
aGFuZGxlX2xvZyhyZWFkZXIucmVhZChsb2cpLCBoYW5kbGVyKQogICAgIHJlc3VsdHMgPSBoYW5k
bGVyLnJlc3VsdHMKLSAgICBmb3IgdGVzdF9uYW1lLCB0ZXN0IGluIGl0ZXJpdGVtcyhyZXN1bHRz
KToKKyAgICBmb3IgdGVzdF9uYW1lLCB0ZXN0IGluIHJlc3VsdHMuaXRlbXMoKToKICAgICAgICAg
aWYgaXNfaW5jb25zaXN0ZW50KHRlc3RbInN0YXR1cyJdLCBpdGVyYXRpb25zKToKICAgICAgICAg
ICAgIGluY29uc2lzdGVudC5hcHBlbmQoKHRlc3RfbmFtZSwgTm9uZSwgdGVzdFsic3RhdHVzIl0s
IFtdKSkKLSAgICAgICAgZm9yIHN1YnRlc3RfbmFtZSwgc3VidGVzdCBpbiBpdGVyaXRlbXModGVz
dFsic3VidGVzdHMiXSk6CisgICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gdGVz
dFsic3VidGVzdHMiXS5pdGVtcygpOgogICAgICAgICAgICAgaWYgaXNfaW5jb25zaXN0ZW50KHN1
YnRlc3RbInN0YXR1cyJdLCBpdGVyYXRpb25zKToKICAgICAgICAgICAgICAgICBpbmNvbnNpc3Rl
bnQuYXBwZW5kKCh0ZXN0X25hbWUsIHN1YnRlc3RfbmFtZSwgc3VidGVzdFsic3RhdHVzIl0sIHN1
YnRlc3RbIm1lc3NhZ2VzIl0pKQogCkBAIC0yMzUsNyArMjM0LDcgQEAgZGVmIHdyaXRlX3Jlc3Vs
dHMobG9nLCByZXN1bHRzLCBpdGVyYXRpb25zLCBwcl9udW1iZXI9Tm9uZSwgdXNlX2RldGFpbHM9
RmFsc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGVzdHMiIGlmIGxlbihyZXN1bHRzKSA+IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAidGVzdCIpKQogCi0gICAgZm9yIHRlc3RfbmFt
ZSwgdGVzdCBpbiBpdGVyaXRlbXMocmVzdWx0cyk6CisgICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBp
biByZXN1bHRzLml0ZW1zKCk6CiAgICAgICAgIGJhc2V1cmwgPSAiaHR0cDovL3czYy10ZXN0Lm9y
Zy9zdWJtaXNzaW9ucyIKICAgICAgICAgaWYgImh0dHBzIiBpbiBvcy5wYXRoLnNwbGl0ZXh0KHRl
c3RfbmFtZSlbMF0uc3BsaXQoIi4iKVsxOl06CiAgICAgICAgICAgICBiYXNldXJsID0gImh0dHBz
Oi8vdzNjLXRlc3Qub3JnL3N1Ym1pc3Npb25zIgpAQCAtMzA1LDcgKzMwNCw3IEBAIGRlZiBnZXRf
c3RlcHMobG9nZ2VyLCByZXBlYXRfbG9vcCwgcmVwZWF0X3Jlc3RhcnQsIGt3YXJnc19leHRyYXMp
OgogICAgIGZvciBrd2FyZ3NfZXh0cmEgaW4ga3dhcmdzX2V4dHJhczoKICAgICAgICAgaWYga3dh
cmdzX2V4dHJhOgogICAgICAgICAgICAgZmxhZ3Nfc3RyaW5nID0gIiB3aXRoIGZsYWdzICVzIiAl
ICIgIi5qb2luKAotICAgICAgICAgICAgICAgICIlcz0lcyIgJSBpdGVtIGZvciBpdGVtIGluIGl0
ZXJpdGVtcyhrd2FyZ3NfZXh0cmEpKQorICAgICAgICAgICAgICAgICIlcz0lcyIgJSBpdGVtIGZv
ciBpdGVtIGluIGt3YXJnc19leHRyYS5pdGVtcygpKQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgZmxhZ3Nfc3RyaW5nID0gIiIKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rk
cml2ZXItZXh0cmEuanMKaW5kZXggOWMwYzY5YWYzYTNmLi44NDJhYmY0MTFmOTAgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3Rkcml2ZXItZXh0cmEuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcwpAQCAtMzQsNyArMzQs
NyBAQAogICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gInRlc3Rkcml2ZXItY29tcGxl
dGUiKSB7CiAgICAgICAgICAgICBjb25zdCBjbWRfaWQgPSBkYXRhLmNtZF9pZDsKICAgICAgICAg
ICAgIGNvbnN0IFtvbl9zdWNjZXNzLCBvbl9mYWlsdXJlXSA9IHBlbmRpbmcuZ2V0KGNtZF9pZCk7
Ci0gICAgICAgICAgICBwZW5kaW5nLmNsZWFyKGNtZF9pZCk7CisgICAgICAgICAgICBwZW5kaW5n
LmRlbGV0ZShjbWRfaWQpOwogICAgICAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSBkYXRhLnN0YXR1
cyA9PT0gInN1Y2Nlc3MiID8gb25fc3VjY2VzcyA6IG9uX2ZhaWx1cmU7CiAgICAgICAgICAgICBy
ZXNvbHZlcihkYXRhKTsKICAgICAgICAgICAgIGlmIChpc190ZXN0X2NvbnRleHQpIHsKQEAgLTEz
Niw2ICsxMzYsOSBAQAogICAgICAgICAgICAgaWYgKHRlc3RoYXJuZXNzX2NvbnRleHQgPT09IG51
bGwpIHsKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRyaWVkIHRvIHJ1biBpbiBh
IG5vbi10ZXN0aGFybmVzcyB3aW5kb3cgd2l0aG91dCBhIGNhbGwgdG8gc2V0X3Rlc3RfY29udGV4
dCIpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFjdGlvbl9tc2cuY29udGV4dCA9
PT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGFjdGlvbl9tc2cuY29udGV4dCA9IGdldF93aW5k
b3dfaWQod2luZG93KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNtZF9pZCA9IGN0eF9j
bWRfaWQrKzsKICAgICAgICAgICAgIGFjdGlvbl9tc2cuY21kX2lkID0gY21kX2lkOwogICAgICAg
ICAgICAgd2luZG93LnRlc3RfZHJpdmVyLm1lc3NhZ2VfdGVzdCh7dHlwZTogInRlc3Rkcml2ZXIt
Y29tbWFuZCIsCkBAIC0xNjksNiArMTcyLDEwIEBACiAgICAgICAgIHJldHVybiBjcmVhdGVfYWN0
aW9uKCJjbGljayIsIHtzZWxlY3RvciwgY29udGV4dH0pOwogICAgIH07CiAKKyAgICB3aW5kb3cu
dGVzdF9kcml2ZXJfaW50ZXJuYWwuZGVsZXRlX2FsbF9jb29raWVzID0gZnVuY3Rpb24oY29udGV4
dD1udWxsKSB7CisgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJkZWxldGVfYWxsX2Nvb2tp
ZXMiLCB7Y29udGV4dH0pOworICAgIH07CisKICAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJu
YWwuc2VuZF9rZXlzID0gZnVuY3Rpb24oZWxlbWVudCwga2V5cykgewogICAgICAgICBjb25zdCBz
ZWxlY3RvciA9IGdldF9zZWxlY3RvcihlbGVtZW50KTsKICAgICAgICAgY29uc3QgY29udGV4dCA9
IGdldF9jb250ZXh0KGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8u
anMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2by5qcwppbmRleCBhMTBiNjlkZjU1MDQuLjRhMjdkYzI3
ZWY2ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3Ny
ZXBvcnQtc2Vydm8uanMKQEAgLTEsNCArMSw0IEBACi12YXIgcHJvcHMgPSB7b3V0cHV0OiUob3V0
cHV0KWR9OwordmFyIHByb3BzID0ge291dHB1dDolKG91dHB1dClkLCBkZWJ1ZzogJShkZWJ1Zylz
fTsKIHZhciBzdGFydF9sb2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiBzdGFydF9s
b2MuaHJlZiA9IGxvY2F0aW9uLmhyZWY7CiBzZXR1cChwcm9wcyk7CmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFy
bmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvZHJpdmVyLmpz
CmluZGV4IGM4ODg0MTM2MDQ3MC4uNzgxOTUzOGRiYjhmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3Jl
cG9ydC1zZXJ2b2RyaXZlci5qcworKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcwpA
QCAtMSw0ICsxLDQgQEAKLXNldHVwKHtvdXRwdXQ6JShvdXRwdXQpZH0pOworc2V0dXAoe291dHB1
dDolKG91dHB1dClkLCBkZWJ1ZzogJShkZWJ1ZylzfSk7CiAKIGFkZF9jb21wbGV0aW9uX2NhbGxi
YWNrKGZ1bmN0aW9uKCkgewogICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0
ZXN0cywgc3RhdHVzKSB7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzCmluZGV4IDljZDY4MGUxNGFlZC4uZDM4NTY5MjQ0NWM1IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
aGFybmVzc3JlcG9ydC5qcworKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcwpAQCAtNzMsNiArNzMsNyBA
QCB3aW5kb3cuX193cHRydW5uZXJfcHJvY2Vzc19uZXh0X2V2ZW50ID0gZnVuY3Rpb24oKSB7CiAg
IHZhciBwcm9wcyA9IHtvdXRwdXQ6ICUob3V0cHV0KWQsCiAgICAgICAgICAgICAgICB0aW1lb3V0
X211bHRpcGxpZXI6ICUodGltZW91dF9tdWx0aXBsaWVyKXMsCiAgICAgICAgICAgICAgICBleHBs
aWNpdF90aW1lb3V0OiAlKGV4cGxpY2l0X3RpbWVvdXQpcywKKyAgICAgICAgICAgICAgIGRlYnVn
OiAlKGRlYnVnKXMsCiAgICAgICAgICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJjb21wbGV0aW9u
Il19OwogCiAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzLCBoYXJuZXNz
X3N0YXR1cykgewpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKaW5kZXggNGEz
ZmE0MjczNjU0Li45NDkyYThiYzM4ZTYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxv
YWRlci5weQpAQCAtMSwxNiArMSwxNCBAQAogaW1wb3J0IGhhc2hsaWIKIGltcG9ydCBqc29uCiBp
bXBvcnQgb3MKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQKK2Zy
b20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxzcGxpdAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEs
IGFic3RyYWN0bWV0aG9kCi1mcm9tIHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20g
cXVldWUgaW1wb3J0IEVtcHR5CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdCwg
ZGVxdWUKLWZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBRdWV1ZQotZnJvbSBzaXggaW1wb3J0
IGVuc3VyZV9iaW5hcnksIGl0ZXJpdGVtcwotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCiAK
IGZyb20gLiBpbXBvcnQgbWFuaWZlc3RpbmNsdWRlCiBmcm9tIC4gaW1wb3J0IG1hbmlmZXN0ZXhw
ZWN0ZWQKK2Zyb20gLiBpbXBvcnQgbXBjb250ZXh0CiBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKIGZy
b20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVkCiAKQEAgLTIyLDkgKzIwLDkgQEAgZG93bmxvYWRf
ZnJvbV9naXRodWIgPSBOb25lCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6CiAgICAgIyBUaGlz
IHJlbGllcyBvbiBhbiBhbHJlYWR5IGxvYWRlZCBtb2R1bGUgaGF2aW5nIHNldCB0aGUgc3lzLnBh
dGggY29ycmVjdGx5IDooCiAgICAgZ2xvYmFsIG1hbmlmZXN0LCBtYW5pZmVzdF91cGRhdGUsIGRv
d25sb2FkX2Zyb21fZ2l0aHViCi0gICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QKKyAg
ICBmcm9tIG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdCAgIyB0eXBlOiBpZ25vcmUKICAgICBmcm9t
IG1hbmlmZXN0IGltcG9ydCB1cGRhdGUgYXMgbWFuaWZlc3RfdXBkYXRlCi0gICAgZnJvbSBtYW5p
ZmVzdC5kb3dubG9hZCBpbXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIKKyAgICBmcm9tIG1hbmlm
ZXN0LmRvd25sb2FkIGltcG9ydCBkb3dubG9hZF9mcm9tX2dpdGh1YiAgIyB0eXBlOiBpZ25vcmUK
IAogCiBjbGFzcyBUZXN0R3JvdXBzRmlsZShvYmplY3QpOgpAQCAtNDEsNyArMzksNyBAQCBjbGFz
cyBUZXN0R3JvdXBzRmlsZShvYmplY3QpOgogICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICBz
ZWxmLmdyb3VwX2J5X3Rlc3QgPSB7fQotICAgICAgICBmb3IgZ3JvdXAsIHRlc3RfaWRzIGluIGl0
ZXJpdGVtcyhzZWxmLl9kYXRhKToKKyAgICAgICAgZm9yIGdyb3VwLCB0ZXN0X2lkcyBpbiBzZWxm
Ll9kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICBmb3IgdGVzdF9pZCBpbiB0ZXN0X2lkczoKICAg
ICAgICAgICAgICAgICBzZWxmLmdyb3VwX2J5X3Rlc3RbdGVzdF9pZF0gPSBncm91cAogCkBAIC01
MSw2ICs0OSwxNiBAQCBjbGFzcyBUZXN0R3JvdXBzRmlsZShvYmplY3QpOgogICAgIGRlZiBfX2dl
dGl0ZW1fXyhzZWxmLCBrZXkpOgogICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtrZXldCiAKK2Rl
ZiByZWFkX2luY2x1ZGVfZnJvbV9maWxlKGZpbGUpOgorICAgIG5ld19pbmNsdWRlID0gW10KKyAg
ICB3aXRoIG9wZW4oZmlsZSkgYXMgZjoKKyAgICAgICAgZm9yIGxpbmUgaW4gZjoKKyAgICAgICAg
ICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKKyAgICAgICAgICAgICMgQWxsb3cgd2hvbGUtbGluZSBj
b21tZW50czsKKyAgICAgICAgICAgICMgZnJhZ21lbnRzIG1lYW4gd2UgY2FuJ3QgaGF2ZSBwYXJ0
aWFsIGxpbmUgIy1iYXNlZCBjb21tZW50cworICAgICAgICAgICAgaWYgbGVuKGxpbmUpID4gMCBh
bmQgbm90IGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAgICAgICAgICAgICAgIG5ld19pbmNsdWRl
LmFwcGVuZChsaW5lKQorICAgIHJldHVybiBuZXdfaW5jbHVkZQogCiBkZWYgdXBkYXRlX2luY2x1
ZGVfZm9yX2dyb3Vwcyh0ZXN0X2dyb3VwcywgaW5jbHVkZSk6CiAgICAgaWYgaW5jbHVkZSBpcyBO
b25lOgpAQCAtOTMsNyArMTAxLDcgQEAgY2xhc3MgSGFzaENodW5rZXIoVGVzdENodW5rZXIpOgog
ICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBtYW5pZmVzdCk6CiAgICAgICAgIGNodW5rX2luZGV4ID0g
c2VsZi5jaHVua19udW1iZXIgLSAxCiAgICAgICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwg
dGVzdHMgaW4gbWFuaWZlc3Q6Ci0gICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGVuc3Vy
ZV9iaW5hcnkodGVzdF9wYXRoKSkuaGV4ZGlnZXN0KCksIDE2KQorICAgICAgICAgICAgaCA9IGlu
dChoYXNobGliLm1kNSh0ZXN0X3BhdGguZW5jb2RlKCkpLmhleGRpZ2VzdCgpLCAxNikKICAgICAg
ICAgICAgIGlmIGggJSBzZWxmLnRvdGFsX2NodW5rcyA9PSBjaHVua19pbmRleDoKICAgICAgICAg
ICAgICAgICB5aWVsZCB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMKIApAQCAtMTEyLDcgKzEy
MCw3IEBAIGNsYXNzIERpcmVjdG9yeUhhc2hDaHVua2VyKFRlc3RDaHVua2VyKToKICAgICAgICAg
ICAgICAgICBoYXNoX3BhdGggPSBvcy5wYXRoLnNlcC5qb2luKG9zLnBhdGguZGlybmFtZSh0ZXN0
X3BhdGgpLnNwbGl0KG9zLnBhdGguc2VwLCBkZXB0aClbOmRlcHRoXSkKICAgICAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICAgICAgaGFzaF9wYXRoID0gb3MucGF0aC5kaXJuYW1lKHRlc3RfcGF0
aCkKLSAgICAgICAgICAgIGggPSBpbnQoaGFzaGxpYi5tZDUoZW5zdXJlX2JpbmFyeShoYXNoX3Bh
dGgpKS5oZXhkaWdlc3QoKSwgMTYpCisgICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGhh
c2hfcGF0aC5lbmNvZGUoKSkuaGV4ZGlnZXN0KCksIDE2KQogICAgICAgICAgICAgaWYgaCAlIHNl
bGYudG90YWxfY2h1bmtzID09IGNodW5rX2luZGV4OgogICAgICAgICAgICAgICAgIHlpZWxkIHRl
c3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0cwogCkBAIC0xNzMsNyArMTgxLDcgQEAgY2xhc3MgTWFu
aWZlc3RMb2FkZXIob2JqZWN0KToKIAogICAgIGRlZiBsb2FkKHNlbGYpOgogICAgICAgICBydiA9
IHt9Ci0gICAgICAgIGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gaXRlcml0ZW1zKHNlbGYudGVzdF9w
YXRocyk6CisgICAgICAgIGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gc2VsZi50ZXN0X3BhdGhzLml0
ZW1zKCk6CiAgICAgICAgICAgICBtYW5pZmVzdF9maWxlID0gc2VsZi5sb2FkX21hbmlmZXN0KHVy
bF9iYXNlPXVybF9iYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKnBhdGhzKQogICAgICAgICAgICAgcGF0aF9kYXRhID0geyJ1cmxfYmFzZSI6IHVy
bF9iYXNlfQpAQCAtMzkwLDcgKzM5OCw4IEBAIGNsYXNzIEdyb3VwZWRTb3VyY2UoVGVzdFNvdXJj
ZSk6CiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgbWFrZV9xdWV1ZShjbHMsIHRlc3RzLCAq
Kmt3YXJncyk6Ci0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgIG1wID0gbXBj
b250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1wLlF1ZXVlKCkKICAg
ICAgICAgZ3JvdXBzID0gW10KIAogICAgICAgICBzdGF0ZSA9IHt9CkBAIC00MjMsNyArNDMyLDgg
QEAgY2xhc3MgR3JvdXBlZFNvdXJjZShUZXN0U291cmNlKToKIGNsYXNzIFNpbmdsZVRlc3RTb3Vy
Y2UoVGVzdFNvdXJjZSk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIG1ha2VfcXVldWUoY2xz
LCB0ZXN0cywgKiprd2FyZ3MpOgotICAgICAgICB0ZXN0X3F1ZXVlID0gUXVldWUoKQorICAgICAg
ICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHRlc3RfcXVldWUgPSBtcC5R
dWV1ZSgpCiAgICAgICAgIHByb2Nlc3NlcyA9IGt3YXJnc1sicHJvY2Vzc2VzIl0KICAgICAgICAg
cXVldWVzID0gW2RlcXVlKFtdKSBmb3IgXyBpbiByYW5nZShwcm9jZXNzZXMpXQogICAgICAgICBt
ZXRhZGF0YXMgPSBbY2xzLmdyb3VwX21ldGFkYXRhKE5vbmUpIGZvciBfIGluIHJhbmdlKHByb2Nl
c3NlcyldCkBAIC00NjcsOSArNDc3LDEwIEBAIGNsYXNzIEdyb3VwRmlsZVRlc3RTb3VyY2UoVGVz
dFNvdXJjZSk6CiAKICAgICAgICAgaWRzX3RvX3Rlc3RzID0ge3Rlc3QuaWQ6IHRlc3QgZm9yIHRl
c3QgaW4gdGVzdHN9CiAKLSAgICAgICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgbXAg
PSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICB0ZXN0X3F1ZXVlID0gbXAuUXVldWUo
KQogCi0gICAgICAgIGZvciBncm91cF9uYW1lLCB0ZXN0X2lkcyBpbiBpdGVyaXRlbXModGVzdHNf
YnlfZ3JvdXApOgorICAgICAgICBmb3IgZ3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gdGVzdHNfYnlf
Z3JvdXAuaXRlbXMoKToKICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0geyJzY29wZSI6IGdy
b3VwX25hbWV9CiAgICAgICAgICAgICBncm91cCA9IGRlcXVlKCkKIApkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1
bm5lci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RydW5uZXIucHkKaW5kZXggMGJkZTViYTM0OGVhLi40ZGExMjU1ZDEzYjcgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RydW5uZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5weQpAQCAtMSwxNCArMSwxMiBAQAot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCi0KLWltcG9ydCBtdWx0aXBy
b2Nlc3NpbmcKIGltcG9ydCB0aHJlYWRpbmcKIGltcG9ydCB0cmFjZWJhY2sKLWZyb20gc2l4Lm1v
dmVzLnF1ZXVlIGltcG9ydCBFbXB0eQorZnJvbSBxdWV1ZSBpbXBvcnQgRW1wdHkKIGZyb20gY29s
bGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUKLWZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQ
cm9jZXNzLCBjdXJyZW50X3Byb2Nlc3MsIFF1ZXVlCiAKIGZyb20gbW96bG9nIGltcG9ydCBzdHJ1
Y3R1cmVkbG9nLCBjYXB0dXJlCiAKK2Zyb20gLiBpbXBvcnQgbXBjb250ZXh0CisKICMgU3BlY2lh
bCB2YWx1ZSB1c2VkIGFzIGEgc2VudGluYWwgaW4gdmFyaW91cyBjb21tYW5kcwogU3RvcCA9IG9i
amVjdCgpCiAKQEAgLTI0LDMwICsyMiwxMiBAQCBkZWYgcmVsZWFzZV9tb3psb2dfbG9jaygpOgog
ICAgICAgICBwYXNzCiAKIAotY2xhc3MgTWVzc2FnZUxvZ2dlcihvYmplY3QpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBtZXNzYWdlX2Z1bmMpOgotICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSA9
IG1lc3NhZ2VfZnVuYwotCi0gICAgZGVmIF9sb2dfZGF0YShzZWxmLCBhY3Rpb24sICoqa3dhcmdz
KToKLSAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoImxvZyIsIGFjdGlvbiwga3dhcmdzKQotCi0g
ICAgZGVmIHByb2Nlc3Nfb3V0cHV0KHNlbGYsIHByb2Nlc3MsIGRhdGEsIGNvbW1hbmQpOgotICAg
ICAgICBzZWxmLl9sb2dfZGF0YSgicHJvY2Vzc19vdXRwdXQiLCBwcm9jZXNzPXByb2Nlc3MsIGRh
dGE9ZGF0YSwgY29tbWFuZD1jb21tYW5kKQotCitjbGFzcyBMb2dNZXNzYWdlSGFuZGxlcjoKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgc2VuZF9tZXNzYWdlKToKKyAgICAgICAgc2VsZi5zZW5kX21l
c3NhZ2UgPSBzZW5kX21lc3NhZ2UKIAotZGVmIF9sb2dfZnVuYyhsZXZlbF9uYW1lKToKLSAgICBk
ZWYgbG9nKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICBzZWxmLl9sb2dfZGF0YShsZXZlbF9uYW1l
Lmxvd2VyKCksIG1lc3NhZ2U9bWVzc2FnZSkKLSAgICBsb2cuX19kb2NfXyA9ICIiIkxvZyBhIG1l
c3NhZ2Ugd2l0aCBsZXZlbCAlcwotCi06cGFyYW0gbWVzc2FnZTogVGhlIHN0cmluZyBtZXNzYWdl
IHRvIGxvZwotIiIiICUgbGV2ZWxfbmFtZQotICAgIGxvZy5fX25hbWVfXyA9IHN0cihsZXZlbF9u
YW1lKS5sb3dlcigpCi0gICAgcmV0dXJuIGxvZwotCi0jIENyZWF0ZSBhbGwgdGhlIG1ldGhvZHMg
b24gU3RydWN0dXJlZExvZyBmb3IgZGVidWcgbGV2ZWxzCi1mb3IgbGV2ZWxfbmFtZSBpbiBzdHJ1
Y3R1cmVkbG9nLmxvZ19sZXZlbHM6Ci0gICAgc2V0YXR0cihNZXNzYWdlTG9nZ2VyLCBsZXZlbF9u
YW1lLmxvd2VyKCksIF9sb2dfZnVuYyhsZXZlbF9uYW1lKSkKKyAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgZGF0YSk6CisgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJsb2ciLCBkYXRhKQogCiAKIGNs
YXNzIFRlc3RSdW5uZXIob2JqZWN0KToKQEAgLTY4LDcgKzQ4LDcgQEAgY2xhc3MgVGVzdFJ1bm5l
cihvYmplY3QpOgogICAgICAgICBzZWxmLnJlc3VsdF9xdWV1ZSA9IHJlc3VsdF9xdWV1ZQogCiAg
ICAgICAgIHNlbGYuZXhlY3V0b3IgPSBleGVjdXRvcgotICAgICAgICBzZWxmLm5hbWUgPSBjdXJy
ZW50X3Byb2Nlc3MoKS5uYW1lCisgICAgICAgIHNlbGYubmFtZSA9IG1wY29udGV4dC5nZXRfY29u
dGV4dCgpLmN1cnJlbnRfcHJvY2VzcygpLm5hbWUKICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dn
ZXIKIAogICAgIGRlZiBfX2VudGVyX18oc2VsZik6CkBAIC05OCw3ICs3OCwxMiBAQCBjbGFzcyBU
ZXN0UnVubmVyKG9iamVjdCk6CiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgIiIiTWFpbiBs
b29wIGFjY2VwdGluZyBjb21tYW5kcyBvdmVyIHRoZSBwaXBlIGFuZCB0cmlnZ2VyaW5nCiAgICAg
ICAgIHRoZSBhc3NvY2lhdGVkIG1ldGhvZHMiIiIKLSAgICAgICAgc2VsZi5zZXR1cCgpCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuc2V0dXAoKQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiQW4gZXJyb3Igb2NjdXJlZCBk
dXJpbmcgZXhlY3V0b3Igc2V0dXA6XG4lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICAgICAgcmFpc2UKICAgICAgICAg
Y29tbWFuZHMgPSB7InJ1bl90ZXN0Ijogc2VsZi5ydW5fdGVzdCwKICAgICAgICAgICAgICAgICAg
ICAgInJlc2V0Ijogc2VsZi5yZXNldCwKICAgICAgICAgICAgICAgICAgICAgInN0b3AiOiBzZWxm
LnN0b3AsCkBAIC0xNTMsNyArMTM4LDkgQEAgZGVmIHN0YXJ0X3J1bm5lcihydW5uZXJfY29tbWFu
ZF9xdWV1ZSwgcnVubmVyX3Jlc3VsdF9xdWV1ZSwKICAgICAjIGluIHRoZSBsb2dnaW5nIG1vZHVs
ZSB1bmxvY2tlZAogICAgIHJlbGVhc2VfbW96bG9nX2xvY2soKQogCi0gICAgbG9nZ2VyID0gTWVz
c2FnZUxvZ2dlcihzZW5kX21lc3NhZ2UpCisgICAgcHJvY19uYW1lID0gbXBjb250ZXh0LmdldF9j
b250ZXh0KCkuY3VycmVudF9wcm9jZXNzKCkubmFtZQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRs
b2cuU3RydWN0dXJlZExvZ2dlcihwcm9jX25hbWUpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKExv
Z01lc3NhZ2VIYW5kbGVyKHNlbmRfbWVzc2FnZSkpCiAKICAgICB3aXRoIGNhcHR1cmUuQ2FwdHVy
ZUlPKGxvZ2dlciwgY2FwdHVyZV9zdGRpbyk6CiAgICAgICAgIHRyeToKQEAgLTI2NSw3ICsyNTIs
NyBAQCBjbGFzcyBCcm93c2VyTWFuYWdlcihvYmplY3QpOgogCiBjbGFzcyBfUnVubmVyTWFuYWdl
clN0YXRlKG9iamVjdCk6CiAgICAgYmVmb3JlX2luaXQgPSBuYW1lZHR1cGxlKCJiZWZvcmVfaW5p
dCIsIFtdKQotICAgIGluaXRpYWxpemluZyA9IG5hbWVkdHVwbGUoImluaXRpYWxpemluZ19icm93
c2VyIiwKKyAgICBpbml0aWFsaXppbmcgPSBuYW1lZHR1cGxlKCJpbml0aWFsaXppbmciLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBf
bWV0YWRhdGEiLCAiZmFpbHVyZV9jb3VudCJdKQogICAgIHJ1bm5pbmcgPSBuYW1lZHR1cGxlKCJy
dW5uaW5nIiwgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBfbWV0YWRhdGEiXSkKICAgICBy
ZXN0YXJ0aW5nID0gbmFtZWR0dXBsZSgicmVzdGFydGluZyIsIFsidGVzdCIsICJ0ZXN0X2dyb3Vw
IiwgImdyb3VwX21ldGFkYXRhIl0pCkBAIC0zMDYsOSArMjkzLDExIEBAIGNsYXNzIFRlc3RSdW5u
ZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yX2NscyA9
IGV4ZWN1dG9yX2NscwogICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJncyA9IGV4ZWN1dG9yX2t3
YXJncwogCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKwogICAgICAgICAj
IEZsYWdzIHVzZWQgdG8gc2h1dCBkb3duIHRoaXMgdGhyZWFkIGlmIHdlIGdldCBhIHNpZ2ludAog
ICAgICAgICBzZWxmLnBhcmVudF9zdG9wX2ZsYWcgPSBzdG9wX2ZsYWcKLSAgICAgICAgc2VsZi5j
aGlsZF9zdG9wX2ZsYWcgPSBtdWx0aXByb2Nlc3NpbmcuRXZlbnQoKQorICAgICAgICBzZWxmLmNo
aWxkX3N0b3BfZmxhZyA9IG1wLkV2ZW50KCkKIAogICAgICAgICBzZWxmLnJlcnVuID0gcmVydW4K
ICAgICAgICAgc2VsZi5ydW5fY291bnQgPSAwCkBAIC0zMjEsOCArMzEwLDggQEAgY2xhc3MgVGVz
dFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIGFzc2VydCByZWNvcmRp
bmcgaXMgbm90IE5vbmUKICAgICAgICAgc2VsZi5yZWNvcmRpbmcgPSByZWNvcmRpbmcKIAotICAg
ICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBRdWV1ZSgpCi0gICAgICAgIHNlbGYucmVtb3RlX3F1
ZXVlID0gUXVldWUoKQorICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgpCisg
ICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gbXAuUXVldWUoKQogCiAgICAgICAgIHNlbGYudGVz
dF9ydW5uZXJfcHJvYyA9IE5vbmUKIApAQCAtMzMyLDYgKzMyMSw3IEBAIGNsYXNzIFRlc3RSdW5u
ZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCA9
IDAKICAgICAgICAgc2VsZi51bmV4cGVjdGVkX2NvdW50ID0gMAorICAgICAgICBzZWxmLnVuZXhw
ZWN0ZWRfcGFzc19jb3VudCA9IDAKIAogICAgICAgICAjIFRoaXMgbWF5IG5vdCByZWFsbHkgYmUg
d2hhdCB3ZSB3YW50CiAgICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1ZQpAQCAtMzU0LDcgKzM0NCw4
IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBz
cGlucy4iIiIKICAgICAgICAgc2VsZi5yZWNvcmRpbmcuc2V0KFsidGVzdHJ1bm5lciIsICJzdGFy
dHVwIl0pCiAgICAgICAgIHNlbGYubG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9n
Z2VyKHNlbGYuc3VpdGVfbmFtZSkKLSAgICAgICAgd2l0aCBzZWxmLmJyb3dzZXJfY2xzKHNlbGYu
bG9nZ2VyLCAqKnNlbGYuYnJvd3Nlcl9rd2FyZ3MpIGFzIGJyb3dzZXI6CisgICAgICAgIHdpdGgg
c2VsZi5icm93c2VyX2NscyhzZWxmLmxvZ2dlciwgcmVtb3RlX3F1ZXVlPXNlbGYuY29tbWFuZF9x
dWV1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqc2VsZi5icm93c2VyX2t3YXJn
cykgYXMgYnJvd3NlcjoKICAgICAgICAgICAgIHNlbGYuYnJvd3NlciA9IEJyb3dzZXJNYW5hZ2Vy
KHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJvd3NlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
Y29tbWFuZF9xdWV1ZSwKQEAgLTQ5NCw2ICs0ODUsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdl
cih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUuZmFpbHVyZV9jb3VudCArIDEpCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJnc1siZ3JvdXBfbWV0YWRhdGEiXSA9
IHNlbGYuc3RhdGUuZ3JvdXBfbWV0YWRhdGEKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3Jfa3dh
cmdzWyJicm93c2VyX3NldHRpbmdzIl0gPSBzZWxmLmJyb3dzZXIuYnJvd3Nlcl9zZXR0aW5ncwog
ICAgICAgICAgICAgc2VsZi5zdGFydF90ZXN0X3J1bm5lcigpCiAKICAgICBkZWYgc3RhcnRfdGVz
dF9ydW5uZXIoc2VsZik6CkBAIC01MTQsOSArNTA2LDExIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5h
Z2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2Jyb3dzZXJf
a3dhcmdzLAogICAgICAgICAgICAgICAgIHNlbGYuY2FwdHVyZV9zdGRpbywKICAgICAgICAgICAg
ICAgICBzZWxmLmNoaWxkX3N0b3BfZmxhZykKLSAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9j
ID0gUHJvY2Vzcyh0YXJnZXQ9c3RhcnRfcnVubmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFyZ3M9YXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lPSJUZXN0UnVubmVyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisK
KyAgICAgICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICBzZWxmLnRlc3Rf
cnVubmVyX3Byb2MgPSBtcC5Qcm9jZXNzKHRhcmdldD1zdGFydF9ydW5uZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IlRlc3RSdW5uZXItJWkiICUgc2Vs
Zi5tYW5hZ2VyX251bWJlcikKICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnN0YXJ0KCkK
ICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlRlc3QgcnVubmVyIHN0YXJ0ZWQiKQogICAgICAg
ICAjIE5vdyB3ZSB3YWl0IGZvciBlaXRoZXIgYW4gaW5pdF9zdWNjZWVkZWQgZXZlbnQgb3IgYW4g
aW5pdF9mYWlsZWQgZXZlbnQKQEAgLTYwNSw2ICs1OTksNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFu
YWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBpZiBz
ZWxmLnRpbWVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi50aW1lci5jYW5jZWwoKQor
CiAgICAgICAgICMgV3JpdGUgdGhlIHJlc3VsdCBvZiBlYWNoIHN1YnRlc3QKICAgICAgICAgZmls
ZV9yZXN1bHQsIHRlc3RfcmVzdWx0cyA9IHJlc3VsdHMKICAgICAgICAgc3VidGVzdF91bmV4cGVj
dGVkID0gRmFsc2UKQEAgLTYyNSw2ICs2MjAsMTEgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIo
dGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX2NvdW50
ICs9IDEKICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3RlZCBjb3Vu
dCBpbiB0aGlzIHRocmVhZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCiAgICAgICAgICAg
ICAgICAgc3VidGVzdF91bmV4cGVjdGVkID0gVHJ1ZQorCisgICAgICAgICAgICBpc191bmV4cGVj
dGVkX3Bhc3MgPSBpc191bmV4cGVjdGVkIGFuZCByZXN1bHQuc3RhdHVzID09ICJQQVNTIgorICAg
ICAgICAgICAgaWYgaXNfdW5leHBlY3RlZF9wYXNzOgorICAgICAgICAgICAgICAgIHNlbGYudW5l
eHBlY3RlZF9wYXNzX2NvdW50ICs9IDEKKwogICAgICAgICAgICAgc2VsZi5sb2dnZXIudGVzdF9z
dGF0dXModGVzdC5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnN0YXR1
cywKQEAgLTYzMywzNCArNjMzLDQwIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGlu
Zy5UaHJlYWQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga25vd25faW50
ZXJtaXR0ZW50PWtub3duX2ludGVybWl0dGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YWNrPXJlc3VsdC5zdGFjaykKIAotICAgICAgICAjIFdlIGhhdmUgYSBjb3Vw
bGUgb2Ygc3RhdHVzIGNvZGVzIHRoYXQgYXJlIHVzZWQgaW50ZXJuYWxseSwgYnV0IG5vdCBleHBv
c2VkIHRvIHRoZQotICAgICAgICAjIHVzZXIuIFRoZXNlIGFyZSB1c2VkIHRvIGluZGljYXRlIHRo
YXQgc29tZSBwb3NzaWJseS1icm9rZW4gc3RhdGUgd2FzIHJlYWNoZWQKLSAgICAgICAgIyBhbmQg
d2Ugc2hvdWxkIHJlc3RhcnQgdGhlIHJ1bm5lciBiZWZvcmUgdGhlIG5leHQgdGVzdC4KLSAgICAg
ICAgIyBJTlRFUk5BTC1FUlJPUiBpbmRpY2F0ZXMgYSBQeXRob24gZXhjZXB0aW9uIHdhcyBjYXVn
aHQgaW4gdGhlIGhhcm5lc3MKLSAgICAgICAgIyBFWFRFUk5BTC1USU1FT1VUIGluZGljYXRlcyB3
ZSBoYWQgdG8gZm9yY2libHkga2lsbCB0aGUgYnJvd3NlciBmcm9tIHRoZSBoYXJuZXNzCi0gICAg
ICAgICMgYmVjYXVzZSB0aGUgdGVzdCBkaWRuJ3QgcmV0dXJuIGEgcmVzdWx0IGFmdGVyIHJlYWNo
aW5nIHRoZSB0ZXN0LWludGVybmFsIHRpbWVvdXQKLSAgICAgICAgc3RhdHVzX3N1Ym5zID0geyJJ
TlRFUk5BTC1FUlJPUiI6ICJFUlJPUiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiRVhURVJO
QUwtVElNRU9VVCI6ICJUSU1FT1VUIn0KICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVk
KCkKICAgICAgICAga25vd25faW50ZXJtaXR0ZW50ID0gdGVzdC5rbm93bl9pbnRlcm1pdHRlbnQo
KQotICAgICAgICBzdGF0dXMgPSBzdGF0dXNfc3VibnMuZ2V0KGZpbGVfcmVzdWx0LnN0YXR1cywg
ZmlsZV9yZXN1bHQuc3RhdHVzKQorICAgICAgICBzdGF0dXMgPSBmaWxlX3Jlc3VsdC5zdGF0dXMK
IAogICAgICAgICBpZiBzZWxmLmJyb3dzZXIuY2hlY2tfY3Jhc2godGVzdC5pZCkgYW5kIHN0YXR1
cyAhPSAiQ1JBU0giOgotICAgICAgICAgICAgaWYgdGVzdC50ZXN0X3R5cGUgPT0gImNyYXNodGVz
dCI6CisgICAgICAgICAgICBpZiB0ZXN0LnRlc3RfdHlwZSA9PSAiY3Jhc2h0ZXN0IiBvciBzdGF0
dXMgPT0gIkVYVEVSTkFMLVRJTUVPVVQiOgogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmlu
Zm8oIkZvdW5kIGEgY3Jhc2ggZHVtcCBmaWxlOyBjaGFuZ2luZyBzdGF0dXMgdG8gQ1JBU0giKQog
ICAgICAgICAgICAgICAgIHN0YXR1cyA9ICJDUkFTSCIKICAgICAgICAgICAgIGVsc2U6CiAgICAg
ICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRm91bmQgYSBjcmFzaCBkdW1wOyBzaG91
bGQgY2hhbmdlIHN0YXR1cyBmcm9tICVzIHRvIENSQVNIIGJ1dCB0aGlzIGNhdXNlcyBpbnN0YWJp
bGl0eSIgJSAoc3RhdHVzLCkpCiAKKyAgICAgICAgIyBXZSBoYXZlIGEgY291cGxlIG9mIHN0YXR1
cyBjb2RlcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHksIGJ1dCBub3QgZXhwb3NlZCB0byB0aGUK
KyAgICAgICAgIyB1c2VyLiBUaGVzZSBhcmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHNvbWUgcG9z
c2libHktYnJva2VuIHN0YXRlIHdhcyByZWFjaGVkCisgICAgICAgICMgYW5kIHdlIHNob3VsZCBy
ZXN0YXJ0IHRoZSBydW5uZXIgYmVmb3JlIHRoZSBuZXh0IHRlc3QuCisgICAgICAgICMgSU5URVJO
QUwtRVJST1IgaW5kaWNhdGVzIGEgUHl0aG9uIGV4Y2VwdGlvbiB3YXMgY2F1Z2h0IGluIHRoZSBo
YXJuZXNzCisgICAgICAgICMgRVhURVJOQUwtVElNRU9VVCBpbmRpY2F0ZXMgd2UgaGFkIHRvIGZv
cmNpYmx5IGtpbGwgdGhlIGJyb3dzZXIgZnJvbSB0aGUgaGFybmVzcworICAgICAgICAjIGJlY2F1
c2UgdGhlIHRlc3QgZGlkbid0IHJldHVybiBhIHJlc3VsdCBhZnRlciByZWFjaGluZyB0aGUgdGVz
dC1pbnRlcm5hbCB0aW1lb3V0CisgICAgICAgIHN0YXR1c19zdWJucyA9IHsiSU5URVJOQUwtRVJS
T1IiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgIkVYVEVSTkFMLVRJTUVPVVQi
OiAiVElNRU9VVCJ9CisgICAgICAgIHN0YXR1cyA9IHN0YXR1c19zdWJucy5nZXQoc3RhdHVzLCBz
dGF0dXMpCisKICAgICAgICAgc2VsZi50ZXN0X2NvdW50ICs9IDEKICAgICAgICAgaXNfdW5leHBl
Y3RlZCA9IGV4cGVjdGVkICE9IHN0YXR1cyBhbmQgc3RhdHVzIG5vdCBpbiBrbm93bl9pbnRlcm1p
dHRlbnQKICAgICAgICAgaWYgaXNfdW5leHBlY3RlZDoKICAgICAgICAgICAgIHNlbGYudW5leHBl
Y3RlZF9jb3VudCArPSAxCiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3Rl
ZCBjb3VudCBpbiB0aGlzIHRocmVhZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCiAKKyAg
ICAgICAgaXNfdW5leHBlY3RlZF9wYXNzID0gaXNfdW5leHBlY3RlZCBhbmQgc3RhdHVzID09ICJP
SyIKKyAgICAgICAgaWYgaXNfdW5leHBlY3RlZF9wYXNzOgorICAgICAgICAgICAgc2VsZi51bmV4
cGVjdGVkX3Bhc3NfY291bnQgKz0gMQorCiAgICAgICAgIGlmICJhc3NlcnRpb25fY291bnQiIGlu
IGZpbGVfcmVzdWx0LmV4dHJhOgotICAgICAgICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gZmlsZV9y
ZXN1bHQuZXh0cmEucG9wKCJhc3NlcnRpb25fY291bnQiKQotICAgICAgICAgICAgaWYgYXNzZXJ0
aW9uX2NvdW50ID4gMDoKKyAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IGZpbGVfcmVzdWx0
LmV4dHJhWyJhc3NlcnRpb25fY291bnQiXQorICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2NvdW50
IGlzIG5vdCBOb25lIGFuZCBhc3NlcnRpb25fY291bnQgPiAwOgogICAgICAgICAgICAgICAgIHNl
bGYubG9nZ2VyLmFzc2VydGlvbl9jb3VudCh0ZXN0LmlkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQoYXNzZXJ0aW9uX2NvdW50KSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5taW5fYXNzZXJ0aW9uX2NvdW50
LApAQCAtNzIyLDggKzcyOCw4IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5U
aHJlYWQpOgogICAgICAgICBzZWxmLnN0b3BfcnVubmVyKCkKICAgICAgICAgcmV0dXJuIFJ1bm5l
ck1hbmFnZXJTdGF0ZS5pbml0aWFsaXppbmcoc2VsZi5zdGF0ZS50ZXN0LCBzZWxmLnN0YXRlLnRl
c3RfZ3JvdXAsIHNlbGYuc3RhdGUuZ3JvdXBfbWV0YWRhdGEsIDApCiAKLSAgICBkZWYgbG9nKHNl
bGYsIGFjdGlvbiwga3dhcmdzKToKLSAgICAgICAgZ2V0YXR0cihzZWxmLmxvZ2dlciwgYWN0aW9u
KSgqKmt3YXJncykKKyAgICBkZWYgbG9nKHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxmLmxvZ2dl
ci5sb2dfcmF3KGRhdGEpCiAKICAgICBkZWYgZXJyb3Ioc2VsZiwgbWVzc2FnZSk6CiAgICAgICAg
IHNlbGYubG9nZ2VyLmVycm9yKG1lc3NhZ2UpCkBAIC03NjEsMjAgKzc2NywyNiBAQCBjbGFzcyBU
ZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIndhaXRpbmcgZm9yIHJ1bm5lciBwcm9jZXNzIHRvIGVuZCIpCiAgICAgICAgIHNlbGYu
dGVzdF9ydW5uZXJfcHJvYy5qb2luKDEwKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0
ZXIgam9pbiIpCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKICAgICAgICAg
aWYgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICAjIFRoaXMg
bWlnaHQgbGVhayBhIGZpbGUgaGFuZGxlIGZyb20gdGhlIHF1ZXVlCiAgICAgICAgICAgICBzZWxm
LmxvZ2dlci53YXJuaW5nKCJGb3JjaWJseSB0ZXJtaW5hdGluZyBydW5uZXIgcHJvY2VzcyIpCiAg
ICAgICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MudGVybWluYXRlKCkKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJBZnRlciB0ZXJtaW5hdGluZyBydW5uZXIgcHJvY2VzcyIpCiAK
ICAgICAgICAgICAgICMgTXVsdGlwcm9jZXNzaW5nIHF1ZXVlcyBhcmUgYmFja2VkIGJ5IG9wZXJh
dGluZyBzeXN0ZW0gcGlwZXMuIElmCiAgICAgICAgICAgICAjIHRoZSBwaXBlIGluIHRoZSBjaGls
ZCBwcm9jZXNzIGhhZCBidWZmZXJlZCBkYXRhIGF0IHRoZSB0aW1lIG9mCiAgICAgICAgICAgICAj
IGZvcmNlZCB0ZXJtaW5hdGlvbiwgdGhlIHF1ZXVlIGlzIG5vIGxvbmdlciBpbiBhIHVzYWJsZSBz
dGF0ZQogICAgICAgICAgICAgIyAoc3Vic2VxdWVudCBhdHRlbXB0cyB0byByZXRyaWV2ZSBpdGVt
cyBtYXkgYmxvY2sgaW5kZWZpbml0ZWx5KS4KICAgICAgICAgICAgICMgRGlzY2FyZCB0aGUgcG90
ZW50aWFsbHktY29ycnVwdGVkIHF1ZXVlIGFuZCBjcmVhdGUgYSBuZXcgb25lLgorICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuZGVidWcoIlJlY3JlYXRpbmcgY29tbWFuZCBxdWV1ZSIpCisgICAgICAg
ICAgICBzZWxmLmNvbW1hbmRfcXVldWUuY2FuY2VsX2pvaW5fdGhyZWFkKCkKICAgICAgICAgICAg
IHNlbGYuY29tbWFuZF9xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVl
dWUgPSBRdWV1ZSgpCisgICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgp
CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUmVjcmVhdGluZyByZW1vdGUgcXVldWUi
KQorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUuY2FuY2VsX2pvaW5fdGhyZWFkKCkKICAg
ICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlLmNsb3NlKCkKLSAgICAgICAgICAgIHNlbGYucmVt
b3RlX3F1ZXVlID0gUXVldWUoKQorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSBtcC5R
dWV1ZSgpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUnVu
bmVyIHByb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAlaSIgJSBzZWxmLnRlc3RfcnVubmVyX3Byb2Mu
ZXhpdGNvZGUpCiAKQEAgLTkxNSwzICs5MjcsNiBAQCBjbGFzcyBNYW5hZ2VyR3JvdXAob2JqZWN0
KToKIAogICAgIGRlZiB1bmV4cGVjdGVkX2NvdW50KHNlbGYpOgogICAgICAgICByZXR1cm4gc3Vt
KG1hbmFnZXIudW5leHBlY3RlZF9jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBvb2wpCisKKyAg
ICBkZWYgdW5leHBlY3RlZF9wYXNzX2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc3VtKG1h
bmFnZXIudW5leHBlY3RlZF9wYXNzX2NvdW50IGZvciBtYW5hZ2VyIGluIHNlbGYucG9vbCkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3Nh
dWNlLnB5CmluZGV4IGUxZTE4ZWM1ZTljZC4uMzI0NWQxMjVjNTM0IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9i
cm93c2Vycy90ZXN0X3NhdWNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKQEAg
LTEsNiArMSw3IEBACitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHN5cworZnJvbSB1bml0dGVzdCBp
bXBvcnQgbW9jawogCi1pbXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIG9zLnBhdGgg
aW1wb3J0IGpvaW4sIGRpcm5hbWUKQEAgLTExLDYgKzEyLDggQEAgc2F1Y2UgPSBweXRlc3QuaW1w
b3J0b3Jza2lwKCJ3cHRydW5uZXIuYnJvd3NlcnMuc2F1Y2UiKQogCiBmcm9tIHdwdHNlcnZlLmNv
bmZpZyBpbXBvcnQgQ29uZmlnQnVpbGRlcgogCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigp
CisKIAogZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKICAgICB3aXRoIG1vY2sucGF0
Y2gub2JqZWN0KHNhdWNlLlNhdWNlQ29ubmVjdCwgInVwbG9hZF9wcmVydW5fZXhlYyIpLFwKQEAg
LTI5LDcgKzMyLDcgQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKICAgICAgICAg
ICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAogICAgICAgICAgICAgc2F1Y2VfY29ubmVj
dF9hcmdzPVtdKQogCi0gICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4
YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKKyAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGxv
Z2dlciwgYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAgICAgICAg
ICAgICBzYXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCiAgICAgICAgICAgICB3aXRoIHNh
dWNlX2Nvbm5lY3Q6CiAgICAgICAgICAgICAgICAgcGFzcwpAQCAtNTksNyArNjIsNyBAQCBkZWYg
dGVzdF9zYXVjZWNvbm5lY3RfZmFpbHVyZV9leGl0KHJlYWR5ZmlsZSwgcmV0dXJuY29kZSk6CiAg
ICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAgICAgICAgIHNhdWNl
X2Nvbm5lY3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9o
b3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdpdGggQ29uZmlnQnVp
bGRlcihsb2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgog
ICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQogICAgICAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKHNhdWNlLlNhdWNlRXhjZXB0aW9uKToKICAgICAgICAgICAgICAg
ICB3aXRoIHNhdWNlX2Nvbm5lY3Q6CkBAIC04OCw3ICs5MSw3IEBAIGRlZiB0ZXN0X3NhdWNlY29u
bmVjdF9jbGVhbnVwKCk6CiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwK
ICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZp
Z0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAg
ICAgIHdpdGggQ29uZmlnQnVpbGRlcihsb2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQi
KSBhcyBlbnZfY29uZmlnOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29u
ZmlnKQogICAgICAgICAgICAgd2l0aCBzYXVjZV9jb25uZWN0OgogICAgICAgICAgICAgICAgIFBv
cGVuLnJldHVybl92YWx1ZS5wb2xsLnJldHVybl92YWx1ZSA9IE5vbmUKQEAgLTExMiw3ICsxMTUs
NyBAQCBkZWYgdGVzdF9zYXVjZWNvbm5lY3RfZmFpbHVyZV9uZXZlcl9yZWFkeSgpOgogICAgICAg
ICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCiAgICAgICAgICAgICBzYXVjZV9jb25u
ZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0i
ZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgorICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIo
bG9nZ2VyLCBicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKICAgICAg
ICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKICAgICAgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhzYXVjZS5TYXVjZUV4Y2VwdGlvbik6CiAgICAgICAgICAgICAgICAgd2l0
aCBzYXVjZV9jb25uZWN0OgpAQCAtMTQxLDcgKzE0NCw4IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVj
dF90dW5uZWxfZG9tYWlucygpOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRk
ZCIsCiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBD
b25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiLAorICAgICAgICB3aXRoIENv
bmZpZ0J1aWxkZXIobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9o
b3N0PSJleGFtcGxlLm5ldCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVf
aG9zdHM9eyJhbHQiOiAiZXhhbXBsZS5vcmcifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1YmRvbWFpbnM9eyJhIiwgImIifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdF9z
dWJkb21haW5zPXsieCIsICJ5In0pIGFzIGVudl9jb25maWc6CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93
c2Vycy90ZXN0X3dlYmtpdGd0ay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5Cmlu
ZGV4IDYxNTBkNTBhY2Y5My4uYjIwZDM1NzY2NzRlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90
ZXN0X3dlYmtpdGd0ay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weQpAQCAt
MSwzICsxLDQgQEAKK2ltcG9ydCBsb2dnaW5nCiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRp
cm5hbWUKIAogaW1wb3J0IHB5dGVzdApAQCAtOSw2ICsxMCw4IEBAIGZyb20gd3B0cnVubmVyIGlt
cG9ydCBlbnZpcm9ubWVudCwgcHJvZHVjdHMKIHRlc3RfcGF0aHMgPSB7Ii8iOiB7InRlc3RzX3Bh
dGgiOiBqb2luKGRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4i
KX19ICAjIHJlcG8gcm9vdAogZW52aXJvbm1lbnQuZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRl
c3RfcGF0aHMpCiAKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKwogCiBAYWN0aXZlX3By
b2R1Y3RzKCJwcm9kdWN0IikKIGRlZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0ZV9kb21haW5f
bGlzdChwcm9kdWN0KToKQEAgLTIyLDEwICsyNSw3IEBAIGRlZiB0ZXN0X3dlYmtpdGd0a19jZXJ0
aWZpY2F0ZV9kb21haW5fbGlzdChwcm9kdWN0KToKICAgICBpZiBwcm9kdWN0IG5vdCBpbiBbImVw
aXBoYW55IiwgIndlYmtpdCIsICJ3ZWJraXRndGtfbWluaWJyb3dzZXIiXToKICAgICAgICAgcHl0
ZXN0LnNraXAoIiVzIGRvZXNuJ3Qgc3VwcG9ydCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCIgJSBw
cm9kdWN0KQogCi0gICAgKGNoZWNrX2FyZ3MsCi0gICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0
X2Jyb3dzZXJfa3dhcmdzLAotICAgICBleGVjdXRvcl9jbGFzc2VzLCBnZXRfZXhlY3V0b3Jfa3dh
cmdzLAotICAgICBlbnZfb3B0aW9ucywgZ2V0X2Vudl9leHRyYXMsIHJ1bl9pbmZvX2V4dHJhcykg
PSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisgICAgcHJvZHVjdF9kYXRhID0g
cHJvZHVjdHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKIAogICAgIGNlcnRfZmlsZSA9ICIvaG9tZS91
c2VyL3dwdC90b29scy9jZXJ0cy9jYWNlcnQucGVtIgogICAgIHZhbGlkX2RvbWFpbnNfdGVzdCA9
IFsiYS5leGFtcGxlLm9yZyIsICJiLmV4YW1wbGUub3JnIiwgImV4YW1wbGUub3JnIiwKQEAgLTQx
LDEyICs0MSwyNSBAQCBkZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qo
cHJvZHVjdCk6CiAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSBOb25lCiAgICAga3dh
cmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gPSBGYWxzZQogICAgIGt3YXJnc1sicGF1c2Vfb25fdW5l
eHBlY3RlZCJdID0gRmFsc2UKLSAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJl
eGFtcGxlLm5ldCIsCisgICAga3dhcmdzWyJkZWJ1Z190ZXN0Il0gPSBGYWxzZQorICAgIHdpdGgg
Q29uZmlnQnVpbGRlcihsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfaG9z
dD0iZXhhbXBsZS5uZXQiLAogICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVfaG9zdHM9
eyJhbHQiOiAiZXhhbXBsZS5vcmcifSwKICAgICAgICAgICAgICAgICAgICAgICAgc3ViZG9tYWlu
cz17ImEiLCAiYiJ9LAogICAgICAgICAgICAgICAgICAgICAgICBub3Rfc3ViZG9tYWlucz17Ingi
LCAieSJ9KSBhcyBlbnZfY29uZmlnOgogCi0gICAgICAgIGV4ZWN1dG9yX2FyZ3MgPSBnZXRfZXhl
Y3V0b3Jfa3dhcmdzKE5vbmUsIGVudl9jb25maWcsIE5vbmUsIE5vbmUsICoqa3dhcmdzKQorICAg
ICAgICAjIFdlIGRvbid0IHdhbnQgdG8gYWN0dWFsbHkgY3JlYXRlIGEgdGVzdCBlbnZpcm9ubWVu
dDsgdGhlIGdldF9leGVjdXRvcl9rd2FyZ3MKKyAgICAgICAgIyBmdW5jdGlvbiBvbmx5IHJlYWxs
eSB3YW50cyBhbiBvYmplY3Qgd2l0aCB0aGUgY29uZmlnIGtleQorCisgICAgICAgIGNsYXNzIE1v
Y2tFbnZpcm9ubWVudDoKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgor
ICAgICAgICAgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisKKyAgICAgICAgZXhlY3V0b3Jf
YXJncyA9IHByb2R1Y3RfZGF0YS5nZXRfZXhlY3V0b3Jfa3dhcmdzKE5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9j
a0Vudmlyb25tZW50KGVudl9jb25maWcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAge30sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICAgICAgYXNzZXJ0
KCdjYXBhYmlsaXRpZXMnIGluIGV4ZWN1dG9yX2FyZ3MpCiAgICAgICAgIGFzc2VydCgnd2Via2l0
Z3RrOmJyb3dzZXJPcHRpb25zJyBpbiBleGVjdXRvcl9hcmdzWydjYXBhYmlsaXRpZXMnXSkKICAg
ICAgICAgYXNzZXJ0KCdjZXJ0aWZpY2F0ZXMnIGluIGV4ZWN1dG9yX2FyZ3NbJ2NhcGFiaWxpdGll
cyddWyd3ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMnXSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9y
bWF0dGVycy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQppbmRleCA2MGIxYjBhNWE4NzguLjA0
NTI2ZGE3MDJiYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9mb3JtYXR0ZXJzLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rl
c3RfZm9ybWF0dGVycy5weQpAQCAtMSwxMiArMSw5IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHRp
bWUKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KLQotaW1wb3J0
IG1vY2sKK2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gbW96bG9nIGltcG9ydCBoYW5k
bGVycywgc3RydWN0dXJlZGxvZwogCi1mcm9tIC4uZm9ybWF0dGVycyBpbXBvcnQgd3B0cmVwb3J0
CiBmcm9tIC4uZm9ybWF0dGVycy53cHRzY3JlZW5zaG90IGltcG9ydCBXcHRzY3JlZW5zaG90Rm9y
bWF0dGVyCiBmcm9tIC4uZm9ybWF0dGVycy53cHRyZXBvcnQgaW1wb3J0IFdwdHJlcG9ydEZvcm1h
dHRlcgogCkBAIC05Nyw0NSArOTQsNiBAQCBkZWYgdGVzdF93cHRyZXBvcnRfbG9uZV9zdXJyb2dh
dGUoY2FwZmQpOgogICAgIGFzc2VydCBzdWJ0ZXN0WyJtZXNzYWdlIl0gPT0gdSJcVTAwMDFGNjAx
IFUrZGUwYVUrZDgzZCIKIAogCi1kZWYgdGVzdF93cHRyZXBvcnRfbG9uZV9zdXJyb2dhdGVfdWNz
MihjYXBmZCk6Ci0gICAgIyBTaW5jZSBVQ1M0IGlzIGEgc3VwZXJzZXQgb2YgVUNTMiB3ZSBjYW4g
bWVhbmluZ2Z1bGx5IHRlc3QgdGhlIFVDUzIgY29kZSBvbiBhCi0gICAgIyBVQ1M0IGJ1aWxkLCBi
dXQgbm90IHRoZSByZXZlcnNlLiBIb3dldmVyIFVDUzIgaXMgaGFyZGVyIHRvIGhhbmRsZSBhbmQg
VUNTNCBpcwotICAgICMgdGhlIGNvbW1vbmVzdCAoYW5kIHNlbnNpYmxlKSBjb25maWd1cmF0aW9u
LCBzbyB0aGF0J3MgT0suCi0gICAgb3V0cHV0ID0gU3RyaW5nSU8oKQotICAgIGxvZ2dlciA9IHN0
cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKLSAgICBsb2dnZXIuYWRkX2hh
bmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIFdwdHJlcG9ydEZvcm1hdHRlcigp
KSkKLQotICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qod3B0cmVwb3J0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3N1cnJvZ2F0ZV9yZXBsYWNlbWVudCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICB3cHRyZXBvcnQuU3Vycm9nYXRlUmVwbGFjZW1lbnRVY3MyKCkpOgotICAgICAg
ICAjIG91dHB1dCBhIGJ1bmNoIG9mIHN0dWZmCi0gICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFydChb
InRlc3QtaWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCi0gICAgICAgIGxvZ2dlci50ZXN0X3N0
YXJ0KCJ0ZXN0LWlkLTEiKQotICAgICAgICBsb2dnZXIudGVzdF9zdGF0dXMoInRlc3QtaWQtMSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0
ZVx1RDgwMCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IkZBSUwiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT11IlxVMDAwMUY2MDEgXHVERTBBXHVEODNE
IFx1RDgzRFx1REUwQSIpCi0gICAgICAgIGxvZ2dlci50ZXN0X2VuZCgidGVzdC1pZC0xIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iUEFTUyIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPXUiXHVERTBBXHVEODNEIFx1RDgzRFx1REUwQSBcVTAwMDFGNjAxIikKLSAg
ICAgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCi0KLSAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1
dCB0byBzdGRvdXQvc3RkZXJyCi0gICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2Vw
dGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCi0gICAgY2FwdHVyZWQgPSBjYXBmZC5y
ZWFkb3V0ZXJyKCkKLSAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCi0gICAgYXNzZXJ0IGNh
cHR1cmVkLmVyciA9PSAiIgotCi0gICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUg
Zm9ybWF0dGVyCi0gICAgb3V0cHV0LnNlZWsoMCkKLSAgICBvdXRwdXRfb2JqID0ganNvbi5sb2Fk
KG91dHB1dCkKLSAgICB0ZXN0ID0gb3V0cHV0X29ialsicmVzdWx0cyJdWzBdCi0gICAgYXNzZXJ0
IHRlc3RbIm1lc3NhZ2UiXSA9PSB1IlUrZGUwYVUrZDgzZCBcVTAwMDFmNjBhIFxVMDAwMUY2MDEi
Ci0gICAgc3VidGVzdCA9IHRlc3RbInN1YnRlc3RzIl1bMF0KLSAgICBhc3NlcnQgc3VidGVzdFsi
bmFtZSJdID09IHUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVUrZDgwMCIKLSAgICBhc3NlcnQgc3VidGVz
dFsibWVzc2FnZSJdID09IHUiXFUwMDAxRjYwMSBVK2RlMGFVK2Q4M2QgXFUwMDAxZjYwYSIKLQot
CiBkZWYgdGVzdF93cHRyZXBvcnRfa25vd25faW50ZXJtaXR0ZW50KGNhcGZkKToKICAgICBvdXRw
dXQgPSBTdHJpbmdJTygpCiAgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9n
Z2VyKCJ0ZXN0X2EiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rf
cHJvZHVjdHMucHkKaW5kZXggNWQyYmNmMDc1ZDBmLi4xMjBjN2U3MmM2M2YgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL3Rlc3RfcHJvZHVjdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQpAQCAtMSw2ICsx
LDYgQEAKIGZyb20gb3MucGF0aCBpbXBvcnQgam9pbiwgZGlybmFtZQorZnJvbSB1bml0dGVzdCBp
bXBvcnQgbW9jawogCi1pbXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIC5iYXNlIGlt
cG9ydCBhbGxfcHJvZHVjdHMsIGFjdGl2ZV9wcm9kdWN0cwpAQCAtMTQsNyArMTQsNyBAQCBlbnZp
cm9ubWVudC5kb19kZWxheWVkX2ltcG9ydHMoTm9uZSwgdGVzdF9wYXRocykKIEBhY3RpdmVfcHJv
ZHVjdHMoInByb2R1Y3QiKQogZGVmIHRlc3RfbG9hZF9hY3RpdmVfcHJvZHVjdChwcm9kdWN0KToK
ICAgICAiIiJ0ZXN0IHdlIGNhbiBzdWNjZXNzZnVsbHkgbG9hZCB0aGUgcHJvZHVjdCBvZiB0aGUg
Y3VycmVudCB0ZXN0ZW52IiIiCi0gICAgcHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0
KQorICAgIHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAgICAgIyB0ZXN0IHBhc3NlcyBp
ZiBpdCBkb2Vzbid0IHRocm93CiAKIApAQCAtMjIsNyArMjIsNyBAQCBkZWYgdGVzdF9sb2FkX2Fj
dGl2ZV9wcm9kdWN0KHByb2R1Y3QpOgogZGVmIHRlc3RfbG9hZF9hbGxfcHJvZHVjdHMocHJvZHVj
dCk6CiAgICAgIiIidGVzdCBldmVyeSBwcm9kdWN0IGVpdGhlciBsb2FkcyBvciB0aHJvd3MgSW1w
b3J0RXJyb3IiIiIKICAgICB0cnk6Ci0gICAgICAgIHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwg
cHJvZHVjdCkKKyAgICAgICAgcHJvZHVjdHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKICAgICBleGNl
cHQgSW1wb3J0RXJyb3I6CiAgICAgICAgIHBhc3MKIApAQCAtMzEsMjYgKzMxLDI0IEBAIGRlZiB0
ZXN0X2xvYWRfYWxsX3Byb2R1Y3RzKHByb2R1Y3QpOgogICAgICJzYXVjZSI6IHB5dGVzdC5tYXJr
LnNraXAoIm5lZWRzIGVudiBleHRyYXMga3dhcmdzIiksCiB9KQogZGVmIHRlc3Rfc2VydmVyX3N0
YXJ0X2NvbmZpZyhwcm9kdWN0KToKLSAgICAoY2hlY2tfYXJncywKLSAgICAgdGFyZ2V0X2Jyb3dz
ZXJfY2xzLCBnZXRfYnJvd3Nlcl9rd2FyZ3MsCi0gICAgIGV4ZWN1dG9yX2NsYXNzZXMsIGdldF9l
eGVjdXRvcl9rd2FyZ3MsCi0gICAgIGVudl9vcHRpb25zLCBnZXRfZW52X2V4dHJhcywgcnVuX2lu
Zm9fZXh0cmFzKSA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVjdCkKKyAgICBwcm9k
dWN0X2RhdGEgPSBwcm9kdWN0cy5Qcm9kdWN0KHt9LCBwcm9kdWN0KQogCi0gICAgZW52X2V4dHJh
cyA9IGdldF9lbnZfZXh0cmFzKCkKKyAgICBlbnZfZXh0cmFzID0gcHJvZHVjdF9kYXRhLmdldF9l
bnZfZXh0cmFzKCkKIAogICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3QoZW52aXJvbm1lbnQuc2Vy
dmUsICJzdGFydCIpIGFzIHN0YXJ0OgogICAgICAgICB3aXRoIGVudmlyb25tZW50LlRlc3RFbnZp
cm9ubWVudCh0ZXN0X3BhdGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVudl9vcHRpb25zLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0X2RhdGEuZW52X29wdGlvbnMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsidHlwZSI6ICJub25lIn0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudl9leHRyYXMpOgogICAgICAg
ICAgICAgc3RhcnQuYXNzZXJ0X2NhbGxlZF9vbmNlKCkKICAgICAgICAgICAgIGFyZ3MgPSBzdGFy
dC5jYWxsX2FyZ3MKLSAgICAgICAgICAgIGNvbmZpZyA9IGFyZ3NbMF1bMF0KLSAgICAgICAgICAg
IGlmICJzZXJ2ZXJfaG9zdCIgaW4gZW52X29wdGlvbnM6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
IGNvbmZpZ1sic2VydmVyX2hvc3QiXSA9PSBlbnZfb3B0aW9uc1sic2VydmVyX2hvc3QiXQorICAg
ICAgICAgICAgY29uZmlnID0gYXJnc1swXVsxXQorICAgICAgICAgICAgaWYgInNlcnZlcl9ob3N0
IiBpbiBwcm9kdWN0X2RhdGEuZW52X29wdGlvbnM6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGNv
bmZpZ1sic2VydmVyX2hvc3QiXSA9PSBwcm9kdWN0X2RhdGEuZW52X29wdGlvbnNbInNlcnZlcl9o
b3N0Il0KICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZ1si
c2VydmVyX2hvc3QiXSA9PSBjb25maWdbImJyb3dzZXJfaG9zdCJdCiAgICAgICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb25maWdbImJpbmRfYWRkcmVzcyJdLCBib29sKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvdGVzdF90ZXN0bG9hZGVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5CmluZGV4IDM5NGQy
YTAwMTc3Yi4uNzdjZDg1YjgyMGQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5CkBAIC0xLDUgKzEsMyBAQAotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCi0KIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1w
b3J0IHRlbXBmaWxlCkBAIC04LDYgKzYsNyBAQCBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gbW96bG9n
IGltcG9ydCBzdHJ1Y3R1cmVkCiBmcm9tIC4udGVzdGxvYWRlciBpbXBvcnQgVGVzdEZpbHRlciBh
cyBGaWx0ZXIsIFRlc3RMb2FkZXIgYXMgTG9hZGVyCitmcm9tIC4udGVzdGxvYWRlciBpbXBvcnQg
cmVhZF9pbmNsdWRlX2Zyb21fZmlsZQogZnJvbSAudGVzdF93cHR0ZXN0IGltcG9ydCBtYWtlX21v
Y2tfbWFuaWZlc3QKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKQEAgLTU4LDYg
KzU3LDI4IEBAIGRlZiB0ZXN0X2xvYWRlcl9oMl90ZXN0cygpOgogICAgIGFzc2VydCBsZW4obG9h
ZGVyLmRpc2FibGVkX3Rlc3RzWyJ0ZXN0aGFybmVzcyJdKSA9PSAxCiAgICAgYXNzZXJ0IGxvYWRl
ci5kaXNhYmxlZF90ZXN0c1sidGVzdGhhcm5lc3MiXVswXS51cmwgPT0gIi9hL2Jhci5oMi5odG1s
IgogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJOYW1lZFRlbXBvcmFyeUZpbGUgY2Fubm90IGJlIHJlb3BlbmVk
IG9uIFdpbjMyIikKK2RlZiB0ZXN0X2luY2x1ZGVfZmlsZSgpOgorICAgIHRlc3RfY2FzZXMgPSAi
IiIKKyMgVGhpcyBpcyBhIGNvbW1lbnQKKy9mb28vYmFyLWVycm9yLmh0dHBzLmh0bWwKKy9mb28v
YmFyLXN1Y2Nlc3MuaHR0cHMuaHRtbAorL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS5odG1sCisv
Zm9vL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci5odG1sCisgICAgIiIiCisKKyAgICB3aXRo
IHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShtb2RlPSJ3dCIpIGFzIGY6CisgICAgICAgIGYu
d3JpdGUodGVzdF9jYXNlcykKKyAgICAgICAgZi5mbHVzaCgpCisKKyAgICAgICAgaW5jbHVkZSA9
IHJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUoZi5uYW1lKQorCisgICAgICAgIGFzc2VydCBsZW4oaW5j
bHVkZSkgPT0gNAorICAgICAgICBhc3NlcnQgIi9mb28vYmFyLWVycm9yLmh0dHBzLmh0bWwiIGlu
IGluY2x1ZGUKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2Jhci1zdWNjZXNzLmh0dHBzLmh0bWwiIGlu
IGluY2x1ZGUKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2lkbGhhcm5lc3MuaHR0cHMuYW55Lmh0bWwi
IGluIGluY2x1ZGUKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndv
cmtlci5odG1sIiBpbiBpbmNsdWRlCiAKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0g
PT0gIndpbjMyIiwKICAgICAgICAgICAgICAgICAgICByZWFzb249Ik5hbWVkVGVtcG9yYXJ5Rmls
ZSBjYW5ub3QgYmUgcmVvcGVuZWQgb24gV2luMzIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRh
dGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cy90ZXN0X3VwZGF0ZS5weQppbmRleCBhMWJhOGRlMjg3ODAuLjgwNGY3NTEyNTE4
MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkK
QEAgLTEsMTEgKzEsMTIgQEAKIGltcG9ydCBqc29uCi1pbXBvcnQgbW9jawogaW1wb3J0IG9zCi1p
bXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitmcm9tIHVu
aXR0ZXN0IGltcG9ydCBtb2NrCisKK2ltcG9ydCBweXRlc3QKIAotZnJvbSAuLiBpbXBvcnQgbWV0
YWRhdGEsIG1hbmlmZXN0dXBkYXRlCitmcm9tIC4uIGltcG9ydCBtZXRhZGF0YSwgbWFuaWZlc3R1
cGRhdGUsIHdwdG1hbmlmZXN0CiBmcm9tIC4udXBkYXRlLnVwZGF0ZSBpbXBvcnQgV1BUVXBkYXRl
CiBmcm9tIC4udXBkYXRlLmJhc2UgaW1wb3J0IFN0ZXBSdW5uZXIsIFN0ZXAKIGZyb20gbW96bG9n
IGltcG9ydCBzdHJ1Y3R1cmVkbG9nLCBoYW5kbGVycywgZm9ybWF0dGVycwpAQCAtNDQyLDcgKzQ0
Myw3IEBAIGRlZiB0ZXN0X3VwZGF0ZV9yZW9yZGVyX2V4cGVjdGVkKCk6CiAKICAgICBhc3NlcnQg
bm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rl
c3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0
X3J1bl9pbmZvKSA9PSBbIkZBSUwiLCAiUEFTUyJdCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1
bHRfcnVuX2luZm8pID09IFsiUEFTUyIsICJGQUlMIl0KIAogCiBkZWYgdGVzdF91cGRhdGVfYW5k
X3ByZXNlcnZlX3VuY2hhbmdlZF9leHBlY3RlZF9pbnRlcm1pdHRlbnQoKToKQEAgLTE2NzIsMyAr
MTY3MywxMDUgQEAgZGVmIHRlc3RfdXBkYXRlX3BpY2tsZSgpOgogICAgIHdwdHVwZGF0ZSA9IFdQ
VFVwZGF0ZShsb2dnZXIsICoqYXJnczIpCiAgICAgd3B0dXBkYXRlID0gV1BUVXBkYXRlKGxvZ2dl
ciwgcnVubmVyX2Nscz1VcGRhdGVSdW5uZXIsICoqYXJncykKICAgICB3cHR1cGRhdGUucnVuKCkK
KworCitkZWYgdGVzdF91cGRhdGVfc2VyaWFsaXplX3F1b3RlZCgpOgorICAgIHRlc3RzID0gWygi
cGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAg
ICAgYiIiIlt0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6ICJFUlJPUiIKKyAgW3Rlc3QxXQorICAgIGV4
cGVjdGVkOgorICAgICBpZiBvcyA9PSAibGludXgiOiBbIlBBU1MiLCAiRkFJTCJdCisgICAgICJF
UlJPUiIKKyIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0
ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAg
ICAgICAgICBydW5faW5mbz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzEgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZB
SUwiXX0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAi
RVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
T0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkK
KyAgICBsb2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0p
LAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0
ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJFUlJPUiJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVz
IjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogIndpbiJ9
KQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBsb2dfMiwgZnVs
bF91cGRhdGU9VHJ1ZSwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorCisKKyAgICBtYW5pZmVz
dF9zdHIgPSB3cHRtYW5pZmVzdC5zZXJpYWxpemUodXBkYXRlZFswXVsxXS5ub2RlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwX2VtcHR5X2RhdGE9VHJ1ZSkK
KyAgICBhc3NlcnQgbWFuaWZlc3Rfc3RyID09ICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAg
IGV4cGVjdGVkOgorICAgICAgaWYgb3MgPT0gImxpbnV4IjogW1BBU1MsIEZBSUxdCisgICAgICBF
UlJPUgorIiIiCisKKworZGVmIHRlc3RfdXBkYXRlX3NlcmlhbGl6ZV91bnF1b3RlZCgpOgorICAg
IHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwK
KyAgICAgICAgICAgICAgYiIiIlt0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6IEVSUk9SCisgIFt0ZXN0
MV0KKyAgICBleHBlY3RlZDoKKyAgICAgaWYgb3MgPT0gImxpbnV4IjogW1BBU1MsIEZBSUxdCisg
ICAgIEVSUk9SCisiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIs
IHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1
cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAg
ICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorICAgIGxvZ18xID0gc3VpdGVf
bG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50Ijog
WyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVz
IjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImxpbnV4
In0pCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3Qi
OiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiRVJST1IifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJ3
aW4ifSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIs
IGZ1bGxfdXBkYXRlPVRydWUsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworCisgICAgbWFu
aWZlc3Rfc3RyID0gd3B0bWFuaWZlc3Quc2VyaWFsaXplKHVwZGF0ZWRbMF1bMV0ubm9kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9lbXB0eV9kYXRhPVRy
dWUpCisgICAgYXNzZXJ0IG1hbmlmZXN0X3N0ciA9PSAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0K
KyAgICBleHBlY3RlZDoKKyAgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlMXQorICAg
ICAgRVJST1IKKyIiIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93
cHR0ZXN0LnB5CmluZGV4IDRlZWU5Y2NiMWI2OS4uNTlhYTYzNmE5MDM3IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X3dwdHRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CkBAIC0xLDUgKzEsNSBA
QAotaW1wb3J0IG1vY2sKIGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KK2Zyb20gdW5pdHRlc3QgaW1w
b3J0IG1vY2sKIAogZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QgYXMgd3B0bWFuaWZlc3QK
IGZyb20gbWFuaWZlc3QuaXRlbSBpbXBvcnQgVGVzdGhhcm5lc3NUZXN0LCBSZWZUZXN0CkBAIC0y
MDIsMTQgKzIwMiwxNiBAQCBkZWYgdGVzdF9leHBlY3RfYW55X3N1YnRlc3Rfc3RhdHVzKCk6CiAK
IAogZGVmIHRlc3RfbWV0YWRhdGFfZnV6enkoKToKLSAgICBpdGVtID0gUmVmVGVzdCgiLiIsICJh
L2Z1enp5Lmh0bWwiLCAiLyIsICJhL2Z1enp5Lmh0bWwiLAorICAgIGl0ZW0gPSBSZWZUZXN0KHRl
c3RzX3Jvb3Q9Ii4iLAorICAgICAgICAgICAgICAgICAgIHBhdGg9ImEvZnV6enkuaHRtbCIsCisg
ICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9Ii8iLAorICAgICAgICAgICAgICAgICAgIHVybD0i
YS9mdXp6eS5odG1sIiwKICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzPVtbIi9hL2Z1enp5
LXJlZi5odG1sIiwgIj09Il1dLAogICAgICAgICAgICAgICAgICAgIGZ1enp5PVtbWyIvYS9mdXp6
eS5odG1sIiwgJy9hL2Z1enp5LXJlZi5odG1sJywgJz09J10sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbWzIsIDNdLCBbMTAsIDE1XV1dXSkKICAgICBzID0gbW9jay5Nb2NrKHJlbF9wYXRo
PSJhL2Z1enp5Lmh0bWwiLCByZWxfcGF0aF9wYXJ0cz0oImEiLCAiZnV6enkuaHRtbCIpLCBoYXNo
PSIwIio0MCkKICAgICBzLm1hbmlmZXN0X2l0ZW1zID0gbW9jay5Nb2NrKHJldHVybl92YWx1ZT0o
aXRlbS5pdGVtX3R5cGUsIFtpdGVtXSkpCiAKLQogICAgIG1hbmlmZXN0ID0gd3B0bWFuaWZlc3Qu
TWFuaWZlc3QoIiIpCiAKICAgICB0cmVlLCBzb3VyY2VmaWxlX21vY2sgPSB0cmVlX2FuZF9zb3Vy
Y2VmaWxlX21vY2tzKFsocywgTm9uZSwgVHJ1ZSldKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL2Jhc2UucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91
cGRhdGUvYmFzZS5weQppbmRleCA1NDc4MDhlNTI5MzMuLjQ3ZWE3ZmZiNDFmMCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL2Jhc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL2Jhc2UucHkKQEAgLTEsOSArMSwxMSBAQAorZnJvbSB0
eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBMaXN0LCBUeXBlCisKIGV4aXRfdW5jbGVhbiA9IG9iamVj
dCgpCiBleGl0X2NsZWFuID0gb2JqZWN0KCkKIAogCiBjbGFzcyBTdGVwKG9iamVjdCk6Ci0gICAg
cHJvdmlkZXMgPSBbXQorICAgIHByb3ZpZGVzID0gW10gICMgdHlwZTogQ2xhc3NWYXJbTGlzdFtz
dHJdXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6CiAgICAgICAgIHNlbGYubG9n
Z2VyID0gbG9nZ2VyCkBAIC00NSw3ICs0Nyw3IEBAIGNsYXNzIFN0ZXAob2JqZWN0KToKIAogCiBj
bGFzcyBTdGVwUnVubmVyKG9iamVjdCk6Ci0gICAgc3RlcHMgPSBbXQorICAgIHN0ZXBzID0gW10g
ICMgdHlwZTogQ2xhc3NWYXJbTGlzdFtUeXBlW1N0ZXBdXV0KIAogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIHN0YXRlKToKICAgICAgICAgIiIiQ2xhc3MgdGhhdCBydW5zIGEgc3BlY2lm
aWVkIHNlcmllcyBvZiBTdGVwcyB3aXRoIGEgY29tbW9uIFN0YXRlIiIiCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRh
dGUvc3RhdGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKaW5kZXggYmRiMjNmZWQ5OWUxLi5hNTI2YzI0Yzk1
OWYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKQEAgLTEsNSAr
MSw1IEBACiBpbXBvcnQgb3MKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBjUGlja2xlIGFzIHBpY2ts
ZSAgIyBub3FhOiBOODEzCitpbXBvcnQgcGlja2xlCiAKIGhlcmUgPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKIApAQCAtOTcsNyArOTcsNyBAQCBjbGFzcyBTYXZl
ZFN0YXRlKEJhc2VTdGF0ZSk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIG5vdCBvcy5w
YXRoLmlzZmlsZShjbHMuZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgICAgICB3aXRoIG9wZW4oY2xzLmZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgd2l0
aCBvcGVuKGNscy5maWxlbmFtZSwgInJiIikgYXMgZjoKICAgICAgICAgICAgICAgICB0cnk6CiAg
ICAgICAgICAgICAgICAgICAgIHJ2ID0gcGlja2xlLmxvYWQoZikKICAgICAgICAgICAgICAgICAg
ICAgbG9nZ2VyLmRlYnVnKCJMb2FkaW5nIGRhdGEgJXIiICUgKHJ2Ll9kYXRhLCkpCkBAIC0xMTEs
NyArMTExLDcgQEAgY2xhc3MgU2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgogCiAgICAgZGVmIHNhdmUo
c2VsZik6CiAgICAgICAgICIiIldyaXRlIHRoZSBzdGF0ZSB0byBkaXNrIiIiCi0gICAgICAgIHdp
dGggb3BlbihzZWxmLmZpbGVuYW1lLCAidyIpIGFzIGY6CisgICAgICAgIHdpdGggb3BlbihzZWxm
LmZpbGVuYW1lLCAid2IiKSBhcyBmOgogICAgICAgICAgICAgcGlja2xlLmR1bXAoc2VsZiwgZikK
IAogICAgIGRlZiBjbGVhcihzZWxmKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N5
bmMucHkKaW5kZXggZjg3ODc1MmY0NTE0Li4yYzk4MzRjNjcyZDYgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9z
eW5jLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5CkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIFVwZGF0ZUNo
ZWNrb3V0KFN0ZXApOgogICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmxvY2FsX2JyYW5j
aCkKICAgICAgICAgc3luY19wYXRoID0gb3MucGF0aC5hYnNwYXRoKHN5bmNfdHJlZS5yb290KQog
ICAgICAgICBpZiBzeW5jX3BhdGggbm90IGluIHN5cy5wYXRoOgotICAgICAgICAgICAgZnJvbSB1
cGRhdGUgaW1wb3J0IHNldHVwX3BhdGhzCisgICAgICAgICAgICBmcm9tIC51cGRhdGUgaW1wb3J0
IHNldHVwX3BhdGhzCiAgICAgICAgICAgICBzZXR1cF9wYXRocyhzeW5jX3BhdGgpCiAKICAgICBk
ZWYgcmVzdG9yZShzZWxmLCBzdGF0ZSk6CkBAIC05OCw3ICs5OCw3IEBAIGNsYXNzIFVwZGF0ZU1h
bmlmZXN0KFN0ZXApOgogICAgIHByb3ZpZGVzID0gWyJtYW5pZmVzdF9wYXRoIiwgInRlc3RfbWFu
aWZlc3QiXQogCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6Ci0gICAgICAgIGZyb20gbWFu
aWZlc3QgaW1wb3J0IG1hbmlmZXN0CisgICAgICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlm
ZXN0ICAjIHR5cGU6IGlnbm9yZQogICAgICAgICBzdGF0ZS5tYW5pZmVzdF9wYXRoID0gb3MucGF0
aC5qb2luKHN0YXRlLm1ldGFkYXRhX3BhdGgsICJNQU5JRkVTVC5qc29uIikKICAgICAgICAgc3Rh
dGUudGVzdF9tYW5pZmVzdCA9IG1hbmlmZXN0LmxvYWRfYW5kX3VwZGF0ZShzdGF0ZS5zeW5jWyJw
YXRoIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGUubWFuaWZlc3RfcGF0aCwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS90cmVlLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRl
L3RyZWUucHkKaW5kZXggZjM2Mjc3MGZmMTZkLi4yZjQzYmFjZDE1YmYgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS90cmVlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3VwZGF0ZS90cmVlLnB5CkBAIC0zLDggKzMsNiBAQCBpbXBvcnQgcmUKIGlt
cG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgdGVtcGZpbGUKIAotZnJvbSBzaXgubW92ZXMgaW1wb3J0
IHJhbmdlCi0KIGZyb20gLi4gaW1wb3J0IHZjcwogZnJvbSAuLnZjcyBpbXBvcnQgZ2l0LCBoZwog
CkBAIC04Nyw3ICs4NSw3IEBAIGNsYXNzIEhnVHJlZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5
CiAgICAgZGVmIGlzX2NsZWFuKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5oZygic3RhdHVz
Iikuc3RyaXAoKSA9PSAiIgorICAgICAgICByZXR1cm4gc2VsZi5oZygic3RhdHVzIikuc3RyaXAo
KSA9PSBiIiIKIAogICAgIGRlZiBhZGRfbmV3KHNlbGYsIHByZWZpeD1Ob25lKToKICAgICAgICAg
aWYgcHJlZml4IGlzIG5vdCBOb25lOgpAQCAtMTA1LDcgKzEwMyw3IEBAIGNsYXNzIEhnVHJlZShv
YmplY3QpOgogICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CiAg
ICAgICAgICAgICBwYXNzCiAKLSAgICAgICAgcGF0Y2hfbmFtZXMgPSBbaXRlbS5zdHJpcCgpIGZv
ciBpdGVtIGluIHNlbGYuaGcoInFzZXJpZXMiKS5zcGxpdCgiXG4iKSBpZiBpdGVtLnN0cmlwKCld
CisgICAgICAgIHBhdGNoX25hbWVzID0gW2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBzZWxmLmhn
KCJxc2VyaWVzIikuc3BsaXQoYiJcbiIpIGlmIGl0ZW0uc3RyaXAoKV0KIAogICAgICAgICBzdWZm
aXggPSAwCiAgICAgICAgIHRlc3RfbmFtZSA9IHBhdGNoX25hbWUKQEAgLTE0Miw3ICsxNDAsNyBA
QCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdD1O
b25lLCBsb2dfZXJyb3I9VHJ1ZSk6CiAgICAgICAgIGlmIHJvb3QgaXMgTm9uZToKLSAgICAgICAg
ICAgIHJvb3QgPSBnaXQoInJldi1wYXJzZSIsICItLXNob3ctdG9wbGV2ZWwiLCBsb2dfZXJyb3I9
bG9nX2Vycm9yKS5zdHJpcCgpCisgICAgICAgICAgICByb290ID0gZ2l0KCJyZXYtcGFyc2UiLCAi
LS1zaG93LXRvcGxldmVsIiwgbG9nX2Vycm9yPWxvZ19lcnJvcikuc3RyaXAoKS5kZWNvZGUoJ3V0
Zi04JykKICAgICAgICAgc2VsZi5yb290ID0gcm9vdAogICAgICAgICBzZWxmLmdpdCA9IHZjcy5i
aW5kX3RvX3JlcG8oZ2l0LCBzZWxmLnJvb3QsIGxvZ19lcnJvcj1sb2dfZXJyb3IpCiAgICAgICAg
IHNlbGYubWVzc2FnZSA9IE5vbmUKQEAgLTE3OCw3ICsxNzYsNyBAQCBjbGFzcyBHaXRUcmVlKG9i
amVjdCk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaXNfY2xlYW4oc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLmdpdCgic3RhdHVzIikuc3RyaXAoKSA9PSAiIgorICAgICAgICByZXR1cm4g
c2VsZi5naXQoInN0YXR1cyIpLnN0cmlwKCkgPT0gYiIiCiAKICAgICBkZWYgYWRkX25ldyhzZWxm
LCBwcmVmaXg9Tm9uZSk6CiAgICAgICAgICIiIkFkZCBmaWxlcyB0byB0aGUgc3RhZ2luZyBhcmVh
LgpAQCAtMjAzLDcgKzIwMSw3IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgICAg
IGYuc2VlaygwKQogICAgICAgICAgICAgaWdub3JlZF9maWxlcyA9IHN5bmNfdHJlZS5naXQoImNo
ZWNrLWlnbm9yZSIsICItLW5vLWluZGV4IiwgIi0tc3RkaW4iLCAiLXoiLCBzdGRpbj1mKQogICAg
ICAgICBhcmdzID0gW10KLSAgICAgICAgZm9yIGVudHJ5IGluIGlnbm9yZWRfZmlsZXMuc3BsaXQo
J1wwJyk6CisgICAgICAgIGZvciBlbnRyeSBpbiBpZ25vcmVkX2ZpbGVzLmRlY29kZSgndXRmLTgn
KS5zcGxpdCgnXDAnKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKG9zLnBhdGguam9pbihwcmVm
aXgsIGVudHJ5KSkKICAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgIHNlbGYuZ2l0KCJhZGQi
LCAiLS1mb3JjZSIsICphcmdzKQpAQCAtMjE5LDcgKzIxNyw3IEBAIGNsYXNzIEdpdFRyZWUob2Jq
ZWN0KToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKHJlZl9maWx0ZXIpCiAgICAgICAgIGRhdGEg
PSBzZWxmLmdpdCgic2hvdy1yZWYiLCAqYXJncykKICAgICAgICAgcnYgPSBbXQotICAgICAgICBm
b3IgbGluZSBpbiBkYXRhLnNwbGl0KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNw
bGl0KGIiXG4iKToKICAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6CiAgICAgICAgICAg
ICAgICAgY29udGludWUKICAgICAgICAgICAgIHNoYTEsIHJlZiA9IGxpbmUuc3BsaXQoKQpAQCAt
MjM3LDcgKzIzNSw3IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgICAgIGFyZ3Mu
YXBwZW5kKHJlZl9maWx0ZXIpCiAgICAgICAgIGRhdGEgPSBzZWxmLmdpdCgibHMtcmVtb3RlIiwg
cmVtb3RlLCAqYXJncykKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGluZSBpbiBkYXRh
LnNwbGl0KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0KGIiXG4iKToKICAg
ICAgICAgICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6CiAgICAgICAgICAgICAgICAgY29udGludWUK
ICAgICAgICAgICAgIHNoYTEsIHJlZiA9IGxpbmUuc3BsaXQoKQpAQCAtMjUwLDggKzI0OCw4IEBA
IGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgOnBhcmFtIHJlbW90ZTogdGhlIHJlbW90
ZSBVUkwKICAgICAgICAgOnBhcmFtIGJyYW5jaDogdGhlIGJyYW5jaCBuYW1lIiIiCiAgICAgICAg
IGZvciBzaGExLCByZWYgaW4gc2VsZi5saXN0X3JlbW90ZShyZW1vdGUsIGJyYW5jaCk6Ci0gICAg
ICAgICAgICBpZiByZWYgPT0gInJlZnMvaGVhZHMvJXMiICUgYnJhbmNoOgotICAgICAgICAgICAg
ICAgIHJldHVybiBzZWxmLmNvbW1pdF9jbHMoc2VsZiwgc2hhMSkKKyAgICAgICAgICAgIGlmIHJl
Zi5kZWNvZGUoJ3V0Zi04JykgPT0gInJlZnMvaGVhZHMvJXMiICUgYnJhbmNoOgorICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLmNvbW1pdF9jbHMoc2VsZiwgc2hhMS5kZWNvZGUoJ3V0Zi04Jykp
CiAgICAgICAgIGFzc2VydCBGYWxzZQogCiAgICAgZGVmIGNyZWF0ZV9wYXRjaChzZWxmLCBwYXRj
aF9uYW1lLCBtZXNzYWdlKToKQEAgLTI5OSw4ICsyOTcsOCBAQCBjbGFzcyBHaXRUcmVlKG9iamVj
dCk6CiAKICAgICAgICAgYXJncyA9IFtdCiAgICAgICAgIGlmIGJyYW5jaDoKLSAgICAgICAgICAg
IGJyYW5jaGVzID0gW3JlZltsZW4oInJlZnMvaGVhZHMvIik6XSBmb3Igc2hhMSwgcmVmIGluIHNl
bGYubGlzdF9yZWZzKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRo
KCJyZWZzL2hlYWRzLyIpXQorICAgICAgICAgICAgYnJhbmNoZXMgPSBbcmVmW2xlbigicmVmcy9o
ZWFkcy8iKTpdLmRlY29kZSgndXRmLTgnKSBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZWZz
KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKGIicmVmcy9oZWFk
cy8iKV0KICAgICAgICAgICAgIGJyYW5jaCA9IGdldF91bmlxdWVfbmFtZShicmFuY2hlcywgYnJh
bmNoKQogCiAgICAgICAgICAgICBhcmdzICs9IFsiLWIiLCBicmFuY2hdCkBAIC0zMzYsOCArMzM0
LDggQEAgY2xhc3MgR2l0VHJlZShvYmplY3QpOgogICAgICAgICBydiA9IFtdCiAKICAgICAgICAg
Zm9yIHJlcG9fcGF0aCBpbiByZXBvX3BhdGhzOgotICAgICAgICAgICAgcGF0aHMgPSB2Y3MuZ2l0
KCJscy10cmVlIiwgIi1yIiwgIi0tbmFtZS1vbmx5IiwgIkhFQUQiLCByZXBvPXJlcG9fcGF0aCku
c3BsaXQoIlxuIikKLSAgICAgICAgICAgIHJ2LmV4dGVuZChvcy5wYXRoLnJlbHBhdGgob3MucGF0
aC5qb2luKHJlcG9fcGF0aCwgaXRlbSksIHNlbGYucm9vdCkgZm9yIGl0ZW0gaW4gcGF0aHMKKyAg
ICAgICAgICAgIHBhdGhzID0gdmNzLmdpdCgibHMtdHJlZSIsICItciIsICItLW5hbWUtb25seSIs
ICJIRUFEIiwgcmVwbz1yZXBvX3BhdGgpLnNwbGl0KGIiXG4iKQorICAgICAgICAgICAgcnYuZXh0
ZW5kKG9zLnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4ocmVwb19wYXRoLCBpdGVtLmRlY29kZSgn
dXRmLTgnKSksIHNlbGYucm9vdCkgZm9yIGl0ZW0gaW4gcGF0aHMKICAgICAgICAgICAgICAgICAg
ICAgICBpZiBpdGVtLnN0cmlwKCkpCiAgICAgICAgIHJldHVybiBydgogCkBAIC0zNDUsMTEgKzM0
MywxMSBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgICIiIkxpc3Qgc3VibW9kdWxl
IGRpcmVjdG9yaWVzIiIiCiAgICAgICAgIG91dHB1dCA9IHNlbGYuZ2l0KCJzdWJtb2R1bGUiLCAi
c3RhdHVzIiwgIi0tcmVjdXJzaXZlIikKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGlu
ZSBpbiBvdXRwdXQuc3BsaXQoIlxuIik6CisgICAgICAgIGZvciBsaW5lIGluIG91dHB1dC5zcGxp
dChiIlxuIik6CiAgICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCiAgICAgICAgICAgICBp
ZiBub3QgbGluZToKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgcGFydHMg
PSBsaW5lLnNwbGl0KCIgIikKKyAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdChiIiAiKQog
ICAgICAgICAgICAgcnYuYXBwZW5kKHBhcnRzWzFdKQogICAgICAgICByZXR1cm4gcnYKIApAQCAt
NDAzLDUgKzQwMSw1IEBAIGNsYXNzIENvbW1pdChvYmplY3QpOgogICAgICAgICBzZWxmLmdpdCA9
IHNlbGYudHJlZS5naXQKIAogICAgIGRlZiBfZ2V0X21ldGEoc2VsZik6Ci0gICAgICAgIGF1dGhv
ciwgZW1haWwsIG1lc3NhZ2UgPSBzZWxmLmdpdCgic2hvdyIsICItcyIsICItLWZvcm1hdD1mb3Jt
YXQ6JWFuXG4lYWVcbiVCIiwgc2VsZi5zaGExKS5zcGxpdCgiXG4iLCAyKQorICAgICAgICBhdXRo
b3IsIGVtYWlsLCBtZXNzYWdlID0gc2VsZi5naXQoInNob3ciLCAiLXMiLCAiLS1mb3JtYXQ9Zm9y
bWF0OiVhblxuJWFlXG4lQiIsIHNlbGYuc2hhMSkuZGVjb2RlKCd1dGYtOCcpLnNwbGl0KCJcbiIs
IDIpCiAgICAgICAgIHJldHVybiBhdXRob3IsIGVtYWlsLCBzZWxmLm1zZ19jbHMobWVzc2FnZSkK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS91cGRhdGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CmluZGV4IDgwZTUwOWRk
MzgzYi4uMjY1YTMzMTFiZWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91
cGRhdGUucHkKQEAgLTEsOCArMSw2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIAotZnJvbSBz
aXggaW1wb3J0IGl0ZXJ2YWx1ZXMKLQogZnJvbSAubWV0YWRhdGEgaW1wb3J0IE1ldGFkYXRhVXBk
YXRlUnVubmVyCiBmcm9tIC5zeW5jIGltcG9ydCBTeW5jRnJvbVVwc3RyZWFtUnVubmVyCiBmcm9t
IC50cmVlIGltcG9ydCBHaXRUcmVlLCBIZ1RyZWUsIE5vVkNTVHJlZQpAQCAtMTExLDcgKzEwOSw3
IEBAIGNsYXNzIFJlbW92ZU9ic29sZXRlKFN0ZXApOgogICAgICAgICBzdGF0ZS50ZXN0c19wYXRo
ID0gc3RhdGUucGF0aHNbIi8iXVsidGVzdHNfcGF0aCJdCiAgICAgICAgIHN0YXRlLm1ldGFkYXRh
X3BhdGggPSBzdGF0ZS5wYXRoc1siLyJdWyJtZXRhZGF0YV9wYXRoIl0KIAotICAgICAgICBmb3Ig
dXJsX3BhdGhzIGluIGl0ZXJ2YWx1ZXMocGF0aHMpOgorICAgICAgICBmb3IgdXJsX3BhdGhzIGlu
IHBhdGhzLnZhbHVlcygpOgogICAgICAgICAgICAgdGVzdHNfcGF0aCA9IHVybF9wYXRoc1sidGVz
dHNfcGF0aCJdCiAgICAgICAgICAgICBtZXRhZGF0YV9wYXRoID0gdXJsX3BhdGhzWyJtZXRhZGF0
YV9wYXRoIl0KICAgICAgICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGlu
IG9zLndhbGsobWV0YWRhdGFfcGF0aCk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKaW5kZXggODk2
ZDhhMGQyYzZlLi4zNDE5YTUwN2RiYWUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Zjcy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKQEAgLTEs
NSArMSw2IEBACiBpbXBvcnQgc3VicHJvY2VzcwogZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRp
YWwKK2Zyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgZ2V0
X2RlZmF1bHRfbG9nZ2VyCiAKQEAgLTcsNyArOCw3IEBAIGZyb20gd3B0c2VydmUudXRpbHMgaW1w
b3J0IGlzb21vcnBoaWNfZGVjb2RlCiAKIGxvZ2dlciA9IE5vbmUKIAotZGVmIHZjcyhiaW5fbmFt
ZSk6CitkZWYgdmNzKGJpbl9uYW1lOiBzdHIpIC0+IENhbGxhYmxlWy4uLiwgTm9uZV06CiAgICAg
ZGVmIGlubmVyKGNvbW1hbmQsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIGdsb2JhbCBsb2dn
ZXIKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKaW5k
ZXggZGZhZTA1N2ZkMzMyLi41NjVlM2Q0ZTQzYmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weQpAQCAtNSwxNCArNSwxNSBAQCBpbXBvcnQgcGxhdGZv
cm0KIGltcG9ydCBzb2NrZXQKIGltcG9ydCB0aW1lCiBpbXBvcnQgdHJhY2ViYWNrCitmcm9tIHR5
cGluZyBpbXBvcnQgQ2xhc3NWYXIsIFR5cGUKIAogaW1wb3J0IG1venByb2Nlc3MKIAotZnJvbSAu
cHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYKK2Zyb20gLmJyb3dzZXJzLmJhc2UgaW1wb3J0IE91dHB1
dEhhbmRsZXIKIAogCiBfX2FsbF9fID0gWyJTZWxlbml1bVNlcnZlciIsICJDaHJvbWVEcml2ZXJT
ZXJ2ZXIiLCAiQ1dUQ2hyb21lRHJpdmVyU2VydmVyIiwKLSAgICAgICAgICAgIkVkZ2VDaHJvbWl1
bURyaXZlclNlcnZlciIsICJPcGVyYURyaXZlclNlcnZlciIsICJHZWNrb0RyaXZlclNlcnZlciIs
CisgICAgICAgICAgICJFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2
ZXIiLAogICAgICAgICAgICAiSW50ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlciIsICJFZGdlRHJp
dmVyU2VydmVyIiwKICAgICAgICAgICAgIlNlcnZvRHJpdmVyU2VydmVyIiwgIldlYktpdERyaXZl
clNlcnZlciIsICJXZWJEcml2ZXJTZXJ2ZXIiXQogCkBAIC0yMSw2ICsyMiw3IEBAIGNsYXNzIFdl
YkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgIF9fbWV0YWNsYXNzX18gPSBhYmMuQUJDTWV0YQog
CiAgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAiLyIKKyAgICBvdXRwdXRfaGFuZGxlcl9jbHMgPSBP
dXRwdXRIYW5kbGVyICAjIHR5cGU6IENsYXNzVmFyW1R5cGVbT3V0cHV0SGFuZGxlcl1dCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9IjEyNy4wLjAuMSIsIHBv
cnQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBlbnY9Tm9uZSwgYXJncz1O
b25lKToKQEAgLTMxLDEyICszMywxNCBAQCBjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToK
ICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5h
cnkKICAgICAgICAgc2VsZi5ob3N0ID0gaG9zdAorCiAgICAgICAgIGlmIGJhc2VfcGF0aCA9PSAi
IjoKICAgICAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gc2VsZi5kZWZhdWx0X2Jhc2VfcGF0aAog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgKICAg
ICAgICAgc2VsZi5lbnYgPSBvcy5lbnZpcm9uLmNvcHkoKSBpZiBlbnYgaXMgTm9uZSBlbHNlIGVu
dgogCisgICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gTm9uZQogICAgICAgICBzZWxmLl9w
b3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9jbWQgPSBOb25lCiAgICAgICAgIHNlbGYuX2FyZ3Mg
PSBhcmdzIGlmIGFyZ3MgaXMgbm90IE5vbmUgZWxzZSBbXQpAQCAtNDYsMTggKzUwLDI4IEBAIGNs
YXNzIFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6
CiAgICAgICAgICIiIlJldHVybnMgdGhlIGZ1bGwgY29tbWFuZCBmb3Igc3RhcnRpbmcgdGhlIHNl
cnZlciBwcm9jZXNzIGFzIGEgbGlzdC4iIiIKIAotICAgIGRlZiBzdGFydChzZWxmLCBibG9jaz1G
YWxzZSk6CisgICAgZGVmIHN0YXJ0KHNlbGYsCisgICAgICAgICAgICAgIGJsb2NrPUZhbHNlLAor
ICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9rd2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAg
b3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzPU5vbmUpOgogICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBzZWxmLl9ydW4oYmxvY2spCisgICAgICAgICAgICBzZWxmLl9ydW4oYmxvY2ssIG91dHB1
dF9oYW5kbGVyX2t3YXJncywgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzKQogICAgICAgICBl
eGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICBzZWxmLnN0b3AoKQogCi0gICAg
ZGVmIF9ydW4oc2VsZiwgYmxvY2spOgorICAgIGRlZiBfcnVuKHNlbGYsIGJsb2NrLCBvdXRwdXRf
aGFuZGxlcl9rd2FyZ3MsIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyk6CisgICAgICAgIGlm
IG91dHB1dF9oYW5kbGVyX2t3YXJncyBpcyBOb25lOgorICAgICAgICAgICAgb3V0cHV0X2hhbmRs
ZXJfa3dhcmdzID0ge30KKyAgICAgICAgaWYgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzIGlz
IE5vbmU6CisgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSB7fQogICAg
ICAgICBzZWxmLl9jbWQgPSBzZWxmLm1ha2VfY29tbWFuZCgpCisgICAgICAgIHNlbGYuX291dHB1
dF9oYW5kbGVyID0gc2VsZi5vdXRwdXRfaGFuZGxlcl9jbHMoc2VsZi5sb2dnZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY21k
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICoqb3V0cHV0X2hhbmRsZXJfa3dhcmdzKQogICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vz
cy5Qcm9jZXNzSGFuZGxlcigKICAgICAgICAgICAgIHNlbGYuX2NtZCwKLSAgICAgICAgICAgIHBy
b2Nlc3NPdXRwdXRMaW5lPXNlbGYub25fb3V0cHV0LAotICAgICAgICAgICAgZW52PWNhc3RfZW52
KHNlbGYuZW52KSwKKyAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPXNlbGYuX291dHB1dF9o
YW5kbGVyLAorICAgICAgICAgICAgZW52PXNlbGYuZW52LAogICAgICAgICAgICAgc3RvcmVPdXRw
dXQ9RmFsc2UpCiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIFdlYkRyaXZl
cjogJXMiICUgJyAnLmpvaW4oc2VsZi5fY21kKSkKQEAgLTY4LDYgKzgyLDcgQEAgY2xhc3MgV2Vi
RHJpdmVyU2VydmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKICAg
ICAgICAgICAgICAgICAgICAgIldlYkRyaXZlciBleGVjdXRhYmxlIG5vdCBmb3VuZDogJXMiICUg
c2VsZi5iaW5hcnkpCiAgICAgICAgICAgICByYWlzZQorICAgICAgICBzZWxmLl9vdXRwdXRfaGFu
ZGxlci5hZnRlcl9wcm9jZXNzX3N0YXJ0KHNlbGYuX3Byb2MucGlkKQogCiAgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKAogICAgICAgICAgICAgIldhaXRpbmcgZm9yIFdlYkRyaXZlciB0byBiZWNv
bWUgYWNjZXNzaWJsZTogJXMiICUgc2VsZi51cmwpCkBAIC03OCwyNyArOTMsMjggQEAgY2xhc3Mg
V2ViRHJpdmVyU2VydmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIldlYkRyaXZlciB3YXMg
bm90IGFjY2Vzc2libGUgIgogICAgICAgICAgICAgICAgICJ3aXRoaW4gdGhlIHRpbWVvdXQ6XG4l
cyIgJSB0cmFjZWJhY2suZm9ybWF0X2V4YygpKQogICAgICAgICAgICAgcmFpc2UKLQorICAgICAg
ICBzZWxmLl9vdXRwdXRfaGFuZGxlci5zdGFydCgqKm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJn
cykKICAgICAgICAgaWYgYmxvY2s6CiAgICAgICAgICAgICBzZWxmLl9wcm9jLndhaXQoKQogCiAg
ICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiU3RvcHBpbmcgV2ViRHJpdmVyIikKKyAgICAgICAgY2xlYW4gPSBUcnVlCiAgICAgICAgIGlm
IHNlbGYuaXNfYWxpdmUoKToKICAgICAgICAgICAgIGtpbGxfcmVzdWx0ID0gc2VsZi5fcHJvYy5r
aWxsKCkKICAgICAgICAgICAgIGlmIGZvcmNlIGFuZCBraWxsX3Jlc3VsdCAhPSAwOgotICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jLmtpbGwoOSkKLSAgICAgICAgICAgIHJldHVybiBr
aWxsX3Jlc3VsdAotICAgICAgICByZXR1cm4gbm90IHNlbGYuaXNfYWxpdmUoKQorICAgICAgICAg
ICAgICAgIGNsZWFuID0gRmFsc2UKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jLmtpbGwoOSkK
KyAgICAgICAgc3VjY2VzcyA9IG5vdCBzZWxmLmlzX2FsaXZlKCkKKyAgICAgICAgaWYgc3VjY2Vz
cyBhbmQgc2VsZi5fb3V0cHV0X2hhbmRsZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIE9u
bHkgdHJ5IHRvIGRvIG91dHB1dCBwb3N0LXByb2Nlc3NpbmcgaWYgd2UgbWFuYWdlZCB0byBzaHV0
IGRvd24KKyAgICAgICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3Rv
cChjbGVhbikKKyAgICAgICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gTm9uZQorICAgICAg
ICByZXR1cm4gc3VjY2VzcwogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1
cm4gaGFzYXR0cihzZWxmLl9wcm9jLCAicHJvYyIpIGFuZCBzZWxmLl9wcm9jLnBvbGwoKSBpcyBO
b25lCiAKLSAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgotICAgICAgICBzZWxmLmxvZ2dl
ci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuX2NtZCkpCi0KICAgICBAcHJv
cGVydHkKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9wcm9jIGlzIG5vdCBO
b25lOgpAQCAtMTIzLDg4ICsxMzksNDIgQEAgY2xhc3MgU2VsZW5pdW1TZXJ2ZXIoV2ViRHJpdmVy
U2VydmVyKToKIAogCiBjbGFzcyBDaHJvbWVEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9ImNocm9tZWRyaXZlciIsIHBv
cnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBhcmdzPU5vbmUpOgotICAg
ICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIs
IGJpbmFyeSwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFzZV9wYXRoLCBhcmdzPWFyZ3MpCi0KICAg
ICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAog
ICAgICAgICAgICAgICAgIGNtZF9hcmcoInBvcnQiLCBzdHIoc2VsZi5wb3J0KSksCiAgICAgICAg
ICAgICAgICAgY21kX2FyZygidXJsLWJhc2UiLCBzZWxmLmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNl
X3BhdGggZWxzZSAiIiwKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJlbmFibGUtY2hyb21lLWxv
Z3MiKV0gKyBzZWxmLl9hcmdzCiAKLWNsYXNzIENXVENocm9tZURyaXZlclNlcnZlcihXZWJEcml2
ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1O
b25lLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwg
bG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQogCitjbGFzcyBDV1RDaHJvbWVE
cml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYp
OgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgICItLXBvcnQ9
JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCi1jbGFzcyBFZGdlQ2hyb21pdW1E
cml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBiaW5hcnk9Im1zZWRnZWRyaXZlciIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
YmFzZV9wYXRoPSIiLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0
X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBiYXNlX3Bh
dGg9YmFzZV9wYXRoLCBhcmdzPWFyZ3MpCiAKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclNlcnZl
cihXZWJEcml2ZXJTZXJ2ZXIpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAg
IHJldHVybiBbc2VsZi5iaW5hcnksCiAgICAgICAgICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0
cihzZWxmLnBvcnQpKSwKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYu
YmFzZV9wYXRoKSBpZiBzZWxmLmJhc2VfcGF0aCBlbHNlICIiXSArIHNlbGYuX2FyZ3MKIAotY2xh
c3MgRWRnZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeT0ibWljcm9zb2Z0d2ViZHJpdmVyLmV4ZSIsIHBvcnQ9Tm9uZSwK
LSAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBob3N0PSJsb2NhbGhvc3QiLCBhcmdzPU5v
bmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxm
LCBsb2dnZXIsIGJpbmFyeSwgaG9zdD1ob3N0LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKIAorY2xh
c3MgRWRnZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgogICAgIGRlZiBtYWtlX2NvbW1h
bmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksCiAgICAgICAgICAgICAgICAg
Ii0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCiAKLWNsYXNzIE9wZXJh
RHJpdmVyU2VydmVyKENocm9tZURyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5PSJvcGVyYWRyaXZlciIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgYmFzZV9wYXRoPSIiLCBhcmdzPU5vbmUpOgotICAgICAgICBDaHJvbWVEcml2ZXJTZXJ2ZXIu
X19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBi
YXNlX3BhdGg9YmFzZV9wYXRoLCBhcmdzPWFyZ3MpCiAKK2NsYXNzIE9wZXJhRHJpdmVyU2VydmVy
KENocm9tZURyaXZlclNlcnZlcik6CisgICAgcGFzcwogCiBjbGFzcyBJbnRlcm5ldEV4cGxvcmVy
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5PSJJRURyaXZlclNlcnZlci5leGUiLCBwb3J0PU5vbmUsCi0gICAgICAgICAg
ICAgICAgIGJhc2VfcGF0aD0iIiwgaG9zdD0ibG9jYWxob3N0IiwgYXJncz1Ob25lKToKLSAgICAg
ICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBi
aW5hcnksIGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCi0KICAgICBkZWYgbWFrZV9j
b21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAg
ICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCiAKLWNsYXNz
IEdlY2tvRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIGxvZ2dlciwgbWFyaW9uZXR0ZV9wb3J0PTI4MjgsIGJpbmFyeT0iZ2Vja29kcml2ZXIiLAot
ICAgICAgICAgICAgICAgICBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsIGFyZ3M9Tm9uZSk6
Ci0gICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCi0gICAgICAgIGVudlsiUlVTVF9CQUNL
VFJBQ0UiXSA9ICIxIgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBiaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0PWhvc3Qs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PXBvcnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9YXJncykKLSAgICAgICAgc2VsZi5tYXJpb25ldHRlX3Bv
cnQgPSBtYXJpb25ldHRlX3BvcnQKLQotICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBbc2VsZi5iaW5hcnksCi0gICAgICAgICAgICAgICAgIi0tbWFyaW9uZXR0ZS1w
b3J0Iiwgc3RyKHNlbGYubWFyaW9uZXR0ZV9wb3J0KSwKLSAgICAgICAgICAgICAgICAiLS1ob3N0
Iiwgc2VsZi5ob3N0LAotICAgICAgICAgICAgICAgICItLXBvcnQiLCBzdHIoc2VsZi5wb3J0KV0g
KyBzZWxmLl9hcmdzCi0KLQogY2xhc3MgU2FmYXJpRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZl
cik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJzYWZhcmlkcml2ZXIi
LCBwb3J0PU5vbmUsIGFyZ3M9Tm9uZSk6Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRf
XygKLSAgICAgICAgICAgIHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGFyZ3M9YXJn
cykKLQogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5i
aW5hcnksCiAgICAgICAgICAgICAgICAgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBz
ZWxmLl9hcmdzCkBAIC0yMTIsMTMgKzE4MiwxMyBAQCBjbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIo
V2ViRHJpdmVyU2VydmVyKToKIAogY2xhc3MgU2Vydm9Ecml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2Vy
dmVyKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9InNlcnZvIiwgYmlu
YXJ5X2FyZ3M9Tm9uZSwgaG9zdD0iMTI3LjAuMC4xIiwKLSAgICAgICAgICAgICAgICAgcG9ydD1O
b25lLCBhcmdzPU5vbmUpOgotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAg
ICAgICAgICAgICBwb3J0PU5vbmUsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgorICAgICAgICBlbnYg
PSBlbnYgaWYgZW52IGlzIG5vdCBOb25lIGVsc2Ugb3MuZW52aXJvbi5jb3B5KCkKICAgICAgICAg
ZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCiAgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhvc3Q9aG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9y
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9YXJncykKICAgICAgICAgc2VsZi5iaW5hcnlfYXJncyA9
IGJpbmFyeV9hcmdzCiAKQEAgLTIzMyw5ICsyMDMsNiBAQCBjbGFzcyBTZXJ2b0RyaXZlclNlcnZl
cihXZWJEcml2ZXJTZXJ2ZXIpOgogCiAKIGNsYXNzIFdlYktpdERyaXZlclNlcnZlcihXZWJEcml2
ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCBw
b3J0PU5vbmUsIGFyZ3M9Tm9uZSk6Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCi0KICAgICBkZWYgbWFr
ZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCAiLS1wb3J0PSVz
IiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIApAQCAtMjU0LDcgKzIyMSw3IEBAIGRl
ZiBnZXRfZnJlZV9wb3J0KCk6CiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKICAgICAgICAg
dHJ5OgogICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCi0gICAgICAgIGV4Y2Vw
dCBzb2NrZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgY29u
dGludWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzLmdldHNvY2tuYW1lKClb
MV0KQEAgLTI2NSw3ICsyMzIsNyBAQCBkZWYgZ2V0X2ZyZWVfcG9ydCgpOgogZGVmIHdhaXRfZm9y
X3NlcnZpY2UoYWRkciwgdGltZW91dD02MCk6CiAgICAgIiIiV2FpdHMgdW50aWwgbmV0d29yayBz
ZXJ2aWNlIGdpdmVuIGFzIGEgdHVwbGUgb2YgKGhvc3QsIHBvcnQpIGJlY29tZXMKICAgICBhdmFp
bGFibGUgb3IgdGhlIGB0aW1lb3V0YCBkdXJhdGlvbiBpcyByZWFjaGVkLCBhdCB3aGljaCBwb2lu
dAotICAgIGBgc29ja2V0LmVycm9yYGAgaXMgcmFpc2VkLiIiIgorICAgIGBgc29ja2V0LnRpbWVv
dXRgYCBpcyByYWlzZWQuIiIiCiAgICAgZW5kID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CiAgICAg
d2hpbGUgZW5kID4gdGltZS50aW1lKCk6CiAgICAgICAgIHNvID0gc29ja2V0LnNvY2tldCgpCkBA
IC0yNzMsNyArMjQwLDcgQEAgZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwgdGltZW91dD02MCk6
CiAgICAgICAgICAgICBzby5jb25uZWN0KGFkZHIpCiAgICAgICAgIGV4Y2VwdCBzb2NrZXQudGlt
ZW91dDoKICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBl
OgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyAh
PSBlcnJuby5FQ09OTlJFRlVTRUQ6CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZWxz
ZToKQEAgLTI4MSw0ICsyNDgsNCBAQCBkZWYgd2FpdF9mb3Jfc2VydmljZShhZGRyLCB0aW1lb3V0
PTYwKToKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNvLmNsb3NlKCkKICAgICAgICAg
dGltZS5zbGVlcCgwLjUpCi0gICAgcmFpc2Ugc29ja2V0LmVycm9yKCJTZXJ2aWNlIGlzIHVuYXZh
aWxhYmxlOiAlczolaSIgJSBhZGRyKQorICAgIHJhaXNlIHNvY2tldC50aW1lb3V0KCJTZXJ2aWNl
IGlzIHVuYXZhaWxhYmxlOiAlczolaSIgJSBhZGRyKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRjb21tYW5kbGluZS5weQppbmRleCA5ZDFkNDA0ODA5NTQuLmM3MDUwZWI4MGMyYiAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKQEAgLTEsMTEgKzEs
OSBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIHByaW50X2Z1bmN0
aW9uCiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0
aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIGZyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5k
X2V4ZWN1dGFibGUKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IHRpbWVkZWx0YQotZnJvbSBzaXggaW1w
b3J0IGVuc3VyZV90ZXh0LCBpdGVya2V5cywgaXRlcnZhbHVlcywgaXRlcml0ZW1zCiAKIGZyb20g
LiBpbXBvcnQgY29uZmlnCiBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKQEAgLTE2LDcgKzE0LDcgQEAg
ZGVmIGFic19wYXRoKHBhdGgpOgogCiAKIGRlZiB1cmxfb3JfcGF0aChwYXRoKToKLSAgICBmcm9t
IHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCisgICAgZnJvbSB1cmxsaWIu
cGFyc2UgaW1wb3J0IHVybHBhcnNlCiAKICAgICBwYXJzZWQgPSB1cmxwYXJzZShwYXRoKQogICAg
IGlmIGxlbihwYXJzZWQuc2NoZW1lKSA+IDI6CkBAIC03Miw2ICs3MCwxMCBAQCBzY2hlbWUgaG9z
dCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJmYWlsX29uX3VuZXhwZWN0ZWQiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iRXhpdCB3aXRoIHN0YXR1cyBjb2RlIDAgd2hlbiB0ZXN0
IGV4cGVjdGF0aW9ucyBhcmUgdmlvbGF0ZWQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0t
bm8tZmFpbC1vbi11bmV4cGVjdGVkLXBhc3MiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRlc3Q9ImZhaWxfb25fdW5leHBlY3RlZF9wYXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IkV4aXQgd2l0aCBzdGF0dXMgY29kZSAwIHdoZW4gYWxsIHVuZXhwZWN0ZWQgcmVzdWx0
cyBhcmUgUEFTUyIpCiAKICAgICBtb2RlX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91
cCgiTW9kZSIpCiAgICAgbW9kZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tbGlzdC10ZXN0LWdyb3Vw
cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCkBAIC0xMzEsNiArMTMzLDggQEAgc2NoZW1lIGhvc3Qg
YW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJUZXN0IHR5cGVzIHRvIHJ1biIpCiAgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCItLWluY2x1ZGUiLCBhY3Rpb249ImFwcGVuZCIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlVSTCBwcmVmaXggdG8gaW5jbHVkZSIpCisgICAgdGVzdF9z
ZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUtZmlsZSIsIGFjdGlvbj0ic3Rv
cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJBIGZpbGUg
bGlzdGluZyBVUkwgcHJlZml4IGZvciB0ZXN0cyIpCiAgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLWV4Y2x1ZGUiLCBhY3Rpb249ImFwcGVuZCIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlVSTCBwcmVmaXggdG8gZXhjbHVkZSIpCiAg
ICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUtbWFuaWZlc3Qi
LCB0eXBlPWFic19wYXRoLApAQCAtMTcwLDYgKzE3NCw4IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0
LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkhhbHQgdGhlIHRl
c3QgcnVubmVyIGFmdGVyIGVhY2ggdGVzdCAodGhpcyBoYXBwZW5zIGJ5IGRlZmF1bHQgaWYgb25s
eSBhIHNpbmdsZSB0ZXN0IGlzIHJ1bikiKQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1l
bnQoJy0tbm8tcGF1c2UtYWZ0ZXItdGVzdCcsIGRlc3Q9InBhdXNlX2FmdGVyX3Rlc3QiLCBhY3Rp
b249InN0b3JlX2ZhbHNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
IkRvbid0IGhhbHQgdGhlIHRlc3QgcnVubmVyIGlycmVzcGVjdGl2ZSBvZiB0aGUgbnVtYmVyIG9m
IHRlc3RzIHJ1biIpCisgICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1bWVudCgnLS1kZWJ1Zy10
ZXN0JywgZGVzdD0iZGVidWdfdGVzdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gdGVzdHMgd2l0aCBhZGRpdGlvbmFsIGRl
YnVnZ2luZyBmZWF0dXJlcyBlbmFibGVkIikKIAogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJn
dW1lbnQoJy0tcGF1c2Utb24tdW5leHBlY3RlZCcsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJIYWx0IHRoZSB0ZXN0IHJ1bm5lciB3
aGVuIGFuIHVuZXhwZWN0ZWQgcmVzdWx0IGlzIGVuY291bnRlcmVkIikKQEAgLTE4MSw3ICsxODcs
NiBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJQYXRoIG9yIHVybCB0byBzeW1ib2xzIGZpbGUgdXNlZCB0byBhbmFseXNl
IGNyYXNoIG1pbmlkdW1wcy4iKQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoIi0t
c3RhY2t3YWxrLWJpbmFyeSIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBzdGFja3dhbGtlciBwcm9n
cmFtIHVzZWQgdG8gYW5hbHlzZSBtaW5pZHVtcHMuIikKLQogICAgIGRlYnVnZ2luZ19ncm91cC5h
ZGRfYXJndW1lbnQoIi0tcGRiIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkRyb3AgaW50byBwZGIgb24gcHl0aG9uIGV4Y2VwdGlv
biIpCiAKQEAgLTE5Niw2ICsyMDEsOCBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAg
Y29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgnLS13ZWJkcml2ZXItYXJnJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0id2Vi
ZHJpdmVyX2FyZ3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRXh0cmEg
YXJndW1lbnQgZm9yIHRoZSBXZWJEcml2ZXIgYmluYXJ5IikKKyAgICBjb25maWdfZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLWFkYi1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gYWRiIGJpbmFyeSB0byB1c2UiKQogICAgIGNv
bmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tcGFja2FnZS1uYW1lIiwgYWN0aW9uPSJzdG9yZSIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJBbmRyb2lkIHBhY2thZ2UgbmFt
ZSB0byBydW4gdGVzdHMgYWdhaW5zdCIpCiAgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgi
LS1kZXZpY2Utc2VyaWFsIiwgYWN0aW9uPSJzdG9yZSIsCkBAIC0yODQsNiArMjkxLDggQEAgc2No
ZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJEaXNhYmxlIGZpc3Npb24gaW4gR2Vja28uIikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1l
bnQoIi0tc3RhY2tmaXgtZGlyIiwgZGVzdD0ic3RhY2tmaXhfZGlyIiwgYWN0aW9uPSJzdG9yZSIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gZGlyZWN0b3J5IGNv
bnRhaW5pbmcgYXNzZXJ0aW9uIHN0YWNrIGZpeGluZyBzY3JpcHRzIikKKyAgICBnZWNrb19ncm91
cC5hZGRfYXJndW1lbnQoIi0tc3BlY2lhbHBvd2Vycy1wYXRoIiwgYWN0aW9uPSJzdG9yZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc3BlY2lhbFBvd2VycyBl
eHRlbnNpb24geHBpIGZpbGUiKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zZXRw
cmVmIiwgZGVzdD0iZXh0cmFfcHJlZnMiLCBhY3Rpb249J2FwcGVuZCcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9W10sIG1ldGF2YXI9IlBSRUY9VkFMVUUiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEZWZpbmVzIGFuIGV4dHJhIHVzZXIgcHJlZmVy
ZW5jZSAob3ZlcnJpZGVzIHRob3NlIGluIHByZWZzX3Jvb3QpIikKQEAgLTMxMiwxNCArMzIxLDE3
IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1bXSwgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJ1c2VyX3N0eWxlc2hlZXRzIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSW5qZWN0IGEgdXNlciBDU1Mgc3R5
bGVzaGVldCBpbnRvIGV2ZXJ5IHRlc3QuIikKIAotICAgIHNlcnZvX2dyb3VwID0gcGFyc2VyLmFk
ZF9hcmd1bWVudF9ncm91cCgiQ2hyb21lLXNwZWNpZmljIikKLSAgICBzZXJ2b19ncm91cC5hZGRf
YXJndW1lbnQoIi0tZW5hYmxlLW1vam9qcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9
RmFsc2UsCisgICAgY2hyb21lX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiQ2hy
b21lLXNwZWNpZmljIikKKyAgICBjaHJvbWVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWVuYWJsZS1t
b2pvanMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJFbmFibGUgTW9qb0pTIGZvciB0ZXN0aW5nLiBOb3RlIHRo
YXQgdGhpcyBmbGFnIGlzIHVzYWxseSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
bmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgYHdwdCBydW5gLCBpZiBpdCBzdWNjZWVkcyBpbiBkb3du
bG9hZGluZyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgcmlnaHQgdmVyc2lv
biBvZiBtb2pvanMuemlwIG9yIGlmIC0tbW9qb2pzLXBhdGggaXMgc3BlY2lmaWVkLiIpCi0gICAg
c2Vydm9fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLW1vam9qcy1wYXRoIiwKKyAgICBjaHJvbWVfZ3Jv
dXAuYWRkX2FyZ3VtZW50KCItLW1vam9qcy1wYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iUGF0aCB0byBtb2pvanMgZ2VuLyBkaXJlY3RvcnkuIElmIGl0IGlzIG5vdCBz
cGVjaWZpZWQsIGB3cHQgcnVuYCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWxs
IGRvd25sb2FkIGFuZCBleHRyYWN0IG1vam9qcy56aXAgaW50byBfdmVudjIvbW9qb2pzL2dlbi4i
KQorICAgIGNocm9tZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tZW5hYmxlLXN3aWZ0c2hhZGVyIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iRW5hYmxlIFN3aWZ0U2hhZGVyIGZvciBDUFUtYmFzZWQgM0QgZ3JhcGhp
Y3MuIFRoaXMgY2FuIGJlIHVzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4g
ZW52aXJvbm1lbnRzIHdpdGggbm8gaGFyZHdhcmUgR1BVIGF2YWlsYWJsZS4iKQogCiAgICAgc2F1
Y2VfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTYXVjZSBMYWJzLXNwZWNpZmlj
IikKICAgICBzYXVjZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtYnJvd3NlciIsIGRlc3Q9
InNhdWNlX2Jyb3dzZXIiLApAQCAtMzU0LDEzICszNjYsMTcgQEAgc2NoZW1lIGhvc3QgYW5kIHBv
cnQuIiIiKQogCiAgICAgdGFza2NsdXN0ZXJfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dy
b3VwKCJUYXNrY2x1c3Rlci1zcGVjaWZpYyIpCiAgICAgdGFza2NsdXN0ZXJfZ3JvdXAuYWRkX2Fy
Z3VtZW50KCItLWdpdGh1Yi1jaGVja3MtdGV4dC1maWxlIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZT1lbnN1cmVfdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZT1zdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IlBhdGggdG8gR2l0SHViIGNoZWNrcyBvdXRwdXQgZmlsZSIpCiAKICAgICB3ZWJraXRf
Z3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJXZWJLaXQtc3BlY2lmaWMiKQogICAg
IHdlYmtpdF9ncm91cC5hZGRfYXJndW1lbnQoIi0td2Via2l0LXBvcnQiLCBkZXN0PSJ3ZWJraXRf
cG9ydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJXZWJLaXQgcG9ydCIp
CiAKKyAgICBzYWZhcmlfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTYWZhcmkt
c3BlY2lmaWMiKQorICAgIHNhZmFyaV9ncm91cC5hZGRfYXJndW1lbnQoIi0ta2lsbC1zYWZhcmki
LCBkZXN0PSJraWxsX3NhZmFyaSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJLaWxsIFNhZmFyaSB3aGVuIHN0
b3BwaW5nIHRoZSBicm93c2VyIikKKwogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInRlc3RfbGlz
dCIsIG5hcmdzPSIqIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgVVJM
cyBmb3IgdGVzdHMgdG8gcnVuLCBvciBwYXRocyBpbmNsdWRpbmcgdGVzdHMgdG8gcnVuLiAiCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoZXF1aXZhbGVudCB0byAtLWluY2x1ZGUpIikK
QEAgLTQwMiw3ICs0MTgsNyBAQCBkZWYgc2V0X2Zyb21fY29uZmlnKGt3YXJncyk6CiAgICAgICAg
ICAgICAgICAgICAgICgiaG9zdF9jZXJ0X3BhdGgiLCAiaG9zdF9jZXJ0X3BhdGgiLCBUcnVlKSwK
ICAgICAgICAgICAgICAgICAgICAgKCJob3N0X2tleV9wYXRoIiwgImhvc3Rfa2V5X3BhdGgiLCBU
cnVlKV19CiAKLSAgICBmb3Igc2VjdGlvbiwgdmFsdWVzIGluIGl0ZXJpdGVtcyhrZXlzKToKKyAg
ICBmb3Igc2VjdGlvbiwgdmFsdWVzIGluIGtleXMuaXRlbXMoKToKICAgICAgICAgZm9yIGNvbmZp
Z192YWx1ZSwga3dfdmFsdWUsIGlzX3BhdGggaW4gdmFsdWVzOgogICAgICAgICAgICAgaWYga3df
dmFsdWUgaW4ga3dhcmdzIGFuZCBrd2FyZ3Nba3dfdmFsdWVdIGlzIE5vbmU6CiAgICAgICAgICAg
ICAgICAgaWYgbm90IGlzX3BhdGg6CkBAIC00MzgsNyArNDU0LDcgQEAgZGVmIGdldF90ZXN0X3Bh
dGhzKGNvbmZpZyk6CiAgICAgIyBTZXQgdXAgdGVzdF9wYXRocwogICAgIHRlc3RfcGF0aHMgPSBP
cmRlcmVkRGljdCgpCiAKLSAgICBmb3Igc2VjdGlvbiBpbiBpdGVya2V5cyhjb25maWcpOgorICAg
IGZvciBzZWN0aW9uIGluIGNvbmZpZy5rZXlzKCk6CiAgICAgICAgIGlmIHNlY3Rpb24uc3RhcnRz
d2l0aCgibWFuaWZlc3Q6Iik6CiAgICAgICAgICAgICBtYW5pZmVzdF9vcHRzID0gY29uZmlnLmdl
dChzZWN0aW9uKQogICAgICAgICAgICAgdXJsX2Jhc2UgPSBtYW5pZmVzdF9vcHRzLmdldCgidXJs
X2Jhc2UiLCAiLyIpCkBAIC00NjQsNyArNDgwLDcgQEAgZGVmIGV4ZV9wYXRoKG5hbWUpOgogCiAK
IGRlZiBjaGVja19wYXRocyhrd2FyZ3MpOgotICAgIGZvciB0ZXN0X3BhdGhzIGluIGl0ZXJ2YWx1
ZXMoa3dhcmdzWyJ0ZXN0X3BhdGhzIl0pOgorICAgIGZvciB0ZXN0X3BhdGhzIGluIGt3YXJnc1si
dGVzdF9wYXRocyJdLnZhbHVlcygpOgogICAgICAgICBpZiBub3QgKCJ0ZXN0c19wYXRoIiBpbiB0
ZXN0X3BhdGhzIGFuZAogICAgICAgICAgICAgICAgICJtZXRhZGF0YV9wYXRoIiBpbiB0ZXN0X3Bh
dGhzKToKICAgICAgICAgICAgIHByaW50KCJGYXRhbDogbXVzdCBzcGVjaWZ5IGJvdGggYSB0ZXN0
IHBhdGggYW5kIG1ldGFkYXRhIHBhdGgiKQpAQCAtNDcyLDcgKzQ4OCw3IEBAIGRlZiBjaGVja19w
YXRocyhrd2FyZ3MpOgogICAgICAgICBpZiAibWFuaWZlc3RfcGF0aCIgbm90IGluIHRlc3RfcGF0
aHM6CiAgICAgICAgICAgICB0ZXN0X3BhdGhzWyJtYW5pZmVzdF9wYXRoIl0gPSBvcy5wYXRoLmpv
aW4odGVzdF9wYXRoc1sibWV0YWRhdGFfcGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNQU5JRkVTVC5qc29uIikKLSAgICAgICAg
Zm9yIGtleSwgcGF0aCBpbiBpdGVyaXRlbXModGVzdF9wYXRocyk6CisgICAgICAgIGZvciBrZXks
IHBhdGggaW4gdGVzdF9wYXRocy5pdGVtcygpOgogICAgICAgICAgICAgbmFtZSA9IGtleS5zcGxp
dCgiXyIsIDEpWzBdCiAKICAgICAgICAgICAgIGlmIG5hbWUgPT0gIm1hbmlmZXN0IjoKQEAgLTU4
OCw3ICs2MDQsNyBAQCBkZWYgY2hlY2tfYXJncyhrd2FyZ3MpOgogICAgICAgICBrd2FyZ3NbInJl
ZnRlc3RfaW50ZXJuYWwiXSA9IFRydWUKIAogICAgIGlmIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5z
aG90Il0gaXMgTm9uZToKLSAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9ICJ1
bmV4cGVjdGVkIgorICAgICAgICBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdID0gInVuZXhw
ZWN0ZWQiIGlmIG5vdCBrd2FyZ3NbImRlYnVnX3Rlc3QiXSBlbHNlICJhbHdheXMiCiAKICAgICBp
ZiBrd2FyZ3NbImVuYWJsZV93ZWJyZW5kZXIiXSBpcyBOb25lOgogICAgICAgICBrd2FyZ3NbImVu
YWJsZV93ZWJyZW5kZXIiXSA9IEZhbHNlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRsb2dnaW5nLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2lu
Zy5weQppbmRleCA0NDRkMWQ5NjJkMjUuLmI1Y2I1ODg4MWZkMCAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2lu
Zy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRsb2dnaW5nLnB5CkBAIC0xLDQgKzEsNSBAQAogaW1wb3J0IGxvZ2dpbmcKK2Zy
b20gdGhyZWFkaW5nIGltcG9ydCBUaHJlYWQKIAogZnJvbSBtb3psb2cgaW1wb3J0IGNvbW1hbmRs
aW5lLCBzdGRhZGFwdGVyLCBzZXRfZGVmYXVsdF9sb2dnZXIKIGZyb20gbW96bG9nLnN0cnVjdHVy
ZWRsb2cgaW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIsIGxvZ19sZXZlbHMKQEAgLTY1LDMgKzY2LDQy
IEBAIGNsYXNzIExvZ2dlZEFib3ZlTGV2ZWxIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBu
b3Qgc2VsZi5oYXNfbG9nIGFuZAogICAgICAgICAgICAgbG9nX2xldmVsc1tkYXRhWyJsZXZlbCJd
XSA8PSBzZWxmLm1pbl9sZXZlbCk6CiAgICAgICAgICAgICBzZWxmLmhhc19sb2cgPSBUcnVlCisK
KworY2xhc3MgUXVldWVIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHF1ZXVlLCBsZXZlbD1sb2dnaW5nLk5PVFNFVCk6CisgICAgICAgIHNlbGYucXVldWUg
PSBxdWV1ZQorICAgICAgICBsb2dnaW5nLkhhbmRsZXIuX19pbml0X18oc2VsZiwgbGV2ZWw9bGV2
ZWwpCisKKyAgICBkZWYgY3JlYXRlTG9jayhzZWxmKToKKyAgICAgICAgIyBUaGUgcXVldWUgcHJv
dmlkZXMgaXRzIG93biBsb2NraW5nCisgICAgICAgIHNlbGYubG9jayA9IE5vbmUKKworICAgIGRl
ZiBlbWl0KHNlbGYsIHJlY29yZCk6CisgICAgICAgIG1zZyA9IHNlbGYuZm9ybWF0KHJlY29yZCkK
KyAgICAgICAgZGF0YSA9IHsiYWN0aW9uIjogImxvZyIsCisgICAgICAgICAgICAgICAgImxldmVs
IjogcmVjb3JkLmxldmVsbmFtZSwKKyAgICAgICAgICAgICAgICAidGhyZWFkIjogcmVjb3JkLnRo
cmVhZE5hbWUsCisgICAgICAgICAgICAgICAgInBpZCI6IHJlY29yZC5wcm9jZXNzLAorICAgICAg
ICAgICAgICAgICJzb3VyY2UiOiBzZWxmLm5hbWUsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2Ui
OiBtc2d9CisgICAgICAgIHNlbGYucXVldWUucHV0KGRhdGEpCisKKworY2xhc3MgTG9nUXVldWVU
aHJlYWQoVGhyZWFkKToKKyAgICAiIiJUaHJlYWQgZm9yIGhhbmRsaW5nIGxvZyBtZXNzYWdlcyBm
cm9tIGEgcXVldWUiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcXVldWUsIGxvZ2dlcik6Cisg
ICAgICAgIHNlbGYucXVldWUgPSBxdWV1ZQorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgor
ICAgICAgICBzdXBlcigpLl9faW5pdF9fKG5hbWU9IlRocmVhZC1Mb2ciKQorCisgICAgZGVmIHJ1
bihzZWxmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBkYXRhID0gc2VsZi5xdWV1ZS5nZXQoKQorICAgICAgICAgICAgZXhjZXB0IChFT0ZF
cnJvciwgSU9FcnJvcik6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIGRh
dGEgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIEEgTm9uZSBtZXNzYWdlIGlzIHVzZWQgdG8g
c2h1dCBkb3duIHRoZSBsb2dnaW5nIHRocmVhZAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5sb2dfcmF3KGRhdGEpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9i
YWNrZW5kcy9iYXNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvYmFzZS5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjMwNjllNGNmZThkZAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkKQEAgLTAsMCArMSwyMjIgQEAKK2ltcG9ydCBh
YmMKKworZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yCitmcm9tIC4ucGFyc2VyIGltcG9y
dCBwYXJzZQorCisKK2NsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToKKyAgICBfX21ldGFjbGFz
c19fID0gYWJjLkFCQ01ldGEKKworICAgIGRlZiBjb21waWxlKHNlbGYsIHRyZWUsIGRhdGFfY2xz
X2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX2t3YXJncyA9IGt3YXJncwor
ICAgICAgICByZXR1cm4gc2VsZi5fY29tcGlsZSh0cmVlLCBkYXRhX2Nsc19nZXR0ZXIsICoqa3dh
cmdzKQorCisgICAgZGVmIF9jb21waWxlKHNlbGYsIHRyZWUsIGRhdGFfY2xzX2dldHRlcj1Ob25l
LCAqKmt3YXJncyk6CisgICAgICAgICIiIkNvbXBpbGUgYSByYXcgQVNUIGludG8gYSBmb3JtIHdo
ZXJlIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zCisgICAgICAgIGFyZSByZXByZXNlbnRlZCBieSBD
b25kaXRpb25hbFZhbHVlIG9iamVjdHMgdGhhdCBjYW4gYmUgZXZhbHVhdGVkCisgICAgICAgIGF0
IHJ1bnRpbWUuCisKKyAgICAgICAgdHJlZSAtIFRoZSByb290IG5vZGUgb2YgdGhlIHdwdG1hbmlm
ZXN0IEFTVCB0byBjb21waWxlCisKKyAgICAgICAgZGF0YV9jbHNfZ2V0dGVyIC0gQSBmdW5jdGlv
biB0YWtpbmcgdHdvIHBhcmFtZXRlcnM7IHRoZSBwcmV2aW91cworICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgbm9kZSBhbmQgdGhlIGN1cnJlbnQgYXN0IG5vZGUgYW5kIHJldHVybmlu
ZworICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xhc3Mgb2YgdGhlIG91dHB1dCBub2Rl
IHRvIHVzZSBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0IG5v
ZGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGRhdGFfY2xzX2dldHRlciBpcyBOb25lOgorICAg
ICAgICAgICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBsYW1iZGEgeCwgeTogTWFuaWZlc3RJdGVt
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRhdGFfY2xzX2dldHRlciA9IGRhdGFf
Y2xzX2dldHRlcgorCisgICAgICAgIHNlbGYudHJlZSA9IHRyZWUKKyAgICAgICAgc2VsZi5vdXRw
dXRfbm9kZSA9IHNlbGYuX2luaXRpYWxfb3V0cHV0X25vZGUodHJlZSwgKiprd2FyZ3MpCisgICAg
ICAgIHNlbGYudmlzaXQodHJlZSkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLm91dHB1dF9ub2Rl
LCAic2V0X2RlZmF1bHRzIik6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlLnNldF9kZWZh
dWx0cygpCisgICAgICAgIGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBOb25lCisgICAg
ICAgIHJldHVybiBzZWxmLm91dHB1dF9ub2RlCisKKyAgICBkZWYgX2luaXRpYWxfb3V0cHV0X25v
ZGUoc2VsZiwgbm9kZSwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gc2VsZi5kYXRhX2Nsc19n
ZXR0ZXIoTm9uZSwgTm9uZSkobm9kZSwgKiprd2FyZ3MpCisKKyAgICBkZWYgdmlzaXRfRGF0YU5v
ZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGlmIG5vZGUgIT0gc2VsZi50cmVlOgorICAgICAgICAg
ICAgb3V0cHV0X3BhcmVudCA9IHNlbGYub3V0cHV0X25vZGUKKyAgICAgICAgICAgIHNlbGYub3V0
cHV0X25vZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihzZWxmLm91dHB1dF9ub2RlLCBub2RlKShu
b2RlLCAqKnNlbGYuX2t3YXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dHB1dF9w
YXJlbnQgPSBOb25lCisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5v
bmUKKworICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAgIHNl
bGYudmlzaXQoY2hpbGQpCisKKyAgICAgICAgaWYgb3V0cHV0X3BhcmVudCBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICMgQXBwZW5kIHRvIHRoZSBwYXJlbnQgKmFmdGVyKiBwcm9jZXNzaW5nIGFs
bCB0aGUgbm9kZSBkYXRhCisgICAgICAgICAgICBvdXRwdXRfcGFyZW50LmFwcGVuZChzZWxmLm91
dHB1dF9ub2RlKQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYub3V0cHV0X25v
ZGUucGFyZW50CisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5vbmUK
KworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfS2V5VmFsdWVOb2RlKHNl
bGYsIG5vZGUpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdmlzaXRfTGlzdE5vZGUoc2VsZiwg
bm9kZSk6CisgICAgICAgIHJldHVybiBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxkIGluIG5v
ZGUuY2hpbGRyZW5dCisKKyAgICBkZWYgdmlzaXRfVmFsdWVOb2RlKHNlbGYsIG5vZGUpOgorICAg
ICAgICByZXR1cm4gbm9kZS5kYXRhCisKKyAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwgbm9k
ZSk6CisgICAgICAgIHJldHVybiBub2RlLmRhdGEKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QK
KyAgICBkZWYgdmlzaXRfQ29uZGl0aW9uYWxOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNz
CisKKyAgICBkZWYgdmlzaXRfU3RyaW5nTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhl
cyA9IFtzZWxmLnZpc2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAg
ICAgICBkZWYgdmFsdWUoeCk6CisgICAgICAgICAgICBydiA9IG5vZGUuZGF0YQorICAgICAgICAg
ICAgZm9yIGluZGV4IGluIGluZGV4ZXM6CisgICAgICAgICAgICAgICAgcnYgPSBydltpbmRleCh4
KV0KKyAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRl
ZiB2aXNpdF9OdW1iZXJOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpZiAiLiIgaW4gbm9kZS5k
YXRhOgorICAgICAgICAgICAgcmV0dXJuIGZsb2F0KG5vZGUuZGF0YSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHJldHVybiBpbnQobm9kZS5kYXRhKQorCisgICAgZGVmIHZpc2l0X1Zhcmlh
YmxlTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhlcyA9IFtzZWxmLnZpc2l0KGNoaWxk
KSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAgICAgICBkZWYgdmFsdWUoeCk6Cisg
ICAgICAgICAgICBkYXRhID0geFtub2RlLmRhdGFdCisgICAgICAgICAgICBmb3IgaW5kZXggaW4g
aW5kZXhlczoKKyAgICAgICAgICAgICAgICBkYXRhID0gZGF0YVtpbmRleCh4KV0KKyAgICAgICAg
ICAgIHJldHVybiBkYXRhCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIHZpc2l0X0lu
ZGV4Tm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNoaWxkcmVuKSA9
PSAxCisgICAgICAgIHJldHVybiBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pCisKKyAgICBA
YWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIHZpc2l0X1VuYXJ5RXhwcmVzc2lvbk5vZGUoc2Vs
Ziwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgdmlzaXRfQmluYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MK
KworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfVW5hcnlPcGVyYXRvck5v
ZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QK
KyAgICBkZWYgdmlzaXRfQmluYXJ5T3BlcmF0b3JOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBw
YXNzCisKKworY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIG5vZGUsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisgICAgICAg
IHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgc2VsZi5jaGlsZHJlbiA9IFtdCisgICAgICAgIHNl
bGYuX2RhdGEgPSB7fQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4g
IjwlcyAlcz4iICUgKHNlbGYuX19jbGFzc19fLCBzZWxmLm5vZGUuZGF0YSkKKworICAgIGRlZiBf
X3N0cl9fKHNlbGYpOgorICAgICAgICBydiA9IFtyZXByKHNlbGYpXQorICAgICAgICBmb3IgaXRl
bSBpbiBzZWxmLmNoaWxkcmVuOgorICAgICAgICAgICAgcnYuZXh0ZW5kKCIgICVzIiAlIGxpbmUg
Zm9yIGxpbmUgaW4gc3RyKGl0ZW0pLnNwbGl0KCJcbiIpKQorICAgICAgICByZXR1cm4gIlxuIi5q
b2luKHJ2KQorCisgICAgZGVmIHNldF9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgcGFzcworCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9k
YXRhOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBhbGwoY2hpbGQu
aXNfZW1wdHkgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW4pCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgcm9vdChzZWxmKToKKyAgICAgICAgbm9kZSA9IHNlbGYKKyAgICAgICAgd2hpbGUgbm9k
ZS5wYXJlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQKKyAg
ICAgICAgcmV0dXJuIG5vZGUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5ub2RlLmRhdGEKKworICAgIGRlZiBnZXQoc2VsZiwga2V5KToK
KyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBpZiBr
ZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5fZGF0YVtrZXld
CisgICAgICAgIHJhaXNlIEtleUVycm9yCisKKyAgICBkZWYgc2V0KHNlbGYsIG5hbWUsIHZhbHVl
KToKKyAgICAgICAgc2VsZi5fZGF0YVtuYW1lXSA9IHZhbHVlCisKKyAgICBkZWYgcmVtb3ZlKHNl
bGYpOgorICAgICAgICBpZiBzZWxmLnBhcmVudDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50LmNo
aWxkcmVuLnJlbW92ZShzZWxmKQorICAgICAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisKKyAg
ICBkZWYgaXRlcmNoaWxkcmVuKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAgIGZvciBpdGVtIGlu
IHNlbGYuY2hpbGRyZW46CisgICAgICAgICAgICBpZiBpdGVtLm5hbWUgPT0gbmFtZSBvciBuYW1l
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGhhc19rZXko
c2VsZiwga2V5KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAg
ICAgICAgICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfZmxhdHRlbihzZWxmKToKKyAgICAg
ICAgcnYgPSB7fQorICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAg
ICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBub2RlLl9kYXRhLml0ZW1zKCk6CisgICAgICAgICAg
ICAgICAgaWYgbmFtZSBub3QgaW4gcnY6CisgICAgICAgICAgICAgICAgICAgIHJ2W25hbWVdID0g
dmFsdWUKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgorICAg
ICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlbXMoKToKKyAgICAgICAgICAgIHlp
ZWxkIGl0ZW0KKworICAgIGRlZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgZm9yIGl0ZW0gaW4g
c2VsZi5fZmxhdHRlbigpLmtleXMoKToKKyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRl
ZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCku
dmFsdWVzKCk6CisgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBkZWYgYXBwZW5kKHNlbGYs
IGNoaWxkKToKKyAgICAgICAgY2hpbGQucGFyZW50ID0gc2VsZgorICAgICAgICBzZWxmLmNoaWxk
cmVuLmFwcGVuZChjaGlsZCkKKyAgICAgICAgcmV0dXJuIGNoaWxkCisKKworZGVmIGNvbXBpbGVf
YXN0KGNvbXBpbGVyLCBhc3QsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAg
cmV0dXJuIGNvbXBpbGVyKCkuY29tcGlsZShhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9jbHNfZ2V0dGVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKiprd2FyZ3MpCisKKworZGVmIGNvbXBpbGUoY29tcGlsZXIsIHN0cmVhbSwg
ZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKKyAgICByZXR1cm4gY29tcGlsZV9hc3Qo
Y29tcGlsZXIsCisgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlKHN0cmVhbSksCisgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGFfY2xzX2dldHRlcj1kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMv
Y29uZGl0aW9uYWwucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weQppbmRleCAz
YjExZTgzMDEyYWIuLjMwZGQxNDQ5MTU2ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMv
Y29uZGl0aW9uYWwucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkKQEAg
LTEsNSArMSw1IEBACiBpbXBvcnQgb3BlcmF0b3IKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfdGV4
dCwgaXRlcml0ZW1zLCBpdGVya2V5cywgdGV4dF90eXBlCitmcm9tIHNpeCBpbXBvcnQgZW5zdXJl
X3RleHQKIAogZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBEYXRhTm9kZSwgQ29uZGl0
aW9uYWxOb2RlLCBLZXlWYWx1ZU5vZGUsIExpc3ROb2RlLCBWYWx1ZU5vZGUsIEJpbmFyeUV4cHJl
c3Npb25Ob2RlLCBWYXJpYWJsZU5vZGUKIGZyb20gLi5wYXJzZXIgaW1wb3J0IHBhcnNlCkBAIC0z
MDAsOSArMzAwLDkgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CiAgICAgICAgIGlmIGlz
aW5zdGFuY2UodmFsdWUsIGxpc3QpOgogICAgICAgICAgICAgdmFsdWVfbm9kZSA9IExpc3ROb2Rl
KCkKICAgICAgICAgICAgIGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICAgICAgICAgIHZhbHVl
X25vZGUuYXBwZW5kKFZhbHVlTm9kZSh0ZXh0X3R5cGUoaXRlbSkpKQorICAgICAgICAgICAgICAg
IHZhbHVlX25vZGUuYXBwZW5kKFZhbHVlTm9kZShzdHIoaXRlbSkpKQogICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAg
ICAgICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZShzdHIodmFsdWUpKQogICAgICAgICBpZiBj
b25kaXRpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb25k
aXRpb24sIENvbmRpdGlvbmFsTm9kZSk6CiAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfbm9k
ZSA9IENvbmRpdGlvbmFsTm9kZSgpCkBAIC0zNjgsMTcgKzM2OCwxNyBAQCBjbGFzcyBNYW5pZmVz
dEl0ZW0ob2JqZWN0KToKICAgICBkZWYgX2ZsYXR0ZW4oc2VsZik6CiAgICAgICAgIHJ2ID0ge30K
ICAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06Ci0gICAgICAgICAgICBmb3Ig
bmFtZSwgdmFsdWUgaW4gaXRlcml0ZW1zKG5vZGUuX2RhdGEpOgorICAgICAgICAgICAgZm9yIG5h
bWUsIHZhbHVlIGluIG5vZGUuX2RhdGEuaXRlbXMoKToKICAgICAgICAgICAgICAgICBpZiBuYW1l
IG5vdCBpbiBydjoKICAgICAgICAgICAgICAgICAgICAgcnZbbmFtZV0gPSB2YWx1ZQogICAgICAg
ICByZXR1cm4gcnYKIAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0gICAgICAgIGZvciBpdGVt
IGluIGl0ZXJpdGVtcyhzZWxmLl9mbGF0dGVuKCkpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxm
Ll9mbGF0dGVuKCkuaXRlbXMoKToKICAgICAgICAgICAgIHlpZWxkIGl0ZW0KIAogICAgIGRlZiBp
dGVya2V5cyhzZWxmKToKLSAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcmtleXMoc2VsZi5fZmxhdHRl
bigpKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLmtleXMoKToKICAgICAg
ICAgICAgIHlpZWxkIGl0ZW0KIAogICAgIGRlZiBpdGVyX3Byb3BlcnRpZXMoc2VsZik6CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQppbmRleCAwZjgyZDcw
MDZiNjkuLjVlOWQyYjY0Mjc0NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRt
YW5pZmVzdC9ub2RlLnB5CkBAIC0xLDUgKzEsMyBAQAotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJh
bmdlCi0KIGNsYXNzIE5vZGVWaXNpdG9yKG9iamVjdCk6CiAgICAgZGVmIHZpc2l0KHNlbGYsIG5v
ZGUpOgogICAgICAgICAjIFRoaXMgaXMgdWdseSBhcyBoZWxsLCBidXQgd2UgZG9uJ3QgaGF2ZSBt
dWx0aW1ldGhvZHMgYW5kCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC9wYXJzZXIucHkKaW5kZXggOTExZWZhYzgwZjI3Li40Yzk3YzY5MTQxMzkgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3BhcnNlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkKQEAgLTEyLDEwICsx
Miw3IEBACiAKICMgVE9ETzoga2VlcCBjb21tZW50cyBpbiB0aGUgdHJlZQogCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKLQotZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90
eXBlLCB0ZXh0X3R5cGUsIEJ5dGVzSU8sIHVuaWNocgotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJh
bmdlCitmcm9tIGlvIGltcG9ydCBCeXRlc0lPCiAKIGZyb20gLm5vZGUgaW1wb3J0IChOb2RlLCBB
dG9tTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsIEJpbmFyeU9wZXJhdG9yTm9kZSwKICAgICAg
ICAgICAgICAgICAgICBDb25kaXRpb25hbE5vZGUsIERhdGFOb2RlLCBJbmRleE5vZGUsIEtleVZh
bHVlTm9kZSwgTGlzdE5vZGUsCkBAIC01MCw3ICs0Nyw3IEBAIGF0b21zID0geyJUcnVlIjogVHJ1
ZSwKICAgICAgICAgICJSZXNldCI6IG9iamVjdCgpfQogCiBkZWYgZGVjb2RlKHMpOgotICAgIGFz
c2VydCBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCBz
dHIpCiAgICAgcmV0dXJuIHMKIAogCkBAIC01OSw3ICs1Niw3IEBAIGRlZiBwcmVjZWRlbmNlKG9w
ZXJhdG9yX25vZGUpOgogCiAKIGNsYXNzIFRva2VuVHlwZXMob2JqZWN0KToKLSAgICBkZWYgX19p
bml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIGZv
ciB0eXBlIGluIFsiZ3JvdXBfc3RhcnQiLCAiZ3JvdXBfZW5kIiwgInBhcmVuIiwgImxpc3Rfc3Rh
cnQiLCAibGlzdF9lbmQiLCAic2VwYXJhdG9yIiwgImlkZW50IiwgInN0cmluZyIsICJudW1iZXIi
LCAiYXRvbSIsICJlb2YiXToKICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgdHlwZSwgdHlwZSkK
IApAQCAtNzksNyArNzYsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0KToKIAogICAgIGRlZiB0
b2tlbml6ZShzZWxmLCBzdHJlYW0pOgogICAgICAgICBzZWxmLnJlc2V0KCkKLSAgICAgICAgYXNz
ZXJ0IG5vdCBpc2luc3RhbmNlKHN0cmVhbSwgdGV4dF90eXBlKQorICAgICAgICBhc3NlcnQgbm90
IGlzaW5zdGFuY2Uoc3RyZWFtLCBzdHIpCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RyZWFtLCBi
eXRlcyk6CiAgICAgICAgICAgICBzdHJlYW0gPSBCeXRlc0lPKHN0cmVhbSkKICAgICAgICAgaWYg
bm90IGhhc2F0dHIoc3RyZWFtLCAibmFtZSIpOgpAQCAtODksNyArODYsNyBAQCBjbGFzcyBUb2tl
bml6ZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLm5leHRfbGluZV9zdGF0ZSA9IHNlbGYubGlu
ZV9zdGFydF9zdGF0ZQogICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUoc3RyZWFtKToK
LSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmUsIGJpbmFyeV90eXBlKQorICAgICAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGluZSwgYnl0ZXMpCiAgICAgICAgICAgICBzZWxmLnN0
YXRlID0gc2VsZi5uZXh0X2xpbmVfc3RhdGUKICAgICAgICAgICAgIGFzc2VydCBzZWxmLnN0YXRl
IGlzIG5vdCBOb25lCiAgICAgICAgICAgICBzdGF0ZXMgPSBbXQpAQCAtOTcsNyArOTQsNyBAQCBj
bGFzcyBUb2tlbml6ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYubGluZV9udW1iZXIgPSBp
ICsgMQogICAgICAgICAgICAgc2VsZi5pbmRleCA9IDAKICAgICAgICAgICAgIHNlbGYubGluZSA9
IGxpbmUuZGVjb2RlKCd1dGYtOCcpLnJzdHJpcCgpCi0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShzZWxmLmxpbmUsIHRleHRfdHlwZSkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KHNlbGYubGluZSwgc3RyKQogICAgICAgICAgICAgd2hpbGUgc2VsZi5zdGF0ZSAhPSBzZWxmLmVv
bF9zdGF0ZToKICAgICAgICAgICAgICAgICBzdGF0ZXMuYXBwZW5kKHNlbGYuc3RhdGUpCiAgICAg
ICAgICAgICAgICAgdG9rZW5zID0gc2VsZi5zdGF0ZSgpCkBAIC01MDUsNyArNTAyLDcgQEAgY2xh
c3MgVG9rZW5pemVyKG9iamVjdCk6CiAgICAgICAgICAgICB2YWx1ZSArPSBzZWxmLmVzY2FwZV92
YWx1ZShjKQogICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKIAotICAgICAgICByZXR1cm4gdW5p
Y2hyKHZhbHVlKQorICAgICAgICByZXR1cm4gY2hyKHZhbHVlKQogCiAgICAgZGVmIGVzY2FwZV92
YWx1ZShzZWxmLCBjKToKICAgICAgICAgaWYgJzAnIDw9IGMgPD0gJzknOgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3Qvc2VyaWFsaXplci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkKaW5kZXggZWM4
ZDgwZWQ2ZjcxLi5lMzFhNjA3OTFlYTcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19m
dXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogZnJvbSBzaXggaW1wb3J0IGVuc3VyZV90
ZXh0CiAKIGZyb20gLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBWYWx1ZU5vZGUsIExpc3ROb2Rl
LCBCaW5hcnlFeHByZXNzaW9uTm9kZQpAQCAtMzQsNiArMzMsNyBAQCBjbGFzcyBNYW5pZmVzdFNl
cmlhbGl6ZXIoTm9kZVZpc2l0b3IpOgogICAgICAgICBydiA9ICJcbiIuam9pbihzZWxmLnZpc2l0
KHJvb3QpKQogICAgICAgICBpZiBub3QgcnY6CiAgICAgICAgICAgICByZXR1cm4gcnYKKyAgICAg
ICAgcnYgPSBydi5zdHJpcCgpCiAgICAgICAgIGlmIHJ2Wy0xXSAhPSAiXG4iOgogICAgICAgICAg
ICAgcnYgPSBydiArICJcbiIKICAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6
ZXIucHkKaW5kZXggYjI0Nzg1NTgwMWVhLi4wMmU1MjgxNWRiZGMgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Nl
cmlhbGl6ZXIucHkKQEAgLTEsOCArMSw1IEBACi1pbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QK
IAotaW1wb3J0IHB5dGVzdAotCiBmcm9tIC4uIGltcG9ydCBwYXJzZXIsIHNlcmlhbGl6ZXIKIAog
CkBAIC0xOTIsNyArMTg5LDYgQEAgY2xhc3MgVG9rZW5pemVyVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgICAgICAgICAgICAgICByIiIia2V5OiAiIyIKICIiIikKIAotICAgIEBweXRl
c3QubWFyay54ZmFpbChzeXMubWF4dW5pY29kZSA9PSAweEZGRkYsIHJlYXNvbj0ibmFycm93IHVu
aWNvZGUiKQogICAgIGRlZiB0ZXN0X2VzY2FwZV85KHNlbGYpOgogICAgICAgICBzZWxmLmNvbXBh
cmUoYnIiIiJrZXk6IFxVMTBGRkZGYWJjIiIiLAogICAgICAgICAgICAgICAgICAgICAgdSIiImtl
eTogXFUwMDEwRkZGRmFiYwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5CmluZGV4
IGUxZDllZjhiMWE5MS4uMjVhMjUxNWVmNmY4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
cnVubmVyLnB5CkBAIC0xLDE1ICsxLDEzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50
X2Z1bmN0aW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGlt
cG9ydCBzeXMKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMKIAogaW1wb3J0
IHdwdHNlcnZlCiBmcm9tIHdwdHNlcnZlIGltcG9ydCBzc2x1dGlscwogCiBmcm9tIC4gaW1wb3J0
IGVudmlyb25tZW50IGFzIGVudgogZnJvbSAuIGltcG9ydCBpbnN0cnVtZW50cworZnJvbSAuIGlt
cG9ydCBtcGNvbnRleHQKIGZyb20gLiBpbXBvcnQgcHJvZHVjdHMKIGZyb20gLiBpbXBvcnQgdGVz
dGxvYWRlcgogZnJvbSAuIGltcG9ydCB3cHRjb21tYW5kbGluZQpAQCAtMTgsNyArMTYsNiBAQCBm
cm9tIC4gaW1wb3J0IHdwdHRlc3QKIGZyb20gbW96bG9nIGltcG9ydCBjYXB0dXJlLCBoYW5kbGVy
cwogZnJvbSAuZm9udCBpbXBvcnQgRm9udEluc3RhbGxlcgogZnJvbSAudGVzdHJ1bm5lciBpbXBv
cnQgTWFuYWdlckdyb3VwCi1mcm9tIC5icm93c2Vycy5iYXNlIGltcG9ydCBOdWxsQnJvd3Nlcgog
CiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCkBAIC02NSw2ICs2Miw5IEBAIGRl
ZiBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIGRlYnVnPU5vbmUsIHJ1bl9pbmZvX2V4
dHJhcz1Ob25lLCBjaHVua2VyX2t3CiAgICAgbWFuaWZlc3RfZmlsdGVycyA9IFtdCiAKICAgICBp
bmNsdWRlID0ga3dhcmdzWyJpbmNsdWRlIl0KKyAgICBpZiBrd2FyZ3NbImluY2x1ZGVfZmlsZSJd
OgorICAgICAgICBpbmNsdWRlID0gaW5jbHVkZSBvciBbXQorICAgICAgICBpbmNsdWRlLmV4dGVu
ZCh0ZXN0bG9hZGVyLnJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUoa3dhcmdzWyJpbmNsdWRlX2ZpbGUi
XSkpCiAgICAgaWYgdGVzdF9ncm91cHM6CiAgICAgICAgIGluY2x1ZGUgPSB0ZXN0bG9hZGVyLnVw
ZGF0ZV9pbmNsdWRlX2Zvcl9ncm91cHModGVzdF9ncm91cHMsIGluY2x1ZGUpCiAKQEAgLTk2LDcg
Kzk2LDcgQEAgZGVmIGdldF9sb2FkZXIodGVzdF9wYXRocywgcHJvZHVjdCwgZGVidWc9Tm9uZSwg
cnVuX2luZm9fZXh0cmFzPU5vbmUsIGNodW5rZXJfa3cKIGRlZiBsaXN0X3Rlc3RfZ3JvdXBzKHRl
c3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRz
KGxvZ2dlciwgdGVzdF9wYXRocykKIAotICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxv
YWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAg
cnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9k
dWN0KS5ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5faW5mbywgdGVzdF9sb2Fk
ZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3
YXJncykKQEAgLTExMCwxMiArMTEwLDEyIEBAIGRlZiBsaXN0X2Rpc2FibGVkKHRlc3RfcGF0aHMs
IHByb2R1Y3QsICoqa3dhcmdzKToKIAogICAgIHJ2ID0gW10KIAotICAgIHJ1bl9pbmZvX2V4dHJh
cyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0o
Kiprd2FyZ3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3Nb
ImNvbmZpZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5f
aW5mbywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2lu
Zm9fZXh0cmFzLCAqKmt3YXJncykKIAotICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RzIGluIGl0ZXJp
dGVtcyh0ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0cyk6CisgICAgZm9yIHRlc3RfdHlwZSwgdGVz
dHMgaW4gdGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHMuaXRlbXMoKToKICAgICAgICAgZm9yIHRl
c3QgaW4gdGVzdHM6CiAgICAgICAgICAgICBydi5hcHBlbmQoeyJ0ZXN0IjogdGVzdC5pZCwgInJl
YXNvbiI6IHRlc3QuZGlzYWJsZWQoKX0pCiAgICAgcHJpbnQoanNvbi5kdW1wcyhydiwgaW5kZW50
PTIpKQpAQCAtMTI0LDcgKzEyNCw3IEBAIGRlZiBsaXN0X2Rpc2FibGVkKHRlc3RfcGF0aHMsIHBy
b2R1Y3QsICoqa3dhcmdzKToKIGRlZiBsaXN0X3Rlc3RzKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoq
a3dhcmdzKToKICAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykK
IAotICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNv
bmZpZyJdLCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJv
ZHVjdHMuUHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMo
Kiprd2FyZ3MpCiAKICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3Rf
cGF0aHMsIHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykKQEAgLTEzOSw4ICsxMzks
MTAgQEAgZGVmIGdldF9wYXVzZV9hZnRlcl90ZXN0KHRlc3RfbG9hZGVyLCAqKmt3YXJncyk6CiAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOgog
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIGt3YXJnc1siZGVidWdfdGVzdCJd
OgorICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgdGVzdHMgPSB0ZXN0X2xvYWRlci50
ZXN0cwotICAgICAgICBpc19zaW5nbGVfdGVzdGhhcm5lc3MgPSAoc3VtKGxlbihpdGVtKSBmb3Ig
aXRlbSBpbiBpdGVydmFsdWVzKHRlc3RzKSkgPT0gMSBhbmQKKyAgICAgICAgaXNfc2luZ2xlX3Rl
c3RoYXJuZXNzID0gKHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gdGVzdHMudmFsdWVzKCkpID09
IDEgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4odGVzdHMuZ2V0KCJ0
ZXN0aGFybmVzcyIsIFtdKSkgPT0gMSkKICAgICAgICAgaWYga3dhcmdzWyJyZXBlYXQiXSA9PSAx
IGFuZCBrd2FyZ3NbInJlcnVuIl0gPT0gMSBhbmQgaXNfc2luZ2xlX3Rlc3RoYXJuZXNzOgogICAg
ICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTE1MSwxNSArMTUzLDE4IEBAIGRlZiBnZXRfcGF1c2Vf
YWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgogZGVmIHJ1bl90ZXN0cyhjb25maWcs
IHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAiIiJTZXQgdXAgdGhlIHRlc3Qg
ZW52aXJvbm1lbnQsIGxvYWQgdGhlIGxpc3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQsIGFuZAog
ICAgIGludm9rZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBjb2RlIHRvIGV4ZWN1dGUgdGVzdHMiIiIK
KyAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAgICAgaWYga3dhcmdzWyJpbnN0cnVt
ZW50X3RvX2ZpbGUiXSBpcyBOb25lOgogICAgICAgICByZWNvcmRlciA9IGluc3RydW1lbnRzLk51
bGxJbnN0cnVtZW50KCkKICAgICBlbHNlOgogICAgICAgICByZWNvcmRlciA9IGluc3RydW1lbnRz
Lkluc3RydW1lbnQoa3dhcmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSkKLSAgICB3aXRoIHJlY29y
ZGVyIGFzIHJlY29yZGluZywgY2FwdHVyZS5DYXB0dXJlSU8obG9nZ2VyLCBub3Qga3dhcmdzWyJu
b19jYXB0dXJlX3N0ZGlvIl0pOgorICAgIHdpdGggcmVjb3JkZXIgYXMgcmVjb3JkaW5nLCBjYXB0
dXJlLkNhcHR1cmVJTyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8iXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBfY29udGV4dD1tcCk6
CiAgICAgICAgIHJlY29yZGluZy5zZXQoWyJzdGFydHVwIl0pCiAgICAgICAgIGVudi5kb19kZWxh
eWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQogCi0gICAgICAgIHByb2R1Y3QgPSBwcm9k
dWN0cy5sb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Nscz1UcnVlKQorICAgICAg
ICBwcm9kdWN0ID0gcHJvZHVjdHMuUHJvZHVjdChjb25maWcsIHByb2R1Y3QpCiAKICAgICAgICAg
ZW52X2V4dHJhcyA9IHByb2R1Y3QuZ2V0X2Vudl9leHRyYXMoKiprd2FyZ3MpCiAKQEAgLTE5NCw2
ICsxOTksNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKipr
d2FyZ3MpOgogICAgICAgICBza2lwcGVkX3Rlc3RzID0gMAogICAgICAgICB0ZXN0X3RvdGFsID0g
MAogICAgICAgICB1bmV4cGVjdGVkX3RvdGFsID0gMAorICAgICAgICB1bmV4cGVjdGVkX3Bhc3Nf
dG90YWwgPSAwCiAKICAgICAgICAgaWYgbGVuKHRlc3RfbG9hZGVyLnRlc3RfaWRzKSA9PSAwIGFu
ZCBrd2FyZ3NbInRlc3RfbGlzdCJdOgogICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJVbmFi
bGUgdG8gZmluZCBhbnkgdGVzdHMgYXQgdGhlIHBhdGgocyk6IikKQEAgLTIxOSw2ICsyMjUsNyBA
QCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgog
ICAgICAgICB3aXRoIGVudi5UZXN0RW52aXJvbm1lbnQodGVzdF9wYXRocywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX3Rlc3QiXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5lbnZfb3B0aW9ucywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcsCkBAIC0yMjksNyArMjM2
LDcgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdz
KToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmVu
c3VyZV9zdGFydGVkKCkKICAgICAgICAgICAgIGV4Y2VwdCBlbnYuVGVzdEVudmlyb25tZW50RXJy
b3IgYXMgZToKLSAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkVycm9yIHN0YXJ0aW5n
IHRlc3QgZW52aXJvbm1lbnQ6ICVzIiAlIGUubWVzc2FnZSkKKyAgICAgICAgICAgICAgICBsb2dn
ZXIuY3JpdGljYWwoIkVycm9yIHN0YXJ0aW5nIHRlc3QgZW52aXJvbm1lbnQ6ICVzIiAlIGUpCiAg
ICAgICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICAgICAgcmVjb3JkaW5nLnNldChbInN0YXJ0
dXAiXSkKQEAgLTI0Nyw2ICsyNTQsNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRo
cywgcHJvZHVjdCwgKiprd2FyZ3MpOgogCiAgICAgICAgICAgICAgICAgdGVzdF9jb3VudCA9IDAK
ICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50ID0gMAorICAgICAgICAgICAgICAgIHVu
ZXhwZWN0ZWRfcGFzc19jb3VudCA9IDAKIAogICAgICAgICAgICAgICAgIHRlc3RzID0gW10KICAg
ICAgICAgICAgICAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfbG9hZGVyLnRlc3RfdHlwZXM6CkBA
IC0yNjUsMjUgKzI3MywxOSBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJv
ZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgIGZvciB0ZXN0X3R5cGUgaW4ga3dhcmdz
WyJ0ZXN0X3R5cGVzIl06CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJSdW5uaW5n
ICVzIHRlc3RzIiAlIHRlc3RfdHlwZSkKIAotICAgICAgICAgICAgICAgICAgICAjIFdlYkRyaXZl
ciB0ZXN0cyBtYXkgY3JlYXRlIGFuZCBkZXN0cm95IG11bHRpcGxlIGJyb3dzZXIKLSAgICAgICAg
ICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXMgcGFydCBvZiB0aGVpciBleHBlY3RlZCBiZWhhdmlv
ci4gVGhlc2UKLSAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXJlIG1hbmFnZWQgYnkg
YSBXZWJEcml2ZXIgc2VydmVyIGJpbmFyeS4gVGhpcwotICAgICAgICAgICAgICAgICAgICAjIG9i
dmlhdGVzIHRoZSBuZWVkIGZvciB3cHRydW5uZXIgdG8gcHJvdmlkZSBhIGJyb3dzZXIsIHNvCi0g
ICAgICAgICAgICAgICAgICAgICMgdGhlIE51bGxCcm93c2VyIGlzIHVzZWQgaW4gcGxhY2Ugb2Yg
dGhlICJ0YXJnZXQiIGJyb3dzZXIKLSAgICAgICAgICAgICAgICAgICAgaWYgdGVzdF90eXBlID09
ICJ3ZHNwZWMiOgotICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jbHMgPSBOdWxsQnJv
d3NlcgotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAg
YnJvd3Nlcl9jbHMgPSBwcm9kdWN0LmJyb3dzZXJfY2xzCisgICAgICAgICAgICAgICAgICAgIGJy
b3dzZXJfY2xzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9jbHModGVzdF90eXBlKQogCi0gICAgICAg
ICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9rd2FyZ3Mo
dGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3YXJncyA9IHByb2R1Y3Qu
Z2V0X2Jyb3dzZXJfa3dhcmdzKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51
bV90ZXN0X2dyb3Vwcz1sZW4odGVzdF9ncm91cHMpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAg
ICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhlY3V0b3JfY2xhc3Nlcy5n
ZXQodGVzdF90eXBlKQotICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBwcm9k
dWN0LmdldF9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9u
bWVudC5jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIsCisg
ICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncyA9IHByb2R1Y3QuZ2V0X2V4ZWN1dG9y
X2t3YXJncyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmly
b25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKIApAQCAtMzM0
LDEwICszMzYsMTMgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3Qs
ICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9jb3VudCArPSBtYW5hZ2VyX2dyb3VwLnRlc3RfY291bnQoKQog
ICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9jb3VudCArPSBtYW5hZ2VyX2dyb3Vw
LnVuZXhwZWN0ZWRfY291bnQoKQorICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9w
YXNzX2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudW5leHBlY3RlZF9wYXNzX2NvdW50KCkKICAgICAg
ICAgICAgICAgICByZWNvcmRpbmcuc2V0KFsiYWZ0ZXItZW5kIl0pCiAgICAgICAgICAgICAgICAg
dGVzdF90b3RhbCArPSB0ZXN0X2NvdW50CiAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF90b3Rh
bCArPSB1bmV4cGVjdGVkX2NvdW50Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkdvdCAl
aSB1bmV4cGVjdGVkIHJlc3VsdHMiICUgdW5leHBlY3RlZF9jb3VudCkKKyAgICAgICAgICAgICAg
ICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwgKz0gdW5leHBlY3RlZF9wYXNzX2NvdW50CisgICAgICAg
ICAgICAgICAgbG9nZ2VyLmluZm8oIkdvdCAlaSB1bmV4cGVjdGVkIHJlc3VsdHMsIHdpdGggJWkg
dW5leHBlY3RlZCBwYXNzZXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5leHBl
Y3RlZF9jb3VudCwgdW5leHBlY3RlZF9wYXNzX2NvdW50KSkKICAgICAgICAgICAgICAgICBsb2dn
ZXIuc3VpdGVfZW5kKCkKICAgICAgICAgICAgICAgICBpZiByZXBlYXRfdW50aWxfdW5leHBlY3Rl
ZCBhbmQgdW5leHBlY3RlZF90b3RhbCA+IDA6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCkBA
IC0zNTksNiArMzY0LDEzIEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9k
dWN0LCAqKmt3YXJncyk6CiAgICAgICAgIGxvZ2dlci5pbmZvKCJUb2xlcmF0aW5nICVzIHVuZXhw
ZWN0ZWQgcmVzdWx0cyIgJSB1bmV4cGVjdGVkX3RvdGFsKQogICAgICAgICByZXR1cm4gVHJ1ZQog
CisgICAgYWxsX3VuZXhwZWN0ZWRfcGFzc2VkID0gKHVuZXhwZWN0ZWRfdG90YWwgYW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPT0gdW5leHBlY3RlZF9w
YXNzX3RvdGFsKQorICAgIGlmIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCBhbmQgbm90IGt3YXJnc1si
ZmFpbF9vbl91bmV4cGVjdGVkX3Bhc3MiXToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlRvbGVyYXRp
bmcgJWkgdW5leHBlY3RlZCByZXN1bHRzIGJlY2F1c2UgdGhleSBhbGwgUEFTUyIgJQorICAgICAg
ICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwpCisgICAgICAgIHJldHVybiBUcnVl
CisKICAgICByZXR1cm4gdW5leHBlY3RlZF90b3RhbCA9PSAwCiAKIApkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVz
dC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdHRlc3QucHkKaW5kZXggMzFiMjQ1NjEyYmUwLi4wY2Q3MmUyODViMDAgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3dwdHRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQpAQCAtMSw5ICsxLDkgQEAKIGltcG9ydCBvcwogaW1w
b3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBp
bXBvcnQgdXJsam9pbgogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKLWZyb20g
c2l4IGltcG9ydCBpdGVyaXRlbXMsIHN0cmluZ190eXBlcworZnJvbSB0eXBpbmcgaW1wb3J0IEFu
eSwgQ2xhc3NWYXIsIERpY3QsIFR5cGUKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2lu
CiAKIGZyb20gLndwdG1hbmlmZXN0LnBhcnNlciBpbXBvcnQgYXRvbXMKIApAQCAtODMsNyArODMs
NyBAQCBkZWYgZ2V0X3J1bl9pbmZvKG1ldGFkYXRhX3Jvb3QsIHByb2R1Y3QsICoqa3dhcmdzKToK
ICAgICByZXR1cm4gUnVuSW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0LCAqKmt3YXJncykKIAog
Ci1jbGFzcyBSdW5JbmZvKGRpY3QpOgorY2xhc3MgUnVuSW5mbyhEaWN0W3N0ciwgQW55XSk6CiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGFkYXRhX3Jvb3QsIHByb2R1Y3QsIGRlYnVnLAogICAg
ICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb249Tm9uZSwKICAgICAgICAgICAgICAgICAgYnJv
d3Nlcl9jaGFubmVsPU5vbmUsCkBAIC0xNTAsMjIgKzE1MCwyOCBAQCBkZWYgc2VydmVyX3Byb3Rv
Y29sKG1hbmlmZXN0X2l0ZW0pOgogCiBjbGFzcyBUZXN0KG9iamVjdCk6CiAKLSAgICByZXN1bHRf
Y2xzID0gTm9uZQotICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUKLSAgICB0ZXN0X3R5cGUg
PSBOb25lCisgICAgcmVzdWx0X2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbVHlwZVtSZXN1
bHRdXQorICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbVHlw
ZVtTdWJ0ZXN0UmVzdWx0XV0KKyAgICB0ZXN0X3R5cGUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFy
W3N0cl0KIAogICAgIGRlZmF1bHRfdGltZW91dCA9IDEwICAjIHNlY29uZHMKICAgICBsb25nX3Rp
bWVvdXQgPSA2MCAgIyBzZWNvbmRzCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9v
dCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLAotICAgICAgICAgICAgICAg
ICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLCBxdWljPUZhbHNlKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJp
dF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgdGltZW91dD1Ob25l
LCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgc3ViZG9tYWluPUZhbHNlLAorICAgICAgICAg
ICAgICAgICBxdWljPUZhbHNlKToKKyAgICAgICAgc2VsZi51cmxfYmFzZSA9IHVybF9iYXNlCiAg
ICAgICAgIHNlbGYudGVzdHNfcm9vdCA9IHRlc3RzX3Jvb3QKICAgICAgICAgc2VsZi51cmwgPSB1
cmwKICAgICAgICAgc2VsZi5faW5oZXJpdF9tZXRhZGF0YSA9IGluaGVyaXRfbWV0YWRhdGEKICAg
ICAgICAgc2VsZi5fdGVzdF9tZXRhZGF0YSA9IHRlc3RfbWV0YWRhdGEKICAgICAgICAgc2VsZi50
aW1lb3V0ID0gdGltZW91dCBpZiB0aW1lb3V0IGlzIG5vdCBOb25lIGVsc2Ugc2VsZi5kZWZhdWx0
X3RpbWVvdXQKICAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotICAgICAgICBzZWxmLmVudmlyb25t
ZW50ID0geyJwcm90b2NvbCI6IHByb3RvY29sLCAicHJlZnMiOiBzZWxmLnByZWZzLCAicXVpYyI6
IHF1aWN9CisgICAgICAgIHNlbGYuc3ViZG9tYWluID0gc3ViZG9tYWluCisgICAgICAgIHNlbGYu
ZW52aXJvbm1lbnQgPSB7InVybF9iYXNlIjogdXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInByb3RvY29sIjogcHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInByZWZzIjogc2VsZi5wcmVmcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicXVp
YyI6IHF1aWN9CiAKICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKICAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2Uob3RoZXIsIFRlc3QpOgpAQCAtMTg0LDEzICsxOTAsMTUgQEAgY2xhc3MgVGVz
dChvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmcm9tX21hbmlmZXN0KGNscywg
bWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRh
ZGF0YSk6CiAgICAgICAgIHRpbWVvdXQgPSBjbHMubG9uZ190aW1lb3V0IGlmIG1hbmlmZXN0X2l0
ZW0udGltZW91dCA9PSAibG9uZyIgZWxzZSBjbHMuZGVmYXVsdF90aW1lb3V0Ci0gICAgICAgIHJl
dHVybiBjbHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAorICAgICAgICByZXR1cm4gY2xzKG1h
bmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZS50
ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0udXJsLAogICAgICAg
ICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGVzdF9t
ZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCiAgICAgICAgICAg
ICAgICAgICAgcGF0aD1vcy5wYXRoLmpvaW4obWFuaWZlc3RfZmlsZS50ZXN0c19yb290LCBtYW5p
ZmVzdF9pdGVtLnBhdGgpLAotICAgICAgICAgICAgICAgICAgIHByb3RvY29sPXNlcnZlcl9wcm90
b2NvbChtYW5pZmVzdF9pdGVtKSkKKyAgICAgICAgICAgICAgICAgICBwcm90b2NvbD1zZXJ2ZXJf
cHJvdG9jb2wobWFuaWZlc3RfaXRlbSksCisgICAgICAgICAgICAgICAgICAgc3ViZG9tYWluPW1h
bmlmZXN0X2l0ZW0uc3ViZG9tYWluKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlkKHNlbGYp
OgpAQCAtMjk5LDcgKzMwNyw3IEBAIGNsYXNzIFRlc3Qob2JqZWN0KToKICAgICAgICAgcnYgPSB7
fQogICAgICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKE5vbmUpOgogICAgICAgICAgICAg
dGhyZXNob2xkID0gbWV0YS5sZWFrX3RocmVzaG9sZAotICAgICAgICAgICAgZm9yIGtleSwgdmFs
dWUgaW4gaXRlcml0ZW1zKHRocmVzaG9sZCk6CisgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBp
biB0aHJlc2hvbGQuaXRlbXMoKToKICAgICAgICAgICAgICAgICBpZiBrZXkgbm90IGluIHJ2Ogog
ICAgICAgICAgICAgICAgICAgICBydltrZXldID0gdmFsdWUKICAgICAgICAgcmV0dXJuIHJ2CkBA
IC0zNDEsNyArMzQ5LDcgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogCiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgIGV4cGVjdGVkID0gbWV0YWRhdGEuZ2V0KCJleHBlY3RlZCIpCi0gICAgICAgICAg
ICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBzdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgaWYg
aXNpbnN0YW5jZShleHBlY3RlZCwgc3RyKToKICAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0
ZWQKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgbGlzdCk6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCkBAIC0zOTMsMTEgKzQwMSwxMSBAQCBjbGFzcyBU
ZXN0aGFybmVzc1Rlc3QoVGVzdCk6CiAgICAgc3VidGVzdF9yZXN1bHRfY2xzID0gVGVzdGhhcm5l
c3NTdWJ0ZXN0UmVzdWx0CiAgICAgdGVzdF90eXBlID0gInRlc3RoYXJuZXNzIgogCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9t
ZXRhZGF0YSwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVy
bCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgdGlt
ZW91dD1Ob25lLCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgdGVzdGRyaXZlcj1GYWxzZSwK
LSAgICAgICAgICAgICAgICAganNzaGVsbD1GYWxzZSwgc2NyaXB0cz1Ob25lLCBxdWljPUZhbHNl
KToKLSAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRf
bWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAg
cGF0aCwgcHJvdG9jb2wsIHF1aWMpCisgICAgICAgICAgICAgICAgIGpzc2hlbGw9RmFsc2UsIHNj
cmlwdHM9Tm9uZSwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAgICAgICAgVGVzdC5f
X2luaXRfXyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRh
LCB0ZXN0X21ldGFkYXRhLCB0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIHBy
b3RvY29sLCBzdWJkb21haW4sIHF1aWMpCiAKICAgICAgICAgc2VsZi50ZXN0ZHJpdmVyID0gdGVz
dGRyaXZlcgogICAgICAgICBzZWxmLmpzc2hlbGwgPSBqc3NoZWxsCkBAIC00MTIsNyArNDIwLDgg
QEAgY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICBzY3JpcHRfbWV0YWRhdGEg
PSBtYW5pZmVzdF9pdGVtLnNjcmlwdF9tZXRhZGF0YSBvciBbXQogICAgICAgICBzY3JpcHRzID0g
W3YgZm9yIChrLCB2KSBpbiBzY3JpcHRfbWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICBpZiBr
ID09ICJzY3JpcHQiXQotICAgICAgICByZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9v
dCwKKyAgICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9maWxlLnVybF9iYXNlLAorICAgICAgICAg
ICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAgICBt
YW5pZmVzdF9pdGVtLnVybCwKICAgICAgICAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLAog
ICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCkBAIC00MjIsNiArNDMxLDcgQEAgY2xh
c3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICAgICAgICAgICAgIHRlc3Rkcml2ZXI9
dGVzdGRyaXZlciwKICAgICAgICAgICAgICAgICAgICBqc3NoZWxsPWpzc2hlbGwsCiAgICAgICAg
ICAgICAgICAgICAgc2NyaXB0cz1zY3JpcHRzLAorICAgICAgICAgICAgICAgICAgIHN1YmRvbWFp
bj1tYW5pZmVzdF9pdGVtLnN1YmRvbWFpbiwKICAgICAgICAgICAgICAgICAgICBxdWljPXF1aWMp
CiAKICAgICBAcHJvcGVydHkKQEAgLTQ1MiwxMSArNDYyLDExIEBAIGNsYXNzIFJlZnRlc3RUZXN0
KFRlc3QpOgogICAgIHJlc3VsdF9jbHMgPSBSZWZ0ZXN0UmVzdWx0CiAgICAgdGVzdF90eXBlID0g
InJlZnRlc3QiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhl
cml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2VzLAotICAgICAgICAgICAgICAg
ICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwg
ZnV6enk9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLAotICAgICAgICAgICAgICAgICBxdWljPUZhbHNl
KToKLSAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRf
bWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAg
cGF0aCwgcHJvdG9jb2wsIHF1aWMpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0
ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5j
ZXMsCisgICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCB2aWV3cG9ydF9z
aXplPU5vbmUsIGRwaT1Ob25lLCBmdXp6eT1Ob25lLAorICAgICAgICAgICAgICAgICBwcm90b2Nv
bD0iaHR0cCIsIHN1YmRvbWFpbj1GYWxzZSwgcXVpYz1GYWxzZSk6CisgICAgICAgIFRlc3QuX19p
bml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwg
dGVzdF9tZXRhZGF0YSwgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBwcm90
b2NvbCwgc3ViZG9tYWluLCBxdWljKQogCiAgICAgICAgIGZvciBfLCByZWZfdHlwZSBpbiByZWZl
cmVuY2VzOgogICAgICAgICAgICAgaWYgcmVmX3R5cGUgbm90IGluICgiPT0iLCAiIT0iKToKQEAg
LTQ4NiwxMyArNDk2LDE1IEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogCiAgICAgICAgIHVy
bCA9IG1hbmlmZXN0X3Rlc3QudXJsCiAKLSAgICAgICAgbm9kZSA9IGNscyhtYW5pZmVzdF9maWxl
LnRlc3RzX3Jvb3QsCisgICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3RfZmlsZS51cmxfYmFzZSwK
KyAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAg
ICAgICAgICAgbWFuaWZlc3RfdGVzdC51cmwsCiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9t
ZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0ZXN0X21ldGFkYXRhLAogICAgICAgICAgICAg
ICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9dGltZW91dCwKICAgICAgICAg
ICAgICAgICAgICBwYXRoPW1hbmlmZXN0X3Rlc3QucGF0aCwKKyAgICAgICAgICAgICAgICAgICBz
dWJkb21haW49bWFuaWZlc3RfdGVzdC5zdWJkb21haW4sCiAgICAgICAgICAgICAgICAgICAgcXVp
Yz1xdWljLAogICAgICAgICAgICAgICAgICAgICoqY2xzLmNsc19rd2FyZ3MobWFuaWZlc3RfdGVz
dCkpCiAKQEAgLTUwNywyMCArNTE5LDIzIEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogICAg
ICAgICAjIFBlciB0aGUgbG9naWMgZG9jdW1lbnRlZCBhYm92ZSwgdGhpcyBtZWFucyB0aGF0IG5v
bmUgb2YgdGhlIG1pc21hdGNoZXMgcHJvdmlkZWQgbWF0Y2gsCiAgICAgICAgIG1pc21hdGNoX3dh
bGsgPSBOb25lCiAgICAgICAgIGlmIHJlZnNfYnlfdHlwZVsiIT0iXToKLSAgICAgICAgICAgIG1p
c21hdGNoX3dhbGsgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCisgICAg
ICAgICAgICBtaXNtYXRjaF93YWxrID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS51cmxfYmFz
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxl
LnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVm
c19ieV90eXBlWyIhPSJdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10pCiAgICAgICAgICAgICBj
bXBfcmVmID0gbWlzbWF0Y2hfd2FsawogICAgICAgICAgICAgZm9yIHJlZl91cmwgaW4gcmVmc19i
eV90eXBlWyIhPSJdWzE6XToKLSAgICAgICAgICAgICAgICBjbXBfc2VsZiA9IFJlZnRlc3RUZXN0
KG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICBjbXBfc2VsZiA9IFJl
ZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSkKICAgICAg
ICAgICAgICAgICBjbXBfcmVmLnJlZmVyZW5jZXMuYXBwZW5kKChjbXBfc2VsZiwgIiE9IikpCi0g
ICAgICAgICAgICAgICAgY21wX3JlZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudGVzdHNf
cm9vdCwKKyAgICAgICAgICAgICAgICBjbXBfcmVmID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmls
ZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZl
c3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWZfdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKQEAgLTUzNiw3ICs1NTEs
OCBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKICAgICAgICAgICAgICMgRm9yIGVhY2ggPT0g
cmVmLCBhZGQgYSByZWZlcmVuY2UgdG8gdGhpcyBub2RlIHdob3NlIHRhaWwgaXMgdGhlIG1pc21h
dGNoIGxpc3QuCiAgICAgICAgICAgICAjIFBlciB0aGUgbG9naWMgZG9jdW1lbnRlZCBhYm92ZSwg
dGhpcyBtZWFucyBhbnkgb25lIG9mIHRoZSBtYXRjaGVzIG11c3QgcGFzcyBwbHVzIGFsbCB0aGUg
bWlzbWF0Y2hlcy4KICAgICAgICAgICAgIGZvciByZWZfdXJsIGluIHJlZnNfYnlfdHlwZVsiPT0i
XToKLSAgICAgICAgICAgICAgICByZWYgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnRlc3Rz
X3Jvb3QsCisgICAgICAgICAgICAgICAgcmVmID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS51
cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxl
LnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX3VybCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOb25lLApAQCAtNjA1LDEyICs2MjEsMTIgQEAgY2xhc3MgUmVmdGVz
dFRlc3QoVGVzdCk6CiBjbGFzcyBQcmludFJlZnRlc3RUZXN0KFJlZnRlc3RUZXN0KToKICAgICB0
ZXN0X3R5cGUgPSAicHJpbnQtcmVmdGVzdCIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0
c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMs
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVy
aXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMsCiAgICAgICAgICAgICAgICAg
IHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCB2aWV3cG9ydF9zaXplPU5vbmUsIGRwaT1Ob25lLCBm
dXp6eT1Ob25lLAotICAgICAgICAgICAgICAgICBwYWdlX3Jhbmdlcz1Ob25lLCBwcm90b2NvbD0i
aHR0cCIsIHF1aWM9RmFsc2UpOgotICAgICAgICBzdXBlcihQcmludFJlZnRlc3RUZXN0LCBzZWxm
KS5fX2luaXRfXyh0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRh
dGEsCisgICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2VzPU5vbmUsIHByb3RvY29sPSJodHRwIiwg
c3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAgICAgICAgc3VwZXIoUHJpbnRSZWZ0ZXN0
VGVzdCwgc2VsZikuX19pbml0X18odXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9t
ZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVmZXJlbmNlcywgdGltZW91dCwgcGF0aCwgdmlld3BvcnRfc2l6ZSwg
ZHBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdXp6
eSwgcHJvdG9jb2wsIHF1aWM9cXVpYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnV6enksIHByb3RvY29sLCBzdWJkb21haW49c3ViZG9tYWluLCBxdWlj
PXF1aWMpCiAgICAgICAgIHNlbGYuX3BhZ2VfcmFuZ2VzID0gcGFnZV9yYW5nZXMKIAogICAgIEBj
bGFzc21ldGhvZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5CmluZGV4IDcxMWFk
NWFmNzlmMi4uYjgzNDc3ZTVjYTcyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2FjY2VwdF9hbGVydC9hY2NlcHQucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0
LnB5CkBAIC0xLDcgKzEsOSBAQAoraW1wb3J0IHB5dGVzdAorCiBmcm9tIHdlYmRyaXZlci5lcnJv
ciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2Vy
dHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0
IHdhaXRfZm9yX25ld19oYW5kbGUKIGZyb20gdGVzdHMuc3VwcG9ydC5zeW5jIGltcG9ydCBQb2xs
CiAKIApAQCAtMTAsNyArMTIsNyBAQCBkZWYgYWNjZXB0X2FsZXJ0KHNlc3Npb24pOgogICAgICAg
ICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9hbGVydC9hY2NlcHQiLmZvcm1hdCgqKnZh
cnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwg
dXJsKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9z
Y3JpcHQ+IikKIAogICAgIHJlc3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNlc3Npb24pCkBAIC0zMywy
NyArMzUsNDEgQEAgZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCiAKIAotZGVmIHRlc3RfYWNjZXB0X2Fs
ZXJ0KHNlc3Npb24pOgorZGVmIHRlc3RfYWNjZXB0X2FsZXJ0KHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwv
c2NyaXB0PiIpCisKICAgICByZXNwb25zZSA9IGFjY2VwdF9hbGVydChzZXNzaW9uKQogICAgIGFz
c2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFs
ZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKIAotZGVmIHRlc3Rf
YWNjZXB0X2NvbmZpcm0oc2Vzc2lvbik6CitkZWYgdGVzdF9hY2NlcHRfY29uZmlybShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1
bHQgPSB3aW5kb3cuY29uZmlybSgnSGVsbG8nKTs8L3NjcmlwdD4iKQorCiAgICAgcmVzcG9uc2Ug
PSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKwor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNl
c3Npb24uYWxlcnQudGV4dAorCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiB3aW5kb3cucmVzdWx0IikgaXMgVHJ1ZQogCiAKLWRlZiB0ZXN0X2FjY2VwdF9wcm9tcHQo
c2Vzc2lvbik6CitkZWYgdGVzdF9hY2NlcHRfcHJvbXB0KHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgd2lu
ZG93LnJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXIn
KTsKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgICIiIikKKwogICAgIHJlc3BvbnNlID0gYWNj
ZXB0X2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9u
LmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4g
d2luZG93LnJlc3VsdCIpID09ICJGZWRlcmVyIgogCiAKQEAgLTY4LDMgKzg0LDI3IEBAIGRlZiB0
ZXN0X3VuZXhwZWN0ZWRfYWxlcnQoc2Vzc2lvbik6CiAKICAgICByZXNwb25zZSA9IGFjY2VwdF9h
bGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVy
dC50ZXh0CisKKworZGVmIHRlc3RfYWNjZXB0X2luX3BvcHVwX3dpbmRvdyhzZXNzaW9uLCBpbmxp
bmUpOgorICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcworCisgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiCisgICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93Lm9wZW4oJ2Fi
b3V0OmJsYW5rJywgJ19ibGFuaycsICd3aWR0aD01MDA7IGhlaWdodD0yMDA7cmVzaXphYmxlPXll
cycpOyI+b3BlbjwvYnV0dG9uPgorICAgICAgICAiIiIpCisgICAgYnV0dG9uID0gc2Vzc2lvbi5m
aW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQorICAgIGJ1dHRvbi5jbGljaygpCisKKyAgICBz
ZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNlc3Npb24sIG9yaWdf
aGFuZGxlcykKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKKyAgICAgICAgPHNjcmlwdD53
aW5kb3cuYWxlcnQoIkhlbGxvIik8L3NjcmlwdD4KKyAgICAgICAgIiIiKQorCisgICAgcmVzcG9u
c2UgPSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkK
KworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAg
IHNlc3Npb24uYWxlcnQudGV4dApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkKaW5kZXggZjA1MTUz
NzkwMjYxLi4zYTE5NDMyZmM2YTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weQpAQCAtMSwx
MyArMSwxMyBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGlt
ZSwgdGltZWRlbHRhCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCiAKIGZyb20gd2ViZHJpdmVy
LnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5o
ZWxwZXJzIGltcG9ydCBjbGVhcl9hbGxfY29va2llcwogCisKIGRlZiBhZGRfY29va2llKHNlc3Np
b24sIGNvb2tpZSk6CiAgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCiAgICAgICAg
ICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2Nvb2tpZSIuZm9ybWF0KCoqdmFycyhzZXNz
aW9uKSksCkBAIC01NCw2ICs1NCw0MyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3Vj
aCB3aW5kb3ciKQogCiAKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAicGFnZSIsCisg
ICAgWworICAgICAgICAiYWJvdXQ6YmxhbmsiLAorICAgICAgICAiYmxvYjpmb28vYmFyIiwKKyAg
ICAgICAgImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgsPHA+Zm9vPC9wPiIsCisgICAgICAg
ICJmaWxlOi8vL2Zvby9iYXIiLAorICAgICAgICAiZnRwOi8vZXhhbXBsZS5vcmciLAorICAgICAg
ICAiamF2YXNjcmlwdDpmb28iLAorICAgICAgICAid3M6Ly9leGFtcGxlLm9yZyIsCisgICAgICAg
ICJ3c3M6Ly9leGFtcGxlLm9yZyIsCisgICAgXSwKKyAgICBpZHM9WworICAgICAgICAiYWJvdXQi
LAorICAgICAgICAiYmxvYiIsCisgICAgICAgICJkYXRhIiwKKyAgICAgICAgImZpbGUiLAorICAg
ICAgICAiZnRwIiwKKyAgICAgICAgImphdmFzY3JpcHQiLAorICAgICAgICAid2Vic29ja2V0IiwK
KyAgICAgICAgInNlY3VyZSB3ZWJzb2NrZXQiLAorICAgIF0sCispCitkZWYgdGVzdF9jb29raWVf
dW5zdXBwb3J0ZWRfc2NoZW1lKHNlc3Npb24sIHBhZ2UpOgorICAgIG5ld19jb29raWUgPSB7Cisg
ICAgICAgICJuYW1lIjogImhlbGxvIiwKKyAgICAgICAgInZhbHVlIjogIndvcmxkIiwKKyAgICAg
ICAgImRvbWFpbiI6IHBhZ2UsCisgICAgICAgICJwYXRoIjogIi8iLAorICAgICAgICAiaHR0cE9u
bHkiOiBGYWxzZSwKKyAgICAgICAgInNlY3VyZSI6IEZhbHNlCisgICAgfQorCisgICAgcmVzdWx0
ID0gYWRkX2Nvb2tpZShzZXNzaW9uLCBuZXdfY29va2llKQorICAgIGFzc2VydF9lcnJvcihyZXN1
bHQsICJpbnZhbGlkIGNvb2tpZSBkb21haW4iKQorCisKIGRlZiB0ZXN0X2FkZF9kb21haW5fY29v
a2llKHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZyk6CiAgICAgbmV3X2Nvb2tpZSA9IHsKICAg
ICAgICAgIm5hbWUiOiAiaGVsbG8iLApAQCAtNzIsMTEgKzEwOSwxMSBAQCBkZWYgdGVzdF9hZGRf
ZG9tYWluX2Nvb2tpZShzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcpOgogCiAgICAgY29va2ll
ID0gc2Vzc2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0ICJkb21haW4iIGluIGNvb2tp
ZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0sIHRleHRfdHlwZSkKKyAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCBzdHIpCiAgICAgYXNzZXJ0ICJu
YW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4
dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAg
YXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2
YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJd
LCBzdHIpCiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImhlbGxvIgogICAgIGFzc2Vy
dCBjb29raWVbInZhbHVlIl0gPT0gIndvcmxkIgpAQCAtMTAyLDExICsxMzksMTEgQEAgZGVmIHRl
c3RfYWRkX2Nvb2tpZV9mb3JfaXAoc2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnLCBjb25maWd1
cmF0aW9uKToKIAogICAgIGNvb2tpZSA9IHNlc3Npb24uY29va2llcygiaGVsbG8iKQogICAgIGFz
c2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1l
Il0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3Ry
KQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNv
b2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsi
dmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAiZG9tYWluIiBpbiBjb29raWUKLSAgICBhc3NlcnQg
aXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoY29va2llWyJkb21haW4iXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFtZSJd
ID09ICJoZWxsbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09ICJ3b3JsZCIKQEAgLTEz
MSw5ICsxNjgsOSBAQCBkZWYgdGVzdF9hZGRfbm9uX3Nlc3Npb25fY29va2llKHNlc3Npb24sIHVy
bCk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQg
Im5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0
ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAg
ICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
InZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVl
Il0sIHN0cikKICAgICBhc3NlcnQgImV4cGlyeSIgaW4gY29va2llCiAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoY29va2llWyJleHBpcnkiXSwgaW50KQogCkBAIC0xNTYsOSArMTkzLDkgQEAgZGVmIHRl
c3RfYWRkX3Nlc3Npb25fY29va2llKHNlc3Npb24sIHVybCk6CiAKICAgICBjb29raWUgPSBzZXNz
aW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFz
c2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlz
aW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29r
aWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAgICBpZiAiZXhwaXJ5
IiBpbiBjb29raWU6CiAgICAgICAgIGFzc2VydCBjb29raWUuZ2V0KCJleHBpcnkiKSBpcyBOb25l
CiAKQEAgLTE4MSwxMSArMjE4LDExIEBAIGRlZiB0ZXN0X2FkZF9zZXNzaW9uX2Nvb2tpZV93aXRo
X2xlYWRpbmdfZG90X2NoYXJhY3Rlcl9pbl9kb21haW4oc2Vzc2lvbiwgdXJsLCBzCiAKICAgICBj
b29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNv
b2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZh
bHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRl
eHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAg
ICBhc3NlcnQgImRvbWFpbiIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2ll
WyJkb21haW4iXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9t
YWluIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiaGVsbG8iCiAgICAg
YXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAid29ybGQiCkBAIC0yMDksMTEgKzI0NiwxMSBAQCBk
ZWYgdGVzdF9hZGRfY29va2llX3dpdGhfdmFsaWRfc2FtZXNpdGVfZmxhZyhzZXNzaW9uLCB1cmws
IHNhbWVfc2l0ZSk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAg
ICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsi
bmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0s
IHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5j
ZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbInZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBjb29raWUKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlwZSkKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29r
aWVbIm5hbWUiXSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAid29y
bGQiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2JhY2svYmFjay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvYmFjay9iYWNrLnB5CmluZGV4IDljYTUyZThmMjIzZS4uODZhZDIyNzhhYjM5IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JhY2sv
YmFjay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2JhY2svYmFjay5weQpAQCAtMSw0ICsxLDYgQEAKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQoraW1wb3J0IHB5dGVzdAorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9y
CisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCiAKIApAQCAtNyw3ICs5LDcgQEAgZGVmIGJhY2soc2Vzc2lvbik6CiAgICAgICAg
ICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2JhY2siLmZvcm1hdCgqKnZhcnMoc2Vzc2lv
bikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVz
dF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxkaXY+IikKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+IikKIApAQCAt
MzEsNyArMzMsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19oaXN0b3J5KHNlc3Npb24pOgogICAg
IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9u
KToKK2RlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHRlc3RfcGFnZXMg
PSBbCiAgICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5saW5lKCI8cCBpZD0y
PiIpLApAQCAtNDYsNyArNDgsNyBAQCBkZWYgdGVzdF9kYXRhX3VybHMoc2Vzc2lvbik6CiAgICAg
YXNzZXJ0IHNlc3Npb24udXJsID09IHRlc3RfcGFnZXNbMF0KIAogCi1kZWYgdGVzdF9kaXNtaXNz
ZWRfYmVmb3JldW5sb2FkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9h
ZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHVybF9iZWZvcmV1bmxvYWQgPSBpbmxpbmUoIiIiCiAg
ICAgICA8aW5wdXQgdHlwZT0idGV4dCI+CiAgICAgICA8c2NyaXB0PgpAQCAtODgsNyArOTAsNyBA
QCBkZWYgdGVzdF9mcmFnbWVudHMoc2Vzc2lvbiwgdXJsKToKICAgICBhc3NlcnQgc2Vzc2lvbi51
cmwgPT0gdGVzdF9wYWdlc1swXQogCiAKLWRlZiB0ZXN0X2hpc3RvcnlfcHVzaHN0YXRlKHNlc3Np
b24sIHVybCk6CitkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHB1c2hzdGF0ZV9wYWdlID0gaW5saW5lKCIiIgogICAgICAgPHNjcmlwdD4KICAgICAgICAg
ZnVuY3Rpb24gcHVzaFN0YXRlKCkgewpAQCAtMTA5LDMgKzExMSw0MiBAQCBkZWYgdGVzdF9oaXN0
b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgogCiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09
IHB1c2hzdGF0ZV9wYWdlCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBoaXN0b3J5LnN0YXRlOyIpIGlzIE5vbmUKKworCitkZWYgdGVzdF9yZW1vdmVkX2lmcmFtZShz
ZXNzaW9uLCB1cmwsIGlubGluZSk6CisgICAgcGFnZSA9IGlubGluZSgiPHA+Zm9vIikKKworICAg
IHNlc3Npb24udXJsID0gcGFnZQorICAgIHNlc3Npb24udXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rl
c3RzL3N1cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sIikKKworICAgIHN1YmZyYW1l
ID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9u
LnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHJlc3BvbnNlID0gYmFjayhzZXNzaW9uKQor
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09
IHBhZ2UKKworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlm
aWNhdGUgaXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2Vw
dEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbihzZXNzaW9uLCB1
cmwpOgorICAgIGJhc2VfcGF0aCA9ICgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvc3Vi
ZnJhbWUuaHRtbCIgKworICAgICAgICAgICAgICAgICAiP3BpcGU9aGVhZGVyKENyb3NzLU9yaWdp
bi1PcGVuZXItUG9saWN5LHNhbWUtb3JpZ2luIikKKyAgICBmaXJzdF9wYWdlID0gdXJsKGJhc2Vf
cGF0aCwgcHJvdG9jb2w9Imh0dHBzIikKKyAgICBzZWNvbmRfcGFnZSA9IHVybChiYXNlX3BhdGgs
IHByb3RvY29sPSJodHRwcyIsIGRvbWFpbj0iYWx0IikKKworICAgIHNlc3Npb24udXJsID0gZmly
c3RfcGFnZQorICAgIHNlc3Npb24udXJsID0gc2Vjb25kX3BhZ2UKKworICAgIGVsZW0gPSBzZXNz
aW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBiYWNr
KHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vz
c2lvbi51cmwgPT0gZmlyc3RfcGFnZQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKGVycm9yLlN0
YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgICAgIGVsZW0uY2xpY2soKQorICAg
IGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iYWNrL3VzZXJf
cHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
YmFjay91c2VyX3Byb21wdHMucHkKaW5kZXggNzEyMWY3YzZiMmE2Li45ZDA0ZjBmNGFiMTIgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmFj
ay91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9iYWNrL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBw
eXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2df
aGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGJhY2soc2Vzc2lvbik6CkBAIC0xMiw3ICsx
MSw3IEBAIGRlZiBiYWNrKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIHBhZ2Vz
KHNlc3Npb24pOgorZGVmIHBhZ2VzKHNlc3Npb24sIGlubGluZSk6CiAgICAgcGFnZXMgPSBbCiAg
ICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5saW5lKCI8cCBpZD0yPiIpLApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9i
aWRpL25ld19zZXNzaW9uL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JpZGkvbmV3X3Nlc3Np
b24vY29ubmVjdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvYmlkaS9uZXdfc2Vzc2lvbi9jb25uZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uMzU3ZGEzMWJhODYyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL2Nvbm5l
Y3QucHkKQEAgLTAsMCArMSwzNCBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IGFzeW5jaW8KK2lt
cG9ydCB3ZWJzb2NrZXRzCitpbXBvcnQgd2ViZHJpdmVyCisKKyMgY2xhc3NpYyBzZXNzaW9uIHRv
IGVuYWJsZSBiaWRpIGNhcGFiaWxpdHkgbWFudWFsbHkKKyMgSW50ZW5kZWQgdG8gYmUgdGhlIGZp
cnN0IHRlc3QgaW4gdGhpcyBmaWxlCitAcHl0ZXN0Lm1hcmsuYXN5bmNpbworQHB5dGVzdC5tYXJr
LmNhcGFiaWxpdGllcyh7IndlYlNvY2tldFVybCI6IFRydWV9KQorYXN5bmMgZGVmIHRlc3Rfd2Vi
c29ja2V0X3VybF9jb25uZWN0KHNlc3Npb24pOgorICAgIHdlYnNvY2tldF91cmwgPSBzZXNzaW9u
LmNhcGFiaWxpdGllc1sid2ViU29ja2V0VXJsIl0KKyAgICBhc3luYyB3aXRoIHdlYnNvY2tldHMu
Y29ubmVjdCh3ZWJzb2NrZXRfdXJsKSBhcyB3ZWJzb2NrZXQ6CisgICAgICAgIGF3YWl0IHdlYnNv
Y2tldC5zZW5kKCJIZWxsbyB3b3JsZCEiKQorCisjIHRlc3QgYmlkaV9zZXNzaW9uIHNlbmQKKyMg
dXNpbmcgYmlkaV9zZXNzaW9uIGlzIHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gdGVzdCBiaWRpCitA
cHl0ZXN0Lm1hcmsuYXN5bmNpbworYXN5bmMgZGVmIHRlc3RfYmlkaV9zZXNzaW9uX3NlbmQoYmlk
aV9zZXNzaW9uKToKKyAgICBhd2FpdCBiaWRpX3Nlc3Npb24uc2VuZF9jb21tYW5kKCJ0ZXN0LnRl
c3QiLCB7fSkKKworIyBiaWRpIHNlc3Npb24gZm9sbG93aW5nIGEgYmlkaSBzZXNzaW9uIHdpdGgg
YSBkaWZmZXJlbnQgY2FwYWJpbGl0aWVzCisjIHRvIHRlc3Qgc2Vzc2lvbiByZWNyZWF0aW9uCitA
cHl0ZXN0Lm1hcmsuYXN5bmNpbworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdElu
c2VjdXJlQ2VydHMiOiBUcnVlfSkKK2FzeW5jIGRlZiB0ZXN0X2JpZGlfc2Vzc2lvbl93aXRoX2Rp
ZmZlcmVudF9jYXBhYmlsaXR5KGJpZGlfc2Vzc2lvbik6CisgICAgYXdhaXQgYmlkaV9zZXNzaW9u
LnNlbmRfY29tbWFuZCgidGVzdC50ZXN0Iiwge30pCisKKyMgY2xhc3NpYyBzZXNzaW9uIGZvbGxv
d2luZyBhIGJpZGkgc2Vzc2lvbiB0byB0ZXN0IHNlc3Npb24KKyMgcmVjcmVhdGlvbgorIyBJbnRl
bmRlZCB0byBiZSB0aGUgbGFzdCB0ZXN0IGluIHRoaXMgZmlsZSB0byBtYWtlIHN1cmUKKyMgY2xh
c3NpYyBzZXNzaW9uIGlzIG5vdCBpbXBhY3RlZCBieSBiaWRpIHRlc3RzCitAcHl0ZXN0Lm1hcmsu
YXN5bmNpbworZGVmIHRlc3RfY2xhc3NpY19hZnRlcl9iaWRpX3Nlc3Npb24oc2Vzc2lvbik6Cisg
ICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHNlc3Npb24sIHdlYmRyaXZlci5iaWRpLkJpZGlTZXNz
aW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2Nsb3NlX3dpbmRvdy9jbG9zZS5weQppbmRleCA1M2FmNTczMGY4M2Yu
LjdiMzgyZmE5YmJjYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkKQEAgLTIs
NyArMiw2IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyIGltcG9ydCBlcnJvcgogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGNs
b3NlKHNlc3Npb24pOgpAQCAtNDYsNyArNDUsNyBAQCBkZWYgdGVzdF9jbG9zZV9icm93c2luZ19j
b250ZXh0KHNlc3Npb24pOgogICAgIGFzc2VydCBuZXdfaGFuZGxlIG5vdCBpbiBoYW5kbGVzCiAK
IAotZGVmIHRlc3RfY2xvc2VfYnJvd3NpbmdfY29udGV4dF93aXRoX2Rpc21pc3NlZF9iZWZvcmV1
bmxvYWRfcHJvbXB0KHNlc3Npb24pOgorZGVmIHRlc3RfY2xvc2VfYnJvd3NpbmdfY29udGV4dF93
aXRoX2Rpc21pc3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNlc3Npb24sIGlubGluZSk6CiAgICAg
b3JpZ2luYWxfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcwogCiAgICAgbmV3X2hhbmRsZSA9IHNl
c3Npb24ubmV3X3dpbmRvdygpCkBAIC04MSwzICs4MCwyMyBAQCBkZWYgdGVzdF9jbG9zZV9sYXN0
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbik6CiAKICAgICAjIFdpdGggbm8gbW9yZSBvcGVuIHRv
cC1sZXZlbCBicm93c2luZyBjb250ZXh0cywgdGhlIHNlc3Npb24gaXMgY2xvc2VkLgogICAgIHNl
c3Npb24uc2Vzc2lvbl9pZCA9IE5vbmUKKworCitkZWYgdGVzdF9lbGVtZW50X3VzYWdlX2FmdGVy
X2Nsb3NpbmdfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBpbmxpbmUpOgorICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8cCBpZD0nYSc+Zm9vIikKKyAgICBhID0gc2Vzc2lvbi5maW5kLmNzcygi
cCIsIGFsbD1GYWxzZSkKKyAgICBmaXJzdCA9IHNlc3Npb24ud2luZG93X2hhbmRsZQorCisgICAg
c2Vjb25kID0gc2Vzc2lvbi5uZXdfd2luZG93KHR5cGVfaGludD0idGFiIikKKyAgICBzZXNzaW9u
LndpbmRvd19oYW5kbGUgPSBzZWNvbmQKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBp
ZD0nYic+b3RoZXIiKQorICAgIGIgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQor
CisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gZmlyc3QKKyAgICByZXNwb25zZSA9IGNsb3Nl
KHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IGxlbihz
ZXNzaW9uLmhhbmRsZXMpID09IDEKKworICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IHNlY29u
ZAorICAgIGFzc2VydCBiLmF0dHJpYnV0ZSgiaWQiKSA9PSAiYiIKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVs
ZXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9kZWxl
dGVfc2Vzc2lvbi9kZWxldGUucHkKaW5kZXggZDBiNGQ3OTYzMDhlLi5hMzAzMmNjMTM0NzUgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVs
ZXRlX3Nlc3Npb24vZGVsZXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVsZXRlLnB5CkBAIC0yLDcgKzIsNiBAQCBp
bXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZGVsZXRlX3Nlc3Npb24oc2Vzc2lvbik6CkBA
IC0xOSw3ICsxOCw3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAg
ICAgc2Vzc2lvbi5lbmQoKQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWRfcHJv
bXB0KHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZF9wcm9tcHQoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxpbnB1
dCB0eXBlPSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGlzbWlzc19hbGVy
dC9kaXNtaXNzLnB5CmluZGV4IGRhNjViYWMzODhkZi4uYTI4ZGVjNzY4NzUwIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxl
cnQvZGlzbWlzcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weQpAQCAtMSw3ICsxLDkgQEAKK2ltcG9ydCBw
eXRlc3QKKwogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9u
CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20g
dGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCB3YWl0X2Zvcl9uZXdfaGFuZGxlCiBmcm9tIHRl
c3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTEwLDcgKzEyLDcgQEAgZGVmIGRp
c21pc3NfYWxlcnQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25f
aWR9L2FsZXJ0L2Rpc21pc3MiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0
X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0ZXN0X251bGxfcmVzcG9u
c2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNj
cmlwdD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+IikKIAogICAgIHJlc3BvbnNlID0g
ZGlzbWlzc19hbGVydChzZXNzaW9uKQpAQCAtMzMsMjggKzM1LDQ1IEBAIGRlZiB0ZXN0X25vX3Vz
ZXJfcHJvbXB0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
YWxlcnQiKQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfYWxlcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9k
aXNtaXNzX2FsZXJ0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxzY3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwvc2NyaXB0PiIpCisKICAgICByZXNwb25z
ZSA9IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkK
IAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAg
IHNlc3Npb24uYWxlcnQudGV4dAorCiAKLWRlZiB0ZXN0X2Rpc21pc3NfY29uZmlybShzZXNzaW9u
KToKK2RlZiB0ZXN0X2Rpc21pc3NfY29uZmlybShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cuY29uZmlybSgn
SGVsbG8nKTs8L3NjcmlwdD4iKQorCiAgICAgcmVzcG9uc2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Np
b24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwog
ICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LnJlc3VsdDsi
KSBpcyBGYWxzZQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfcHJvbXB0KHNlc3Npb24pOgotICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0
KCdFbnRlciBZb3VyIE5hbWU6ICcsICdGZWRlcmVyJyk7PC9zY3JpcHQ+IikKK2RlZiB0ZXN0X2Rp
c21pc3NfcHJvbXB0KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IiIiCisgICAgICAgIDxzY3JpcHQ+d2luZG93LnJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVy
IFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4KKyAgICAgICAgIiIiKQorCiAgICAg
cmVzcG9uc2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgor
ICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gd2luZG93LnJlc3VsdCIpIGlzIE5vbmUKIAogCiBkZWYgdGVzdF91bmV4
cGVjdGVkX2FsZXJ0KHNlc3Npb24pOgogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7IGFsZXJ0KCdIZWxsbycpOyB9LCAxMDApOyIpCisKICAgICB3YWl0
ID0gUG9sbCgKICAgICAgICAgc2Vzc2lvbiwKICAgICAgICAgdGltZW91dD01LApAQCAtNjQsMyAr
ODMsMjcgQEAgZGVmIHRlc3RfdW5leHBlY3RlZF9hbGVydChzZXNzaW9uKToKIAogICAgIHJlc3Bv
bnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAg
ICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKKworZGVmIHRlc3RfZGlzbWlzc19pbl9wb3B1cF93aW5k
b3coc2Vzc2lvbiwgaW5saW5lKToKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMK
KworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgorICAgICAgICA8YnV0dG9uIG9uY2xpY2s9
IndpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsICdfYmxhbmsnLCAnd2lkdGg9NTAwOyBoZWlnaHQ9
MjAwO3Jlc2l6YWJsZT15ZXMnKTsiPm9wZW48L2J1dHRvbj4KKyAgICAgICAgIiIiKQorICAgIGJ1
dHRvbiA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKKyAgICBidXR0b24u
Y2xpY2soKQorCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRs
ZShzZXNzaW9uLCBvcmlnX2hhbmRsZXMpCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCisg
ICAgICAgIDxzY3JpcHQ+d2luZG93LmFsZXJ0KCJIZWxsbyIpPC9zY3JpcHQ+CisgICAgICAgICIi
IikKKworICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQorICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhj
ZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvY2xlYXIu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xlYXIvY2xlYXIucHkKaW5kZXggMDE4OWMzOGMyNzcwLi5iNjVmNDQzYWE3NTggMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9j
bGVhci9jbGVhci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xlYXIvY2xlYXIucHkKQEAgLTExLDcgKzExLDYgQEAgZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfaW5fZXZlbnRzLAogICAgIGFz
c2VydF9zdWNjZXNzLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogQHB5dGVzdC5maXh0dXJlCkBAIC0zNyw3ICszNiw3IEBAIGRlZiB0ZXh0X2ZpbGUodG1w
ZGlyX2ZhY3RvcnkpOgogICAgIHJldHVybiBmaAogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2Vf
dmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtNDgsMTAgKzQ3LDE3
IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAKIGRlZiB0ZXN0X25v
X3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGVsZW1l
bnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGVh
cihzZXNzaW9uLCBlbGVtZW50KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
d2luZG93IikKIAorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cK
ICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxlbWVudCkKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRv
d19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xlYXIo
c2Vzc2lvbiwgZWxlbWVudCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVs
ZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2Vk
X2ZyYW1lKToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikKQEAgLTYwLDcg
KzY2LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJh
bWUpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1k
ZWYgdGVzdF9jb25uZWN0ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2Nvbm5lY3RlZF9l
bGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
IApAQCAtNjksNyArNzUsNyBAQCBkZWYgdGVzdF9jb25uZWN0ZWRfZWxlbWVudChzZXNzaW9uKToK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAK
IAotZGVmIHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9wb2lu
dGVyX2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgc3R5bGU9J21hcmdpbi1sZWZ0OiAtMTAwMHB4JyB2YWx1ZT1mb29iYXI+IikK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAg
LTc3LDcgKzgzLDcgQEAgZGVmIHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAog
Ci1kZWYgdGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9rZXli
b2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiIiIKICAgICAgICAgPGlucHV0IHZhbHVlPWZvb2Jhcj4KICAgICAgICAgPGRpdj48L2Rp
dj4KQEAgLTExNCw3ICsxMjAsNyBAQCBkZWYgdGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vz
c2lvbik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGltZSIsICIxOTo0OCIsICIiKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJtb250aCIsICIyMDE3LTExIiwgIiIpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAoIndlZWsiLCAiMjAxNy1XNTIiLCAiIildKQotZGVmIHRl
c3RfaW5wdXQoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHR5
cGUsIHZhbHVlLCBkZWZhdWx0KToKK2RlZiB0ZXN0X2lucHV0KHNlc3Npb24sIGlubGluZSwgYWRk
X2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHR5cGUsIHZhbHVlLCBkZWZhdWx0KToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9JXMgdmFsdWU9JyVzJz4iICUg
KHR5cGUsIHZhbHVlKSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0cmFja2VkX2V2ZW50
cykKQEAgLTE0NCw3ICsxNTAsNyBAQCBkZWYgdGVzdF9pbnB1dChzZXNzaW9uLCBhZGRfZXZlbnRf
bGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgdHlwZSwgdmFsdWUsIGRlZmF1bAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAibW9udGgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAid2Vl
ayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIl0pCi1kZWYgdGVzdF9pbnB1dF9k
aXNhYmxlZChzZXNzaW9uLCB0eXBlKToKK2RlZiB0ZXN0X2lucHV0X2Rpc2FibGVkKHNlc3Npb24s
IGlubGluZSwgdHlwZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVz
IGRpc2FibGVkPiIgJSB0eXBlKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1
dCIsIGFsbD1GYWxzZSkKIApAQCAtMTY5LDcgKzE3NSw3IEBAIGRlZiB0ZXN0X2lucHV0X2Rpc2Fi
bGVkKHNlc3Npb24sIHR5cGUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAibW9udGgiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAid2VlayIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJmaWxlIl0pCi1kZWYgdGVzdF9pbnB1dF9yZWFkb25seShzZXNzaW9uLCB0eXBlKToKK2Rl
ZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIGlubGluZSwgdHlwZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzIHJlYWRvbmx5PiIgJSB0eXBlKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTc3LDcg
KzE4Myw3IEBAIGRlZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIHR5cGUpOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRl
c3RfdGV4dGFyZWEoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMp
OgorZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZlbnRfbGlzdGVuZXJz
LCB0cmFja2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0ZXh0YXJlYT5m
b29iYXI8L3RleHRhcmVhPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInRleHRh
cmVhIiwgYWxsPUZhbHNlKQogICAgIGFkZF9ldmVudF9saXN0ZW5lcnMoZWxlbWVudCwgdHJhY2tl
ZF9ldmVudHMpCkBAIC0xODksNyArMTk1LDcgQEAgZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwg
YWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIGFzc2VydF9pbl9ldmVu
dHMoc2Vzc2lvbiwgWyJmb2N1cyIsICJjaGFuZ2UiLCAiYmx1ciJdKQogCiAKLWRlZiB0ZXN0X3Rl
eHRhcmVhX2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFyZWFfZGlzYWJsZWQoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRleHRhcmVhIGRpc2Fi
bGVkPjwvdGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFy
ZWEiLCBhbGw9RmFsc2UpCiAKQEAgLTE5Nyw3ICsyMDMsNyBAQCBkZWYgdGVzdF90ZXh0YXJlYV9k
aXNhYmxlZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGVs
ZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0ZXN0X3RleHRhcmVhX3JlYWRvbmx5KHNlc3Npb24pOgor
ZGVmIHRlc3RfdGV4dGFyZWFfcmVhZG9ubHkoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPHRleHRhcmVhIHJlYWRvbmx5PjwvdGV4dGFyZWE+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBhbGw9RmFsc2UpCiAKQEAgLTIwNSw3
ICsyMTEsNyBAQCBkZWYgdGVzdF90ZXh0YXJlYV9yZWFkb25seShzZXNzaW9uKToKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0ZXN0
X2lucHV0X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2RlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vz
c2lvbiwgdGV4dF9maWxlLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQgdHlwZT1maWxlPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogICAgIGVsZW1lbnQuc2VuZF9rZXlzKHN0cih0ZXh0X2ZpbGUpKQpAQCAtMjE1
LDcgKzIyMSw3IEBAIGRlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKICAg
ICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X2lu
cHV0X2ZpbGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2RlZiB0ZXN0X2lucHV0X2Zp
bGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIG11bHRpcGxlPiIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGVsZW1lbnQuc2VuZF9rZXlz
KHN0cih0ZXh0X2ZpbGUpKQpAQCAtMjI2LDcgKzIzMiw3IEBAIGRlZiB0ZXN0X2lucHV0X2ZpbGVf
bXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0
eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X3NlbGVjdChzZXNzaW9uKToKK2RlZiB0ZXN0
X3NlbGVjdChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgog
ICAgICAgICA8c2VsZWN0PgogICAgICAgICAgIDxvcHRpb24+Zm9vCkBAIC0yNDEsNyArMjQ3LDcg
QEAgZGVmIHRlc3Rfc2VsZWN0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
ImludmFsaWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRlc3RfYnV0dG9uKHNlc3Npb24pOgor
ZGVmIHRlc3RfYnV0dG9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxidXR0b24+PC9idXR0b24+IikKICAgICBidXR0b24gPSBzZXNzaW9uLmZpbmQuY3NzKCJi
dXR0b24iLCBhbGw9RmFsc2UpCiAKQEAgLTI0OSw3ICsyNTUsNyBAQCBkZWYgdGVzdF9idXR0b24o
c2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0
YXRlIikKIAogCi1kZWYgdGVzdF9idXR0b25fd2l0aF9zdWJ0cmVlKHNlc3Npb24pOgorZGVmIHRl
c3RfYnV0dG9uX3dpdGhfc3VidHJlZShzZXNzaW9uLCBpbmxpbmUpOgogICAgICIiIgogICAgIEVs
ZW1lbnRzIGluc2lkZSBidXR0b24gZWxlbWVudHMgYXJlIGludGVyYWN0YWJsZS4KICAgICAiIiIK
QEAgLTI2NCw3ICsyNzAsNyBAQCBkZWYgdGVzdF9idXR0b25fd2l0aF9zdWJ0cmVlKHNlc3Npb24p
OgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0X2NvbnRlbnRlZGl0
YWJsZShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYg
dGVzdF9jb250ZW50ZWRpdGFibGUoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZlbnRfbGlzdGVuZXJz
LCB0cmFja2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGNvbnRlbnRl
ZGl0YWJsZT5mb29iYXI8L3A+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygicCIs
IGFsbD1GYWxzZSkKICAgICBhZGRfZXZlbnRfbGlzdGVuZXJzKGVsZW1lbnQsIHRyYWNrZWRfZXZl
bnRzKQpAQCAtMjc3LDcgKzI4Myw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRlZGl0YWJsZShzZXNzaW9u
LCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgYXNzZXJ0X2VsZW1l
bnRfaGFzX2ZvY3VzKHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5ib2R5
IikpCiAKIAotZGVmIHRlc3RfZGVzaWdubW9kZShzZXNzaW9uKToKK2RlZiB0ZXN0X2Rlc2lnbm1v
ZGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiZm9vYmFyIikK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYm9keSIsIGFsbD1GYWxzZSkKICAgICBh
c3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgiaW5uZXJIVE1MIikgPT0gImZvb2JhciIKQEAgLTI4OSw3
ICsyOTUsNyBAQCBkZWYgdGVzdF9kZXNpZ25tb2RlKHNlc3Npb24pOgogICAgIGFzc2VydF9lbGVt
ZW50X2hhc19mb2N1cyhzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuYm9k
eSIpKQogCiAKLWRlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9mb2N1c193aGVuX2VtcHR5KHNl
c3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKToKK2RlZiB0ZXN0X3Jl
c2V0dGFibGVfZWxlbWVudF9mb2N1c193aGVuX2VtcHR5KHNlc3Npb24sIGlubGluZSwgYWRkX2V2
ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9
RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0cmFja2VkX2V2ZW50cykK
QEAgLTMxMyw3ICszMTksNyBAQCBkZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRfZm9jdXNfd2hl
bl9lbXB0eShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFjawogICAgICAgICAgICAg
ICAgICAgICAgICAgICAoInRpbWUiLCAiZm9vIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgibW9udGgiLCAiZm9vIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgid2VlayIsICJm
b28iKV0pCi1kZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRfZG9lc19ub3Rfc2F0aXNmeV92YWxp
ZGF0aW9uX2NvbnN0cmFpbnRzKHNlc3Npb24sIHR5cGUsIGludmFsaWRfdmFsdWUpOgorZGVmIHRl
c3RfcmVzZXR0YWJsZV9lbGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFsaWRhdGlvbl9jb25zdHJh
aW50cyhzZXNzaW9uLCBpbmxpbmUsIHR5cGUsIGludmFsaWRfdmFsdWUpOgogICAgICIiIgogICAg
IFNvbWUgVUFzIGFsbG93IGludmFsaWQgaW5wdXQgdG8gY2VydGFpbiB0eXBlcyBvZiBjb25zdHJh
aW5lZAogICAgIGZvcm0gY29udHJvbHMuICBGb3IgZXhhbXBsZSwgR2Vja28gYWxsb3dzIG5vbi12
YWxpZCBjaGFyYWN0ZXJzCkBAIC0zNTAsNyArMzU2LDcgQEAgZGVmIHRlc3RfcmVzZXR0YWJsZV9l
bGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFsaWRhdGlvbl9jb25zdHJhaW50cyhzZXNzaW9uLCB0
eXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1Ym1pdCIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJidXR0b24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UiXSkK
LWRlZiB0ZXN0X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlwZSk6CitkZWYgdGVzdF9u
b25fZWRpdGFibGVfaW5wdXRzKHNlc3Npb24sIGlubGluZSwgdHlwZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzPiIgJSB0eXBlKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzU4LDcgKzM2NCw3IEBAIGRl
ZiB0ZXN0X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlwZSk6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVzdF9zY3Jv
bGxfaW50b192aWV3KHNlc3Npb24pOgorZGVmIHRlc3Rfc2Nyb2xsX2ludG9fdmlldyhzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQg
dmFsdWU9Zm9vYmFyPgogICAgICAgICA8ZGl2IHN0eWxlPSdoZWlnaHQ6IDIwMHZoOyB3aWR0aDog
NTAwMHZoJz4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvdXNlcl9wcm9tcHRzLnB5
CmluZGV4IGNmYjg1MGUwOGQ1YS4uN2E4NTY0YTY4NGE3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvdXNlcl9wcm9t
cHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0
ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hh
bmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsZWFyKHNlc3Npb24sIGVsZW1l
bnQpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZWxlbWVudF9jbGVhcihzZXNzaW9uLCBlbGVtZW50
KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlu
cHV0IiwgYWxsPUZhbHNlKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQog
ICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBA
IC01Niw3ICs1NSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xpY2svYnViYmxpbmcucHkKaW5kZXggYTA2OWE1YTVkZjNkLi43NjIwZWMzMjI0ZmMgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay9idWJibGluZy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcucHkKQEAgLTEsNSArMSw0IEBACiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNl
c3Npb24sIGVsZW1lbnQpOgpAQCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lv
biwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRl
ZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9uKToKK2RlZiB0ZXN0
X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGJvZHkgKiB7
CkBAIC00NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50
cyhzZXNzaW9uKToKICAgICBhc3NlcnQgdGhyZWUgaW4gY2xpY2tzCiAKIAotZGVmIHRlc3Rfc3Bp
bl9ldmVudF9sb29wKHNlc3Npb24pOgorZGVmIHRlc3Rfc3Bpbl9ldmVudF9sb29wKHNlc3Npb24s
IGlubGluZSk6CiAgICAgIiIiCiAgICAgV2FpdCB1bnRpbCB0aGUgdXNlciBhZ2VudCBldmVudCBs
b29wIGhhcyBzcHVuIGVub3VnaCB0aW1lcyB0bwogICAgIHByb2Nlc3MgdGhlIERPTSBldmVudHMg
Z2VuZXJhdGVkIGJ5IGNsaWNraW5nLgpAQCAtODYsNyArODUsNyBAQCBkZWYgdGVzdF9zcGluX2V2
ZW50X2xvb3Aoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHRocmVlIGluIGRlbGF5ZWRfY2xpY2tzCiAK
IAotZGVmIHRlc3RfZWxlbWVudF9kaXNhcHBlYXJzX2R1cmluZ19jbGljayhzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2VsZW1lbnRfZGlzYXBwZWFyc19kdXJpbmdfY2xpY2soc2Vzc2lvbiwgaW5saW5lKToK
ICAgICAiIiIKICAgICBXaGVuIGFuIGVsZW1lbnQgaW4gdGhlIGV2ZW50IGJ1YmJsaW5nIG9yZGVy
IGRpc2FwcGVhcnMgKGl0cyBDU1MKICAgICBkaXNwbGF5IHN0eWxlIGlzIHNldCB0byAibm9uZSIp
IGR1cmluZyBhIGNsaWNrLCBHZWNrbyBhbmQgQmxpbmsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jZW50ZXJfcG9p
bnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfY2xpY2svY2VudGVyX3BvaW50LnB5CmluZGV4IGRhNjBhMDg3Mjc3ZC4uZWYwYzlhN2ZlMjdk
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xpY2svY2VudGVyX3BvaW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jZW50ZXJfcG9pbnQucHkKQEAg
LTIsNyArMiw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5o
ZWxwZXJzIGltcG9ydCBjZW50ZXJfcG9pbnQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAt
MTIsNyArMTEsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAg
ICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHNxdWFyZShzaXplKToKK2Rl
ZiBzcXVhcmUoaW5saW5lLCBzaXplKToKICAgICByZXR1cm4gaW5saW5lKCIiIgogICAgICAgICA8
c3R5bGU+CiAgICAgICAgIGJvZHkge3sgbWFyZ2luOiAwIH19CkBAIC00MSw4ICs0MCw4IEBAIGRl
ZiBhc3NlcnRfb25lX2NsaWNrKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBsZShjbGlja3NbMF0p
CiAKIAotZGVmIHRlc3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uKToKLSAgICBzZXNzaW9uLnVy
bCA9IHNxdWFyZSg0NDQpCitkZWYgdGVzdF9lbnRpcmVseV9pbl92aWV3KHNlc3Npb24sIGlubGlu
ZSk6CisgICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoaW5saW5lLCA0NDQpCiAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoIiN0YXJnZXQiLCBhbGw9RmFsc2UpCiAKICAgICByZXNwb25zZSA9
IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKQEAgLTUzLDggKzUyLDggQEAgZGVmIHRl
c3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInNpemUiLCByYW5nZSgxLCAxMSkpCi1kZWYgdGVzdF9jc3NfcGl4ZWxfcm91bmRpbmcoc2Vz
c2lvbiwgc2l6ZSk6Ci0gICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoc2l6ZSkKK2RlZiB0ZXN0X2Nz
c19waXhlbF9yb3VuZGluZyhzZXNzaW9uLCBpbmxpbmUsIHNpemUpOgorICAgIHNlc3Npb24udXJs
ID0gc3F1YXJlKGlubGluZSwgc2l6ZSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
I3RhcmdldCIsIGFsbD1GYWxzZSkKICAgICBleHBlY3RlZF9jbGlja19wb2ludCA9IGNlbnRlcl9w
b2ludChlbGVtZW50KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2sucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2sucHkKaW5kZXgg
M2E1ZDczNzIxNmQ5Li5iMWIxMDE2MmU0ZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jbGljay5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2sv
Y2xpY2sucHkKQEAgLTEsNyArMSw2IEBACiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgRWxlbWVudAog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRf
c3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVm
IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiBl
bGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1l
bGVtZW50LmlkKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgor
ZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8cD5mb28iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJwIiwgYWxsPUZhbHNlKQogCkBAIC0yMiwxMCArMjEsMTcgQEAgZGVmIHRlc3RfbnVsbF9yZXNw
b25zZV92YWx1ZShzZXNzaW9uKToKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQo
c2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgZWxlbWVudCA9IEVsZW1lbnQoImZvbyIsIHNl
c3Npb24pCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpCisg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgb3JpZ2lu
YWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJlc3BvbnNlID0gZWxlbWVu
dF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hh
bmRsZQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rf
bm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIGVsZW1lbnQg
PSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2V2ZW50cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9ldmVu
dHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lM2QzMmMxYmNi
NDQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZXZlbnRzLnB5CkBAIC0wLDAgKzEsMzMgQEAKK2Zyb20g
d2ViZHJpdmVyIGltcG9ydCBFbGVtZW50Citmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0
ZXJfZGljdAorCitkZWYgZ2V0X2V2ZW50cyhzZXNzaW9uKToKKyAgICAiIiJSZXR1cm4gbGlzdCBv
ZiBtb3VzZSBldmVudHMgcmVjb3JkZWQgaW4gdGhlIGZpeHR1cmUuIiIiCisgICAgcmV0dXJuIHNl
c3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhbGxFdmVudHMuZXZlbnRzOyIpIG9yIFtdCisK
K2RlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgorICAgIHJldHVybiBzZXNzaW9u
LnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9l
bGVtZW50L3tlbGVtZW50X2lkfS9jbGljayIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9p
ZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQp
KQorCitkZWYgdGVzdF9ldmVudF9tb3VzZW1vdmUoc2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9u
LnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvdGVzdF9j
bGlja193ZHNwZWMuaHRtbCIpCisKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygnI291
dGVyJywgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBl
bGVtZW50KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgZXZlbnRzID0gZ2V0
X2V2ZW50cyhzZXNzaW9uKQorICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9PSA0CisKKyAgICBleHBl
Y3RlZCA9IFsKKyAgICAgICAgeyJ0eXBlIjogIm1vdXNlbW92ZSIsICJidXR0b25zIjogMCwgImJ1
dHRvbiI6IDB9LAorICAgICAgICB7InR5cGUiOiAibW91c2Vkb3duIiwgImJ1dHRvbnMiOiAxLCAi
YnV0dG9uIjogMH0sCisgICAgICAgIHsidHlwZSI6ICJtb3VzZXVwIiwgImJ1dHRvbnMiOiAwLCAi
YnV0dG9uIjogMH0sCisgICAgICAgIHsidHlwZSI6ICJjbGljayIsICJidXR0b25zIjogMCwgImJ1
dHRvbiI6IDB9LAorICAgIF0KKyAgICBmaWx0ZXJlZF9ldmVudHMgPSBbZmlsdGVyX2RpY3QoZSwg
ZXhwZWN0ZWRbMF0pIGZvciBlIGluIGV2ZW50c10KKworICAgIGFzc2VydCBleHBlY3RlZCA9PSBm
aWx0ZXJlZF9ldmVudHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9h
ZC5weQppbmRleCBjZDViYjQzNDIwNGQuLjczODMyZDBmODVhZSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2ZpbGVf
dXBsb2FkLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5weQpAQCAtMSw1ICsxLDUgQEAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKKwogCiBkZWYgZWxlbWVudF9j
bGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2Vu
ZCgKQEAgLTgsNyArOCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgog
ICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1kZWYgdGVzdF9maWxlX3Vw
bG9hZF9zdGF0ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2ZpbGVfdXBsb2FkX3N0YXRlKHNlc3Npb24s
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZT4iKQog
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9pbnRlcmFjdGFiaWxpdHkucHkKaW5kZXgg
NzQ2M2Q0OTNlM2Q4Li5kNTU4NjBjODc0NmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9pbnRlcmFjdGFiaWxpdHku
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL2ludGVyYWN0YWJpbGl0eS5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRl
c3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAK
IGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTEsNyArMTAsNyBAQCBk
ZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAgICAgICAgIGVsZW1lbnRf
aWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24pOgorZGVm
IHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiPGJ1dHRvbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+Zm9vYmFyPC9idXR0b24+IiIi
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAK
QEAgLTE5LDcgKzE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24pOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVm
IHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF92aXNpYmlsaXR5X2hp
ZGRlbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxidXR0
b24gc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+Zm9vYmFyPC9idXR0b24+IiIiKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAKQEAgLTI3LDcg
KzI2LDcgQEAgZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVz
dF9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbiBoaWRkZW4+Zm9vYmFyPC9idXR0b24+IikK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQogCkBA
IC0zNSw3ICszNCw3IEBAIGRlZiB0ZXN0X2hpZGRlbihzZXNzaW9uKToKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2Rp
c2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8YnV0dG9uIGRpc2FibGVkPmZvb2JhcjwvYnV0dG9u
PiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNl
KQogCkBAIC00NCw3ICs0Myw3IEBAIGRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgogCiAKIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgidHJhbnNmb3JtIiwgWyJ0cmFuc2xhdGUoLTEwMHB4LCAt
MTAwcHgpIiwgInJvdGF0ZSg1MGRlZykiXSkKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0
YWJsZV9jc3NfdHJhbnNmb3JtKHNlc3Npb24sIHRyYW5zZm9ybSk6CitkZWYgdGVzdF9lbGVtZW50
X25vdF9pbnRlcmFjdGFibGVfY3NzX3RyYW5zZm9ybShzZXNzaW9uLCBpbmxpbmUsIHRyYW5zZm9y
bSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxkaXYgc3R5bGU9Indp
ZHRoOiA1MDBweDsgaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsdWU7IHRyYW5zZm9ybToge3RyYW5zZm9ybX07Ij4KQEAgLTU1LDcgKzU0LDcgQEAgZGVmIHRl
c3RfZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlX2Nzc190cmFuc2Zvcm0oc2Vzc2lvbiwgdHJhbnNm
b3JtKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFi
bGUiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9vdXRfb2Zfdmlldyhz
ZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9vdXRfb2Zfdmlldyhz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8
c3R5bGU+CiAgICAgICAgIGlucHV0IHsKQEAgLTczLDcgKzcyLDcgQEAgZGVmIHRlc3RfZWxlbWVu
dF9ub3RfaW50ZXJhY3RhYmxlX291dF9vZl92aWV3KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgidGFnX25hbWUiLCBbImRpdiIsICJzcGFuIl0pCi1kZWYgdGVzdF96ZXJv
X3NpemVkX2VsZW1lbnQoc2Vzc2lvbiwgdGFnX25hbWUpOgorZGVmIHRlc3RfemVyb19zaXplZF9l
bGVtZW50KHNlc3Npb24sIGlubGluZSwgdGFnX25hbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ezB9PjwvezB9PiIuZm9ybWF0KHRhZ19uYW1lKSkKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcyh0YWdfbmFtZSwgYWxsPUZhbHNlKQogCkBAIC04MSw3ICs4MCw3IEBAIGRlZiB0
ZXN0X3plcm9fc2l6ZWRfZWxlbWVudChzZXNzaW9uLCB0YWdfbmFtZSk6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9l
bGVtZW50X2ludGVyY2VwdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbnRlcmNlcHRl
ZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAg
ICA8c3R5bGU+CiAgICAgICAgIGRpdiB7CkBAIC0xMDIsMTQgKzEwMSwxNCBAQCBkZWYgdGVzdF9l
bGVtZW50X2ludGVyY2VwdGVkKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
ImVsZW1lbnQgY2xpY2sgaW50ZXJjZXB0ZWQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfaW50ZXJj
ZXB0ZWRfbm9fcG9pbnRlcl9ldmVudHMoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2ludGVy
Y2VwdGVkX25vX3BvaW50ZXJfZXZlbnRzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPVJvZ2VyIHN0eWxlPSJwb2lu
dGVyLWV2ZW50czogbm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwg
ZWxlbWVudCkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IGNsaWNrIGludGVy
Y2VwdGVkIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X25vdF92aXNpYmxlX292ZXJmbG93X2hpZGRl
bihzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X3Zpc2libGVfb3ZlcmZsb3dfaGlkZGVu
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAg
IDxzdHlsZT4KICAgICAgICAgZGl2IHsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZpZ2F0ZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZp
Z2F0ZS5weQppbmRleCBkNzc2YTFlYjg0ZTYuLjQ5MjcxODI5MmExNyAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL25h
dmlnYXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9jbGljay9uYXZpZ2F0ZS5weQpAQCAtMSw1ICsxLDkgQEAKK2ltcG9ydCBweXRl
c3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24K
KwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9t
IHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5o
ZWxwZXJzIGltcG9ydCB3YWl0X2Zvcl9uZXdfaGFuZGxlCiBmcm9tIHRlc3RzLnN1cHBvcnQuc3lu
YyBpbXBvcnQgUG9sbAogCiAKQEAgLTEwLDcgKzE0LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vz
c2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAK
LWRlZiB0ZXN0X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0
X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIGxpbmsg
PSAiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvaW5wdXQuaHRtbCIKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj17dXJsfT4xMjM0NTY8L2E+Ii5mb3JtYXQo
dXJsPWxpbmspKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxsPUZhbHNl
KQpAQCAtMjIsNyArMjYsNyBAQCBkZWYgdGVzdF9udW1iZXJzX2xpbmsoc2Vzc2lvbiwgc2VydmVy
X2NvbmZpZyk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09ICJodHRwOi8ve2hvc3R9Ontwb3J0
fXt1cmx9Ii5mb3JtYXQoaG9zdD1ob3N0LCBwb3J0PXBvcnQsIHVybD1saW5rKQogCiAKLWRlZiB0
ZXN0X211bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X211
bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIGxpbmsg
PSAiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvaW5wdXQuaHRtbCIKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHAgc3R5bGU9ImJhY2tncm91bmQt
Y29sb3I6IHllbGxvdzsgd2lkdGg6IDUwcHg7Ij4KQEAgLTM3LDcgKzQxLDcgQEAgZGVmIHRlc3Rf
bXVsdGlfbGluZV9saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgogICAgIGFzc2VydCBzZXNz
aW9uLnVybCA9PSAiaHR0cDovL3tob3N0fTp7cG9ydH17dXJsfSIuZm9ybWF0KGhvc3Q9aG9zdCwg
cG9ydD1wb3J0LCB1cmw9bGluaykKIAogCi1kZWYgdGVzdF9saW5rX3VubG9hZF9ldmVudChzZXNz
aW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2ZW50KHNlc3Npb24s
IHNlcnZlcl9jb25maWcsIGlubGluZSk6CiAgICAgbGluayA9ICIvd2ViZHJpdmVyL3Rlc3RzL2Vs
ZW1lbnRfY2xpY2svc3VwcG9ydC9pbnB1dC5odG1sIgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8Ym9keSBvbnVubG9hZD0iY2hlY2tVbmxvYWQoKSI+CkBAIC02OCw3ICs3
Miw3IEBAIGRlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2ZW50KHNlc3Npb24sIHNlcnZlcl9jb25maWcp
OgogICAgIGFzc2VydCByZXNwb25zZSBpcyBUcnVlCiAKIAotZGVmIHRlc3RfbGlua19oYXNoKHNl
c3Npb24pOgorZGVmIHRlc3RfbGlua19oYXNoKHNlc3Npb24sIGlubGluZSk6CiAgICAgaWQgPSAi
YW5jaG9yIgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8YSBocmVmPSIj
e3VybH0iPmFhYWE8L2E+CkBAIC05MywzNCArOTcsOTQgQEAgZGVmIHRlc3RfbGlua19oYXNoKHNl
c3Npb24pOgogICAgICAgICAgICAgIiIiLCBhcmdzPShlbGVtZW50LCkpIGlzIFRydWUKIAogCi1k
ZWYgdGVzdF9saW5rX29wZW5fdGFyZ2V0X2luX25ld193aW5kb3coc2Vzc2lvbiwgdXJsKToKLSAg
ICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKK0BweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgidGFyZ2V0IiwgWworICAgICIiLAorICAgICJfYmxhbmsiLAorICAgICJfcGFyZW50IiwKKyAg
ICAiX3NlbGYiLAorICAgICJfdG9wIiwKK10pCitkZWYgdGVzdF9saW5rX2Zyb21fdG9wbGV2ZWxf
Y29udGV4dF93aXRoX3RhcmdldChzZXNzaW9uLCBpbmxpbmUsIHRhcmdldCk6CisgICAgdGFyZ2V0
X3BhZ2UgPSBpbmxpbmUoIjxwIGlkPSdmb28nPmZvbzwvcD4iKQogCi0gICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCi0gICAgICAgIDxhIGhyZWY9Int9IiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBp
biBuZXcgd2luZG93PC9hPgotICAgICIiIi5mb3JtYXQoaW5saW5lKCI8cCBpZD1mb28iKSkpCisg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9J3t9JyB0YXJnZXQ9J3t9Jz5jbGljazwv
YT4iLmZvcm1hdCh0YXJnZXRfcGFnZSwgdGFyZ2V0KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKIAorICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFu
ZGxlcworCiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpCiAg
ICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKLSAgICBkZWYgZmluZF9uZXdfaGFuZGxlKHNl
c3Npb24pOgotICAgICAgICBuZXdfaGFuZGxlcyA9IGxpc3Qoc2V0KHNlc3Npb24uaGFuZGxlcykg
LSBzZXQob3JpZ19oYW5kbGVzKSkKLSAgICAgICAgaWYgbmV3X2hhbmRsZXMgYW5kIGxlbihuZXdf
aGFuZGxlcykgPT0gMToKLSAgICAgICAgICAgIHJldHVybiBuZXdfaGFuZGxlc1swXQotICAgICAg
ICByZXR1cm4gTm9uZQorICAgIGlmIHRhcmdldCA9PSAiX2JsYW5rIjoKKyAgICAgICAgc2Vzc2lv
bi53aW5kb3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNzaW9uLCBvcmlnX2hhbmRs
ZXMpCiAKICAgICB3YWl0ID0gUG9sbCgKICAgICAgICAgc2Vzc2lvbiwKICAgICAgICAgdGltZW91
dD01LAotICAgICAgICBtZXNzYWdlPSJObyBuZXcgd2luZG93IGhhcyBiZWVuIG9wZW5lZCIpCi0g
ICAgbmV3X2hhbmRsZSA9IHdhaXQudW50aWwoZmluZF9uZXdfaGFuZGxlKQorICAgICAgICBpZ25v
cmVkX2V4Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAgICAgICAgbWVzc2FnZT0i
RXhwZWN0ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAgIHdhaXQudW50aWwobGFt
YmRhIHM6IHMuZmluZC5jc3MoIiNmb28iKSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
InRhcmdldCIsIFsKKyAgICAiIiwKKyAgICAiX2JsYW5rIiwKKyAgICAiX3BhcmVudCIsCisgICAg
Il9zZWxmIiwKKyAgICAiX3RvcCIsCitdKQorZGVmIHRlc3RfbGlua19mcm9tX25lc3RlZF9jb250
ZXh0X3dpdGhfdGFyZ2V0KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCB0YXJnZXQpOgorICAgIHRh
cmdldF9wYWdlID0gaW5saW5lKCI8cCBpZD0nZm9vJz5mb288L3A+IikKKworICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKGlmcmFtZSgiPGEgaHJlZj0ne30nIHRhcmdldD0ne30nPmNsaWNrPC9hPiIu
Zm9ybWF0KHRhcmdldF9wYWdlLCB0YXJnZXQpKSkKKyAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5j
c3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZSkK
KyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIuZm9ybWF0KHRhcmdldCksIGFsbD1G
YWxzZSkKIAotICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKLSAgICBzZXNz
aW9uLmZpbmQuY3NzKCIjZm9vIikKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMK
KworICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQorICAgIGFz
c2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgaWYgdGFyZ2V0ID09ICJfYmxhbmsiOgorICAg
ICAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNlc3Npb24s
IG9yaWdfaGFuZGxlcykKKworICAgICMgV2l0aCB0aGUgY3VycmVudCBicm93c2luZyBjb250ZXh0
IHJlbW92ZWQgdGhlIG5hdmlnYXRpb24gc2hvdWxkCisgICAgIyBub3QgdGltZW91dC4gU3dpdGNo
IHRvIHRoZSB0YXJnZXQgY29udGV4dCwgYW5kIHdhaXQgdW50aWwgdGhlIGV4cGVjdGVkCisgICAg
IyBlbGVtZW50IGlzIGF2YWlsYWJsZS4KKyAgICBpZiB0YXJnZXQgPT0gIl9wYXJlbnQiOgorICAg
ICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZSgicGFyZW50IikKKyAgICBlbGlmIHRhcmdldCA9PSAi
X3RvcCI6CisgICAgICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKE5vbmUpCisKKyAgICB3YWl0ID0g
UG9sbCgKKyAgICAgICAgc2Vzc2lvbiwKKyAgICAgICAgdGltZW91dD01LAorICAgICAgICBpZ25v
cmVkX2V4Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAgICAgICAgbWVzc2FnZT0i
RXhwZWN0ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAgIHdhaXQudW50aWwobGFt
YmRhIHM6IHMuZmluZC5jc3MoIiNmb28iKSkKKworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxv
bmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJr
LmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2xp
bmtfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgdXJsKToKKyAgICBiYXNlX3BhdGggPSAo
Ii93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1YmZyYW1lLmh0bWwiICsKKyAgICAgICAg
ICAgICAgICAgIj9waXBlPWhlYWRlcihDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSxzYW1lLW9y
aWdpbiIpCisgICAgdGFyZ2V0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMi
LCBkb21haW49ImFsdCIpCisKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0ne30n
PmNsaWNrIG1lPC9hPiIuZm9ybWF0KHRhcmdldF9wYWdlKSwgcHJvdG9jb2w9Imh0dHBzIikKKyAg
ICBsaW5rID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNl
ID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBsaW5rKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3Bv
bnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRhcmdldF9wYWdlCisKKyAgICBzZXNz
aW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0ZXN0X2xpbmtfY2xv
c2VzX3dpbmRvdyhzZXNzaW9uKToKK2RlZiB0ZXN0X2xpbmtfY2xvc2VzX3dpbmRvdyhzZXNzaW9u
LCBpbmxpbmUpOgogICAgIG5ld19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQogICAgIHNl
c3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9p
bnRvX3ZpZXcucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xpY2svc2Nyb2xsX2ludG9fdmlldy5weQppbmRleCA0YjAyNmU5ODZhMjEuLmMy
ZGM2NDg1Mjg2ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9s
bF9pbnRvX3ZpZXcucHkKQEAgLTIsNyArMiw3IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZy
b20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjZW50ZXJfcG9pbnQKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Np
b24sIGVsZW1lbnQpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKApAQCAtMTgs
NyArMTgsNyBAQCBkZWYgYXNzZXJ0X29uZV9jbGljayhzZXNzaW9uKToKICAgICByZXR1cm4gdHVw
bGUoY2xpY2tzWzBdKQogCiAKLWRlZiB0ZXN0X3Njcm9sbF9pbnRvX3ZpZXcoc2Vzc2lvbik6Citk
ZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dCB0eXBlPXRleHQgdmFsdWU9RmVkZXJlcgog
ICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwdmg7IHRvcDogNTAwdmgi
PiIiIikKQEAgLTM4LDcgKzM4LDcgQEAgZGVmIHRlc3Rfc2Nyb2xsX2ludG9fdmlldyhzZXNzaW9u
KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm9mZnNldCIsIHJhbmdlKDksIDAsIC0x
KSkKLWRlZiB0ZXN0X3BhcnRpYWxseV92aXNpYmxlX2RvZXNfbm90X3Njcm9sbChzZXNzaW9uLCBv
ZmZzZXQpOgorZGVmIHRlc3RfcGFydGlhbGx5X3Zpc2libGVfZG9lc19ub3Rfc2Nyb2xsKHNlc3Np
b24sIG9mZnNldCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAg
ICAgPHN0eWxlPgogICAgICAgICBib2R5IHt7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2VsZWN0LnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Nl
bGVjdC5weQppbmRleCBkY2Y5MmU2NDU4OTQuLjYyZDQwNzU1YjU5YiAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Nl
bGVjdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xpY2svc2VsZWN0LnB5CkBAIC0xLDcgKzEsNCBAQAotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRlc3RfY2xpY2tfb3B0aW9uKHNlc3Np
b24pOgorZGVmIHRlc3RfY2xpY2tfb3B0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAgICA8b3B0aW9uPmZpcnN0
CkBAIC0xNyw3ICsxNCw3IEBAIGRlZiB0ZXN0X2NsaWNrX29wdGlvbihzZXNzaW9uKToKICAgICBh
c3NlcnQgbm90IG9wdGlvbnNbMF0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19tdWx0aXBs
ZV9vcHRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9jbGlja19tdWx0aXBsZV9vcHRpb24oc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Qg
bXVsdGlwbGU+CiAgICAgICAgIDxvcHRpb24+Zmlyc3QKQEAgLTMzLDcgKzMwLDcgQEAgZGVmIHRl
c3RfY2xpY2tfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBub3Qgb3B0aW9u
c1sxXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX29wdGlvbihzZXNz
aW9uKToKK2RlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX29wdGlvbihzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdD4KICAgICAgICAg
PG9wdGlvbj5maXJzdApAQCAtNTMsNyArNTAsNyBAQCBkZWYgdGVzdF9jbGlja19wcmVzZWxlY3Rl
ZF9vcHRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBvcHRpb25zWzFdLnNlbGVjdGVkCiAK
IAotZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgor
ZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0IG11bHRpcGxl
PgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC03Myw3ICs3MCw3IEBAIGRlZiB0ZXN0X2NsaWNr
X3ByZXNlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IG9w
dGlvbnNbMV0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19kZXNlbGVjdHNfb3RoZXJzKHNl
c3Npb24pOgorZGVmIHRlc3RfY2xpY2tfZGVzZWxlY3RzX290aGVycyhzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdD4KICAgICAgICAg
PG9wdGlvbj5maXJzdApAQCAtOTIsNyArODksNyBAQCBkZWYgdGVzdF9jbGlja19kZXNlbGVjdHNf
b3RoZXJzKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzBdLnNlbGVjdGVkCiAKIAotZGVm
IHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJzKHNlc3Npb24pOgor
ZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJzKHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0IG11
bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xMTIsNyArMTA5LDcgQEAgZGVmIHRl
c3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJzKHNlc3Npb24pOgogICAg
IGFzc2VydCBvcHRpb25zWzJdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRf
b3B0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0Pgog
ICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xMzAsNyArMTI3LDcgQEAgZGVmIHRlc3RfY2xpY2tf
c2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzFdLnNlbGVjdGVk
CiAKIAotZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgor
ZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0IG11bHRpcGxlPgog
ICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xNTIsNyArMTQ5LDcgQEAgZGVmIHRlc3RfY2xpY2tf
c2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBub3Qgb3B0aW9u
c1sxXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X291dF9vZl92aWV3X2Ryb3Bkb3duKHNlc3Npb24p
OgorZGVmIHRlc3Rfb3V0X29mX3ZpZXdfZHJvcGRvd24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAgICAgICAgIDxvcHRpb24+
MQpAQCAtMTgyLDcgKzE3OSw3IEBAIGRlZiB0ZXN0X291dF9vZl92aWV3X2Ryb3Bkb3duKHNlc3Np
b24pOgogICAgIGFzc2VydCBvcHRpb25zWzE0XS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X291dF9v
Zl92aWV3X211bHRpcGxlKHNlc3Npb24pOgorZGVmIHRlc3Rfb3V0X29mX3ZpZXdfbXVsdGlwbGUo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxz
ZWxlY3QgbXVsdGlwbGU+CiAgICAgICAgIDxvcHRpb24+MQpAQCAtMjEzLDcgKzIxMCw3IEBAIGRl
ZiB0ZXN0X291dF9vZl92aWV3X211bHRpcGxlKHNlc3Npb24pOgogICAgIGFzc2VydCBsYXN0X29w
dGlvbi5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X29wdGlvbl9kaXNhYmxlZChzZXNzaW9uKToKK2Rl
ZiB0ZXN0X29wdGlvbl9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAgIDxvcHRpb24gZGlzYWJs
ZWQ+Zm9vCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zaGFkb3dfZG9tLnB5CmluZGV4
IGI1MmYyNzQyOWMxOS4uNDU0OTNiNzMwZDY5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xpY2svc2hhZG93X2RvbS5weQpAQCAtMSw2ICsxLDUgQEAKLWZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGltcG9ydCBweXRlc3QKK2Zyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIAogZGVm
IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMCw3ICs5LDggQEAgZGVmIGVs
ZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVs
ZW1lbnQuaWQpKQogCiAKLWRlZiBnZXRfY2hlY2tib3hfZG9tKCk6CitAcHl0ZXN0LmZpeHR1cmUK
K2RlZiBnZXRfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0dXJuIGlubGluZSgiIiIKICAg
ICAgICAgPHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQgewpAQCAt
MzIsOCArMzIsOCBAQCBkZWYgZ2V0X2NoZWNrYm94X2RvbSgpOgogCiAKIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgiY2xpY2tfb24iLCBbImN1c3RvbV9lbGVtZW50IiwgImNoZWNrYm94X2VsZW1l
bnQiXSkKLWRlZiB0ZXN0X3NoYWRvd19lbGVtZW50X2NsaWNrKHNlc3Npb24sIGNsaWNrX29uKToK
LSAgICBzZXNzaW9uLnVybCA9IGdldF9jaGVja2JveF9kb20oKQorZGVmIHRlc3Rfc2hhZG93X2Vs
ZW1lbnRfY2xpY2soc2Vzc2lvbiwgZ2V0X2NoZWNrYm94X2RvbSwgY2xpY2tfb24pOgorICAgIHNl
c3Npb24udXJsID0gZ2V0X2NoZWNrYm94X2RvbQogICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQiLCBhbGw9RmFsc2UpCiAgICAgY2hl
Y2tib3hfZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNb
MF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQpAQCAt
NDcsNyArNDcsOCBAQCBkZWYgdGVzdF9zaGFkb3dfZWxlbWVudF9jbGljayhzZXNzaW9uLCBjbGlj
a19vbik6CiAgICAgYXNzZXJ0IGlzX3Bvc3RfY2hlY2tlZCA9PSBUcnVlCiAKIAotZGVmIGdldF9u
ZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpOgorQHB5dGVzdC5maXh0dXJlCitkZWYgZ2V0X25l
c3RlZF9zaGFkb3dfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0dXJuIGlubGluZSgiIiIK
ICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLW5lc3RpbmctZWxlbWVudCB7CkBA
IC04Myw4ICs4NCw4IEBAIGRlZiBnZXRfbmVzdGVkX3NoYWRvd19jaGVja2JveF9kb20oKToKIAog
CiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNsaWNrX29uIiwgWyJvdXRlcl9lbGVtZW50Iiwg
ImlubmVyX2VsZW1lbnQiLCAiY2hlY2tib3hfZWxlbWVudCJdKQotZGVmIHRlc3RfbmVzdGVkX3No
YWRvd19lbGVtZW50X2NsaWNrKHNlc3Npb24sIGNsaWNrX29uKToKLSAgICBzZXNzaW9uLnVybCA9
IGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpCitkZWYgdGVzdF9uZXN0ZWRfc2hhZG93
X2VsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZ2V0X25lc3RlZF9zaGFkb3dfY2hlY2tib3hfZG9tLCBj
bGlja19vbik6CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfbmVzdGVkX3NoYWRvd19jaGVja2JveF9k
b20KICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLW5lc3Rpbmct
ZWxlbWVudCIsIGFsbD1GYWxzZSkKICAgICBpbm5lcl9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2N1
c3RvbS1jaGVja2JveC1lbGVtZW50JykiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3M9KG91dGVyX2VsZW1lbnQsKSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdGFsZS5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9j
bGljay9zdGFsZS5weQppbmRleCBjZDI0ZGQ3MDYwM2QuLjhkMmFlMzQ4ZWY0ZiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2Ns
aWNrL3N0YWxlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9jbGljay9zdGFsZS5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IKLWZyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1l
bnQpOgpAQCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6
CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiB0ZXN0X2lzX3N0
YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfaXNfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbj5mb288L2J1dHRvbj4iKQogICAgIGJ1dHRvbiA9
IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGJ1dHRvbj5iYXI8L2J1dHRvbj4iKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvdGVz
dF9jbGlja193ZHNwZWMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdXBwb3J0L3Rlc3RfY2xpY2tfd2RzcGVjLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hOTQ1MWVjODJiZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xpY2svc3VwcG9ydC90ZXN0X2NsaWNrX3dkc3BlYy5odG1sCkBAIC0wLDAgKzEs
MTAwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5UZXN0IEVsZW1lbnQgQ2xpY2s8L3RpdGxlPgorICAgIDxzdHlsZT4K
KyAgICAgIGRpdiB7IHBhZGRpbmc6MHB4OyBtYXJnaW46IDBweDsgfQorICAgICAgI3RyYWNrUG9p
bnRlciB7IHBvc2l0aW9uOiBmaXhlZDsgfQorICAgICAgI3Jlc3VsdENvbnRhaW5lciB7IHdpZHRo
OiA2MDBweDsgaGVpZ2h0OiA2MHB4OyB9CisgICAgICAuYXJlYSB7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOyB9CisgICAgICAuYmxvY2sgeyB3aWR0
aDogNXB4OyBoZWlnaHQ6IDVweDsgYm9yZGVyOiBzb2xpZCAxcHggcmVkOyB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0PgorICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgIHZhciBlbHMg
PSB7fTsKKyAgICAgICAgdmFyIGFsbEV2ZW50cyA9IHsgZXZlbnRzOiBbXSB9OworICAgICAgICBm
dW5jdGlvbiBkaXNwbGF5TWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZXZlbnRzIikuaW5uZXJIVE1MID0gIjxwPiIgKyBtZXNzYWdlICsgIjwv
cD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5kTWVzc2FnZShtZXNzYWdl
KSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRzIikuaW5uZXJI
VE1MICs9ICI8cD4iICsgbWVzc2FnZSArICI8L3A+IjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHJlY29yZFBvaW50ZXJFdmVudChldmVudCkgeworICAgICAgICAgIGlmIChldmVudC50
eXBlID09PSAiY29udGV4dG1lbnUiKSB7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpOworICAgICAgICAgIH0KKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRzLnB1c2goeworICAg
ICAgICAgICAgInR5cGUiOiBldmVudC50eXBlLAorICAgICAgICAgICAgImJ1dHRvbiI6IGV2ZW50
LmJ1dHRvbiwKKyAgICAgICAgICAgICJidXR0b25zIjogZXZlbnQuYnV0dG9ucywKKyAgICAgICAg
ICAgICJwYWdlWCI6IGV2ZW50LnBhZ2VYLAorICAgICAgICAgICAgInBhZ2VZIjogZXZlbnQucGFn
ZVksCisgICAgICAgICAgICAiY3RybEtleSI6IGV2ZW50LmN0cmxLZXksCisgICAgICAgICAgICAi
bWV0YUtleSI6IGV2ZW50Lm1ldGFLZXksCisgICAgICAgICAgICAiYWx0S2V5IjogZXZlbnQuYWx0
S2V5LAorICAgICAgICAgICAgInNoaWZ0S2V5IjogZXZlbnQuc2hpZnRLZXksCisgICAgICAgICAg
ICAidGFyZ2V0IjogZXZlbnQudGFyZ2V0LmlkCisgICAgICAgICAgfSk7CisgICAgICAgICAgYXBw
ZW5kTWVzc2FnZShldmVudC50eXBlICsgIiAiICsKKyAgICAgICAgICAgICAgImJ1dHRvbjogIiAr
IGV2ZW50LmJ1dHRvbiArICIsICIgKworICAgICAgICAgICAgICAicGFnZVg6ICIgKyBldmVudC5w
YWdlWCArICIsICIgKworICAgICAgICAgICAgICAicGFnZVk6ICIgKyBldmVudC5wYWdlWSArICIs
ICIgKworICAgICAgICAgICAgICAiYnV0dG9uOiAiICsgZXZlbnQuYnV0dG9uICsgIiwgIiArCisg
ICAgICAgICAgICAgICJidXR0b25zOiAiICsgZXZlbnQuYnV0dG9ucyArICIsICIgKworICAgICAg
ICAgICAgICAiY3RybEtleTogIiArIGV2ZW50LmN0cmxLZXkgKyAiLCAiICsKKyAgICAgICAgICAg
ICAgImFsdEtleTogIiArIGV2ZW50LmFsdEtleSArICIsICIgKworICAgICAgICAgICAgICAibWV0
YUtleTogIiArIGV2ZW50Lm1ldGFLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgInNoaWZ0S2V5
OiAiICsgZXZlbnQuc2hpZnRLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRhcmdldCBpZDog
IiArIGV2ZW50LnRhcmdldC5pZCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZWNv
cmRGaXJzdFBvaW50ZXJNb3ZlKGV2ZW50KSB7CisgICAgICAgICAgcmVjb3JkUG9pbnRlckV2ZW50
KGV2ZW50KTsKKyAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3Zl
IiwgcmVjb3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biByZXNldEV2ZW50cygpIHsKKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRzLmxlbmd0aCA9IDA7
CisgICAgICAgICAgZGlzcGxheU1lc3NhZ2UoIiIpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gbW92ZShlbCwgb2Zmc2V0WCwgb2Zmc2V0WSwgdGltZW91dCkgeworICAgICAgICAgIHJl
dHVybiBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgZWwuc3R5bGUudG9wID0gZXZlbnQuY2xpZW50WSArIG9mZnNldFkg
KyAicHgiOworICAgICAgICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gZXZlbnQuY2xpZW50WCArIG9m
ZnNldFggKyAicHgiOworICAgICAgICAgICAgfSwgdGltZW91dCk7CisgICAgICAgICAgfTsKKyAg
ICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRM
b2FkZWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgb3V0ZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0ZXIiKTsKKyAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2Vtb3ZlIiwgcmVjb3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAgICAgICAgb3V0ZXIuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIG91
dGVyLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAg
ICAgICAgICBvdXRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCByZWNvcmRQb2ludGVy
RXZlbnQpOworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCByZWNv
cmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRl
eHRtZW51IiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKworICAgICAgICAgIC8vdmlzdWFsIGN1ZSBm
b3IgbW91c2Vtb3ZlCisgICAgICAgICAgdmFyIHBvaW50ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidHJhY2tQb2ludGVyIik7CisgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlbW92ZSIsIG1vdmUocG9pbnRlciwgMTUsIDE1LCAzMCkpOworICAgICAgICB9KTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0cmFja1BvaW50ZXIiIGNs
YXNzPSJibG9jayI+PC9kaXY+CisgIDxkaXY+CisgICAgPGgyPkNsaWNrUmVwb3J0ZXI8L2gyPgor
ICAgIDxkaXYgaWQ9Im91dGVyIiBjbGFzcz0iYXJlYSI+CisgICAgPC9kaXY+CisgIDwvZGl2Pgor
ICA8ZGl2IGlkPSJyZXN1bHRDb250YWluZXIiPgorICAgIDxoMj5FdmVudHM8L2gyPgorICAgIDxk
aXYgaWQ9ImV2ZW50cyI+PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsaWNrL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21wdHMucHkKaW5kZXggYjM3MDZmZTRh
ZjE2Li4xNDBhY2ViM2NlZGYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21wdHMucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Vz
ZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xNCw3ICsx
Myw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3Qu
Zml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCBy
ZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4i
KQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2Up
CkBAIC0zMiw3ICszMSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUwLDcgKzQ5LDcgQEAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVudF9lZGl0YWJsZS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5k
X2tleXMvY29udGVudF9lZGl0YWJsZS5weQppbmRleCAxNmViYzJkMDE4ZmIuLjdmNjI4Zjk2YTUz
YSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X3NlbmRfa2V5cy9jb250ZW50X2VkaXRhYmxlLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVu
dF9lZGl0YWJsZS5weQpAQCAtMSw5ICsxLDQgQEAKLWltcG9ydCBweXRlc3QKLQotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRlc3Rfc2V0c19pbnNlcnRp
b25fcG9pbnRfdG9fZW5kKHNlc3Npb24pOgorZGVmIHRlc3Rfc2V0c19pbnNlcnRpb25fcG9pbnRf
dG9fZW5kKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoJzxkaXYg
Y29udGVudGVkaXRhYmxlPXRydWU+SGVsbG8sPC9kaXY+JykKICAgICBpbnB1dCA9IHNlc3Npb24u
ZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKICAgICBpbnB1dC5zZW5kX2tleXMoJyB3b3JsZCEn
KQpAQCAtMTUsNyArMTAsNyBAQCBkZWYgdGVzdF9zZXRzX2luc2VydGlvbl9wb2ludF90b19lbmQo
c2Vzc2lvbik6CiAjCiAjIDEzLiBTZXQgdGhlIHRleHQgaW5zZXJ0aW9uIGNhcmV0IHVzaW5nIHNl
dCBzZWxlY3Rpb24gcmFuZ2UgdXNpbmcgY3VycmVudAogIyAgICAgdGV4dCBsZW5ndGggZm9yIGJv
dGggdGhlIHN0YXJ0IGFuZCBlbmQgcGFyYW1ldGVycy4KLWRlZiB0ZXN0X3NldHNfaW5zZXJ0aW9u
X3BvaW50X3RvX2FmdGVyX2xhc3RfdGV4dF9ub2RlKHNlc3Npb24pOgorZGVmIHRlc3Rfc2V0c19p
bnNlcnRpb25fcG9pbnRfdG9fYWZ0ZXJfbGFzdF90ZXh0X25vZGUoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgnPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZT5IZWw8
c3Bhbj5sbzwvc3Bhbj4sPC9kaXY+JykKICAgICBpbnB1dCA9IHNlc3Npb24uZmluZC5jc3MoImRp
diIsIGFsbD1GYWxzZSkKICAgICBpbnB1dC5zZW5kX2tleXMoIiB3b3JsZCEiKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3Nl
bmRfa2V5cy9ldmVudHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2V2ZW50cy5weQppbmRleCA0MWIwMGVmMzdmYTIuLjRi
ZTE0MzJiZjNjMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMu
cHkKQEAgLTUsNyArNSw2IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAg
ICAgYXNzZXJ0X2V2ZW50c19lcXVhbCwKICAgICBhc3NlcnRfc3VjY2VzcywKICkKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IG1hcF9maWxl
c190b19tdWx0aWxpbmVfdGV4dAogCkBAIC0zMSw3ICszMCw3IEBAIGRlZiBlbGVtZW50X3NlbmRf
a2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0pCiAK
IAotZGVmIHRlc3RfZmlsZV91cGxvYWQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBhZGRfZXZlbnRf
bGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYgdGVzdF9maWxlX3VwbG9hZChzZXNzaW9u
LCBjcmVhdGVfZmlsZXMsIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCBpbmxp
bmUpOgogICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImlucHV0IiwKICAgICAgICAg
ImNoYW5nZSIsCkBAIC01MCw3ICs0OSw3IEBAIGRlZiB0ZXN0X2ZpbGVfdXBsb2FkKHNlc3Npb24s
IGNyZWF0ZV9maWxlcywgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpCiAKIAog
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0YWciLCBbImlucHV0IiwgInRleHRhcmVhIl0pCi1k
ZWYgdGVzdF9mb3JtX2NvbnRyb2xfc2VuZF90ZXh0KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5l
cnMsIHRyYWNrZWRfZXZlbnRzLCB0YWcpOgorZGVmIHRlc3RfZm9ybV9jb250cm9sX3NlbmRfdGV4
dChzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgaW5saW5lLCB0
YWcpOgogICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImZvY3VzIiwKICAgICAgICAg
ImtleWRvd24iLApAQCAtNzcsNyArNzYsNyBAQCBkZWYgdGVzdF9mb3JtX2NvbnRyb2xfc2VuZF90
ZXh0KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCB0YQogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFnIiwgWyJpbnB1dCIsICJ0ZXh0YXJlYSJdKQot
ZGVmIHRlc3Rfbm90X2JsdXJyZWQoc2Vzc2lvbiwgdGFnKToKK2RlZiB0ZXN0X25vdF9ibHVycmVk
KHNlc3Npb24sIGlubGluZSwgdGFnKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPCVzPiIg
JSB0YWcpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBhbGw9RmFsc2UpCiAK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ZpbGVfdXBsb2FkLnB5Cmlu
ZGV4IDdmYmFiOGE2NmFhNC4uZWY3OTJmNGRkODU1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ZpbGVfdXBs
b2FkLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQg
cHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3Is
IGFzc2VydF9maWxlc191cGxvYWRlZCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IG1hcF9maWxlc190b19tdWx0
aWxpbmVfdGV4dAogCkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNz
aW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0pCiAKIAotZGVmIHRl
c3RfZW1wdHlfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2VtcHR5X3RleHQoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZT4iKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMjIs
NyArMjEsNyBAQCBkZWYgdGVzdF9lbXB0eV90ZXh0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X211bHRpcGxlX2Zp
bGVzKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0aXBsZV9maWxlcyhzZXNz
aW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJm
b28iLCAiYmFyIl0pCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9Zmls
ZSBtdWx0aXBsZT4iKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgdGVzdF9tdWx0aXBsZV9maWxlcyhz
ZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9u
LCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxlc19sYXN0X3BhdGhf
bm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0aXBsZV9maWxl
c19sYXN0X3BhdGhfbm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAg
ICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKICAgICBmaWxlcy5hcHBlbmQo
ImZvbyBiYXIiKQogCkBAIC00OSw3ICs0OCw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX2xh
c3RfcGF0aF9ub3RfZm91bmQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmls
ZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgW10pCiAKIAotZGVmIHRlc3RfbXVsdGlwbGVf
ZmlsZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToK
K2RlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3dpdGhvdXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Np
b24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZv
byIsICJiYXIiXSkKIAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxl
PiIpCkBAIC02Miw3ICs2MSw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3dpdGhvdXRfbXVs
dGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVz
X3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIFtdKQogCiAKLWRlZiB0ZXN0X211bHRpcGxlX2Zp
bGVzX3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxl
X2ZpbGVzX3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZp
cnN0X2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogICAgIHNlY29uZF9maWxl
cyA9IGNyZWF0ZV9maWxlcyhbImpvaG4iLCAiZG9lIl0pCiAKQEAgLTgwLDcgKzc5LDcgQEAgZGVm
IHRlc3RfbXVsdGlwbGVfZmlsZXNfc2VuZF90d2ljZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgog
ICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaXJzdF9maWxlcyAr
IHNlY29uZF9maWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxlc19yZXNldF93aXRoX2Vs
ZW1lbnRfY2xlYXIoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxlX2Zp
bGVzX3Jlc2V0X3dpdGhfZWxlbWVudF9jbGVhcihzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGlu
ZSk6CiAgICAgZmlyc3RfZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAgICAg
c2Vjb25kX2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiam9obiIsICJkb2UiXSkKIApAQCAtMTAyLDcg
KzEwMSw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3Jlc2V0X3dpdGhfZWxlbWVudF9jbGVh
cihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNz
aW9uLCBlbGVtZW50LCBzZWNvbmRfZmlsZXMpCiAKIAotZGVmIHRlc3Rfc2luZ2xlX2ZpbGUoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3NpbmdsZV9maWxlKHNlc3Npb24sIGNyZWF0
ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogCiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKQEAgLTExNCw3ICsx
MTMsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAg
IGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYg
dGVzdF9zaW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxlX2F0dHJpYnV0ZShzZXNz
aW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc2luZ2xlX2ZpbGVfcmVwbGFjZXNfd2l0aG91
dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAg
IGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogCiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKQEAgLTEyOSw3ICsxMjgsNyBAQCBkZWYgdGVz
dF9zaW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxlX2F0dHJpYnV0ZShzZXNzaW9u
LCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVt
ZW50LCBbZmlsZXNbMV1dKQogCiAKLWRlZiB0ZXN0X3NpbmdsZV9maWxlX2FwcGVuZHNfd2l0aF9t
dWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3Npbmds
ZV9maWxlX2FwcGVuZHNfd2l0aF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2Zp
bGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQog
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGUgbXVsdGlwbGU+IikK
QEAgLTE0NCw3ICsxNDMsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZV9hcHBlbmRzX3dpdGhfbXVs
dGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVz
X3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X3RyYW5zcGFy
ZW50KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF90cmFuc3BhcmVudChzZXNzaW9u
LCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28i
XSkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgdHlwZT1maWxlIHN0eWxlPSJv
cGFjaXR5OiAwIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQpAQCAtMTU0LDcgKzE1Myw3IEBAIGRlZiB0ZXN0X3RyYW5zcGFyZW50KHNlc3Np
b24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVs
ZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X29ic2N1cmVkKHNlc3Npb24sIGNyZWF0ZV9maWxl
cyk6CitkZWYgdGVzdF9vYnNjdXJlZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAg
ICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPHN0eWxlPgpAQCAtMTc4LDcgKzE3Nyw3IEBAIGRlZiB0ZXN0X29ic2N1
cmVkKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNl
c3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X291dHNpZGVfdmlld3BvcnQoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X291dHNpZGVfdmlld3BvcnQoc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0p
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9ZmlsZSBzdHlsZT0ibWFy
Z2luLWxlZnQ6IC0xMDB2aCI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKQEAgLTE4OCw3ICsxODcsNyBAQCBkZWYgdGVzdF9vdXRzaWRlX3Zp
ZXdwb3J0KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVk
KHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X2hpZGRlbihzZXNzaW9uLCBj
cmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5s
aW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIGhpZGRlbj4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTE5OCw3ICsxOTcsNyBAQCBkZWYg
dGVzdF9oaWRkZW4oc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBs
b2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25l
KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0p
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9ZmlsZSBzdHlsZT0iZGlz
cGxheTogbm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKQEAgLTIwOSw3ICsyMDgsNyBAQCBkZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzKToKIAogCiBAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsic3Ry
aWN0RmlsZUludGVyYWN0YWJpbGl0eSI6IFRydWV9KQotZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihz
ZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihzZXNzaW9uLCBj
cmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBoaWRkZW4+IikKICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0yMTks
NyArMjE4LDcgQEAgZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMp
OgogCiAKIEBweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJzdHJpY3RGaWxlSW50ZXJhY3RhYmls
aXR5IjogVHJ1ZX0pCi1kZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGNyZWF0
ZV9maWxlcyk6CitkZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGNyZWF0ZV9m
aWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWZpbGUgc3R5bGU9ImRpc3BsYXk6IG5v
bmUiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJv
bHMucHkKaW5kZXggZTUzZDA2MTBmMWVkLi4wNDAzZGM5MjM3MmUgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMv
Zm9ybV9jb250cm9scy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkKQEAgLTEsNSArMSw0
IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2VsZW1lbnRfaGFz
X2ZvY3VzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYg
ZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CkBAIC0xMCw3ICs5LDcg
QEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgogICAgICAg
ICB7InRleHQiOiB0ZXh0fSkKIAogCi1kZWYgdGVzdF9pbnB1dChzZXNzaW9uKToKK2RlZiB0ZXN0
X2lucHV0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
ICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgpAQCAtMjAsNyArMTks
NyBAQCBkZWYgdGVzdF9pbnB1dChzZXNzaW9uKToKICAgICBhc3NlcnRfZWxlbWVudF9oYXNfZm9j
dXMoZWxlbWVudCkKIAogCi1kZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uKToKK2RlZiB0ZXN0X3Rl
eHRhcmVhKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0ZXh0
YXJlYT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJ0ZXh0YXJlYSIsIGFsbD1G
YWxzZSkKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgpAQCAtMzAs
NyArMjksNyBAQCBkZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uKToKICAgICBhc3NlcnRfZWxlbWVu
dF9oYXNfZm9jdXMoZWxlbWVudCkKIAogCi1kZWYgdGVzdF9pbnB1dF9hcHBlbmQoc2Vzc2lvbik6
CitkZWYgdGVzdF9pbnB1dF9hcHBlbmQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZh
bHVlIikgPT0gImEiCkBAIC00Miw3ICs0MSw3IEBAIGRlZiB0ZXN0X2lucHV0X2FwcGVuZChzZXNz
aW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiYWJjIgogCiAK
LWRlZiB0ZXN0X3RleHRhcmVhX2FwcGVuZChzZXNzaW9uKToKK2RlZiB0ZXN0X3RleHRhcmVhX2Fw
cGVuZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGV4dGFy
ZWE+YTwvdGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFy
ZWEiLCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0g
ImEiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvaW50ZXJhY3Rh
YmlsaXR5LnB5CmluZGV4IDA3MTc1MzdhZTVkOC4uMjczODQzZmI3YjQ2IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9r
ZXlzL2ludGVyYWN0YWJpbGl0eS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weQpAQCAt
MSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJy
b3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJh
bWUsIGlubGluZQogCiAKIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0
ZXh0KToKQEAgLTEwLDcgKzksNyBAQCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxl
bWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9KQogCiAKLWRlZiB0ZXN0X2JvZHlf
aXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfYm9keV9pc19pbnRlcmFjdGFibGUo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAg
PGJvZHkgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZSAr
PSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAgLTI5LDcgKzI4LDcgQEAgZGVmIHRl
c3RfYm9keV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHJlc3VsdC5wcm9w
ZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0X2RvY3VtZW50X2VsZW1lbnRfaXNf
aW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfZG9jdW1lbnRfZWxlbWVudF9pc19pbnRl
cmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIK
ICAgICAgICAgPGh0bWwgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQn
KS52YWx1ZSArPSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAgLTQ5LDcgKzQ4LDcg
QEAgZGVmIHRlc3RfZG9jdW1lbnRfZWxlbWVudF9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0
X2lmcmFtZV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9pZnJhbWVfaXNfaW50
ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZShpZnJhbWUoIiIiCiAgICAgICAgIDxib2R5IG9ua2V5cHJlc3M9ImRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2lucHV0JykudmFsdWUgKz0gZXZlbnQua2V5Ij4KICAgICAgICAgICA8aW5wdXQ+
CkBAIC03Myw3ICs3Miw3IEBAIGRlZiB0ZXN0X2lmcmFtZV9pc19pbnRlcmFjdGFibGUoc2Vzc2lv
bik6CiAgICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgogCiAKLWRl
ZiB0ZXN0X3RyYW5zcGFyZW50X2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF90cmFuc3BhcmVu
dF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIi
PGlucHV0IHN0eWxlPSJvcGFjaXR5OiAwIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC04Miw3ICs4MSw3IEBAIGRlZiB0ZXN0X3Ry
YW5zcGFyZW50X2VsZW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHko
InZhbHVlIikgPT0gImZvbyIKIAogCi1kZWYgdGVzdF9yZWFkb25seV9lbGVtZW50KHNlc3Npb24p
OgorZGVmIHRlc3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgcmVhZG9ubHk+IikKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTkxLDcgKzkwLDcgQEAgZGVmIHRl
c3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0
eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X29ic2N1cmVkX2VsZW1lbnQoc2Vzc2lvbik6
CitkZWYgdGVzdF9vYnNjdXJlZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8aW5wdXQ+CiAgICAgICA8ZGl2IHN0eWxlPSJwb3Np
dGlvbjogcmVsYXRpdmU7IHRvcDogLTNlbTsgaGVpZ2h0OiA1ZW07IGJhY2tncm91bmQ6IGJsdWU7
Ij48L2Rpdj4KQEAgLTEwMyw3ICsxMDIsNyBAQCBkZWYgdGVzdF9vYnNjdXJlZF9lbGVtZW50KHNl
c3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIpID09ICJmb28iCiAK
IAotZGVmIHRlc3Rfbm90X2FfZm9jdXNhYmxlX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9u
b3RfYV9mb2N1c2FibGVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8ZGl2PmZvbzwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImRpdiIsIGFsbD1GYWxzZSkKIApAQCAtMTExLDcgKzExMCw3IEBAIGRlZiB0ZXN0X25vdF9h
X2ZvY3VzYWJsZV9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
ImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25lKHNl
c3Npb24pOgorZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBub25lIj4iIiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0x
MTksNyArMTE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24pOgogICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRl
c3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF92aXNpYmlsaXR5X2hpZGRl
bihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBz
dHlsZT0idmlzaWJpbGl0eTogaGlkZGVuIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0xMjcsNyArMTI2LDcgQEAgZGVmIHRlc3Rf
dmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
ZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbik6
CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IGhpZGRlbj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTM1LDcgKzEzNCw3IEBAIGRlZiB0ZXN0X2hpZGRlbihz
ZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFj
dGFibGUiKQogCiAKLWRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzYWJs
ZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQg
ZGlzYWJsZWQ+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFs
bD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192aWV3LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9z
Y3JvbGxfaW50b192aWV3LnB5CmluZGV4IDE4Zjg3ZmZhYWVjNi4uMjA1YzRlMzBlMWVkIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfc2VuZF9rZXlzL3Njcm9sbF9pbnRvX3ZpZXcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192
aWV3LnB5CkBAIC0xLDYgKzEsNiBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgaXNfZWxl
bWVudF9pbl92aWV3cG9ydAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CisKIAogZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgogICAg
IHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKApAQCAtMTAsNyArMTAsNyBAQCBkZWYgZWxl
bWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6
IHRleHR9KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9ub3Rfc2Nyb2xsYWJsZV92
aWV3cG9ydChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9ub3Rfc2Nyb2xs
YWJsZV92aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IC05OTk5cHg7XCI+IikK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAg
LTIwLDcgKzIwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX25vdF9zY3JvbGxhYmxl
X3ZpZXdwb3J0KHNlc3Npb24pOgogICAgIGFzc2VydCBub3QgaXNfZWxlbWVudF9pbl92aWV3cG9y
dChzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9zY3Jv
bGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Nj
cm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IHN0eWxlPVwibWFyZ2luLXRvcDogMTAydmg7XCI+IikKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTMwLDcgKzMwLDcg
QEAgZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lv
bik6CiAgICAgYXNzZXJ0IGlzX2VsZW1lbnRfaW5fdmlld3BvcnQoc2Vzc2lvbiwgZWxlbWVudCkK
IAogCi1kZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9vdXRzaWRlX29mX3Njcm9sbGFi
bGVfdmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9v
dXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdCBzdHlsZT0ibWFyZ2luLXRvcDog
MTAydmg7Ij4KICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb28iPmZvbzwvb3B0aW9uPgpAQCAt
NDcsNyArNDcsNyBAQCBkZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9vdXRzaWRlX29m
X3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGlzX2VsZW1lbnRfaW5f
dmlld3BvcnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9vcHRpb25fc3RheXNfb3V0
c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRlc3Rfb3B0aW9uX3N0
YXlzX291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0IG11bHRpcGxlIHN0eWxl
PSJoZWlnaHQ6IDEwNXZoOyBtYXJnaW4tdG9wOiAxMDB2aDsiPgogICAgICAgICAgIDxvcHRpb24g
dmFsdWU9ImZvbyIgaWQ9ImZvbyIgc3R5bGU9ImhlaWdodDogMTAwdmg7Ij5mb288L29wdGlvbj4K
QEAgLTY2LDcgKzY2LDcgQEAgZGVmIHRlc3Rfb3B0aW9uX3N0YXlzX291dHNpZGVfb2Zfc2Nyb2xs
YWJsZV92aWV3cG9ydChzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IGlzX2VsZW1lbnRfaW5fdmll
d3BvcnQoc2Vzc2lvbiwgb3B0aW9uX2JhcikKIAogCi1kZWYgdGVzdF9jb250ZW50ZWRpdGFibGVf
ZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVz
dF9jb250ZW50ZWRpdGFibGVfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdiBjb250ZW50
ZWRpdGFibGUgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMDJ2aDtcIj48L2Rpdj4iKQogICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tl
eXMvc2VuZF9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zZW5kX2tleXMucHkKaW5kZXggZWRmOTFlNzc2MTQ4Li5h
YTM5M2UxNmQ4MTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2Vu
ZF9rZXlzLnB5CkBAIC00LDcgKzQsNiBAQCBmcm9tIHdlYmRyaXZlciBpbXBvcnQgRWxlbWVudAog
ZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0
ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1lbnRfc2VuZF9r
ZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgpAQCAtMTUsNyArMTQsNyBAQCBkZWYgZWxlbWVu
dF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRl
eHR9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgor
ZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0yNSw3ICsyNCw3IEBAIGRlZiB0ZXN0
X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgogICAgICAgICBhc3NlcnRfZXJy
b3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFsaWQgYXJndW1lbnQiKQogCiAK
LWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jl
c3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1G
YWxzZSkKIApAQCAtMzYsMTAgKzM1LDE3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUo
c2Vzc2lvbik6CiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNs
b3NlZF93aW5kb3cpOgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQorICAg
IHJlc3BvbnNlID0gZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgImZvbyIpCisg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgb3JpZ2lu
YWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJlc3BvbnNlID0gZWxlbWVu
dF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0g
b3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9u
LCBlbGVtZW50LCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVs
ZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2Vk
X2ZyYW1lKToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikKQEAgLTQ5LDcg
KzU1LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJh
bWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbVHJ1ZSwgTm9uZSwg
MSwgW10sIHt9XSkKLWRlZiB0ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNlc3Npb24sIHZhbHVlKToK
K2RlZiB0ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNlc3Npb24sIGlubGluZSwgdmFsdWUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTU3LDcgKzYzLDcgQEAgZGVmIHRlc3Rf
aW52YWxpZF90ZXh0X3R5cGUoc2Vzc2lvbiwgdmFsdWUpOgogICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X3N0YWxlX2VsZW1lbnQoc2Vz
c2lvbik6CitkZWYgdGVzdF9zdGFsZV9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy91c2VyX3Byb21wdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
c2VuZF9rZXlzL3VzZXJfcHJvbXB0cy5weQppbmRleCA2MjFiZGZmYTY2NDIuLmMxMDQ2ODQwZmE0
ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X3NlbmRfa2V5cy91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy91c2VyX3Byb21w
dHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAK
IGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKQEAgLTE1LDcg
KzE0LDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQi
LCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAg
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUx
LDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvY29sbGVj
dGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4
ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CmluZGV4IDQ4NGEyNDdjZmZkOS4uMmRj
OWI5YTAwOWFjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3Jp
cHQvY29sbGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBpbXBvcnQgb3MKIAotZnJvbSBzaXgg
aW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNz
ZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxp
bmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZXNzaW9uLCBz
Y3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC0zNSw3ICszMiw3IEBAIGRlZiB0ZXN0X2FycmF5KHNlc3Np
b24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0pCiAKIAotZGVmIHRlc3Rf
ZmlsZV9saXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxlX2xpc3Qoc2Vzc2lvbiwg
dG1wZGlyLCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2luKCJmb28udHh0IiksIHRt
cGRpci5qb2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNTQsMTEgKzUxLDExIEBAIGRlZiB0ZXN0X2ZpbGVf
bGlzdChzZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChm
aWxlcywgdmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhY3R1YWwsIGRpY3QpCiAg
ICAgICAgIGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGFjdHVhbFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFj
dHVhbFsibmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRoLmJhc2VuYW1lKHN0cihl
eHBlY3RlZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVj
dGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAg
ICAgIDxwPmJhcgpAQCAtODYsNyArODMsNyBAQCBkZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9u
KHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgcHNbMV0sIHZhbHVl
WzVdKQogCiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0
bWxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC0xMDQsNyArMTAxLDcgQEAg
ZGVmIHRlc3RfaHRtbF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAgICBhc3NlcnRfc2FtZV9l
bGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVmIHRlc3RfaHRtbF9mb3Jt
X2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1sX2Zvcm1fY29udHJv
bHNfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgIDxpbnB1dD4KQEAgLTEyNCw3ICsxMjEs
NyBAQCBkZWYgdGVzdF9odG1sX2Zvcm1fY29udHJvbHNfY29sbGVjdGlvbihzZXNzaW9uKToKICAg
ICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAK
LWRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRt
bF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdD4KICAgICAgICAgICAgIDxvcHRpb24+CkBAIC0x
NDQsNyArMTQxLDcgQEAgZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbik6
CiAgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkK
IAogCi1kZWYgdGVzdF9ub2RlX2xpc3Qoc2Vzc2lvbik6CitkZWYgdGVzdF9ub2RlX2xpc3Qoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+
Zm9vCiAgICAgICAgIDxwPmJhcgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2Fz
eW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5CmluZGV4IGM3NjljYTgxMWVlMC4uNTc0NmVkNmYw
NWYzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2V4ZWN1dGVfYXN5bmMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9l
eGVjdXRlX2FzeW5jLnB5CkBAIC0xLDggKzEsMTAgQEAKIGltcG9ydCBweXRlc3QKIAorZnJvbSB3
ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBmcm9tIHdlYmRyaXZl
ci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCitmcm9tIHRlc3RzLnN1cHBvcnQu
c3luYyBpbXBvcnQgUG9sbAogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZXNzaW9uLCBz
Y3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC01MCw5ICs1MiwxNiBAQCBkZWYgdGVzdF9hYm9ydF9ieV91
c2VyX3Byb21wdF90d2ljZShzZXNzaW9uLCBkaWFsb2dfdHlwZSk6CiAKICAgICBzZXNzaW9uLmFs
ZXJ0LmFjY2VwdCgpCiAKLSAgICAjIFRoZSBmaXJzdCBhbGVydCBoYXMgYmVlbiBhY2NlcHRlZCBi
eSB0aGUgdXNlciBwcm9tcHQgaGFuZGxlciwgdGhlIHNlY29uZCBvbmUgcmVtYWlucy4KLSAgICAj
IEZJWE1FOiB0aGlzIGlzIGhvdyBicm93c2VycyBjdXJyZW50bHkgd29yaywgYnV0IHRoZSBzcGVj
IHNob3VsZCBjbGFyaWZ5IGlmIHRoaXMgaXMgdGhlCi0gICAgIyAgICAgICAgZXhwZWN0ZWQgYmVo
YXZpb3IsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvMTE1My4K
LSAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09ICJCeWUiCisgICAgIyBUaGUgZmlyc3Qg
YWxlcnQgaGFzIGJlZW4gYWNjZXB0ZWQgYnkgdGhlIHVzZXIgcHJvbXB0IGhhbmRsZXIsIHRoZSBz
ZWNvbmQKKyAgICAjIGFsZXJ0IHdpbGwgc3RpbGwgYmUgb3BlbmVkIGJlY2F1c2UgdGhlIGN1cnJl
bnQgc3RlcCBpc24ndCBhYm9ydGVkLgorICAgIHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9u
LAorICAgICAgICB0aW1lb3V0PTUsCisgICAgICAgIG1lc3NhZ2U9IlNlY29uZCBhbGVydCBoYXMg
bm90IGJlZW4gb3BlbmVkIiwKKyAgICAgICAgaWdub3JlZF9leGNlcHRpb25zPU5vU3VjaEFsZXJ0
RXhjZXB0aW9uCisgICAgKQorICAgIHRleHQgPSB3YWl0LnVudGlsKGxhbWJkYSBzOiBzLmFsZXJ0
LnRleHQpCisKKyAgICBhc3NlcnQgdGV4dCA9PSAiQnllIgogCiAgICAgc2Vzc2lvbi5hbGVydC5h
Y2NlcHQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9w
ZXJ0aWVzLnB5CmluZGV4IDM5NGFlMzI5NGNkMy4uZTUxYjNlM2VhNTc5IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNf
c2NyaXB0L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CkBAIC0xLDUg
KzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zYW1lX2Vs
ZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdz
PU5vbmUpOgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lv
biwgc2NyaXB0LCBhcmdzPU5vbmUpOgogICAgICAgICBib2R5KQogCiAKLWRlZiB0ZXN0X2NvbnRl
bnRfYXR0cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZvb2Jh
cj4iKQogICAgIHJlc3BvbnNlID0gZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwgIiIiCiAg
ICAgICAgIGNvbnN0IHJlc29sdmUgPSBhcmd1bWVudHNbMF07CkBAIC0yMSw3ICsyMCw3IEBAIGRl
ZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24pOgor
ZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQ+CiAgICAgICAgIDxzY3JpcHQ+CkBAIC0zNyw3
ICszNiw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxl
bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxlbWVudChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAg
ICAgICAgPHA+YmFyCkBAIC01OSw3ICs1OCw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxl
bWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGJhciwgdmFs
dWUpCiAKIAotZGVmIHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24pOgorZGVm
IHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQo
IiIiCiAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQi
KTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZXhlY3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CmluZGV4
IGJlMGIzYTAxOGM1MC4uODI5MWZkNzEzODhiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2NvbGxlY3Rpb25zLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0
ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBpbXBvcnQgb3MKIAotZnJv
bSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCBz
Y3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC0zMSw3ICsyOCw3IEBAIGRlZiB0ZXN0X2FycmF5KHNlc3Np
b24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0pCiAKIAotZGVmIHRlc3Rf
ZmlsZV9saXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxlX2xpc3Qoc2Vzc2lvbiwg
dG1wZGlyLCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2luKCJmb28udHh0IiksIHRt
cGRpci5qb2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNDcsMTEgKzQ0LDExIEBAIGRlZiB0ZXN0X2ZpbGVf
bGlzdChzZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChm
aWxlcywgdmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhY3R1YWwsIGRpY3QpCiAg
ICAgICAgIGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGFjdHVhbFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFj
dHVhbFsibmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRoLmJhc2VuYW1lKHN0cihl
eHBlY3RlZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVj
dGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAg
ICAgIDxwPmJhcgpAQCAtNzYsNyArNzMsNyBAQCBkZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9u
KHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgcHNbMV0sIHZhbHVl
WzVdKQogCiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0
bWxfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC05MSw3ICs4OCw3IEBAIGRl
ZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAgYXNzZXJ0X3NhbWVfZWxl
bWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0X2h0bWxfZm9ybV9j
b250cm9sc19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xz
X2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgICAgPGZvcm0+CiAgICAgICAgICAgICA8aW5wdXQ+CkBAIC0xMDgsNyArMTA1LDcg
QEAgZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAgICAg
ICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAogCi1k
ZWYgdGVzdF9odG1sX29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxf
b3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiCiAgICAgICAgIDxzZWxlY3Q+CiAgICAgICAgICAgICA8b3B0aW9uPgpAQCAtMTI1
LDcgKzEyMiw3IEBAIGRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24pOgog
ICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAK
IAotZGVmIHRlc3Rfbm9kZV9saXN0KHNlc3Npb24pOgorZGVmIHRlc3Rfbm9kZV9saXN0KHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwPmZv
bwogICAgICAgICA8cD5iYXIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9jeWNsaWMucHkK
aW5kZXggMTZiZGNkZDFkZWE1Li5lMzA5NGY4OWYzYjcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0
ZV9zY3JpcHQvY3ljbGljLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1
Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBl
eGVjdXRlX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC00OSw3ICs0OCw3
IEBAIGRlZiB0ZXN0X29iamVjdF9pbl9hcnJheShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJqYXZhc2NyaXB0IGVycm9yIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X2luX2Nv
bGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2luX2NvbGxlY3Rpb24oc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48L2Rpdj4iKQogICAg
IGRpdnMgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiKQogCkBAIC02Myw3ICs2Miw3IEBAIGRlZiB0
ZXN0X2VsZW1lbnRfaW5fY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAgYXNzZXJ0X3NhbWVf
ZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRf
aW5fb2JqZWN0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbl9vYmplY3Qoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48L2Rpdj4iKQogICAgIGRp
diA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9l
eGVjdXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
eGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5CmluZGV4IGJkNzE5YjI3ODU5ZS4uMGY5MzRjYmI0NDUw
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2V4ZWN1dGVfc2NyaXB0L2V4ZWN1dGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5CkBAIC0xLDkgKzEs
OSBAQAogaW1wb3J0IHB5dGVzdAogCitmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNo
QWxlcnRFeGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0
ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0zNCw3ICszNCw3IEBAIGRlZiB0
ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfb3Blbmlu
Z19uZXdfd2luZG93X2tlZXBzX2N1cnJlbnRfd2luZG93X2hhbmRsZShzZXNzaW9uKToKK2RlZiB0
ZXN0X29wZW5pbmdfbmV3X3dpbmRvd19rZWVwc19jdXJyZW50X3dpbmRvd19oYW5kbGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndpbmRvd19oYW5kbGUK
ICAgICBvcmlnaW5hbF9oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCiAKQEAgLTU3LDcgKzU3LDcg
QEAgZGVmIHRlc3RfZW5kaW5nX2NvbW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UsIDEpCiAKIAotZGVmIHRlc3Rfb3ZlcnJpZGVfbGlzdGVuZXJzKHNlc3Npb24pOgor
ZGVmIHRlc3Rfb3ZlcnJpZGVfbGlzdGVuZXJzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiCiA8c2NyaXB0PgogY2FsbGVkID0gW107CkBAIC04OCw5ICs4OCwx
NiBAQCBkZWYgdGVzdF9hYm9ydF9ieV91c2VyX3Byb21wdF90d2ljZShzZXNzaW9uLCBkaWFsb2df
dHlwZSk6CiAKICAgICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCiAKLSAgICAjIFRoZSBmaXJzdCBh
bGVydCBoYXMgYmVlbiBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9tcHQgaGFuZGxlciwgdGhlIHNl
Y29uZCBvbmUgcmVtYWlucy4KLSAgICAjIEZJWE1FOiB0aGlzIGlzIGhvdyBicm93c2VycyBjdXJy
ZW50bHkgd29yaywgYnV0IHRoZSBzcGVjIHNob3VsZCBjbGFyaWZ5IGlmIHRoaXMgaXMgdGhlCi0g
ICAgIyAgICAgICAgZXhwZWN0ZWQgYmVoYXZpb3IsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYmRyaXZlci9pc3N1ZXMvMTE1My4KLSAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09
ICJCeWUiCisgICAgIyBUaGUgZmlyc3QgYWxlcnQgaGFzIGJlZW4gYWNjZXB0ZWQgYnkgdGhlIHVz
ZXIgcHJvbXB0IGhhbmRsZXIsIHRoZSBzZWNvbmQKKyAgICAjIGFsZXJ0IHdpbGwgc3RpbGwgYmUg
b3BlbmVkIGJlY2F1c2UgdGhlIGN1cnJlbnQgc3RlcCBpc24ndCBhYm9ydGVkLgorICAgIHdhaXQg
PSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUsCisgICAgICAgIG1l
c3NhZ2U9IlNlY29uZCBhbGVydCBoYXMgbm90IGJlZW4gb3BlbmVkIiwKKyAgICAgICAgaWdub3Jl
ZF9leGNlcHRpb25zPU5vU3VjaEFsZXJ0RXhjZXB0aW9uCisgICAgKQorICAgIHRleHQgPSB3YWl0
LnVudGlsKGxhbWJkYSBzOiBzLmFsZXJ0LnRleHQpCisKKyAgICBhc3NlcnQgdGV4dCA9PSAiQnll
IgogCiAgICAgc2Vzc2lvbi5hbGVydC5hY2NlcHQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRl
X3NjcmlwdC9wcm9wZXJ0aWVzLnB5CmluZGV4IDJiZTRmMWYzY2NjOS4uNTE5OTk5MzZlNzFhIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4
ZWN1dGVfc2NyaXB0L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CkBAIC0xLDUg
KzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zYW1lX2Vs
ZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdzPU5vbmUp
OgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBh
cmdzPU5vbmUpOgogICAgICAgICBib2R5KQogCiAKLWRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRl
KHNlc3Npb24pOgorZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZvb2Jhcj4iKQogICAgIHJl
c3BvbnNlID0gZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgIiIiCiAgICAgICAgIGNvbnN0IGlucHV0
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKQEAgLTIwLDcgKzE5LDcgQEAgZGVm
IHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6Citk
ZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dD4KICAgICAgICAgPHNjcmlwdD4KQEAgLTM1LDcg
KzM0LDcgQEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3Vj
Y2VzcyhyZXNwb25zZSwgImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVt
ZW50KHNlc3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwPmZvbwogICAg
ICAgICA8cD5iYXIKQEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVt
ZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgYmFyLCB2YWx1
ZSkKIAogCi1kZWYgdGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbik6CitkZWYg
dGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwg
IiIiCiAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQi
KTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50L2ZpbmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CmluZGV4IDlmMDkxMWQ1NmRjMC4uNDUx
MDYxN2RhNWE2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L2ZpbmQucHkKQEAgLTMsNyArMyw2
IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9u
c2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxp
bmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZh
bHVlKToKQEAgLTQ4LDcgKzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVu
dChzZXNzaW9uLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBs
aW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFn
IG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIp
XSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRl
c3RfZmluZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICAjIFN0
ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0jIGlkPWxpbmtUZXh0
PmZ1bGwgbGluayB0ZXh0PC9hPiIpCiAKQEAgLTY0LDcgKzYzLDcgQEAgZGVmIHRlc3RfZmluZF9l
bGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElOSyBURVhU
PC9hPiIsICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zv
cm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVz
dF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYg
dGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZh
bHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShkb2N1bWVu
dCkKIApAQCAtODEsNyArODAsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNl
c3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRF
WFQ8L2E+IiwgIkxJTksiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06
IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksiKSwKIF0pCi1kZWYgdGVz
dF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVl
KToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxp
bmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoZG9jdW1lbnQpCiAKQEAgLTEwMiw3ICsxMDEsNyBAQCBkZWYgdGVzdF9ub19lbGVt
ZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
cGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRo
IiwgIi8vKltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9u
LCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIGlubGlu
ZSwgdXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8YSBocmVmPSIj
IiBpZD0ibGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPiIiIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N0eXBlPSJ4aHRtbCIpCiAgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQubGlua3NbMF0iKQpAQCAtMTE2LDcgKzExNSw3IEBAIGRl
ZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIsICI6cm9vdCIpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImh0bWwiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCJ4cGF0aCIsICIvaHRtbCIpXSkKLWRlZiB0ZXN0X2h0bWxkb2N1bWVudChzZXNzaW9u
LCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Npb24sIGlubGluZSwg
dXNpbmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikKICAgICByZXNwb25z
ZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMu
cHkKaW5kZXggNjEzNDY2YjYyYjUxLi5hZGE4ZThlYmVlMzMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L3VzZXJfcHJv
bXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nlc3MsCiAgICAgYXNzZXJ0
X2RpYWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgpAQCAtMTgs
NyArMTcsNyBAQCBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5iYXI8L3A+
IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCkBA
IC0zNiw3ICszNSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8cD5iYXI8L3A+IikKIApAQCAtNTEsNyArNTAsNyBAQCBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywg
aW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJhcjwv
cD4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fZWxlbWVudC9m
aW5kLnB5CmluZGV4IGFhNjQ4MTE3OTc2Yi4uODc5ZGUzNzEzZjk5IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9t
X2VsZW1lbnQvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weQpAQCAtMyw3ICszLDYg
QEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25z
ZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3Nl
cnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBlbGVtZW50X2lk
LCB1c2luZywgdmFsdWUpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZmluZF9lbGVtZW50KHNlc3Np
b24sIGVsZW1lbnRfaWQsIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgIHsidXNpbmciOiB1c2luZywg
InZhbHVlIjogdmFsdWV9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Np
b24sIGh0dHApOgorZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48YSBocmVmPSMgaWQ9bGlu
a1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQogCkBAIC01NCw3ICs1Myw3IEBAIGRlZiB0ZXN0X2lu
dmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCJ4cGF0aCIsICIvL2EiKV0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnQoc2Vzc2lvbiwg
dXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIHVz
aW5nLCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTcwLDcg
KzY5LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAg
ICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhy
ZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJM
SU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24s
IGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Np
b24sIGlubGluZSwgZG9jdW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTg4LDcgKzg3
LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwg
dmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9hPiIsICJMSU5LIiks
CiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPnBhcnRp
YWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVmIHRlc3RfZmluZF9lbGVtZW50X3Bh
cnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5k
X2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFs
dWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2Pnsw
fTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtOTgsNyArOTcsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1l
bnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKIAogCiBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwgWygiY3NzIHNlbGVjdG9yIiwgIiN3
b250RXhpc3QiKV0pCi1kZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6
CitkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAg
ICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48L2Rpdj4iKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC0xMTIs
NyArMTExLDcgQEAgZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4
dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvLypbbmFtZSgpPSdhJ10iKV0pCi1kZWYg
dGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X3ho
dG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiPHA+PGEgaHJlZj0iIyIgaWQ9ImxpbmtUZXh0Ij5mdWxsIGxpbmsg
dGV4dDwvYT48L3A+IiIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3R5cGU9InhodG1s
IikKICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiInJldHVybiBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwIikiIiIpCkBAIC0xMjMsNyArMTIyLDcgQEAgZGVmIHRl
c3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgYXNzZXJ0X3Nh
bWVfZWxlbWVudChzZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQpCiAKIAotZGVmIHRlc3RfcGFyZW50
X2h0bWxkb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9odG1sZG9jdW1lbnQoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikKICAgICBmcm9tX2Vs
ZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiInJldHVybiBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJib2R5IikiIiIpCiAgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IikKQEAgLTEzMyw3ICsxMzIsNyBAQCBk
ZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2Vs
ZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9vZl9k
b2N1bWVudF9ub2RlX2Vycm9ycyhzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVu
dF9ub2RlX2Vycm9ycyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiKQogICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQiKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvdXNl
cl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQppbmRleCAzZmRhZjRl
NDdlZDcuLjA1MzdhNzg2MTg5YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0
cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CkBAIC04LDcgKzgsNiBAQCBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFzc2VydF9zdWNjZXNzLAog
ICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZCwKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgZWxlbWVudF9pZCwg
dXNpbmcsIHZhbHVlKToKQEAgLTIwLDcgKzE5LDcgQEAgZGVmIGZpbmRfZWxlbWVudChzZXNzaW9u
LCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBv
dXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtMzks
NyArMzgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNTUsNyArNTQsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxk
aXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvY29u
ZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjhmYzkzMzE5ZjQzCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRf
ZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5IEBACitpbXBvcnQgcHl0
ZXN0CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFnZShpbmxpbmUpOgorICAg
IGRlZiBnZXRfc2hhZG93X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAgICAgICByZXR1cm4gaW5s
aW5lKCIiIgorICAgICAgICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVudD48L2N1c3RvbS1zaGFk
b3ctZWxlbWVudD4KKyAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgICAgY3VzdG9t
RWxlbWVudHMuZGVmaW5lKCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAorICAgICAgICAgICAgICAg
ICAgICBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdHJ1Y3RvcigpIHt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVy
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHt7
bW9kZTogJ29wZW4nfX0pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHt7IHswfSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19CisgICAgICAgICAgICAgICAgICAgIH19KTsK
KyAgICAgICAgICAgIDwvc2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2NvbnRlbnQpKQorICAgIHJl
dHVybiBnZXRfc2hhZG93X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjg3OTQxZDQ5NWUxMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93
X3Jvb3QvZmluZC5weQpAQCAtMCwwICsxLDE0MSBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdl
YmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9z
dWNjZXNzCisKKworZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfaWQsIHVzaW5nLCB2
YWx1ZSk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJQT1NU
IiwgInNlc3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lkfS9lbGVtZW50Ii5mb3Jt
YXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAg
ICAgIHNoYWRvd19pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5nIjogdXNpbmcsICJ2YWx1
ZSI6IHZhbHVlfSkKKworCitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBo
dHRwLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdl
KCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQor
ICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVt
ZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93
X3Jvb3QKKworICAgIHBhdGggPSAiL3Nlc3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93
X2lkfS9lbGVtZW50Ii5mb3JtYXQoCisgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9u
X2lkLCBzaGFkb3dfaWQ9c2hhZG93X3Jvb3QuaWQpCisgICAgd2l0aCBodHRwLnBvc3QocGF0aCwg
Tm9uZSkgYXMgcmVzcG9uc2U6CisgICAgICAgIGFzc2VydF9lcnJvcihSZXNwb25zZS5mcm9tX2h0
dHAocmVzcG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVmIHRlc3Rfbm9fdG9wX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBm
aW5kX2VsZW1lbnQoc2Vzc2lvbiwgIm5vdFJlYWwiLCAiY3NzIHNlbGVjdG9yIiwgImZvbyIpCisg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQorCisKK2RlZiB0ZXN0
X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKKyAgICByZXNwb25z
ZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCAiZm9v
IikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKworQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyIsIFsiYSIsIFRydWUsIE5vbmUsIDEsIFtdLCB7
fV0pCitkZWYgdGVzdF9pbnZhbGlkX3VzaW5nX2FyZ3VtZW50KHNlc3Npb24sIHVzaW5nKToKKyAg
ICAjIFN0ZXAgMSAtIDIKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCAibm90
UmVhbCIsIHVzaW5nLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFs
aWQgYXJndW1lbnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbTm9u
ZSwgW10sIHt9XSkKK2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwg
dmFsdWUpOgorICAgICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNl
c3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsIHZhbHVlKQorICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK2RlZiB0ZXN0X2RldGFjaGVkX3No
YWRvd19yb290KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAgc2Vzc2lvbi51cmwgPSBn
ZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+PC9kaXY+IikKKyAg
ICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVu
dCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19y
b290CisgICAgc2Vzc2lvbi5yZWZyZXNoKCkKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50
KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIiwgImlucHV0IikKKyAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJkZXRhY2hlZCBzaGFkb3cgcm9vdCIpCisKKworZGVmIHRlc3RfZm91bmRf
ZWxlbWVudF9lcXVpdmFsZW5jZShzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Np
b24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPjwv
ZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hh
ZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5w
dXQnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3Rv
bV9lbGVtZW50LCkpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9v
dAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAi
Y3NzIiwgImlucHV0IikKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAg
IGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQorCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIFsoImNzcyBzZWxlY3RvciIsICIjbGlua1RleHQiKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCJsaW5rIHRleHQiLCAiZnVsbCBsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICgieHBhdGgiLCAiLy9hIildKQorZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIGdl
dF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNz
aW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVs
bCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBleHBlY3RlZCA9
IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCcjbGlua1RleHQnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0
b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Np
b24sIHNoYWRvd19yb290LmlkLCB1c2luZywgdmFsdWUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQp
CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2YWx1ZSIsIFsKKyAgICAo
IjxhIGhyZWY9Iz5saW5rIHRleHQ8L2E+IiwgImxpbmsgdGV4dCIpLAorICAgICgiPGEgaHJlZj0j
PiZuYnNwO2xpbmsgdGV4dCZuYnNwOzwvYT4iLCAibGluayB0ZXh0IiksCisgICAgKCI8YSBocmVm
PSM+bGluazxicj50ZXh0PC9hPiIsICJsaW5rXG50ZXh0IiksCisgICAgKCI8YSBocmVmPSM+bGlu
ayZhbXA7dGV4dDwvYT4iLCAibGluayZ0ZXh0IiksCisgICAgKCI8YSBocmVmPSM+TElOSyBURVhU
PC9hPiIsICJMSU5LIFRFWFQiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zv
cm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKK10pCitkZWYgdGVz
dF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgZG9jdW1l
bnQsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFk
b3dfcGFnZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCisgICAgY3VzdG9tX2Vs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFs
c2UpCisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1l
bnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnYScpWzBdIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1lbnQsKSkKKyAgICBz
aGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisKKyAgICByZXNwb25zZSA9
IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImxpbmsgdGV4dCIsIHZhbHVl
KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQo
c2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
ZG9jdW1lbnQsdmFsdWUiLCBbCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rIHRleHQ8L2E+
IiwgImxpbmsiKSwKKyAgICAoIjxhIGhyZWY9Iz4mbmJzcDtwYXJ0aWFsIGxpbmsgdGV4dCZuYnNw
OzwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIs
ICJrIHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4iLCAia1xu
dCIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayZhbXA7dGV4dDwvYT4iLCAiayZ0Iiks
CisgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJTksiKSwKKyAgICAo
IjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5r
IHRleHQ8L2E+IiwgIkxJTksiKSwKK10pCitkZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9s
aW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVudCwgdmFsdWUpOgorICAg
ICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2Pnsw
fTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBleHBlY3Rl
ZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yQWxsKCdhJylbMF0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQorICAgIHNoYWRvd19yb290ID0gY3Vz
dG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNl
c3Npb24sIHNoYWRvd19yb290LmlkLCAicGFydGlhbCBsaW5rIHRleHQiLCB2YWx1ZSkKKyAgICBh
c3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24s
IHZhbHVlLCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZh
bHVlIiwgWygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCitkZWYgdGVzdF9ub19lbGVt
ZW50KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAg
OCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48L2Rpdj4iKQor
ICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVt
ZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93
X3Jvb3QKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290
LmlkLCB1c2luZywgdmFsdWUpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBl
bGVtZW50IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRf
ZnJvbV9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi4zODEzYTdkZjVkMzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3No
YWRvd19yb290L3VzZXJfcHJvbXB0cy5weQpAQCAtMCwwICsxLDEyOSBAQAorIyBNRVRBOiB0aW1l
b3V0PWxvbmcKKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgKAorICAgIGFzc2VydF9lcnJvciwKKyAgICBhc3NlcnRfc2FtZV9lbGVtZW50LAorICAg
IGFzc2VydF9zdWNjZXNzLAorICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZCwKKykKKworCitkZWYg
ZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZhbHVlKToKKyAgICByZXR1
cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vz
c2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnQiLmZvcm1hdCgKKyAgICAgICAgICAg
IHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAgZWxlbWVudF9pZD1z
aGFkb3dfaWQpLAorICAgICAgICB7InVzaW5nIjogdXNpbmcsICJ2YWx1ZSI6IHZhbHVlfSkKKwor
CitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBl
LCByZXR2YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48
cD5iYXI8L3A+PGRpdj4iKQorICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgICAgICBzaGFkb3dfcm9v
dCA9IG91dGVyX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICAgICAgaW5uZXJfZWxlbWVudCA9IHNl
c3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdwJykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcmdzPShvdXRlcl9lbGVtZW50LCkpCisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhk
aWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAgICByZXNwb25zZSA9IGZpbmRf
ZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyBzZWxlY3RvciIsICJwIikKKyAg
ICAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgICAgICBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0
ZWRfcmV0dmFsPXJldHZhbCkKKworICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24s
IHZhbHVlLCBpbm5lcl9lbGVtZW50KQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBn
ZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0
X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2Up
CisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAg
ICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAg
ICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mg
c2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInVuZXhwZWN0
ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24s
IGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCisKKyAg
ICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uCisKKworQHB5
dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6Cisg
ICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2
PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hh
ZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxl
bWVudC5zaGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRl
eHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lv
biwgc2hhZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0
IHNlc3Npb24uYWxlcnQudGV4dCA9PSBkaWFsb2dfdHlwZQorICAgICAgICBzZXNzaW9uLmFsZXJ0
LmRpc21pc3MoKQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbgorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9t
cHRCZWhhdmlvciI6ICJhY2NlcHQifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9n
X3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwg
VHJ1ZSksCisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3RfYWNjZXB0KGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6
CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFBy
b21wdEJlaGF2aW9yIjogImFjY2VwdCBhbmQgbm90aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAg
ICgiY29uZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2Fj
Y2VwdF9hbmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwg
ZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxp
dGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRpc21pc3MifSkKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9u
ZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0IiwgTm9uZSksCitdKQor
ZGVmIHRlc3RfZGlzbWlzcyhjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5j
YXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIGFuZCBub3Rp
ZnkifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsK
KyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJv
bXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzc19hbmRfbm90aWZ5KGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2
aW9yIjogImlnbm9yZSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSIs
IFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2RlZiB0ZXN0X2lnbm9yZShjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24sIGRpYWxvZ190eXBlKToKKyAgICBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAg
ICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQi
LCBOb25lKSwKK10pCitkZWYgdGVzdF9kZWZhdWx0KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVu
dHMvZmluZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZmluZF9lbGVtZW50cy9maW5kLnB5CmluZGV4IGMxMzgxYTBlODJhYy4uNDdmMDA5NzM5Mzg1IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudHMvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0
IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9l
bGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKQEAg
LTQ4LDcgKzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9u
LCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQi
LCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAi
YSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0
ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRf
ZWxlbWVudHMoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0g
OQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBs
aW5rIHRleHQ8L2E+IikKIApAQCAtNjUsNyArNjQsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRz
KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIs
ICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVzdF9maW5k
X2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVmIHRlc3Rf
ZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFsdWUp
OgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSM+
bm90IHdhbnRlZDwvYT48YnIvPnswfSIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBleHBlY3RlZCA9
IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5saW5rc1sxXTsiKQpAQCAt
ODgsNyArODcsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBk
b2N1bWVudCwgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9hPiIs
ICJMSU5LIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNh
c2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVmIHRlc3RfZmluZF9l
bGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVm
IHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRv
Y3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9Ii5mb3JtYXQoZG9jdW1lbnQpKQog
ICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50Lmxp
bmtzWzFdOyIpCkBAIC0xMTYsNyArMTE1LDcgQEAgZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9u
LCB1c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGlu
ayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBu
YW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvLypbbmFt
ZSgpPSdhJ10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZh
bHVlKToKK2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2
YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGEgaHJlZj0iIyIgaWQ9ImxpbmtU
ZXh0Ij5mdWxsIGxpbmsgdGV4dDwvYT4iIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZG9j
dHlwZT0ieGh0bWwiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0
dXJuIGRvY3VtZW50LmxpbmtzWzBdOyIpCkBAIC0xMzQsNyArMTMzLDcgQEAgZGVmIHRlc3RfeGh0
bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgWygiY3NzIHNlbGVjdG9yIiwgIjpyb290IiksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgidGFnIG5hbWUiLCAiaHRtbCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhw
YXRoIiwgIi9odG1sIildKQotZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Npb24sIHVzaW5nLCB2
YWx1ZSk6CitkZWYgdGVzdF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFs
dWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIHJlc3BvbnNlID0gZmluZF9l
bGVtZW50cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2Vz
cyhyZXNwb25zZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvdXNlcl9wcm9tcHRz
LnB5CmluZGV4IDAxZWI4ZmYzYzg2My4uZjlhNDVlNTI3NTE1IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvdXNlcl9w
cm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nlc3MsCiAgICAgYXNz
ZXJ0X2RpYWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKQEAg
LTE4LDcgKzE3LDcgQEAgZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToK
IAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJh
cjwvcD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxz
ZSkKQEAgLTM4LDcgKzM3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUK
LWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJhcjwvcD4iKQogCkBAIC01Myw3ICs1Miw3IEBAIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+
YmFyPC9wPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2Vs
ZW1lbnQvZmluZC5weQppbmRleCA1YzI2N2JhNjQ3OWUuLmFlNmY5NzZlOWY5NyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1l
bnRzX2Zyb21fZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5weQpAQCAt
Myw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9y
dCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwg
ZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKQEAgLTE0LDcgKzEzLDcgQEAgZGVmIGZpbmRfZWxl
bWVudHMoc2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKICAgICAgICAgeyJ1c2lu
ZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCiAKIAotZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJf
dmFsdWUoc2Vzc2lvbiwgaHR0cCk6CitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNz
aW9uLCBodHRwLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhy
ZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKQEAgLTU0LDcgKzUzLDcgQEAg
ZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0Iiks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVu
dHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lv
biwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwv
YT48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFs
c2UpCkBAIC03MCw3ICs2OSw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNp
bmcsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+IiwgIkxJTksgVEVYVCIp
LAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5saW5r
IHRleHQ8L2E+IiwgIkxJTksgVEVYVCIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfbGlu
a190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRz
X2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVw
IDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jPm5vdCB3YW50
ZWQ8L2E+PGJyLz57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTk0LDcgKzkzLDcgQEAgZGVmIHRl
c3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKICAg
ICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4iLCAiTElOSyIpLAogICAgICgiPGEg
aHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4
dDwvYT4iLCAiTElOSyIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5r
X3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHNf
cGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFsdWUpOgogICAg
ICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9Iz5u
b3Qgd2FudGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQogICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC0xMTAsNyArMTA5LDcg
QEAgZGVmIHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1
bWVudCwgdmFsdWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUi
LCBbKCJjc3Mgc2VsZWN0b3IiLCAiI3dvbnRFeGlzdCIpXSkKLWRlZiB0ZXN0X25vX2VsZW1lbnQo
c2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwgaW5s
aW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8ZGl2PjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRp
diIsIGFsbD1GYWxzZSkKQEAgLTEyNCw3ICsxMjMsNyBAQCBkZWYgdGVzdF9ub19lbGVtZW50KHNl
c3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlh
bCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
dGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8v
KltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2lu
ZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIGlubGluZSwgdXNp
bmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8cD48YSBocmVmPSIjIiBp
ZD0ibGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPjwvcD4iIiIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQogICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhl
Y3V0ZV9zY3JpcHQoIiIicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInAiKSIiIikKQEAg
LTEzOSw3ICsxMzgsNyBAQCBkZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcs
IHZhbHVlKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZvdW5kX2VsZW1lbnQs
IGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9odG1sZG9jdW1lbnQoc2Vzc2lvbik6Citk
ZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIpCiAgICAgZnJvbV9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3Nj
cmlwdCgiIiJyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpIiIiKQogICAgIGV4
cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudCIpCkBAIC0xNTMsNyArMTUyLDcgQEAgZGVmIHRlc3RfcGFyZW50X2h0bWxkb2N1bWVu
dChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZvdW5kX2VsZW1l
bnQsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9ub2RlX2Vycm9y
cyhzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9ub2RlX2Vycm9ycyhzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIGZyb21fZWxl
bWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQiKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19m
cm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGNhN2JjNzczNWQwOC4uNDY3YmVjMDlh
MWJkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJv
bV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAgZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfc3VjY2VzcywKICAgICBhc3NlcnRfZGlh
bG9nX2hhbmRsZWQsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUp
OgpAQCAtMjAsNyArMTksNyBAQCBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBlbGVtZW50X2lk
LCB1c2luZywgdmFsdWUpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNDEsNyArNDAsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
ZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNTcsNyArNTYsNyBAQCBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PHA+YmFyPC9w
PjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIs
IGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRz
X2Zyb21fc2hhZG93X3Jvb3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi5iOGZjOTMzMTlmNDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFk
b3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5IEBACitpbXBvcnQgcHl0ZXN0CisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFnZShpbmxpbmUpOgorICAgIGRlZiBnZXRf
c2hhZG93X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAgICAgICByZXR1cm4gaW5saW5lKCIiIgor
ICAgICAgICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVudD48L2N1c3RvbS1zaGFkb3ctZWxlbWVu
dD4KKyAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAorICAgICAgICAgICAgICAgICAgICBjbGFz
cyBleHRlbmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJ1
Y3RvcigpIHt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHt7bW9kZTogJ29w
ZW4nfX0pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHt7IHswfSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH19CisgICAgICAgICAgICAgICAgICAgIH19KTsKKyAgICAgICAg
ICAgIDwvc2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2NvbnRlbnQpKQorICAgIHJldHVybiBnZXRf
c2hhZG93X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L2ZpbmQucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJv
bV9zaGFkb3dfcm9vdC9maW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uZjcwYTRiNDVhYWRiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3Qv
ZmluZC5weQpAQCAtMCwwICsxLDE0NCBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZl
ci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNz
CisKKworZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X2lkLCB1c2luZywgdmFsdWUp
OgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiUE9TVCIsICJz
ZXNzaW9uL3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRvd19pZH0vZWxlbWVudHMiLmZvcm1hdCgK
KyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAg
c2hhZG93X2lkPXNoYWRvd19pZCksCisgICAgICAgIHsidXNpbmciOiB1c2luZywgInZhbHVlIjog
dmFsdWV9KQorCisKK2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHAs
IGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jIGlkPWxp
bmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAg
c2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgcGF0aCA9ICIv
c2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnRzIi5mb3JtYXQo
CisgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLCBzaGFkb3dfaWQ9c2hhZG93
X3Jvb3QuaWQpCisgICAgd2l0aCBodHRwLnBvc3QocGF0aCwgTm9uZSkgYXMgcmVzcG9uc2U6Cisg
ICAgICAgIGFzc2VydF9lcnJvcihSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2UpLCAiaW52YWxp
ZCBhcmd1bWVudCIpCisKKworZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24s
ICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNl
c3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInVzaW5nIiwgWygiYSIpLCAoVHJ1ZSksIChOb25lKSwgKDEpLCAoW10pLCAoe30pXSkKK2Rl
ZiB0ZXN0X2ludmFsaWRfdXNpbmdfYXJndW1lbnQoc2Vzc2lvbiwgdXNpbmcpOgorICAgICMgU3Rl
cCAxIC0gMgorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCAibm90UmVhbCIs
IHVzaW5nLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJn
dW1lbnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbTm9uZSwgW10s
IHt9XSkKK2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUp
OgorICAgICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9u
LCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCB2YWx1ZSkKKyAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikKKworCitkZWYgdGVzdF9kZXRhY2hlZF9zaGFkb3df
cm9vdChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJsID0gZ2V0X3No
YWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPjwvZGl2PiIpCisgICAgY3Vz
dG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBh
bGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAor
ICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vz
c2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAiaW5wdXQiKQorICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgImRldGFjaGVkIHNoYWRvdyByb290IikKKworCitkZWYgdGVzdF9maW5kX2VsZW1l
bnRzX2VxdWl2YWxlbmNlKHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAgc2Vzc2lvbi51
cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IGlkPSdjaGVjaycgdHlwZT0nY2hlY2ti
b3gnLz48aW5wdXQgaWQ9J3RleHQnLz48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNo
YWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICByZXNwb25zZSA9IGZp
bmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAiaW5wdXQiKQorICAg
IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
dXNpbmcsdmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIs
ICIjbGlua1RleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJsaW5rIHRleHQiLCAi
ZnVsbCBsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxp
bmsgdGV4dCIsICJsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcg
bmFtZSIsICJhIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy9hIild
KQorZGVmIHRlc3RfZmluZF9lbGVtZW50cyhzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UsIHVzaW5n
LCB2YWx1ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93
X3BhZ2UoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2
PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93
LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5z
aGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCBzaGFkb3df
cm9vdC5pZCwgdXNpbmcsIHZhbHVlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUiLCBbCisgICAgKCI8YSBo
cmVmPSM+bGluayB0ZXh0PC9hPiIsICJsaW5rIHRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz4mbmJz
cDtsaW5rIHRleHQmbmJzcDs8L2E+IiwgImxpbmsgdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPmxp
bms8YnI+dGV4dDwvYT4iLCAibGlua1xudGV4dCIpLAorICAgICgiPGEgaHJlZj0jPmxpbmsmYW1w
O3RleHQ8L2E+IiwgImxpbmsmdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPkxJTksgVEVYVDwvYT4i
LCAiTElOSyBURVhUIiksCisgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1
cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4iLCAiTElOSyBURVhUIiksCitdKQorZGVmIHRlc3RfZmlu
ZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVudCwg
dmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19w
YWdlKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQo
ZG9jdW1lbnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFs
c2UpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93
LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5z
aGFkb3dfcm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJu
IGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKVsxXSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkp
CisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQs
ICJsaW5rIHRleHQiLCB2YWx1ZSkKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KQorICAgIGFzc2VydCBsZW4odmFs
dWUpID09IDEKKworICAgIGZvdW5kX2VsZW1lbnQgPSB2YWx1ZVswXQorICAgIGFzc2VydF9zYW1l
X2VsZW1lbnQoc2Vzc2lvbiwgZm91bmRfZWxlbWVudCwgZXhwZWN0ZWQpCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2YWx1ZSIsIFsKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0
aWFsIGxpbmsgdGV4dDwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJlZj0jPiZuYnNwO3BhcnRp
YWwgbGluayB0ZXh0Jm5ic3A7PC9hPiIsICJsaW5rIiksCisgICAgKCI8YSBocmVmPSM+cGFydGlh
bCBsaW5rIHRleHQ8L2E+IiwgImsgdCIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluazxi
cj50ZXh0PC9hPiIsICJrXG50IiksCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rJmFtcDt0
ZXh0PC9hPiIsICJrJnQiKSwKKyAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4i
LCAiTElOSyIpLAorICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJj
YXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAorXSkKK2RlZiB0ZXN0X2ZpbmRf
ZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1
bWVudCwgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3No
YWRvd19wYWdlKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9PC9kaXY+Ii5m
b3JtYXQoZG9jdW1lbnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBh
bGw9RmFsc2UpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20t
c2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxl
bWVudC5zaGFkb3dfcm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgi
cmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKVsxXSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVt
ZW50LCkpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jv
b3QuaWQsICJwYXJ0aWFsIGxpbmsgdGV4dCIsIHZhbHVlKQorICAgIHZhbHVlID0gYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpCisgICAg
YXNzZXJ0IGxlbih2YWx1ZSkgPT0gMQorCisgICAgZm91bmRfZWxlbWVudCA9IHZhbHVlWzBdCisg
ICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBmb3VuZF9lbGVtZW50LCBleHBlY3RlZCkK
KworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwgWygiY3NzIHNlbGVj
dG9yIiwgIiN3b250RXhpc3QiKV0pCitkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGdldF9z
aGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9u
LnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQor
ICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICByZXNwb25z
ZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsIHVzaW5nLCB2YWx1ZSkK
KyAgICBhc3NlcnQgcmVzcG9uc2UuYm9keVsidmFsdWUiXSA9PSBbXQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zy
b21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9w
cm9tcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzRiOTAz
YzgzNmVmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRz
LnB5CkBAIC0wLDAgKzEsMTMxIEBACisjIE1FVEE6IHRpbWVvdXQ9bG9uZworCitpbXBvcnQgcHl0
ZXN0CisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCisgICAgYXNzZXJ0X2Vy
cm9yLAorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQsCisgICAgYXNzZXJ0X3N1Y2Nlc3MsCisgICAg
YXNzZXJ0X2RpYWxvZ19oYW5kbGVkLAorKQorCisKK2RlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24s
IHNoYWRvd19pZCwgdXNpbmcsIHZhbHVlKToKKyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQu
c2VuZCgKKyAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFk
b3dfaWR9L2VsZW1lbnRzIi5mb3JtYXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24u
c2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9c2hhZG93X2lkKSwKKyAgICAgICAg
eyJ1c2luZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCisKKworQHB5dGVzdC5maXh0dXJlCitk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAg
c2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAg
ICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxl
bWVudCIsIGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNo
YWRvd19yb290CisgICAgICAgIGlubmVyX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigncCcpIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0ob3V0ZXJf
ZWxlbWVudCwpKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlh
bG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNo
YWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAgICB2YWx1ZSA9IGFzc2Vy
dF9zdWNjZXNzKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgbGlz
dCkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gMQorCisgICAgICAgIGFzc2VydF9kaWFs
b2dfaGFuZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9y
ZXR2YWw9cmV0dmFsKQorCisgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFs
dWVbMF0sIGlubmVyX2VsZW1lbnQpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdl
dF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBnZXRf
c2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAgICAgICAgb3V0ZXJfZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkK
KyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNoYWRvd19yb290CisKKyAgICAg
ICAgY3JlYXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAg
ICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mg
c2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInVuZXhwZWN0
ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24s
IGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCisKKyAg
ICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uCisKKworQHB5
dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6Cisg
ICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2
PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hh
ZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxl
bWVudC5zaGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRl
eHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Np
b24sIHNoYWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAgICBhc3NlcnRf
ZXJyb3IocmVzcG9uc2UsICJ1bmV4cGVjdGVkIGFsZXJ0IG9wZW4iKQorCisgICAgICAgIGFzc2Vy
dCBzZXNzaW9uLmFsZXJ0LnRleHQgPT0gZGlhbG9nX3R5cGUKKyAgICAgICAgc2Vzc2lvbi5hbGVy
dC5kaXNtaXNzKCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24KKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJv
bXB0QmVoYXZpb3IiOiAiYWNjZXB0In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxv
Z190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIs
IFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2FjY2VwdChjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwp
OgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2df
dHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQ
cm9tcHRCZWhhdmlvciI6ICJhY2NlcHQgYW5kIG5vdGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAg
ICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10pCitkZWYgdGVzdF9h
Y2NlcHRfYW5kX25vdGlmeShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24s
IGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmls
aXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIn0pCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5v
bmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkK
K2RlZiB0ZXN0X2Rpc21pc3MoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsu
Y2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlzbWlzcyBhbmQgbm90
aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBb
CisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInBy
b21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3NfYW5kX25vdGlmeShjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAg
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhh
dmlvciI6ICJpZ25vcmUifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUi
LCBbImFsZXJ0IiwgImNvbmZpcm0iLCAicHJvbXB0Il0pCitkZWYgdGVzdF9pZ25vcmUoY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSk6CisgICAg
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKQor
CisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAg
ICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0
IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGVmYXVsdChjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL2Zv
cndhcmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zv
cndhcmQvZm9yd2FyZC5weQppbmRleCA0YTFlMjE1ODE1MTguLjk3YTkzNWM4Y2Q4MyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJk
L2ZvcndhcmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9mb3J3YXJkL2ZvcndhcmQucHkKQEAgLTEsNSArMSw3IEBACitpbXBvcnQgcHl0ZXN0Citm
cm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKKwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmb3J3YXJkKHNlc3Npb24pOgpAQCAtNyw3ICs5
LDcgQEAgZGVmIGZvcndhcmQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nl
c3Npb25faWR9L2ZvcndhcmQiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0
X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3Zh
bHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+IikK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+IikKICAgICBzZXNzaW9uLmJhY2soKQpAQCAt
MjcsNyArMjksNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF9mcmFtZSk6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKIAotZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfaGlzdG9yeShzZXNzaW9uKToKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2hpc3Rvcnko
c2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAKICAg
ICBzZXNzaW9uLnVybCA9IHVybApAQCAtNDAsNyArNDIsNyBAQCBkZWYgdGVzdF9ub19icm93c2lu
Z19oaXN0b3J5KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJpZCIpID09
ICJmb28iCiAKIAotZGVmIHRlc3RfZGF0YV91cmxzKHNlc3Npb24pOgorZGVmIHRlc3RfZGF0YV91
cmxzKHNlc3Npb24sIGlubGluZSk6CiAgICAgdGVzdF9wYWdlcyA9IFsKICAgICAgICAgaW5saW5l
KCI8cCBpZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCkBAIC01Nyw3ICs1OSw3
IEBAIGRlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwg
PT0gdGVzdF9wYWdlc1sxXQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWQoc2Vz
c2lvbik6CitkZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNlc3Npb24sIGlubGluZSk6
CiAgICAgdXJsX2JlZm9yZXVubG9hZCA9IGlubGluZSgiIiIKICAgICAgIDxpbnB1dCB0eXBlPSJ0
ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CkBAIC0xMDUsNyArMTA3LDcgQEAgZGVmIHRlc3RfZnJhZ21l
bnRzKHNlc3Npb24sIHVybCk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRlc3RfcGFnZXNb
Ml0KIAogCi1kZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgorZGVmIHRl
c3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBwdXNoc3RhdGVfcGFn
ZSA9IGlubGluZSgiIiIKICAgICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1bmN0aW9uIHB1c2hTdGF0
ZSgpIHsKQEAgLTEzMCwzICsxMzIsNDUgQEAgZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vz
c2lvbiwgdXJsKToKIAogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSAie30jcHVzaHN0YXRlIi5m
b3JtYXQocHVzaHN0YXRlX3BhZ2UpCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQo
InJldHVybiBoaXN0b3J5LnN0YXRlOyIpID09IHsiZm9vIjogImJhciJ9CisKKworZGVmIHRlc3Rf
cmVtb3ZlZF9pZnJhbWUoc2Vzc2lvbiwgdXJsLCBpbmxpbmUpOgorICAgIHBhZ2UgPSBpbmxpbmUo
IjxwPmZvbyIpCisKKyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9zdXBw
b3J0L2h0bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbCIpCisgICAgc2Vzc2lvbi51cmwgPSBwYWdl
CisKKyAgICBzZXNzaW9uLmJhY2soKQorCisgICAgc3ViZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3Nz
KCIjc3ViLWZyYW1lIiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKHN1YmZy
YW1lKQorCisgICAgcmVzcG9uc2UgPSBmb3J3YXJkKHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gcGFnZQorCisKKyMgQ2Fw
YWJpbGl0eSBuZWVkZWQgYXMgbG9uZyBhcyBubyB2YWxpZCBjZXJ0aWZpY2F0ZSBpcyBhdmFpbGFi
bGU6CisjICAgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVz
LzI4ODQ3CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0SW5zZWN1cmVDZXJ0cyI6
IFRydWV9KQorZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIHVybCk6CisgICAgYmFzZV9w
YXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5odG1sIiArCisg
ICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ks
c2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0i
aHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBz
IiwgZG9tYWluPSJhbHQiKQorCisgICAgc2Vzc2lvbi51cmwgPSBmaXJzdF9wYWdlCisgICAgc2Vz
c2lvbi51cmwgPSBzZWNvbmRfcGFnZQorICAgIHNlc3Npb24uYmFjaygpCisKKyAgICBlbGVtID0g
c2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0g
Zm9yd2FyZChzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNz
ZXJ0IHNlc3Npb24udXJsID09IHNlY29uZF9wYWdlCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
ZXJyb3IuU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbS5jbGlj
aygpCisgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zv
cndhcmQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQppbmRleCBlNWVlYThmNDQ1NzEuLjNl
ZWFmNmU3MWNkYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQvdXNlcl9wcm9tcHRzLnB5CkBAIC0z
LDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNz
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZm9yd2Fy
ZChzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGZvcndhcmQoc2Vzc2lvbik6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgcGFnZXMoc2Vzc2lvbik6CitkZWYgcGFnZXMoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBwYWdlcyA9IFsKICAgICAgICAgaW5saW5lKCI8cCBpZD0xPiIpLAogICAg
ICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC9nZXQucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVu
dC9nZXQucHkKaW5kZXggN2Y4MjFmM2E0MGQ1Li4xMDg1YWQ4MmYxOGYgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVt
ZW50L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9hY3RpdmVfZWxlbWVudC9nZXQucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfaXNfYWN0aXZlX2Vs
ZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKIAogCiBkZWYgcmVhZF9nbG9iYWwoc2Vzc2lvbiwgbmFtZSk6CkBAIC0yMSw3ICsyMCw3
IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRl
c3Rfc3VjY2Vzc19kb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3N1Y2Nlc3NfZG9jdW1lbnQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAg
PGJvZHk+CiAgICAgICAgICAgICA8aDE+SGVhZGluZzwvaDE+CkBAIC0zNiw3ICszNSw3IEBAIGRl
ZiB0ZXN0X3N1Y2Nlc3NfZG9jdW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9l
bGVtZW50KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjZXNzX2lucHV0KHNlc3Np
b24pOgorZGVmIHRlc3Rfc3VjZXNzX2lucHV0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxib2R5PgogICAgICAgICAgICAgPGgxPkhlYWRp
bmc8L2gxPgpAQCAtNTAsNyArNDksNyBAQCBkZWYgdGVzdF9zdWNlc3NfaW5wdXQoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVm
IHRlc3Rfc3VjZXNzX2lucHV0X25vbl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9z
dWNlc3NfaW5wdXRfbm9uX2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keT4KICAgICAgICAgICAgIDxoMT5IZWFk
aW5nPC9oMT4KQEAgLTY0LDcgKzYzLDcgQEAgZGVmIHRlc3Rfc3VjZXNzX2lucHV0X25vbl9pbnRl
cmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24s
IGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjY2Vzc19leHBsaWNpdF9mb2N1cyhzZXNzaW9uKToK
K2RlZiB0ZXN0X3N1Y2Nlc3NfZXhwbGljaXRfZm9jdXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICA8aDE+
SGVhZGluZzwvaDE+CkBAIC0xMDUsNyArMTA0LDcgQEAgZGVmIHRlc3Rfc3VjY2Vzc19leHBsaWNp
dF9mb2N1cyhzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbiwg
ZWxlbWVudCkKIAogCi1kZWYgdGVzdF9zdWNjZXNzX2lmcmFtZV9jb250ZW50KHNlc3Npb24pOgor
ZGVmIHRlc3Rfc3VjY2Vzc19pZnJhbWVfY29udGVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8Ym9keT48L2JvZHk+IikKICAgICBzZXNzaW9uLmV4ZWN1dGVf
c2NyaXB0KCIiIgogICAgICAgICBsZXQgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aWZyYW1lJyk7CkBAIC0xMjAsNyArMTE5LDcgQEAgZGVmIHRlc3Rfc3VjY2Vzc19pZnJhbWVfY29u
dGVudChzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbiwgZWxl
bWVudCkKIAogCi1kZWYgdGVzdF9taXNzaW5nX2RvY3VtZW50X2VsZW1lbnQoc2Vzc2lvbik6Citk
ZWYgdGVzdF9taXNzaW5nX2RvY3VtZW50X2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGJvZHk+PC9ib2R5PiIpCiAgICAgc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgiIiIKICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkucmVtb3ZlKSB7CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3Rp
dmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkKaW5kZXgg
N2ZhN2JlMWRkZTk5Li4xZmY3NzY5N2I3MDcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVtZW50L3VzZXJfcHJvbXB0
cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50
LAogICAgIGFzc2VydF9zdWNjZXNzCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKIAogCiBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Npb24pOgpAQCAtMTcsNyAr
MTYsNyBAQCBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQog
CkBAIC0zNCw3ICszMyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAKQEAgLTQ5LDcgKzQ4LDcg
QEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWxlcnRfdGV4dC9nZXQucHkK
aW5kZXggYjY0Njc4NjUzZTA4Li43ZWU3ZmYxODA4ZjkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0
X3RleHQvZ2V0LnB5CkBAIC0xLDkgKzEsNiBAQAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQot
CiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nl
c3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0cy5z
dXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0yNywzNiArMjQsMzYgQEAgZGVmIHRlc3Rf
bm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8g
c3VjaCBhbGVydCIpCiAKIAotZGVmIHRlc3RfZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbik6CitkZWYg
dGVzdF9nZXRfYWxlcnRfdGV4dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8c2NyaXB0PndpbmRvdy5hbGVydCgnSGVsbG8nKTs8L3NjcmlwdD4iKQogICAgIHJl
c3BvbnNlID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBkaWN0KQogICAgIGFz
c2VydCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBhbGVydF90ZXh0ID0gcmVzcG9uc2Uu
Ym9keVsidmFsdWUiXQotICAgIGFzc2VydCBpc2luc3RhbmNlKGFsZXJ0X3RleHQsIHRleHRfdHlw
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShhbGVydF90ZXh0LCBzdHIpCiAgICAgYXNzZXJ0IGFs
ZXJ0X3RleHQgPT0gIkhlbGxvIgogCiAKLWRlZiB0ZXN0X2dldF9jb25maXJtX3RleHQoc2Vzc2lv
bik6CitkZWYgdGVzdF9nZXRfY29uZmlybV90ZXh0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmNvbmZpcm0oJ0hlbGxvJyk7PC9zY3Jp
cHQ+IikKICAgICByZXNwb25zZSA9IGdldF9hbGVydF90ZXh0KHNlc3Npb24pCiAgICAgYXNzZXJ0
X3N1Y2Nlc3MocmVzcG9uc2UpCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keSwg
ZGljdCkKICAgICBhc3NlcnQgInZhbHVlIiBpbiByZXNwb25zZS5ib2R5CiAgICAgY29uZmlybV90
ZXh0ID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvbmZp
cm1fdGV4dCwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvbmZpcm1fdGV4dCwg
c3RyKQogICAgIGFzc2VydCBjb25maXJtX3RleHQgPT0gIkhlbGxvIgogCiAKLWRlZiB0ZXN0X2dl
dF9wcm9tcHRfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2dldF9wcm9tcHRfdGV4dChzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5wcm9t
cHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4iKQogICAgIHJlc3Bv
bnNlID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBkaWN0KQogICAgIGFzc2Vy
dCAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBwcm9tcHRfdGV4dCA9IHJlc3BvbnNlLmJv
ZHlbInZhbHVlIl0KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShwcm9tcHRfdGV4dCwgdGV4dF90eXBl
KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHByb21wdF90ZXh0LCBzdHIpCiAgICAgYXNzZXJ0IHBy
b21wdF90ZXh0ID09ICJFbnRlciBZb3VyIE5hbWU6ICIKIAogCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9f
X2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2NvbXB1dGVkX2xhYmVsL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9nZXQucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9s
YWJlbC9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zOTA0
YzZjZTQxZjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9nZXQucHkKQEAgLTAsMCArMSwzNiBA
QAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxl
cnRFeGNlcHRpb24KKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9l
cnJvciwgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQorCisKK2RlZiBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwgZWxlbWVudCk6CisgICAg
cmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQiLCAic2Vzc2lvbi97
c2Vzc2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vY29tcHV0ZWRsYWJlbCIuZm9ybWF0KAor
ICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBl
bGVtZW50X2lkPWVsZW1lbnQpKQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBnZXRfY29tcHV0ZWRfbGFiZWwo
c2Vzc2lvbikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisK
KworZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CisgICAgcmVzcG9uc2UgPSBnZXRf
Y29tcHV0ZWRfbGFiZWwoc2Vzc2lvbikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBz
dWNoIGFsZXJ0IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImh0bWwsdGFnLGxhYmVs
IiwgWworICAgICgiPGJ1dHRvbj5vazwvYnV0dG9uPiIsICJidXR0b24iLCAib2siKSwKKyAgICAo
IjxidXR0b24gYXJpYS1sYWJlbGxlZGJ5PVwib25lIHR3b1wiPjwvYnV0dG9uPjxkaXYgaWQ9b25l
Pm9rPC9kaXY+PGRpdiBpZD10d28+Z288L2Rpdj4iLCAiYnV0dG9uIiwgIm9rIGdvIiksCisgICAg
KCI8YnV0dG9uIGFyaWEtbGFiZWw9Zm9vPmJhcjwvYnV0dG9uPiIsICJidXR0b24iLCAiZm9vIiks
CisgICAgKCI8bGFiZWw+PGlucHV0PiBmb288L2xhYmVsPiIsICJpbnB1dCIsICJmb28iKSwKKyAg
ICAoIjxsYWJlbCBmb3I9Yj5mb288bGFiZWw+PGlucHV0IGlkPWI+IiwgImlucHV0IiwgImZvbyIp
XSkKK2RlZiB0ZXN0X2dldF9jb21wdXRlZF9sYWJlbChzZXNzaW9uLCBodG1sLCB0YWcsIGxhYmVs
KToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiezB9Ii5mb3JtYXQodGFnKSkKKyAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWcsIGFsbD1GYWxzZSkKKyAgICByZXN1bHQgPSBnZXRf
Y29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfc3VjY2Vzcyhy
ZXN1bHQsIGxhYmVsKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX3JvbGUvX19pbml0
X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIy
ZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2NvbXB1dGVkX3JvbGUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9nZXQucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMGZkNjI4ZjE1NmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRl
ZF9yb2xlL2dldC5weQpAQCAtMCwwICsxLDM0IEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gd2Vi
ZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgorCitmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcworZnJvbSB0
ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCisKKworZGVmIGdldF9jb21wdXRlZF9y
b2xlKHNlc3Npb24sIGVsZW1lbnQpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5k
KAorICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1lbnQve2VsZW1lbnRf
aWR9L2NvbXB1dGVkcm9sZSIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9u
LnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQpKQorCisKK2RlZiB0
ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVz
cG9uc2UgPSBnZXRfY29tcHV0ZWRfcm9sZShzZXNzaW9uLCAiaWQiKQorICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9ub191c2VyX3Byb21w
dChzZXNzaW9uKToKKyAgICByZXNwb25zZSA9IGdldF9jb21wdXRlZF9yb2xlKHNlc3Npb24sICJp
ZCIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCisKKworQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJodG1sLHRhZyxleHBlY3RlZCIsIFsKKyAgICAoIjxsaSBy
b2xlPW1lbnVpdGVtPmZvbyIsICJsaSIsICJtZW51IiksCisgICAgKCI8aW5wdXQgcm9sZT1zZWFy
Y2hib3g+IiwgImlucHV0IiwgInNlYXJjaGJveCIpLAorICAgICgiPGltZyByb2xlPXByZXNlbnRh
dGlvbj4iLCAiaW1nIiwgInByZXNlbnRhdGlvbiIpXSkKK2RlZiB0ZXN0X2NvbXB1dGVkX3JvbGVz
KHNlc3Npb24sIGh0bWwsIHRhZywgZXhwZWN0ZWQpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5l
KGh0bWwpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBhbGw9RmFsc2UpCisg
ICAgcmVzdWx0ID0gZ2V0X2NvbXB1dGVkX3JvbGUoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBh
c3NlcnRfc3VjY2VzcyhyZXN1bHQsIGV4cGVjdGVkKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvZ2V0LnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91
cmwvZ2V0LnB5CmluZGV4IDAzODNhOGFiYTllOS4uMWNhMTNhMWE2ZDVlIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3Vy
bC9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfY3VycmVudF91cmwvZ2V0LnB5CkBAIC0xLDExICsxLDEyIEBACi1mcm9tIHNpeCBpbXBv
cnQgdGV4dF90eXBlCitpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQg
cGxhdGZvcm1fbmFtZQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3Vj
Y2VzcwogCi1kb2MgPSBpbmxpbmUoIjxwPmZyYW1lIikKLWFsZXJ0X2RvYyA9IGlubGluZSgiPHNj
cmlwdD53aW5kb3cuYWxlcnQoKTwvc2NyaXB0PiIpCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGRv
YyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjxwPmZyYW1lIikKIAogCiBkZWYgZ2V0X2N1
cnJlbnRfdXJsKHNlc3Npb24pOgpAQCAtMTgsMTQgKzE5LDE0IEBAIGRlZiB0ZXN0X25vX3RvcF9i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9ub19icm93c2luZ19j
b250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250
ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwog
CiAgICAgcmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKICAgICBhc3NlcnRfc3Vj
Y2VzcyhyZXNwb25zZSwgZG9jKQogCiAKLWRlZiB0ZXN0X2dldF9jdXJyZW50X3VybF9tYXRjaGVz
X2xvY2F0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX21hdGNoZXNfbG9j
YXRpb24oc2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwogCiAgICAgcmVzcG9u
c2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKQEAgLTM3LDcgKzM4LDcgQEAgZGVmIHRlc3Rf
Z2V0X2N1cnJlbnRfdXJsX3BheWxvYWQoc2Vzc2lvbik6CiAKICAgICByZXNwb25zZSA9IGdldF9j
dXJyZW50X3VybChzZXNzaW9uKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Up
Ci0gICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZSh2YWx1ZSwgc3RyKQogCiAKIGRlZiB0ZXN0X2dldF9jdXJyZW50X3VybF9zcGVjaWFs
X3BhZ2VzKHNlc3Npb24pOgpAQCAtNzYsNyArNzcsNyBAQCBkZWYgdGVzdF9zZXRfbWFsZm9ybWVk
X3VybChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGFyZ3Vt
ZW50IikKIAogCi1kZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0ZXJfbW9kaWZpZWRfbG9jYXRp
b24oc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0ZXJfbW9kaWZpZWRfbG9j
YXRpb24oc2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwogCiAgICAgcmVzcG9u
c2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRf
dXJsL2lmcmFtZS5weQppbmRleCA5NDRlNjFiNTgzZmQuLjgwYTk2MGNlOGExNSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVu
dF91cmwvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9y
dCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNj
ZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJhbWUsIGlubGluZQogCiAK
ICIiIgpAQCAtMTUsOSArMTQsMjAgQEAgYWxzbyBlbmZvcmNlIHByb2Nlc3MgaXNvbGF0aW9uIGJh
c2VkIG9uIHNpdGUgb3JpZ2luLgogVGhpcyBpcyBrbm93biB0byBzb21ldGltZXMgY2F1c2UgcHJv
YmxlbXMgZm9yIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbnMuCiAiIiIKIAotZnJhbWVfZG9jID0g
aW5saW5lKCI8cD5mcmFtZSIpCi1vbmVfZnJhbWVfZG9jID0gaW5saW5lKCI8aWZyYW1lIHNyYz0n
JXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCi1uZXN0ZWRfZnJhbWVzX2RvYyA9IGlubGluZSgi
PGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgb25lX2ZyYW1lX2RvYykKKworQHB5dGVzdC5m
aXh0dXJlCitkZWYgZnJhbWVfZG9jKGlubGluZSk6CisgICAgcmV0dXJuIGlubGluZSgiPHA+ZnJh
bWUiKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG9uZV9mcmFtZV9kb2MoaW5saW5lLCBmcmFt
ZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUoIjxpZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAl
IGZyYW1lX2RvYykKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBuZXN0ZWRfZnJhbWVzX2RvYyhp
bmxpbmUsIG9uZV9mcmFtZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUoIjxpZnJhbWUgc3JjPScl
cyc+PC9pZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCiAKIAogZGVmIGdldF9jdXJyZW50X3VybChz
ZXNzaW9uKToKQEAgLTI1LDcgKzM1LDcgQEAgZGVmIGdldF9jdXJyZW50X3VybChzZXNzaW9uKToK
ICAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS91cmwiLmZvcm1hdCgqKnZhcnMo
c2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToKK2RlZiB0ZXN0X2lmcmFt
ZShzZXNzaW9uLCBvbmVfZnJhbWVfZG9jKToKICAgICB0b3BfbGV2ZWxfZG9jID0gb25lX2ZyYW1l
X2RvYwogICAgIHNlc3Npb24udXJsID0gdG9wX2xldmVsX2RvYwogCkBAIC0zNyw3ICs0Nyw3IEBA
IGRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwg
dG9wX2xldmVsX2RvYykKIAogCi1kZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Npb24pOgorZGVm
IHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uLCBuZXN0ZWRfZnJhbWVzX2RvYyk6CiAgICAgc2Vz
c2lvbi51cmwgPSBuZXN0ZWRfZnJhbWVzX2RvYwogICAgIHRvcF9sZXZlbF9kb2MgPSBzZXNzaW9u
LnVybAogCkBAIC01Myw3ICs2Myw3IEBAIGRlZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vzc2lvbik6
CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb21haW4iLCBbIiIsICJhbHQiXSwgaWRz
PVsic2FtZV9vcmlnaW4iLCAiY3Jvc3Nfb3JpZ2luIl0pCi1kZWYgdGVzdF9vcmlnaW4oc2Vzc2lv
biwgZG9tYWluLCB1cmwpOgorZGVmIHRlc3Rfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgaWZyYW1l
LCBkb21haW4pOgogICAgIHRvcF9sZXZlbF9kb2MgPSBpbmxpbmUoaWZyYW1lKCI8cD5mcmFtZSIs
IGRvbWFpbj1kb21haW4pKQogCiAgICAgc2Vzc2lvbi51cmwgPSB0b3BfbGV2ZWxfZG9jCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9j
dXJyZW50X3VybC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMucHkKaW5kZXggZjBl
OTVkMTJmMTRlLi5kNjU3YzE4ODI0MWQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL3VzZXJfcHJvbXB0cy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJy
ZW50X3VybC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAK
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQs
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lvbik6CkBAIC0xMSw3
ICsxMCw3IEBAIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIpCiAgICAgICAgIGV4
cGVjdGVkX3VybCA9IHNlc3Npb24udXJsCkBAIC0yNyw3ICsyNiw3IEBAIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5
cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIpCiAK
QEAgLTQyLDcgKzQxLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dldC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfYXR0cmlidXRlL2dldC5weQppbmRleCBiMThkOWNhOGIyMmEuLjUyOGNiZDI5ZjAyMCAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
ZWxlbWVudF9hdHRyaWJ1dGUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dldC5weQpAQCAtMSw3ICsx
LDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgZWxl
bWVudCwgYXR0cik6CkBAIC0xMyw4ICsxMiwxNCBAQCBkZWYgZ2V0X2VsZW1lbnRfYXR0cmlidXRl
KHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19j
b250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxl
bWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X2F0dHJpYnV0
ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaWQiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X2F0dHJpYnV0ZShz
ZXNzaW9uLCAiZm9vIiwgImlkIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IHdpbmRvdyIpCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisg
ICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgZWxlbWVudC5pZCwg
ImlkIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQogCiAK
IGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKQEAg
LTI4LDcgKzMzLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAg
YXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxl
bWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9u
LnJlZnJlc2goKQpAQCAtMzYsNyArNDEsNyBAQCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Np
b24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIp
CiAKIAotZGVmIHRlc3Rfbm9ybWFsKHNlc3Npb24pOgorZGVmIHRlc3Rfbm9ybWFsKHNlc3Npb24s
IGlubGluZSk6CiAgICAgIyAxMy4yIFN0ZXAgNQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgdHlwZT1jaGVja2JveD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKQEAgLTczLDcgKzc4LDcgQEAgZGVmIHRlc3Rfbm9ybWFsKHNlc3Np
b24pOgogICAgICgidHJhY2siLCBbImRlZmF1bHQiXSksCiAgICAgKCJ2aWRlbyIsIFsiYXV0b3Bs
YXkiLCAiY29udHJvbHMiLCAibG9vcCIsICJtdXRlZCJdKQogXSkKLWRlZiB0ZXN0X2Jvb2xlYW5f
YXR0cmlidXRlKHNlc3Npb24sIHRhZywgYXR0cnMpOgorZGVmIHRlc3RfYm9vbGVhbl9hdHRyaWJ1
dGUoc2Vzc2lvbiwgaW5saW5lLCB0YWcsIGF0dHJzKToKICAgICBmb3IgYXR0ciBpbiBhdHRyczoK
ICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7MH0gezF9PiIuZm9ybWF0KHRhZywgYXR0
cikpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKHRhZywgYWxsPUZhbHNlKQpA
QCAtODEsNyArODYsNyBAQCBkZWYgdGVzdF9ib29sZWFuX2F0dHJpYnV0ZShzZXNzaW9uLCB0YWcs
IGF0dHJzKToKICAgICAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAidHJ1ZSIpCiAKIAotZGVm
IHRlc3RfZ2xvYmFsX2Jvb2xlYW5fYXR0cmlidXRlcyhzZXNzaW9uKToKK2RlZiB0ZXN0X2dsb2Jh
bF9ib29sZWFuX2F0dHJpYnV0ZXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPHAgaGlkZGVuPmZvbyIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
InAiLCBhbGw9RmFsc2UpCiAgICAgcmVzdWx0ID0gZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Np
b24sIGVsZW1lbnQuaWQsICJoaWRkZW4iKQpAQCAtMTAzLDMgKzEwOCwxNCBAQCBkZWYgdGVzdF9n
bG9iYWxfYm9vbGVhbl9hdHRyaWJ1dGVzKHNlc3Npb24pOgogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogICAgIHJlc3VsdCA9IGdldF9lbGVtZW50X2F0dHJp
YnV0ZShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaXRlbXNjb3BlIikKICAgICBhc3NlcnRfc3VjY2Vz
cyhyZXN1bHQsIE5vbmUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpc19yZWxhdGl2
ZSIsIFtUcnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29sdXRlIl0pCitkZWYgdGVz
dF9hbmNob3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVsYXRpdmUpOgorICAgIGhy
ZWYgPSAiL2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgiL2Zvby5odG1sIikKKwor
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9vPC9hPiIuZm9ybWF0KGhy
ZWYpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxsPUZhbHNlKQorCisg
ICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgZWxlbWVudC5pZCwg
ImhyZWYiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBocmVmKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9h
dHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5CmluZGV4
IDVlZTc5MjlhZmRmOC4uMDA5Y2IxZTVmYTFlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0ZS91c2VyX3By
b21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAog
aW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfYXR0cmli
dXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgpAQCAtMTUsNyArMTQsNyBAQCBkZWYgZ2V0X2Vs
ZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTMx
LDcgKzMwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00Nyw3ICs0Niw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9i
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxp
bmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
ZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZv
bz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxz
ZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weQppbmRleCA0
ZTg3MDRkNTBhZjkuLjM2OWNhOWM2OTlmOCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfY3NzX3ZhbHVlL2dldC5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfY3NzX3ZhbHVl
KHNlc3Npb24sIGVsZW1lbnRfaWQsIHByb3ApOgpAQCAtMTQsOSArMTMsMTYgQEAgZGVmIGdldF9l
bGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKIAogCiBkZWYgdGVz
dF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBv
cmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBn
ZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImRpc3BsYXkiKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9
IGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCAiZm9vIiwgImJhciIpCiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3df
aGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9jc3Nf
dmFsdWUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImRpc3BsYXkiKQorICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29u
dGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRf
Y3NzX3ZhbHVlKHNlc3Npb24sICJmb28iLCAiYmFyIikKQEAgLTI4LDcgKzM0LDcgQEAgZGVmIHRl
c3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwg
Im5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToK
K2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlu
cHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0zNyw3ICs0Myw3IEBA
IGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3Vs
dCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9wcm9wZXJ0eV9uYW1l
X3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbmFtZV92YWx1ZShzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxh
eTogYmxvY2siPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAKQEAgLTQ1LDcgKzUxLDcgQEAgZGVmIHRlc3RfcHJvcGVydHlfbmFtZV92YWx1
ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJibG9jayIpCiAKIAotZGVm
IHRlc3RfcHJvcGVydHlfbmFtZV9ub3RfZXhpc3RlbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9wcm9w
ZXJ0eV9uYW1lX25vdF9leGlzdGVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5w
dXQiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
Y3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weQppbmRleCA1MjliNmFlOTE4M2QuLmIxZjlhM2ZiMGEw
MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3Vz
ZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFz
c2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBw
cm9wKToKQEAgLTE4LDcgKzE3LDcgQEAgZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9u
LCBlbGVtZW50X2lkLCBwcm9wKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9jayI+IiIiKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0z
NCw3ICszMyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogYmxvY2siPiIiIikKICAgICAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtNTAs
NyArNDksNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9jayI+IiIiKQogICAgICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50
X3Byb3BlcnR5L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5CmluZGV4IDVjMDI0N2VkYjcwMi4uMTBm
N2EwOGFlNzNlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5w
eQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9wcm9wZXJ0eShz
ZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKQEAgLTEzLDkgKzEyLDE2IEBAIGRlZiBnZXRfZWxl
bWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKIAogCiBkZWYgdGVzdF9u
b190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmln
aW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRf
ZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAidmFsdWUiKQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9l
bGVtZW50X3Byb3BlcnR5KHNlc3Npb24sICJmb28iLCAiaWQiKQogICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9
IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcHJvcGVydHkoc2Vz
c2lvbiwgZWxlbWVudC5pZCwgInZhbHVlIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3Byb3BlcnR5KHNl
c3Npb24sICJmb28iLCAiaWQiKQpAQCAtMjcsNyArMzMsNyBAQCBkZWYgdGVzdF9lbGVtZW50X25v
dF9mb3VuZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVs
ZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9l
bGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxpbnB1dCBpZD1mb29iYXI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5w
dXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTM2LDcgKzQyLDcgQEAg
ZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfcHJvcGVydHlfbm9u
X2V4aXN0ZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbm9uX2V4aXN0ZW50KHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtNDUsNyAr
NTEsNyBAQCBkZWYgdGVzdF9wcm9wZXJ0eV9ub25fZXhpc3RlbnQoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uZm9vIiwgYXJn
cz0oZWxlbWVudCwpKSBpcyBOb25lCiAKIAotZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vz
c2lvbik6CitkZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vYmFyPiIpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC01Myw3ICs1OSw3
IEBAIGRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Np
b24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vPiIpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3Jp
cHQoIiIiYXJndW1lbnRzWzBdLnZhbHVlID0gImJhciI7IiIiLCBhcmdzPShlbGVtZW50LCkpCkBA
IC03MCw3ICs3Niw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgKCJu
dWxsIiwgTm9uZSksCiAgICAgKCJ1bmRlZmluZWQiLCBOb25lKSwKIF0pCi1kZWYgdGVzdF9wcmlt
aXRpdmVzKHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKK2RlZiB0ZXN0X3By
aW1pdGl2ZXMoc2Vzc2lvbiwgaW5saW5lLCBqc19wcmltaXRpdmUsIHB5X3ByaW1pdGl2ZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dD4KIApAQCAtOTMsNyAr
OTksNyBAQCBkZWYgdGVzdF9wcmltaXRpdmVzKHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJp
bWl0aXZlKToKICAgICAoIm51bGwiLCBOb25lKSwKICAgICAoInVuZGVmaW5lZCIsIE5vbmUpLAog
XSkKLWRlZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0X2J5X2V4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGpz
X3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKK2RlZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0X2J5X2V4
ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGlubGluZSwganNfcHJpbWl0aXZlLCBweV9wcmltaXRpdmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5leGVjdXRlX3Nj
cmlwdCgiYXJndW1lbnRzWzBdLmZvb2JhciA9IHt9Ii5mb3JtYXQoanNfcHJpbWl0aXZlKSwgYXJn
cz0oZWxlbWVudCwpKQpAQCAtMTAyLDcgKzEwOCw3IEBAIGRlZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0
X2J5X2V4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToK
ICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgcHlfcHJpbWl0aXZlKQogCiAKLWRlZiB0ZXN0
X211dGF0ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X211dGF0ZWRfZWxlbWVudChzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1jaGVj
a2JveD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKICAgICBlbGVtZW50LmNsaWNrKCkKQEAgLTExNCwzICsxMjAsMTQgQEAgZGVmIHRlc3RfbXV0
YXRlZF9lbGVtZW50KHNlc3Npb24pOgogCiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9w
ZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAiY2hlY2tlZCIpCiAgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UsIFRydWUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpc19yZWxhdGl2
ZSIsIFtUcnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29sdXRlIl0pCitkZWYgdGVz
dF9hbmNob3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVsYXRpdmUpOgorICAgIGhy
ZWYgPSAiL2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgiL2Zvby5odG1sIikKKwor
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9vPC9hPiIuZm9ybWF0KGhy
ZWYpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxsPUZhbHNlKQorCisg
ICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAi
aHJlZiIpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIHVybCgiL2Zvby5odG1sIikpCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvdXNlcl9wcm9tcHRz
LnB5CmluZGV4IDE2YTA5ODUzNmZkZS4uZTVlNzY5NDc4NjNlIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5
L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICsz
LDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50
X3Byb3BlcnR5KHNlc3Npb24sIGVsZW1lbnRfaWQsIG5hbWUpOgpAQCAtMTMsNyArMTIsNyBAQCBk
ZWYgZ2V0X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudF9pZCwgbmFtZSk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9
Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZh
bHNlKQpAQCAtMjksNyArMjgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ1LDcgKzQ0LDcgQEAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9v
IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC9nZXQucHkKaW5kZXgg
NDk0YzQ1ZjhlNDViLi45YWI0ZGI0YzYwNGYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC9nZXQucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9y
ZWN0L2dldC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGlt
cG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVs
cGVycyBpbXBvcnQgZWxlbWVudF9yZWN0Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50X2lkKToK
QEAgLTE0LDkgKzEzLDE2IEBAIGRlZiBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sIGVsZW1lbnRf
aWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cK
KyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2Ug
PSBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9y
aWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBl
bGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIp
CisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUp
OgogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCAiZm9vIikKQEAgLTI4
LDcgKzM0LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVu
dF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgp
CkBAIC0zNyw3ICs0Myw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAg
YXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYg
dGVzdF9iYXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2ljKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L3VzZXJfcHJv
bXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2VsZW1lbnRfcmVjdC91c2VyX3Byb21wdHMucHkKaW5kZXggYzUxODY2Y2I4NzU4Li4yMDEzMTYw
MzM4MWIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L3VzZXJfcHJv
bXB0cy5weQpAQCAtNCw3ICs0LDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2Rp
YWxvZ19oYW5kbGVkCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZWxlbWVudF9y
ZWN0Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0
X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE4LDcgKzE3LDcgQEAgZGVm
IGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMzQsNyArMzMs
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1
dCIsIGFsbD1GYWxzZSkKQEAgLTUwLDcgKzQ5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFk
b3dfcm9vdC9jb25mdGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZmMwYzkxYzNkM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVt
ZW50X3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMjIgQEAKK2ltcG9ydCBweXRl
c3QKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tib3hfZG9tKGlubGluZSk6CisgICAgcmV0
dXJuIGlubGluZSgiIiIKKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgY3VzdG9tLWNoZWNr
Ym94LWVsZW1lbnQgeworICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7IHdpZHRoOjIwcHg7
IGhlaWdodDoyMHB4OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8
Y3VzdG9tLWNoZWNrYm94LWVsZW1lbnQ+PC9jdXN0b20tY2hlY2tib3gtZWxlbWVudD4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnY3VzdG9tLWNo
ZWNrYm94LWVsZW1lbnQnLAorICAgICAgICAgICAgICAgIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1l
bnQgeworICAgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
YXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KS5pbm5lckhUTUwgPSBgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IHR5cGU9ImNoZWNrYm94Ii8+PC9kaXY+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgPC9zY3JpcHQ+IiIiKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9z
aGFkb3dfcm9vdC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjgyZTUyNDIwYTJjMAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hh
ZG93X3Jvb3QvZ2V0LnB5CkBAIC0wLDAgKzEsNjAgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0
ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxl
bWVudCwgYXNzZXJ0X3N1Y2Nlc3MKKworCitkZWYgZ2V0X3NoYWRvd19yb290KHNlc3Npb24sIGVs
ZW1lbnRfaWQpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAi
R0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1lbnQve2VsZW1lbnRfaWR9L3NoYWRvdyIu
Zm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAg
ICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnRfaWQpKQorCisKK2RlZiB0ZXN0X25vX3RvcF9icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRs
ZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9v
dChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1
Y2ggd2luZG93IikKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCAiZm9v
IikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKyAgICBz
ZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdl
dF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4
dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290
KHNlc3Npb24sICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2lu
ZG93IikKKworCitkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9uKToKKyAgICByZXN1
bHQgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJl
c3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNz
aW9uLCBjaGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hlY2tib3hfZG9tCisgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxs
PUZhbHNlKQorICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXN1bHQgPSBnZXRfc2hhZG93
X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAic3Rh
bGUgZWxlbWVudCByZWZlcmVuY2UiKQorCisKK2RlZiB0ZXN0X2dldF9zaGFkb3dfcm9vdChzZXNz
aW9uLCBjaGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hlY2tib3hfZG9tCisgICAg
ZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAicmV0dXJuIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2N1c3RvbS1jaGVja2JveC1lbGVtZW50Jykuc2hhZG93Um9vdC5o
b3N0IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVj
a2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290
KHNlc3Npb24sIGN1c3RvbV9lbGVtZW50LmlkKQorICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpCisgICAgYXNzZXJ0
ICJzaGFkb3ctNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmIiBpbiB2YWx1ZQorICAgIGFzc2Vy
dF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgY3VzdG9tX2VsZW1lbnQsIGV4cGVjdGVkKQorCisKK2Rl
ZiB0ZXN0X25vX3NoYWRvd19yb290KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxkaXY+PHA+bm8gc2hhZG93IHJvb3Q8L3A+PC9kaXY+IikKKyAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZ2V0
X3NoYWRvd19yb290KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCBzaGFkb3cgcm9vdCIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L3VzZXJf
cHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzI2NzFiOTVhNTM1Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9z
aGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKQEAgLTAsMCArMSwxMTcgQEAKKyMgTUVUQTogdGlt
ZW91dD1sb25nCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxl
ZAorCisKK2RlZiBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CisgICAgcmV0
dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQiLCAic2Vzc2lvbi97c2Vz
c2lvbl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vc2hhZG93Ii5mb3JtYXQoCisgICAgICAgICAg
ICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9
ZWxlbWVudF9pZCkpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGNoZWNrYm94
X2RvbSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9k
b20KKyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1l
bGVtZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUs
IHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qo
c2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpCisKKyAgICAgICAg
YXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUs
IGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cs
IGNoZWNrYm94X2RvbSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVj
a2JveF9kb20KKyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVj
a2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9n
X3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93
X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNl
LCAidW5leHBlY3RlZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3NlcnRfZGlhbG9nX2hhbmRs
ZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0ZWRfcmV0dmFsPXJl
dHZhbCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgY2hlY2tib3hfZG9tKToKKyAg
ICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9kb20KKyAgICAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNl
KQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUp
CisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5p
ZCkKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAidW5leHBlY3RlZCBhbGVydCBvcGVu
IikKKworICAgICAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09IGRpYWxvZ190eXBlCisg
ICAgICAgIHNlc3Npb24uYWxlcnQuZGlzbWlzcygpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxp
dGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImFjY2VwdCJ9KQorQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25l
KSwKKyAgICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10pCitkZWYg
dGVzdF9hY2NlcHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uLCBk
aWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJp
bGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0IGFuZCBub3RpZnkifSkK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAo
ImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgVHJ1ZSksCisgICAgKCJwcm9tcHQiLCAi
IiksCitdKQorZGVmIHRlc3RfYWNjZXB0X2FuZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitA
cHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlz
bWlzcyJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwg
WworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJw
cm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzKGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwp
CisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9y
IjogImRpc21pc3MgYW5kIG5vdGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFs
b2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0i
LCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzX2Fu
ZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2df
dHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsi
dW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiaWdub3JlIn0pCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImRpYWxvZ190eXBlIiwgWyJhbGVydCIsICJjb25maXJtIiwgInByb21wdCJdKQorZGVm
IHRlc3RfaWdub3JlKGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbiwg
ZGlhbG9nX3R5cGUpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190
eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZh
bHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2RlZmF1bHQoY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToK
KyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUs
IHJldHZhbCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS9nZXQucHkKaW5k
ZXggZmZlNmRkNjQxZTgyLi5jZmM2M2JkNzg4ZGUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2Vs
ZW1lbnRfdGFnX25hbWUvZ2V0LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF90YWdfbmFt
ZShzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTEwLDkgKzksMTYgQEAgZGVmIGdldF9lbGVtZW50
X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRs
ZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3Rh
Z19uYW1lKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGFnX25hbWUoc2Vz
c2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVz
cG9uc2UgPSBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0g
Z2V0X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgImZvbyIpCkBAIC0yNCw3ICszMCw3IEBAIGRl
ZiB0ZXN0X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1
bHQsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lv
bik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTMz
LDcgKzM5LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRf
ZXJyb3IocmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAKLWRlZiB0ZXN0X2dl
dF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2VsZW1lbnRfdGFnX25h
bWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlk
PWZvbz4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1lL3VzZXJf
cHJvbXB0cy5weQppbmRleCAxMmE3ZDQ0ODQyMWUuLjg5Njk3ZDBhZDZhMiAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90
YWdfbmFtZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkKQEAg
LTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRs
ZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRf
ZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTEyLDcgKzExLDcgQEAg
ZGVmIGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRl
c3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBl
LCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4i
KQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkK
QEAgLTI4LDcgKzI3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00NCw3ICs0Myw3IEBAIGRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Ns
b3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
LCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFs
bD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5CmluZGV4IDVmMTY5
YTNhMjMzYi4uNzJkYzBjZjczNWU1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9n
ZXQucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBp
bXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxlbWVudF9p
ZCk6CkBAIC0xMCwyOSArOSwzMiBAQCBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVt
ZW50X2lkKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBj
bG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2lu
ZG93CisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnQuaWQp
CisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3Bv
bnNlID0gZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUg
PSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lv
biwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1l
bnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2Zy
YW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgImZvbyIpCiAg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0
X2dldHRpbmdfdGV4dF9vZl9hX25vbl9leGlzdGFudF9lbGVtZW50X2lzX2FuX2Vycm9yKHNlc3Np
b24pOgorZGVmIHRlc3RfZ2V0dGluZ190ZXh0X29mX2Ffbm9uX2V4aXN0YW50X2VsZW1lbnRfaXNf
YW5fZXJyb3Ioc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8
Ym9keT5IZWxsbyB3b3JsZDwvYm9keT4iIiIpCiAKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF90
ZXh0KHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJubyBzdWNoIGVs
ZW1lbnQiKQogCiAKLWRlZiB0ZXN0X3JlYWRfZWxlbWVudF90ZXh0KHNlc3Npb24pOgotICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCIiIgotICAgICAgICA8Ym9keT4KLSAgICAgICAgICBOb2lzZSBi
ZWZvcmUgPHNwYW4gaWQ9J2lkJz5UaGlzIGhhcyBhbiBJRDwvc3Bhbj4uIE5vaXNlIGFmdGVyCi0g
ICAgICAgIDwvYm9keT4iIiIpCi0KK2RlZiB0ZXN0X3JlYWRfZWxlbWVudF90ZXh0KHNlc3Npb24s
IGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIkJlZm9yZSBmPHNwYW4gaWQ9J2lk
Jz5vbzwvc3Bhbj4gYWZ0ZXIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjaWQi
LCBhbGw9RmFsc2UpCiAKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVs
ZW1lbnQuaWQpCi0gICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiVGhpcyBoYXMgYW4gSUQiKQor
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIm9vIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC91c2VyX3By
b21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9lbGVtZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDFlZTVjZGU0ZGE1Mi4uOWYwYmIz
ODZjZGY1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC91c2VyX3By
b21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRf
ZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQog
CiAKIGRlZiBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAtMTQsNyAr
MTMsNyBAQCBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBA
cHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAg
ICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2df
dHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPWZvbz5i
YXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9
RmFsc2UpCkBAIC0zMCw3ICsyOSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAg
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD1mb28+YmFyPC9wPiIpCiAgICAgICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtNDYsNyArNDUs
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxwIGlkPWZvbz5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoIiNmb28iLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFtZWRfY29va2llL2dldC5w
eQppbmRleCAxMDJjMThmMDI3NWMuLmQxZTgzYjZhODE1MiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFtZWRfY29va2llL2dldC5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9u
YW1lZF9jb29raWUvZ2V0LnB5CkBAIC0xLDEyICsxLDEwIEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZy
b20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKLWZyb20gc2l4IGltcG9ydCBp
bnRlZ2VyX3R5cGVzLCB0ZXh0X3R5cGUKIAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0Lmhl
bHBlcnMgaW1wb3J0IGNsZWFyX2FsbF9jb29raWVzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X25hbWVkX2Nvb2tpZShzZXNzaW9uLCBuYW1lKToK
QEAgLTM4LDEzICszNiwxMyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vzc2lvbl9jb29raWUoc2Vz
c2lvbiwgdXJsKToKICAgICAjIHRhYmxlIGZvciBjb29raWUgY29udmVyc2lvbgogICAgICMgaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZGZuLXRhYmxlLWZvci1jb29raWUtY29udmVy
c2lvbgogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
Im5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAicGF0aCIgaW4gY29va2llCi0g
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJwYXRoIl0sIHRleHRfdHlwZSkKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbInBhdGgiXSwgc3RyKQogICAgIGFzc2VydCAiZG9tYWluIiBp
biBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCB0ZXh0X3R5
cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgc3RyKQogICAgIGFz
c2VydCAic2VjdXJlIiBpbiBjb29raWUKICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNl
Y3VyZSJdLCBib29sKQogICAgIGFzc2VydCAiaHR0cE9ubHkiIGluIGNvb2tpZQpAQCAtNTIsNyAr
NTAsNyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vzc2lvbl9jb29raWUoc2Vzc2lvbiwgdXJsKToK
ICAgICBpZiAiZXhwaXJ5IiBpbiBjb29raWU6CiAgICAgICAgIGFzc2VydCBjb29raWUuZ2V0KCJl
eHBpcnkiKSBpcyBOb25lCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4gY29va2llCi0gICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0
IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2ll
WyJuYW1lIl0gPT0gImZvbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09ICJiYXIiCkBA
IC03MiwxMyArNzAsMTMgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX2Nvb2tpZShzZXNzaW9uLCB1cmwp
OgogICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAogICAgIGFzc2VydCAibmFt
ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRf
dHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFz
c2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFs
dWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwg
c3RyKQogICAgIGFzc2VydCAiZXhwaXJ5IiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5j
ZShjb29raWVbImV4cGlyeSJdLCBpbnRlZ2VyX3R5cGVzKQorICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvb2tpZVsiZXhwaXJ5Il0sIGludCkKICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBjb29raWUK
LSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlwZSkKKyAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAgIGFzc2Vy
dCBjb29raWVbIm5hbWUiXSA9PSAiZm9vIgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0g
ImJhciIKQEAgLTg3LDcgKzg1LDcgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX2Nvb2tpZShzZXNzaW9u
LCB1cmwpOgogICAgICAgICBjb29raWVbImV4cGlyeSJdKS5zdHJmdGltZSh1dGNfc3RyaW5nX2Zv
cm1hdCkgPT0gYV9kYXlfZnJvbV9ub3cKIAogCi1kZWYgdGVzdF9kdXBsaWNhdGVkX2Nvb2tpZShz
ZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcpOgorZGVmIHRlc3RfZHVwbGljYXRlZF9jb29raWUo
c2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIG5ld19jb29raWUgPSB7
CiAgICAgICAgICJuYW1lIjogImhlbGxvIiwKICAgICAgICAgInZhbHVlIjogIndvcmxkIiwKQEAg
LTExMywxMSArMTExLDExIEBAIGRlZiB0ZXN0X2R1cGxpY2F0ZWRfY29va2llKHNlc3Npb24sIHVy
bCwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llLCBkaWN0KQog
CiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFt
ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5z
dGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJ2YWx1ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4gY29va2llCi0g
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5cGUpCisgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQg
Y29va2llWyJuYW1lIl0gPT0gbmV3X2Nvb2tpZVsibmFtZSJdCiAgICAgYXNzZXJ0IGNvb2tpZVsi
dmFsdWUiXSA9PSAibmV3d29ybGQiCkBAIC0xMzYsMTEgKzEzNCwxMSBAQCBkZWYgdGVzdF9nZXRf
Y29va2llX3dpdGhfc2FtZV9zaXRlX2ZsYWcoc2Vzc2lvbiwgdXJsLCBzYW1lX3NpdGUpOgogICAg
IGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAogICAgIGFzc2VydCAibmFtZSIgaW4g
Y29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkK
KyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAi
dmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwg
dGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQog
ICAgIGFzc2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNv
b2tpZVsic2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsic2FtZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFtZSJdID09ICJmb28i
CiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAiYmFyIgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291
cmNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
cGFnZV9zb3VyY2Uvc291cmNlLnB5CmluZGV4IDU0ODRjY2JmMmVlZi4uY2M0ZTIwODgzNWM4IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9wYWdlX3NvdXJjZS9zb3VyY2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5CkBAIC0xLDUgKzEsNCBA
QAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRl
ZiBnZXRfcGFnZV9zb3VyY2Uoc2Vzc2lvbik6CkBAIC0xNyw3ICsxNiw3IEBAIGRlZiB0ZXN0X25v
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfc291cmNlX21hdGNo
ZXNfb3V0ZXJfaHRtbChzZXNzaW9uKToKK2RlZiB0ZXN0X3NvdXJjZV9tYXRjaGVzX291dGVyX2h0
bWwoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGh0bWw+PGhl
YWQ+PHRpdGxlPkNoZWVzZTwvdGl0bGU+PGJvZHk+UGVhcyIpCiAKICAgICBleHBlY3RlZCA9IHNl
c3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0
ZXJIVE1MIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0
cy5weQppbmRleCAzYjBjZGZmOTdkZDkuLjEzY2IzMTU5NWU2MSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2UvdXNl
cl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGlt
cG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9l
cnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9wYWdlX3NvdXJjZShzZXNz
aW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGdldF9wYWdlX3NvdXJjZShzZXNzaW9uKToKIAog
CiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6
CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYvPiIp
CiAgICAgICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudC5vdXRlckhUTUwiKQpAQCAtMjgsNyArMjcsNyBAQCBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdi8+
IikKIApAQCAtNDMsNyArNDIsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dldC5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dldC5weQpp
bmRleCAzNDQwNTc3NGJhMDYuLmU2OTZlYzM0MDMzOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvZ2V0LnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dldC5w
eQpAQCAtMSw3ICsxLDQgQEAKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKLQogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfdGl0bGUo
c2Vzc2lvbik6CkBAIC0xNCw3ICsxMSw3IEBAIGRlZiB0ZXN0X3BheWxvYWQoc2Vzc2lvbik6CiAK
ICAgICByZXNwb25zZSA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSkK
KyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKQogCiAKIGRlZiB0ZXN0X25vX3RvcF9i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgpAQCAtMjIsMjggKzE5LDI4
IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5k
b3cpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1k
ZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYg
dGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKIAogICAgIHJl
c3BvbnNlID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Us
ICJGb28iKQogCiAKLWRlZiB0ZXN0X3dpdGhfZHVwbGljYXRlZF90aXRsZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X3dpdGhfZHVwbGljYXRlZF90aXRsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8dGl0bGU+Rmlyc3Q8L3RpdGxlPjx0aXRsZT5TZWNvbmQ8L3RpdGxl
PiIpCiAKICAgICByZXN1bHQgPSBnZXRfdGl0bGUoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2Vz
cyhyZXN1bHQsICJGaXJzdCIpCiAKIAotZGVmIHRlc3Rfd2l0aG91dF90aXRsZShzZXNzaW9uKToK
K2RlZiB0ZXN0X3dpdGhvdXRfdGl0bGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGgyPkhlbGxvPC9oMj4iKQogCiAgICAgcmVzdWx0ID0gZ2V0X3RpdGxlKHNl
c3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiIikKIAogCi1kZWYgdGVzdF9hZnRl
cl9tb2RpZmljYXRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9hZnRlcl9tb2RpZmljYXRpb24oc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkluaXRpYWw8
L3RpdGxlPjxoMj5IZWxsbzwvaDI+IikKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJkb2N1
bWVudC50aXRsZSA9ICdVcGRhdGVkJyIpCiAKQEAgLTUxLDcgKzQ4LDcgQEAgZGVmIHRlc3RfYWZ0
ZXJfbW9kaWZpY2F0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIlVw
ZGF0ZWQiKQogCiAKLWRlZiB0ZXN0X3N0cmlwX2FuZF9jb2xsYXBzZShzZXNzaW9uKToKK2RlZiB0
ZXN0X3N0cmlwX2FuZF9jb2xsYXBzZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIGRvY3VtZW50ID0g
Ijx0aXRsZT4gICBhIGJcdGNcbmRcdCBcbiBlXHRcbiA8L3RpdGxlPjxoMj5IZWxsbzwvaDI+Igog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKGRvY3VtZW50KQogCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9pZnJhbWUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9p
ZnJhbWUucHkKaW5kZXggNTk5MWJmMzU5MDY5Li45YzVhYjBiNTk1ZDMgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2lmcmFt
ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF90aXRsZS9pZnJhbWUucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAogCiAiIiIKQEAgLTE1LDkgKzE0
LDIwIEBAIGFsc28gZW5mb3JjZSBwcm9jZXNzIGlzb2xhdGlvbiBiYXNlZCBvbiBzaXRlIG9yaWdp
bi4KIFRoaXMgaXMga25vd24gdG8gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zIGZvciBXZWJEcml2
ZXIgaW1wbGVtZW50YXRpb25zLgogIiIiCiAKLWZyYW1lX2RvYyA9IGlubGluZSgiPHRpdGxlPmNo
ZWVzZTwvdGl0bGU+PHA+ZnJhbWUiKQotb25lX2ZyYW1lX2RvYyA9IGlubGluZSgiPHRpdGxlPmJh
cjwvdGl0bGU+PGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgZnJhbWVfZG9jKQotbmVzdGVk
X2ZyYW1lc19kb2MgPSBpbmxpbmUoIjx0aXRsZT5mb288L3RpdGxlPjxpZnJhbWUgc3JjPSclcyc+
PC9pZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGZyYW1l
X2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjx0aXRsZT5jaGVlc2U8L3RpdGxlPjxw
PmZyYW1lIikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBvbmVfZnJhbWVfZG9jKGlubGluZSwg
ZnJhbWVfZG9jKToKKyAgICByZXR1cm4gaW5saW5lKCI8dGl0bGU+YmFyPC90aXRsZT48aWZyYW1l
IHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCisKKworQHB5dGVzdC5maXh0dXJlCitk
ZWYgbmVzdGVkX2ZyYW1lc19kb2MoaW5saW5lLCBvbmVfZnJhbWVfZG9jKToKKyAgICByZXR1cm4g
aW5saW5lKCI8dGl0bGU+Zm9vPC90aXRsZT48aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBv
bmVfZnJhbWVfZG9jKQogCiAKIGRlZiBnZXRfdGl0bGUoc2Vzc2lvbik6CkBAIC0yNSwxNCArMzUs
MTQgQEAgZGVmIGdldF90aXRsZShzZXNzaW9uKToKICAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tz
ZXNzaW9uX2lkfS90aXRsZSIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3Rf
bm9faWZyYW1lKHNlc3Npb24pOgorZGVmIHRlc3Rfbm9faWZyYW1lKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb29iYXI8L3RpdGxlPjxoMj5IZWxs
bzwvaDI+IikKIAogICAgIHJlc3VsdCA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIGFzc2VydF9z
dWNjZXNzKHJlc3VsdCwgIkZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWZyYW1lKHNlc3Npb24pOgor
ZGVmIHRlc3RfaWZyYW1lKHNlc3Npb24sIG9uZV9mcmFtZV9kb2MpOgogICAgIHNlc3Npb24udXJs
ID0gb25lX2ZyYW1lX2RvYwogCiAgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUi
LCBhbGw9RmFsc2UpCkBAIC00Myw3ICs1Myw3IEBAIGRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToK
ICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgImJhciIpCiAKIAotZGVmIHRlc3RfbmVzdGVk
X2lmcmFtZShzZXNzaW9uKToKK2RlZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vzc2lvbiwgbmVzdGVk
X2ZyYW1lc19kb2MpOgogICAgIHNlc3Npb24udXJsID0gbmVzdGVkX2ZyYW1lc19kb2MKIAogICAg
IG91dGVyX2ZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQpAQCAt
NTgsNyArNjgsNyBAQCBkZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Npb24pOgogCiAKIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiZG9tYWluIiwgWyIiLCAiYWx0Il0sIGlkcz1bInNhbWVfb3Jp
Z2luIiwgImNyb3NzX29yaWdpbiJdKQotZGVmIHRlc3Rfb3JpZ2luKHNlc3Npb24sIGRvbWFpbiwg
dXJsKToKK2RlZiB0ZXN0X29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSwgZG9tYWluKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPmZvbzwvdGl0bGU+e30iLmZvcm1hdCgK
ICAgICAgICAgaWZyYW1lKCI8dGl0bGU+YmFyPC90aXRsZT48cD5mcmFtZSIsIGRvbWFpbj1kb21h
aW4pKSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDc2
ZDY1YzA4OGEwYi4uMGZkNTFlNDZmMzJhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS91c2VyX3Byb21wdHMucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNl
cl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJy
b3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogCiBkZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgpAQCAtMTIsNyArMTEsNyBAQCBkZWYgZ2V0
X3RpdGxlKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKICAgICAgICAgZXhwZWN0ZWRfdGl0bGUg
PSBzZXNzaW9uLnRpdGxlCkBAIC0yOCw3ICsyNyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5
dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Rm9vPC90aXRsZT4iKQog
CkBAIC00Myw3ICs0Miw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKIApAQCAtMTE3LDcgKzExNiw3
IEBAIGRlZiB0ZXN0X2RlZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKICMgdHJpZ2dlciB0aGUgY3JlYXRpb24gb2YgYSBk
aWFsb2cgYXQgYWxsLiBUaGVyZWZvcmUsIHRoaXMgdGVzdCBzaG91bGQgb25seSBiZQogIyBydW4g
aW4gY29udGV4dHMgdGhhdCBzdXBwb3J0IHRoZSBkaWFsb2cgKGEgY29uZGl0aW9uIHRoYXQgbWF5
IG5vdCBiZQogIyBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkpLgotIyBkZWYgdGVzdF90aXRsZV93
aXRoX25vbl9zaW1wbGVfZGlhbG9nKHNlc3Npb24pOgorIyBkZWYgdGVzdF90aXRsZV93aXRoX25v
bl9zaW1wbGVfZGlhbG9nKHNlc3Npb24sIGlubGluZSk6CiAjICAgIGRvY3VtZW50ID0gIjx0aXRs
ZT5XaXRoIG5vbi1zaW1wbGUgZGlhbG9nPC90aXRsZT48aDI+SGVsbG88L2gyPiIKICMgICAgc3Bh
d24gPSAiIiIKICMgICAgICAgIHZhciBkb25lID0gYXJndW1lbnRzWzBdOwpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hh
bmRsZS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF93aW5kb3dfaGFuZGxlL2dldC5weQppbmRleCA4YzI2MjAzM2MzODMuLjY4NDQxZGE1ZWY4
NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkKQEAgLTEsMyArMSw1
IEBACitpbXBvcnQgcHl0ZXN0CisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtMTksMyArMjEsMjMgQEAgZGVmIHRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogZGVmIHRlc3Rf
YmFzaWMoc2Vzc2lvbik6CiAgICAgcmVzcG9uc2UgPSBnZXRfd2luZG93X2hhbmRsZShzZXNzaW9u
KQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBzZXNzaW9uLndpbmRvd19oYW5kbGUpCisK
KworIyBDYXBhYmlsaXR5IG5lZWRlZCBhcyBsb25nIGFzIG5vIHZhbGlkIGNlcnRpZmljYXRlIGlz
IGF2YWlsYWJsZToKKyMgICBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9pc3N1ZXMvMjg4NDcKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJhY2NlcHRJbnNlY3Vy
ZUNlcnRzIjogVHJ1ZX0pCitkZWYgdGVzdF9uYXZpZ2F0aW9uX3dpdGhfY29vcF9oZWFkZXJzKHNl
c3Npb24sIHVybCk6CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQv
aHRtbC9zdWJmcmFtZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jv
c3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorCisgICAgc2Vzc2lvbi51cmwg
PSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHJlc3BvbnNlID0gZ2V0X3dp
bmRvd19oYW5kbGUoc2Vzc2lvbikKKyAgICBmaXJzdF9oYW5kbGUgPSBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSkKKworICAgICMgbmF2aWdhdGluZyB0byBhbm90aGVyIGRvbWFpbiB3aXRoIENPT1Ag
aGVhZGVycyB3aWxsIGZvcmNlIGEgcHJvY2VzcyBjaGFuZ2UKKyAgICAjIGluIG1vc3QgYnJvd3Nl
cnMKKyAgICBzZXNzaW9uLnVybCA9IHVybChiYXNlX3BhdGgsIHByb3RvY29sPSJodHRwcyIsIGRv
bWFpbj0iYWx0IikKKyAgICByZXNwb25zZSA9IGdldF93aW5kb3dfaGFuZGxlKHNlc3Npb24pCisg
ICAgc2Vjb25kX2hhbmRsZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0
IGZpcnN0X2hhbmRsZSA9PSBzZWNvbmRfaGFuZGxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVjdC9nZXQucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVj
dC9nZXQucHkKaW5kZXggNzkzNjUwZmVlZjQ2Li5mNzU5MmEzMGUwNjcgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dpbmRvd19yZWN0
L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF93aW5kb3dfcmVjdC9nZXQucHkKQEAgLTEsOCArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotYWxlcnRfZG9jID0gaW5saW5lKCI8
c2NyaXB0PndpbmRvdy5hbGVydCgpPC9zY3JpcHQ+IikKIAogCiBkZWYgZ2V0X3dpbmRvd19yZWN0
KHNlc3Npb24pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5lc3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDA0OWQ4MzVmMmZjLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvIj4K
LTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL2lkbGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICJ1c2Ugc3RyaWN0
IjsKLQotICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewotICAgIGNvbnN0IGlkbF9hcnJheSA9
IG5ldyBJZGxBcnJheSgpOwotICAgIGNvbnN0IGlkbCA9IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNl
cy93ZWJkcml2ZXIuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKLSAgICBjb25zdCBodG1sID0g
YXdhaXQgZmV0Y2goIi9pbnRlcmZhY2VzL2h0bWwuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsK
LSAgICBpZGxfYXJyYXkuYWRkX2lkbHMoaWRsKTsKLSAgICBpZGxfYXJyYXkuYWRkX2RlcGVuZGVu
Y3lfaWRscyhodG1sKTsKLSAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoewotICAgICAgTmF2aWdh
dG9yOiBbIm5hdmlnYXRvciJdCi0gICAgfSk7Ci0gICAgaWRsX2FycmF5LnRlc3QoKTsKLSAgfSwg
IlRlc3QgSURMIGltcGxlbWVudGF0aW9uIG9mIHdlYmRyaXZlciBBUEkiKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9p
ZGxoYXJuZXNzLndpbmRvdy5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvaWRsaGFybmVzcy53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi5lOTJlMTUxZDg5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5lc3Mud2luZG93LmpzCkBA
IC0wLDAgKzEsMTYgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5q
cworLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworCisvLyBodHRwczov
L3czYy5naXRodWIuaW8vd2ViZHJpdmVyLworCisidXNlIHN0cmljdCI7CisKK2lkbF90ZXN0KAor
ICBbIndlYmRyaXZlciJdLAorICBbImh0bWwiXSwKKyAgaWRsX2FycmF5ID0+IHsKKyAgICBpZGxf
YXJyYXkuYWRkX29iamVjdHMoeworICAgICAgTmF2aWdhdG9yOiBbIm5hdmlnYXRvciJdCisgICAg
fSk7CisgIH0KKyk7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvZW5hYmxl
ZC5weQppbmRleCA4OGIxNTM0ZGVkMWEuLjRhNWE5MmJhNWU5MSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQv
ZW5hYmxlZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5CkBAIC0xLDcgKzEsNiBAQAogaW1wb3J0
IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE1
LDE2ICsxNCwyMyBAQCBkZWYgaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnRfaWQp
OgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93
aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAg
ICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9
IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBv
cmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9u
LCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVu
dCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJh
bWUpOgogICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sICJmb28iKQog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVz
dF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5y
ZWZyZXNoKCkKQEAgLTM0LDcgKzQwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9u
KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQiLCBbImJ1dHRvbiIsICJp
bnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X2Zvcm1fY29udHJvbF9kaXNh
YmxlZChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2Zvcm1fY29udHJvbF9kaXNhYmxlZChz
ZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8e30g
ZGlzYWJsZWQvPiIuZm9ybWF0KGVsZW1lbnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtNDMsNyArNDksNyBAQCBkZWYgdGVzdF9mb3Jt
X2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRh
cmVhIl0pCi1kZWYgdGVzdF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50KToK
K2RlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7fS8+Ii5mb3JtYXQoZWxlbWVudCkpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNlKQogCkBAIC01Miw3
ICs1OCw3IEBAIGRlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnQp
OgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIsIFsiYnV0dG9uIiwgImlu
cHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRf
ZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVk
X2Rlc2NlbmRhbnQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGZpZWxkc2V0IGRpc2FibGVkPjx7fS8+PC9maWVsZHNldD4iLmZvcm1hdChlbGVt
ZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2Up
CiAKQEAgLTYxLDcgKzY3LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2VuZGFu
dChzZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1l
bnQiLCBbImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0
X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0
X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZmllbGRzZXQ+PHt9Lz48L2ZpZWxkc2V0PiIuZm9y
bWF0KGVsZW1lbnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFs
bD1GYWxzZSkKIApAQCAtNzAsNyArNzYsNyBAQCBkZWYgdGVzdF9maWVsZHNldF9lbmFibGVkX2Rl
c2NlbmRhbnQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1k
ZWYgdGVzdF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChzZXNzaW9uLCBlbGVt
ZW50KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNlc3Np
b24sIGlubGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxmaWVsZHNl
dCBkaXNhYmxlZD48bGVnZW5kPjx7fS8+PC9sZWdlbmQ+PC9maWVsZHNldD4iLmZvcm1hdChlbGVt
ZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2Up
CiAKQEAgLTc5LDcgKzg1LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2VuZGFu
dF9sZWdlbmQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1k
ZWYgdGVzdF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNlc3Npb24sIGVsZW1l
bnQpOgorZGVmIHRlc3RfZmllbGRzZXRfZW5hYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChzZXNzaW9u
LCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZmllbGRzZXQ+
PGxlZ2VuZD48e30vPjwvbGVnZW5kPjwvZmllbGRzZXQ+Ii5mb3JtYXQoZWxlbWVudCkpCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNlKQogCkBAIC04OCw3
ICs5NCw3IEBAIGRlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vz
c2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVtZW50Iiwg
WyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVzdF94aHRt
bF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVzdF94aHRt
bF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiI8e30gZGlzYWJsZWQ9ImRpc2FibGVkIi8+IiIiLmZvcm1h
dChlbGVtZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0eXBlPSJ4aHRtbCIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNlKQpAQCAtOTgs
NyArMTA0LDcgQEAgZGVmIHRlc3RfeGh0bWxfZm9ybV9jb250cm9sX2Rpc2FibGVkKHNlc3Npb24s
IGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIsIFsiYnV0
dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfeGh0bWxfZm9y
bV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVzdF94aHRtbF9mb3Jt
X2NvbnRyb2xfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIjx7fS8+IiIiLmZvcm1hdChlbGVtZW50KSwgZG9jdHlwZT0ieGh0bWwi
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApA
QCAtMTA2LDcgKzExMiw3IEBAIGRlZiB0ZXN0X3hodG1sX2Zvcm1fY29udHJvbF9lbmFibGVkKHNl
c3Npb24sIGVsZW1lbnQpOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgVHJ1ZSkKIAogCi1k
ZWYgdGVzdF94bWxfYWx3YXlzX25vdF9lbmFibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfeG1sX2Fs
d2F5c19ub3RfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCIiIjxub3RlPjwvbm90ZT4iIiIsIGRvY3R5cGU9InhtbCIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoIm5vdGUiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL3Vz
ZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvaXNfZWxlbWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weQppbmRleCBiZDhiYzgxYmRmY2Mu
LjVkZDdkNTgyYmQzZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFi
bGVkL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X2RpYWxv
Z19oYW5kbGVkLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiAKIAogZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50X2lk
KToKQEAgLTE3LDcgKzE2LDcgQEAgZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVt
ZW50X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxpbnB1dCBpZD1mb28gZGlzYWJsZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9
Zm9vIGRpc2FibGVkPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9v
IiwgYWxsPUZhbHNlKQpAQCAtNDksNyArNDgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3Qu
Zml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToK
ICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gZGlzYWJsZWQ+IikK
ICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lz
X2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkKaW5kZXgg
NzlhMTYxNWRkOWZkLi42YzhlODE1NWNhYjEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC9zZWxlY3RlZC5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2Vs
ZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkKQEAgLTEsMTIgKzEsMTggQEAKK2ltcG9ydCBweXRl
c3QKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCi1j
aGVja19kb2MgPSBpbmxpbmUoIiIiCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja19kb2MoaW5s
aW5lKToKKyAgICByZXR1cm4gaW5saW5lKCIiIgogICAgIDxpbnB1dCBpZD1jaGVja2VkIHR5cGU9
Y2hlY2tib3ggY2hlY2tlZD4KICAgICA8aW5wdXQgaWQ9bm90Q2hlY2tlZCB0eXBlPWNoZWNrYm94
PgogICAgICIiIikKLW9wdGlvbl9kb2MgPSBpbmxpbmUoIiIiCisKKworQHB5dGVzdC5maXh0dXJl
CitkZWYgb3B0aW9uX2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIiIiCiAgICAgPHNl
bGVjdD4KICAgICAgIDxvcHRpb24gaWQ9bm90U2VsZWN0ZWQ+ci0KICAgICAgIDxvcHRpb24gaWQ9
c2VsZWN0ZWQgc2VsZWN0ZWQ+cisKQEAgLTIyLDE2ICsyOCwyNCBAQCBkZWYgaXNfZWxlbWVudF9z
ZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUs
IGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfc2Vs
ZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBpc19lbGVtZW50X3NlbGVjdGVkKHNlc3Np
b24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikK
IAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3Bv
bnNlID0gaXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJv
d3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gaXNf
ZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9u
KToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgY2hlY2tfZG9jKToKICAgICBzZXNz
aW9uLnVybCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjY2hl
Y2tlZCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtNDAsNyArNTQsNyBA
QCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1
bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9jaGVj
a2VkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9jaGVja2VkKHNlc3Npb24sIGNoZWNrX2Rv
Yyk6CiAgICAgc2Vzc2lvbi51cmwgPSBjaGVja19kb2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiI2NoZWNrZWQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ4LDcgKzYyLDcgQEAgZGVmIHRl
c3RfZWxlbWVudF9jaGVja2VkKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwg
VHJ1ZSkKIAogCi1kZWYgdGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbik6CitkZWYg
dGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbiwgY2hlY2tfZG9jKToKICAgICBzZXNz
aW9uLnVybCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjbm90
Q2hlY2tlZCIsIGFsbD1GYWxzZSkKIApAQCAtNTYsNyArNzAsNyBAQCBkZWYgdGVzdF9jaGVja2Jv
eF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBGYWxz
ZSkKIAogCi1kZWYgdGVzdF9lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxl
bWVudF9zZWxlY3RlZChzZXNzaW9uLCBvcHRpb25fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9w
dGlvbl9kb2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI3NlbGVjdGVkIiwgYWxs
PUZhbHNlKQogCkBAIC02NCw3ICs3OCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc2VsZWN0ZWQoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBUcnVlKQogCiAKLWRlZiB0ZXN0X2Vs
ZW1lbnRfbm90X3NlbGVjdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9ub3Rfc2VsZWN0
ZWQoc2Vzc2lvbiwgb3B0aW9uX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvcHRpb25fZG9jCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNub3RTZWxlY3RlZCIsIGFsbD1GYWxzZSkK
IApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC91c2VyX3Byb21w
dHMucHkKaW5kZXggNjc0ZjgwYzVjNzViLi45NmRhMmMwOGJkN2UgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3Rl
ZC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICsz
LDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfc3VjY2VzcwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGlzX2VsZW1lbnRf
c2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBpc19l
bGVtZW50X3NlbGVjdGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwp
OgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbyB0eXBlPWNoZWNr
Ym94IGNoZWNrZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28i
LCBhbGw9RmFsc2UpCkBAIC0zMSw3ICszMCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIHR5cGU9Y2hlY2ti
b3ggY2hlY2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIs
IGFsbD1GYWxzZSkKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9i
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIHR5cGU9Y2hlY2tib3gg
Y2hlY2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFs
bD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9tYXhpbWl6ZV93aW5kb3cvbWF4aW1pemUucHkKaW5k
ZXggNjkwM2VlY2U3MGQwLi5lMjMzZTQ1YTEwZDcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1p
emVfd2luZG93L21heGltaXplLnB5CkBAIC04NCw2ICs4NCw3IEBAIGRlZiB0ZXN0X21heGltaXpl
X3doZW5fcmVzaXplZF90b19tYXhfc2l6ZShzZXNzaW9uKToKICAgICBzZXNzaW9uLmVuZCgpCiAg
ICAgc2Vzc2lvbi53aW5kb3cubWF4aW1pemUoKQogICAgIGF2YWlsYWJsZSA9IHNlc3Npb24ud2lu
ZG93LnNpemUKKyAgICBzZXNzaW9uLndpbmRvdy5zaXplID0gKDgwMCwgNjAwKQogICAgIHNlc3Np
b24uZW5kKCkKIAogICAgIHNlc3Npb24ud2luZG93LnNpemUgPSBhdmFpbGFibGUKQEAgLTk1LDQg
Kzk2LDUgQEAgZGVmIHRlc3RfbWF4aW1pemVfd2hlbl9yZXNpemVkX3RvX21heF9zaXplKHNlc3Np
b24pOgogICAgICMgaXRzIGV4cGVjdGVkIGRpbWVuc2lvbnMuCiAgICAgYmVmb3JlID0gc2Vzc2lv
bi53aW5kb3cuc2l6ZQogICAgIHNlc3Npb24ud2luZG93Lm1heGltaXplKCkKLSAgICBhc3NlcnQg
c2Vzc2lvbi53aW5kb3cuc2l6ZSA9PSBiZWZvcmUKKyAgICBhZnRlciA9IHNlc3Npb24ud2luZG93
LnNpemUKKyAgICBhc3NlcnQgYWZ0ZXIgPT0gYmVmb3JlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL25hdmlnYXRlLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZpZ2F0ZV90
by9uYXZpZ2F0ZS5weQppbmRleCAyODllNDMyMTAxMWYuLjI1ZDc2ODE2N2FhMCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZpZ2F0ZV90
by9uYXZpZ2F0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL25hdmlnYXRlX3RvL25hdmlnYXRlLnB5CkBAIC0xLDggKzEsMTEgQEAKLWZyb20gdGVz
dHMuc3VwcG9ydCBpbXBvcnQgcGxhdGZvcm1fbmFtZQoraW1wb3J0IHRpbWUKKworaW1wb3J0IHB5
dGVzdAorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiBmcm9tIHdlYmRyaXZlci50cmFuc3Bv
cnQgaW1wb3J0IFJlc3BvbnNlCiAKK2Zyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQgcGxhdGZvcm1f
bmFtZQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAK
IGRlZiBuYXZpZ2F0ZV90byhzZXNzaW9uLCB1cmwpOgpAQCAtMTcsNyArMjAsNyBAQCBkZWYgdGVz
dF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwKToKICAgICAgICAgYXNzZXJ0X2Vy
cm9yKFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSksICJpbnZhbGlkIGFyZ3VtZW50IikKIAog
Ci1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9y
ZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHJlc3BvbnNlID0gbmF2aWdhdGVf
dG8oc2Vzc2lvbiwgaW5saW5lKCI8ZGl2Lz4iKSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQogICAgIGFzc2VydCB2YWx1ZSBpcyBOb25lCkBAIC0yOCw3ICszMSw3IEBAIGRl
ZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVz
dF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9u
b19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICBk
b2MgPSBpbmxpbmUoIjxwPmZvbyIpCiAKICAgICByZXNwb25zZSA9IG5hdmlnYXRlX3RvKHNlc3Np
b24sIGRvYykKQEAgLTUyLDMgKzU1LDQ4IEBAIGRlZiB0ZXN0X2ZpbGVfcHJvdG9jb2woc2Vzc2lv
biwgc2VydmVyX2NvbmZpZyk6CiAgICAgaWYgc2Vzc2lvbi51cmwuZW5kc3dpdGgoJy8nKToKICAg
ICAgICAgdXJsICs9ICcvJwogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSB1cmwKKworCisjIENh
cGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxh
YmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vl
cy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMi
OiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIHVybCk6Cisg
ICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5o
dG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBw
cm90b2NvbD0iaHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9j
b2w9Imh0dHBzIiwgZG9tYWluPSJhbHQiKQorCisgICAgcmVzcG9uc2UgPSBuYXZpZ2F0ZV90byhz
ZXNzaW9uLCBmaXJzdF9wYWdlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAg
YXNzZXJ0IHNlc3Npb24udXJsID09IGZpcnN0X3BhZ2UKKyAgICBlbGVtID0gc2Vzc2lvbi5maW5k
LmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0gbmF2aWdhdGVfdG8o
c2Vzc2lvbiwgc2Vjb25kX3BhZ2UpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAg
ICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gc2Vjb25kX3BhZ2UKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoZXJyb3IuU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbS5j
bGljaygpCisKKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQorCisK
K0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJwYWdlTG9hZFN0cmF0ZWd5IjogImVhZ2VyIn0p
CitkZWYgdGVzdF91dGY4X21ldGFfdGFnX2FmdGVyXzEwMjRfYnl0ZXMoc2Vzc2lvbiwgdXJsKToK
KyAgICBwYWdlID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9tZXRhLXV0Zjgt
YWZ0ZXItMTAyNC1ieXRlcy5odG1sIikKKworICAgICMgTG9hZGluZyB0aGUgcGFnZSB3aWxsIGNh
dXNlIGEgcmVhbCBwYXJzZSBjb21tZW5jaW5nLCBhbmQgYSByZW5hdmlnYXRpb24KKyAgICAjIHRv
IHRoZSBzYW1lIFVSTCBnZXR0aW5nIHRyaWdnZXJlZCBzdWJzZXF1ZW50bHkuIFRlc3QgdGhhdCB0
aGUgbmF2aWdhdGUKKyAgICAjIGNvbW1hbmQgd2FpdHMgbG9uZyBlbm91Z2guCisgICAgcmVzcG9u
c2UgPSBuYXZpZ2F0ZV90byhzZXNzaW9uLCBwYWdlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3Bv
bnNlKQorCisgICAgIyBJZiB0aGUgY29tbWFuZCByZXR1cm5zIHRvbyBlYXJseSB0aGUgcHJvcGVy
dHkgd2lsbCBiZSByZXNldCBkdWUgdG8gdGhlCisgICAgIyBzdWJzZXF1ZW50IHBhZ2UgbG9hZC4K
KyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cuZm9vID0gJ2JhciciKQorCisgICAg
IyBVc2UgZGVsYXkgdG8gYWxsb3cgYSBwb3NzaWJsZSBtaXNzaW5nIHN1YnNlcXVlbnQgbmF2aWdh
dGlvbiB0byBzdGFydAorICAgIHRpbWUuc2xlZXAoMSkKKworICAgIGFzc2VydCBzZXNzaW9uLmV4
ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LmZvbyIpID09ICJiYXIiCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3Vz
ZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvbmF2aWdhdGVfdG8vdXNlcl9wcm9tcHRzLnB5CmluZGV4IDZhOTRjMTFiZjFkMy4uNjgyYmM0
MGY0ZmU5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weQpA
QCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2Vy
dHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFu
ZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIG5h
dmlnYXRlX3RvKHNlc3Npb24sIHVybCk6CkBAIC0xMyw3ICsxMiw3IEBAIGRlZiBuYXZpZ2F0ZV90
byhzZXNzaW9uLCB1cmwpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICB1cmwgPSBpbmxp
bmUoIjxkaXYvPiIpCiAKQEAgLTMwLDcgKzI5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KToKICAgICAgICAgdXJsID0gaW5saW5lKCI8ZGl2Lz4iKQogCkBAIC00Nyw3ICs0Niw3IEBAIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICB1cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
bmV3X3Nlc3Npb24vcmVzcG9uc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CmluZGV4IGNiZTllN2Q3ZmIxNC4u
NDNhOGQ1NzkzMTE0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vcmVzcG9uc2UucHkKQEAg
LTEsMjkgKzEsMjcgQEAKIGltcG9ydCB1dWlkCiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gc2l4IGlt
cG9ydCBzdHJpbmdfdHlwZXMKLQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9zdWNjZXNzCiAKIAogZGVmIHRlc3Rfc2Vzc2lvbmlkKG5ld19zZXNzaW9uLCBhZGRfYnJv
d3Nlcl9jYXBhYmlsaXRpZXMpOgogICAgIHJlc3BvbnNlLCBfID0gbmV3X3Nlc3Npb24oeyJjYXBh
YmlsaXRpZXMiOiB7ImFsd2F5c01hdGNoIjogYWRkX2Jyb3dzZXJfY2FwYWJpbGl0aWVzKHt9KX19
KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5z
dGFuY2UodmFsdWVbInNlc3Npb25JZCJdLCBzdHJpbmdfdHlwZXMpCisgICAgYXNzZXJ0IGlzaW5z
dGFuY2UodmFsdWVbInNlc3Npb25JZCJdLCBzdHIpCiAgICAgdXVpZC5VVUlEKGhleD12YWx1ZVsi
c2Vzc2lvbklkIl0pCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjYXBhYmlsaXR5LCB0
eXBlIiwgWwotICAgICgiYnJvd3Nlck5hbWUiLCBzdHJpbmdfdHlwZXMpLAotICAgICgiYnJvd3Nl
clZlcnNpb24iLCBzdHJpbmdfdHlwZXMpLAotICAgICgicGxhdGZvcm1OYW1lIiwgc3RyaW5nX3R5
cGVzKSwKKyAgICAoImJyb3dzZXJOYW1lIiwgc3RyKSwKKyAgICAoImJyb3dzZXJWZXJzaW9uIiwg
c3RyKSwKKyAgICAoInBsYXRmb3JtTmFtZSIsIHN0ciksCiAgICAgKCJhY2NlcHRJbnNlY3VyZUNl
cnRzIiwgYm9vbCksCi0gICAgKCJwYWdlTG9hZFN0cmF0ZWd5Iiwgc3RyaW5nX3R5cGVzKSwKKyAg
ICAoInBhZ2VMb2FkU3RyYXRlZ3kiLCBzdHIpLAogICAgICgicHJveHkiLCBkaWN0KSwKICAgICAo
InNldFdpbmRvd1JlY3QiLCBib29sKSwKICAgICAoInRpbWVvdXRzIiwgZGljdCksCiAgICAgKCJz
dHJpY3RGaWxlSW50ZXJhY3RhYmlsaXR5IiwgYm9vbCksCi0gICAgKCJ1bmhhbmRsZWRQcm9tcHRC
ZWhhdmlvciIsIHN0cmluZ190eXBlcyksCisgICAgKCJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciIs
IHN0ciksCiBdKQogZGVmIHRlc3RfY2FwYWJpbGl0eV90eXBlKHNlc3Npb24sIGNhcGFiaWxpdHks
IHR5cGUpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKHNlc3Npb24uY2FwYWJpbGl0aWVzLCBkaWN0
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDUyZGVjYzkwYWExCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdf
c2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5CkBAIC0wLDAgKzEsNyBAQAorZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCisKK2RlZiB0ZXN0X3dlYnNvY2tldF91
cmwobmV3X3Nlc3Npb24sIGFkZF9icm93c2VyX2NhcGFiaWxpdGllcyk6CisgICAgcmVzcG9uc2Us
IF8gPSBuZXdfc2Vzc2lvbih7ImNhcGFiaWxpdGllcyI6IHsKKyAgICAgICAgImFsd2F5c01hdGNo
IjogYWRkX2Jyb3dzZXJfY2FwYWJpbGl0aWVzKHsid2ViU29ja2V0VXJsIjogVHJ1ZX0pfX0pCisg
ICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnQgdmFsdWVbImNh
cGFiaWxpdGllcyJdWyJ3ZWJTb2NrZXRVcmwiXS5zdGFydHN3aXRoKCJ3czovLyIpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld193aW5k
b3cvbmV3X3RhYi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvbmV3X3dpbmRvdy9uZXdfdGFiLnB5CmluZGV4IDkzMDBiMDRjNDVmYS4uMjcwZTRiNTFiODhm
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L25ld193aW5kb3cvbmV3X3RhYi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3RhYi5weQpAQCAtMSw1ICsxLDQgQEAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgb3BlbmVyLCB3
aW5kb3dfbmFtZQogCkBAIC0zMiw3ICszMSw3IEBAIGRlZiB0ZXN0X2tlZXBzX2N1cnJlbnRfd2lu
ZG93X2hhbmRsZShzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID09
IG9yaWdpbmFsX2hhbmRsZQogCiAKLWRlZiB0ZXN0X29wZW5zX2Fib3V0X2JsYW5rX2luX25ld190
YWIoc2Vzc2lvbik6CitkZWYgdGVzdF9vcGVuc19hYm91dF9ibGFua19pbl9uZXdfdGFiKHNlc3Np
b24sIGlubGluZSk6CiAgICAgdXJsID0gaW5saW5lKCI8cD5mb28iKQogICAgIHNlc3Npb24udXJs
ID0gdXJsCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfd2luZG93L25ld193aW5kb3cucHkKaW5kZXggYjM0
ODU0Y2MyZjNmLi5kM2MyMjQ1MDI3MDQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93LnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdf
d2luZG93LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogZnJvbSAuIGltcG9ydCBvcGVuZXIsIHdpbmRvd19uYW1lCiAKQEAgLTMyLDcgKzMxLDcg
QEAgZGVmIHRlc3Rfa2VlcHNfY3VycmVudF93aW5kb3dfaGFuZGxlKHNlc3Npb24pOgogICAgIGFz
c2VydCBzZXNzaW9uLndpbmRvd19oYW5kbGUgPT0gb3JpZ2luYWxfaGFuZGxlCiAKIAotZGVmIHRl
c3Rfb3BlbnNfYWJvdXRfYmxhbmtfaW5fbmV3X3dpbmRvdyhzZXNzaW9uKToKK2RlZiB0ZXN0X29w
ZW5zX2Fib3V0X2JsYW5rX2luX25ld193aW5kb3coc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmwg
PSBpbmxpbmUoIjxwPmZvbyIpCiAgICAgc2Vzc2lvbi51cmwgPSB1cmwKIApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlv
bnMvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3BlcmZvcm1fYWN0aW9ucy9jb25mdGVzdC5weQppbmRleCA5NzBmN2I3ZGQ5YmUuLjE4OGY4
ZGRiYjVlZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkK
QEAgLTMyLDYgKzMyLDIyIEBAIGRlZiBtb3VzZV9jaGFpbihzZXNzaW9uKToKICAgICAgICAgeyJw
b2ludGVyVHlwZSI6ICJtb3VzZSJ9KQogCiAKK0BweXRlc3QuZml4dHVyZQorZGVmIHRvdWNoX2No
YWluKHNlc3Npb24pOgorICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2UoCisgICAg
ICAgICJwb2ludGVyIiwKKyAgICAgICAgInBvaW50ZXJfaWQiLAorICAgICAgICB7InBvaW50ZXJU
eXBlIjogInRvdWNoIn0pCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcGVuX2NoYWluKHNlc3Np
b24pOgorICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2UoCisgICAgICAgICJwb2lu
dGVyIiwKKyAgICAgICAgInBvaW50ZXJfaWQiLAorICAgICAgICB7InBvaW50ZXJUeXBlIjogInBl
biJ9KQorCisKIEBweXRlc3QuZml4dHVyZQogZGVmIG5vbmVfY2hhaW4oc2Vzc2lvbik6CiAgICAg
cmV0dXJuIHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgibm9uZSIsICJub25lX2lkIikKQEAgLTY2
LDMgKzgyLDggQEAgZGVmIHRlc3RfYWN0aW9uc19wYWdlKHNlc3Npb24sIHVybCk6CiBAcHl0ZXN0
LmZpeHR1cmUKIGRlZiB0ZXN0X2FjdGlvbnNfc2Nyb2xsX3BhZ2Uoc2Vzc2lvbiwgdXJsKToKICAg
ICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3Vw
cG9ydC90ZXN0X2FjdGlvbnNfc2Nyb2xsX3dkc3BlYy5odG1sIikKKworCitAcHl0ZXN0LmZpeHR1
cmUKK2RlZiB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlKHNlc3Npb24sIHVybCk6CisgICAgc2Vz
c2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQv
dGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMva2V5X2V2
ZW50cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVy
Zm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkKaW5kZXggYzM5NTgwMTViZmQ0Li44ZGJlMDI0ZDE4
MzkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvcGVyZm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMva2V5X2V2ZW50cy5weQpA
QCAtNSw3ICs1LDggQEAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKIGltcG9y
dCBweXRlc3QKIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5rZXlzIGltcG9y
dCBBTExfRVZFTlRTLCBLZXlzLCBBTFRFUk5BVElWRV9LRVlfTkFNRVMKLWZyb20gdGVzdHMucGVy
Zm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50
cywgZ2V0X2tleXMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGlt
cG9ydCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1w
b3J0IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3Rfa2V5dXBfb25seV9zZW5kc19ub19ldmVudHMo
c2Vzc2lvbiwga2V5X3JlcG9ydGVyLCBrZXlfY2hhaW4pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRl
ci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9y
bV9hY3Rpb25zL3BvaW50ZXIucHkKaW5kZXggYWQ1NDY5MjE0NjBlLi42NzRkNDZkN2I2MTAgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVy
Zm9ybV9hY3Rpb25zL3BvaW50ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlci5weQpAQCAtNSwxNyArNSwx
MiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoV2lu
ZG93RXhjZXB0aW9uCiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQubW91c2Ug
aW1wb3J0IGdldF9pbnZpZXdfY2VudGVyLCBnZXRfdmlld3BvcnRfcmVjdAotZnJvbSB0ZXN0cy5w
ZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZl
bnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZ2V0
X2V2ZW50cwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9tb3ZlX3Rv
X2Nvb3JkaW5hdGVzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zy
b20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGljdAogZnJvbSB0ZXN0cy5z
dXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCi1kZWYgbGlua19kb2MoZGVzdCk6Ci0gICAgY29u
dGVudCA9ICI8YSBocmVmPVwie31cIiBpZD1cImxpbmtcIj5kZXN0aW5hdGlvbjwvYT4iLmZvcm1h
dChkZXN0KQotICAgIHJldHVybiBpbmxpbmUoY29udGVudCkKLQotCiBkZWYgdGVzdF9udWxsX3Jl
c3BvbnNlX3ZhbHVlKHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICB2YWx1ZSA9IG1vdXNlX2No
YWluLmNsaWNrKCkucGVyZm9ybSgpCiAgICAgYXNzZXJ0IHZhbHVlIGlzIE5vbmUKQEAgLTk1LDkg
KzkwLDkgQEAgZGVmIHRlc3RfY2xpY2tfZWxlbWVudF9jZW50ZXIoc2Vzc2lvbiwgdGVzdF9hY3Rp
b25zX3BhZ2UsIG1vdXNlX2NoYWluKToKICAgICAgICAgICAgIGFzc2VydCBlWyJ0YXJnZXQiXSA9
PSAib3V0ZXIiCiAKIAotZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwpOgor
ZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwsIGlubGluZSk6CiAgICAgZGVz
dGluYXRpb24gPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvYWN0aW9ucy9zdXBwb3J0L3Rlc3RfYWN0
aW9uc193ZHNwZWMuaHRtbCIpCi0gICAgc3RhcnQgPSBsaW5rX2RvYyhkZXN0aW5hdGlvbikKKyAg
ICBzdGFydCA9IGlubGluZSgiPGEgaHJlZj1cInt9XCIgaWQ9XCJsaW5rXCI+ZGVzdGluYXRpb248
L2E+Ii5mb3JtYXQoZGVzdGluYXRpb24pKQogCiAgICAgZGVmIGNsaWNrKGxpbmspOgogICAgICAg
ICBtb3VzZV9jaGFpbiA9IHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgKQEAgLTExNSw2ICsxMTAs
ODUgQEAgZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwpOgogICAgIFBvbGwo
c2Vzc2lvbiwgbWVzc2FnZT1lcnJvcl9tZXNzYWdlKS51bnRpbChsYW1iZGEgczogcy51cmwgPT0g
ZGVzdGluYXRpb24pCiAKIAorZGVmIHRlc3RfcGVuX3BvaW50ZXJfcHJvcGVydGllcyhzZXNzaW9u
LCB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCBwZW5fY2hhaW4pOgorICAgIHBvaW50ZXJBcmVh
ID0gc2Vzc2lvbi5maW5kLmNzcygiI3BvaW50ZXJBcmVhIiwgYWxsPUZhbHNlKQorICAgIGNlbnRl
ciA9IGdldF9pbnZpZXdfY2VudGVyKHBvaW50ZXJBcmVhLnJlY3QsIGdldF92aWV3cG9ydF9yZWN0
KHNlc3Npb24pKQorICAgIHBlbl9jaGFpbi5wb2ludGVyX21vdmUoMCwgMCwgb3JpZ2luPXBvaW50
ZXJBcmVhKSBcCisgICAgICAgIC5wb2ludGVyX2Rvd24ocHJlc3N1cmU9MC4zNiwgdGlsdF94PS03
MiwgdGlsdF95PTksIHR3aXN0PTg2KSBcCisgICAgICAgIC5wb2ludGVyX21vdmUoMTAsIDEwLCBv
cmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBvaW50ZXJfdXAoKSBcCisgICAgICAgIC5w
b2ludGVyX21vdmUoODAsIDUwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBlcmZv
cm0oKQorICAgIGV2ZW50cyA9IGdldF9ldmVudHMoc2Vzc2lvbikKKyAgICBhc3NlcnQgbGVuKGV2
ZW50cykgPT0gMTAKKyAgICBldmVudF90eXBlcyA9IFtlWyJ0eXBlIl0gZm9yIGUgaW4gZXZlbnRz
XQorICAgIGFzc2VydCBbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92
ZSIsICJwb2ludGVyZG93biIsCisgICAgICAgICAgICAicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVu
dGVyIiwgInBvaW50ZXJtb3ZlIiwgInBvaW50ZXJ1cCIsCisgICAgICAgICAgICAicG9pbnRlcm91
dCIsICJwb2ludGVybGVhdmUiXSA9PSBldmVudF90eXBlcworICAgIGFzc2VydCBldmVudHNbM11b
InR5cGUiXSA9PSAicG9pbnRlcmRvd24iCisgICAgYXNzZXJ0IGV2ZW50c1szXVsicGFnZVgiXSA9
PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNb
M11bInBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzPTEuMCkKKyAgICBh
c3NlcnQgZXZlbnRzWzNdWyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2
ZW50c1szXVsicG9pbnRlclR5cGUiXSA9PSAicGVuIgorICAgICMgVGhlIGRlZmF1bHQgdmFsdWUg
b2Ygd2lkdGggYW5kIGhlaWdodCBmb3IgbW91c2UgYW5kIHBlbiBpbnB1dHMgaXMgMQorICAgIGFz
c2VydCByb3VuZChldmVudHNbM11bIndpZHRoIl0sIDIpID09IDEKKyAgICBhc3NlcnQgcm91bmQo
ZXZlbnRzWzNdWyJoZWlnaHQiXSwgMikgPT0gMQorICAgIGFzc2VydCByb3VuZChldmVudHNbM11b
InByZXNzdXJlIl0sIDIpID09IDAuMzYKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WCJdID09
IC03MgorICAgIGFzc2VydCBldmVudHNbM11bInRpbHRZIl0gPT0gOQorICAgIGFzc2VydCBldmVu
dHNbM11bInR3aXN0Il0gPT0gODYKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJ0eXBlIl0gPT0gInBv
aW50ZXJtb3ZlIgorICAgIGFzc2VydCBldmVudHNbNl1bInBhZ2VYIl0gPT0gcHl0ZXN0LmFwcHJv
eChjZW50ZXJbIngiXSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJwYWdlWSJd
ID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0rMTAsIGFicz0xLjApCisgICAgYXNzZXJ0IGV2
ZW50c1s2XVsidGFyZ2V0Il0gPT0gInBvaW50ZXJBcmVhIgorICAgIGFzc2VydCBldmVudHNbNl1b
InBvaW50ZXJUeXBlIl0gPT0gInBlbiIKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzZdWyJ3aWR0
aCJdLCAyKSA9PSAxCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1s2XVsiaGVpZ2h0Il0sIDIpID09
IDEKKyAgICAjIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHByZXNzdXJlIGZvciBhbGwgaW5wdXRzIGlz
IDAuNSwgb3RoZXIgcHJvcGVydGllcyBhcmUgMAorICAgIGFzc2VydCByb3VuZChldmVudHNbNl1b
InByZXNzdXJlIl0sIDIpID09IDAuNQorICAgIGFzc2VydCBldmVudHNbNl1bInRpbHRYIl0gPT0g
MAorICAgIGFzc2VydCBldmVudHNbNl1bInRpbHRZIl0gPT0gMAorICAgIGFzc2VydCBldmVudHNb
Nl1bInR3aXN0Il0gPT0gMAorCisKK2RlZiB0ZXN0X3RvdWNoX3BvaW50ZXJfcHJvcGVydGllcyhz
ZXNzaW9uLCB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCB0b3VjaF9jaGFpbik6CisgICAgcG9p
bnRlckFyZWEgPSBzZXNzaW9uLmZpbmQuY3NzKCIjcG9pbnRlckFyZWEiLCBhbGw9RmFsc2UpCisg
ICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50ZXIocG9pbnRlckFyZWEucmVjdCwgZ2V0X3ZpZXdw
b3J0X3JlY3Qoc2Vzc2lvbikpCisgICAgdG91Y2hfY2hhaW4ucG9pbnRlcl9tb3ZlKDAsIDAsIG9y
aWdpbj1wb2ludGVyQXJlYSkgXAorICAgICAgICAucG9pbnRlcl9kb3duKHdpZHRoPTIzLCBoZWln
aHQ9MzEsIHByZXNzdXJlPTAuNzgsIHRpbHRfeD0yMSwgdGlsdF95PS04LCB0d2lzdD0zNTUpIFwK
KyAgICAgICAgLnBvaW50ZXJfbW92ZSgxMCwgMTAsIG9yaWdpbj1wb2ludGVyQXJlYSwgd2lkdGg9
MzksIGhlaWdodD0zNSwgcHJlc3N1cmU9MC45MSwgdGlsdF94PS0xOSwgdGlsdF95PTYyLCB0d2lz
dD0zNDUpIFwKKyAgICAgICAgLnBvaW50ZXJfdXAoKSBcCisgICAgICAgIC5wb2ludGVyX21vdmUo
ODAsIDUwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBlcmZvcm0oKQorICAgIGV2
ZW50cyA9IGdldF9ldmVudHMoc2Vzc2lvbikKKyAgICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gNwor
ICAgIGV2ZW50X3R5cGVzID0gW2VbInR5cGUiXSBmb3IgZSBpbiBldmVudHNdCisgICAgYXNzZXJ0
IFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJkb3duIiwgInBvaW50ZXJt
b3ZlIiwKKyAgICAgICAgICAgICJwb2ludGVydXAiLCAicG9pbnRlcm91dCIsICJwb2ludGVybGVh
dmUiXSA9PSBldmVudF90eXBlcworICAgIGFzc2VydCBldmVudHNbMl1bInR5cGUiXSA9PSAicG9p
bnRlcmRvd24iCisgICAgYXNzZXJ0IGV2ZW50c1syXVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94
KGNlbnRlclsieCJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbMl1bInBhZ2VZIl0gPT0g
cHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzJd
WyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50c1syXVsicG9pbnRl
clR5cGUiXSA9PSAidG91Y2giCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1syXVsid2lkdGgiXSwg
MikgPT0gMjMKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJoZWlnaHQiXSwgMikgPT0gMzEK
KyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJwcmVzc3VyZSJdLCAyKSA9PSAwLjc4CisgICAg
YXNzZXJ0IGV2ZW50c1syXVsidGlsdFgiXSA9PSAyMQorICAgIGFzc2VydCBldmVudHNbMl1bInRp
bHRZIl0gPT0gLTgKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJ0d2lzdCJdID09IDM1NQorICAgIGFz
c2VydCBldmVudHNbM11bInR5cGUiXSA9PSAicG9pbnRlcm1vdmUiCisgICAgYXNzZXJ0IGV2ZW50
c1szXVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJdKzEwLCBhYnM9MS4wKQor
ICAgIGFzc2VydCBldmVudHNbM11bInBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInki
XSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0YXJnZXQiXSA9PSAicG9pbnRl
ckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50c1szXVsicG9pbnRlclR5cGUiXSA9PSAidG91Y2giCisg
ICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1szXVsid2lkdGgiXSwgMikgPT0gMzkKKyAgICBhc3NlcnQg
cm91bmQoZXZlbnRzWzNdWyJoZWlnaHQiXSwgMikgPT0gMzUKKyAgICBhc3NlcnQgcm91bmQoZXZl
bnRzWzNdWyJwcmVzc3VyZSJdLCAyKSA9PSAwLjkxCisgICAgYXNzZXJ0IGV2ZW50c1szXVsidGls
dFgiXSA9PSAtMTkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WSJdID09IDYyCisgICAgYXNz
ZXJ0IGV2ZW50c1szXVsidHdpc3QiXSA9PSAzNDUKKworCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImRyYWdfZHVyYXRpb24iLCBbMCwgMzAwLCA4MDBdKQogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJkeCwgZHkiLCBbCiAgICAgKDIwLCAwKSwgKDAsIDE1KSwgKDEwLCAxNSksICgtMjAsIDAp
LCAoMTAsIC0xNSksICgtMTAsIC0xNSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfY29udGV4dG1l
bnUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZv
cm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRtZW51LnB5CmluZGV4IGZkYTNmMThiYmMxYy4uNTBm
Njg0MzI3ZjJhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRtZW51LnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25z
L3BvaW50ZXJfY29udGV4dG1lbnUucHkKQEAgLTEsNyArMSw4IEBACiBpbXBvcnQgcHl0ZXN0CiAK
IGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQua2V5cyBpbXBvcnQgS2V5cwotZnJv
bSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0
LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBp
bXBvcnQgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRl
cl9kaWN0CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2RpZmllciwgcHJvcCIsIFsK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2RibGNsaWNr
LnB5CmluZGV4IDhjODljZWY1ZjM4MC4uNWJlNjM1YTRkNTYwIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2lu
dGVyX2RibGNsaWNrLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkKQEAgLTEsNyArMSw4
IEBACiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQu
cmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3Jt
X2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcworZnJvbSB0ZXN0
cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJjbGlja19wYXVzZSIsIFswLCAyMDBdKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRl
cl9tb2RpZmllcl9jbGljay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfbW9kaWZpZXJfY2xpY2sucHkKaW5kZXgg
YmE4MWY2ZDA5MGIyLi4yOGM0MDg2ZTBmOGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfbW9kaWZp
ZXJfY2xpY2sucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGljay5weQpAQCAtMSw3ICsx
LDggQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9y
dC5rZXlzIGltcG9ydCBLZXlzCi1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJl
ZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVzdHMucGVyZm9ybV9h
Y3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnN1cHBv
cnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoIm1vZGlmaWVyLCBwcm9wIiwgWwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy9wb2ludGVyX29yaWdpbi5weQppbmRleCA0YzlkYzg3OWU5OTkuLmM0ZTVkYjdhMDAxNyAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
ZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4u
cHkKQEAgLTMsMjMgKzMsMjUgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0
IE1vdmVUYXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnBlcmZvcm1fYWN0
aW9ucy5zdXBwb3J0Lm1vdXNlIGltcG9ydCBnZXRfaW52aWV3X2NlbnRlciwgZ2V0X3ZpZXdwb3J0
X3JlY3QKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKLWRlZiBv
cmlnaW5fZG9jKGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6Ci0gICAgcmV0dXJuIGlubGlu
ZSgiIiIKLSAgICAgIDxkaXYgaWQ9Im91dGVyIiBzdHlsZT0iezF9IgotICAgICAgICAgICBvbm1v
dXNlbW92ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xp
ZW50WX19Ij4KLSAgICAgICAgPGRpdiBpZD0iaW5uZXIiIHN0eWxlPSJ7MH0iPjwvZGl2PgotICAg
ICAgPC9kaXY+Ci0gICAgIiIiLmZvcm1hdChpbm5lcl9zdHlsZSwgb3V0ZXJfc3R5bGUpKQorQHB5
dGVzdC5maXh0dXJlCitkZWYgb3JpZ2luX2RvYyhpbmxpbmUpOgorICAgIGRlZiBvcmlnaW5fZG9j
KGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6CisgICAgICAgIHJldHVybiBpbmxpbmUoIiIi
CisgICAgICAgICAgPGRpdiBpZD0ib3V0ZXIiIHN0eWxlPSJ7MX0iCisgICAgICAgICAgICAgICBv
bm1vdXNlbW92ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQu
Y2xpZW50WX19Ij4KKyAgICAgICAgICAgIDxkaXYgaWQ9ImlubmVyIiBzdHlsZT0iezB9Ij48L2Rp
dj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgIiIiLmZvcm1hdChpbm5lcl9zdHlsZSwgb3V0
ZXJfc3R5bGUpKQorICAgIHJldHVybiBvcmlnaW5fZG9jCiAKIAogZGVmIGdldF9jbGlja19jb29y
ZGluYXRlcyhzZXNzaW9uKToKICAgICByZXR1cm4gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0
dXJuIHdpbmRvdy5jb29yZHM7IikKIAogCi1kZWYgdGVzdF92aWV3cG9ydF9pbnNpZGUoc2Vzc2lv
biwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3Rfdmlld3BvcnRfaW5zaWRlKHNlc3Npb24sIG1vdXNl
X2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBwb2ludCA9IHsieCI6IDUwLCAieSI6IDUwfQogCiAg
ICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsg
YmFja2dyb3VuZDogZ3JlZW47IikKQEAgLTM5LDcgKzQxLDcgQEAgZGVmIHRlc3Rfdmlld3BvcnRf
b3V0c2lkZShzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgICAgICAgICAucGVyZm9ybSgpCiAK
IAotZGVmIHRlc3RfcG9pbnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRl
c3RfcG9pbnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAg
IHN0YXJ0X3BvaW50ID0geyJ4IjogNTAsICJ5IjogNTB9CiAgICAgb2Zmc2V0ID0geyJ4IjogMTAs
ICJ5IjogNX0KIApAQCAtNjEsNyArNjMsNyBAQCBkZWYgdGVzdF9wb2ludGVyX291dHNpZGUoc2Vz
c2lvbiwgbW91c2VfY2hhaW4pOgogICAgICAgICAgICAgLnBlcmZvcm0oKQogCiAKLWRlZiB0ZXN0
X2VsZW1lbnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluKToKK2RlZiB0ZXN0X2Vs
ZW1lbnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAg
ICBzZXNzaW9uLnVybCA9IG9yaWdpbl9kb2MoIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBi
YWNrZ3JvdW5kOiBncmVlbjsiKQogICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjaW5uZXIi
LCBhbGw9RmFsc2UpCiAgICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50ZXIoZWxlbS5yZWN0LCBn
ZXRfdmlld3BvcnRfcmVjdChzZXNzaW9uKSkKQEAgLTc1LDcgKzc3LDcgQEAgZGVmIHRlc3RfZWxl
bWVudF9jZW50ZXJfcG9pbnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgIGFzc2VydCBjbGlj
a19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdLCBhYnMgPSAxLjApCiAK
IAotZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0aF9vZmZzZXQoc2Vzc2lvbiwgbW91
c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0aF9vZmZzZXQoc2Vz
c2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHNlc3Npb24udXJsID0gb3JpZ2lu
X2RvYygid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyIpCiAg
ICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKICAgICBjZW50
ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihlbGVtLnJlY3QsIGdldF92aWV3cG9ydF9yZWN0KHNlc3Np
b24pKQpAQCAtODksNyArOTEsNyBAQCBkZWYgdGVzdF9lbGVtZW50X2NlbnRlcl9wb2ludF93aXRo
X29mZnNldChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgYXNzZXJ0IGNsaWNrX2Nvb3Jkc1si
eSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0gKyAxNSwgYWJzID0gMS4wKQogCiAKLWRl
ZiB0ZXN0X2VsZW1lbnRfaW5fdmlld19jZW50ZXJfcG9pbnRfcGFydGx5X3Zpc2libGUoc2Vzc2lv
biwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9pbl92aWV3X2NlbnRlcl9wb2ludF9w
YXJ0bHlfdmlzaWJsZShzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAgICAgc2Vz
c2lvbi51cmwgPSBvcmlnaW5fZG9jKCIiIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNr
Z3JvdW5kOiBncmVlbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOyBsZWZ0OiAtNTBweDsgdG9wOiAtMjVweDsiIiIpCiAgICAgZWxlbSA9IHNlc3Np
b24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKQEAgLTEwNCw3ICsxMDYsNyBAQCBkZWYg
dGVzdF9lbGVtZW50X2luX3ZpZXdfY2VudGVyX3BvaW50X3BhcnRseV92aXNpYmxlKHNlc3Npb24s
IG1vdXNlX2NoYWluKToKICAgICBhc3NlcnQgY2xpY2tfY29vcmRzWyJ5Il0gPT0gcHl0ZXN0LmFw
cHJveChjZW50ZXJbInkiXSwgYWJzID0gMS4wKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfbGFyZ2Vy
X3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9s
YXJnZXJfdGhhbl92aWV3cG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMzAwdnc7IGhlaWdodDogMzAwdmg7
IGJhY2tncm91bmQ6IGdyZWVuOyIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5l
ciIsIGFsbD1GYWxzZSkKICAgICBjZW50ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihlbGVtLnJlY3Qs
IGdldF92aWV3cG9ydF9yZWN0KHNlc3Npb24pKQpAQCAtMTE4LDcgKzEyMCw3IEBAIGRlZiB0ZXN0
X2VsZW1lbnRfbGFyZ2VyX3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAg
IGFzc2VydCBjbGlja19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdLCBh
YnMgPSAxLjApCiAKIAotZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3ZpZXdfcG9ydChzZXNz
aW9uLCBtb3VzZV9jaGFpbik6CitkZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfdmlld19wb3J0
KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9y
aWdpbl9kb2MoIiIid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGdyZWVu
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGxl
ZnQ6IC0yMDBweDsgdG9wOiAtMTAwcHg7IiIiKQogICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3Nz
KCIjaW5uZXIiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3BhdXNlX2RibGNs
aWNrLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJm
b3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxjbGljay5weQppbmRleCA4NTY3OWYzNjE0YTgu
LmQ0NjE3OGExZDY1MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxjbGljay5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1f
YWN0aW9ucy9wb2ludGVyX3BhdXNlX2RibGNsaWNrLnB5CkBAIC0xLDUgKzEsNiBAQAogZnJvbSB0
ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5tb3VzZSBpbXBvcnQgZ2V0X2ludmlld19jZW50
ZXIsIGdldF92aWV3cG9ydF9yZWN0Ci1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0
LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVzdHMucGVyZm9y
bV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnN1
cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogX0RCTENMSUNLX0lOVEVSVkFMID0g
NjQwCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfdHJpcGxlY2xpY2sucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVy
X3RyaXBsZWNsaWNrLnB5CmluZGV4IDgxZDUxYmUxYTdlNi4uODIzOWZjMmE2MDYyIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1f
YWN0aW9ucy9wb2ludGVyX3RyaXBsZWNsaWNrLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfdHJpcGxlY2xp
Y2sucHkKQEAgLTEsMTMgKzEsMTMgQEAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBv
cnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJm
b3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcwotZnJvbSB0
ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVs
cGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogbG90c19vZl90ZXh0ID0gIkxvcmVtIGlwc3VtIGRv
bG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9k
IHRlbXBvciAiXAogICAgICAgICAgICAgICAgImluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9y
ZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgIlwK
ICAgICAgICAgICAgICAgICJleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxp
cXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4iCiAKIAotZGVmIHRlc3RfdHJpcGxlY2xpY2tf
YXRfY29vcmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfdHJpcGxlY2xp
Y2tfYXRfY29vcmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIGlubGluZSk6CiAgICAgIiIi
CiAgICAgICAgIFRoaXMgdGVzdCBkb2VzIGEgdHJpcGxlIGNsaWNrIG9uIGEgY29vcmRpbmF0ZS4g
T24gZGVza3RvcCBwbGF0Zm9ybXMKICAgICAgICAgdGhpcyB3aWxsIHNlbGVjdCBhIHBhcmFncmFw
aC4gT24gbW9iaWxlIHRoaXMgd2lsbCBub3QgaGF2ZSB0aGUgc2FtZQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMv
c3VwcG9ydC9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5CmluZGV4IDJkMzhlMWRmZjg3Ni4u
OWU4N2ViZmFjMWQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L2tleXMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3Vw
cG9ydC9rZXlzLnB5CkBAIC0yMSw3ICsyMSw2IEBAIGltcG9ydCBzeXMKIAogZnJvbSBjb2xsZWN0
aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIGZyb20gaW5zcGVjdCBpbXBvcnQgZ2V0bWVtYmVycwot
ZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQogCiBjbGFzcyBLZXlzKG9iamVjdCk6CiAgICAgIiIi
CkBAIC0xMDcsNyArMTA2LDcgQEAgY2xhc3MgS2V5cyhvYmplY3QpOgogICAgIFJfREVMRVRFID0g
dSJcdUUwNUQiCiAKIAotQUxMX0tFWVMgPSBnZXRtZW1iZXJzKEtleXMsIGxhbWJkYSB4OiB0eXBl
KHgpID09IHRleHRfdHlwZSkKK0FMTF9LRVlTID0gZ2V0bWVtYmVycyhLZXlzLCBsYW1iZGEgeDog
dHlwZSh4KSA9PSBzdHIpCiAKIEFMTF9FVkVOVFMgPSBPcmRlcmVkRGljdCgKICAgICBbCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZv
cm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQvcmVmaW5lLnB5CmluZGV4
IGQ1ZDI0ZTkzNGY2MS4uMzVjOTYyYjllY2JmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmlu
ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Bl
cmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjcsMTIgKzI3LDMgQEAgZGVmIGdl
dF9rZXlzKGlucHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAgZWxzZToKICAgICAgICAg
cmV0dXJuIHJ2Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6Ci0gICAgIiIiRmlsdGVy
IGBzb3VyY2VgIGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBgZGAgZGljdC4KLQot
ICAgIDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgotICAgIDpwYXJhbSBkOiBk
aWN0aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcuCi0gICAgIiIiCi0g
ICAgcmV0dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9u
cy9zdXBwb3J0L3Rlc3RfYWN0aW9uc19wb2ludGVyX3dkc3BlYy5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC90
ZXN0X2FjdGlvbnNfcG9pbnRlcl93ZHNwZWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmYxZmQ5YjJkYTNmOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBv
cnQvdGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKK++7
vzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHRpdGxlPlRlc3QgQWN0aW9uczwvdGl0bGU+CisgICAgPHN0eWxlPgorICAgICAgZGl2IHsg
cGFkZGluZzowcHg7IG1hcmdpbjogMHB4OyB9CisgICAgICAjdHJhY2tQb2ludGVyIHsgcG9zaXRp
b246IGZpeGVkOyB9CisgICAgICAjcmVzdWx0Q29udGFpbmVyIHsgd2lkdGg6IDYwMHB4OyBoZWln
aHQ6IDYwcHg7IH0KKyAgICAgIC5hcmVhIHsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJh
Y2tncm91bmQtY29sb3I6ICNjY2M7IH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgdmFyIGVscyA9IHt9OworICAgICAgICB2YXIgYWxs
RXZlbnRzID0geyBldmVudHM6IFtdIH07CisgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlNZXNzYWdl
KG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJldmVudHMi
KS5pbm5lckhUTUwgPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9wPiI7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBhcHBlbmRNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJldmVudHMiKS5pbm5lckhUTUwgKz0gIjxwPiIgKyBtZXNzYWdl
ICsgIjwvcD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVjb3JkUG9pbnRlckV2
ZW50KGV2ZW50KSB7CisgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJjb250ZXh0bWVudSIp
IHsKKyAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgfQorICAg
ICAgICAgIGFsbEV2ZW50cy5ldmVudHMucHVzaCh7CisgICAgICAgICAgICAidHlwZSI6IGV2ZW50
LnR5cGUsCisgICAgICAgICAgICAiYnV0dG9uIjogZXZlbnQuYnV0dG9uLAorICAgICAgICAgICAg
ImJ1dHRvbnMiOiBldmVudC5idXR0b25zLAorICAgICAgICAgICAgInBhZ2VYIjogZXZlbnQucGFn
ZVgsCisgICAgICAgICAgICAicGFnZVkiOiBldmVudC5wYWdlWSwKKyAgICAgICAgICAgICJjdHJs
S2V5IjogZXZlbnQuY3RybEtleSwKKyAgICAgICAgICAgICJtZXRhS2V5IjogZXZlbnQubWV0YUtl
eSwKKyAgICAgICAgICAgICJhbHRLZXkiOiBldmVudC5hbHRLZXksCisgICAgICAgICAgICAic2hp
ZnRLZXkiOiBldmVudC5zaGlmdEtleSwKKyAgICAgICAgICAgICJ0YXJnZXQiOiBldmVudC50YXJn
ZXQuaWQsCisgICAgICAgICAgICAicG9pbnRlclR5cGUiOiBldmVudC5wb2ludGVyVHlwZSwKKyAg
ICAgICAgICAgICJ3aWR0aCI6IGV2ZW50LndpZHRoLAorICAgICAgICAgICAgImhlaWdodCI6IGV2
ZW50LmhlaWdodCwKKyAgICAgICAgICAgICJwcmVzc3VyZSI6IGV2ZW50LnByZXNzdXJlLAorICAg
ICAgICAgICAgInRhbmdlbnRpYWxQcmVzc3VyZSI6IGV2ZW50LnRhbmdlbnRpYWxQcmVzc3VyZSwK
KyAgICAgICAgICAgICJ0aWx0WCI6IGV2ZW50LnRpbHRYLAorICAgICAgICAgICAgInRpbHRZIjog
ZXZlbnQudGlsdFksCisgICAgICAgICAgICAidHdpc3QiOiBldmVudC50d2lzdCwKKyAgICAgICAg
ICAgICJhbHRpdHVkZUFuZ2xlIjogZXZlbnQuYWx0aXR1ZGVBbmdsZSwKKyAgICAgICAgICAgICJh
emltdXRoQW5nbGUiOiBldmVudC5hemltdXRoQW5nbGUKKyAgICAgICAgICB9KTsKKyAgICAgICAg
ICBhcHBlbmRNZXNzYWdlKGV2ZW50LnR5cGUgKyAiICIgKworICAgICAgICAgICAgICAiYnV0dG9u
OiAiICsgZXZlbnQuYnV0dG9uICsgIiwgIiArCisgICAgICAgICAgICAgICJwYWdlWDogIiArIGV2
ZW50LnBhZ2VYICsgIiwgIiArCisgICAgICAgICAgICAgICJwYWdlWTogIiArIGV2ZW50LnBhZ2VZ
ICsgIiwgIiArCisgICAgICAgICAgICAgICJidXR0b246ICIgKyBldmVudC5idXR0b24gKyAiLCAi
ICsKKyAgICAgICAgICAgICAgImJ1dHRvbnM6ICIgKyBldmVudC5idXR0b25zICsgIiwgIiArCisg
ICAgICAgICAgICAgICJjdHJsS2V5OiAiICsgZXZlbnQuY3RybEtleSArICIsICIgKworICAgICAg
ICAgICAgICAiYWx0S2V5OiAiICsgZXZlbnQuYWx0S2V5ICsgIiwgIiArCisgICAgICAgICAgICAg
ICJtZXRhS2V5OiAiICsgZXZlbnQubWV0YUtleSArICIsICIgKworICAgICAgICAgICAgICAic2hp
ZnRLZXk6ICIgKyBldmVudC5zaGlmdEtleSArICIsICIgKworICAgICAgICAgICAgICAidGFyZ2V0
IGlkOiAiICsgZXZlbnQudGFyZ2V0LmlkICsgIiwgIiArCisgICAgICAgICAgICAgICJwb2ludGVy
VHlwZTogIiArIGV2ZW50LnBvaW50ZXJUeXBlICsgIiwgIiArCisgICAgICAgICAgICAgICJ3aWR0
aDogIiArIGV2ZW50LndpZHRoICsgIiwgIiArCisgICAgICAgICAgICAgICJoZWlnaHQ6ICIgKyBl
dmVudC5oZWlnaHQgKyAiLCAiICsKKyAgICAgICAgICAgICAgInByZXNzdXJlOiAiICsgZXZlbnQu
cHJlc3N1cmUgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRhbmdlbnRpYWxQcmVzc3VyZTogIiAr
IGV2ZW50LnRhbmdlbnRpYWxQcmVzc3VyZSArICIsICIgKworICAgICAgICAgICAgICAidGlsdFg6
ICIgKyBldmVudC50aWx0WCArICIsICIgKworICAgICAgICAgICAgICAidGlsdFk6ICIgKyBldmVu
dC50aWx0WSArICIsICIgKworICAgICAgICAgICAgICAidHdpc3Q6ICIgKyBldmVudC50d2lzdCAr
ICIsICIgKworICAgICAgICAgICAgICAiYWx0aXR1ZGVBbmdsZTogIiArIGV2ZW50LmFsdGl0dWRl
QW5nbGUgKyAiLCAiICsKKyAgICAgICAgICAgICAgImF6aW11dGhBbmdsZTogIiArIGV2ZW50LmF6
aW11dGhBbmdsZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZXNldEV2ZW50cygp
IHsKKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRzLmxlbmd0aCA9IDA7CisgICAgICAgICAgZGlz
cGxheU1lc3NhZ2UoIiIpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBw
b2ludGVyQXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb2ludGVyQXJlYSIpOworICAg
ICAgICAgIHBvaW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgcmVjb3Jk
UG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJw
b2ludGVybW92ZSIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEu
YWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAg
ICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3ZlciIsIHJlY29yZFBv
aW50ZXJFdmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigicG9p
bnRlcmVudGVyIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5h
ZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0IiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAg
ICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLCByZWNvcmRQ
b2ludGVyRXZlbnQpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IGlkPSJ0cmFja1BvaW50ZXIiIGNsYXNzPSJibG9jayI+PC9kaXY+CisgIDxkaXY+
CisgICAgPGgyPlBvaW50ZXJSZXBvcnRlcjwvaDI+CisgICAgPGRpdiBpZD0icG9pbnRlckFyZWEi
IGNsYXNzPSJhcmVhIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdENv
bnRhaW5lciI+CisgICAgPGgyPkV2ZW50czwvaDI+CisgICAgPGRpdiBpZD0iZXZlbnRzIj48L2Rp
dj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rp
b25zL3doZWVsLnB5CmluZGV4IGZjODRmMmYyZTAxNC4uNjc3MzQ4MDBiMTlkIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy93aGVlbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weQpAQCAtMiw4ICsyLDkgQEAgaW1wb3J0IHB5
dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoV2luZG93RXhjZXB0aW9u
CiAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0
ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5y
ZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMg
aW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNz
aW9uLCB3aGVlbF9jaGFpbik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQppbmRleCAzNDFlMDY5
ZjdiYjYuLjg5Mjk2ZDJiMTQ2YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5CkBAIC0xLDEx
ICsxLDggQEAKLWltcG9ydCBiYXNlNjQKK2Zyb20gYmFzZTY0IGltcG9ydCBkZWNvZGVieXRlcwog
CiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfYmluYXJ5Ci0KIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNz
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZG9fcHJp
bnQoc2Vzc2lvbiwgb3B0aW9ucyk6CkBAIC0yNywxMSArMjQsMTEgQEAgZGVmIHRlc3Rfbm9fdG9w
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiBkZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgcmVzcG9uc2UgPSBk
b19wcmludChzZXNzaW9uLCB7fSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQotICAgIHBkZiA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZW5zdXJlX2JpbmFyeSh2YWx1ZSkpCisg
ICAgcGRmID0gZGVjb2RlYnl0ZXModmFsdWUuZW5jb2RlKCkpCiAgICAgYXNzZXJ0X3BkZihwZGYp
CiAKIAotZGVmIHRlc3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfZG9j
dW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiVGVzdCIp
CiAKICAgICByZXNwb25zZSA9IGRvX3ByaW50KHNlc3Npb24sIHsKQEAgLTQwLDcgKzM3LDcgQEAg
ZGVmIHRlc3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKICAgICAgICAgInNocmlua1RvRml0Ijog
RmFsc2UKICAgICB9KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAg
cGRmID0gYmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5KHZhbHVlKSkKKyAgICBwZGYg
PSBkZWNvZGVieXRlcyh2YWx1ZS5lbmNvZGUoKSkKICAgICAjIFRPRE86IFRlc3QgdGhhdCB0aGUg
b3V0cHV0IGlzIHJlYXNvbmFibGUKICAgICBhc3NlcnRfcGRmKHBkZikKIApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC91c2VyX3By
b21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3By
aW50L3VzZXJfcHJvbXB0cy5weQppbmRleCBhM2Y3YTEwYWMzNzIuLjBhMjliNTE4YWM5YSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmlu
dC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9wcmludC91c2VyX3Byb21wdHMucHkKQEAgLTEsMTcgKzEsMTQgQEAKICMgTUVU
QTogdGltZW91dD1sb25nCi1pbXBvcnQgYmFzZTY0Citmcm9tIGJhc2U2NCBpbXBvcnQgZGVjb2Rl
Ynl0ZXMKIAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFyeQot
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVk
LCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIGZyb20gLnByaW50Y21kIGltcG9ydCBkb19wcmludCwgYXNzZXJ0X3Bk
ZgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0Lz4iKQogCkBAIC0yMCw3ICsxNyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAgICAgICAgIHJlc3Bv
bnNlID0gZG9fcHJpbnQoc2Vzc2lvbiwge30pCiAgICAgICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UpCiAKLSAgICAgICAgcGRmID0gYmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVf
YmluYXJ5KHZhbHVlKSkKKyAgICAgICAgcGRmID0gZGVjb2RlYnl0ZXModmFsdWUuZW5jb2RlKCkp
CiAgICAgICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRp
YWxvZ190eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQogCiAgICAgICAgIGFzc2VydF9wZGYo
cGRmKQpAQCAtMjksNyArMjYsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC00NCw3ICs0MSw3IEBAIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90
X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0Lz4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC9yZWZyZXNoLnB5CmluZGV4IGVlZjQxMzAxN2U1ZS4u
MzM1OTVkMGZmNzFhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQpAQCAtMiw3ICsyLDYg
QEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoRWxl
bWVudEV4Y2VwdGlvbiwgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uCiAKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2Vy
dHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0xMSw3ICsxMCw3
IEBAIGRlZiByZWZyZXNoKHNlc3Npb24pOgogICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNz
aW9uX2lkfS9yZWZyZXNoIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSkKIAogCi1kZWYgdGVzdF9u
dWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1
ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PiIpCiAK
ICAgICByZXNwb25zZSA9IHJlZnJlc2goc2Vzc2lvbikKQEAgLTI0LDcgKzIzLDcgQEAgZGVmIHRl
c3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAg
YXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X25v
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKK2RlZiB0ZXN0X25vX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpbmxpbmUpOgogICAgIHVybCA9
IGlubGluZSgiPGRpdiBpZD1mb28+IikKIAogICAgIHNlc3Npb24udXJsID0gdXJsCkBAIC00MCw3
ICszOSw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2Zy
YW1lKToKICAgICBhc3NlcnQgc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKIAog
Ci1kZWYgdGVzdF9iYXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2ljKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgdXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogCiAgICAgc2Vzc2lvbi51cmwg
PSB1cmwKQEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfYmFzaWMoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCiAKIAotZGVmIHRlc3RfZGlz
bWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1
bmxvYWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmxfYmVmb3JldW5sb2FkID0gaW5saW5lKCIi
IgogICAgICAgPGlucHV0IHR5cGU9InRleHQiPgogICAgICAgPHNjcmlwdD4KQEAgLTc5LDcgKzc4
LDcgQEAgZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9uKToKICAgICBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIAogCi1kZWYgdGVzdF9oaXN0b3J5X3B1
c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgorZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBwdXNoc3RhdGVfcGFnZSA9IGlubGluZSgiIiIKICAgICAgIDxzY3Jp
cHQ+CiAgICAgICAgIGZ1bmN0aW9uIHB1c2hTdGF0ZSgpIHsKQEAgLTExMSw3ICsxMTAsNyBAQCBk
ZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgogICAgICAgICBlbGVtZW50
LnByb3BlcnR5KCJpZCIpCiAKIAotZGVmIHRlc3RfcmVmcmVzaF9zd2l0Y2hlc190b19wYXJlbnRf
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjcmVhdGVfZnJhbWUpOgorZGVmIHRlc3RfcmVmcmVz
aF9zd2l0Y2hlc190b19wYXJlbnRfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjcmVhdGVfZnJh
bWUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAK
ICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShjcmVhdGVfZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC91c2VyX3By
b21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Jl
ZnJlc2gvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGI4ZWY0MThlMTE1Zi4uN2U5NDRiNTNiMDk2IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Jl
ZnJlc2gvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC91c2VyX3Byb21wdHMucHkKQEAgLTQsNyArNCw2IEBAIGlt
cG9ydCBweXRlc3QKIAogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IFN0YWxlRWxlbWVudFJl
ZmVyZW5jZUV4Y2VwdGlvbgogCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRs
ZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0xNCw3ICsxMyw3IEBAIGRl
ZiByZWZyZXNoKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
K2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2IGlkPWZv
bz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxz
ZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3JlbGVhc2Uu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2Vf
YWN0aW9ucy9yZWxlYXNlLnB5CmluZGV4IDFmNDg2Zjc3NTlmZC4uNWRmMWZmNGJlOTAyIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVh
c2VfYWN0aW9ucy9yZWxlYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3JlbGVhc2UucHkKQEAgLTIwLDQgKzIwLDQg
QEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRv
dyk6CiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1l
KToKICAgICByZXNwb25zZSA9IHJlbGVhc2VfYWN0aW9ucyhzZXNzaW9uKQotICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2lu
ZG93IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvc2VxdWVuY2UucHkKaW5kZXgg
MmQ4MTZmODA5NGIzLi43NTE0M2Q4NWNhNjAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9h
Y3Rpb25zL3NlcXVlbmNlLnB5CkBAIC0xLDYgKzEsNyBAQAogIyBNRVRBOiB0aW1lb3V0PWxvbmcK
IAotZnJvbSB0ZXN0cy5yZWxlYXNlX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRl
cl9kaWN0LCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5yZWxlYXNlX2FjdGlvbnMu
c3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMsIGdldF9rZXlzCitmcm9tIHRlc3RzLnN1
cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBkZWYgdGVzdF9yZWxlYXNlX25v
X2FjdGlvbnNfc2VuZHNfbm9fZXZlbnRzKHNlc3Npb24sIGtleV9yZXBvcnRlcik6CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2Vf
YWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3N1cHBvcnQvcmVmaW5lLnB5CmluZGV4IDNh
NmQ2M2UwNGNlOS4uOTBmNzIyNTg3YzNiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVh
c2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjIsMTIgKzIyLDMgQEAgZGVmIGdldF9r
ZXlzKGlucHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAgZWxzZToKICAgICAgICAgcmV0
dXJuIHJ2Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6Ci0gICAgIiIiRmlsdGVyIGBz
b3VyY2VgIGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBgZGAgZGljdC4KLQotICAg
IDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgotICAgIDpwYXJhbSBkOiBkaWN0
aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcuCi0gICAgIiIiCi0gICAg
cmV0dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3NlbmRfYWxlcnRfdGV4dC9z
ZW5kLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zZW5k
X2FsZXJ0X3RleHQvc2VuZC5weQppbmRleCA1ZGE2NzU5MGRhMzQuLmQ1ODQ2YWQ1NmIzYiAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zZW5k
X2FsZXJ0X3RleHQvc2VuZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3NlbmRfYWxlcnRfdGV4dC9zZW5kLnB5CkBAIC00LDEyICs0LDExIEBAIGZy
b20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgogZnJvbSB3ZWJk
cml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQg
UG9sbAogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIHBhZ2Uoc2Vzc2lvbik6CitkZWYgcGFnZShz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8
c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdFbnRlciBZb3VyIE5hbWU6ICcs
ICdOYW1lJyk7PC9zY3JpcHQ+CiAgICAgIiIiKQpAQCAtNTUsNyArNTQsNyBAQCBkZWYgdGVzdF9u
b191c2VyX3Byb21wdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRp
YWxvZ190eXBlIiwgWyJhbGVydCIsICJjb25maXJtIl0pCi1kZWYgdGVzdF9hbGVydF9lbGVtZW50
X25vdF9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgZGlhbG9nX3R5cGUpOgorZGVmIHRlc3RfYWxlcnRf
ZWxlbWVudF9ub3RfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSwgZGlhbG9nX3R5cGUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy57fSgnSGVsbG8nKTs8L3Nj
cmlwdD4iLmZvcm1hdChkaWFsb2dfdHlwZSkpCiAKICAgICByZXNwb25zZSA9IHNlbmRfYWxlcnRf
dGV4dChzZXNzaW9uLCAiRmVkZXJlciIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkKaW5kZXggMWYw
ZjFiYzRmZTc3Li44YzdhZTIyYTY3YjUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3RhdHVzL3N0YXR1cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkKQEAgLTEs
NyArMSw1IEBACiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCi0KIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwogCiAKQEAgLTE4
LDcgKzE2LDcgQEAgZGVmIHRlc3RfZ2V0X3N0YXR1c19ub19zZXNzaW9uKGh0dHApOgogICAgICAg
ICB2YWx1ZSA9IHBhcnNlZF9vYmpbInZhbHVlIl0KIAogICAgICAgICBhc3NlcnQgdmFsdWVbInJl
YWR5Il0gaW4gW1RydWUsIEZhbHNlXQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZVsi
bWVzc2FnZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlWyJt
ZXNzYWdlIl0sIHN0cikKIAogCiBkZWYgdGVzdF9zdGF0dXNfd2l0aF9zZXNzaW9uX3J1bm5pbmdf
b25fZW5kcG9pbnRfbm9kZShzZXNzaW9uKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2Fzc2VydHMucHkKaW5k
ZXggM2MzZDY3N2M5MGVjLi5lNjBkNTNiNmM2ZjAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRz
LnB5CkBAIC0xLDggKzEsNiBAQAotaW1wb3J0IGJhc2U2NAogaW1wb3J0IGltZ2hkcgogaW1wb3J0
IHN0cnVjdAotCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFyeSwgdGV4dF90eXBlCitmcm9t
IGJhc2U2NCBpbXBvcnQgZGVjb2RlYnl0ZXMKIAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IEVsZW1l
bnQsIE5vU3VjaEFsZXJ0RXhjZXB0aW9uLCBXZWJEcml2ZXJFeGNlcHRpb24KIApAQCAtNTIsOCAr
NTAsOCBAQCBkZWYgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCBlcnJvcl9jb2RlKToKICAgICBhc3Nl
cnQgcmVzcG9uc2Uuc3RhdHVzID09IGVycm9yc1tlcnJvcl9jb2RlXQogICAgIGFzc2VydCAidmFs
dWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBhc3NlcnQgcmVzcG9uc2UuYm9keVsidmFsdWUiXVsi
ZXJyb3IiXSA9PSBlcnJvcl9jb2RlCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9k
eVsidmFsdWUiXVsibWVzc2FnZSJdLCB0ZXh0X3R5cGUpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
cmVzcG9uc2UuYm9keVsidmFsdWUiXVsic3RhY2t0cmFjZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsibWVzc2FnZSJdLCBzdHIpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsic3RhY2t0cmFjZSJd
LCBzdHIpCiAgICAgYXNzZXJ0X3Jlc3BvbnNlX2hlYWRlcnMocmVzcG9uc2UuaGVhZGVycykKIAog
CkBAIC0yMTQsNiArMjEyLDYgQEAgZGVmIGFzc2VydF9tb3ZlX3RvX2Nvb3JkaW5hdGVzKHBvaW50
LCB0YXJnZXQsIGV2ZW50cyk6CiAKIGRlZiBhc3NlcnRfcG5nKHNjcmVlbnNob3QpOgogICAgICIi
IlRlc3QgdGhhdCBzY3JlZW5zaG90IGlzIGEgQmFzZTY0IGVuY29kZWQgUE5HIGZpbGUuIiIiCi0g
ICAgaW1hZ2UgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkoc2NyZWVuc2hvdCkp
CisgICAgaW1hZ2UgPSBkZWNvZGVieXRlcyhzY3JlZW5zaG90LmVuY29kZSgpKQogICAgIG1pbWVf
dHlwZSA9IGltZ2hkci53aGF0KCIiLCBpbWFnZSkKICAgICBhc3NlcnQgbWltZV90eXBlID09ICJw
bmciLCAiRXhwZWN0ZWQgaW1hZ2UgdG8gYmUgUE5HLCBidXQgaXQgd2FzIHt9Ii5mb3JtYXQobWlt
ZV90eXBlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5CmluZGV4IDI1
YThlYjk1ZDExNC4uOWRhNGJiN2JlNWZmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVudGljYXRpb24ucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhl
bnRpY2F0aW9uLnB5CkBAIC0xLDE1ICsxLDEyIEBACi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFy
c2UgaW1wb3J0IHVybGVuY29kZQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQog
CiAKLWRlZiBiYXNpY19hdXRoZW50aWNhdGlvbih1c2VybmFtZT1Ob25lLCBwYXNzd29yZD1Ob25l
LCBwcm90b2NvbD0iaHR0cCIpOgotICAgIGZyb20gLmZpeHR1cmVzIGltcG9ydCBzZXJ2ZXJfY29u
ZmlnLCB1cmwKLSAgICBidWlsZF91cmwgPSB1cmwoc2VydmVyX2NvbmZpZygpKQotCitkZWYgYmFz
aWNfYXV0aGVudGljYXRpb24odXJsLCB1c2VybmFtZT1Ob25lLCBwYXNzd29yZD1Ob25lLCBwcm90
b2NvbD0iaHR0cCIpOgogICAgIHF1ZXJ5ID0ge30KIAotICAgIHJldHVybiBidWlsZF91cmwoIi93
ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hdXRoZW50aWNhdGlvbi5weSIsCi0gICAgICAgICAgICAg
ICAgICAgICBxdWVyeT11cmxlbmNvZGUocXVlcnkpLAotICAgICAgICAgICAgICAgICAgICAgcHJv
dG9jb2w9cHJvdG9jb2wpCisgICAgcmV0dXJuIHVybCgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0
L2F1dGhlbnRpY2F0aW9uLnB5IiwKKyAgICAgICAgICAgICAgIHF1ZXJ5PXVybGVuY29kZShxdWVy
eSksCisgICAgICAgICAgICAgICBwcm90b2NvbD1wcm90b2NvbCkKIAogCiBkZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkKaW5kZXggOTU3YzRk
MDU4NjhiLi5kYjMyOTMxMTMxZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9maXh0dXJlcy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkKQEAg
LTIsMTUgKzIsMTUgQEAgaW1wb3J0IGNvcHkKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIAoraW1w
b3J0IGFzeW5jaW8KIGltcG9ydCBweXRlc3QKIGltcG9ydCB3ZWJkcml2ZXIKIAotZnJvbSBzaXgg
aW1wb3J0IHN0cmluZ190eXBlcwotCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0
IHVybHVuc3BsaXQKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmx1bnNwbGl0CiAKIGZyb20g
dGVzdHMuc3VwcG9ydCBpbXBvcnQgZGVmYXVsdHMKLWZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJz
IGltcG9ydCBjbGVhbnVwX3Nlc3Npb24KK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9y
dCBjbGVhbnVwX3Nlc3Npb24sIGRlZXBfdXBkYXRlCitmcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBidWlsZF9pbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5odHRwX3JlcXVlc3QgaW1w
b3J0IEhUVFBSZXF1ZXN0CiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCkBA
IC0zOCw2ICszOCwxNyBAQCBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKICAg
ICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJjYXBhYmlsaXRpZXMiLCBtYXJrZXIuYXJn
cywgaWRzPU5vbmUpCiAKIAorIyBFbnN1cmUgdGhhdCB0aGUgZXZlbnQgbG9vcCBpcyByZXN0YXJ0
ZWQgb25jZSBwZXIgc2Vzc2lvbiByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCAgb2Ygb25jZSBwZXIg
dGVzdAorIyBpZiB3ZSBkb24ndCBkbyB0aGlzLCB0ZXN0cyB3aWxsIHRyeSB0byByZXVzZSBhIGNs
b3NlZCBldmVudCBsb29wIGFuZCBmYWlsIHdpdGggYW4gZXJyb3IgdGhhdCB0aGUgImZ1dHVyZQor
IyBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IGxvb3AiCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNl
c3Npb24iKQorZGVmIGV2ZW50X2xvb3AoKToKKyAgICAiIiJDaGFuZ2UgZXZlbnRfbG9vcCBmaXh0
dXJlIHRvIHNlc3Npb24gbGV2ZWwuIiIiCisgICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xv
b3BfcG9saWN5KCkubmV3X2V2ZW50X2xvb3AoKQorICAgIHlpZWxkIGxvb3AKKyAgICBsb29wLmNs
b3NlKCkKKworCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiBhZGRfZXZlbnRfbGlzdGVuZXJzKHNlc3Np
b24pOgogICAgICIiIlJlZ2lzdGVyIGxpc3RlbmVycyBmb3IgdHJhY2tlZCBldmVudHMgb24gZWxl
bWVudC4iIiIKQEAgLTk0LDcgKzEwNSw4IEBAIGRlZiBodHRwKGNvbmZpZ3VyYXRpb24pOgogCiBA
cHl0ZXN0LmZpeHR1cmUKIGRlZiBzZXJ2ZXJfY29uZmlnKCk6Ci0gICAgcmV0dXJuIGpzb24ubG9h
ZHMob3MuZW52aXJvbi5nZXQoIldEX1NFUlZFUl9DT05GSUciKSkKKyAgICB3aXRoIG9wZW4ob3Mu
ZW52aXJvbi5nZXQoIldEX1NFUlZFUl9DT05GSUdfRklMRSIpLCAiciIpIGFzIGY6CisgICAgICAg
IHJldHVybiBqc29uLmxvYWQoZikKIAogCiBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24i
KQpAQCAtMTEwLDggKzEyMiwyMyBAQCBkZWYgY29uZmlndXJhdGlvbigpOgogICAgIH0KIAogCith
c3luYyBkZWYgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25lY2Vzc2FyeShjYXBzLCByZXF1ZXN0
X2JpZGkpOgorICAgIGdsb2JhbCBfY3VycmVudF9zZXNzaW9uCisKKyAgICAjIElmIHRoZXJlIGlz
IGEgc2Vzc2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYWN0aXZlIG9yIHRoZSBjdXJy
ZW50IHNlc3Npb24KKyAgICAjIGlzIG9mIGRpZmZlcmVudCB0eXBlIHRoYW4gdGhlIG9uZSB3ZSB3
b3VsZCBsaWtlIHRvIGNyZWF0ZSwgZW5kIGl0IG5vdy4KKyAgICBpZiBfY3VycmVudF9zZXNzaW9u
IGlzIG5vdCBOb25lOgorICAgICAgICBpc19iaWRpID0gaXNpbnN0YW5jZShfY3VycmVudF9zZXNz
aW9uLCB3ZWJkcml2ZXIuQmlkaVNlc3Npb24pCisgICAgICAgIGlmIGlzX2JpZGkgIT0gcmVxdWVz
dF9iaWRpIG9yIG5vdCBfY3VycmVudF9zZXNzaW9uLm1hdGNoKGNhcHMpOgorICAgICAgICAgICAg
aWYgaXNfYmlkaToKKyAgICAgICAgICAgICAgICBhd2FpdCBfY3VycmVudF9zZXNzaW9uLmVuZCgp
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24uZW5k
KCkKKyAgICAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24gPSBOb25lCisKKwogQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSJmdW5jdGlvbiIpCi1kZWYgc2Vzc2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3Vy
YXRpb24sIHJlcXVlc3QpOgorYXN5bmMgZGVmIHNlc3Npb24oY2FwYWJpbGl0aWVzLCBjb25maWd1
cmF0aW9uLCByZXF1ZXN0KToKICAgICAiIiJDcmVhdGUgYW5kIHN0YXJ0IGEgc2Vzc2lvbiBmb3Ig
YSB0ZXN0IHRoYXQgZG9lcyBub3QgaXRzZWxmIHRlc3Qgc2Vzc2lvbiBjcmVhdGlvbi4KIAogICAg
IEJ5IGRlZmF1bHQgdGhlIHNlc3Npb24gd2lsbCBzdGF5IG9wZW4gYWZ0ZXIgZWFjaCB0ZXN0LCBi
dXQgd2UgYWx3YXlzIHRyeSB0byBzdGFydCBhCkBAIC0xMjMsMTQgKzE1MCwxMCBAQCBkZWYgc2Vz
c2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3QpOgogICAgICMgVXBkYXRl
IGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzIHdpdGggY3VzdG9tIG9uZXMgZnJvbSB0aGUKICAg
ICAjIGNhcGFiaWxpdGllcyBmaXh0dXJlLCB3aGljaCBjYW4gYmUgc2V0IGJ5IHRlc3RzCiAgICAg
Y2FwcyA9IGNvcHkuZGVlcGNvcHkoY29uZmlndXJhdGlvblsiY2FwYWJpbGl0aWVzIl0pCi0gICAg
Y2Fwcy51cGRhdGUoY2FwYWJpbGl0aWVzKQorICAgIGRlZXBfdXBkYXRlKGNhcHMsIGNhcGFiaWxp
dGllcykKICAgICBjYXBzID0geyJhbHdheXNNYXRjaCI6IGNhcHN9CiAKLSAgICAjIElmIHRoZXJl
IGlzIGEgc2Vzc2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYWN0aXZlLCBlbmQgaXQg
bm93Ci0gICAgaWYgX2N1cnJlbnRfc2Vzc2lvbiBpcyBub3QgTm9uZSBhbmQgKAotICAgICAgICAg
ICAgY2FwcyAhPSBfY3VycmVudF9zZXNzaW9uLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMpOgotICAg
ICAgICBfY3VycmVudF9zZXNzaW9uLmVuZCgpCi0gICAgICAgIF9jdXJyZW50X3Nlc3Npb24gPSBO
b25lCisgICAgYXdhaXQgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25lY2Vzc2FyeShjYXBzLCBG
YWxzZSkKIAogICAgIGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgTm9uZToKICAgICAgICAgX2N1cnJl
bnRfc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9uKApAQCAtMTM5LDYgKzE2Miw3IEBAIGRlZiBz
ZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgICAgICAg
ICBjYXBhYmlsaXRpZXM9Y2FwcykKICAgICB0cnk6CiAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24u
c3RhcnQoKQorCiAgICAgZXhjZXB0IHdlYmRyaXZlci5lcnJvci5TZXNzaW9uTm90Q3JlYXRlZEV4
Y2VwdGlvbjoKICAgICAgICAgaWYgbm90IF9jdXJyZW50X3Nlc3Npb24uc2Vzc2lvbl9pZDoKICAg
ICAgICAgICAgIHJhaXNlCkBAIC0xNTIsNiArMTc2LDQ4IEBAIGRlZiBzZXNzaW9uKGNhcGFiaWxp
dGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgY2xlYW51cF9zZXNzaW9uKF9jdXJy
ZW50X3Nlc3Npb24pCiAKIAorQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCithc3lu
YyBkZWYgYmlkaV9zZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6
CisgICAgIiIiQ3JlYXRlIGFuZCBzdGFydCBhIGJpZGkgc2Vzc2lvbiBmb3IgYSB0ZXN0IHRoYXQg
ZG9lcyBub3QgaXRzZWxmIHRlc3QKKyAgICBiaWRpIHNlc3Npb24gY3JlYXRpb24uCisgICAgQnkg
ZGVmYXVsdCB0aGUgc2Vzc2lvbiB3aWxsIHN0YXkgb3BlbiBhZnRlciBlYWNoIHRlc3QsIGJ1dCB3
ZSBhbHdheXMgdHJ5IHRvIHN0YXJ0IGEKKyAgICBuZXcgb25lIGFuZCBhc3N1bWUgdGhhdCBpZiB0
aGF0IGZhaWxzIHRoZXJlIGlzIGFscmVhZHkgYSB2YWxpZCBzZXNzaW9uLiBUaGlzIG1ha2VzIGl0
CisgICAgcG9zc2libGUgdG8gcmVjb3ZlciBmcm9tIHNvbWUgZXJyb3JzIHRoYXQgbWlnaHQgbGVh
dmUgdGhlIHNlc3Npb24gaW4gYSBiYWQgc3RhdGUsIGJ1dAorICAgIGRvZXMgbm90IGRlbWFuZCB0
aGF0IHdlIHN0YXJ0IGEgbmV3IHNlc3Npb24gcGVyIHRlc3QuIiIiCisgICAgZ2xvYmFsIF9jdXJy
ZW50X3Nlc3Npb24KKworICAgICMgVXBkYXRlIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzIHdp
dGggY3VzdG9tIG9uZXMgZnJvbSB0aGUKKyAgICAjIGNhcGFiaWxpdGllcyBmaXh0dXJlLCB3aGlj
aCBjYW4gYmUgc2V0IGJ5IHRlc3RzCisgICAgY2FwcyA9IGNvcHkuZGVlcGNvcHkoY29uZmlndXJh
dGlvblsiY2FwYWJpbGl0aWVzIl0pCisgICAgZGVlcF91cGRhdGUoY2FwcywgY2FwYWJpbGl0aWVz
KQorICAgIGNhcHMgPSB7ImFsd2F5c01hdGNoIjogY2Fwc30KKworICAgIGF3YWl0IHJlc2V0X2N1
cnJlbnRfc2Vzc2lvbl9pZl9uZWNlc3NhcnkoY2FwcywgVHJ1ZSkKKworICAgIGlmIF9jdXJyZW50
X3Nlc3Npb24gaXMgTm9uZToKKyAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbiA9IHdlYmRyaXZlci5T
ZXNzaW9uKAorICAgICAgICAgICAgY29uZmlndXJhdGlvblsiaG9zdCJdLAorICAgICAgICAgICAg
Y29uZmlndXJhdGlvblsicG9ydCJdLAorICAgICAgICAgICAgY2FwYWJpbGl0aWVzPWNhcHMsCisg
ICAgICAgICAgICBlbmFibGVfYmlkaT1UcnVlKQorCisgICAgdHJ5OgorICAgICAgICBfY3VycmVu
dF9zZXNzaW9uLnN0YXJ0KCkKKyAgICAgICAgYXdhaXQgX2N1cnJlbnRfc2Vzc2lvbi5iaWRpX3Nl
c3Npb24uc3RhcnQoKQorICAgIGV4Y2VwdCB3ZWJkcml2ZXIuZXJyb3IuU2Vzc2lvbk5vdENyZWF0
ZWRFeGNlcHRpb246CisgICAgICAgIGlmIG5vdCBfY3VycmVudF9zZXNzaW9uLnNlc3Npb25faWQ6
CisgICAgICAgICAgICByYWlzZQorCisgICAgIyBFbmZvcmNlIGEgZml4ZWQgZGVmYXVsdCB3aW5k
b3cgc2l6ZSBhbmQgcG9zaXRpb24KKyAgICBfY3VycmVudF9zZXNzaW9uLndpbmRvdy5zaXplID0g
ZGVmYXVsdHMuV0lORE9XX1NJWkUKKyAgICBfY3VycmVudF9zZXNzaW9uLndpbmRvdy5wb3NpdGlv
biA9IGRlZmF1bHRzLldJTkRPV19QT1NJVElPTgorCisgICAgeWllbGQgX2N1cnJlbnRfc2Vzc2lv
bi5iaWRpX3Nlc3Npb24KKworICAgIGF3YWl0IF9jdXJyZW50X3Nlc3Npb24uYmlkaV9zZXNzaW9u
LmVuZCgpCisgICAgY2xlYW51cF9zZXNzaW9uKF9jdXJyZW50X3Nlc3Npb24pCisKKwogQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCiBkZWYgY3VycmVudF9zZXNzaW9uKCk6CiAgICAg
cmV0dXJuIF9jdXJyZW50X3Nlc3Npb24KQEAgLTE1OSwxNCArMjI1LDEzIEBAIGRlZiBjdXJyZW50
X3Nlc3Npb24oKToKIAogQHB5dGVzdC5maXh0dXJlCiBkZWYgdXJsKHNlcnZlcl9jb25maWcpOgot
ICAgIGRlZiBpbm5lcihwYXRoLCBwcm90b2NvbD0iaHR0cCIsIGRvbWFpbj0iIiwgc3ViZG9tYWlu
PSIiLCBxdWVyeT0iIiwgZnJhZ21lbnQ9IiIpOgorICAgIGRlZiB1cmwocGF0aCwgcHJvdG9jb2w9
Imh0dHAiLCBkb21haW49IiIsIHN1YmRvbWFpbj0iIiwgcXVlcnk9IiIsIGZyYWdtZW50PSIiKToK
ICAgICAgICAgZG9tYWluID0gc2VydmVyX2NvbmZpZ1siZG9tYWlucyJdW2RvbWFpbl1bc3ViZG9t
YWluXQogICAgICAgICBwb3J0ID0gc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1bMF0K
ICAgICAgICAgaG9zdCA9ICJ7MH06ezF9Ii5mb3JtYXQoZG9tYWluLCBwb3J0KQogICAgICAgICBy
ZXR1cm4gdXJsdW5zcGxpdCgocHJvdG9jb2wsIGhvc3QsIHBhdGgsIHF1ZXJ5LCBmcmFnbWVudCkp
CiAKLSAgICBpbm5lci5fX25hbWVfXyA9ICJ1cmwiCi0gICAgcmV0dXJuIGlubmVyCisgICAgcmV0
dXJuIHVybAogCiAKIEBweXRlc3QuZml4dHVyZQpAQCAtMTgyLDcgKzI0Nyw3IEBAIGRlZiBjcmVh
dGVfZGlhbG9nKHNlc3Npb24pOgogICAgICAgICBpZiB0ZXh0IGlzIE5vbmU6CiAgICAgICAgICAg
ICB0ZXh0ID0gIiIKIAotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0ZXh0LCBzdHJpbmdfdHlw
ZXMpLCAiYHRleHRgIHBhcmFtZXRlciBtdXN0IGJlIGEgc3RyaW5nIgorICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZSh0ZXh0LCBzdHIpLCAiYHRleHRgIHBhcmFtZXRlciBtdXN0IGJlIGEgc3RyaW5n
IgogCiAgICAgICAgICMgU2NyaXB0IGNvbXBsZXRlcyBpdHNlbGYgd2hlbiB0aGUgdXNlciBwcm9t
cHQgaGFzIGJlZW4gb3BlbmVkLgogICAgICAgICAjIEZvciBwcm9tcHQoKSBkaWFsb2dzLCBhZGQg
YSB2YWx1ZSBmb3IgdGhlICdkZWZhdWx0JyBhcmd1bWVudCwKQEAgLTIzOCwxNSArMzAzLDU0IEBA
IGRlZiBjbG9zZWRfZnJhbWUoc2Vzc2lvbiwgdXJsKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRl
ZiBjbG9zZWRfd2luZG93KHNlc3Npb24pOgorZGVmIGNsb3NlZF93aW5kb3coc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndpbmRvd19oYW5kbGUKICAgICBu
ZXdfaGFuZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKIAogICAgIHNlc3Npb24ud2luZG93X2hh
bmRsZSA9IG5ld19oYW5kbGUKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPSdh
JyB2YWx1ZT0nYic+IikKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAKICAgICBzZXNzaW9uLndpbmRvdy5jbG9zZSgpCiAgICAgYXNzZXJ0IG5ld19o
YW5kbGUgbm90IGluIHNlc3Npb24uaGFuZGxlcywgIlVuYWJsZSB0byBjbG9zZSB3aW5kb3cge30i
LmZvcm1hdChuZXdfaGFuZGxlKQogCi0gICAgeWllbGQgbmV3X2hhbmRsZQorICAgIHlpZWxkIChv
cmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQpCiAKICAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBv
cmlnaW5hbF9oYW5kbGUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBpbmxpbmUodXJsKToKKyAg
ICAiIiJUYWtlcyBhIHNvdXJjZSBleHRyYWN0IGFuZCBwcm9kdWNlcyB3ZWxsLWZvcm1lZCBkb2N1
bWVudHMuCisKKyAgICBCYXNlZCBvbiB0aGUgZGVzaXJlZCBkb2N1bWVudCB0eXBlLCB0aGUgZXh0
cmFjdCBpcyBlbWJlZGRlZCB3aXRoCisgICAgcHJlZGVmaW5lZCBib2lsZXJwbGF0ZSBpbiBvcmRl
ciB0byBwcm9kdWNlIHdlbGwtZm9ybWVkIGRvY3VtZW50cy4KKyAgICBUaGUgbWVkaWEgdHlwZSBh
bmQgY2hhcmFjdGVyIHNldCBtYXkgYWxzbyBiZSBpbmRpdmlkdWFsbHkgY29uZmlndXJlZC4KKwor
ICAgIFRoaXMgaGVscGVyIGZ1bmN0aW9uIG9yaWdpbmFsbHkgdXNlZCBkYXRhIFVSTHMsIGJ1dCBz
aW5jZSB0aGVzZQorICAgIGFyZSBub3QgdW5pdmVyc2FsbHkgc3VwcG9ydGVkIChvciBpbmRlZWQg
c3RhbmRhcmRpc2VkISkgYWNyb3NzCisgICAgYnJvd3NlcnMsIGl0IG5vdyBkZWxlZ2F0ZXMgdGhl
IHNlcnZpbmcgb2YgdGhlIGRvY3VtZW50IHRvIHdwdHNlcnZlLgorICAgIFRoaXMgZmlsZSBhbHNv
IGFjdHMgYXMgYSB3cHRzZXJ2ZSBoYW5kbGVyIChzZWUgdGhlIG1haW4gZnVuY3Rpb24KKyAgICBi
ZWxvdykgd2hpY2ggY29uZmlndXJlcyB0aGUgSFRUUCByZXNwb25zZSB1c2luZyBxdWVyeSBwYXJh
bWV0ZXJzLgorCisgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgVVJMIHRvIHRoZSB3cHRzZXJ2
ZSBoYW5kbGVyLCB3aGljaCBpbiB0dXJuCisgICAgd2lsbCBzZXJ2ZSBhbiBIVFRQIHJlc3BvbnNl
IHdpdGggdGhlIHJlcXVlc3RlZCBzb3VyY2UgZXh0cmFjdAorICAgIGlubGluZWQgaW4gYSB3ZWxs
LWZvcm1lZCBkb2N1bWVudCwgYW5kIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyCisgICAgb3B0aW9u
YWxseSBjb25maWd1cmVkIHVzaW5nIHRoZSBkZXNpcmVkIG1lZGlhIHR5cGUgYW5kIGNoYXJhY3Rl
ciBzZXQuCisKKyAgICBBbnkgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgcGFzc2Vk
IG9uIHRvIHRoZSBidWlsZF91cmwKKyAgICBmdW5jdGlvbiwgd2hpY2ggY29tZXMgZnJvbSB0aGUg
dXJsIGZpeHR1cmUuCisgICAgIiIiCisgICAgZGVmIGlubGluZShzcmMsICoqa3dhcmdzKToKKyAg
ICAgICAgcmV0dXJuIGJ1aWxkX2lubGluZSh1cmwsIHNyYywgKiprd2FyZ3MpCisKKyAgICByZXR1
cm4gaW5saW5lCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgaWZyYW1lKGlubGluZSk6CisgICAg
IiIiSW5saW5lcyBkb2N1bWVudCBleHRyYWN0IGFzIHRoZSBzb3VyY2UgZG9jdW1lbnQgb2YgYW4g
PGlmcmFtZT4uIiIiCisgICAgZGVmIGlmcmFtZShzcmMsICoqa3dhcmdzKToKKyAgICAgICAgcmV0
dXJuICI8aWZyYW1lIHNyYz0ne30nPjwvaWZyYW1lPiIuZm9ybWF0KGlubGluZShzcmMsICoqa3dh
cmdzKSkKKworICAgIHJldHVybiBpZnJhbWUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2hlbHBlcnMucHkKaW5k
ZXggZjg1NzA4M2I0Nzc0Li40M2JkYjQxY2Y5ODMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJz
LnB5CkBAIC0xLDUgKzEsNiBAQAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgogCitpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBtYXRoCiBpbXBvcnQgc3lzCiAKQEAgLTEw
Niw2ICsxMDcsMjAgQEAgZGVmIGNsZWFyX2FsbF9jb29raWVzKHNlc3Npb24pOgogICAgIHNlc3Np
b24udHJhbnNwb3J0LnNlbmQoIkRFTEVURSIsICJzZXNzaW9uLyVzL2Nvb2tpZSIgJSBzZXNzaW9u
LnNlc3Npb25faWQpCiAKIAorZGVmIGRlZXBfdXBkYXRlKHNvdXJjZSwgb3ZlcnJpZGVzKToKKyAg
ICAiIiIKKyAgICBVcGRhdGUgYSBuZXN0ZWQgZGljdGlvbmFyeSBvciBzaW1pbGFyIG1hcHBpbmcu
CisgICAgTW9kaWZ5IGBgc291cmNlYGAgaW4gcGxhY2UuCisgICAgIiIiCisgICAgZm9yIGtleSwg
dmFsdWUgaW4gb3ZlcnJpZGVzLml0ZW1zKCk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUs
IGNvbGxlY3Rpb25zLk1hcHBpbmcpIGFuZCB2YWx1ZToKKyAgICAgICAgICAgIHJldHVybmVkID0g
ZGVlcF91cGRhdGUoc291cmNlLmdldChrZXksIHt9KSwgdmFsdWUpCisgICAgICAgICAgICBzb3Vy
Y2Vba2V5XSA9IHJldHVybmVkCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzb3VyY2Vba2V5
XSA9IG92ZXJyaWRlc1trZXldCisgICAgcmV0dXJuIHNvdXJjZQorCisKIGRlZiBkb2N1bWVudF9k
aW1lbnNpb25zKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBsZShzZXNzaW9uLmV4ZWN1dGVfc2Ny
aXB0KCIiIgogICAgICAgICBsZXQgcmVjdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKQEAgLTIyMSwzICsyMzYsMjcgQEAgZGVmIGF2YWlsYWJsZV9z
Y3JlZW5fc2l6ZShzZXNzaW9uKToKICAgICAgICAgICAgIHNjcmVlbi5hdmFpbEhlaWdodCAtIHNj
cmVlbi5hdmFpbFRvcCwKICAgICAgICAgXTsKICAgICAgICAgIiIiKSkKKworZGVmIGZpbHRlcl9k
aWN0KHNvdXJjZSwgZCk6CisgICAgIiIiRmlsdGVyIGBzb3VyY2VgIGRpY3QgdG8gb25seSBjb250
YWluIHNhbWUga2V5cyBhcyBgZGAgZGljdC4KKworICAgIDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25h
cnkgdG8gZmlsdGVyLgorICAgIDpwYXJhbSBkOiBkaWN0aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJt
aW5lIHRoZSBmaWx0ZXJpbmcuCisgICAgIiIiCisgICAgcmV0dXJuIHtrOiBzb3VyY2Vba10gZm9y
IGsgaW4gZC5rZXlzKCl9CisKKworZGVmIHdhaXRfZm9yX25ld19oYW5kbGUoc2Vzc2lvbiwgaGFu
ZGxlc19iZWZvcmUpOgorICAgIGRlZiBmaW5kX25ld19oYW5kbGUoc2Vzc2lvbik6CisgICAgICAg
IG5ld19oYW5kbGVzID0gbGlzdChzZXQoc2Vzc2lvbi5oYW5kbGVzKSAtIHNldChoYW5kbGVzX2Jl
Zm9yZSkpCisgICAgICAgIGlmIG5ld19oYW5kbGVzIGFuZCBsZW4obmV3X2hhbmRsZXMpID09IDE6
CisgICAgICAgICAgICByZXR1cm4gbmV3X2hhbmRsZXNbMF0KKyAgICAgICAgcmV0dXJuIE5vbmUK
KworICAgIHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUs
CisgICAgICAgIG1lc3NhZ2U9Ik5vIG5ldyB3aW5kb3cgaGFzIGJlZW4gb3BlbmVkIikKKworICAg
IHJldHVybiB3YWl0LnVudGlsKGZpbmRfbmV3X2hhbmRsZSkKKwpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvZnJhbWVz
X25vX2JmY2FjaGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lc19ub19iZmNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xOTcyMTg3ZDIxZmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRt
bC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhlYWQ+
CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiByZW1vdmUo
KSB7CisgICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWItZnJh
bWUiKTsKKyAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGUi
KTsKKyAgICAgIGRpdi5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgfQorICA8L3NjcmlwdD4KKzwv
aGVhZD4KKworPCEtLSB1bmxvYWQgaGFuZGxlciBwcmV2ZW50cyB0aGUgcGFnZSBmcm9tIGJlaW5n
IGFkZGVkIHRvIHRoZSBiZmNhY2hlIG9uIG5hdmlnYXRpb24gLS0+Cis8Ym9keSBvbnVubG9hZD0i
Ij4KKyAgPGRpdiBpZD0iZGVsZXRlIj4KKyAgICA8aWZyYW1lIHNyYz0ic3ViZnJhbWUuaHRtbCIg
aWQ9InN1Yi1mcmFtZSI+PC9pZnJhbWU+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBw
b3J0L2h0bWwvbWV0YS11dGY4LWFmdGVyLTEwMjQtYnl0ZXMuaHRtbCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL21ldGEtdXRmOC1hZnRl
ci0xMDI0LWJ5dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li5iNTkxNjE0OGI1NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9tZXRhLXV0ZjgtYWZ0ZXItMTAyNC1i
eXRlcy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBMb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBOdWxsYSBl
dSBpYWN1bGlzCitsZWN0dXMuIFF1aXNxdWUgdWxsYW1jb3JwZXIgZXN0IGF0IG51bmMgY29uc2Vj
dGV0dXIgc3VzY2lwaXQuIEFsaXF1YW0gaW1wZXJkaWV0CittYXVyaXMgaW4gbnVsbGEgb3JuYXJl
LCBpZCBlbGVpZmVuZCB0dXJwaXMgcGxhY2VyYXQuIFZlc3RpYnVsdW0gbG9yZW0gbGliZXJvLAor
c29sbGljaXR1ZGluIGluIG9yY2kgc3VzY2lwaXQsIGRpY3R1bSB2ZXN0aWJ1bHVtIG51bGxhLiBV
dCBhYyBlc3QgdGluY2lkdW50LAorY3Vyc3VzIGxlbyB2ZWwsIHBlbGxlbnRlc3F1ZSBvcmNpLiBT
ZWQgbWF0dGlzIG1ldHVzIGF1Z3VlLCBhYyB0aW5jaWR1bnQgbnVuYworbG9ib3J0aXMgaW4uIFBy
b2luIGV1IGlwc3VtIGF1Y3RvciBsb3JlbSBzYWdpdHRpcyBtYWxlc3VhZGEuIFZpdmFtdXMgbWF4
aW11cywKK2Vyb3MgZnJpbmdpbGxhIHZ1bHB1dGF0ZSB0aW5jaWR1bnQsIHRlbGx1cyB0ZWxsdXMg
dml2ZXJyYSBhdWd1ZSwgc2VkIGlhY3VsaXMKK2lwc3VtIGxhY3VzIHF1aXMgdGVsbHVzLiBNb3Ji
aSBldCBlbmltIGF0IGFudGUgbW9sZXN0aWUgaW1wZXJkaWV0IGV0IGV0IG51bGxhLgorQWxpcXVh
bSBjb25zZXF1YXQgcmhvbmN1cyBtYWduYSwgdml0YWUgc29kYWxlcyB1cm5hIG1heGltdXMgZWdl
dC4gTWF1cmlzIGV1CitsYW9yZWV0IHR1cnBpcywgZWdldCBjb25kaW1lbnR1bSBsZWN0dXMuIE1h
ZWNlbmFzIHZlbCBsb3JlbSB2ZWwgbnVsbGEgZWZmaWNpdHVyCitldWlzbW9kLiBTZWQgbG9ib3J0
aXMgZW5pbSBhYyBvZGlvIGJpYmVuZHVtLCBpZCB2ZWhpY3VsYSBuaWJoIHRlbXB1cy4gUGhhc2Vs
bHVzCitzb2RhbGVzLCBpcHN1bSBmZXVnaWF0IGFsaXF1YW0gdmVoaWN1bGEsIGRpYW0gbGVvIGN1
cnN1cyBlc3QsIG5lYyB2YXJpdXMgbnVuYworZmVsaXMgdml0YWUgZXN0LiBDdXJhYml0dXIgYWMg
cHVydXMgbmlzbC4gTWF1cmlzIGNvbmRpbWVudHVtLCBtYWduYSBxdWlzCitjb25zZWN0ZXR1ciBi
aWFtLiAtLT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxkaXYgaWQ9ImJvZHkiPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9z
dXBwb3J0L2h0dHBfcmVxdWVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKaW5kZXggODk1ZDEzMTlhYzBhLi4y
NDJkYzljOTE4ODcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0dHBfcmVxdWVzdC5weQpAQCAt
MSw5ICsxLDcgQEAKIGltcG9ydCBjb250ZXh0bGliCiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBp
bXBvcnQgdGV4dF90eXBlCi0KLWZyb20gc2l4Lm1vdmVzLmh0dHBfY2xpZW50IGltcG9ydCBIVFRQ
Q29ubmVjdGlvbgorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KIAogCiBj
bGFzcyBIVFRQUmVxdWVzdChvYmplY3QpOgpAQCAtMzEsNyArMjksNyBAQCBjbGFzcyBIVFRQUmVx
dWVzdChvYmplY3QpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZhaWxlZCB0
byBlbmNvZGUgcmVxdWVzdCBib2R5IGFzIEpTT046IHt9Ii5mb3JtYXQoCiAgICAgICAgICAgICAg
ICAgICAgIGpzb24uZHVtcHMoYm9keSwgaW5kZW50PTIpKSkKIAotICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShw
YXlsb2FkLCBzdHIpOgogICAgICAgICAgICAgICAgIHBheWxvYWQgPSBib2R5LmVuY29kZSgidXRm
LTgiKQogCiAgICAgICAgIGNvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxmLmhvc3QsIHNlbGYucG9y
dCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvc3VwcG9ydC9pbWFnZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weQppbmRleCA2MTQ5Y2NjY2JlMzIuLjJlN2FkOGMxMzA5
YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9zdXBwb3J0L2ltYWdlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3VwcG9ydC9pbWFnZS5weQpAQCAtMSwxNCArMSwxMiBAQAotaW1wb3J0IGJh
c2U2NAogaW1wb3J0IG1hdGgKIGltcG9ydCBzdHJ1Y3QKLQotZnJvbSBzaXggaW1wb3J0IGVuc3Vy
ZV9iaW5hcnkKK2Zyb20gYmFzZTY0IGltcG9ydCBkZWNvZGVieXRlcwogCiBmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3BuZwogCiAKIGRlZiBwbmdfZGltZW5zaW9ucyhz
Y3JlZW5zaG90KToKICAgICBhc3NlcnRfcG5nKHNjcmVlbnNob3QpCi0gICAgaW1hZ2UgPSBiYXNl
NjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkoc2NyZWVuc2hvdCkpCisgICAgaW1hZ2UgPSBk
ZWNvZGVieXRlcyhzY3JlZW5zaG90LmVuY29kZSgpKQogICAgIHdpZHRoLCBoZWlnaHQgPSBzdHJ1
Y3QudW5wYWNrKCI+TEwiLCBpbWFnZVsxNjoyNF0pCiAgICAgcmV0dXJuIGludCh3aWR0aCksIGlu
dChoZWlnaHQpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQppbmRleCBkMjNjYTc1ZDFjODAuLjQ5
NGNhNzRmOTI2NSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5CkBAIC0xLDYgKzEsNiBAQAog
IiIiSGVscGVycyBmb3IgaW5saW5pbmcgZXh0cmFjdHMgb2YgZG9jdW1lbnRzIGluIHRlc3RzLiIi
IgogCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQorZnJvbSB1
cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQogCiAKIEJPSUxFUlBMQVRFUyA9IHsKQEAgLTI0
LDMxICsyNCw4IEBAIE1JTUVfVFlQRVMgPSB7CiAgICAgInhtbCI6ICJ0ZXh0L3htbCIsCiB9CiAK
LWRlZiBpbmxpbmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBjaGFyc2V0PU5vbmUs
ICoqa3dhcmdzKToKLSAgICAiIiIKLSAgICBUYWtlcyBhIHNvdXJjZSBleHRyYWN0IGFuZCBwcm9k
dWNlcyB3ZWxsLWZvcm1lZCBkb2N1bWVudHMuCi0KLSAgICBCYXNlZCBvbiB0aGUgZGVzaXJlZCBk
b2N1bWVudCB0eXBlLCB0aGUgZXh0cmFjdCBpcyBlbWJlZGRlZCB3aXRoCi0gICAgcHJlZGVmaW5l
ZCBib2lsZXJwbGF0ZSBpbiBvcmRlciB0byBwcm9kdWNlIHdlbGwtZm9ybWVkIGRvY3VtZW50cy4K
LSAgICBUaGUgbWVkaWEgdHlwZSBhbmQgY2hhcmFjdGVyIHNldCBtYXkgYWxzbyBiZSBpbmRpdmlk
dWFsbHkgY29uZmlndXJlZC4KLQotICAgIFRoaXMgaGVscGVyIGZ1bmN0aW9uIG9yaWdpbmFsbHkg
dXNlZCBkYXRhIFVSTHMsIGJ1dCBzaW5jZSB0aGVzZQotICAgIGFyZSBub3QgdW5pdmVyc2FsbHkg
c3VwcG9ydGVkIChvciBpbmRlZWQgc3RhbmRhcmRpc2VkISkgYWNyb3NzCi0gICAgYnJvd3NlcnMs
IGl0IG5vdyBkZWxlZ2F0ZXMgdGhlIHNlcnZpbmcgb2YgdGhlIGRvY3VtZW50IHRvIHdwdHNlcnZl
LgotICAgIFRoaXMgZmlsZSBhbHNvIGFjdHMgYXMgYSB3cHRzZXJ2ZSBoYW5kbGVyIChzZWUgdGhl
IG1haW4gZnVuY3Rpb24KLSAgICBiZWxvdykgd2hpY2ggY29uZmlndXJlcyB0aGUgSFRUUCByZXNw
b25zZSB1c2luZyBxdWVyeSBwYXJhbWV0ZXJzLgotCi0gICAgVGhpcyBmdW5jdGlvbiByZXR1cm5z
IGEgVVJMIHRvIHRoZSB3cHRzZXJ2ZSBoYW5kbGVyLCB3aGljaCBpbiB0dXJuCi0gICAgd2lsbCBz
ZXJ2ZSBhbiBIVFRQIHJlc3BvbnNlIHdpdGggdGhlIHJlcXVlc3RlZCBzb3VyY2UgZXh0cmFjdAot
ICAgIGlubGluZWQgaW4gYSB3ZWxsLWZvcm1lZCBkb2N1bWVudCwgYW5kIHRoZSBDb250ZW50LVR5
cGUgaGVhZGVyCi0gICAgb3B0aW9uYWxseSBjb25maWd1cmVkIHVzaW5nIHRoZSBkZXNpcmVkIG1l
ZGlhIHR5cGUgYW5kIGNoYXJhY3RlciBzZXQuCi0KLSAgICBBbnkgYWRkaXRpb25hbCBrZXl3b3Jk
IGFyZ3VtZW50cyBhcmUgcGFzc2VkIG9uIHRvIHRoZSBidWlsZF91cmwKLSAgICBmdW5jdGlvbi4K
LSAgICAiIiIKLSAgICBmcm9tIC5maXh0dXJlcyBpbXBvcnQgc2VydmVyX2NvbmZpZywgdXJsCi0g
ICAgYnVpbGRfdXJsID0gdXJsKHNlcnZlcl9jb25maWcoKSkKIAorZGVmIGJ1aWxkX2lubGluZShi
dWlsZF91cmwsIHNyYywgZG9jdHlwZT0iaHRtbCIsIG1pbWU9Tm9uZSwgY2hhcnNldD1Ob25lLCAq
Kmt3YXJncyk6CiAgICAgaWYgbWltZSBpcyBOb25lOgogICAgICAgICBtaW1lID0gTUlNRV9UWVBF
U1tkb2N0eXBlXQogICAgIGlmIGNoYXJzZXQgaXMgTm9uZToKQEAgLTYyLDExICszOSw2IEBAIGRl
ZiBpbmxpbmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBjaGFyc2V0PU5vbmUsICoq
a3dhcmdzKToKICAgICAgICAgKiprd2FyZ3MpCiAKIAotZGVmIGlmcmFtZShzcmMsICoqa3dhcmdz
KToKLSAgICAiIiJJbmxpbmVzIGRvY3VtZW50IGV4dHJhY3QgYXMgdGhlIHNvdXJjZSBkb2N1bWVu
dCBvZiBhbiA8aWZyYW1lPi4iIiIKLSAgICByZXR1cm4gIjxpZnJhbWUgc3JjPSd7fSc+PC9pZnJh
bWU+Ii5mb3JtYXQoaW5saW5lKHNyYywgKiprd2FyZ3MpKQotCi0KIGRlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKICAgICBkb2MgPSByZXF1ZXN0LkdFVC5maXJzdChiImRvYyIsIE5vbmUpCiAg
ICAgbWltZSA9IHJlcXVlc3QuR0VULmZpcnN0KGIibWltZSIsIE5vbmUpCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvbWVyZ2Vf
ZGljdGlvbmFyaWVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQppbmRleCBjZjA2YzliNDMzY2UuLjcy
ZjFjYWIzNTJkZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvbWVyZ2VfZGljdGlvbmFy
aWVzLnB5CkBAIC0xLDEwICsxLDMgQEAKLWRlZiBpdGVyaXRlbXMoZCk6Ci0gICAgIiIiQ3JlYXRl
IGEga2V5LXZhbHVlIGl0ZXJhdG9yIGZvciB0aGUgZ2l2ZW4gZGljdCBpbiBib3RoIFB5dGhvbiAy
LnggYW5kCi0gICAgUHl0aG9uIDMueCBlbnZpcm9ubWVudHMiIiIKLSAgICBpZiBoYXNhdHRyKGQs
ICJpdGVyaXRlbXMiKToKLSAgICAgICAgcmV0dXJuIGQuaXRlcml0ZW1zKCkKLSAgICByZXR1cm4g
ZC5pdGVtcygpCi0KIGRlZiBtZXJnZV9kaWN0aW9uYXJpZXMoZmlyc3QsIHNlY29uZCk6CiAgICAg
IiIiR2l2ZW4gdHdvIGRpY3Rpb25hcmllcywgY3JlYXRlIGEgdGhpcmQgdGhhdCBkZWZpbmVzIGFs
bCBzcGVjaWZpZWQKICAgICBrZXkvdmFsdWUgcGFpcnMuIFRoaXMgbWVyZ2VfZGljdGlvbmFyaWVz
IGlzIHBlcmZvcm1lZCAiZGVlcGx5IiBvbiBhbnkgbmVzdGVkCkBAIC0xMiw3ICs1LDcgQEAgZGVm
IG1lcmdlX2RpY3Rpb25hcmllcyhmaXJzdCwgc2Vjb25kKToKICAgICBhbiBleGNlcHRpb24gd2ls
bCBiZSByYWlzZWQuIiIiCiAgICAgcmVzdWx0ID0gZGljdChmaXJzdCkKIAotICAgIGZvciBrZXks
IHZhbHVlIGluIGl0ZXJpdGVtcyhzZWNvbmQpOgorICAgIGZvciBrZXksIHZhbHVlIGluIHNlY29u
ZC5pdGVtcygpOgogICAgICAgICBpZiBrZXkgaW4gcmVzdWx0IGFuZCByZXN1bHRba2V5XSAhPSB2
YWx1ZToKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0W2tleV0sIGRpY3QpIGFuZCBp
c2luc3RhbmNlKHZhbHVlLCBkaWN0KToKICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG1l
cmdlX2RpY3Rpb25hcmllcyhyZXN1bHRba2V5XSwgdmFsdWUpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9zeW5jLnB5
CmluZGV4IGZhNWQxODU1MGNjZS4uMzBmZjg3MmI2ZTE1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5w
eQpAQCAtMiw4ICsyLDYgQEAgaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQgc3lzCiBpbXBvcnQg
dGltZQogCi1pbXBvcnQgc2l4Ci0KIGZyb20gd2ViZHJpdmVyIGltcG9ydCBlcnJvcgogCiAKQEAg
LTE0MCw2ICsxMzgsNiBAQCBjbGFzcyBQb2xsKG9iamVjdCk6CiAgICAgICAgICAgICBtZXNzYWdl
ID0gIlRpbWVkIG91dCBhZnRlciB7fSBzZWNvbmRzIi5mb3JtYXQoZWxhcHNlZCkKICAgICAgICAg
ICAgIGlmIHNlbGYuZXhjX21zZyBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBtZXNzYWdl
ID0gInt9IHdpdGggbWVzc2FnZToge30iLmZvcm1hdChtZXNzYWdlLCBzZWxmLmV4Y19tc2cpCi0g
ICAgICAgICAgICBzaXgucmVyYWlzZShzZWxmLmV4Y19jbHMsIHNlbGYuZXhjX2NscyhtZXNzYWdl
PW1lc3NhZ2UpLCB0YikKKyAgICAgICAgICAgIHJhaXNlIHNlbGYuZXhjX2NscyhtZXNzYWdlPW1l
c3NhZ2UpLndpdGhfdHJhY2ViYWNrKHRiKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0
dXJuIHJ2CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4u
cHkKaW5kZXggOTA1ZjFlYjU2ZGNlLi42MzNlYmEzZjQyNDggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL2Nyb3Nz
X29yaWdpbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkKQEAgLTEsMTAgKzEsOSBAQAotZnJv
bSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQorZnJvbSB1cmxsaWIucGFy
c2UgaW1wb3J0IHVybHBhcnNlCiAKIGltcG9ydCB3ZWJkcml2ZXIucHJvdG9jb2wgYXMgcHJvdG9j
b2wKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCiBm
cm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZG9jdW1lbnRfbG9jYXRpb24KLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAKIAogIiIiCkBAIC0y
Nyw3ICsyNiw3IEBAIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpOgogICAgICAg
ICBzZXNzaW9uPXNlc3Npb24pCiAKIAotZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luX2lmcmFtZShzZXNz
aW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lv
biwgc2VydmVyX2NvbmZpZywgaW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKGlmcmFtZSgiIiwgZG9tYWluPSJhbHQiKSkKICAgICBmcmFtZV9lbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC0zOCw3ICszNyw3IEBAIGRlZiB0
ZXN0X2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNz
ZXJ0IHBhcnNlX3Jlc3VsdC5uZXRsb2MgIT0gc2VydmVyX2NvbmZpZ1siYnJvd3Nlcl9ob3N0Il0K
IAogCi1kZWYgdGVzdF9uZXN0ZWRfY3Jvc3Nfb3JpZ2luX2lmcmFtZShzZXNzaW9uLCBzZXJ2ZXJf
Y29uZmlnKToKK2RlZiB0ZXN0X25lc3RlZF9jcm9zc19vcmlnaW5faWZyYW1lKHNlc3Npb24sIHNl
cnZlcl9jb25maWcsIGlubGluZSwgaWZyYW1lKToKICAgICBmcmFtZTIgPSBpZnJhbWUoIiIsIGRv
bWFpbj0iYWx0Iiwgc3ViZG9tYWluPSJ3d3ciKQogICAgIGZyYW1lMSA9IGlmcmFtZShmcmFtZTIp
CiAgICAgdG9wX2RvYyA9IGlubGluZShmcmFtZTEsIGRvbWFpbj0iYWx0IikKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2Zy
YW1lL3N3aXRjaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weQppbmRleCA3MDVmYTc5YTVkZTAuLjljY2FiMmM2
Yzk2ZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weQpAQCAtMiwx
MSArMiwxMCBAQCBpbXBvcnQgcHl0ZXN0CiAKIGltcG9ydCB3ZWJkcml2ZXIucHJvdG9jb2wgYXMg
cHJvdG9jb2wKIAotZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4
Y2VwdGlvbgorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KIGZy
b20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNz
ZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZSwgaWZy
YW1lCiAKIAogZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CkBAIC0xNywxOCAr
MTYsMTMgQEAgZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CiAgICAgICAgIHNl
c3Npb249c2Vzc2lvbikKIAogCi1kZWYgZnJhbWVzZXQoKmRvY3MpOgotICAgIGZyYW1lcyA9IGxp
c3QobWFwKGxhbWJkYSBkb2M6ICI8ZnJhbWUgc3JjPSd7fSc+PC9mcmFtZT4iLmZvcm1hdChpbmxp
bmUoZG9jKSksIGRvY3MpKQotICAgIHJldHVybiAiPGZyYW1lc2V0IHJvd3M9J3t9Jz5cbnt9PC9m
cmFtZXNldD4iLmZvcm1hdChsZW4oZnJhbWVzKSAqICIqLCIsICJcbiIuam9pbihmcmFtZXMpKQot
Ci0KIGRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgogICAgIHBh
dGggPSAiL3Nlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1lIi5mb3JtYXQoKip2YXJzKHNlc3Npb24p
KQogICAgIHdpdGggaHR0cC5wb3N0KHBhdGgsIE5vbmUpIGFzIHJlc3BvbnNlOgogICAgICAgICBh
c3NlcnRfZXJyb3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFsaWQgYXJndW1l
bnQiKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVz
dF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZyYW1lID0gc2Vzc2lvbi5m
aW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC00Miw3ICszNiwxNiBAQCBkZWYgdGVz
dF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgogICAgIDAsCiAgICAgeyJlbGVtZW50LTYw
NjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiI6ICJmb28ifSwKIF0pCi1kZWYgdGVzdF9ub190b3Bf
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93LCBpZCk6CitkZWYgdGVzdF9u
b190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCB1cmwsIGlkKToKKyAgICBzZXNzaW9uLndp
bmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQorCisgICAgc2Vzc2lvbi51cmwgPSB1
cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lcy5odG1sIikKKworICAgIHN1
YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBz
ZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHNlc3Npb24ud2luZG93LmNsb3Nl
KCkKKwogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGlkKQogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIApAQCAtNjEsMTMgKzY0LDE4
IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBp
ZCk6CiAgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAog
CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFkeV90b3BfbGV2ZWwoc2Vz
c2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vz
c2lvbiwgTm9uZSkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIp
CisKKwogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFsiZm9vIiwgVHJ1ZSwgW10s
IHt9XSkKIGRlZiB0ZXN0X2ZyYW1lX2lkX2ludmFsaWRfdHlwZXMoc2Vzc2lvbiwgdmFsdWUpOgog
ICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIHZhbHVlKQogICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X2ZyYW1l
X2lkX251bGwoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF9udWxsKHNlc3Npb24sIGlubGlu
ZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoInt9PGRpdj5mb28i
LmZvcm1hdChpZnJhbWUoIjxwPmJhciIpKSkpCiAKICAgICBmcmFtZTEgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCkBAIC04MiwxMCArOTAsMjcgQEAgZGVmIHRlc3RfZnJh
bWVfaWRfbnVsbChzZXNzaW9uKToKICAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNz
aW9uLCBOb25lKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCi0gICAgd2l0aCBweXRl
c3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgd2l0aCBweXRl
c3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgogICAgICAgICBlbGVtZW50Mi50ZXh0
Ci0gICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgogICAgICAg
ICBlbGVtZW50MS50ZXh0CiAKICAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIs
IGFsbD1GYWxzZSkKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZyYW1lLCBmcmFt
ZTEpCisKKworZGVmIHRlc3RfZmluZF9lbGVtZW50X3doaWxlX2ZyYW1lX2lzX3N0aWxsX2xvYWRp
bmcoc2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLnRpbWVvdXRzLmltcGxpY2l0ID0gNQorCisg
ICAgZnJhbWVfdXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFt
ZS5odG1sP3BpcGU9dHJpY2tsZShkMikiKQorICAgIHBhZ2VfdXJsID0gIjxodG1sPjxib2R5Pjxp
ZnJhbWUgc3JjPSd7fSc+PC9pZnJhbWU+PC9ib2R5PjwvaHRtbD4iLmZvcm1hdChmcmFtZV91cmwp
CisKKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAiZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LmlubmVySFRNTCA9IGFyZ3VtZW50c1swXTsiLCBhcmdzPVtwYWdlX3VybF0pCisK
KyAgICBmcmFtZTEgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCisgICAg
c2Vzc2lvbi5zd2l0Y2hfZnJhbWUoZnJhbWUxKQorCisgICAgIyBFbnN1cmUgdGhhdCB0aGUgaXMg
YWx3YXlzIGEgdmFsaWQgYnJvd3NpbmcgY29udGV4dCwgYW5kIHRoZSBlbGVtZW50CisgICAgIyBj
YW4gYmUgZm91bmQgZXZlbnR1YWxseS4KKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwg
YWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF9u
dW1iZXIucHkKaW5kZXggNzc1Mjk1NDQ2NzlhLi5jODg1OGU3N2ZmMTAgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1l
L3N3aXRjaF9udW1iZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5weQpAQCAtMyw3ICszLDYg
QEAgaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2NvbCBhcyBwcm90b2NvbAog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRf
c3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lLCBpZnJhbWUK
IAogCiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKQEAgLTIxLDcgKzIwLDcg
QEAgZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX291dF9vZl9ib3VuZHMoc2Vzc2lvbiwgdmFsdWUp
OgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5kZXgiLCBbMSwgNjU1MzVdKQotZGVm
IHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3VuZHMoc2Vzc2lvbiwgaW5kZXgp
OgorZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3VuZHMoc2Vzc2lvbiwg
aW5saW5lLCBpZnJhbWUsIGluZGV4KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUo
IjxwPmZvbyIpKQogCiAgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgaW5k
ZXgpCkBAIC0yOSw3ICsyOCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9vdXRf
b2ZfYm91bmRzKHNlc3Npb24sIGluZGV4KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImluZGV4LCB2YWx1ZSIsIFtbMCwgImZvbyJdLCBbMSwgImJhciJdXSkKLWRlZiB0ZXN0X2ZyYW1l
X2lkX251bWJlcl9pbmRleChzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgorZGVmIHRlc3RfZnJhbWVf
aWRfbnVtYmVyX2luZGV4KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBpbmRleCwgdmFsdWUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJ7fXt9Ii5mb3JtYXQoaWZyYW1lKCI8cD5mb28iKSwg
aWZyYW1lKCI8cD5iYXIiKSkpCiAKICAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNz
aW9uLCBpbmRleCkKQEAgLTM5LDcgKzM4LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2lu
ZGV4KHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSB2
YWx1ZQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9uZXN0ZWQoc2Vzc2lvbik6
CitkZWYgdGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXhfbmVzdGVkKHNlc3Npb24sIGlubGluZSwg
aWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoInt9PHA+Zm9vIi5mb3Jt
YXQoaWZyYW1lKCI8cD5iYXIiKSkpKQogCiAgICAgZXhwZWN0ZWRfdGV4dCA9IFsiZm9vIiwgImJh
ciJdCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF93ZWJl
bGVtZW50LnB5CmluZGV4IDg5NDgwYjY2YjNhNi4uYTMwZDJkOGQzMzljIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFt
ZS9zd2l0Y2hfd2ViZWxlbWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weQpAQCAt
Myw3ICszLDYgQEAgaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2NvbCBhcyBw
cm90b2NvbAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
LCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKQEAgLTE0
LDE0ICsxMywxNCBAQCBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKICAgICAg
ICAgc2Vzc2lvbj1zZXNzaW9uKQogCiAKLWRlZiBmcmFtZXNldCgqZG9jcyk6CitkZWYgZnJhbWVz
ZXQoaW5saW5lLCAqZG9jcyk6CiAgICAgZnJhbWVzID0gbGlzdChtYXAobGFtYmRhIGRvYzogIjxm
cmFtZSBzcmM9J3t9Jz48L2ZyYW1lPiIuZm9ybWF0KGlubGluZShkb2MpKSwgZG9jcykpCiAgICAg
cmV0dXJuICI8ZnJhbWVzZXQgcm93cz0ne30nPlxue308L2ZyYW1lc2V0PiIuZm9ybWF0KGxlbihm
cmFtZXMpICogIiosIiwgIlxuIi5qb2luKGZyYW1lcykpCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28iXSwgWzEsICJiYXIiXV0pCi1kZWYgdGVz
dF9mcmFtZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6Ci0gICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoZnJhbWVzZXQoIjxwPmZvbyIsICI8cD5iYXIiKSkKK2RlZiB0
ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfZnJhbWUoc2Vzc2lvbiwgaW5saW5lLCBpbmRleCwgdmFs
dWUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKGZyYW1lc2V0KGlubGluZSwgIjxwPmZvbyIs
ICI8cD5iYXIiKSkKICAgICBmcmFtZXMgPSBzZXNzaW9uLmZpbmQuY3NzKCJmcmFtZSIpCiAgICAg
YXNzZXJ0IGxlbihmcmFtZXMpID09IDIKIApAQCAtMzMsNyArMzIsNyBAQCBkZWYgdGVzdF9mcmFt
ZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAKIAogQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28iXSwgWzEsICJiYXIi
XV0pCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2lmcmFtZShzZXNzaW9uLCBpbmRleCwg
dmFsdWUpOgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9pZnJhbWUoc2Vzc2lvbiwgaW5s
aW5lLCBpZnJhbWUsIGluZGV4LCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoInt9
e30iLmZvcm1hdChpZnJhbWUoIjxwPmZvbyIpLCBpZnJhbWUoIjxwPmJhciIpKSkKICAgICBmcmFt
ZXMgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiKQogICAgIGFzc2VydCBsZW4oZnJhbWVzKSA9
PSAyCkBAIC00NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfaWZyYW1l
KHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSB2YWx1
ZQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbmVzdGVkKHNlc3Npb24pOgorZGVm
IHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9uZXN0ZWQoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgie308cD5mb28iLmZvcm1hdChpZnJh
bWUoIjxwPmJhciIpKSkpCiAKICAgICBleHBlY3RlZF90ZXh0ID0gWyJmb28iLCAiYmFyIl0KQEAg
LTU4LDcgKzU3LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9uZXN0ZWQoc2Vzc2lv
bik6CiAgICAgICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gZXhwZWN0ZWRfdGV4dFtpXQogCiAK
LWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbm9fZWxlbWVudF9yZWZlcmVuY2Uoc2Vzc2lv
bik6CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2VsZW1lbnRfcmVmZXJlbmNlKHNl
c3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUo
IjxwPmZvbyIpKQogICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZh
bHNlKQogICAgIGZyYW1lLmlkID0gImJhciIKQEAgLTY3LDcgKzY2LDcgQEAgZGVmIHRlc3RfZnJh
bWVfaWRfd2ViZWxlbWVudF9ub19lbGVtZW50X3JlZmVyZW5jZShzZXNzaW9uKToKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2ZyYW1l
X2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNlKHNlc3Npb24pOgorZGVmIHRlc3RfZnJhbWVf
aWRfd2ViZWxlbWVudF9zdGFsZV9yZWZlcmVuY2Uoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCiAgICAgZnJhbWUgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAKQEAgLTc3LDkgKzc2LDI3IEBA
IGRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNlKHNlc3Npb24pOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAog
Ci1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2VsZW1lbnQoc2Vzc2lvbik6
CitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2VsZW1lbnQoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+Zm9vIikKICAgICBub19mcmFt
ZSA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKICAgICByZXNwb25zZSA9IHN3
aXRjaF90b19mcmFtZShzZXNzaW9uLCBub19mcmFtZSkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJubyBzdWNoIGZyYW1lIikKKworCitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2Ns
b25lZF9pbnRvX2lmcmFtZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CisgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoaWZyYW1lKCI8Ym9keT48cD5oZWxsbyB3b3JsZDwvcD48L2JvZHk+IikpCisK
KyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiIgorICAgICAgICBjb25zdCBpZnJhbWUgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF07CisgICAgICAgIGNvbnN0
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBkaXYuaW5uZXJI
VE1MID0gJ0kgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2luZG93IGFuZCBhcHBlbmRlZCBpbnRv
IHRoZSBpZnJhbWUnOworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGRpdik7CisgICAgIiIiKQorCisgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUo
c2Vzc2lvbiwgZnJhbWUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQorICAgIGFzc2VydCBlbGVt
ZW50LnRleHQgPT0gIkkgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2luZG93IGFuZCBhcHBlbmRl
ZCBpbnRvIHRoZSBpZnJhbWUiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUvc3dpdGNoLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fcGFyZW50
X2ZyYW1lL3N3aXRjaC5weQppbmRleCBlZjJkYTQ1ZjE2MjUuLjljNmRiOGQyY2Q2MSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hf
dG9fcGFyZW50X2ZyYW1lL3N3aXRjaC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUvc3dpdGNoLnB5CkBAIC0x
LDkgKzEsOCBAQAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHdlYmRyaXZlciBpbXBvcnQgU3RhbGVF
bGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uCitmcm9tIHdlYmRyaXZlciBpbXBvcnQgTm9TdWNoRWxl
bWVudEV4Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lLCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX3BhcmVudF9mcmFtZShzZXNzaW9uKToK
QEAgLTExLDcgKzEwLDcgQEAgZGVmIHN3aXRjaF90b19wYXJlbnRfZnJhbWUoc2Vzc2lvbik6CiAg
ICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1lL3BhcmVudCIuZm9ybWF0
KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNz
aW9uKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lLCBpZnJh
bWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCiAgICAgZnJh
bWVfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKICAgICBz
ZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZV9lbGVtZW50KQpAQCAtMjEsNyArMjAsMTYgQEAgZGVm
IHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKICAgICBhc3NlcnQgdmFsdWUgaXMg
Tm9uZQogCiAKLWRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF93aW5kb3cpOgorZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgdXJs
KToKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQorCisg
ICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1l
cy5odG1sIikKKworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIs
IGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHNl
c3Npb24ud2luZG93LmNsb3NlKCkKKwogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3BhcmVudF9m
cmFtZShzZXNzaW9uKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93
IikKIApAQCAtNDksMTkgKzU3LDI5IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxs
PUZhbHNlKQogCiAKLWRlZiB0ZXN0X3N0YWxlX2VsZW1lbnRfZnJvbV9pZnJhbWUoc2Vzc2lvbik6
CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFkeV90b3BfbGV2ZWwoc2Vz
c2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fcGFyZW50X2Zy
YW1lKHNlc3Npb24pCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQorCisKK2RlZiB0ZXN0X3N3aXRjaF9mcm9tX2lmcmFtZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFt
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5mb28iKSkKICAgICBmcmFt
ZV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogICAgIHNl
c3Npb24uc3dpdGNoX2ZyYW1lKGZyYW1lX2VsZW1lbnQpCi0gICAgc3RhbGVfZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKICAgICByZXN1bHQgPSBzd2l0Y2hfdG9fcGFyZW50X2Zy
YW1lKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0KQogCi0gICAgd2l0aCBweXRl
c3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6Ci0gICAgICAgIHN0YWxl
X2VsZW1lbnQudGV4dAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0
aW9uKToKKyAgICAgICAgZWxlbWVudC50ZXh0CisKIAorZGVmIHRlc3Rfc3dpdGNoX2Zyb21fdG9w
X2xldmVsKHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmZv
byIpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKLWRl
ZiB0ZXN0X3N3aXRjaF9mcm9tX3RvcF9sZXZlbChzZXNzaW9uKToKICAgICByZXN1bHQgPSBzd2l0
Y2hfdG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0KQor
CisgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiZm9vIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fd2luZG93L3N3aXRj
aC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNo
X3RvX3dpbmRvdy9zd2l0Y2gucHkKaW5kZXggOThiNGJlZTE2ZTJkLi4yOGQ0MzJhOGI1YjQgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dp
dGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fd2luZG93L3N3aXRjaC5weQpAQCAtMSwzICsxLDYg
QEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24sIE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBmcm9tIHdlYmRyaXZlci50cmFu
c3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCkBAIC01MSwzICs1NCw0NyBAQCBkZWYgdGVz
dF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIHVybCk6CiAgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCiAKICAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID09IG5ld19oYW5k
bGUKKworCitkZWYgdGVzdF9zd2l0Y2hfdG9fd2luZG93X3NldHNfdG9wX2xldmVsX2NvbnRleHQo
c2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFt
ZSgiPHA+Zm9vIikpCisKKyAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFs
bD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZSkKKyAgICBzZXNzaW9uLmZp
bmQuY3NzKCJwIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fd2luZG93
KHNlc3Npb24sIHNlc3Npb24ud2luZG93X2hhbmRsZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKKworICAgIHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKKworCitk
ZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZF9hZnRlcl90YWJfc3dpdGNoKHNlc3Npb24sIGlubGlu
ZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPSdhJz5mb28iKQorICAgIHBhcmFn
cmFwaCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisKKyAgICBzZXNzaW9uLndp
bmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3codHlwZV9oaW50PSJ0YWIiKQorCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBwYXJh
Z3JhcGguYXR0cmlidXRlKCJpZCIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFs
b2dfdHlwZSIsIFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2RlZiB0ZXN0X2ZpbmRz
X2V4aXNpbmdfdXNlcl9wcm9tcHRfYWZ0ZXJfdGFiX3N3aXRjaChzZXNzaW9uLCBkaWFsb2dfdHlw
ZSk6CisgICAgb3JpZ2luYWxfaGFuZGxlID0gc2Vzc2lvbi53aW5kb3dfaGFuZGxlCisgICAgbmV3
X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCisKKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2Ny
aXB0KCJ7fSgnZm9vJyk7Ii5mb3JtYXQoZGlhbG9nX3R5cGUpKQorCisgICAgcmVzcG9uc2UgPSBz
d2l0Y2hfdG9fd2luZG93KHNlc3Npb24sIG5ld19oYW5kbGUpCisgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24p
OgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKworICAgIHNlc3Npb24ud2luZG93LmNsb3Nl
KCkKKworICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3dpbmRvdyhzZXNzaW9uLCBvcmlnaW5hbF9o
YW5kbGUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBzZXNzaW9uLmFsZXJ0
LmFjY2VwdCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3Qv
aWZyYW1lLnB5CmluZGV4IDgzZjU1ZGVmZjc1My4uZTdmMWIwYzgwNTNkIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9z
Y3JlZW5zaG90L2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5weQpAQCAtMiw3ICsy
LDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBvcnQgcG5nX2RpbWVu
c2lvbnMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAK
IGZyb20gLiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zCiAKQEAgLTY4LDcgKzY3LDcgQEAgZGVm
IHRha2VfZWxlbWVudF9zY3JlZW5zaG90KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogICAgICkKIAog
Ci1kZWYgdGVzdF9mcmFtZV9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfZnJhbWVfZWxlbWVu
dChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgIyBDcmVhdGUgYSByZWZlcmVuY2UgZWxl
bWVudCB3aGljaCBsb29rcyBleGFjdGx5IGxpa2UgdGhlIGZyYW1lJ3MgY29udGVudAogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCJ7MH17MX0iLmZvcm1hdChSRUZFUkVOQ0VfU1RZTEUsIFJFRkVS
RU5DRV9DT05URU5UKSkKIApAQCAtOTcsNyArOTYsNyBAQCBkZWYgdGVzdF9mcmFtZV9lbGVtZW50
KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9tYWluIiwgWyIiLCAi
YWx0Il0sIGlkcz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdpbiJdKQotZGVmIHRlc3Rfc291
cmNlX29yaWdpbihzZXNzaW9uLCB1cmwsIGRvbWFpbik6CitkZWYgdGVzdF9zb3VyY2Vfb3JpZ2lu
KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBkb21haW4pOgogICAgICMgQ3JlYXRlIGEgcmVmZXJl
bmNlIGVsZW1lbnQgd2hpY2ggbG9va3MgZXhhY3RseSBsaWtlIHRoZSBpZnJhbWUKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiezB9ezF9Ii5mb3JtYXQoUkVGRVJFTkNFX1NUWUxFLCBSRUZFUkVO
Q0VfQ09OVEVOVCkpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3Nj
cmVlbnNob3Qvc2NyZWVuc2hvdC5weQppbmRleCA2ZmY2Mzk2ZWRiMmEuLjRkM2JmYjBlNWM2OCAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90
YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2Ny
ZWVuc2hvdC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGlt
cG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaW1h
Z2UgaW1wb3J0IHBuZ19kaW1lbnNpb25zCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBlbGVtZW50X2RpbWVuc2lvbnMKIApAQCAtMjAsNyAr
MTksNyBAQCBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRf
d2luZG93KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAK
IAotZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgor
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzAsNyArMjksNyBAQCBk
ZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAg
YXNzZXJ0IHBuZ19kaW1lbnNpb25zKHNjcmVlbnNob3QpID09IGVsZW1lbnRfZGltZW5zaW9ucyhz
ZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3Rf
c3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0
PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQog
ICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0zOSw3ICszOCw3IEBAIGRlZiB0ZXN0X3N0YWxlKHNl
c3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5j
ZSIpCiAKIAotZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24pOgorZGVmIHRl
c3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxl
bWVudF9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQppbmRleCA1ZDFiNDk3ZmYyYzQuLjM5ZmVm
ZTkzMjVhOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2Ny
ZWVuc2hvdC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAK
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQs
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3BuZywgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiB0YWtlX2VsZW1lbnRfc2NyZWVuc2hv
dChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE3LDcgKzE2LDcgQEAgZGVmIHRha2VfZWxlbWVu
dF9zY3JlZW5zaG90KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogICAgICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0zNSw3ICszNCw3IEBA
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQvPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9i
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAgICAgICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lm
cmFtZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFr
ZV9zY3JlZW5zaG90L2lmcmFtZS5weQppbmRleCA2MDFjMDM5ZDU2ZGUuLjgxODgxYzFkYWU3MyAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90
YWtlX3NjcmVlbnNob3QvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lmcmFtZS5weQpAQCAtMiw5ICsyLDgg
QEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNz
ZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBvcnQgcG5nX2RpbWVuc2lv
bnMKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAKLWZy
b20gLiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zLCB2aWV3cG9ydF9kaW1lbnNpb25zCitmcm9t
IC4gaW1wb3J0IHZpZXdwb3J0X2RpbWVuc2lvbnMKIAogREVGQVVMVF9DT05URU5UID0gIjxkaXYg
aWQ9J2NvbnRlbnQnPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvZGl2PiIKIApAQCAtNjMs
NyArNjIsNyBAQCBkZWYgdGFrZV9zY3JlZW5zaG90KHNlc3Npb24pOgogICAgICAgICAiR0VUIiwg
InNlc3Npb24ve3Nlc3Npb25faWR9L3NjcmVlbnNob3QiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikp
KQogCiAKLWRlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uKToKK2RlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgaWZyYW1lX2NvbnRlbnQgPSAiezB9ezF9Ii5mb3Jt
YXQoSU5ORVJfSUZSQU1FX1NUWUxFLCBERUZBVUxUX0NPTlRFTlQpCiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiezB9ezF9IiIiLmZvcm1hdChPVVRFUl9JRlJBTUVfU1RZTEUsIGlmcmFtZShp
ZnJhbWVfY29udGVudCkpKQogCkBAIC04Miw3ICs4MSw3IEBAIGRlZiB0ZXN0X2Fsd2F5c19jYXB0
dXJlc190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImRvbWFpbiIsIFsiIiwgImFsdCJdLCBpZHM9WyJzYW1lX29yaWdpbiIsICJjcm9z
c19vcmlnaW4iXSkKLWRlZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lvbiwgZG9tYWluKToKK2Rl
ZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGRvbWFpbik6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoInswfXsxfSIuZm9ybWF0KFJFRkVSRU5DRV9TVFlMRSwg
UkVGRVJFTkNFX0NPTlRFTlQpKQogCiAgICAgcmVzcG9uc2UgPSB0YWtlX3NjcmVlbnNob3Qoc2Vz
c2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvdGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5Cmlu
ZGV4IGQ2MTMwOTE5MTY3YS4uOWU3MWE2MzNjNzA4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9zY3JlZW5zaG90
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFr
ZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkKQEAgLTEsNiArMSw1IEBACiBmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfcG5nLCBhc3NlcnRfc3Vj
Y2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmltYWdlIGltcG9ydCBwbmdfZGltZW5zaW9ucwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgdmll
d3BvcnRfZGltZW5zaW9ucwogCkBAIC0xNSw3ICsxNCw3IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9ub19icm93c2luZ19jb250
ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0PiIpCiAKICAgICByZXNwb25zZSA9IHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKQpA
QCAtMjUsNyArMjQsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNs
b3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0IHBuZ19kaW1lbnNpb25zKHZhbHVlKSA9PSB2aWV3cG9y
dF9kaW1lbnNpb25zKHNlc3Npb24pCiAKIAotZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25z
KHNlc3Npb24pOgorZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogCiAgICAgcmVzcG9uc2Ug
PSB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3Jl
ZW5zaG90L3VzZXJfcHJvbXB0cy5weQppbmRleCBhZDllMzY5NTE0OGQuLjdkNTdmOGYyNzE2YiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90
YWtlX3NjcmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQpA
QCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2Vy
dHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfcG5n
LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogZGVmIHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVm
IHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKIApAQCAtMjksNyArMjgsNyBAQCBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywg
aW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0Lz4iKQogCkBAIC00NCw3ICs0Myw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439035</attachid>
            <date>2021-09-23 04:20:33 -0700</date>
            <delta_ts>2021-10-07 01:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-tests.diff</filename>
            <type>text/plain</type>
            <size>806527</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxODg1
NmNkYTNmYjguLmFiMWNlZTBlNzNhMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTIyICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViRHJpdmVyXSBV
cGRhdGUgdzNjIGFuZCBzZWxlbml1bSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHM6IFJ1biB3
aXRoIHB5dGhvbjMKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5OiBVc2Ug
YSBuZXdlciB2ZXJzaW9uIG9mIHB5dGVzdCBhbmQgaXRzIGRlcGVuZGVuY2llcyB0byBtYXRjaCB3
aGF0IHRlc3RzIGV4cGVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90
ZXN0cy9weXRlc3RfcnVubmVyLnB5OgorICAgICAgICAoY29sbGVjdCk6IFVzZSBjb250ZXh0bGli
IHRvIHJlZGlyZWN0IHN0ZG91dCB0byAvZGV2L251bGwgd2hpbGUgY29sbGVjdGluZyB0ZXN0cy4K
KyAgICAgICAgKHJ1bik6IFVzZSBFeGl0Q29kZSBuZXcgZW51bSBhZGRlZCB0byBweXRlc3QuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVu
aXVtX2V4ZWN1dG9yLnB5OgorICAgICAgICAoV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvci5fX2lu
aXRfXyk6IERvIG5vdCBlbmNvZGUgcGF0aHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5OgorICAgICAg
ICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLmNvbGxlY3RfdGVzdHMpOiBVc2UgaXRlbXMo
KSBpbnN0ZWFkIG9mIGl0ZXJpdGVtcygpIHRoYXQgZG9lc24ndCBleGlzdCBpbiBweXRob24zLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2Nf
ZXhlY3V0b3IucHk6CisgICAgICAgIChXZWJLaXREcml2ZXJTZXJ2ZXIuX19pbml0X18pOgorICAg
ICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX19pbml0X18pOgorICAgICAgICAoV2ViRHJpdmVy
VzNDRXhlY3V0b3Iuc2V0dXApOgorICAgICAgICAoV2ViRHJpdmVyVzNDRXhlY3V0b3IuX3J1bm5l
cik6CisKIDIwMjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4MjA4Mik6IFtHVEtdIFRlc3RzIHRpbWVvdXQg
d2hlbiB1c2luZyB4dmZiIGFmdGVyIHIyODIwODIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
cnVuLXdlYmRyaXZlci10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10ZXN0cwpp
bmRleCBmNDkxNzQ5NjNmOGUuLmUyNDY4NDM0NTNmYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy9ydW4td2ViZHJpdmVyLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmRyaXZlci10
ZXN0cwpAQCAtMSw0ICsxLDQgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uMwogCiAjIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgogIwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvX19pbml0X18ucHkKaW5kZXggZWI2ODBlNWE0ODljLi40N2E3OGIwYTQ4MWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weQpAQCAtMzUsNiArMzUsMTAgQEAgQXV0b0luc3Rh
bGwuc2V0X2RpcmVjdG9yeShvcy5wYXRoLmpvaW4obGlicmFyaWVzLCAnYXV0b2luc3RhbGxlZCcs
ICdweXRob24te30nLmYKIAogaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNSk6CiAgICAgQXV0
b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHlsaW50JywgVmVyc2lvbigyLCA2LCAwKSkpCisg
ICAgQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0X2FzeW5jaW8nLCBWZXJzaW9u
KDAsIDE0KSwgcHlwaV9uYW1lPSdweXRlc3QtYXN5bmNpbycpKQorICAgIEF1dG9JbnN0YWxsLnJl
Z2lzdGVyKFBhY2thZ2UoJ3B5dGVzdF90aW1lb3V0JywgVmVyc2lvbigxLCA0LCAyKSwgcHlwaV9u
YW1lPSdweXRlc3QtdGltZW91dCcpKQorICAgIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2Uo
J3B5dGVzdCcsIFZlcnNpb24oNiwgMSwgMiksIGltcGxpY2l0X2RlcHM9WydweXRlc3RfYXN5bmNp
bycsICdweXRlc3RfdGltZW91dCddKSkKKyAgICBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCd3ZWJzb2NrZXRzJywgVmVyc2lvbig4LCAxKSkpCiBlbGlmIHN5cy52ZXJzaW9uX2luZm8gPj0g
KDIsIDcpIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToKICAgICBBdXRvSW5zdGFsbC5yZWdp
c3RlcihQYWNrYWdlKCdweWxpbnQnLCBWZXJzaW9uKDAsIDI4LCAwKSkpCiAgICAgQXV0b0luc3Rh
bGwucmVnaXN0ZXIoUGFja2FnZSgnbG9naWxhYi5jb21tb24nLCBWZXJzaW9uKDAsIDU4LCAxKSwg
cHlwaV9uYW1lPSdsb2dpbGFiLWNvbW1vbicsIGFsaWFzZXM9Wydsb2dpbGFiJ10pKQpAQCAtNTMs
MTYgKzU3LDE0IEBAIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2Z1bmNzaWdzJywgVmVy
c2lvbigxLCAwLCAyKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdpbXBvcnRsaWJf
bWV0YWRhdGEnLCBWZXJzaW9uKDEsIDcsIDApKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2th
Z2UoJ2dlbnNoaScsIFZlcnNpb24oMCwgNywgMyksIHB5cGlfbmFtZT0nR2Vuc2hpJykpCiBBdXRv
SW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdodG1sNWxpYicsIFZlcnNpb24oMSwgMSkpKQorQXV0
b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnaW5pY29uZmlnJywgVmVyc2lvbigxLCAxLCAxKSkp
CiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtZWNoYW5pemUnLCBWZXJzaW9uKDAsIDQs
IDUpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21vcmVfaXRlcnRvb2xzJywgVmVy
c2lvbig0LCAyLCAwKSwgcHlwaV9uYW1lPSdtb3JlLWl0ZXJ0b29scycpKQotQXV0b0luc3RhbGwu
cmVnaXN0ZXIoUGFja2FnZSgnbW96cHJvY2VzcycsIFZlcnNpb24oMSwgMiwgMCkpKQotQXV0b0lu
c3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW96bG9nJywgVmVyc2lvbig2LCAxKSkpCitBdXRvSW5z
dGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb3pwcm9jZXNzJywgVmVyc2lvbigxLCAzLCAwKSkpCitB
dXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb3psb2cnLCBWZXJzaW9uKDcsIDEsIDApLCB3
aGVlbD1UcnVlKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21venRlcm0nLCBWZXJz
aW9uKDEsIDAsIDApKSkKLUF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3BsdWdneScsIFZl
cnNpb24oMCwgNSwgMikpKQorQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncGx1Z2d5Jywg
VmVyc2lvbigwLCAxMywgMSkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHknLCBW
ZXJzaW9uKDEsIDUsIDIpKSkKLUF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3B5dGVzdF90
aW1lb3V0JywgVmVyc2lvbigxLCA0LCAyKSwgcHlwaV9uYW1lPSdweXRlc3QtdGltZW91dCcpKQot
IyBQeXRlc3QgaGVsZCB0byAzLnggZHVlIHRvIFdQVCB3ZWJkcml2ZXIgY29tcGF0aWJpbGl0eQot
QXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVyc2lvbigzLCA2LCAyKSwg
aW1wbGljaXRfZGVwcz1bJ3B5dGVzdF90aW1lb3V0J10pKQogQXV0b0luc3RhbGwucmVnaXN0ZXIo
UGFja2FnZSgncHljb2Rlc3R5bGUnLCBWZXJzaW9uKDIsIDUsIDApKSkKIEF1dG9JbnN0YWxsLnJl
Z2lzdGVyKFBhY2thZ2UoJ3NjYW5kaXInLCBWZXJzaW9uKDEsIDEwLCAwKSkpCiBBdXRvSW5zdGFs
bC5yZWdpc3RlcihQYWNrYWdlKCdzb3Vwc2lldmUnLCBWZXJzaW9uKDEsIDksIDYpKSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5u
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRlc3RfcnVu
bmVyLnB5CmluZGV4IDBlYzY1Zjk0YmZhYy4uZjFlNDE0ODUyMmIxIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy9weXRlc3RfcnVubmVyLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkK
QEAgLTIwLDYgKzIwLDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9y
dCBjb250ZXh0bGliCiBpbXBvcnQgZXJybm8KIGltcG9ydCBvcwogaW1wb3J0IHNodXRpbApAQCAt
MjksNyArMzAsNyBAQCBpbXBvcnQgdGVtcGZpbGUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi53ZWJr
aXRfZmluZGVyIGltcG9ydCBXZWJLaXRGaW5kZXIKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVz
dC5tYWluIGltcG9ydCBFWElUX0lOVEVSTkFMRVJST1IKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1w
b3J0IEV4aXRDb2RlCiAKIAogY2xhc3MgVGVtcG9yYXJ5RGlyZWN0b3J5KG9iamVjdCk6CkBAIC0x
NjgsMTYgKzE2OSwxNCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTWFya2VyKG9iamVjdCk6CiAK
IGRlZiBjb2xsZWN0KGRpcmVjdG9yeSwgYXJncywgaWdub3JlX3BhcmFtPU5vbmUpOgogICAgIGNv
bGxlY3RfcmVjb3JkZXIgPSBDb2xsZWN0UmVjb3JkZXIoaWdub3JlX3BhcmFtKQotICAgIHN0ZG91
dCA9IHN5cy5zdGRvdXQKLSAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3diJykgYXMgZGV2bnVs
bDoKLSAgICAgICAgc3lzLnN0ZG91dCA9IGRldm51bGwKLSAgICAgICAgd2l0aCBUZW1wb3JhcnlE
aXJlY3RvcnkoKSBhcyBjYWNoZV9kaXJlY3Rvcnk6Ci0gICAgICAgICAgICBjbWQgPSBbJy0tY29s
bGVjdC1vbmx5JywKLSAgICAgICAgICAgICAgICAgICAnLS1iYXNldGVtcD0lcycgJSBjYWNoZV9k
aXJlY3RvcnldCi0gICAgICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCi0gICAgICAgICAgICBjbWQu
YXBwZW5kKGRpcmVjdG9yeSkKLSAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1Z2lucz1b
Y29sbGVjdF9yZWNvcmRlcl0pCi0gICAgc3lzLnN0ZG91dCA9IHN0ZG91dAorICAgIHdpdGggb3Bl
bihvcy5kZXZudWxsLCAndycpIGFzIGY6CisgICAgICAgIHdpdGggY29udGV4dGxpYi5yZWRpcmVj
dF9zdGRvdXQoZik6CisgICAgICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNh
Y2hlX2RpcmVjdG9yeToKKyAgICAgICAgICAgICAgICBjbWQgPSBbJy0tY29sbGVjdC1vbmx5JywK
KyAgICAgICAgICAgICAgICAgICAgICAgJy0tYmFzZXRlbXAnLCBjYWNoZV9kaXJlY3RvcnldCisg
ICAgICAgICAgICAgICAgY21kLmV4dGVuZChhcmdzKQorICAgICAgICAgICAgICAgIGNtZC5hcHBl
bmQoZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIHB5dGVzdC5tYWluKGNtZCwgcGx1Z2lucz1b
Y29sbGVjdF9yZWNvcmRlcl0pCiAgICAgcmV0dXJuIGNvbGxlY3RfcmVjb3JkZXIudGVzdHMKIAog
CkBAIC0xOTIsMTYgKzE5MSwxNiBAQCBkZWYgcnVuKHBhdGgsIGFyZ3MsIHRpbWVvdXQsIGVudiwg
ZXhwZWN0YXRpb25zLCBpZ25vcmVfcGFyYW09Tm9uZSk6CiAgICAgd2l0aCBUZW1wb3JhcnlEaXJl
Y3RvcnkoKSBhcyBjYWNoZV9kaXJlY3Rvcnk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGNt
ZCA9IFsnLXZ2JywKLSAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJlPW5vJywKLSAgICAgICAg
ICAgICAgICAgICAnLS1iYXNldGVtcD0lcycgJSBjYWNoZV9kaXJlY3RvcnksCisgICAgICAgICAg
ICAgICAgICAgJy0tY2FwdHVyZScsICdubycsCisgICAgICAgICAgICAgICAgICAgJy0tYmFzZXRl
bXAnLCBjYWNoZV9kaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgJy0tc2hvd2xvY2Fscycs
Ci0gICAgICAgICAgICAgICAgICAgJy0tdGltZW91dD0lcycgJSB0aW1lb3V0LAorICAgICAgICAg
ICAgICAgICAgICctLXRpbWVvdXQnLCBzdHIodGltZW91dCksCiAgICAgICAgICAgICAgICAgICAg
Jy1wJywgJ25vOmNhY2hlcHJvdmlkZXInXQogICAgICAgICAgICAgY21kLmV4dGVuZChhcmdzKQog
ICAgICAgICAgICAgY21kLmFwcGVuZChwYXRoKQogICAgICAgICAgICAgcmVzdWx0ID0gcHl0ZXN0
Lm1haW4oY21kLCBwbHVnaW5zPVtoYXJuZXNzX3JlY29yZGVyLCBzdWJ0ZXN0c19yZWNvcmRlciwg
ZXhwZWN0YXRpb25zX21hcmtlcl0pCiAKLSAgICAgICAgICAgIGlmIHJlc3VsdCA9PSBFWElUX0lO
VEVSTkFMRVJST1I6CisgICAgICAgICAgICBpZiByZXN1bHQgPT0gRXhpdENvZGUuSU5URVJOQUxf
RVJST1I6CiAgICAgICAgICAgICAgICAgaGFybmVzc19yZWNvcmRlci5vdXRjb21lID0gKCdFUlJP
UicsIE5vbmUpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIGhh
cm5lc3NfcmVjb3JkZXIub3V0Y29tZSA9ICgnRVJST1InLCBzdHIoZSkpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1f
ZXhlY3V0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJk
cml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHkKaW5kZXggZmJkNzYyNmY1NTllLi41ZTU3NDgzZGE2
MjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dl
YmRyaXZlcl9zZWxlbml1bV9leGVjdXRvci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHkKQEAgLTQwLDgg
KzQwLDggQEAgY2xhc3MgV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvcihvYmplY3QpOgogICAgICAg
ICBzZWxmLl9lbnYgPSBlbnYKICAgICAgICAgc2VsZi5fZW52LnVwZGF0ZShkcml2ZXIuYnJvd3Nl
cl9lbnYoKSkKIAotICAgICAgICBzZWxmLl9hcmdzID0gWyctLWRyaXZlcj0lcycgJSBzZWxmLl9k
cml2ZXJfbmFtZSwgJy0tZHJpdmVyLWJpbmFyeT0lcycgJSBkcml2ZXIuYmluYXJ5X3BhdGgoKS5l
bmNvZGUoKV0KLSAgICAgICAgYnJvd3Nlcl9wYXRoID0gZHJpdmVyLmJyb3dzZXJfcGF0aCgpLmVu
Y29kZSgpCisgICAgICAgIHNlbGYuX2FyZ3MgPSBbJy0tZHJpdmVyPSVzJyAlIHNlbGYuX2RyaXZl
cl9uYW1lLCAnLS1kcml2ZXItYmluYXJ5PSVzJyAlIGRyaXZlci5iaW5hcnlfcGF0aCgpXQorICAg
ICAgICBicm93c2VyX3BhdGggPSBkcml2ZXIuYnJvd3Nlcl9wYXRoKCkKICAgICAgICAgaWYgYnJv
d3Nlcl9wYXRoOgogICAgICAgICAgICAgc2VsZi5fYXJncy5leHRlbmQoWyctLWJyb3dzZXItYmlu
YXJ5PSVzJyAlIGJyb3dzZXJfcGF0aF0pCiAgICAgICAgIGJyb3dzZXJfYXJncyA9IGRyaXZlci5i
cm93c2VyX2FyZ3MoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5CmluZGV4IDY1YzA0ZTVi
ZjMzMC4uZmJjZDJmZDdjNDY4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dl
YmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5CkBAIC0x
NjUsNSArMTY1LDUgQEAgY2xhc3MgV2ViRHJpdmVyVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAg
ICBpZiBkaXJlY3RvcnkgYW5kIG5vdCBvcy5wYXRoLmV4aXN0cyhkaXJlY3RvcnkpOgogICAgICAg
ICAgICAgb3MubWFrZWRpcnMoZGlyZWN0b3J5KQogCi0gICAgICAgIHdpdGggb3BlbihvdXRwdXRf
cGF0aCwgJ3diJykgYXMgZnA6CisgICAgICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwgJ3cnKSBh
cyBmcDoKICAgICAgICAgICAgIGpzb24uZHVtcChqc29uX3Jlc3VsdHMsIGZwKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3Rf
cnVubmVyX3NlbGVuaXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVz
dHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5CmluZGV4IGIwYmVlYTBmOTE0Mi4u
MDY1MTJlNGZkNzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZl
cl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVu
aXVtLnB5CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RSdW5uZXJTZWxlbml1
bShvYmplY3QpOgogICAgICAgICAjIENvbGxlY3RlZCB0ZXN0cyBhcmUgcmVsYXRpdmUgdG8gdGVz
dCBkaXJlY3RvcnkuCiAgICAgICAgIGJhc2VfZGlyID0gb3MucGF0aC5qb2luKHNlbGYuX3Rlc3Rz
X2Rpciwgb3MucGF0aC5kaXJuYW1lKHJlbGF0aXZlX3Rlc3RzX2RpcikpCiAgICAgICAgIGNvbGxl
Y3RlZF90ZXN0cyA9IHt9Ci0gICAgICAgIGZvciB0ZXN0LCBzdWJ0ZXN0cyBpbiBleGVjdXRvci5j
b2xsZWN0KG9zLnBhdGguam9pbihzZWxmLl90ZXN0c19kaXIsIHJlbGF0aXZlX3Rlc3RzX2Rpcikp
Lml0ZXJpdGVtcygpOgorICAgICAgICBmb3IgdGVzdCwgc3VidGVzdHMgaW4gZXhlY3V0b3IuY29s
bGVjdChvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyLCByZWxhdGl2ZV90ZXN0c19kaXIpKS5p
dGVtcygpOgogICAgICAgICAgICAgY29sbGVjdGVkX3Rlc3RzW29zLnBhdGguam9pbihiYXNlX2Rp
ciwgdGVzdCldID0gc3VidGVzdHMKICAgICAgICAgc2VsZW5pdW1fdGVzdHMgPSBbXQogICAgICAg
ICBpZiBub3QgdGVzdHM6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRy
aXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVjdXRvci5weQppbmRleCBjYzJk
MDc1YmMwYWYuLjE4NDNkZTU1Mzc3OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVjdXRvci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5
CkBAIC0xMTUsOCArMTE1LDggQEAgY2xhc3MgV2ViS2l0RHJpdmVyU2VydmVyKFdlYkRyaXZlclNl
cnZlcik6CiAgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAnLycKICAgICB0ZXN0X2VudiA9IE5vbmUK
IAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCBwb3J0PU5vbmUs
IGJhc2VfcGF0aD0nJywgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNlX3BhdGgs
IGFyZ3M9YXJncywgZW52PXNlbGYudGVzdF9lbnYpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5PU5vbmUsIHBvcnQ9Tm9uZSwgYmFzZV9wYXRoPScnLCBlbnY9Tm9uZSwgYXJn
cz1Ob25lKToKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNlX3BhdGgsIGVudj1zZWxmLnRlc3RfZW52
LCBhcmdzPWFyZ3MpCiAKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1
cm4gW3NlbGYuYmluYXJ5LCAnLS1wb3J0PSVzJyAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2Fy
Z3MKQEAgLTEzNSw4ICsxMzUsOCBAQCBjbGFzcyBXZWJEcml2ZXJXM0NFeGVjdXRvcihXZHNwZWNF
eGVjdXRvcik6CiAgICAgICAgIHNlcnZlcl9jb25maWcgPSB7J2Jyb3dzZXJfaG9zdCc6IHNlcnZl
ci5ob3N0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvbWFpbnMnOiB7Jyc6IHsnJzog
c2VydmVyLmhvc3QoKX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fs
dCc6eyAnJzogJzEyNy4wLjAuMSd9fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydHMn
OiB7J2h0dHAnOiBbc3RyKHNlcnZlci5odHRwX3BvcnQoKSldLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnaHR0cHMnOiBbc3RyKHNlcnZlci5odHRwc19wb3J0KCkpXX0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnRzJzogeydodHRwJzogW3NlcnZlci5odHRwX3Bv
cnQoKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwcyc6IFtzZXJ2
ZXIuaHR0cHNfcG9ydCgpXX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvY19yb290Jzog
c2VydmVyLmRvY3VtZW50X3Jvb3QoKX0KICAgICAgICAgc2VsZi5ydW5uZXIgPSBUZXN0UnVubmVy
KCkKICAgICAgICAgV2RzcGVjRXhlY3V0b3IuX19pbml0X18oc2VsZiwgc2VsZi5ydW5uZXIubG9n
Z2VyLCBkcml2ZXIuYnJvd3Nlcl9uYW1lKCksIHNlcnZlcl9jb25maWcsIGRyaXZlci5iaW5hcnlf
cGF0aCgpLCBOb25lLCBjYXBhYmlsaXRpZXM9ZHJpdmVyLmNhcGFiaWxpdGllcygpKQpAQCAtMTQ3
LDEzICsxNDcsMTMgQEAgY2xhc3MgV2ViRHJpdmVyVzNDRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3Ip
OgogICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUgPSBRdWV1ZSgpCiAKICAgICBkZWYgc2V0dXAo
c2VsZik6Ci0gICAgICAgIHNlbGYucHJvdG9jb2wuc2V0dXAoc2VsZi5ydW5uZXIpCisgICAgICAg
IHN1cGVyKFdlYkRyaXZlclczQ0V4ZWN1dG9yLCBzZWxmKS5zZXR1cChzZWxmLnJ1bm5lcikKICAg
ICAgICAgYXJncyA9IChzZWxmLl90ZXN0X3F1ZXVlLAogICAgICAgICAgICAgICAgIHNlbGYuX3Jl
c3VsdF9xdWV1ZSwKICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnNlc3Npb25fY29uZmln
Wydob3N0J10sCiAgICAgICAgICAgICAgICAgc3RyKHNlbGYucHJvdG9jb2wuc2Vzc2lvbl9jb25m
aWdbJ3BvcnQnXSksCiAgICAgICAgICAgICAgICAganNvbi5kdW1wcyhzZWxmLnByb3RvY29sLnNl
c3Npb25fY29uZmlnWydjYXBhYmlsaXRpZXMnXSksCi0gICAgICAgICAgICAgICAganNvbi5kdW1w
cyhzZWxmLnNlcnZlcl9jb25maWcpLAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2NvbmZp
ZywKICAgICAgICAgICAgICAgICBzZWxmLl90aW1lb3V0LAogICAgICAgICAgICAgICAgIHNlbGYu
X2V4cGVjdGF0aW9ucykKICAgICAgICAgc2VsZi5fcHJvY2VzcyA9IFByb2Nlc3ModGFyZ2V0PVdl
YkRyaXZlclczQ0V4ZWN1dG9yLl9ydW5uZXIsIGFyZ3M9YXJncykKQEAgLTE3NCwxMyArMTc0LDE4
IEBAIGNsYXNzIFdlYkRyaXZlclczQ0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKICAgICAgICAg
ICAgIGlmIHRlc3QgPT0gJ1RFQVJET1dOJzoKICAgICAgICAgICAgICAgICBicmVhawogCi0gICAg
ICAgICAgICBlbnYgPSB7J1dEX0hPU1QnOiBob3N0LAotICAgICAgICAgICAgICAgICAgICdXRF9Q
T1JUJzogcG9ydCwKLSAgICAgICAgICAgICAgICAgICAnV0RfQ0FQQUJJTElUSUVTJzogY2FwYWJp
bGl0aWVzLAotICAgICAgICAgICAgICAgICAgICdXRF9TRVJWRVJfQ09ORklHJzogc2VydmVyX2Nv
bmZpZ30KLSAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJpdmVyU2VydmVyLnRlc3RfZW52
KQotICAgICAgICAgICAgYXJncyA9IFsnLS1zdHJpY3QnLCAnLXAnLCAnbm86bW96bG9nJ10KLSAg
ICAgICAgICAgIHJlc3VsdF9xdWV1ZS5wdXQocHl0ZXN0X3J1bm5lci5ydW4odGVzdCwgYXJncywg
dGltZW91dCwgZW52LCBleHBlY3RhdGlvbnMpKQorICAgICAgICAgICAgd2l0aCBweXRlc3RfcnVu
bmVyLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9yeToKKyAgICAgICAgICAg
ICAgICBzZXJ2ZXJfY29uZmlnX3BhdGggPSBvcy5wYXRoLmpvaW4oY2FjaGVfZGlyZWN0b3J5LCAn
d2Rfc2VydmVyX2NvbmZpZy5qc29uJykKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4oc2VydmVy
X2NvbmZpZ19wYXRoLCAndycpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgIGpzb24uZHVtcChz
ZXJ2ZXJfY29uZmlnLCBmKQorCisgICAgICAgICAgICAgICAgZW52ID0geydXRF9IT1NUJzogaG9z
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ1dEX1BPUlQnOiBwb3J0LAorICAgICAgICAgICAg
ICAgICAgICAgICAnV0RfQ0FQQUJJTElUSUVTJzogY2FwYWJpbGl0aWVzLAorICAgICAgICAgICAg
ICAgICAgICAgICAnV0RfU0VSVkVSX0NPTkZJR19GSUxFJzogc2VydmVyX2NvbmZpZ19wYXRofQor
ICAgICAgICAgICAgICAgIGVudi51cGRhdGUoV2ViS2l0RHJpdmVyU2VydmVyLnRlc3RfZW52KQor
ICAgICAgICAgICAgICAgIGFyZ3MgPSBbJy0tc3RyaWN0JywgJy1wJywgJ25vOm1vemxvZyddCisg
ICAgICAgICAgICAgICAgcmVzdWx0X3F1ZXVlLnB1dChweXRlc3RfcnVubmVyLnJ1bih0ZXN0LCBh
cmdzLCB0aW1lb3V0LCBlbnYsIGV4cGVjdGF0aW9ucykpCiAKICAgICBkZWYgcnVuKHNlbGYsIHRl
c3QpOgogICAgICAgICBzZWxmLl90ZXN0X3F1ZXVlLnB1dCh0ZXN0KQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvQ2hhbmdlTG9nIGIvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkw
MmI5MmJmZWY5Yi4uNmQ0NTgwOGY1MGVmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjEtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtXZWJEcml2ZXJdIFVwZGF0ZSB3M2MgYW5kIHNlbGVuaXVtIHRlc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA1NTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWw6CisgICAgICAgICogaW1wb3J0
ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbjoKKyAgICAgICAgKiBpbXBvcnRlZC9zZWxlbml1bS9w
eS86CisgICAgICAgICogaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb246CisgICAgICAgICogaW1w
b3J0ZWQvdzNjL3Rvb2xzLzoKKyAgICAgICAgKiBpbXBvcnRlZC93M2Mvd2ViZHJpdmVyLzoKKwog
MjAyMS0wOC0yMiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
V1BFXVtXZWJEcml2ZXJdIEJhc2ljIGZ1bGxzY3JlZW4gc3VwcG9ydCBmb3IgdGhlIGhlYWRsZXNz
IGJhY2tlbmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNv
biBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgppbmRleCA0NTY2N2Y5NzJm
MDMuLjk0MjlhNDIyMGNiNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvVGVzdEV4cGVjdGF0
aW9ucy5qc29uCisrKyBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgpAQCAt
MjkxLDYgKzI5MSwzMCBAQAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jy
b3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7
InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW2Fi
b3V0XSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9fQorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9zY2hlbWVbYmxvYl0iOiB7Cisg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW2RhdGFdIjogeworICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMjMwNjE2In19CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInRlc3RfY29v
a2llX3Vuc3VwcG9ydGVkX3NjaGVtZVtmaWxlXSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIz
MDYxNiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91bnN1cHBv
cnRlZF9zY2hlbWVbZnRwXSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9fQorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9zY2hlbWVb
amF2YXNjcmlwdF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW3dlYnNv
Y2tldF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6
IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW3NlY3VyZSB3ZWJz
b2NrZXRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9LApAQCAtNzQ0LDcgKzc2OCwxMCBAQAogICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMTgwNjQ1In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fdG9w
X2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KKyAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAgICAgICAgICAgICJ3cGUiOiB7
InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifSwKKyAgICAg
ICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0
Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8yMTI5NTAifX0KQEAgLTc2Myw3ICs3OTAsMTAgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NsaWNrLnB5IjogewogICAgICAgICAic3VidGVzdHMi
OiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsK
KyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0
dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29u
dGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtODAwLDEzICs4MzAs
MTMgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudC9maW5kLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7Ci0gICAgICAgICAgICAidGVz
dF9maW5kX2VsZW1lbnRfbGlua190ZXh0WzxhIGhyZWY9Iz5saW5rPGJyPnRleHQ8L2E+LWxpbmtc
bnRleHRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBo
cmVmPSM+bGluazxicj50ZXh0PC9hPi1saW5rXFxudGV4dF0iOiB7CiAgICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5kX2Vs
ZW1lbnRfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2Fz
ZSc+bGluayB0ZXh0PC9hPi1MSU5LIFRFWFRdIjogewogICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0
OTY0In19CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X3Bh
cnRpYWxfbGlua190ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xudF0i
OiB7CisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHRbPGEg
aHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXFxudF0iOiB7CiAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtp
dC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5k
X2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9y
bTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4tTElOS10iOiB7CkBAIC04MjIsMTMg
Kzg1MiwxMyBAQAogICAgIH0sCiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmlu
ZF9lbGVtZW50cy9maW5kLnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7Ci0gICAgICAgICAg
ICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9h
Pi1saW5rXG50ZXh0XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfbGlua190
ZXh0WzxhIGhyZWY9Iz5saW5rPGJyPnRleHQ8L2E+LWxpbmtcXG50ZXh0XSI6IHsKICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0
X2ZpbmRfZWxlbWVudHNfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06
IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPi1MSU5LIFRFWFRdIjogewogICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfZmluZF9l
bGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8
L2E+LWtcbnRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xp
bmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8L2E+LWtcXG50XSI6IHsKICAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jIHN0eWxlPSd0
ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4tTElOS10iOiB7
CkBAIC04NDQsMTMgKzg3NCwxMyBAQAogICAgIH0sCiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5weSI6IHsKICAgICAgICAg
InN1YnRlc3RzIjogewotICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHRb
PGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4tbGlua1xudGV4dF0iOiB7CisgICAgICAgICAgICAi
dGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPi1s
aW5rXFxudGV4dF0iOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVm
PSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4tTElOSyBU
RVhUXSI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRbPGEgaHJl
Zj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXG50XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0
X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jPnBhcnRpYWwgbGluazxi
cj50ZXh0PC9hPi1rXFxudF0iOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlu
a190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlh
bCBsaW5rIHRleHQ8L2E+LUxJTktdIjogewpAQCAtODY5LDEzICs4OTksMTMgQEAKICAgICB9LAog
ICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1l
bnQvZmluZC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewotICAgICAgICAgICAgInRlc3Rf
ZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPi1saW5rXG50
ZXh0XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3RleHRbPGEgaHJl
Zj0jPmxpbms8YnI+dGV4dDwvYT4tbGlua1xcbnRleHRdIjogewogICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3RfZmluZF9lbGVt
ZW50X2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2Un
PmxpbmsgdGV4dDwvYT4tTElOSyBURVhUXSI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2
NCJ9fQogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0
aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8L2E+LWtcbnRdIjog
eworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhy
ZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xcbnRdIjogewogICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3RfZmluZF9l
bGVtZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06
IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJTktdIjogewpAQCAtOTM1LDcgKzk2
NSwxMCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9r
ZXlzL3NlbmRfa2V5cy5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewogICAgICAgICAgICAg
InRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8y
MTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAgICAgICAg
ICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5
NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjog
IndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTExNTIsNyArMTE4NSwxMCBAQAogICAgICJpbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0ZS9nZXQucHkiOiB7
CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2lu
Z19jb250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0
dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CisgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn0sCisgICAgICAgICAgICAg
ICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8y
MzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAi
dGVzdF9ub19icm93c2luZ19jb250ZXh0IjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUw
In19CkBAIC0xMTYzLDcgKzExOTksMTAgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMi
OiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsK
KyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0
dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29u
dGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTE3NCw3ICsxMjEz
LDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJv
cGVydHkvZ2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVz
dF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1
MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAg
IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9
LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTE5Niw3ICsxMjM4LDEwIEBACiAgICAgImltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5IjogewogICAg
ICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29u
dGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJG
QUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAg
ICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEy
In0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rf
bm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7Indw
ZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpA
QCAtMTIxOCw3ICsxMjYzLDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfdGV4dC9nZXQucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAg
ICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAg
ICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJ
TCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0Ijogewog
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzY4LDcgKzE0MTYsMTAgQEAKICAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzIwNTkyMyJ9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2Iv
MjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAg
ICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEy
OTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0IjogewogICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMzc5LDcgKzE0MzAsMTAgQEAKICAgICAiaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3NlbGVjdGVkLnB5
IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJv
d3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsi
c3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAg
ICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIx
Mjk1MCJ9fQpAQCAtMTQ0Miw3ICsxNDk2LDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0
cyI6IHsKICAgICAgICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMjA1OTk0In19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eworICAgICAgICAgICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMjA1OTk0In0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0sCkBAIC0xNDk1LDUgKzE1
NTIsMjkgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL21pbmlt
aXplX3dpbmRvdy9taW5pbWl6ZS5weSIgOiB7CiAgICAgICAgICJleHBlY3RlZCI6IHsgIndwZSI6
IHsgInN0YXR1cyI6IFsiU0tJUCJdIH0gfQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weSI6IHsKKyAg
ICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Ijog
eworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weSI6IHsK
KyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L3VzZXJfcHJvbXB0cy5w
eSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvZ2V0LnB5IjogeworICAg
ICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkiOiB7CisgICAg
ICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJdLCAiYnVnIjogIndl
YmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICB9LAorICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2JpZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weSI6IHsKKyAgICAgICAgImV4cGVjdGVk
IjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIz
MDYxNSJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nl
c3Npb24vd2Vic29ja2V0X3VybC5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjog
eyAic3RhdHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNSJ9fQogICAg
IH0KIH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sCmluZGV4IGZjYWMyNTJl
ODk5YS4uMTY5MGFkMDdkZDc5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0
bWwKQEAgLTg2LDcgKzg2LDcgQEAKICAgPC9kaXY+CiAKIDwvZGl2PgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKKwogPGRpdiBpZD0iZm9ybWFnZWRkb24iPgogICAgIDxmb3JtIGFj
dGlvbj0iIyI+CiAgICAgICAgIEtleSBVcDogPGlucHV0IHR5cGU9InRleHQiIGlkPSJrZXlVcCIg
b25rZXl1cD0iamF2YXNjcmlwdDp1cGRhdGVDb250ZW50KHRoaXMpIi8+PGJyLz4KQEAgLTE1MSwx
NSArMTUxLDE1IEBACiAgICAgICAgICAgIC8+CiAKICAgICA8aW5wdXQgaWQ9ImNoYW5nZWFibGUi
IG5hbWU9ImNoYW5nZWFibGUiIG9uZm9jdXM9ImFwcGVuZE1lc3NhZ2UoJ2ZvY3VzJykiIG9uY2hh
bmdlPSJhcHBlbmRNZXNzYWdlKCdjaGFuZ2UnKSIgb25ibHVyPSJhcHBlbmRNZXNzYWdlKCdibHVy
JykiLz4KLSAgICAgICAgICAgCi0gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJwbGFpbkJ1
dHRvbiIgCisKKyAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InBsYWluQnV0dG9uIgogICAg
IAkJb25mb2N1cz0iYXBwZW5kTWVzc2FnZSgnZm9jdXMnKSIKICAgICAgICAgICAgCW9ua2V5ZG93
bj0iYXBwZW5kTWVzc2FnZSgna2V5ZG93bicpIgogICAgICAgICAgICAJb25rZXlwcmVzcz0iYXBw
ZW5kTWVzc2FnZSgna2V5cHJlc3MnKSIKICAgICAgICAgICAgCW9ua2V5dXA9ImFwcGVuZE1lc3Nh
Z2UoJ2tleXVwJykiCiAgICAgICAgICAgIAlvbmJsdXI9ImFwcGVuZE1lc3NhZ2UoJ2JsdXInKSIK
ICAgICAgICAgICAgCW9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NsaWNrJykiCi0gICAgICAgICAg
IAlvbm1vdXNlZG93bj0iYXBwZW5kTWVzc2FnZSgnbW91c2Vkb3duICcpIiAKKyAgICAgICAgICAg
CW9ubW91c2Vkb3duPSJhcHBlbmRNZXNzYWdlKCdtb3VzZWRvd24gJykiCiAgICAgICAgICAgIAlv
bm1vdXNldXA9ImFwcGVuZE1lc3NhZ2UoJ21vdXNldXAgJykiCiAgICAgICAgICAgICBvbm1vdXNl
b3Zlcj0icmVnaXN0ZXIoJ21vdXNlb3ZlciAnKSIKICAgICAgICAgICAgIG9ubW91c2Vtb3ZlPSJy
ZWdpc3RlcignbW91c2Vtb3ZlICcpIgpAQCAtMTczLDcgKzE3Myw3IEBACiAgICAgPGJ1dHRvbiB0
eXBlPSJidXR0b24iIG9uY2xpY2s9InZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3N3aXRjaEZvY3VzJyk7IHZhciBjbGlja0V2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQo
J01vdXNlRXZlbnRzJyk7IGNsaWNrRXZlbnQuaW5pdE1vdXNlRXZlbnQoJ2NsaWNrJywgdHJ1ZSwg
dHJ1ZSwgbnVsbCwgMCwgMCwgMCwgMCwgMCxmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwg
ZWxlbWVudCk7ZWxlbWVudC5kaXNwYXRjaEV2ZW50KGNsaWNrRXZlbnQpOyI+RG8gbWFnaWM8L2J1
dHRvbj48YnIvPgogICAgIDxsYWJlbCBpZD0ibGFiZWxGb3JDaGVja2JveCIgZm9yPSJsYWJlbGVk
Q2hlY2tib3giIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2xhYmVsY2xpY2snKSI+VG9nZ2xlIGNo
ZWNrYm94PC9sYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJsYWJlbGVkQ2hlY2tib3gi
IG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NoYm94Y2xpY2snKSIvPgogICA8L2Zvcm0+Ci0gIAor
CiAgIDxmb3JtIGFjdGlvbj0iamF2YXNjcmlwdFBhZ2UuaHRtbCIgaWQ9InN1Ym1pdExpc3Rlbmlu
Z0Zvcm0iIG9uc3VibWl0PSJhcHBlbmRNZXNzYWdlKCdmb3JtLW9uc3VibWl0ICcpOyByZXR1cm4g
ZmFsc2U7Ij4KICAgICA8cD4KICAgICAgIDxpbnB1dCBpZD0ic3VibWl0TGlzdGVuaW5nRm9ybS10
ZXh0IiB0eXBlPSJ0ZXh0IiBvbnN1Ym1pdD0iYXBwZW5kTWVzc2FnZSgndGV4dC1vbnN1Ym1pdCAn
KSIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgndGV4dC1vbmNsaWNrICcpOyIgLz4KQEAgLTE5OCw3
ICsxOTgsNyBAQAogICAgICAgICA8YSBocmVmPSIjIiBpZD0iaGlkZGVubGluayI+b2s8L2E+CiAg
ICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KLSAgICAKKwogICAgIDxkaXYgc3R5bGU9InZpc2liaWxp
dHk6IGhpZGRlbjsiPgogICAgICAgPHNwYW4+CiAgICAgICAgIDxpbnB1dCBpZD0idW5jbGlja2Fi
bGUiIC8+CkBAIC0yNjUsNyArMjY1LDcgQEAKIAogPGEgaWQ9Im5ld193aW5kb3ciIG9ubW91c2V1
cD0id2luZG93Lm9wZW4oJ2Nsb3NlYWJsZV93aW5kb3cuaHRtbCcsICdjbG9zZV9tZScpIiBocmVm
PSIjIj5DbGljayBtZSB0byBvcGVuIGEgbmV3IHdpbmRvdzwvYT4KIAotPGEgaWQ9InRocm93aW5n
LW1vdXNlb3ZlciIgb25tb3VzZW92ZXI9InRocm93IG5ldyBFcnJvcigpIiBocmVmPSIjdGhyb3dp
bmctbW91c2VvdmVyIj5Nb3VzZSBvdmVyIG1lIHdpbGwgdGhyb3cgYSBKUyBlcnJvcjwvYT4KKzxh
IGlkPSJ0aHJvd2luZy1tb3VzZW92ZXIiIG9ubW91c2VvdmVyPSJ0aHJvdyBuZXcgRXJyb3IoJ0kg
bGlrZSBjaGVlc2UnKSIgaHJlZj0iI3Rocm93aW5nLW1vdXNlb3ZlciI+TW91c2Ugb3ZlciBtZSB3
aWxsIHRocm93IGEgSlMgZXJyb3I8L2E+CiAKIDxkaXYgaWQ9InBhcmVudCI+CiAgICAgPHNwYW4g
aWQ9Im1vdmFibGUiIG9ubW91c2VvdmVyPSJ2YXIgcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdtb3ZhYmxlJyk7IGRpc3BsYXlNZXNzYWdlKCdwYXJlbnQgbWF0Y2hlcz8gJyArIChwICE9IGV2
ZW50LnJlbGF0ZWRUYXJnZXQpKTsiPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbiBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2ltcG9ydGVyLmpzb24KaW5kZXggZDk4NWM4ZWRhYzc1Li41YmEwYzNhNWQzMDMgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb24KKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbgpAQCAtMSw2
ICsxLDYgQEAKIHsKICAgICAicmVwb3NpdG9yeSI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5p
dW1IUS9zZWxlbml1bS5naXQiLAotICAgICJyZXZpc2lvbiI6ICJkNGY5ZmUyMTNkZDZlNWIxMGI4
OWJlMzYwYmU2MzU3NDdlZDNlMTM4IiwKKyAgICAicmV2aXNpb24iOiAiZTNmY2Y3OTEyMzljMGU5
YmE1YzA0Njg2MDI1ZjU3OGI1NjFlY2Q2ZiIsCiAgICAgInBhdGhzX3RvX2ltcG9ydCI6IFsKICAg
ICAgICAgImNvbW1vbiIsCiAgICAgICAgICJweS9jb25mdGVzdC5weSIsCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2NvbmZ0ZXN0LnB5CmluZGV4IDZkNjRmM2ZmZTdj
MC4uYjIzNThiN2Y2NWU5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9jb25mdGVzdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9jb25mdGVzdC5weQpAQCAtMTYsMzEgKzE2LDI1IEBACiAjIHVuZGVyIHRoZSBMaWNlbnNl
LgogCiBpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHNvY2tldAogaW1wb3J0IHN1
YnByb2Nlc3MKLWltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAKIGltcG9ydCBweXRlc3QKLWZyb20g
X3B5dGVzdC5za2lwcGluZyBpbXBvcnQgTWFya0V2YWx1YXRvcgogCiBmcm9tIHNlbGVuaXVtIGlt
cG9ydCB3ZWJkcml2ZXIKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2Fw
YWJpbGl0aWVzCiBmcm9tIHRlc3Quc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi53ZWJzZXJ2ZXIg
aW1wb3J0IFNpbXBsZVdlYlNlcnZlcgogZnJvbSB0ZXN0LnNlbGVuaXVtLndlYmRyaXZlci5jb21t
b24ubmV0d29yayBpbXBvcnQgZ2V0X2xhbl9pcAogCi1pZiBzeXMudmVyc2lvbl9pbmZvWzBdID09
IDM6Ci0gICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotZWxzZToKLSAgICBm
cm9tIHVybGxpYiBpbXBvcnQgdXJsb3BlbgorZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJs
b3BlbgogCiBkcml2ZXJzID0gKAotICAgICdCbGFja0JlcnJ5JywKICAgICAnQ2hyb21lJywKICAg
ICAnRWRnZScsCiAgICAgJ0ZpcmVmb3gnLAogICAgICdJZScsCi0gICAgJ01hcmlvbmV0dGUnLAog
ICAgICdSZW1vdGUnLAogICAgICdTYWZhcmknLAogICAgICdXZWJLaXRHVEsnLApAQCAtODIsMTAg
Kzc2LDI4IEBAIGRlZiBkcml2ZXIocmVxdWVzdCk6CiAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9y
OgogICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoaXMgdGVzdCByZXF1aXJlcyBhIC0tZHJpdmVy
IHRvIGJlIHNwZWNpZmllZC4nKQogCisgICAgIyBza2lwIHRlc3RzIGlmIG5vdCBhdmFpbGFibGUg
b24gdGhlIHBsYXRmb3JtCisgICAgX3BsYXRmb3JtID0gcGxhdGZvcm0uc3lzdGVtKCkKKyAgICBp
ZiBkcml2ZXJfY2xhc3MgPT0gIlNhZmFyaSIgYW5kIF9wbGF0Zm9ybSAhPSAiRGFyd2luIjoKKyAg
ICAgICAgcHl0ZXN0LnNraXAoIlNhZmFyaSB0ZXN0cyBjYW4gb25seSBydW4gb24gYW4gQXBwbGUg
T1MiKQorICAgIGlmIChkcml2ZXJfY2xhc3MgPT0gIkllIiBvciBkcml2ZXJfY2xhc3MgPT0gIkVk
Z2UiKSBhbmQgX3BsYXRmb3JtICE9ICJXaW5kb3dzIjoKKyAgICAgICAgcHl0ZXN0LnNraXAoIklF
IGFuZCBFZGdlSFRNTCBUZXN0cyBjYW4gb25seSBydW4gb24gV2luZG93cyIpCisgICAgaWYgIldl
YktpdCIgaW4gZHJpdmVyX2NsYXNzIGFuZCBfcGxhdGZvcm0gIT0gIkxpbnV4IjoKKyAgICAgICAg
cHl0ZXN0LnNraXAoIldlYmtpdCB0ZXN0cyBjYW4gb25seSBydW4gb24gTGludXgiKQorCiAgICAg
IyBjb25kaXRpb25hbGx5IG1hcmsgdGVzdHMgYXMgZXhwZWN0ZWQgdG8gZmFpbCBiYXNlZCBvbiBk
cml2ZXIKLSAgICByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbCA9IHJlcXVlc3Qubm9kZS5fZXZhbHhm
YWlsIG9yIE1hcmtFdmFsdWF0b3IoCi0gICAgICAgIHJlcXVlc3Qubm9kZSwgJ3hmYWlsX3swfScu
Zm9ybWF0KGRyaXZlcl9jbGFzcy5sb3dlcigpKSkKLSAgICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4
ZmFpbC5pc3RydWUoKToKKyAgICBtYXJrZXIgPSByZXF1ZXN0Lm5vZGUuZ2V0X2Nsb3Nlc3RfbWFy
a2VyKCd4ZmFpbF97MH0nLmZvcm1hdChkcml2ZXJfY2xhc3MubG93ZXIoKSkpCisKKyAgICBpZiBt
YXJrZXIgaXMgbm90IE5vbmU6CisgICAgICAgIGlmICJydW4iIGluIG1hcmtlci5rd2FyZ3M6Cisg
ICAgICAgICAgICBpZiBtYXJrZXIua3dhcmdzWyJydW4iXSBpcyBGYWxzZToKKyAgICAgICAgICAg
ICAgICBweXRlc3Quc2tpcCgpCisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgaWYgInJhaXNlcyIgaW4gbWFya2VyLmt3YXJnczoKKyAgICAgICAg
ICAgIG1hcmtlci5rd2FyZ3MucG9wKCJyYWlzZXMiKQorICAgICAgICBweXRlc3QueGZhaWwoKipt
YXJrZXIua3dhcmdzKQorCiAgICAgICAgIGRlZiBmaW4oKToKICAgICAgICAgICAgIGdsb2JhbCBk
cml2ZXJfaW5zdGFuY2UKICAgICAgICAgICAgIGlmIGRyaXZlcl9pbnN0YW5jZSBpcyBub3QgTm9u
ZToKQEAgLTkzLDI1ICsxMDUsMTIgQEAgZGVmIGRyaXZlcihyZXF1ZXN0KToKICAgICAgICAgICAg
IGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmlu
KQogCi0gICAgIyBza2lwIGRyaXZlciBpbnN0YW50aWF0aW9uIGlmIHhmYWlsKHJ1bj1GYWxzZSkK
LSAgICBpZiBub3QgcmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCdydW54ZmFpbCcpOgotICAgICAg
ICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5pc3RydWUoKToKLSAgICAgICAgICAgIGlmIHJl
cXVlc3Qubm9kZS5fZXZhbHhmYWlsLmdldCgncnVuJykgaXMgRmFsc2U6Ci0gICAgICAgICAgICAg
ICAgeWllbGQKLSAgICAgICAgICAgICAgICByZXR1cm4KLQogICAgIGRyaXZlcl9wYXRoID0gcmVx
dWVzdC5jb25maWcub3B0aW9uLmV4ZWN1dGFibGUKICAgICBvcHRpb25zID0gTm9uZQogCiAgICAg
Z2xvYmFsIGRyaXZlcl9pbnN0YW5jZQogICAgIGlmIGRyaXZlcl9pbnN0YW5jZSBpcyBOb25lOgot
ICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ0JsYWNrQmVycnknOgotICAgICAgICAgICAga3dh
cmdzLnVwZGF0ZSh7J2RldmljZV9wYXNzd29yZCc6ICdwYXNzd29yZCd9KQogICAgICAgICBpZiBk
cml2ZXJfY2xhc3MgPT0gJ0ZpcmVmb3gnOgotICAgICAgICAgICAga3dhcmdzLnVwZGF0ZSh7J2Nh
cGFiaWxpdGllcyc6IHsnbWFyaW9uZXR0ZSc6IEZhbHNlfX0pCi0gICAgICAgICAgICBvcHRpb25z
ID0gZ2V0X29wdGlvbnMoZHJpdmVyX2NsYXNzLCByZXF1ZXN0LmNvbmZpZykKLSAgICAgICAgaWYg
ZHJpdmVyX2NsYXNzID09ICdNYXJpb25ldHRlJzoKLSAgICAgICAgICAgIGRyaXZlcl9jbGFzcyA9
ICdGaXJlZm94JwogICAgICAgICAgICAgb3B0aW9ucyA9IGdldF9vcHRpb25zKGRyaXZlcl9jbGFz
cywgcmVxdWVzdC5jb25maWcpCiAgICAgICAgIGlmIGRyaXZlcl9jbGFzcyA9PSAnUmVtb3RlJzoK
ICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IERlc2lyZWRDYXBhYmlsaXRpZXMuRklSRUZPWC5j
b3B5KCkKQEAgLTEyOSw3ICsxMjgsOCBAQCBkZWYgZHJpdmVyKHJlcXVlc3QpOgogICAgICAgICAg
ICAga3dhcmdzWydvcHRpb25zJ10gPSBvcHRpb25zCiAgICAgICAgIGRyaXZlcl9pbnN0YW5jZSA9
IGdldGF0dHIod2ViZHJpdmVyLCBkcml2ZXJfY2xhc3MpKCoqa3dhcmdzKQogICAgIHlpZWxkIGRy
aXZlcl9pbnN0YW5jZQotICAgIGlmIE1hcmtFdmFsdWF0b3IocmVxdWVzdC5ub2RlLCAnbm9fZHJp
dmVyX2FmdGVyX3Rlc3QnKS5pc3RydWUoKToKKworICAgIGlmIHJlcXVlc3Qubm9kZS5nZXRfY2xv
c2VzdF9tYXJrZXIoIm5vX2RyaXZlcl9hZnRlcl90ZXN0Iik6CiAgICAgICAgIGRyaXZlcl9pbnN0
YW5jZSA9IE5vbmUKIAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9fLnB5CmluZGV4IDRhMDQ5Yjg1OTEzMi4uMzIzY2Fh
ZWI3OTBjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQpAQCAtMTYsNCArMTYsNCBAQAogIyB1bmRlciB0aGUg
TGljZW5zZS4KIAogCi1fX3ZlcnNpb25fXyA9ICI0LjAuMGE2IgorX192ZXJzaW9uX18gPSAiNC4w
LjBhNyIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKaW5kZXggNGNiMTFjODlkNThl
Li5lODI3YjA3ZTFlM2EgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5CkBAIC0x
NTgsNyArMTU4LDcgQEAgY2xhc3MgRWxlbWVudE5vdFZpc2libGVFeGNlcHRpb24oSW52YWxpZEVs
ZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CiBjbGFzcyBFbGVtZW50Tm90SW50ZXJhY3RhYmxlRXhjZXB0
aW9uKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgogICAgICIiIgogICAgIFRocm93biB3
aGVuIGFuIGVsZW1lbnQgaXMgcHJlc2VudCBpbiB0aGUgRE9NIGJ1dCBpbnRlcmFjdGlvbnMKLSAg
ICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90aGVyIGVsZW1lbnQgZG8gdG8gcGFpbnQg
b3JkZXIKKyAgICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90aGVyIGVsZW1lbnQgZHVl
IHRvIHBhaW50IG9yZGVyCiAgICAgIiIiCiAgICAgcGFzcwogCkBAIC0yNzMsNyArMjczLDcgQEAg
Y2xhc3MgU2NyZWVuc2hvdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogY2xhc3MgRWxl
bWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAi
IiIKICAgICBUaGUgRWxlbWVudCBDbGljayBjb21tYW5kIGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQg
YmVjYXVzZSB0aGUgZWxlbWVudCByZWNlaXZpbmcgdGhlIGV2ZW50cwotICAgIGlzIG9ic2N1cmlu
ZyB0aGUgZWxlbWVudCB0aGF0IHdhcyByZXF1ZXN0ZWQgY2xpY2tlZC4KKyAgICBpcyBvYnNjdXJp
bmcgdGhlIGVsZW1lbnQgdGhhdCB3YXMgcmVxdWVzdGVkIHRvIGJlIGNsaWNrZWQuCiAgICAgIiIi
CiAgICAgcGFzcwogCkBAIC0yODgsNyArMjg4LDcgQEAgY2xhc3MgSW5zZWN1cmVDZXJ0aWZpY2F0
ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogCiBjbGFzcyBJbnZhbGlkQ29vcmRpbmF0
ZXNFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAiIiIKLSAgICBUaGUgY29vcmRp
bmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50ZXJhY3Rpb25zIG9wZXJhdGlvbiBhcmUgaW52YWxpZC4K
KyAgICBUaGUgY29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8gYW4gaW50ZXJhY3Rpb24ncyBvcGVyYXRp
b24gYXJlIGludmFsaWQuCiAgICAgIiIiCiAgICAgcGFzcwogCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18u
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvX19pbml0X18ucHkKaW5kZXggOWI5M2RjYzI4NDdjLi5lNzU3NjM2YWM3NWIgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTE2LDE0ICsxNiwxNCBAQAogIyB1bmRl
ciB0aGUgTGljZW5zZS4KIAogZnJvbSAuc2FmYXJpLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVy
IGFzIFNhZmFyaSAgIyBub3FhCi1mcm9tIC53ZWJraXRndGsud2ViZHJpdmVyIGltcG9ydCBXZWJE
cml2ZXIgYXMgV2ViS2l0R1RLICMgbm9xYQotZnJvbSAud2Via2l0Z3RrLm9wdGlvbnMgaW1wb3J0
IE9wdGlvbnMgYXMgV2ViS2l0R1RLT3B0aW9ucyAjIG5vcWEKLWZyb20gLndwZXdlYmtpdC53ZWJk
cml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXUEVXZWJLaXQgIyBub3FhCi1mcm9tIC53cGV3ZWJr
aXQub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXUEVXZWJLaXRPcHRpb25zICMgbm9xYQorZnJv
bSAud2Via2l0Z3RrLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFdlYktpdEdUSyAgIyBu
b3FhCitmcm9tIC53ZWJraXRndGsub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXZWJLaXRHVEtP
cHRpb25zICAjIG5vcWEKK2Zyb20gLndwZXdlYmtpdC53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZl
ciBhcyBXUEVXZWJLaXQgICMgbm9xYQorZnJvbSAud3Bld2Via2l0Lm9wdGlvbnMgaW1wb3J0IE9w
dGlvbnMgYXMgV1BFV2ViS2l0T3B0aW9ucyAgIyBub3FhCiBmcm9tIC5yZW1vdGUud2ViZHJpdmVy
IGltcG9ydCBXZWJEcml2ZXIgYXMgUmVtb3RlICAjIG5vcWEKIGZyb20gLmNvbW1vbi5kZXNpcmVk
X2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcyAgIyBub3FhCiBmcm9tIC5j
b21tb24uYWN0aW9uX2NoYWlucyBpbXBvcnQgQWN0aW9uQ2hhaW5zICAjIG5vcWEKIGZyb20gLmNv
bW1vbi50b3VjaF9hY3Rpb25zIGltcG9ydCBUb3VjaEFjdGlvbnMgICMgbm9xYQogZnJvbSAuY29t
bW9uLnByb3h5IGltcG9ydCBQcm94eSAgIyBub3FhCiAKLV9fdmVyc2lvbl9fID0gJzQuMC4wYTYn
CitfX3ZlcnNpb25fXyA9ICc0LjAuMGE3JwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9vcHRpb25zLnB5CmluZGV4IGJmZjI1MTcyN2IzZS4uOTIwMzQ4MTI4OWQyIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL29wdGlvbnMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5CkBAIC00OSwxMiArNDks
MTIgQEAgY2xhc3MgQmFzZU9wdGlvbnMob2JqZWN0KToKICAgICAgICAgIiIiUmV0dXJuIG1pbmlt
YWwgY2FwYWJpbGl0aWVzIG5lY2Vzc2FyeSBhcyBhIGRpY3Rpb25hcnkuIiIiCiAKIAotCiBjbGFz
cyBBcmdPcHRpb25zKEJhc2VPcHRpb25zKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAg
ICAgICAgc3VwZXIoQXJnT3B0aW9ucywgc2VsZikuX19pbml0X18oKQogICAgICAgICBzZWxmLl9h
cmd1bWVudHMgPSBbXQorICAgICAgICBzZWxmLl9pZ25vcmVfbG9jYWxfcHJveHkgPSBGYWxzZQog
CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGFyZ3VtZW50cyhzZWxmKToKQEAgLTc1LDYgKzc1LDEy
IEBAIGNsYXNzIEFyZ09wdGlvbnMoQmFzZU9wdGlvbnMpOgogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignYXJndW1lbnQgY2FuIG5vdCBiZSBudWxsJykKIAorICAg
IGRlZiBpZ25vcmVfbG9jYWxfcHJveHlfZW52aXJvbm1lbnRfdmFyaWFibGVzKHNlbGYpOgorICAg
ICAgICAiIiIKKyAgICAgICAgICAgIEJ5IGNhbGxpbmcgdGhpcyB5b3Ugd2lsbCBpZ25vcmUgSFRU
UF9QUk9YWSBhbmQgSFRUUFNfUFJPWFkgZnJvbSBiZWluZyBwaWNrZWQgdXAgYW5kIHVzZWQuCisg
ICAgICAgICIiIgorICAgICAgICBzZWxmLl9pZ25vcmVfbG9jYWxfcHJveHkgPSBUcnVlCisKICAg
ICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fY2Fwcwog
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkKaW5kZXggZDIw
YTkwMmZhYzdlLi44YzMyZTBkYmVjYzEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VydmljZS5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3NlcnZpY2UucHkKQEAgLTQ2LDYgKzQ2LDggQEAgY2xhc3MgU2VydmljZShvYmplY3Qp
OgogCiAgICAgICAgIHNlbGYuc3RhcnRfZXJyb3JfbWVzc2FnZSA9IHN0YXJ0X2Vycm9yX21lc3Nh
Z2UKICAgICAgICAgc2VsZi5sb2dfZmlsZSA9IGxvZ19maWxlCisgICAgICAgICMgRGVmYXVsdCB2
YWx1ZSBmb3IgZXZlcnkgcHl0aG9uIHN1YnByb2Nlc3M6IHN1YnByb2Nlc3MuUG9wZW4oLi4uLCBj
cmVhdGlvbmZsYWdzPTApCisgICAgICAgIHNlbGYuY3JlYXRpb25mbGFncyA9IDAKICAgICAgICAg
c2VsZi5lbnYgPSBlbnYgb3Igb3MuZW52aXJvbgogCiAgICAgQHByb3BlcnR5CkBAIC03Myw3ICs3
NSw4IEBAIGNsYXNzIFNlcnZpY2Uob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXBsYXRmb3JtLnN5c3RlbSgpICE9ICdXaW5kb3dz
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXNl
bGYubG9nX2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZGVycj1zZWxmLmxvZ19maWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGRpbj1QSVBFKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGRpbj1QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGlvbmZsYWdzPXNlbGYuY3JlYXRpb25mbGFncykKICAgICAgICAgZXhj
ZXB0IFR5cGVFcnJvcjoKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdCBPU0Vycm9y
IGFzIGVycjoKQEAgLTk4LDkgKzEwMSwxMCBAQCBjbGFzcyBTZXJ2aWNlKG9iamVjdCk6CiAgICAg
ICAgICAgICBzZWxmLmFzc2VydF9wcm9jZXNzX3N0aWxsX3J1bm5pbmcoKQogICAgICAgICAgICAg
aWYgc2VsZi5pc19jb25uZWN0YWJsZSgpOgogICAgICAgICAgICAgICAgIGJyZWFrCisKICAgICAg
ICAgICAgIGNvdW50ICs9IDEKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKLSAgICAgICAgICAg
IGlmIGNvdW50ID09IDMwOgorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjUpCisgICAgICAgICAg
ICBpZiBjb3VudCA9PSA2MDoKICAgICAgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRp
b24oIkNhbiBub3QgY29ubmVjdCB0byB0aGUgU2VydmljZSAlcyIgJSBzZWxmLnBhdGgpCiAKICAg
ICBkZWYgYXNzZXJ0X3Byb2Nlc3Nfc3RpbGxfcnVubmluZyhzZWxmKToKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vdXRpbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CmluZGV4IDk1N2YyZmQyNjY5OS4uMWY2MGU0NDU3
M2EyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkKQEAgLTM2
LDcgKzM2LDcgQEAgZGVmIGZyZWVfcG9ydCgpOgogICAgIERldGVybWluZXMgYSBmcmVlIHBvcnQg
dXNpbmcgc29ja2V0cy4KICAgICAiIiIKICAgICBmcmVlX3NvY2tldCA9IHNvY2tldC5zb2NrZXQo
c29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKLSAgICBmcmVlX3NvY2tldC5iaW5k
KCgnMC4wLjAuMCcsIDApKQorICAgIGZyZWVfc29ja2V0LmJpbmQoKCcxMjcuMC4wLjEnLCAwKSkK
ICAgICBmcmVlX3NvY2tldC5saXN0ZW4oNSkKICAgICBwb3J0ID0gZnJlZV9zb2NrZXQuZ2V0c29j
a25hbWUoKVsxXQogICAgIGZyZWVfc29ja2V0LmNsb3NlKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvcmVt
b3RlX2Nvbm5lY3Rpb24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0aW9uLnB5CmluZGV4IDZmMWMx
YjQ3MTIwNy4uMjQ0OGMxYjA2YjRjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0aW9u
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9yZW1vdGUvcmVtb3RlX2Nvbm5lY3Rpb24ucHkKQEAgLTE0MSw3ICsxNDEsNyBAQCBj
bGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHJldHVybiB1cmxsaWIzLlBv
b2xNYW5hZ2VyKCoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykgaWYgc2VsZi5fcHJveHlfdXJsIGlz
IE5vbmUgZWxzZSBcCiAgICAgICAgICAgICB1cmxsaWIzLlByb3h5TWFuYWdlcihzZWxmLl9wcm94
eV91cmwsICoqcG9vbF9tYW5hZ2VyX2luaXRfYXJncykKIAotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9RmFsc2UsIHJlc29sdmVfaXA9Tm9uZSk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1G
YWxzZSwgcmVzb2x2ZV9pcD1Ob25lLCBpZ25vcmVfcHJveHk9RmFsc2UpOgogICAgICAgICBpZiBy
ZXNvbHZlX2lwIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaW1wb3J0IHdhcm5pbmdzCiAgICAg
ICAgICAgICB3YXJuaW5ncy53YXJuKApAQCAtMTQ5LDcgKzE0OSw3IEBAIGNsYXNzIFJlbW90ZUNv
bm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpCiAg
ICAgICAgIHNlbGYua2VlcF9hbGl2ZSA9IGtlZXBfYWxpdmUKICAgICAgICAgc2VsZi5fdXJsID0g
cmVtb3RlX3NlcnZlcl9hZGRyCi0gICAgICAgIHNlbGYuX3Byb3h5X3VybCA9IHNlbGYuX2dldF9w
cm94eV91cmwoKQorICAgICAgICBzZWxmLl9wcm94eV91cmwgPSBzZWxmLl9nZXRfcHJveHlfdXJs
KCkgaWYgbm90IGlnbm9yZV9wcm94eSBlbHNlIE5vbmUKICAgICAgICAgaWYga2VlcF9hbGl2ZToK
ICAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSBzZWxmLl9nZXRfY29ubmVjdGlvbl9tYW5hZ2VyKCkK
IApAQCAtMTk3LDcgKzE5Nyw3IEBAIGNsYXNzIFJlbW90ZUNvbm5lY3Rpb24ob2JqZWN0KToKICAg
ICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC92
YWx1ZScpLAogICAgICAgICAgICAgQ29tbWFuZC5TRU5EX0tFWVNfVE9fQUNUSVZFX0VMRU1FTlQ6
CiAgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQva2V5cycpLAot
ICAgICAgICAgICAgQ29tbWFuZC5VUExPQURfRklMRTogKCdQT1NUJywgIi9zZXNzaW9uLyRzZXNz
aW9uSWQvZmlsZSIpLAorICAgICAgICAgICAgQ29tbWFuZC5VUExPQURfRklMRTogKCdQT1NUJywg
Ii9zZXNzaW9uLyRzZXNzaW9uSWQvc2UvZmlsZSIpLAogICAgICAgICAgICAgQ29tbWFuZC5HRVRf
RUxFTUVOVF9WQUxVRToKICAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL2VsZW1lbnQvJGlkL3ZhbHVlJyksCiAgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5U
X1RBR19OQU1FOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmRyaXZl
ci5weQppbmRleCA2MjI4MmQ1MjY5NWIuLmM0ODMxMDNkM2E1MCAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93
ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkKQEAgLTIwLDE5ICsyMCwyMyBAQAog
ZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEKIGltcG9ydCBiYXNlNjQKIGltcG9ydCBjb3B5Ci1mcm9t
IGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0
IChjb250ZXh0bWFuYWdlciwgYXN5bmNjb250ZXh0bWFuYWdlcikKK2ltcG9ydCBpbXBvcnRsaWIK
IGltcG9ydCBwa2d1dGlsCiBpbXBvcnQgd2FybmluZ3MKK2ltcG9ydCBzeXMKIAogZnJvbSAuY29t
bWFuZCBpbXBvcnQgQ29tbWFuZAogZnJvbSAuZXJyb3JoYW5kbGVyIGltcG9ydCBFcnJvckhhbmRs
ZXIKIGZyb20gLmZpbGVfZGV0ZWN0b3IgaW1wb3J0IEZpbGVEZXRlY3RvciwgTG9jYWxGaWxlRGV0
ZWN0b3IKIGZyb20gLm1vYmlsZSBpbXBvcnQgTW9iaWxlCiBmcm9tIC5yZW1vdGVfY29ubmVjdGlv
biBpbXBvcnQgUmVtb3RlQ29ubmVjdGlvbgorZnJvbSAuc2NyaXB0X2tleSBpbXBvcnQgU2NyaXB0
S2V5CiBmcm9tIC5zd2l0Y2hfdG8gaW1wb3J0IFN3aXRjaFRvCiBmcm9tIC53ZWJlbGVtZW50IGlt
cG9ydCBXZWJFbGVtZW50CiAKIGZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0
IChJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSmF2YXNjcmlwdEV4Y2VwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJEcml2ZXJFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTm9TdWNoQ29va2llRXhjZXB0aW9uLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVua25vd25NZXRob2RFeGNlcHRpb24pCkBAIC00
OCw2ICs1MiwxNCBAQCB0cnk6CiBleGNlcHQgTmFtZUVycm9yOgogICAgIHBhc3MKIAorY2RwID0g
Tm9uZQorCisKK2RlZiBpbXBvcnRfY2RwKCk6CisgICAgZ2xvYmFsIGNkcAorICAgIGlmIGNkcCBp
cyBOb25lOgorICAgICAgICBjZHAgPSBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgic2VsZW5pdW0u
d2ViZHJpdmVyLmNvbW1vbi5iaWRpLmNkcCIpCisKIAogX1czQ19DQVBBQklMSVRZX05BTUVTID0g
ZnJvemVuc2V0KFsKICAgICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycsCkBAIC02OCw2ICs4MCw4IEBA
IF9PU1NfVzNDX0NPTlZFUlNJT04gPSB7CiAgICAgJ3BsYXRmb3JtJzogJ3BsYXRmb3JtTmFtZScK
IH0KIAorZGV2dG9vbHMgPSBOb25lCisKIAogZGVmIF9tYWtlX3czY19jYXBzKGNhcHMpOgogICAg
ICIiIk1ha2VzIGEgVzNDIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyBvYmplY3QuCkBAIC0xMDIs
NyArMTE2LDcgQEAgZGVmIF9tYWtlX3czY19jYXBzKGNhcHMpOgogICAgIHJldHVybiB7ImZpcnN0
TWF0Y2giOiBbe31dLCAiYWx3YXlzTWF0Y2giOiBhbHdheXNfbWF0Y2h9CiAKIAotZGVmIGdldF9y
ZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxp
dmUpOgorZGVmIGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhl
Y3V0b3IsIGtlZXBfYWxpdmUsIGlnbm9yZV9sb2NhbF9wcm94eT1GYWxzZSk6CiAgICAgZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBTYWZhcmlS
ZW1vdGVDb25uZWN0aW9uCiAKICAgICBjYW5kaWRhdGVzID0gW1JlbW90ZUNvbm5lY3Rpb25dICsg
W1NhZmFyaVJlbW90ZUNvbm5lY3Rpb25dCkBAIC0xMTEsNyArMTI1LDcgQEAgZGVmIGdldF9yZW1v
dGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmUp
OgogICAgICAgICBSZW1vdGVDb25uZWN0aW9uCiAgICAgKQogCi0gICAgcmV0dXJuIGhhbmRsZXIo
Y29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZlKQorICAgIHJldHVybiBoYW5k
bGVyKGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmU9a2VlcF9hbGl2ZSwgaWdub3JlX3Byb3h5
PWlnbm9yZV9sb2NhbF9wcm94eSkKIAogCiBAYWRkX21ldGFjbGFzcyhBQkNNZXRhKQpAQCAtMTYz
LDggKzE3NywxMCBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgICAt
IG9wdGlvbnMgLSBpbnN0YW5jZSBvZiBhIGRyaXZlciBvcHRpb25zLk9wdGlvbnMgY2xhc3MKICAg
ICAgICAgIiIiCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHt9CisgICAgICAgIF9pZ25vcmVfbG9j
YWxfcHJveHkgPSBGYWxzZQogICAgICAgICBpZiBvcHRpb25zIGlzIG5vdCBOb25lOgogICAgICAg
ICAgICAgY2FwYWJpbGl0aWVzID0gb3B0aW9ucy50b19jYXBhYmlsaXRpZXMoKQorICAgICAgICAg
ICAgX2lnbm9yZV9sb2NhbF9wcm94eSA9IG9wdGlvbnMuX2lnbm9yZV9sb2NhbF9wcm94eQogICAg
ICAgICBpZiBkZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGlm
IG5vdCBpc2luc3RhbmNlKGRlc2lyZWRfY2FwYWJpbGl0aWVzLCBkaWN0KToKICAgICAgICAgICAg
ICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkRlc2lyZWQgQ2FwYWJpbGl0aWVzIG11c3Qg
YmUgYSBkaWN0aW9uYXJ5IikKQEAgLTE3MiwxMCArMTg4LDEzIEBAIGNsYXNzIFdlYkRyaXZlcihC
YXNlV2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMudXBkYXRlKGRlc2ly
ZWRfY2FwYWJpbGl0aWVzKQogICAgICAgICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IgPSBjb21tYW5k
X2V4ZWN1dG9yCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5jb21tYW5kX2V4ZWN1dG9yLCAo
c3RyLCBieXRlcykpOgotICAgICAgICAgICAgc2VsZi5jb21tYW5kX2V4ZWN1dG9yID0gZ2V0X3Jl
bW90ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29tbWFuZF9leGVjdXRvcj1jb21tYW5kX2V4
ZWN1dG9yLCBrZWVwX2FsaXZlPWtlZXBfYWxpdmUpCisgICAgICAgICAgICBzZWxmLmNvbW1hbmRf
ZXhlY3V0b3IgPSBnZXRfcmVtb3RlX2Nvbm5lY3Rpb24oY2FwYWJpbGl0aWVzLCBjb21tYW5kX2V4
ZWN1dG9yPWNvbW1hbmRfZXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcF9hbGl2ZT1rZWVwX2FsaXZlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9y
ZV9sb2NhbF9wcm94eT1faWdub3JlX2xvY2FsX3Byb3h5KQogICAgICAgICBzZWxmLl9pc19yZW1v
dGUgPSBUcnVlCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUKLSAgICAgICAgc2VsZi5j
YXBhYmlsaXRpZXMgPSB7fQorICAgICAgICBzZWxmLmNhcHMgPSB7fQorICAgICAgICBzZWxmLnBp
bm5lZF9zY3JpcHRzID0ge30KICAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVyID0gRXJyb3JIYW5k
bGVyKCkKICAgICAgICAgc2VsZi5zdGFydF9jbGllbnQoKQogICAgICAgICBzZWxmLnN0YXJ0X3Nl
c3Npb24oY2FwYWJpbGl0aWVzLCBicm93c2VyX3Byb2ZpbGUpCkBAIC0yMzUsOCArMjU0LDggQEAg
Y2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgICAgICAgICAgICAgbmFtZSA9
IGRyaXZlci5uYW1lCiAgICAgICAgICIiIgotICAgICAgICBpZiAnYnJvd3Nlck5hbWUnIGluIHNl
bGYuY2FwYWJpbGl0aWVzOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2FwYWJpbGl0aWVzWydi
cm93c2VyTmFtZSddCisgICAgICAgIGlmICdicm93c2VyTmFtZScgaW4gc2VsZi5jYXBzOgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuY2Fwc1snYnJvd3Nlck5hbWUnXQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ2Jyb3dzZXJOYW1lIG5vdCBzcGVjaWZpZWQgaW4g
c2Vzc2lvbiBjYXBhYmlsaXRpZXMnKQogCkBAIC0yNzksMTIgKzI5OCwxMiBAQCBjbGFzcyBXZWJE
cml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgIGlmICdzZXNzaW9uSWQnIG5vdCBpbiByZXNw
b25zZToKICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2VbJ3ZhbHVlJ10KICAgICAgICAg
c2VsZi5zZXNzaW9uX2lkID0gcmVzcG9uc2VbJ3Nlc3Npb25JZCddCi0gICAgICAgIHNlbGYuY2Fw
YWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCd2YWx1ZScpCisgICAgICAgIHNlbGYuY2FwcyA9IHJl
c3BvbnNlLmdldCgndmFsdWUnKQogCiAgICAgICAgICMgaWYgY2FwYWJpbGl0aWVzIGlzIG5vbmUg
d2UgYXJlIHByb2JhYmx5IHNwZWFraW5nIHRvCiAgICAgICAgICMgYSBXM0MgZW5kcG9pbnQKLSAg
ICAgICAgaWYgc2VsZi5jYXBhYmlsaXRpZXMgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuY2Fw
YWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCdjYXBhYmlsaXRpZXMnKQorICAgICAgICBpZiBzZWxm
LmNhcHMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY2FwcyA9IHJlc3BvbnNlLmdldCgnY2Fw
YWJpbGl0aWVzJykKIAogICAgICAgICAjIERvdWJsZSBjaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBh
IFczQyBDb21wbGlhbnQgYnJvd3NlcgogICAgICAgICBzZWxmLnczYyA9IHJlc3BvbnNlLmdldCgn
c3RhdHVzJykgaXMgTm9uZQpAQCAtNjg5LDYgKzcwOCwyNiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFz
ZVdlYkRyaXZlcik6CiAgICAgICAgIHdhcm5pbmdzLndhcm4oImZpbmRfZWxlbWVudHNfYnlfKiBj
b21tYW5kcyBhcmUgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBmaW5kX2VsZW1lbnRzKCkgaW5zdGVh
ZCIpCiAgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuQ1NTX1NFTEVDVE9S
LCB2YWx1ZT1jc3Nfc2VsZWN0b3IpCiAKKyAgICBkZWYgcGluX3NjcmlwdChzZWxmLCBzY3JpcHQp
OgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAgICAgc2NyaXB0X2tleSA9IFNjcmlw
dEtleSgpCisgICAgICAgIHNlbGYucGlubmVkX3NjcmlwdHNbc2NyaXB0X2tleS5pZF0gPSBzY3Jp
cHQKKyAgICAgICAgcmV0dXJuIHNjcmlwdF9rZXkKKworICAgIGRlZiB1bnBpbihzZWxmLCBzY3Jp
cHRfa2V5KToKKyAgICAgICAgIiIiCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYucGlubmVk
X3NjcmlwdHMucG9wKHNjcmlwdF9rZXkuaWQpCisKKyAgICBkZWYgZ2V0X3Bpbm5lZF9zY3JpcHRz
KHNlbGYpOgorICAgICAgICAiIiIKKworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGxpc3Qo
c2VsZi5waW5uZWRfc2NyaXB0cy5rZXlzKCkpCisKICAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vs
Ziwgc2NyaXB0LCAqYXJncyk6CiAgICAgICAgICIiIgogICAgICAgICBTeW5jaHJvbm91c2x5IEV4
ZWN1dGVzIEphdmFTY3JpcHQgaW4gdGhlIGN1cnJlbnQgd2luZG93L2ZyYW1lLgpAQCAtNzAyLDYg
Kzc0MSwxMiBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAKICAgICAgICAgICAg
ICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC50aXRsZTsnKQogICAg
ICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzY3JpcHQsIFNjcmlwdEtleSk6CisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gc2VsZi5waW5uZWRfc2NyaXB0
c1tzY3JpcHQuaWRdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAg
ICAgcmFpc2UgSmF2YXNjcmlwdEV4Y2VwdGlvbigiUGlubmVkIHNjcmlwdCBjb3VsZCBub3QgYmUg
Zm91bmQiKQorCiAgICAgICAgIGNvbnZlcnRlZF9hcmdzID0gbGlzdChhcmdzKQogICAgICAgICBj
b21tYW5kID0gTm9uZQogICAgICAgICBpZiBzZWxmLnczYzoKQEAgLTEwNjcsOCArMTExMiw3IEBA
IGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKIAogICAgIGRlZiBmaW5kX2VsZW1lbnQo
c2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIKLSAgICAgICAgRmluZCBh
biBlbGVtZW50IGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0b3IuIFByZWZlciB0aGUgZmlu
ZF9lbGVtZW50X2J5XyogbWV0aG9kcyB3aGVuCi0gICAgICAgIHBvc3NpYmxlLgorICAgICAgICBG
aW5kIGFuIGVsZW1lbnQgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4KIAogICAgICAg
ICA6VXNhZ2U6CiAgICAgICAgICAgICA6OgpAQCAtMTA5NSw4ICsxMTM5LDcgQEAgY2xhc3MgV2Vi
RHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAgZGVmIGZpbmRfZWxlbWVudHMoc2VsZiwgYnk9
QnkuSUQsIHZhbHVlPU5vbmUpOgogICAgICAgICAiIiIKLSAgICAgICAgRmluZCBlbGVtZW50cyBn
aXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLiBQcmVmZXIgdGhlIGZpbmRfZWxlbWVudHNf
YnlfKiBtZXRob2RzIHdoZW4KLSAgICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQgZWxlbWVu
dHMgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4KIAogICAgICAgICA6VXNhZ2U6CiAg
ICAgICAgICAgICA6OgpAQCAtMTEwOCw3ICsxMTUxLDcgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VX
ZWJEcml2ZXIpOgogICAgICAgICBpZiBpc2luc3RhbmNlKGJ5LCBSZWxhdGl2ZUJ5KToKICAgICAg
ICAgICAgIF9wa2cgPSAnLicuam9pbihfX25hbWVfXy5zcGxpdCgnLicpWzotMV0pCiAgICAgICAg
ICAgICByYXdfZnVuY3Rpb24gPSBwa2d1dGlsLmdldF9kYXRhKF9wa2csICdmaW5kRWxlbWVudHMu
anMnKS5kZWNvZGUoJ3V0ZjgnKQotICAgICAgICAgICAgZmluZF9lbGVtZW50X2pzID0gInJldHVy
biAoJXMpLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7IiAlIHJhd19mdW5jdGlvbgorICAgICAgICAg
ICAgZmluZF9lbGVtZW50X2pzID0gInJldHVybiAoe30pLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7
Ii5mb3JtYXQocmF3X2Z1bmN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZV9z
Y3JpcHQoZmluZF9lbGVtZW50X2pzLCBieS50b19kaWN0KCkpCiAKICAgICAgICAgaWYgc2VsZi53
M2M6CkBAIC0xMTM1LDcgKzExNzgsMTYgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIp
OgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJucyB0aGUgZHJpdmVycyBjdXJyZW50IGRlc2ly
ZWQgY2FwYWJpbGl0aWVzIGJlaW5nIHVzZWQKICAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLmNhcGFiaWxpdGllcworICAgICAgICB3YXJuaW5ncy53YXJuKCJkZXNpcmVkX2NhcGFiaWxp
dGllcyBpcyBkZXByZWNhdGVkLiBQbGVhc2UgY2FsbCBjYXBhYmlsaXRpZXMuIiwKKyAgICAgICAg
ICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKKyAgICAgICAg
cmV0dXJuIHNlbGYuY2FwcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNhcGFiaWxpdGllcyhz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybnMgdGhlIGRyaXZlcnMgY3VycmVudCBj
YXBhYmlsaXRpZXMgYmVpbmcgdXNlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxm
LmNhcHMKIAogICAgIGRlZiBnZXRfc2NyZWVuc2hvdF9hc19maWxlKHNlbGYsIGZpbGVuYW1lKToK
ICAgICAgICAgIiIiCkBAIC0xNDE3LDMgKzE0NjksMTEwIEBAIGNsYXNzIFdlYkRyaXZlcihCYXNl
V2ViRHJpdmVyKToKICAgICAgICAgICAgICAgICBkcml2ZXIuZ2V0X2xvZygnc2VydmVyJykKICAg
ICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfTE9HLCB7
J3R5cGUnOiBsb2dfdHlwZX0pWyd2YWx1ZSddCisKKyAgICBAYXN5bmNjb250ZXh0bWFuYWdlcgor
ICAgIGFzeW5jIGRlZiBhZGRfanNfZXJyb3JfbGlzdGVuZXIoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBMaXN0ZW5zIGZvciBKUyBlcnJvcnMgYW5kIHdoZW4gdGhlIGNvbnRleHRtYW5hZ2Vy
IGV4aXRzIGNoZWNrIGlmIHRoZXJlIHdlcmUgSlMgRXJyb3JzCisKKyAgICAgICAgOlVzYWdlOgor
ICAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBhc3luYyB3aXRoIGRyaXZlci5hZGRf
anNfZXJyb3JfbGlzdGVuZXIoKSBhcyBlcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5JRCwgInRocm93aW5nLW1vdXNlb3ZlciIpLmNsaWNrKCkKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgZXJyb3IgaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgZXJyb3IuZXhjZXB0aW9uX2RldGFpbHMuc3RhY2tfdHJhY2UuY2FsbF9mcmFtZXNbMF0uZnVu
Y3Rpb25fbmFtZSA9PSAib25tb3VzZW92ZXIiCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQg
c3lzLnZlcnNpb25faW5mbyA+PSAoMywgNykKKyAgICAgICAgZ2xvYmFsIGNkcAorICAgICAgICBh
c3luYyB3aXRoIHNlbGYuX2dldF9iaWRpX2Nvbm5lY3Rpb24oKToKKyAgICAgICAgICAgIGdsb2Jh
bCBkZXZ0b29scworICAgICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9jb250ZXh0
KCdwYWdlLmVuYWJsZScpCisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUoZGV2dG9v
bHMucGFnZS5lbmFibGUoKSkKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nlc3Npb25f
Y29udGV4dCgncnVudGltZS5lbmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5leGVj
dXRlKGRldnRvb2xzLnJ1bnRpbWUuZW5hYmxlKCkpCisgICAgICAgICAgICBqc19leGNlcHRpb24g
PSBkZXZ0b29scy5ydW50aW1lLkV4Y2VwdGlvblRocm93bihOb25lLCBOb25lKQorICAgICAgICAg
ICAgYXN5bmMgd2l0aCBzZXNzaW9uLndhaXRfZm9yKGRldnRvb2xzLnJ1bnRpbWUuRXhjZXB0aW9u
VGhyb3duKSBhcyBleGNlcHRpb246CisgICAgICAgICAgICAgICAgeWllbGQganNfZXhjZXB0aW9u
CisgICAgICAgICAgICBqc19leGNlcHRpb24udGltZXN0YW1wID0gZXhjZXB0aW9uLnZhbHVlLnRp
bWVzdGFtcAorICAgICAgICAgICAganNfZXhjZXB0aW9uLmV4Y2VwdGlvbl9kZXRhaWxzID0gZXhj
ZXB0aW9uLnZhbHVlLmV4Y2VwdGlvbl9kZXRhaWxzCisKKyAgICBAYXN5bmNjb250ZXh0bWFuYWdl
cgorICAgIGFzeW5jIGRlZiBhZGRfbGlzdGVuZXIoc2VsZiwgZXZlbnRfdHlwZSk6CisgICAgICAg
ICcnJworICAgICAgICBMaXN0ZW5zIGZvciBjZXJ0YWluIGV2ZW50cyB0aGF0IGFyZSBwYXNzZWQg
aW4uCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV2ZW50X3R5cGU6IFRoZSB0eXBlIG9m
IGV2ZW50IHRoYXQgd2Ugd2FudCB0byBsb29rIGF0LgorCisgICAgICAgICA6VXNhZ2U6CisgICAg
ICAgICAgICAgOjoKKworICAgICAgICAgICAgICAgIGFzeW5jIHdpdGggZHJpdmVyLmFkZF9saXN0
ZW5lcihDb25zb2xlLmxvZykgYXMgbWVzc2FnZXM6CisgICAgICAgICAgICAgICAgICAgIGRyaXZl
ci5leGVjdXRlX3NjcmlwdCgiY29uc29sZS5sb2coJ0kgbGlrZSBjaGVlc2UnKSIpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IG1lc3NhZ2VzWyJtZXNzYWdlIl0gPT0gIkkgbG92ZSBjaGVlc2UiCisK
KyAgICAgICAgJycnCisgICAgICAgIGFzc2VydCBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA3KQor
ICAgICAgICBnbG9iYWwgY2RwCisgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1v
bi5iaWRpLmNvbnNvbGUgaW1wb3J0IENvbnNvbGUKKworICAgICAgICBhc3luYyB3aXRoIHNlbGYu
X2dldF9iaWRpX2Nvbm5lY3Rpb24oKToKKyAgICAgICAgICAgIGdsb2JhbCBkZXZ0b29scworICAg
ICAgICAgICAgc2Vzc2lvbiA9IGNkcC5nZXRfc2Vzc2lvbl9jb250ZXh0KCdwYWdlLmVuYWJsZScp
CisgICAgICAgICAgICBhd2FpdCBzZXNzaW9uLmV4ZWN1dGUoZGV2dG9vbHMucGFnZS5lbmFibGUo
KSkKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nlc3Npb25fY29udGV4dCgnY29uc29s
ZS5lbmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5leGVjdXRlKGRldnRvb2xzLmNv
bnNvbGUuZW5hYmxlKCkpCisgICAgICAgICAgICBjb25zb2xlID0geworICAgICAgICAgICAgICAg
ICJtZXNzYWdlIjogTm9uZSwKKyAgICAgICAgICAgICAgICAibGV2ZWwiOiBOb25lCisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBhc3luYyB3aXRoIHNlc3Npb24ud2FpdF9mb3IoZGV2dG9vbHMu
Y29uc29sZS5NZXNzYWdlQWRkZWQpIGFzIG1lc3NhZ2VzOgorICAgICAgICAgICAgICAgIHlpZWxk
IGNvbnNvbGUKKyAgICAgICAgICAgIGlmIGV2ZW50X3R5cGUgPT0gQ29uc29sZS5FUlJPUjoKKyAg
ICAgICAgICAgICAgICBpZiBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLmxldmVsID09ICJlcnJvciI6
CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbIm1lc3NhZ2UiXSA9IG1lc3NhZ2VzLnZhbHVl
Lm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAgICAgICBjb25zb2xlWyJsZXZlbCJdID0gbWVz
c2FnZXMudmFsdWUubWVzc2FnZS5sZXZlbAorICAgICAgICAgICAgZWxpZiBldmVudF90eXBlID09
IENvbnNvbGUuQUxMOgorICAgICAgICAgICAgICAgIGNvbnNvbGVbIm1lc3NhZ2UiXSA9IG1lc3Nh
Z2VzLnZhbHVlLm1lc3NhZ2UudGV4dAorICAgICAgICAgICAgICAgIGNvbnNvbGVbImxldmVsIl0g
PSBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLmxldmVsCisKKyAgICBAYXN5bmNjb250ZXh0bWFuYWdl
cgorICAgIGFzeW5jIGRlZiBfZ2V0X2JpZGlfY29ubmVjdGlvbihzZWxmKToKKyAgICAgICAgZ2xv
YmFsIGNkcAorICAgICAgICBpbXBvcnRfY2RwKCkKKyAgICAgICAgd3NfdXJsID0gTm9uZQorICAg
ICAgICBpZiBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIik6CisgICAgICAgICAgICB3c191cmwg
PSBzZWxmLmNhcHMuZ2V0KCJzZTpvcHRpb25zIikuZ2V0KCJjZHAiKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgdmVyc2lvbiwgd3NfdXJsID0gc2VsZi5fZ2V0X2NkcF9kZXRhaWxzKCkKKwor
ICAgICAgICBpZiB3c191cmwgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4
Y2VwdGlvbigiVW5hYmxlIHRvIGZpbmQgdXJsIHRvIGNvbm5lY3QgdG8gZnJvbSBjYXBhYmlsaXRp
ZXMiKQorCisgICAgICAgIGNkcC5pbXBvcnRfZGV2dG9vbHModmVyc2lvbikKKworICAgICAgICBn
bG9iYWwgZGV2dG9vbHMKKyAgICAgICAgZGV2dG9vbHMgPSBpbXBvcnRsaWIuaW1wb3J0X21vZHVs
ZSgic2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXZ0b29scy52e30iLmZvcm1hdCh2ZXJzaW9u
KSkKKyAgICAgICAgYXN5bmMgd2l0aCBjZHAub3Blbl9jZHAod3NfdXJsKSBhcyBjb25uOgorICAg
ICAgICAgICAgdGFyZ2V0cyA9IGF3YWl0IGNvbm4uZXhlY3V0ZShkZXZ0b29scy50YXJnZXQuZ2V0
X3RhcmdldHMoKSkKKyAgICAgICAgICAgIHRhcmdldF9pZCA9IHRhcmdldHNbMF0udGFyZ2V0X2lk
CisgICAgICAgICAgICBhc3luYyB3aXRoIGNvbm4ub3Blbl9zZXNzaW9uKHRhcmdldF9pZCkgYXMg
c2Vzc2lvbjoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZXNzaW9uCisKKyAgICBkZWYgX2dldF9j
ZHBfZGV0YWlscyhzZWxmKToKKyAgICAgICAgaW1wb3J0IGpzb24KKyAgICAgICAgaW1wb3J0IHVy
bGxpYjMKKworICAgICAgICBodHRwID0gdXJsbGliMy5Qb29sTWFuYWdlcigpCisgICAgICAgIGRl
YnVnZ2VyX2FkZHJlc3MgPSBzZWxmLmNhcHMuZ2V0KCJ7MH06Y2hyb21lT3B0aW9ucyIuZm9ybWF0
KHNlbGYudmVuZG9yX3ByZWZpeCkpLmdldCgiZGVidWdnZXJBZGRyZXNzIikKKyAgICAgICAgcmVz
ID0gaHR0cC5yZXF1ZXN0KCdHRVQnLCAiaHR0cDovL3swfS9qc29uL3ZlcnNpb24iLmZvcm1hdChk
ZWJ1Z2dlcl9hZGRyZXNzKSkKKyAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmVzLmRhdGEpCisK
KyAgICAgICAgYnJvd3Nlcl92ZXJzaW9uID0gZGF0YS5nZXQoIkJyb3dzZXIiKQorICAgICAgICB3
ZWJzb2NrZXRfdXJsID0gZGF0YS5nZXQoIndlYlNvY2tldERlYnVnZ2VyVXJsIikKKworICAgICAg
ICBpbXBvcnQgcmUKKyAgICAgICAgdmVyc2lvbiA9IHJlLnNlYXJjaChyIi4qLyhcZCspXC4iLCBi
cm93c2VyX3ZlcnNpb24pLmdyb3VwKDEpCisKKyAgICAgICAgcmV0dXJuIHZlcnNpb24sIHdlYnNv
Y2tldF91cmwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVu
dC5weQppbmRleCA2ZjNlYmJjYzNiNTQuLjA5M2U0MmE1YmExMyAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93
ZWJlbGVtZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZWxlbWVudC5weQpAQCAtNTM0LDkgKzUzNCwxNCBA
QCBjbGFzcyBXZWJFbGVtZW50KEJhc2VXZWJFbGVtZW50KToKICAgICAgICAgIyB0cmFuc2ZlciBm
aWxlIHRvIGFub3RoZXIgbWFjaGluZSBvbmx5IGlmIHJlbW90ZSBkcml2ZXIgaXMgdXNlZAogICAg
ICAgICAjIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBmb3IgamF2YSBiaW5kaW5nCiAgICAgICAgIGlm
IHNlbGYucGFyZW50Ll9pc19yZW1vdGU6Ci0gICAgICAgICAgICBsb2NhbF9maWxlID0gc2VsZi5w
YXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKCp2YWx1ZSkKLSAgICAgICAgICAgIGlm
IGxvY2FsX2ZpbGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBzZWxmLl91
cGxvYWQobG9jYWxfZmlsZSkKKyAgICAgICAgICAgIGxvY2FsX2ZpbGVzID0gbGlzdChtYXAobGFt
YmRhIGtleXNfdG9fc2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKGtleXNfdG9fc2VuZCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLmpvaW4odmFsdWUpLnNwbGl0KCdcbicp
KSkKKyAgICAgICAgICAgIGlmIE5vbmUgbm90IGluIGxvY2FsX2ZpbGVzOgorICAgICAgICAgICAg
ICAgIHJlbW90ZV9maWxlcyA9IFtdCisgICAgICAgICAgICAgICAgZm9yIGZpbGUgaW4gbG9jYWxf
ZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9maWxlcy5hcHBlbmQoc2VsZi5fdXBs
b2FkKGZpbGUpKQorICAgICAgICAgICAgICAgIHZhbHVlID0gJ1xuJy5qb2luKHJlbW90ZV9maWxl
cykKIAogICAgICAgICBzZWxmLl9leGVjdXRlKENvbW1hbmQuU0VORF9LRVlTX1RPX0VMRU1FTlQs
CiAgICAgICAgICAgICAgICAgICAgICAgeyd0ZXh0JzogIiIuam9pbihrZXlzX3RvX3R5cGluZyh2
YWx1ZSkpLApAQCAtNzA0LDggKzcwOSw3IEBAIGNsYXNzIFdlYkVsZW1lbnQoQmFzZVdlYkVsZW1l
bnQpOgogCiAgICAgZGVmIGZpbmRfZWxlbWVudChzZWxmLCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6
CiAgICAgICAgICIiIgotICAgICAgICBGaW5kIGFuIGVsZW1lbnQgZ2l2ZW4gYSBCeSBzdHJhdGVn
eSBhbmQgbG9jYXRvci4gUHJlZmVyIHRoZSBmaW5kX2VsZW1lbnRfYnlfKiBtZXRob2RzIHdoZW4K
LSAgICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQgYW4gZWxlbWVudCBnaXZlbiBhIEJ5IHN0
cmF0ZWd5IGFuZCBsb2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAgICAgICAgICAgIDo6CkBA
IC03MzIsOCArNzM2LDcgQEAgY2xhc3MgV2ViRWxlbWVudChCYXNlV2ViRWxlbWVudCk6CiAKICAg
ICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6CiAgICAgICAg
ICIiIgotICAgICAgICBGaW5kIGVsZW1lbnRzIGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0
b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50c19ieV8qIG1ldGhvZHMgd2hlbgotICAgICAgICBw
b3NzaWJsZS4KKyAgICAgICAgRmluZCBlbGVtZW50cyBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBs
b2NhdG9yLgogCiAgICAgICAgIDpVc2FnZToKICAgICAgICAgICAgIDo6CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2Fm
YXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5weQppbmRl
eCAyMmM2MjNlNjEwYWYuLmQ2OTI0Mjg5OThmNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29u
bmVjdGlvbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvc2FmYXJpL3JlbW90ZV9jb25uZWN0aW9uLnB5CkBAIC0yMyw4ICsyMyw4
IEBAIGNsYXNzIFNhZmFyaVJlbW90ZUNvbm5lY3Rpb24oUmVtb3RlQ29ubmVjdGlvbik6CiAKICAg
ICBicm93c2VyX25hbWUgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLlNBRkFSSVsnYnJvd3Nlck5hbWUn
XQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2
ZT1UcnVlKToKLSAgICAgICAgUmVtb3RlQ29ubmVjdGlvbi5fX2luaXRfXyhzZWxmLCByZW1vdGVf
c2VydmVyX2FkZHIsIGtlZXBfYWxpdmUpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9z
ZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVlLCBpZ25vcmVfcHJveHk9RmFsc2UpOgorICAgICAg
ICBSZW1vdGVDb25uZWN0aW9uLl9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2Vl
cF9hbGl2ZSwgaWdub3JlX3Byb3h5PWlnbm9yZV9wcm94eSkKIAogICAgICAgICBzZWxmLl9jb21t
YW5kc1siR0VUX1BFUk1JU1NJT05TIl0gPSAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Fw
cGxlL3Blcm1pc3Npb25zJykKICAgICAgICAgc2VsZi5fY29tbWFuZHNbIlNFVF9QRVJNSVNTSU9O
UyJdID0gKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBwbGUvcGVybWlzc2lvbnMnKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Fw
aV9leGFtcGxlX3Rlc3RzLnB5CmluZGV4IDM5NzQ5MjU0OWMyZC4uMmU3YTA2YjRlZmU4IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vYXBpX2V4YW1wbGVfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Fw
aV9leGFtcGxlX3Rlc3RzLnB5CkBAIC0xLDIwICsxLDMgQEAKLSMgTGljZW5zZWQgdG8gdGhlIFNv
ZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCi0jIG9yIG1vcmUgY29u
dHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQotIyBkaXN0
cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgotIyByZWdh
cmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCi0j
IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKLSMgIkxp
Y2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQot
IyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl
IGF0Ci0jCi0jICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0j
Ci0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp
dGluZywKLSMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp
YnV0ZWQgb24gYW4KLSMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJ
VElPTlMgT0YgQU5ZCi0jIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhl
IExpY2Vuc2UgZm9yIHRoZQotIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kIGxpbWl0YXRpb25zCi0jIHVuZGVyIHRoZSBMaWNlbnNlLgotCiAjIENvcHlyaWdodCAy
MDA4LTIwMDkgV2ViRHJpdmVyIGNvbW1pdHRlcnMKICMgQ29weXJpZ2h0IDIwMDgtMjAwOSBHb29n
bGUgSW5jLgogIwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190ZXN0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVzdHMucHkKaW5kZXggY2EwZDA4MDBhMzJj
Li40YzkxYzIyN2YwZGIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVz
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190ZXN0cy5weQpAQCAtMTc4LDE0
ICsxNzgsMTQgQEAgZGVmIGdldFNjcm9sbFRvcChkcml2ZXIpOgogICAgIHJldHVybiBkcml2ZXIu
ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCIpCiAKIAotQHB5
dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3goCi0gICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYmRyaXZlci9pc3N1ZXMvNDA4JykKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUoCi0g
ICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvNDA4JykK
LUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKLWRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja0Vs
ZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgic2Nyb2xs
aW5nX3Rlc3RzL3BhZ2Vfd2l0aF90YWxsX2ZyYW1lLmh0bWwiKQotICAgIGRyaXZlci5zd2l0Y2hf
dG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAidGFsbF9mcmFtZSIpKQotICAg
IGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJjaGVja2JveCIpCi0gICAg
ZWxlbWVudC5jbGljaygpCi0gICAgYXNzZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKQorIyBAcHl0
ZXN0Lm1hcmsueGZhaWxfZmlyZWZveCgKKyMgICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCisjIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUo
CisjICAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lzc3Vlcy80
MDgnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCisjIGRlZiB0ZXN0U2hvdWxkQmVBYmxl
VG9DbGlja0VsZW1lbnRJbkFUYWxsRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5s
b2FkKCJzY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3RhbGxfZnJhbWUuaHRtbCIpCisjICAgICBk
cml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgInRhbGxf
ZnJhbWUiKSkKKyMgICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJj
aGVja2JveCIpCisjICAgICBlbGVtZW50LmNsaWNrKCkKKyMgICAgIGFzc2VydCBlbGVtZW50Lmlz
X3NlbGVjdGVkKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9maW5kaW5n
X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2ZpbmRpbmdfdGVzdHMucHkKaW5k
ZXggZDZlNzg0MjgwNTczLi45YjgwMWRjMzBkN2MgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2
ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVu
dF9maW5kaW5nX3Rlc3RzLnB5CkBAIC0zMzUsMTYgKzMzNSwxNiBAQCBkZWYgdGVzdF9GaW5kaW5n
X0FMaW5rX0J5X1hwYXRoX1VzaW5nX0NvbnRhaW5zX0tleXdvcmRfU2hvdWxkX1dvcmsoZHJpdmVy
LCBwYWdlcwogICAgIGFzc2VydCAiaGVsbG8gd29ybGQiIGluIGVsZW1lbnQudGV4dAogCiAKLUBw
eXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikK
LUBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmFpc2VzPUludmFsaWRTZWxlY3RvckV4
Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1JbnZhbGlkU2VsZWN0
b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1JbnZhbGlkU2Vs
ZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1Ob1N1Y2hF
bGVtZW50RXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3dlYmtpdGd0ayhyYWlzZXM9SW52
YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQotZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9F
bGVtZW50X0J5X1hQYXRoX1dpdGhfTmFtZXNwYWNlKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2Vz
LmxvYWQoInN2Z1BhZ2UuaHRtbCIpCi0gICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuWFBBVEgsICIvL3N2ZzpzdmcvL3N2Zzp0ZXh0IikKLSAgICBhc3NlcnQgZWxlbWVudC50ZXh0
ID09ICJUZXN0IENoYXJ0IgorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1JbnZh
bGlkU2VsZWN0b3JFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2Uo
cmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Zp
cmVmb3gocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhm
YWlsX3JlbW90ZShyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1h
cmsueGZhaWxfc2FmYXJpKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0
Lm1hcmsueGZhaWxfd2Via2l0Z3RrKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCisj
IGRlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfRWxlbWVudF9CeV9YUGF0aF9XaXRoX05h
bWVzcGFjZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoInN2Z1BhZ2UuaHRtbCIp
CisjICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8vc3ZnOnN2
Zy8vc3ZnOnRleHQiKQorIyAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiVGVzdCBDaGFydCIK
IAogCiBkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0VsZW1lbnRfQnlfWFBhdGhfSW5f
WG1sX0RvY3VtZW50KGRyaXZlciwgcGFnZXMpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1l
X3N3aXRjaGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkK
aW5kZXggOGE3NTliNjAwYjk4Li4xOGIzNDY1NzU4MTYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9m
cmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1lX3N3aXRjaGluZ190
ZXN0cy5weQpAQCAtMzY4LDIzICszNjgsMjMgQEAgZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRj
aFRvVGhlVG9wSWZUaGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzV2l0aFdlYmVsZW1lbnQKICAg
ICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9s
b2NhdGVkKChCeS5JRCwgInN1Y2Nlc3MiKSkpCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9t
ZShyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF9jaHJv
bWl1bWVkZ2UocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZh
aWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9p
c3N1ZXMvNjE0JykKLUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRyaXZlckV4
Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1
Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKLUBweXRlc3QubWFyay54ZmFp
bF93ZWJraXRndGsocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsu
eGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRvRG9Bbnl0aGluZ1RoZUZyYW1l
SXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgiZnJh
bWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRtbCIpCi0gICAgZHJpdmVyLnN3aXRj
aF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIpKQotCi0gICAg
a2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1lIikKLSAg
ICBraWxsSWZyYW1lLmNsaWNrKCkKLQotICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hGcmFt
ZUV4Y2VwdGlvbik6Ci0gICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZy
YW1lIikuY2xpY2soKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1Ob1N1Y2hF
bGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKHJhaXNl
cz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChy
YWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82MTQn
KQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24s
CisjICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20v
bW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjE0JykKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3dl
YmtpdGd0ayhyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhm
YWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRvRG9Bbnl0aGluZ1RoZUZyYW1l
SXNEZWxldGVkRnJvbVVuZGVyVXMoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJm
cmFtZV9zd2l0Y2hpbmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1sIikKKyMgICAgIGRyaXZlci5z
d2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZTEiKSkKKwor
IyAgICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1l
IikKKyMgICAgIGtpbGxJZnJhbWUuY2xpY2soKQorCisjICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
Tm9TdWNoRnJhbWVFeGNlcHRpb24pOgorIyAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnku
SUQsICJraWxsSWZyYW1lIikuY2xpY2soKQogCiAKIGRlZiB0ZXN0U2hvdWxkUmV0dXJuV2luZG93
VGl0bGVJbkFGcmFtZXNldChkcml2ZXIsIHBhZ2VzKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9w
YWdlX2xvYWRpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5Cmlu
ZGV4IDE0MTFlZTU5ZGExYi4uOWJjN2E1YjUwZWNkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFn
ZV9sb2FkaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVzdHMucHkK
QEAgLTE1LDEyICsxNSwxMiBAQAogIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlz
c2lvbnMgYW5kIGxpbWl0YXRpb25zCiAjIHVuZGVyIHRoZSBMaWNlbnNlLgogCi1pbXBvcnQgcHl0
ZXN0Ci0KLWZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4
Y2VwdGlvbgotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQotZnJv
bSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0Ci1m
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25z
IGFzIEVDCisjIGltcG9ydCBweXRlc3QKKyMKKyMgZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0
aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCisjIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVy
LmNvbW1vbi5ieSBpbXBvcnQgQnkKKyMgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53
YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0CisjIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBv
cnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKIAogCiBkZWYgdGVzdFNob3VsZFdh
aXRGb3JEb2N1bWVudFRvQmVMb2FkZWQoZHJpdmVyLCBwYWdlcyk6CkBAIC00MCwyNSArNDAsMjUg
QEAgZGVmIHRlc3RTaG91bGRXYWl0Rm9yRG9jdW1lbnRUb0JlTG9hZGVkKGRyaXZlciwgcGFnZXMp
OgogIyAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIKIAogCi1kZWYg
dGVzdFNob3VsZEJlQWJsZVRvR2V0QUZyYWdtZW50T25UaGVDdXJyZW50UGFnZShkcml2ZXIsIHBh
Z2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCi0gICAgbG9jYXRpb24gPSBk
cml2ZXIuY3VycmVudF91cmwKLSAgICBkcml2ZXIuZ2V0KGxvY2F0aW9uICsgIiN0ZXh0IikKLSAg
ICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaWQxIikKKyMgZGVmIHRlc3RT
aG91bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBhZ2UoZHJpdmVyLCBwYWdlcyk6
CisjICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisjICAgICBsb2NhdGlvbiA9IGRy
aXZlci5jdXJyZW50X3VybAorIyAgICAgZHJpdmVyLmdldChsb2NhdGlvbiArICIjdGV4dCIpCisj
ICAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaWQxIikKIAogCi1AcHl0
ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQotQHB5dGVz
dC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQotZGVmIHRlc3RT
aG91bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0RG9lc05vdFJlc29sdmUoZHJpdmVyKToKLSAg
ICAjICBPZiBjb3Vyc2UsIHdlJ3JlIHVwIHRoZSBjcmVlayBpZiB0aGlzIGV2ZXIgZG9lcyBnZXQg
cmVnaXN0ZXJlZAotICAgIGRyaXZlci5nZXQoImh0dHA6Ly93d3cudGhpc3VybGRvZXNub3RleGlz
dC5jb214LyIpCisjIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24pCisjIEBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRyaXZlckV4
Y2VwdGlvbikKKyMgZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0RG9lc05v
dFJlc29sdmUoZHJpdmVyKToKKyMgICAgICMgIE9mIGNvdXJzZSwgd2UncmUgdXAgdGhlIGNyZWVr
IGlmIHRoaXMgZXZlciBkb2VzIGdldCByZWdpc3RlcmVkCisjICAgICBkcml2ZXIuZ2V0KCJodHRw
Oi8vd3d3LnRoaXN1cmxkb2Vzbm90ZXhpc3QuY29teC8iKQogCiAKLUBweXRlc3QubWFyay54ZmFp
bF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxf
cmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCi1kZWYgdGVzdFNob3VsZFJldHVybldo
ZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgotICAgICMgIEhlcmUncyBo
b3BpbmcgdGhhdCB0aGVyZSdzIG5vdGhpbmcgaGVyZS4gVGhlcmUgc2hvdWxkbid0IGJlCi0gICAg
ZHJpdmVyLmdldCgiaHR0cDovL2xvY2FsaG9zdDozMDAxIikKKyMgQHB5dGVzdC5tYXJrLnhmYWls
X2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhmYWls
X3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorIyBkZWYgdGVzdFNob3VsZFJldHVy
bldoZW5HZXR0aW5nQVVybFRoYXREb2VzTm90Q29ubmVjdChkcml2ZXIpOgorIyAgICAgIyAgSGVy
ZSdzIGhvcGluZyB0aGF0IHRoZXJlJ3Mgbm90aGluZyBoZXJlLiBUaGVyZSBzaG91bGRuJ3QgYmUK
KyMgICAgIGRyaXZlci5nZXQoImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMSIpCiAKICMgZGVmIHRlc3RT
aG91bGRCZUFibGVUb0xvYWRBUGFnZVdpdGhGcmFtZXNldHNBbmRXYWl0VW50aWxBbGxGcmFtZXNB
cmVMb2FkZWQoKSB7CiAjICAgICBkcml2ZXIuZ2V0KHBhZ2VzLmZyYW1lc2V0UGFnZSkKQEAgLTgx
LDU1ICs4MSw1NSBAQCBkZWYgdGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2Vz
Tm90Q29ubmVjdChkcml2ZXIpOgogIyAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIudGl0bGUs
IGFueU9mKGVxdWFsVG8ob3JpZ2luYWxUaXRsZSksIGVxdWFsVG8oIldlIExlYXZlIEZyb20gSGVy
ZSIpKSk7CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVmIHRlc3RTaG91bGRCZUFi
bGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6Ci0gICAg
cGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisjIEBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkK
KyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3Rvcnko
ZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKIAotICAg
IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1p
dCgpCi0gICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBB
cnJpdmUgSGVyZSIpKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9
ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyMgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51
bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkKIAotICAgIGRyaXZlci5iYWNrKCkK
LSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCisjICAgICBk
cml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBGcm9t
IEhlcmUiCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVmIHRlc3RTaG91bGRCZUFi
bGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnlJblByZXNlbmNlT2ZJZnJhbWVzKGRy
aXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyMgQHB5dGVz
dC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdhdGVCYWNr
SW5UaGVCcm93c2VySGlzdG9yeUluUHJlc2VuY2VPZklmcmFtZXMoZHJpdmVyLCBwYWdlcyk6Cisj
ICAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCiAKLSAgICBkcml2ZXIuZmluZF9lbGVt
ZW50KGJ5PUJ5Lk5BTUUsIHZhbHVlPSJzYW1lV2luZG93IikuY2xpY2soKQorIyAgICAgZHJpdmVy
LmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT0ic2FtZVdpbmRvdyIpLmNsaWNrKCkKIAot
ICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBoYXMgaWZyYW1lcyIKKyMgICAg
IGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIlRoaXMgcGFnZSBoYXMgaWZyYW1lcyIKIAotICAgIGRy
aXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2Ui
CisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRN
TCBUZXN0IFBhZ2UiCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlRm9yd2FyZHNJ
blRoZUJyb3dzZXJIaXN0b3J5KGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQoImZvcm1Q
YWdlLmh0bWwiKQorIyBkZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdhdGVGb3J3YXJkc0luVGhl
QnJvd3Nlckhpc3RvcnkoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKIAotICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpbWFn
ZUJ1dHRvbiIpLnN1Ym1pdCgpCi0gICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVD
LnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyMgICAgIFdlYkRyaXZlcldh
aXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkKIAotICAg
IGRyaXZlci5iYWNrKCkKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBMZWF2ZSBGcm9t
IEhlcmUiCisjICAgICBkcml2ZXIuYmFjaygpCisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09
ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCiAKLSAgICBkcml2ZXIuZm9yd2FyZCgpCi0gICAgYXNzZXJ0
IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisjICAgICBkcml2ZXIuZm9yd2FyZCgp
CisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIKIAogCi1AcHl0
ZXN0Lm1hcmsueGZhaWxfaWUKLUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJ1bj1GYWxzZSkK
LUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocnVuPUZhbHNlKQotQHB5dGVzdC5tYXJrLnhmYWls
X2Nocm9tZShydW49RmFsc2UpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKHJ1bj1G
YWxzZSkKLWRlZiB0ZXN0U2hvdWxkTm90SGFuZ2lmRG9jdW1lbnRPcGVuQ2FsbElzTmV2ZXJGb2xs
b3dlZEJ5RG9jdW1lbnRDbG9zZUNhbGwoZHJpdmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgi
ZG9jdW1lbnRfd3JpdGVfaW5fb25sb2FkLmh0bWwiKQotICAgIGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuWFBBVEgsICIvL2JvZHkiKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKKyMgQHB5dGVzdC5t
YXJrLnhmYWlsX2ZpcmVmb3gocnVuPUZhbHNlKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3Rl
KHJ1bj1GYWxzZSkKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShydW49RmFsc2UpCisjIEBw
eXRlc3QubWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocnVuPUZhbHNlKQorIyBkZWYgdGVzdFNob3Vs
ZE5vdEhhbmdpZkRvY3VtZW50T3BlbkNhbGxJc05ldmVyRm9sbG93ZWRCeURvY3VtZW50Q2xvc2VD
YWxsKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgiZG9jdW1lbnRfd3JpdGVfaW5f
b25sb2FkLmh0bWwiKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8vYm9k
eSIpCiAKIAotZGVmIHRlc3RTaG91bGRCZUFibGVUb1JlZnJlc2hBUGFnZShkcml2ZXIsIHBhZ2Vz
KToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisjIGRlZiB0ZXN0U2hvdWxkQmVB
YmxlVG9SZWZyZXNoQVBhZ2UoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJ4aHRt
bFRlc3QuaHRtbCIpCiAKLSAgICBkcml2ZXIucmVmcmVzaCgpCisjICAgICBkcml2ZXIucmVmcmVz
aCgpCiAKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCisjICAg
ICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vc2NyaXB0X3Bpbm5pbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2NyaXB0X3Bpbm5p
bmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZWY5
Y2UzYTdmNWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2NyaXB0X3Bpbm5pbmdfdGVz
dHMucHkKQEAgLTAsMCArMSw2OSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgSmF2YXNjcmlwdEV4Y2VwdGlvbgorCisKK2Rl
ZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRfcGlubmluZyhkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZlci5waW5uZWRfc2NyaXB0cyA9
IHt9CisgICAgc2NyaXB0X2tleSA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gJ2kgbGlrZSBj
aGVlc2UnOyIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoc2NyaXB0X2tl
eSkKKworICAgIGFzc2VydCByZXN1bHQgPT0gJ2kgbGlrZSBjaGVlc2UnCisKKworZGVmIHRlc3Rf
c2hvdWxkX2FsbG93X3Bpbm5lZF9zY3JpcHRzX3RvX3Rha2VfYXJndW1lbnRzKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnBpbm5l
ZF9zY3JpcHRzID0ge30KKyAgICBoZWxsbyA9IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gYXJn
dW1lbnRzWzBdIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdChoZWxsbywg
ImNoZWVzZSIpCisKKyAgICBhc3NlcnQgcmVzdWx0ID09ICJjaGVlc2UiCisKKworZGVmIHRlc3Rf
c2hvdWxkX2xpc3RfYWxsX3Bpbm5lZF9zY3JpcHRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnBpbm5lZF9zY3JpcHRzID0ge30K
KyAgICBleHBlY3RlZCA9IFtdCisgICAgZXhwZWN0ZWQuYXBwZW5kKGRyaXZlci5waW5fc2NyaXB0
KCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpLmlkKQorICAgIGV4cGVjdGVkLmFwcGVuZChkcml2ZXIu
cGluX3NjcmlwdCgicmV0dXJuICdjaGVlc2UnOyIpLmlkKQorICAgIGV4cGVjdGVkLmFwcGVuZChk
cml2ZXIucGluX3NjcmlwdCgicmV0dXJuIDQyOyIpLmlkKQorCisgICAgcmVzdWx0ID0gZHJpdmVy
LmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGV4cGVjdGVkID09IHJlc3VsdAorCisK
K2RlZiB0ZXN0X3Nob3VsZF9hbGxvd19zY3JpcHRzX3RvX2JlX3VucGlubmVkKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnBpbm5l
ZF9zY3JpcHRzID0ge30KKyAgICBjaGVlc2UgPSBkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuICdj
aGVlc2UnOyIpCisgICAgZHJpdmVyLnVucGluKGNoZWVzZSkKKyAgICByZXN1bHRzID0gZHJpdmVy
LmdldF9waW5uZWRfc2NyaXB0cygpCisgICAgYXNzZXJ0IGNoZWVzZSBub3QgaW4gcmVzdWx0cwor
CisKK2RlZiB0ZXN0X2NhbGxpbmdfdW5waW5uZWRfc2NyaXB0X2NhdXNlc19lcnJvcihkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGNoZWVzZSA9
IGRyaXZlci5waW5fc2NyaXB0KCJyZXR1cm4gJ2JyaWUnOyIpCisgICAgZHJpdmVyLnVucGluKGNo
ZWVzZSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSmF2YXNjcmlwdEV4Y2VwdGlvbik6CisgICAg
ICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdChjaGVlc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
c2VsZWN0X2NsYXNzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weQpp
bmRleCA1MmI3ZDliOThlMWMuLjMxNTI2YWQ0MmNkMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Nl
bGVjdF9jbGFzc190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2NsYXNzX3Rlc3RzLnB5
CkBAIC05MSwyMCArOTEsMjAgQEAgZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2luZ2xlKGRy
aXZlciwgcGFnZXMpOgogICAgICAgICAgICAgYXNzZXJ0IHNlbC5maXJzdF9zZWxlY3RlZF9vcHRp
b24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX2No
cm9tZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2
ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRn
ZSgKLSAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIv
aXNzdWVzL2RldGFpbD9pZD04MjInKQotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQotZGVmIHRl
c3RTZWxlY3RCeVZpc2libGVUZXh0U2hvdWxkTm9ybWFsaXplU3BhY2VzKGRyaXZlciwgcGFnZXMp
OgotICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQotCi0gICAgZm9yIHNlbGVjdCBpbiBb
c2luZ2xlU2VsZWN0VmFsdWVzV2l0aFNwYWNlc106Ci0gICAgICAgIHNlbCA9IFNlbGVjdChkcml2
ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkKLSAgICAgICAgZm9yIHgg
aW4gcmFuZ2UobGVuKHNlbGVjdFsndmFsdWVzJ10pKToKLSAgICAgICAgICAgIHByaW50KHNlbGVj
dFsndmFsdWVzJ11beF0pCi0gICAgICAgICAgICBzZWwuc2VsZWN0X2J5X3Zpc2libGVfdGV4dChz
ZWxlY3RbJ3ZhbHVlcyddW3hdKQotICAgICAgICAgICAgYXNzZXJ0IHNlbC5maXJzdF9zZWxlY3Rl
ZF9vcHRpb24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCisjIEBweXRlc3QubWFyay54ZmFp
bF9jaHJvbWUoCisjICAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJv
bWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD04MjInKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hy
b21pdW1lZGdlKAorIyAgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hy
b21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3Nh
ZmFyaQorIyBkZWYgdGVzdFNlbGVjdEJ5VmlzaWJsZVRleHRTaG91bGROb3JtYWxpemVTcGFjZXMo
ZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworIyAg
ICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzV2l0aFNwYWNlc106CisjICAgICAg
ICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1l
J10pKQorIyAgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3RbJ3ZhbHVlcyddKSk6Cisj
ICAgICAgICAgICAgIHByaW50KHNlbGVjdFsndmFsdWVzJ11beF0pCisjICAgICAgICAgICAgIHNl
bC5zZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11beF0pCisjICAgICAgICAg
ICAgIGFzc2VydCBzZWwuZmlyc3Rfc2VsZWN0ZWRfb3B0aW9uLnRleHQgPT0gc2VsZWN0Wyd2YWx1
ZXMnXVt4XQogCiAKIEBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJlYXNvbj0naHR0cHM6Ly9i
dWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTQwMycpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0cy5weQpp
bmRleCA4NWViMjQ3YjI5ODYuLjk4NTA5YjE0MTUyNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dp
bmRvd190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5CkBAIC0xNCwzMCAr
MTQsMzAgQEAKICMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlCiAjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQgbGltaXRhdGlvbnMKICMgdW5kZXIgdGhlIExpY2Vuc2UuCi1pbXBvcnQgb3MKKwogaW1wb3J0
IHB5dGVzdAogCiBmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBXZWJEcml2
ZXJFeGNlcHRpb24KIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdCBpbXBvcnQg
V2ViRHJpdmVyV2FpdAogCiAKLUBweXRlc3QubWFyay54ZmFpbF9pZQotQHB5dGVzdC5tYXJrLnhm
YWlsX2Nocm9taXVtZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCi1AcHl0ZXN0Lm1hcmsu
eGZhaWxfZmlyZWZveChyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCi1AcHl0ZXN0Lm1hcmsueGZh
aWxfcmVtb3RlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKLWRlZiB0ZXN0U2hvdWxkTWF4aW1p
emVUaGVXaW5kb3coZHJpdmVyKToKLSAgICByZXNpemVfdGltZW91dCA9IDUKLSAgICB3YWl0ID0g
V2ViRHJpdmVyV2FpdChkcml2ZXIsIHJlc2l6ZV90aW1lb3V0KQotICAgIG9sZF9zaXplID0gZHJp
dmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgZHJpdmVyLnNldF93aW5kb3dfc2l6ZSgyMDAsIDIw
MCkKLSAgICB3YWl0LnVudGlsKAotICAgICAgICBsYW1iZGEgZHI6IGRyLmdldF93aW5kb3dfc2l6
ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0aCJdICE9IDIwMCBhbmQgb2xkX3NpemVb
ImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCi0gICAgc2l6ZSA9IGRyaXZlci5nZXRfd2luZG93
X3NpemUoKQotICAgIGRyaXZlci5tYXhpbWl6ZV93aW5kb3coKQotICAgIHdhaXQudW50aWwobGFt
YmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAhPSBzaXplKQotICAgIG5ld19zaXplID0gZHJp
dmVyLmdldF93aW5kb3dfc2l6ZSgpCi0gICAgYXNzZXJ0IG5ld19zaXplWyJ3aWR0aCJdID4gc2l6
ZVsid2lkdGgiXQotICAgIGFzc2VydCBuZXdfc2l6ZVsiaGVpZ2h0Il0gPiBzaXplWyJoZWlnaHQi
XQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVt
ZWRnZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIEBweXRlc3QubWFyay54ZmFpbF9maXJl
Zm94KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90
ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIGRlZiB0ZXN0U2hvdWxkTWF4aW1pemVUaGVX
aW5kb3coZHJpdmVyKToKKyMgICAgIHJlc2l6ZV90aW1lb3V0ID0gNQorIyAgICAgd2FpdCA9IFdl
YkRyaXZlcldhaXQoZHJpdmVyLCByZXNpemVfdGltZW91dCkKKyMgICAgIG9sZF9zaXplID0gZHJp
dmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIuc2V0X3dpbmRvd19zaXplKDIwMCwg
MjAwKQorIyAgICAgd2FpdC51bnRpbCgKKyMgICAgICAgICBsYW1iZGEgZHI6IGRyLmdldF93aW5k
b3dfc2l6ZSgpICE9IG9sZF9zaXplIGlmIG9sZF9zaXplWyJ3aWR0aCJdICE9IDIwMCBhbmQgb2xk
X3NpemVbImhlaWdodCJdICE9IDIwMCBlbHNlIFRydWUpCisjICAgICBzaXplID0gZHJpdmVyLmdl
dF93aW5kb3dfc2l6ZSgpCisjICAgICBkcml2ZXIubWF4aW1pemVfd2luZG93KCkKKyMgICAgIHdh
aXQudW50aWwobGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAhPSBzaXplKQorIyAgICAg
bmV3X3NpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyMgICAgIGFzc2VydCBuZXdfc2l6
ZVsid2lkdGgiXSA+IHNpemVbIndpZHRoIl0KKyMgICAgIGFzc2VydCBuZXdfc2l6ZVsiaGVpZ2h0
Il0gPiBzaXplWyJoZWlnaHQiXQogCiAKIGRlZiB0ZXN0X3Nob3VsZF9nZXRfdGhlX3NpemVfb2Zf
dGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CkBAIC0xMTIsMzcgKzExMiwzNyBAQCBkZWYgdGVz
dF9zaG91bGRfc2V0X3RoZV9yZWN0X29mX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgogICAg
IGFzc2VydCBuZXdfcmVjdC5nZXQoJ2hlaWdodCcpID09IHRhcmdldF9oZWlnaHQKIAogCi1AcHl0
ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBpbXBsZW1l
bnRlZCcpCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKG9zLmVudmlyb24uZ2V0KCdUUkFWSVMnKSA9PSAn
dHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIGNh
dXNlcyBUcmF2aXMgdG8gaGFuZycpCi1AcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QK
LWRlZiB0ZXN0X3Nob3VsZF9mdWxsc2NyZWVuX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgot
ICAgIHN0YXJ0X3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93Lmlu
bmVyV2lkdGg7JykKLSAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3Jl
dHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7JykKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShy
YWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCisjIEBweXRlc3QubWFy
ay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0cnVlJywKKyMgICAgICAgICAg
ICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBjYXVzZXMgVHJhdmlzIHRvIGhh
bmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QKKyMgZGVmIHRlc3Rfc2hv
dWxkX2Z1bGxzY3JlZW5fdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CisjICAgICBzdGFydF93
aWR0aCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycp
CisjICAgICBzdGFydF9oZWlnaHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5k
b3cuaW5uZXJIZWlnaHQ7JykKIAotICAgIGRyaXZlci5mdWxsc2NyZWVuX3dpbmRvdygpCisjICAg
ICBkcml2ZXIuZnVsbHNjcmVlbl93aW5kb3coKQogCi0gICAgV2ViRHJpdmVyV2FpdChkcml2ZXIs
IDIpXAotICAgICAgICAudW50aWwobGFtYmRhIGQ6IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0
dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpID4gc3RhcnRfd2lkdGgpCisjICAgICBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMilcCisjICAgICAgICAgLnVudGlsKGxhbWJkYSBkOiBkcml2ZXIuZXhlY3V0
ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKSA+IHN0YXJ0X3dpZHRoKQogCi0g
ICAgZW5kX3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVy
V2lkdGg7JykKLSAgICBlbmRfaGVpZ2h0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4g
d2luZG93LmlubmVySGVpZ2h0OycpCisjICAgICBlbmRfd2lkdGggPSBkcml2ZXIuZXhlY3V0ZV9z
Y3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKQorIyAgICAgZW5kX2hlaWdodCA9IGRy
aXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDsnKQogCi0gICAg
ZHJpdmVyLnF1aXQoKSAgIyBLaWxsIGRyaXZlciBzbyB3ZSBhcmVuJ3QgcnVubmluZyBmdWxsc2Ny
ZWVuIGFmdGVyCisjICAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4n
dCBydW5uaW5nIGZ1bGxzY3JlZW4gYWZ0ZXIKIAotICAgIGFzc2VydCBlbmRfd2lkdGggPiBzdGFy
dF93aWR0aAotICAgIGFzc2VydCBlbmRfaGVpZ2h0ID4gc3RhcnRfaGVpZ2h0CisjICAgICBhc3Nl
cnQgZW5kX3dpZHRoID4gc3RhcnRfd2lkdGgKKyMgICAgIGFzc2VydCBlbmRfaGVpZ2h0ID4gc3Rh
cnRfaGVpZ2h0CiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNv
bW1hbmQgbm90IGltcGxlbWVudGVkJykKLUBweXRlc3QubWFyay5za2lwaWYob3MuZW52aXJvbi5n
ZXQoJ1RSQVZJUycpID09ICd0cnVlJywKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdNaW5p
bWl6ZSBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCi1AcHl0ZXN0Lm1hcmsubm9fZHJp
dmVyX2FmdGVyX3Rlc3QKLWRlZiB0ZXN0X3Nob3VsZF9taW5pbWl6ZV90aGVfY3VycmVudF93aW5k
b3coZHJpdmVyKToKLSAgICBkcml2ZXIubWluaW1pemVfd2luZG93KCkKLSAgICBtaW5pbWl6ZWQg
PSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5oaWRkZW47JykKLSAgICBk
cml2ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4ndCBydW5uaW5nIG1pbmltaXpl
ZCBhZnRlcgotCi0gICAgYXNzZXJ0IG1pbmltaXplZCBpcyBUcnVlCisjIEBweXRlc3QubWFyay54
ZmFpbF9zYWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyMgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKKyMg
QHB5dGVzdC5tYXJrLnNraXBpZihvcy5lbnZpcm9uLmdldCgnVFJBVklTJykgPT0gJ3RydWUnLAor
IyAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFuZCBjYXVzZXMgVHJh
dmlzIHRvIGhhbmcnKQorIyBAcHl0ZXN0Lm1hcmsubm9fZHJpdmVyX2FmdGVyX3Rlc3QKKyMgZGVm
IHRlc3Rfc2hvdWxkX21pbmltaXplX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgorIyAgICAg
ZHJpdmVyLm1pbmltaXplX3dpbmRvdygpCisjICAgICBtaW5pbWl6ZWQgPSBkcml2ZXIuZXhlY3V0
ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5oaWRkZW47JykKKyMgICAgIGRyaXZlci5xdWl0KCkg
ICMgS2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1bm5pbmcgbWluaW1pemVkIGFmdGVyCisKKyMg
ICAgIGFzc2VydCBtaW5pbWl6ZWQgaXMgVHJ1ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24gYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
aW1wb3J0ZXIuanNvbgppbmRleCBmNDAwZWY1YTM5NTcuLmVhYTgwMTg3MjMwNSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24KKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL2ltcG9ydGVyLmpzb24KQEAgLTEsNiArMSw2IEBACiB7CiAg
ICAgInJlcG9zaXRvcnkiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMuZ2l0IiwKLSAgICAicmV2aXNpb24iOiAiYjU3ZGE5N2ZjMDVlNTQ0MGFlNjc1MDI3ZGQ0NWEy
NmJlNDhlMmRiZCIsCisgICAgInJldmlzaW9uIjogImViOGJkY2U1NTJhMmE5YjEwMDEwZjc3NTVl
ZDlkOGQwNzczZDU0OGUiLAogICAgICJwYXRoc190b19pbXBvcnQiOiBbCiAgICAgICAgICJ0b29s
cy93ZWJkcml2ZXIiLAogICAgICAgICAidG9vbHMvd3B0cnVubmVyIiwKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5p
dF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvX19pbml0X18ucHkKaW5kZXggZDg2MGI5ZWEyNTMzLi5hODE3NTE0MDdlNzAgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJp
dmVyL19faW5pdF9fLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CkBAIC02LDYgKzYsNyBAQCBmcm9tIC5jbGll
bnQgaW1wb3J0ICgKICAgICBGaW5kLAogICAgIEZyYW1lLAogICAgIFNlc3Npb24sCisgICAgU2hh
ZG93Um9vdCwKICAgICBUaW1lb3V0cywKICAgICBXaW5kb3cpCiBmcm9tIC5lcnJvciBpbXBvcnQg
KApAQCAtMzQsMyArMzUsNSBAQCBmcm9tIC5lcnJvciBpbXBvcnQgKAogICAgIFVua25vd25NZXRo
b2RFeGNlcHRpb24sCiAgICAgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24sCiAgICAgV2Vi
RHJpdmVyRXhjZXB0aW9uKQorZnJvbSAuYmlkaSBpbXBvcnQgKAorICAgIEJpZGlTZXNzaW9uKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93
ZWJkcml2ZXIvYmlkaS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJk
cml2ZXIvd2ViZHJpdmVyL2JpZGkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4wYmNkNDg5Y2QzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpLnB5CkBAIC0wLDAgKzEs
NTYgQEAKK2ltcG9ydCBjb3B5CitpbXBvcnQgd2Vic29ja2V0cworCitmcm9tIC4gaW1wb3J0IGNs
aWVudAorCitjbGFzcyBCaWRpU2Vzc2lvbihjbGllbnQuU2Vzc2lvbik6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIGhvc3QsCisgICAgICAgICAgICAgICAgIHBvcnQs
CisgICAgICAgICAgICAgICAgIHVybF9wcmVmaXg9Ii8iLAorICAgICAgICAgICAgICAgICBjYXBh
YmlsaXRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uPU5vbmUpOgorICAgICAg
ICAiIiIKKyAgICAgICAgQWRkIGEgY2FwYWJpbGl0eSBvZiAid2ViU29ja2V0VXJsIjogVHJ1ZSB0
byBlbmFibGUKKyAgICAgICAgQmlkaXJlY3Rpb25hbCBjb25uZWN0aW9uIGluIHNlc3Npb24gY3Jl
YXRpb24uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQgPSBO
b25lCisgICAgICAgIGNhcGFiaWxpdGllcyA9IHNlbGYuX2VuYWJsZV93ZWJzb2NrZXQoY2FwYWJp
bGl0aWVzKQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGhvc3QsIHBvcnQsIHVybF9wcmVmaXgs
IGNhcGFiaWxpdGllcywgZXh0ZW5zaW9uKQorCisgICAgZGVmIF9lbmFibGVfd2Vic29ja2V0KHNl
bGYsIGNhcHMpOgorICAgICAgICBpZiBjYXBzOgorICAgICAgICAgICAgY2Fwcy5zZXRkZWZhdWx0
KCJhbHdheXNNYXRjaCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGNhcHMgPSB7ImFsd2F5c01hdGNoIjogeyJ3ZWJTb2NrZXRV
cmwiOiBUcnVlfX0KKyAgICAgICAgcmV0dXJuIGNhcHMKKworICAgIGRlZiBtYXRjaChzZWxmLCBj
YXBhYmlsaXRpZXMpOgorICAgICAgICAiIiJFeHBlbnNpdmUgbWF0Y2ggdG8gc2VlIGlmIGNhcGFi
aWxpdGllcyBpcyB0aGUgc2FtZSBhcyBwcmV2aW91c2x5CisgICAgICAgIHJlcXVlc3RlZCBjYXBh
YmlsaXRpZXMgaWYgd2Vic29ja2V0IHdvdWxkIGJlIGVuYWJsZWQuCisKKyAgICAgICAgOnJldHVy
biBCb29sZWFuLgorICAgICAgICAiIiIKKyAgICAgICAgY2FwcyA9IGNvcHkuZGVlcGNvcHkoY2Fw
YWJpbGl0aWVzKQorICAgICAgICBjYXBzID0gc2VsZi5fZW5hYmxlX3dlYnNvY2tldChjYXBzKQor
ICAgICAgICByZXR1cm4gc3VwZXIoKS5tYXRjaChjYXBzKQorCisgICAgYXN5bmMgZGVmIHN0YXJ0
KHNlbGYpOgorICAgICAgICAiIiJTdGFydCBhIG5ldyBXZWJEcml2ZXIgQmlkaXJlY3Rpb25hbCBz
ZXNzaW9uCisgICAgICAgIHdpdGggd2Vic29ja2V0IGNvbm5lY3RlZC4KKworICAgICAgICA6cmV0
dXJuOiBEaWN0aW9uYXJ5IHdpdGggYGNhcGFiaWxpdGllc2AgYW5kIGBzZXNzaW9uSWRgLgorICAg
ICAgICAiIiIKKyAgICAgICAgdmFsdWUgPSBzdXBlcigpLnN0YXJ0KCkKKworICAgICAgICBpZiBu
b3Qgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0IG9yIG5vdCBzZWxmLndlYnNvY2tldF90cmFuc3Bv
cnQub3BlbjoKKyAgICAgICAgICAgIHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydCA9IGF3YWl0IHdl
YnNvY2tldHMuY29ubmVjdChzZWxmLmNhcGFiaWxpdGllc1sid2ViU29ja2V0VXJsIl0pCisgICAg
ICAgIHJldHVybiB2YWx1ZQorCisgICAgYXN5bmMgZGVmIGVuZChzZWxmKToKKyAgICAgICAgIiIi
Q2xvc2Ugd2Vic29ja2V0IGNvbm5lY3Rpb24gZmlyc3QgYmVmb3JlIGNsb3Npbmcgc2Vzc2lvbi4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydDoKKyAgICAg
ICAgICAgIGF3YWl0IHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydC5jbG9zZSgpCisgICAgICAgICAg
ICBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQgPSBOb25lCisgICAgICAgIHN1cGVyKCkuZW5kKCkK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL2JpZGkvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTdjNTYzMzJmOTAyCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIv
YmlkaS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDMgQEAKKyMgZmxha2U4OiBub3FhCisKK2Zyb20g
LmNsaWVudCBpbXBvcnQgQmlkaVNlc3Npb24KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvY2xpZW50LnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9j
bGllbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MzA5YTI1
ZTM4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVudC5weQpAQCAtMCwwICsxLDM5MyBAQAor
aW1wb3J0IGFzeW5jaW8KK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBqc29uCitpbXBvcnQgbG9n
Z2luZworaW1wb3J0IHN5cworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKK2Zy
b20gdHlwaW5nIGltcG9ydCBBbnksIEF3YWl0YWJsZSwgQ2FsbGFibGUsIENvcm91dGluZSwgTGlz
dCwgT3B0aW9uYWwsIE1hcHBpbmcsIE11dGFibGVNYXBwaW5nCitmcm9tIHVybGxpYi5wYXJzZSBp
bXBvcnQgdXJsam9pbiwgdXJscGFyc2UKKworaW1wb3J0IHdlYnNvY2tldHMKKworCitsb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcigid2ViZHJpdmVyLmJpZGkiKQorCisKK2NsYXNzIEJpZGlFeGNl
cHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXJyOiBzdHIsIG1zZzog
c3RyLCBzdGFjazogT3B0aW9uYWxbc3RyXSA9IE5vbmUpOgorICAgICAgICBzZWxmLmVyciA9IGVy
cgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBzZWxmLnN0YWNrID0gc3RhY2sKKwor
CitkZWYgZ2V0X3J1bm5pbmdfbG9vcCgpIC0+IGFzeW5jaW8uQWJzdHJhY3RFdmVudExvb3A6Cisg
ICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNyk6CisgICAgICAgIHJldHVybiBhc3luY2lv
LmdldF9ydW5uaW5nX2xvb3AoKQorICAgICMgVW5saWtlIHRoZSBhYm92ZSwgdGhpcyB3aWxsIGFj
dHVhbGx5IGNyZWF0ZSBhbiBldmVudCBsb29wCisgICAgIyBpZiB0aGVyZSBpc24ndCBvbmU7IGhv
cGVmdWxseSBydW5uaW5nIHRlc3RzIGluIFB5dGhvbiA+PSAzLjcKKyAgICAjIHdpbGwgYWxsb3cg
dXMgdG8gY2F0Y2ggYW55IGJlaGF2aW91ciBkaWZmZXJlbmNlCisgICAgcmV0dXJuIGFzeW5jaW8u
Z2V0X2V2ZW50X2xvb3AoKQorCisKK2NsYXNzIEJpZGlTZXNzaW9uOgorICAgICIiIkEgV2ViRHJp
dmVyIEJpRGkgc2Vzc2lvbi4KKworICAgIFRoaXMgaXMgdGhlIG1haW4gcmVwcmVzZW50YXRpb24g
b2YgYSBCaURpIHNlc3Npb24gYW5kIHByb3ZpZGVzIHRoZQorICAgIGludGVyZmFjZSBmb3IgcnVu
bmluZyBjb21tYW5kcyBpbiB0aGUgc2Vzc2lvbiwgYW5kIGZvciBhdHRhY2hpbmcKKyAgICBldmVu
dCBoYW5kbGVycyB0byB0aGUgc2Vzc2lvbi4gRm9yIGV4YW1wbGU6CisKKyAgICBhc3luYyBkZWYg
b25fbG9nKGRhdGEpOgorICAgICAgICBwcmludChkYXRhKQorCisgICAgc2Vzc2lvbiA9IEJpZGlT
ZXNzaW9uKCJ3czovL2xvY2FsaG9zdDo0NDQ1IiwgY2FwYWJpbGl0aWVzKQorICAgIHNlc3Npb24u
YWRkX2V2ZW50X2xpc3RlbmVyKCJsb2cuZW50cnlBZGRlZCIsIG9uX2xvZykKKyAgICBhd2FpdCBz
ZXNzaW9uLnN0YXJ0KCkKKyAgICBhd2FpdCBzZXNzaW9uLnN1YnNjcmliZSgibG9nLmVudHJ5QWRk
ZWQiKQorICAgICMgRG8gc29tZSBzdHVmZiB3aXRoIHRoZSBzZXNzaW9uCisgICAgc2Vzc2lvbi5l
bmQoKQorCisgICAgSWYgdGhlIHNlc3Npb24gaWQgaXMgcHJvdmlkZWQgaXQncyBhc3N1bWVkIHRo
YXQgdGhlIHVuZGVybHlpbmcKKyAgICBXZWJEcml2ZXIgc2Vzc2lvbiB3YXMgYWxyZWFkeSBjcmVh
dGVkLCBhbmQgdGhlIFdlYlNvY2tldCBVUkwgd2FzCisgICAgdGFrZW4gZnJvbSB0aGUgbmV3IHNl
c3Npb24gcmVzcG9uc2UuIElmIG5vIHNlc3Npb24gaWQgaXMgcHJvdmlkZWQsIGl0J3MKKyAgICBh
c3N1bWVkIHRoYXQgYSBCaURpLW9ubHkgc2Vzc2lvbiBzaG91bGQgYmUgY3JlYXRlZCB3aGVuIHN0
YXJ0KCkgaXMgY2FsbGVkLgorCisgICAgSXQgY2FuIGFsc28gYmUgdXNlZCBhcyBhIGNvbnRleHQg
bWFuYWdlciwgd2l0aCB0aGUgV2ViU29ja2V0IHRyYW5zcG9ydAorICAgIGltcGxpY3RseSBiZWlu
ZyBjcmVhdGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgZW50ZXJlZCwgYW5kIGNsb3NlZCB3aGVuCisg
ICAgdGhlIGNvbnRleHQgaXMgZXhpdGVkLgorCisgICAgOnBhcmFtIHdlYnNvY2tldF91cmw6IFdl
YlNvY2tldHMgVVJMIG9uIHdoaWNoIHRvIGNvbm5lY3QgdG8gdGhlIHNlc3Npb24uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRoaXMgZXhjbHVkZXMgYW55IHBhdGggY29tcG9uZW50LgorICAg
IDpwYXJhbSBzZXNzaW9uX2lkOiBTdHJpbmcgaWQgb2YgZXhpc3RpbmcgSFRUUCBzZXNzaW9uCisg
ICAgOnBhcmFtIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzIHJlc3BvbnNlIG9mIGV4aXN0aW5n
IHNlc3Npb24KKyAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxpdGllczogRGljdGlvbmFyeSBy
ZXByZXNlbnRpbmcgdGhlIGNhcGFiaWxpdGllcyByZXF1ZXN0LgorCisgICAgIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgd2Vic29ja2V0X3VybDogc3RyLAor
ICAgICAgICAgICAgICAgICBzZXNzaW9uX2lkOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAg
ICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55XV0gPSBO
b25lLAorICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzOiBPcHRpb25hbFtN
YXBwaW5nW3N0ciwgQW55XV0gPSBOb25lLAorICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25h
bFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpOgorICAgICAgICBzZWxmLnRyYW5z
cG9ydDogT3B0aW9uYWxbVHJhbnNwb3J0XSA9IE5vbmUKKworICAgICAgICAjIFRoZSBmdWxsIFVS
TCBmb3IgYSB3ZWJzb2NrZXQgbG9va3MgbGlrZQorICAgICAgICAjIHdzOi8vPGhvc3Q+Ojxwb3J0
Pi9zZXNzaW9uIHdoZW4gd2UncmUgY3JlYXRpbmcgYSBzZXNzaW9uIGFuZAorICAgICAgICAjIHdz
Oi8vPGhvc3Q+Ojxwb3J0Pi9zZXNzaW9uLzxzZXNzaW9uaWQ+IHdoZW4gd2UncmUgY29ubmVjdGlu
ZyB0byBhbiBleGlzdGluZyBzZXNzaW9uLgorICAgICAgICAjIFRvIGJlIHVzZXIgZnJpZW5kbHks
IGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgY2xhc3Mgd2FzIGNyZWF0ZWQgd2l0aCBlaXRoZXIg
YQorICAgICAgICAjIGZ1bGwgVVJMIGluY2x1ZGluZyB0aGUgcGF0aCwgYW5kIGFsc28gdGhlIGNh
c2Ugd2hlcmUganVzdCBhIHNlcnZlciB1cmwgaXMgcGFzc2VkIGluLgorICAgICAgICBwYXJzZWRf
dXJsID0gdXJscGFyc2Uod2Vic29ja2V0X3VybCkKKyAgICAgICAgaWYgcGFyc2VkX3VybC5wYXRo
ID09ICIiIG9yIHBhcnNlZF91cmwucGF0aCA9PSAiLyI6CisgICAgICAgICAgICBpZiBzZXNzaW9u
X2lkIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgd2Vic29ja2V0X3VybCA9IHVybGpvaW4od2Vi
c29ja2V0X3VybCwgInNlc3Npb24iKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICB3ZWJzb2NrZXRfdXJsID0gdXJsam9pbih3ZWJzb2NrZXRfdXJsLCBmInNlc3Npb24ve3Nlc3Np
b25faWR9IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNlc3Npb25faWQgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5wYXRoICE9IGYiL3Nlc3Npb24v
e3Nlc3Npb25faWR9IjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIldl
YlNvY2tldCBVUkwge3Nlc3Npb25faWR9IGRvZXNuJ3QgbWF0Y2ggc2Vzc2lvbiBpZCIpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBhcnNlZF91cmwucGF0aCAhPSAiL3Nl
c3Npb24iOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiV2ViU29ja2V0
IFVSTCB7c2Vzc2lvbl9pZH0gZG9lc24ndCBtYXRjaCBzZXNzaW9uIHVybCIpCisKKyAgICAgICAg
aWYgc2Vzc2lvbl9pZCBpcyBOb25lIGFuZCBjYXBhYmlsaXRpZXMgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUcmllZCB0byBjcmVhdGUgQmlEaS1vbmx5IHNlc3Np
b24gd2l0aCBleGlzdGluZyBjYXBhYmlsaXRpZXMiKQorCisgICAgICAgIHNlbGYud2Vic29ja2V0
X3VybCA9IHdlYnNvY2tldF91cmwKKyAgICAgICAgc2VsZi5yZXF1ZXN0ZWRfY2FwYWJpbGl0aWVz
ID0gcmVxdWVzdGVkX2NhcGFiaWxpdGllcworICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IGNh
cGFiaWxpdGllcworICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBzZXNzaW9uX2lkCisKKyAgICAg
ICAgc2VsZi5jb21tYW5kX2lkID0gMAorICAgICAgICBzZWxmLnBlbmRpbmdfY29tbWFuZHM6IE11
dGFibGVNYXBwaW5nW2ludCwgImFzeW5jaW8uRnV0dXJlW0FueV0iXSA9IHt9CisgICAgICAgIHNl
bGYuZXZlbnRfbGlzdGVuZXJzOiBNdXRhYmxlTWFwcGluZ1tPcHRpb25hbFtzdHJdLCBMaXN0W0Nh
bGxhYmxlW1tzdHIsIE1hcHBpbmdbc3RyLCBBbnldXSwgQW55XV1dID0gZGVmYXVsdGRpY3QobGlz
dCkKKworICAgICAgICAjIE1vZHVsZXMuCisgICAgICAgICMgRm9yIGVhY2ggbW9kdWxlLCBoYXZl
IGEgcHJvcGVydHkgcmVwcmVzZW50aW5nIHRoYXQgbW9kdWxlCisgICAgICAgIHNlbGYuc2Vzc2lv
biA9IFNlc3Npb24oc2VsZikKKworICAgICAgICBpZiBsb29wIGlzIE5vbmU6CisgICAgICAgICAg
ICBsb29wID0gZ2V0X3J1bm5pbmdfbG9vcCgpCisgICAgICAgIHNlbGYubG9vcCA9IGxvb3AKKwor
ICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2h0dHAoY2xzLAorICAgICAgICAgICAgICAg
ICAgc2Vzc2lvbl9pZDogc3RyLAorICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiBNYXBw
aW5nW3N0ciwgQW55XSwKKyAgICAgICAgICAgICAgICAgIGxvb3A6IE9wdGlvbmFsW2FzeW5jaW8u
QWJzdHJhY3RFdmVudExvb3BdID0gTm9uZSkgLT4gIkJpZGlTZXNzaW9uIjoKKyAgICAgICAgIiIi
Q3JlYXRlIGEgQmlEaSBzZXNzaW9uIGZyb20gYW4gZXhpc3RpbmcgSFRUUCBzZXNzaW9uCisKKyAg
ICAgICAgOnBhcmFtIHNlc3Npb25faWQ6IFN0cmluZyBpZCBvZiB0aGUgc2Vzc2lvbgorICAgICAg
ICA6cGFyYW0gY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXMgcmV0dXJuZWQgaW4gdGhlIE5ldyBT
ZXNzaW9uIEhUVFAgcmVzcG9uc2UuIiIiCisgICAgICAgIHdlYnNvY2tldF91cmwgPSBjYXBhYmls
aXRpZXMuZ2V0KCJ3ZWJTb2NrZXRVcmwiKQorICAgICAgICBpZiB3ZWJzb2NrZXRfdXJsIGlzIE5v
bmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyB3ZWJTb2NrZXRVcmwgZm91bmQg
aW4gY2FwYWJpbGl0aWVzIikKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uod2Vic29ja2V0X3Vy
bCwgc3RyKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIndlYlNvY2tldFVybCBpcyBu
b3QgYSBzdHJpbmciKQorICAgICAgICByZXR1cm4gY2xzKHdlYnNvY2tldF91cmwsIHNlc3Npb25f
aWQ9c2Vzc2lvbl9pZCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcywgbG9vcD1sb29wKQorCisg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGJpZGlfb25seShjbHMsCisgICAgICAgICAgICAgICAg
ICB3ZWJzb2NrZXRfdXJsOiBzdHIsCisgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfY2FwYWJp
bGl0aWVzOiBPcHRpb25hbFtNYXBwaW5nW3N0ciwgQW55XV0sCisgICAgICAgICAgICAgICAgICBs
b29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpIC0+ICJCaWRp
U2Vzc2lvbiI6CisgICAgICAgICIiIkNyZWF0ZSBhIEJpRGkgc2Vzc2lvbiB3aGVyZSB0aGVyZSBp
cyBubyBleGlzdGluZyBIVFRQIHNlc3Npb24KKworICAgICAgICA6cGFyYW0gd2ViZG9ja2V0X3Vy
bDogVVJMIHRvIHRoZSBXZWJTb2NrZXQgc2VydmVyIGxpc3RlbmluZyBmb3IgQmlEaSBjb25uZWN0
aW9ucworICAgICAgICA6cGFyYW0gcmVxdWVzdGVkX2NhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVz
IHJlcXVlc3QgZm9yIGVzdGFibGlzaGluZyB0aGUgc2Vzc2lvbi4iIiIKKyAgICAgICAgcmV0dXJu
IGNscyh3ZWJzb2NrZXRfdXJsLCByZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzPXJlcXVlc3RlZF9jYXBh
YmlsaXRpZXMsIGxvb3A9bG9vcCkKKworICAgIGFzeW5jIGRlZiBfX2FlbnRlcl9fKHNlbGYpIC0+
ICJCaWRpU2Vzc2lvbiI6CisgICAgICAgIGF3YWl0IHNlbGYuc3RhcnQoKQorICAgICAgICByZXR1
cm4gc2VsZgorCisgICAgYXN5bmMgZGVmIF9fYWV4aXRfXyhzZWxmLCAqYXJnczogQW55KSAtPiBO
b25lOgorICAgICAgICBhd2FpdCBzZWxmLmVuZCgpCisKKyAgICBhc3luYyBkZWYgc3RhcnQoc2Vs
ZikgLT4gTm9uZToKKyAgICAgICAgIiIiQ29ubmVjdCB0byB0aGUgV2ViRHJpdmVyIEJpRGkgcmVt
b3RlIHZpYSBXZWJTb2NrZXRzIiIiCisgICAgICAgIHNlbGYudHJhbnNwb3J0ID0gVHJhbnNwb3J0
KHNlbGYud2Vic29ja2V0X3VybCwgc2VsZi5vbl9tZXNzYWdlLCBsb29wPXNlbGYubG9vcCkKKwor
ICAgICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuc2Vz
c2lvbl9pZCwgc2VsZi5jYXBhYmlsaXRpZXMgPSBhd2FpdCBzZWxmLnNlc3Npb24ubmV3KHNlbGYu
cmVxdWVzdGVkX2NhcGFiaWxpdGllcykKKworICAgICAgICBhd2FpdCBzZWxmLnRyYW5zcG9ydC5z
dGFydCgpCisKKyAgICBhc3luYyBkZWYgc2VuZF9jb21tYW5kKHNlbGYsIG1ldGhvZDogc3RyLCBw
YXJhbXM6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBBd2FpdGFibGVbTWFwcGluZ1tzdHIsIEFueV1d
OgorICAgICAgICAiIiJTZW5kIGEgY29tbWFuZCB0byB0aGUgcmVtb3RlIHNlcnZlciIiIgorICAg
ICAgICAjIHRoaXMgaXNuJ3QgdGhyZWFkc2FmZQorICAgICAgICBzZWxmLmNvbW1hbmRfaWQgKz0g
MQorICAgICAgICBjb21tYW5kX2lkID0gc2VsZi5jb21tYW5kX2lkCisKKyAgICAgICAgYm9keSA9
IHsKKyAgICAgICAgICAgICJpZCI6IGNvbW1hbmRfaWQsCisgICAgICAgICAgICAibWV0aG9kIjog
bWV0aG9kLAorICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcworICAgICAgICB9CisgICAgICAg
IGFzc2VydCBjb21tYW5kX2lkIG5vdCBpbiBzZWxmLnBlbmRpbmdfY29tbWFuZHMKKyAgICAgICAg
c2VsZi5wZW5kaW5nX2NvbW1hbmRzW2NvbW1hbmRfaWRdID0gc2VsZi5sb29wLmNyZWF0ZV9mdXR1
cmUoKQorICAgICAgICBhc3NlcnQgc2VsZi50cmFuc3BvcnQgaXMgbm90IE5vbmUKKyAgICAgICAg
YXdhaXQgc2VsZi50cmFuc3BvcnQuc2VuZChib2R5KQorCisgICAgICAgIHJldHVybiBzZWxmLnBl
bmRpbmdfY29tbWFuZHNbY29tbWFuZF9pZF0KKworICAgIGFzeW5jIGRlZiBvbl9tZXNzYWdlKHNl
bGYsIGRhdGE6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBOb25lOgorICAgICAgICAiIiJIYW5kbGUg
YSBtZXNzYWdlIGZyb20gdGhlIHJlbW90ZSBzZXJ2ZXIiIiIKKyAgICAgICAgaWYgImlkIiBpbiBk
YXRhOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY29tbWFuZCByZXNwb25zZSBvciBlcnJvcgor
ICAgICAgICAgICAgZnV0dXJlID0gc2VsZi5wZW5kaW5nX2NvbW1hbmRzLmdldChkYXRhWyJpZCJd
KQorICAgICAgICAgICAgaWYgZnV0dXJlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcihmIk5vIHBlbmRpbmcgY29tbWFuZCB3aXRoIGlkIHtkYXRhWydpZCddfSIpCisg
ICAgICAgICAgICBpZiAicmVzdWx0IiBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGZ1dHVyZS5z
ZXRfcmVzdWx0KGRhdGFbInJlc3VsdCJdKQorICAgICAgICAgICAgZWxpZiAiZXJyb3IiIGluIGRh
dGEgYW5kICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGRhdGFbImVycm9yIl0sIHN0cikKKyAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShkYXRhWyJtZXNzYWdlIl0sIHN0cikKKyAgICAgICAgICAgICAgICBmdXR1cmUuc2V0X2V4Y2Vw
dGlvbihCaWRpRXhjZXB0aW9uKGRhdGFbImVycm9yIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyJtZXNzYWdlIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmdldCgic3RhY2t0
cmFjZSIpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQorICAgICAgICBlbGlmICJtZXRo
b2QiIGluIGRhdGEgYW5kICJwYXJhbXMiIGluIGRhdGE6CisgICAgICAgICAgICAjIFRoaXMgaXMg
YW4gZXZlbnQKKyAgICAgICAgICAgIG1ldGhvZCA9IGRhdGFbIm1ldGhvZCJdCisgICAgICAgICAg
ICBsaXN0ZW5lcnMgPSBzZWxmLmV2ZW50X2xpc3RlbmVycy5nZXQobWV0aG9kLCBbXSkKKyAgICAg
ICAgICAgIGlmIG5vdCBsaXN0ZW5lcnM6CisgICAgICAgICAgICAgICAgbGlzdGVuZXJzID0gc2Vs
Zi5ldmVudF9saXN0ZW5lcnMuZ2V0KE5vbmUsIFtdKQorICAgICAgICAgICAgZm9yIGxpc3RlbmVy
IGluIGxpc3RlbmVyczoKKyAgICAgICAgICAgICAgICBhd2FpdCBsaXN0ZW5lcihtZXRob2QsIGRh
dGFbInBhcmFtcyJdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cihmIlVuZXhwZWN0ZWQgbWVzc2FnZToge2RhdGEhcn0iKQorCisgICAgYXN5bmMgZGVmIGVuZChz
ZWxmKSAtPiBOb25lOgorICAgICAgICAiIiJDbG9zZSB3ZWJzb2NrZXQgY29ubmVjdGlvbi4iIiIK
KyAgICAgICAgYXNzZXJ0IHNlbGYudHJhbnNwb3J0IGlzIG5vdCBOb25lCisgICAgICAgIGF3YWl0
IHNlbGYudHJhbnNwb3J0LmVuZCgpCisKKyAgICBkZWYgYWRkX2V2ZW50X2xpc3RlbmVyKHNlbGYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBPcHRpb25hbFtzdHJdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm46IENhbGxhYmxlW1tzdHIsIE1hcHBpbmdbc3RyLCBBbnld
XSwgQXdhaXRhYmxlW0FueV1dKSAtPiBOb25lOgorICAgICAgICAiIiJBZGQgYSBsaXN0ZW5lciBm
b3IgdGhlIGV2ZW50IHdpdGggYSBnaXZlbiBuYW1lLgorCisgICAgICAgIElmIG5hbWUgaXMgTm9u
ZSwgdGhlIGxpc3RlbmVyIGlzIGNhbGxlZCBmb3IgYWxsIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCBv
dGhlcndpc2UKKyAgICAgICAgaGFuZGxlZC4KKworICAgICAgICA6cGFyYW0gbmFtZTogTmFtZSBv
ZiBldmVudCB0byBsaXN0ZW4gZm9yIG9yIE5vbmUgdG8gcmVnaXN0ZXIgYSBkZWZhdWx0IGhhbmRs
ZXIKKyAgICAgICAgOnBhcmFtIGZuOiBBc3luYyBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHJlY2Vp
dmVzIGV2ZW50IGRhdGEKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXZlbnRfbGlzdGVuZXJz
W25hbWVdLmFwcGVuZChmbikKKworCitjbGFzcyBUcmFuc3BvcnQ6CisgICAgIiIiTG93IGxldmVs
IG1lc3NhZ2UgaGFuZGxlciBmb3IgdGhlIFdlYlNvY2tldHMgY29ubmVjdGlvbiIiIgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB1cmw6IHN0ciwKKyAgICAgICAgICAgICAgICAgbXNnX2hhbmRsZXI6
IENhbGxhYmxlW1tNYXBwaW5nW3N0ciwgQW55XV0sIENvcm91dGluZVtBbnksIEFueSwgTm9uZV1d
LAorICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZlbnRM
b29wXSA9IE5vbmUpOgorICAgICAgICBzZWxmLnVybCA9IHVybAorICAgICAgICBzZWxmLmNvbm5l
Y3Rpb246IE9wdGlvbmFsW3dlYnNvY2tldHMuV2ViU29ja2V0Q2xpZW50UHJvdG9jb2xdID0gTm9u
ZQorICAgICAgICBzZWxmLm1zZ19oYW5kbGVyID0gbXNnX2hhbmRsZXIKKyAgICAgICAgc2VsZi5z
ZW5kX2J1ZjogTGlzdFtNYXBwaW5nW3N0ciwgQW55XV0gPSBbXQorCisgICAgICAgIGlmIGxvb3Ag
aXMgTm9uZToKKyAgICAgICAgICAgIGxvb3AgPSBnZXRfcnVubmluZ19sb29wKCkKKyAgICAgICAg
c2VsZi5sb29wID0gbG9vcAorCisgICAgICAgIHNlbGYucmVhZF9tZXNzYWdlX3Rhc2s6IE9wdGlv
bmFsW2FzeW5jaW8uVGFza1tBbnldXSA9IE5vbmUKKworICAgIGFzeW5jIGRlZiBzdGFydChzZWxm
KSAtPiBOb25lOgorICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBhd2FpdCB3ZWJzb2NrZXRzLmNs
aWVudC5jb25uZWN0KHNlbGYudXJsKQorICAgICAgICBzZWxmLnJlYWRfbWVzc2FnZV90YXNrID0g
c2VsZi5sb29wLmNyZWF0ZV90YXNrKHNlbGYucmVhZF9tZXNzYWdlcygpKQorCisgICAgICAgIGZv
ciBtc2cgaW4gc2VsZi5zZW5kX2J1ZjoKKyAgICAgICAgICAgIGF3YWl0IHNlbGYuX3NlbmQoc2Vs
Zi5jb25uZWN0aW9uLCBtc2cpCisKKyAgICBhc3luYyBkZWYgc2VuZChzZWxmLCBkYXRhOiBNYXBw
aW5nW3N0ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgaWYgc2VsZi5jb25uZWN0aW9uIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5fc2VuZChzZWxmLmNvbm5lY3Rpb24sIGRh
dGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNlbmRfYnVmLmFwcGVuZChkYXRh
KQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGFzeW5jIGRlZiBfc2VuZChjb25uZWN0aW9uOiB3
ZWJzb2NrZXRzLldlYlNvY2tldENsaWVudFByb3RvY29sLCBkYXRhOiBNYXBwaW5nW3N0ciwgQW55
XSkgLT4gTm9uZToKKyAgICAgICAgbXNnID0ganNvbi5kdW1wcyhkYXRhKQorICAgICAgICBsb2dn
ZXIuZGVidWcoIuKGkiAlcyIsIG1zZykKKyAgICAgICAgYXdhaXQgY29ubmVjdGlvbi5zZW5kKG1z
ZykKKworICAgIGFzeW5jIGRlZiBoYW5kbGUoc2VsZiwgbXNnOiBzdHIpIC0+IE5vbmU6CisgICAg
ICAgIGxvZ2dlci5kZWJ1Zygi4oaQICVzIiwgbXNnKQorICAgICAgICBkYXRhID0ganNvbi5sb2Fk
cyhtc2cpCisgICAgICAgIGF3YWl0IHNlbGYubXNnX2hhbmRsZXIoZGF0YSkKKworICAgIGFzeW5j
IGRlZiBlbmQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgaWYgc2VsZi5jb25uZWN0aW9uOgorICAg
ICAgICAgICAgYXdhaXQgc2VsZi5jb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgICAgIHNlbGYu
Y29ubmVjdGlvbiA9IE5vbmUKKworICAgIGFzeW5jIGRlZiByZWFkX21lc3NhZ2VzKHNlbGYpIC0+
IE5vbmU6CisgICAgICAgIGFzc2VydCBzZWxmLmNvbm5lY3Rpb24gaXMgbm90IE5vbmUKKyAgICAg
ICAgYXN5bmMgZm9yIG1zZyBpbiBzZWxmLmNvbm5lY3Rpb246CisgICAgICAgICAgICBpZiBub3Qg
aXNpbnN0YW5jZShtc2csIHN0cik6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
R290IGEgYmluYXJ5IG1lc3NhZ2UiKQorICAgICAgICAgICAgYXdhaXQgc2VsZi5oYW5kbGUobXNn
KQorCisKK2NsYXNzIGNvbW1hbmQ6CisgICAgIiIiRGVjb3JhdG9yIGZvciBpbXBsZW1lbnRpbmcg
YmlkaSBjb21tYW5kcworCisgICAgSW1wbGVtZW50aW5nIGEgY29tbWFuZCBpbnZvbHZlcyBzcGVj
aWZ5aW5nIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQKKyAgICBidWlsZHMgdGhlIHBhcmFtZXRlcnMg
dG8gdGhlIGNvbW1hbmQuIFRoZSBkZWNvcmF0b3IgYXJyYW5nZXMgdGhvc2UKKyAgICBwYXJhbWV0
ZXJzIHRvIGJlIHR1cm5lZCBpbnRvIGEgc2VuZF9jb21tYW5kIGNhbGwsIHVzaW5nIHRoZSBjbGFz
cworICAgIGFuZCBtZXRob2QgbmFtZXMgdG8gZGV0ZXJtaW5lIHRoZSBtZXRob2QgaW4gdGhlIGNh
bGwuCisKKyAgICBDb21tYW5kcyBkZWNvcmF0ZWQgaW4gdGhpcyB3YXkgZG9uJ3QgcmV0dXJuIGEg
ZnV0dXJlLCBidXQgYXdhaXQKKyAgICB0aGUgYWN0dWFsIHJlc3BvbnNlLiBJbiBzb21lIGNhc2Vz
IGl0IGNhbiBiZSB1c2VmdWwgdG8KKyAgICBwb3N0LXByb2Nlc3MgdGhpcyByZXNwb25zZSBiZWZv
cmUgcmV0dXJuaW5nIGl0IHRvIHRoZSBjbGllbnQuIFRoaXMKKyAgICBjYW4gYmUgZG9uZSBieSBz
cGVjaWZ5aW5nIGEgc2Vjb25kIGRlY29yYXRlZCBtZXRob2QgbGlrZQorICAgIEBjb21tYW5kX25h
bWUucmVzdWx0LiBUaGF0IG1ldGhvZCB3aWxsIHRoZW4gYmUgY2FsbGVkIG9uY2UgdGhlCisgICAg
cmVzdWx0IG9mIHRoZSBvcmlnaW5hbCBjb21tYW5kIGlzIGtub3duLCBhbmQgdGhlIHJldHVybiB2
YWx1ZSBvZgorICAgIHRoZSBtZXRob2QgdXNlZCBhcyB0aGUgcmVzcG9uc2Ugb2YgdGhlIGNvbW1h
bmQuCisKKyAgICBTbyBmb3IgYW4gZXhhbXBsZSwgaWYgd2UgaGFkIGEgY29tbWFuZCB0ZXN0LnRl
c3RNZXRob2QsIHdoaWNoCisgICAgcmV0dXJuZWQgYSByZXN1bHQgd2hpY2ggd2Ugd2FudCB0byBj
b252ZXJ0IHRvIGEgVGVzdFJlc3VsdCB0eXBlLAorICAgIHRoZSBpbXBsZW1lbnRhdGlvbiBtaWdo
dCBsb29rIGxpa2U6CisKKyAgICBjbGFzcyBUZXN0KEJpZGlNb2R1bGUpOgorICAgICAgICBAY29t
bWFuZAorICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgdGVzdF9kYXRhPU5vbmUpOgorICAg
ICAgICAgICAgcmV0dXJuIHsidGVzdERhdGEiOiB0ZXN0X2RhdGF9CisKKyAgICAgICBAdGVzdF9t
ZXRob2QucmVzdWx0CisgICAgICAgZGVmIGNvbnZlcnRfdGVzdF9tZXRob2RfcmVzdWx0KHNlbGYs
IHJlc3VsdCk6CisgICAgICAgICAgIHJldHVybiBUZXN0RGF0YSgqKnJlc3VsdCkKKyAgICAiIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmbjogQ2FsbGFibGVbLi4uLCBNYXBwaW5nW3N0ciwg
QW55XV0pOgorICAgICAgICBzZWxmLnBhcmFtc19mbiA9IGZuCisgICAgICAgIHNlbGYucmVzdWx0
X2ZuOiBPcHRpb25hbFtDYWxsYWJsZVsuLi4sIEFueV1dID0gTm9uZQorCisgICAgZGVmIHJlc3Vs
dChzZWxmLCBmbjogQ2FsbGFibGVbW0FueSwgTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnldXSwgTWFw
cGluZ1tzdHIsIEFueV1dKSAtPiBOb25lOgorICAgICAgICBzZWxmLnJlc3VsdF9mbiA9IGZuCisK
KyAgICBkZWYgX19zZXRfbmFtZV9fKHNlbGYsIG93bmVyOiBBbnksIG5hbWU6IHN0cikgLT4gTm9u
ZToKKyAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBjbGFzcyBpcyBjcmVhdGVkCisg
ICAgICAgICMgc2VlIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2RhdGFtb2Rl
bC5odG1sI29iamVjdC5fX3NldF9uYW1lX18KKyAgICAgICAgcGFyYW1zX2ZuID0gc2VsZi5wYXJh
bXNfZm4KKyAgICAgICAgcmVzdWx0X2ZuID0gc2VsZi5yZXN1bHRfZm4KKworICAgICAgICBAZnVu
Y3Rvb2xzLndyYXBzKHBhcmFtc19mbikKKyAgICAgICAgYXN5bmMgZGVmIGlubmVyKHNlbGY6IEFu
eSwgKiprd2FyZ3M6IEFueSkgLT4gQW55OgorICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zX2Zu
KHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgICAgICAjIENvbnZlcnQgdGhlIGNsYXNzbmFtZSBh
bmQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgYmlkaSBjb21tYW5kIG5hbWUKKyAgICAgICAgICAgIG1v
ZF9uYW1lID0gb3duZXIuX19uYW1lX18ubG93ZXIoKQorICAgICAgICAgICAgaWYgaGFzYXR0cihv
d25lciwgInByZWZpeCIpOgorICAgICAgICAgICAgICAgIG1vZF9uYW1lID0gZiJ7b3duZXIucHJl
Zml4fTp7bW9kX25hbWV9IgorICAgICAgICAgICAgY21kX25hbWUgPSBmInttb2RfbmFtZX0ue3Rv
X2NhbWVsY2FzZShuYW1lKX0iCisKKyAgICAgICAgICAgIGZ1dHVyZSA9IGF3YWl0IHNlbGYuc2Vz
c2lvbi5zZW5kX2NvbW1hbmQoY21kX25hbWUsIHBhcmFtcykKKyAgICAgICAgICAgIHJlc3VsdCA9
IGF3YWl0IGZ1dHVyZQorCisgICAgICAgICAgICBpZiByZXN1bHRfZm4gaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSByZXN1bHQgaWYgd2UgaGF2ZSBhIGNvbnZlcnNp
b24gZnVuY3Rpb24gZGVmaW5lZAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdF9mbihz
ZWxmLCByZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICAgICAgIyBPdmVy
d3JpdGUgdGhlIG1ldGhvZCBvbiB0aGUgb3duZXIgY2xhc3Mgd2l0aCB0aGUgd3JhcHBlcgorICAg
ICAgICBzZXRhdHRyKG93bmVyLCBuYW1lLCBpbm5lcikKKworICAgIGRlZiBfX2NhbGxfXygqYXJn
czogQW55LCAqKmt3YXJnczogQW55KSAtPiBBd2FpdGFibGVbQW55XToKKyAgICAgICAgIyBUaGlz
IGlzbid0IHJlYWxseSB1c2VkLCBidXQgbXlweSBkb2Vzbid0IHVuZGVyc3RhbmQgX19zZXRfbmFt
ZV9fCisgICAgICAgIHBhc3MKKworCitkZWYgdG9fY2FtZWxjYXNlKG5hbWU6IHN0cikgLT4gc3Ry
OgorICAgICIiIkNvbnZlcnQgYSBweXRob24gc3R5bGUgbWV0aG9kIG5hbWUgZm9vX2JhciB0byBh
IEJpRGkgY29tbWFuZCBuYW1lIGZvb0JhciIiIgorICAgIHBhcnRzID0gbmFtZS5zcGxpdCgiXyIp
CisgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5sb3dlcigpCisgICAgZm9yIGkgaW4gcmFuZ2UoMSwg
bGVuKHBhcnRzKSk6CisgICAgICAgIHBhcnRzW2ldID0gcGFydHNbaV0udGl0bGUoKQorICAgIHJl
dHVybiAiIi5qb2luKHBhcnRzKQorCisKK2NsYXNzIEJpZGlNb2R1bGU6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHNlc3Npb246IEJpZGlTZXNzaW9uKToKKyAgICAgICAgc2VsZi5zZXNzaW9uID0g
c2Vzc2lvbgorCisKK2NsYXNzIFNlc3Npb24oQmlkaU1vZHVsZSk6CisgICAgQGNvbW1hbmQKKyAg
ICBkZWYgbmV3KHNlbGYsIGNhcGFiaWxpdGllczogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE1hcHBp
bmdbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV06CisgICAgICAgIHJldHVybiB7ImNhcGFiaWxpdGll
cyI6IGNhcGFiaWxpdGllc30KKworICAgIEBuZXcucmVzdWx0CisgICAgZGVmIF9uZXcoc2VsZiwg
cmVzdWx0OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gQW55OgorICAgICAgICByZXR1cm4gcmVzdWx0
LmdldCgic2Vzc2lvbl9pZCIpLCByZXN1bHQuZ2V0KCJjYXBhYmlsaXRpZXMiLCB7fSkKKworICAg
IEBjb21tYW5kCisgICAgZGVmIHN1YnNjcmliZShzZWxmLAorICAgICAgICAgICAgICAgICAgZXZl
bnRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgIGNvbnRl
eHRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSkgLT4gTWFwcGluZ1tzdHIsIEFueV06Cisg
ICAgICAgIHBhcmFtczogTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnldID0geyJldmVudHMiOiBldmVu
dHMgaWYgZXZlbnRzIGlzIG5vdCBOb25lIGVsc2UgW119CisgICAgICAgIGlmIGNvbnRleHRzIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgcGFyYW1zWyJjb250ZXh0cyJdID0gY29udGV4dHMKKyAg
ICAgICAgcmV0dXJuIHBhcmFtcworCisgICAgQGNvbW1hbmQKKyAgICBkZWYgdW5zdWJzY3JpYmUo
c2VsZiwKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0g
Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dHM6IE9wdGlvbmFsW0xpc3Rbc3RyXV0g
PSBOb25lKSAtPiBNYXBwaW5nW3N0ciwgQW55XToKKyAgICAgICAgcGFyYW1zOiBNdXRhYmxlTWFw
cGluZ1tzdHIsIEFueV0gPSB7ImV2ZW50cyI6IGV2ZW50cyBpZiBldmVudHMgaXMgbm90IE5vbmUg
ZWxzZSBbXX0KKyAgICAgICAgaWYgY29udGV4dHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBw
YXJhbXNbImNvbnRleHRzIl0gPSBjb250ZXh0cworICAgICAgICByZXR1cm4gcGFyYW1zCisKKwor
Y2xhc3MgVGVzdChCaWRpTW9kdWxlKToKKyAgICAiIiJWZXJ5IHRlbXBvcmFyeSBtb2R1bGUgdGhh
dCBkb2VzIG5vdGhpbmcsIGV4Y2VwdCBkZW1vbnN0cmF0ZSBhIHZlbmRvciBwcmVmaXggYW5kCisg
ICAgcHJvdmlkZSBhIHdheSB0byB3b3JrIHdpdGggR2Vja28ncyBjdXJyZW50IHNrZWxldG9uIGlt
cGxlbWVudGF0aW9uLiIiIgorCisgICAgcHJlZml4ID0gIm1veiIKKworICAgIEBjb21tYW5kCisg
ICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIGt3YXJn
cwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZl
ci93ZWJkcml2ZXIvY2xpZW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CmluZGV4IGY0ZTNjNzYzNzk1ZS4uMmM3YjFj
NWRiZWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2Vi
ZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CkBAIC0xLDkgKzEsOSBAQAog
ZnJvbSAuIGltcG9ydCBlcnJvcgogZnJvbSAuIGltcG9ydCBwcm90b2NvbAogZnJvbSAuIGltcG9y
dCB0cmFuc3BvcnQKK2Zyb20gLmJpZGkuY2xpZW50IGltcG9ydCBCaWRpU2Vzc2lvbgogCi1mcm9t
IHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIgaW1wb3J0IHBh
cnNlIGFzIHVybHBhcnNlCitmcm9tIHVybGxpYiBpbXBvcnQgcGFyc2UgYXMgdXJscGFyc2UKIAog
CiBkZWYgY29tbWFuZChmdW5jKToKQEAgLTExNiwxNCArMTE2LDQ5IEBAIGNsYXNzIEFjdGlvblNl
cXVlbmNlKG9iamVjdCk6CiAgICAgZGVmIF9rZXlfYWN0aW9uKHNlbGYsIHN1YnR5cGUsIHZhbHVl
KToKICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjogc3VidHlwZSwgInZhbHVl
IjogdmFsdWV9KQogCi0gICAgZGVmIF9wb2ludGVyX2FjdGlvbihzZWxmLCBzdWJ0eXBlLCBidXR0
b24pOgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5cGUiOiBzdWJ0eXBlLCAiYnV0
dG9uIjogYnV0dG9ufSkKKyAgICBkZWYgX3BvaW50ZXJfYWN0aW9uKHNlbGYsIHN1YnR5cGUsIGJ1
dHRvbj1Ob25lLCB4PU5vbmUsIHk9Tm9uZSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5vbmUsIHdp
ZHRoPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9Tm9uZSwgcHJlc3N1cmU9
Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbHRfeT1Ob25lLCB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmdsZT1Ob25l
LCBhemltdXRoX2FuZ2xlPU5vbmUpOgorICAgICAgICBhY3Rpb24gPSB7CisgICAgICAgICAgICAi
dHlwZSI6IHN1YnR5cGUKKyAgICAgICAgfQorICAgICAgICBpZiBidXR0b24gaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBhY3Rpb25bImJ1dHRvbiJdID0gYnV0dG9uCisgICAgICAgIGlmIHggaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIngiXSA9IHgKKyAgICAgICAgaWYgeSBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsieSJdID0geQorICAgICAgICBpZiBkdXJhdGlv
biBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiZHVyYXRpb24iXSA9IGR1cmF0aW9u
CisgICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsib3Jp
Z2luIl0gPSBvcmlnaW4KKyAgICAgICAgaWYgd2lkdGggaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBhY3Rpb25bIndpZHRoIl0gPSB3aWR0aAorICAgICAgICBpZiBoZWlnaHQgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBhY3Rpb25bImhlaWdodCJdID0gaGVpZ2h0CisgICAgICAgIGlmIHByZXNz
dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJwcmVzc3VyZSJdID0gcHJlc3N1
cmUKKyAgICAgICAgaWYgdGFuZ2VudGlhbF9wcmVzc3VyZSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIGFjdGlvblsidGFuZ2VudGlhbFByZXNzdXJlIl0gPSB0YW5nZW50aWFsX3ByZXNzdXJlCisg
ICAgICAgIGlmIHRpbHRfeCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsidGlsdFgi
XSA9IHRpbHRfeAorICAgICAgICBpZiB0aWx0X3kgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBh
Y3Rpb25bInRpbHRZIl0gPSB0aWx0X3kKKyAgICAgICAgaWYgdHdpc3QgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICBhY3Rpb25bInR3aXN0Il0gPSB0d2lzdAorICAgICAgICBpZiBhbHRpdHVkZV9h
bmdsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiYWx0aXR1ZGVBbmdsZSJdID0g
YWx0aXR1ZGVfYW5nbGUKKyAgICAgICAgaWYgYXppbXV0aF9hbmdsZSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIGFjdGlvblsiYXppbXV0aEFuZ2xlIl0gPSBhemltdXRoX2FuZ2xlCisgICAgICAg
IHNlbGYuX2FjdGlvbnMuYXBwZW5kKGFjdGlvbikKIAogICAgIGRlZiBwYXVzZShzZWxmLCBkdXJh
dGlvbik6CiAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsidHlwZSI6ICJwYXVzZSIsICJk
dXJhdGlvbiI6IGR1cmF0aW9ufSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAotICAgIGRlZiBwb2lu
dGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5vbmUpOgorICAgIGRl
ZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5vbmUsIHdp
ZHRoPU5vbmUsIGhlaWdodD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU9Tm9u
ZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwgdGlsdF95PU5vbmUsCisg
ICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmdsZT1Ob25lLCBhemlt
dXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBvaW50ZXJNb3ZlIGFjdGlvbi4K
IAogICAgICAgICA6cGFyYW0geDogRGVzdGluYXRpb24geC1heGlzIGNvb3JkaW5hdGUgb2YgcG9p
bnRlciBpbiBDU1MgcGl4ZWxzLgpAQCAtMTMzLDE2ICsxNjgsMTAgQEAgY2xhc3MgQWN0aW9uU2Vx
dWVuY2Uob2JqZWN0KToKICAgICAgICAgOnBhcmFtIG9yaWdpbjogT3JpZ2luIG9mIGNvb3JkaW5h
dGVzLCBlaXRoZXIgInZpZXdwb3J0IiwgInBvaW50ZXIiIG9yCiAgICAgICAgICAgICAgICAgICAg
ICAgIGFuIEVsZW1lbnQuIElmIE5vbmUsIHJlbW90ZSBlbmQgZGVmYXVsdHMgdG8gInZpZXdwb3J0
Ii4KICAgICAgICAgIiIiCi0gICAgICAgIGFjdGlvbiA9IHsKLSAgICAgICAgICAgICJ0eXBlIjog
InBvaW50ZXJNb3ZlIiwKLSAgICAgICAgICAgICJ4IjogeCwKLSAgICAgICAgICAgICJ5IjogeQot
ICAgICAgICB9Ci0gICAgICAgIGlmIGR1cmF0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
YWN0aW9uWyJkdXJhdGlvbiJdID0gZHVyYXRpb24KLSAgICAgICAgaWYgb3JpZ2luIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IG9yaWdpbgotICAgICAgICBzZWxm
Ll9hY3Rpb25zLmFwcGVuZChhY3Rpb24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJw
b2ludGVyTW92ZSIsIHg9eCwgeT15LCBkdXJhdGlvbj1kdXJhdGlvbiwgb3JpZ2luPW9yaWdpbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9d2lkdGgsIGhlaWdodD1oZWlnaHQs
IHByZXNzdXJlPXByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YW5nZW50
aWFsX3ByZXNzdXJlPXRhbmdlbnRpYWxfcHJlc3N1cmUsIHRpbHRfeD10aWx0X3gsIHRpbHRfeT10
aWx0X3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3aXN0PXR3aXN0LCBhbHRpdHVk
ZV9hbmdsZT1hbHRpdHVkZV9hbmdsZSwgYXppbXV0aF9hbmdsZT1hemltdXRoX2FuZ2xlKQogICAg
ICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIHBvaW50ZXJfdXAoc2VsZiwgYnV0dG9uPTApOgpA
QCAtMTUxLDE2ICsxODAsMjEgQEAgY2xhc3MgQWN0aW9uU2VxdWVuY2Uob2JqZWN0KToKICAgICAg
ICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4K
ICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWlu
IGRldmljZSBidXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlv
bigicG9pbnRlclVwIiwgYnV0dG9uKQorICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9p
bnRlclVwIiwgYnV0dG9uPWJ1dHRvbikKICAgICAgICAgcmV0dXJuIHNlbGYKIAotICAgIGRlZiBw
b2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPTApOgorICAgIGRlZiBwb2ludGVyX2Rvd24oc2VsZiwg
YnV0dG9uPTAsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLCBwcmVzc3VyZT1Ob25lLAorICAgICAg
ICAgICAgICAgICAgICAgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwgdGls
dF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmds
ZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBvaW50ZXJE
b3duIGFjdGlvbiBmb3IgYGJ1dHRvbmAuCiAKICAgICAgICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRl
ciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4KICAgICAgICAgICAgICAgICAgICAgICAg
RGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCiAgICAgICAg
ICIiIgotICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlckRvd24iLCBidXR0b24p
CisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVyRG93biIsIGJ1dHRvbj1idXR0
b24sIHdpZHRoPXdpZHRoLCBoZWlnaHQ9aGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmVzc3VyZT1wcmVzc3VyZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT10YW5nZW50aWFsX3By
ZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWx0X3g9dGlsdF94LCB0aWx0
X3k9dGlsdF95LCB0d2lzdD10d2lzdCwgYWx0aXR1ZGVfYW5nbGU9YWx0aXR1ZGVfYW5nbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF6aW11dGhfYW5nbGU9YXppbXV0aF9hbmdsZSkK
ICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBjbGljayhzZWxmLCBlbGVtZW50PU5vbmUs
IGJ1dHRvbj0wKToKQEAgLTI3MywxOSArMzA3LDIyIEBAIGNsYXNzIFdpbmRvdyhvYmplY3QpOgog
CiAgICAgICAgIHJldHVybiBoYW5kbGVzCiAKLSAgICBAcHJvcGVydHkKKyAgICAjIFRoZSBtYW55
ICJ0eXBlOiBpZ25vcmUiIGNvbW1lbnRzIGhlcmUgYW5kIGJlbG93IGFyZSB0byBzaWxlbmNlIG15
cHkncworICAgICMgIkRlY29yYXRlZCBwcm9wZXJ0eSBub3Qgc3VwcG9ydGVkIiBlcnJvciwgd2hp
Y2ggaXMgZHVlIHRvIGEgbGltaXRhdGlvbgorICAgICMgaW4gbXlweSwgc2VlIGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRob24vbXlweS9pc3N1ZXMvMTM2Mi4KKyAgICBAcHJvcGVydHkgICMgdHlwZTog
aWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgcmVjdChzZWxmKToKICAgICAgICAgcmV0dXJu
IHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdy9yZWN0IikK
IAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29t
bWFuZAogICAgIGRlZiBzaXplKHNlbGYpOgogICAgICAgICAiIiJHZXRzIHRoZSB3aW5kb3cgc2l6
ZSBhcyBhIHR1cGxlIG9mIGAod2lkdGgsIGhlaWdodClgLiIiIgogICAgICAgICByZWN0ID0gc2Vs
Zi5yZWN0CiAgICAgICAgIHJldHVybiAocmVjdFsid2lkdGgiXSwgcmVjdFsiaGVpZ2h0Il0pCiAK
LSAgICBAc2l6ZS5zZXR0ZXIKKyAgICBAc2l6ZS5zZXR0ZXIgICMgdHlwZTogaWdub3JlCiAgICAg
QGNvbW1hbmQKICAgICBkZWYgc2l6ZShzZWxmLCBuZXdfc2l6ZSk6CiAgICAgICAgICIiIlNldCB3
aW5kb3cgc2l6ZSBieSBwYXNzaW5nIGEgdHVwbGUgb2YgYCh3aWR0aCwgaGVpZ2h0KWAuIiIiCkBA
IC0yOTMsMTQgKzMzMCwxNCBAQCBjbGFzcyBXaW5kb3cob2JqZWN0KToKICAgICAgICAgYm9keSA9
IHsid2lkdGgiOiB3aWR0aCwgImhlaWdodCI6IGhlaWdodH0KICAgICAgICAgc2VsZi5zZXNzaW9u
LnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndpbmRvdy9yZWN0IiwgYm9keSkKIAotICAg
IEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAog
ICAgIGRlZiBwb3NpdGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0cyB0aGUgd2luZG93IHBvc2l0
aW9uIGFzIGEgdHVwbGUgb2YgYCh4LCB5KWAuIiIiCiAgICAgICAgIHJlY3QgPSBzZWxmLnJlY3QK
ICAgICAgICAgcmV0dXJuIChyZWN0WyJ4Il0sIHJlY3RbInkiXSkKIAotICAgIEBwb3NpdGlvbi5z
ZXR0ZXIKKyAgICBAcG9zaXRpb24uc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5k
CiAgICAgZGVmIHBvc2l0aW9uKHNlbGYsIG5ld19wb3NpdGlvbik6CiAgICAgICAgICIiIlNldCB3
aW5kb3cgcG9zaXRpb24gYnkgcGFzc2luZyBhIHR1cGxlIG9mIGAoeCwgeSlgLiIiIgpAQCAtMzM4
LDYgKzM3NSw0MiBAQCBjbGFzcyBGcmFtZShvYmplY3QpOgogICAgICAgICByZXR1cm4gY2xzKHV1
aWQsIHNlc3Npb24pCiAKIAorY2xhc3MgU2hhZG93Um9vdChvYmplY3QpOgorICAgIGlkZW50aWZp
ZXIgPSAic2hhZG93LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiIKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBzZXNzaW9uLCBpZCk6CisgICAgICAgICIiIgorICAgICAgICBDb25zdHJ1Y3Qg
YSBuZXcgc2hhZG93IHJvb3QgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgOnBhcmFtIGlkOiBT
aGFkb3cgcm9vdCBVVUlEIHdoaWNoIG11c3QgYmUgdW5pcXVlIGFjcm9zcworICAgICAgICAgICAg
YWxsIGJyb3dzaW5nIGNvbnRleHRzLgorICAgICAgICA6cGFyYW0gc2Vzc2lvbjogQ3VycmVudCBg
YHdlYmRyaXZlci5TZXNzaW9uYGAuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmlkID0gaWQK
KyAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAgQGNsYXNzbWV0aG9kCisgICAg
ZGVmIGZyb21fanNvbihjbHMsIGpzb24sIHNlc3Npb24pOgorICAgICAgICB1dWlkID0ganNvbltT
aGFkb3dSb290LmlkZW50aWZpZXJdCisgICAgICAgIHJldHVybiBjbHModXVpZCwgc2Vzc2lvbikK
KworICAgIGRlZiBzZW5kX3NoYWRvd19jb21tYW5kKHNlbGYsIG1ldGhvZCwgdXJpLCBib2R5PU5v
bmUpOgorICAgICAgICB1cmwgPSAic2hhZG93L3t9L3t9Ii5mb3JtYXQoc2VsZi5pZCwgdXJpKQor
ICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKG1ldGhvZCwg
dXJsLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZmluZF9lbGVtZW50KHNlbGYsIHN0
cmF0ZWd5LCBzZWxlY3Rvcik6CisgICAgICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRlZ3ksCisg
ICAgICAgICAgICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAgICAgIHJldHVybiBzZWxmLnNl
bmRfc2hhZG93X2NvbW1hbmQoIlBPU1QiLCAiZWxlbWVudCIsIGJvZHkpCisKKyAgICBAY29tbWFu
ZAorICAgIGRlZiBmaW5kX2VsZW1lbnRzKHNlbGYsIHN0cmF0ZWd5LCBzZWxlY3Rvcik6CisgICAg
ICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgInZhbHVlIjog
c2VsZWN0b3J9CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2hhZG93X2NvbW1hbmQoIlBPU1Qi
LCAiZWxlbWVudHMiLCBib2R5KQorCisKIGNsYXNzIEZpbmQob2JqZWN0KToKICAgICBkZWYgX19p
bml0X18oc2VsZiwgc2Vzc2lvbik6CiAgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KQEAg
LTM2NSw3ICs0MzgsNyBAQCBjbGFzcyBDb29raWVzKG9iamVjdCk6CiAgICAgICAgIGNvb2tpZSA9
IHsibmFtZSI6IG5hbWUsCiAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBOb25lfQogCi0gICAg
ICAgIGlmIGlzaW5zdGFuY2UobmFtZSwgc3RyaW5nX3R5cGVzKToKKyAgICAgICAgaWYgaXNpbnN0
YW5jZShuYW1lLCBzdHIpOgogICAgICAgICAgICAgY29va2llWyJ2YWx1ZSJdID0gdmFsdWUKICAg
ICAgICAgZWxpZiBoYXNhdHRyKHZhbHVlLCAidmFsdWUiKToKICAgICAgICAgICAgIGNvb2tpZVsi
dmFsdWUiXSA9IHZhbHVlLnZhbHVlCkBAIC0zODQsMTIgKzQ1NywxMiBAQCBjbGFzcyBVc2VyUHJv
bXB0KG9iamVjdCk6CiAgICAgZGVmIGFjY2VwdChzZWxmKToKICAgICAgICAgc2VsZi5zZXNzaW9u
LnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L2FjY2VwdCIpCiAKLSAgICBAcHJv
cGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBk
ZWYgdGV4dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25f
Y29tbWFuZCgiR0VUIiwgImFsZXJ0L3RleHQiKQogCi0gICAgQHRleHQuc2V0dGVyCisgICAgQHRl
eHQuc2V0dGVyICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHRleHQoc2Vs
ZiwgdmFsdWUpOgogICAgICAgICBib2R5ID0geyJ0ZXh0IjogdmFsdWV9CkBAIC00MDEsOCArNDc0
LDE2IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAgaG9zdCwKICAg
ICAgICAgICAgICAgICAgcG9ydCwKICAgICAgICAgICAgICAgICAgdXJsX3ByZWZpeD0iLyIsCisg
ICAgICAgICAgICAgICAgIGVuYWJsZV9iaWRpPUZhbHNlLAogICAgICAgICAgICAgICAgICBjYXBh
YmlsaXRpZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uPU5vbmUpOgorCisgICAg
ICAgIGlmIGVuYWJsZV9iaWRpOgorICAgICAgICAgICAgaWYgY2FwYWJpbGl0aWVzIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRkZWZhdWx0KCJhbHdheXNNYXRj
aCIsIHt9KS51cGRhdGUoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSkKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0geyJhbHdheXNNYXRjaCI6IHsid2ViU29j
a2V0VXJsIjogVHJ1ZX19CisKICAgICAgICAgc2VsZi50cmFuc3BvcnQgPSB0cmFuc3BvcnQuSFRU
UFdpcmVQcm90b2NvbChob3N0LCBwb3J0LCB1cmxfcHJlZml4KQogICAgICAgICBzZWxmLnJlcXVl
c3RlZF9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMKICAgICAgICAgc2VsZi5jYXBhYmlsaXRp
ZXMgPSBOb25lCkBAIC00MTAsNiArNDkxLDggQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAg
ICAgICBzZWxmLnRpbWVvdXRzID0gTm9uZQogICAgICAgICBzZWxmLndpbmRvdyA9IE5vbmUKICAg
ICAgICAgc2VsZi5maW5kID0gTm9uZQorICAgICAgICBzZWxmLmVuYWJsZV9iaWRpID0gZW5hYmxl
X2JpZGkKKyAgICAgICAgc2VsZi5iaWRpX3Nlc3Npb24gPSBOb25lCiAgICAgICAgIHNlbGYuZXh0
ZW5zaW9uID0gTm9uZQogICAgICAgICBzZWxmLmV4dGVuc2lvbl9jbHMgPSBleHRlbnNpb24KIApA
QCAtNDM2LDYgKzUxOSw5IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICBkZWYgX19kZWxf
XyhzZWxmKToKICAgICAgICAgc2VsZi5lbmQoKQogCisgICAgZGVmIG1hdGNoKHNlbGYsIGNhcGFi
aWxpdGllcyk6CisgICAgICAgIHJldHVybiBzZWxmLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMgPT0g
Y2FwYWJpbGl0aWVzCisKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAgICIiIlN0YXJ0IGEg
bmV3IFdlYkRyaXZlciBzZXNzaW9uLgogCkBAIC00NTgsNiArNTQ0LDE0IEBAIGNsYXNzIFNlc3Np
b24ob2JqZWN0KToKICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gdmFsdWVbInNlc3Npb25JZCJd
CiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gdmFsdWVbImNhcGFiaWxpdGllcyJdCiAKKyAg
ICAgICAgaWYgIndlYlNvY2tldFVybCIgaW4gc2VsZi5jYXBhYmlsaXRpZXM6CisgICAgICAgICAg
ICBzZWxmLmJpZGlfc2Vzc2lvbiA9IEJpZGlTZXNzaW9uLmZyb21faHR0cChzZWxmLnNlc3Npb25f
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmNhcGFiaWxpdGllcykKKyAgICAgICAgZWxpZiBzZWxmLmVuYWJsZV9iaWRpOgorICAg
ICAgICAgICAgc2VsZi5lbmQoKQorICAgICAgICAgICAgcmFpc2UgZXJyb3IuU2Vzc2lvbk5vdENy
ZWF0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBiaWRpIHNlc3Npb24s
IGJ1dCB3ZWJTb2NrZXRVcmwgY2FwYWJpbGl0eSBub3QgZm91bmQiKQorCiAgICAgICAgIGlmIHNl
bGYuZXh0ZW5zaW9uX2NsczoKICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9uID0gc2VsZi5leHRl
bnNpb25fY2xzKHNlbGYpCiAKQEAgLTQ3MCw3ICs1NjQsNyBAQCBjbGFzcyBTZXNzaW9uKG9iamVj
dCk6CiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5zZW5kX2NvbW1hbmQoIkRFTEVU
RSIsICJzZXNzaW9uLyVzIiAlIHNlbGYuc2Vzc2lvbl9pZCkKLSAgICAgICAgZXhjZXB0IGVycm9y
LkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgZXJy
b3IuSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbik6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAg
IGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBOb25lCkBAIC01NDUsMTIg
KzYzOSwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIHVybCA9IHVybHBhcnNl
LnVybGpvaW4oInNlc3Npb24vJXMvIiAlIHNlbGYuc2Vzc2lvbl9pZCwgdXJpKQogICAgICAgICBy
ZXR1cm4gc2VsZi5zZW5kX2NvbW1hbmQobWV0aG9kLCB1cmwsIGJvZHksIHRpbWVvdXQpCiAKLSAg
ICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQK
ICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiR0VUIiwgInVybCIpCiAKLSAgICBAdXJsLnNldHRlcgorICAgIEB1cmwuc2V0dGVyICAj
IHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHVybChzZWxmLCB1cmwpOgogICAg
ICAgICBpZiB1cmxwYXJzZS51cmxzcGxpdCh1cmwpLm5ldGxvYyBpcyBOb25lOgpAQCAtNTcwLDEy
ICs2NjQsMTIgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgIGRlZiByZWZyZXNoKHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJyZWZy
ZXNoIikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAg
ICBAY29tbWFuZAogICAgIGRlZiB0aXRsZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2Vu
ZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ0aXRsZSIpCiAKLSAgICBAcHJvcGVydHkKKyAgICBA
cHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgc291cmNlKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInNv
dXJjZSIpCkBAIC01ODcsMTIgKzY4MSwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAKICAg
ICAgICAgcmV0dXJuIHZhbHVlWyJoYW5kbGUiXQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3Bl
cnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHdpbmRvd19oYW5kbGUo
c2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAi
d2luZG93IikKIAotICAgIEB3aW5kb3dfaGFuZGxlLnNldHRlcgorICAgIEB3aW5kb3dfaGFuZGxl
LnNldHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB3aW5kb3dfaGFu
ZGxlKHNlbGYsIGhhbmRsZSk6CiAgICAgICAgIGJvZHkgPSB7ImhhbmRsZSI6IGhhbmRsZX0KQEAg
LTYwOCwxMiArNzAyLDEyIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKIAogICAgICAgICByZXR1
cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsIHVybCwgYm9keSkKIAotICAgIEBw
cm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAg
IGRlZiBoYW5kbGVzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiR0VUIiwgIndpbmRvdy9oYW5kbGVzIikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9w
ZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiBhY3RpdmVfZWxlbWVu
dChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIs
ICJlbGVtZW50L2FjdGl2ZSIpCkBAIC02ODMsNyArNzc3LDYgQEAgY2xhc3MgU2Vzc2lvbihvYmpl
Y3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5k
X3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3QiKQogCi0KIGNsYXNzIEVsZW1lbnQo
b2JqZWN0KToKICAgICAiIiIKICAgICBSZXByZXNlbnRhdGlvbiBvZiBhIHdlYiBlbGVtZW50LgpA
QCAtNzQyLDEyICs4MzUsMTIgQEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBzZW5k
X2tleXMoc2VsZiwgdGV4dCk6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21t
YW5kKCJQT1NUIiwgInZhbHVlIiwgeyJ0ZXh0IjogdGV4dH0pCiAKLSAgICBAcHJvcGVydHkKKyAg
ICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgdGV4dChz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJ0
ZXh0IikKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAg
ICBAY29tbWFuZAogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5k
X2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgIm5hbWUiKQpAQCAtNzU2LDEyICs4NDksMTIgQEAgY2xh
c3MgRWxlbWVudChvYmplY3QpOgogICAgIGRlZiBzdHlsZShzZWxmLCBwcm9wZXJ0eV9uYW1lKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJjc3MvJXMi
ICUgcHJvcGVydHlfbmFtZSkKIAotICAgIEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBl
OiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiByZWN0KHNlbGYpOgogICAgICAgICByZXR1
cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInJlY3QiKQogCi0gICAgQHByb3Bl
cnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVm
IHNlbGVjdGVkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFu
ZCgiR0VUIiwgInNlbGVjdGVkIikKQEAgLTc3MCw2ICs4NjMsMTEgQEAgY2xhc3MgRWxlbWVudChv
YmplY3QpOgogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5z
ZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNjcmVlbnNob3QiKQogCisgICAgQHByb3BlcnR5
ICAjIHR5cGU6IGlnbm9yZQorICAgIEBjb21tYW5kCisgICAgZGVmIHNoYWRvd19yb290KHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNoYWRv
dyIpCisKICAgICBAY29tbWFuZAogICAgIGRlZiBhdHRyaWJ1dGUoc2VsZiwgbmFtZSk6CiAgICAg
ICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAiYXR0cmlidXRlLyVz
IiAlIG5hbWUpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5CmluZGV4IDgzNzk2NTZkNzNkZC4u
YTQxM2E5NTBkNDhlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQpAQCAtMSwxMiArMSwx
NyBAQAogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBpbXBvcnQg
aXRlcnZhbHVlcworZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBEZWZhdWx0RGljdCwgVHlw
ZQogCiAKIGNsYXNzIFdlYkRyaXZlckV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgIGh0dHBfc3Rh
dHVzID0gTm9uZQotICAgIHN0YXR1c19jb2RlID0gTm9uZQorICAgICMgVGhlIHN0YXR1c19jb2Rl
IGNsYXNzIHZhcmlhYmxlIGlzIHVzZWQgdG8gbWFwIHRoZSBKU09OIEVycm9yIENvZGUgKHNlZQor
ICAgICMgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZXJyb3JzKSB0byBhIFdlYkRy
aXZlckV4Y2VwdGlvbiBzdWJjbGFzcy4KKyAgICAjIEhvd2V2ZXIsIGh0dHBfc3RhdHVzIG5lZWQg
bm90IG1hdGNoLCBhbmQgYm90aCBhcmUgc2V0IGFzIGluc3RhbmNlCisgICAgIyB2YXJpYWJsZXMs
IHNoYWRvd2luZyB0aGUgY2xhc3MgdmFyaWFibGVzLiBUT0RPOiBNYXRjaCBvbiBib3RoIGh0dHBf
c3RhdHVzCisgICAgIyBhbmQgc3RhdHVzX2NvZGUgYW5kIGxldCB0aGVzZSBiZSBjbGFzcyB2YXJp
YWJsZXMgb25seS4KKyAgICBodHRwX3N0YXR1cyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbaW50
XQorICAgIHN0YXR1c19jb2RlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltzdHJdCiAKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgaHR0cF9zdGF0dXM9Tm9uZSwgc3RhdHVzX2NvZGU9Tm9uZSwgbWVz
c2FnZT1Ob25lLCBzdGFja3RyYWNlPU5vbmUpOgogICAgICAgICBzdXBlcihXZWJEcml2ZXJFeGNl
cHRpb24sIHNlbGYpCkBAIC0zNCw2ICszOSwxMSBAQCBjbGFzcyBXZWJEcml2ZXJFeGNlcHRpb24o
RXhjZXB0aW9uKToKICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKIAogCitjbGFzcyBEZXRhY2hlZFNo
YWRvd1Jvb3RFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9
IDQwNAorICAgIHN0YXR1c19jb2RlID0gImRldGFjaGVkIHNoYWRvdyByb290IgorCisKIGNsYXNz
IEVsZW1lbnRDbGlja0ludGVyY2VwdGVkRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAg
ICAgaHR0cF9zdGF0dXMgPSA0MDAKICAgICBzdGF0dXNfY29kZSA9ICJlbGVtZW50IGNsaWNrIGlu
dGVyY2VwdGVkIgpAQCAtMTE0LDYgKzEyNCwxMSBAQCBjbGFzcyBOb1N1Y2hGcmFtZUV4Y2VwdGlv
bihXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgIHN0YXR1c19jb2RlID0gIm5vIHN1Y2ggZnJhbWUi
CiAKIAorY2xhc3MgTm9TdWNoU2hhZG93Um9vdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24p
OgorICAgIGh0dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2NvZGUgPSAibm8gc3VjaCBzaGFk
b3cgcm9vdCIKKworCiBjbGFzcyBOb1N1Y2hXaW5kb3dFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0
aW9uKToKICAgICBodHRwX3N0YXR1cyA9IDQwNAogICAgIHN0YXR1c19jb2RlID0gIm5vIHN1Y2gg
d2luZG93IgpAQCAtMjA5LDcgKzIyNCw3IEBAIGRlZiBnZXQoZXJyb3JfY29kZSk6CiAgICAgcmV0
dXJuIF9lcnJvcnMuZ2V0KGVycm9yX2NvZGUsIFdlYkRyaXZlckV4Y2VwdGlvbikKIAogCi1fZXJy
b3JzID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QoKQotZm9yIGl0ZW0gaW4gbGlzdChpdGVydmFs
dWVzKGxvY2FscygpKSk6CitfZXJyb3JzOiBEZWZhdWx0RGljdFtzdHIsIFR5cGVbV2ViRHJpdmVy
RXhjZXB0aW9uXV0gPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdCgpCitmb3IgaXRlbSBpbiBsaXN0
KGxvY2FscygpLnZhbHVlcygpKToKICAgICBpZiB0eXBlKGl0ZW0pID09IHR5cGUgYW5kIGlzc3Vi
Y2xhc3MoaXRlbSwgV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICAgICAgX2Vycm9yc1tpdGVtLnN0
YXR1c19jb2RlXSA9IGl0ZW0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkKaW5kZXgg
YzgxMWY2ZjI2ZGI3Li5lNzFlMDFkNjIwODMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3Rv
Y29sLnB5CkBAIC0yLDggKzIsNiBAQCBpbXBvcnQganNvbgogCiBpbXBvcnQgd2ViZHJpdmVyCiAK
LWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKLQogCiAiIiJXZWJEcml2ZXIgd2lyZSBwcm90b2Nv
bCBjb2RlY3MuIiIiCiAKQEAgLTIyLDYgKzIwLDggQEAgY2xhc3MgRW5jb2Rlcihqc29uLkpTT05F
bmNvZGVyKToKICAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLkZyYW1lLmlkZW50aWZpZXI6
IG9iai5pZH0KICAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgd2ViZHJpdmVyLldpbmRvdyk6
CiAgICAgICAgICAgICByZXR1cm4ge3dlYmRyaXZlci5GcmFtZS5pZGVudGlmaWVyOiBvYmouaWR9
CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIHdlYmRyaXZlci5TaGFkb3dSb290KToKKyAg
ICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLlNoYWRvd1Jvb3QuaWRlbnRpZmllcjogb2JqLmlk
fQogICAgICAgICByZXR1cm4gc3VwZXIoRW5jb2Rlciwgc2VsZikuZGVmYXVsdChvYmopCiAKIApA
QCAtNDAsNiArNDAsOCBAQCBjbGFzcyBEZWNvZGVyKGpzb24uSlNPTkRlY29kZXIpOgogICAgICAg
ICAgICAgcmV0dXJuIHdlYmRyaXZlci5GcmFtZS5mcm9tX2pzb24ocGF5bG9hZCwgc2VsZi5zZXNz
aW9uKQogICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgZGljdCkgYW5kIHdlYmRyaXZl
ci5XaW5kb3cuaWRlbnRpZmllciBpbiBwYXlsb2FkOgogICAgICAgICAgICAgcmV0dXJuIHdlYmRy
aXZlci5XaW5kb3cuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lvbikKKyAgICAgICAgZWxp
ZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpIGFuZCB3ZWJkcml2ZXIuU2hhZG93Um9vdC5pZGVu
dGlmaWVyIGluIHBheWxvYWQ6CisgICAgICAgICAgICByZXR1cm4gd2ViZHJpdmVyLlNoYWRvd1Jv
b3QuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lvbikKICAgICAgICAgZWxpZiBpc2luc3Rh
bmNlKHBheWxvYWQsIGRpY3QpOgotICAgICAgICAgICAgcmV0dXJuIHtrOiBzZWxmLm9iamVjdF9o
b29rKHYpIGZvciBrLCB2IGluIGl0ZXJpdGVtcyhwYXlsb2FkKX0KKyAgICAgICAgICAgIHJldHVy
biB7azogc2VsZi5vYmplY3RfaG9vayh2KSBmb3IgaywgdiBpbiBwYXlsb2FkLml0ZW1zKCl9CiAg
ICAgICAgIHJldHVybiBwYXlsb2FkCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkK
aW5kZXggZTgzNmIxOWExNThkLi41YTFjZTI4OWVjMDkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci90cmFuc3BvcnQucHkKQEAgLTEsMTAgKzEsOSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCBzZWxl
Y3QKIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZSwgUFkzCi1mcm9tIHNpeC5tb3Zlcy5jb2xs
ZWN0aW9uc19hYmMgaW1wb3J0IE1hcHBpbmcKLWZyb20gc2l4Lm1vdmVzLmh0dHBfY2xpZW50IGlt
cG9ydCBIVFRQQ29ubmVjdGlvbgotZnJvbSBzaXgubW92ZXMudXJsbGliIGltcG9ydCBwYXJzZSBh
cyB1cmxwYXJzZQorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KK2Zyb20g
dHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBNYXBwaW5nLCBTZXF1ZW5jZSwgVHVwbGUKK2Zyb20g
dXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQogCiBmcm9tIC4gaW1wb3J0IGVycm9yCiAK
QEAgLTE0LDcgKzEzLDcgQEAgZnJvbSAuIGltcG9ydCBlcnJvcgogbWlzc2luZyA9IG9iamVjdCgp
CiAKIAotY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmcpOgorY2xhc3MgUmVzcG9uc2VIZWFk
ZXJzKE1hcHBpbmdbc3RyLCBzdHJdKToKICAgICAiIiJSZWFkLW9ubHkgZGljdGlvbmFyeS1saWtl
IEFQSSBmb3IgYWNjZXNzaW5nIHJlc3BvbnNlIGhlYWRlcnMuCiAKICAgICBUaGlzIGNsYXNzOgpA
QCAtMjMsMTEgKzIyLDkgQEAgY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE1hcHBpbmcpOgogICAgICAg
KiBIYXMgY2FzZS1pbnNlbnNpdGl2ZSBoZWFkZXIgbG9va3VwLgogICAgICAgKiBBbHdheXMgcmV0
dXJucyBhbGwgaGVhZGVyIHZhbHVlcyB0aGF0IGhhdmUgdGhlIHNhbWUgbmFtZSwgc2VwYXJhdGVk
IGJ5CiAgICAgICAgIGNvbW1hcy4KLQotICAgIEl0IGRvZXMgbm90IGVuc3VyZSBoZWFkZXIgdHlw
ZXMgKGUuZy4gYmluYXJ5IHZzIHN0cmluZykuCiAgICAgIiIiCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIGl0ZW1zKToKLSAgICAgICAgc2VsZi5oZWFkZXJzX2RpY3QgPSB7fQorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBpdGVtczogU2VxdWVuY2VbVHVwbGVbc3RyLCBzdHJdXSk6CisgICAgICAgIHNl
bGYuaGVhZGVyc19kaWN0OiBEaWN0W3N0ciwgTGlzdFtzdHJdXSA9IHt9CiAgICAgICAgIGZvciBr
ZXksIHZhbHVlIGluIGl0ZW1zOgogICAgICAgICAgICAga2V5ID0ga2V5Lmxvd2VyKCkKICAgICAg
ICAgICAgIGlmIGtleSBub3QgaW4gc2VsZi5oZWFkZXJzX2RpY3Q6CkBAIC0xNDUsMTUgKzE0Miwx
OCBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAgICAgZGVmIGNsb3NlKHNlbGYp
OgogICAgICAgICAiIiJDbG9zZXMgdGhlIGN1cnJlbnQgSFRUUCBjb25uZWN0aW9uLCBpZiB0aGVy
ZSBpcyBvbmUuIiIiCiAgICAgICAgIGlmIHNlbGYuX2Nvbm46Ci0gICAgICAgICAgICBzZWxmLl9j
b25uLmNsb3NlKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9jb25u
LmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgICMg
VGhlIHJlbW90ZSBjbG9zZWQgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgIHNlbGYuX2Nvbm4gPSBOb25lCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgY29ubmVj
dGlvbihzZWxmKToKICAgICAgICAgIiIiR2V0cyB0aGUgY3VycmVudCBIVFRQIGNvbm5lY3Rpb24s
IG9yIGxhemlseSBjcmVhdGVzIG9uZS4iIiIKICAgICAgICAgaWYgbm90IHNlbGYuX2Nvbm46CiAg
ICAgICAgICAgICBjb25uX2t3YXJncyA9IHt9Ci0gICAgICAgICAgICBpZiBub3QgUFkzOgotICAg
ICAgICAgICAgICAgIGNvbm5fa3dhcmdzWyJzdHJpY3QiXSA9IFRydWUKICAgICAgICAgICAgICMg
V2UgYXJlIG5vdCBzZXR0aW5nIGFuIEhUVFAgdGltZW91dCBvdGhlciB0aGFuIHRoZSBkZWZhdWx0
IHdoZW4gdGhlCiAgICAgICAgICAgICAjIGNvbm5lY3Rpb24gaXRzIGNyZWF0ZWQuIFRoZSBzZW5k
IG1ldGhvZCBoYXMgYSB0aW1lb3V0IHZhbHVlIGlmIG5lZWRlZC4KICAgICAgICAgICAgIHNlbGYu
X2Nvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxmLmhvc3QsIHNlbGYucG9ydCwgKipjb25uX2t3YXJn
cykKQEAgLTIzNSw3ICsyMzUsNyBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAg
ICAgICAgIHJldHVybiBSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2UsIGRlY29kZXI9ZGVjb2Rl
ciwgKipjb2RlY19rd2FyZ3MpCiAKICAgICBkZWYgX3JlcXVlc3Qoc2VsZiwgbWV0aG9kLCB1cmks
IHBheWxvYWQsIGhlYWRlcnM9Tm9uZSwgdGltZW91dD1Ob25lKToKLSAgICAgICAgaWYgaXNpbnN0
YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHBheWxvYWQs
IHN0cik6CiAgICAgICAgICAgICBwYXlsb2FkID0gcGF5bG9hZC5lbmNvZGUoInV0Zi04IikKIAog
ICAgICAgICBpZiBoZWFkZXJzIGlzIE5vbmU6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKaW5kZXggMGFkZjBhOTRiMTVk
Li40YTA3OWM3MjViZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKQEAgLTYsNyArNiw2IEBAIHdwdHJ1bm5lciBp
cyBhIGhhcm5lc3MgZm9yIHJ1bm5pbmcgdGhlIFczQyBgd2ViLXBsYXRmb3JtLXRlc3RzIHRlc3Rz
dWl0ZWBfLgogLi4gdG9jdHJlZTo6CiAgICA6bWF4ZGVwdGg6IDIKIAotICAgZG9jcy91c2FnZQog
ICAgZG9jcy9leHBlY3RhdGlvbgogICAgZG9jcy9kZXNpZ24KICAgIGRvY3MvaW50ZXJuYWxzCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL2Rv
Y3MvdXNhZ2UucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci9kb2NzL3VzYWdlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVmZDk3YmY2
YzEyLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDI0MiArMCwwIEBA
Ci1HZXR0aW5nIFN0YXJ0ZWQKLT09PT09PT09PT09PT09PQotCi1JbnN0YWxsaW5nIHdwdHJ1bm5l
cgotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIGVhc2llc3Qgd2F5IHRvIGluc3RhbGwgd3B0
cnVubmVyIGlzIGludG8gYSB2aXJ0dWFsZW52LCB1c2luZyBwaXA6OgotCi0gIHZpcnR1YWxlbnYg
d3B0cnVubmVyCi0gIGNkIHdwdHJ1bm5lcgotICBzb3VyY2UgYmluL2FjdGl2YXRlCi0gIHBpcCBp
bnN0YWxsIHdwdHJ1bm5lcgotCi1UaGlzIHdpbGwgaW5zdGFsbCB0aGUgYmFzZSBkZXBlbmRlbmNp
ZXMgZm9yIHdwdHJ1bm5lciwgYnV0IG5vdCBhbnkKLWV4dHJhIGRlcGVuZGVuY2llcyByZXF1aXJl
ZCB0byB0ZXN0IGFnYWluc3Qgc3BlY2lmaWMgYnJvd3NlcnMuIEluCi1vcmRlciB0byBkbyB0aGlz
IHlvdSBtdXN0IHVzZSB1c2UgdGhlIGV4dHJhIHJlcXVpcmVtZW50cyBmaWxlcyBpbgotYGAkVklS
VFVBTF9FTlYvcmVxdWlyZW1lbnRzL3JlcXVpcmVtZW50c19icm93c2VyLnR4dGBgLiBGb3IgZXhh
bXBsZSwKLWluIG9yZGVyIHRvIHRlc3QgYWdhaW5zdCBGaXJlZm94IHlvdSB3b3VsZCBoYXZlIHRv
IHJ1bjo6Ci0KLSAgcGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzL3JlcXVpcmVtZW50c19maXJl
Zm94LnR4dAotCi1JZiB5b3UgaW50ZW5kIHRvIHdvcmsgb24gdGhlIGNvZGUsIHRoZSBgYC1lYGAg
b3B0aW9uIHRvIHBpcCBzaG91bGQgYmUKLXVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIHNvdXJj
ZSBjaGVja291dCBpLmUuIGluc2lkZSBhIHZpcnR1YWwKLWVudmlyb25tZW50IGNyZWF0ZWQgYXMg
YWJvdmU6OgotCi0gIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dwdHJ1bm5lci5n
aXQKLSAgY2Qgd3B0cnVubmVyCi0gIHBpcCBpbnN0YWxsIC1lIC4vCi0KLUluIGFkZGl0aW9uIHRv
IHRoZSBkZXBlbmRlbmNpZXMgaW5zdGFsbGVkIGJ5IHBpcCwgd3B0cnVubmVyIHJlcXVpcmVzCi1h
IGNvcHkgb2YgdGhlIHdlYi1wbGF0Zm9ybS10ZXN0cyByZXBvc2l0b3J5LiBUaGlzIGNhbiBiZSBs
b2NhdGVkCi1hbnl3aGVyZSBvbiB0aGUgZmlsZXN5c3RlbSwgYnV0IHRoZSBlYXNpZXN0IG9wdGlv
biBpcyB0byBwdXQgaXQKLXVuZGVyIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYXMgdGhlIHdw
dHJ1bm5lciBjaGVja291dDo6Ci0KLSAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotCi1JdCBpcyBhbHNvIG5lY2Vzc2FyeSB0byBnZW5lcmF0
ZSBhIHdlYi1wbGF0Zm9ybS10ZXN0cyBgYE1BTklGRVNULmpzb25gYAotZmlsZS4gSXQncyByZWNv
bW1lbmRlZCB0byBhbHNvIHB1dCB0aGF0IHVuZGVyIHRoZSBzYW1lIHBhcmVudCBkaXJlY3Rvcnkg
YXMKLXRoZSB3cHRydW5uZXIgY2hlY2tvdXQsIGluIGEgZGlyZWN0b3J5IG5hbWVkIGBgbWV0YWBg
OjoKLQotICBta2RpciBtZXRhCi0gIGNkIHdlYi1wbGF0Zm9ybS10ZXN0cwotICBweXRob24gbWFu
aWZlc3QgLS1wYXRoIC4uL21ldGEvTUFOSUZFU1QuanNvbgotCi1UaGUgYGBNQU5JRkVTVC5qc29u
YGAgZmlsZSBuZWVkcyB0byBiZSByZWdlbmVyYXRlZCBlYWNoIHRpbWUgdGhlCi13ZWItcGxhdGZv
cm0tdGVzdHMgY2hlY2tvdXQgaXMgdXBkYXRlZC4gVG8gYWlkIHdpdGggdGhlIHVwZGF0ZSBwcm9j
ZXNzCi10aGVyZSBpcyBhIHRvb2wgY2FsbGVkIGBgd3B0dXBkYXRlYGAsIHdoaWNoIGlzIGRlc2Ny
aWJlZCBpbgotOnJlZjpgd3B0dXBkYXRlLWxhYmVsYC4KLQotUnVubmluZyB0aGUgVGVzdHMKLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLUEgdGVzdCBydW4gaXMgc3RhcnRlZCB1c2luZyB0aGUgYGB3cHRy
dW5uZXJgYCBjb21tYW5kLiAgVGhlIGNvbW1hbmQKLXRha2VzIG11bHRpcGxlIG9wdGlvbnMsIG9m
IHdoaWNoIHRoZSBmb2xsb3dpbmcgYXJlIG1vc3Qgc2lnbmlmaWNhbnQ6Ci0KLWBgLS1wcm9kdWN0
YGAgKGRlZmF1bHRzIHRvIGBmaXJlZm94YCkKLSAgVGhlIHByb2R1Y3QgdG8gdGVzdCBhZ2FpbnN0
OiBgY2hyb21lYCwgYGZpcmVmb3hgLCBvciBgc2Vydm9gLgotCi1gYC0tYmluYXJ5YGAgKHJlcXVp
cmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIG9yIGBzZXJ2b2ApCi0gIFRoZSBwYXRoIHRvIGEg
YmluYXJ5IGZpbGUgZm9yIHRoZSBwcm9kdWN0IChicm93c2VyKSB0byB0ZXN0IGFnYWluc3QuCi0K
LWBgLS13ZWJkcml2ZXItYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGNocm9tZWAp
Ci0gIFRoZSBwYXRoIHRvIGEgYCpkcml2ZXJgIGJpbmFyeTsgZS5nLiwgYSBgY2hyb21lZHJpdmVy
YCBiaW5hcnkuCi0KLWBgLS1jZXJ0dXRpbC1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBp
cyBgZmlyZWZveGAgWyNdXykKLSAgVGhlIHBhdGggdG8gYSBgY2VydHV0aWxgIGJpbmFyeSAoZm9y
IHRlc3RzIHRoYXQgbXVzdCBiZSBydW4gb3ZlciBodHRwcykuCi0KLWBgLS1tZXRhZGF0YWBgIChy
ZXF1aXJlZCBvbmx5IHdoZW4gbm90IGB1c2luZyBkZWZhdWx0IHBhdGhzYF8pCi0gIFRoZSBwYXRo
IHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGVzdCBtZXRhZGF0YS4gWyNdXwotCi1gYC0tdGVz
dHNgYCAocmVxdWlyZWQgb25seSB3aGVuIG5vdCBgdXNpbmcgZGVmYXVsdCBwYXRoc2BfKQotICBU
aGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgd2ViLXBsYXRmb3JtLXRlc3RzIGNo
ZWNrb3V0LgotCi1gYC0tcHJlZnMtcm9vdGBgIChyZXF1aXJlZCBvbmx5IHdoZW4gdGVzdGluZyBh
IEZpcmVmb3ggYmluYXJ5KQotICBUaGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIEZp
cmVmb3ggdGVzdC1oYXJuZXNzIHByZWZlcmVuY2VzLiBbI11fCi0KLWBgLS1jb25maWdgYCAoc2hv
dWxkIGRlZmF1bHQgdG8gYHdwdHJ1bm5lci5kZWZhdWx0LmluaWApCi0gIFRoZSBwYXRoIHRvIHRo
ZSBjb25maWcgKGluaSkgZmlsZS4KLQotLi4gWyNdIFRoZSBgYC0tY2VydHV0aWwtYmluYXJ5YGAg
b3B0aW9uIGlzIHJlcXVpcmVkIHdoZW4gdGhlIHByb2R1Y3QgaXMKLSAgIGBgZmlyZWZveGBgIHVu
bGVzcyBgYC0tc3NsLXR5cGU9bm9uZWBgIGlzIHNwZWNpZmllZC4KLQotLi4gWyNdIFRoZSBgYC0t
bWV0YWRhdGFgYCBwYXRoIGlzIHRvIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnM6Ci0KLSAgKiBh
IGBgTUFOSUZFU1QuanNvbmBgIGZpbGUgKHRoZSB3ZWItcGxhdGZvcm0tdGVzdHMgZG9jdW1lbnRh
dGlvbiBoYXMKLSAgICBpbnN0cnVjdGlvbnMgb24gZ2VuZXJhdGluZyB0aGlzIGZpbGUpCi0gICog
KG9wdGlvbmFsbHkpIGFueSBleHBlY3RhdGlvbiBmaWxlcyAoc2VlIDpyZWY6YHdwdHVwZGF0ZS1s
YWJlbGApCi0KLS4uIFsjXSBFeGFtcGxlIGBgLS1wcmVmcy1yb290YGAgdmFsdWU6IGBgfi9tb3pp
bGxhLWNlbnRyYWwvdGVzdGluZy9wcm9maWxlc2BgLgotCi1UaGVyZSBhcmUgYWxzbyBhIHZhcmll
dHkgb2Ygb3RoZXIgY29tbWFuZC1saW5lIG9wdGlvbnMgYXZhaWxhYmxlOyB1c2UKLWBgLS1oZWxw
YGAgdG8gbGlzdCB0aGVtLgotCi1UaGUgZm9sbG93aW5nIGV4YW1wbGVzIHNob3cgaG93IHRvIHN0
YXJ0IHdwdHJ1bm5lciB3aXRoIHZhcmlvdXMgb3B0aW9ucy4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
Ci1TdGFydGluZyB3cHRydW5uZXIKLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgZXhhbXBsZXMg
YmVsb3cgYXNzdW1lIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3J5IGxheW91dCwKLXRob3VnaCBubyBz
cGVjaWZpYyBmb2xkZXIgc3RydWN0dXJlIGlzIHJlcXVpcmVkOjoKLQotICB+L3Rlc3R0d2Yvd3B0
cnVubmVyICAgICAgICAgICMgd3B0cnVubmVyIGNoZWNrb3V0Ci0gIH4vdGVzdHR3Zi93ZWItcGxh
dGZvcm0tdGVzdHMgIyB3ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQKLSAgfi90ZXN0dHdmL21l
dGEgICAgICAgICAgICAgICAjIG1ldGFkYXRhCi0KLVRvIHRlc3QgYSBGaXJlZm94IE5pZ2h0bHkg
YnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVudCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIg
dXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3
cHRydW5uZXIgLS1tZXRhZGF0YT1+L3Rlc3R0d2YvbWV0YS8gLS10ZXN0cz1+L3Rlc3R0d2Yvd2Vi
LXBsYXRmb3JtLXRlc3RzLyBcCi0gICAgLS1iaW5hcnk9fi9tb3ppbGxhLWNlbnRyYWwvb2JqLXg4
Nl82NC1hcHBsZS1kYXJ3aW4xNC4zLjAvZGlzdC9OaWdodGx5LmFwcC9Db250ZW50cy9NYWNPUy9m
aXJlZm94IFwKLSAgICAtLWNlcnR1dGlsLWJpbmFyeT1+L21vemlsbGEtY2VudHJhbC9vYmoteDg2
XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9zZWN1cml0eS9uc3MvY21kL2NlcnR1dGlsL2NlcnR1dGls
IFwKLSAgICAtLXByZWZzLXJvb3Q9fi9tb3ppbGxhLWNlbnRyYWwvdGVzdGluZy9wcm9maWxlcwot
Ci0KLUFuZCB0byB0ZXN0IGEgQ2hyb21pdW0gYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVudCwg
eW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhl
IGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3Rlc3R0d2Yv
bWV0YS8gLS10ZXN0cz1+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRlc3RzLyBcCi0gICAgLS1iaW5h
cnk9fi9jaHJvbWl1bS9zcmMvb3V0L1JlbGVhc2UvQ2hyb21pdW0uYXBwL0NvbnRlbnRzL01hY09T
L0Nocm9taXVtIFwKLSAgICAtLXdlYmRyaXZlci1iaW5hcnk9L3Vzci9sb2NhbC9iaW4vY2hyb21l
ZHJpdmVyIC0tcHJvZHVjdD1jaHJvbWUKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJ1bm5pbmcg
dGVzdCBzdWJzZXRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyByZXN0cmljdCBhIHRlc3Qg
cnVuIGp1c3QgdG8gdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIHdlYi1wbGF0Zm9ybS10ZXN0cwotc3Vi
ZGlyZWN0b3J5LCBzcGVjaWZ5IHRoZSBkaXJlY3RvcnkgbmFtZSBpbiB0aGUgcG9zaXRpb25hbCBh
cmd1bWVudHMgYWZ0ZXIKLXRoZSBvcHRpb25zOyBmb3IgZXhhbXBsZSwgcnVuIGp1c3QgdGhlIHRl
c3RzIGluIHRoZSBgZG9tYCBzdWJkaXJlY3Rvcnk6OgotCi0gIHdwdHJ1bm5lciAtLW1ldGFkYXRh
PX4vdGVzdHR3Zi9tZXRhIC0tdGVzdHM9fi90ZXN0dHdmL3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAot
ICAgIC0tYmluYXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3BhdGgvdG8v
Y2VydHV0aWwgXAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2ZpbGVzIFwK
LSAgICBkb20KLQotLS0tLS0tLS0tLS0tLS0tLS0tLQotUnVubmluZyBpbiBwYXJhbGxlbAotLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi1UbyBzcGVlZCB1cCB0aGUgdGVzdGluZyBwcm9jZXNzLCB1c2Ug
dGhlIGBgLS1wcm9jZXNzZXNgYCBvcHRpb24gdG8gaGF2ZQotd3B0cnVubmVyIHJ1biBtdWx0aXBs
ZSBicm93c2VyIGluc3RhbmNlcyBpbiBwYXJhbGxlbC4gRm9yIGV4YW1wbGUsIHRvCi1oYXZlIHdw
dHJ1bm5lciBhdHRlbXB0IHRvIHJ1biB0ZXN0cyBhZ2FpbnN0IHdpdGggc2l4IGJyb3dzZXIgaW5z
dGFuY2VzCi1pbiBwYXJhbGxlbCwgc3BlY2lmeSBgYC0tcHJvY2Vzc2VzPTZgYC4gQnV0IG5vdGUg
dGhhdCBiZWhhdmlvdXIgaW4gdGhpcwotbW9kZSBpcyBuZWNlc3NhcmlseSBsZXNzIGRldGVybWlu
aXN0aWMgdGhhbiB3aXRoIGBgLS1wcm9jZXNzZXM9MWBgICh0aGUKLWRlZmF1bHQpLCBzbyB0aGVy
ZSBtYXkgYmUgbW9yZSBub2lzZSBpbiB0aGUgdGVzdCByZXN1bHRzLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Vc2luZyBkZWZhdWx0IHBhdGhzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSAo
b3RoZXJ3aXNlLXJlcXVpcmVkKSBgYC0tdGVzdHNgYCBhbmQgYGAtLW1ldGFkYXRhYGAgY29tbWFu
ZC1saW5lCi1vcHRpb25zL2ZsYWdzIGJlIG9taXR0ZWQgaWYgYW55IGNvbmZpZ3VyYXRpb24gZmls
ZSBpcyBmb3VuZCB0aGF0Ci1jb250YWlucyBhIHNlY3Rpb24gc3BlY2lmeWluZyB0aGUgYGB0ZXN0
c2BgIGFuZCBgYG1ldGFkYXRhYGAga2V5cy4KLQotU2VlIHRoZSBgQ29uZmlndXJhdGlvbiBGaWxl
YF8gc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAotY29uZmlndXJhdGlvbiBmaWxl
cywgaW5jbHVkaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIGV4cGVjdGVkCi1sb2NhdGlvbnMu
Ci0KLVRoZSBjb250ZW50IG9mIHRoZSBgYHdwdHJ1bm5lci5kZWZhdWx0LmluaWBgIGRlZmF1bHQg
Y29uZmlndXJhdGlvbiBmaWxlCi1tYWtlcyB3cHRydW5uZXIgbG9vayBmb3IgdGVzdHMgKHRoYXQg
aXMsIGEgd2ViLXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0KQotYXMgYSBzdWJkaXJlY3Rvcnkgb2Yg
dGhlIGN1cnJlbnQgZGlyZWN0b3J5IG5hbWVkIGBgdGVzdHNgYCwgYW5kIGZvcgotbWV0YWRhdGEg
ZmlsZXMgaW4gYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG5hbWVkIGBg
bWV0YWBgLgotCi1PdXRwdXQKLS0tLS0tLQotCi13cHRydW5uZXIgdXNlcyBgdGhlIG1vemxvZyBw
YWNrYWdlCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnL21vemJhc2Uv
bW96bG9nLmh0bWw+YF8pIGZvcgotb3V0cHV0LiBUaGlzIHN0cnVjdHVyZXMgZXZlbnRzIHN1Y2gg
YXMgdGVzdCByZXN1bHRzIG9yIGxvZyBtZXNzYWdlcyBhcwotSlNPTiBvYmplY3RzIHRoYXQgY2Fu
IHRoZW4gYmUgZmVkIHRvIG90aGVyIHRvb2xzIGZvcgotaW50ZXJwcmV0YXRpb24uIE1vcmUgZGV0
YWlscyBhYm91dCB0aGUgbWVzc2FnZSBmb3JtYXQgYXJlIGdpdmVuIGluCi1gdGhlIG1vemxvZyBk
b2N1bWVudGF0aW9uCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnL21v
emJhc2UvbW96bG9nLmh0bWw+YF8uCi0KLUJ5IGRlZmF1bHQgdGhlIHJhdyBKU09OIG1lc3NhZ2Vz
IGFyZSBkdW1wZWQgdG8gc3Rkb3V0LiBUaGlzIGlzCi1jb252ZW5pZW50IGZvciBwaXBpbmcgaW50
byBvdGhlciB0b29scywgYnV0IG5vdCBpZGVhbCBmb3IgaHVtYW5zCi1yZWFkaW5nIHRoZSBvdXRw
dXQuIGBtb3psb2cKLTxodHRwczovL2ZpcmVmb3gtc291cmNlLWRvY3MubW96aWxsYS5vcmcvbW96
YmFzZS9tb3psb2cuaHRtbD5gXyBjb21lcwotd2l0aCBzZXZlcmFsIG90aGVyIGZvcm1hdHRlcnMs
IHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggY29tbWFuZAotbGluZSBvcHRpb25zLiBUaGUg
Z2VuZXJhbCBmb3JtYXQgb2YgdGhlc2Ugb3B0aW9ucyBpcwotYGAtLWxvZy1uYW1lPWRlc3RgYCwg
d2hlcmUgYGBuYW1lYGAgaXMgdGhlIG5hbWUgb2YgdGhlIGZvcm1hdCBhbmQKLWBgZGVzdGBgIGlz
IGEgcGF0aCB0byBhIGRlc3RpbmF0aW9uIGZpbGUsIG9yIGBgLWBgIGZvciBzdGRvdXQuIFRoZSBy
YXcKLUpTT04gZGF0YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2BgIGZvcm1hdHRlciBzbywgdGhl
IGRlZmF1bHQgc2V0dXAKLWNvcnJlc3BvbmRzIHRvIGBgLS1sb2ctcmF3PS1gYC4KLQotQSByZWFz
b25hYmxlIG91dHB1dCBmb3JtYXQgZm9yIGh1bWFucyBpcyBwcm92aWRlZCBhcyBgYG1hY2hgYC4g
U28gaW4KLW9yZGVyIHRvIG91dHB1dCB0aGUgZnVsbCByYXcgbG9nIHRvIGEgZmlsZSBhbmQgYSBo
dW1hbi1yZWFkYWJsZQotc3VtbWFyeSB0byBzdGRvdXQsIG9uZSBtaWdodCBwYXNzIHRoZSBvcHRp
b25zOjoKLQotICAtLWxvZy1yYXc9b3V0cHV0LmxvZyAtLWxvZy1tYWNoPS0KLQotQ29uZmlndXJh
dGlvbiBGaWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQotd3B0cnVubmVyIHVzZXMgYSBgYC5pbmlg
YCBmaWxlIHRvIGNvbnRyb2wgc29tZSBjb25maWd1cmF0aW9uCi1zZWN0aW9ucy4gVGhlIGZpbGUg
aGFzIHRocmVlIHNlY3Rpb25zOyBgYFtwcm9kdWN0c11gYCwKLWBgW21hbmlmZXN0OmRlZmF1bHRd
YGAgYW5kIGBgW3dlYi1wbGF0Zm9ybS10ZXN0c11gYC4KLQotYGBbcHJvZHVjdHNdYGAgaXMgdXNl
ZCB0bwotZGVmaW5lIHRoZSBzZXQgb2YgYXZhaWxhYmxlIHByb2R1Y3RzLiBCeSBkZWZhdWx0IHRo
aXMgc2VjdGlvbiBpcyBlbXB0eQotd2hpY2ggbWVhbnMgdGhhdCBhbGwgdGhlIHByb2R1Y3RzIGRp
c3RyaWJ1dGVkIHdpdGggd3B0cnVubmVyIGFyZQotZW5hYmxlZCAoYWx0aG91Z2ggdGhlaXIgZGVw
ZW5kZW5jaWVzIG1heSBub3QgYmUgaW5zdGFsbGVkKS4gVGhlIHNldAotb2YgZW5hYmxlZCBwcm9k
dWN0cyBjYW4gYmUgc2V0IGJ5IHVzaW5nIHRoZSBwcm9kdWN0IG5hbWUgYXMgdGhlCi1rZXkuIEZv
ciBidWlsdCBpbiBwcm9kdWN0cyB0aGUgdmFsdWUgaXMgZW1wdHkuIEl0IGlzIGFsc28gcG9zc2li
bGUgdG8KLXByb3ZpZGUgdGhlIHBhdGggdG8gYSBzY3JpcHQgaW1wbGVtZW50aW5nIHRoZSBicm93
c2VyIGZ1bmN0aW9uYWxpdHkKLWUuZy46OgotCi0gIFtwcm9kdWN0c10KLSAgY2hyb21lID0KLSAg
bmV0c2NhcGU0ID0gcGF0aC90by9uZXRzY2FwZS5weQotCi1gYFttYW5pZmVzdDpkZWZhdWx0XWBg
IHNwZWNpZmllcyB0aGUgZGVmYXVsdCBwYXRocyBmb3IgdGhlIHRlc3RzIGFuZCBtZXRhZGF0YSwK
LXJlbGF0aXZlIHRvIHRoZSBjb25maWcgZmlsZS4gRm9yIGV4YW1wbGU6OgotCi0gIFttYW5pZmVz
dDpkZWZhdWx0XQotICB0ZXN0cyA9IH4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVzdHMKLSAgbWV0
YWRhdGEgPSB+L3Rlc3R0d2YvbWV0YQotCi0KLWBgW3dlYi1wbGF0Zm9ybS10ZXN0c11gYCBpcyB1
c2VkIHRvIHNldCB0aGUgcHJvcGVydGllcyBvZiB0aGUgdXBzdHJlYW0KLXJlcG9zaXRvcnkgd2hl
biB1cGRhdGluZyB0aGUgcGF0aHMuIGBgcmVtb3RlX3VybGBgIHNwZWNpZmllcyB0aGUgZ2l0Ci11
cmwgdG8gcHVsbCBmcm9tOyBgYGJyYW5jaGBgIHRoZSBicmFuY2ggdG8gc3luYyBhZ2FpbnN0IGFu
ZAotYGBzeW5jX3BhdGhgYCB0aGUgbG9jYWwgcGF0aCwgcmVsYXRpdmUgdG8gdGhlIGNvbmZpZ3Vy
YXRpb24gZmlsZSwgdG8KLXVzZSB3aGVuIGNoZWNraW5nIG91dCB0aGUgdGVzdHMgZS5nLjo6Ci0K
LSAgW3dlYi1wbGF0Zm9ybS10ZXN0c10KLSAgcmVtb3RlX3VybCA9IGh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAotICBicmFuY2ggPSBtYXN0ZXIKLSAgc3luY19w
YXRoID0gc3luYwotCi1BIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0IGNvbnRhaW4gYWxsIHRoZSBh
Ym92ZSBmaWVsZHM7IGZhbGxpbmcgYmFjawotdG8gdGhlIGRlZmF1bHQgdmFsdWVzIGZvciB1bnNw
ZWNpZmllZCBmaWVsZHMgaXMgbm90IHlldCBzdXBwb3J0ZWQuCi0KLVRoZSBgYHdwdHJ1bm5lcmBg
IGFuZCBgYHdwdHVwZGF0ZWBgIGNvbW1hbmRzIHdpbGwgdXNlIGNvbmZpZ3VyYXRpb24KLWZpbGVz
IGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6Ci0KLSAqIEFueSBwYXRoIHN1cHBsaWVkIHdpdGggYSBg
YC0tY29uZmlnYGAgZmxhZyB0byB0aGUgY29tbWFuZC4KLQotICogQSBmaWxlIGNhbGxlZCBgYHdw
dHJ1bm5lci5pbmlgYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkKLQotICogVGhlIGRlZmF1bHQg
Y29uZmlndXJhdGlvbiBmaWxlIChgYHdwdHJ1bm5lci5kZWZhdWx0LmluaWBgIGluIHRoZQotICAg
c291cmNlIGRpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dAppbmRleCAxZWJhMTE0YTMx
YzIuLjgzNTZjNDc4NWRjMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dApAQCAtMSw5ICsxLDgg
QEAKIGh0bWw1bGliPT0xLjEKLW1vemluZm89PTEuMi4xICAjIGh0dHBzOi8vYnVnemlsbGEubW96
aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKLW1vemxvZz09Ni4xCi1tb3pkZWJ1Zz09
MC4yCi0jIFBpbGxvdyA3IHJlcXVpcmVzIFB5dGhvbiAzCi1waWxsb3c9PTYuMi4yICAjIHB5dXA6
IDw3LjAKLXVybGxpYjNbc2VjdXJlXT09MS4yNS4xMAotcmVxdWVzdHM9PTIuMjQuMAotc2l4PT0x
LjE1LjAKK21vemluZm89PTEuMi4yICAjIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MjEyMjYKK21vemxvZz09Ny4xLjAKK21vemRlYnVnPT0wLjMuMAorcGls
bG93PT04LjMuMQordXJsbGliM1tzZWN1cmVdPT0xLjI2LjYKK3JlcXVlc3RzPT0yLjI1LjEKK3Np
eD09MS4xNi4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAppbmRleCBlN2U3
MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJv
bWUudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dAppbmRl
eCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQu
dHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApAQCAtMSArMSBAQAotbW96cHJvY2Vzcz09MS4y
LjAKK21venByb2Nlc3M9PTEuMy4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0Cmlu
ZGV4IDBhNjEyMDhkNzdjMS4uN2FkMDE4MGI4NTQ1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19lZGdlLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNz
PT0xLjMuMAogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmly
ZWZveC50eHQKaW5kZXggOGI0NTcwM2E1NTk2Li42YmYyODBjNDdjOTIgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Zp
cmVmb3gudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CkBAIC0xLDEwICsxLDEwIEBACiBtYXJpb25ldHRl
X2RyaXZlcj09My4xLjAKLW1vemNyYXNoPT0yLjAuMAotbW96aW5zdGFsbD09Mi4wLjAKK21vemNy
YXNoPT0yLjEuMAorbW96aW5zdGFsbD09Mi4wLjEKIG1vemxlYWs9PTAuMgogbW96bmV0d29yaz09
MS4xLjAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAogbW96cHJvZmlsZT09
Mi41LjAKLW1venJ1bm5lcj09OC4wLjAKK21venJ1bm5lcj09OC4yLjEKIG1venZlcnNpb249PTIu
My4wCi1wc3V0aWw9PTUuNy4yCitwc3V0aWw9PTUuOC4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19p
ZS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4
dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19pZS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJv
Y2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19v
cGVyYS50eHQKaW5kZXggMGE2MTIwOGQ3N2MxLi43YWQwMTgwYjg1NDUgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29w
ZXJhLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19vcGVyYS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNzPT0xLjIu
MAorbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZh
cmkudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfc2FmYXJpLnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjY1Yjc2YWE4NWNjNCAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfc2FmYXJpLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CkBAIC0xICsxLDIgQEAKLW1venBy
b2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAorcHN1dGlsPT01LjguMApkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfc2F1Y2UudHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CmluZGV4IDM0YzY2ZWUyMzhiNi4uZDFkMGY3ZTJiZWUy
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19zYXVjZS50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CkBAIC0xLDMgKzEsMyBAQAot
bW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCiBzZWxlbml1bT09My4xNDEuMAot
cmVxdWVzdHM9PTIuMjQuMAorcmVxdWVzdHM9PTIuMjUuMQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfc2Vydm8udHh0CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19zZXJ2by50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIu
MAorbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0
CmluZGV4IGU3ZTcxNjFiMTQyNi4uNzk2MTk1NThhNWRjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWly
ZW1lbnRzX3dlYmtpdC50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9j
ZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci9zZXR1cC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvc2V0dXAucHkKaW5kZXggYTQ1OWUyYzQ3MTQxLi5jMjA5NTU4NDhkYmYgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvc2V0dXAu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9zZXR1
cC5weQpAQCAtMiw4ICsyLDYgQEAKICMgTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhl
IE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBmaWxlLAogIyBZb3UgY2FuIG9idGFp
biBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLgogCi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHByaW50X2Z1bmN0aW9uCi0KIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKIGltcG9ydCBz
eXMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvdG94LmluaSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
dG94LmluaQppbmRleCA3OThmNjRhM2U0MjIuLmM0OWU3NTllYWQ4YyAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvdG94LmluaQpAQCAtMiwx
NiArMiwxMiBAQAogeGZhaWxfc3RyaWN0PXRydWUKIAogW3RveF0KLWVudmxpc3QgPSBweTI3LXti
YXNlLGNocm9tZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2FmYXJpLHNhdWNlLHNlcnZvLHdlYmtp
dCx3ZWJraXRndGtfbWluaWJyb3dzZXIsZXBpcGhhbnl9LHtweTM1LHB5MzYscHkzNyxweTM4fS1i
YXNlCitlbnZsaXN0ID0gcHkzOS17YmFzZSxjaHJvbWUsZWRnZSxmaXJlZm94LGllLG9wZXJhLHNh
ZmFyaSxzYXVjZSxzZXJ2byx3ZWJraXQsd2Via2l0Z3RrX21pbmlicm93c2VyLGVwaXBoYW55fSx7
cHkzNixweTM3LHB5Mzh9LWJhc2UKIHNraXBfbWlzc2luZ19pbnRlcnByZXRlcnMgPSBGYWxzZQog
CiBbdGVzdGVudl0KIGRlcHMgPQotICAgICBweXRlc3Q+PTIuOQotICAgICBweXRlc3QtY292Ci0g
ICAgIHB5dGVzdC14ZGlzdAotICAgICAjIG1vY2sgbm8gbG9uZ2VyIHN1cHBvcnRzIFB5dGhvbiAy
IHNpbmNlIHY0Ci0gICAgIG1vY2s9PTMuKgorICAgICAtcnt0b3hpbmlkaXJ9Ly4uL3JlcXVpcmVt
ZW50c19weXRlc3QudHh0CiAgICAgIC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzLnR4dAogICAg
ICBjaHJvbWU6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKICAgICAgZWRn
ZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZWRnZS50eHQKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2FuZHJvaWRfd2VibGF5ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5CmluZGV4IDYx
MTA0NTBiNzI4Mi4uNGJkODcxZDFmYmQ1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxh
eWVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKQEAgLTEsOSArMSw4IEBACi1p
bXBvcnQgc3VicHJvY2VzcwotCi1mcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJy
b3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBs
aWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3Fh
OiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQg
Z2V0X3RpbWVvdXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9tIC5jaHJvbWUgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCi1mcm9tIC4ud2ViZHJp
dmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitmcm9tIC5jaHJvbWVfYW5kcm9p
ZCBpbXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9x
YTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRy
aXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQw
MQpAQCAtMTEsNyArMTAsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hyb21lIGltcG9y
dCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVy
X18gPSB7InByb2R1Y3QiOiAiYW5kcm9pZF93ZWJsYXllciIsCiAgICAgICAgICAgICAgICAgICJj
aGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJX
ZWJsYXllclNoZWxsIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIldlYmxh
eWVyU2hlbGwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxC
cm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAi
V2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9
LApAQCAtMjgsMjMgKzI4LDI0IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1
aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2Fy
Z3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93
c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3
YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKICAgICAgICAg
ICAgICJkZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCiAgICAgICAgICAg
ICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAotICAgICAg
ICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKyAg
ICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiks
CisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJncy5nZXQoInN0YWNrd2Fsa19i
aW5hcnkiKSwKKyAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBrd2FyZ3MuZ2V0KCJzeW1ib2xz
X3BhdGgiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZp
ZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9n
Z2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICAjIFVzZSB1cGRhdGUoKSB0byBtb2RpZnkgdGhl
IGdsb2JhbCBsaXN0IGluIHBsYWNlLgogICAgIF93cHRzZXJ2ZV9wb3J0cy51cGRhdGUoc2V0KAot
ICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwJ10gKyBzZXJ2ZXJfY29uZmlnWydw
b3J0cyddWydodHRwcyddICsKLSAgICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3MnXSAr
IHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzcyddCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQu
Y29uZmlnWydwb3J0cyddWydodHRwJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMn
XVsnaHR0cHMnXSArCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWyd3
cyddICsgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ3dzcyddCiAgICAgKSkKIAot
ICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9tZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBj
aHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50
LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKiprd2FyZ3MpCiAgICAgZGVsIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1b
Imdvb2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJdCiAgICAgY2FwYWJpbGl0aWVzID0gZXhlY3V0
b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXQpAQCAtNzQsNjEgKzc1LDIyIEBAIGRlZiBlbnZfb3B0
aW9ucygpOgogICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4wLjAuMSJ9CiAKIAotI1RP
RE86IHJlZmFjdG9yIGNvbW1vbiBlbGVtZW50cyBvZiBXZWJsYXllclNoZWxsIGFuZCBDaHJvbWVB
bmRyb2lkQnJvd3NlcgotY2xhc3MgV2VibGF5ZXJTaGVsbChCcm93c2VyKToKK2NsYXNzIFdlYmxh
eWVyU2hlbGwoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKICAgICAiIiJDaHJvbWUgaXMgYmFj
a2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaAogICAgIGBgd3B0
cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KICAgICAiIiIKIAotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21l
ZHJpdmVyIiwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCisgICAgICAg
ICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCisgICAgICAgICAgICAg
ICAgIHJlbW90ZV9xdWV1ZT1Ob25lLAogICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5v
bmUsCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICAgICAg
ICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICBzdGFja3dhbGtfYmlu
YXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKICAgICAgICAg
IiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUgYGJpbmFyeWAg
YXJndW1lbnQgZ2l2ZXMKICAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVz
dGluZy4iIiIKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCisgICAgICAg
IHN1cGVyKFdlYmxheWVyU2hlbGwsIHNlbGYpLl9faW5pdF9fKGxvZ2dlciwKKyAgICAgICAgICAg
ICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVldWUsIGRldmljZV9zZXJpYWwsCisgICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNrd2Fsa19iaW5hcnksIHN5bWJvbHNfcGF0
aCkKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKLSAgICAgICAgc2VsZi5kZXZpY2Vfc2Vy
aWFsID0gZGV2aWNlX3NlcmlhbAotICAgICAgICBzZWxmLnNlcnZlciA9IENocm9tZURyaXZlclNl
cnZlcihzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0gICAgICAgIHNlbGYuc2V0dXBfYWRi
X3JldmVyc2UoKQotCi0gICAgZGVmIF9hZGJfcnVuKHNlbGYsIGFyZ3MpOgotICAgICAgICBjbWQg
PSBbJ2FkYiddCi0gICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKLSAgICAgICAgICAgIGNt
ZC5leHRlbmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCi0gICAgICAgIGNtZC5leHRlbmQo
YXJncykKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnICcuam9pbihjbWQpKQotICAgICAgICBz
dWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kKQotCi0gICAgZGVmIHNldHVwX2FkYl9yZXZlcnNlKHNl
bGYpOgotICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2FpdC1mb3ItZGV2aWNlJ10pCi0gICAgICAg
IHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICBzZWxm
Ll9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKLSAgICAgICAgIyAiYWRiIHJl
dmVyc2UiIGJhc2ljYWxseSBmb3J3YXJkcyBuZXR3b3JrIGNvbm5lY3Rpb24gZnJvbSBkZXZpY2Ug
dG8KLSAgICAgICAgIyBob3N0LgotICAgICAgICBmb3IgcG9ydCBpbiBfd3B0c2VydmVfcG9ydHM6
Ci0gICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwg
J3RjcDolZCcgJSBwb3J0XSkKLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6Ci0gICAg
ICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQotCi0gICAgZGVmIHN0b3Aoc2VsZiwg
Zm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQotCi0g
ICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAotCi0gICAg
ZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGlj
YXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0
aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMgaXMgYWN0aXZl
LgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAgZGVmIGNsZWFu
dXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0gICAgICAgIHNlbGYuX2FkYl9ydW4oWydm
b3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJz
ZScsICctLXJlbW92ZS1hbGwnXSkKLQotICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgot
ICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNl
cnZlci51cmx9CisgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0gX3dwdHNlcnZlX3BvcnRz
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dl
YnZpZXcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZDYyMDkz
NGVmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkKQEAgLTAs
MCArMSw5NSBAQAorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICAjIG5vcWE6IEY0MDEK
K2Zyb20gLmJhc2UgaW1wb3J0IHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGlt
ZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5jaHJvbWUgaW1wb3J0IGV4ZWN1
dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC5jaHJvbWVfYW5kcm9p
ZCBpbXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9x
YTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRy
aXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQw
MQorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiYW5kcm9pZF93ZWJ2aWV3IiwKKyAg
ICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgICAgICAgICAg
ICAgICJicm93c2VyIjoge05vbmU6ICJTeXN0ZW1XZWJWaWV3U2hlbGwiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAg
ICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVj
dXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2
ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3Bl
YyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJv
d3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0
b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0
cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52
X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90
aW1lb3V0X211bHRpcGxpZXIifQorCitfd3B0c2VydmVfcG9ydHMgPSBzZXQoKQorCisKK2RlZiBj
aGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJf
YmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9p
bmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJn
c1siYmluYXJ5Il0sCisgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNl
X3NlcmlhbCJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRy
aXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQo
IndlYmRyaXZlcl9hcmdzIiksCisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJn
cy5nZXQoInN0YWNrd2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBr
d2FyZ3MuZ2V0KCJzeW1ib2xzX3BhdGgiKX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dl
ciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAorICAgICAgICAg
ICAgICAgICAgICAqKmt3YXJncyk6CisgICAgIyBVc2UgdXBkYXRlKCkgdG8gbW9kaWZ5IHRoZSBn
bG9iYWwgbGlzdCBpbiBwbGFjZS4KKyAgICBfd3B0c2VydmVfcG9ydHMudXBkYXRlKHNldCgKKyAg
ICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHRlc3RfZW52
aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwcyddICsKKyAgICAgICAgdGVzdF9lbnZpcm9u
bWVudC5jb25maWdbJ3BvcnRzJ11bJ3dzJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9y
dHMnXVsnd3NzJ10KKyAgICApKQorCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1
dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9f
ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKQorICAgIGRlbCBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdWyJnb29nOmNocm9t
ZU9wdGlvbnMiXVsicHJlZnMiXQorICAgIGNhcGFiaWxpdGllcyA9IGV4ZWN1dG9yX2t3YXJnc1si
Y2FwYWJpbGl0aWVzIl0KKyAgICAjIE5vdGUgdGhhdCBmb3IgV2ViVmlldywgd2UgbGF1bmNoIGEg
dGVzdCBzaGVsbCBhbmQgaGF2ZSB0aGUgdGVzdCBzaGVsbCB1c2UgV2ViVmlldy4KKyAgICAjIGh0
dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9IRUFEL2FuZHJv
aWRfd2Vidmlldy9kb2NzL3dlYnZpZXctc2hlbGwubWQKKyAgICBjYXBhYmlsaXRpZXNbImdvb2c6
Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkUGFja2FnZSJdID0gXAorICAgICAgICBrd2FyZ3MuZ2V0
KCJwYWNrYWdlX25hbWUiLCAib3JnLmNocm9taXVtLndlYnZpZXdfc2hlbGwiKQorICAgIGNhcGFi
aWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRBY3Rpdml0eSJdID0gXAorICAg
ICAgICAib3JnLmNocm9taXVtLndlYnZpZXdfc2hlbGwuV2ViUGxhdGZvcm1UZXN0c0FjdGl2aXR5
IgorICAgIGlmIGt3YXJncy5nZXQoImRldmljZV9zZXJpYWwiKToKKyAgICAgICAgY2FwYWJpbGl0
aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZERldmljZVNlcmlhbCJdID0ga3dhcmdz
WyJkZXZpY2Vfc2VyaWFsIl0KKworICAgICMgV29ya2Fyb3VuZDogZHJpdmVyLnF1aXQoKSBjYW5u
b3QgcXVpdCBTeXN0ZW1XZWJWaWV3U2hlbGwuCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJwYXVzZV9h
ZnRlcl90ZXN0Il0gPSBGYWxzZQorICAgICMgV29ya2Fyb3VuZDogZHJpdmVyLmNsb3NlKCkgaXMg
bm90IHN1cHBvcnRlZC4KKyAgICBleGVjdXRvcl9rd2FyZ3NbInJlc3RhcnRfYWZ0ZXJfdGVzdCJd
ID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gRmFsc2UK
KyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3Mp
OgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgICMgYWxsb3cgdGhl
IHVzZSBvZiBob3N0LXJlc29sdmVyLXJ1bGVzIGluIGxpZXUgb2YgbW9kaWZ5aW5nIC9ldGMvaG9z
dHMgZmlsZQorICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4wLjAuMSJ9CisKKworY2xh
c3MgU3lzdGVtV2ViVmlld1NoZWxsKENocm9tZUFuZHJvaWRCcm93c2VyQmFzZSk6CisgICAgIiIi
Q2hyb21lIGlzIGJhY2tlZCBieSBjaHJvbWVkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91
Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuQ2hyb21lRHJpdmVyU2VydmVyYGAuCisgICAg
IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9i
aW5hcnk9ImNocm9tZWRyaXZlciIsCisgICAgICAgICAgICAgICAgIHJlbW90ZV9xdWV1ZT1Ob25l
LAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsCisgICAgICAgICAgICAgICAg
IHdlYmRyaXZlcl9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIHN0YWNrd2Fsa19iaW5hcnk9
Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5vbmUpOgorICAgICAgICAiIiJD
cmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1
bWVudCBnaXZlcworICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5n
LiIiIgorICAgICAgICBzdXBlcihTeXN0ZW1XZWJWaWV3U2hlbGwsIHNlbGYpLl9faW5pdF9fKGxv
Z2dlciwKKyAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVldWUsIGRl
dmljZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNrd2Fsa19i
aW5hcnksIHN5bWJvbHNfcGF0aCkKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAg
ICAgc2VsZi53cHRzZXJ2ZXJfcG9ydHMgPSBfd3B0c2VydmVfcG9ydHMKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2Jhc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CmluZGV4IDk5ZjZlNWNmZjRjOC4uMjgyZTJkN2Fk
NWVlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkKQEAgLTEs
MzQgKzEsMTQgQEAKK2ltcG9ydCBlbnVtCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQogaW1w
b3J0IHNvY2tldAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCi1mcm9t
IGNvcHkgaW1wb3J0IGRlZXBjb3B5Ci1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKIGZyb20g
Li53cHRjb21tYW5kbGluZSBpbXBvcnQgcmVxdWlyZV9hcmcgICMgbm9xYTogRjQwMQogCiBoZXJl
ID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCiAKLWRlZiBpbmhlcml0KHN1cGVyX21vZHVs
ZSwgY2hpbGRfZ2xvYmFscywgcHJvZHVjdF9uYW1lKToKLSAgICBzdXBlcl93cHRydW5uZXIgPSBz
dXBlcl9tb2R1bGUuX193cHRydW5uZXJfXwotICAgIGNoaWxkX2dsb2JhbHNbIl9fd3B0cnVubmVy
X18iXSA9IGNoaWxkX3dwdHJ1bm5lciA9IGRlZXBjb3B5KHN1cGVyX3dwdHJ1bm5lcikKLQotICAg
IGNoaWxkX3dwdHJ1bm5lclsicHJvZHVjdCJdID0gcHJvZHVjdF9uYW1lCi0KLSAgICBmb3IgayBp
biAoImNoZWNrX2FyZ3MiLCAiYnJvd3NlciIsICJicm93c2VyX2t3YXJncyIsICJleGVjdXRvcl9r
d2FyZ3MiLAotICAgICAgICAgICAgICAiZW52X2V4dHJhcyIsICJlbnZfb3B0aW9ucyIsICJ0aW1l
b3V0X211bHRpcGxpZXIiKToKLSAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1bm5lcltrXQotICAg
ICAgICBjaGlsZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIGF0dHIpCi0K
LSAgICBmb3IgdiBpbiBzdXBlcl9tb2R1bGUuX193cHRydW5uZXJfX1siZXhlY3V0b3IiXS52YWx1
ZXMoKToKLSAgICAgICAgY2hpbGRfZ2xvYmFsc1t2XSA9IGdldGF0dHIoc3VwZXJfbW9kdWxlLCB2
KQotCi0gICAgaWYgInJ1bl9pbmZvX2V4dHJhcyIgaW4gc3VwZXJfd3B0cnVubmVyOgotICAgICAg
ICBhdHRyID0gc3VwZXJfd3B0cnVubmVyWyJydW5faW5mb19leHRyYXMiXQotICAgICAgICBjaGls
ZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIGF0dHIpCi0KLQogZGVmIGNt
ZF9hcmcobmFtZSwgdmFsdWU9Tm9uZSk6CiAgICAgcHJlZml4ID0gIi0iIGlmIHBsYXRmb3JtLnN5
c3RlbSgpID09ICJXaW5kb3dzIiBlbHNlICItLSIKICAgICBydiA9IHByZWZpeCArIG5hbWUKQEAg
LTY1LDcgKzQ1LDcgQEAgZGVmIGdldF9mcmVlX3BvcnQoKToKICAgICAgICAgcyA9IHNvY2tldC5z
b2NrZXQoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzLmJpbmQoKCIxMjcuMC4wLjEiLCAw
KSkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6
CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJu
IHMuZ2V0c29ja25hbWUoKVsxXQpAQCAtMTI2LDYgKzEwNiwxMiBAQCBjbGFzcyBCcm93c2VyKG9i
amVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0ZXN0KToKKyAg
ICAgICAgIiIiRGljdGlvbmFyeSBvZiBtZXRhZGF0YSB0aGF0IGlzIGNvbnN0YW50IGZvciBhIHNw
ZWNpZmljIGxhdW5jaCBvZiBhIGJyb3dzZXIuCisKKyAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGRl
dGVybWluZSB3aGVuIHRoZSBicm93c2VyIGluc3RhbmNlIGNvbmZpZ3VyYXRpb24gY2hhbmdlcywg
cmVxdWlyaW5nCisgICAgICAgIGEgcmVsYXVuY2ggb2YgdGhlIGJyb3dzZXIuIFRoZSB0ZXN0IHJ1
bm5lciBjYWxscyB0aGlzIG1ldGhvZCBmb3IgZWFjaCB0ZXN0LCBhbmQgaWYgdGhlCisgICAgICAg
IHJldHVybmVkIHZhbHVlIGRpZmZlcnMgZnJvbSB0aGF0IGZvciB0aGUgcHJldmlvdXMgdGVzdCwg
dGhlIGJyb3dzZXIgaXMgcmVsYXVuY2hlZC4KKyAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiB7
fQogCiAgICAgQGFic3RyYWN0bWV0aG9kCkBAIC0xNTcsNiArMTQzLDEwIEBAIGNsYXNzIEJyb3dz
ZXIob2JqZWN0KToKICAgICAgICAgd2l0aCB3aGljaCBpdCBzaG91bGQgYmUgaW5zdGFudGlhdGVk
IiIiCiAgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHt9CiAKKyAgICBkZWYgbWF5YmVf
cGFyc2VfdG9tYnN0b25lKHNlbGYpOgorICAgICAgICAiIiJQb3NzaWJseSBwYXJzZSB0b21ic3Rv
bmVzIG9uIEFuZHJvaWQgZGV2aWNlIGZvciBBbmRyb2lkIHRhcmdldCIiIgorICAgICAgICBwYXNz
CisKICAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CiAgICAgICAgICIi
IkNoZWNrIGlmIGEgY3Jhc2ggb2NjdXJlZCBhbmQgb3V0cHV0IGFueSB1c2VmdWwgaW5mb3JtYXRp
b24gdG8gdGhlCiAgICAgICAgIGxvZy4gUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0
aGVyIGEgY3Jhc2ggb2NjdXJlZC4iIiIKQEAgLTE4MiwxMSArMTcyLDggQEAgY2xhc3MgTnVsbEJy
b3dzZXIoQnJvd3Nlcik6CiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4g
VHJ1ZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcgogCi0KLWNsYXNzIEV4ZWN1dG9yQnJvd3NlcihvYmplY3QpOgorY2xh
c3MgRXhlY3V0b3JCcm93c2VyOgogICAgICIiIlZpZXcgb2YgdGhlIEJyb3dzZXIgdXNlZCBieSB0
aGUgRXhlY3V0b3Igb2JqZWN0LgogICAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIEV4ZWN1
dG9yIHJ1bnMgaW4gYSBjaGlsZCBwcm9jZXNzIGFuZAogICAgIHdlIGNhbid0IHNoaXAgQnJvd3Nl
ciBpbnN0YW5jZXMgYmV0d2VlbiBwcm9jZXNzZXMgb24gV2luZG93cy4KQEAgLTE5Niw1ICsxODMs
OTUgQEAgY2xhc3MgRXhlY3V0b3JCcm93c2VyKG9iamVjdCk6CiAgICAgdXAgdGhlIGJyb3dzZXIg
ZnJvbSB0aGUgcnVubmVyIHByb2Nlc3MuCiAgICAgIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
ICoqa3dhcmdzKToKLSAgICAgICAgZm9yIGssIHYgaW4gaXRlcml0ZW1zKGt3YXJncyk6CisgICAg
ICAgIGZvciBrLCB2IGluIGt3YXJncy5pdGVtcygpOgogICAgICAgICAgICAgc2V0YXR0cihzZWxm
LCBrLCB2KQorCisKK0BlbnVtLnVuaXF1ZQorY2xhc3MgT3V0cHV0SGFuZGxlclN0YXRlKGVudW0u
SW50RW51bSk6CisgICAgQkVGT1JFX1BST0NFU1NfU1RBUlQgPSAxCisgICAgQUZURVJfUFJPQ0VT
U19TVEFSVCA9IDIKKyAgICBBRlRFUl9IQU5ETEVSX1NUQVJUID0gMworICAgIEFGVEVSX1BST0NF
U1NfU1RPUCA9IDQKKworCitjbGFzcyBPdXRwdXRIYW5kbGVyOgorICAgICIiIkNsYXNzIGZvciBo
YW5kbGluZyBvdXRwdXQgZnJvbSBhIGJyb3dzZXIgcHJvY2Vzcy4KKworICAgIFRoaXMgY2xhc3Mg
aXMgcmVzcG9uc2libGUgZm9yIGNvbnN1bWluZyB0aGUgbG9nZ2luZyBmcm9tIGEgYnJvd3NlciBw
cm9jZXNzCisgICAgYW5kIHBhc3NpbmcgaXQgaW50byB0aGUgcmVsZXZhbnQgbG9nZ2VyLiBBIGNs
YXNzIGluc3RhbmNlIGlzIGRlc2lnbmVkIHRvCisgICAgYmUgcGFzc2VkIGFzIHRoZSBwcm9jZXNz
T3V0cHV0TGluZSBhcmd1bWVudCB0byBtb3pwcm9jZXNzLlByb2Nlc3NIYW5kbGVyLgorCisgICAg
VGhlIHNldHVwIG9mIHRoaXMgY2xhc3MgaXMgY29tcGxleCBmb3IgdmFyaW91cyByZWFzb25zOgor
CisgICAgKiBXZSBuZWVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgYmVmb3Jl
IHN0YXJ0aW5nIHRoZSBwcm9jZXNzCisgICAgKiBXZSB3YW50IGFjY2VzcyB0byBkYXRhIGFib3V0
IHRoZSBydW5uaW5nIHByb2Nlc3MgZS5nLiB0aGUgcGlkCisgICAgKiBXZSB3YW50IHRvIGxhdW5j
aCB0aGUgcHJvY2VzcyBhbmQgbGF0ZXIgc2V0dXAgYWRkaXRpb25hbCBsb2cgaGFuZGxpbmcKKyAg
ICAgIHdoaWNoIGlzIHJlc3Ryb3NwZWN0aXZlbHkgYXBwbGllZCB0byBhbnkgZXhpc3Rpbmcgb3V0
cHV0ICh0aGlzIHN1cHBvcnRzCisgICAgICBwcmVsYXVuY2hpbmcgYnJvd3NlcnMgZm9yIHBlcmZv
cm1hbmNlLCBidXQgaGF2aW5nIGxvZyBvdXRwdXQgZGVwZW5kIG9uIHRoZQorICAgICAgdGVzdHMg
dGhhdCBhcmUgcnVuIGUuZy4gZm9yIGxlYWsgc3VwcHJlc3Npb24pLgorCisgICAgVGhlcmVmb3Jl
IHRoZSBsaWZlY3ljbGUgaXMgYXMgZm9sbG93czo6CisKKyAgICAgIG91dHB1dF9oYW5kbGVyID0g
T3V0cHV0SGFuZGxlcihsb2dnZXIsIGNvbW1hbmQsICoqb3V0cHV0X2hhbmRsZXJfa3dhcmdzKQor
ICAgICAgcHJvYyA9IFByb2Nlc3NIYW5kbGVyKGNvbW1hbmQsIC4uLiwgcHJvY2Vzc091dHB1dExp
bmU9b3V0cHV0X2hhbmRsZXIpCisgICAgICBvdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0
YXJ0KHByb2MucGlkKQorICAgICAgWy4uLl0KKyAgICAgICMgQWxsIGxvZ2dpbmcgdG8gdGhpcyBw
b2ludCB3YXMgYnVmZmVyZWQgaW4tbWVtb3J5LCBidXQgYWZ0ZXIgc3RhcnQoKQorICAgICAgIyBp
dCdzIGFjdHVhbGx5IHNlbnQgdG8gdGhlIGxvZ2dlci4KKyAgICAgIG91dHB1dF9oYW5kbGVyLnN0
YXJ0KCoqb3V0cHV0X2xvZ2dlcl9zdGFydF9rd2FyZ3MpCisgICAgICBbLi4uXQorICAgICAgcHJv
Yy53YWl0KCkKKyAgICAgIG91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcCgpCisKKyAg
ICBTaW5jZSB0aGUgcHJvY2VzcyBsaWZldGltZSBhbmQgdGhlIG91dHB1dCBoYW5kbGVyIGxpZmV0
aW1lIGFyZSBjb3VwbGVkIChpdCBkb2Vzbid0CisgICAgd29yayB0byByZXVzZSBhbiBvdXRwdXQg
aGFuZGxlciBmb3IgbXVsdGlwbGUgcHJvY2Vzc2VzKSwgaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBo
YXZlCisgICAgYSBzaW5nbGUgY2xhc3MgdGhhdCBvd25zIHRoZSBwcm9jZXNzIGFuZCB0aGUgb3V0
cHV0IHByb2Nlc3NpbmcgZm9yIHRoZSBwcm9jZXNzLgorICAgIFRoaXMgaXMgY29tcGxpY2F0ZWQg
YnkgdGhlIGZhY3QgdGhhdCB3ZSBkb24ndCBhbHdheXMgcnVuIHRoZSBwcm9jZXNzIGRpcmVjdGx5
LAorICAgIGJ1dCBzb21ldGltZXMgdXNlIGEgd3JhcHBlciBlLmcuIG1venJ1bm5lci4KKyAgICAi
IiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGNvbW1hbmQsICoqa3dhcmdzKToK
KyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5jb21tYW5kID0gY29t
bWFuZAorICAgICAgICBzZWxmLnBpZCA9IE5vbmUKKyAgICAgICAgc2VsZi5zdGF0ZSA9IE91dHB1
dEhhbmRsZXJTdGF0ZS5CRUZPUkVfUFJPQ0VTU19TVEFSVAorICAgICAgICBzZWxmLmxpbmVfYnVm
ZmVyID0gW10KKworICAgIGRlZiBhZnRlcl9wcm9jZXNzX3N0YXJ0KHNlbGYsIHBpZCk6CisgICAg
ICAgIGFzc2VydCBzZWxmLnN0YXRlID09IE91dHB1dEhhbmRsZXJTdGF0ZS5CRUZPUkVfUFJPQ0VT
U19TVEFSVAorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiT3V0cHV0SGFuZGxlci5hZnRlcl9w
cm9jZXNzX3N0YXJ0IikKKyAgICAgICAgc2VsZi5waWQgPSBwaWQKKyAgICAgICAgc2VsZi5zdGF0
ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9QUk9DRVNTX1NUQVJUCisKKyAgICBkZWYgc3Rh
cnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBhc3NlcnQgc2VsZi5zdGF0ZSA9PSBPdXRwdXRI
YW5kbGVyU3RhdGUuQUZURVJfUFJPQ0VTU19TVEFSVAorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiT3V0cHV0SGFuZGxlci5zdGFydCIpCisgICAgICAgICMgTmVlZCB0byBjaGFuZ2UgdGhlIHN0
YXRlIGhlcmUgYmVmb3JlIHdlIHRyeSB0byBlbXB0eSB0aGUgYnVmZmVyCisgICAgICAgICMgb3Ig
d2UnbGwganVzdCByZS1idWZmZXIgdGhlIGV4aXN0aW5nIG91dHB1dC4KKyAgICAgICAgc2VsZi5z
dGF0ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9IQU5ETEVSX1NUQVJUCisgICAgICAgIGZv
ciBpdGVtIGluIHNlbGYubGluZV9idWZmZXI6CisgICAgICAgICAgICBzZWxmKGl0ZW0pCisgICAg
ICAgIHNlbGYubGluZV9idWZmZXIgPSBOb25lCisKKyAgICBkZWYgYWZ0ZXJfcHJvY2Vzc19zdG9w
KHNlbGYsIGNsZWFuX3NodXRkb3duPVRydWUpOgorICAgICAgICAjIElmIHdlIGRpZG4ndCBnZXQg
YXMgZmFyIGFzIGNvbmZpZ3VyZSwganVzdAorICAgICAgICAjIGR1bXAgYWxsIGxvZ3Mgd2l0aCBu
byBjb25maWd1cmF0aW9uCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJPdXRwdXRIYW5kbGVy
LmFmdGVyX3Byb2Nlc3Nfc3RvcCIpCisgICAgICAgIGlmIHNlbGYuc3RhdGUgPCBPdXRwdXRIYW5k
bGVyU3RhdGUuQUZURVJfSEFORExFUl9TVEFSVDoKKyAgICAgICAgICAgIHNlbGYuc3RhcnQoKQor
ICAgICAgICBzZWxmLnN0YXRlID0gT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX1BST0NFU1NfU1RP
UAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGxpbmUpOgorICAgICAgICBpZiBzZWxmLnN0YXRl
IDwgT3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX0hBTkRMRVJfU1RBUlQ6CisgICAgICAgICAgICBz
ZWxmLmxpbmVfYnVmZmVyLmFwcGVuZChsaW5lKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAg
ICAgIyBDb3VsZCBhc3NlcnQgdGhhdCB0aGVyZSdzIG5vIG91dHB1dCBoYW5kbGVkIG9uY2Ugd2Un
cmUgaW4gdGhlCisgICAgICAgICMgYWZ0ZXJfcHJvY2Vzc19zdG9wIHBoYXNlLCBhbHRob3VnaCB0
ZWNobmljYWxseSB0aGVyZSdzIGEgcmFjZSBjb25kaXRpb24KKyAgICAgICAgIyBoZXJlIGJlY2F1
c2Ugd2UgZG9uJ3Qga25vdyB0aGUgbG9nZ2luZyB0aHJlYWQgaGFzIGZpbmlzaGVkIGRyYWluaW5n
IHRoZQorICAgICAgICAjIGxvZ3MuIFRoZSBzb2x1dGlvbiBtaWdodCBiZSB0byBtb3ZlIHRoaXMg
aW50byBtb3pwcm9jZXNzIGl0c2VsZi4KKworICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291
dHB1dChzZWxmLnBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5k
ZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFuZCkgaWYgc2VsZi5jb21tYW5kIGVsc2Ug
IiIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKaW5kZXgg
ZmQyNTFhNDMxYzMwLi4wYjZhMGM2MThkZmMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9jaHJvbWUucHkKQEAgLTEsNSArMSw2IEBACiBmcm9tIC4gaW1wb3J0IGNocm9t
ZV9zcGtpX2NlcnRzCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIs
IHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAx
CiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAx
CiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCiBmcm9t
IC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2Fy
Z3MKQEAgLTEyLDcgKzEzLDggQEAgZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBv
cnQgKENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAKIAogX193cHRydW5u
ZXJfXyA9IHsicHJvZHVjdCI6ICJjaHJvbWUiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJn
cyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiQ2hyb21lQnJv
d3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJDaHJvbWVCcm93c2Vy
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9
LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZl
clRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
ZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJwcmludC1yZWZ0ZXN0IjogIkNocm9tZURyaXZlclByaW50UmVmVGVzdEV4ZWN1
dG9yIiwKQEAgLTI4LDE2ICszMCwxNSBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAg
cmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dzZXJf
a3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYg
YnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywg
Kiprd2FyZ3MpOgogICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCiAgICAg
ICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAog
ICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3Mi
KX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2Fj
aGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICBleGVj
dXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJv
bm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25l
Il0gPSBUcnVlCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9wYWdlbG9hZCJd
ID0gRmFsc2UKQEAgLTgxLDkgKzgyLDMxIEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICMgUG9p
bnQgYWxsIC50ZXN0IGRvbWFpbnMgdG8gbG9jYWxob3N0IGZvciBDaHJvbWUKICAgICBjaHJvbWVf
b3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1ob3N0LXJlc29sdmVyLXJ1bGVzPU1BUCBub25leGlz
dGVudC4qLnRlc3Qgfk5PVEZPVU5ELCBNQVAgKi50ZXN0IDEyNy4wLjAuMSIpCiAKKyAgICAjIENs
YXNzaWZ5IGBodHRwLXByaXZhdGVgLCBgaHR0cC1wdWJsaWNgIGFuZCBodHRwcyB2YXJpYW50cyBp
biB0aGUKKyAgICAjIGFwcHJvcHJpYXRlIElQIGFkZHJlc3Mgc3BhY2VzLgorICAgICMgRm9yIG1v
cmUgZGV0YWlscywgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3Jm
Y3MvYmxvYi9tYXN0ZXIvcmZjcy9hZGRyZXNzX3NwYWNlX292ZXJyaWRlcy5tZAorICAgIGFkZHJl
c3Nfc3BhY2Vfb3ZlcnJpZGVzX3BvcnRzID0gWworICAgICAgICAoImh0dHAtcHJpdmF0ZSIsICJw
cml2YXRlIiksCisgICAgICAgICgiaHR0cC1wdWJsaWMiLCAicHVibGljIiksCisgICAgICAgICgi
aHR0cHMtcHJpdmF0ZSIsICJwcml2YXRlIiksCisgICAgICAgICgiaHR0cHMtcHVibGljIiwgInB1
YmxpYyIpLAorICAgIF0KKyAgICBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19hcmcgPSAiLCIuam9p
bigKKyAgICAgICAgIjEyNy4wLjAuMTp7fT17fSIuZm9ybWF0KHBvcnRfbnVtYmVyLCBhZGRyZXNz
X3NwYWNlKQorICAgICAgICBmb3IgcG9ydF9uYW1lLCBhZGRyZXNzX3NwYWNlIGluIGFkZHJlc3Nf
c3BhY2Vfb3ZlcnJpZGVzX3BvcnRzCisgICAgICAgIGZvciBwb3J0X251bWJlciBpbiB0ZXN0X2Vu
dmlyb25tZW50LmNvbmZpZy5wb3J0cy5nZXQocG9ydF9uYW1lLCBbXSkKKyAgICApCisgICAgaWYg
YWRkcmVzc19zcGFjZV9vdmVycmlkZXNfYXJnOgorICAgICAgICBjaHJvbWVfb3B0aW9uc1siYXJn
cyJdLmFwcGVuZCgKKyAgICAgICAgICAgICItLWlwLWFkZHJlc3Mtc3BhY2Utb3ZlcnJpZGVzPSIg
KyBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19hcmcpCisKICAgICBpZiBrd2FyZ3NbImVuYWJsZV9t
b2pvanMiXToKICAgICAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0tZW5hYmxl
LWJsaW5rLWZlYXR1cmVzPU1vam9KUyxNb2pvSlNUZXN0IikKIAorICAgIGlmIGt3YXJnc1siZW5h
YmxlX3N3aWZ0c2hhZGVyIl06CisgICAgICAgICMgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL3NyYy8rL0hFQUQvZG9jcy9ncHUvc3dpZnRzaGFkZXIubWQKKyAgICAg
ICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5leHRlbmQoWyItLXVzZS1nbD1hbmdsZSIsICItLXVz
ZS1hbmdsZT1zd2lmdHNoYWRlciJdKQorCiAgICAgIyBDb3B5IG92ZXIgYW55IG90aGVyIGZsYWdz
IHRoYXQgd2VyZSBwYXNzZWQgaW4gdmlhIC0tYmluYXJ5X2FyZ3MKICAgICBpZiBrd2FyZ3NbImJp
bmFyeV9hcmdzIl0gaXMgbm90IE5vbmU6CiAgICAgICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0u
ZXh0ZW5kKGt3YXJnc1siYmluYXJ5X2FyZ3MiXSkKQEAgLTExMyw3ICsxMzYsNyBAQCBjbGFzcyBD
aHJvbWVCcm93c2VyKEJyb3dzZXIpOgogICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAotICAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgICAgICAgICAgd2ViZHJp
dmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJl
c2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcwogICAgICAg
ICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgogICAgICAgICBCcm93
c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRy
b2lkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKaW5kZXggNDg1Yjk2ZjMxZTdkLi4zYmEw
MTU4OGIyOTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2Nocm9tZV9hbmRyb2lkLnB5CkBAIC0xLDcgKzEsOSBAQAoraW1wb3J0IG1venByb2Nlc3MKIGlt
cG9ydCBzdWJwcm9jZXNzCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJv
d3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxp
ZXIgICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6
IEY0MDEKIGZyb20gLmNocm9tZSBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGNocm9tZV9leGVj
dXRvcl9rd2FyZ3MKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJvbWVEcml2ZXJT
ZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2
ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCkBAIC0xMSw3ICsxMyw4IEBAIGZy
b20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4
ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJjaHJv
bWVfYW5kcm9pZCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3Mi
LAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVBbmRyb2lkQnJvd3NlciIsCisg
ICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJDaHJvbWVBbmRyb2lkQnJvd3NlciIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwK
ICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJU
ZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0
ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIkNocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCkBAIC0yOSwy
MyArMzIsMjQgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3
YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAg
ICByZXR1cm4geyJwYWNrYWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdLAogICAgICAg
ICAgICAgImRldmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKICAgICAgICAg
ICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCi0gICAg
ICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQor
ICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3Mi
KSwKKyAgICAgICAgICAgICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzLmdldCgic3RhY2t3YWxr
X2JpbmFyeSIpLAorICAgICAgICAgICAgInN5bWJvbHNfcGF0aCI6IGt3YXJncy5nZXQoInN5bWJv
bHNfcGF0aCIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29u
ZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhs
b2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgICMgVXNlIHVwZGF0ZSgpIHRvIG1vZGlmeSB0
aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCiAgICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0ZShzZXQo
Ci0gICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHNlcnZlcl9jb25maWdb
J3BvcnRzJ11bJ2h0dHBzJ10gKwotICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3cydd
ICsgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3NzJ10KKyAgICAgICAgdGVzdF9lbnZpcm9ubWVu
dC5jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0
cyddWydodHRwcyddICsKKyAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11b
J3dzJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMnXVsnd3NzJ10KICAgICApKQog
Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUs
IHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgIGV4ZWN1dG9yX2t3YXJncyA9
IGNocm9tZV9leGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1l
bnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKmt3YXJncykKICAgICAjIFJlbW92ZSB1bnN1cHBvcnRlZCBvcHRpb25zIG9uIG1v
YmlsZS4KICAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJv
bWVPcHRpb25zIl1bInByZWZzIl0KQEAgLTY5LDIwICs3Myw4MiBAQCBkZWYgZW52X29wdGlvbnMo
KToKICAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEifQogCiAKLWNsYXNzIENo
cm9tZUFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgotICAgICIiIkNocm9tZSBpcyBiYWNrZWQgYnkg
Y2hyb21lZHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCi0gICAgYGB3cHRydW5uZXIu
d2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBgLgotICAgICIiIgorY2xhc3MgTG9nY2F0UnVu
bmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3NlciwgcmVt
b3RlX3F1ZXVlKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5i
cm93c2VyID0gYnJvd3NlcgorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IHJlbW90ZV9xdWV1
ZQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxm
Ll9ydW4oKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICBz
ZWxmLnN0b3AoKQorCisgICAgZGVmIF9ydW4oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICMgVE9ETzogYWRiIGxvZ2NhdCAtYyBmYWlsIHJhbmRvbWx5IHdpdGggbWVzc2FnZQorICAg
ICAgICAgICAgIyAiZmFpbGVkIHRvIGNsZWFyIHRoZSAnbWFpbicgbG9nIgorICAgICAgICAgICAg
c2VsZi5icm93c2VyLmNsZWFyX2xvZygpCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxl
ZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJGYWlsZWQgdG8g
Y2xlYXIgbG9nY2F0IGJ1ZmZlciIpCisKKyAgICAgICAgc2VsZi5fY21kID0gc2VsZi5icm93c2Vy
LmxvZ2NhdF9jbWQoKQorICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vzcy5Qcm9jZXNzSGFu
ZGxlcigKKyAgICAgICAgICAgIHNlbGYuX2NtZCwKKyAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRM
aW5lPXNlbGYub25fb3V0cHV0LAorICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFsc2UpCisgICAg
ICAgIHNlbGYuX3Byb2MucnVuKCkKKworICAgIGRlZiBfc2VuZF9tZXNzYWdlKHNlbGYsIGNvbW1h
bmQsICphcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUu
cHV0KChjb21tYW5kLCBhcmdzKSkKKyAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgorICAg
ICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRXJyb3Igd2hlbiBzZW5kIHRvIHJlbW90ZSBx
dWV1ZSIpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwYWNrYWdlX25hbWUsIHdl
YmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCi0gICAgICAgICAgICAgICAgIGRldmljZV9z
ZXJpYWw9Tm9uZSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6Ci0gICAgICAgIEJyb3dzZXIuX19pbml0
X18oc2VsZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9IHBhY2thZ2VfbmFt
ZQorICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgaWYgc2VsZi5pc19h
bGl2ZSgpOgorICAgICAgICAgICAga2lsbF9yZXN1bHQgPSBzZWxmLl9wcm9jLmtpbGwoKQorICAg
ICAgICAgICAgaWYgZm9yY2UgYW5kIGtpbGxfcmVzdWx0ICE9IDA6CisgICAgICAgICAgICAgICAg
c2VsZi5fcHJvYy5raWxsKDkpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgIHJl
dHVybiBoYXNhdHRyKHNlbGYuX3Byb2MsICJwcm9jIikgYW5kIHNlbGYuX3Byb2MucG9sbCgpIGlz
IE5vbmUKKworICAgIGRlZiBvbl9vdXRwdXQoc2VsZiwgbGluZSk6CisgICAgICAgIGRhdGEgPSB7
CisgICAgICAgICAgICAiYWN0aW9uIjogInByb2Nlc3Nfb3V0cHV0IiwKKyAgICAgICAgICAgICJw
cm9jZXNzIjogIkxPR0NBVCIsCisgICAgICAgICAgICAiY29tbWFuZCI6ICJsb2djYXQiLAorICAg
ICAgICAgICAgImRhdGEiOiBsaW5lCisgICAgICAgIH0KKyAgICAgICAgc2VsZi5fc2VuZF9tZXNz
YWdlKCJsb2ciLCBkYXRhKQorCisKK2NsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyQmFzZShCcm93
c2VyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLAorICAgICAgICAgICAgICAgICB3
ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAorICAgICAgICAgICAgICAgICByZW1vdGVf
cXVldWUgPSBOb25lLAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsCisgICAg
ICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIHN0YWNr
d2Fsa19iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5vbmUpOgor
ICAgICAgICBzdXBlcihDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UsIHNlbGYpLl9faW5pdF9fKGxv
Z2dlcikKICAgICAgICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAorICAgICAg
ICBzZWxmLnN0YWNrd2Fsa19iaW5hcnkgPSBzdGFja3dhbGtfYmluYXJ5CisgICAgICAgIHNlbGYu
c3ltYm9sc19wYXRoID0gc3ltYm9sc19wYXRoCisgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0g
cmVtb3RlX3F1ZXVlCiAgICAgICAgIHNlbGYuc2VydmVyID0gQ2hyb21lRHJpdmVyU2VydmVyKHNl
bGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5h
cnk9d2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKyAgICAgICAgaWYgc2VsZi5yZW1vdGVfcXVldWUg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5uZXIgPSBMb2djYXRSdW5u
ZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLCBzZWxmLnJlbW90ZV9xdWV1ZSkKKworICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAg
ICAgc2VsZi5zZXR1cF9hZGJfcmV2ZXJzZSgpCisgICAgICAgIGlmIHNlbGYucmVtb3RlX3F1ZXVl
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2djYXRfcnVubmVyLnN0YXJ0KCkKIAog
ICAgIGRlZiBfYWRiX3J1bihzZWxmLCBhcmdzKToKICAgICAgICAgY21kID0gWydhZGInXQpAQCAt
OTIsMTQgKzE1OCw2IEBAIGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAg
ICAgICBzZWxmLmxvZ2dlci5pbmZvKCcgJy5qb2luKGNtZCkpCiAgICAgICAgIHN1YnByb2Nlc3Mu
Y2hlY2tfY2FsbChjbWQpCiAKLSAgICBkZWYgc2V0dXBfYWRiX3JldmVyc2Uoc2VsZik6Ci0gICAg
ICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1kZXZpY2UnXSkKLSAgICAgICAgc2VsZi5fYWRi
X3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10pCi0gICAgICAgIHNlbGYuX2FkYl9ydW4o
WydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICAjICJhZGIgcmV2ZXJzZSIgZm9y
d2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20gZGV2aWNlIHRvIGhvc3QuCi0gICAgICAgIGZv
ciBwb3J0IGluIF93cHRzZXJ2ZV9wb3J0czoKLSAgICAgICAgICAgIHNlbGYuX2FkYl9ydW4oWydy
ZXZlcnNlJywgJ3RjcDolZCcgJSBwb3J0LCAndGNwOiVkJyAlIHBvcnRdKQotCiAgICAgZGVmIHN0
YXJ0KHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFs
c2UpCiAKQEAgLTExOSw2ICsxNzcsNjAgQEAgY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXIoQnJv
d3Nlcik6CiAgICAgICAgIHNlbGYuc3RvcCgpCiAgICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3
YXJkJywgJy0tcmVtb3ZlLWFsbCddKQogICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScs
ICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgaWYgc2VsZi5yZW1vdGVfcXVldWUgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5uZXIuc3RvcChmb3JjZT1UcnVlKQogCiAg
ICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBFeGVjdXRvckJy
b3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KKworICAgIGRlZiBjbGVh
cl9sb2coc2VsZik6CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydsb2djYXQnLCAnLWMnXSkKKwor
ICAgIGRlZiBsb2djYXRfY21kKHNlbGYpOgorICAgICAgICBjbWQgPSBbJ2FkYiddCisgICAgICAg
IGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAgICAgICAgICAgIGNtZC5leHRlbmQoWyctcycsIHNl
bGYuZGV2aWNlX3NlcmlhbF0pCisgICAgICAgIGNtZC5leHRlbmQoWydsb2djYXQnLCAnKjpEJ10p
CisgICAgICAgIHJldHVybiBjbWQKKworICAgIGRlZiBjaGVja19jcmFzaChzZWxmLCBwcm9jZXNz
LCB0ZXN0KToKKyAgICAgICAgc2VsZi5tYXliZV9wYXJzZV90b21ic3RvbmUoKQorICAgICAgICAj
IEV4aXN0ZW5jZSBvZiBhIHRvbWJzdG9uZSBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFuIHRlc3Qg
dGFyZ2V0IGhhcworICAgICAgICAjIGNyYXNoZWQuIEFsd2F5cyByZXR1cm4gRmFsc2Ugc28gd2Ug
ZG9uJ3QgY2hhbmdlIHRoZSB0ZXN0IHJlc3VsdHMuCisgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgZGVmIG1heWJlX3BhcnNlX3RvbWJzdG9uZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5zdGFj
a3dhbGtfYmluYXJ5OgorICAgICAgICAgICAgY21kID0gW3NlbGYuc3RhY2t3YWxrX2JpbmFyeSwg
Ii1hIiwgIi13Il0KKyAgICAgICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAgICAgICAg
ICAgICAgICBjbWQuZXh0ZW5kKFsiLS1kZXZpY2UiLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAg
ICAgICAgICAgY21kLmV4dGVuZChbIi0tb3V0cHV0LWRpcmVjdG9yeSIsIHNlbGYuc3ltYm9sc19w
YXRoXSkKKyAgICAgICAgICAgIHJhd19vdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChj
bWQpCisgICAgICAgICAgICBmb3IgbGluZSBpbiByYXdfb3V0cHV0LnNwbGl0bGluZXMoKToKKyAg
ICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dCgiVFJBQ0UiLCBsaW5lLCAi
bG9nY2F0IikKKworICAgIGRlZiBzZXR1cF9hZGJfcmV2ZXJzZShzZWxmKToKKyAgICAgICAgc2Vs
Zi5fYWRiX3J1bihbJ3dhaXQtZm9yLWRldmljZSddKQorICAgICAgICBzZWxmLl9hZGJfcnVuKFsn
Zm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVy
c2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgICMgImFkYiByZXZlcnNlIiBmb3J3YXJkcyBu
ZXR3b3JrIGNvbm5lY3Rpb24gZnJvbSBkZXZpY2UgdG8gaG9zdC4KKyAgICAgICAgZm9yIHBvcnQg
aW4gc2VsZi53cHRzZXJ2ZXJfcG9ydHM6CisgICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2
ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKKworY2xhc3MgQ2hyb21l
QW5kcm9pZEJyb3dzZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKKyAgICAiIiJDaHJvbWUg
aXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaAorICAg
IGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KKyAgICAiIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHBhY2thZ2VfbmFtZSwKKyAgICAgICAgICAg
ICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAg
cmVtb3RlX3F1ZXVlID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgZGV2aWNlX3NlcmlhbD1Ob25l
LAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAgICAg
ICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1O
b25lKToKKyAgICAgICAgc3VwZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXIsIHNlbGYpLl9faW5pdF9f
KGxvZ2dlciwKKyAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVldWUs
IGRldmljZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNrd2Fs
a19iaW5hcnksIHN5bWJvbHNfcGF0aCkKKyAgICAgICAgc2VsZi5wYWNrYWdlX25hbWUgPSBwYWNr
YWdlX25hbWUKKyAgICAgICAgc2VsZi53cHRzZXJ2ZXJfcG9ydHMgPSBfd3B0c2VydmVfcG9ydHMK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmU0YWM1Mjg3ZjE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weQpAQCAtMCwwICsxLDgxIEBACitmcm9t
IC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9t
IC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9x
YTogRjQwMQorZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENXVENocm9tZURyaXZlclNl
cnZlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhl
Y3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAo
V2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikg
ICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hy
b21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQorCisKK19fd3B0cnVubmVyX18g
PSB7InByb2R1Y3QiOiAiY2hyb21lX2lvcyIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdz
IjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiQ2hy
b21laU9TQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAi
TnVsbEJyb3dzZXIifSwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVz
cyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciJ9LAorICAgICAg
ICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAg
ICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52
X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0
aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCitkZWYgY2hlY2tfYXJncygqKmt3
YXJncyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKKwor
ZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25m
aWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3
ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3Mu
Z2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCisgICAgZXhlY3V0
b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisgICAgZXhlY3V0b3Jfa3dhcmdz
WyJjYXBhYmlsaXRpZXMiXSA9IHt9CisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncworCisKK2Rl
ZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYgZW52X29wdGlv
bnMoKToKKyAgICByZXR1cm4ge30KKworCitjbGFzcyBDaHJvbWVpT1NCcm93c2VyKEJyb3dzZXIp
OgorICAgICIiIkNocm9tZWlPUyBpcyBiYWNrZWQgYnkgQ1dUQ2hyb21lRHJpdmVyLCB3aGljaCBp
cyBzdXBwbGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkNXVENocm9tZURy
aXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgaW5pdF90aW1lb3V0ID0gMTIwCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2ZXJfYXJn
cz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRp
b24gb2YgQ2hyb21lLiIiIgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikK
KyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJk
cml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcmdzPXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToK
KyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYgc3RvcChz
ZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2Up
CisKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCisK
KyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkg
aW5kaWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5
IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAgIyBpcyBh
Y3RpdmUuCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisKKyAgICBkZWYg
Y2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVjdXRvcl9i
cm93c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZl
cl91cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfc3BraV9j
ZXJ0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9zcGtpX2NlcnRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uZjVjY2JjNmJjOGEyCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvY2hyb21lX3Nwa2lfY2VydHMucHkKQEAgLTAsMCArMSwxMyBAQAorIyBUaGlzIGZpbGUgaXMg
YXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgJ3dwdCByZWdlbi1jZXJ0cycKKyMgRE8gTk9UIEVE
SVQgTUFOVUFMTFkuCisKKyMgdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtCitXUFRf
RklOR0VSUFJJTlQgPSAnRTk2QXNaM1BNY0ZJNXhHNm9KL05mMDc2b1pmdm9vdWJ3OG5sUndabjBK
az0nCisKKyMgc2lnbmVkLWV4Y2hhbmdlL3Jlc291cmNlcy8xMjcuMC4wLjEuc3hnLnBlbQorU1hH
X1dQVF9GSU5HRVJQUklOVCA9ICcwUnQ0bVQ2U0pYb2pFTUhUbktubEovaEJLTUJjSTRrdGVCbGhS
MWVUVGRrPScKKworSUdOT1JFX0NFUlRJRklDQVRFX0VSUk9SU19TUEtJX0xJU1QgPSBbCisgICAg
V1BUX0ZJTkdFUlBSSU5ULAorICAgIFNYR19XUFRfRklOR0VSUFJJTlQKK10KZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2VkZ2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CmluZGV4IGJkYjM3YjNmODRjMi4uMzEwMWU5
YzdiZWEzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKQEAg
LTEsNyArMSw3IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBv
cnQgdGltZQogaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4
ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2Vy
ICAjIG5vcWE6IEY0MDEKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdlRHJpdmVy
U2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9l
eGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQg
KFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQpAQCAtMTAsNyArMTAs
OCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yZWRnZSBpbXBvcnQgRWRnZURyaXZlcldkc3Bl
Y0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJl
ZGdlIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAg
ICAgICAgICAgICAgICJicm93c2VyIjogIkVkZ2VCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAg
ImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0
b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVj
dXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkVkZ2VEcml2
ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMzQsNyArMzUsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3
YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAot
ZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3
YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBr
d2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6
IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiksCiAgICAgICAgICAgICAidGltZW91dF9tdWx0
aXBsaWVyIjogZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsCkBAIC00MiwxMCArNDMs
OSBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVj
dXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZv
X2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2Fy
Z3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVu
X2luZm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3
YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAg
ICBleGVjdXRvcl9rd2FyZ3NbInRpbWVvdXRfbXVsdGlwbGllciJdID0gZ2V0X3RpbWVvdXRfbXVs
dGlwbGllcih0ZXN0X3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwKQEAgLTY1LDEwICs2
NSwxMCBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogCiBjbGFzcyBFZGdlQnJvd3NlcihCcm93c2Vy
KToKLSAgICB1c2VkX3BvcnRzID0gc2V0KCkKICAgICBpbml0X3RpbWVvdXQgPSA2MAogCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgdGltZW91dF9tdWx0
aXBsaWVyPU5vbmUsIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxp
ZXI9Tm9uZSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBCcm93c2Vy
Ll9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBFZGdlRHJpdmVy
U2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRy
aXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5CmluZGV4IGMyNTQ1ZGU0NmYwYi4uZTU5
NDlmZTNlNTdmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9lZGdlX3dlYmRyaXZlci5weQpAQCAtMSwxMiArMSwyOCBAQAotZnJvbSAuYmFzZSBpbXBvcnQg
aW5oZXJpdAotZnJvbSAuIGltcG9ydCBlZGdlCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3Nl
ciAgIyBub3FhOiBGNDAxCitmcm9tIC5lZGdlIGltcG9ydCAoRWRnZUJyb3dzZXIsICAjIG5vcWE6
IEY0MDEKKyAgICAgICAgICAgICAgICAgICBFZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3IsICAjIG5v
cWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBjaGVja19hcmdzLCAgIyBub3FhOiBGNDAxCisg
ICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAgICAgICAg
ICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAg
ICAgICBlbnZfZXh0cmFzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgZW52X29w
dGlvbnMsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXMs
ICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICBnZXRfdGltZW91dF9tdWx0aXBsaWVy
KSAgIyBub3FhOiBGNDAxCiAKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1w
b3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1
dG9yKSAgIyBub3FhOiBGNDAxCiAKIAotaW5oZXJpdChlZGdlLCBnbG9iYWxzKCksICJlZGdlX3dl
YmRyaXZlciIpCi0KLSMgX193cHRydW5uZXJfXyBtYWdpY2FsbHkgYXBwZWFycyBmcm9tIGluaGVy
aXQsIEY4MjEgaXMgdW5kZWZpbmVkIG5hbWUKLV9fd3B0cnVubmVyX19bImV4ZWN1dG9yIl1bInRl
c3RoYXJuZXNzIl0gPSAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIgICMgbm9xYTogRjgy
MQotX193cHRydW5uZXJfX1siZXhlY3V0b3IiXVsicmVmdGVzdCJdID0gIldlYkRyaXZlclJlZlRl
c3RFeGVjdXRvciIgICMgbm9xYTogRjgyMQorX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJl
ZGdlX3dlYmRyaXZlciIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2Fy
Z3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiRWRnZUJyb3dzZXIiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCisg
ICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVz
dCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJFZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAg
ICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAg
ICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAg
ICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRp
b25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6
ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVy
IjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9t
aXVtLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uNGYyZTBkZGM0ZDAyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRn
ZWNocm9taXVtLnB5CkBAIC0wLDAgKzEsMTE5IEBACitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2Vy
LCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJv
d3NlciAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBs
aWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZUNo
cm9taXVtRHJpdmVyU2VydmVyCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2Fy
Z3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJk
cml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAx
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVm
VGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yZWRn
ZWNocm9taXVtIGltcG9ydCBFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3Fh
OiBGNDAxCisKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlY2hyb21pdW0iLAor
ICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAgICAg
ICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VDaHJvbWl1bUJyb3dzZXIiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCisgICAgICAgICAg
ICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NF
eGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJE
cml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndk
c3BlYyI6ICJFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAg
ICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAg
ICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAg
ICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlv
bnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVy
IjogImdldF90aW1lb3V0X211bHRpcGxpZXIiLH0KKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKKworZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAg
ICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwK
KyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdz
Iil9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZp
cm9ubWVudCwgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgor
ICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2Rh
dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3Mp
CisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UKKworICAgIGNh
cGFiaWxpdGllcyA9IHsKKyAgICAgICAgIm1zOmVkZ2VPcHRpb25zIjogeworICAgICAgICAgICAg
InByZWZzIjogeworICAgICAgICAgICAgICAgICJwcm9maWxlIjogeworICAgICAgICAgICAgICAg
ICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogeworICAgICAgICAgICAgICAg
ICAgICAgICAgInBvcHVwcyI6IDEKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidXNlQXV0b21hdGlvbkV4dGVuc2lv
biI6IEZhbHNlLAorICAgICAgICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsiZW5hYmxlLWF1dG9t
YXRpb24iXSwKKyAgICAgICAgICAgICJ3M2MiOiBUcnVlCisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJw
YWdlTG9hZFN0cmF0ZWd5Il0gPSAibm9uZSIKKworICAgIGZvciAoa3dhcmcsIGNhcGFiaWxpdHkp
IGluIFsoImJpbmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJhcmdzIildOgorICAg
ICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY2FwYWJpbGl0
aWVzWyJtczplZGdlT3B0aW9ucyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3YXJnXQorCisgICAg
aWYga3dhcmdzWyJoZWFkbGVzcyJdOgorICAgICAgICBpZiAiYXJncyIgbm90IGluIGNhcGFiaWxp
dGllc1sibXM6ZWRnZU9wdGlvbnMiXToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRn
ZU9wdGlvbnMiXVsiYXJncyJdID0gW10KKyAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBj
YXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXToKKyAgICAgICAgICAgIGNhcGFi
aWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpCisK
KyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCisKKyAg
ICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgor
ICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7fQorCisK
K2NsYXNzIEVkZ2VDaHJvbWl1bUJyb3dzZXIoQnJvd3Nlcik6CisgICAgIiIiTWljcm9zb2Z0RWRn
ZSBpcyBiYWNrZWQgYnkgTVNFZGdlRHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisg
ICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcmBgLgorICAg
ICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJf
YmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1O
b25lLCAqKmt3YXJncyk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24g
b2YgTWljcm9zb2Z0RWRnZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcworICAgICAgICB0
aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgorICAgICAgICBCcm93c2Vy
Ll9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAg
ICAgICAgc2VsZi5zZXJ2ZXIgPSBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJkcml2
ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdz
PXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAgICAg
ICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYgc3RvcChzZWxmLCBm
b3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCisKKyAg
ICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCisKKyAgICBk
ZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNh
dGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRo
aW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAgIyBpcyBhY3RpdmUu
CisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisKKyAgICBkZWYgY2xlYW51
cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVjdXRvcl9icm93c2Vy
KHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwi
OiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2VwaXBoYW55LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDYx
Zjc0ZTIyNjhhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkKQEAgLTAsMCAr
MSw4MCBAQAorZnJvbSAuYmFzZSBpbXBvcnQgKE51bGxCcm93c2VyLCAgIyBub3FhOiBGNDAxCisg
ICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGVfZG9tYWluX2xpc3QsCisgICAgICAgICAgICAg
ICAgICAgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAg
ICAgICAgIG1heWJlX2FkZF9hcmdzKQorZnJvbSAud2Via2l0IGltcG9ydCBXZWJLaXRCcm93c2Vy
Citmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRv
cl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJE
cml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yLCAgIyBu
b3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
RHJpdmVyQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMu
ZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6
IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlcGlwaGFueSIsCisgICAgICAg
ICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAi
YnJvd3NlciI6IHtOb25lOiAiRXBpcGhhbnlCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAgICAiYnJv
d3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0
b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4
ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2ViS2l0
RHJpdmVyV2RzcGVjRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNy
YXNodGVzdCI6ICJXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAg
ICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAg
ICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlv
bnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0cmFzIjog
InJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIi
OiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3Mp
OgorICAgIHBhc3MKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1
bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorICAgICMgV29ya2Fyb3VuZCBmb3IgaHR0
cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvaXNzdWVzLzE3MgorICAgIHdlYmRy
aXZlcl9yZXF1aXJlZF9hcmdzID0gWyItLWhvc3Q9MTI3LjAuMC4xIl0KKyAgICB3ZWJkcml2ZXJf
YXJncyA9IG1heWJlX2FkZF9hcmdzKHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzLCBrd2FyZ3MuZ2V0
KCJ3ZWJkcml2ZXJfYXJncyIpKQorICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5
Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2Jp
bmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjogd2ViZHJpdmVyX2FyZ3N9CisK
KworZGVmIGNhcGFiaWxpdGllcyhzZXJ2ZXJfY29uZmlnLCAqKmt3YXJncyk6CisgICAgYXJncyA9
IGt3YXJncy5nZXQoImJpbmFyeV9hcmdzIiwgW10pCisgICAgaWYgIi0tYXV0b21hdGlvbi1tb2Rl
IiBub3QgaW4gYXJnczoKKyAgICAgICAgYXJncy5hcHBlbmQoIi0tYXV0b21hdGlvbi1tb2RlIikK
KworICAgIHJldHVybiB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJFcGlwaGFueSIsCisgICAg
ICAgICJicm93c2VyVmVyc2lvbiI6ICIzLjMxLjQiLCAgIyBGaXJzdCB2ZXJzaW9uIHRvIHN1cHBv
cnQgYXV0b21hdGlvbgorICAgICAgICAicGxhdGZvcm1OYW1lIjogIkFOWSIsCisgICAgICAgICJ3
ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMiOiB7CisgICAgICAgICAgICAiYmluYXJ5Ijoga3dhcmdz
WyJiaW5hcnkiXSwKKyAgICAgICAgICAgICJhcmdzIjogYXJncywKKyAgICAgICAgICAgICJjZXJ0
aWZpY2F0ZXMiOiBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChzZXJ2ZXJfY29uZmlnLmRvbWFpbnNf
c2V0LCBrd2FyZ3NbImhvc3RfY2VydF9wYXRoIl0pfX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAorICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9l
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRh
LCAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRy
dWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzKHRl
c3RfZW52aXJvbm1lbnQuY29uZmlnLCAqKmt3YXJncykKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dh
cmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2Rl
ZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2RlZiBydW5faW5mb19leHRyYXMo
Kiprd2FyZ3MpOgorICAgIHJldHVybiB7IndlYmtpdF9wb3J0IjogImd0ayJ9CisKKworY2xhc3Mg
RXBpcGhhbnlCcm93c2VyKFdlYktpdEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAg
ICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgV2ViS2l0QnJvd3Nl
ci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncykKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2ZpcmVmb3gucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CmluZGV4IDE1MTUzMDg5N2Q5Yi4uYWMy
NzQ1MzEyN2FiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVm
b3gucHkKQEAgLTEsOSArMSwxMiBAQAoraW1wb3J0IGJhc2U2NAoraW1wb3J0IGlvCiBpbXBvcnQg
anNvbgogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzaWduYWwKIGltcG9ydCBz
dWJwcm9jZXNzCi1pbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB6aXBmaWxlCiBm
cm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKIAogaW1wb3J0IG1vemluZm8K
QEAgLTE1LDI2ICsxOCwzMCBAQCBmcm9tIG1venJ1bm5lciBpbXBvcnQgRmlyZWZveFJ1bm5lcgog
ZnJvbSBtb3pydW5uZXIudXRpbHMgaW1wb3J0IHRlc3RfZW52aXJvbm1lbnQsIGdldF9zdGFja19m
aXhlcl9mdW5jdGlvbgogZnJvbSBtb3pjcmFzaCBpbXBvcnQgbW96Y3Jhc2gKIAotZnJvbSAuYmFz
ZSBpbXBvcnQgKGdldF9mcmVlX3BvcnQsCi0gICAgICAgICAgICAgICAgICAgQnJvd3NlciwKK2Zy
b20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAogICAgICAgICAgICAgICAgICAgIEV4ZWN1dG9yQnJv
d3NlciwKLSAgICAgICAgICAgICAgICAgICByZXF1aXJlX2FyZywKKyAgICAgICAgICAgICAgICAg
ICBOdWxsQnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICBPdXRwdXRIYW5kbGVyLAorICAgICAg
ICAgICAgICAgICAgIE91dHB1dEhhbmRsZXJTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICBicm93
c2VyX2NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAgY21kX2FyZywKLSAgICAgICAgICAgICAg
ICAgICBicm93c2VyX2NvbW1hbmQpCisgICAgICAgICAgICAgICAgICAgZ2V0X2ZyZWVfcG9ydCwK
KyAgICAgICAgICAgICAgICAgICByZXF1aXJlX2FyZykKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwogZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcm1hcmlvbmV0dGUgaW1wb3J0IChNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRv
ciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVQcmludFJlZlRlc3RF
eGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNYXJpb25ldHRlV2RzcGVjRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUNyYXNodGVz
dEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4ucHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYK
K2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBXZWJEcml2ZXJTZXJ2ZXIKIAogCiBoZXJl
ID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0
IjogImZpcmVmb3giLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdz
IiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRmlyZWZveEJyb3dzZXIiLAorICAgICAg
ICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiRmlyZWZveEJyb3dzZXIiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkZpcmVmb3hXZFNwZWNCcm93c2VyIn0sCiAg
ICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsiY3Jhc2h0ZXN0IjogIk1hcmlvbmV0dGVDcmFz
aHRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdGhhcm5l
c3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZnRlc3QiOiAiTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvciIsCkBAIC01
MywxMSArNjAsMTEgQEAgZGVmIGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgaWYga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIi
XSBpcyBub3QgTm9uZToKICAgICAgICAgcmV0dXJuIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVy
Il0KICAgICBpZiB0ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgotICAgICAgICBpZiBydW5faW5mb19k
YXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgICAgIGlmIHJ1
bl9pbmZvX2RhdGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKSBvciBydW5f
aW5mb19kYXRhLmdldCgidHNhbiIpOgogICAgICAgICAgICAgcmV0dXJuIDQKICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgIHJldHVybiAyCi0gICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJd
IG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgZWxpZiBydW5faW5mb19kYXRhWyJk
ZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikgb3IgcnVuX2luZm9fZGF0YS5nZXQo
InRzYW4iKToKICAgICAgICAgaWYgcnVuX2luZm9fZGF0YS5nZXQoImNjb3YiKToKICAgICAgICAg
ICAgIHJldHVybiA0CiAgICAgICAgIGVsc2U6CkBAIC03Niw3ICs4Myw3IEBAIGRlZiBjaGVja19h
cmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRl
ZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2Fy
Z3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRh
LCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFy
eSJdLAogICAgICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKICAg
ICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3YXJnc1siZXh0cmFfcHJlZnMiXSwKQEAgLTEwMSwx
MyArMTA4LDI0IEBAIGRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEs
IGNvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICAgICAgImNvbmZpZyI6IGNvbmZpZywKICAgICAg
ICAgICAgICJicm93c2VyX2NoYW5uZWwiOiBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdLAogICAg
ICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzWyJoZWFkbGVzcyJdLAotICAgICAgICAgICAgInBy
ZWxvYWRfYnJvd3NlciI6IGt3YXJnc1sicHJlbG9hZF9icm93c2VyIl19CisgICAgICAgICAgICAi
cHJlbG9hZF9icm93c2VyIjoga3dhcmdzWyJwcmVsb2FkX2Jyb3dzZXIiXSBhbmQgbm90IGt3YXJn
c1sicGF1c2VfYWZ0ZXJfdGVzdCJdIGFuZCBub3Qga3dhcmdzWyJudW1fdGVzdF9ncm91cHMiXSA9
PSAxLAorICAgICAgICAgICAgInNwZWNpYWxwb3dlcnNfcGF0aCI6IGt3YXJnc1sic3BlY2lhbHBv
d2Vyc19wYXRoIl19CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitjbGFzcyBXZFNwZWNQcm9maWxl
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2ZpbGUpOgorICAgICAgICBzZWxm
LnByb2ZpbGUgPSBwcm9maWxlCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgICAgIHNlbGYucHJvZmlsZS5jbGVhbnVwKCkKKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisg
ICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0
X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0
ZXJfZG9uZSJdID0gdGVzdF90eXBlICE9ICJyZWZ0ZXN0IgogICAgIGV4ZWN1dG9yX2t3YXJnc1si
dGltZW91dF9tdWx0aXBsaWVyIl0gPSBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwK
QEAgLTEyMSwyMiArMTM5LDYzIEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2
ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICBleGVjdXRv
cl9rd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwiXSA9IGt3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJd
CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gPSBrd2FyZ3Nb
InJlZnRlc3Rfc2NyZWVuc2hvdCJdCiAgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgotICAg
ICAgICBvcHRpb25zID0ge30KKyAgICAgICAgb3B0aW9ucyA9IHsiYXJncyI6IFtdfQogICAgICAg
ICBpZiBrd2FyZ3NbImJpbmFyeSJdOgogICAgICAgICAgICAgb3B0aW9uc1siYmluYXJ5Il0gPSBr
d2FyZ3NbImJpbmFyeSJdCiAgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5X2FyZ3MiXToKICAgICAg
ICAgICAgIG9wdGlvbnNbImFyZ3MiXSA9IGt3YXJnc1siYmluYXJ5X2FyZ3MiXQotICAgICAgICBp
ZiBrd2FyZ3NbImhlYWRsZXNzIl06Ci0gICAgICAgICAgICBpZiAiYXJncyIgbm90IGluIG9wdGlv
bnM6Ci0gICAgICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdID0gW10KLSAgICAgICAgICAgIGlm
ICItLWhlYWRsZXNzIiBub3QgaW4gb3B0aW9uc1siYXJncyJdOgotICAgICAgICAgICAgICAgIG9w
dGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxlc3MiKQotICAgICAgICBvcHRpb25zWyJwcmVm
cyJdID0gewotICAgICAgICAgICAgIm5ldHdvcmsuZG5zLmxvY2FsRG9tYWlucyI6ICIsIi5qb2lu
KHNlcnZlcl9jb25maWcuZG9tYWluc19zZXQpCi0gICAgICAgIH0KLSAgICAgICAgZm9yIHByZWYs
IHZhbHVlIGluIGt3YXJnc1siZXh0cmFfcHJlZnMiXToKLSAgICAgICAgICAgIG9wdGlvbnNbInBy
ZWZzIl0udXBkYXRlKHtwcmVmOiBQcmVmZXJlbmNlcy5jYXN0KHZhbHVlKX0pCisKKyAgICAgICAg
cHJvZmlsZV9jcmVhdG9yID0gUHJvZmlsZUNyZWF0b3IobG9nZ2VyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJleHRyYV9wcmVm
cyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImdl
Y2tvX2UxMHMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dh
cmdzWyJlbmFibGVfZmlzc2lvbiJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNvbmZp
Zy5zc2xfY29uZmlnWyJjYV9jZXJ0X3BhdGgiXSkKKyAgICAgICAgaWYga3dhcmdzWyJwcm9jZXNz
ZXMiXSA+IDE6CisgICAgICAgICAgICAjIFdpdGggbXVsdGlwbGUgcHJvY2Vzc2VzLCB3ZSB3b3Vs
ZCBuZWVkIGEgcHJvZmlsZSBkaXJlY3RvcnkgcGVyIHByb2Nlc3MsIGJ1dCB3ZQorICAgICAgICAg
ICAgIyBkb24ndCBoYXZlIGFuIGVhc3kgd2F5IHRvIGRvIHRoYXQsIHNvIGluY2x1ZGUgdGhlIHBy
b2ZpbGUgaW4gdGhlIGNhcGFiaWx0aWVzCisgICAgICAgICAgICAjIGRpcmVjdGx5IGluc3RlYWQu
IFRoaXMgbWVhbnMgcmVjcmVhdGluZyBpdCBwZXIgc2Vzc2lvbiwgd2hpY2ggaXMgc2xvdworICAg
ICAgICAgICAgb3B0aW9uc1sicHJvZmlsZSJdID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0ZV9iYXNl
NjQoKQorICAgICAgICAgICAgcHJvZmlsZSA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHByb2ZpbGUgPSBwcm9maWxlX2NyZWF0b3IuY3JlYXRlKCkKKyAgICAgICAgICAgIG9wdGlv
bnNbImFyZ3MiXS5leHRlbmQoWyItLXByb2ZpbGUiLCBwcm9maWxlLnByb2ZpbGVdKQorICAgICAg
ICAgICAgdGVzdF9lbnZpcm9ubWVudC5lbnZfZXh0cmFzX2Ntcy5hcHBlbmQoV2RTcGVjUHJvZmls
ZShwcm9maWxlKSkKKwogICAgICAgICBjYXBhYmlsaXRpZXNbIm1vejpmaXJlZm94T3B0aW9ucyJd
ID0gb3B0aW9ucworCisgICAgICAgICMgVGhpcyBnZXRzIHJldXNlZCBmb3IgZmlyZWZveF9hbmRy
b2lkLCBidXQgdGhlIGVudmlyb25tZW50IHNldHVwCisgICAgICAgICMgaXNuJ3QgcmVxdWlyZWQg
aW4gdGhhdCBjYXNlCisgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il06CisgICAgICAgICAgICBl
bnZpcm9uID0gZ2V0X2Vudmlyb24obG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga3dhcmdzWyJzdHlsb190aHJlYWRzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga3dhcmdzWyJoZWFkbGVzcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGt3YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1siY2hhb3NfbW9kZV9mbGFncyJdKQorICAgICAgICAgICAgbGVha19y
ZXBvcnRfZmlsZSA9IHNldHVwX2xlYWtfcmVwb3J0KGt3YXJnc1sibGVha19jaGVjayJdLCBwcm9m
aWxlLCBlbnZpcm9uKQorCisgICAgICAgICAgICAjIFRoaXMgZG9lc24ndCB3b3JrIHdpdGggd2Rz
cGVjIHRlc3RzCisgICAgICAgICAgICAjIEluIHBhcnRpY3VsYXIgdGVzdHMgY2FuIGNyZWF0ZSBh
IHNlc3Npb24gd2l0aG91dCBwYXNzaW5nIGluIHRoZSBjYXBhYmlsaXRlcworICAgICAgICAgICAg
IyBhbmQgaW4gdGhvc2UgY2FzZXMgd2UgZ2V0IHRoZSBkZWZhdWx0IGdlY2tvZHJpdmVyIHByb2Zp
bGUgd2hpY2ggZG9lc24ndAorICAgICAgICAgICAgIyBndWFyYW50ZWUgemVybyBuZXR3b3JrIGFj
Y2VzcworICAgICAgICAgICAgZGVsIGVudmlyb25bIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NPTk5F
Q1RJT05TIl0KKyAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siZW52aXJvbiJdID0gZW52aXJv
bgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdIGFuZCAi
LS1oZWFkbGVzcyIgbm90IGluIG9wdGlvbnNbImFyZ3MiXToKKyAgICAgICAgICAgICAgICBvcHRp
b25zWyJhcmdzIl0uYXBwZW5kKCItLWhlYWRsZXNzIikKKyAgICAgICAgICAgIGxlYWtfcmVwb3J0
X2ZpbGUgPSBOb25lCisKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdGFja2ZpeF9kaXIiXSA9
IGt3YXJnc1sic3RhY2tmaXhfZGlyIl0sCisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sibGVha19y
ZXBvcnRfZmlsZSJdID0gbGVha19yZXBvcnRfZmlsZQorICAgICAgICBleGVjdXRvcl9rd2FyZ3Nb
ImFzYW4iXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikKKwogICAgIGlmIGt3YXJnc1siY2Vy
dHV0aWxfYmluYXJ5Il0gaXMgTm9uZToKICAgICAgICAgY2FwYWJpbGl0aWVzWyJhY2NlcHRJbnNl
Y3VyZUNlcnRzIl0gPSBUcnVlCiAgICAgaWYgY2FwYWJpbGl0aWVzOgpAQCAtMTQ0LDYgKzIwMyw3
IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9t
YW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgIGV4ZWN1dG9yX2t3YXJnc1siZGVidWciXSA9IHJ1
bl9pbmZvX2RhdGFbImRlYnVnIl0KICAgICBleGVjdXRvcl9rd2FyZ3NbImNjb3YiXSA9IHJ1bl9p
bmZvX2RhdGEuZ2V0KCJjY292IiwgRmFsc2UpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJicm93c2Vy
X3ZlcnNpb24iXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0KCJicm93c2VyX3ZlcnNpb24iKQorICAgIGV4
ZWN1dG9yX2t3YXJnc1siZGVidWdfdGVzdCJdID0ga3dhcmdzWyJkZWJ1Z190ZXN0Il0KICAgICBy
ZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKIApAQCAtMTc3LDE2ICsyMzcsMTEgQEAgZGVmIHJ1bl9p
bmZvX2V4dHJhcygqKmt3YXJncyk6CiAgICAgICAgICAgIndhc20iOiBrd2FyZ3MuZ2V0KCJ3YXNt
IiwgVHJ1ZSksCiAgICAgICAgICAgInZlcmlmeSI6IGt3YXJnc1sidmVyaWZ5Il0sCiAgICAgICAg
ICAgImhlYWRsZXNzIjoga3dhcmdzLmdldCgiaGVhZGxlc3MiLCBGYWxzZSkgb3IgIk1PWl9IRUFE
TEVTUyIgaW4gb3MuZW52aXJvbiwKLSAgICAgICAgICAic3ctZTEwcyI6IFRydWUsCi0gICAgICAg
ICAgImZpc3Npb24iOiBrd2FyZ3MuZ2V0KCJlbmFibGVfZmlzc2lvbiIpIG9yIGdldF9ib29sX3By
ZWYoImZpc3Npb24uYXV0b3N0YXJ0Iil9Ci0KLSAgICAjIFRoZSB2YWx1ZSBvZiBgc3ctZTEwc2Ag
ZGVmYXVsdHMgdG8gd2hldGhlciB0aGUgInBhcmVudF9pbnRlcmNlcHQiCi0gICAgIyBpbXBsZW1l
bnRhdGlvbiBpcyBlbmFibGVkIGZvciB0aGUgY3VycmVudCBidWlsZC4gVGhpcyB2YWx1ZSwgaG93
ZXZlciwKLSAgICAjIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGV4cGxpY2l0bHkgc2V0dGluZyB0aGUg
cHJlZiB3aXRoIHRoZSBgLS1zZXRwcmVmYCBDTEkKLSAgICAjIGZsYWcsIHdoaWNoIGlzIGNoZWNr
ZWQgaGVyZS4KLSAgICBzd19lMTBzX292ZXJyaWRlID0gZ2V0X2Jvb2xfcHJlZl9pZl9leGlzdHMo
ImRvbS5zZXJ2aWNlV29ya2Vycy5wYXJlbnRfaW50ZXJjZXB0IikKLSAgICBpZiBzd19lMTBzX292
ZXJyaWRlIGlzIG5vdCBOb25lOgotICAgICAgICBydlsic3ctZTEwcyJdID0gc3dfZTEwc19vdmVy
cmlkZQorICAgICAgICAgICJmaXNzaW9uIjoga3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24iKSBv
ciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpLAorICAgICAgICAgICJzZXNzaW9u
SGlzdG9yeUluUGFyZW50IjogKGt3YXJncy5nZXQoImVuYWJsZV9maXNzaW9uIikgb3IKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1
dG9zdGFydCIpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2Jv
b2xfcHJlZigiZmlzc2lvbi5zZXNzaW9uSGlzdG9yeUluUGFyZW50IikpLAorICAgICAgICAgICJz
d2dsIjogZ2V0X2Jvb2xfcHJlZigiZ2Z4LndlYnJlbmRlci5zb2Z0d2FyZSIpfQogCiAgICAgcnYu
dXBkYXRlKHJ1bl9pbmZvX2Jyb3dzZXJfdmVyc2lvbigqKmt3YXJncykpCiAKQEAgLTIwOCwxMSAr
MjYzLDQ2IEBAIGRlZiBydW5faW5mb19icm93c2VyX3ZlcnNpb24oKiprd2FyZ3MpOgogCiAKIGRl
ZiB1cGRhdGVfcHJvcGVydGllcygpOgotICAgIHJldHVybiAoWyJvcyIsICJkZWJ1ZyIsICJ3ZWJy
ZW5kZXIiLCAiZmlzc2lvbiIsICJlMTBzIiwgInN3LWUxMHMiLCAicHJvY2Vzc29yIl0sCisgICAg
cmV0dXJuIChbIm9zIiwgImRlYnVnIiwgIndlYnJlbmRlciIsICJmaXNzaW9uIiwgImUxMHMiLCAi
cHJvY2Vzc29yIiwgInN3Z2wiXSwKICAgICAgICAgICAgIHsib3MiOiBbInZlcnNpb24iXSwgInBy
b2Nlc3NvciI6IFsiYml0cyJdfSkKIAogCi1jbGFzcyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKG9i
amVjdCk6CitkZWYgZ2V0X2Vudmlyb24obG9nZ2VyLCBiaW5hcnksIGRlYnVnX2luZm8sIHN0eWxv
X3RocmVhZHMsIGhlYWRsZXNzLCBlbmFibGVfd2VicmVuZGVyLAorICAgICAgICAgICAgICAgIGNo
YW9zX21vZGVfZmxhZ3M9Tm9uZSk6CisgICAgZW52ID0gdGVzdF9lbnZpcm9ubWVudCh4cmVQYXRo
PW9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoYmluYXJ5KSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWJ1Z2dlcj1kZWJ1Z19pbmZvIGlzIG5vdCBOb25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXNlTFNhbj1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nPWxvZ2dlcikKKworICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHN0eWxvX3Ro
cmVhZHMpCisgICAgaWYgY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgZW52
WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoY2hhb3NfbW9kZV9mbGFncykKKyAgICBpZiBoZWFkbGVz
czoKKyAgICAgICAgZW52WyJNT1pfSEVBRExFU1MiXSA9ICIxIgorICAgIGlmIGVuYWJsZV93ZWJy
ZW5kZXI6CisgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjEiCisgICAgICAgIGVudlsi
TU9aX0FDQ0VMRVJBVEVEIl0gPSAiMSIKKyAgICBlbHNlOgorICAgICAgICBlbnZbIk1PWl9XRUJS
RU5ERVIiXSA9ICIwIgorICAgIHJldHVybiBlbnYKKworCitkZWYgc2V0dXBfbGVha19yZXBvcnQo
bGVha19jaGVjaywgcHJvZmlsZSwgZW52KToKKyAgICBsZWFrX3JlcG9ydF9maWxlID0gTm9uZQor
ICAgIGlmIGxlYWtfY2hlY2s6CisgICAgICAgIGZpbGVuYW1lID0gInJ1bnRlc3RzX2xlYWtzXyVz
LmxvZyIgJSBvcy5nZXRwaWQoKQorICAgICAgICBpZiBwcm9maWxlIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGguam9pbihwcm9maWxlLnByb2ZpbGUs
IGZpbGVuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9
IG9zLnBhdGguam9pbih0ZW1wZmlsZS5nZXR0ZW1wZGlyKCksIGZpbGVuYW1lKQorICAgICAgICBp
ZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3JlcG9ydF9maWxlKToKKyAgICAgICAgICAgIG9zLnJlbW92
ZShsZWFrX3JlcG9ydF9maWxlKQorICAgICAgICBlbnZbIlhQQ09NX01FTV9CTE9BVF9MT0ciXSA9
IGxlYWtfcmVwb3J0X2ZpbGUKKworICAgIHJldHVybiBsZWFrX3JlcG9ydF9maWxlCisKKworY2xh
c3MgRmlyZWZveEluc3RhbmNlTWFuYWdlcjoKICAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQog
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBiaW5hcnlfYXJncywgcHJv
ZmlsZV9jcmVhdG9yLCBkZWJ1Z19pbmZvLApAQCAtMjY3LDIwICszNTcsOCBAQCBjbGFzcyBGaXJl
Zm94SW5zdGFuY2VNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIG1hcmlvbmV0dGVfcG9ydCA9IGdl
dF9mcmVlX3BvcnQoKQogICAgICAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlcyh7Im1hcmlvbmV0
dGUucG9ydCI6IG1hcmlvbmV0dGVfcG9ydH0pCiAKLSAgICAgICAgZW52ID0gdGVzdF9lbnZpcm9u
bWVudCh4cmVQYXRoPW9zLnBhdGguZGlybmFtZShzZWxmLmJpbmFyeSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVidWdnZXI9c2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUxTYW49VHJ1ZSwgbG9nPXNlbGYubG9n
Z2VyKQotCi0gICAgICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5bG9fdGhy
ZWFkcykKLSAgICAgICAgaWYgc2VsZi5jaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoc2VsZi5jaGFvc19tb2RlX2ZsYWdz
KQotICAgICAgICBpZiBzZWxmLmhlYWRsZXNzOgotICAgICAgICAgICAgZW52WyJNT1pfSEVBRExF
U1MiXSA9ICIxIgotICAgICAgICBpZiBzZWxmLmVuYWJsZV93ZWJyZW5kZXI6Ci0gICAgICAgICAg
ICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIxIgotICAgICAgICAgICAgZW52WyJNT1pfQUNDRUxF
UkFURUQiXSA9ICIxIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVO
REVSIl0gPSAiMCIKKyAgICAgICAgZW52ID0gZ2V0X2Vudmlyb24oc2VsZi5sb2dnZXIsIHNlbGYu
YmluYXJ5LCBzZWxmLmRlYnVnX2luZm8sIHNlbGYuc3R5bG9fdGhyZWFkcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5oZWFkbGVzcywgc2VsZi5lbmFibGVfd2VicmVuZGVyLCBzZWxm
LmNoYW9zX21vZGVfZmxhZ3MpCiAKICAgICAgICAgYXJncyA9IHNlbGYuYmluYXJ5X2FyZ3NbOl0g
aWYgc2VsZi5iaW5hcnlfYXJncyBlbHNlIFtdCiAgICAgICAgIGFyZ3MgKz0gW2NtZF9hcmcoIm1h
cmlvbmV0dGUiKSwgImFib3V0OmJsYW5rIl0KQEAgLTI4OSwyNiArMzY3LDI2IEBAIGNsYXNzIEZp
cmVmb3hJbnN0YW5jZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmRlYnVnX2luZm8pCiAKLSAgICAgICAgaWYgc2VsZi5sZWFrX2NoZWNrOgot
ICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGguam9pbihwcm9maWxlLnByb2Zp
bGUsICJydW50ZXN0c19sZWFrc18lcy5sb2ciICUgb3MuZ2V0cGlkKCkpCi0gICAgICAgICAgICBp
ZiBvcy5wYXRoLmV4aXN0cyhsZWFrX3JlcG9ydF9maWxlKToKLSAgICAgICAgICAgICAgICBvcy5y
ZW1vdmUobGVha19yZXBvcnRfZmlsZSkKLSAgICAgICAgICAgIGVudlsiWFBDT01fTUVNX0JMT0FU
X0xPRyJdID0gbGVha19yZXBvcnRfZmlsZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGVh
a19yZXBvcnRfZmlsZSA9IE5vbmUKLQotICAgICAgICBvdXRwdXRfaGFuZGxlciA9IE91dHB1dEhh
bmRsZXIoc2VsZi5sb2dnZXIsIHNlbGYuc3RhY2tmaXhfZGlyLCBzZWxmLnN5bWJvbHNfcGF0aCwg
c2VsZi5hc2FuKQorICAgICAgICBsZWFrX3JlcG9ydF9maWxlID0gc2V0dXBfbGVha19yZXBvcnQo
c2VsZi5sZWFrX2NoZWNrLCBwcm9maWxlLCBlbnYpCisgICAgICAgIG91dHB1dF9oYW5kbGVyID0g
RmlyZWZveE91dHB1dEhhbmRsZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YWNrZml4X2Rpcj1zZWxmLnN0YWNrZml4X2RpciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2Vs
Zi5zeW1ib2xzX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNhbj1zZWxmLmFzYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZT1sZWFrX3JlcG9ydF9maWxlKQogICAgICAgICBy
dW5uZXIgPSBGaXJlZm94UnVubmVyKHByb2ZpbGU9cHJvZmlsZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiaW5hcnk9Y21kWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNtZGFyZ3M9Y21kWzE6XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9
Y2FzdF9lbnYoZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfY2xhc3M9UHJvY2Vzc0hhbmRs
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc19hcmdzPXsicHJvY2Vz
c091dHB1dExpbmUiOiBbb3V0cHV0X2hhbmRsZXJdfSkKICAgICAgICAgaW5zdGFuY2UgPSBCcm93
c2VySW5zdGFuY2Uoc2VsZi5sb2dnZXIsIHJ1bm5lciwgbWFyaW9uZXR0ZV9wb3J0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlciwgbGVha19yZXBvcnRf
ZmlsZSkKIAogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgRmlyZWZveCIpCi0g
ICAgICAgIHJ1bm5lci5zdGFydChkZWJ1Z19hcmdzPWRlYnVnX2FyZ3MsIGludGVyYWN0aXZlPXNl
bGYuZGVidWdfaW5mbyBhbmQgc2VsZi5kZWJ1Z19pbmZvLmludGVyYWN0aXZlKQorICAgICAgICBy
dW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLAorICAgICAgICAgICAgICAgICAgICAg
aW50ZXJhY3RpdmU9c2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3Rp
dmUpCisgICAgICAgIG91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RhcnQocnVubmVyLnBy
b2Nlc3NfaGFuZGxlci5waWQpCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJGaXJlZm94IFN0
YXJ0ZWQiKQogCiAgICAgICAgIHJldHVybiBpbnN0YW5jZQpAQCAtMzMwLDYgKzQwOCw3IEBAIGNs
YXNzIFNpbmdsZUluc3RhbmNlTWFuYWdlcihGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKToKICAgICAg
ICAgICAgIGlmIGluc3RhbmNlOgogICAgICAgICAgICAgICAgIGluc3RhbmNlLnN0b3AoZm9yY2Up
CiAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY2xlYW51cCgpCisgICAgICAgIHNlbGYuYmFzZV9w
cm9maWxlLmNsZWFudXAoKQogCiAKIGNsYXNzIFByZWxvYWRJbnN0YW5jZU1hbmFnZXIoRmlyZWZv
eEluc3RhbmNlTWFuYWdlcik6CkBAIC0zNTIsMTUgKzQzMSwxNiBAQCBjbGFzcyBQcmVsb2FkSW5z
dGFuY2VNYW5hZ2VyKEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5jdXJyZW50CiAKICAgICBkZWYgdGVhcmRvd24oc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAg
ICBmb3IgaW5zdGFuY2UsIHNraXBfbWFyaW9uZXR0ZSBpbiBbKHNlbGYucHJldmlvdXMsIEZhbHNl
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmN1cnJl
bnQsIEZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWxmLnBlbmRpbmcsIFRydWUpXToKKyAgICAgICAgZm9yIGluc3RhbmNlLCB1bnVzZWQgaW4gWyhz
ZWxmLnByZXZpb3VzLCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2VsZi5jdXJyZW50LCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2VsZi5wZW5kaW5nLCBUcnVlKV06CiAgICAgICAgICAgICBpZiBpbnN0YW5jZToKLSAgICAgICAg
ICAgICAgICBpbnN0YW5jZS5zdG9wKGZvcmNlLCBza2lwX21hcmlvbmV0dGU9c2tpcF9tYXJpb25l
dHRlKQorICAgICAgICAgICAgICAgIGluc3RhbmNlLnN0b3AoZm9yY2UsIHVudXNlZCkKICAgICAg
ICAgICAgICAgICBpbnN0YW5jZS5jbGVhbnVwKCkKKyAgICAgICAgc2VsZi5iYXNlX3Byb2ZpbGUu
Y2xlYW51cCgpCiAKIAotY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9iamVjdCk6CitjbGFzcyBCcm93
c2VySW5zdGFuY2U6CiAgICAgc2h1dGRvd25fdGltZW91dCA9IDcwCiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBydW5uZXIsIG1hcmlvbmV0dGVfcG9ydCwgb3V0cHV0X2hhbmRsZXIs
IGxlYWtfcmVwb3J0X2ZpbGUpOgpAQCAtMzcxLDI1ICs0NTEsMzUgQEAgY2xhc3MgQnJvd3Nlcklu
c3RhbmNlKG9iamVjdCk6CiAgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIgPSBvdXRwdXRfaGFu
ZGxlcgogICAgICAgICBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgPSBsZWFrX3JlcG9ydF9maWxlCiAK
LSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSwgc2tpcF9tYXJpb25ldHRlPUZhbHNlKToK
LSAgICAgICAgIiIiU3RvcCBGaXJlZm94IiIiCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFs
c2UsIHVudXNlZD1GYWxzZSk6CisgICAgICAgICIiIlN0b3AgRmlyZWZveAorCisgICAgICAgIDpw
YXJhbSBmb3JjZTogU2lnbmFsIHRoZSBmaXJlZm94IHByb2Nlc3Mgd2l0aG91dCB3YWl0aW5nIGZv
ciBhIGNsZWFuIHNodXRkb3duCisgICAgICAgIDpwYXJhbSB1bnVzZWQ6IFRoaXMgaW5zdGFuY2Ug
d2FzIG5vdCB1c2VkIGZvciBydW5uaW5nIHRlc3RzIGFuZCBzbworICAgICAgICAgICAgICAgICAg
ICAgICBkb2Vzbid0IGhhdmUgYW4gYWN0aXZlIG1hcmlvbmV0dGUgc2Vzc2lvbiBhbmQgZG9lc24n
dCByZXF1aXJlCisgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCBwb3N0cHJvY2Vzc2luZy4K
KyAgICAgICAgIiIiCiAgICAgICAgIGlzX3J1bm5pbmcgPSBzZWxmLnJ1bm5lciBpcyBub3QgTm9u
ZSBhbmQgc2VsZi5ydW5uZXIuaXNfcnVubmluZygpCiAgICAgICAgIGlmIGlzX3J1bm5pbmc6CiAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RvcHBpbmcgRmlyZWZveCAlcyIgJSBzZWxm
LnBpZCgpKQogICAgICAgICAgICAgc2h1dGRvd25fbWV0aG9kcyA9IFsoVHJ1ZSwgbGFtYmRhOiBz
ZWxmLnJ1bm5lci53YWl0KHNlbGYuc2h1dGRvd25fdGltZW91dCkpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwu
U0lHVEVSTSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJk
YTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHS0lMTCkpXQotICAgICAgICAgICAgaWYgc2tp
cF9tYXJpb25ldHRlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxh
bWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHVEVSTSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zaHV0
ZG93bl90aW1lb3V0KSldCisgICAgICAgICAgICBpZiBoYXNhdHRyKHNpZ25hbCwgIlNJR0tJTEwi
KToKKyAgICAgICAgICAgICAgICBzaHV0ZG93bl9tZXRob2RzLmFwcGVuZCgoRmFsc2UsIGxhbWJk
YTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHS0lMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnNodXRkb3duX3RpbWVvdXQpKSkKKyAgICAgICAgICAgIGlmIHVudXNlZCBvciBmb3JjZToKKyAg
ICAgICAgICAgICAgICAjIERvbid0IHdhaXQgZm9yIHRoZSBpbnN0YW5jZSB0byBjbG9zZSBpdHNl
bGYKICAgICAgICAgICAgICAgICBzaHV0ZG93bl9tZXRob2RzID0gc2h1dGRvd25fbWV0aG9kc1sx
Ol0KICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAjIEZvciBGaXJlZm94IHdlIGFz
c3VtZSB0aGF0IHN0b3BwaW5nIHRoZSBydW5uZXIgcHJvbXB0cyB0aGUKICAgICAgICAgICAgICAg
ICAjIGJyb3dzZXIgdG8gc2h1dCBkb3duLiBUaGlzIGFsbG93cyB0aGUgbGVhayBsb2cgdG8gYmUg
d3JpdHRlbgotICAgICAgICAgICAgICAgIGZvciBjbGVhbiwgc3RvcF9mIGluIHNodXRkb3duX21l
dGhvZHM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBmb3JjZSBvciBub3QgY2xlYW46Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXRjb2RlID0gc3RvcF9mKCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIHJldGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQnJvd3NlciBleGl0ZWQgd2l0aCByZXR1cm4gY29kZSAl
cyIgJSByZXRjb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAg
ICAgICAgICAgZm9yIGksIChjbGVhbiwgc3RvcF9mKSBpbiBlbnVtZXJhdGUoc2h1dGRvd25fbWV0
aG9kcyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTaHV0dGluZyBk
b3duIGF0dGVtcHQgJWkvJWkiICUgKGkgKyAxLCBsZW4oc2h1dGRvd25fbWV0aG9kcykpKQorICAg
ICAgICAgICAgICAgICAgICByZXRjb2RlID0gc3RvcF9mKCkKKyAgICAgICAgICAgICAgICAgICAg
aWYgcmV0Y29kZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oIkJyb3dzZXIgZXhpdGVkIHdpdGggcmV0dXJuIGNvZGUgJXMiICUgcmV0Y29kZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBleGNlcHQgT1NFcnJv
cjoKICAgICAgICAgICAgICAgICAjIFRoaXMgY2FuIGhhcHBlbiBvbiBXaW5kb3dzIGlmIHRoZSBw
cm9jZXNzIGlzIGFscmVhZHkgZGVhZAogICAgICAgICAgICAgICAgIHBhc3MKQEAgLTM5Nyw4ICs0
ODcsOCBAQCBjbGFzcyBCcm93c2VySW5zdGFuY2Uob2JqZWN0KToKICAgICAgICAgICAgICMgVGhl
IGJyb3dzZXIgd2FzIGFscmVhZHkgc3RvcHBlZCwgd2hpY2ggd2UgYXNzdW1lIHdhcyBhIGNyYXNo
CiAgICAgICAgICAgICAjIFRPRE86IFNob3VsZCB3ZSBjaGVjayB0aGUgZXhpdCBjb2RlIGhlcmU/
CiAgICAgICAgICAgICBjbGVhbiA9IEZhbHNlCi0gICAgICAgIGlmIG5vdCBza2lwX21hcmlvbmV0
dGU6Ci0gICAgICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3N0b3AoY2xlYW5fc2h1
dGRvd249Y2xlYW4pCisgICAgICAgIGlmIG5vdCB1bnVzZWQ6CisgICAgICAgICAgICBzZWxmLm91
dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcChjbGVhbl9zaHV0ZG93bj1jbGVhbikKIAog
ICAgIGRlZiBwaWQoc2VsZik6CiAgICAgICAgIGlmIHNlbGYucnVubmVyLnByb2Nlc3NfaGFuZGxl
ciBpcyBOb25lOgpAQCAtNDE1LDEyICs1MDUsMTMgQEAgY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9i
amVjdCk6CiAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6Ci0g
ICAgICAgICMgbW96cHJvZmlsZSBoYW5kbGVzIGRlbGV0aW5nIHRoZSBwcm9maWxlIHdoZW4gdGhl
IHJlZmNvdW50IHJlYWNoZXMgMAorICAgICAgICBzZWxmLnJ1bm5lci5jbGVhbnVwKCkKICAgICAg
ICAgc2VsZi5ydW5uZXIgPSBOb25lCiAKIAotY2xhc3MgT3V0cHV0SGFuZGxlcihvYmplY3QpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHN0YWNrZml4X2Rpciwgc3ltYm9sc19wYXRo
LCBhc2FuKToKK2NsYXNzIEZpcmVmb3hPdXRwdXRIYW5kbGVyKE91dHB1dEhhbmRsZXIpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGNvbW1hbmQsIHN5bWJvbHNfcGF0aD1Ob25lLCBz
dGFja2ZpeF9kaXI9Tm9uZSwgYXNhbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgbGVha19yZXBv
cnRfZmlsZT1Ob25lKToKICAgICAgICAgIiIiRmlsdGVyIGZvciBoYW5kbGluZyBGaXJlZm94IHBy
b2Nlc3Mgb3V0cHV0LgogCiAgICAgICAgIFRoaXMgcmVjZWl2ZXMgRmlyZWZveCBwcm9jZXNzIG91
dHB1dCBpbiB0aGUgX19jYWxsX18gZnVuY3Rpb24sIGRvZXMKQEAgLTQzMSw5ICs1MjIsNyBAQCBj
bGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgIG9mIHRoZSBvdXRwdXQgaGFuZGxl
cnMuCiAgICAgICAgICIiIgogCi0gICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCi0gICAgICAg
ICMgVGhlc2UgYXJlIGZpbGxlZCBpbiBhZnRlciBzZXR1cCgpIGlzIGNhbGxlZAotICAgICAgICBz
ZWxmLmluc3RhbmNlID0gTm9uZQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgY29t
bWFuZCkKIAogICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0aAogICAgICAg
ICBpZiBzdGFja2ZpeF9kaXI6CkBAIC00NDUsMjEgKzUzNCwxOCBAQCBjbGFzcyBPdXRwdXRIYW5k
bGVyKG9iamVjdCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLnN0YWNrX2ZpeGVy
ID0gTm9uZQogICAgICAgICBzZWxmLmFzYW4gPSBhc2FuCisgICAgICAgIHNlbGYubGVha19yZXBv
cnRfZmlsZSA9IGxlYWtfcmVwb3J0X2ZpbGUKIAorICAgICAgICAjIFRoZXNlIGFyZSBmaWxsZWQg
aW4gYWZ0ZXIgY29uZmlndXJlX2hhbmRsZXJzKCkgaXMgY2FsbGVkCiAgICAgICAgIHNlbGYubHNh
bl9oYW5kbGVyID0gTm9uZQogICAgICAgICBzZWxmLm1vemxlYWtfYWxsb3dlZCA9IE5vbmUKICAg
ICAgICAgc2VsZi5tb3psZWFrX3RocmVzaG9sZHMgPSBOb25lCiAgICAgICAgIHNlbGYuZ3JvdXBf
bWV0YWRhdGEgPSB7fQogCi0gICAgICAgIHNlbGYubGluZV9idWZmZXIgPSBbXQotICAgICAgICBz
ZWxmLnNldHVwX3JhbiA9IEZhbHNlCi0KLSAgICBkZWYgc2V0dXAoc2VsZiwgaW5zdGFuY2U9Tm9u
ZSwgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgbHNhbl9kaXNhYmxlZD1GYWxzZSwKLSAgICAgICAgICAg
ICAgbHNhbl9hbGxvd2VkPU5vbmUsIGxzYW5fbWF4X3N0YWNrX2RlcHRoPU5vbmUsIG1vemxlYWtf
YWxsb3dlZD1Ob25lLAotICAgICAgICAgICAgICBtb3psZWFrX3RocmVzaG9sZHM9Tm9uZSwgKipr
d2FyZ3MpOgorICAgIGRlZiBzdGFydChzZWxmLCBncm91cF9tZXRhZGF0YT1Ob25lLCBsc2FuX2Rp
c2FibGVkPUZhbHNlLCBsc2FuX2FsbG93ZWQ9Tm9uZSwKKyAgICAgICAgICAgICAgbHNhbl9tYXhf
c3RhY2tfZGVwdGg9Tm9uZSwgbW96bGVha19hbGxvd2VkPU5vbmUsIG1vemxlYWtfdGhyZXNob2xk
cz1Ob25lLAorICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgICAgICIiIkNvbmZpZ3VyZSB0
aGUgb3V0cHV0IGhhbmRsZXIiIiIKLSAgICAgICAgc2VsZi5pbnN0YW5jZSA9IGluc3RhbmNlCi0K
ICAgICAgICAgaWYgZ3JvdXBfbWV0YWRhdGEgaXMgTm9uZToKICAgICAgICAgICAgIGdyb3VwX21l
dGFkYXRhID0ge30KICAgICAgICAgc2VsZi5ncm91cF9tZXRhZGF0YSA9IGdyb3VwX21ldGFkYXRh
CkBAIC00NzUsMTggKzU2MSwxMyBAQCBjbGFzcyBPdXRwdXRIYW5kbGVyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93QWxsPWxz
YW5fZGlzYWJsZWQpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxzYW5faGFuZGxl
ciA9IE5vbmUKKyAgICAgICAgc3VwZXIoKS5zdGFydCgpCiAKLSAgICAgICAgc2VsZi5zZXR1cF9y
YW4gPSBUcnVlCi0KLSAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lX2J1ZmZlcjoKLSAgICAg
ICAgICAgIHNlbGYuX19jYWxsX18obGluZSkKLSAgICAgICAgc2VsZi5saW5lX2J1ZmZlciA9IFtd
Ci0KLSAgICBkZWYgYWZ0ZXJfc3RvcChzZWxmLCBjbGVhbl9zaHV0ZG93bj1UcnVlKToKLSAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiUFJPQ0VTUyBMRUFLUyAlcyIgJSBzZWxmLmluc3RhbmNlLmxl
YWtfcmVwb3J0X2ZpbGUpCisgICAgZGVmIGFmdGVyX3Byb2Nlc3Nfc3RvcChzZWxmLCBjbGVhbl9z
aHV0ZG93bj1UcnVlKToKKyAgICAgICAgc3VwZXIoKS5hZnRlcl9wcm9jZXNzX3N0b3AoY2xlYW5f
c2h1dGRvd24pCiAgICAgICAgIGlmIHNlbGYubHNhbl9oYW5kbGVyOgogICAgICAgICAgICAgc2Vs
Zi5sc2FuX2hhbmRsZXIucHJvY2VzcygpCi0gICAgICAgIGlmIHNlbGYuaW5zdGFuY2UubGVha19y
ZXBvcnRfZmlsZSBpcyBub3QgTm9uZToKKyAgICAgICAgaWYgc2VsZi5sZWFrX3JlcG9ydF9maWxl
IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgbm90IGNsZWFuX3NodXRkb3duOgogICAgICAg
ICAgICAgICAgICMgSWYgd2UgZGlkbid0IGdldCBhIGNsZWFuIHNodXRkb3duIHRoZXJlIHByb2Jh
Ymx5IGlzbid0IGEgbGVhayByZXBvcnQgZmlsZQogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
Lndhcm5pbmcoIkZpcmVmb3ggZGlkbid0IGV4aXQgY2xlYW5seSwgbm90IHByb2Nlc3NpbmcgbGVh
ayBsb2dzIikKQEAgLTQ5NCwyMSArNTc1LDI0IEBAIGNsYXNzIE91dHB1dEhhbmRsZXIob2JqZWN0
KToKICAgICAgICAgICAgICAgICAjIFdlIGhhdmUgdG8gaWdub3JlIG1pc3NpbmcgbGVha3MgaW4g
dGhlIHRhYiBiZWNhdXNlIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUKICAgICAgICAgICAgICAgICAj
IGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVkIGFuZCBpbiB0aGF0IGNhc2Ugd2UgZG9uJ3Qgd2FudCB0
aGUgdGVzdCB0byBmYWlsLgogICAgICAgICAgICAgICAgICMgSWRlYWxseSB3ZSB3b3VsZCByZWNv
cmQgd2hpY2ggY29udGVudCBwcm9jZXNzIGNyYXNoZWQgYW5kIGp1c3Qgc2tpcCB0aG9zZS4KKyAg
ICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJQUk9DRVNTIExFQUtTICVzIiAlIHNlbGYu
bGVha19yZXBvcnRfZmlsZSkKICAgICAgICAgICAgICAgICBtb3psZWFrLnByb2Nlc3NfbGVha19s
b2coCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuaW5zdGFuY2UubGVha19yZXBvcnRfZmlsZSwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlLAogICAgICAgICAgICAg
ICAgICAgICBsZWFrX3RocmVzaG9sZHM9c2VsZi5tb3psZWFrX3RocmVzaG9sZHMsCiAgICAgICAg
ICAgICAgICAgICAgIGlnbm9yZV9taXNzaW5nX2xlYWtzPVsidGFiIiwgImdtcGx1Z2luIl0sCiAg
ICAgICAgICAgICAgICAgICAgIGxvZz1zZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAg
c3RhY2tfZml4ZXI9c2VsZi5zdGFja19maXhlciwKICAgICAgICAgICAgICAgICAgICAgc2NvcGU9
c2VsZi5ncm91cF9tZXRhZGF0YS5nZXQoInNjb3BlIiksCiAgICAgICAgICAgICAgICAgICAgIGFs
bG93ZWQ9c2VsZi5tb3psZWFrX2FsbG93ZWQpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0
cyhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpOgorICAgICAgICAgICAgICAgIG9zLnVubGluayhzZWxm
LmxlYWtfcmVwb3J0X2ZpbGUpCiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwgbGluZSk6CiAgICAg
ICAgICIiIldyaXRlIGEgbGluZSBvZiBvdXRwdXQgZnJvbSB0aGUgZmlyZWZveCBwcm9jZXNzIHRv
IHRoZSBsb2ciIiIKICAgICAgICAgaWYgYiJHTGliLUdPYmplY3QtQ1JJVElDQUwiIGluIGxpbmU6
CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYgbGluZToKLSAgICAgICAgICAgIGlmIG5v
dCBzZWxmLnNldHVwX3JhbjoKKyAgICAgICAgICAgIGlmIHNlbGYuc3RhdGUgPCBPdXRwdXRIYW5k
bGVyU3RhdGUuQUZURVJfSEFORExFUl9TVEFSVDoKICAgICAgICAgICAgICAgICBzZWxmLmxpbmVf
YnVmZmVyLmFwcGVuZChsaW5lKQogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAg
ZGF0YSA9IGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKQpAQCAtNTE3LDE0ICs2MDEsMTIg
QEAgY2xhc3MgT3V0cHV0SGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgc2VsZi5sc2Fu
X2hhbmRsZXI6CiAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYubHNhbl9oYW5kbGVyLmxvZyhk
YXRhKQogICAgICAgICAgICAgaWYgZGF0YSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLmluc3RhbmNlIGFuZAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5zdGFuY2UucnVubmVyLnByb2Nl
c3NfaGFuZGxlciBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmluc3RhbmNlLnJ1bm5lci5wcm9jZXNzX2hhbmRsZXIucGlkLAorICAgICAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KHNlbGYucGlkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLmluc3RhbmNlLnJ1bm5l
ci5jb21tYW5kKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b21tYW5kPSIgIi5qb2luKHNlbGYuY29tbWFuZCkpCiAKIAotY2xhc3MgUHJvZmlsZUNyZWF0b3Io
b2JqZWN0KToKK2NsYXNzIFByb2ZpbGVDcmVhdG9yOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywgdGVzdF90eXBlLCBleHRyYV9wcmVmcywgZTEwcywK
ICAgICAgICAgICAgICAgICAgZW5hYmxlX2Zpc3Npb24sIGJyb3dzZXJfY2hhbm5lbCwgYmluYXJ5
LCBjZXJ0dXRpbF9iaW5hcnksIGNhX2NlcnRpZmljYXRlX3BhdGgpOgogICAgICAgICBzZWxmLmxv
Z2dlciA9IGxvZ2dlcgpAQCAtNTQwLDE4ICs2MjIsMzggQEAgY2xhc3MgUHJvZmlsZUNyZWF0b3Io
b2JqZWN0KToKICAgICAgICAgc2VsZi5jZXJ0dXRpbF9iaW5hcnkgPSBjZXJ0dXRpbF9iaW5hcnkK
ICAgICAgICAgc2VsZi5jYV9jZXJ0aWZpY2F0ZV9wYXRoID0gY2FfY2VydGlmaWNhdGVfcGF0aAog
Ci0gICAgZGVmIGNyZWF0ZShzZWxmKToKKyAgICBkZWYgY3JlYXRlKHNlbGYsICoqa3dhcmdzKToK
ICAgICAgICAgIiIiQ3JlYXRlIGEgRmlyZWZveCBwcm9maWxlIGFuZCByZXR1cm4gdGhlIG1venBy
b2ZpbGUgUHJvZmlsZSBvYmplY3QgcG9pbnRpbmcgYXQgdGhhdAotICAgICAgICBwcm9maWxlIiIi
CisgICAgICAgIHByb2ZpbGUKKworICAgICAgICA6cGFyYW0ga3dhcmdzOiBBZGRpdGlvbmFsIGFy
Z3VtZW50cyB0byBwYXNzIGludG8gdGhlIHByb2ZpbGUgY29uc3RydWN0b3IKKyAgICAgICAgIiIi
CiAgICAgICAgIHByZWZlcmVuY2VzID0gc2VsZi5fbG9hZF9wcmVmcygpCiAKLSAgICAgICAgcHJv
ZmlsZSA9IEZpcmVmb3hQcm9maWxlKHByZWZlcmVuY2VzPXByZWZlcmVuY2VzKQorICAgICAgICBw
cm9maWxlID0gRmlyZWZveFByb2ZpbGUocHJlZmVyZW5jZXM9cHJlZmVyZW5jZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlPUZhbHNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuX3NldF9yZXF1aXJlZF9w
cmVmcyhwcm9maWxlKQogICAgICAgICBpZiBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggaXMgbm90
IE5vbmU6CiAgICAgICAgICAgICBzZWxmLl9zZXR1cF9zc2wocHJvZmlsZSkKIAogICAgICAgICBy
ZXR1cm4gcHJvZmlsZQogCisgICAgZGVmIGNyZWF0ZV9iYXNlNjQoc2VsZiwgKiprd2FyZ3MpOgor
ICAgICAgICBwcm9maWxlID0gc2VsZi5jcmVhdGUoKiprd2FyZ3MpCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHdpdGggaW8uQnl0ZXNJTygpIGFzIGJ1ZjoKKyAgICAgICAgICAgICAgICB3aXRo
IHppcGZpbGUuWmlwRmlsZShidWYsICJ3IiwgY29tcHJlc3Npb249emlwZmlsZS5aSVBfREVGTEFU
RUQpIGFzIHppcGY6CisgICAgICAgICAgICAgICAgICAgIGZvciBkaXJwYXRoLCBfLCBmaWxlbmFt
ZXMgaW4gb3Mud2Fsayhwcm9maWxlLnByb2ZpbGUpOgorICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
cmNfcGF0aCA9IG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXN0X3BhdGggPSBvcy5wYXRoLnJlbHBhdGgoc3JjX3BhdGgsIHByb2Zp
bGUucHJvZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIG9wZW4oc3JjX3Bh
dGgsICJyYiIpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHppcGYud3Jp
dGVzdHIoZGVzdF9wYXRoLCBmLnJlYWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0
LmI2NGVuY29kZShidWYuZ2V0dmFsdWUoKSkuZGVjb2RlKCJhc2NpaSIpLnN0cmlwKCkKKyAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgIHByb2ZpbGUuY2xlYW51cCgpCisKICAgICBkZWYgX2xv
YWRfcHJlZnMoc2VsZik6CiAgICAgICAgIHByZWZzID0gUHJlZmVyZW5jZXMoKQogCkBAIC02NDEs
MTQgKzc0MywxMyBAQCBjbGFzcyBQcm9maWxlQ3JlYXRvcihvYmplY3QpOgogCiAKICAgICAgICAg
ZW52W2Vudl92YXJdID0gKG9zLnBhdGgucGF0aHNlcC5qb2luKFtjZXJ0dXRpbF9kaXIsIGVudltl
bnZfdmFyXV0pCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBlbnZfdmFyIGluIGVudiBlbHNl
IGNlcnR1dGlsX2RpcikuZW5jb2RlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5n
ZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSBvciAndXRmLTgnLCAncmVwbGFjZScpCisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBlbnZfdmFyIGluIGVudiBlbHNlIGNlcnR1dGlsX2RpcikKIAogICAg
ICAgICBkZWYgY2VydHV0aWwoKmFyZ3MpOgogICAgICAgICAgICAgY21kID0gW3NlbGYuY2VydHV0
aWxfYmluYXJ5XSArIGxpc3QoYXJncykKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nf
b3V0cHV0KCJjZXJ0dXRpbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChjbWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVudj1lbnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiLmpvaW4oY21kKSkKIApAQCAtNjcw
LDcgKzc3MSw2IEBAIGNsYXNzIFByb2ZpbGVDcmVhdG9yKG9iamVjdCk6CiAgICAgICAgIGNlcnR1
dGlsKCItTCIsICItZCIsIGNlcnRfZGJfcGF0aCkKIAogCi0KIGNsYXNzIEZpcmVmb3hCcm93c2Vy
KEJyb3dzZXIpOgogICAgIGluaXRfdGltZW91dCA9IDcwCiAKQEAgLTY3OSw3ICs3NzksOCBAQCBj
bGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgICAgICAgICAgY2FfY2VydGlm
aWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZhbHNlLCBlbmFibGVfd2VicmVuZGVyPUZhbHNlLCBlbmFi
bGVfZmlzc2lvbj1GYWxzZSwKICAgICAgICAgICAgICAgICAgc3RhY2tmaXhfZGlyPU5vbmUsIGJp
bmFyeV9hcmdzPU5vbmUsIHRpbWVvdXRfbXVsdGlwbGllcj1Ob25lLCBsZWFrX2NoZWNrPUZhbHNl
LAogICAgICAgICAgICAgICAgICBhc2FuPUZhbHNlLCBzdHlsb190aHJlYWRzPTEsIGNoYW9zX21v
ZGVfZmxhZ3M9Tm9uZSwgY29uZmlnPU5vbmUsCi0gICAgICAgICAgICAgICAgIGJyb3dzZXJfY2hh
bm5lbD0ibmlnaHRseSIsIGhlYWRsZXNzPU5vbmUsIHByZWxvYWRfYnJvd3Nlcj1GYWxzZSwgKipr
d2FyZ3MpOgorICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLCBoZWFk
bGVzcz1Ob25lLCBwcmVsb2FkX2Jyb3dzZXI9RmFsc2UsCisgICAgICAgICAgICAgICAgIHNwZWNp
YWxwb3dlcnNfcGF0aD1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18o
c2VsZiwgbG9nZ2VyKQogCiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCkBAIC02ODgsNiAr
Nzg5LDcgQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICBzZWxm
LmluaXRfdGltZW91dCA9IHNlbGYuaW5pdF90aW1lb3V0ICogdGltZW91dF9tdWx0aXBsaWVyCiAK
ICAgICAgICAgc2VsZi5pbnN0YW5jZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fc2V0dGluZ3MgPSBO
b25lCiAKICAgICAgICAgc2VsZi5zdGFja2ZpeF9kaXIgPSBzdGFja2ZpeF9kaXIKICAgICAgICAg
c2VsZi5zeW1ib2xzX3BhdGggPSBzeW1ib2xzX3BhdGgKQEAgLTY5Niw2ICs3OTgsOCBAQCBjbGFz
cyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgc2VsZi5hc2FuID0gYXNhbgogICAg
ICAgICBzZWxmLmxlYWtfY2hlY2sgPSBsZWFrX2NoZWNrCiAKKyAgICAgICAgc2VsZi5zcGVjaWFs
cG93ZXJzX3BhdGggPSBzcGVjaWFscG93ZXJzX3BhdGgKKwogICAgICAgICBwcm9maWxlX2NyZWF0
b3IgPSBQcm9maWxlQ3JlYXRvcihsb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByZWZzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbmZpZywKQEAgLTcyNiwxOSArODMwLDE5IEBAIGNsYXNzIEZpcmVmb3hCcm93
c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzeW1ib2xzX3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzYW4pCiAKLQogICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0
ZXN0KToKLSAgICAgICAgcmV0dXJuIHsiY2hlY2tfbGVha3MiOiBzZWxmLmxlYWtfY2hlY2sgYW5k
IG5vdCB0ZXN0LmxlYWtzLAotICAgICAgICAgICAgICAgICJsc2FuX2Rpc2FibGVkIjogdGVzdC5s
c2FuX2Rpc2FibGVkLAotICAgICAgICAgICAgICAgICJsc2FuX2FsbG93ZWQiOiB0ZXN0LmxzYW5f
YWxsb3dlZCwKLSAgICAgICAgICAgICAgICAibHNhbl9tYXhfc3RhY2tfZGVwdGgiOiB0ZXN0Lmxz
YW5fbWF4X3N0YWNrX2RlcHRoLAotICAgICAgICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBz
ZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha19hbGxvd2VkLAotICAgICAgICAgICAgICAg
ICJtb3psZWFrX3RocmVzaG9sZHMiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha190
aHJlc2hvbGR9CisgICAgICAgIHNlbGYuX3NldHRpbmdzID0geyJjaGVja19sZWFrcyI6IHNlbGYu
bGVha19jaGVjayBhbmQgbm90IHRlc3QubGVha3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJsc2FuX2Rpc2FibGVkIjogdGVzdC5sc2FuX2Rpc2FibGVkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAibHNhbl9hbGxvd2VkIjogdGVzdC5sc2FuX2FsbG93ZWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICJsc2FuX21heF9zdGFja19kZXB0aCI6IHRlc3QubHNhbl9tYXhfc3RhY2tf
ZGVwdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBzZWxm
LmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha19hbGxvd2VkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAibW96bGVha190aHJlc2hvbGRzIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1v
emxlYWtfdGhyZXNob2xkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lhbF9wb3dl
cnMiOiBzZWxmLnNwZWNpYWxwb3dlcnNfcGF0aCBhbmQgdGVzdC51cmxfYmFzZSA9PSAiL19tb3pp
bGxhLyJ9CisgICAgICAgIHJldHVybiBzZWxmLl9zZXR0aW5ncwogCiAgICAgZGVmIHN0YXJ0KHNl
bGYsIGdyb3VwX21ldGFkYXRhPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5pbnN0YW5j
ZSA9IHNlbGYuaW5zdGFuY2VfbWFuYWdlci5nZXQoKQotICAgICAgICBzZWxmLmluc3RhbmNlLm91
dHB1dF9oYW5kbGVyLnNldHVwKHNlbGYuaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3JvdXBfbWV0YWRhdGEsCisgICAgICAgIHNlbGYuaW5zdGFu
Y2Uub3V0cHV0X2hhbmRsZXIuc3RhcnQoZ3JvdXBfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKICAgICBkZWYgc3RvcChzZWxm
LCBmb3JjZT1GYWxzZSk6CkBAIC03NTYsNyArODYwLDExIEBAIGNsYXNzIEZpcmVmb3hCcm93c2Vy
KEJyb3dzZXIpOgogCiAgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIGFz
c2VydCBzZWxmLmluc3RhbmNlIGlzIG5vdCBOb25lCi0gICAgICAgIHJldHVybiBFeGVjdXRvckJy
b3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0Ijogc2VsZi5pbnN0YW5jZS5tYXJpb25ldHRlX3BvcnR9
CisgICAgICAgIGV4dGVuc2lvbnMgPSBbXQorICAgICAgICBpZiBzZWxmLl9zZXR0aW5ncy5nZXQo
InNwZWNpYWxfcG93ZXJzIiwgRmFsc2UpOgorICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQo
c2VsZi5zcGVjaWFscG93ZXJzX3BhdGgpCisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIs
IHsibWFyaW9uZXR0ZV9wb3J0Ijogc2VsZi5pbnN0YW5jZS5tYXJpb25ldHRlX3BvcnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXh0ZW5zaW9ucyI6IGV4dGVuc2lvbnN9CiAK
ICAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CiAgICAgICAgIGR1bXBf
ZGlyID0gb3MucGF0aC5qb2luKHNlbGYuaW5zdGFuY2UucnVubmVyLnByb2ZpbGUucHJvZmlsZSwg
Im1pbmlkdW1wcyIpCkBAIC03NzEsMyArODc5LDM5IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJy
b3dzZXIpOgogICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
Lndhcm5pbmcoIkxvb2tpbmcgZm9yIGNyYXNoIGR1bXAgZmlsZXMgZmFpbGVkIikKICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIEZpcmVmb3hXZFNwZWNCcm93c2VyKE51bGxCcm93
c2VyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBsZWFrX2NoZWNrPUZhbHNlLCAq
Kmt3YXJncyk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCAqKmt3YXJncykKKyAg
ICAgICAgc2VsZi5sZWFrX2NoZWNrID0gbGVha19jaGVjaworCisgICAgZGVmIHNldHRpbmdzKHNl
bGYsIHRlc3QpOgorICAgICAgICByZXR1cm4geyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVj
ayBhbmQgbm90IHRlc3QubGVha3MsCisgICAgICAgICAgICAgICAgImxzYW5fZGlzYWJsZWQiOiB0
ZXN0LmxzYW5fZGlzYWJsZWQsCisgICAgICAgICAgICAgICAgImxzYW5fYWxsb3dlZCI6IHRlc3Qu
bHNhbl9hbGxvd2VkLAorICAgICAgICAgICAgICAgICJsc2FuX21heF9zdGFja19kZXB0aCI6IHRl
c3QubHNhbl9tYXhfc3RhY2tfZGVwdGgsCisgICAgICAgICAgICAgICAgIm1vemxlYWtfYWxsb3dl
ZCI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX2FsbG93ZWQsCisgICAgICAgICAg
ICAgICAgIm1vemxlYWtfdGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3ps
ZWFrX3RocmVzaG9sZH0KKworCitjbGFzcyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2
ZXIpOgorICAgIG91dHB1dF9oYW5kbGVyX2NscyA9IEZpcmVmb3hPdXRwdXRIYW5kbGVyCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBtYXJpb25ldHRlX3BvcnQ9MjgyOCwgYmluYXJ5
PSJnZWNrb2RyaXZlciIsCisgICAgICAgICAgICAgICAgIGhvc3Q9IjEyNy4wLjAuMSIsIHBvcnQ9
Tm9uZSwgZW52PU5vbmUsIGFyZ3M9Tm9uZSk6CisgICAgICAgIGlmIGVudiBpcyBOb25lOgorICAg
ICAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgZW52WyJSVVNUX0JBQ0tU
UkFDRSJdID0gIjEiCisgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIGJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9aG9zdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9ydCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcmdzPWFyZ3MpCisgICAgICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gbWFyaW9u
ZXR0ZV9wb3J0CisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4g
W3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICItLW1hcmlvbmV0dGUtcG9ydCIsIHN0cihz
ZWxmLm1hcmlvbmV0dGVfcG9ydCksCisgICAgICAgICAgICAgICAgIi0taG9zdCIsIHNlbGYuaG9z
dCwKKyAgICAgICAgICAgICAgICAiLS1wb3J0Iiwgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJn
cwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9hbmRyb2lkLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9h
bmRyb2lkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGQ3ZWJm
NWUxZmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9hbmRyb2lkLnB5CkBAIC0w
LDAgKzEsMjkwIEBACitpbXBvcnQgb3MKKworaW1wb3J0IG1vem5ldHdvcmsKK2Zyb20gbW96cnVu
bmVyIGltcG9ydCBGZW5uZWNFbXVsYXRvclJ1bm5lcgorCitmcm9tIC5iYXNlIGltcG9ydCAoZ2V0
X2ZyZWVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICBjbWRfYXJnLAorICAgICAgICAgICAgICAg
ICAgIGJyb3dzZXJfY29tbWFuZCkKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JtYXJpb25ldHRl
IGltcG9ydCAoTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVJlZlRl
c3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNYXJpb25ldHRlQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEK
K2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIEV4ZWN1dG9y
QnJvd3NlcikKK2Zyb20gLmZpcmVmb3ggaW1wb3J0IChnZXRfdGltZW91dF9tdWx0aXBsaWVyLCAg
IyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzIGFzIGZ4
X3J1bl9pbmZvX2V4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGll
cywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncywg
ICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgIFByb2ZpbGVDcmVhdG9yIGFzIEZp
cmVmb3hQcm9maWxlQ3JlYXRvcikKKworCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZp
cmVmb3hfYW5kcm9pZCIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2Fy
Z3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJGaXJlZm94QW5kcm9pZEJyb3dzZXIi
LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIk1hcmlvbmV0
dGVUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZ0ZXN0IjogIk1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImNyYXNodGVzdCI6ICJNYXJpb25ldHRlQ3Jhc2h0ZXN0RXhlY3V0b3IifSwK
KyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAg
ICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAg
ICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9p
bmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidXBkYXRl
X3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMiLAorICAgICAgICAgICAgICAgICAidGlt
ZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCisKK2RlZiBjaGVj
a19hcmdzKCoqa3dhcmdzKToKKyAgICBwYXNzCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dl
ciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1
cm4geyJhZGJfYmluYXJ5Ijoga3dhcmdzWyJhZGJfYmluYXJ5Il0sCisgICAgICAgICAgICAicGFj
a2FnZV9uYW1lIjoga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwKKyAgICAgICAgICAgICJkZXZpY2Vf
c2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCisgICAgICAgICAgICAicHJlZnNfcm9v
dCI6IGt3YXJnc1sicHJlZnNfcm9vdCJdLAorICAgICAgICAgICAgImV4dHJhX3ByZWZzIjoga3dh
cmdzWyJleHRyYV9wcmVmcyJdLAorICAgICAgICAgICAgInRlc3RfdHlwZSI6IHRlc3RfdHlwZSwK
KyAgICAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCisgICAgICAg
ICAgICAic3ltYm9sc19wYXRoIjoga3dhcmdzWyJzeW1ib2xzX3BhdGgiXSwKKyAgICAgICAgICAg
ICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzWyJzdGFja3dhbGtfYmluYXJ5Il0sCisgICAgICAg
ICAgICAiY2VydHV0aWxfYmluYXJ5Ijoga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSwKKyAgICAg
ICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjogY29uZmlnLnNzbF9jb25maWdbImNhX2NlcnRf
cGF0aCJdLAorICAgICAgICAgICAgImVuYWJsZV93ZWJyZW5kZXIiOiBrd2FyZ3NbImVuYWJsZV93
ZWJyZW5kZXIiXSwKKyAgICAgICAgICAgICJzdGFja2ZpeF9kaXIiOiBrd2FyZ3NbInN0YWNrZml4
X2RpciJdLAorICAgICAgICAgICAgImJpbmFyeV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJd
LAorICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IGdldF90aW1lb3V0X211bHRpcGxp
ZXIodGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKSwKKyAgICAgICAgICAgICJl
MTBzIjogcnVuX2luZm9fZGF0YVsiZTEwcyJdLAorICAgICAgICAgICAgIyBkZXNrdG9wIG9ubHkK
KyAgICAgICAgICAgICJsZWFrX2NoZWNrIjogRmFsc2UsCisgICAgICAgICAgICAic3R5bG9fdGhy
ZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAorICAgICAgICAgICAgImNoYW9zX21vZGVf
ZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSwKKyAgICAgICAgICAgICJjb25maWci
OiBjb25maWcsCisgICAgICAgICAgICAiaW5zdGFsbF9mb250cyI6IGt3YXJnc1siaW5zdGFsbF9m
b250cyJdLAorICAgICAgICAgICAgInRlc3RzX3Jvb3QiOiBjb25maWcuZG9jX3Jvb3QsCisgICAg
ICAgICAgICAic3BlY2lhbHBvd2Vyc19wYXRoIjoga3dhcmdzWyJzcGVjaWFscG93ZXJzX3BhdGgi
XX0KKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKKworZGVm
IHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CisgICAgcnYgPSBmeF9ydW5faW5mb19leHRyYXMo
Kiprd2FyZ3MpCisgICAgcGFja2FnZSA9IGt3YXJnc1sicGFja2FnZV9uYW1lIl0KKyAgICBydi51
cGRhdGUoeyJlMTBzIjogVHJ1ZSBpZiBwYWNrYWdlIGlzIG5vdCBOb25lIGFuZCAiZ2Vja292aWV3
IiBpbiBwYWNrYWdlIGVsc2UgRmFsc2UsCisgICAgICAgICAgICAgICAiaGVhZGxlc3MiOiBGYWxz
ZX0pCisgICAgcmV0dXJuIHJ2CisKKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgIyBUaGUgc2Vy
dmVyIGhvc3QgaXMgc2V0IHRvIHB1YmxpYyBsb2NhbGhvc3QgSVAgc28gdGhhdCByZXNvdXJjZXMg
Y2FuIGJlIGFjY2Vzc2VkCisgICAgIyBmcm9tIEFuZHJvaWQgZW11bGF0b3IKKyAgICByZXR1cm4g
eyJzZXJ2ZXJfaG9zdCI6IG1vem5ldHdvcmsuZ2V0X2lwKCksCisgICAgICAgICAgICAiYmluZF9h
ZGRyZXNzIjogRmFsc2UsCisgICAgICAgICAgICAic3VwcG9ydHNfZGVidWdnZXIiOiBUcnVlfQor
CisKK2NsYXNzIFByb2ZpbGVDcmVhdG9yKEZpcmVmb3hQcm9maWxlQ3JlYXRvcik6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgY29uZmlnLCB0ZXN0X3R5cGUsIGV4
dHJhX3ByZWZzLAorICAgICAgICAgICAgICAgICBlbmFibGVfZmlzc2lvbiwgYnJvd3Nlcl9jaGFu
bmVsLCBjZXJ0dXRpbF9iaW5hcnksIGNhX2NlcnRpZmljYXRlX3BhdGgpOgorICAgICAgICBzdXBl
cihQcm9maWxlQ3JlYXRvciwgc2VsZikuX19pbml0X18obG9nZ2VyLCBwcmVmc19yb290LCBjb25m
aWcsIHRlc3RfdHlwZSwgZXh0cmFfcHJlZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUcnVlLCBlbmFibGVfZmlzc2lvbiwgYnJvd3Nlcl9jaGFubmVsLCBO
b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydHV0
aWxfYmluYXJ5LCBjYV9jZXJ0aWZpY2F0ZV9wYXRoKQorCisgICAgZGVmIF9zZXRfcmVxdWlyZWRf
cHJlZnMoc2VsZiwgcHJvZmlsZSk6CisgICAgICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsK
KyAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMiOiAiLCIuam9pbihzZWxmLmNv
bmZpZy5kb21haW5zX3NldCksCisgICAgICAgICAgICAiZG9tLmRpc2FibGVfb3Blbl9kdXJpbmdf
bG9hZCI6IEZhbHNlLAorICAgICAgICAgICAgInBsYWNlcy5oaXN0b3J5LmVuYWJsZWQiOiBGYWxz
ZSwKKyAgICAgICAgICAgICJkb20uc2VuZF9hZnRlcl9wYWludF90b19jb250ZW50IjogVHJ1ZSwK
KyAgICAgICAgICAgICJuZXR3b3JrLnByZWxvYWQiOiBUcnVlLAorICAgICAgICAgICAgImJyb3dz
ZXIudGFicy5yZW1vdGUuYXV0b3N0YXJ0IjogVHJ1ZSwKKyAgICAgICAgfSkKKworICAgICAgICBp
ZiBzZWxmLnRlc3RfdHlwZSA9PSAicmVmdGVzdCI6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5p
bmZvKCJTZXR0aW5nIGFuZHJvaWQgcmVmdGVzdCBwcmVmZXJlbmNlcyIpCisgICAgICAgICAgICBw
cm9maWxlLnNldF9wcmVmZXJlbmNlcyh7CisgICAgICAgICAgICAgICAgImJyb3dzZXIudmlld3Bv
cnQuZGVza3RvcFdpZHRoIjogODAwLAorICAgICAgICAgICAgICAgICMgRGlzYWJsZSBoaWdoIERQ
SQorICAgICAgICAgICAgICAgICJsYXlvdXQuY3NzLmRldlBpeGVsc1BlclB4IjogIjEuMCIsCisg
ICAgICAgICAgICAgICAgIyBFbnN1cmUgdGhhdCB0aGUgZnVsbCBicm93c2VyIGVsZW1lbnQKKyAg
ICAgICAgICAgICAgICAjIGFwcGVhcnMgaW4gdGhlIHNjcmVlbnNob3QKKyAgICAgICAgICAgICAg
ICAiYXB6LmFsbG93X3pvb21pbmciOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAiYW5kcm9pZC53
aWRnZXRfcGFpbnRzX2JhY2tncm91bmQiOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAjIEVuc3Vy
ZSB0aGF0IHNjcm9sbGJhcnMgYXJlIGFsd2F5cyBwYWludGVkCisgICAgICAgICAgICAgICAgImxh
eW91dC50ZXN0aW5nLm92ZXJsYXktc2Nyb2xsYmFycy5hbHdheXMtdmlzaWJsZSI6IFRydWUsCisg
ICAgICAgICAgICB9KQorCisKK2NsYXNzIEZpcmVmb3hBbmRyb2lkQnJvd3NlcihCcm93c2VyKToK
KyAgICBpbml0X3RpbWVvdXQgPSAzMDAKKyAgICBzaHV0ZG93bl90aW1lb3V0ID0gNjAKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByZWZzX3Jvb3QsIHRlc3RfdHlwZSwgcGFja2Fn
ZV9uYW1lPSJvcmcubW96aWxsYS5nZWNrb3ZpZXcudGVzdCIsCisgICAgICAgICAgICAgICAgIGRl
dmljZV9zZXJpYWw9ImVtdWxhdG9yLTU0NDQiLCBleHRyYV9wcmVmcz1Ob25lLCBkZWJ1Z19pbmZv
PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lLCBzdGFja3dhbGtfYmlu
YXJ5PU5vbmUsIGNlcnR1dGlsX2JpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAgICBjYV9jZXJ0
aWZpY2F0ZV9wYXRoPU5vbmUsIGUxMHM9RmFsc2UsIGVuYWJsZV93ZWJyZW5kZXI9RmFsc2UsIHN0
YWNrZml4X2Rpcj1Ob25lLAorICAgICAgICAgICAgICAgICBiaW5hcnlfYXJncz1Ob25lLCB0aW1l
b3V0X211bHRpcGxpZXI9Tm9uZSwgbGVha19jaGVjaz1GYWxzZSwgYXNhbj1GYWxzZSwKKyAgICAg
ICAgICAgICAgICAgc3R5bG9fdGhyZWFkcz0xLCBjaGFvc19tb2RlX2ZsYWdzPU5vbmUsIGNvbmZp
Zz1Ob25lLCBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLAorICAgICAgICAgICAgICAgICBpbnN0
YWxsX2ZvbnRzPUZhbHNlLCB0ZXN0c19yb290PU5vbmUsIHNwZWNpYWxwb3dlcnNfcGF0aD1Ob25l
LCBhZGJfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKKworICAgICAg
ICBzdXBlcihGaXJlZm94QW5kcm9pZEJyb3dzZXIsIHNlbGYpLl9faW5pdF9fKGxvZ2dlcikKKyAg
ICAgICAgc2VsZi5wcmVmc19yb290ID0gcHJlZnNfcm9vdAorICAgICAgICBzZWxmLnRlc3RfdHlw
ZSA9IHRlc3RfdHlwZQorICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9IHBhY2thZ2VfbmFtZQor
ICAgICAgICBzZWxmLmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCisgICAgICAgIHNlbGYu
ZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KKyAgICAgICAgc2VsZi5zeW1ib2xzX3BhdGggPSBzeW1i
b2xzX3BhdGgKKyAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5ID0gc3RhY2t3YWxrX2JpbmFy
eQorICAgICAgICBzZWxmLmNlcnR1dGlsX2JpbmFyeSA9IGNlcnR1dGlsX2JpbmFyeQorICAgICAg
ICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBjYV9jZXJ0aWZpY2F0ZV9wYXRoCisgICAgICAg
IHNlbGYuZTEwcyA9IFRydWUKKyAgICAgICAgc2VsZi5lbmFibGVfd2VicmVuZGVyID0gZW5hYmxl
X3dlYnJlbmRlcgorICAgICAgICBzZWxmLnN0YWNrZml4X2RpciA9IHN0YWNrZml4X2RpcgorICAg
ICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3MKKyAgICAgICAgc2VsZi50aW1lb3V0
X211bHRpcGxpZXIgPSB0aW1lb3V0X211bHRpcGxpZXIKKyAgICAgICAgc2VsZi5sZWFrX2NoZWNr
ID0gbGVha19jaGVjaworICAgICAgICBzZWxmLmFzYW4gPSBhc2FuCisgICAgICAgIHNlbGYuc3R5
bG9fdGhyZWFkcyA9IHN0eWxvX3RocmVhZHMKKyAgICAgICAgc2VsZi5jaGFvc19tb2RlX2ZsYWdz
ID0gY2hhb3NfbW9kZV9mbGFncworICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZworICAgICAg
ICBzZWxmLmJyb3dzZXJfY2hhbm5lbCA9IGJyb3dzZXJfY2hhbm5lbAorICAgICAgICBzZWxmLmlu
c3RhbGxfZm9udHMgPSBpbnN0YWxsX2ZvbnRzCisgICAgICAgIHNlbGYudGVzdHNfcm9vdCA9IHRl
c3RzX3Jvb3QKKyAgICAgICAgc2VsZi5zcGVjaWFscG93ZXJzX3BhdGggPSBzcGVjaWFscG93ZXJz
X3BhdGgKKyAgICAgICAgc2VsZi5hZGJfYmluYXJ5ID0gYWRiX2JpbmFyeQorCisgICAgICAgIHNl
bGYucHJvZmlsZV9jcmVhdG9yID0gUHJvZmlsZUNyZWF0b3IobG9nZ2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZzX3Jvb3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9wcmVmcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydHV0aWxfYmluYXJ5
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhX2NlcnRp
ZmljYXRlX3BhdGgpCisKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBOb25lCisgICAg
ICAgIHNlbGYucHJvZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBOb25lCisgICAg
ICAgIHNlbGYuX3NldHRpbmdzID0ge30KKworICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0ZXN0KToK
KyAgICAgICAgc2VsZi5fc2V0dGluZ3MgPSB7ImNoZWNrX2xlYWtzIjogc2VsZi5sZWFrX2NoZWNr
IGFuZCBub3QgdGVzdC5sZWFrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImxzYW5fYWxs
b3dlZCI6IHRlc3QubHNhbl9hbGxvd2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibHNh
bl9tYXhfc3RhY2tfZGVwdGgiOiB0ZXN0LmxzYW5fbWF4X3N0YWNrX2RlcHRoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAibW96bGVha19hbGxvd2VkIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0
ZXN0Lm1vemxlYWtfYWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vemxlYWtf
dGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX3RocmVzaG9sZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgInNwZWNpYWxfcG93ZXJzIjogc2VsZi5zcGVjaWFs
cG93ZXJzX3BhdGggYW5kIHRlc3QudXJsX2Jhc2UgPT0gIi9fbW96aWxsYS8ifQorICAgICAgICBy
ZXR1cm4gc2VsZi5fc2V0dGluZ3MKKworICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6Cisg
ICAgICAgIGlmIHNlbGYubWFyaW9uZXR0ZV9wb3J0IGlzIE5vbmU6CisgICAgICAgICAgICBzZWxm
Lm1hcmlvbmV0dGVfcG9ydCA9IGdldF9mcmVlX3BvcnQoKQorCisgICAgICAgIGFkZG9ucyA9IFtz
ZWxmLnNwZWNpYWxwb3dlcnNfcGF0aF0gaWYgc2VsZi5fc2V0dGluZ3MuZ2V0KCJzcGVjaWFsX3Bv
d2VycyIpIGVsc2UgTm9uZQorICAgICAgICBzZWxmLnByb2ZpbGUgPSBzZWxmLnByb2ZpbGVfY3Jl
YXRvci5jcmVhdGUoYWRkb25zPWFkZG9ucykKKyAgICAgICAgc2VsZi5wcm9maWxlLnNldF9wcmVm
ZXJlbmNlcyh7Im1hcmlvbmV0dGUucG9ydCI6IHNlbGYubWFyaW9uZXR0ZV9wb3J0fSkKKworICAg
ICAgICBpZiBzZWxmLmluc3RhbGxfZm9udHM6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiQ29weWluZyBBaGVtIGZvbnQgdG8gcHJvZmlsZSIpCisgICAgICAgICAgICBmb250X2RpciA9
IG9zLnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgImZvbnRzIikKKyAgICAgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhmb250X2Rpcik6CisgICAgICAgICAgICAgICAgb3MubWFr
ZWRpcnMoZm9udF9kaXIpCisgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHNlbGYu
dGVzdHNfcm9vdCwgImZvbnRzIiwgIkFoZW0udHRmIiksICJyYiIpIGFzIHNyYzoKKyAgICAgICAg
ICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGZvbnRfZGlyLCAiQWhlbS50dGYiKSwgIndi
IikgYXMgZGVzdDoKKyAgICAgICAgICAgICAgICAgICAgZGVzdC53cml0ZShzcmMucmVhZCgpKQor
CisgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IE5vbmUKKworICAgICAgICBkZWJ1Z19h
cmdzLCBjbWQgPSBicm93c2VyX2NvbW1hbmQoc2VsZi5wYWNrYWdlX25hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJpbmFyeV9hcmdzIGlmIHNlbGYu
YmluYXJ5X2FyZ3MgZWxzZSBbXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbY21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykKKworICAg
ICAgICBlbnYgPSB7fQorICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSIl0gPSAiMSIKKyAg
ICAgICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEiCisgICAgICAgIGVu
dlsiTU9aX0RJU0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXSA9ICIxIgorICAgICAgICBlbnZb
IlNUWUxPX1RIUkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCisgICAgICAgIGlmIHNl
bGYuY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGVudlsiTU9aX0NI
QU9TTU9ERSJdID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKKyAgICAgICAgaWYgc2VsZi5l
bmFibGVfd2VicmVuZGVyOgorICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMSIK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjAiCisK
KyAgICAgICAgc2VsZi5ydW5uZXIgPSBGZW5uZWNFbXVsYXRvclJ1bm5lcihhcHA9c2VsZi5wYWNr
YWdlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
ZmlsZT1zZWxmLnByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY21kYXJncz1jbWRbMTpdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3ltYm9sc19wYXRoPXNlbGYuc3ltYm9sc19wYXRoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbD1zZWxmLmRldmljZV9zZXJpYWwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUT0RPIC0gY2hvb3NlIGFw
cHJvcHJpYXRlIGxvZyBkaXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2dkaXI9b3MuZ2V0Y3dkKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWRiX3BhdGg9c2VsZi5hZGJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0X2NsZWFudXA9VHJ1ZSkKKworICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgJXMiICUgc2VsZi5wYWNrYWdlX25hbWUpCisg
ICAgICAgICMgY29ubmVjdCB0byBhIHJ1bm5pbmcgZW11bGF0b3IKKyAgICAgICAgc2VsZi5ydW5u
ZXIuZGV2aWNlLmNvbm5lY3QoKQorCisgICAgICAgIHNlbGYucnVubmVyLnN0b3AoKQorICAgICAg
ICBzZWxmLnJ1bm5lci5zdGFydChkZWJ1Z19hcmdzPWRlYnVnX2FyZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludGVyYWN0aXZlPXNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5kZWJ1Z19p
bmZvLmludGVyYWN0aXZlKQorCisgICAgICAgIHNlbGYucnVubmVyLmRldmljZS5kZXZpY2UuZm9y
d2FyZCgKKyAgICAgICAgICAgIGxvY2FsPSJ0Y3A6e30iLmZvcm1hdChzZWxmLm1hcmlvbmV0dGVf
cG9ydCksCisgICAgICAgICAgICByZW1vdGU9InRjcDp7fSIuZm9ybWF0KHNlbGYubWFyaW9uZXR0
ZV9wb3J0KSkKKworICAgICAgICBmb3IgcG9ydHMgaW4gc2VsZi5jb25maWcucG9ydHMudmFsdWVz
KCk6CisgICAgICAgICAgICBmb3IgcG9ydCBpbiBwb3J0czoKKyAgICAgICAgICAgICAgICBzZWxm
LnJ1bm5lci5kZXZpY2UuZGV2aWNlLnJldmVyc2UoCisgICAgICAgICAgICAgICAgICAgIGxvY2Fs
PSJ0Y3A6e30iLmZvcm1hdChwb3J0KSwKKyAgICAgICAgICAgICAgICAgICAgcmVtb3RlPSJ0Y3A6
e30iLmZvcm1hdChwb3J0KSkKKworICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiJXMgU3RhcnRl
ZCIgJSBzZWxmLnBhY2thZ2VfbmFtZSkKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNl
KToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBz
ZWxmLnJ1bm5lci5kZXZpY2UuY29ubmVjdGVkOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmRldmljZS5yZW1vdmVfZm9yd2FyZHMo
KQorICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlLnJlbW92ZV9y
ZXZlcnNlcygpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg
ICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gcmVtb3ZlIGZvcndh
cmRlZCBvciByZXZlcnNlZCBwb3J0czogJXMiICUgZSkKKyAgICAgICAgICAgICMgV2UgYXNzdW1l
IHRoYXQgc3RvcHBpbmcgdGhlIHJ1bm5lciBwcm9tcHRzIHRoZQorICAgICAgICAgICAgIyBicm93
c2VyIHRvIHNodXQgZG93bi4KKyAgICAgICAgICAgIHNlbGYucnVubmVyLmNsZWFudXAoKQorICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1Zygic3RvcHBlZCIpCisKKyAgICBkZWYgcGlkKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLnJ1bm5lci5wcm9jZXNzX2hhbmRsZXIgaXMgTm9uZToKKyAgICAgICAg
ICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cnVubmVyLnByb2Nlc3NfaGFuZGxlci5waWQKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9y
OgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAg
ICAgICAgaWYgc2VsZi5ydW5uZXI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ydW5uZXIuaXNf
cnVubmluZygpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGNsZWFudXAoc2VsZiwg
Zm9yY2U9RmFsc2UpOgorICAgICAgICBzZWxmLnN0b3AoZm9yY2UpCisKKyAgICBkZWYgZXhlY3V0
b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJtYXJp
b25ldHRlX3BvcnQiOiBzZWxmLm1hcmlvbmV0dGVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMgV2UgbmV2ZXIgd2FudCBtYXJpb25ldHRlIHRvIGluc3RhbGwgZXh0ZW5z
aW9ucyBiZWNhdXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoYXQgZG9l
c24ndCB3b3JrIG9uIEFuZHJvaWQ7IGluc3RlYWQgdGhleSBhcmUgaW4gdGhlIHByb2ZpbGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHRlbnNpb25zIjogW119CisKKyAgICBk
ZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CisgICAgICAgIGlmIG5vdCBvcy5l
bnZpcm9uLmdldCgiTUlOSURVTVBfU1RBQ0tXQUxLIiwgIiIpIGFuZCBzZWxmLnN0YWNrd2Fsa19i
aW5hcnk6CisgICAgICAgICAgICBvcy5lbnZpcm9uWyJNSU5JRFVNUF9TVEFDS1dBTEsiXSA9IHNl
bGYuc3RhY2t3YWxrX2JpbmFyeQorICAgICAgICByZXR1cm4gYm9vbChzZWxmLnJ1bm5lci5jaGVj
a19mb3JfY3Jhc2hlcyh0ZXN0X25hbWU9dGVzdCkpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2llLnB5CmluZGV4IDc4YzIyYjkwOWFjZi4uYzg1MWRhZjBiNjNjIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9pZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQpAQCAtMSwxMiArMSwxMSBAQAotZnJvbSAu
YmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwotZnJvbSAu
YmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQotZnJvbSAu
LndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIKK2Zy
b20gLmJhc2UgaW1wb3J0IHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3Nl
ciwgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3Jz
IGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVy
RHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImllIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJn
cyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIkludGVybmV0RXhwbG9yZXJCcm93c2Vy
IiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiTnVsbEJyb3dzZXIiLAogICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3IiOiB7Indkc3BlYyI6ICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2Rz
cGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dz
ZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRv
cl9rd2FyZ3MiLApAQCAtMTgsMTggKzE3LDE3IEBAIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3Qi
OiAiaWUiLAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJn
cywgIndlYmRyaXZlcl9iaW5hcnkiKQogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBy
dW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dn
ZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0
dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAg
ICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0K
IAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21h
bmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90
eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAg
ICAqKmt3YXJncyk6CiAgICAgb3B0aW9ucyA9IHt9CiAgICAgb3B0aW9uc1sicmVxdWlyZVdpbmRv
d0ZvY3VzIl0gPSBUcnVlCiAgICAgY2FwYWJpbGl0aWVzID0ge30KICAgICBjYXBhYmlsaXRpZXNb
InNlOmllT3B0aW9ucyJdID0gb3B0aW9ucwotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhl
Y3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQogICAgIGV4
ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1dG9yX2t3
YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMKICAgICByZXR1cm4gZXhlY3V0b3Jf
a3dhcmdzCkBAIC0zOSwzNSArMzcsMyBAQCBkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CiAKIGRl
ZiBlbnZfb3B0aW9ucygpOgogICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjogRmFsc2V9
Ci0KLWNsYXNzIEludGVybmV0RXhwbG9yZXJCcm93c2VyKEJyb3dzZXIpOgotICAgIHVzZWRfcG9y
dHMgPSBzZXQoKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2Jp
bmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6Ci0gICAgICAgIEJyb3dzZXIuX19pbml0X18oc2Vs
ZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLnNlcnZlciA9IEludGVybmV0RXhwbG9yZXJEcml2ZXJT
ZXJ2ZXIoc2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0g
ICAgICAgIHNlbGYud2ViZHJpdmVyX2hvc3QgPSAibG9jYWxob3N0IgotICAgICAgICBzZWxmLndl
YmRyaXZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXIucG9ydAotCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoq
a3dhcmdzKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQotCi0gICAgZGVmIHN0b3Aoc2Vs
ZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQot
Ci0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAotCi0g
ICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGlu
ZGljYXRlcyB0aGUgc2VydmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBh
bnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMgaXMgYWN0
aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAgZGVmIGNs
ZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYgZXhlY3V0b3JfYnJv
d3NlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJf
dXJsIjogc2VsZi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9vcGVyYS5weQppbmRleCA4MDVmZWRlZTYzNmMuLmYzYTI5MjljZThlYiAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvb3BlcmEucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkKQEAgLTEsNCArMSw1IEBACiBmcm9t
IC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9t
IC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC5iYXNlIGltcG9y
dCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVy
X3NlcnZlciBpbXBvcnQgT3BlcmFEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwpAQCAtOSw3ICsxMCw4IEBA
IGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JvcGVyYSBpbXBvcnQgT3BlcmFEcml2ZXJXZHNwZWNF
eGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAib3Bl
cmEiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAg
ICAgICAgICAgICAgImJyb3dzZXIiOiAiT3BlcmFCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAg
ImJyb3dzZXIiOiB7Tm9uZTogIk9wZXJhQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1
dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhl
Y3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJPcGVyYURy
aXZlcldkc3BlY0V4ZWN1dG9yIn0sCkBAIC0yNCwxOCArMjYsMTcgQEAgZGVmIGNoZWNrX2FyZ3Mo
Kiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQog
CiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywg
Kiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5m
b19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3Nb
ImJpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRy
aXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQo
IndlYmRyaXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRh
LAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgZnJvbSBzZWxlbml1bS53ZWJk
cml2ZXIgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLCAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdz
KQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGNh
cGFiaWxpdGllcyA9IGRpY3QoRGVzaXJlZENhcGFiaWxpdGllcy5PUEVSQS5pdGVtcygpKQogICAg
IGNhcGFiaWxpdGllcy5zZXRkZWZhdWx0KCJvcGVyYU9wdGlvbnMiLCB7fSlbInByZWZzIl0gPSB7
CkBAIC03MSw3ICs3Miw3IEBAIGNsYXNzIE9wZXJhQnJvd3NlcihCcm93c2VyKToKICAgICAiIiIK
IAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFy
eT0ib3BlcmFkcml2ZXIiLAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToK
KyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAg
ICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIE9wZXJhLiAgVGhlIGBiaW5hcnlg
IGFyZ3VtZW50IGdpdmVzCiAgICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2UgZm9yIHRl
c3RpbmcuIiIiCiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvc2FmYXJpLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CmluZGV4IGNiMmIxNzVkNGRm
Yi4uMjBhNTQ3NWFjZjBiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2FmYXJpLnB5CkBAIC0xLDQgKzEsMTEgQEAKK2ltcG9ydCBvcworaW1wb3J0IHBsaXN0bGliCitm
cm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCisKK2ltcG9ydCBwc3V0
aWwKKwogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJl
X2FyZworZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAu
YmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAu
LndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFNhZmFyaURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1
dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCkBAIC0x
MCw3ICsxNyw4IEBAIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzYWZhcmkgaW1wb3J0IFNhZmFy
aURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJfXyA9IHsi
cHJvZHVjdCI6ICJzYWZhcmkiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVj
a19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiU2FmYXJpQnJvd3NlciIsCisg
ICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJTYWZhcmlCcm93c2VyIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAogICAgICAg
ICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJu
ZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAi
V2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3ZHNwZWMiOiAiU2FmYXJpRHJpdmVyV2RzcGVjRXhlY3V0b3IiLApAQCAtMjYsMTUgKzM0LDE0
IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3
ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIs
IHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJu
IHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAotICAgICAg
ICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKyAg
ICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIiks
CisgICAgICAgICAgICAia2lsbF9zYWZhcmkiOiBrd2FyZ3MuZ2V0KCJraWxsX3NhZmFyaSIsIEZh
bHNlKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgKiprd2Fy
Z3MpOgotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKK2RlZiBleGVjdXRv
cl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2Rh
dGEsICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQog
ICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1
dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSB7fQogICAgIGlmIHRlc3RfdHlwZSA9PSAidGVz
dGhhcm5lc3MiOgpAQCAtNTgsMTUgKzY1LDYwIEBAIGNsYXNzIFNhZmFyaUJyb3dzZXIoQnJvd3Nl
cik6CiAgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLlNhZmFyaURyaXZlclNlcnZlcmBgLgogICAg
ICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwg
d2ViZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2Vi
ZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwga2lsbF9zYWZhcmk9RmFsc2UsICoq
a3dhcmdzKToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBTYWZh
cmkuICBUaGUgYHdlYmRyaXZlcl9iaW5hcnlgCiAgICAgICAgIGFyZ3VtZW50IGdpdmVzIHRoZSBX
ZWJEcml2ZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4gKFRoZSBicm93c2VyCiAgICAgICAg
IGJpbmFyeSBsb2NhdGlvbiBjYW5ub3QgYmUgc3BlY2lmaWVkLCBhcyBTYWZhcmkgYW5kIFNhZmFy
aURyaXZlciBhcmUKLSAgICAgICAgY291cGxlZC4pIiIiCisgICAgICAgIGNvdXBsZWQuKSBJZiBg
a2lsbF9zYWZhcmlgIGlzIFRydWUsIHRoZW4gYEJyb3dzZXIuc3RvcGAgd2lsbCBzdG9wIFNhZmFy
aS4iIiIKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAgICAgIHNl
bGYuc2VydmVyID0gU2FmYXJpRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJn
cykKKyAgICAgICAgaWYgIi8iIG5vdCBpbiB3ZWJkcml2ZXJfYmluYXJ5OgorICAgICAgICAgICAg
d2RfcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSh3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgd2RfcGF0aCA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgc2VsZi5z
YWZhcmlfcGF0aCA9IHNlbGYuX2ZpbmRBc3NvY2lhdGVkU2FmYXJpRXhlY3V0YWJsZSh3ZF9wYXRo
KQorCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiV2ViRHJpdmVyIGV4ZWN1dGFibGUgcGF0aDogJXMi
ICUgd2RfcGF0aCkKKyAgICAgICAgbG9nZ2VyLmRlYnVnKCJTYWZhcmkgZXhlY3V0YWJsZSBwYXRo
OiAlcyIgJSBzZWxmLnNhZmFyaV9wYXRoKQorCisgICAgICAgIHNlbGYua2lsbF9zYWZhcmkgPSBr
aWxsX3NhZmFyaQorCisgICAgZGVmIF9maW5kQXNzb2NpYXRlZFNhZmFyaUV4ZWN1dGFibGUoc2Vs
Ziwgd2RfcGF0aCk6CisgICAgICAgIGJ1bmRsZV9wYXRocyA9IFsKKyAgICAgICAgICAgIG9zLnBh
dGguam9pbihvcy5wYXRoLmRpcm5hbWUod2RfcGF0aCksICIuLiIsICIuLiIpLCAgIyBidW5kbGVk
IFNhZmFyaSAoZS5nLiBTVFApCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJu
YW1lKHdkX3BhdGgpLCAiU2FmYXJpLmFwcCIpLCAgIyBsb2NhbCBTYWZhcmkgYnVpbGQKKyAgICAg
ICAgICAgICIvQXBwbGljYXRpb25zL1NhZmFyaS5hcHAiLCAgIyBzeXN0ZW0gU2FmYXJpCisgICAg
ICAgIF0KKworICAgICAgICBmb3IgYnVuZGxlX3BhdGggaW4gYnVuZGxlX3BhdGhzOgorICAgICAg
ICAgICAgaW5mb19wYXRoID0gb3MucGF0aC5qb2luKGJ1bmRsZV9wYXRoLCAiQ29udGVudHMiLCAi
SW5mby5wbGlzdCIpCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoaW5mb19wYXRo
KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICB3aXRoIG9wZW4oaW5m
b19wYXRoLCAicmIiKSBhcyBmcDoKKyAgICAgICAgICAgICAgICBpbmZvID0gcGxpc3RsaWIubG9h
ZChmcCkKKworICAgICAgICAgICAgIyBjaGVjayB3ZSBoYXZlIGEgU2FmYXJpIGZhbWlseSBidW5k
bGUKKyAgICAgICAgICAgIGlmICJDRkJ1bmRsZUlkZW50aWZpZXIiIG5vdCBpbiBpbmZvOgorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZGVudCA9IGluZm9bIkNGQnVuZGxl
SWRlbnRpZmllciJdCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpZGVudCwgc3RyKSBv
ciBub3QgaWRlbnQuc3RhcnRzd2l0aCgiY29tLmFwcGxlLlNhZmFyaSIpOgorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICMgZ2V0IHRoZSBleGVjdXRhYmxlIG5hbWUKKyAg
ICAgICAgICAgIGlmICJDRkJ1bmRsZUV4ZWN1dGFibGUiIG5vdCBpbiBpbmZvOgorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBleGUgPSBpbmZvWyJDRkJ1bmRsZUV4ZWN1dGFi
bGUiXQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZXhlLCBzdHIpOgorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGV4ZV9wYXRoID0gb3MucGF0aC5qb2luKGJ1
bmRsZV9wYXRoLCAiQ29udGVudHMiLCAiTWFjT1MiLCBleGUpCisgICAgICAgICAgICBpZiBub3Qg
b3MucGF0aC5pc2ZpbGUoZXhlX3BhdGgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAg
ICAgICAgICAgIHJldHVybiBleGVfcGF0aAogCiAgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdz
KToKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCkBAIC03NCw2ICsxMjYs
MjAgQEAgY2xhc3MgU2FmYXJpQnJvd3NlcihCcm93c2VyKToKICAgICBkZWYgc3RvcChzZWxmLCBm
b3JjZT1GYWxzZSk6CiAgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCiAKKyAg
ICAgICAgaWYgc2VsZi5raWxsX3NhZmFyaToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVn
KCJHb2luZyB0byBzdG9wIFNhZmFyaSIpCisgICAgICAgICAgICBmb3IgcHJvYyBpbiBwc3V0aWwu
cHJvY2Vzc19pdGVyKGF0dHJzPVsiZXhlIl0pOgorICAgICAgICAgICAgICAgIGlmIHByb2MuaW5m
b1siZXhlIl0gaXMgbm90IE5vbmUgYW5kIG9zLnBhdGguc2FtZWZpbGUocHJvYy5pbmZvWyJleGUi
XSwgc2VsZi5zYWZhcmlfcGF0aCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKCJTdG9wcGluZyBTYWZhcmkgJXMiICUgcHJvYy5waWQpCisgICAgICAgICAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2MudGVybWluYXRlKCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLndh
aXQoMTApCisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgcHN1dGlsLlRpbWVvdXRFeHBp
cmVkOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Mua2lsbCgpCisgICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdCBwc3V0aWwuTm9TdWNoUHJvY2VzczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc3MKKwogICAgIGRlZiBwaWQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNl
cnZlci5waWQKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQpp
bmRleCBjNTdhYzk0MmVkNGUuLjQ5MTMxOTkxNzU5OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Uu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKQEAgLTEyLDcgKzEyLDcgQEAgaW1wb3J0IHRpbWUKIAog
aW1wb3J0IHJlcXVlc3RzCiAKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3Ry
aW5nSU8KK2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dz
ZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90
aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKQEAgLTk1LDE2ICs5NSwxNSBAQCBkZWYg
Y2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAic2F1Y2Vfa2V5
IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25m
aWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgc2F1Y2VfY29uZmlnID0gZ2V0X3Nh
dWNlX2NvbmZpZygqKmt3YXJncykKIAogICAgIHJldHVybiB7InNhdWNlX2NvbmZpZyI6IHNhdWNl
X2NvbmZpZ30KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZp
ZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9n
Z2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKipr
d2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKIAogICAgIGV4
ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBnZXRfY2FwYWJpbGl0aWVzKCoqa3dhcmdz
KQogCkBAIC0yMjgsNyArMjI3LDcgQEAgY2xhc3MgU2F1Y2VFeGNlcHRpb24oRXhjZXB0aW9uKToK
IGNsYXNzIFNhdWNlQnJvd3NlcihCcm93c2VyKToKICAgICBpbml0X3RpbWVvdXQgPSAzMDAKIAot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHNhdWNlX2NvbmZpZyk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgc2F1Y2VfY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgIEJy
b3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLnNhdWNlX2NvbmZpZyA9
IHNhdWNlX2NvbmZpZwogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZv
LnB5CmluZGV4IGI5NDc2NTQwYWM3Yy4uMTc5MWMxZGEyNzA2IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9z
ZXJ2by5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQpAQCAtMzMsNyArMzMsNyBAQCBkZWYgY2hlY2tf
YXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikKIAogCi1k
ZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dh
cmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJpbmFyeSI6IGt3
YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZv
Il0sCkBAIC00MywxMCArNDMsOSBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICB9CiAKIAotZGVmIGV4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25t
ZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAg
cnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncykKKyAgICBydiA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9l
bnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgcnZbInBhdXNlX2FmdGVy
X3Rlc3QiXSA9IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdCiAgICAgaWYgdGVzdF90eXBlID09
ICJ3ZHNwZWMiOgogICAgICAgICBydlsiY2FwYWJpbGl0aWVzIl0gPSB7fQpAQCAtNzEsNyArNzAs
NyBAQCBkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToKIAogY2xhc3MgU2Vydm9Ccm93c2VyKE51bGxC
cm93c2VyKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGRlYnVnX2lu
Zm89Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwKLSAgICAgICAgICAgICAgICAgdXNlcl9zdHlsZXNo
ZWV0cz1Ob25lLCBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUpOgorICAgICAgICAgICAgICAgICB1
c2VyX3N0eWxlc2hlZXRzPU5vbmUsIGNhX2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwgKiprd2FyZ3Mp
OgogICAgICAgICBOdWxsQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAgICAgIHNl
bGYuYmluYXJ5ID0gYmluYXJ5CiAgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkK
aW5kZXggNDM3OTRlNDE3MDZkLi45YTZhMWE0MDJiMzYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZv
ZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5CkBAIC02LDEyICs2LDE2IEBAIGZy
b20gbW96cHJvY2VzcyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKIAogZnJvbSB0b29scy5zZXJ2ZS5z
ZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19maWxlCiAKLWZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIs
IHJlcXVpcmVfYXJnLCBnZXRfZnJlZV9wb3J0LCBicm93c2VyX2NvbW1hbmQsIEV4ZWN1dG9yQnJv
d3NlcgorZnJvbSAuYmFzZSBpbXBvcnQgKEJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgRXhl
Y3V0b3JCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIE91dHB1dEhhbmRsZXIsCisgICAgICAg
ICAgICAgICAgICAgcmVxdWlyZV9hcmcsCisgICAgICAgICAgICAgICAgICAgZ2V0X2ZyZWVfcG9y
dCwKKyAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQpCiBmcm9tIC5iYXNlIGltcG9y
dCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3Jz
IGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3JzZXJ2b2RyaXZlciBpbXBvcnQgKFNlcnZvV2ViRHJpdmVyVGVzdGhh
cm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6
IEY0MDEKLWZyb20gLi5wcm9jZXNzIGltcG9ydCBjYXN0X2VudgogCiBoZXJlID0gb3MucGF0aC5k
aXJuYW1lKF9fZmlsZV9fKQogCkBAIC0zNiw3ICs0MCw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2Vy
X2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICByZXR1cm4gewogICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJiaW5h
cnkiXSwKICAgICAgICAgImJpbmFyeV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJdLApAQCAt
NDcsOSArNTEsOCBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRh
LCBjb25maWcsICoqa3dhcmdzKToKICAgICB9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dh
cmdzKToKLSAgICBydiA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2Nv
bmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsICoqa3dhcmdzKQorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlw
ZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIHJ2ID0g
YmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5m
b19kYXRhLCAqKmt3YXJncykKICAgICByZXR1cm4gcnYKIAogCkBAIC03Nyw3ICs4MCw4IEBAIGNs
YXNzIFNlcnZvV2ViRHJpdmVyQnJvd3NlcihCcm93c2VyKToKICAgICBpbml0X3RpbWVvdXQgPSAz
MDAgICMgTGFyZ2UgdGltZW91dCBmb3IgY2FzZXMgd2hlcmUgd2UncmUgYm9vdGluZyBhbiBBbmRy
b2lkIGVtdWxhdG9yCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGRl
YnVnX2luZm89Tm9uZSwgd2ViZHJpdmVyX2hvc3Q9IjEyNy4wLjAuMSIsCi0gICAgICAgICAgICAg
ICAgIHNlcnZlcl9jb25maWc9Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwgdXNlcl9zdHlsZXNoZWV0
cz1Ob25lLCBoZWFkbGVzcz1Ob25lKToKKyAgICAgICAgICAgICAgICAgc2VydmVyX2NvbmZpZz1O
b25lLCBiaW5hcnlfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICB1c2VyX3N0eWxlc2hlZXRz
PU5vbmUsIGhlYWRsZXNzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgQnJvd3Nlci5fX2luaXRf
XyhzZWxmLCBsb2dnZXIpCiAgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CiAgICAgICAgIHNl
bGYuYmluYXJ5X2FyZ3MgPSBiaW5hcnlfYXJncyBvciBbXQpAQCAtOTEsNiArOTUsNyBAQCBjbGFz
cyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYudXNlcl9zdHls
ZXNoZWV0cyA9IHVzZXJfc3R5bGVzaGVldHMgaWYgdXNlcl9zdHlsZXNoZWV0cyBlbHNlIFtdCiAg
ICAgICAgIHNlbGYuaGVhZGxlc3MgPSBoZWFkbGVzcyBpZiBoZWFkbGVzcyBlbHNlIEZhbHNlCiAg
ICAgICAgIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCA9IHNlcnZlcl9jb25maWcuc3NsX2NvbmZp
Z1siY2FfY2VydF9wYXRoIl0KKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlciA9IE5vbmUKIAog
ICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYud2ViZHJpdmVyX3Bv
cnQgPSBnZXRfZnJlZV9wb3J0KCkKQEAgLTEyOSwxMyArMTM0LDE2IEBAIGNsYXNzIFNlcnZvV2Vi
RHJpdmVyQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgc2VsZi5jb21tYW5kID0gZGVidWdfYXJn
cyArIHNlbGYuY29tbWFuZAogCiAgICAgICAgIGlmIG5vdCBzZWxmLmRlYnVnX2luZm8gb3Igbm90
IHNlbGYuZGVidWdfaW5mby5pbnRlcmFjdGl2ZToKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X2hh
bmRsZXIgPSBPdXRwdXRIYW5kbGVyKHNlbGYubG9nZ2VyLCBzZWxmLmNvbW1hbmQpCiAgICAgICAg
ICAgICBzZWxmLnByb2MgPSBQcm9jZXNzSGFuZGxlcihzZWxmLmNvbW1hbmQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1bc2VsZi5vbl9v
dXRwdXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWNhc3Rf
ZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFs
c2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKKyAgICAgICAgICAgIHNlbGYub3V0cHV0
X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChzZWxmLnByb2MucGlkKQorICAgICAgICAgICAg
c2VsZi5vdXRwdXRfaGFuZGxlci5zdGFydCgpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWNhc3RfZW52KGVu
dikpCisgICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFu
ZCwgZW52PWVudikKIAogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU2Vydm8gU3RhcnRlZCIp
CiAKQEAgLTE0Nyw2ICsxNTUsOCBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nl
cik6CiAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAjIFRoaXMg
Y2FuIGhhcHBlbiBvbiBXaW5kb3dzIGlmIHRoZSBwcm9jZXNzIGlzIGFscmVhZHkgZGVhZAogICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgaWYgc2VsZi5vdXRwdXRfaGFuZGxlciBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdG9w
KCkKIAogICAgIGRlZiBwaWQoc2VsZik6CiAgICAgICAgIGlmIHNlbGYucHJvYyBpcyBOb25lOgpA
QCAtMTU3LDEyICsxNjcsNiBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6
CiAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICAgICAgICAgIHJldHVybiBOb25l
CiAKLSAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgotICAgICAgICAiIiJXcml0ZSBhIGxp
bmUgb2Ygb3V0cHV0IGZyb20gdGhlIHByb2Nlc3MgdG8gdGhlIGxvZyIiIgotICAgICAgICBzZWxm
LmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5jb21tYW5kKSkK
LQogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYucHJvYy5wb2xs
KCkgaXMgTm9uZQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQu
cHkKaW5kZXggZGE5M2NmMTY0Mzk5Li5hZDI0NzcxYWM5Y2UgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dl
YmtpdC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKQEAgLTEsNSArMSw1IEBACiBmcm9tIC5iYXNl
IGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNl
IGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyLCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCAg
IyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3RpbWVvdXRf
bXVsdGlwbGllciwgY2VydGlmaWNhdGVfZG9tYWluX2xpc3QgICMgbm9xYTogRjQwMQogZnJvbSAu
LmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdz
CiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQw
MQpAQCAtMTAsNyArMTAsOCBAQCBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViS2l0
RHJpdmVyU2VydmVyCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAid2Via2l0IiwKICAg
ICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAg
ICAgICJicm93c2VyIjogIldlYktpdEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6IHtOb25lOiAiV2ViS2l0QnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dh
cmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0
ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIs
CkBAIC0yOSw3ICszMCw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJl
X2FyZyhrd2FyZ3MsICJ3ZWJraXRfcG9ydCIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3Rf
dHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2Fy
Z3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgog
ICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICAgICAid2Vi
ZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAgICAgICAgICAg
IndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KQEAgLTU0LDEy
ICs1NSwxMSBAQCBkZWYgY2FwYWJpbGl0aWVzX2Zvcl9wb3J0KHNlcnZlcl9jb25maWcsICoqa3dh
cmdzKToKICAgICByZXR1cm4ge30KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwg
c2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRv
cl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2Rh
dGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3Mg
PSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJn
cykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKLSAgICBl
eGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzX2Zvcl9wb3J0KHNl
cnZlcl9jb25maWcsCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFi
aWxpdGllc19mb3JfcG9ydCh0ZXN0X2Vudmlyb25tZW50LmNvbmZpZywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQog
ICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIApAQCAtODIsNyArODIsNyBAQCBjbGFzcyBXZWJL
aXRCcm93c2VyKEJyb3dzZXIpOgogICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCi0gICAgICAgICAgICAgICAgIHdl
YmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25l
LCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAg
ICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLnNlcnZlciA9IFdlYktpdERy
aXZlclNlcnZlcihzZWxmLmxvZ2dlciwgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWlu
aWJyb3dzZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43YTAy
YWQxNDkwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIu
cHkKQEAgLTAsMCArMSw4NCBAQAorZnJvbSAuYmFzZSBpbXBvcnQgKE51bGxCcm93c2VyLCAgIyBu
b3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGVfZG9tYWluX2xpc3QsCisg
ICAgICAgICAgICAgICAgICAgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgICMgbm9xYTogRjQwMQor
ICAgICAgICAgICAgICAgICAgIG1heWJlX2FkZF9hcmdzKQorZnJvbSAud2Via2l0IGltcG9ydCBX
ZWJLaXRCcm93c2VyCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMg
YmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIg
aW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4
ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViRHJpdmVyQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20g
Li5leGVjdXRvcnMuZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1
dG9yICAjIG5vcWE6IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJ3ZWJraXRn
dGtfbWluaWJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19h
cmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIldlYktpdEdUS01pbmlC
cm93c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJv
d3NlciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2Fy
Z3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRy
aXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyYXNodGVzdCI6ICJXZWJEcml2ZXJDcmFzaHRl
c3RFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1
dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMi
LAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAg
ICAgICAgICAgICAicnVuX2luZm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAg
ICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9
CisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHBhc3MKKworCitkZWYgYnJvd3Nl
cl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2Fy
Z3MpOgorICAgICMgV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F
L2xpYnNvdXAvaXNzdWVzLzE3MgorICAgIHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzID0gWyItLWhv
c3Q9MTI3LjAuMC4xIl0KKyAgICB3ZWJkcml2ZXJfYXJncyA9IG1heWJlX2FkZF9hcmdzKHdlYmRy
aXZlcl9yZXF1aXJlZF9hcmdzLCBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpKQorICAgIHJl
dHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVy
X2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRy
aXZlcl9hcmdzIjogd2ViZHJpdmVyX2FyZ3N9CisKKworZGVmIGNhcGFiaWxpdGllcyhzZXJ2ZXJf
Y29uZmlnLCAqKmt3YXJncyk6CisgICAgYnJvd3Nlcl9yZXF1aXJlZF9hcmdzID0gWyItLWF1dG9t
YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWphdmFzY3JpcHQtY2FuLW9w
ZW4td2luZG93cy1hdXRvbWF0aWNhbGx5PXRydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICItLWVuYWJsZS14c3MtYXVkaXRvcj1mYWxzZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi0tZW5hYmxlLW1lZGlhLWNhcGFiaWxpdGllcz10cnVlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiLS1lbmFibGUtZW5jcnlwdGVkLW1lZGlhPXRydWUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1tZWRpYS1zdHJlYW09dHJ1ZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLW1vY2stY2FwdHVyZS1kZXZpY2VzPXRydWUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS13ZWJhdWRpbz10cnVlIl0K
KyAgICBhcmdzID0ga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBbXSkKKyAgICBhcmdzID0gbWF5
YmVfYWRkX2FyZ3MoYnJvd3Nlcl9yZXF1aXJlZF9hcmdzLCBhcmdzKQorICAgIHJldHVybiB7Cisg
ICAgICAgICJicm93c2VyTmFtZSI6ICJNaW5pQnJvd3NlciIsCisgICAgICAgICJ3ZWJraXRndGs6
YnJvd3Nlck9wdGlvbnMiOiB7CisgICAgICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnki
XSwKKyAgICAgICAgICAgICJhcmdzIjogYXJncywKKyAgICAgICAgICAgICJjZXJ0aWZpY2F0ZXMi
OiBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChzZXJ2ZXJfY29uZmlnLmRvbWFpbnNfc2V0LCBrd2Fy
Z3NbImhvc3RfY2VydF9wYXRoIl0pfX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwg
dGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAorICAgICAgICAgICAg
ICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJn
cykKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKKyAgICBl
eGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzKHRlc3RfZW52aXJv
bm1lbnQuY29uZmlnLCAqKmt3YXJncykKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKwor
ZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0
aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3Mp
OgorICAgIHJldHVybiB7IndlYmtpdF9wb3J0IjogImd0ayJ9CisKKworY2xhc3MgV2ViS2l0R1RL
TWluaUJyb3dzZXIoV2ViS2l0QnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
d2ViZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBXZWJLaXRCcm93c2VyLl9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
Y29uZmlnLnB5CmluZGV4IGQ0NmJlYjhlNzFkYi4uOGE5YmRiZjczMGQ2IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9jb25m
aWcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvY29uZmlnLnB5CkBAIC0xLDExICsxLDEyIEBACi1mcm9tIHNpeC5tb3Zlcy5jb25m
aWdwYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQYXJzZXIKK2Zyb20gY29uZmlncGFyc2VyIGltcG9y
dCBDb25maWdQYXJzZXIKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgT3JkZXJlZERpY3QKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIERpY3QKIAogaGVyZSA9
IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAotY2xhc3MgQ29uZmlnRGljdChkaWN0KToKK2Ns
YXNzIENvbmZpZ0RpY3QoRGljdFtzdHIsIEFueV0pOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBi
YXNlX3BhdGgsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFz
ZV9wYXRoCiAgICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQpAQCAt
MjAsNyArMjEsNyBAQCBjbGFzcyBDb25maWdEaWN0KGRpY3QpOgogZGVmIHJlYWQoY29uZmlnX3Bh
dGgpOgogICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKGNvbmZpZ19wYXRoKQogICAg
IGNvbmZpZ19yb290ID0gb3MucGF0aC5kaXJuYW1lKGNvbmZpZ19wYXRoKQotICAgIHBhcnNlciA9
IFNhZmVDb25maWdQYXJzZXIoKQorICAgIHBhcnNlciA9IENvbmZpZ1BhcnNlcigpCiAgICAgc3Vj
Y2VzcyA9IHBhcnNlci5yZWFkKGNvbmZpZ19wYXRoKQogICAgIGFzc2VydCBjb25maWdfcGF0aCBp
biBzdWNjZXNzLCBzdWNjZXNzCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQu
cHkKaW5kZXggMjUyN2QyNmQzOTFkLi4zZmU5NzE0NTZlZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Vudmlyb25tZW50LnB5CkBAIC0xLDE1ICsxLDE0IEBACiBpbXBvcnQganNvbgogaW1w
b3J0IG9zCi1pbXBvcnQgbXVsdGlwcm9jZXNzaW5nCiBpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc29j
a2V0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcwog
Ci1mcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1bHRfbG9nZ2VyLCBoYW5kbGVycywgcHJveHkK
K2Zyb20gbW96bG9nIGltcG9ydCBnZXRfZGVmYXVsdF9sb2dnZXIsIGhhbmRsZXJzCiAKLWZyb20g
LndwdGxvZ2dpbmcgaW1wb3J0IExvZ0xldmVsUmV3cml0ZXIKK2Zyb20gLiBpbXBvcnQgbXBjb250
ZXh0Citmcm9tIC53cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3JpdGVyLCBRdWV1ZUhhbmRs
ZXIsIExvZ1F1ZXVlVGhyZWFkCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiBy
ZXBvX3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwg
b3MucGFyZGlyLCBvcy5wYXJkaXIpKQpAQCAtNTAsMjQgKzQ5LDU4IEBAIGNsYXNzIFRlc3RFbnZp
cm9ubWVudEVycm9yKEV4Y2VwdGlvbik6CiAgICAgcGFzcwogCiAKK2RlZiBnZXRfc2VydmVyX2xv
Z2dlcigpOgorICAgIGxvZ2dlciA9IGdldF9kZWZhdWx0X2xvZ2dlcihjb21wb25lbnQ9IndwdHNl
cnZlIikKKyAgICBsb2dfZmlsdGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxGaWx0ZXIobGFtYmRhIHg6
IHgsICJpbmZvIikKKyAgICAjIERvd25ncmFkZSBlcnJvcnMgdG8gd2FybmluZ3MgZm9yIHRoZSBz
ZXJ2ZXIKKyAgICBsb2dfZmlsdGVyID0gTG9nTGV2ZWxSZXdyaXRlcihsb2dfZmlsdGVyLCBbImVy
cm9yIl0sICJ3YXJuaW5nIikKKyAgICBsb2dnZXIuY29tcG9uZW50X2ZpbHRlciA9IGxvZ19maWx0
ZXIKKyAgICByZXR1cm4gbG9nZ2VyCisKKworY2xhc3MgUHJveHlMb2dnaW5nQ29udGV4dDoKKyAg
ICAiIiJDb250ZXh0IG1hbmFnZXIgb2JqZWN0IHRoYXQgaGFuZGxlcyBzZXR1cCBhbmQgdGVhcmRv
d24gb2YgYSBsb2cgcXVldWUKKyAgICBmb3IgaGFuZGxpbmcgbG9nZ2luZyBtZXNzYWdlcyBmcm9t
IHdwdHNlcnZlLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6CisgICAgICAg
IG1wX2NvbnRleHQgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICBzZWxmLmxvZ19x
dWV1ZSA9IG1wX2NvbnRleHQuUXVldWUoKQorICAgICAgICBzZWxmLmxvZ2dpbmdfdGhyZWFkID0g
TG9nUXVldWVUaHJlYWQoc2VsZi5sb2dfcXVldWUsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5sb2dn
ZXJfaGFuZGxlciA9IFF1ZXVlSGFuZGxlcihzZWxmLmxvZ19xdWV1ZSkKKworICAgIGRlZiBfX2Vu
dGVyX18oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuc3RhcnQoKQorICAgICAg
ICByZXR1cm4gc2VsZi5sb2dnZXJfaGFuZGxlcgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICph
cmdzKToKKyAgICAgICAgc2VsZi5sb2dfcXVldWUucHV0KE5vbmUpCisgICAgICAgICMgV2FpdCBm
b3IgdGhyZWFkIHRvIHNodXQgZG93biBidXQgbm90IGZvciB0b28gbG9uZyBzaW5jZSBpdCdzIGEg
ZGFlbW9uCisgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuam9pbigxKQorCisKIGNsYXNzIFRl
c3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IG93bnMg
dGhlIHRlc3QgZW52aXJvbm1lbnQgaS5lLiB0aGUgaHR0cCBhbmQKICAgICB3ZWJzb2NrZXRzIHNl
cnZlcnMiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywgdGVzdGhhcm5lc3Nf
dGltZW91dF9tdWx0aXBsZXIsCi0gICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rlc3QsIGRl
YnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCisgICAgICAgICAgICAg
ICAgIHBhdXNlX2FmdGVyX3Rlc3QsIGRlYnVnX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlvbnMsIHNz
bF9jb25maWcsIGVudl9leHRyYXMsCiAgICAgICAgICAgICAgICAgIGVuYWJsZV9xdWljPUZhbHNl
LCBtb2pvanNfcGF0aD1Ob25lKToKKwogICAgICAgICBzZWxmLnRlc3RfcGF0aHMgPSB0ZXN0X3Bh
dGhzCiAgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQogICAgICAgICBzZWxmLmNvbmZpZ19jdHgg
PSBOb25lCiAgICAgICAgIHNlbGYuY29uZmlnID0gTm9uZQorICAgICAgICBzZWxmLnNlcnZlcl9s
b2dnZXIgPSBnZXRfc2VydmVyX2xvZ2dlcigpCisgICAgICAgIHNlbGYuc2VydmVyX2xvZ2dpbmdf
Y3R4ID0gUHJveHlMb2dnaW5nQ29udGV4dChzZWxmLnNlcnZlcl9sb2dnZXIpCiAgICAgICAgIHNl
bGYudGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIgPSB0ZXN0aGFybmVzc190aW1lb3V0X211
bHRpcGxlcgogICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBwYXVzZV9hZnRlcl90ZXN0
CisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKICAgICAgICAgc2VsZi50ZXN0
X3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3AoInRlc3Rfc2VydmVyX3BvcnQiLCBUcnVlKQogICAg
ICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCiAgICAgICAgIHNlbGYub3B0aW9ucyA9
IG9wdGlvbnMgaWYgb3B0aW9ucyBpcyBub3QgTm9uZSBlbHNlIHt9CiAKLSAgICAgICAgc2VsZi5j
YWNoZV9tYW5hZ2VyID0gbXVsdGlwcm9jZXNzaW5nLk1hbmFnZXIoKQotICAgICAgICBzZWxmLnN0
YXNoID0gc2VydmUuc3Rhc2guU3Rhc2hTZXJ2ZXIoKQorICAgICAgICBtcF9jb250ZXh0ID0gbXBj
b250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyID0gbXBfY29u
dGV4dC5NYW5hZ2VyKCkKKyAgICAgICAgc2VsZi5zdGFzaCA9IHNlcnZlLnN0YXNoLlN0YXNoU2Vy
dmVyKG1wX2NvbnRleHQ9bXBfY29udGV4dCkKICAgICAgICAgc2VsZi5lbnZfZXh0cmFzID0gZW52
X2V4dHJhcwogICAgICAgICBzZWxmLmVudl9leHRyYXNfY21zID0gTm9uZQogICAgICAgICBzZWxm
LnNzbF9jb25maWcgPSBzc2xfY29uZmlnCkBAIC03NSw2ICsxMDgsNyBAQCBjbGFzcyBUZXN0RW52
aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgc2VsZi5tb2pvanNfcGF0aCA9IG1vam9qc19wYXRo
CiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBzZXJ2ZXJfbG9nX2hhbmRsZXIg
PSBzZWxmLnNlcnZlcl9sb2dnaW5nX2N0eC5fX2VudGVyX18oKQogICAgICAgICBzZWxmLmNvbmZp
Z19jdHggPSBzZWxmLmJ1aWxkX2NvbmZpZygpCiAKICAgICAgICAgc2VsZi5jb25maWcgPSBzZWxm
LmNvbmZpZ19jdHguX19lbnRlcl9fKCkKQEAgLTgyLDggKzExNiw2IEBAIGNsYXNzIFRlc3RFbnZp
cm9ubWVudChvYmplY3QpOgogICAgICAgICBzZWxmLnN0YXNoLl9fZW50ZXJfXygpCiAgICAgICAg
IHNlbGYuY2FjaGVfbWFuYWdlci5fX2VudGVyX18oKQogCi0gICAgICAgIHNlbGYuc2V0dXBfc2Vy
dmVyX2xvZ2dpbmcoKQotCiAgICAgICAgIGFzc2VydCBzZWxmLmVudl9leHRyYXNfY21zIGlzIE5v
bmUsICgKICAgICAgICAgICAgICJBIFRlc3RFbnZpcm9ubWVudCBvYmplY3QgY2Fubm90IGJlIG5l
c3RlZCIpCiAKQEAgLTk0LDggKzEyNiwxMSBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0
KToKICAgICAgICAgICAgIGNtLl9fZW50ZXJfXygpCiAgICAgICAgICAgICBzZWxmLmVudl9leHRy
YXNfY21zLmFwcGVuZChjbSkKIAotICAgICAgICBzZWxmLnNlcnZlcnMgPSBzZXJ2ZS5zdGFydChz
ZWxmLmNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5nZXRf
cm91dGVzKCkpCisgICAgICAgIHNlbGYuc2VydmVycyA9IHNlcnZlLnN0YXJ0KHNlbGYuc2VydmVy
X2xvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25maWcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3JvdXRlcygpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcF9jb250ZXh0PW1wY29udGV4dC5n
ZXRfY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dfaGFu
ZGxlcnM9W3NlcnZlcl9sb2dfaGFuZGxlcl0pCiAKICAgICAgICAgaWYgc2VsZi5vcHRpb25zLmdl
dCgic3VwcG9ydHNfZGVidWdnZXIiKSBhbmQgc2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxmLmRlYnVn
X2luZm8uaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICBzZWxmLmlnbm9yZV9pbnRlcnJ1cHRzKCkK
QEAgLTEwNCw5ICsxMzksOSBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICBk
ZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190Yik6CiAgICAgICAgIHNl
bGYucHJvY2Vzc19pbnRlcnJ1cHRzKCkKIAotICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJzIGlu
IGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJzIGlu
IHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHBvcnQsIHNlcnZlciBpbiBz
ZXJ2ZXJzOgotICAgICAgICAgICAgICAgIHNlcnZlci5raWxsKCkKKyAgICAgICAgICAgICAgICBz
ZXJ2ZXIuc3RvcCgpCiAgICAgICAgIGZvciBjbSBpbiBzZWxmLmVudl9leHRyYXNfY21zOgogICAg
ICAgICAgICAgY20uX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikKIApAQCAtMTE1
LDYgKzE1MCw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICBzZWxm
LmNhY2hlX21hbmFnZXIuX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikKICAgICAg
ICAgc2VsZi5zdGFzaC5fX2V4aXRfXygpCiAgICAgICAgIHNlbGYuY29uZmlnX2N0eC5fX2V4aXRf
XyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQorICAgICAgICBzZWxmLnNlcnZlcl9sb2dnaW5n
X2N0eC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQogCiAgICAgZGVmIGlnbm9y
ZV9pbnRlcnJ1cHRzKHNlbGYpOgogICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQs
IHNpZ25hbC5TSUdfSUdOKQpAQCAtMTI1LDExICsxNjEsMTUgQEAgY2xhc3MgVGVzdEVudmlyb25t
ZW50KG9iamVjdCk6CiAgICAgZGVmIGJ1aWxkX2NvbmZpZyhzZWxmKToKICAgICAgICAgb3ZlcnJp
ZGVfcGF0aCA9IG9zLnBhdGguam9pbihzZXJ2ZV9wYXRoKHNlbGYudGVzdF9wYXRocyksICJjb25m
aWcuanNvbiIpCiAKLSAgICAgICAgY29uZmlnID0gc2VydmUuQ29uZmlnQnVpbGRlcigpCisgICAg
ICAgIGNvbmZpZyA9IHNlcnZlLkNvbmZpZ0J1aWxkZXIoc2VsZi5zZXJ2ZXJfbG9nZ2VyKQogCiAg
ICAgICAgIHBvcnRzID0gewogICAgICAgICAgICAgImh0dHAiOiBbODAwMCwgODAwMV0sCisgICAg
ICAgICAgICAiaHR0cC1wcml2YXRlIjogWzgwMDJdLAorICAgICAgICAgICAgImh0dHAtcHVibGlj
IjogWzgwMDNdLAogICAgICAgICAgICAgImh0dHBzIjogWzg0NDMsIDg0NDRdLAorICAgICAgICAg
ICAgImh0dHBzLXByaXZhdGUiOiBbODQ0NV0sCisgICAgICAgICAgICAiaHR0cHMtcHVibGljIjog
Wzg0NDZdLAogICAgICAgICAgICAgIndzIjogWzg4ODhdLAogICAgICAgICAgICAgIndzcyI6IFs4
ODg5XSwKICAgICAgICAgICAgICJoMiI6IFs5MDAwXSwKQEAgLTE2MCwyNCArMjAwLDYgQEAgY2xh
c3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIGNvbmZpZwogCi0g
ICAgZGVmIHNldHVwX3NlcnZlcl9sb2dnaW5nKHNlbGYpOgotICAgICAgICBzZXJ2ZXJfbG9nZ2Vy
ID0gZ2V0X2RlZmF1bHRfbG9nZ2VyKGNvbXBvbmVudD0id3B0c2VydmUiKQotICAgICAgICBhc3Nl
cnQgc2VydmVyX2xvZ2dlciBpcyBub3QgTm9uZQotICAgICAgICBsb2dfZmlsdGVyID0gaGFuZGxl
cnMuTG9nTGV2ZWxGaWx0ZXIobGFtYmRhIHg6IHgsICJpbmZvIikKLSAgICAgICAgIyBEb3duZ3Jh
ZGUgZXJyb3JzIHRvIHdhcm5pbmdzIGZvciB0aGUgc2VydmVyCi0gICAgICAgIGxvZ19maWx0ZXIg
PSBMb2dMZXZlbFJld3JpdGVyKGxvZ19maWx0ZXIsIFsiZXJyb3IiXSwgIndhcm5pbmciKQotICAg
ICAgICBzZXJ2ZXJfbG9nZ2VyLmNvbXBvbmVudF9maWx0ZXIgPSBsb2dfZmlsdGVyCi0KLSAgICAg
ICAgc2VydmVyX2xvZ2dlciA9IHByb3h5LlF1ZXVlZFByb3h5TG9nZ2VyKHNlcnZlcl9sb2dnZXIp
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBTZXQgYXMgdGhlIGRlZmF1bHQgbG9nZ2Vy
IGZvciB3cHRzZXJ2ZQotICAgICAgICAgICAgc2VydmUuc2V0X2xvZ2dlcihzZXJ2ZXJfbG9nZ2Vy
KQotICAgICAgICAgICAgc2VydmUubG9nZ2VyID0gc2VydmVyX2xvZ2dlcgotICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgIyBUaGlzIGhhcHBlbnMgaWYgbG9nZ2luZyBoYXMg
YWxyZWFkeSBiZWVuIHNldCB1cCBmb3Igd3B0c2VydmUKLSAgICAgICAgICAgIHBhc3MKLQogICAg
IGRlZiBnZXRfcm91dGVzKHNlbGYpOgogICAgICAgICByb3V0ZV9idWlsZGVyID0gc2VydmUuUm91
dGVzQnVpbGRlcigpCiAKQEAgLTE5MSw3ICsyMTMsOCBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQo
b2JqZWN0KToKICAgICAgICAgICAgICAgICAoc2VsZi5vcHRpb25zLmdldCgidGVzdGhhcm5lc3Ny
ZXBvcnQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMiKSwKICAgICAgICAgICAgICAgICAgeyJvdXRw
dXQiOiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QsCiAgICAgICAgICAgICAgICAgICAidGltZW91dF9t
dWx0aXBsaWVyIjogc2VsZi50ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKLSAgICAgICAg
ICAgICAgICAgICJleHBsaWNpdF90aW1lb3V0IjogInRydWUiIGlmIHNlbGYuZGVidWdfaW5mbyBp
cyBub3QgTm9uZSBlbHNlICJmYWxzZSJ9LAorICAgICAgICAgICAgICAgICAgImV4cGxpY2l0X3Rp
bWVvdXQiOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lIGVsc2UgImZhbHNl
IiwKKyAgICAgICAgICAgICAgICAgICJkZWJ1ZyI6ICJ0cnVlIiBpZiBzZWxmLmRlYnVnX3Rlc3Qg
ZWxzZSAiZmFsc2UifSwKICAgICAgICAgICAgICAgICAgInRleHQvamF2YXNjcmlwdDtjaGFyc2V0
PXV0ZjgiLAogICAgICAgICAgICAgICAgICAiL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyIpXToKICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbiho
ZXJlLCBwYXRoKSkKQEAgLTIwOSw3ICsyMzIsNyBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2Jq
ZWN0KToKICAgICAgICAgcm91dGVfYnVpbGRlci5hZGRfaGFuZGxlcigiR0VUIiwgIi9yZXNvdXJj
ZXMvdGVzdGRyaXZlci5qcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nSGFuZGxlcihkYXRhLCAidGV4dC9qYXZhc2NyaXB0IikpCiAKLSAgICAgICAgZm9yIHVybF9i
YXNlLCBwYXRocyBpbiBpdGVyaXRlbXMoc2VsZi50ZXN0X3BhdGhzKToKKyAgICAgICAgZm9yIHVy
bF9iYXNlLCBwYXRocyBpbiBzZWxmLnRlc3RfcGF0aHMuaXRlbXMoKToKICAgICAgICAgICAgIGlm
IHVybF9iYXNlID09ICIvIjoKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAg
cm91dGVfYnVpbGRlci5hZGRfbW91bnRfcG9pbnQodXJsX2Jhc2UsIHBhdGhzWyJ0ZXN0c19wYXRo
Il0pCkBAIC0yNDEsMTMgKzI2NCwxMyBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToK
ICAgICAgICAgZmFpbGVkID0gW10KICAgICAgICAgcGVuZGluZyA9IFtdCiAgICAgICAgIGhvc3Qg
PSBzZWxmLmNvbmZpZ1sic2VydmVyX2hvc3QiXQotICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJz
IGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJz
IGluIHNlbGYuc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHBvcnQsIHNlcnZlciBp
biBzZXJ2ZXJzOgogICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXIuaXNfYWxpdmUoKToKICAg
ICAgICAgICAgICAgICAgICAgZmFpbGVkLmFwcGVuZCgoc2NoZW1lLCBwb3J0KSkKIAogICAgICAg
ICBpZiBub3QgZmFpbGVkIGFuZCBzZWxmLnRlc3Rfc2VydmVyX3BvcnQ6Ci0gICAgICAgICAgICBm
b3Igc2NoZW1lLCBzZXJ2ZXJzIGluIGl0ZXJpdGVtcyhzZWxmLnNlcnZlcnMpOgorICAgICAgICAg
ICAgZm9yIHNjaGVtZSwgc2VydmVycyBpbiBzZWxmLnNlcnZlcnMuaXRlbXMoKToKICAgICAgICAg
ICAgICAgICAjIFRPRE8oSGV4Y2xlcyk6IEZpbmQgYSB3YXkgdG8gdGVzdCBRVUlDJ3MgVURQIHBv
cnQuCiAgICAgICAgICAgICAgICAgaWYgc2NoZW1lID09ICJxdWljLXRyYW5zcG9ydCI6CiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0yNTYsNyArMjc5LDcgQEAgY2xhc3MgVGVzdEVu
dmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHMuc2V0dGltZW91dCgwLjEp
CiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgIHMuY29u
bmVjdCgoaG9zdCwgcG9ydCkpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJy
b3I6CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAg
ICAgICAgICAgcGVuZGluZy5hcHBlbmQoKGhvc3QsIHBvcnQpKQogICAgICAgICAgICAgICAgICAg
ICBmaW5hbGx5OgogICAgICAgICAgICAgICAgICAgICAgICAgcy5jbG9zZSgpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvYWN0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5CmluZGV4IGIxMWQzMGJiOTRh
YS4uOTYzZWQzMzdmZGU0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvYWN0aW9ucy5weQpAQCAtMTMsNiArMTMsMTggQEAgY2xhc3MgQ2xpY2tBY3Rpb24ob2JqZWN0
KToKICAgICAgICAgc2VsZi5wcm90b2NvbC5jbGljay5lbGVtZW50KGVsZW1lbnQpCiAKIAorY2xh
c3MgRGVsZXRlQWxsQ29va2llc0FjdGlvbihvYmplY3QpOgorICAgIG5hbWUgPSAiZGVsZXRlX2Fs
bF9jb29raWVzIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wpOgor
ICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJv
dG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAgICAgc2VsZi5wcm90b2Nv
bC5jb29raWVzLmRlbGV0ZV9hbGxfY29va2llcygpCisKKwogY2xhc3MgU2VuZEtleXNBY3Rpb24o
b2JqZWN0KToKICAgICBuYW1lID0gInNlbmRfa2V5cyIKIApAQCAtMTcxLDYgKzE4Myw3IEBAIGNs
YXNzIFNldFVzZXJWZXJpZmllZEFjdGlvbihvYmplY3QpOgogCiAKIGFjdGlvbnMgPSBbQ2xpY2tB
Y3Rpb24sCisgICAgICAgICAgIERlbGV0ZUFsbENvb2tpZXNBY3Rpb24sCiAgICAgICAgICAgIFNl
bmRLZXlzQWN0aW9uLAogICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZUFjdGlvbiwKICAgICAgICAg
ICAgR2VuZXJhdGVUZXN0UmVwb3J0QWN0aW9uLApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvYmFzZS5weQppbmRleCA0YzM4OTFjMWNiNjcuLmE4OGFiODJlNzhkMyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2Jhc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKQEAgLTgsMjkgKzgsMzAg
QEAgaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHNvY2tldAogaW1wb3J0IHN5cwogZnJvbSBhYmMg
aW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBl
Ci1mcm9tIHNpeC5tb3Zlcy5odHRwX2NsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KLWZyb20g
c2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJsc3BsaXQsIHVybHVuc3Bs
aXQKK2Zyb20gaHR0cC5jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9uCitmcm9tIHR5cGluZyBp
bXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIE9wdGlvbmFsLCBUdXBsZSwgVHlwZSwgVFlQ
RV9DSEVDS0lORworZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHNwbGl0LCB1
cmx1bnNwbGl0CiAKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCiBmcm9tIC5hY3Rpb25z
IGltcG9ydCBhY3Rpb25zCiBmcm9tIC5wcm90b2NvbCBpbXBvcnQgUHJvdG9jb2wsIEJhc2VQcm90
b2NvbFBhcnQKIAoraWYgVFlQRV9DSEVDS0lORzoKKyAgICBmcm9tIC4ud2ViZHJpdmVyX3NlcnZl
ciBpbXBvcnQgV2ViRHJpdmVyU2VydmVyCisKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pCiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICoqa3dhcmdz
KToKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5f
aW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgdGltZW91dF9tdWx0aXBsaWVyID0ga3dhcmdzWyJ0
aW1lb3V0X211bHRpcGxpZXIiXQogICAgIGlmIHRpbWVvdXRfbXVsdGlwbGllciBpcyBOb25lOgog
ICAgICAgICB0aW1lb3V0X211bHRpcGxpZXIgPSAxCiAKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSB7
InNlcnZlcl9jb25maWciOiBzZXJ2ZXJfY29uZmlnLAorICAgIGV4ZWN1dG9yX2t3YXJncyA9IHsi
c2VydmVyX2NvbmZpZyI6IHRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAogICAgICAgICAgICAgICAg
ICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogdGltZW91dF9tdWx0aXBsaWVyLAogICAgICAg
ICAgICAgICAgICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdfaW5mbyJdfQogCiAg
ICAgaWYgdGVzdF90eXBlIGluICgicmVmdGVzdCIsICJwcmludC1yZWZ0ZXN0Iik6Ci0gICAgICAg
IGV4ZWN1dG9yX2t3YXJnc1sic2NyZWVuc2hvdF9jYWNoZSJdID0gY2FjaGVfbWFuYWdlci5kaWN0
KCkKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzY3JlZW5zaG90X2NhY2hlIl0gPSB0ZXN0X2Vu
dmlyb25tZW50LmNhY2hlX21hbmFnZXIuZGljdCgpCiAKICAgICBpZiB0ZXN0X3R5cGUgPT0gIndk
c3BlYyI6CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siYmluYXJ5Il0gPSBrd2FyZ3MuZ2V0KCJi
aW5hcnkiKQpAQCAtNDIsNyArNDMsNyBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwg
c2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAjIHdhbnQg
dG8gdmlldyB0aGUgcmVzdWx0cywgaG93ZXZlciwgdGhlIGV4ZWN1dG9yIGhhcyB0byBza2lwIHRo
YXQgY2xlYW51cC4KICAgICBpZiBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSBvciBrd2FyZ3Nb
InBhdXNlX29uX3VuZXhwZWN0ZWQiXToKICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbGVhbnVw
X2FmdGVyX3Rlc3QiXSA9IEZhbHNlCi0KKyAgICBleGVjdXRvcl9rd2FyZ3NbImRlYnVnX3Rlc3Qi
XSA9IGt3YXJnc1siZGVidWdfdGVzdCJdCiAgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwogCiAK
QEAgLTE4MCwxMSArMTgxLDExIEBAIGNsYXNzIFRpbWVkUnVubmVyKG9iamVjdCk6CiAgICAgICAg
IHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQogCiAgICAgZGVmIHJ1bihzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5zZXRfdGltZW91dCgpIGlzIFN0b3A6Ci0gICAgICAgICAgICBy
ZXR1cm4gU3RvcAotCi0gICAgICAgIGlmIHNlbGYuYmVmb3JlX3J1bigpIGlzIFN0b3A6Ci0gICAg
ICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICBmb3Igc2V0dXBfZm4gaW4gW3NlbGYuc2V0X3Rp
bWVvdXQsIHNlbGYuYmVmb3JlX3J1bl06CisgICAgICAgICAgICBlcnIgPSBzZXR1cF9mbigpCisg
ICAgICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSAoRmFsc2Us
IGVycikKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKIAogICAgICAgICBleGVj
dXRvciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYucnVuX2Z1bmMpCiAgICAgICAgIGV4
ZWN1dG9yLnN0YXJ0KCkKQEAgLTI0Myw4ICsyNDQsMTQgQEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9i
amVjdCk6CiAgICAgIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKIAotICAgIHRlc3Rf
dHlwZSA9IE5vbmUKLSAgICBjb252ZXJ0X3Jlc3VsdCA9IE5vbmUKKyAgICB0ZXN0X3R5cGUgPSBO
b25lICAjIHR5cGU6IENsYXNzVmFyW3N0cl0KKyAgICAjIGNvbnZlcnRfcmVzdWx0IGlzIGEgY2xh
c3MgdmFyaWFibGUgc2V0IHRvIGEgY2FsbGFibGUgY29udmVydGVyCisgICAgIyAoZS5nLiByZWZ0
ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIpIGNvbnZlcnRpbmcgZnJvbSBhbiBpbnN0YW5jZSBvZgorICAg
ICMgVVJMTWFuaWZlc3RJdGVtIChlLmcuIFJlZlRlc3QpICsgdHlwZS1kZXBlbmRlbnQgcmVzdWx0
cyBvYmplY3QgKworICAgICMgdHlwZS1kZXBlbmRlbnQgZXh0cmEgZGF0YSwgcmV0dXJuaW5nIGEg
dHVwbGUgb2YgUmVzdWx0IGFuZCBsaXN0IG9mCisgICAgIyBTdWJ0ZXN0UmVzdWx0LiBGb3Igbm93
LCBhbnkgY2FsbGFibGUgaXMgYWNjZXB0ZWQuIFRPRE86IE1ha2UgdGhpcyB0eXBlCisgICAgIyBz
dHJpY3RlciB3aGVuIG1vcmUgb2YgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaXMgYW5ub3RhdGVkLgor
ICAgIGNvbnZlcnRfcmVzdWx0ID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltDYWxsYWJsZVsuLi4s
IEFueV1dCiAgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IEZhbHNlCiAgICAgc3VwcG9ydHNfanNz
aGVsbCA9IEZhbHNlCiAgICAgIyBFeHRyYSB0aW1lb3V0IHRvIHVzZSBhZnRlciBpbnRlcm5hbCB0
ZXN0IHRpbWVvdXQgYXQgd2hpY2ggdGhlIGhhcm5lc3MKQEAgLTI4NywxOCArMjk0LDE1IEBAIGNs
YXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgogICAgICAgICAiIiJSdW4gYSBwYXJ0aWN1bGFyIHRl
c3QuCiAKICAgICAgICAgOnBhcmFtIHRlc3Q6IFRoZSB0ZXN0IHRvIHJ1biIiIgotICAgICAgICBp
ZiB0ZXN0LmVudmlyb25tZW50ICE9IHNlbGYubGFzdF9lbnZpcm9ubWVudDoKLSAgICAgICAgICAg
IHNlbGYub25fZW52aXJvbm1lbnRfY2hhbmdlKHRlc3QuZW52aXJvbm1lbnQpCiAgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGlmIHRlc3QuZW52aXJvbm1lbnQgIT0gc2VsZi5sYXN0X2Vudmlyb25t
ZW50OgorICAgICAgICAgICAgICAgIHNlbGYub25fZW52aXJvbm1lbnRfY2hhbmdlKHRlc3QuZW52
aXJvbm1lbnQpCiAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmRvX3Rlc3QodGVzdCkKICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgZXhjZXB0aW9uX3N0cmluZyA9
IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmco
ZXhjZXB0aW9uX3N0cmluZykKICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucmVzdWx0X2Zyb21f
ZXhjZXB0aW9uKHRlc3QsIGUsIGV4Y2VwdGlvbl9zdHJpbmcpCiAKLSAgICAgICAgaWYgcmVzdWx0
IGlzIFN0b3A6Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KICAgICAgICAgIyBsb2cgcmVz
dWx0IG9mIHBhcmVudCB0ZXN0CiAgICAgICAgIGlmIHJlc3VsdFswXS5zdGF0dXMgPT0gIkVSUk9S
IjoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKHJlc3VsdFswXS5tZXNzYWdlKQpAQCAt
MzA3LDE0ICszMTEsMTggQEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9iamVjdCk6CiAKICAgICAgICAg
c2VsZi5ydW5uZXIuc2VuZF9tZXNzYWdlKCJ0ZXN0X2VuZGVkIiwgdGVzdCwgcmVzdWx0KQogCi0g
ICAgZGVmIHNlcnZlcl91cmwoc2VsZiwgcHJvdG9jb2wpOgorICAgIGRlZiBzZXJ2ZXJfdXJsKHNl
bGYsIHByb3RvY29sLCBzdWJkb21haW49RmFsc2UpOgogICAgICAgICBzY2hlbWUgPSAiaHR0cHMi
IGlmIHByb3RvY29sID09ICJoMiIgZWxzZSBwcm90b2NvbAotICAgICAgICByZXR1cm4gIiVzOi8v
JXM6JXMiICUgKHNjaGVtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1bMF0pCisgICAgICAgIGhv
c3QgPSBzZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdCisgICAgICAgIGlmIHN1YmRv
bWFpbjoKKyAgICAgICAgICAgICMgVGhlIG9ubHkgc3VwcG9ydGVkIHN1YmRvbWFpbiBmaWxlbmFt
ZSBmbGFnIGlzICJ3d3ciLgorICAgICAgICAgICAgaG9zdCA9ICJ7c3ViZG9tYWlufS57aG9zdH0i
LmZvcm1hdChzdWJkb21haW49Ind3dyIsIGhvc3Q9aG9zdCkKKyAgICAgICAgcmV0dXJuICJ7c2No
ZW1lfTovL3tob3N0fTp7cG9ydH0iLmZvcm1hdChzY2hlbWU9c2NoZW1lLCBob3N0PWhvc3QsCisg
ICAgICAgICAgICBwb3J0PXNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1bMF0p
CiAKICAgICBkZWYgdGVzdF91cmwoc2VsZiwgdGVzdCk6Ci0gICAgICAgIHJldHVybiB1cmxqb2lu
KHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJdKSwgdGVzdC51cmwp
CisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50
WyJwcm90b2NvbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dC5zdWJkb21haW4pLCB0ZXN0LnVybCkKIAogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBk
b190ZXN0KHNlbGYsIHRlc3QpOgpAQCAtMzMyLDcgKzM0MCw3IEBAIGNsYXNzIFRlc3RFeGVjdXRv
cihvYmplY3QpOgogICAgICAgICAgICAgc3RhdHVzID0gZS5zdGF0dXMKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgIHN0YXR1cyA9ICJJTlRFUk5BTC1FUlJPUiIKLSAgICAgICAgbWVzc2FnZSA9
IHRleHRfdHlwZShnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQorICAgICAgICBtZXNzYWdlID0g
c3RyKGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikpCiAgICAgICAgIGlmIG1lc3NhZ2U6CiAgICAg
ICAgICAgICBtZXNzYWdlICs9ICJcbiIKICAgICAgICAgbWVzc2FnZSArPSBleGNlcHRpb25fc3Ry
aW5nCkBAIC00MjMsNyArNDMxLDcgQEAgY2xhc3MgUmVmVGVzdEltcGxlbWVudGF0aW9uKG9iamVj
dCk6CiAKICAgICAgICAgaWYgbGVuKGxoc19oYXNoZXMpICE9IGxlbihyaHNfaGFzaGVzKToKICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkdvdCBkaWZmZXJlbnQgbnVtYmVyIG9mIHBhZ2Vz
IikKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmV0dXJuIHJlbGF0aW9u
ID09ICIhPSIsIE5vbmUKIAogICAgICAgICBhc3NlcnQgbGVuKGxoc19zY3JlZW5zaG90cykgPT0g
bGVuKGxoc19oYXNoZXMpID09IGxlbihyaHNfc2NyZWVuc2hvdHMpID09IGxlbihyaHNfaGFzaGVz
KQogCkBAIC01OTAsMTEgKzU5OCwxMSBAQCBjbGFzcyBSZWZUZXN0SW1wbGVtZW50YXRpb24ob2Jq
ZWN0KToKIAogY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICBjb252ZXJ0
X3Jlc3VsdCA9IHB5dGVzdF9yZXN1bHRfY29udmVydGVyCi0gICAgcHJvdG9jb2xfY2xzID0gTm9u
ZQorICAgIHByb3RvY29sX2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbVHlwZVtQcm90b2Nv
bF1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29u
ZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAogICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywg
dGltZW91dF9tdWx0aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAotICAgICAgICAgICAgICAg
ICBkZWJ1Z19pbmZvPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5m
bz1Ob25lLCBlbnZpcm9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5kb19kZWxheWVk
X2ltcG9ydHMoKQogICAgICAgICBUZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
cm93c2VyLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKQEAgLTYwMyw3ICs2MTEsMTMgQEAg
Y2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi53ZWJkcml2
ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzCiAgICAgICAgIHNlbGYudGltZW91dF9tdWx0aXBsaWVy
ID0gdGltZW91dF9tdWx0aXBsaWVyCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gY2FwYWJp
bGl0aWVzCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBzZWxmLnByb3RvY29sX2NscyhzZWxmLCBi
cm93c2VyKQorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uIGlmIGVudmlyb24gaXMgbm90
IE5vbmUgZWxzZSB7fQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX2t3YXJncyA9IE5vbmUK
KyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSBOb25lCisKKyAgICBk
ZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHNlbGYucHJv
dG9jb2xfY2xzKHNlbGYsIHNlbGYuYnJvd3NlcikKKyAgICAgICAgc3VwZXIoKS5zZXR1cChydW5u
ZXIpCiAKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnByb3Rv
Y29sLmlzX2FsaXZlKCkKQEAgLTcwNiw3ICs3MjAsNyBAQCBjbGFzcyBDb25uZWN0aW9ubGVzc1By
b3RvY29sKFByb3RvY29sKToKIAogCiBjbGFzcyBXZHNwZWNQcm90b2NvbChQcm90b2NvbCk6Ci0g
ICAgc2VydmVyX2NscyA9IE5vbmUKKyAgICBzZXJ2ZXJfY2xzID0gTm9uZSAgIyB0eXBlOiBDbGFz
c1ZhcltPcHRpb25hbFtUeXBlW1dlYkRyaXZlclNlcnZlcl1dXQogCiAgICAgaW1wbGVtZW50cyA9
IFtDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2NvbFBhcnRdCiAKQEAgLTcxNywxNCArNzMxLDIxIEBA
IGNsYXNzIFdkc3BlY1Byb3RvY29sKFByb3RvY29sKToKICAgICAgICAgc2VsZi5jYXBhYmlsaXRp
ZXMgPSBzZWxmLmV4ZWN1dG9yLmNhcGFiaWxpdGllcwogICAgICAgICBzZWxmLnNlc3Npb25fY29u
ZmlnID0gTm9uZQogICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5lbnZp
cm9uID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgc2VsZi5lbnZpcm9uLnVwZGF0ZShleGVj
dXRvci5lbnZpcm9uKQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX2t3YXJncyA9IGV4ZWN1
dG9yLm91dHB1dF9oYW5kbGVyX2t3YXJncworICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0
YXJ0X2t3YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncwogCiAgICAg
ZGVmIGNvbm5lY3Qoc2VsZik6CiAgICAgICAgICIiIkNvbm5lY3QgdG8gYnJvd3NlciB2aWEgdGhl
IEhUVFAgc2VydmVyLiIiIgogICAgICAgICBzZWxmLnNlcnZlciA9IHNlbGYuc2VydmVyX2NscygK
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgYmluYXJ5PXNlbGYud2ViZHJp
dmVyX2JpbmFyeSwKLSAgICAgICAgICAgIGFyZ3M9c2VsZi53ZWJkcml2ZXJfYXJncykKLSAgICAg
ICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisgICAgICAgICAgICBhcmdzPXNlbGYu
d2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAgICBlbnY9c2VsZi5lbnZpcm9uKQorICAgICAgICBz
ZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0cHV0X2hhbmRsZXJfa3dhcmdzPXNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3M9c2VsZi5vdXRw
dXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpCiAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oCiAgICAg
ICAgICAgICAiV2ViRHJpdmVyIEhUVFAgc2VydmVyIGxpc3RlbmluZyBhdCAlcyIgJSBzZWxmLnNl
cnZlci51cmwpCiAgICAgICAgIHNlbGYuc2Vzc2lvbl9jb25maWcgPSB7Imhvc3QiOiBzZWxmLnNl
cnZlci5ob3N0LApAQCAtNzYyLDcgKzc4Myw3IEBAIGNsYXNzIENhbGxiYWNrSGFuZGxlcihvYmpl
Y3QpOgogICAgIFdlYkRyaXZlci4gVGhpbmdzIHRoYXQgYXJlIG1vcmUgZGlmZmVyZW50IHRvIFdl
YkRyaXZlciBtYXkgbmVlZCB0byBjcmVhdGUgYQogICAgIGZ1bGx5IGN1c3RvbSBpbXBsZW1lbnRh
dGlvbi4iIiIKIAotICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxlbWVudGVkRXJyb3Is
KQorICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxlbWVudGVkRXJyb3IsKSAgIyB0eXBl
OiBDbGFzc1ZhcltUdXBsZVtUeXBlW0V4Y2VwdGlvbl0sIC4uLl1dCiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cpOgogICAgICAgICBzZWxmLnBy
b3RvY29sID0gcHJvdG9jb2wKQEAgLTgzMSw3ICs4NTIsNyBAQCBjbGFzcyBBY3Rpb25Db250ZXh0
KG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5pbml0aWFsX3dpbmRvdyA9IHNlbGYucHJvdG9jb2wu
YmFzZS5jdXJyZW50X3dpbmRvdwogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3dpdGNoaW5n
IHRvIHdpbmRvdyAlcyIgJSBzZWxmLmNvbnRleHQpCi0gICAgICAgIHNlbGYucHJvdG9jb2wudGVz
dGRyaXZlci5zd2l0Y2hfdG9fd2luZG93KHNlbGYuY29udGV4dCkKKyAgICAgICAgc2VsZi5wcm90
b2NvbC50ZXN0ZHJpdmVyLnN3aXRjaF90b193aW5kb3coc2VsZi5jb250ZXh0LCBzZWxmLmluaXRp
YWxfd2luZG93KQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKICAgICAgICAgaWYg
c2VsZi5jb250ZXh0IGlzIE5vbmU6CkBAIC04MzksNSArODYwLDQgQEAgY2xhc3MgQWN0aW9uQ29u
dGV4dChvYmplY3QpOgogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTd2l0Y2hpbmcgYmFj
ayB0byBpbml0aWFsIHdpbmRvdyIpCiAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfd2lu
ZG93KHNlbGYuaW5pdGlhbF93aW5kb3cpCi0gICAgICAgIHNlbGYucHJvdG9jb2wudGVzdGRyaXZl
ci5fc3dpdGNoX3RvX2ZyYW1lKE5vbmUpCiAgICAgICAgIHNlbGYuaW5pdGlhbF93aW5kb3cgPSBO
b25lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JjaHJvbWUucHkKaW5kZXggM2E3MDQ3NTQxMzdmLi40MzFkMzk4ZWJkMjcgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkK
QEAgLTEsNyArMSw3IEBACiBpbXBvcnQgb3MKIGltcG9ydCB0cmFjZWJhY2sKIAotZnJvbSBzaXgu
bW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCitmcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsam9pbgogCiBmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNQcm90b2NvbCwgV2RzcGVjRXhl
Y3V0b3IsIGdldF9wYWdlcwogZnJvbSAuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZl
clByb3RvY29sLCBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsIFdlYkRyaXZlclJ1bgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRn
ZWNocm9taXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWJi
YTA2YTllMWFiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVt
LnB5CkBAIC0wLDAgKzEsMTAgQEAKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdl
Q2hyb21pdW1Ecml2ZXJTZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBX
ZHNwZWNQcm90b2NvbAorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29sKFdkc3Bl
Y1Byb3RvY29sKToKKyAgICBzZXJ2ZXJfY2xzID0gRWRnZUNocm9taXVtRHJpdmVyU2VydmVyCisK
KworY2xhc3MgRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3Ip
OgorICAgIHByb3RvY29sX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29sCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9u
ZXR0ZS5weQppbmRleCA3ZTJjYzhlMzhhNDQuLjI1YTMzNjBiN2Q4MCAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRl
LnB5CkBAIC01LDggKzUsNyBAQCBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0
IHV1aWQKIAotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgaXRlcmtleXMKLWZyb20gc2l4Lm1v
dmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0
IHVybGpvaW4KIAogZXJyb3JzID0gTm9uZQogbWFyaW9uZXR0ZSA9IE5vbmUKQEAgLTMzLDI3ICsz
MiwyMiBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0
LAogICAgICAgICAgICAgICAgICAgICAgICBTdG9yYWdlUHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgICAgICBTZWxlY3RvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZXNQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRLZXlzUHJvdG9jb2xQYXJ0LAog
ICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgICAgICBDb3ZlcmFnZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgR2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAg
ICBWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgU2V0UGVybWlzc2lvblByb3RvY29sUGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgUHJp
bnRQcm90b2NvbFBhcnQpCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAotZnJvbSAuLndl
YmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEdlY2tvRHJpdmVyU2VydmVyCisgICAgICAgICAgICAgICAg
ICAgICAgIFByaW50UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Z1By
b3RvY29sUGFydCkKIAogCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6Ci0gICAgZ2xvYmFsIGVy
cm9ycywgbWFyaW9uZXR0ZQorICAgIGdsb2JhbCBlcnJvcnMsIG1hcmlvbmV0dGUsIEFkZG9ucwog
Ci0gICAgIyBNYXJpb25ldHRlIGNsaWVudCB1c2VkIHRvIGJlIGNhbGxlZCBtYXJpb25ldHRlLCBy
ZWNlbnRseSBpdCBjaGFuZ2VkCi0gICAgIyB0byBtYXJpb25ldHRlX2RyaXZlciBmb3IgdW5mYXRo
b21hYmxlIHJlYXNvbnMKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBtYXJpb25ldHRlCi0gICAg
ICAgIGZyb20gbWFyaW9uZXR0ZSBpbXBvcnQgZXJyb3JzCi0gICAgZXhjZXB0IEltcG9ydEVycm9y
OgotICAgICAgICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyIGltcG9ydCBtYXJpb25ldHRlLCBlcnJv
cnMKKyAgICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyIGltcG9ydCBtYXJpb25ldHRlLCBlcnJvcnMK
KyAgICBmcm9tIG1hcmlvbmV0dGVfZHJpdmVyLmFkZG9ucyBpbXBvcnQgQWRkb25zCiAKIAogZGVm
IF9zd2l0Y2hfdG9fd2luZG93KG1hcmlvbmV0dGUsIGhhbmRsZSk6CkBAIC0xMzMsNyArMTI3LDcg
QEAgY2xhc3MgTWFyaW9uZXR0ZUJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAg
ICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5KYXZhc2NyaXB0
RXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBoYXBwZW4gaWYgd2Ug
bmF2aWdhdGUsIGJ1dCBqdXN0IGtlZXAgZ29pbmcKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZyhlLm1lc3NhZ2UpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZSkK
ICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU29ja2V0IGNsb3NlZCIpCkBAIC00NDEsNiAr
NDM1LDE1IEBAIGNsYXNzIE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFydChDbGlja1Byb3RvY29s
UGFydCk6CiAgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKIAogCitjbGFzcyBNYXJpb25l
dHRlQ29va2llc1Byb3RvY29sUGFydChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0
dXAoc2VsZik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0
dGUKKworICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMoc2VsZik6CisgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAgICAgcmV0dXJuIHNlbGYubWFy
aW9uZXR0ZS5kZWxldGVfYWxsX2Nvb2tpZXMoKQorCisKIGNsYXNzIE1hcmlvbmV0dGVTZW5kS2V5
c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYp
OgogICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCkBAIC00
NzMsOCArNDc2LDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFRl
c3REcml2ZXJQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgb2JqWyJtZXNzYWdlIl0gPSBzdHIo
bWVzc2FnZSkKICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgid2luZG93
LnBvc3RNZXNzYWdlKCVzLCAnKicpIiAlIGpzb24uZHVtcHMob2JqKSkKIAotICAgIGRlZiBfc3dp
dGNoX3RvX2ZyYW1lKHNlbGYsIGZyYW1lX251bWJlcik6Ci0gICAgICAgIHNlbGYubWFyaW9uZXR0
ZS5zd2l0Y2hfdG9fZnJhbWUoZnJhbWVfbnVtYmVyKQorICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1l
KHNlbGYsIGluZGV4X29yX2VsZW0pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLm1h
cmlvbmV0dGUuc3dpdGNoX3RvX2ZyYW1lKGluZGV4X29yX2VsZW0pCisgICAgICAgIGV4Y2VwdCAo
ZXJyb3JzLk5vU3VjaEZyYW1lRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgIGVycm9ycy5TdGFs
ZUVsZW1lbnRFeGNlcHRpb24pIGFzIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yIGZy
b20gZQogCiAgICAgZGVmIF9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlbGYpOgogICAgICAgICBz
ZWxmLm1hcmlvbmV0dGUuc3dpdGNoX3RvX3BhcmVudF9mcmFtZSgpCkBAIC00ODksNyArNDk2LDcg
QEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0KENvdmVyYWdlUHJvdG9jb2xQ
YXJ0KToKICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIHNjcmlwdCA9ICIiIgotICAgICAg
ICAgICAgY29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0aWxzLmltcG9ydCgi
Y2hyb21lOi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0aWxzLmpzbSIpOwor
ICAgICAgICAgICAgY29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0aWxzLmlt
cG9ydCgiY2hyb21lOi8vcmVtb3RlL2NvbnRlbnQvbWFyaW9uZXR0ZS9QZXJUZXN0Q292ZXJhZ2VV
dGlscy5qc20iKTsKICAgICAgICAgICAgIHJldHVybiBQZXJUZXN0Q292ZXJhZ2VVdGlscy5lbmFi
bGVkOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5n
X2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTQ5OSw3ICs1MDYs
NyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJhZ2VQcm90b2Nv
bFBhcnQpOgogICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAgIHZhciBjYWxsYmFjayA9
IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAgICAgICAgIGNvbnN0IHtQ
ZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTovL21hcmlv
bmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20iKTsKKyAgICAgICAgICAgIGNv
bnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9tZTov
L3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7CiAg
ICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5iZWZvcmVUZXN0KCkudGhlbihjYWxsYmFj
aywgY2FsbGJhY2spOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25l
dHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTUx
OSw3ICs1MjYsNyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJh
Z2VQcm90b2NvbFBhcnQpOgogICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAgIHZhciBj
YWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAgICAgICAg
IGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQoImNocm9t
ZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20iKTsKKyAgICAg
ICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBvcnQo
ImNocm9tZTovL3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUvUGVyVGVzdENvdmVyYWdlVXRpbHMu
anNtIik7CiAgICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5hZnRlclRlc3QoKS50aGVu
KGNhbGxiYWNrLCBjYWxsYmFjayk7CiAgICAgICAgICAgICAiIiIKICAgICAgICAgd2l0aCBzZWxm
Lm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUp
OgpAQCAtNTYzLDEyICs1NzAsMjIgQEAgY2xhc3MgTWFyaW9uZXR0ZVZpcnR1YWxBdXRoZW50aWNh
dG9yUHJvdG9jb2xQYXJ0KFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXIKICAgICBkZWYg
c2V0X3VzZXJfdmVyaWZpZWQoc2VsZiwgYXV0aGVudGljYXRvcl9pZCwgdXYpOgogICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzZXRfdXNlcl92ZXJpZmllZCBub3QgeWV0IGltcGxl
bWVudGVkIikKIAorCiBjbGFzcyBNYXJpb25ldHRlU2V0UGVybWlzc2lvblByb3RvY29sUGFydChT
ZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAg
IHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKIAotICAgIGRlZiBzZXRf
cGVybWlzc2lvbihzZWxmLCBuYW1lLCBzdGF0ZSwgb25lX3JlYWxtKToKLSAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcigic2V0X3Blcm1pc3Npb24gbm90IHlldCBpbXBsZW1lbnRlZCIp
CisgICAgZGVmIHNldF9wZXJtaXNzaW9uKHNlbGYsIGRlc2NyaXB0b3IsIHN0YXRlLCBvbmVfcmVh
bG0pOgorICAgICAgICBib2R5ID0geworICAgICAgICAgICAgImRlc2NyaXB0b3IiOiBkZXNjcmlw
dG9yLAorICAgICAgICAgICAgInN0YXRlIjogc3RhdGUsCisgICAgICAgIH0KKyAgICAgICAgaWYg
b25lX3JlYWxtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYm9keVsib25lUmVhbG0iXSA9IG9u
ZV9yZWFsbQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuX3NlbmRf
bWVzc2FnZSgiV2ViRHJpdmVyOlNldFBlcm1pc3Npb24iLCBib2R5KQorICAgICAgICBleGNlcHQg
ZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uOgorICAgICAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcigic2V0X3Blcm1pc3Npb24gbm90IHlldCBpbXBsZW1lbnRlZCIp
CiAKIAogY2xhc3MgTWFyaW9uZXR0ZVByaW50UHJvdG9jb2xQYXJ0KFByaW50UHJvdG9jb2xQYXJ0
KToKQEAgLTYyMSw2ICs2MzgsMzAgQEAgcmVuZGVyKCclcycpLnRoZW4ocmVzdWx0ID0+IGNhbGxi
YWNrKHJlc3VsdCkpIiIiICUgcGRmX2Jhc2U2NCwgbmV3X3NhbmRib3g9RmFsc2UKICAgICAgICAg
ZmluYWxseToKICAgICAgICAgICAgIF9zd2l0Y2hfdG9fd2luZG93KHNlbGYubWFyaW9uZXR0ZSwg
aGFuZGxlKQogCisKK2NsYXNzIE1hcmlvbmV0dGVEZWJ1Z1Byb3RvY29sUGFydChEZWJ1Z1Byb3Rv
Y29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUg
PSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToK
KyAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0
dGUuQ09OVEVYVF9DSFJPTUUpOgorICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRl
X3NjcmlwdCgiIiIKK2NvbnN0IHsgcmVxdWlyZSB9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJyZXNv
dXJjZTovL2RldnRvb2xzL3NoYXJlZC9Mb2FkZXIuanNtIik7Citjb25zdCB7IFRhcmdldEZhY3Rv
cnkgfSA9IHJlcXVpcmUoImRldnRvb2xzL2NsaWVudC9mcmFtZXdvcmsvdGFyZ2V0Iik7Citjb25z
dCB7IGdEZXZUb29scyB9ID0gcmVxdWlyZSgiZGV2dG9vbHMvY2xpZW50L2ZyYW1ld29yay9kZXZ0
b29scyIpOworCitjb25zdCBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0g
MV07CisKK2FzeW5jIGZ1bmN0aW9uIGxvYWREZXZUb29scygpIHsKKyAgICBjb25zdCB0YXJnZXQg
PSBhd2FpdCBUYXJnZXRGYWN0b3J5LmZvclRhYih3aW5kb3cuZ0Jyb3dzZXIuc2VsZWN0ZWRUYWIp
OworICAgIGF3YWl0IGdEZXZUb29scy5zaG93VG9vbGJveCh0YXJnZXQsICJ3ZWJjb25zb2xlIiwg
IndpbmRvdyIpOworfQorCitsb2FkRGV2VG9vbHMoKS5jYXRjaCgoKSA9PiBkdW1wKCJEZXZ0b29s
cyBmYWlsZWQgdG8gbG9hZCIpKQorICAgICAgICAgICAgICAudGhlbihjYWxsYmFjayk7CisiIiIs
IGFzeW5jaHJvbm91cz1UcnVlKQorCisKIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90b2Nv
bCk6CiAgICAgaW1wbGVtZW50cyA9IFtNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydCwKICAgICAg
ICAgICAgICAgICAgIE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKQEAgLTYyOCw2
ICs2NjksNyBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAg
ICAgICAgICAgTWFyaW9uZXR0ZVN0b3JhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICBNYXJpb25ldHRlU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJp
b25ldHRlQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQ29v
a2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTZW5kS2V5c1By
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVBY3Rpb25TZXF1ZW5jZVBy
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9j
b2xQYXJ0LApAQCAtNjM2LDcgKzY3OCw4IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90
b2NvbCk6CiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlR2VuZXJhdGVUZXN0UmVwb3J0UHJv
dG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVZpcnR1YWxBdXRoZW50aWNh
dG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNldFBlcm1pc3Np
b25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2Nv
bFBhcnRdCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2NvbFBhcnQsCisg
ICAgICAgICAgICAgICAgICBNYXJpb25ldHRlRGVidWdQcm90b2NvbFBhcnRdCiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcz1Ob25lLCB0aW1l
b3V0X211bHRpcGxpZXI9MSwgZTEwcz1UcnVlLCBjY292PUZhbHNlKToKICAgICAgICAgZG9fZGVs
YXllZF9pbXBvcnRzKCkKQEAgLTY4MCwxMSArNzIzLDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90
b2NvbChQcm90b2NvbCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5t
YXJpb25ldHRlLl9yZXF1ZXN0X2luX2FwcF9zaHV0ZG93bigpCiAgICAgICAgICAgICAgICAgc2Vs
Zi5tYXJpb25ldHRlLmRlbGV0ZV9zZXNzaW9uKHNlbmRfcmVxdWVzdD1GYWxzZSkKKyAgICAgICAg
ICAgICAgICBzZWxmLm1hcmlvbmV0dGUuY2xlYW51cCgpCiAgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uOgogICAgICAgICAgICAgICAgICMgVGhpcyBpcyB0eXBpY2FsbHkgYmVjYXVzZSB0aGUg
c2Vzc2lvbiBuZXZlciBzdGFydGVkCiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBpZiBz
ZWxmLm1hcmlvbmV0dGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkZWwgc2VsZi5tYXJpb25l
dHRlCisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBOb25lCiAgICAgICAgIHN1cGVyKE1h
cmlvbmV0dGVQcm90b2NvbCwgc2VsZikudGVhcmRvd24oKQogCiAgICAgZGVmIGlzX2FsaXZlKHNl
bGYpOgpAQCAtNjk2LDIwICs3NDAsMTkgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3Rv
Y29sKToKIAogICAgIGRlZiBvbl9lbnZpcm9ubWVudF9jaGFuZ2Uoc2VsZiwgb2xkX2Vudmlyb25t
ZW50LCBuZXdfZW52aXJvbm1lbnQpOgogICAgICAgICAjVW5zZXQgYWxsIHRoZSBvbGQgcHJlZnMK
LSAgICAgICAgZm9yIG5hbWUgaW4gaXRlcmtleXMob2xkX2Vudmlyb25tZW50LmdldCgicHJlZnMi
LCB7fSkpOgorICAgICAgICBmb3IgbmFtZSBpbiBvbGRfZW52aXJvbm1lbnQuZ2V0KCJwcmVmcyIs
IHt9KS5rZXlzKCk6CiAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuZXhlY3V0b3Iub3JpZ2luYWxf
cHJlZl92YWx1ZXNbbmFtZV0KICAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAg
ICAgICAgICAgc2VsZi5wcmVmcy5jbGVhcihuYW1lKQogICAgICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgICAgICBzZWxmLnByZWZzLnNldChuYW1lLCB2YWx1ZSkKIAotICAgICAgICBmb3IgbmFt
ZSwgdmFsdWUgaW4gaXRlcml0ZW1zKG5ld19lbnZpcm9ubWVudC5nZXQoInByZWZzIiwge30pKToK
KyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIG5ld19lbnZpcm9ubWVudC5nZXQoInByZWZzIiwg
e30pLml0ZW1zKCk6CiAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yLm9yaWdpbmFsX3ByZWZfdmFs
dWVzW25hbWVdID0gc2VsZi5wcmVmcy5nZXQobmFtZSkKICAgICAgICAgICAgIHNlbGYucHJlZnMu
c2V0KG5hbWUsIHZhbHVlKQogCiAKIGNsYXNzIEV4ZWN1dGVBc3luY1NjcmlwdFJ1bihUaW1lZFJ1
bm5lcik6Ci0KICAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CiAgICAgICAgIHRpbWVvdXQgPSBz
ZWxmLnRpbWVvdXQKIApAQCAtNzIyLDggKzc2NSw5IEBAIGNsYXNzIEV4ZWN1dGVBc3luY1Njcmlw
dFJ1bihUaW1lZFJ1bm5lcik6CiAgICAgICAgICAgICAgICAgIyB0aW1lb3V0IGlzIHNldCB0b28g
aGlnaC4gVGhpcyB3b3JrcyBhdCBsZWFzdC4KICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29s
LmJhc2Uuc2V0X3RpbWVvdXQoMioqMjggLSAxKQogICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBi
ZWZvcmUgc3RhcnRpbmcgdGVzdCIpCi0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICAg
ICAgbXNnID0gIkxvc3QgbWFyaW9uZXR0ZSBjb25uZWN0aW9uIGJlZm9yZSBzdGFydGluZyB0ZXN0
IgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgcmV0dXJu
ICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICBkZWYgYmVmb3JlX3J1bihzZWxmKToKICAg
ICAgICAgaW5kZXggPSBzZWxmLnVybC5yZmluZCgiL3N0b3JhZ2UvIikKQEAgLTc0Nyw3ICs3OTEs
NyBAQCBjbGFzcyBFeGVjdXRlQXN5bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgogICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiTm9TdWNoV2luZG93RXhjZXB0aW9uIG9uIGNvbW1hbmQsIHNl
dHRpbmcgc3RhdHVzIHRvIENSQVNIIikKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2Us
ICgiQ1JBU0giLCBOb25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAg
ICAgICBpZiBpc2luc3RhbmNlKGUsIGVycm9ycy5KYXZhc2NyaXB0RXhjZXB0aW9uKSBhbmQgZS5t
ZXNzYWdlLnN0YXJ0c3dpdGgoIkRvY3VtZW50IHdhcyB1bmxvYWRlZCIpOgorICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZShlLCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbikgYW5kIHN0cihlKS5z
dGFydHN3aXRoKCJEb2N1bWVudCB3YXMgdW5sb2FkZWQiKToKICAgICAgICAgICAgICAgICBtZXNz
YWdlID0gIkRvY3VtZW50IHVubG9hZGVkOyBtYXliZSB0ZXN0IG5hdmlnYXRlZCB0aGUgdG9wLWxl
dmVsLWJyb3dzaW5nIGNvbnRleHQ/IgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKQpAQCAtNzY1LDcgKzgwOSw3IEBA
IGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3Ip
OgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZp
ZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCiAgICAgICAgICAgICAgICAgIGNsb3NlX2FmdGVyX2Rv
bmU9VHJ1ZSwgZGVidWdfaW5mbz1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwKLSAgICAgICAgICAg
ICAgICAgZGVidWc9RmFsc2UsIGNjb3Y9RmFsc2UsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAg
ICAgZGVidWc9RmFsc2UsIGNjb3Y9RmFsc2UsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToK
ICAgICAgICAgIiIiTWFyaW9uZXR0ZS1iYXNlZCBleGVjdXRvciBmb3IgdGVzdGhhcm5lc3MuanMg
dGVzdHMiIiIKICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvci5fX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKQEAgLTc4MSw2
ICs4MjUsOSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVz
c0V4ZWN1dG9yKToKICAgICAgICAgc2VsZi5jbG9zZV9hZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJf
ZG9uZQogICAgICAgICBzZWxmLndpbmRvd19pZCA9IHN0cih1dWlkLnV1aWQ0KCkpCiAgICAgICAg
IHNlbGYuZGVidWcgPSBkZWJ1ZworICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1Z190ZXN0
CisKKyAgICAgICAgc2VsZi5pbnN0YWxsX2V4dGVuc2lvbnMgPSBicm93c2VyLmV4dGVuc2lvbnMK
IAogICAgICAgICBzZWxmLm9yaWdpbmFsX3ByZWZfdmFsdWVzID0ge30KIApAQCAtNzg5LDYgKzgz
NiwxMSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4
ZWN1dG9yKToKIAogICAgIGRlZiBzZXR1cChzZWxmLCBydW5uZXIpOgogICAgICAgICBzdXBlcihN
YXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciwgc2VsZikuc2V0dXAocnVubmVyKQorICAgICAg
ICBmb3IgZXh0ZW5zaW9uX3BhdGggaW4gc2VsZi5pbnN0YWxsX2V4dGVuc2lvbnM6CisgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5pbmZvKCJJbnN0YWxsaW5nIGV4dGVuc2lvbiBmcm9tICVzIiAlIGV4
dGVuc2lvbl9wYXRoKQorICAgICAgICAgICAgYWRkb25zID0gQWRkb25zKHNlbGYucHJvdG9jb2wu
bWFyaW9uZXR0ZSkKKyAgICAgICAgICAgIGFkZG9ucy5pbnN0YWxsKGV4dGVuc2lvbl9wYXRoKQor
CiAgICAgICAgIHNlbGYucHJvdG9jb2wudGVzdGhhcm5lc3MubG9hZF9ydW5uZXIoc2VsZi5sYXN0
X2Vudmlyb25tZW50WyJwcm90b2NvbCJdKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgpAQCAt
ODQyLDYgKzg5NCw5IEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3Ro
YXJuZXNzRXhlY3V0b3IpOgogICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3dpbmRvdyh0
ZXN0X3dpbmRvdykKICAgICAgICAgcHJvdG9jb2wudGVzdGhhcm5lc3MudGVzdF93aW5kb3dfbG9h
ZGVkKCkKIAorICAgICAgICBpZiBzZWxmLmRlYnVnX3Rlc3Q6CisgICAgICAgICAgICBzZWxmLnBy
b3RvY29sLmRlYnVnLmxvYWRfZGV2dG9vbHMoKQorCiAgICAgICAgIGhhbmRsZXIgPSBDYWxsYmFj
a0hhbmRsZXIoc2VsZi5sb2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdykKICAgICAgICAgcHJv
dG9jb2wubWFyaW9uZXR0ZS5uYXZpZ2F0ZSh1cmwpCiAgICAgICAgIHdoaWxlIFRydWU6CkBAIC04
NjgsNyArOTIzLDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhl
Y3V0b3IpOgogICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIHJlZnRlc3RfaW50ZXJu
YWw9RmFsc2UsCiAgICAgICAgICAgICAgICAgIHJlZnRlc3Rfc2NyZWVuc2hvdD0idW5leHBlY3Rl
ZCIsIGNjb3Y9RmFsc2UsCiAgICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5vbmUsIGNh
cGFiaWxpdGllcz1Ob25lLCBkZWJ1Zz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgYnJvd3Nlcl92
ZXJzaW9uPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgYnJvd3Nlcl92ZXJzaW9u
PU5vbmUsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToKICAgICAgICAgIiIiTWFyaW9uZXR0
ZS1iYXNlZCBleGVjdXRvciBmb3IgcmVmdGVzdHMiIiIKICAgICAgICAgUmVmVGVzdEV4ZWN1dG9y
Ll9faW5pdF9fKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIs
CkBAIC04OTEsNiArOTQ2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZU
ZXN0RXhlY3V0b3IpOgogICAgICAgICBzZWxmLm9yaWdpbmFsX3ByZWZfdmFsdWVzID0ge30KICAg
ICAgICAgc2VsZi5ncm91cF9tZXRhZGF0YSA9IGdyb3VwX21ldGFkYXRhCiAgICAgICAgIHNlbGYu
ZGVidWcgPSBkZWJ1ZworICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1Z190ZXN0CiAKICAg
ICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAicmVmdGVzdC5qcyIpKSBhcyBmOgog
ICAgICAgICAgICAgc2VsZi5zY3JpcHQgPSBmLnJlYWQoKQpAQCAtOTUzLDcgKzEwMDksMTIgQEAg
Y2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAg
ICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gc2VsZi5wcm90b2NvbC5hc3NlcnRzLmdldCgpCiAgICAg
ICAgICAgICBpZiAiZXh0cmEiIG5vdCBpbiByZXN1bHQ6CiAgICAgICAgICAgICAgICAgcmVzdWx0
WyJleHRyYSJdID0ge30KLSAgICAgICAgICAgIHJlc3VsdFsiZXh0cmEiXVsiYXNzZXJ0aW9uX2Nv
dW50Il0gPSBhc3NlcnRpb25fY291bnQKKyAgICAgICAgICAgIGlmIGFzc2VydGlvbl9jb3VudCBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXN1bHRbImV4dHJhIl1bImFzc2VydGlvbl9j
b3VudCJdID0gYXNzZXJ0aW9uX2NvdW50CisKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190ZXN0IGFu
ZCByZXN1bHRbInN0YXR1cyJdIGluIFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIl0gYW5kICJleHRy
YSIgaW4gcmVzdWx0OgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3co
c2VsZi5wcm90b2NvbC5iYXNlLndpbmRvd19oYW5kbGVzKClbMF0pCisgICAgICAgICAgICBzZWxm
LnByb3RvY29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXplcih0ZXN0LCByZXN1bHQpCiAKICAg
ICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQogCkBAIC0xMDAw
LDggKzEwNjEsNyBAQCBjbGFzcyBJbnRlcm5hbFJlZlRlc3RJbXBsZW1lbnRhdGlvbihSZWZUZXN0
SW1wbGVtZW50YXRpb24pOgogICAgICAgICBkYXRhID0geyJzY3JlZW5zaG90Ijogc2NyZWVuc2hv
dCwgImlzUHJpbnQiOiBzZWxmLmV4ZWN1dG9yLmlzX3ByaW50fQogICAgICAgICBpZiBzZWxmLmV4
ZWN1dG9yLmdyb3VwX21ldGFkYXRhIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZGF0YVsidXJs
Q291bnQiXSA9IHt1cmxqb2luKHNlbGYuZXhlY3V0b3Iuc2VydmVyX3VybChrZXlbMF0pLCBrZXlb
MV0pOnZhbHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVl
IGluIGl0ZXJpdGVtcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
ZXhlY3V0b3IuZ3JvdXBfbWV0YWRhdGEuZ2V0KCJ1cmxfY291bnQiLCB7fSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYuZXhlY3V0b3IuZ3Jv
dXBfbWV0YWRhdGEuZ2V0KCJ1cmxfY291bnQiLCB7fSkuaXRlbXMoKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiB2YWx1ZSA+IDF9CiAgICAgICAgIHNlbGYuY2hyb21lX3Njb3Bl
ID0gY2hyb21lX3Njb3BlCiAgICAgICAgIGlmIGNocm9tZV9zY29wZToKQEAgLTEwNTMsMTIgKzEx
MTMsMzIgQEAgY2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24oUmVmVGVzdEltcGxl
bWVudGF0aW9uKToKIAogCiBjbGFzcyBHZWNrb0RyaXZlclByb3RvY29sKFdkc3BlY1Byb3RvY29s
KToKLSAgICBzZXJ2ZXJfY2xzID0gR2Vja29Ecml2ZXJTZXJ2ZXIKKyAgICBzZXJ2ZXJfY2xzID0g
Tm9uZSAgIyBUbyBhdm9pZCBjaXJjdWxhciBpbXBvcnRzIHdlIHNldCB0aGlzIGF0IHJ1bnRpbWUK
IAogCiBjbGFzcyBNYXJpb25ldHRlV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgogICAg
IHByb3RvY29sX2NscyA9IEdlY2tvRHJpdmVyUHJvdG9jb2wKIAorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHdlYmRyaXZlcl9iaW5hcnksCisg
ICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCB0aW1lb3V0X211bHRpcGxpZXI9MSwgY2Fw
YWJpbGl0aWVzPU5vbmUsCisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgZW52aXJv
bj1Ob25lLCBzdGFja2ZpeF9kaXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRo
PU5vbmUsIGxlYWtfcmVwb3J0X2ZpbGU9Tm9uZSwgYXNhbj1GYWxzZSwKKyAgICAgICAgICAgICAg
ICAgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgYnJvd3Nlcl9zZXR0aW5ncz1Ob25lLCAqKmt3YXJncyk6
CisKKyAgICAgICAgZnJvbSAuLmJyb3dzZXJzLmZpcmVmb3ggaW1wb3J0IEdlY2tvRHJpdmVyU2Vy
dmVyCisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29u
ZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZl
cl9hcmdzLCB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsIGRlYnVnX2luZm89ZGVi
dWdfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uPWVudmlyb24sICoqa3dh
cmdzKQorICAgICAgICBzZWxmLnByb3RvY29sX2Nscy5zZXJ2ZXJfY2xzID0gR2Vja29Ecml2ZXJT
ZXJ2ZXIKKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MgPSB7InN0YWNrZml4X2Rp
ciI6IHN0YWNrZml4X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN5bWJvbHNfcGF0aCI6IHN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImFzYW4iOiBhc2FuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibGVha19yZXBvcnRfZmlsZSI6IGxlYWtfcmVwb3J0X2ZpbGV9CisgICAgICAgIHNl
bGYub3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0geyJncm91cF9tZXRhZGF0YSI6IGdyb3Vw
X21ldGFkYXRhfQorICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncy51cGRh
dGUoYnJvd3Nlcl9zZXR0aW5ncykKKworCiAKIGNsYXNzIE1hcmlvbmV0dGVDcmFzaHRlc3RFeGVj
dXRvcihDcmFzaHRlc3RFeGVjdXRvcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5
CmluZGV4IGZmMjYzNTFmODRlZC4uOWQ2NzVjYjNlZjg3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JzZWxlbml1bS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQpAQCAtMSw0
ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CiBpbXBvcnQg
anNvbgogaW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0CkBAIC02LDcgKzUsNyBAQCBpbXBvcnQgdGhy
ZWFkaW5nCiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHV1aWQKLWZyb20g
c2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSB1cmxsaWIucGFyc2Ug
aW1wb3J0IHVybGpvaW4KIAogZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwKICAg
ICAgICAgICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCkBAIC0xOSwxMCArMTgsMTAgQEAgZnJv
bSAucHJvdG9jb2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAg
ICAgICBQcm90b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgIENsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAg
ICAgICAgICAgICAgICBDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAg
ICBTZW5kS2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uU2Vx
dWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3REcml2ZXJQcm90
b2NvbFBhcnQpCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogCiBoZXJlID0gb3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKQogCkBAIC0xODMsNiArMTgyLDE1IEBAIGNsYXNzIFNlbGVuaXVt
Q2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4gZWxl
bWVudC5jbGljaygpCiAKIAorY2xhc3MgU2VsZW5pdW1Db29raWVzUHJvdG9jb2xQYXJ0KENvb2tp
ZXNQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJk
cml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tp
ZXMoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkRlbGV0aW5nIGFsbCBjb29raWVz
IikKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmRlbGV0ZV9hbGxfY29va2llcygpCisK
KwogY2xhc3MgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFy
dCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYu
cGFyZW50LndlYmRyaXZlcgpAQCAtMjE5LDYgKzIyNyw3IEBAIGNsYXNzIFNlbGVuaXVtUHJvdG9j
b2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1UZXN0aGFybmVzc1Byb3Rv
Y29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtU2VsZWN0b3JQcm90b2NvbFBhcnQs
CiAgICAgICAgICAgICAgICAgICBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAg
ICAgICAgICAgU2VsZW5pdW1Db29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAg
U2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVt
VGVzdERyaXZlclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQWN0aW9u
U2VxdWVuY2VQcm90b2NvbFBhcnRdCkBAIC0yNjcsOCArMjc2LDkgQEAgY2xhc3MgU2VsZW5pdW1S
dW4oVGltZWRSdW5uZXIpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnByb3RvY29s
LmJhc2Uuc2V0X3RpbWVvdXQodGltZW91dCArIHNlbGYuZXh0cmFfdGltZW91dCkKICAgICAgICAg
ZXhjZXB0IGV4Y2VwdGlvbnMuRXJyb3JJblJlc3BvbnNlRXhjZXB0aW9uOgotICAgICAgICAgICAg
c2VsZi5sb2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVyIGNvbm5lY3Rpb24iKQotICAgICAgICAg
ICAgcmV0dXJuIFN0b3AKKyAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0
aW9uIgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgcmV0
dXJuICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICBkZWYgcnVuX2Z1bmMoc2VsZik6CiAg
ICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9yc2Vydm8ucHkKaW5kZXggZWZlOTNhYmM2OWM3Li5mMzIyNDIxYmQzZmEgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZv
LnB5CkBAIC0xLDQgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgogaW1wb3J0IGJhc2U2NAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwpAQCAtNyw3ICs2LDYgQEAg
aW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBv
cnQgdXVpZAotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9zdHIsIGl0ZXJpdGVtcwogCiBmcm9tIG1v
enByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAKQEAgLTIzLDcgKzIxLDYgQEAgZnJvbSAu
YmFzZSBpbXBvcnQgKENvbm5lY3Rpb25sZXNzUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAg
V2RzcGVjUHJvdG9jb2wpCiBmcm9tIC5wcm9jZXNzIGltcG9ydCBQcm9jZXNzVGVzdEV4ZWN1dG9y
CiBmcm9tIC4uYnJvd3NlcnMuYmFzZSBpbXBvcnQgYnJvd3Nlcl9jb21tYW5kCi1mcm9tIC4ucHJv
Y2VzcyBpbXBvcnQgY2FzdF9lbnYKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTZXJ2
b0RyaXZlclNlcnZlcgogCiAKQEAgLTQ4LDcgKzQ1LDcgQEAgZGVmIGJ1aWxkX3NlcnZvX2NvbW1h
bmQodGVzdCwgdGVzdF91cmxfZnVuYywgYnJvd3NlciwgYmluYXJ5LCBwYXVzZV9hZnRlcl90ZXN0
LAogICAgICAgICBhcmdzICs9IFsiLVoiLCBkZWJ1Z19vcHRzXQogICAgIGZvciBzdHlsZXNoZWV0
IGluIGJyb3dzZXIudXNlcl9zdHlsZXNoZWV0czoKICAgICAgICAgYXJncyArPSBbIi0tdXNlci1z
dHlsZXNoZWV0Iiwgc3R5bGVzaGVldF0KLSAgICBmb3IgcHJlZiwgdmFsdWUgaW4gaXRlcml0ZW1z
KHRlc3QuZW52aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KSk6CisgICAgZm9yIHByZWYsIHZhbHVl
IGluIHRlc3QuZW52aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KS5pdGVtcygpOgogICAgICAgICBh
cmdzICs9IFsiLS1wcmVmIiwgIiVzPSVzIiAlIChwcmVmLCB2YWx1ZSldCiAgICAgaWYgYnJvd3Nl
ci5jYV9jZXJ0aWZpY2F0ZV9wYXRoOgogICAgICAgICBhcmdzICs9IFsiLS1jZXJ0aWZpY2F0ZS1w
YXRoIiwgYnJvd3Nlci5jYV9jZXJ0aWZpY2F0ZV9wYXRoXQpAQCAtMTAzLDExICsxMDAsMTEgQEAg
Y2xhc3MgU2Vydm9UZXN0aGFybmVzc0V4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgogICAg
ICAgICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9W3NlbGYu
b25fb3V0cHV0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmlu
aXNoPXNlbGYub25fZmluaXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW52PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rv
cmVPdXRwdXQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5jb21tYW5k
LCBlbnY9Y2FzdF9lbnYoZW52KSkKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3Mu
UG9wZW4oc2VsZi5jb21tYW5kLCBlbnY9ZW52KQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAg
IHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllcgpAQCAtMjM1
LDcgKzIzMiw3IEBAIGNsYXNzIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0
b3IpOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICAg
ICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPVtzZWxmLm9u
X291dHB1dF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW52PWVudikKIAogCiAgICAgICAgICAgICAgICAgdHJ5OgpAQCAtMjQ3LDcgKzI0NCw3IEBA
IGNsYXNzIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgogICAgICAg
ICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBz
ZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKICAgICAgICAg
ICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHJ2ID0gc2VsZi5wcm9jLndhaXQoKQog
ICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKQEAgLTI2NCw3ICsyNjEs
OSBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKICAg
ICAgICAgICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwgInJiIikgYXMgZjoKICAgICAgICAgICAg
ICAgICAjIE1pZ2h0IG5lZWQgdG8gc3RyaXAgdmFyaWFibGUgaGVhZGVycyBvciBzb21ldGhpbmcg
aGVyZQogICAgICAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQotICAgICAgICAgICAgICAgIHJl
dHVybiBUcnVlLCBbZW5zdXJlX3N0cihiYXNlNjQuYjY0ZW5jb2RlKGRhdGEpKV0KKyAgICAgICAg
ICAgICAgICAjIFJldHVybmluZyB0aGUgc2NyZWVuc2hvdCBhcyBhIHN0cmluZyBjb3VsZCBwb3Rl
bnRpYWxseSBiZSBhdm9pZGVkLAorICAgICAgICAgICAgICAgICMgc2VlIGh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODkyOS4KKyAgICAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZSwgW2Jhc2U2NC5iNjRlbmNvZGUoZGF0YSkuZGVjb2RlKCldCiAKICAgICBk
ZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAgcmVzdWx0ID0gc2VsZi5pbXBsZW1lbnRh
dGlvbi5ydW5fdGVzdCh0ZXN0KQpAQCAtMzU3LDExICszNTYsMTEgQEAgY2xhc3MgU2Vydm9DcmFz
aHRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKIAogICAgICAgICBpZiBub3Qgc2Vs
Zi5pbnRlcmFjdGl2ZToKICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKGNv
bW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9l
bnYoZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZU91dHB1dD1GYWxz
ZSkKICAgICAgICAgICAgIHNlbGYucHJvYy5ydW4oKQogICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3Blbihjb21tYW5kLCBlbnY9Y2FzdF9lbnYoZW52
KSkKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwgZW52
PWVudikKIAogICAgICAgICBzZWxmLnByb2Mud2FpdCgpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9l
eGVjdXRvcnNlcnZvZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKaW5k
ZXggMmNkMWRiZjNhZDA2Li4wMzliY2QxNGUyYmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cnNlcnZvZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5CkBAIC0x
MCw3ICsxMCw2IEBAIGZyb20gLmJhc2UgaW1wb3J0IChQcm90b2NvbCwKICAgICAgICAgICAgICAg
ICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLAogICAgICAgICAgICAgICAgICAgIFRpbWVkUnVubmVy
LAogICAgICAgICAgICAgICAgICAgIHN0cmlwX3NlcnZlcikKLWZyb20gLi50ZXN0cnVubmVyIGlt
cG9ydCBTdG9wCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgd2FpdF9mb3Jfc2Vydmlj
ZQogCiB3ZWJkcml2ZXIgPSBOb25lCkBAIC0xODQsOCArMTgzLDkgQEAgY2xhc3MgU2Vydm9XZWJE
cml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgICAgICAg
ICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbi50aW1lb3V0cy5zY3JpcHQgPSB0aW1lb3V0CiAg
ICAgICAgICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAogICAgICAgICAgICAgZXhjZXB0
IElPRXJyb3I6Ci0gICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3Qgd2ViZHJp
dmVyIGNvbm5lY3Rpb24iKQotICAgICAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgICAg
ICAgICAgbXNnID0gIkxvc3QgV2ViRHJpdmVyIGNvbm5lY3Rpb24iCisgICAgICAgICAgICAgICAg
c2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgICAgIHJldHVybiAoIklOVEVSTkFM
LUVSUk9SIiwgbXNnKQogCiAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBTZXJ2b1dlYkRyaXZlclJ1
bihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuZG9fdGVzdGhhcm5lc3MsCkBAIC0yNzYsOCArMjc2LDkgQEAgY2xhc3MgU2Vydm9XZWJE
cml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICBz
ZWxmLnByb3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0ID0gdGltZW91dAogICAgICAgICAg
ICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9y
OgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IHdlYmRyaXZlciBjb25u
ZWN0aW9uIikKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICAgICAgICAgIG1z
ZyA9ICJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9uIgorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgICAgICByZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIs
IG1zZykKIAogICAgICAgICByZXR1cm4gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5sb2dnZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zY3JlZW5zaG90LApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJp
dmVyLnB5CmluZGV4IGJhZDVmZDA3MjIzNy4uNmQ1OTE2YTZhZmJjIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5
CkBAIC0xLDQgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQK
IGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGltcG9ydCBzb2NrZXQKQEAgLTYsNyArNSw3IEBAIGlt
cG9ydCB0aHJlYWRpbmcKIGltcG9ydCB0aW1lCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQgdXVp
ZAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCitmcm9tIHVybGxp
Yi5wYXJzZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC5iYXNlIGltcG9ydCAoQ2FsbGJhY2tIYW5k
bGVyLAogICAgICAgICAgICAgICAgICAgIENyYXNodGVzdEV4ZWN1dG9yLApAQCAtMjAsMjIgKzE5
LDIzIEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9y
UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwK
KyAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAg
IEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0
RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZVRlc3RS
ZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNldFBlcm1pc3Npb25Q
cm90b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50aWNhdG9y
UHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKKyAgICAgICAgICAg
ICAgICAgICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCisgICAgICAgICAg
ICAgICAgICAgICAgIERlYnVnUHJvdG9jb2xQYXJ0KQogCi1pbXBvcnQgd2ViZHJpdmVyIGFzIGNs
aWVudAorZnJvbSB3ZWJkcml2ZXIuY2xpZW50IGltcG9ydCBTZXNzaW9uCiBmcm9tIHdlYmRyaXZl
ciBpbXBvcnQgZXJyb3IKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAogCiBj
bGFzcyBXZWJEcml2ZXJDYWxsYmFja0hhbmRsZXIoQ2FsbGJhY2tIYW5kbGVyKToKLSAgICB1bmlt
cGxlbWVudGVkX2V4YyA9IChOb3RJbXBsZW1lbnRlZEVycm9yLCBjbGllbnQuVW5rbm93bkNvbW1h
bmRFeGNlcHRpb24pCisgICAgdW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50ZWRFcnJv
ciwgZXJyb3IuVW5rbm93bkNvbW1hbmRFeGNlcHRpb24pCiAKIAogY2xhc3MgV2ViRHJpdmVyQmFz
ZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3Mg
V2ViRHJpdmVyQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0
X3RpbWVvdXQoc2VsZiwgdGltZW91dCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYu
d2ViZHJpdmVyLnRpbWVvdXRzLnNjcmlwdCA9IHRpbWVvdXQKLSAgICAgICAgZXhjZXB0IGNsaWVu
dC5XZWJEcml2ZXJFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCBlcnJvci5XZWJEcml2ZXJFeGNl
cHRpb246CiAgICAgICAgICAgICAjIHdvcmthcm91bmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9y
Zy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTIwNTcKICAgICAgICAgICAgIGJvZHkg
PSB7InR5cGUiOiAic2NyaXB0IiwgIm1zIjogdGltZW91dCAqIDEwMDB9CiAgICAgICAgICAgICBz
ZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ0aW1lb3V0cyIsIGJv
ZHkpCkBAIC03MSwxNiArNzEsMTYgQEAgY2xhc3MgV2ViRHJpdmVyQmFzZVByb3RvY29sUGFydChC
YXNlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIHRyeToK
ICAgICAgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgiIikK
LSAgICAgICAgICAgIGV4Y2VwdCAoY2xpZW50LlRpbWVvdXRFeGNlcHRpb24sCi0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudC5TY3JpcHRUaW1lb3V0RXhjZXB0aW9uLAotICAgICAgICAgICAgICAg
ICAgICBjbGllbnQuSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uKToKKyAgICAgICAgICAgIGV4Y2Vw
dCAoZXJyb3IuVGltZW91dEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IuU2Ny
aXB0VGltZW91dEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IuSmF2YXNjcmlw
dEVycm9yRXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICAjIEEgSmF2YXNjcmlwdEVycm9yRXhj
ZXB0aW9uIHdpbGwgaGFwcGVuIHdoZW4gd2UgbmF2aWdhdGU7CiAgICAgICAgICAgICAgICAgIyBi
eSBpZ25vcmluZyBpdCBpdCdzIHBvc3NpYmxlIHRvIHJlbG9hZCB0aGUgdGVzdCB3aGlsc3QgdGhl
CiAgICAgICAgICAgICAgICAgIyBoYXJuZXNzIHJlbWFpbnMgcGF1c2VkCiAgICAgICAgICAgICAg
ICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwKLSAgICAgICAgICAg
ICAgICAgICAgY2xpZW50Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJy
b3IuTm9TdWNoV2luZG93RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICBlcnJvci5Vbmtu
b3duRXJyb3JFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAgICAgIElPRXJyb3IpOgogICAgICAg
ICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgpAQCAtMTE2LDcg
KzExNiw3IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KFRlc3RoYXJu
ZXNzUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxm
LndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0gaGFuZGxlCiAgICAgICAgICAgICAgICAgc2VsZi53
ZWJkcml2ZXIud2luZG93LmNsb3NlKCkKLSAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQuTm9TdWNo
V2luZG93RXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjZXB0IGVycm9yLk5vU3VjaFdpbmRvd0V4
Y2VwdGlvbjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYud2ViZHJpdmVyLndp
bmRvd19oYW5kbGUgPSBzZWxmLnJ1bm5lcl9oYW5kbGUKICAgICAgICAgcmV0dXJuIHNlbGYucnVu
bmVyX2hhbmRsZQpAQCAtMTkwLDYgKzE5MCwxNSBAQCBjbGFzcyBXZWJEcml2ZXJDbGlja1Byb3Rv
Y29sUGFydChDbGlja1Byb3RvY29sUGFydCk6CiAgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNr
KCkKIAogCitjbGFzcyBXZWJEcml2ZXJDb29raWVzUHJvdG9jb2xQYXJ0KENvb2tpZXNQcm90b2Nv
bFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBz
ZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMoc2VsZik6
CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkRlbGV0aW5nIGFsbCBjb29raWVzIikKKyAgICAg
ICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJERUxFVEUiLCAi
Y29va2llIikKKworCiBjbGFzcyBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5
c1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRy
aXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgpAQCAtMTk3LDcgKzIwNiw3IEBAIGNsYXNzIFdl
YkRyaXZlclNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICBk
ZWYgc2VuZF9rZXlzKHNlbGYsIGVsZW1lbnQsIGtleXMpOgogICAgICAgICB0cnk6CiAgICAgICAg
ICAgICByZXR1cm4gZWxlbWVudC5zZW5kX2tleXMoa2V5cykKLSAgICAgICAgZXhjZXB0IGNsaWVu
dC5Vbmtub3duRXJyb3JFeGNlcHRpb24gYXMgZToKKyAgICAgICAgZXhjZXB0IGVycm9yLlVua25v
d25FcnJvckV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGh0dHBzOi8v
YnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xOTk5CiAg
ICAgICAgICAgICBpZiAoZS5odHRwX3N0YXR1cyAhPSA1MDAgb3IKICAgICAgICAgICAgICAgICBl
LnN0YXR1c19jb2RlICE9ICJ1bmtub3duIGVycm9yIik6CkBAIC0yMjcsOCArMjM2LDEyIEBAIGNs
YXNzIFdlYkRyaXZlclRlc3REcml2ZXJQcm90b2NvbFBhcnQoVGVzdERyaXZlclByb3RvY29sUGFy
dCk6CiAgICAgICAgICAgICBvYmpbIm1lc3NhZ2UiXSA9IHN0cihtZXNzYWdlKQogICAgICAgICBz
ZWxmLndlYmRyaXZlci5leGVjdXRlX3NjcmlwdCgid2luZG93LnBvc3RNZXNzYWdlKCVzLCAnKicp
IiAlIGpzb24uZHVtcHMob2JqKSkKIAotICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGZy
YW1lX251bWJlcik6Ci0gICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9mcmFtZShmcmFtZV9u
dW1iZXIpCisgICAgZGVmIF9zd2l0Y2hfdG9fZnJhbWUoc2VsZiwgaW5kZXhfb3JfZWxlbSk6Cisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9mcmFtZShpbmRl
eF9vcl9lbGVtKQorICAgICAgICBleGNlcHQgKGVycm9yLlN0YWxlRWxlbWVudFJlZmVyZW5jZUV4
Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICBlcnJvci5Ob1N1Y2hGcmFtZUV4Y2VwdGlvbikgYXMg
ZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IgZnJvbSBlCiAKICAgICBkZWYgX3N3aXRj
aF90b19wYXJlbnRfZnJhbWUoc2VsZik6CiAgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF9m
cmFtZSgicGFyZW50IikKQEAgLTI4MywxNyArMjk2LDI0IEBAIGNsYXNzIFdlYkRyaXZlclZpcnR1
YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQ
YXJ0CiAgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgi
UE9TVCIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL3V2IiAlIGF1dGhlbnRpY2F0b3JfaWQs
IHV2KQogCiAKK2NsYXNzIFdlYkRyaXZlckRlYnVnUHJvdG9jb2xQYXJ0KERlYnVnUHJvdG9jb2xQ
YXJ0KToKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcigpCisKKwogY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgog
ICAgIGltcGxlbWVudHMgPSBbV2ViRHJpdmVyQmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgIFdlYkRyaXZlclRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgV2ViRHJpdmVyU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJE
cml2ZXJDbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckNvb2tp
ZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZW5kS2V5c1Byb3Rv
Y29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckFjdGlvblNlcXVlbmNlUHJvdG9j
b2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVGVzdERyaXZlclByb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckdlbmVyYXRlVGVzdFJlcG9ydFByb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclNldFBlcm1pc3Npb25Qcm90b2NvbFBh
cnQsCi0gICAgICAgICAgICAgICAgICBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3Rv
Y29sUGFydF0KKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclZpcnR1YWxBdXRoZW50aWNhdG9y
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyRGVidWdQcm90b2NvbFBh
cnRdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxp
dGllcywgKiprd2FyZ3MpOgogICAgICAgICBzdXBlcihXZWJEcml2ZXJQcm90b2NvbCwgc2VsZiku
X19pbml0X18oZXhlY3V0b3IsIGJyb3dzZXIpCkBAIC0zMDgsNyArMzI4LDcgQEAgY2xhc3MgV2Vi
RHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICBob3N0LCBwb3J0ID0gc2VsZi51cmwu
c3BsaXQoIjoiKVsxXS5zdHJpcCgiLyIpLCBzZWxmLnVybC5zcGxpdCgnOicpWy0xXS5zdHJpcCgi
LyIpCiAKICAgICAgICAgY2FwYWJpbGl0aWVzID0geyJhbHdheXNNYXRjaCI6IHNlbGYuY2FwYWJp
bGl0aWVzfQotICAgICAgICBzZWxmLndlYmRyaXZlciA9IGNsaWVudC5TZXNzaW9uKGhvc3QsIHBv
cnQsIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgICAgIHNlbGYud2ViZHJpdmVyID0g
U2Vzc2lvbihob3N0LCBwb3J0LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQogICAgICAgICBz
ZWxmLndlYmRyaXZlci5zdGFydCgpCiAKICAgICBkZWYgdGVhcmRvd24oc2VsZik6CkBAIC0zMzEs
NyArMzUxLDcgQEAgY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAg
ICAgIyA1IHNlY29uZHMgb2YgZXh0cmFfdGltZW91dCB3ZSBoYXZlIGFzIG1heGltdW0gdG8gZW5k
IHRoZSB0ZXN0IGJlZm9yZQogICAgICAgICAgICAgIyB0aGUgZXh0ZXJuYWwgdGltZW91dCBmcm9t
IHRlc3RydW5uZXIgdHJpZ2dlcnMuCiAgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5zZW5kX3Nl
c3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdyIsIHRpbWVvdXQ9MikKLSAgICAgICAgZXhjZXB0
IChzb2NrZXQudGltZW91dCwgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwgY2xpZW50Lklu
dmFsaWRTZXNzaW9uSWRFeGNlcHRpb24pOgorICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0
LCBlcnJvci5Vbmtub3duRXJyb3JFeGNlcHRpb24sIGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNl
cHRpb24pOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJldHVybiBUcnVlCiAK
QEAgLTM0MywxOSArMzYzLDIwIEBAIGNsYXNzIFdlYkRyaXZlclJ1bihUaW1lZFJ1bm5lcik6CiAg
ICAgZGVmIHNldF90aW1lb3V0KHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxm
LnByb3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQoc2VsZi50aW1lb3V0ICsgc2VsZi5leHRyYV90aW1l
b3V0KQotICAgICAgICBleGNlcHQgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIikKLSAg
ICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgIGV4Y2VwdCBlcnJvci5Vbmtub3duRXJyb3JF
eGNlcHRpb246CisgICAgICAgICAgICBtc2cgPSAiTG9zdCBXZWJEcml2ZXIgY29ubmVjdGlvbiIK
KyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgIHJldHVybiAo
IklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIHJ1bl9mdW5jKHNlbGYpOgogICAgICAg
ICB0cnk6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUsIHNlbGYuZnVuYyhzZWxmLnBy
b3RvY29sLCBzZWxmLnVybCwgc2VsZi50aW1lb3V0KQotICAgICAgICBleGNlcHQgKGNsaWVudC5U
aW1lb3V0RXhjZXB0aW9uLCBjbGllbnQuU2NyaXB0VGltZW91dEV4Y2VwdGlvbik6CisgICAgICAg
IGV4Y2VwdCAoZXJyb3IuVGltZW91dEV4Y2VwdGlvbiwgZXJyb3IuU2NyaXB0VGltZW91dEV4Y2Vw
dGlvbik6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVP
VVQiLCBOb25lKQotICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBjbGllbnQuVW5rbm93
bkVycm9yRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgZXJyb3Iu
VW5rbm93bkVycm9yRXhjZXB0aW9uKToKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2Us
ICgiQ1JBU0giLCBOb25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAg
ICAgICBpZiAoaXNpbnN0YW5jZShlLCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uKSBhbmQKKyAg
ICAgICAgICAgIGlmIChpc2luc3RhbmNlKGUsIGVycm9yLldlYkRyaXZlckV4Y2VwdGlvbikgYW5k
CiAgICAgICAgICAgICAgICAgICAgIGUuaHR0cF9zdGF0dXMgPT0gNDA4IGFuZAogICAgICAgICAg
ICAgICAgICAgICBlLnN0YXR1c19jb2RlID09ICJhc3luY2hyb25vdXMgc2NyaXB0IHRpbWVvdXQi
KToKICAgICAgICAgICAgICAgICAjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vYnVncy5jaHJvbWl1
bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDAxCkBAIC00NDksNyArNDcw
LDcgQEAgY2xhc3MgV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1
dG9yKToKICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkgb3IgbGVu
KHJlc3VsdCkgIT0gMjoKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAg
IGlzX2FsaXZlID0gc2VsZi5pc19hbGl2ZSgpCi0gICAgICAgICAgICAgICAgZXhjZXB0IGNsaWVu
dC5XZWJEcml2ZXJFeGNlcHRpb246CisgICAgICAgICAgICAgICAgZXhjZXB0IGVycm9yLldlYkRy
aXZlckV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAgICAgaXNfYWxpdmUgPSBGYWxzZQogCiAg
ICAgICAgICAgICAgICAgaWYgbm90IGlzX2FsaXZlOgpAQCAtNDgzLDcgKzUwNCw3IEBAIGlmIChs
b2NhdGlvbi5ocmVmID09PSAiYWJvdXQ6YmxhbmsiKSB7CiB9IGVsc2UgewogICBkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIiwgKCkgPT4ge2lmIChkb2N1bWVudC5y
ZWFkeVN0YXRlICE9PSAibG9hZGluZyIpIHtjYWxsYmFjayh0cnVlKX19KTsKIH0iIiIsIGFzeW5j
aHJvbm91cz1UcnVlKQotICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5KYXZhc2NyaXB0RXJyb3JF
eGNlcHRpb246CisgICAgICAgICAgICBleGNlcHQgZXJyb3IuSmF2YXNjcmlwdEVycm9yRXhjZXB0
aW9uOgogICAgICAgICAgICAgICAgICMgV2UgY2FuIGdldCBhbiBlcnJvciBoZXJlIGlmIHRoZSBz
Y3JpcHQgcnVucyBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuawogICAgICAgICAgICAgICAgICMg
ZG9jdW1lbnQgYmVmb3JlIGl0IGhhcyBuYXZpZ2F0ZWQsIHdpdGggdGhlIGRyaXZlciByZXR1cm5p
bmcgYW4gZXJyb3IKICAgICAgICAgICAgICAgICAjIGluZGljYXRpbmcgdGhhdCB0aGUgZG9jdW1l
bnQgd2FzIHVubG9hZGVkCkBAIC00OTcsNyArNTE4LDcgQEAgY2xhc3MgV2ViRHJpdmVyUmVmVGVz
dEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKICAgICAg
ICAgICAgICAgICAgc2NyZWVuc2hvdF9jYWNoZT1Ob25lLCBjbG9zZV9hZnRlcl9kb25lPVRydWUs
Ci0gICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsICoq
a3dhcmdzKToKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCBjYXBhYmlsaXRpZXM9
Tm9uZSwgZGVidWdfdGVzdD1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJXZWJEcml2ZXIt
YmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCiAgICAgICAgIFJlZlRlc3RFeGVjdXRvci5f
X2luaXRfXyhzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLApA
QCAtNTEyLDYgKzUzMyw3IEBAIGNsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0
RXhlY3V0b3IpOgogICAgICAgICBzZWxmLmltcGxlbWVudGF0aW9uID0gUmVmVGVzdEltcGxlbWVu
dGF0aW9uKHNlbGYpCiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3NlX2FmdGVy
X2RvbmUKICAgICAgICAgc2VsZi5oYXNfd2luZG93ID0gRmFsc2UKKyAgICAgICAgc2VsZi5kZWJ1
Z190ZXN0ID0gZGVidWdfdGVzdAogCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVy
ZSwgInRlc3Qtd2FpdC5qcyIpKSBhcyBmOgogICAgICAgICAgICAgc2VsZi53YWl0X3NjcmlwdCA9
IGYucmVhZCgpICUgeyJjbGFzc25hbWUiOiAicmVmdGVzdC13YWl0In0KQEAgLTUyOSwxMyArNTUx
LDE2IEBAIGNsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgog
ICAgICAgICApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJp
dmVyLndpbmRvdy5wb3NpdGlvbiA9ICgwLCAwKQotICAgICAgICBleGNlcHQgY2xpZW50LkludmFs
aWRBcmd1bWVudEV4Y2VwdGlvbjoKKyAgICAgICAgZXhjZXB0IGVycm9yLkludmFsaWRBcmd1bWVu
dEV4Y2VwdGlvbjoKICAgICAgICAgICAgICMgU2FmYXJpIDEyIHRocm93cyB3aXRoIDAgb3IgMSwg
dHJlYXRpbmcgdGhlbSBhcyBib29sczsgZml4ZWQgaW4gU1RQCiAgICAgICAgICAgICBzZWxmLnBy
b3RvY29sLndlYmRyaXZlci53aW5kb3cucG9zaXRpb24gPSAoMiwgMikKICAgICAgICAgc2VsZi5w
cm90b2NvbC53ZWJkcml2ZXIud2luZG93LnNpemUgPSAoODAwICsgd2lkdGhfb2Zmc2V0LCA2MDAg
KyBoZWlnaHRfb2Zmc2V0KQogCiAgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24u
cnVuX3Rlc3QodGVzdCkKIAorICAgICAgICBpZiBzZWxmLmRlYnVnX3Rlc3QgYW5kIHJlc3VsdFsi
c3RhdHVzIl0gaW4gWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiXSBhbmQgImV4dHJhIiBpbiByZXN1
bHQ6CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXpl
cih0ZXN0LCByZXN1bHQpCisKICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVz
dCwgcmVzdWx0KQogCiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6
ZSwgZHBpLCBwYWdlX3Jhbmdlcyk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvcHJvdG9jb2wucHkKaW5kZXggYmQ3NjhiMTA3M2M3Li5mOTU0N2FkOTA0YmMgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9wcm90b2NvbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKQEAgLTEs
NiArMSw3IEBACiBpbXBvcnQgdHJhY2ViYWNrCiAKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBh
YnN0cmFjdG1ldGhvZAorZnJvbSB0eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBMaXN0LCBUeXBlCiAK
IAogY2xhc3MgUHJvdG9jb2wob2JqZWN0KToKQEAgLTE2LDcgKzE3LDcgQEAgY2xhc3MgUHJvdG9j
b2wob2JqZWN0KToKICAgICA6cGFyYW0gQnJvd3NlciBicm93c2VyOiBUaGUgQnJvd3NlciB1c2lu
ZyB0aGlzIHByb3RvY29sIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKIAotICAgIGlt
cGxlbWVudHMgPSBbXQorICAgIGltcGxlbWVudHMgPSBbXSAgIyB0eXBlOiBDbGFzc1ZhcltMaXN0
W1R5cGVbUHJvdG9jb2xQYXJ0XV1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3Is
IGJyb3dzZXIpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKQEAgLTgyLDcgKzgz
LDcgQEAgY2xhc3MgUHJvdG9jb2xQYXJ0KG9iamVjdCk6CiAgICAgOnBhcmFtIFByb3RvY29sIHBh
cmVudDogVGhlIHBhcmVudCBwcm90b2NvbCIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRh
CiAKLSAgICBuYW1lID0gTm9uZQorICAgIG5hbWUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW3N0
cl0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgogICAgICAgICBzZWxmLnBhcmVu
dCA9IHBhcmVudApAQCAtMjgxLDYgKzI4MiwxOCBAQCBjbGFzcyBDbGlja1Byb3RvY29sUGFydChQ
cm90b2NvbFBhcnQpOgogICAgICAgICBwYXNzCiAKIAorY2xhc3MgQ29va2llc1Byb3RvY29sUGFy
dChQcm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9yIG1hbmFnaW5nIGNvb2tp
ZXMiIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJjb29raWVz
IgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGRlbGV0ZV9hbGxfY29va2llcyhzZWxm
KToKKyAgICAgICAgIiIiRGVsZXRlIGFsbCBjb29raWVzLiIiIgorICAgICAgICBwYXNzCisKKwog
Y2xhc3MgU2VuZEtleXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAiIiJQcm90b2Nv
bCBwYXJ0IGZvciBwZXJmb3JtaW5nIHRydXN0ZWQgY2xpY2tzIiIiCiAgICAgX19tZXRhY2xhc3Nf
XyA9IEFCQ01ldGEKQEAgLTM1OCw0MyArMzcxLDcyIEBAIGNsYXNzIFRlc3REcml2ZXJQcm90b2Nv
bFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiBBZGRpdGlv
bmFsIGRhdGEgdG8gYWRkIHRvIHRoZSBtZXNzYWdlLiIiIgogICAgICAgICBwYXNzCiAKLSAgICBk
ZWYgc3dpdGNoX3RvX3dpbmRvdyhzZWxmLCB3cHRydW5uZXJfaWQpOgorICAgIGRlZiBzd2l0Y2hf
dG9fd2luZG93KHNlbGYsIHdwdHJ1bm5lcl9pZCwgaW5pdGlhbF93aW5kb3c9Tm9uZSk6CiAgICAg
ICAgICIiIlN3aXRjaCB0byBhIHdpbmRvdyBnaXZlbiBhIHdwdHJ1bm5lciB3aW5kb3cgaWQKIAot
ICAgICAgICA6cGFyYW0gc3RyIHdwdHJ1bm5lcl9pZDogd2luZG93IGlkIiIiCisgICAgICAgIDpw
YXJhbSBzdHIgd3B0cnVubmVyX2lkOiBUZXN0ZHJpdmVyLXNwZWNpZmljIGlkIGZvciB0aGUgdGFy
Z2V0IHdpbmRvdworICAgICAgICA6cGFyYW0gc3RyIGluaXRpYWxfd2luZG93OiBXZWJEcml2ZXIg
d2luZG93IGlkIGZvciB0aGUgdGVzdCB3aW5kb3ciIiIKICAgICAgICAgaWYgd3B0cnVubmVyX2lk
IGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KIAorICAgICAgICBpZiBpbml0aWFsX3dpbmRv
dyBpcyBOb25lOgorICAgICAgICAgICAgaW5pdGlhbF93aW5kb3cgPSBzZWxmLnBhcmVudC5iYXNl
LmN1cnJlbnRfd2luZG93CisKICAgICAgICAgc3RhY2sgPSBbc3RyKGl0ZW0pIGZvciBpdGVtIGlu
IHNlbGYucGFyZW50LmJhc2Uud2luZG93X2hhbmRsZXMoKV0KKyAgICAgICAgZmlyc3QgPSBUcnVl
CiAgICAgICAgIHdoaWxlIHN0YWNrOgogICAgICAgICAgICAgaXRlbSA9IHN0YWNrLnBvcCgpCisK
ICAgICAgICAgICAgIGlmIGl0ZW0gaXMgTm9uZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZmly
c3QgaXMgRmFsc2UKICAgICAgICAgICAgICAgICBzZWxmLl9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1l
KCkKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNl
KGl0ZW0sIHN0cik6Ci0gICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5zZXRfd2luZG93
KGl0ZW0pCisKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgc3RyKToKKyAgICAgICAg
ICAgICAgICBpZiBub3QgZmlyc3Qgb3IgaXRlbSAhPSBpbml0aWFsX3dpbmRvdzoKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5zZXRfd2luZG93KGl0ZW0pCisgICAgICAgICAg
ICAgICAgZmlyc3QgPSBGYWxzZQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9zd2l0Y2hfdG9fZnJhbWUoaXRlbSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgZmlyc3Qg
aXMgRmFsc2UKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYu
X3N3aXRjaF90b19mcmFtZShpdGVtKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
OgorICAgICAgICAgICAgICAgICAgICAjIFRoZSBmcmFtZSBubyBsb25nZXIgZXhpc3RzLCBvciBk
b2Vzbid0IGhhdmUgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCwgc28gY29udGludWUKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgIGhhbmRsZV93aW5kb3dfaWQgPSBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJy
ZXR1cm4gd2luZG93Ll9fd3B0cnVubmVyX2lkIikKLSAgICAgICAgICAgICAgICBpZiBzdHIoaGFu
ZGxlX3dpbmRvd19pZCkgPT0gd3B0cnVubmVyX2lkOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgICAgICAgICAjIEdldCB0aGUgd2luZG93IGlkIGFuZCBhIGxpc3Qgb2YgZWxl
bWVudHMgY29udGFpbmluZyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMuCisgICAgICAgICAgICAg
ICAgIyBGb3IgZW1iZWQgd2UgY2FuJ3QgdGVsbCBmcHIgc3VyZSBpZiB0aGVyZSdzIGEgbmVzdGVk
IGJyb3dzaW5nIGNvbnRleHQsIHNvIGFsd2F5cyByZXR1cm4gaXQKKyAgICAgICAgICAgICAgICAj
IGFuZCBmYWlsIGxhdGVyIGlmIHRoZXJlIGlzbid0CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
c2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgiIiIKKyAgICAgICAgICAgICAgICBsZXQg
Y29udGV4dFBhcmVudHMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImZy
YW1lLCBpZnJhbWUsIGVtYmVkLCBvYmplY3QiKSkKKyAgICAgICAgICAgICAgICAgICAgLmZpbHRl
cihlbGVtID0+IGVsZW0ubG9jYWxOYW1lICE9PSAiZW1iZWQiID8gKGVsZW0uY29udGVudFdpbmRv
dyAhPT0gbnVsbCkgOiB0cnVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gW3dpbmRvdy5fX3dw
dHJ1bm5lcl9pZCwgY29udGV4dFBhcmVudHNdIiIiKQogICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBmcmFtZV9jb3VudCA9IHNl
bGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3cubGVuZ3RoIikKLSAg
ICAgICAgICAgICMgTm9uZSBoZXJlIG1ha2VzIHVzIHN3aXRjaCBiYWNrIHRvIHRoZSBwYXJlbnQg
YWZ0ZXIgd2UndmUgcHJvY2Vzc2VkIGFsbCB0aGUgc3ViZnJhbWVzCi0gICAgICAgICAgICBzdGFj
ay5hcHBlbmQoTm9uZSkKLSAgICAgICAgICAgIGlmIGZyYW1lX2NvdW50OgotICAgICAgICAgICAg
ICAgIHN0YWNrLmV4dGVuZChyZXZlcnNlZChyYW5nZSgwLCBmcmFtZV9jb3VudCkpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIHJlc3VsdCBpcyBOb25lOgorICAg
ICAgICAgICAgICAgICMgV2l0aCBtYXJpb25ldHRlIGF0IGxlYXN0IHRoaXMgaXMgcG9zc2libGUg
aWYgdGhlIGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVkLiBOb3QgcXVpdGUKKyAgICAgICAgICAgICAg
ICAjIHN1cmUgaG93IHdlIHdhbnQgdG8gaGFuZGxlIHRoYXQgY2FzZS4KKyAgICAgICAgICAgICAg
ICBjb250aW51ZQorCisgICAgICAgICAgICBoYW5kbGVfd2luZG93X2lkLCBuZXN0ZWRfY29udGV4
dF9jb250YWluZXJzID0gcmVzdWx0CisKKyAgICAgICAgICAgIGlmIGhhbmRsZV93aW5kb3dfaWQg
YW5kIHN0cihoYW5kbGVfd2luZG93X2lkKSA9PSB3cHRydW5uZXJfaWQ6CisgICAgICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgICAgIGZvciBlbGVtIGluIHJldmVyc2VkKG5lc3RlZF9jb250
ZXh0X2NvbnRhaW5lcnMpOgorICAgICAgICAgICAgICAgICMgTm9uZSBoZXJlIG1ha2VzIHVzIHN3
aXRjaCBiYWNrIHRvIHRoZSBwYXJlbnQgYWZ0ZXIgd2UndmUgcHJvY2Vzc2VkIHRoZSBmcmFtZQor
ICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZChOb25lKQorICAgICAgICAgICAgICAgIHN0YWNr
LmFwcGVuZChlbGVtKQogCiAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiV2luZG93IHdpdGggaWQg
JXMgbm90IGZvdW5kIiAlIHdwdHJ1bm5lcl9pZCkKIAogICAgIEBhYnN0cmFjdG1ldGhvZAotICAg
IGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGluZGV4KToKKyAgICBkZWYgX3N3aXRjaF90b19m
cmFtZShzZWxmLCBpbmRleF9vcl9lbGVtKToKICAgICAgICAgIiIiU3dpdGNoIHRvIGEgZnJhbWUg
aW4gdGhlIGN1cnJlbnQgd2luZG93CiAKLSAgICAgICAgOnBhcmFtIGludCBpbmRleDogRnJhbWUg
aWQiIiIKKyAgICAgICAgOnBhcmFtIGludCBpbmRleF9vcl9lbGVtOiBGcmFtZSBpZCBvciBjb250
YWluZXIgZWxlbWVudCIiIgogICAgICAgICBwYXNzCiAKICAgICBAYWJzdHJhY3RtZXRob2QKQEAg
LTUwMywzICs1NDUsMzIgQEAgY2xhc3MgUHJpbnRQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToK
ICAgICBkZWYgcmVuZGVyX2FzX3BkZihzZWxmLCB3aWR0aCwgaGVpZ2h0KToKICAgICAgICAgIiIi
T3V0cHV0IGRvY3VtZW50IGFzIFBERiIiIgogICAgICAgICBwYXNzCisKKworY2xhc3MgRGVidWdQ
cm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBkZWJ1
Z2dpbmcgdGVzdCBmYWlsdXJlcy4iIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisg
ICAgbmFtZSA9ICJkZWJ1ZyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBsb2FkX2Rl
dnRvb2xzKHNlbGYpOgorICAgICAgICAiIiJMb2FkIGRldnRvb2xzIGluIHRoZSBjdXJyZW50IHdp
bmRvdyIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgbG9hZF9yZWZ0ZXN0X2FuYWx5emVyKHNl
bGYsIHRlc3QsIHJlc3VsdCk6CisgICAgICAgIGltcG9ydCBpbworICAgICAgICBpbXBvcnQgbW96
bG9nCisgICAgICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCBxdW90ZSwgdXJsam9pbgorCisg
ICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2VyID0gbW96bG9nLnN0cnVjdHVyZWRsb2cuU3RydWN0dXJl
ZExvZ2dlcigiZGVidWdfdGVzdCIpCisgICAgICAgIG91dHB1dCA9IGlvLlN0cmluZ0lPKCkKKyAg
ICAgICAgZGVidWdfdGVzdF9sb2dnZXIuc3VpdGVfc3RhcnQoW10pCisgICAgICAgIGRlYnVnX3Rl
c3RfbG9nZ2VyLmFkZF9oYW5kbGVyKG1vemxvZy5oYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1
dCwgZm9ybWF0dGVyPW1vemxvZy5mb3JtYXR0ZXJzLlRicGxGb3JtYXR0ZXIoKSkpCisgICAgICAg
IGRlYnVnX3Rlc3RfbG9nZ2VyLnRlc3Rfc3RhcnQodGVzdC5pZCkKKyAgICAgICAgIyBBbHdheXMg
dXNlIFBBU1MgYXMgdGhlIGV4cGVjdGVkIHZhbHVlIHNvIHdlIGdldCBvdXRwdXQgZXZlbiBmb3Ig
ZXhwZWN0ZWQgZmFpbHVyZXMKKyAgICAgICAgZGVidWdfdGVzdF9sb2dnZXIudGVzdF9lbmQodGVz
dC5pZCwgcmVzdWx0WyJzdGF0dXMiXSwgIlBBU1MiLCBleHRyYT1yZXN1bHQuZ2V0KCJleHRyYSIp
KQorCisgICAgICAgIHNlbGYucGFyZW50LmJhc2UubG9hZCh1cmxqb2luKHNlbGYucGFyZW50LmV4
ZWN1dG9yLnNlcnZlcl91cmwoImh0dHBzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiL2NvbW1vbi90aGlyZF9wYXJ0eS9yZWZ0ZXN0LWFuYWx5emVyLnhodG1sI2xvZz0lcyIgJQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlKG91dHB1dC5nZXR2YWx1ZSgpKSkp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRl
c3RydW5uZXIvcnVubmVyLnB5CmluZGV4IDNkMzI5MTc2NTliMy4uNTA4MTlhOTM1ODk5IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0
cnVubmVyL3J1bm5lci5weQpAQCAtMjQsNyArMjQsNyBAQCBkZWYgZG9fZGVsYXllZF9pbXBvcnRz
KCk6CiAgICAgaW1wb3J0IHB5dGVzdAogCiAKLWRlZiBydW4ocGF0aCwgc2VydmVyX2NvbmZpZywg
c2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCk6CitkZWYgcnVuKHBhdGgsIHNlcnZlcl9jb25maWcs
IHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTAsIGVudmlyb249Tm9uZSk6CiAgICAgIiIiCiAgICAg
UnVuIFB5dGhvbiB0ZXN0IGF0IGBgcGF0aGBgIGluIHB5dGVzdC4gIFRoZSBwcm92aWRlZCBgYHNl
c3Npb25gYAogICAgIGlzIGV4cG9zZWQgYXMgYSBmaXh0dXJlIGF2YWlsYWJsZSBpbiB0aGUgc2Nv
cGUgb2YgdGhlIHRlc3QgZnVuY3Rpb25zLgpAQCAtNDEsMjggKzQxLDQwIEBAIGRlZiBydW4ocGF0
aCwgc2VydmVyX2NvbmZpZywgc2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCk6CiAgICAgaWYgcHl0
ZXN0IGlzIE5vbmU6CiAgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCiAKLSAgICBvcy5lbnZp
cm9uWyJXRF9IT1NUIl0gPSBzZXNzaW9uX2NvbmZpZ1siaG9zdCJdCi0gICAgb3MuZW52aXJvblsi
V0RfUE9SVCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCi0gICAgb3MuZW52aXJvblsi
V0RfQ0FQQUJJTElUSUVTIl0gPSBqc29uLmR1bXBzKHNlc3Npb25fY29uZmlnWyJjYXBhYmlsaXRp
ZXMiXSkKLSAgICBvcy5lbnZpcm9uWyJXRF9TRVJWRVJfQ09ORklHIl0gPSBqc29uLmR1bXBzKHNl
cnZlcl9jb25maWcuYXNfZGljdF9mb3Jfd2RfZW52X3ZhcmlhYmxlKCkpCi0KLSAgICBoYXJuZXNz
ID0gSGFybmVzc1Jlc3VsdFJlY29yZGVyKCkKLSAgICBzdWJ0ZXN0cyA9IFN1YnRlc3RSZXN1bHRS
ZWNvcmRlcigpCi0KLSAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBweXRlc3QubWFpbihbIi0tc3RyaWN0IiwgICMgdHVybiB3
YXJuaW5ncyBpbnRvIGVycm9ycwotICAgICAgICAgICAgICAgICAgICAgICAgICItdnYiLCAgIyBz
aG93IGVhY2ggaW5kaXZpZHVhbCBzdWJ0ZXN0IGFuZCBmdWxsIGZhaWx1cmUgbG9ncwotICAgICAg
ICAgICAgICAgICAgICAgICAgICItLWNhcHR1cmUiLCAibm8iLCAgIyBlbmFibGUgc3Rkb3V0L3N0
ZGVyciBmcm9tIHRlc3RzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmFzZXRlbXAiLCBj
YWNoZSwgICMgdGVtcG9yYXJ5IGRpcmVjdG9yeQotICAgICAgICAgICAgICAgICAgICAgICAgICIt
LXNob3dsb2NhbHMiLCAgIyBkaXNwbGF5IGNvbnRlbnRzIG9mIHZhcmlhYmxlcyBpbiBsb2NhbCBz
Y29wZQotICAgICAgICAgICAgICAgICAgICAgICAgICItcCIsICJubzptb3psb2ciLCAgIyB1c2Ug
dGhlIFdQVCByZXN1bHQgcmVjb3JkZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAi
bm86Y2FjaGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUgcHJlc2VydmF0aW9uIGFjcm9zcyBp
bnZvY2F0aW9ucwotICAgICAgICAgICAgICAgICAgICAgICAgICItbz1jb25zb2xlX291dHB1dF9z
dHlsZT1jbGFzc2ljIiwgICMgZGlzYWJsZSB0ZXN0IHByb2dyZXNzIGJhcgotICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhdGhdLAotICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucz1baGFy
bmVzcywgc3VidGVzdHNdKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAg
ICAgICBoYXJuZXNzLm91dGNvbWUgPSAoIklOVEVSTkFMLUVSUk9SIiwgc3RyKGUpKQorICAgIG9s
ZF9lbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICB0cnk6CisgICAgICAgIHdpdGggVGVt
cG9yYXJ5RGlyZWN0b3J5KCkgYXMgY2FjaGU6CisgICAgICAgICAgICBvcy5lbnZpcm9uWyJXRF9I
T1NUIl0gPSBzZXNzaW9uX2NvbmZpZ1siaG9zdCJdCisgICAgICAgICAgICBvcy5lbnZpcm9uWyJX
RF9QT1JUIl0gPSBzdHIoc2Vzc2lvbl9jb25maWdbInBvcnQiXSkKKyAgICAgICAgICAgIG9zLmVu
dmlyb25bIldEX0NBUEFCSUxJVElFUyJdID0ganNvbi5kdW1wcyhzZXNzaW9uX2NvbmZpZ1siY2Fw
YWJpbGl0aWVzIl0pCisKKyAgICAgICAgICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5qb2luKGNh
Y2hlLCAid2Rfc2VydmVyX2NvbmZpZy5qc29uIikKKyAgICAgICAgICAgIG9zLmVudmlyb25bIldE
X1NFUlZFUl9DT05GSUdfRklMRSJdID0gY29uZmlnX3BhdGgKKyAgICAgICAgICAgIHdpdGggb3Bl
bihjb25maWdfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGpzb24uZHVtcChzZXJ2
ZXJfY29uZmlnLmFzX2RpY3QoKSwgZikKKworICAgICAgICAgICAgaWYgZW52aXJvbjoKKyAgICAg
ICAgICAgICAgICBvcy5lbnZpcm9uLnVwZGF0ZShlbnZpcm9uKQorCisgICAgICAgICAgICBoYXJu
ZXNzID0gSGFybmVzc1Jlc3VsdFJlY29yZGVyKCkKKyAgICAgICAgICAgIHN1YnRlc3RzID0gU3Vi
dGVzdFJlc3VsdFJlY29yZGVyKCkKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IHB5dGVzdC5tYWluKFsiLS1zdHJpY3QiLCAgIyB0dXJuIHdhcm5pbmdzIGludG8gZXJyb3JzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICItdnYiLCAgIyBzaG93IGVhY2ggaW5kaXZpZHVh
bCBzdWJ0ZXN0IGFuZCBmdWxsIGZhaWx1cmUgbG9ncworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiLS1jYXB0dXJlIiwgIm5vIiwgICMgZW5hYmxlIHN0ZG91dC9zdGRlcnIgZnJvbSB0ZXN0
cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1iYXNldGVtcCIsIGNhY2hlLCAgIyB0
ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLXNob3ds
b2NhbHMiLCAgIyBkaXNwbGF5IGNvbnRlbnRzIG9mIHZhcmlhYmxlcyBpbiBsb2NhbCBzY29wZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAibm86bW96bG9nIiwgICMgdXNlIHRo
ZSBXUFQgcmVzdWx0IHJlY29yZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItcCIs
ICJubzpjYWNoZXByb3ZpZGVyIiwgICMgZGlzYWJsZSBzdGF0ZSBwcmVzZXJ2YXRpb24gYWNyb3Nz
IGludm9jYXRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbz1jb25zb2xlX291
dHB1dF9zdHlsZT1jbGFzc2ljIiwgICMgZGlzYWJsZSB0ZXN0IHByb2dyZXNzIGJhcgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwbHVnaW5zPVtoYXJuZXNzLCBzdWJ0ZXN0c10pCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgaGFybmVzcy5vdXRjb21lID0gKCJJTlRFUk5BTC1F
UlJPUiIsIHN0cihlKSkKKworICAgIGZpbmFsbHk6CisgICAgICAgIG9zLmVudmlyb24gPSBvbGRf
ZW52aXJvbgogCiAgICAgcmV0dXJuIChoYXJuZXNzLm91dGNvbWUsIHN1YnRlc3RzLnJlc3VsdHMp
CiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4cGVjdGVkdHJlZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4cGVjdGVkdHJlZS5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc2YWRlOTVmMDdmNwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4cGVjdGVkdHJlZS5weQpAQCAtMCwwICsxLDEzMSBAQAorZnJvbSBtYXRoIGltcG9ydCBsb2cK
K2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CisKK2NsYXNzIE5vZGUob2JqZWN0
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcHJvcCwgdmFsdWUpOgorICAgICAgICBzZWxmLnBy
b3AgPSBwcm9wCisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorICAgICAgICBzZWxmLnBhcmVu
dCA9IE5vbmUKKworICAgICAgICBzZWxmLmNoaWxkcmVuID0gc2V0KCkKKworICAgICAgICAjIFBv
cHVsYXRlZCBmb3IgbGVhZiBub2RlcworICAgICAgICBzZWxmLnJ1bl9pbmZvID0gc2V0KCkKKyAg
ICAgICAgc2VsZi5yZXN1bHRfdmFsdWVzID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAgZGVmIGFk
ZChzZWxmLCBub2RlKToKKyAgICAgICAgc2VsZi5jaGlsZHJlbi5hZGQobm9kZSkKKyAgICAgICAg
bm9kZS5wYXJlbnQgPSBzZWxmCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHlp
ZWxkIHNlbGYKKyAgICAgICAgZm9yIG5vZGUgaW4gc2VsZi5jaGlsZHJlbjoKKyAgICAgICAgICAg
IGZvciBpdGVtIGluIG5vZGU6CisgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVm
IF9fbGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiAxICsgc3VtKGxlbihpdGVtKSBmb3IgaXRl
bSBpbiBzZWxmLmNoaWxkcmVuKQorCisKK2RlZiBlbnRyb3B5KHJlc3VsdHMpOgorICAgICIiIlRo
aXMgaXMgYmFzaWNhbGx5IGEgbWVhc3VyZSBvZiB0aGUgdW5pZm9ybWl0eSBvZiB0aGUgdmFsdWVz
IGluIHJlc3VsdHMKKyAgICBiYXNlZCBvbiB0aGUgc2hhbm5vbiBlbnRyb3B5IiIiCisKKyAgICBy
ZXN1bHRfY291bnRzID0gZGVmYXVsdGRpY3QoaW50KQorICAgIHRvdGFsID0gZmxvYXQobGVuKHJl
c3VsdHMpKQorICAgIGZvciB2YWx1ZXMgaW4gcmVzdWx0cy52YWx1ZXMoKToKKyAgICAgICAgIyBO
b3Qgc3VyZSB0aGlzIGlzIHJpZ2h0LCBwb3NzaWJseSB3YW50IHRvIHRyZWF0IG11bHRpcGxlIHZh
bHVlcyBhcworICAgICAgICAjIGRpc3RpbmN0IGZyb20gbXVsdGlwbGUgb2YgdGhlIHNhbWUgdmFs
dWU/CisgICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1ZXM6CisgICAgICAgICAgICByZXN1bHRfY291
bnRzW3ZhbHVlXSArPSAxCisKKyAgICBlbnRyb3B5X3N1bSA9IDAKKworICAgIGZvciBjb3VudCBp
biByZXN1bHRfY291bnRzLnZhbHVlcygpOgorICAgICAgICBwcm9wID0gZmxvYXQoY291bnQpIC8g
dG90YWwKKyAgICAgICAgZW50cm9weV9zdW0gLT0gcHJvcCAqIGxvZyhwcm9wLCAyKQorCisgICAg
cmV0dXJuIGVudHJvcHlfc3VtCisKKworZGVmIHNwbGl0X3Jlc3VsdHMocHJvcCwgcmVzdWx0cyk6
CisgICAgIiIiU3BsaXQgYSBkaWN0aW9uYXJ5IG9mIHJlc3VsdHMgaW50byBhIGRpY3Rpb25hcnkg
b2YgZGljdGlvbmFyaWVzIHdoZXJlCisgICAgZWFjaCBzdWItZGljdGlvbmFyeSBoYXMgYSBzcGVj
aWZpYyB2YWx1ZSBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkiIiIKKyAgICBieV9wcm9wID0gZGVmYXVs
dGRpY3QoZGljdCkKKyAgICBmb3IgcnVuX2luZm8sIHZhbHVlIGluIHJlc3VsdHMuaXRlbXMoKToK
KyAgICAgICAgYnlfcHJvcFtydW5faW5mb1twcm9wXV1bcnVuX2luZm9dID0gdmFsdWUKKworICAg
IHJldHVybiBieV9wcm9wCisKKworZGVmIGJ1aWxkX3RyZWUocHJvcGVydGllcywgZGVwZW5kZW50
X3Byb3BzLCByZXN1bHRzLCB0cmVlPU5vbmUpOgorICAgICIiIkJ1aWxkIGEgZGVjaXNpb24gdHJl
ZSBtYXBwaW5nIHByb3BlcnRpZXMgdG8gcmVzdWx0cworCisgICAgOnBhcmFtIHByb3BlcnRpZXM6
IC0gQSBsaXN0IG9mIHJ1bl9pbmZvIHByb3BlcnRpZXMgdG8gY29uc2lkZXIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiB0aGUgdHJlZQorICAgIDpwYXJhbSBkZXBlbmRlbnRfcHJvcHM6IC0g
QSBkaWN0aW9uYXJ5IG1hcHBpbmcgcHJvcGVydHkgbmFtZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdG8gcHJvcGVydGllcyB0aGF0IHNob3VsZCBvbmx5IGJlIGNvbnNpZGVyZWQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBr
ZXkuIEZvciBleGFtcGxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im9zIjogWyJ2
ZXJzaW9uIl19IG1lYW5zIHRoYXQgInZlcnNpb24iIHdvbid0CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBiZSB1c2VkIHVudGlsIGFmdGVyIG9zLgorICAgIDpwYXJhbSByZXN1bHRzOiBE
aWN0aW9uYXJ5IG1hcHBpbmcgcnVuX2luZm8gdG8gc2V0IG9mIHJlc3VsdHMKKyAgICA6dHJlZTog
QSBOb2RlIG9iamVjdCB0byB1c2UgYXMgdGhlIHJvb3Qgb2YgdGhlIChzdWIpdHJlZSIiIgorCisg
ICAgaWYgdHJlZSBpcyBOb25lOgorICAgICAgICB0cmVlID0gTm9kZShOb25lLCBOb25lKQorCisg
ICAgcHJvcF9pbmRleCA9IHtwcm9wOiBpIGZvciBpLCBwcm9wIGluIGVudW1lcmF0ZShwcm9wZXJ0
aWVzKX0KKworICAgIGFsbF9yZXN1bHRzID0gZGVmYXVsdGRpY3QoaW50KQorICAgIGZvciByZXN1
bHRfdmFsdWVzIGluIHJlc3VsdHMudmFsdWVzKCk6CisgICAgICAgIGZvciByZXN1bHRfdmFsdWUs
IGNvdW50IGluIHJlc3VsdF92YWx1ZXMuaXRlbXMoKToKKyAgICAgICAgICAgIGFsbF9yZXN1bHRz
W3Jlc3VsdF92YWx1ZV0gKz0gY291bnQKKworICAgICMgSWYgdGhlcmUgaXMgb25seSBvbmUgcmVz
dWx0IHdlIGFyZSBkb25lCisgICAgaWYgbm90IHByb3BlcnRpZXMgb3IgbGVuKGFsbF9yZXN1bHRz
KSA9PSAxOgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIGFsbF9yZXN1bHRzLml0ZW1zKCk6
CisgICAgICAgICAgICB0cmVlLnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CisgICAgICAg
IHRyZWUucnVuX2luZm8gfD0gc2V0KHJlc3VsdHMua2V5cygpKQorICAgICAgICByZXR1cm4gdHJl
ZQorCisgICAgcmVzdWx0c19wYXJ0aXRpb25zID0gW10KKyAgICByZW1vdmVfcHJvcGVydGllcyA9
IHNldCgpCisgICAgZm9yIHByb3AgaW4gcHJvcGVydGllczoKKyAgICAgICAgcmVzdWx0X3NldHMg
PSBzcGxpdF9yZXN1bHRzKHByb3AsIHJlc3VsdHMpCisgICAgICAgIGlmIGxlbihyZXN1bHRfc2V0
cykgPT0gMToKKyAgICAgICAgICAgICMgSWYgdGhpcyBwcm9wZXJ0eSBkb2Vzbid0IHBhcnRpdGlv
biB0aGUgc3BhY2UgdGhlbiBqdXN0IHJlbW92ZSBpdAorICAgICAgICAgICAgIyBmcm9tIHRoZSBz
ZXQgdG8gY29uc2lkZXIKKyAgICAgICAgICAgIHJlbW92ZV9wcm9wZXJ0aWVzLmFkZChwcm9wKQor
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbmV3X2VudHJvcHkgPSAwLgorICAgICAgICBy
ZXN1bHRzX3NldHNfZW50cm9weSA9IFtdCisgICAgICAgIGZvciBwcm9wX3ZhbHVlLCByZXN1bHRf
c2V0IGluIHJlc3VsdF9zZXRzLml0ZW1zKCk6CisgICAgICAgICAgICByZXN1bHRzX3NldHNfZW50
cm9weS5hcHBlbmQoKGVudHJvcHkocmVzdWx0X3NldCksIHByb3BfdmFsdWUsIHJlc3VsdF9zZXQp
KQorICAgICAgICAgICAgbmV3X2VudHJvcHkgKz0gKGZsb2F0KGxlbihyZXN1bHRfc2V0KSkgLyBs
ZW4ocmVzdWx0cykpICogcmVzdWx0c19zZXRzX2VudHJvcHlbLTFdWzBdCisKKyAgICAgICAgcmVz
dWx0c19wYXJ0aXRpb25zLmFwcGVuZCgobmV3X2VudHJvcHksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdHNfc2V0c19lbnRyb3B5KSkKKworICAgICMgSW4gdGhlIGNhc2UgdGhhdCBubyBwcm9w
ZXJ0aWVzIHBhcnRpdGlvbiB0aGUgc3BhY2UKKyAgICBpZiBub3QgcmVzdWx0c19wYXJ0aXRpb25z
OgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIGFsbF9yZXN1bHRzLml0ZW1zKCk6CisgICAg
ICAgICAgICB0cmVlLnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CisgICAgICAgIHRyZWUu
cnVuX2luZm8gfD0gc2V0KHJlc3VsdHMua2V5cygpKQorICAgICAgICByZXR1cm4gdHJlZQorCisg
ICAgIyBzcGxpdCBieSB0aGUgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBlbnRyb3B5CisgICAg
cmVzdWx0c19wYXJ0aXRpb25zLnNvcnQoa2V5PWxhbWJkYSB4OiAoeFswXSwgcHJvcF9pbmRleFt4
WzFdXSkpCisgICAgXywgYmVzdF9wcm9wLCBzdWJfcmVzdWx0cyA9IHJlc3VsdHNfcGFydGl0aW9u
c1swXQorCisgICAgIyBDcmVhdGUgYSBuZXcgc2V0IG9mIHByb3BlcnRpZXMgdGhhdCBjYW4gYmUg
dXNlZAorICAgIG5ld19wcm9wcyA9IHByb3BlcnRpZXNbOnByb3BfaW5kZXhbYmVzdF9wcm9wXV0g
KyBwcm9wZXJ0aWVzW3Byb3BfaW5kZXhbYmVzdF9wcm9wXSArIDE6XQorICAgIG5ld19wcm9wcy5l
eHRlbmQoZGVwZW5kZW50X3Byb3BzLmdldChiZXN0X3Byb3AsIFtdKSkKKyAgICBpZiByZW1vdmVf
cHJvcGVydGllczoKKyAgICAgICAgbmV3X3Byb3BzID0gW2l0ZW0gZm9yIGl0ZW0gaW4gbmV3X3By
b3BzIGlmIGl0ZW0gbm90IGluIHJlbW92ZV9wcm9wZXJ0aWVzXQorCisgICAgZm9yIF8sIHByb3Bf
dmFsdWUsIHJlc3VsdHNfc2V0cyBpbiBzdWJfcmVzdWx0czoKKyAgICAgICAgbm9kZSA9IE5vZGUo
YmVzdF9wcm9wLCBwcm9wX3ZhbHVlKQorICAgICAgICB0cmVlLmFkZChub2RlKQorICAgICAgICBi
dWlsZF90cmVlKG5ld19wcm9wcywgZGVwZW5kZW50X3Byb3BzLCByZXN1bHRzX3NldHMsIG5vZGUp
CisgICAgcmV0dXJuIHRyZWUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5CmluZGV4IDkxMDM1OGY1
MTU5Ni4uMzllMjQ4YjI1MWIwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKQEAgLTc3LDEz
ICs3NywxNSBAQCBjbGFzcyBGb250SW5zdGFsbGVyKG9iamVjdCk6CiAKICAgICAgICAgIyBQZXIg
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXN1bHRzLWNvbGxlY3Rpb24v
aXNzdWVzLzIxOAogICAgICAgICAjIGluc3RhbGxpbmcgQWhlbSBvbiBtYWNPUyBpcyBmbGFreSwg
c28gY2hlY2sgaWYgaXQgYWN0dWFsbHkgaW5zdGFsbGVkCi0gICAgICAgIGZvbnRzID0gY2hlY2tf
b3V0cHV0KFsnL3Vzci9zYmluL3N5c3RlbV9wcm9maWxlcicsICcteG1sJywgJ1NQRm9udHNEYXRh
VHlwZSddKQorICAgICAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBmOgorICAgICAg
ICAgICAgZm9udHMgPSBjaGVja19vdXRwdXQoWycvdXNyL3NiaW4vc3lzdGVtX3Byb2ZpbGVyJywg
Jy14bWwnLCAnU1BGb250c0RhdGFUeXBlJ10sIHN0ZGVycj1mKQorCiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgICMgaWYgcHkzCi0gICAgICAgICAgICByZWFkUGxpc3RGcm9tQnl0ZXMgPSBwbGlz
dGxpYi5yZWFkUGxpc3RGcm9tQnl0ZXMKKyAgICAgICAgICAgIGxvYWRfcGxpc3QgPSBwbGlzdGxp
Yi5sb2FkcwogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICByZWFk
UGxpc3RGcm9tQnl0ZXMgPSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tU3RyaW5nCi0gICAgICAgIGZv
bnRzID0gcmVhZFBsaXN0RnJvbUJ5dGVzKGZvbnRzKQorICAgICAgICAgICAgbG9hZF9wbGlzdCA9
IHBsaXN0bGliLnJlYWRQbGlzdEZyb21TdHJpbmcKKyAgICAgICAgZm9udHMgPSBsb2FkX3BsaXN0
KGZvbnRzKQogICAgICAgICBhc3NlcnQgbGVuKGZvbnRzKSA9PSAxCiAgICAgICAgIGZvciBmb250
IGluIGZvbnRzWzBdWydfaXRlbXMnXToKICAgICAgICAgICAgIGlmIGZvbnRbJ3BhdGgnXSA9PSBp
bnN0YWxsZWRfZm9udF9wYXRoOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9fX2luaXRfXy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1h
dHRlcnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJz
L2Nocm9taXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTg2
ZjMzMzBhZjlmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weQpAQCAtMCww
ICsxLDI3NiBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCB0aW1lCisKK2Zyb20gY29sbGVjdGlvbnMg
aW1wb3J0IGRlZmF1bHRkaWN0Citmcm9tIG1vemxvZy5mb3JtYXR0ZXJzIGltcG9ydCBiYXNlCisK
KworY2xhc3MgQ2hyb21pdW1Gb3JtYXR0ZXIoYmFzZS5CYXNlRm9ybWF0dGVyKTogICMgdHlwZTog
aWdub3JlCisgICAgIiIiRm9ybWF0dGVyIHRvIHByb2R1Y2UgcmVzdWx0cyBtYXRjaGluZyB0aGUg
Q2hyb21pdW0gSlNPTiBUZXN0IFJlc3VsdHMgZm9ybWF0LgorICAgIGh0dHBzOi8vY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0ZXIvZG9jcy90ZXN0aW5nL2pzb25f
dGVzdF9yZXN1bHRzX2Zvcm1hdC5tZAorCisgICAgTm90YWJseSwgZWFjaCB0ZXN0IGhhcyBhbiAi
YXJ0aWZhY3RzIiBmaWVsZCB0aGF0IGlzIGEgZGljdCBjb25zaXN0aW5nIG9mCisgICAgICAgICJs
b2ciOiBhIGxpc3Qgb2Ygc3RyaW5ncyAob25lIHBlciBzdWJ0ZXN0ICsgb25lIGZvciBoYXJuZXNz
IHN0YXR1cywgc2VlCisgICAgICAgICAgICBfYXBwZW5kX3Rlc3RfbWVzc2FnZSBmb3IgdGhlIGZv
cm1hdCkKKyAgICAgICAgInNjcmVlbnNob3RzIjogYSBsaXN0IG9mIHN0cmluZ3MgaW4gdGhlIGZv
cm1hdCBvZiAidXJsOiBiYXNlNjQiCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKKyAgICAgICAgIyBXaGV0aGVyIHRoZSBydW4gd2FzIGludGVycnVwdGVkLCBlaXRoZXIgYnkg
dGhlIHRlc3QgcnVubmVyIG9yIHVzZXIuCisgICAgICAgIHNlbGYuaW50ZXJydXB0ZWQgPSBGYWxz
ZQorCisgICAgICAgICMgQSBtYXAgb2YgdGVzdCBzdGF0dXMgdG8gdGhlIG51bWJlciBvZiB0ZXN0
cyB0aGF0IGhhZCB0aGF0IHN0YXR1cy4KKyAgICAgICAgc2VsZi5udW1fZmFpbHVyZXNfYnlfc3Rh
dHVzID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAgICAgICMgU3RhcnQgdGltZSwgZXhwcmVzc2Vk
IGFzIG9mZnNldCBzaW5jZSBVTklYIGVwb2NoIGluIHNlY29uZHMuCisgICAgICAgIHNlbGYuc3Rh
cnRfdGltZXN0YW1wX3NlY29uZHMgPSBOb25lCisKKyAgICAgICAgIyBUcmllIG9mIHRlc3QgcmVz
dWx0cy4gRWFjaCBkaXJlY3RvcnkgaW4gdGhlIHRlc3QgbmFtZSBpcyBhIG5vZGUgaW4KKyAgICAg
ICAgIyB0aGUgdHJpZSBhbmQgdGhlIGxlYWYgY29udGFpbnMgdGhlIGRpY3Qgb2YgcGVyLXRlc3Qg
ZGF0YS4KKyAgICAgICAgc2VsZi50ZXN0cyA9IHt9CisKKyAgICAgICAgIyBUd28gZGljdGlvbmFy
aWVzIGtleWVkIGJ5IHRlc3QgbmFtZS4gVmFsdWVzIGFyZSBsaXN0cyBvZiBzdHJpbmdzOgorICAg
ICAgICAjIGFjdHVhbCBtZXRhZGF0YSBjb250ZW50IGFuZCBvdGhlciBtZXNzYWdlcywgcmVzcGVj
dGl2ZWx5LgorICAgICAgICAjIFNlZSBfYXBwZW5kX3Rlc3RfbWVzc2FnZSBmb3IgZXhhbXBsZXMu
CisgICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhID0gZGVmYXVsdGRpY3QobGlzdCkKKyAgICAg
ICAgc2VsZi5tZXNzYWdlcyA9IGRlZmF1bHRkaWN0KGxpc3QpCisKKyAgICAgICAgIyBMaXN0IG9m
IHRlc3RzIHRoYXQgaGF2ZSBmYWlsaW5nIHN1YnRlc3RzLgorICAgICAgICBzZWxmLnRlc3RzX3dp
dGhfc3VidGVzdF9mYWlscyA9IHNldCgpCisKKyAgICAgICAgIyBCcm93c2VyIGxvZyBmb3IgdGhl
IGN1cnJlbnQgdGVzdCB1bmRlciBleGVjdXRpb24uCisgICAgICAgICMgVGhlc2UgbG9ncyBhcmUg
ZnJvbSBDaHJvbWVEcml2ZXIncyBzdGRvdXQvZXJyLCBzbyB3ZSBjYW5ub3Qgc2F5IGZvcgorICAg
ICAgICAjIHN1cmUgd2hpY2ggdGVzdCBhIG1lc3NhZ2UgaXMgZnJvbSwgYnV0IGluc3RlYWQgd2Ug
Y29ycmVsYXRlIHRoZW0gYmFzZWQKKyAgICAgICAgIyBvbiB0aW1pbmcuCisgICAgICAgIHNlbGYu
YnJvd3Nlcl9sb2cgPSBbXQorCisgICAgZGVmIF9hcHBlbmRfdGVzdF9tZXNzYWdlKHNlbGYsIHRl
c3QsIHN1YnRlc3QsIHdwdF9hY3R1YWxfc3RhdHVzLCBtZXNzYWdlKToKKyAgICAgICAgciIiIgor
ICAgICAgICBBcHBlbmRzIHRoZSBtZXNzYWdlIGRhdGEgZm9yIGEgdGVzdCBvciBzdWJ0ZXN0Lgor
CisgICAgICAgIDpwYXJhbSBzdHIgdGVzdDogdGhlIG5hbWUgb2YgdGhlIHRlc3QKKyAgICAgICAg
OnBhcmFtIHN0ciBzdWJ0ZXN0OiB0aGUgbmFtZSBvZiB0aGUgc3VidGVzdCB3aXRoIHRoZSBtZXNz
YWdlLiBXaWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSBpZiB0aGlzIGlz
IGNhbGxlZCBmb3IgYSB0ZXN0LgorICAgICAgICA6cGFyYW0gc3RyIHdwdF9hY3R1YWxfc3RhdHVz
OiB0aGUgdGVzdCBzdGF0dXMgYXMgcmVwb3J0ZWQgYnkgV1BUCisgICAgICAgIDpwYXJhbSBzdHIg
bWVzc2FnZTogdGhlIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIG1lc3NhZ2UgZm9yIHRoaXMgdGVz
dAorCisgICAgICAgIEV4YW1wbGUgYWN0dWFsX21ldGFkYXRhIG9mIGEgdGVzdCB3aXRoIGEgc3Vi
dGVzdDoKKyAgICAgICAgICAgICJbdGVzdF9uYW1lXVxuICBleHBlY3RlZDogT0tcbiIKKyAgICAg
ICAgICAgICIgIFtzdWJ0ZXN0X25hbWVdXG4gICAgZXhwZWN0ZWQ6IEZBSUxcbiIKKworICAgICAg
ICBOT1RFOiB0aHJvdWdob3V0IHRoaXMgZnVuY3Rpb24gd2Ugb3V0cHV0IGEga2V5IGNhbGxlZCAi
ZXhwZWN0ZWQiIGJ1dAorICAgICAgICBmaWxsIGl0IGluIHdpdGggdGhlIGFjdHVhbCBzdGF0dXMu
IFRoaXMgaXMgYnkgZGVzaWduLiBUaGUgZ29hbCBvZiB0aGlzCisgICAgICAgIG91dHB1dCBpcyB0
byBsb29rIGV4YWN0bHkgbGlrZSBXUFQncyBleHBlY3RhdGlvbiBtZXRhZGF0YSBzbyB0aGF0IGl0
CisgICAgICAgIGNhbiBiZSBlYXNpbHkgZGlmZi1lZC4KKworICAgICAgICBNZXNzYWdlcyBhcmUg
YXBwZW5kZWQgdmVyYmF0aW0gdG8gc2VsZi5tZXNzYWdlc1t0ZXN0XS4KKyAgICAgICAgIiIiCisg
ICAgICAgIGlmIHN1YnRlc3Q6CisgICAgICAgICAgICByZXN1bHQgPSAiICBbJXNdXG4gICAgZXhw
ZWN0ZWQ6ICVzXG4iICUgKHN1YnRlc3QsIHdwdF9hY3R1YWxfc3RhdHVzKQorICAgICAgICAgICAg
c2VsZi5hY3R1YWxfbWV0YWRhdGFbdGVzdF0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgICAgIGlm
IG1lc3NhZ2U6CisgICAgICAgICAgICAgICAgc2VsZi5tZXNzYWdlc1t0ZXN0XS5hcHBlbmQoIiVz
OiAlc1xuIiAlIChzdWJ0ZXN0LCBtZXNzYWdlKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICMgTm8gc3VidGVzdCwgc28gdGhpcyBpcyB0aGUgdG9wLWxldmVsIHRlc3QuIFRoZSByZXN1bHQg
bXVzdCBiZQorICAgICAgICAgICAgIyBwcmVwZW5kZWQgdG8gdGhlIGxpc3QsIHNvIHRoYXQgaXQg
Y29tZXMgYmVmb3JlIGFueSBzdWJ0ZXN0LgorICAgICAgICAgICAgdGVzdF9uYW1lX2xhc3RfcGFy
dCA9IHRlc3Quc3BsaXQoIi8iKVstMV0KKyAgICAgICAgICAgIHJlc3VsdCA9ICJbJXNdXG4gIGV4
cGVjdGVkOiAlc1xuIiAlICh0ZXN0X25hbWVfbGFzdF9wYXJ0LCB3cHRfYWN0dWFsX3N0YXR1cykK
KyAgICAgICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhW3Rlc3RdLmluc2VydCgwLCByZXN1bHQp
CisgICAgICAgICAgICBpZiBtZXNzYWdlOgorICAgICAgICAgICAgICAgIHNlbGYubWVzc2FnZXNb
dGVzdF0uaW5zZXJ0KDAsICJIYXJuZXNzOiAlc1xuIiAlIG1lc3NhZ2UpCisKKyAgICBkZWYgX2Fw
cGVuZF9hcnRpZmFjdChzZWxmLCBjdXJfZGljdCwgYXJ0aWZhY3RfbmFtZSwgYXJ0aWZhY3RfdmFs
dWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQXBwZW5kcyBhcnRpZmFjdHMgdG8gdGhlIHNwZWNp
ZmllZCBkaWN0aW9uYXJ5LgorICAgICAgICA6cGFyYW0gZGljdCBjdXJfZGljdDogdGhlIHRlc3Qg
bGVhZiBkaWN0aW9uYXJ5IHRvIGFwcGVuZCB0bworICAgICAgICA6cGFyYW0gc3RyIGFydGlmYWN0
X25hbWU6IHRoZSBuYW1lIG9mIHRoZSBhcnRpZmFjdAorICAgICAgICA6cGFyYW0gc3RyIGFydGlm
YWN0X3ZhbHVlOiB0aGUgdmFsdWUgb2YgdGhlIGFydGlmYWN0CisgICAgICAgICIiIgorICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShhcnRpZmFjdF92YWx1ZSwgc3RyKSwgImFydGlmYWN0X3ZhbHVl
IG11c3QgYmUgYSBzdHIiCisgICAgICAgIGlmICJhcnRpZmFjdHMiIG5vdCBpbiBjdXJfZGljdC5r
ZXlzKCk6CisgICAgICAgICAgICBjdXJfZGljdFsiYXJ0aWZhY3RzIl0gPSBkZWZhdWx0ZGljdChs
aXN0KQorICAgICAgICBjdXJfZGljdFsiYXJ0aWZhY3RzIl1bYXJ0aWZhY3RfbmFtZV0uYXBwZW5k
KGFydGlmYWN0X3ZhbHVlKQorCisgICAgZGVmIF9zdG9yZV90ZXN0X3Jlc3VsdChzZWxmLCBuYW1l
LCBhY3R1YWwsIGV4cGVjdGVkLCBhY3R1YWxfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlcywgd3B0X2FjdHVhbCwgc3VidGVzdF9mYWlsdXJlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVmdGVzdF9zY3JlZW5zaG90cz1Ob25lKToKKyAgICAgICAgIiIi
CisgICAgICAgIFN0b3JlcyB0aGUgcmVzdWx0IG9mIGEgc2luZ2xlIHRlc3QgaW4gfHNlbGYudGVz
dHN8CisKKyAgICAgICAgOnBhcmFtIHN0ciBuYW1lOiBuYW1lIG9mIHRoZSB0ZXN0LgorICAgICAg
ICA6cGFyYW0gc3RyIGFjdHVhbDogYWN0dWFsIHN0YXR1cyBvZiB0aGUgdGVzdC4KKyAgICAgICAg
OnBhcmFtIHN0ciBleHBlY3RlZDogZXhwZWN0ZWQgc3RhdHVzZXMgb2YgdGhlIHRlc3QuCisgICAg
ICAgIDpwYXJhbSBsaXN0IGFjdHVhbF9tZXRhZGF0YTogYSBsaXN0IG9mIG1ldGFkYXRhIGl0ZW1z
LgorICAgICAgICA6cGFyYW0gbGlzdCBtZXNzYWdlczogYSBsaXN0IG9mIHRlc3QgbWVzc2FnZXMu
CisgICAgICAgIDpwYXJhbSBzdHIgd3B0X2FjdHVhbDogYWN0dWFsIHN0YXR1cyByZXBvcnRlZCBi
eSB3cHQsIG1heSBkaWZmZXIgZnJvbSB8YWN0dWFsfC4KKyAgICAgICAgOnBhcmFtIGJvb2wgc3Vi
dGVzdF9mYWlsdXJlOiB3aGV0aGVyIHRoaXMgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBzdWJ0ZXN0
cy4KKyAgICAgICAgOnBhcmFtIE9wdGlvbmFsW2xpc3RdIHJlZnRlc3Rfc2NyZWVuc2hvdHM6IHNl
ZSBleGVjdXRvcnMvYmFzZS5weSBmb3IgZGVmaW5pdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAg
ICMgVGhlIHRlc3QgbmFtZSBjYW4gY29udGFpbiBhIGxlYWRpbmcgLyB3aGljaCB3aWxsIHByb2R1
Y2UgYW4gZW1wdHkKKyAgICAgICAgIyBzdHJpbmcgaW4gdGhlIGZpcnN0IHBvc2l0aW9uIG9mIHRo
ZSBsaXN0IHJldHVybmVkIGJ5IHNwbGl0LiBXZSB1c2UKKyAgICAgICAgIyBmaWx0ZXIoTm9uZSkg
dG8gcmVtb3ZlIHN1Y2ggZW50cmllcy4KKyAgICAgICAgbmFtZV9wYXJ0cyA9IGZpbHRlcihOb25l
LCBuYW1lLnNwbGl0KCIvIikpCisgICAgICAgIGN1cl9kaWN0ID0gc2VsZi50ZXN0cworICAgICAg
ICBmb3IgbmFtZV9wYXJ0IGluIG5hbWVfcGFydHM6CisgICAgICAgICAgICBjdXJfZGljdCA9IGN1
cl9kaWN0LnNldGRlZmF1bHQobmFtZV9wYXJ0LCB7fSkKKyAgICAgICAgY3VyX2RpY3RbImFjdHVh
bCJdID0gYWN0dWFsCisgICAgICAgIGN1cl9kaWN0WyJleHBlY3RlZCJdID0gZXhwZWN0ZWQKKyAg
ICAgICAgaWYgc3VidGVzdF9mYWlsdXJlOgorICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2FydGlm
YWN0KGN1cl9kaWN0LCAid3B0X3N1YnRlc3RfZmFpbHVyZSIsICJ0cnVlIikKKyAgICAgICAgaWYg
d3B0X2FjdHVhbCAhPSBhY3R1YWw6CisgICAgICAgICAgICBzZWxmLl9hcHBlbmRfYXJ0aWZhY3Qo
Y3VyX2RpY3QsICJ3cHRfYWN0dWFsX3N0YXR1cyIsIHdwdF9hY3R1YWwpCisgICAgICAgIGlmIHdw
dF9hY3R1YWwgPT0gJ0NSQVNIJzoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuYnJvd3Nl
cl9sb2c6CisgICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2FydGlmYWN0KGN1cl9kaWN0LCAi
d3B0X2NyYXNoX2xvZyIsIGxpbmUpCisgICAgICAgIGZvciBtZXRhZGF0YSBpbiBhY3R1YWxfbWV0
YWRhdGE6CisgICAgICAgICAgICBzZWxmLl9hcHBlbmRfYXJ0aWZhY3QoY3VyX2RpY3QsICJ3cHRf
YWN0dWFsX21ldGFkYXRhIiwgbWV0YWRhdGEpCisgICAgICAgIGZvciBtZXNzYWdlIGluIG1lc3Nh
Z2VzOgorICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2FydGlmYWN0KGN1cl9kaWN0LCAid3B0X2xv
ZyIsIG1lc3NhZ2UpCisKKyAgICAgICAgIyBTdG9yZSBzY3JlZW5zaG90cyAoaWYgYW55KS4KKyAg
ICAgICAgZm9yIGl0ZW0gaW4gcmVmdGVzdF9zY3JlZW5zaG90cyBvciBbXToKKyAgICAgICAgICAg
IGlmIG5vdCBpc2luc3RhbmNlKGl0ZW0sIGRpY3QpOgorICAgICAgICAgICAgICAgICMgU2tpcCB0
aGUgcmVsYXRpb24gc3RyaW5nLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAg
ICBkYXRhID0gIiVzOiAlcyIgJSAoaXRlbVsidXJsIl0sIGl0ZW1bInNjcmVlbnNob3QiXSkKKyAg
ICAgICAgICAgIHNlbGYuX2FwcGVuZF9hcnRpZmFjdChjdXJfZGljdCwgInNjcmVlbnNob3RzIiwg
ZGF0YSkKKworICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgdGhlcmUgd2FzIGEgcmVncmVzc2lvbiBv
ciB1bmV4cGVjdGVkIHN0YXR1cy4gVGhpcyBvbmx5CisgICAgICAgICMgaGFwcGVucyBmb3IgdGVz
dHMgdGhhdCB3ZXJlIHJ1bgorICAgICAgICBpZiBhY3R1YWwgIT0gIlNLSVAiOgorICAgICAgICAg
ICAgaWYgYWN0dWFsIG5vdCBpbiBleHBlY3RlZDoKKyAgICAgICAgICAgICAgICBjdXJfZGljdFsi
aXNfdW5leHBlY3RlZCJdID0gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIGFjdHVhbCAhPSAiUEFT
UyI6CisgICAgICAgICAgICAgICAgICAgIGN1cl9kaWN0WyJpc19yZWdyZXNzaW9uIl0gPSBUcnVl
CisKKyAgICBkZWYgX21hcF9zdGF0dXNfbmFtZShzZWxmLCBzdGF0dXMpOgorICAgICAgICAiIiIK
KyAgICAgICAgTWFwcyBhIFdQVCBzdGF0dXMgdG8gYSBDaHJvbWl1bSBzdGF0dXMuCisKKyAgICAg
ICAgQ2hyb21pdW0gaGFzIGZpdmUgbWFpbiBzdGF0dXNlcyB0aGF0IHdlIGhhdmUgdG8gbWFwIHRv
OgorICAgICAgICBDUkFTSDogdGhlIHRlc3QgaGFybmVzcyBjcmFzaGVkCisgICAgICAgIEZBSUw6
IHRoZSB0ZXN0IGRpZCBub3QgcnVuIGFzIGV4cGVjdGVkCisgICAgICAgIFBBU1M6IHRoZSB0ZXN0
IHJhbiBhcyBleHBlY3RlZAorICAgICAgICBTS0lQOiB0aGUgdGVzdCB3YXMgbm90IHJ1bgorICAg
ICAgICBUSU1FT1VUOiB0aGUgZGlkIG5vdCBmaW5pc2ggaW4gdGltZSBhbmQgd2FzIGFib3J0ZWQK
KworICAgICAgICA6cGFyYW0gc3RyIHN0YXR1czogdGhlIHN0cmluZyBzdGF0dXMgb2YgYSB0ZXN0
IGZyb20gV1BUCisgICAgICAgIDpyZXR1cm46IGEgY29ycmVzcG9uZGluZyBzdHJpbmcgc3RhdHVz
IGZvciBDaHJvbWl1bQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc3RhdHVzID09ICJPSyI6Cisg
ICAgICAgICAgICByZXR1cm4gIlBBU1MiCisgICAgICAgIGlmIHN0YXR1cyA9PSAiTk9UUlVOIjoK
KyAgICAgICAgICAgIHJldHVybiAiU0tJUCIKKyAgICAgICAgaWYgc3RhdHVzID09ICJFWFRFUk5B
TC1USU1FT1VUIjoKKyAgICAgICAgICAgIHJldHVybiAiVElNRU9VVCIKKyAgICAgICAgaWYgc3Rh
dHVzIGluICgiRVJST1IiLCAiUFJFQ09ORElUSU9OX0ZBSUxFRCIpOgorICAgICAgICAgICAgcmV0
dXJuICJGQUlMIgorICAgICAgICBpZiBzdGF0dXMgPT0gIklOVEVSTkFMLUVSUk9SIjoKKyAgICAg
ICAgICAgIHJldHVybiAiQ1JBU0giCisgICAgICAgICMgQW55IG90aGVyIHN0YXR1cyBqdXN0IGdl
dHMgcmV0dXJuZWQgYXMtaXMuCisgICAgICAgIHJldHVybiBzdGF0dXMKKworICAgIGRlZiBfZ2V0
X2V4cGVjdGVkX3N0YXR1c19mcm9tX2RhdGEoc2VsZiwgYWN0dWFsX3N0YXR1cywgZGF0YSk6Cisg
ICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBleHBlY3RlZCBzdGF0dXNlcyBmcm9tIGEgfGRh
dGF8IGRpY3Rpb25hcnkuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgbm8gZXhwZWN0ZWQgc3RhdHVz
IGluIGRhdGEsIHRoZSBhY3R1YWwgc3RhdHVzIGlzIHJldHVybmVkLgorICAgICAgICBUaGlzIGlz
IGJlY2F1c2UgbW96bG9nIHdpbGwgZGVsZXRlICJleHBlY3RlZCIgZnJvbSB8ZGF0YXwgaWYgaXQg
aXMgdGhlCisgICAgICAgIHNhbWUgYXMgInN0YXR1cyIuIFNvIHRoZSBwcmVzZW5jZSBvZiAiZXhw
ZWN0ZWQiIGltcGxpZXMgdGhhdCAic3RhdHVzIiBpcworICAgICAgICB1bmV4cGVjdGVkLiBDb252
ZXJzZWx5LCB0aGUgYWJzZW5jZSBvZiAiZXhwZWN0ZWQiIGltcGxpZXMgdGhlICJzdGF0dXMiCisg
ICAgICAgIGlzIGV4cGVjdGVkLiBTbyB3ZSB1c2UgdGhlICJleHBlY3RlZCIgc3RhdHVzIGlmIGl0
J3MgdGhlcmUgb3IgZmFsbCBiYWNrCisgICAgICAgIHRvIHRoZSBhY3R1YWwgc3RhdHVzIGlmIGl0
J3Mgbm90LgorCisgICAgICAgIElmIHRoZSB0ZXN0IGhhcyBtdWx0aXBsZSBzdGF0dXNlcywgaXQg
d2lsbCBoYXZlIG90aGVyIHN0YXR1c2VzIGxpc3RlZCBhcworICAgICAgICAia25vd25faW50ZXJt
aXR0ZW50IiBpbiB8ZGF0YXwuIElmIHRoZXNlIGV4aXN0LCB0aGV5IHdpbGwgYmUgYWRkZWQgdG8K
KyAgICAgICAgdGhlIHJldHVybmVkIHN0YXR1cyB3aXRoIHNwYWNlZCBpbiBiZXR3ZWVuLgorCisg
ICAgICAgIDpwYXJhbSBzdHIgYWN0dWFsX3N0YXR1czogdGhlIGFjdHVhbCBzdGF0dXMgb2YgdGhl
IHRlc3QKKyAgICAgICAgOnBhcmFtIGRhdGE6IGEgZGF0YSBkaWN0aW9uYXJ5IHRvIGV4dHJhY3Qg
ZXhwZWN0ZWQgc3RhdHVzIGZyb20KKyAgICAgICAgOnJldHVybiBzdHI6IHRoZSBleHBlY3RlZCBz
dGF0dXNlcyBhcyBhIHN0cmluZworICAgICAgICAiIiIKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVz
ZXMgPSBzZWxmLl9tYXBfc3RhdHVzX25hbWUoZGF0YVsiZXhwZWN0ZWQiXSkgaWYgImV4cGVjdGVk
IiBpbiBkYXRhIGVsc2UgYWN0dWFsX3N0YXR1cworICAgICAgICBpZiBkYXRhLmdldCgia25vd25f
aW50ZXJtaXR0ZW50Iik6CisgICAgICAgICAgICBhbGxfc3RhdHN1ZXMgPSB7c2VsZi5fbWFwX3N0
YXR1c19uYW1lKG90aGVyX3N0YXR1cykgZm9yIG90aGVyX3N0YXR1cyBpbiBkYXRhWyJrbm93bl9p
bnRlcm1pdHRlbnQiXX0KKyAgICAgICAgICAgIGFsbF9zdGF0c3Vlcy5hZGQoZXhwZWN0ZWRfc3Rh
dHVzZXMpCisgICAgICAgICAgICBleHBlY3RlZF9zdGF0dXNlcyA9ICIgIi5qb2luKHNvcnRlZChh
bGxfc3RhdHN1ZXMpKQorICAgICAgICByZXR1cm4gZXhwZWN0ZWRfc3RhdHVzZXMKKworICAgIGRl
ZiBzdWl0ZV9zdGFydChzZWxmLCBkYXRhKToKKyAgICAgICAgIyB8ZGF0YXwgY29udGFpbnMgYSB0
aW1lc3RhbXAgaW4gbWljcm9zZWNvbmRzLCB3aGlsZSB0aW1lLnRpbWUoKSBnaXZlcworICAgICAg
ICAjIGl0IGluIHNlY29uZHMuCisgICAgICAgIHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMg
PSAoZmxvYXQoZGF0YVsidGltZSJdKSAvIDEwMDAgaWYgInRpbWUiIGluIGRhdGEKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHRpbWUudGltZSgpKQorCisgICAg
ZGVmIHRlc3Rfc3RhdHVzKHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBkYXRhWyJ0
ZXN0Il0KKyAgICAgICAgd3B0X2FjdHVhbF9zdGF0dXMgPSBkYXRhWyJzdGF0dXMiXQorICAgICAg
ICBhY3R1YWxfc3RhdHVzID0gc2VsZi5fbWFwX3N0YXR1c19uYW1lKHdwdF9hY3R1YWxfc3RhdHVz
KQorICAgICAgICBleHBlY3RlZF9zdGF0dXNlcyA9IHNlbGYuX2dldF9leHBlY3RlZF9zdGF0dXNf
ZnJvbV9kYXRhKGFjdHVhbF9zdGF0dXMsIGRhdGEpCisKKyAgICAgICAgaXNfdW5leHBlY3RlZCA9
IGFjdHVhbF9zdGF0dXMgbm90IGluIGV4cGVjdGVkX3N0YXR1c2VzCisgICAgICAgIGlmIGlzX3Vu
ZXhwZWN0ZWQgYW5kIHRlc3RfbmFtZSBub3QgaW4gc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFp
bHM6CisgICAgICAgICAgICBzZWxmLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscy5hZGQodGVzdF9u
YW1lKQorICAgICAgICAjIFdlIHNob3VsZCBhbHdheXMgZ2V0IGEgc3VidGVzdCBpbiB0aGUgZGF0
YSBkaWN0LCBidXQgaXQncyB0ZWNobmljYWxseQorICAgICAgICAjIHBvc3NpYmxlIHRoYXQgaXQn
cyBtaXNzaW5nLiBCZSByZXNpbGllbnQgaGVyZS4KKyAgICAgICAgc3VidGVzdF9uYW1lID0gZGF0
YS5nZXQoInN1YnRlc3QiLCAiVU5LTk9XTiBTVUJURVNUIikKKyAgICAgICAgc2VsZi5fYXBwZW5k
X3Rlc3RfbWVzc2FnZSh0ZXN0X25hbWUsIHN1YnRlc3RfbmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3cHRfYWN0dWFsX3N0YXR1cywgZGF0YS5nZXQoIm1lc3NhZ2UiLCAi
IikpCisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3RfbmFtZSA9
IGRhdGFbInRlc3QiXQorICAgICAgICAjIFNhdmUgdGhlIHN0YXR1cyByZXBvcnRlZCBieSBXUFQg
c2luY2Ugd2UgbWlnaHQgY2hhbmdlIGl0IHdoZW4KKyAgICAgICAgIyByZXBvcnRpbmcgdG8gQ2hy
b21pdW0uCisgICAgICAgIHdwdF9hY3R1YWxfc3RhdHVzID0gZGF0YVsic3RhdHVzIl0KKyAgICAg
ICAgYWN0dWFsX3N0YXR1cyA9IHNlbGYuX21hcF9zdGF0dXNfbmFtZSh3cHRfYWN0dWFsX3N0YXR1
cykKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVzZXMgPSBzZWxmLl9nZXRfZXhwZWN0ZWRfc3RhdHVz
X2Zyb21fZGF0YShhY3R1YWxfc3RhdHVzLCBkYXRhKQorICAgICAgICBzdWJ0ZXN0X2ZhaWx1cmUg
PSBGYWxzZQorICAgICAgICBpZiB0ZXN0X25hbWUgaW4gc2VsZi50ZXN0c193aXRoX3N1YnRlc3Rf
ZmFpbHM6CisgICAgICAgICAgICBzdWJ0ZXN0X2ZhaWx1cmUgPSBUcnVlCisgICAgICAgICAgICAj
IENsZWFuIHVwIHRoZSB0ZXN0IGxpc3QgdG8gYXZvaWQgYWNjdW11bGF0aW5nIHRvbyBtYW55Lgor
ICAgICAgICAgICAgc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMucmVtb3ZlKHRlc3RfbmFt
ZSkKKyAgICAgICAgICAgICMgVGhpcyB0ZXN0IHBhc3NlZCBidXQgaXQgaGFzIGZhaWxpbmcgc3Vi
dGVzdHMuIFNpbmNlIHdlIGNhbiBvbmx5CisgICAgICAgICAgICAjIHJlcG9ydCBhIHNpbmdsZSBz
dGF0dXMgdG8gQ2hyb21pdW0sIHdlIGNob29zZSBGQUlMIHRvIGluZGljYXRlCisgICAgICAgICAg
ICAjIHRoYXQgc29tZXRoaW5nIGFib3V0IHRoaXMgdGVzdCBkaWQgbm90IHJ1biBjb3JyZWN0bHku
CisgICAgICAgICAgICBpZiBhY3R1YWxfc3RhdHVzID09ICJQQVNTIjoKKyAgICAgICAgICAgICAg
ICBhY3R1YWxfc3RhdHVzID0gIkZBSUwiCisKKyAgICAgICAgc2VsZi5fYXBwZW5kX3Rlc3RfbWVz
c2FnZSh0ZXN0X25hbWUsIE5vbmUsIHdwdF9hY3R1YWxfc3RhdHVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0KCJtZXNzYWdlIiwgIiIpKQorICAgICAgICBzZWxm
Ll9zdG9yZV90ZXN0X3Jlc3VsdCh0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFjdHVhbF9zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkX3N0YXR1c2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFj
dHVhbF9tZXRhZGF0YVt0ZXN0X25hbWVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLm1lc3NhZ2VzW3Rlc3RfbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdwdF9hY3R1YWxfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dWJ0ZXN0X2ZhaWx1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0
KCJleHRyYSIsIHt9KS5nZXQoInJlZnRlc3Rfc2NyZWVuc2hvdHMiKSkKKworICAgICAgICAjIFJl
bW92ZSB0aGUgdGVzdCBmcm9tIGRpY3RzIHRvIGF2b2lkIGFjY3VtdWxhdGluZyB0b28gbWFueS4K
KyAgICAgICAgc2VsZi5hY3R1YWxfbWV0YWRhdGEucG9wKHRlc3RfbmFtZSkKKyAgICAgICAgc2Vs
Zi5tZXNzYWdlcy5wb3AodGVzdF9uYW1lKQorCisgICAgICAgICMgVXBkYXRlIHRoZSBjb3VudCBv
ZiBob3cgbWFueSB0ZXN0cyByYW4gd2l0aCBlYWNoIHN0YXR1cy4KKyAgICAgICAgc2VsZi5udW1f
ZmFpbHVyZXNfYnlfc3RhdHVzW2FjdHVhbF9zdGF0dXNdICs9IDEKKworICAgICAgICAjIE5ldyB0
ZXN0LCBuZXcgYnJvd3NlciBsb2dzLgorICAgICAgICBzZWxmLmJyb3dzZXJfbG9nID0gW10KKwor
ICAgIGRlZiBzdWl0ZV9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgICMgQ3JlYXRlIHRoZSBmaW5h
bCByZXN1bHQgZGljdGlvbmFyeQorICAgICAgICBmaW5hbF9yZXN1bHQgPSB7CisgICAgICAgICAg
ICAjIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkcyB0aGF0IHdlIGp1c3QgaGFyZC1jb2Rl
LgorICAgICAgICAgICAgImludGVycnVwdGVkIjogRmFsc2UsCisgICAgICAgICAgICAicGF0aF9k
ZWxpbWl0ZXIiOiAiLyIsCisgICAgICAgICAgICAidmVyc2lvbiI6IDMsCisgICAgICAgICAgICAi
c2Vjb25kc19zaW5jZV9lcG9jaCI6IHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMsCisgICAg
ICAgICAgICAibnVtX2ZhaWx1cmVzX2J5X3R5cGUiOiBzZWxmLm51bV9mYWlsdXJlc19ieV9zdGF0
dXMsCisgICAgICAgICAgICAidGVzdHMiOiBzZWxmLnRlc3RzCisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGpzb24uZHVtcHMoZmluYWxfcmVzdWx0KQorCisgICAgZGVmIHByb2Nlc3Nfb3V0cHV0
KHNlbGYsIGRhdGEpOgorICAgICAgICBjbWQgPSBkYXRhLmdldCgiY29tbWFuZCIsICIiKQorICAg
ICAgICBpZiBhbnkoYyBpbiBjbWQgZm9yIGMgaW4gWyJjaHJvbWVkcml2ZXIiLCAibG9nY2F0Il0p
OgorICAgICAgICAgICAgc2VsZi5icm93c2VyX2xvZy5hcHBlbmQoZGF0YVsnZGF0YSddKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZm9ybWF0dGVycy90ZXN0cy9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvX19pbml0
X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIy
ZDEKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0cmVwb3J0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRyZXBvcnQu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44NmQ0YzQyZjk3YjAK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3dwdHJlcG9ydC5weQpAQCAtMCwwICsxLDEzNSBA
QAoraW1wb3J0IGpzb24KK2ltcG9ydCByZQorCitmcm9tIG1vemxvZy5zdHJ1Y3R1cmVkLmZvcm1h
dHRlcnMuYmFzZSBpbXBvcnQgQmFzZUZvcm1hdHRlcgorZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGlt
cG9ydCBzdHJpcF9zZXJ2ZXIKKworCitMT05FX1NVUlJPR0FURV9SRSA9IHJlLmNvbXBpbGUodSJb
XHVEODAwLVx1REZGRl0iKQorCisKK2RlZiBzdXJyb2dhdGVfcmVwbGFjZW1lbnQobWF0Y2gpOgor
ICAgIHJldHVybiAiVSsiICsgaGV4KG9yZChtYXRjaC5ncm91cCgpKSlbMjpdCisKKworZGVmIHJl
cGxhY2VfbG9uZV9zdXJyb2dhdGUoZGF0YSk6CisgICAgcmV0dXJuIExPTkVfU1VSUk9HQVRFX1JF
LnN1Ym4oc3Vycm9nYXRlX3JlcGxhY2VtZW50LCBkYXRhKVswXQorCisKK2NsYXNzIFdwdHJlcG9y
dEZvcm1hdHRlcihCYXNlRm9ybWF0dGVyKTogICMgdHlwZTogaWdub3JlCisgICAgIiIiRm9ybWF0
dGVyIHRoYXQgcHJvZHVjZXMgcmVzdWx0cyBpbiB0aGUgZm9ybWF0IHRoYXQgd3B0cmVwb3J0IGV4
cGVjdHMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYucmF3X3Jl
c3VsdHMgPSB7fQorICAgICAgICBzZWxmLnJlc3VsdHMgPSB7fQorCisgICAgZGVmIHN1aXRlX3N0
YXJ0KHNlbGYsIGRhdGEpOgorICAgICAgICBpZiAncnVuX2luZm8nIGluIGRhdGE6CisgICAgICAg
ICAgICBzZWxmLnJlc3VsdHNbJ3J1bl9pbmZvJ10gPSBkYXRhWydydW5faW5mbyddCisgICAgICAg
IHNlbGYucmVzdWx0c1sndGltZV9zdGFydCddID0gZGF0YVsndGltZSddCisgICAgICAgIHNlbGYu
cmVzdWx0c1sicmVzdWx0cyJdID0gW10KKworICAgIGRlZiBzdWl0ZV9lbmQoc2VsZiwgZGF0YSk6
CisgICAgICAgIHNlbGYucmVzdWx0c1sndGltZV9lbmQnXSA9IGRhdGFbJ3RpbWUnXQorICAgICAg
ICBmb3IgdGVzdF9uYW1lIGluIHNlbGYucmF3X3Jlc3VsdHM6CisgICAgICAgICAgICByZXN1bHQg
PSB7InRlc3QiOiB0ZXN0X25hbWV9CisgICAgICAgICAgICByZXN1bHQudXBkYXRlKHNlbGYucmF3
X3Jlc3VsdHNbdGVzdF9uYW1lXSkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0c1sicmVzdWx0cyJd
LmFwcGVuZChyZXN1bHQpCisgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYucmVzdWx0cykg
KyAiXG4iCisKKyAgICBkZWYgZmluZF9vcl9jcmVhdGVfdGVzdChzZWxmLCBkYXRhKToKKyAgICAg
ICAgdGVzdF9uYW1lID0gZGF0YVsidGVzdCJdCisgICAgICAgIGlmIHRlc3RfbmFtZSBub3QgaW4g
c2VsZi5yYXdfcmVzdWx0czoKKyAgICAgICAgICAgIHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1l
XSA9IHsKKyAgICAgICAgICAgICAgICAic3VidGVzdHMiOiBbXSwKKyAgICAgICAgICAgICAgICAi
c3RhdHVzIjogIiIsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiBOb25lCisgICAgICAgICAg
ICB9CisgICAgICAgIHJldHVybiBzZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0KKworICAgIGRl
ZiB0ZXN0X3N0YXJ0KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2Ny
ZWF0ZV90ZXN0KGRhdGEpCisgICAgICAgIHRlc3RbInN0YXJ0X3RpbWUiXSA9IGRhdGFbInRpbWUi
XQorCisgICAgZGVmIGNyZWF0ZV9zdWJ0ZXN0KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0ID0g
c2VsZi5maW5kX29yX2NyZWF0ZV90ZXN0KGRhdGEpCisgICAgICAgIHN1YnRlc3RfbmFtZSA9IHJl
cGxhY2VfbG9uZV9zdXJyb2dhdGUoZGF0YVsic3VidGVzdCJdKQorCisgICAgICAgIHN1YnRlc3Qg
PSB7CisgICAgICAgICAgICAibmFtZSI6IHN1YnRlc3RfbmFtZSwKKyAgICAgICAgICAgICJzdGF0
dXMiOiAiIiwKKyAgICAgICAgICAgICJtZXNzYWdlIjogTm9uZQorICAgICAgICB9CisgICAgICAg
IHRlc3RbInN1YnRlc3RzIl0uYXBwZW5kKHN1YnRlc3QpCisKKyAgICAgICAgcmV0dXJuIHN1YnRl
c3QKKworICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBkYXRhKToKKyAgICAgICAgc3VidGVzdCA9
IHNlbGYuY3JlYXRlX3N1YnRlc3QoZGF0YSkKKyAgICAgICAgc3VidGVzdFsic3RhdHVzIl0gPSBk
YXRhWyJzdGF0dXMiXQorICAgICAgICBpZiAiZXhwZWN0ZWQiIGluIGRhdGE6CisgICAgICAgICAg
ICBzdWJ0ZXN0WyJleHBlY3RlZCJdID0gZGF0YVsiZXhwZWN0ZWQiXQorICAgICAgICBpZiAia25v
d25faW50ZXJtaXR0ZW50IiBpbiBkYXRhOgorICAgICAgICAgICAgc3VidGVzdFsia25vd25faW50
ZXJtaXR0ZW50Il0gPSBkYXRhWyJrbm93bl9pbnRlcm1pdHRlbnQiXQorICAgICAgICBpZiAibWVz
c2FnZSIgaW4gZGF0YToKKyAgICAgICAgICAgIHN1YnRlc3RbIm1lc3NhZ2UiXSA9IHJlcGxhY2Vf
bG9uZV9zdXJyb2dhdGUoZGF0YVsibWVzc2FnZSJdKQorCisgICAgZGVmIHRlc3RfZW5kKHNlbGYs
IGRhdGEpOgorICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0ZV90ZXN0KGRhdGEpCisg
ICAgICAgIHN0YXJ0X3RpbWUgPSB0ZXN0LnBvcCgic3RhcnRfdGltZSIpCisgICAgICAgIHRlc3Rb
ImR1cmF0aW9uIl0gPSBkYXRhWyJ0aW1lIl0gLSBzdGFydF90aW1lCisgICAgICAgIHRlc3RbInN0
YXR1cyJdID0gZGF0YVsic3RhdHVzIl0KKyAgICAgICAgaWYgImV4cGVjdGVkIiBpbiBkYXRhOgor
ICAgICAgICAgICAgdGVzdFsiZXhwZWN0ZWQiXSA9IGRhdGFbImV4cGVjdGVkIl0KKyAgICAgICAg
aWYgImtub3duX2ludGVybWl0dGVudCIgaW4gZGF0YToKKyAgICAgICAgICAgIHRlc3RbImtub3du
X2ludGVybWl0dGVudCJdID0gZGF0YVsia25vd25faW50ZXJtaXR0ZW50Il0KKyAgICAgICAgaWYg
Im1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAgICB0ZXN0WyJtZXNzYWdlIl0gPSByZXBsYWNl
X2xvbmVfc3Vycm9nYXRlKGRhdGFbIm1lc3NhZ2UiXSkKKyAgICAgICAgaWYgInJlZnRlc3Rfc2Ny
ZWVuc2hvdHMiIGluIGRhdGEuZ2V0KCJleHRyYSIsIHt9KToKKyAgICAgICAgICAgIHRlc3RbInNj
cmVlbnNob3RzIl0gPSB7CisgICAgICAgICAgICAgICAgc3RyaXBfc2VydmVyKGl0ZW1bInVybCJd
KTogInNoYTE6IiArIGl0ZW1bImhhc2giXQorICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGRh
dGFbImV4dHJhIl1bInJlZnRlc3Rfc2NyZWVuc2hvdHMiXQorICAgICAgICAgICAgICAgIGlmIHR5
cGUoaXRlbSkgPT0gZGljdAorICAgICAgICAgICAgfQorICAgICAgICB0ZXN0X25hbWUgPSBkYXRh
WyJ0ZXN0Il0KKyAgICAgICAgcmVzdWx0ID0geyJ0ZXN0IjogZGF0YVsidGVzdCJdfQorICAgICAg
ICByZXN1bHQudXBkYXRlKHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSkKKyAgICAgICAgc2Vs
Zi5yZXN1bHRzWyJyZXN1bHRzIl0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgc2VsZi5yYXdfcmVz
dWx0cy5wb3AodGVzdF9uYW1lKQorCisgICAgZGVmIGFzc2VydGlvbl9jb3VudChzZWxmLCBkYXRh
KToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAg
ICB0ZXN0WyJhc3NlcnRzIl0gPSB7CisgICAgICAgICAgICAiY291bnQiOiBkYXRhWyJjb3VudCJd
LAorICAgICAgICAgICAgIm1pbiI6IGRhdGFbIm1pbl9leHBlY3RlZCJdLAorICAgICAgICAgICAg
Im1heCI6IGRhdGFbIm1heF9leHBlY3RlZCJdCisgICAgICAgIH0KKworICAgIGRlZiBsc2FuX2xl
YWsoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmICJsc2FuX2xlYWtzIiBub3QgaW4gc2VsZi5yZXN1
bHRzOgorICAgICAgICAgICAgc2VsZi5yZXN1bHRzWyJsc2FuX2xlYWtzIl0gPSBbXQorICAgICAg
ICBsc2FuX2xlYWtzID0gc2VsZi5yZXN1bHRzWyJsc2FuX2xlYWtzIl0KKyAgICAgICAgbHNhbl9s
ZWFrcy5hcHBlbmQoeyJmcmFtZXMiOiBkYXRhWyJmcmFtZXMiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzY29wZSI6IGRhdGFbInNjb3BlIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYWxsb3dlZF9tYXRjaCI6IGRhdGEuZ2V0KCJhbGxvd2VkX21hdGNoIil9KQorCisgICAg
ZGVmIGZpbmRfb3JfY3JlYXRlX21vemxlYWsoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmICJtb3ps
ZWFrIiBub3QgaW4gc2VsZi5yZXN1bHRzOgorICAgICAgICAgICAgc2VsZi5yZXN1bHRzWyJtb3ps
ZWFrIl0gPSB7fQorICAgICAgICBzY29wZSA9IGRhdGFbInNjb3BlIl0KKyAgICAgICAgaWYgc2Nv
cGUgbm90IGluIHNlbGYucmVzdWx0c1sibW96bGVhayJdOgorICAgICAgICAgICAgc2VsZi5yZXN1
bHRzWyJtb3psZWFrIl1bc2NvcGVdID0geyJvYmplY3RzIjogW10sICJ0b3RhbCI6IFtdfQorICAg
ICAgICByZXR1cm4gc2VsZi5yZXN1bHRzWyJtb3psZWFrIl1bc2NvcGVdCisKKyAgICBkZWYgbW96
bGVha19vYmplY3Qoc2VsZiwgZGF0YSk6CisgICAgICAgIHNjb3BlX2RhdGEgPSBzZWxmLmZpbmRf
b3JfY3JlYXRlX21vemxlYWsoZGF0YSkKKyAgICAgICAgc2NvcGVfZGF0YVsib2JqZWN0cyJdLmFw
cGVuZCh7InByb2Nlc3MiOiBkYXRhWyJwcm9jZXNzIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJuYW1lIjogZGF0YVsibmFtZSJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYWxsb3dlZCI6IGRhdGEuZ2V0KCJhbGxvd2VkIiwgRmFsc2Up
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnl0ZXMiOiBkYXRhWyJi
eXRlcyJdfSkKKworICAgIGRlZiBtb3psZWFrX3RvdGFsKHNlbGYsIGRhdGEpOgorICAgICAgICBz
Y29wZV9kYXRhID0gc2VsZi5maW5kX29yX2NyZWF0ZV9tb3psZWFrKGRhdGEpCisgICAgICAgIHNj
b3BlX2RhdGFbInRvdGFsIl0uYXBwZW5kKHsiYnl0ZXMiOiBkYXRhWyJieXRlcyJdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRocmVzaG9sZCI6IGRhdGEuZ2V0KCJ0aHJl
c2hvbGQiLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9jZXNz
IjogZGF0YVsicHJvY2VzcyJdfSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjc1MDU0OGIyODE1NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0
c2NyZWVuc2hvdC5weQpAQCAtMCwwICsxLDQ3IEBACitpbXBvcnQgcmVxdWVzdHMKK2Zyb20gbW96
bG9nLnN0cnVjdHVyZWQuZm9ybWF0dGVycy5iYXNlIGltcG9ydCBCYXNlRm9ybWF0dGVyCisKK0RF
RkFVTFRfQVBJID0gImh0dHBzOi8vd3B0LmZ5aS9hcGkvc2NyZWVuc2hvdHMvaGFzaGVzIgorCisK
K2NsYXNzIFdwdHNjcmVlbnNob3RGb3JtYXR0ZXIoQmFzZUZvcm1hdHRlcik6ICAjIHR5cGU6IGln
bm9yZQorICAgICIiIkZvcm1hdHRlciB0aGF0IG91dHB1dHMgc2NyZWVuc2hvdHMgaW4gdGhlIGZv
cm1hdCBleHBlY3RlZCBieSB3cHQuZnlpLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFw
aT1Ob25lKToKKyAgICAgICAgc2VsZi5hcGkgPSBhcGkgb3IgREVGQVVMVF9BUEkKKyAgICAgICAg
c2VsZi5jYWNoZSA9IHNldCgpCisKKyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6Cisg
ICAgICAgICMgVE9ETyhIZXhjbGVzKTogV2UgbWlnaHQgd2FudCB0byBtb3ZlIHRoZSByZXF1ZXN0
IGludG8gYSBkaWZmZXJlbnQKKyAgICAgICAgIyBwbGFjZSwgbWFrZSBpdCBub24tYmxvY2tpbmcs
IGFuZCBoYW5kbGUgZXJyb3JzIGJldHRlci4KKyAgICAgICAgcGFyYW1zID0ge30KKyAgICAgICAg
cnVuX2luZm8gPSBkYXRhLmdldCgicnVuX2luZm8iLCB7fSkKKyAgICAgICAgaWYgInByb2R1Y3Qi
IGluIHJ1bl9pbmZvOgorICAgICAgICAgICAgcGFyYW1zWyJicm93c2VyIl0gPSBydW5faW5mb1si
cHJvZHVjdCJdCisgICAgICAgIGlmICJicm93c2VyX3ZlcnNpb24iIGluIHJ1bl9pbmZvOgorICAg
ICAgICAgICAgcGFyYW1zWyJicm93c2VyX3ZlcnNpb24iXSA9IHJ1bl9pbmZvWyJicm93c2VyX3Zl
cnNpb24iXQorICAgICAgICBpZiAib3MiIGluIHJ1bl9pbmZvOgorICAgICAgICAgICAgcGFyYW1z
WyJvcyJdID0gcnVuX2luZm9bIm9zIl0KKyAgICAgICAgaWYgIm9zX3ZlcnNpb24iIGluIHJ1bl9p
bmZvOgorICAgICAgICAgICAgcGFyYW1zWyJvc192ZXJzaW9uIl0gPSBydW5faW5mb1sib3NfdmVy
c2lvbiJdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHIgPSByZXF1ZXN0cy5nZXQoc2VsZi5h
cGksIHBhcmFtcz1wYXJhbXMpCisgICAgICAgICAgICByLnJhaXNlX2Zvcl9zdGF0dXMoKQorICAg
ICAgICAgICAgc2VsZi5jYWNoZSA9IHNldChyLmpzb24oKSkKKyAgICAgICAgZXhjZXB0IChyZXF1
ZXN0cy5leGNlcHRpb25zLlJlcXVlc3RFeGNlcHRpb24sIFZhbHVlRXJyb3IpOgorICAgICAgICAg
ICAgcGFzcworCisgICAgZGVmIHRlc3RfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICBpZiAicmVm
dGVzdF9zY3JlZW5zaG90cyIgbm90IGluIGRhdGEuZ2V0KCJleHRyYSIsIHt9KToKKyAgICAgICAg
ICAgIHJldHVybgorICAgICAgICBvdXRwdXQgPSAiIgorICAgICAgICBmb3IgaXRlbSBpbiBkYXRh
WyJleHRyYSJdWyJyZWZ0ZXN0X3NjcmVlbnNob3RzIl06CisgICAgICAgICAgICBpZiB0eXBlKGl0
ZW0pICE9IGRpY3Q6CisgICAgICAgICAgICAgICAgIyBTa2lwIHRoZSByZWxhdGlvbiBzdHJpbmcu
CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGNoZWNrc3VtID0gInNoYTE6
IiArIGl0ZW1bImhhc2giXQorICAgICAgICAgICAgaWYgY2hlY2tzdW0gaW4gc2VsZi5jYWNoZToK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgc2VsZi5jYWNoZS5hZGQoY2hl
Y2tzdW0pCisgICAgICAgICAgICBvdXRwdXQgKz0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCx7fVxu
Ii5mb3JtYXQoaXRlbVsic2NyZWVuc2hvdCJdKQorICAgICAgICByZXR1cm4gb3V0cHV0IGlmIG91
dHB1dCBlbHNlIE5vbmUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1lbnRzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvaW5zdHJ1bWVudHMucHkKaW5k
ZXggYTg4N2NmNGZkYTcyLi40ZTNlMDEzYWVjNDMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1lbnRzLnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2luc3RydW1lbnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogaW1wb3J0IHRpbWUKIGltcG9ydCB0aHJl
YWRpbmcKLWZyb20gc2l4Lm1vdmVzLnF1ZXVlIGltcG9ydCBRdWV1ZQorZnJvbSBxdWV1ZSBpbXBv
cnQgUXVldWUKIAogIiIiSW5zdHJ1bWVudGF0aW9uIGZvciBtZWFzdXJpbmcgaGlnaC1sZXZlbCB0
aW1lIHNwZW50IG9uIHZhcmlvdXMgdGFza3MgaW5zaWRlIHRoZSBydW5uZXIuCiAKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L21hbmlmZXN0ZXhwZWN0ZWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CmluZGV4IDMxYzU3ZTljYjcz
NC4uMWNkMDM1YTNiMjQzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0
ZXhwZWN0ZWQucHkKQEAgLTEsOCArMSw2IEBACiBpbXBvcnQgb3MKIGZyb20gY29sbGVjdGlvbnMg
aW1wb3J0IGRlcXVlCi1mcm9tIHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzLCB0ZXh0X3R5cGUKLWZy
b20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgotCitmcm9tIHVybGxpYi5w
YXJzZSBpbXBvcnQgdXJsam9pbgogCiBmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQg
c3RhdGljCiBmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcy5iYXNlIGltcG9ydCBNYW5pZmVzdEl0
ZW0KQEAgLTQ5LDcgKzQ3LDcgQEAgZGVmIGxpc3RfcHJvcChuYW1lLCBub2RlKToKICAgICAiIiJM
aXN0IHByb3BlcnR5IiIiCiAgICAgdHJ5OgogICAgICAgICBsaXN0X3Byb3AgPSBub2RlLmdldChu
YW1lKQotICAgICAgICBpZiBpc2luc3RhbmNlKGxpc3RfcHJvcCwgc3RyaW5nX3R5cGVzKToKKyAg
ICAgICAgaWYgaXNpbnN0YW5jZShsaXN0X3Byb3AsIHN0cik6CiAgICAgICAgICAgICByZXR1cm4g
W2xpc3RfcHJvcF0KICAgICAgICAgcmV0dXJuIGxpc3QobGlzdF9wcm9wKQogICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKQEAgLTU5LDcgKzU3LDcgQEAgZGVmIGxpc3RfcHJvcChuYW1lLCBub2RlKToKIGRl
ZiBzdHJfcHJvcChuYW1lLCBub2RlKToKICAgICB0cnk6CiAgICAgICAgIHByb3AgPSBub2RlLmdl
dChuYW1lKQotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwcm9wLCBzdHJpbmdfdHlwZXMpOgor
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwcm9wLCBzdHIpOgogICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcgogICAgICAgICByZXR1cm4gcHJvcAogICAgIGV4Y2VwdCBLZXlFcnJvcjoKQEAg
LTcwLDcgKzY4LDcgQEAgZGVmIHRhZ3Mobm9kZSk6CiAgICAgIiIiU2V0IG9mIHRhZ3MgdGhhdCBo
YXZlIGJlZW4gYXBwbGllZCB0byB0aGUgdGVzdCIiIgogICAgIHRyeToKICAgICAgICAgdmFsdWUg
PSBub2RlLmdldCgidGFncyIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlw
ZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CiAgICAgICAgICAgICByZXR1
cm4ge3ZhbHVlfQogICAgICAgICByZXR1cm4gc2V0KHZhbHVlKQogICAgIGV4Y2VwdCBLZXlFcnJv
cjoKQEAgLTc5LDcgKzc3LDcgQEAgZGVmIHRhZ3Mobm9kZSk6CiAKIGRlZiBwcmVmcyhub2RlKToK
ICAgICBkZWYgdmFsdWUoaW5pX3ZhbHVlKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShpbmlfdmFs
dWUsIHRleHRfdHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoaW5pX3ZhbHVlLCBzdHIpOgog
ICAgICAgICAgICAgcmV0dXJuIHR1cGxlKHByZWZfcGllY2Uuc3RyaXAoKSBmb3IgcHJlZl9waWVj
ZSBpbiBpbmlfdmFsdWUuc3BsaXQoJzonLCAxKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAg
ICMgdGhpcyBzaG91bGQgYmUgdGhpbmdzIGxpa2UgQFJlc2V0LCB3aGljaCBhcmUgYXBwYXJlbnRs
eSB0eXBlICdvYmplY3QnCkBAIC04Nyw3ICs4NSw3IEBAIGRlZiBwcmVmcyhub2RlKToKIAogICAg
IHRyeToKICAgICAgICAgbm9kZV9wcmVmcyA9IG5vZGUuZ2V0KCJwcmVmcyIpCi0gICAgICAgIGlm
IGlzaW5zdGFuY2Uobm9kZV9wcmVmcywgdGV4dF90eXBlKToKKyAgICAgICAgaWYgaXNpbnN0YW5j
ZShub2RlX3ByZWZzLCBzdHIpOgogICAgICAgICAgICAgcnYgPSBkaWN0KHZhbHVlKG5vZGVfcHJl
ZnMpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcnYgPSBkaWN0KHZhbHVlKGl0ZW0pIGZv
ciBpdGVtIGluIG5vZGVfcHJlZnMpCkBAIC05OSw3ICs5Nyw3IEBAIGRlZiBwcmVmcyhub2RlKToK
IGRlZiBzZXRfcHJvcChuYW1lLCBub2RlKToKICAgICB0cnk6CiAgICAgICAgIG5vZGVfaXRlbXMg
PSBub2RlLmdldChuYW1lKQotICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHRleHRf
dHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9pdGVtcywgc3RyKToKICAgICAgICAg
ICAgIHJ2ID0ge25vZGVfaXRlbXN9CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydiA9IHNl
dChub2RlX2l0ZW1zKQpAQCAtMTEyLDcgKzExMCw3IEBAIGRlZiBsZWFrX3RocmVzaG9sZChub2Rl
KToKICAgICBydiA9IHt9CiAgICAgdHJ5OgogICAgICAgICBub2RlX2l0ZW1zID0gbm9kZS5nZXQo
ImxlYWstdGhyZXNob2xkIikKLSAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1zLCB0ZXh0
X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHN0cik6CiAgICAgICAg
ICAgICBub2RlX2l0ZW1zID0gW25vZGVfaXRlbXNdCiAgICAgICAgIGZvciBpdGVtIGluIG5vZGVf
aXRlbXM6CiAgICAgICAgICAgICBwcm9jZXNzLCB2YWx1ZSA9IGl0ZW0ucnNwbGl0KCI6IiwgMSkK
QEAgLTE0MCw3ICsxMzgsNyBAQCBkZWYgZnV6enlfcHJvcChub2RlKToKICAgICAgIG1heERpZmZl
cmVuY2VzPTEwO3RvdGFsUGl4ZWxzPTEwLTIwCiAKICAgICAgIHNwZWNpZmllcyB0aGF0IGZvciBh
bnkgdGVzdC9yZWYgcGFpciBmb3Igd2hpY2ggbm8gb3RoZXIgcnVsZSBpcyBzdXBwbGllZCwKLSAg
ICAgIHRoZXJlIG11c3QgYmUgYSBtYXhpbXVtIHBpeGVsIGRpZmZlcmVuY2Ugb2YgZXhhY3RseSAx
MCwgYW5kIGJldHdlbiAxMCBhbmQKKyAgICAgIHRoZXJlIG11c3QgYmUgYSBtYXhpbXVtIHBpeGVs
IGRpZmZlcmVuY2Ugb2YgZXhhY3RseSAxMCwgYW5kIGJldHdlZW4gMTAgYW5kCiAgICAgICAyMCB0
b3RhbCBwaXhlbHMgZGlmZmVyZW50LgogCiAgICAgICB0ZXN0Lmh0bWw9PXJlZi5odG06MTA7MjAK
QEAgLTE2OSw3ICsxNjcsNyBAQCBkZWYgZnV6enlfcHJvcChub2RlKToKICAgICBpZiBub3QgaXNp
bnN0YW5jZSh2YWx1ZSwgbGlzdCk6CiAgICAgICAgIHZhbHVlID0gW3ZhbHVlXQogICAgIGZvciBp
dGVtIGluIHZhbHVlOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCB0ZXh0X3R5cGUp
OgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgogICAgICAgICAgICAgcnYu
YXBwZW5kKGl0ZW0pCiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBwYXJ0cyA9IGl0ZW0u
cnNwbGl0KCI6IiwgMSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVk
ZS5weQppbmRleCA3OWI1YjE5YjNhM2YuLjk3MzQ4ZTZkNTJmOSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3Rp
bmNsdWRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weQpAQCAtNiw4ICs2LDcgQEAgYmUgaW5jbHVk
ZWQgb3IgZXhjbHVkZWQuCiAiIiIKIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKLWZyb20gc2l4IGlt
cG9ydCBpdGVyaXRlbXMKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFy
c2UsIHVybHNwbGl0Citmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UsIHVybHNwbGl0
CiAKIGZyb20gLndwdG1hbmlmZXN0Lm5vZGUgaW1wb3J0IERhdGFOb2RlCiBmcm9tIC53cHRtYW5p
ZmVzdC5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKQEAgLTk1LDcgKzk0LDcgQEAgY2xhc3Mg
SW5jbHVkZU1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAgICAgICAgIGlmIHBhdGhzOgogICAgICAg
ICAgICAgdXJscyA9IFtdCiAgICAgICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKLSAgICAgICAg
ICAgICAgICBmb3IgbWFuaWZlc3QsIGRhdGEgaW4gaXRlcml0ZW1zKHRlc3RfbWFuaWZlc3RzKToK
KyAgICAgICAgICAgICAgICBmb3IgbWFuaWZlc3QsIGRhdGEgaW4gdGVzdF9tYW5pZmVzdHMuaXRl
bXMoKToKICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBGYWxzZQogICAgICAgICAgICAgICAg
ICAgICByZWxfcGF0aCA9IG9zLnBhdGgucmVscGF0aChwYXRoLCBkYXRhWyJ0ZXN0c19wYXRoIl0p
CiAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yID0gbWFuaWZlc3QuaXRlcnBhdGggaWYgb3Mu
cGF0aC5pc2ZpbGUocGF0aCkgZWxzZSBtYW5pZmVzdC5pdGVyZGlyCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVz
dHVwZGF0ZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5CmluZGV4IDEyOTQ1N2IzZmQxMi4uYjI1ZDQ5YjBm
YjdjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQpAQCAt
MSw5ICsxLDggQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9y
dCBvcwotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxp
dAorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHNwbGl0CiBmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlLCBkZWZhdWx0ZGljdCwgZGVxdWUKIGZyb20gbWF0aCBp
bXBvcnQgY2VpbAotZnJvbSBzaXggaW1wb3J0IGludGVnZXJfdHlwZXMsIGl0ZXJrZXlzLCBpdGVy
dmFsdWVzLCBpdGVyaXRlbXMsIHN0cmluZ190eXBlcywgdGV4dF90eXBlCitmcm9tIHR5cGluZyBp
bXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKIAogZnJvbSAud3B0bWFu
aWZlc3QgaW1wb3J0IHNlcmlhbGl6ZQogZnJvbSAud3B0bWFuaWZlc3Qubm9kZSBpbXBvcnQgKERh
dGFOb2RlLCBDb25kaXRpb25hbE5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLApAQCAtNzYsNyAr
NzUsNyBAQCBjbGFzcyBVcGRhdGVQcm9wZXJ0aWVzKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBu
YW1lIGluIHNlbGYuX2NsYXNzZXMKIAogICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAg
Zm9yIG5hbWUgaW4gaXRlcmtleXMoc2VsZi5fY2xhc3Nlcyk6CisgICAgICAgIGZvciBuYW1lIGlu
IHNlbGYuX2NsYXNzZXMua2V5cygpOgogICAgICAgICAgICAgeWllbGQgZ2V0YXR0cihzZWxmLCBu
YW1lKQogCiAKQEAgLTMxMywxOCArMzEyLDIxIEBAIGRlZiBidWlsZF9jb25kaXRpb25hbF90cmVl
KF8sIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHJlc3VsdHMpOgogCiBkZWYgYnVpbGRfdW5jb25kaXRp
b25hbF90cmVlKF8sIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHJlc3VsdHMpOgogICAgIHJvb3QgPSBl
eHBlY3RlZHRyZWUuTm9kZShOb25lLCBOb25lKQotICAgIGZvciBydW5faW5mbywgdmFsdWVzIGlu
IGl0ZXJpdGVtcyhyZXN1bHRzKToKLSAgICAgICAgZm9yIHZhbHVlLCBjb3VudCBpbiBpdGVyaXRl
bXModmFsdWVzKToKKyAgICBmb3IgcnVuX2luZm8sIHZhbHVlcyBpbiByZXN1bHRzLml0ZW1zKCk6
CisgICAgICAgIGZvciB2YWx1ZSwgY291bnQgaW4gdmFsdWVzLml0ZW1zKCk6CiAgICAgICAgICAg
ICByb290LnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CiAgICAgICAgIHJvb3QucnVuX2lu
Zm8uYWRkKHJ1bl9pbmZvKQogICAgIHJldHVybiByb290CiAKIAogY2xhc3MgUHJvcGVydHlVcGRh
dGUob2JqZWN0KToKLSAgICBwcm9wZXJ0eV9uYW1lID0gTm9uZQotICAgIGNsc19kZWZhdWx0X3Zh
bHVlID0gTm9uZQotICAgIHZhbHVlX3R5cGUgPSBOb25lCi0gICAgcHJvcGVydHlfYnVpbGRlciA9
IE5vbmUKKyAgICBwcm9wZXJ0eV9uYW1lID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltzdHJdCisg
ICAgY2xzX2RlZmF1bHRfdmFsdWUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW0FueV0KKyAgICB2
YWx1ZV90eXBlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zhclt0eXBlXQorICAgICMgcHJvcGVydHlf
YnVpbGRlciBpcyBhIGNsYXNzIHZhcmlhYmxlIHNldCB0byBlaXRoZXIgYnVpbGRfY29uZGl0aW9u
YWxfdHJlZQorICAgICMgb3IgYnVpbGRfdW5jb25kaXRpb25hbF90cmVlLiBUT0RPOiBNYWtlIHRo
aXMgdHlwZSBzdHJpY3RlciB3aGVuIHRob3NlCisgICAgIyBtZXRob2RzIGFyZSBhbm5vdGF0ZWQu
CisgICAgcHJvcGVydHlfYnVpbGRlciA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbQ2FsbGFibGVb
Li4uLCBBbnldXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUpOgogICAgICAgICBzZWxm
Lm5vZGUgPSBub2RlCkBAIC00MTEsNyArNDEzLDcgQEAgY2xhc3MgUHJvcGVydHlVcGRhdGUob2Jq
ZWN0KToKICAgICAgICAgZm9yIGUgaW4gZXJyb3JzOgogICAgICAgICAgICAgaWYgZGlzYWJsZV9p
bnRlcm1pdHRlbnQ6CiAgICAgICAgICAgICAgICAgY29uZGl0aW9uID0gZS5jb25kLmNoaWxkcmVu
WzBdIGlmIGUuY29uZCBlbHNlIE5vbmUKLSAgICAgICAgICAgICAgICBtc2cgPSBkaXNhYmxlX2lu
dGVybWl0dGVudCBpZiBpc2luc3RhbmNlKGRpc2FibGVfaW50ZXJtaXR0ZW50LCBzdHJpbmdfdHlw
ZXMrKHRleHRfdHlwZSwpKSBlbHNlICJ1bnN0YWJsZSIKKyAgICAgICAgICAgICAgICBtc2cgPSBk
aXNhYmxlX2ludGVybWl0dGVudCBpZiBpc2luc3RhbmNlKGRpc2FibGVfaW50ZXJtaXR0ZW50LCBz
dHIpIGVsc2UgInVuc3RhYmxlIgogICAgICAgICAgICAgICAgIHNlbGYubm9kZS5zZXQoImRpc2Fi
bGVkIiwgbXNnLCBjb25kaXRpb24pCiAgICAgICAgICAgICAgICAgc2VsZi5ub2RlLm5ld19kaXNh
YmxlZCA9IFRydWUKICAgICAgICAgICAgIGVsc2U6CkBAIC00OTksNyArNTAxLDcgQEAgY2xhc3Mg
UHJvcGVydHlVcGRhdGUob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHJ1
bl9pbmZvIGluIG5vZGUucnVuX2luZm99CiAKICAgICAgICAgbm9kZV9ieV9ydW5faW5mbyA9IHty
dW5faW5mbzogbm9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocnVuX2luZm8s
IG5vZGUpIGluIGl0ZXJpdGVtcyhydW5faW5mb19pbmRleCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgKHJ1bl9pbmZvLCBub2RlKSBpbiBydW5faW5mb19pbmRleC5pdGVtcygpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9kZS5yZXN1bHRfdmFsdWVzfQogCiAgICAg
ICAgIHJ1bl9pbmZvX2J5X2NvbmRpdGlvbiA9IHNlbGYucnVuX2luZm9fYnlfY29uZGl0aW9uKHJ1
bl9pbmZvX2luZGV4LApAQCAtNTEyLDcgKzUxNCw3IEBAIGNsYXNzIFByb3BlcnR5VXBkYXRlKG9i
amVjdCk6CiAgICAgICAgICAgICAjIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIHdlJ3ZlIHNwZWNpZmll
ZCBhbmQgbm90IG1hdGNoaW5nIGFueSBydW5faW5mbwogICAgICAgICAgICAgdG9wX2xldmVsX3By
b3BzLCBkZXBlbmRlbnRfcHJvcHMgPSBzZWxmLm5vZGUucm9vdC5ydW5faW5mb19wcm9wZXJ0aWVz
CiAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGllcyA9IHNldCh0b3BfbGV2ZWxfcHJvcHMpCi0g
ICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKGRlcGVuZGVudF9wcm9wcyk6CisgICAg
ICAgICAgICBmb3IgaXRlbSBpbiBkZXBlbmRlbnRfcHJvcHMudmFsdWVzKCk6CiAgICAgICAgICAg
ICAgICAgdXBkYXRlX3Byb3BlcnRpZXMgfD0gc2V0KGl0ZW0pCiAgICAgICAgICAgICBmb3IgY29u
ZGl0aW9uIGluIGN1cnJlbnRfY29uZGl0aW9uczoKICAgICAgICAgICAgICAgICBpZiAoKG5vdCBj
b25kaXRpb24udmFyaWFibGVzLmlzc3Vic2V0KHVwZGF0ZV9wcm9wZXJ0aWVzKSBhbmQKQEAgLTYx
NCw3ICs2MTYsOCBAQCBjbGFzcyBQcm9wZXJ0eVVwZGF0ZShvYmplY3QpOgogICAgICAgICAgICAg
ICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICAgICBl
eHByID0gbWFrZV9leHByKHByb3Bfc2V0LCB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAg
IGVycm9yID0gQ29uZGl0aW9uRXJyb3IoZXhwcikKLSAgICAgICAgICAgICAgICAgICAgZXhwciA9
IG1ha2VfZXhwcihwcm9wX3NldCwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBleHByID0gbWFrZV9leHByKHByb3Bfc2V0LCB2YWx1ZSkK
ICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAjIFRoZSByb290IG5v
ZGUgbmVlZHMgc3BlY2lhbCBoYW5kbGluZwogICAgICAgICAgICAgICAgICAgICBleHByID0gTm9u
ZQpAQCAtNjk1LDcgKzY5OCw3IEBAIGNsYXNzIEV4cGVjdGVkVXBkYXRlKFByb3BlcnR5VXBkYXRl
KToKICAgICAgICAgICAgIHJhaXNlIENvbmRpdGlvbkVycm9yCiAKICAgICAgICAgY291bnRzID0g
e30KLSAgICAgICAgZm9yIHN0YXR1cywgY291bnQgaW4gaXRlcml0ZW1zKG5ldyk6CisgICAgICAg
IGZvciBzdGF0dXMsIGNvdW50IGluIG5ldy5pdGVtcygpOgogICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShzdGF0dXMsIHR1cGxlKToKICAgICAgICAgICAgICAgICBjb3VudHNbc3RhdHVzWzBdXSA9
IGNvdW50CiAgICAgICAgICAgICAgICAgY291bnRzLnVwZGF0ZSh7aW50ZXJtaXR0ZW50OiAwIGZv
ciBpbnRlcm1pdHRlbnQgaW4gc3RhdHVzWzE6XSBpZiBpbnRlcm1pdHRlbnQgbm90IGluIGNvdW50
c30pCkBAIC03MDksMjQgKzcxMiwyNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9wZXJ0eVVw
ZGF0ZSk6CiAgICAgICAgICMgQ291bnRzIHdpdGggMCBhcmUgY29uc2lkZXJlZCBpbnRlcm1pdHRl
bnQuCiAgICAgICAgIHN0YXR1c2VzID0gWyJPSyIsICJQQVNTIiwgIkZBSUwiLCAiRVJST1IiLCAi
VElNRU9VVCIsICJDUkFTSCJdCiAgICAgICAgIHN0YXR1c19wcmlvcml0eSA9IHt2YWx1ZTogaSBm
b3IgaSwgdmFsdWUgaW4gZW51bWVyYXRlKHN0YXR1c2VzKX0KLSAgICAgICAgc29ydGVkX25ldyA9
IHNvcnRlZChpdGVyaXRlbXMoY291bnRzKSwga2V5PWxhbWJkYSB4OigtMSAqIHhbMV0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXR1c19wcmlvcml0eS5nZXQoeFswXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0eSkpKSkKKyAgICAg
ICAgc29ydGVkX25ldyA9IHNvcnRlZChjb3VudHMuaXRlbXMoKSwga2V5PWxhbWJkYSB4OigtMSAq
IHhbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c19wcmlvcml0eS5nZXQoeFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0eSkpKSkK
ICAgICAgICAgZXhwZWN0ZWQgPSBbXQogICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBpbiBzb3J0
ZWRfbmV3OgogICAgICAgICAgICAgIyBJZiB3ZSBhcmUgbm90IHJlbW92aW5nIGV4aXN0aW5nIHJl
Y29yZGVkIGludGVybWl0dGVudHMsIHdpdGggYSBjb3VudCBvZiAwLAogICAgICAgICAgICAgIyBh
ZGQgdGhlbSBpbiB0byBleHBlY3RlZC4KICAgICAgICAgICAgIGlmIGNvdW50ID4gMCBvciBub3Qg
c2VsZi5yZW1vdmVfaW50ZXJtaXR0ZW50OgogICAgICAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVu
ZChzdGF0dXMpCisKKyAgICAgICAgIyBJZiB0aGUgbmV3IGludGVybWl0dGVudCBpcyBhIHN1YnNl
dCBvZiB0aGUgZXhpc3Rpbmcgb25lLCBqdXN0IHVzZSB0aGUgZXhpc3Rpbmcgb25lCisgICAgICAg
ICMgVGhpcyBwcmV2ZW50cyBmcmVxdWVudCBmbGlwLWZsb3BwaW5nIG9mIHJlc3VsdHMgYmV0d2Vl
biBlLmcuIFtPSywgVElNRU9VVF0gYW5kCisgICAgICAgICMgW1RJTUVPVVQsIE9LXQorICAgICAg
ICBpZiBjdXJyZW50IGFuZCBzZXQoZXhwZWN0ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50KSk6Cisg
ICAgICAgICAgICByZXR1cm4gY3VycmVudAorCiAgICAgICAgIGlmIHNlbGYudXBkYXRlX2ludGVy
bWl0dGVudDoKICAgICAgICAgICAgIGlmIGxlbihleHBlY3RlZCkgPT0gMToKICAgICAgICAgICAg
ICAgICByZXR1cm4gZXhwZWN0ZWRbMF0KICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZAogCi0g
ICAgICAgICMgSWYgbm90aGluZyBoYXMgY2hhbmdlZCBhbmQgbm90IHNlbGYudXBkYXRlX2ludGVy
bWl0dGVudCwgcHJlc2VydmUgZXhpc3RpbmcKLSAgICAgICAgIyBpbnRlcm1pdHRlbnQuCi0gICAg
ICAgIGlmIHNldChleHBlY3RlZCkuaXNzdWJzZXQoc2V0KGN1cnJlbnQpKToKLSAgICAgICAgICAg
IHJldHVybiBjdXJyZW50CiAgICAgICAgICMgSWYgd2UgYXJlIG5vdCB1cGRhdGluZyBpbnRlcm1p
dHRlbnRzLCByZXR1cm4gdGhlIHN0YXR1cyB3aXRoIHRoZSBoaWdoZXN0IG9jY3VyZW5jZS4KICAg
ICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCiAKQEAgLTc2Miw3ICs3NjgsNyBAQCBjbGFzcyBNaW5B
c3NlcnRzVXBkYXRlKFByb3BlcnR5VXBkYXRlKToKIAogCiBjbGFzcyBBcHBlbmRPbmx5TGlzdFVw
ZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6Ci0gICAgY2xzX2RlZmF1bHRfdmFsdWUgPSBbXQorICAgIGNs
c19kZWZhdWx0X3ZhbHVlID0gW10gICMgdHlwZTogQ2xhc3NWYXJbTGlzdFtzdHJdXQogICAgIHBy
b3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKIAogICAgIGRlZiB1cGRh
dGVkX3ZhbHVlKHNlbGYsIGN1cnJlbnQsIG5ldyk6CkBAIC03NzQsNyArNzgwLDcgQEAgY2xhc3Mg
QXBwZW5kT25seUxpc3RVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgogICAgICAgICBmb3IgaXRlbSBp
biBuZXc6CiAgICAgICAgICAgICBpZiBpdGVtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY29u
dGludWUKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpdGVtLCB0ZXh0X3R5cGUpOgorICAg
ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGl0ZW0sIHN0cik6CiAgICAgICAgICAgICAgICAgcnYu
YWRkKGl0ZW0pCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJ2IHw9IGl0ZW0K
QEAgLTgxNSwxNCArODIxLDE0IEBAIGNsYXNzIExlYWtPYmplY3RVcGRhdGUoQXBwZW5kT25seUxp
c3RVcGRhdGUpOgogCiBjbGFzcyBMZWFrVGhyZXNob2xkVXBkYXRlKFByb3BlcnR5VXBkYXRlKToK
ICAgICBwcm9wZXJ0eV9uYW1lID0gImxlYWstdGhyZXNob2xkIgotICAgIGNsc19kZWZhdWx0X3Zh
bHVlID0ge30KKyAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IHt9ICAjIHR5cGU6IENsYXNzVmFyW0Rp
Y3Rbc3RyLCBpbnRdXQogICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFs
X3RyZWUKIAogICAgIGRlZiBmcm9tX3Jlc3VsdF92YWx1ZShzZWxmLCByZXN1bHQpOgogICAgICAg
ICByZXR1cm4gcmVzdWx0CiAKICAgICBkZWYgdG9faW5pX3ZhbHVlKHNlbGYsIGRhdGEpOgotICAg
ICAgICByZXR1cm4gWyIlczolcyIgJSBpdGVtIGZvciBpdGVtIGluIHNvcnRlZChpdGVyaXRlbXMo
ZGF0YSkpXQorICAgICAgICByZXR1cm4gWyIlczolcyIgJSBpdGVtIGZvciBpdGVtIGluIHNvcnRl
ZChkYXRhLml0ZW1zKCkpXQogCiAgICAgZGVmIGZyb21faW5pX3ZhbHVlKHNlbGYsIGRhdGEpOgog
ICAgICAgICBydiA9IHt9CkBAIC04OTcsMTAgKzkwMywxMCBAQCBkZWYgbWFrZV9leHByKHByb3Bf
c2V0LCByaHMpOgogCiAKIGRlZiBtYWtlX25vZGUodmFsdWUpOgotICAgIGlmIGlzaW5zdGFuY2Uo
dmFsdWUsIGludGVnZXJfdHlwZXMrKGZsb2F0LCkpOgorICAgIGlmIGlzaW5zdGFuY2UodmFsdWUs
IChpbnQsIGZsb2F0LCkpOgogICAgICAgICBub2RlID0gTnVtYmVyTm9kZSh2YWx1ZSkKLSAgICBl
bGlmIGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSk6Ci0gICAgICAgIG5vZGUgPSBTdHJpbmdO
b2RlKHRleHRfdHlwZSh2YWx1ZSkpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgor
ICAgICAgICBub2RlID0gU3RyaW5nTm9kZShzdHIodmFsdWUpKQogICAgIGVsaWYgaGFzYXR0cih2
YWx1ZSwgIl9faXRlcl9fIik6CiAgICAgICAgIG5vZGUgPSBMaXN0Tm9kZSgpCiAgICAgICAgIGZv
ciBpdGVtIGluIHZhbHVlOgpAQCAtOTA5LDE0ICs5MTUsMTQgQEAgZGVmIG1ha2Vfbm9kZSh2YWx1
ZSk6CiAKIAogZGVmIG1ha2VfdmFsdWVfbm9kZSh2YWx1ZSk6Ci0gICAgaWYgaXNpbnN0YW5jZSh2
YWx1ZSwgaW50ZWdlcl90eXBlcysoZmxvYXQsKSk6CisgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwg
KGludCwgZmxvYXQsKSk6CiAgICAgICAgIG5vZGUgPSBWYWx1ZU5vZGUodmFsdWUpCi0gICAgZWxp
ZiBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgotICAgICAgICBub2RlID0gVmFsdWVOb2Rl
KHRleHRfdHlwZSh2YWx1ZSkpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAg
ICAgICBub2RlID0gVmFsdWVOb2RlKHN0cih2YWx1ZSkpCiAgICAgZWxpZiBoYXNhdHRyKHZhbHVl
LCAiX19pdGVyX18iKToKICAgICAgICAgbm9kZSA9IExpc3ROb2RlKCkKICAgICAgICAgZm9yIGl0
ZW0gaW4gdmFsdWU6Ci0gICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX25vZGUoaXRlbSkpCisg
ICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX3ZhbHVlX25vZGUoaXRlbSkpCiAgICAgZWxzZToK
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRG9uJ3Qga25vdyBob3cgdG8gY29udmVydCAlcyBp
bnRvIG5vZGUiICUgdHlwZSh2YWx1ZSkpCiAgICAgcmV0dXJuIG5vZGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFk
YXRhLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvbWV0YWRhdGEucHkKaW5kZXggYWI4ZDQ3NDBmM2ZjLi45YzU0ZTU3MGMwMWIgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL21ldGFkYXRhLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CkBAIC0xLDEyICsxLDExIEBACi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgYXJyYXkKIGltcG9ydCBvcwot
aW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QsIG5hbWVkdHVw
bGUKK2Zyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBUdXBsZQogCiBmcm9tIG1vemxvZyBp
bXBvcnQgc3RydWN0dXJlZGxvZwotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9zdHIsIGVuc3VyZV90
ZXh0LCBpdGVyaXRlbXMsIGl0ZXJrZXlzLCBpdGVydmFsdWVzLCB0ZXh0X3R5cGUKLWZyb20gc2l4
Lm1vdmVzIGltcG9ydCBpbnRlcm4sIHJhbmdlCitmcm9tIHNpeCBpbXBvcnQgZW5zdXJlX3N0ciwg
ZW5zdXJlX3RleHQKK2Zyb20gc3lzIGltcG9ydCBpbnRlcm4KIAogZnJvbSAuIGltcG9ydCBtYW5p
ZmVzdHVwZGF0ZQogZnJvbSAuIGltcG9ydCB0ZXN0bG9hZGVyCkBAIC0yMiw3ICsyMSw3IEBAIGxv
Z2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigid2ViLXBsYXRmb3JtLXRlc3Rz
IikKIHRyeToKICAgICBpbXBvcnQgdWpzb24gYXMganNvbgogZXhjZXB0IEltcG9ydEVycm9yOgot
ICAgIGltcG9ydCBqc29uCisgICAgaW1wb3J0IGpzb24gICMgdHlwZTogaWdub3JlCiAKIAogY2xh
c3MgUnVuSW5mbyhvYmplY3QpOgpAQCAtNDUsMTEgKzQ0LDExIEBAIGNsYXNzIFJ1bkluZm8ob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuY2Fub25pY2FsX3JlcHIgPT0gb3RoZXIuY2Fub25p
Y2FsX3JlcHIKIAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0gICAgICAgIGZvciBrZXksIHZh
bHVlIGluIGl0ZXJpdGVtcyhzZWxmLmRhdGEpOgorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBz
ZWxmLmRhdGEuaXRlbXMoKToKICAgICAgICAgICAgIHlpZWxkIGtleSwgdmFsdWUKIAogICAgIGRl
ZiBpdGVtcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGxpc3QoaXRlcml0ZW1zKHNlbGYpKQorICAg
ICAgICByZXR1cm4gbGlzdChzZWxmLml0ZW1zKCkpCiAKIAogZGVmIHVwZGF0ZV9leHBlY3RlZCh0
ZXN0X3BhdGhzLCBzZXJ2ZV9yb290LCBsb2dfZmlsZV9uYW1lcywKQEAgLTkzLDcgKzkyLDcgQEAg
ZGVmIHVwZGF0ZV9leHBlY3RlZCh0ZXN0X3BhdGhzLCBzZXJ2ZV9yb290LCBsb2dfZmlsZV9uYW1l
cywKIAogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cyhzZXJ2ZV9yb290PU5vbmUpOgogICAgIGdsb2Jh
bCBtYW5pZmVzdCwgbWFuaWZlc3RpdGVtCi0gICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZl
c3QsIGl0ZW0gYXMgbWFuaWZlc3RpdGVtCisgICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZl
c3QsIGl0ZW0gYXMgbWFuaWZlc3RpdGVtICAjIHR5cGU6IGlnbm9yZQogCiAKIGRlZiBmaWxlc19p
bl9yZXBvKHJlcG9fcm9vdCk6CkBAIC0xMjksNyArMTI4LDcgQEAgZGVmIHVuZXhwZWN0ZWRfY2hh
bmdlcyhtYW5pZmVzdHMsIGNoYW5nZV9kYXRhLCBmaWxlc19jaGFuZ2VkKToKICAgICBmaWxlc19j
aGFuZ2VkID0gc2V0KGZpbGVzX2NoYW5nZWQpCiAKICAgICByb290X21hbmlmZXN0ID0gTm9uZQot
ICAgIGZvciBtYW5pZmVzdCwgcGF0aHMgaW4gaXRlcml0ZW1zKG1hbmlmZXN0cyk6CisgICAgZm9y
IG1hbmlmZXN0LCBwYXRocyBpbiBtYW5pZmVzdHMuaXRlbXMoKToKICAgICAgICAgaWYgcGF0aHNb
InVybF9iYXNlIl0gPT0gIi8iOgogICAgICAgICAgICAgcm9vdF9tYW5pZmVzdCA9IG1hbmlmZXN0
CiAgICAgICAgICAgICBicmVhawpAQCAtMTcwLDkgKzE2OSwxMCBAQCBjbGFzcyBJbnRlcm5lZERh
dGEob2JqZWN0KToKICAgICB0eXBlX2NvbnYgPSBOb25lCiAgICAgcmV2X3R5cGVfY29udiA9IE5v
bmUKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXhfYml0cz04KToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbWF4X2JpdHM6IGludCA9IDgpOgogICAgICAgICBzZWxmLm1heF9pZHggPSAyKipt
YXhfYml0cyAtIDIKICAgICAgICAgIyBSZXNlcnZlIDAgYXMgYSBzZW50aW5hbAorICAgICAgICBz
ZWxmLl9kYXRhOiBUdXBsZVtMaXN0W29iamVjdF0sIERpY3RbaW50LCBvYmplY3RdXQogICAgICAg
ICBzZWxmLl9kYXRhID0gW05vbmVdLCB7fQogCiAgICAgZGVmIGNsZWFyKHNlbGYpOgpAQCAtMjQw
LDcgKzI0MCw3IEBAIGRlZiBwYWNrX3Jlc3VsdChkYXRhKToKIGRlZiB1bnBhY2tfcmVzdWx0KGRh
dGEpOgogICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgaW50KToKICAgICAgICAgcmV0dXJuIChzdGF0
dXNfaW50ZXJuLmdldChkYXRhKSwgTm9uZSkKLSAgICBpZiBpc2luc3RhbmNlKGRhdGEsIHRleHRf
dHlwZSk6CisgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBzdHIpOgogICAgICAgICByZXR1cm4gKGRh
dGEsIE5vbmUpCiAgICAgIyBVbnBhY2sgbXVsdGlwbGUgc3RhdHVzZXMgaW50byBhIHR1cGxlIHRv
IGJlIHVzZWQgaW4gdGhlIFJlc3VsdHMgbmFtZWQgdHVwbGUgYmVsb3csCiAgICAgIyBzZXBhcmF0
aW5nIGBzdGF0dXNgIGFuZCBga25vd25faW50ZXJtaXR0ZW50YC4KQEAgLTI1OSw3ICsyNTksNyBA
QCBkZWYgbG9hZF90ZXN0X2RhdGEodGVzdF9wYXRocyk6CiAgICAgbWFuaWZlc3RzID0gbWFuaWZl
c3RfbG9hZGVyLmxvYWQoKQogCiAgICAgaWRfdGVzdF9tYXAgPSB7fQotICAgIGZvciB0ZXN0X21h
bmlmZXN0LCBwYXRocyBpbiBpdGVyaXRlbXMobWFuaWZlc3RzKToKKyAgICBmb3IgdGVzdF9tYW5p
ZmVzdCwgcGF0aHMgaW4gbWFuaWZlc3RzLml0ZW1zKCk6CiAgICAgICAgIGlkX3Rlc3RfbWFwLnVw
ZGF0ZShjcmVhdGVfdGVzdF90cmVlKHBhdGhzWyJtZXRhZGF0YV9wYXRoIl0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWFuaWZlc3QpKQogICAgIHJl
dHVybiBpZF90ZXN0X21hcApAQCAtMjg3LDEwICsyODcsMTAgQEAgZGVmIHVwZGF0ZV9yZXN1bHRz
KGlkX3Rlc3RfbWFwLAogICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50LAog
ICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCiAgICAgICAgICAgICAgICAg
ICAgcmVtb3ZlX2ludGVybWl0dGVudCk6Ci0gICAgdGVzdF9maWxlX2l0ZW1zID0gc2V0KGl0ZXJ2
YWx1ZXMoaWRfdGVzdF9tYXApKQorICAgIHRlc3RfZmlsZV9pdGVtcyA9IHNldChpZF90ZXN0X21h
cC52YWx1ZXMoKSkKIAogICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZSA9IHt9Ci0gICAgZm9y
IHRlc3RfdHlwZSwgdGVzdF9jbHMgaW4gaXRlcml0ZW1zKHdwdHRlc3QubWFuaWZlc3RfdGVzdF9j
bHMpOgorICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfY2xzIGluIHdwdHRlc3QubWFuaWZlc3RfdGVz
dF9jbHMuaXRlbXMoKToKICAgICAgICAgaWYgdGVzdF9jbHMucmVzdWx0X2NsczoKICAgICAgICAg
ICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZVsodGVzdF90eXBlLCBGYWxzZSldID0gdGVzdF9j
bHMucmVzdWx0X2Nscy5kZWZhdWx0X2V4cGVjdGVkCiAgICAgICAgIGlmIHRlc3RfY2xzLnN1YnRl
c3RfcmVzdWx0X2NsczoKQEAgLTMyNywxMCArMzI3LDcgQEAgZGVmIHdyaXRlX25ld19leHBlY3Rl
ZChtZXRhZGF0YV9wYXRoLCBleHBlY3RlZCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHdp
dGggb3Blbih0bXBfcGF0aCwgIndiIikgYXMgZjoKICAgICAgICAgICAgICAgICBmLndyaXRlKG1h
bmlmZXN0X3N0ci5lbmNvZGUoInV0ZjgiKSkKLSAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu
Zm8gPj0gKDMsIDMpOgotICAgICAgICAgICAgICAgIG9zLnJlcGxhY2UodG1wX3BhdGgsIHBhdGgp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG9zLnJlbmFtZSh0bXBfcGF0aCwg
cGF0aCkKKyAgICAgICAgICAgIG9zLnJlcGxhY2UodG1wX3BhdGgsIHBhdGgpCiAgICAgICAgIGV4
Y2VwdCAoRXhjZXB0aW9uLCBLZXlib2FyZEludGVycnVwdCk6CiAgICAgICAgICAgICB0cnk6CiAg
ICAgICAgICAgICAgICAgb3MudW5saW5rKHRtcF9wYXRoKQpAQCAtNDMxLDcgKzQyOCw3IEBAIGNs
YXNzIEV4cGVjdGVkVXBkYXRlcihvYmplY3QpOgogICAgICAgICAgICAgYWN0aW9uX21hcFsibHNh
bl9sZWFrIl0oaXRlbSkKIAogICAgICAgICBtb3psZWFrX2RhdGEgPSBkYXRhLmdldCgibW96bGVh
ayIsIHt9KQotICAgICAgICBmb3Igc2NvcGUsIHNjb3BlX2RhdGEgaW4gaXRlcml0ZW1zKG1vemxl
YWtfZGF0YSk6CisgICAgICAgIGZvciBzY29wZSwgc2NvcGVfZGF0YSBpbiBtb3psZWFrX2RhdGEu
aXRlbXMoKToKICAgICAgICAgICAgIGZvciBrZXksIGFjdGlvbiBpbiBbKCJvYmplY3RzIiwgIm1v
emxlYWtfb2JqZWN0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidG90YWwi
LCAibW96bGVha190b3RhbCIpXToKICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBzY29wZV9k
YXRhLmdldChrZXksIFtdKToKQEAgLTY2OCwxMSArNjY1LDExIEBAIGNsYXNzIFRlc3RGaWxlRGF0
YShvYmplY3QpOgogICAgICAgICAjIFJldHVybiBzdWJ0ZXN0IG5vZGVzIHByZXNlbnQgaW4gdGhl
IGV4cGVjdGVkIGZpbGUsIGJ1dCBtaXNzaW5nIGZyb20gdGhlIGRhdGEKICAgICAgICAgcnYgPSBb
XQogCi0gICAgICAgIGZvciB0ZXN0X2lkLCBzdWJ0ZXN0cyBpbiBpdGVyaXRlbXMoc2VsZi5kYXRh
KToKKyAgICAgICAgZm9yIHRlc3RfaWQsIHN1YnRlc3RzIGluIHNlbGYuZGF0YS5pdGVtcygpOgog
ICAgICAgICAgICAgdGVzdCA9IGV4cGVjdGVkLmdldF90ZXN0KGVuc3VyZV90ZXh0KHRlc3RfaWQp
KQogICAgICAgICAgICAgaWYgbm90IHRlc3Q6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAg
ICAgICAgICAgIHNlZW5fc3VidGVzdHMgPSBzZXQoZW5zdXJlX3RleHQoaXRlbSkgZm9yIGl0ZW0g
aW4gaXRlcmtleXMoc3VidGVzdHMpIGlmIGl0ZW0gaXMgbm90IE5vbmUpCisgICAgICAgICAgICBz
ZWVuX3N1YnRlc3RzID0gc2V0KGVuc3VyZV90ZXh0KGl0ZW0pIGZvciBpdGVtIGluIHN1YnRlc3Rz
LmtleXMoKSBpZiBpdGVtIGlzIG5vdCBOb25lKQogICAgICAgICAgICAgbWlzc2luZ19zdWJ0ZXN0
cyA9IHNldCh0ZXN0LnN1YnRlc3RzLmtleXMoKSkgLSBzZWVuX3N1YnRlc3RzCiAgICAgICAgICAg
ICBmb3IgaXRlbSBpbiBtaXNzaW5nX3N1YnRlc3RzOgogICAgICAgICAgICAgICAgIGV4cGVjdGVk
X3N1YnRlc3QgPSB0ZXN0LmdldF9zdWJ0ZXN0KGl0ZW0pCkBAIC02OTEsNyArNjg4LDcgQEAgY2xh
c3MgVGVzdEZpbGVEYXRhKG9iamVjdCk6CiAgICAgICAgICMgc2luY2UgcmVtb3ZpbmcgdGhlc2Ug
bWF5IGJlIGluYXBwcm9wcmlhdGUKICAgICAgICAgdG9wX2xldmVsX3Byb3BzLCBkZXBlbmRlbnRf
cHJvcHMgPSB1cGRhdGVfcHJvcGVydGllcwogICAgICAgICBhbGxfcHJvcGVydGllcyA9IHNldCh0
b3BfbGV2ZWxfcHJvcHMpCi0gICAgICAgIGZvciBpdGVtIGluIGl0ZXJ2YWx1ZXMoZGVwZW5kZW50
X3Byb3BzKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gZGVwZW5kZW50X3Byb3BzLnZhbHVlcygpOgog
ICAgICAgICAgICAgYWxsX3Byb3BlcnRpZXMgfD0gc2V0KGl0ZW0pCiAKICAgICAgICAgZmlsdGVy
ZWQgPSBbXQpAQCAtNzQxLDkgKzczOCw5IEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmplY3QpOgog
ICAgICAgICAgICAgdGVzdF9leHBlY3RlZCA9IGV4cGVjdGVkLmdldF90ZXN0KHRlc3RfaWQpCiAg
ICAgICAgICAgICBleHBlY3RlZF9ieV90ZXN0W3Rlc3RfaWRdID0gdGVzdF9leHBlY3RlZAogCi0g
ICAgICAgIGZvciB0ZXN0X2lkLCB0ZXN0X2RhdGEgaW4gaXRlcml0ZW1zKHNlbGYuZGF0YSk6Cisg
ICAgICAgIGZvciB0ZXN0X2lkLCB0ZXN0X2RhdGEgaW4gc2VsZi5kYXRhLml0ZW1zKCk6CiAgICAg
ICAgICAgICB0ZXN0X2lkID0gZW5zdXJlX3N0cih0ZXN0X2lkKQotICAgICAgICAgICAgZm9yIHN1
YnRlc3RfaWQsIHJlc3VsdHNfbGlzdCBpbiBpdGVyaXRlbXModGVzdF9kYXRhKToKKyAgICAgICAg
ICAgIGZvciBzdWJ0ZXN0X2lkLCByZXN1bHRzX2xpc3QgaW4gdGVzdF9kYXRhLml0ZW1zKCk6CiAg
ICAgICAgICAgICAgICAgZm9yIHByb3AsIHJ1bl9pbmZvLCB2YWx1ZSBpbiByZXN1bHRzX2xpc3Q6
CiAgICAgICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIGRpcmVjdG9yeSBtZXRhZGF0YQog
ICAgICAgICAgICAgICAgICAgICBpZiBzdWJ0ZXN0X2lkIGlzIE5vbmUgYW5kIHRlc3RfaWQuZW5k
c3dpdGgoIl9fZGlyX18iKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1MGMwNDc4MmE2NQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL21wY29udGV4dC5weQpAQCAtMCwwICsxLDExIEBACitpbXBvcnQgbXVsdGlwcm9j
ZXNzaW5nCisKK19jb250ZXh0ID0gTm9uZQorCisKK2RlZiBnZXRfY29udGV4dCgpOgorICAgIGds
b2JhbCBfY29udGV4dAorCisgICAgaWYgX2NvbnRleHQgaXMgTm9uZToKKyAgICAgICAgX2NvbnRl
eHQgPSBtdWx0aXByb2Nlc3NpbmcuZ2V0X2NvbnRleHQoInNwYXduIikKKyAgICByZXR1cm4gX2Nv
bnRleHQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Byb2Nlc3MucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4YTJiODk0Y2I3NGQuLjAwMDAwMDAwMDAwMAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotaW1wb3J0IHN5cwotCi1pbXBvcnQgc2l4Ci0KLQot
ZGVmIGNhc3RfZW52KGVudik6Ci0gICAgIiIiRW5jb2RlIGFsbCB0aGUgZW52aXJvbm1lbnQgdmFs
dWVzIGFzIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGZvciBlYWNoIFB5dGhvbiB2ZXJzaW9uCi0gICAg
VGhpcyBhc3N1bWVzIHRoYXQgYWxsIHRoZSBkYXRhIGlzIG9yIGNhbiBiZSByZXByZXNlbnRlZCBh
cyBVVEY4IiIiCi0KLSAgICBlbnZfdHlwZSA9IHNpeC5lbnN1cmVfYmluYXJ5IGlmIHN5cy52ZXJz
aW9uX2luZm9bMF0gPCAzIGVsc2Ugc2l4LmVuc3VyZV9zdHIKLSAgICByZXR1cm4ge2Vudl90eXBl
KGtleSk6IGVudl90eXBlKHZhbHVlKSBmb3Iga2V5LCB2YWx1ZSBpbiBzaXguaXRlcml0ZW1zKGVu
dil9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5CmluZGV4IGFiZDg0MDk0YmIzMy4u
ZTY1ZGY1ZWU4OTkzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQpAQCAtMSw2
ICsxLDUgQEAKIGltcG9ydCBpbXBvcnRsaWIKIGltcG9ydCBpbXAKLWZyb20gc2l4IGltcG9ydCBp
dGVyaXRlbXMKIAogZnJvbSAuYnJvd3NlcnMgaW1wb3J0IHByb2R1Y3RfbGlzdAogCkBAIC0zNCwz
NCArMzMsMjkgQEAgY2xhc3MgUHJvZHVjdChvYmplY3QpOgogICAgICAgICBtb2R1bGUgPSBwcm9k
dWN0X21vZHVsZShjb25maWcsIHByb2R1Y3QpCiAgICAgICAgIGRhdGEgPSBtb2R1bGUuX193cHRy
dW5uZXJfXwogICAgICAgICBzZWxmLm5hbWUgPSBwcm9kdWN0CisgICAgICAgIGlmIGlzaW5zdGFu
Y2UoZGF0YVsiYnJvd3NlciJdLCBzdHIpOgorICAgICAgICAgICAgc2VsZi5fYnJvd3Nlcl9jbHMg
PSB7Tm9uZTogZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXIiXSl9CisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBzZWxmLl9icm93c2VyX2NscyA9IHtrZXk6IGdldGF0dHIobW9kdWxlLCB2
YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGlu
IGRhdGFbImJyb3dzZXIiXS5pdGVtcygpfQogICAgICAgICBzZWxmLmNoZWNrX2FyZ3MgPSBnZXRh
dHRyKG1vZHVsZSwgZGF0YVsiY2hlY2tfYXJncyJdKQotICAgICAgICBzZWxmLmJyb3dzZXJfY2xz
ID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXIiXSkKICAgICAgICAgc2VsZi5nZXRfYnJv
d3Nlcl9rd2FyZ3MgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiYnJvd3Nlcl9rd2FyZ3MiXSkKICAg
ICAgICAgc2VsZi5nZXRfZXhlY3V0b3Jfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImV4
ZWN1dG9yX2t3YXJncyJdKQogICAgICAgICBzZWxmLmVudl9vcHRpb25zID0gZ2V0YXR0cihtb2R1
bGUsIGRhdGFbImVudl9vcHRpb25zIl0pKCkKICAgICAgICAgc2VsZi5nZXRfZW52X2V4dHJhcyA9
IGdldGF0dHIobW9kdWxlLCBkYXRhWyJlbnZfZXh0cmFzIl0pCiAgICAgICAgIHNlbGYucnVuX2lu
Zm9fZXh0cmFzID0gKGdldGF0dHIobW9kdWxlLCBkYXRhWyJydW5faW5mb19leHRyYXMiXSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJydW5faW5mb19leHRyYXMiIGluIGRhdGEgZWxz
ZSBsYW1iZGEgKiprd2FyZ3M6e30pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICJydW5faW5mb19leHRyYXMiIGluIGRhdGEgZWxzZSBsYW1iZGEgKiprd2FyZ3M6e30pCiAgICAg
ICAgIHNlbGYuZ2V0X3RpbWVvdXRfbXVsdGlwbGllciA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJ0
aW1lb3V0X211bHRpcGxpZXIiXSkKIAogICAgICAgICBzZWxmLmV4ZWN1dG9yX2NsYXNzZXMgPSB7
fQotICAgICAgICBmb3IgdGVzdF90eXBlLCBjbHNfbmFtZSBpbiBpdGVyaXRlbXMoZGF0YVsiZXhl
Y3V0b3IiXSk6CisgICAgICAgIGZvciB0ZXN0X3R5cGUsIGNsc19uYW1lIGluIGRhdGFbImV4ZWN1
dG9yIl0uaXRlbXMoKToKICAgICAgICAgICAgIGNscyA9IGdldGF0dHIobW9kdWxlLCBjbHNfbmFt
ZSkKICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3JfY2xhc3Nlc1t0ZXN0X3R5cGVdID0gY2xzCiAK
LQotZGVmIGxvYWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QsIGxvYWRfY2xzPUZhbHNlKToKLSAg
ICBydiA9IFByb2R1Y3QoY29uZmlnLCBwcm9kdWN0KQotICAgIGlmIG5vdCBsb2FkX2NsczoKLSAg
ICAgICAgcmV0dXJuIChydi5jaGVja19hcmdzLAotICAgICAgICAgICAgICAgIHJ2LmJyb3dzZXJf
Y2xzLAotICAgICAgICAgICAgICAgIHJ2LmdldF9icm93c2VyX2t3YXJncywKLSAgICAgICAgICAg
ICAgICBydi5leGVjdXRvcl9jbGFzc2VzLAotICAgICAgICAgICAgICAgIHJ2LmdldF9leGVjdXRv
cl9rd2FyZ3MsCi0gICAgICAgICAgICAgICAgcnYuZW52X29wdGlvbnMsCi0gICAgICAgICAgICAg
ICAgcnYuZ2V0X2Vudl9leHRyYXMsCi0gICAgICAgICAgICAgICAgcnYucnVuX2luZm9fZXh0cmFz
KQotICAgIHJldHVybiBydgorICAgIGRlZiBnZXRfYnJvd3Nlcl9jbHMoc2VsZiwgdGVzdF90eXBl
KToKKyAgICAgICAgaWYgdGVzdF90eXBlIGluIHNlbGYuX2Jyb3dzZXJfY2xzOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX2Jyb3dzZXJfY2xzW3Rlc3RfdHlwZV0KKyAgICAgICAgcmV0dXJuIHNl
bGYuX2Jyb3dzZXJfY2xzW05vbmVdCiAKIAogZGVmIGxvYWRfcHJvZHVjdF91cGRhdGUoY29uZmln
LCBwcm9kdWN0KToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weQppbmRleCA4OGQx
YzIzMmJmYjUuLmVlYjVhZjIzMDAyOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0
eS5weQpAQCAtNSw3ICs1LDYgQEAgaW1wb3J0IGlvCiBpbXBvcnQgb3MKIGZyb20gY29sbGVjdGlv
bnMgaW1wb3J0IE9yZGVyZWREaWN0LCBkZWZhdWx0ZGljdAogZnJvbSBkYXRldGltZSBpbXBvcnQg
ZGF0ZXRpbWUKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAogZnJvbSBtb3psb2cgaW1wb3J0
IHJlYWRlcgogZnJvbSBtb3psb2cuZm9ybWF0dGVycyBpbXBvcnQgSlNPTkZvcm1hdHRlcgpAQCAt
MTMsOCArMTIsOCBAQCBmcm9tIG1vemxvZy5oYW5kbGVycyBpbXBvcnQgQmFzZUhhbmRsZXIsIFN0
cmVhbUhhbmRsZXIsIExvZ0xldmVsRmlsdGVyCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pCiBsb2NhbHBhdGhzID0gaW1wLmxvYWRfc291cmNlKCJsb2NhbHBhdGhzIiwgb3MucGF0
aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRpciwgImxvY2Fs
cGF0aHMucHkiKSkpCi1mcm9tIGNpLnRjLmdpdGh1Yl9jaGVja3Nfb3V0cHV0IGltcG9ydCBnZXRf
Z2hfY2hlY2tzX291dHB1dHRlcgotZnJvbSB3cHQubWFya2Rvd24gaW1wb3J0IG1hcmtkb3duX2Fk
anVzdCwgdGFibGUKK2Zyb20gY2kudGMuZ2l0aHViX2NoZWNrc19vdXRwdXQgaW1wb3J0IGdldF9n
aF9jaGVja3Nfb3V0cHV0dGVyICAjIHR5cGU6IGlnbm9yZQorZnJvbSB3cHQubWFya2Rvd24gaW1w
b3J0IG1hcmtkb3duX2FkanVzdCwgdGFibGUgICMgdHlwZTogaWdub3JlCiAKIAogIyBJZiBhIHRl
c3QgdGFrZXMgbW9yZSB0aGFuIChGTEFLWV9USFJFU0hPTEQqdGltZW91dCkgYW5kIGRvZXMgbm90
IGNvbnNpc3RlbnRseQpAQCAtMjIsNyArMjEsNyBAQCBmcm9tIHdwdC5tYXJrZG93biBpbXBvcnQg
bWFya2Rvd25fYWRqdXN0LCB0YWJsZQogRkxBS1lfVEhSRVNIT0xEID0gMC44CiAKIAotY2xhc3Mg
TG9nQWN0aW9uRmlsdGVyKEJhc2VIYW5kbGVyKToKK2NsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNl
SGFuZGxlcik6ICAjIHR5cGU6IGlnbm9yZQogCiAgICAgIiIiSGFuZGxlciB0aGF0IGZpbHRlcnMg
b3V0IG1lc3NhZ2VzIG5vdCBvZiBhIGdpdmVuIHNldCBvZiBhY3Rpb25zLgogCkBAIC00NCw3ICs0
Myw3IEBAIGNsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CiAgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5pbm5lcihpdGVtKQogCiAKLWNsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hh
bmRsZXIpOgorY2xhc3MgTG9nSGFuZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6ICAjIHR5cGU6IGln
bm9yZQogCiAgICAgIiIiSGFuZGxlIHVwZGF0aW5nIHRlc3QgYW5kIHN1YnRlc3Qgc3RhdHVzIGlu
IGxvZy4KIApAQCAtMTQyLDEwICsxNDEsMTAgQEAgZGVmIHByb2Nlc3NfcmVzdWx0cyhsb2csIGl0
ZXJhdGlvbnMpOgogICAgIGhhbmRsZXIgPSBMb2dIYW5kbGVyKCkKICAgICByZWFkZXIuaGFuZGxl
X2xvZyhyZWFkZXIucmVhZChsb2cpLCBoYW5kbGVyKQogICAgIHJlc3VsdHMgPSBoYW5kbGVyLnJl
c3VsdHMKLSAgICBmb3IgdGVzdF9uYW1lLCB0ZXN0IGluIGl0ZXJpdGVtcyhyZXN1bHRzKToKKyAg
ICBmb3IgdGVzdF9uYW1lLCB0ZXN0IGluIHJlc3VsdHMuaXRlbXMoKToKICAgICAgICAgaWYgaXNf
aW5jb25zaXN0ZW50KHRlc3RbInN0YXR1cyJdLCBpdGVyYXRpb25zKToKICAgICAgICAgICAgIGlu
Y29uc2lzdGVudC5hcHBlbmQoKHRlc3RfbmFtZSwgTm9uZSwgdGVzdFsic3RhdHVzIl0sIFtdKSkK
LSAgICAgICAgZm9yIHN1YnRlc3RfbmFtZSwgc3VidGVzdCBpbiBpdGVyaXRlbXModGVzdFsic3Vi
dGVzdHMiXSk6CisgICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gdGVzdFsic3Vi
dGVzdHMiXS5pdGVtcygpOgogICAgICAgICAgICAgaWYgaXNfaW5jb25zaXN0ZW50KHN1YnRlc3Rb
InN0YXR1cyJdLCBpdGVyYXRpb25zKToKICAgICAgICAgICAgICAgICBpbmNvbnNpc3RlbnQuYXBw
ZW5kKCh0ZXN0X25hbWUsIHN1YnRlc3RfbmFtZSwgc3VidGVzdFsic3RhdHVzIl0sIHN1YnRlc3Rb
Im1lc3NhZ2VzIl0pKQogCkBAIC0yMzUsNyArMjM0LDcgQEAgZGVmIHdyaXRlX3Jlc3VsdHMobG9n
LCByZXN1bHRzLCBpdGVyYXRpb25zLCBwcl9udW1iZXI9Tm9uZSwgdXNlX2RldGFpbHM9RmFsc2Up
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVz
dHMiIGlmIGxlbihyZXN1bHRzKSA+IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZWxzZSAidGVzdCIpKQogCi0gICAgZm9yIHRlc3RfbmFtZSwgdGVz
dCBpbiBpdGVyaXRlbXMocmVzdWx0cyk6CisgICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiByZXN1
bHRzLml0ZW1zKCk6CiAgICAgICAgIGJhc2V1cmwgPSAiaHR0cDovL3czYy10ZXN0Lm9yZy9zdWJt
aXNzaW9ucyIKICAgICAgICAgaWYgImh0dHBzIiBpbiBvcy5wYXRoLnNwbGl0ZXh0KHRlc3RfbmFt
ZSlbMF0uc3BsaXQoIi4iKVsxOl06CiAgICAgICAgICAgICBiYXNldXJsID0gImh0dHBzOi8vdzNj
LXRlc3Qub3JnL3N1Ym1pc3Npb25zIgpAQCAtMzA1LDcgKzMwNCw3IEBAIGRlZiBnZXRfc3RlcHMo
bG9nZ2VyLCByZXBlYXRfbG9vcCwgcmVwZWF0X3Jlc3RhcnQsIGt3YXJnc19leHRyYXMpOgogICAg
IGZvciBrd2FyZ3NfZXh0cmEgaW4ga3dhcmdzX2V4dHJhczoKICAgICAgICAgaWYga3dhcmdzX2V4
dHJhOgogICAgICAgICAgICAgZmxhZ3Nfc3RyaW5nID0gIiB3aXRoIGZsYWdzICVzIiAlICIgIi5q
b2luKAotICAgICAgICAgICAgICAgICIlcz0lcyIgJSBpdGVtIGZvciBpdGVtIGluIGl0ZXJpdGVt
cyhrd2FyZ3NfZXh0cmEpKQorICAgICAgICAgICAgICAgICIlcz0lcyIgJSBpdGVtIGZvciBpdGVt
IGluIGt3YXJnc19leHRyYS5pdGVtcygpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZmxh
Z3Nfc3RyaW5nID0gIiIKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXIt
ZXh0cmEuanMKaW5kZXggOWMwYzY5YWYzYTNmLi44NDJhYmY0MTFmOTAgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rk
cml2ZXItZXh0cmEuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcwpAQCAtMzQsNyArMzQsNyBAQAog
ICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gInRlc3Rkcml2ZXItY29tcGxldGUiKSB7
CiAgICAgICAgICAgICBjb25zdCBjbWRfaWQgPSBkYXRhLmNtZF9pZDsKICAgICAgICAgICAgIGNv
bnN0IFtvbl9zdWNjZXNzLCBvbl9mYWlsdXJlXSA9IHBlbmRpbmcuZ2V0KGNtZF9pZCk7Ci0gICAg
ICAgICAgICBwZW5kaW5nLmNsZWFyKGNtZF9pZCk7CisgICAgICAgICAgICBwZW5kaW5nLmRlbGV0
ZShjbWRfaWQpOwogICAgICAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSBkYXRhLnN0YXR1cyA9PT0g
InN1Y2Nlc3MiID8gb25fc3VjY2VzcyA6IG9uX2ZhaWx1cmU7CiAgICAgICAgICAgICByZXNvbHZl
cihkYXRhKTsKICAgICAgICAgICAgIGlmIChpc190ZXN0X2NvbnRleHQpIHsKQEAgLTEzNiw2ICsx
MzYsOSBAQAogICAgICAgICAgICAgaWYgKHRlc3RoYXJuZXNzX2NvbnRleHQgPT09IG51bGwpIHsK
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRyaWVkIHRvIHJ1biBpbiBhIG5vbi10
ZXN0aGFybmVzcyB3aW5kb3cgd2l0aG91dCBhIGNhbGwgdG8gc2V0X3Rlc3RfY29udGV4dCIpOwog
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFjdGlvbl9tc2cuY29udGV4dCA9PT0gbnVs
bCkgeworICAgICAgICAgICAgICAgIGFjdGlvbl9tc2cuY29udGV4dCA9IGdldF93aW5kb3dfaWQo
d2luZG93KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNtZF9pZCA9IGN0eF9jbWRfaWQr
KzsKICAgICAgICAgICAgIGFjdGlvbl9tc2cuY21kX2lkID0gY21kX2lkOwogICAgICAgICAgICAg
d2luZG93LnRlc3RfZHJpdmVyLm1lc3NhZ2VfdGVzdCh7dHlwZTogInRlc3Rkcml2ZXItY29tbWFu
ZCIsCkBAIC0xNjksNiArMTcyLDEwIEBACiAgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJj
bGljayIsIHtzZWxlY3RvciwgY29udGV4dH0pOwogICAgIH07CiAKKyAgICB3aW5kb3cudGVzdF9k
cml2ZXJfaW50ZXJuYWwuZGVsZXRlX2FsbF9jb29raWVzID0gZnVuY3Rpb24oY29udGV4dD1udWxs
KSB7CisgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJkZWxldGVfYWxsX2Nvb2tpZXMiLCB7
Y29udGV4dH0pOworICAgIH07CisKICAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2Vu
ZF9rZXlzID0gZnVuY3Rpb24oZWxlbWVudCwga2V5cykgewogICAgICAgICBjb25zdCBzZWxlY3Rv
ciA9IGdldF9zZWxlY3RvcihlbGVtZW50KTsKICAgICAgICAgY29uc3QgY29udGV4dCA9IGdldF9j
b250ZXh0KGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
aGFybmVzc3JlcG9ydC1zZXJ2by5qcwppbmRleCBhMTBiNjlkZjU1MDQuLjRhMjdkYzI3ZWY2ZiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQt
c2Vydm8uanMKQEAgLTEsNCArMSw0IEBACi12YXIgcHJvcHMgPSB7b3V0cHV0OiUob3V0cHV0KWR9
OwordmFyIHByb3BzID0ge291dHB1dDolKG91dHB1dClkLCBkZWJ1ZzogJShkZWJ1ZylzfTsKIHZh
ciBzdGFydF9sb2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiBzdGFydF9sb2MuaHJl
ZiA9IGxvY2F0aW9uLmhyZWY7CiBzZXR1cChwcm9wcyk7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3Jl
cG9ydC1zZXJ2b2RyaXZlci5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvZHJpdmVyLmpzCmluZGV4
IGM4ODg0MTM2MDQ3MC4uNzgxOTUzOGRiYjhmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1z
ZXJ2b2RyaXZlci5qcworKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcwpAQCAtMSw0
ICsxLDQgQEAKLXNldHVwKHtvdXRwdXQ6JShvdXRwdXQpZH0pOworc2V0dXAoe291dHB1dDolKG91
dHB1dClkLCBkZWJ1ZzogJShkZWJ1ZylzfSk7CiAKIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1
bmN0aW9uKCkgewogICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywg
c3RhdHVzKSB7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzCmluZGV4IDljZDY4MGUxNGFlZC4uZDM4NTY5MjQ0NWM1IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVz
c3JlcG9ydC5qcworKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcwpAQCAtNzMsNiArNzMsNyBAQCB3aW5k
b3cuX193cHRydW5uZXJfcHJvY2Vzc19uZXh0X2V2ZW50ID0gZnVuY3Rpb24oKSB7CiAgIHZhciBw
cm9wcyA9IHtvdXRwdXQ6ICUob3V0cHV0KWQsCiAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRp
cGxpZXI6ICUodGltZW91dF9tdWx0aXBsaWVyKXMsCiAgICAgICAgICAgICAgICBleHBsaWNpdF90
aW1lb3V0OiAlKGV4cGxpY2l0X3RpbWVvdXQpcywKKyAgICAgICAgICAgICAgIGRlYnVnOiAlKGRl
YnVnKXMsCiAgICAgICAgICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJjb21wbGV0aW9uIl19Owog
CiAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzLCBoYXJuZXNzX3N0YXR1
cykgewpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKaW5kZXggNGEzZmE0Mjcz
NjU0Li45NDkyYThiYzM4ZTYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5w
eQpAQCAtMSwxNiArMSwxNCBAQAogaW1wb3J0IGhhc2hsaWIKIGltcG9ydCBqc29uCiBpbXBvcnQg
b3MKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQKK2Zyb20gdXJs
bGliLnBhcnNlIGltcG9ydCB1cmxzcGxpdAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3Ry
YWN0bWV0aG9kCi1mcm9tIHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gcXVldWUg
aW1wb3J0IEVtcHR5CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdCwgZGVxdWUK
LWZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBRdWV1ZQotZnJvbSBzaXggaW1wb3J0IGVuc3Vy
ZV9iaW5hcnksIGl0ZXJpdGVtcwotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCiAKIGZyb20g
LiBpbXBvcnQgbWFuaWZlc3RpbmNsdWRlCiBmcm9tIC4gaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQK
K2Zyb20gLiBpbXBvcnQgbXBjb250ZXh0CiBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKIGZyb20gbW96
bG9nIGltcG9ydCBzdHJ1Y3R1cmVkCiAKQEAgLTIyLDkgKzIwLDkgQEAgZG93bmxvYWRfZnJvbV9n
aXRodWIgPSBOb25lCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6CiAgICAgIyBUaGlzIHJlbGll
cyBvbiBhbiBhbHJlYWR5IGxvYWRlZCBtb2R1bGUgaGF2aW5nIHNldCB0aGUgc3lzLnBhdGggY29y
cmVjdGx5IDooCiAgICAgZ2xvYmFsIG1hbmlmZXN0LCBtYW5pZmVzdF91cGRhdGUsIGRvd25sb2Fk
X2Zyb21fZ2l0aHViCi0gICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QKKyAgICBmcm9t
IG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdCAgIyB0eXBlOiBpZ25vcmUKICAgICBmcm9tIG1hbmlm
ZXN0IGltcG9ydCB1cGRhdGUgYXMgbWFuaWZlc3RfdXBkYXRlCi0gICAgZnJvbSBtYW5pZmVzdC5k
b3dubG9hZCBpbXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIKKyAgICBmcm9tIG1hbmlmZXN0LmRv
d25sb2FkIGltcG9ydCBkb3dubG9hZF9mcm9tX2dpdGh1YiAgIyB0eXBlOiBpZ25vcmUKIAogCiBj
bGFzcyBUZXN0R3JvdXBzRmlsZShvYmplY3QpOgpAQCAtNDEsNyArMzksNyBAQCBjbGFzcyBUZXN0
R3JvdXBzRmlsZShvYmplY3QpOgogICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICBzZWxmLmdy
b3VwX2J5X3Rlc3QgPSB7fQotICAgICAgICBmb3IgZ3JvdXAsIHRlc3RfaWRzIGluIGl0ZXJpdGVt
cyhzZWxmLl9kYXRhKToKKyAgICAgICAgZm9yIGdyb3VwLCB0ZXN0X2lkcyBpbiBzZWxmLl9kYXRh
Lml0ZW1zKCk6CiAgICAgICAgICAgICBmb3IgdGVzdF9pZCBpbiB0ZXN0X2lkczoKICAgICAgICAg
ICAgICAgICBzZWxmLmdyb3VwX2J5X3Rlc3RbdGVzdF9pZF0gPSBncm91cAogCkBAIC01MSw2ICs0
OSwxNiBAQCBjbGFzcyBUZXN0R3JvdXBzRmlsZShvYmplY3QpOgogICAgIGRlZiBfX2dldGl0ZW1f
XyhzZWxmLCBrZXkpOgogICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtrZXldCiAKK2RlZiByZWFk
X2luY2x1ZGVfZnJvbV9maWxlKGZpbGUpOgorICAgIG5ld19pbmNsdWRlID0gW10KKyAgICB3aXRo
IG9wZW4oZmlsZSkgYXMgZjoKKyAgICAgICAgZm9yIGxpbmUgaW4gZjoKKyAgICAgICAgICAgIGxp
bmUgPSBsaW5lLnN0cmlwKCkKKyAgICAgICAgICAgICMgQWxsb3cgd2hvbGUtbGluZSBjb21tZW50
czsKKyAgICAgICAgICAgICMgZnJhZ21lbnRzIG1lYW4gd2UgY2FuJ3QgaGF2ZSBwYXJ0aWFsIGxp
bmUgIy1iYXNlZCBjb21tZW50cworICAgICAgICAgICAgaWYgbGVuKGxpbmUpID4gMCBhbmQgbm90
IGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAgICAgICAgICAgICAgIG5ld19pbmNsdWRlLmFwcGVu
ZChsaW5lKQorICAgIHJldHVybiBuZXdfaW5jbHVkZQogCiBkZWYgdXBkYXRlX2luY2x1ZGVfZm9y
X2dyb3Vwcyh0ZXN0X2dyb3VwcywgaW5jbHVkZSk6CiAgICAgaWYgaW5jbHVkZSBpcyBOb25lOgpA
QCAtOTMsNyArMTAxLDcgQEAgY2xhc3MgSGFzaENodW5rZXIoVGVzdENodW5rZXIpOgogICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBtYW5pZmVzdCk6CiAgICAgICAgIGNodW5rX2luZGV4ID0gc2VsZi5j
aHVua19udW1iZXIgLSAxCiAgICAgICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMg
aW4gbWFuaWZlc3Q6Ci0gICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGVuc3VyZV9iaW5h
cnkodGVzdF9wYXRoKSkuaGV4ZGlnZXN0KCksIDE2KQorICAgICAgICAgICAgaCA9IGludChoYXNo
bGliLm1kNSh0ZXN0X3BhdGguZW5jb2RlKCkpLmhleGRpZ2VzdCgpLCAxNikKICAgICAgICAgICAg
IGlmIGggJSBzZWxmLnRvdGFsX2NodW5rcyA9PSBjaHVua19pbmRleDoKICAgICAgICAgICAgICAg
ICB5aWVsZCB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMKIApAQCAtMTEyLDcgKzEyMCw3IEBA
IGNsYXNzIERpcmVjdG9yeUhhc2hDaHVua2VyKFRlc3RDaHVua2VyKToKICAgICAgICAgICAgICAg
ICBoYXNoX3BhdGggPSBvcy5wYXRoLnNlcC5qb2luKG9zLnBhdGguZGlybmFtZSh0ZXN0X3BhdGgp
LnNwbGl0KG9zLnBhdGguc2VwLCBkZXB0aClbOmRlcHRoXSkKICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgaGFzaF9wYXRoID0gb3MucGF0aC5kaXJuYW1lKHRlc3RfcGF0aCkKLSAg
ICAgICAgICAgIGggPSBpbnQoaGFzaGxpYi5tZDUoZW5zdXJlX2JpbmFyeShoYXNoX3BhdGgpKS5o
ZXhkaWdlc3QoKSwgMTYpCisgICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGhhc2hfcGF0
aC5lbmNvZGUoKSkuaGV4ZGlnZXN0KCksIDE2KQogICAgICAgICAgICAgaWYgaCAlIHNlbGYudG90
YWxfY2h1bmtzID09IGNodW5rX2luZGV4OgogICAgICAgICAgICAgICAgIHlpZWxkIHRlc3RfdHlw
ZSwgdGVzdF9wYXRoLCB0ZXN0cwogCkBAIC0xNzMsNyArMTgxLDcgQEAgY2xhc3MgTWFuaWZlc3RM
b2FkZXIob2JqZWN0KToKIAogICAgIGRlZiBsb2FkKHNlbGYpOgogICAgICAgICBydiA9IHt9Ci0g
ICAgICAgIGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gaXRlcml0ZW1zKHNlbGYudGVzdF9wYXRocyk6
CisgICAgICAgIGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gc2VsZi50ZXN0X3BhdGhzLml0ZW1zKCk6
CiAgICAgICAgICAgICBtYW5pZmVzdF9maWxlID0gc2VsZi5sb2FkX21hbmlmZXN0KHVybF9iYXNl
PXVybF9iYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKnBhdGhzKQogICAgICAgICAgICAgcGF0aF9kYXRhID0geyJ1cmxfYmFzZSI6IHVybF9iYXNl
fQpAQCAtMzkwLDcgKzM5OCw4IEBAIGNsYXNzIEdyb3VwZWRTb3VyY2UoVGVzdFNvdXJjZSk6CiAK
ICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgbWFrZV9xdWV1ZShjbHMsIHRlc3RzLCAqKmt3YXJn
cyk6Ci0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgIG1wID0gbXBjb250ZXh0
LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1wLlF1ZXVlKCkKICAgICAgICAg
Z3JvdXBzID0gW10KIAogICAgICAgICBzdGF0ZSA9IHt9CkBAIC00MjMsNyArNDMyLDggQEAgY2xh
c3MgR3JvdXBlZFNvdXJjZShUZXN0U291cmNlKToKIGNsYXNzIFNpbmdsZVRlc3RTb3VyY2UoVGVz
dFNvdXJjZSk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0ZXN0
cywgKiprd2FyZ3MpOgotICAgICAgICB0ZXN0X3F1ZXVlID0gUXVldWUoKQorICAgICAgICBtcCA9
IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHRlc3RfcXVldWUgPSBtcC5RdWV1ZSgp
CiAgICAgICAgIHByb2Nlc3NlcyA9IGt3YXJnc1sicHJvY2Vzc2VzIl0KICAgICAgICAgcXVldWVz
ID0gW2RlcXVlKFtdKSBmb3IgXyBpbiByYW5nZShwcm9jZXNzZXMpXQogICAgICAgICBtZXRhZGF0
YXMgPSBbY2xzLmdyb3VwX21ldGFkYXRhKE5vbmUpIGZvciBfIGluIHJhbmdlKHByb2Nlc3Nlcyld
CkBAIC00NjcsOSArNDc3LDEwIEBAIGNsYXNzIEdyb3VwRmlsZVRlc3RTb3VyY2UoVGVzdFNvdXJj
ZSk6CiAKICAgICAgICAgaWRzX3RvX3Rlc3RzID0ge3Rlc3QuaWQ6IHRlc3QgZm9yIHRlc3QgaW4g
dGVzdHN9CiAKLSAgICAgICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgbXAgPSBtcGNv
bnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICB0ZXN0X3F1ZXVlID0gbXAuUXVldWUoKQogCi0g
ICAgICAgIGZvciBncm91cF9uYW1lLCB0ZXN0X2lkcyBpbiBpdGVyaXRlbXModGVzdHNfYnlfZ3Jv
dXApOgorICAgICAgICBmb3IgZ3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gdGVzdHNfYnlfZ3JvdXAu
aXRlbXMoKToKICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0geyJzY29wZSI6IGdyb3VwX25h
bWV9CiAgICAgICAgICAgICBncm91cCA9IGRlcXVlKCkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RydW5uZXIucHkKaW5kZXggMGJkZTViYTM0OGVhLi40ZGExMjU1ZDEzYjcgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RydW5uZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5weQpAQCAtMSwxNCArMSwxMiBAQAotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCi0KLWltcG9ydCBtdWx0aXByb2Nlc3Np
bmcKIGltcG9ydCB0aHJlYWRpbmcKIGltcG9ydCB0cmFjZWJhY2sKLWZyb20gc2l4Lm1vdmVzLnF1
ZXVlIGltcG9ydCBFbXB0eQorZnJvbSBxdWV1ZSBpbXBvcnQgRW1wdHkKIGZyb20gY29sbGVjdGlv
bnMgaW1wb3J0IG5hbWVkdHVwbGUKLWZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQcm9jZXNz
LCBjdXJyZW50X3Byb2Nlc3MsIFF1ZXVlCiAKIGZyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVk
bG9nLCBjYXB0dXJlCiAKK2Zyb20gLiBpbXBvcnQgbXBjb250ZXh0CisKICMgU3BlY2lhbCB2YWx1
ZSB1c2VkIGFzIGEgc2VudGluYWwgaW4gdmFyaW91cyBjb21tYW5kcwogU3RvcCA9IG9iamVjdCgp
CiAKQEAgLTI0LDMwICsyMiwxMiBAQCBkZWYgcmVsZWFzZV9tb3psb2dfbG9jaygpOgogICAgICAg
ICBwYXNzCiAKIAotY2xhc3MgTWVzc2FnZUxvZ2dlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtZXNzYWdlX2Z1bmMpOgotICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSA9IG1lc3Nh
Z2VfZnVuYwotCi0gICAgZGVmIF9sb2dfZGF0YShzZWxmLCBhY3Rpb24sICoqa3dhcmdzKToKLSAg
ICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoImxvZyIsIGFjdGlvbiwga3dhcmdzKQotCi0gICAgZGVm
IHByb2Nlc3Nfb3V0cHV0KHNlbGYsIHByb2Nlc3MsIGRhdGEsIGNvbW1hbmQpOgotICAgICAgICBz
ZWxmLl9sb2dfZGF0YSgicHJvY2Vzc19vdXRwdXQiLCBwcm9jZXNzPXByb2Nlc3MsIGRhdGE9ZGF0
YSwgY29tbWFuZD1jb21tYW5kKQotCitjbGFzcyBMb2dNZXNzYWdlSGFuZGxlcjoKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgc2VuZF9tZXNzYWdlKToKKyAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2Ug
PSBzZW5kX21lc3NhZ2UKIAotZGVmIF9sb2dfZnVuYyhsZXZlbF9uYW1lKToKLSAgICBkZWYgbG9n
KHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICBzZWxmLl9sb2dfZGF0YShsZXZlbF9uYW1lLmxvd2Vy
KCksIG1lc3NhZ2U9bWVzc2FnZSkKLSAgICBsb2cuX19kb2NfXyA9ICIiIkxvZyBhIG1lc3NhZ2Ug
d2l0aCBsZXZlbCAlcwotCi06cGFyYW0gbWVzc2FnZTogVGhlIHN0cmluZyBtZXNzYWdlIHRvIGxv
ZwotIiIiICUgbGV2ZWxfbmFtZQotICAgIGxvZy5fX25hbWVfXyA9IHN0cihsZXZlbF9uYW1lKS5s
b3dlcigpCi0gICAgcmV0dXJuIGxvZwotCi0jIENyZWF0ZSBhbGwgdGhlIG1ldGhvZHMgb24gU3Ry
dWN0dXJlZExvZyBmb3IgZGVidWcgbGV2ZWxzCi1mb3IgbGV2ZWxfbmFtZSBpbiBzdHJ1Y3R1cmVk
bG9nLmxvZ19sZXZlbHM6Ci0gICAgc2V0YXR0cihNZXNzYWdlTG9nZ2VyLCBsZXZlbF9uYW1lLmxv
d2VyKCksIF9sb2dfZnVuYyhsZXZlbF9uYW1lKSkKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZGF0
YSk6CisgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJsb2ciLCBkYXRhKQogCiAKIGNsYXNzIFRl
c3RSdW5uZXIob2JqZWN0KToKQEAgLTY4LDcgKzQ4LDcgQEAgY2xhc3MgVGVzdFJ1bm5lcihvYmpl
Y3QpOgogICAgICAgICBzZWxmLnJlc3VsdF9xdWV1ZSA9IHJlc3VsdF9xdWV1ZQogCiAgICAgICAg
IHNlbGYuZXhlY3V0b3IgPSBleGVjdXRvcgotICAgICAgICBzZWxmLm5hbWUgPSBjdXJyZW50X3By
b2Nlc3MoKS5uYW1lCisgICAgICAgIHNlbGYubmFtZSA9IG1wY29udGV4dC5nZXRfY29udGV4dCgp
LmN1cnJlbnRfcHJvY2VzcygpLm5hbWUKICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKIAog
ICAgIGRlZiBfX2VudGVyX18oc2VsZik6CkBAIC05OCw3ICs3OCwxMiBAQCBjbGFzcyBUZXN0UnVu
bmVyKG9iamVjdCk6CiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgIiIiTWFpbiBsb29wIGFj
Y2VwdGluZyBjb21tYW5kcyBvdmVyIHRoZSBwaXBlIGFuZCB0cmlnZ2VyaW5nCiAgICAgICAgIHRo
ZSBhc3NvY2lhdGVkIG1ldGhvZHMiIiIKLSAgICAgICAgc2VsZi5zZXR1cCgpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHNlbGYuc2V0dXAoKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiQW4gZXJyb3Igb2NjdXJlZCBkdXJpbmcg
ZXhlY3V0b3Igc2V0dXA6XG4lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICAgICAgcmFpc2UKICAgICAgICAgY29tbWFu
ZHMgPSB7InJ1bl90ZXN0Ijogc2VsZi5ydW5fdGVzdCwKICAgICAgICAgICAgICAgICAgICAgInJl
c2V0Ijogc2VsZi5yZXNldCwKICAgICAgICAgICAgICAgICAgICAgInN0b3AiOiBzZWxmLnN0b3As
CkBAIC0xNTMsNyArMTM4LDkgQEAgZGVmIHN0YXJ0X3J1bm5lcihydW5uZXJfY29tbWFuZF9xdWV1
ZSwgcnVubmVyX3Jlc3VsdF9xdWV1ZSwKICAgICAjIGluIHRoZSBsb2dnaW5nIG1vZHVsZSB1bmxv
Y2tlZAogICAgIHJlbGVhc2VfbW96bG9nX2xvY2soKQogCi0gICAgbG9nZ2VyID0gTWVzc2FnZUxv
Z2dlcihzZW5kX21lc3NhZ2UpCisgICAgcHJvY19uYW1lID0gbXBjb250ZXh0LmdldF9jb250ZXh0
KCkuY3VycmVudF9wcm9jZXNzKCkubmFtZQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3Ry
dWN0dXJlZExvZ2dlcihwcm9jX25hbWUpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKExvZ01lc3Nh
Z2VIYW5kbGVyKHNlbmRfbWVzc2FnZSkpCiAKICAgICB3aXRoIGNhcHR1cmUuQ2FwdHVyZUlPKGxv
Z2dlciwgY2FwdHVyZV9zdGRpbyk6CiAgICAgICAgIHRyeToKQEAgLTI2NSw3ICsyNTIsNyBAQCBj
bGFzcyBCcm93c2VyTWFuYWdlcihvYmplY3QpOgogCiBjbGFzcyBfUnVubmVyTWFuYWdlclN0YXRl
KG9iamVjdCk6CiAgICAgYmVmb3JlX2luaXQgPSBuYW1lZHR1cGxlKCJiZWZvcmVfaW5pdCIsIFtd
KQotICAgIGluaXRpYWxpemluZyA9IG5hbWVkdHVwbGUoImluaXRpYWxpemluZ19icm93c2VyIiwK
KyAgICBpbml0aWFsaXppbmcgPSBuYW1lZHR1cGxlKCJpbml0aWFsaXppbmciLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBfbWV0YWRh
dGEiLCAiZmFpbHVyZV9jb3VudCJdKQogICAgIHJ1bm5pbmcgPSBuYW1lZHR1cGxlKCJydW5uaW5n
IiwgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBfbWV0YWRhdGEiXSkKICAgICByZXN0YXJ0
aW5nID0gbmFtZWR0dXBsZSgicmVzdGFydGluZyIsIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwgImdy
b3VwX21ldGFkYXRhIl0pCkBAIC0zMDYsOSArMjkzLDExIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5h
Z2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yX2NscyA9IGV4ZWN1
dG9yX2NscwogICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJncyA9IGV4ZWN1dG9yX2t3YXJncwog
CisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKwogICAgICAgICAjIEZsYWdz
IHVzZWQgdG8gc2h1dCBkb3duIHRoaXMgdGhyZWFkIGlmIHdlIGdldCBhIHNpZ2ludAogICAgICAg
ICBzZWxmLnBhcmVudF9zdG9wX2ZsYWcgPSBzdG9wX2ZsYWcKLSAgICAgICAgc2VsZi5jaGlsZF9z
dG9wX2ZsYWcgPSBtdWx0aXByb2Nlc3NpbmcuRXZlbnQoKQorICAgICAgICBzZWxmLmNoaWxkX3N0
b3BfZmxhZyA9IG1wLkV2ZW50KCkKIAogICAgICAgICBzZWxmLnJlcnVuID0gcmVydW4KICAgICAg
ICAgc2VsZi5ydW5fY291bnQgPSAwCkBAIC0zMjEsOCArMzEwLDggQEAgY2xhc3MgVGVzdFJ1bm5l
ck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIGFzc2VydCByZWNvcmRpbmcgaXMg
bm90IE5vbmUKICAgICAgICAgc2VsZi5yZWNvcmRpbmcgPSByZWNvcmRpbmcKIAotICAgICAgICBz
ZWxmLmNvbW1hbmRfcXVldWUgPSBRdWV1ZSgpCi0gICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0g
UXVldWUoKQorICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgpCisgICAgICAg
IHNlbGYucmVtb3RlX3F1ZXVlID0gbXAuUXVldWUoKQogCiAgICAgICAgIHNlbGYudGVzdF9ydW5u
ZXJfcHJvYyA9IE5vbmUKIApAQCAtMzMyLDYgKzMyMSw3IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5h
Z2VyKHRocmVhZGluZy5UaHJlYWQpOgogCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCA9IDAKICAg
ICAgICAgc2VsZi51bmV4cGVjdGVkX2NvdW50ID0gMAorICAgICAgICBzZWxmLnVuZXhwZWN0ZWRf
cGFzc19jb3VudCA9IDAKIAogICAgICAgICAjIFRoaXMgbWF5IG5vdCByZWFsbHkgYmUgd2hhdCB3
ZSB3YW50CiAgICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1ZQpAQCAtMzU0LDcgKzM0NCw4IEBAIGNs
YXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBzcGlucy4i
IiIKICAgICAgICAgc2VsZi5yZWNvcmRpbmcuc2V0KFsidGVzdHJ1bm5lciIsICJzdGFydHVwIl0p
CiAgICAgICAgIHNlbGYubG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKHNl
bGYuc3VpdGVfbmFtZSkKLSAgICAgICAgd2l0aCBzZWxmLmJyb3dzZXJfY2xzKHNlbGYubG9nZ2Vy
LCAqKnNlbGYuYnJvd3Nlcl9rd2FyZ3MpIGFzIGJyb3dzZXI6CisgICAgICAgIHdpdGggc2VsZi5i
cm93c2VyX2NscyhzZWxmLmxvZ2dlciwgcmVtb3RlX3F1ZXVlPXNlbGYuY29tbWFuZF9xdWV1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqc2VsZi5icm93c2VyX2t3YXJncykgYXMg
YnJvd3NlcjoKICAgICAgICAgICAgIHNlbGYuYnJvd3NlciA9IEJyb3dzZXJNYW5hZ2VyKHNlbGYu
bG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWFu
ZF9xdWV1ZSwKQEAgLTQ5NCw2ICs0ODUsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJl
YWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuc3RhdGUuZmFpbHVyZV9jb3VudCArIDEpCiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJnc1siZ3JvdXBfbWV0YWRhdGEiXSA9IHNlbGYu
c3RhdGUuZ3JvdXBfbWV0YWRhdGEKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3Jfa3dhcmdzWyJi
cm93c2VyX3NldHRpbmdzIl0gPSBzZWxmLmJyb3dzZXIuYnJvd3Nlcl9zZXR0aW5ncwogICAgICAg
ICAgICAgc2VsZi5zdGFydF90ZXN0X3J1bm5lcigpCiAKICAgICBkZWYgc3RhcnRfdGVzdF9ydW5u
ZXIoc2VsZik6CkBAIC01MTQsOSArNTA2LDExIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRo
cmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2Jyb3dzZXJfa3dhcmdz
LAogICAgICAgICAgICAgICAgIHNlbGYuY2FwdHVyZV9zdGRpbywKICAgICAgICAgICAgICAgICBz
ZWxmLmNoaWxkX3N0b3BfZmxhZykKLSAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jID0gUHJv
Y2Vzcyh0YXJnZXQ9c3RhcnRfcnVubmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ3M9YXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lPSJUZXN0UnVubmVyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisKKyAgICAg
ICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICBzZWxmLnRlc3RfcnVubmVy
X3Byb2MgPSBtcC5Qcm9jZXNzKHRhcmdldD1zdGFydF9ydW5uZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IlRlc3RSdW5uZXItJWkiICUgc2VsZi5tYW5h
Z2VyX251bWJlcikKICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnN0YXJ0KCkKICAgICAg
ICAgc2VsZi5sb2dnZXIuZGVidWcoIlRlc3QgcnVubmVyIHN0YXJ0ZWQiKQogICAgICAgICAjIE5v
dyB3ZSB3YWl0IGZvciBlaXRoZXIgYW4gaW5pdF9zdWNjZWVkZWQgZXZlbnQgb3IgYW4gaW5pdF9m
YWlsZWQgZXZlbnQKQEAgLTYwNSw2ICs1OTksNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0
aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBpZiBzZWxmLnRp
bWVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi50aW1lci5jYW5jZWwoKQorCiAgICAg
ICAgICMgV3JpdGUgdGhlIHJlc3VsdCBvZiBlYWNoIHN1YnRlc3QKICAgICAgICAgZmlsZV9yZXN1
bHQsIHRlc3RfcmVzdWx0cyA9IHJlc3VsdHMKICAgICAgICAgc3VidGVzdF91bmV4cGVjdGVkID0g
RmFsc2UKQEAgLTYyNSw2ICs2MjAsMTEgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFk
aW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX2NvdW50ICs9IDEK
ICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3RlZCBjb3VudCBpbiB0
aGlzIHRocmVhZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCiAgICAgICAgICAgICAgICAg
c3VidGVzdF91bmV4cGVjdGVkID0gVHJ1ZQorCisgICAgICAgICAgICBpc191bmV4cGVjdGVkX3Bh
c3MgPSBpc191bmV4cGVjdGVkIGFuZCByZXN1bHQuc3RhdHVzID09ICJQQVNTIgorICAgICAgICAg
ICAgaWYgaXNfdW5leHBlY3RlZF9wYXNzOgorICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3Rl
ZF9wYXNzX2NvdW50ICs9IDEKKwogICAgICAgICAgICAgc2VsZi5sb2dnZXIudGVzdF9zdGF0dXMo
dGVzdC5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5uYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnN0YXR1cywKQEAg
LTYzMywzNCArNjMzLDQwIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJl
YWQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga25vd25faW50ZXJtaXR0
ZW50PWtub3duX2ludGVybWl0dGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YWNrPXJlc3VsdC5zdGFjaykKIAotICAgICAgICAjIFdlIGhhdmUgYSBjb3VwbGUgb2Yg
c3RhdHVzIGNvZGVzIHRoYXQgYXJlIHVzZWQgaW50ZXJuYWxseSwgYnV0IG5vdCBleHBvc2VkIHRv
IHRoZQotICAgICAgICAjIHVzZXIuIFRoZXNlIGFyZSB1c2VkIHRvIGluZGljYXRlIHRoYXQgc29t
ZSBwb3NzaWJseS1icm9rZW4gc3RhdGUgd2FzIHJlYWNoZWQKLSAgICAgICAgIyBhbmQgd2Ugc2hv
dWxkIHJlc3RhcnQgdGhlIHJ1bm5lciBiZWZvcmUgdGhlIG5leHQgdGVzdC4KLSAgICAgICAgIyBJ
TlRFUk5BTC1FUlJPUiBpbmRpY2F0ZXMgYSBQeXRob24gZXhjZXB0aW9uIHdhcyBjYXVnaHQgaW4g
dGhlIGhhcm5lc3MKLSAgICAgICAgIyBFWFRFUk5BTC1USU1FT1VUIGluZGljYXRlcyB3ZSBoYWQg
dG8gZm9yY2libHkga2lsbCB0aGUgYnJvd3NlciBmcm9tIHRoZSBoYXJuZXNzCi0gICAgICAgICMg
YmVjYXVzZSB0aGUgdGVzdCBkaWRuJ3QgcmV0dXJuIGEgcmVzdWx0IGFmdGVyIHJlYWNoaW5nIHRo
ZSB0ZXN0LWludGVybmFsIHRpbWVvdXQKLSAgICAgICAgc3RhdHVzX3N1Ym5zID0geyJJTlRFUk5B
TC1FUlJPUiI6ICJFUlJPUiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiRVhURVJOQUwtVElN
RU9VVCI6ICJUSU1FT1VUIn0KICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVkKCkKICAg
ICAgICAga25vd25faW50ZXJtaXR0ZW50ID0gdGVzdC5rbm93bl9pbnRlcm1pdHRlbnQoKQotICAg
ICAgICBzdGF0dXMgPSBzdGF0dXNfc3VibnMuZ2V0KGZpbGVfcmVzdWx0LnN0YXR1cywgZmlsZV9y
ZXN1bHQuc3RhdHVzKQorICAgICAgICBzdGF0dXMgPSBmaWxlX3Jlc3VsdC5zdGF0dXMKIAogICAg
ICAgICBpZiBzZWxmLmJyb3dzZXIuY2hlY2tfY3Jhc2godGVzdC5pZCkgYW5kIHN0YXR1cyAhPSAi
Q1JBU0giOgotICAgICAgICAgICAgaWYgdGVzdC50ZXN0X3R5cGUgPT0gImNyYXNodGVzdCI6Cisg
ICAgICAgICAgICBpZiB0ZXN0LnRlc3RfdHlwZSA9PSAiY3Jhc2h0ZXN0IiBvciBzdGF0dXMgPT0g
IkVYVEVSTkFMLVRJTUVPVVQiOgogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkZv
dW5kIGEgY3Jhc2ggZHVtcCBmaWxlOyBjaGFuZ2luZyBzdGF0dXMgdG8gQ1JBU0giKQogICAgICAg
ICAgICAgICAgIHN0YXR1cyA9ICJDUkFTSCIKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRm91bmQgYSBjcmFzaCBkdW1wOyBzaG91bGQgY2hh
bmdlIHN0YXR1cyBmcm9tICVzIHRvIENSQVNIIGJ1dCB0aGlzIGNhdXNlcyBpbnN0YWJpbGl0eSIg
JSAoc3RhdHVzLCkpCiAKKyAgICAgICAgIyBXZSBoYXZlIGEgY291cGxlIG9mIHN0YXR1cyBjb2Rl
cyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHksIGJ1dCBub3QgZXhwb3NlZCB0byB0aGUKKyAgICAg
ICAgIyB1c2VyLiBUaGVzZSBhcmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHNvbWUgcG9zc2libHkt
YnJva2VuIHN0YXRlIHdhcyByZWFjaGVkCisgICAgICAgICMgYW5kIHdlIHNob3VsZCByZXN0YXJ0
IHRoZSBydW5uZXIgYmVmb3JlIHRoZSBuZXh0IHRlc3QuCisgICAgICAgICMgSU5URVJOQUwtRVJS
T1IgaW5kaWNhdGVzIGEgUHl0aG9uIGV4Y2VwdGlvbiB3YXMgY2F1Z2h0IGluIHRoZSBoYXJuZXNz
CisgICAgICAgICMgRVhURVJOQUwtVElNRU9VVCBpbmRpY2F0ZXMgd2UgaGFkIHRvIGZvcmNpYmx5
IGtpbGwgdGhlIGJyb3dzZXIgZnJvbSB0aGUgaGFybmVzcworICAgICAgICAjIGJlY2F1c2UgdGhl
IHRlc3QgZGlkbid0IHJldHVybiBhIHJlc3VsdCBhZnRlciByZWFjaGluZyB0aGUgdGVzdC1pbnRl
cm5hbCB0aW1lb3V0CisgICAgICAgIHN0YXR1c19zdWJucyA9IHsiSU5URVJOQUwtRVJST1IiOiAi
RVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgIkVYVEVSTkFMLVRJTUVPVVQiOiAiVElN
RU9VVCJ9CisgICAgICAgIHN0YXR1cyA9IHN0YXR1c19zdWJucy5nZXQoc3RhdHVzLCBzdGF0dXMp
CisKICAgICAgICAgc2VsZi50ZXN0X2NvdW50ICs9IDEKICAgICAgICAgaXNfdW5leHBlY3RlZCA9
IGV4cGVjdGVkICE9IHN0YXR1cyBhbmQgc3RhdHVzIG5vdCBpbiBrbm93bl9pbnRlcm1pdHRlbnQK
ICAgICAgICAgaWYgaXNfdW5leHBlY3RlZDoKICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9j
b3VudCArPSAxCiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3RlZCBjb3Vu
dCBpbiB0aGlzIHRocmVhZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCiAKKyAgICAgICAg
aXNfdW5leHBlY3RlZF9wYXNzID0gaXNfdW5leHBlY3RlZCBhbmQgc3RhdHVzID09ICJPSyIKKyAg
ICAgICAgaWYgaXNfdW5leHBlY3RlZF9wYXNzOgorICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVk
X3Bhc3NfY291bnQgKz0gMQorCiAgICAgICAgIGlmICJhc3NlcnRpb25fY291bnQiIGluIGZpbGVf
cmVzdWx0LmV4dHJhOgotICAgICAgICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gZmlsZV9yZXN1bHQu
ZXh0cmEucG9wKCJhc3NlcnRpb25fY291bnQiKQotICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2Nv
dW50ID4gMDoKKyAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IGZpbGVfcmVzdWx0LmV4dHJh
WyJhc3NlcnRpb25fY291bnQiXQorICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2NvdW50IGlzIG5v
dCBOb25lIGFuZCBhc3NlcnRpb25fY291bnQgPiAwOgogICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmFzc2VydGlvbl9jb3VudCh0ZXN0LmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQoYXNzZXJ0aW9uX2NvdW50KSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5taW5fYXNzZXJ0aW9uX2NvdW50LApAQCAt
NzIyLDggKzcyOCw4IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQp
OgogICAgICAgICBzZWxmLnN0b3BfcnVubmVyKCkKICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFn
ZXJTdGF0ZS5pbml0aWFsaXppbmcoc2VsZi5zdGF0ZS50ZXN0LCBzZWxmLnN0YXRlLnRlc3RfZ3Jv
dXAsIHNlbGYuc3RhdGUuZ3JvdXBfbWV0YWRhdGEsIDApCiAKLSAgICBkZWYgbG9nKHNlbGYsIGFj
dGlvbiwga3dhcmdzKToKLSAgICAgICAgZ2V0YXR0cihzZWxmLmxvZ2dlciwgYWN0aW9uKSgqKmt3
YXJncykKKyAgICBkZWYgbG9nKHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxmLmxvZ2dlci5sb2df
cmF3KGRhdGEpCiAKICAgICBkZWYgZXJyb3Ioc2VsZiwgbWVzc2FnZSk6CiAgICAgICAgIHNlbGYu
bG9nZ2VyLmVycm9yKG1lc3NhZ2UpCkBAIC03NjEsMjAgKzc2NywyNiBAQCBjbGFzcyBUZXN0UnVu
bmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IndhaXRpbmcgZm9yIHJ1bm5lciBwcm9jZXNzIHRvIGVuZCIpCiAgICAgICAgIHNlbGYudGVzdF9y
dW5uZXJfcHJvYy5qb2luKDEwKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0ZXIgam9p
biIpCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKICAgICAgICAgaWYgc2Vs
Zi50ZXN0X3J1bm5lcl9wcm9jLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICAjIFRoaXMgbWlnaHQg
bGVhayBhIGZpbGUgaGFuZGxlIGZyb20gdGhlIHF1ZXVlCiAgICAgICAgICAgICBzZWxmLmxvZ2dl
ci53YXJuaW5nKCJGb3JjaWJseSB0ZXJtaW5hdGluZyBydW5uZXIgcHJvY2VzcyIpCiAgICAgICAg
ICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MudGVybWluYXRlKCkKKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKCJBZnRlciB0ZXJtaW5hdGluZyBydW5uZXIgcHJvY2VzcyIpCiAKICAgICAg
ICAgICAgICMgTXVsdGlwcm9jZXNzaW5nIHF1ZXVlcyBhcmUgYmFja2VkIGJ5IG9wZXJhdGluZyBz
eXN0ZW0gcGlwZXMuIElmCiAgICAgICAgICAgICAjIHRoZSBwaXBlIGluIHRoZSBjaGlsZCBwcm9j
ZXNzIGhhZCBidWZmZXJlZCBkYXRhIGF0IHRoZSB0aW1lIG9mCiAgICAgICAgICAgICAjIGZvcmNl
ZCB0ZXJtaW5hdGlvbiwgdGhlIHF1ZXVlIGlzIG5vIGxvbmdlciBpbiBhIHVzYWJsZSBzdGF0ZQog
ICAgICAgICAgICAgIyAoc3Vic2VxdWVudCBhdHRlbXB0cyB0byByZXRyaWV2ZSBpdGVtcyBtYXkg
YmxvY2sgaW5kZWZpbml0ZWx5KS4KICAgICAgICAgICAgICMgRGlzY2FyZCB0aGUgcG90ZW50aWFs
bHktY29ycnVwdGVkIHF1ZXVlIGFuZCBjcmVhdGUgYSBuZXcgb25lLgorICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIuZGVidWcoIlJlY3JlYXRpbmcgY29tbWFuZCBxdWV1ZSIpCisgICAgICAgICAgICBz
ZWxmLmNvbW1hbmRfcXVldWUuY2FuY2VsX2pvaW5fdGhyZWFkKCkKICAgICAgICAgICAgIHNlbGYu
Y29tbWFuZF9xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBR
dWV1ZSgpCisgICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgpCisgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUmVjcmVhdGluZyByZW1vdGUgcXVldWUiKQorICAg
ICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUuY2FuY2VsX2pvaW5fdGhyZWFkKCkKICAgICAgICAg
ICAgIHNlbGYucmVtb3RlX3F1ZXVlLmNsb3NlKCkKLSAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1
ZXVlID0gUXVldWUoKQorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSBtcC5RdWV1ZSgp
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUnVubmVyIHBy
b2Nlc3MgZXhpdGVkIHdpdGggY29kZSAlaSIgJSBzZWxmLnRlc3RfcnVubmVyX3Byb2MuZXhpdGNv
ZGUpCiAKQEAgLTkxNSwzICs5MjcsNiBAQCBjbGFzcyBNYW5hZ2VyR3JvdXAob2JqZWN0KToKIAog
ICAgIGRlZiB1bmV4cGVjdGVkX2NvdW50KHNlbGYpOgogICAgICAgICByZXR1cm4gc3VtKG1hbmFn
ZXIudW5leHBlY3RlZF9jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBvb2wpCisKKyAgICBkZWYg
dW5leHBlY3RlZF9wYXNzX2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc3VtKG1hbmFnZXIu
dW5leHBlY3RlZF9wYXNzX2NvdW50IGZvciBtYW5hZ2VyIGluIHNlbGYucG9vbCkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5
CmluZGV4IGUxZTE4ZWM1ZTljZC4uMzI0NWQxMjVjNTM0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vy
cy90ZXN0X3NhdWNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKQEAgLTEsNiAr
MSw3IEBACitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHN5cworZnJvbSB1bml0dGVzdCBpbXBvcnQg
bW9jawogCi1pbXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIG9zLnBhdGggaW1wb3J0
IGpvaW4sIGRpcm5hbWUKQEAgLTExLDYgKzEyLDggQEAgc2F1Y2UgPSBweXRlc3QuaW1wb3J0b3Jz
a2lwKCJ3cHRydW5uZXIuYnJvd3NlcnMuc2F1Y2UiKQogCiBmcm9tIHdwdHNlcnZlLmNvbmZpZyBp
bXBvcnQgQ29uZmlnQnVpbGRlcgogCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKIAog
ZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKICAgICB3aXRoIG1vY2sucGF0Y2gub2Jq
ZWN0KHNhdWNlLlNhdWNlQ29ubmVjdCwgInVwbG9hZF9wcmVydW5fZXhlYyIpLFwKQEAgLTI5LDcg
KzMyLDcgQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKICAgICAgICAgICAgIHNh
dWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdz
PVtdKQogCi0gICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUu
bmV0IikgYXMgZW52X2NvbmZpZzoKKyAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGxvZ2dlciwg
YnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAgICAgICAgICAgICBz
YXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCiAgICAgICAgICAgICB3aXRoIHNhdWNlX2Nv
bm5lY3Q6CiAgICAgICAgICAgICAgICAgcGFzcwpAQCAtNTksNyArNjIsNyBAQCBkZWYgdGVzdF9z
YXVjZWNvbm5lY3RfZmFpbHVyZV9leGl0KHJlYWR5ZmlsZSwgcmV0dXJuY29kZSk6CiAgICAgICAg
ICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAgICAgICAgIHNhdWNlX2Nvbm5l
Y3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJl
eGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihs
b2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgogICAgICAg
ICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQogICAgICAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKHNhdWNlLlNhdWNlRXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICB3aXRo
IHNhdWNlX2Nvbm5lY3Q6CkBAIC04OCw3ICs5MSw3IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9j
bGVhbnVwKCk6CiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAg
ICAgICAgIHNhdWNlX2Nvbm5lY3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxk
ZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdp
dGggQ29uZmlnQnVpbGRlcihsb2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBl
bnZfY29uZmlnOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQog
ICAgICAgICAgICAgd2l0aCBzYXVjZV9jb25uZWN0OgogICAgICAgICAgICAgICAgIFBvcGVuLnJl
dHVybl92YWx1ZS5wb2xsLnJldHVybl92YWx1ZSA9IE5vbmUKQEAgLTExMiw3ICsxMTUsNyBAQCBk
ZWYgdGVzdF9zYXVjZWNvbm5lY3RfZmFpbHVyZV9uZXZlcl9yZWFkeSgpOgogICAgICAgICAgICAg
c2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2Fy
Z3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBs
ZS5uZXQiKSBhcyBlbnZfY29uZmlnOgorICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIobG9nZ2Vy
LCBicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKICAgICAgICAgICAg
IHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKICAgICAgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhzYXVjZS5TYXVjZUV4Y2VwdGlvbik6CiAgICAgICAgICAgICAgICAgd2l0aCBzYXVj
ZV9jb25uZWN0OgpAQCAtMTQxLDcgKzE0NCw4IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF90dW5u
ZWxfZG9tYWlucygpOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCiAg
ICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25maWdC
dWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiLAorICAgICAgICB3aXRoIENvbmZpZ0J1
aWxkZXIobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9ob3N0PSJl
eGFtcGxlLm5ldCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVfaG9zdHM9
eyJhbHQiOiAiZXhhbXBsZS5vcmcifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmRv
bWFpbnM9eyJhIiwgImIifSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdF9zdWJkb21h
aW5zPXsieCIsICJ5In0pIGFzIGVudl9jb25maWc6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90
ZXN0X3dlYmtpdGd0ay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5CmluZGV4IDYx
NTBkNTBhY2Y5My4uYjIwZDM1NzY2NzRlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dl
YmtpdGd0ay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weQpAQCAtMSwzICsx
LDQgQEAKK2ltcG9ydCBsb2dnaW5nCiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRpcm5hbWUK
IAogaW1wb3J0IHB5dGVzdApAQCAtOSw2ICsxMCw4IEBAIGZyb20gd3B0cnVubmVyIGltcG9ydCBl
bnZpcm9ubWVudCwgcHJvZHVjdHMKIHRlc3RfcGF0aHMgPSB7Ii8iOiB7InRlc3RzX3BhdGgiOiBq
b2luKGRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iKX19ICAj
IHJlcG8gcm9vdAogZW52aXJvbm1lbnQuZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRlc3RfcGF0
aHMpCiAKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKwogCiBAYWN0aXZlX3Byb2R1Y3Rz
KCJwcm9kdWN0IikKIGRlZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChw
cm9kdWN0KToKQEAgLTIyLDEwICsyNSw3IEBAIGRlZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0
ZV9kb21haW5fbGlzdChwcm9kdWN0KToKICAgICBpZiBwcm9kdWN0IG5vdCBpbiBbImVwaXBoYW55
IiwgIndlYmtpdCIsICJ3ZWJraXRndGtfbWluaWJyb3dzZXIiXToKICAgICAgICAgcHl0ZXN0LnNr
aXAoIiVzIGRvZXNuJ3Qgc3VwcG9ydCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCIgJSBwcm9kdWN0
KQogCi0gICAgKGNoZWNrX2FyZ3MsCi0gICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0X2Jyb3dz
ZXJfa3dhcmdzLAotICAgICBleGVjdXRvcl9jbGFzc2VzLCBnZXRfZXhlY3V0b3Jfa3dhcmdzLAot
ICAgICBlbnZfb3B0aW9ucywgZ2V0X2Vudl9leHRyYXMsIHJ1bl9pbmZvX2V4dHJhcykgPSBwcm9k
dWN0cy5sb2FkX3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisgICAgcHJvZHVjdF9kYXRhID0gcHJvZHVj
dHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKIAogICAgIGNlcnRfZmlsZSA9ICIvaG9tZS91c2VyL3dw
dC90b29scy9jZXJ0cy9jYWNlcnQucGVtIgogICAgIHZhbGlkX2RvbWFpbnNfdGVzdCA9IFsiYS5l
eGFtcGxlLm9yZyIsICJiLmV4YW1wbGUub3JnIiwgImV4YW1wbGUub3JnIiwKQEAgLTQxLDEyICs0
MSwyNSBAQCBkZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNhdGVfZG9tYWluX2xpc3QocHJvZHVj
dCk6CiAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSBOb25lCiAgICAga3dhcmdzWyJw
YXVzZV9hZnRlcl90ZXN0Il0gPSBGYWxzZQogICAgIGt3YXJnc1sicGF1c2Vfb25fdW5leHBlY3Rl
ZCJdID0gRmFsc2UKLSAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxl
Lm5ldCIsCisgICAga3dhcmdzWyJkZWJ1Z190ZXN0Il0gPSBGYWxzZQorICAgIHdpdGggQ29uZmln
QnVpbGRlcihsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfaG9zdD0iZXhh
bXBsZS5uZXQiLAogICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVfaG9zdHM9eyJhbHQi
OiAiZXhhbXBsZS5vcmcifSwKICAgICAgICAgICAgICAgICAgICAgICAgc3ViZG9tYWlucz17ImEi
LCAiYiJ9LAogICAgICAgICAgICAgICAgICAgICAgICBub3Rfc3ViZG9tYWlucz17IngiLCAieSJ9
KSBhcyBlbnZfY29uZmlnOgogCi0gICAgICAgIGV4ZWN1dG9yX2FyZ3MgPSBnZXRfZXhlY3V0b3Jf
a3dhcmdzKE5vbmUsIGVudl9jb25maWcsIE5vbmUsIE5vbmUsICoqa3dhcmdzKQorICAgICAgICAj
IFdlIGRvbid0IHdhbnQgdG8gYWN0dWFsbHkgY3JlYXRlIGEgdGVzdCBlbnZpcm9ubWVudDsgdGhl
IGdldF9leGVjdXRvcl9rd2FyZ3MKKyAgICAgICAgIyBmdW5jdGlvbiBvbmx5IHJlYWxseSB3YW50
cyBhbiBvYmplY3Qgd2l0aCB0aGUgY29uZmlnIGtleQorCisgICAgICAgIGNsYXNzIE1vY2tFbnZp
cm9ubWVudDoKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgorICAgICAg
ICAgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisKKyAgICAgICAgZXhlY3V0b3JfYXJncyA9
IHByb2R1Y3RfZGF0YS5nZXRfZXhlY3V0b3Jfa3dhcmdzKE5vbmUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9ja0Vudmly
b25tZW50KGVudl9jb25maWcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAge30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICAgICAgYXNzZXJ0KCdjYXBh
YmlsaXRpZXMnIGluIGV4ZWN1dG9yX2FyZ3MpCiAgICAgICAgIGFzc2VydCgnd2Via2l0Z3RrOmJy
b3dzZXJPcHRpb25zJyBpbiBleGVjdXRvcl9hcmdzWydjYXBhYmlsaXRpZXMnXSkKICAgICAgICAg
YXNzZXJ0KCdjZXJ0aWZpY2F0ZXMnIGluIGV4ZWN1dG9yX2FyZ3NbJ2NhcGFiaWxpdGllcyddWyd3
ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMnXSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVy
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQppbmRleCA2MGIxYjBhNWE4NzguLjA0NTI2ZGE3
MDJiYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9mb3JtYXR0ZXJzLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9y
bWF0dGVycy5weQpAQCAtMSwxMiArMSw5IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHRpbWUKLWZy
b20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KLQotaW1wb3J0IG1vY2sK
K2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gbW96bG9nIGltcG9ydCBoYW5kbGVycywg
c3RydWN0dXJlZGxvZwogCi1mcm9tIC4uZm9ybWF0dGVycyBpbXBvcnQgd3B0cmVwb3J0CiBmcm9t
IC4uZm9ybWF0dGVycy53cHRzY3JlZW5zaG90IGltcG9ydCBXcHRzY3JlZW5zaG90Rm9ybWF0dGVy
CiBmcm9tIC4uZm9ybWF0dGVycy53cHRyZXBvcnQgaW1wb3J0IFdwdHJlcG9ydEZvcm1hdHRlcgog
CkBAIC05Nyw0NSArOTQsNiBAQCBkZWYgdGVzdF93cHRyZXBvcnRfbG9uZV9zdXJyb2dhdGUoY2Fw
ZmQpOgogICAgIGFzc2VydCBzdWJ0ZXN0WyJtZXNzYWdlIl0gPT0gdSJcVTAwMDFGNjAxIFUrZGUw
YVUrZDgzZCIKIAogCi1kZWYgdGVzdF93cHRyZXBvcnRfbG9uZV9zdXJyb2dhdGVfdWNzMihjYXBm
ZCk6Ci0gICAgIyBTaW5jZSBVQ1M0IGlzIGEgc3VwZXJzZXQgb2YgVUNTMiB3ZSBjYW4gbWVhbmlu
Z2Z1bGx5IHRlc3QgdGhlIFVDUzIgY29kZSBvbiBhCi0gICAgIyBVQ1M0IGJ1aWxkLCBidXQgbm90
IHRoZSByZXZlcnNlLiBIb3dldmVyIFVDUzIgaXMgaGFyZGVyIHRvIGhhbmRsZSBhbmQgVUNTNCBp
cwotICAgICMgdGhlIGNvbW1vbmVzdCAoYW5kIHNlbnNpYmxlKSBjb25maWd1cmF0aW9uLCBzbyB0
aGF0J3MgT0suCi0gICAgb3V0cHV0ID0gU3RyaW5nSU8oKQotICAgIGxvZ2dlciA9IHN0cnVjdHVy
ZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKLSAgICBsb2dnZXIuYWRkX2hhbmRsZXIo
aGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIFdwdHJlcG9ydEZvcm1hdHRlcigpKSkKLQot
ICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qod3B0cmVwb3J0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3N1cnJvZ2F0ZV9yZXBsYWNlbWVudCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICB3cHRyZXBvcnQuU3Vycm9nYXRlUmVwbGFjZW1lbnRVY3MyKCkpOgotICAgICAgICAjIG91
dHB1dCBhIGJ1bmNoIG9mIHN0dWZmCi0gICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRlc3Qt
aWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCi0gICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0
ZXN0LWlkLTEiKQotICAgICAgICBsb2dnZXIudGVzdF9zdGF0dXMoInRlc3QtaWQtMSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVx1RDgw
MCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IkZBSUwiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWVzc2FnZT11IlxVMDAwMUY2MDEgXHVERTBBXHVEODNEIFx1RDgz
RFx1REUwQSIpCi0gICAgICAgIGxvZ2dlci50ZXN0X2VuZCgidGVzdC1pZC0xIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1cz0iUEFTUyIsCi0gICAgICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlPXUiXHVERTBBXHVEODNEIFx1RDgzRFx1REUwQSBcVTAwMDFGNjAxIikKLSAgICAgICAg
bG9nZ2VyLnN1aXRlX2VuZCgpCi0KLSAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBz
dGRvdXQvc3RkZXJyCi0gICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMg
ZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCi0gICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0
ZXJyKCkKLSAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCi0gICAgYXNzZXJ0IGNhcHR1cmVk
LmVyciA9PSAiIgotCi0gICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0
dGVyCi0gICAgb3V0cHV0LnNlZWsoMCkKLSAgICBvdXRwdXRfb2JqID0ganNvbi5sb2FkKG91dHB1
dCkKLSAgICB0ZXN0ID0gb3V0cHV0X29ialsicmVzdWx0cyJdWzBdCi0gICAgYXNzZXJ0IHRlc3Rb
Im1lc3NhZ2UiXSA9PSB1IlUrZGUwYVUrZDgzZCBcVTAwMDFmNjBhIFxVMDAwMUY2MDEiCi0gICAg
c3VidGVzdCA9IHRlc3RbInN1YnRlc3RzIl1bMF0KLSAgICBhc3NlcnQgc3VidGVzdFsibmFtZSJd
ID09IHUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVUrZDgwMCIKLSAgICBhc3NlcnQgc3VidGVzdFsibWVz
c2FnZSJdID09IHUiXFUwMDAxRjYwMSBVK2RlMGFVK2Q4M2QgXFUwMDAxZjYwYSIKLQotCiBkZWYg
dGVzdF93cHRyZXBvcnRfa25vd25faW50ZXJtaXR0ZW50KGNhcGZkKToKICAgICBvdXRwdXQgPSBT
dHJpbmdJTygpCiAgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0
ZXN0X2EiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVj
dHMucHkKaW5kZXggNWQyYmNmMDc1ZDBmLi4xMjBjN2U3MmM2M2YgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rl
c3RfcHJvZHVjdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQpAQCAtMSw2ICsxLDYgQEAK
IGZyb20gb3MucGF0aCBpbXBvcnQgam9pbiwgZGlybmFtZQorZnJvbSB1bml0dGVzdCBpbXBvcnQg
bW9jawogCi1pbXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIC5iYXNlIGltcG9ydCBh
bGxfcHJvZHVjdHMsIGFjdGl2ZV9wcm9kdWN0cwpAQCAtMTQsNyArMTQsNyBAQCBlbnZpcm9ubWVu
dC5kb19kZWxheWVkX2ltcG9ydHMoTm9uZSwgdGVzdF9wYXRocykKIEBhY3RpdmVfcHJvZHVjdHMo
InByb2R1Y3QiKQogZGVmIHRlc3RfbG9hZF9hY3RpdmVfcHJvZHVjdChwcm9kdWN0KToKICAgICAi
IiJ0ZXN0IHdlIGNhbiBzdWNjZXNzZnVsbHkgbG9hZCB0aGUgcHJvZHVjdCBvZiB0aGUgY3VycmVu
dCB0ZXN0ZW52IiIiCi0gICAgcHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0KQorICAg
IHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAgICAgIyB0ZXN0IHBhc3NlcyBpZiBpdCBk
b2Vzbid0IHRocm93CiAKIApAQCAtMjIsNyArMjIsNyBAQCBkZWYgdGVzdF9sb2FkX2FjdGl2ZV9w
cm9kdWN0KHByb2R1Y3QpOgogZGVmIHRlc3RfbG9hZF9hbGxfcHJvZHVjdHMocHJvZHVjdCk6CiAg
ICAgIiIidGVzdCBldmVyeSBwcm9kdWN0IGVpdGhlciBsb2FkcyBvciB0aHJvd3MgSW1wb3J0RXJy
b3IiIiIKICAgICB0cnk6Ci0gICAgICAgIHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVj
dCkKKyAgICAgICAgcHJvZHVjdHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKICAgICBleGNlcHQgSW1w
b3J0RXJyb3I6CiAgICAgICAgIHBhc3MKIApAQCAtMzEsMjYgKzMxLDI0IEBAIGRlZiB0ZXN0X2xv
YWRfYWxsX3Byb2R1Y3RzKHByb2R1Y3QpOgogICAgICJzYXVjZSI6IHB5dGVzdC5tYXJrLnNraXAo
Im5lZWRzIGVudiBleHRyYXMga3dhcmdzIiksCiB9KQogZGVmIHRlc3Rfc2VydmVyX3N0YXJ0X2Nv
bmZpZyhwcm9kdWN0KToKLSAgICAoY2hlY2tfYXJncywKLSAgICAgdGFyZ2V0X2Jyb3dzZXJfY2xz
LCBnZXRfYnJvd3Nlcl9rd2FyZ3MsCi0gICAgIGV4ZWN1dG9yX2NsYXNzZXMsIGdldF9leGVjdXRv
cl9rd2FyZ3MsCi0gICAgIGVudl9vcHRpb25zLCBnZXRfZW52X2V4dHJhcywgcnVuX2luZm9fZXh0
cmFzKSA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVjdCkKKyAgICBwcm9kdWN0X2Rh
dGEgPSBwcm9kdWN0cy5Qcm9kdWN0KHt9LCBwcm9kdWN0KQogCi0gICAgZW52X2V4dHJhcyA9IGdl
dF9lbnZfZXh0cmFzKCkKKyAgICBlbnZfZXh0cmFzID0gcHJvZHVjdF9kYXRhLmdldF9lbnZfZXh0
cmFzKCkKIAogICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3QoZW52aXJvbm1lbnQuc2VydmUsICJz
dGFydCIpIGFzIHN0YXJ0OgogICAgICAgICB3aXRoIGVudmlyb25tZW50LlRlc3RFbnZpcm9ubWVu
dCh0ZXN0X3BhdGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudl9vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9kdWN0X2RhdGEuZW52X29wdGlvbnMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsidHlwZSI6ICJub25lIn0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudl9leHRyYXMpOgogICAgICAgICAgICAg
c3RhcnQuYXNzZXJ0X2NhbGxlZF9vbmNlKCkKICAgICAgICAgICAgIGFyZ3MgPSBzdGFydC5jYWxs
X2FyZ3MKLSAgICAgICAgICAgIGNvbmZpZyA9IGFyZ3NbMF1bMF0KLSAgICAgICAgICAgIGlmICJz
ZXJ2ZXJfaG9zdCIgaW4gZW52X29wdGlvbnM6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZp
Z1sic2VydmVyX2hvc3QiXSA9PSBlbnZfb3B0aW9uc1sic2VydmVyX2hvc3QiXQorICAgICAgICAg
ICAgY29uZmlnID0gYXJnc1swXVsxXQorICAgICAgICAgICAgaWYgInNlcnZlcl9ob3N0IiBpbiBw
cm9kdWN0X2RhdGEuZW52X29wdGlvbnM6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZ1si
c2VydmVyX2hvc3QiXSA9PSBwcm9kdWN0X2RhdGEuZW52X29wdGlvbnNbInNlcnZlcl9ob3N0Il0K
ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZ1sic2VydmVy
X2hvc3QiXSA9PSBjb25maWdbImJyb3dzZXJfaG9zdCJdCiAgICAgICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb25maWdbImJpbmRfYWRkcmVzcyJdLCBib29sKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVz
dF90ZXN0bG9hZGVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5CmluZGV4IDM5NGQyYTAwMTc3
Yi4uNzdjZDg1YjgyMGQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvdGVzdF90ZXN0bG9hZGVyLnB5CkBAIC0xLDUgKzEsMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCB1bmljb2RlX2xpdGVyYWxzCi0KIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRl
bXBmaWxlCkBAIC04LDYgKzYsNyBAQCBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gbW96bG9nIGltcG9y
dCBzdHJ1Y3R1cmVkCiBmcm9tIC4udGVzdGxvYWRlciBpbXBvcnQgVGVzdEZpbHRlciBhcyBGaWx0
ZXIsIFRlc3RMb2FkZXIgYXMgTG9hZGVyCitmcm9tIC4udGVzdGxvYWRlciBpbXBvcnQgcmVhZF9p
bmNsdWRlX2Zyb21fZmlsZQogZnJvbSAudGVzdF93cHR0ZXN0IGltcG9ydCBtYWtlX21vY2tfbWFu
aWZlc3QKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKQEAgLTU4LDYgKzU3LDI4
IEBAIGRlZiB0ZXN0X2xvYWRlcl9oMl90ZXN0cygpOgogICAgIGFzc2VydCBsZW4obG9hZGVyLmRp
c2FibGVkX3Rlc3RzWyJ0ZXN0aGFybmVzcyJdKSA9PSAxCiAgICAgYXNzZXJ0IGxvYWRlci5kaXNh
YmxlZF90ZXN0c1sidGVzdGhhcm5lc3MiXVswXS51cmwgPT0gIi9hL2Jhci5oMi5odG1sIgogCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAg
ICAgICAgcmVhc29uPSJOYW1lZFRlbXBvcmFyeUZpbGUgY2Fubm90IGJlIHJlb3BlbmVkIG9uIFdp
bjMyIikKK2RlZiB0ZXN0X2luY2x1ZGVfZmlsZSgpOgorICAgIHRlc3RfY2FzZXMgPSAiIiIKKyMg
VGhpcyBpcyBhIGNvbW1lbnQKKy9mb28vYmFyLWVycm9yLmh0dHBzLmh0bWwKKy9mb28vYmFyLXN1
Y2Nlc3MuaHR0cHMuaHRtbAorL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS5odG1sCisvZm9vL2lk
bGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci5odG1sCisgICAgIiIiCisKKyAgICB3aXRoIHRlbXBm
aWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShtb2RlPSJ3dCIpIGFzIGY6CisgICAgICAgIGYud3JpdGUo
dGVzdF9jYXNlcykKKyAgICAgICAgZi5mbHVzaCgpCisKKyAgICAgICAgaW5jbHVkZSA9IHJlYWRf
aW5jbHVkZV9mcm9tX2ZpbGUoZi5uYW1lKQorCisgICAgICAgIGFzc2VydCBsZW4oaW5jbHVkZSkg
PT0gNAorICAgICAgICBhc3NlcnQgIi9mb28vYmFyLWVycm9yLmh0dHBzLmh0bWwiIGluIGluY2x1
ZGUKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2Jhci1zdWNjZXNzLmh0dHBzLmh0bWwiIGluIGluY2x1
ZGUKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2lkbGhhcm5lc3MuaHR0cHMuYW55Lmh0bWwiIGluIGlu
Y2x1ZGUKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci5o
dG1sIiBpbiBpbmNsdWRlCiAKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndp
bjMyIiwKICAgICAgICAgICAgICAgICAgICByZWFzb249Ik5hbWVkVGVtcG9yYXJ5RmlsZSBjYW5u
b3QgYmUgcmVvcGVuZWQgb24gV2luMzIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy90ZXN0X3VwZGF0ZS5weQppbmRleCBhMWJhOGRlMjg3ODAuLjgwNGY3NTEyNTE4MCAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKQEAgLTEs
MTEgKzEsMTIgQEAKIGltcG9ydCBqc29uCi1pbXBvcnQgbW9jawogaW1wb3J0IG9zCi1pbXBvcnQg
cHl0ZXN0CiBpbXBvcnQgc3lzCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitmcm9tIHVuaXR0ZXN0
IGltcG9ydCBtb2NrCisKK2ltcG9ydCBweXRlc3QKIAotZnJvbSAuLiBpbXBvcnQgbWV0YWRhdGEs
IG1hbmlmZXN0dXBkYXRlCitmcm9tIC4uIGltcG9ydCBtZXRhZGF0YSwgbWFuaWZlc3R1cGRhdGUs
IHdwdG1hbmlmZXN0CiBmcm9tIC4udXBkYXRlLnVwZGF0ZSBpbXBvcnQgV1BUVXBkYXRlCiBmcm9t
IC4udXBkYXRlLmJhc2UgaW1wb3J0IFN0ZXBSdW5uZXIsIFN0ZXAKIGZyb20gbW96bG9nIGltcG9y
dCBzdHJ1Y3R1cmVkbG9nLCBoYW5kbGVycywgZm9ybWF0dGVycwpAQCAtNDQyLDcgKzQ0Myw3IEBA
IGRlZiB0ZXN0X3VwZGF0ZV9yZW9yZGVyX2V4cGVjdGVkKCk6CiAKICAgICBhc3NlcnQgbm90IG5l
d19tYW5pZmVzdC5pc19lbXB0eQogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVz
dF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9p
bmZvKSA9PSBbIkZBSUwiLCAiUEFTUyJdCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVu
X2luZm8pID09IFsiUEFTUyIsICJGQUlMIl0KIAogCiBkZWYgdGVzdF91cGRhdGVfYW5kX3ByZXNl
cnZlX3VuY2hhbmdlZF9leHBlY3RlZF9pbnRlcm1pdHRlbnQoKToKQEAgLTE2NzIsMyArMTY3Mywx
MDUgQEAgZGVmIHRlc3RfdXBkYXRlX3BpY2tsZSgpOgogICAgIHdwdHVwZGF0ZSA9IFdQVFVwZGF0
ZShsb2dnZXIsICoqYXJnczIpCiAgICAgd3B0dXBkYXRlID0gV1BUVXBkYXRlKGxvZ2dlciwgcnVu
bmVyX2Nscz1VcGRhdGVSdW5uZXIsICoqYXJncykKICAgICB3cHR1cGRhdGUucnVuKCkKKworCitk
ZWYgdGVzdF91cGRhdGVfc2VyaWFsaXplX3F1b3RlZCgpOgorICAgIHRlc3RzID0gWygicGF0aC90
by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAgYiIi
Ilt0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6ICJFUlJPUiIKKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVk
OgorICAgICBpZiBvcyA9PSAibGludXgiOiBbIlBBU1MiLCAiRkFJTCJdCisgICAgICJFUlJPUiIK
KyIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0Ijog
dGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0
IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vi
dGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAg
ICBydW5faW5mbz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0p
LAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1Ii
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSld
LAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkKKyAgICBs
b2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJFUlJP
UiJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkVS
Uk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9L
In0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogIndpbiJ9KQorCisg
ICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBsb2dfMiwgZnVsbF91cGRh
dGU9VHJ1ZSwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorCisKKyAgICBtYW5pZmVzdF9zdHIg
PSB3cHRtYW5pZmVzdC5zZXJpYWxpemUodXBkYXRlZFswXVsxXS5ub2RlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwX2VtcHR5X2RhdGE9VHJ1ZSkKKyAgICBh
c3NlcnQgbWFuaWZlc3Rfc3RyID09ICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVj
dGVkOgorICAgICAgaWYgb3MgPT0gImxpbnV4IjogW1BBU1MsIEZBSUxdCisgICAgICBFUlJPUgor
IiIiCisKKworZGVmIHRlc3RfdXBkYXRlX3NlcmlhbGl6ZV91bnF1b3RlZCgpOgorICAgIHRlc3Rz
ID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAg
ICAgICAgICAgYiIiIlt0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6IEVSUk9SCisgIFt0ZXN0MV0KKyAg
ICBleHBlY3RlZDoKKyAgICAgaWYgb3MgPT0gImxpbnV4IjogW1BBU1MsIEZBSUxdCisgICAgIEVS
Uk9SCisiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVz
dCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsi
dGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAg
ICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorICAgIGxvZ18xID0gc3VpdGVfbG9nKFso
InRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlM
Il19KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkVS
Uk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9L
In0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImxpbnV4In0pCisg
ICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVz
dDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
RVJST1IifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJ3aW4ifSkK
KworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIGZ1bGxf
dXBkYXRlPVRydWUsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworCisgICAgbWFuaWZlc3Rf
c3RyID0gd3B0bWFuaWZlc3Quc2VyaWFsaXplKHVwZGF0ZWRbMF1bMV0ubm9kZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9lbXB0eV9kYXRhPVRydWUpCisg
ICAgYXNzZXJ0IG1hbmlmZXN0X3N0ciA9PSAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBl
eHBlY3RlZDoKKyAgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlMXQorICAgICAgRVJS
T1IKKyIiIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0
LnB5CmluZGV4IDRlZWU5Y2NiMWI2OS4uNTlhYTYzNmE5MDM3IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0
X3dwdHRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CkBAIC0xLDUgKzEsNSBAQAotaW1w
b3J0IG1vY2sKIGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KK2Zyb20gdW5pdHRlc3QgaW1wb3J0IG1v
Y2sKIAogZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QgYXMgd3B0bWFuaWZlc3QKIGZyb20g
bWFuaWZlc3QuaXRlbSBpbXBvcnQgVGVzdGhhcm5lc3NUZXN0LCBSZWZUZXN0CkBAIC0yMDIsMTQg
KzIwMiwxNiBAQCBkZWYgdGVzdF9leHBlY3RfYW55X3N1YnRlc3Rfc3RhdHVzKCk6CiAKIAogZGVm
IHRlc3RfbWV0YWRhdGFfZnV6enkoKToKLSAgICBpdGVtID0gUmVmVGVzdCgiLiIsICJhL2Z1enp5
Lmh0bWwiLCAiLyIsICJhL2Z1enp5Lmh0bWwiLAorICAgIGl0ZW0gPSBSZWZUZXN0KHRlc3RzX3Jv
b3Q9Ii4iLAorICAgICAgICAgICAgICAgICAgIHBhdGg9ImEvZnV6enkuaHRtbCIsCisgICAgICAg
ICAgICAgICAgICAgdXJsX2Jhc2U9Ii8iLAorICAgICAgICAgICAgICAgICAgIHVybD0iYS9mdXp6
eS5odG1sIiwKICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzPVtbIi9hL2Z1enp5LXJlZi5o
dG1sIiwgIj09Il1dLAogICAgICAgICAgICAgICAgICAgIGZ1enp5PVtbWyIvYS9mdXp6eS5odG1s
IiwgJy9hL2Z1enp5LXJlZi5odG1sJywgJz09J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbWzIsIDNdLCBbMTAsIDE1XV1dXSkKICAgICBzID0gbW9jay5Nb2NrKHJlbF9wYXRoPSJhL2Z1
enp5Lmh0bWwiLCByZWxfcGF0aF9wYXJ0cz0oImEiLCAiZnV6enkuaHRtbCIpLCBoYXNoPSIwIio0
MCkKICAgICBzLm1hbmlmZXN0X2l0ZW1zID0gbW9jay5Nb2NrKHJldHVybl92YWx1ZT0oaXRlbS5p
dGVtX3R5cGUsIFtpdGVtXSkpCiAKLQogICAgIG1hbmlmZXN0ID0gd3B0bWFuaWZlc3QuTWFuaWZl
c3QoIiIpCiAKICAgICB0cmVlLCBzb3VyY2VmaWxlX21vY2sgPSB0cmVlX2FuZF9zb3VyY2VmaWxl
X21vY2tzKFsocywgTm9uZSwgVHJ1ZSldKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL2Jhc2UucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUv
YmFzZS5weQppbmRleCA1NDc4MDhlNTI5MzMuLjQ3ZWE3ZmZiNDFmMCAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRl
L2Jhc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdXBkYXRlL2Jhc2UucHkKQEAgLTEsOSArMSwxMSBAQAorZnJvbSB0eXBpbmcg
aW1wb3J0IENsYXNzVmFyLCBMaXN0LCBUeXBlCisKIGV4aXRfdW5jbGVhbiA9IG9iamVjdCgpCiBl
eGl0X2NsZWFuID0gb2JqZWN0KCkKIAogCiBjbGFzcyBTdGVwKG9iamVjdCk6Ci0gICAgcHJvdmlk
ZXMgPSBbXQorICAgIHByb3ZpZGVzID0gW10gICMgdHlwZTogQ2xhc3NWYXJbTGlzdFtzdHJdXQog
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6CiAgICAgICAgIHNlbGYubG9nZ2VyID0g
bG9nZ2VyCkBAIC00NSw3ICs0Nyw3IEBAIGNsYXNzIFN0ZXAob2JqZWN0KToKIAogCiBjbGFzcyBT
dGVwUnVubmVyKG9iamVjdCk6Ci0gICAgc3RlcHMgPSBbXQorICAgIHN0ZXBzID0gW10gICMgdHlw
ZTogQ2xhc3NWYXJbTGlzdFtUeXBlW1N0ZXBdXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIHN0YXRlKToKICAgICAgICAgIiIiQ2xhc3MgdGhhdCBydW5zIGEgc3BlY2lmaWVkIHNl
cmllcyBvZiBTdGVwcyB3aXRoIGEgY29tbW9uIFN0YXRlIiIiCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3Rh
dGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci91cGRhdGUvc3RhdGUucHkKaW5kZXggYmRiMjNmZWQ5OWUxLi5hNTI2YzI0Yzk1OWYgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKQEAgLTEsNSArMSw1IEBA
CiBpbXBvcnQgb3MKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBjUGlja2xlIGFzIHBpY2tsZSAgIyBu
b3FhOiBOODEzCitpbXBvcnQgcGlja2xlCiAKIGhlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSkKIApAQCAtOTcsNyArOTcsNyBAQCBjbGFzcyBTYXZlZFN0YXRl
KEJhc2VTdGF0ZSk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlz
ZmlsZShjbHMuZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAg
ICAgICB3aXRoIG9wZW4oY2xzLmZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgd2l0aCBvcGVu
KGNscy5maWxlbmFtZSwgInJiIikgYXMgZjoKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAg
ICAgICAgICAgICAgIHJ2ID0gcGlja2xlLmxvYWQoZikKICAgICAgICAgICAgICAgICAgICAgbG9n
Z2VyLmRlYnVnKCJMb2FkaW5nIGRhdGEgJXIiICUgKHJ2Ll9kYXRhLCkpCkBAIC0xMTEsNyArMTEx
LDcgQEAgY2xhc3MgU2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgogCiAgICAgZGVmIHNhdmUoc2VsZik6
CiAgICAgICAgICIiIldyaXRlIHRoZSBzdGF0ZSB0byBkaXNrIiIiCi0gICAgICAgIHdpdGggb3Bl
bihzZWxmLmZpbGVuYW1lLCAidyIpIGFzIGY6CisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVu
YW1lLCAid2IiKSBhcyBmOgogICAgICAgICAgICAgcGlja2xlLmR1bXAoc2VsZiwgZikKIAogICAg
IGRlZiBjbGVhcihzZWxmKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N5bmMucHkK
aW5kZXggZjg3ODc1MmY0NTE0Li4yYzk4MzRjNjcyZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3VwZGF0ZS9zeW5jLnB5CkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIFVwZGF0ZUNoZWNrb3V0
KFN0ZXApOgogICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmxvY2FsX2JyYW5jaCkKICAg
ICAgICAgc3luY19wYXRoID0gb3MucGF0aC5hYnNwYXRoKHN5bmNfdHJlZS5yb290KQogICAgICAg
ICBpZiBzeW5jX3BhdGggbm90IGluIHN5cy5wYXRoOgotICAgICAgICAgICAgZnJvbSB1cGRhdGUg
aW1wb3J0IHNldHVwX3BhdGhzCisgICAgICAgICAgICBmcm9tIC51cGRhdGUgaW1wb3J0IHNldHVw
X3BhdGhzCiAgICAgICAgICAgICBzZXR1cF9wYXRocyhzeW5jX3BhdGgpCiAKICAgICBkZWYgcmVz
dG9yZShzZWxmLCBzdGF0ZSk6CkBAIC05OCw3ICs5OCw3IEBAIGNsYXNzIFVwZGF0ZU1hbmlmZXN0
KFN0ZXApOgogICAgIHByb3ZpZGVzID0gWyJtYW5pZmVzdF9wYXRoIiwgInRlc3RfbWFuaWZlc3Qi
XQogCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6Ci0gICAgICAgIGZyb20gbWFuaWZlc3Qg
aW1wb3J0IG1hbmlmZXN0CisgICAgICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0ICAj
IHR5cGU6IGlnbm9yZQogICAgICAgICBzdGF0ZS5tYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2lu
KHN0YXRlLm1ldGFkYXRhX3BhdGgsICJNQU5JRkVTVC5qc29uIikKICAgICAgICAgc3RhdGUudGVz
dF9tYW5pZmVzdCA9IG1hbmlmZXN0LmxvYWRfYW5kX3VwZGF0ZShzdGF0ZS5zeW5jWyJwYXRoIl0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGUubWFuaWZlc3RfcGF0aCwKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS90cmVlLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3RyZWUu
cHkKaW5kZXggZjM2Mjc3MGZmMTZkLi4yZjQzYmFjZDE1YmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS90cmVl
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3VwZGF0ZS90cmVlLnB5CkBAIC0zLDggKzMsNiBAQCBpbXBvcnQgcmUKIGltcG9ydCBz
dWJwcm9jZXNzCiBpbXBvcnQgdGVtcGZpbGUKIAotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdl
Ci0KIGZyb20gLi4gaW1wb3J0IHZjcwogZnJvbSAuLnZjcyBpbXBvcnQgZ2l0LCBoZwogCkBAIC04
Nyw3ICs4NSw3IEBAIGNsYXNzIEhnVHJlZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAg
ZGVmIGlzX2NsZWFuKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5oZygic3RhdHVzIikuc3Ry
aXAoKSA9PSAiIgorICAgICAgICByZXR1cm4gc2VsZi5oZygic3RhdHVzIikuc3RyaXAoKSA9PSBi
IiIKIAogICAgIGRlZiBhZGRfbmV3KHNlbGYsIHByZWZpeD1Ob25lKToKICAgICAgICAgaWYgcHJl
Zml4IGlzIG5vdCBOb25lOgpAQCAtMTA1LDcgKzEwMyw3IEBAIGNsYXNzIEhnVHJlZShvYmplY3Qp
OgogICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CiAgICAgICAg
ICAgICBwYXNzCiAKLSAgICAgICAgcGF0Y2hfbmFtZXMgPSBbaXRlbS5zdHJpcCgpIGZvciBpdGVt
IGluIHNlbGYuaGcoInFzZXJpZXMiKS5zcGxpdCgiXG4iKSBpZiBpdGVtLnN0cmlwKCldCisgICAg
ICAgIHBhdGNoX25hbWVzID0gW2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBzZWxmLmhnKCJxc2Vy
aWVzIikuc3BsaXQoYiJcbiIpIGlmIGl0ZW0uc3RyaXAoKV0KIAogICAgICAgICBzdWZmaXggPSAw
CiAgICAgICAgIHRlc3RfbmFtZSA9IHBhdGNoX25hbWUKQEAgLTE0Miw3ICsxNDAsNyBAQCBjbGFz
cyBHaXRUcmVlKG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdD1Ob25lLCBs
b2dfZXJyb3I9VHJ1ZSk6CiAgICAgICAgIGlmIHJvb3QgaXMgTm9uZToKLSAgICAgICAgICAgIHJv
b3QgPSBnaXQoInJldi1wYXJzZSIsICItLXNob3ctdG9wbGV2ZWwiLCBsb2dfZXJyb3I9bG9nX2Vy
cm9yKS5zdHJpcCgpCisgICAgICAgICAgICByb290ID0gZ2l0KCJyZXYtcGFyc2UiLCAiLS1zaG93
LXRvcGxldmVsIiwgbG9nX2Vycm9yPWxvZ19lcnJvcikuc3RyaXAoKS5kZWNvZGUoJ3V0Zi04JykK
ICAgICAgICAgc2VsZi5yb290ID0gcm9vdAogICAgICAgICBzZWxmLmdpdCA9IHZjcy5iaW5kX3Rv
X3JlcG8oZ2l0LCBzZWxmLnJvb3QsIGxvZ19lcnJvcj1sb2dfZXJyb3IpCiAgICAgICAgIHNlbGYu
bWVzc2FnZSA9IE5vbmUKQEAgLTE3OCw3ICsxNzYsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6
CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaXNfY2xlYW4oc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLmdpdCgic3RhdHVzIikuc3RyaXAoKSA9PSAiIgorICAgICAgICByZXR1cm4gc2VsZi5n
aXQoInN0YXR1cyIpLnN0cmlwKCkgPT0gYiIiCiAKICAgICBkZWYgYWRkX25ldyhzZWxmLCBwcmVm
aXg9Tm9uZSk6CiAgICAgICAgICIiIkFkZCBmaWxlcyB0byB0aGUgc3RhZ2luZyBhcmVhLgpAQCAt
MjAzLDcgKzIwMSw3IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgICAgIGYuc2Vl
aygwKQogICAgICAgICAgICAgaWdub3JlZF9maWxlcyA9IHN5bmNfdHJlZS5naXQoImNoZWNrLWln
bm9yZSIsICItLW5vLWluZGV4IiwgIi0tc3RkaW4iLCAiLXoiLCBzdGRpbj1mKQogICAgICAgICBh
cmdzID0gW10KLSAgICAgICAgZm9yIGVudHJ5IGluIGlnbm9yZWRfZmlsZXMuc3BsaXQoJ1wwJyk6
CisgICAgICAgIGZvciBlbnRyeSBpbiBpZ25vcmVkX2ZpbGVzLmRlY29kZSgndXRmLTgnKS5zcGxp
dCgnXDAnKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKG9zLnBhdGguam9pbihwcmVmaXgsIGVu
dHJ5KSkKICAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgIHNlbGYuZ2l0KCJhZGQiLCAiLS1m
b3JjZSIsICphcmdzKQpAQCAtMjE5LDcgKzIxNyw3IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToK
ICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKHJlZl9maWx0ZXIpCiAgICAgICAgIGRhdGEgPSBzZWxm
LmdpdCgic2hvdy1yZWYiLCAqYXJncykKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGlu
ZSBpbiBkYXRhLnNwbGl0KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0KGIi
XG4iKToKICAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6CiAgICAgICAgICAgICAgICAg
Y29udGludWUKICAgICAgICAgICAgIHNoYTEsIHJlZiA9IGxpbmUuc3BsaXQoKQpAQCAtMjM3LDcg
KzIzNSw3IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5k
KHJlZl9maWx0ZXIpCiAgICAgICAgIGRhdGEgPSBzZWxmLmdpdCgibHMtcmVtb3RlIiwgcmVtb3Rl
LCAqYXJncykKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0
KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0KGIiXG4iKToKICAgICAgICAg
ICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAg
ICAgICAgIHNoYTEsIHJlZiA9IGxpbmUuc3BsaXQoKQpAQCAtMjUwLDggKzI0OCw4IEBAIGNsYXNz
IEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgOnBhcmFtIHJlbW90ZTogdGhlIHJlbW90ZSBVUkwK
ICAgICAgICAgOnBhcmFtIGJyYW5jaDogdGhlIGJyYW5jaCBuYW1lIiIiCiAgICAgICAgIGZvciBz
aGExLCByZWYgaW4gc2VsZi5saXN0X3JlbW90ZShyZW1vdGUsIGJyYW5jaCk6Ci0gICAgICAgICAg
ICBpZiByZWYgPT0gInJlZnMvaGVhZHMvJXMiICUgYnJhbmNoOgotICAgICAgICAgICAgICAgIHJl
dHVybiBzZWxmLmNvbW1pdF9jbHMoc2VsZiwgc2hhMSkKKyAgICAgICAgICAgIGlmIHJlZi5kZWNv
ZGUoJ3V0Zi04JykgPT0gInJlZnMvaGVhZHMvJXMiICUgYnJhbmNoOgorICAgICAgICAgICAgICAg
IHJldHVybiBzZWxmLmNvbW1pdF9jbHMoc2VsZiwgc2hhMS5kZWNvZGUoJ3V0Zi04JykpCiAgICAg
ICAgIGFzc2VydCBGYWxzZQogCiAgICAgZGVmIGNyZWF0ZV9wYXRjaChzZWxmLCBwYXRjaF9uYW1l
LCBtZXNzYWdlKToKQEAgLTI5OSw4ICsyOTcsOCBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAK
ICAgICAgICAgYXJncyA9IFtdCiAgICAgICAgIGlmIGJyYW5jaDoKLSAgICAgICAgICAgIGJyYW5j
aGVzID0gW3JlZltsZW4oInJlZnMvaGVhZHMvIik6XSBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlz
dF9yZWZzKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKCJyZWZz
L2hlYWRzLyIpXQorICAgICAgICAgICAgYnJhbmNoZXMgPSBbcmVmW2xlbigicmVmcy9oZWFkcy8i
KTpdLmRlY29kZSgndXRmLTgnKSBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZWZzKCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKGIicmVmcy9oZWFkcy8iKV0K
ICAgICAgICAgICAgIGJyYW5jaCA9IGdldF91bmlxdWVfbmFtZShicmFuY2hlcywgYnJhbmNoKQog
CiAgICAgICAgICAgICBhcmdzICs9IFsiLWIiLCBicmFuY2hdCkBAIC0zMzYsOCArMzM0LDggQEAg
Y2xhc3MgR2l0VHJlZShvYmplY3QpOgogICAgICAgICBydiA9IFtdCiAKICAgICAgICAgZm9yIHJl
cG9fcGF0aCBpbiByZXBvX3BhdGhzOgotICAgICAgICAgICAgcGF0aHMgPSB2Y3MuZ2l0KCJscy10
cmVlIiwgIi1yIiwgIi0tbmFtZS1vbmx5IiwgIkhFQUQiLCByZXBvPXJlcG9fcGF0aCkuc3BsaXQo
IlxuIikKLSAgICAgICAgICAgIHJ2LmV4dGVuZChvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2lu
KHJlcG9fcGF0aCwgaXRlbSksIHNlbGYucm9vdCkgZm9yIGl0ZW0gaW4gcGF0aHMKKyAgICAgICAg
ICAgIHBhdGhzID0gdmNzLmdpdCgibHMtdHJlZSIsICItciIsICItLW5hbWUtb25seSIsICJIRUFE
IiwgcmVwbz1yZXBvX3BhdGgpLnNwbGl0KGIiXG4iKQorICAgICAgICAgICAgcnYuZXh0ZW5kKG9z
LnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4ocmVwb19wYXRoLCBpdGVtLmRlY29kZSgndXRmLTgn
KSksIHNlbGYucm9vdCkgZm9yIGl0ZW0gaW4gcGF0aHMKICAgICAgICAgICAgICAgICAgICAgICBp
ZiBpdGVtLnN0cmlwKCkpCiAgICAgICAgIHJldHVybiBydgogCkBAIC0zNDUsMTEgKzM0MywxMSBA
QCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgICIiIkxpc3Qgc3VibW9kdWxlIGRpcmVj
dG9yaWVzIiIiCiAgICAgICAgIG91dHB1dCA9IHNlbGYuZ2l0KCJzdWJtb2R1bGUiLCAic3RhdHVz
IiwgIi0tcmVjdXJzaXZlIikKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgbGluZSBpbiBv
dXRwdXQuc3BsaXQoIlxuIik6CisgICAgICAgIGZvciBsaW5lIGluIG91dHB1dC5zcGxpdChiIlxu
Iik6CiAgICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCiAgICAgICAgICAgICBpZiBub3Qg
bGluZToKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgcGFydHMgPSBsaW5l
LnNwbGl0KCIgIikKKyAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdChiIiAiKQogICAgICAg
ICAgICAgcnYuYXBwZW5kKHBhcnRzWzFdKQogICAgICAgICByZXR1cm4gcnYKIApAQCAtNDAzLDUg
KzQwMSw1IEBAIGNsYXNzIENvbW1pdChvYmplY3QpOgogICAgICAgICBzZWxmLmdpdCA9IHNlbGYu
dHJlZS5naXQKIAogICAgIGRlZiBfZ2V0X21ldGEoc2VsZik6Ci0gICAgICAgIGF1dGhvciwgZW1h
aWwsIG1lc3NhZ2UgPSBzZWxmLmdpdCgic2hvdyIsICItcyIsICItLWZvcm1hdD1mb3JtYXQ6JWFu
XG4lYWVcbiVCIiwgc2VsZi5zaGExKS5zcGxpdCgiXG4iLCAyKQorICAgICAgICBhdXRob3IsIGVt
YWlsLCBtZXNzYWdlID0gc2VsZi5naXQoInNob3ciLCAiLXMiLCAiLS1mb3JtYXQ9Zm9ybWF0OiVh
blxuJWFlXG4lQiIsIHNlbGYuc2hhMSkuZGVjb2RlKCd1dGYtOCcpLnNwbGl0KCJcbiIsIDIpCiAg
ICAgICAgIHJldHVybiBhdXRob3IsIGVtYWlsLCBzZWxmLm1zZ19jbHMobWVzc2FnZSkKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3VwZGF0ZS91cGRhdGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CmluZGV4IDgwZTUwOWRkMzgzYi4u
MjY1YTMzMTFiZWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91cGRhdGUu
cHkKQEAgLTEsOCArMSw2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIAotZnJvbSBzaXggaW1w
b3J0IGl0ZXJ2YWx1ZXMKLQogZnJvbSAubWV0YWRhdGEgaW1wb3J0IE1ldGFkYXRhVXBkYXRlUnVu
bmVyCiBmcm9tIC5zeW5jIGltcG9ydCBTeW5jRnJvbVVwc3RyZWFtUnVubmVyCiBmcm9tIC50cmVl
IGltcG9ydCBHaXRUcmVlLCBIZ1RyZWUsIE5vVkNTVHJlZQpAQCAtMTExLDcgKzEwOSw3IEBAIGNs
YXNzIFJlbW92ZU9ic29sZXRlKFN0ZXApOgogICAgICAgICBzdGF0ZS50ZXN0c19wYXRoID0gc3Rh
dGUucGF0aHNbIi8iXVsidGVzdHNfcGF0aCJdCiAgICAgICAgIHN0YXRlLm1ldGFkYXRhX3BhdGgg
PSBzdGF0ZS5wYXRoc1siLyJdWyJtZXRhZGF0YV9wYXRoIl0KIAotICAgICAgICBmb3IgdXJsX3Bh
dGhzIGluIGl0ZXJ2YWx1ZXMocGF0aHMpOgorICAgICAgICBmb3IgdXJsX3BhdGhzIGluIHBhdGhz
LnZhbHVlcygpOgogICAgICAgICAgICAgdGVzdHNfcGF0aCA9IHVybF9wYXRoc1sidGVzdHNfcGF0
aCJdCiAgICAgICAgICAgICBtZXRhZGF0YV9wYXRoID0gdXJsX3BhdGhzWyJtZXRhZGF0YV9wYXRo
Il0KICAgICAgICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGluIG9zLndh
bGsobWV0YWRhdGFfcGF0aCk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKaW5kZXggODk2ZDhhMGQy
YzZlLi4zNDE5YTUwN2RiYWUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Zjcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKQEAgLTEsNSArMSw2
IEBACiBpbXBvcnQgc3VicHJvY2VzcwogZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKK2Zy
b20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1
bHRfbG9nZ2VyCiAKQEAgLTcsNyArOCw3IEBAIGZyb20gd3B0c2VydmUudXRpbHMgaW1wb3J0IGlz
b21vcnBoaWNfZGVjb2RlCiAKIGxvZ2dlciA9IE5vbmUKIAotZGVmIHZjcyhiaW5fbmFtZSk6Citk
ZWYgdmNzKGJpbl9uYW1lOiBzdHIpIC0+IENhbGxhYmxlWy4uLiwgTm9uZV06CiAgICAgZGVmIGlu
bmVyKGNvbW1hbmQsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIGdsb2JhbCBsb2dnZXIKIApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKaW5kZXggZGZh
ZTA1N2ZkMzMyLi41NjVlM2Q0ZTQzYmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
d2ViZHJpdmVyX3NlcnZlci5weQpAQCAtNSwxNCArNSwxNSBAQCBpbXBvcnQgcGxhdGZvcm0KIGlt
cG9ydCBzb2NrZXQKIGltcG9ydCB0aW1lCiBpbXBvcnQgdHJhY2ViYWNrCitmcm9tIHR5cGluZyBp
bXBvcnQgQ2xhc3NWYXIsIFR5cGUKIAogaW1wb3J0IG1venByb2Nlc3MKIAotZnJvbSAucHJvY2Vz
cyBpbXBvcnQgY2FzdF9lbnYKK2Zyb20gLmJyb3dzZXJzLmJhc2UgaW1wb3J0IE91dHB1dEhhbmRs
ZXIKIAogCiBfX2FsbF9fID0gWyJTZWxlbml1bVNlcnZlciIsICJDaHJvbWVEcml2ZXJTZXJ2ZXIi
LCAiQ1dUQ2hyb21lRHJpdmVyU2VydmVyIiwKLSAgICAgICAgICAgIkVkZ2VDaHJvbWl1bURyaXZl
clNlcnZlciIsICJPcGVyYURyaXZlclNlcnZlciIsICJHZWNrb0RyaXZlclNlcnZlciIsCisgICAg
ICAgICAgICJFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIiLAog
ICAgICAgICAgICAiSW50ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlciIsICJFZGdlRHJpdmVyU2Vy
dmVyIiwKICAgICAgICAgICAgIlNlcnZvRHJpdmVyU2VydmVyIiwgIldlYktpdERyaXZlclNlcnZl
ciIsICJXZWJEcml2ZXJTZXJ2ZXIiXQogCkBAIC0yMSw2ICsyMiw3IEBAIGNsYXNzIFdlYkRyaXZl
clNlcnZlcihvYmplY3QpOgogICAgIF9fbWV0YWNsYXNzX18gPSBhYmMuQUJDTWV0YQogCiAgICAg
ZGVmYXVsdF9iYXNlX3BhdGggPSAiLyIKKyAgICBvdXRwdXRfaGFuZGxlcl9jbHMgPSBPdXRwdXRI
YW5kbGVyICAjIHR5cGU6IENsYXNzVmFyW1R5cGVbT3V0cHV0SGFuZGxlcl1dCiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9IjEyNy4wLjAuMSIsIHBvcnQ9Tm9u
ZSwKICAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToK
QEAgLTMxLDEyICszMywxNCBAQCBjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICAg
ICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKICAg
ICAgICAgc2VsZi5ob3N0ID0gaG9zdAorCiAgICAgICAgIGlmIGJhc2VfcGF0aCA9PSAiIjoKICAg
ICAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gc2VsZi5kZWZhdWx0X2Jhc2VfcGF0aAogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgKICAgICAgICAg
c2VsZi5lbnYgPSBvcy5lbnZpcm9uLmNvcHkoKSBpZiBlbnYgaXMgTm9uZSBlbHNlIGVudgogCisg
ICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gTm9uZQogICAgICAgICBzZWxmLl9wb3J0ID0g
cG9ydAogICAgICAgICBzZWxmLl9jbWQgPSBOb25lCiAgICAgICAgIHNlbGYuX2FyZ3MgPSBhcmdz
IGlmIGFyZ3MgaXMgbm90IE5vbmUgZWxzZSBbXQpAQCAtNDYsMTggKzUwLDI4IEBAIGNsYXNzIFdl
YkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAg
ICAgICIiIlJldHVybnMgdGhlIGZ1bGwgY29tbWFuZCBmb3Igc3RhcnRpbmcgdGhlIHNlcnZlciBw
cm9jZXNzIGFzIGEgbGlzdC4iIiIKIAotICAgIGRlZiBzdGFydChzZWxmLCBibG9jaz1GYWxzZSk6
CisgICAgZGVmIHN0YXJ0KHNlbGYsCisgICAgICAgICAgICAgIGJsb2NrPUZhbHNlLAorICAgICAg
ICAgICAgICBvdXRwdXRfaGFuZGxlcl9rd2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgb3V0cHV0
X2hhbmRsZXJfc3RhcnRfa3dhcmdzPU5vbmUpOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBz
ZWxmLl9ydW4oYmxvY2spCisgICAgICAgICAgICBzZWxmLl9ydW4oYmxvY2ssIG91dHB1dF9oYW5k
bGVyX2t3YXJncywgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzKQogICAgICAgICBleGNlcHQg
S2V5Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICBzZWxmLnN0b3AoKQogCi0gICAgZGVmIF9y
dW4oc2VsZiwgYmxvY2spOgorICAgIGRlZiBfcnVuKHNlbGYsIGJsb2NrLCBvdXRwdXRfaGFuZGxl
cl9rd2FyZ3MsIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyk6CisgICAgICAgIGlmIG91dHB1
dF9oYW5kbGVyX2t3YXJncyBpcyBOb25lOgorICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dh
cmdzID0ge30KKyAgICAgICAgaWYgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzIGlzIE5vbmU6
CisgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSB7fQogICAgICAgICBz
ZWxmLl9jbWQgPSBzZWxmLm1ha2VfY29tbWFuZCgpCisgICAgICAgIHNlbGYuX291dHB1dF9oYW5k
bGVyID0gc2VsZi5vdXRwdXRfaGFuZGxlcl9jbHMoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY21kLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqb3V0
cHV0X2hhbmRsZXJfa3dhcmdzKQogICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vzcy5Qcm9j
ZXNzSGFuZGxlcigKICAgICAgICAgICAgIHNlbGYuX2NtZCwKLSAgICAgICAgICAgIHByb2Nlc3NP
dXRwdXRMaW5lPXNlbGYub25fb3V0cHV0LAotICAgICAgICAgICAgZW52PWNhc3RfZW52KHNlbGYu
ZW52KSwKKyAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPXNlbGYuX291dHB1dF9oYW5kbGVy
LAorICAgICAgICAgICAgZW52PXNlbGYuZW52LAogICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFs
c2UpCiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIFdlYkRyaXZlcjogJXMi
ICUgJyAnLmpvaW4oc2VsZi5fY21kKSkKQEAgLTY4LDYgKzgyLDcgQEAgY2xhc3MgV2ViRHJpdmVy
U2VydmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKICAgICAgICAg
ICAgICAgICAgICAgIldlYkRyaXZlciBleGVjdXRhYmxlIG5vdCBmb3VuZDogJXMiICUgc2VsZi5i
aW5hcnkpCiAgICAgICAgICAgICByYWlzZQorICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlci5h
ZnRlcl9wcm9jZXNzX3N0YXJ0KHNlbGYuX3Byb2MucGlkKQogCiAgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKAogICAgICAgICAgICAgIldhaXRpbmcgZm9yIFdlYkRyaXZlciB0byBiZWNvbWUgYWNj
ZXNzaWJsZTogJXMiICUgc2VsZi51cmwpCkBAIC03OCwyNyArOTMsMjggQEAgY2xhc3MgV2ViRHJp
dmVyU2VydmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIldlYkRyaXZlciB3YXMgbm90IGFj
Y2Vzc2libGUgIgogICAgICAgICAgICAgICAgICJ3aXRoaW4gdGhlIHRpbWVvdXQ6XG4lcyIgJSB0
cmFjZWJhY2suZm9ybWF0X2V4YygpKQogICAgICAgICAgICAgcmFpc2UKLQorICAgICAgICBzZWxm
Ll9vdXRwdXRfaGFuZGxlci5zdGFydCgqKm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncykKICAg
ICAgICAgaWYgYmxvY2s6CiAgICAgICAgICAgICBzZWxmLl9wcm9jLndhaXQoKQogCiAgICAgZGVm
IHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3Rv
cHBpbmcgV2ViRHJpdmVyIikKKyAgICAgICAgY2xlYW4gPSBUcnVlCiAgICAgICAgIGlmIHNlbGYu
aXNfYWxpdmUoKToKICAgICAgICAgICAgIGtpbGxfcmVzdWx0ID0gc2VsZi5fcHJvYy5raWxsKCkK
ICAgICAgICAgICAgIGlmIGZvcmNlIGFuZCBraWxsX3Jlc3VsdCAhPSAwOgotICAgICAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9wcm9jLmtpbGwoOSkKLSAgICAgICAgICAgIHJldHVybiBraWxsX3Jl
c3VsdAotICAgICAgICByZXR1cm4gbm90IHNlbGYuaXNfYWxpdmUoKQorICAgICAgICAgICAgICAg
IGNsZWFuID0gRmFsc2UKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jLmtpbGwoOSkKKyAgICAg
ICAgc3VjY2VzcyA9IG5vdCBzZWxmLmlzX2FsaXZlKCkKKyAgICAgICAgaWYgc3VjY2VzcyBhbmQg
c2VsZi5fb3V0cHV0X2hhbmRsZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIE9ubHkgdHJ5
IHRvIGRvIG91dHB1dCBwb3N0LXByb2Nlc3NpbmcgaWYgd2UgbWFuYWdlZCB0byBzaHV0IGRvd24K
KyAgICAgICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RvcChjbGVh
bikKKyAgICAgICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gTm9uZQorICAgICAgICByZXR1
cm4gc3VjY2VzcwogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4gaGFz
YXR0cihzZWxmLl9wcm9jLCAicHJvYyIpIGFuZCBzZWxmLl9wcm9jLnBvbGwoKSBpcyBOb25lCiAK
LSAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgotICAgICAgICBzZWxmLmxvZ2dlci5wcm9j
ZXNzX291dHB1dChzZWxmLnBpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuX2NtZCkpCi0KICAgICBAcHJvcGVydHkK
ICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9wcm9jIGlzIG5vdCBOb25lOgpA
QCAtMTIzLDg4ICsxMzksNDIgQEAgY2xhc3MgU2VsZW5pdW1TZXJ2ZXIoV2ViRHJpdmVyU2VydmVy
KToKIAogCiBjbGFzcyBDaHJvbWVEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9ImNocm9tZWRyaXZlciIsIHBvcnQ9Tm9u
ZSwKLSAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBhcmdzPU5vbmUpOgotICAgICAgICBX
ZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFy
eSwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFzZV9wYXRoLCBhcmdzPWFyZ3MpCi0KICAgICBkZWYg
bWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAg
ICAgICAgICAgIGNtZF9hcmcoInBvcnQiLCBzdHIoc2VsZi5wb3J0KSksCiAgICAgICAgICAgICAg
ICAgY21kX2FyZygidXJsLWJhc2UiLCBzZWxmLmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGgg
ZWxzZSAiIiwKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJlbmFibGUtY2hyb21lLWxvZ3MiKV0g
KyBzZWxmLl9hcmdzCiAKLWNsYXNzIENXVENocm9tZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2
ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1Ob25lLCBh
cmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQogCitjbGFzcyBDV1RDaHJvbWVEcml2ZXJT
ZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAg
ICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUg
c3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCi1jbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJT
ZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
aW5hcnk9Im1zZWRnZWRyaXZlciIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgYmFzZV9w
YXRoPSIiLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0g
ICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFz
ZV9wYXRoLCBhcmdzPWFyZ3MpCiAKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihXZWJE
cml2ZXJTZXJ2ZXIpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVy
biBbc2VsZi5iaW5hcnksCiAgICAgICAgICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0cihzZWxm
LnBvcnQpKSwKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYuYmFzZV9w
YXRoKSBpZiBzZWxmLmJhc2VfcGF0aCBlbHNlICIiXSArIHNlbGYuX2FyZ3MKIAotY2xhc3MgRWRn
ZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJpbmFyeT0ibWljcm9zb2Z0d2ViZHJpdmVyLmV4ZSIsIHBvcnQ9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBob3N0PSJsb2NhbGhvc3QiLCBhcmdzPU5vbmUpOgot
ICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dn
ZXIsIGJpbmFyeSwgaG9zdD1ob3N0LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKIAorY2xhc3MgRWRn
ZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksCiAgICAgICAgICAgICAgICAgIi0tcG9y
dD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCiAKLWNsYXNzIE9wZXJhRHJpdmVy
U2VydmVyKENocm9tZURyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgYmluYXJ5PSJvcGVyYWRyaXZlciIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgYmFz
ZV9wYXRoPSIiLCBhcmdzPU5vbmUpOgotICAgICAgICBDaHJvbWVEcml2ZXJTZXJ2ZXIuX19pbml0
X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBiYXNlX3Bh
dGg9YmFzZV9wYXRoLCBhcmdzPWFyZ3MpCiAKK2NsYXNzIE9wZXJhRHJpdmVyU2VydmVyKENocm9t
ZURyaXZlclNlcnZlcik6CisgICAgcGFzcwogCiBjbGFzcyBJbnRlcm5ldEV4cGxvcmVyRHJpdmVy
U2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5PSJJRURyaXZlclNlcnZlci5leGUiLCBwb3J0PU5vbmUsCi0gICAgICAgICAgICAgICAg
IGJhc2VfcGF0aD0iIiwgaG9zdD0ibG9jYWxob3N0IiwgYXJncz1Ob25lKToKLSAgICAgICAgV2Vi
RHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnks
IGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCi0KICAgICBkZWYgbWFrZV9jb21tYW5k
KHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgICIt
LXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCiAKLWNsYXNzIEdlY2tv
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgbWFyaW9uZXR0ZV9wb3J0PTI4MjgsIGJpbmFyeT0iZ2Vja29kcml2ZXIiLAotICAgICAg
ICAgICAgICAgICBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsIGFyZ3M9Tm9uZSk6Ci0gICAg
ICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCi0gICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0Ui
XSA9ICIxIgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
aW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0PWhvc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PXBvcnQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3M9YXJncykKLSAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBt
YXJpb25ldHRlX3BvcnQKLQotICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBbc2VsZi5iaW5hcnksCi0gICAgICAgICAgICAgICAgIi0tbWFyaW9uZXR0ZS1wb3J0Iiwg
c3RyKHNlbGYubWFyaW9uZXR0ZV9wb3J0KSwKLSAgICAgICAgICAgICAgICAiLS1ob3N0Iiwgc2Vs
Zi5ob3N0LAotICAgICAgICAgICAgICAgICItLXBvcnQiLCBzdHIoc2VsZi5wb3J0KV0gKyBzZWxm
Ll9hcmdzCi0KLQogY2xhc3MgU2FmYXJpRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJzYWZhcmlkcml2ZXIiLCBwb3J0
PU5vbmUsIGFyZ3M9Tm9uZSk6Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKLSAg
ICAgICAgICAgIHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKLQog
ICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnks
CiAgICAgICAgICAgICAgICAgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9h
cmdzCkBAIC0yMTIsMTMgKzE4MiwxMyBAQCBjbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIoV2ViRHJp
dmVyU2VydmVyKToKIAogY2xhc3MgU2Vydm9Ecml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9InNlcnZvIiwgYmluYXJ5X2Fy
Z3M9Tm9uZSwgaG9zdD0iMTI3LjAuMC4xIiwKLSAgICAgICAgICAgICAgICAgcG9ydD1Ob25lLCBh
cmdzPU5vbmUpOgotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICAgICAg
ICAgICBwb3J0PU5vbmUsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgorICAgICAgICBlbnYgPSBlbnYg
aWYgZW52IGlzIG5vdCBOb25lIGVsc2Ugb3MuZW52aXJvbi5jb3B5KCkKICAgICAgICAgZW52WyJS
VVNUX0JBQ0tUUkFDRSJdID0gIjEiCiAgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhv
c3Q9aG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9ydCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3M9YXJncykKICAgICAgICAgc2VsZi5iaW5hcnlfYXJncyA9IGJpbmFy
eV9hcmdzCiAKQEAgLTIzMyw5ICsyMDMsNiBAQCBjbGFzcyBTZXJ2b0RyaXZlclNlcnZlcihXZWJE
cml2ZXJTZXJ2ZXIpOgogCiAKIGNsYXNzIFdlYktpdERyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2
ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCBwb3J0PU5v
bmUsIGFyZ3M9Tm9uZSk6Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCi0KICAgICBkZWYgbWFrZV9jb21t
YW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCAiLS1wb3J0PSVzIiAlIHN0
cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIApAQCAtMjU0LDcgKzIyMSw3IEBAIGRlZiBnZXRf
ZnJlZV9wb3J0KCk6CiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKICAgICAgICAgdHJ5Ogog
ICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCi0gICAgICAgIGV4Y2VwdCBzb2Nr
ZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgY29udGludWUK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzLmdldHNvY2tuYW1lKClbMV0KQEAg
LTI2NSw3ICsyMzIsNyBAQCBkZWYgZ2V0X2ZyZWVfcG9ydCgpOgogZGVmIHdhaXRfZm9yX3NlcnZp
Y2UoYWRkciwgdGltZW91dD02MCk6CiAgICAgIiIiV2FpdHMgdW50aWwgbmV0d29yayBzZXJ2aWNl
IGdpdmVuIGFzIGEgdHVwbGUgb2YgKGhvc3QsIHBvcnQpIGJlY29tZXMKICAgICBhdmFpbGFibGUg
b3IgdGhlIGB0aW1lb3V0YCBkdXJhdGlvbiBpcyByZWFjaGVkLCBhdCB3aGljaCBwb2ludAotICAg
IGBgc29ja2V0LmVycm9yYGAgaXMgcmFpc2VkLiIiIgorICAgIGBgc29ja2V0LnRpbWVvdXRgYCBp
cyByYWlzZWQuIiIiCiAgICAgZW5kID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CiAgICAgd2hpbGUg
ZW5kID4gdGltZS50aW1lKCk6CiAgICAgICAgIHNvID0gc29ja2V0LnNvY2tldCgpCkBAIC0yNzMs
NyArMjQwLDcgQEAgZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwgdGltZW91dD02MCk6CiAgICAg
ICAgICAgICBzby5jb25uZWN0KGFkZHIpCiAgICAgICAgIGV4Y2VwdCBzb2NrZXQudGltZW91dDoK
ICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAg
ICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJu
by5FQ09OTlJFRlVTRUQ6CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZWxzZToKQEAg
LTI4MSw0ICsyNDgsNCBAQCBkZWYgd2FpdF9mb3Jfc2VydmljZShhZGRyLCB0aW1lb3V0PTYwKToK
ICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNvLmNsb3NlKCkKICAgICAgICAgdGltZS5z
bGVlcCgwLjUpCi0gICAgcmFpc2Ugc29ja2V0LmVycm9yKCJTZXJ2aWNlIGlzIHVuYXZhaWxhYmxl
OiAlczolaSIgJSBhZGRyKQorICAgIHJhaXNlIHNvY2tldC50aW1lb3V0KCJTZXJ2aWNlIGlzIHVu
YXZhaWxhYmxlOiAlczolaSIgJSBhZGRyKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRj
b21tYW5kbGluZS5weQppbmRleCA5ZDFkNDA0ODA5NTQuLmM3MDUwZWI4MGMyYiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
d3B0Y29tbWFuZGxpbmUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKQEAgLTEsMTEgKzEsOSBAQAot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIHByaW50X2Z1bmN0aW9uCiBp
bXBvcnQgYXJncGFyc2UKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgT3JkZXJlZERpY3QKIGZyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1
dGFibGUKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IHRpbWVkZWx0YQotZnJvbSBzaXggaW1wb3J0IGVu
c3VyZV90ZXh0LCBpdGVya2V5cywgaXRlcnZhbHVlcywgaXRlcml0ZW1zCiAKIGZyb20gLiBpbXBv
cnQgY29uZmlnCiBmcm9tIC4gaW1wb3J0IHdwdHRlc3QKQEAgLTE2LDcgKzE0LDcgQEAgZGVmIGFi
c19wYXRoKHBhdGgpOgogCiAKIGRlZiB1cmxfb3JfcGF0aChwYXRoKToKLSAgICBmcm9tIHNpeC5t
b3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCisgICAgZnJvbSB1cmxsaWIucGFyc2Ug
aW1wb3J0IHVybHBhcnNlCiAKICAgICBwYXJzZWQgPSB1cmxwYXJzZShwYXRoKQogICAgIGlmIGxl
bihwYXJzZWQuc2NoZW1lKSA+IDI6CkBAIC03Miw2ICs3MCwxMCBAQCBzY2hlbWUgaG9zdCBhbmQg
cG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSJmYWlsX29uX3VuZXhwZWN0ZWQiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iRXhpdCB3aXRoIHN0YXR1cyBjb2RlIDAgd2hlbiB0ZXN0IGV4cGVj
dGF0aW9ucyBhcmUgdmlvbGF0ZWQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbm8tZmFp
bC1vbi11bmV4cGVjdGVkLXBhc3MiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
ImZhaWxfb25fdW5leHBlY3RlZF9wYXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
IkV4aXQgd2l0aCBzdGF0dXMgY29kZSAwIHdoZW4gYWxsIHVuZXhwZWN0ZWQgcmVzdWx0cyBhcmUg
UEFTUyIpCiAKICAgICBtb2RlX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiTW9k
ZSIpCiAgICAgbW9kZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tbGlzdC10ZXN0LWdyb3VwcyIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCkBAIC0xMzEsNiArMTMzLDggQEAgc2NoZW1lIGhvc3QgYW5kIHBv
cnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJUZXN0
IHR5cGVzIHRvIHJ1biIpCiAgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCIt
LWluY2x1ZGUiLCBhY3Rpb249ImFwcGVuZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlVSTCBwcmVmaXggdG8gaW5jbHVkZSIpCisgICAgdGVzdF9zZWxlY3Rp
b25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUtZmlsZSIsIGFjdGlvbj0ic3RvcmUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJBIGZpbGUgbGlzdGlu
ZyBVUkwgcHJlZml4IGZvciB0ZXN0cyIpCiAgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2Fy
Z3VtZW50KCItLWV4Y2x1ZGUiLCBhY3Rpb249ImFwcGVuZCIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IlVSTCBwcmVmaXggdG8gZXhjbHVkZSIpCiAgICAgdGVz
dF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUtbWFuaWZlc3QiLCB0eXBl
PWFic19wYXRoLApAQCAtMTcwLDYgKzE3NCw4IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkhhbHQgdGhlIHRlc3QgcnVu
bmVyIGFmdGVyIGVhY2ggdGVzdCAodGhpcyBoYXBwZW5zIGJ5IGRlZmF1bHQgaWYgb25seSBhIHNp
bmdsZSB0ZXN0IGlzIHJ1bikiKQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0t
bm8tcGF1c2UtYWZ0ZXItdGVzdCcsIGRlc3Q9InBhdXNlX2FmdGVyX3Rlc3QiLCBhY3Rpb249InN0
b3JlX2ZhbHNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0
IGhhbHQgdGhlIHRlc3QgcnVubmVyIGlycmVzcGVjdGl2ZSBvZiB0aGUgbnVtYmVyIG9mIHRlc3Rz
IHJ1biIpCisgICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1bWVudCgnLS1kZWJ1Zy10ZXN0Jywg
ZGVzdD0iZGVidWdfdGVzdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gdGVzdHMgd2l0aCBhZGRpdGlvbmFsIGRlYnVnZ2lu
ZyBmZWF0dXJlcyBlbmFibGVkIikKIAogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQo
Jy0tcGF1c2Utb24tdW5leHBlY3RlZCcsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJIYWx0IHRoZSB0ZXN0IHJ1bm5lciB3aGVuIGFu
IHVuZXhwZWN0ZWQgcmVzdWx0IGlzIGVuY291bnRlcmVkIikKQEAgLTE4MSw3ICsxODcsNiBAQCBz
Y2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJQYXRoIG9yIHVybCB0byBzeW1ib2xzIGZpbGUgdXNlZCB0byBhbmFseXNlIGNyYXNo
IG1pbmlkdW1wcy4iKQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tc3RhY2t3
YWxrLWJpbmFyeSIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBzdGFja3dhbGtlciBwcm9ncmFtIHVz
ZWQgdG8gYW5hbHlzZSBtaW5pZHVtcHMuIikKLQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tcGRiIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IkRyb3AgaW50byBwZGIgb24gcHl0aG9uIGV4Y2VwdGlvbiIpCiAK
QEAgLTE5Niw2ICsyMDEsOCBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgY29uZmln
X2dyb3VwLmFkZF9hcmd1bWVudCgnLS13ZWJkcml2ZXItYXJnJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0id2ViZHJpdmVy
X2FyZ3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRXh0cmEgYXJndW1l
bnQgZm9yIHRoZSBXZWJEcml2ZXIgYmluYXJ5IikKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCItLWFkYi1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlBhdGggdG8gYWRiIGJpbmFyeSB0byB1c2UiKQogICAgIGNvbmZpZ19n
cm91cC5hZGRfYXJndW1lbnQoIi0tcGFja2FnZS1uYW1lIiwgYWN0aW9uPSJzdG9yZSIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJBbmRyb2lkIHBhY2thZ2UgbmFtZSB0byBy
dW4gdGVzdHMgYWdhaW5zdCIpCiAgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1kZXZp
Y2Utc2VyaWFsIiwgYWN0aW9uPSJzdG9yZSIsCkBAIC0yODQsNiArMjkxLDggQEAgc2NoZW1lIGhv
c3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNh
YmxlIGZpc3Npb24gaW4gR2Vja28uIikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0t
c3RhY2tmaXgtZGlyIiwgZGVzdD0ic3RhY2tmaXhfZGlyIiwgYWN0aW9uPSJzdG9yZSIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gZGlyZWN0b3J5IGNvbnRhaW5p
bmcgYXNzZXJ0aW9uIHN0YWNrIGZpeGluZyBzY3JpcHRzIikKKyAgICBnZWNrb19ncm91cC5hZGRf
YXJndW1lbnQoIi0tc3BlY2lhbHBvd2Vycy1wYXRoIiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc3BlY2lhbFBvd2VycyBleHRlbnNp
b24geHBpIGZpbGUiKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zZXRwcmVmIiwg
ZGVzdD0iZXh0cmFfcHJlZnMiLCBhY3Rpb249J2FwcGVuZCcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9W10sIG1ldGF2YXI9IlBSRUY9VkFMVUUiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJEZWZpbmVzIGFuIGV4dHJhIHVzZXIgcHJlZmVyZW5jZSAo
b3ZlcnJpZGVzIHRob3NlIGluIHByZWZzX3Jvb3QpIikKQEAgLTMxMiwxNCArMzIxLDE3IEBAIHNj
aGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD1bXSwgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJ1c2VyX3N0eWxlc2hlZXRzIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSW5qZWN0IGEgdXNlciBDU1Mgc3R5bGVzaGVl
dCBpbnRvIGV2ZXJ5IHRlc3QuIikKIAotICAgIHNlcnZvX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1
bWVudF9ncm91cCgiQ2hyb21lLXNwZWNpZmljIikKLSAgICBzZXJ2b19ncm91cC5hZGRfYXJndW1l
bnQoIi0tZW5hYmxlLW1vam9qcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2Us
CisgICAgY2hyb21lX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiQ2hyb21lLXNw
ZWNpZmljIikKKyAgICBjaHJvbWVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWVuYWJsZS1tb2pvanMi
LCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJFbmFibGUgTW9qb0pTIGZvciB0ZXN0aW5nLiBOb3RlIHRoYXQgdGhp
cyBmbGFnIGlzIHVzYWxseSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmFibGVk
IGF1dG9tYXRpY2FsbHkgYnkgYHdwdCBydW5gLCBpZiBpdCBzdWNjZWVkcyBpbiBkb3dubG9hZGlu
ZyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgcmlnaHQgdmVyc2lvbiBvZiBt
b2pvanMuemlwIG9yIGlmIC0tbW9qb2pzLXBhdGggaXMgc3BlY2lmaWVkLiIpCi0gICAgc2Vydm9f
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLW1vam9qcy1wYXRoIiwKKyAgICBjaHJvbWVfZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLW1vam9qcy1wYXRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iUGF0aCB0byBtb2pvanMgZ2VuLyBkaXJlY3RvcnkuIElmIGl0IGlzIG5vdCBzcGVjaWZp
ZWQsIGB3cHQgcnVuYCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWxsIGRvd25s
b2FkIGFuZCBleHRyYWN0IG1vam9qcy56aXAgaW50byBfdmVudjIvbW9qb2pzL2dlbi4iKQorICAg
IGNocm9tZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tZW5hYmxlLXN3aWZ0c2hhZGVyIiwgYWN0aW9u
PSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iRW5hYmxlIFN3aWZ0U2hhZGVyIGZvciBDUFUtYmFzZWQgM0QgZ3JhcGhpY3MuIFRo
aXMgY2FuIGJlIHVzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4gZW52aXJv
bm1lbnRzIHdpdGggbm8gaGFyZHdhcmUgR1BVIGF2YWlsYWJsZS4iKQogCiAgICAgc2F1Y2VfZ3Jv
dXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTYXVjZSBMYWJzLXNwZWNpZmljIikKICAg
ICBzYXVjZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtYnJvd3NlciIsIGRlc3Q9InNhdWNl
X2Jyb3dzZXIiLApAQCAtMzU0LDEzICszNjYsMTcgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIi
KQogCiAgICAgdGFza2NsdXN0ZXJfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJU
YXNrY2x1c3Rlci1zcGVjaWZpYyIpCiAgICAgdGFza2NsdXN0ZXJfZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLWdpdGh1Yi1jaGVja3MtdGV4dC1maWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZT1lbnN1cmVfdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZT1zdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
IlBhdGggdG8gR2l0SHViIGNoZWNrcyBvdXRwdXQgZmlsZSIpCiAKICAgICB3ZWJraXRfZ3JvdXAg
PSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJXZWJLaXQtc3BlY2lmaWMiKQogICAgIHdlYmtp
dF9ncm91cC5hZGRfYXJndW1lbnQoIi0td2Via2l0LXBvcnQiLCBkZXN0PSJ3ZWJraXRfcG9ydCIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJXZWJLaXQgcG9ydCIpCiAKKyAg
ICBzYWZhcmlfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTYWZhcmktc3BlY2lm
aWMiKQorICAgIHNhZmFyaV9ncm91cC5hZGRfYXJndW1lbnQoIi0ta2lsbC1zYWZhcmkiLCBkZXN0
PSJraWxsX3NhZmFyaSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJLaWxsIFNhZmFyaSB3aGVuIHN0b3BwaW5n
IHRoZSBicm93c2VyIikKKwogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInRlc3RfbGlzdCIsIG5h
cmdzPSIqIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgVVJMcyBmb3Ig
dGVzdHMgdG8gcnVuLCBvciBwYXRocyBpbmNsdWRpbmcgdGVzdHMgdG8gcnVuLiAiCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIoZXF1aXZhbGVudCB0byAtLWluY2x1ZGUpIikKQEAgLTQw
Miw3ICs0MTgsNyBAQCBkZWYgc2V0X2Zyb21fY29uZmlnKGt3YXJncyk6CiAgICAgICAgICAgICAg
ICAgICAgICgiaG9zdF9jZXJ0X3BhdGgiLCAiaG9zdF9jZXJ0X3BhdGgiLCBUcnVlKSwKICAgICAg
ICAgICAgICAgICAgICAgKCJob3N0X2tleV9wYXRoIiwgImhvc3Rfa2V5X3BhdGgiLCBUcnVlKV19
CiAKLSAgICBmb3Igc2VjdGlvbiwgdmFsdWVzIGluIGl0ZXJpdGVtcyhrZXlzKToKKyAgICBmb3Ig
c2VjdGlvbiwgdmFsdWVzIGluIGtleXMuaXRlbXMoKToKICAgICAgICAgZm9yIGNvbmZpZ192YWx1
ZSwga3dfdmFsdWUsIGlzX3BhdGggaW4gdmFsdWVzOgogICAgICAgICAgICAgaWYga3dfdmFsdWUg
aW4ga3dhcmdzIGFuZCBrd2FyZ3Nba3dfdmFsdWVdIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAg
aWYgbm90IGlzX3BhdGg6CkBAIC00MzgsNyArNDU0LDcgQEAgZGVmIGdldF90ZXN0X3BhdGhzKGNv
bmZpZyk6CiAgICAgIyBTZXQgdXAgdGVzdF9wYXRocwogICAgIHRlc3RfcGF0aHMgPSBPcmRlcmVk
RGljdCgpCiAKLSAgICBmb3Igc2VjdGlvbiBpbiBpdGVya2V5cyhjb25maWcpOgorICAgIGZvciBz
ZWN0aW9uIGluIGNvbmZpZy5rZXlzKCk6CiAgICAgICAgIGlmIHNlY3Rpb24uc3RhcnRzd2l0aCgi
bWFuaWZlc3Q6Iik6CiAgICAgICAgICAgICBtYW5pZmVzdF9vcHRzID0gY29uZmlnLmdldChzZWN0
aW9uKQogICAgICAgICAgICAgdXJsX2Jhc2UgPSBtYW5pZmVzdF9vcHRzLmdldCgidXJsX2Jhc2Ui
LCAiLyIpCkBAIC00NjQsNyArNDgwLDcgQEAgZGVmIGV4ZV9wYXRoKG5hbWUpOgogCiAKIGRlZiBj
aGVja19wYXRocyhrd2FyZ3MpOgotICAgIGZvciB0ZXN0X3BhdGhzIGluIGl0ZXJ2YWx1ZXMoa3dh
cmdzWyJ0ZXN0X3BhdGhzIl0pOgorICAgIGZvciB0ZXN0X3BhdGhzIGluIGt3YXJnc1sidGVzdF9w
YXRocyJdLnZhbHVlcygpOgogICAgICAgICBpZiBub3QgKCJ0ZXN0c19wYXRoIiBpbiB0ZXN0X3Bh
dGhzIGFuZAogICAgICAgICAgICAgICAgICJtZXRhZGF0YV9wYXRoIiBpbiB0ZXN0X3BhdGhzKToK
ICAgICAgICAgICAgIHByaW50KCJGYXRhbDogbXVzdCBzcGVjaWZ5IGJvdGggYSB0ZXN0IHBhdGgg
YW5kIG1ldGFkYXRhIHBhdGgiKQpAQCAtNDcyLDcgKzQ4OCw3IEBAIGRlZiBjaGVja19wYXRocyhr
d2FyZ3MpOgogICAgICAgICBpZiAibWFuaWZlc3RfcGF0aCIgbm90IGluIHRlc3RfcGF0aHM6CiAg
ICAgICAgICAgICB0ZXN0X3BhdGhzWyJtYW5pZmVzdF9wYXRoIl0gPSBvcy5wYXRoLmpvaW4odGVz
dF9wYXRoc1sibWV0YWRhdGFfcGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJNQU5JRkVTVC5qc29uIikKLSAgICAgICAgZm9yIGtl
eSwgcGF0aCBpbiBpdGVyaXRlbXModGVzdF9wYXRocyk6CisgICAgICAgIGZvciBrZXksIHBhdGgg
aW4gdGVzdF9wYXRocy5pdGVtcygpOgogICAgICAgICAgICAgbmFtZSA9IGtleS5zcGxpdCgiXyIs
IDEpWzBdCiAKICAgICAgICAgICAgIGlmIG5hbWUgPT0gIm1hbmlmZXN0IjoKQEAgLTU4OCw3ICs2
MDQsNyBAQCBkZWYgY2hlY2tfYXJncyhrd2FyZ3MpOgogICAgICAgICBrd2FyZ3NbInJlZnRlc3Rf
aW50ZXJuYWwiXSA9IFRydWUKIAogICAgIGlmIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0g
aXMgTm9uZToKLSAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9ICJ1bmV4cGVj
dGVkIgorICAgICAgICBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdID0gInVuZXhwZWN0ZWQi
IGlmIG5vdCBrd2FyZ3NbImRlYnVnX3Rlc3QiXSBlbHNlICJhbHdheXMiCiAKICAgICBpZiBrd2Fy
Z3NbImVuYWJsZV93ZWJyZW5kZXIiXSBpcyBOb25lOgogICAgICAgICBrd2FyZ3NbImVuYWJsZV93
ZWJyZW5kZXIiXSA9IEZhbHNlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRsb2dnaW5nLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQpp
bmRleCA0NDRkMWQ5NjJkMjUuLmI1Y2I1ODg4MWZkMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRsb2dnaW5nLnB5CkBAIC0xLDQgKzEsNSBAQAogaW1wb3J0IGxvZ2dpbmcKK2Zyb20gdGhy
ZWFkaW5nIGltcG9ydCBUaHJlYWQKIAogZnJvbSBtb3psb2cgaW1wb3J0IGNvbW1hbmRsaW5lLCBz
dGRhZGFwdGVyLCBzZXRfZGVmYXVsdF9sb2dnZXIKIGZyb20gbW96bG9nLnN0cnVjdHVyZWRsb2cg
aW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIsIGxvZ19sZXZlbHMKQEAgLTY1LDMgKzY2LDQyIEBAIGNs
YXNzIExvZ2dlZEFib3ZlTGV2ZWxIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBub3Qgc2Vs
Zi5oYXNfbG9nIGFuZAogICAgICAgICAgICAgbG9nX2xldmVsc1tkYXRhWyJsZXZlbCJdXSA8PSBz
ZWxmLm1pbl9sZXZlbCk6CiAgICAgICAgICAgICBzZWxmLmhhc19sb2cgPSBUcnVlCisKKworY2xh
c3MgUXVldWVIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHF1ZXVlLCBsZXZlbD1sb2dnaW5nLk5PVFNFVCk6CisgICAgICAgIHNlbGYucXVldWUgPSBxdWV1
ZQorICAgICAgICBsb2dnaW5nLkhhbmRsZXIuX19pbml0X18oc2VsZiwgbGV2ZWw9bGV2ZWwpCisK
KyAgICBkZWYgY3JlYXRlTG9jayhzZWxmKToKKyAgICAgICAgIyBUaGUgcXVldWUgcHJvdmlkZXMg
aXRzIG93biBsb2NraW5nCisgICAgICAgIHNlbGYubG9jayA9IE5vbmUKKworICAgIGRlZiBlbWl0
KHNlbGYsIHJlY29yZCk6CisgICAgICAgIG1zZyA9IHNlbGYuZm9ybWF0KHJlY29yZCkKKyAgICAg
ICAgZGF0YSA9IHsiYWN0aW9uIjogImxvZyIsCisgICAgICAgICAgICAgICAgImxldmVsIjogcmVj
b3JkLmxldmVsbmFtZSwKKyAgICAgICAgICAgICAgICAidGhyZWFkIjogcmVjb3JkLnRocmVhZE5h
bWUsCisgICAgICAgICAgICAgICAgInBpZCI6IHJlY29yZC5wcm9jZXNzLAorICAgICAgICAgICAg
ICAgICJzb3VyY2UiOiBzZWxmLm5hbWUsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiBtc2d9
CisgICAgICAgIHNlbGYucXVldWUucHV0KGRhdGEpCisKKworY2xhc3MgTG9nUXVldWVUaHJlYWQo
VGhyZWFkKToKKyAgICAiIiJUaHJlYWQgZm9yIGhhbmRsaW5nIGxvZyBtZXNzYWdlcyBmcm9tIGEg
cXVldWUiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcXVldWUsIGxvZ2dlcik6CisgICAgICAg
IHNlbGYucXVldWUgPSBxdWV1ZQorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAg
ICBzdXBlcigpLl9faW5pdF9fKG5hbWU9IlRocmVhZC1Mb2ciKQorCisgICAgZGVmIHJ1bihzZWxm
KToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICBkYXRhID0gc2VsZi5xdWV1ZS5nZXQoKQorICAgICAgICAgICAgZXhjZXB0IChFT0ZFcnJvciwg
SU9FcnJvcik6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIGRhdGEgaXMg
Tm9uZToKKyAgICAgICAgICAgICAgICAjIEEgTm9uZSBtZXNzYWdlIGlzIHVzZWQgdG8gc2h1dCBk
b3duIHRoZSBsb2dnaW5nIHRocmVhZAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5sb2dfcmF3KGRhdGEpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5k
cy9iYXNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvYmFzZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjMwNjllNGNmZThkZAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1h
bmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkKQEAgLTAsMCArMSwyMjIgQEAKK2ltcG9ydCBhYmMKKwor
ZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yCitmcm9tIC4ucGFyc2VyIGltcG9ydCBwYXJz
ZQorCisKK2NsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToKKyAgICBfX21ldGFjbGFzc19fID0g
YWJjLkFCQ01ldGEKKworICAgIGRlZiBjb21waWxlKHNlbGYsIHRyZWUsIGRhdGFfY2xzX2dldHRl
cj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX2t3YXJncyA9IGt3YXJncworICAgICAg
ICByZXR1cm4gc2VsZi5fY29tcGlsZSh0cmVlLCBkYXRhX2Nsc19nZXR0ZXIsICoqa3dhcmdzKQor
CisgICAgZGVmIF9jb21waWxlKHNlbGYsIHRyZWUsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3
YXJncyk6CisgICAgICAgICIiIkNvbXBpbGUgYSByYXcgQVNUIGludG8gYSBmb3JtIHdoZXJlIGNv
bmRpdGlvbmFsIGV4cHJlc3Npb25zCisgICAgICAgIGFyZSByZXByZXNlbnRlZCBieSBDb25kaXRp
b25hbFZhbHVlIG9iamVjdHMgdGhhdCBjYW4gYmUgZXZhbHVhdGVkCisgICAgICAgIGF0IHJ1bnRp
bWUuCisKKyAgICAgICAgdHJlZSAtIFRoZSByb290IG5vZGUgb2YgdGhlIHdwdG1hbmlmZXN0IEFT
VCB0byBjb21waWxlCisKKyAgICAgICAgZGF0YV9jbHNfZ2V0dGVyIC0gQSBmdW5jdGlvbiB0YWtp
bmcgdHdvIHBhcmFtZXRlcnM7IHRoZSBwcmV2aW91cworICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXRwdXQgbm9kZSBhbmQgdGhlIGN1cnJlbnQgYXN0IG5vZGUgYW5kIHJldHVybmluZworICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xhc3Mgb2YgdGhlIG91dHB1dCBub2RlIHRvIHVz
ZSBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0IG5vZGUKKyAg
ICAgICAgIiIiCisgICAgICAgIGlmIGRhdGFfY2xzX2dldHRlciBpcyBOb25lOgorICAgICAgICAg
ICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBsYW1iZGEgeCwgeTogTWFuaWZlc3RJdGVtCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRhdGFfY2xzX2dldHRlciA9IGRhdGFfY2xzX2dl
dHRlcgorCisgICAgICAgIHNlbGYudHJlZSA9IHRyZWUKKyAgICAgICAgc2VsZi5vdXRwdXRfbm9k
ZSA9IHNlbGYuX2luaXRpYWxfb3V0cHV0X25vZGUodHJlZSwgKiprd2FyZ3MpCisgICAgICAgIHNl
bGYudmlzaXQodHJlZSkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLm91dHB1dF9ub2RlLCAic2V0
X2RlZmF1bHRzIik6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlLnNldF9kZWZhdWx0cygp
CisgICAgICAgIGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBOb25lCisgICAgICAgIHJl
dHVybiBzZWxmLm91dHB1dF9ub2RlCisKKyAgICBkZWYgX2luaXRpYWxfb3V0cHV0X25vZGUoc2Vs
Ziwgbm9kZSwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gc2VsZi5kYXRhX2Nsc19nZXR0ZXIo
Tm9uZSwgTm9uZSkobm9kZSwgKiprd2FyZ3MpCisKKyAgICBkZWYgdmlzaXRfRGF0YU5vZGUoc2Vs
Ziwgbm9kZSk6CisgICAgICAgIGlmIG5vZGUgIT0gc2VsZi50cmVlOgorICAgICAgICAgICAgb3V0
cHV0X3BhcmVudCA9IHNlbGYub3V0cHV0X25vZGUKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X25v
ZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihzZWxmLm91dHB1dF9ub2RlLCBub2RlKShub2RlLCAq
KnNlbGYuX2t3YXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dHB1dF9wYXJlbnQg
PSBOb25lCisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5vbmUKKwor
ICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAgIHNlbGYudmlz
aXQoY2hpbGQpCisKKyAgICAgICAgaWYgb3V0cHV0X3BhcmVudCBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgICMgQXBwZW5kIHRvIHRoZSBwYXJlbnQgKmFmdGVyKiBwcm9jZXNzaW5nIGFsbCB0aGUg
bm9kZSBkYXRhCisgICAgICAgICAgICBvdXRwdXRfcGFyZW50LmFwcGVuZChzZWxmLm91dHB1dF9u
b2RlKQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYub3V0cHV0X25vZGUucGFy
ZW50CisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5vbmUKKworICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfS2V5VmFsdWVOb2RlKHNlbGYsIG5v
ZGUpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdmlzaXRfTGlzdE5vZGUoc2VsZiwgbm9kZSk6
CisgICAgICAgIHJldHVybiBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxkIGluIG5vZGUuY2hp
bGRyZW5dCisKKyAgICBkZWYgdmlzaXRfVmFsdWVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBy
ZXR1cm4gbm9kZS5kYXRhCisKKyAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwgbm9kZSk6Cisg
ICAgICAgIHJldHVybiBub2RlLmRhdGEKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgdmlzaXRfQ29uZGl0aW9uYWxOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgdmlzaXRfU3RyaW5nTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhlcyA9IFtz
ZWxmLnZpc2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAgICAgICBk
ZWYgdmFsdWUoeCk6CisgICAgICAgICAgICBydiA9IG5vZGUuZGF0YQorICAgICAgICAgICAgZm9y
IGluZGV4IGluIGluZGV4ZXM6CisgICAgICAgICAgICAgICAgcnYgPSBydltpbmRleCh4KV0KKyAg
ICAgICAgICAgIHJldHVybiBydgorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiB2aXNp
dF9OdW1iZXJOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpZiAiLiIgaW4gbm9kZS5kYXRhOgor
ICAgICAgICAgICAgcmV0dXJuIGZsb2F0KG5vZGUuZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJldHVybiBpbnQobm9kZS5kYXRhKQorCisgICAgZGVmIHZpc2l0X1ZhcmlhYmxlTm9k
ZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhlcyA9IFtzZWxmLnZpc2l0KGNoaWxkKSBmb3Ig
Y2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAgICAgICBkZWYgdmFsdWUoeCk6CisgICAgICAg
ICAgICBkYXRhID0geFtub2RlLmRhdGFdCisgICAgICAgICAgICBmb3IgaW5kZXggaW4gaW5kZXhl
czoKKyAgICAgICAgICAgICAgICBkYXRhID0gZGF0YVtpbmRleCh4KV0KKyAgICAgICAgICAgIHJl
dHVybiBkYXRhCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIHZpc2l0X0luZGV4Tm9k
ZShzZWxmLCBub2RlKToKKyAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNoaWxkcmVuKSA9PSAxCisg
ICAgICAgIHJldHVybiBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pCisKKyAgICBAYWJjLmFi
c3RyYWN0bWV0aG9kCisgICAgZGVmIHZpc2l0X1VuYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9k
ZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlz
aXRfQmluYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfVW5hcnlPcGVyYXRvck5vZGUoc2Vs
Ziwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgdmlzaXRfQmluYXJ5T3BlcmF0b3JOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNzCisK
KworY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5v
ZGUsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisgICAgICAgIHNlbGYu
bm9kZSA9IG5vZGUKKyAgICAgICAgc2VsZi5jaGlsZHJlbiA9IFtdCisgICAgICAgIHNlbGYuX2Rh
dGEgPSB7fQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjwlcyAl
cz4iICUgKHNlbGYuX19jbGFzc19fLCBzZWxmLm5vZGUuZGF0YSkKKworICAgIGRlZiBfX3N0cl9f
KHNlbGYpOgorICAgICAgICBydiA9IFtyZXByKHNlbGYpXQorICAgICAgICBmb3IgaXRlbSBpbiBz
ZWxmLmNoaWxkcmVuOgorICAgICAgICAgICAgcnYuZXh0ZW5kKCIgICVzIiAlIGxpbmUgZm9yIGxp
bmUgaW4gc3RyKGl0ZW0pLnNwbGl0KCJcbiIpKQorICAgICAgICByZXR1cm4gIlxuIi5qb2luKHJ2
KQorCisgICAgZGVmIHNldF9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9kYXRhOgor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBhbGwoY2hpbGQuaXNfZW1w
dHkgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW4pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
cm9vdChzZWxmKToKKyAgICAgICAgbm9kZSA9IHNlbGYKKyAgICAgICAgd2hpbGUgbm9kZS5wYXJl
bnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQKKyAgICAgICAg
cmV0dXJuIG5vZGUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5ub2RlLmRhdGEKKworICAgIGRlZiBnZXQoc2VsZiwga2V5KToKKyAgICAg
ICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBpZiBrZXkgaW4g
bm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5fZGF0YVtrZXldCisgICAg
ICAgIHJhaXNlIEtleUVycm9yCisKKyAgICBkZWYgc2V0KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAg
ICAgICAgc2VsZi5fZGF0YVtuYW1lXSA9IHZhbHVlCisKKyAgICBkZWYgcmVtb3ZlKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLnBhcmVudDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50LmNoaWxkcmVu
LnJlbW92ZShzZWxmKQorICAgICAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisKKyAgICBkZWYg
aXRlcmNoaWxkcmVuKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYu
Y2hpbGRyZW46CisgICAgICAgICAgICBpZiBpdGVtLm5hbWUgPT0gbmFtZSBvciBuYW1lIGlzIE5v
bmU6CisgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGhhc19rZXkoc2VsZiwg
a2V5KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAg
ICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfZmxhdHRlbihzZWxmKToKKyAgICAgICAgcnYg
PSB7fQorICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAgICAgICAg
IGZvciBuYW1lLCB2YWx1ZSBpbiBub2RlLl9kYXRhLml0ZW1zKCk6CisgICAgICAgICAgICAgICAg
aWYgbmFtZSBub3QgaW4gcnY6CisgICAgICAgICAgICAgICAgICAgIHJ2W25hbWVdID0gdmFsdWUK
KyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgorICAgICAgICBm
b3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlbXMoKToKKyAgICAgICAgICAgIHlpZWxkIGl0
ZW0KKworICAgIGRlZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5f
ZmxhdHRlbigpLmtleXMoKToKKyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRlZiBpdGVy
dmFsdWVzKHNlbGYpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkudmFsdWVz
KCk6CisgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBkZWYgYXBwZW5kKHNlbGYsIGNoaWxk
KToKKyAgICAgICAgY2hpbGQucGFyZW50ID0gc2VsZgorICAgICAgICBzZWxmLmNoaWxkcmVuLmFw
cGVuZChjaGlsZCkKKyAgICAgICAgcmV0dXJuIGNoaWxkCisKKworZGVmIGNvbXBpbGVfYXN0KGNv
bXBpbGVyLCBhc3QsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAgcmV0dXJu
IGNvbXBpbGVyKCkuY29tcGlsZShhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhX2Nsc19nZXR0ZXI9ZGF0YV9jbHNfZ2V0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKiprd2FyZ3MpCisKKworZGVmIGNvbXBpbGUoY29tcGlsZXIsIHN0cmVhbSwgZGF0YV9j
bHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKKyAgICByZXR1cm4gY29tcGlsZV9hc3QoY29tcGls
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlKHN0cmVhbSksCisgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGFfY2xzX2dldHRlcj1kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICoqa3dhcmdzKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0
aW9uYWwucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weQppbmRleCAzYjExZTgz
MDEyYWIuLjMwZGQxNDQ5MTU2ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0
aW9uYWwucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkKQEAgLTEsNSAr
MSw1IEBACiBpbXBvcnQgb3BlcmF0b3IKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfdGV4dCwgaXRl
cml0ZW1zLCBpdGVya2V5cywgdGV4dF90eXBlCitmcm9tIHNpeCBpbXBvcnQgZW5zdXJlX3RleHQK
IAogZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBEYXRhTm9kZSwgQ29uZGl0aW9uYWxO
b2RlLCBLZXlWYWx1ZU5vZGUsIExpc3ROb2RlLCBWYWx1ZU5vZGUsIEJpbmFyeUV4cHJlc3Npb25O
b2RlLCBWYXJpYWJsZU5vZGUKIGZyb20gLi5wYXJzZXIgaW1wb3J0IHBhcnNlCkBAIC0zMDAsOSAr
MzAwLDkgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CiAgICAgICAgIGlmIGlzaW5zdGFu
Y2UodmFsdWUsIGxpc3QpOgogICAgICAgICAgICAgdmFsdWVfbm9kZSA9IExpc3ROb2RlKCkKICAg
ICAgICAgICAgIGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICAgICAgICAgIHZhbHVlX25vZGUu
YXBwZW5kKFZhbHVlTm9kZSh0ZXh0X3R5cGUoaXRlbSkpKQorICAgICAgICAgICAgICAgIHZhbHVl
X25vZGUuYXBwZW5kKFZhbHVlTm9kZShzdHIoaXRlbSkpKQogICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAgICAgICAg
ICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZShzdHIodmFsdWUpKQogICAgICAgICBpZiBjb25kaXRp
b24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb25kaXRpb24s
IENvbmRpdGlvbmFsTm9kZSk6CiAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfbm9kZSA9IENv
bmRpdGlvbmFsTm9kZSgpCkBAIC0zNjgsMTcgKzM2OCwxNyBAQCBjbGFzcyBNYW5pZmVzdEl0ZW0o
b2JqZWN0KToKICAgICBkZWYgX2ZsYXR0ZW4oc2VsZik6CiAgICAgICAgIHJ2ID0ge30KICAgICAg
ICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06Ci0gICAgICAgICAgICBmb3IgbmFtZSwg
dmFsdWUgaW4gaXRlcml0ZW1zKG5vZGUuX2RhdGEpOgorICAgICAgICAgICAgZm9yIG5hbWUsIHZh
bHVlIGluIG5vZGUuX2RhdGEuaXRlbXMoKToKICAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBp
biBydjoKICAgICAgICAgICAgICAgICAgICAgcnZbbmFtZV0gPSB2YWx1ZQogICAgICAgICByZXR1
cm4gcnYKIAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0gICAgICAgIGZvciBpdGVtIGluIGl0
ZXJpdGVtcyhzZWxmLl9mbGF0dGVuKCkpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0
dGVuKCkuaXRlbXMoKToKICAgICAgICAgICAgIHlpZWxkIGl0ZW0KIAogICAgIGRlZiBpdGVya2V5
cyhzZWxmKToKLSAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcmtleXMoc2VsZi5fZmxhdHRlbigpKToK
KyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLmtleXMoKToKICAgICAgICAgICAg
IHlpZWxkIGl0ZW0KIAogICAgIGRlZiBpdGVyX3Byb3BlcnRpZXMoc2VsZik6CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9ub2RlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQppbmRleCAwZjgyZDcwMDZiNjku
LjVlOWQyYjY0Mjc0NCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC9ub2RlLnB5CkBAIC0xLDUgKzEsMyBAQAotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCi0K
IGNsYXNzIE5vZGVWaXNpdG9yKG9iamVjdCk6CiAgICAgZGVmIHZpc2l0KHNlbGYsIG5vZGUpOgog
ICAgICAgICAjIFRoaXMgaXMgdWdseSBhcyBoZWxsLCBidXQgd2UgZG9uJ3QgaGF2ZSBtdWx0aW1l
dGhvZHMgYW5kCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJz
ZXIucHkKaW5kZXggOTExZWZhYzgwZjI3Li40Yzk3YzY5MTQxMzkgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L3BhcnNlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkKQEAgLTEyLDEwICsxMiw3IEBA
CiAKICMgVE9ETzoga2VlcCBjb21tZW50cyBpbiB0aGUgdHJlZQogCi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKLQotZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCB0
ZXh0X3R5cGUsIEJ5dGVzSU8sIHVuaWNocgotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCitm
cm9tIGlvIGltcG9ydCBCeXRlc0lPCiAKIGZyb20gLm5vZGUgaW1wb3J0IChOb2RlLCBBdG9tTm9k
ZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsIEJpbmFyeU9wZXJhdG9yTm9kZSwKICAgICAgICAgICAg
ICAgICAgICBDb25kaXRpb25hbE5vZGUsIERhdGFOb2RlLCBJbmRleE5vZGUsIEtleVZhbHVlTm9k
ZSwgTGlzdE5vZGUsCkBAIC01MCw3ICs0Nyw3IEBAIGF0b21zID0geyJUcnVlIjogVHJ1ZSwKICAg
ICAgICAgICJSZXNldCI6IG9iamVjdCgpfQogCiBkZWYgZGVjb2RlKHMpOgotICAgIGFzc2VydCBp
c2luc3RhbmNlKHMsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCBzdHIpCiAg
ICAgcmV0dXJuIHMKIAogCkBAIC01OSw3ICs1Niw3IEBAIGRlZiBwcmVjZWRlbmNlKG9wZXJhdG9y
X25vZGUpOgogCiAKIGNsYXNzIFRva2VuVHlwZXMob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18o
c2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIGZvciB0eXBl
IGluIFsiZ3JvdXBfc3RhcnQiLCAiZ3JvdXBfZW5kIiwgInBhcmVuIiwgImxpc3Rfc3RhcnQiLCAi
bGlzdF9lbmQiLCAic2VwYXJhdG9yIiwgImlkZW50IiwgInN0cmluZyIsICJudW1iZXIiLCAiYXRv
bSIsICJlb2YiXToKICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgdHlwZSwgdHlwZSkKIApAQCAt
NzksNyArNzYsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0KToKIAogICAgIGRlZiB0b2tlbml6
ZShzZWxmLCBzdHJlYW0pOgogICAgICAgICBzZWxmLnJlc2V0KCkKLSAgICAgICAgYXNzZXJ0IG5v
dCBpc2luc3RhbmNlKHN0cmVhbSwgdGV4dF90eXBlKQorICAgICAgICBhc3NlcnQgbm90IGlzaW5z
dGFuY2Uoc3RyZWFtLCBzdHIpCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RyZWFtLCBieXRlcyk6
CiAgICAgICAgICAgICBzdHJlYW0gPSBCeXRlc0lPKHN0cmVhbSkKICAgICAgICAgaWYgbm90IGhh
c2F0dHIoc3RyZWFtLCAibmFtZSIpOgpAQCAtODksNyArODYsNyBAQCBjbGFzcyBUb2tlbml6ZXIo
b2JqZWN0KToKIAogICAgICAgICBzZWxmLm5leHRfbGluZV9zdGF0ZSA9IHNlbGYubGluZV9zdGFy
dF9zdGF0ZQogICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUoc3RyZWFtKToKLSAgICAg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmUsIGJpbmFyeV90eXBlKQorICAgICAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UobGluZSwgYnl0ZXMpCiAgICAgICAgICAgICBzZWxmLnN0YXRlID0g
c2VsZi5uZXh0X2xpbmVfc3RhdGUKICAgICAgICAgICAgIGFzc2VydCBzZWxmLnN0YXRlIGlzIG5v
dCBOb25lCiAgICAgICAgICAgICBzdGF0ZXMgPSBbXQpAQCAtOTcsNyArOTQsNyBAQCBjbGFzcyBU
b2tlbml6ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYubGluZV9udW1iZXIgPSBpICsgMQog
ICAgICAgICAgICAgc2VsZi5pbmRleCA9IDAKICAgICAgICAgICAgIHNlbGYubGluZSA9IGxpbmUu
ZGVjb2RlKCd1dGYtOCcpLnJzdHJpcCgpCi0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShz
ZWxmLmxpbmUsIHRleHRfdHlwZSkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYu
bGluZSwgc3RyKQogICAgICAgICAgICAgd2hpbGUgc2VsZi5zdGF0ZSAhPSBzZWxmLmVvbF9zdGF0
ZToKICAgICAgICAgICAgICAgICBzdGF0ZXMuYXBwZW5kKHNlbGYuc3RhdGUpCiAgICAgICAgICAg
ICAgICAgdG9rZW5zID0gc2VsZi5zdGF0ZSgpCkBAIC01MDUsNyArNTAyLDcgQEAgY2xhc3MgVG9r
ZW5pemVyKG9iamVjdCk6CiAgICAgICAgICAgICB2YWx1ZSArPSBzZWxmLmVzY2FwZV92YWx1ZShj
KQogICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKIAotICAgICAgICByZXR1cm4gdW5pY2hyKHZh
bHVlKQorICAgICAgICByZXR1cm4gY2hyKHZhbHVlKQogCiAgICAgZGVmIGVzY2FwZV92YWx1ZShz
ZWxmLCBjKToKICAgICAgICAgaWYgJzAnIDw9IGMgPD0gJzknOgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3Qvc2VyaWFsaXplci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkKaW5kZXggZWM4ZDgwZWQ2
ZjcxLi5lMzFhNjA3OTFlYTcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
d3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVf
XyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogZnJvbSBzaXggaW1wb3J0IGVuc3VyZV90ZXh0CiAK
IGZyb20gLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBWYWx1ZU5vZGUsIExpc3ROb2RlLCBCaW5h
cnlFeHByZXNzaW9uTm9kZQpAQCAtMzQsNiArMzMsNyBAQCBjbGFzcyBNYW5pZmVzdFNlcmlhbGl6
ZXIoTm9kZVZpc2l0b3IpOgogICAgICAgICBydiA9ICJcbiIuam9pbihzZWxmLnZpc2l0KHJvb3Qp
KQogICAgICAgICBpZiBub3QgcnY6CiAgICAgICAgICAgICByZXR1cm4gcnYKKyAgICAgICAgcnYg
PSBydi5zdHJpcCgpCiAgICAgICAgIGlmIHJ2Wy0xXSAhPSAiXG4iOgogICAgICAgICAgICAgcnYg
PSBydiArICJcbiIKICAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0
cy90ZXN0X3NlcmlhbGl6ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkK
aW5kZXggYjI0Nzg1NTgwMWVhLi4wMmU1MjgxNWRiZGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rl
c3RzL3Rlc3Rfc2VyaWFsaXplci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6
ZXIucHkKQEAgLTEsOCArMSw1IEBACi1pbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAotaW1w
b3J0IHB5dGVzdAotCiBmcm9tIC4uIGltcG9ydCBwYXJzZXIsIHNlcmlhbGl6ZXIKIAogCkBAIC0x
OTIsNyArMTg5LDYgQEAgY2xhc3MgVG9rZW5pemVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgICAgICAgICAgICAgICByIiIia2V5OiAiIyIKICIiIikKIAotICAgIEBweXRlc3QubWFy
ay54ZmFpbChzeXMubWF4dW5pY29kZSA9PSAweEZGRkYsIHJlYXNvbj0ibmFycm93IHVuaWNvZGUi
KQogICAgIGRlZiB0ZXN0X2VzY2FwZV85KHNlbGYpOgogICAgICAgICBzZWxmLmNvbXBhcmUoYnIi
IiJrZXk6IFxVMTBGRkZGYWJjIiIiLAogICAgICAgICAgICAgICAgICAgICAgdSIiImtleTogXFUw
MDEwRkZGRmFiYwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5CmluZGV4IGUxZDll
ZjhiMWE5MS4uMjVhMjUxNWVmNmY4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVy
LnB5CkBAIC0xLDE1ICsxLDEzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGltcG9ydCBz
eXMKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMKIAogaW1wb3J0IHdwdHNl
cnZlCiBmcm9tIHdwdHNlcnZlIGltcG9ydCBzc2x1dGlscwogCiBmcm9tIC4gaW1wb3J0IGVudmly
b25tZW50IGFzIGVudgogZnJvbSAuIGltcG9ydCBpbnN0cnVtZW50cworZnJvbSAuIGltcG9ydCBt
cGNvbnRleHQKIGZyb20gLiBpbXBvcnQgcHJvZHVjdHMKIGZyb20gLiBpbXBvcnQgdGVzdGxvYWRl
cgogZnJvbSAuIGltcG9ydCB3cHRjb21tYW5kbGluZQpAQCAtMTgsNyArMTYsNiBAQCBmcm9tIC4g
aW1wb3J0IHdwdHRlc3QKIGZyb20gbW96bG9nIGltcG9ydCBjYXB0dXJlLCBoYW5kbGVycwogZnJv
bSAuZm9udCBpbXBvcnQgRm9udEluc3RhbGxlcgogZnJvbSAudGVzdHJ1bm5lciBpbXBvcnQgTWFu
YWdlckdyb3VwCi1mcm9tIC5icm93c2Vycy5iYXNlIGltcG9ydCBOdWxsQnJvd3NlcgogCiBoZXJl
ID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCkBAIC02NSw2ICs2Miw5IEBAIGRlZiBnZXRf
bG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIGRlYnVnPU5vbmUsIHJ1bl9pbmZvX2V4dHJhcz1O
b25lLCBjaHVua2VyX2t3CiAgICAgbWFuaWZlc3RfZmlsdGVycyA9IFtdCiAKICAgICBpbmNsdWRl
ID0ga3dhcmdzWyJpbmNsdWRlIl0KKyAgICBpZiBrd2FyZ3NbImluY2x1ZGVfZmlsZSJdOgorICAg
ICAgICBpbmNsdWRlID0gaW5jbHVkZSBvciBbXQorICAgICAgICBpbmNsdWRlLmV4dGVuZCh0ZXN0
bG9hZGVyLnJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUoa3dhcmdzWyJpbmNsdWRlX2ZpbGUiXSkpCiAg
ICAgaWYgdGVzdF9ncm91cHM6CiAgICAgICAgIGluY2x1ZGUgPSB0ZXN0bG9hZGVyLnVwZGF0ZV9p
bmNsdWRlX2Zvcl9ncm91cHModGVzdF9ncm91cHMsIGluY2x1ZGUpCiAKQEAgLTk2LDcgKzk2LDcg
QEAgZGVmIGdldF9sb2FkZXIodGVzdF9wYXRocywgcHJvZHVjdCwgZGVidWc9Tm9uZSwgcnVuX2lu
Zm9fZXh0cmFzPU5vbmUsIGNodW5rZXJfa3cKIGRlZiBsaXN0X3Rlc3RfZ3JvdXBzKHRlc3RfcGF0
aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dl
ciwgdGVzdF9wYXRocykKIAotICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJv
ZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAgcnVuX2lu
Zm9fZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KS5y
dW5faW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBn
ZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykK
QEAgLTExMCwxMiArMTEwLDEyIEBAIGRlZiBsaXN0X2Rpc2FibGVkKHRlc3RfcGF0aHMsIHByb2R1
Y3QsICoqa3dhcmdzKToKIAogICAgIHJ2ID0gW10KIAotICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHBy
b2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KVstMV0oKiprd2Fy
Z3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMuUHJvZHVjdChrd2FyZ3NbImNvbmZp
ZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpCiAKICAgICBydW5faW5mbywg
dGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0
cmFzLCAqKmt3YXJncykKIAotICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RzIGluIGl0ZXJpdGVtcyh0
ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0cyk6CisgICAgZm9yIHRlc3RfdHlwZSwgdGVzdHMgaW4g
dGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHMuaXRlbXMoKToKICAgICAgICAgZm9yIHRlc3QgaW4g
dGVzdHM6CiAgICAgICAgICAgICBydi5hcHBlbmQoeyJ0ZXN0IjogdGVzdC5pZCwgInJlYXNvbiI6
IHRlc3QuZGlzYWJsZWQoKX0pCiAgICAgcHJpbnQoanNvbi5kdW1wcyhydiwgaW5kZW50PTIpKQpA
QCAtMTI0LDcgKzEyNCw3IEBAIGRlZiBsaXN0X2Rpc2FibGVkKHRlc3RfcGF0aHMsIHByb2R1Y3Qs
ICoqa3dhcmdzKToKIGRlZiBsaXN0X3Rlc3RzKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdz
KToKICAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKIAotICAg
IHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZpZyJd
LCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVjdHMu
UHJvZHVjdChrd2FyZ3NbImNvbmZpZyJdLCBwcm9kdWN0KS5ydW5faW5mb19leHRyYXMoKiprd2Fy
Z3MpCiAKICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMs
IHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5m
b19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykKQEAgLTEzOSw4ICsxMzksMTAgQEAg
ZGVmIGdldF9wYXVzZV9hZnRlcl90ZXN0KHRlc3RfbG9hZGVyLCAqKmt3YXJncyk6CiAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOgogICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIGt3YXJnc1siZGVidWdfdGVzdCJdOgorICAg
ICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgdGVzdHMgPSB0ZXN0X2xvYWRlci50ZXN0cwot
ICAgICAgICBpc19zaW5nbGVfdGVzdGhhcm5lc3MgPSAoc3VtKGxlbihpdGVtKSBmb3IgaXRlbSBp
biBpdGVydmFsdWVzKHRlc3RzKSkgPT0gMSBhbmQKKyAgICAgICAgaXNfc2luZ2xlX3Rlc3RoYXJu
ZXNzID0gKHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gdGVzdHMudmFsdWVzKCkpID09IDEgYW5k
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4odGVzdHMuZ2V0KCJ0ZXN0aGFy
bmVzcyIsIFtdKSkgPT0gMSkKICAgICAgICAgaWYga3dhcmdzWyJyZXBlYXQiXSA9PSAxIGFuZCBr
d2FyZ3NbInJlcnVuIl0gPT0gMSBhbmQgaXNfc2luZ2xlX3Rlc3RoYXJuZXNzOgogICAgICAgICAg
ICAgcmV0dXJuIFRydWUKQEAgLTE1MSwxNSArMTUzLDE4IEBAIGRlZiBnZXRfcGF1c2VfYWZ0ZXJf
dGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgogZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3Rf
cGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAiIiJTZXQgdXAgdGhlIHRlc3QgZW52aXJv
bm1lbnQsIGxvYWQgdGhlIGxpc3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQsIGFuZAogICAgIGlu
dm9rZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBjb2RlIHRvIGV4ZWN1dGUgdGVzdHMiIiIKKyAgICBt
cCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAgICAgaWYga3dhcmdzWyJpbnN0cnVtZW50X3Rv
X2ZpbGUiXSBpcyBOb25lOgogICAgICAgICByZWNvcmRlciA9IGluc3RydW1lbnRzLk51bGxJbnN0
cnVtZW50KCkKICAgICBlbHNlOgogICAgICAgICByZWNvcmRlciA9IGluc3RydW1lbnRzLkluc3Ry
dW1lbnQoa3dhcmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSkKLSAgICB3aXRoIHJlY29yZGVyIGFz
IHJlY29yZGluZywgY2FwdHVyZS5DYXB0dXJlSU8obG9nZ2VyLCBub3Qga3dhcmdzWyJub19jYXB0
dXJlX3N0ZGlvIl0pOgorICAgIHdpdGggcmVjb3JkZXIgYXMgcmVjb3JkaW5nLCBjYXB0dXJlLkNh
cHR1cmVJTyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8iXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBfY29udGV4dD1tcCk6CiAgICAg
ICAgIHJlY29yZGluZy5zZXQoWyJzdGFydHVwIl0pCiAgICAgICAgIGVudi5kb19kZWxheWVkX2lt
cG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQogCi0gICAgICAgIHByb2R1Y3QgPSBwcm9kdWN0cy5s
b2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Nscz1UcnVlKQorICAgICAgICBwcm9k
dWN0ID0gcHJvZHVjdHMuUHJvZHVjdChjb25maWcsIHByb2R1Y3QpCiAKICAgICAgICAgZW52X2V4
dHJhcyA9IHByb2R1Y3QuZ2V0X2Vudl9leHRyYXMoKiprd2FyZ3MpCiAKQEAgLTE5NCw2ICsxOTks
NyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3Mp
OgogICAgICAgICBza2lwcGVkX3Rlc3RzID0gMAogICAgICAgICB0ZXN0X3RvdGFsID0gMAogICAg
ICAgICB1bmV4cGVjdGVkX3RvdGFsID0gMAorICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwg
PSAwCiAKICAgICAgICAgaWYgbGVuKHRlc3RfbG9hZGVyLnRlc3RfaWRzKSA9PSAwIGFuZCBrd2Fy
Z3NbInRlc3RfbGlzdCJdOgogICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJVbmFibGUgdG8g
ZmluZCBhbnkgdGVzdHMgYXQgdGhlIHBhdGgocyk6IikKQEAgLTIxOSw2ICsyMjUsNyBAQCBkZWYg
cnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAg
ICB3aXRoIGVudi5UZXN0RW52aXJvbm1lbnQodGVzdF9wYXRocywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX3Rlc3QiXSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5lbnZfb3B0aW9ucywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcsCkBAIC0yMjksNyArMjM2LDcgQEAg
ZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAg
ICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmVuc3VyZV9z
dGFydGVkKCkKICAgICAgICAgICAgIGV4Y2VwdCBlbnYuVGVzdEVudmlyb25tZW50RXJyb3IgYXMg
ZToKLSAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkVycm9yIHN0YXJ0aW5nIHRlc3Qg
ZW52aXJvbm1lbnQ6ICVzIiAlIGUubWVzc2FnZSkKKyAgICAgICAgICAgICAgICBsb2dnZXIuY3Jp
dGljYWwoIkVycm9yIHN0YXJ0aW5nIHRlc3QgZW52aXJvbm1lbnQ6ICVzIiAlIGUpCiAgICAgICAg
ICAgICAgICAgcmFpc2UKIAogICAgICAgICAgICAgcmVjb3JkaW5nLnNldChbInN0YXJ0dXAiXSkK
QEAgLTI0Nyw2ICsyNTQsNyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJv
ZHVjdCwgKiprd2FyZ3MpOgogCiAgICAgICAgICAgICAgICAgdGVzdF9jb3VudCA9IDAKICAgICAg
ICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50ID0gMAorICAgICAgICAgICAgICAgIHVuZXhwZWN0
ZWRfcGFzc19jb3VudCA9IDAKIAogICAgICAgICAgICAgICAgIHRlc3RzID0gW10KICAgICAgICAg
ICAgICAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfbG9hZGVyLnRlc3RfdHlwZXM6CkBAIC0yNjUs
MjUgKzI3MywxOSBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwg
Kiprd2FyZ3MpOgogICAgICAgICAgICAgICAgIGZvciB0ZXN0X3R5cGUgaW4ga3dhcmdzWyJ0ZXN0
X3R5cGVzIl06CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJSdW5uaW5nICVzIHRl
c3RzIiAlIHRlc3RfdHlwZSkKIAotICAgICAgICAgICAgICAgICAgICAjIFdlYkRyaXZlciB0ZXN0
cyBtYXkgY3JlYXRlIGFuZCBkZXN0cm95IG11bHRpcGxlIGJyb3dzZXIKLSAgICAgICAgICAgICAg
ICAgICAgIyBwcm9jZXNzZXMgYXMgcGFydCBvZiB0aGVpciBleHBlY3RlZCBiZWhhdmlvci4gVGhl
c2UKLSAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXJlIG1hbmFnZWQgYnkgYSBXZWJE
cml2ZXIgc2VydmVyIGJpbmFyeS4gVGhpcwotICAgICAgICAgICAgICAgICAgICAjIG9idmlhdGVz
IHRoZSBuZWVkIGZvciB3cHRydW5uZXIgdG8gcHJvdmlkZSBhIGJyb3dzZXIsIHNvCi0gICAgICAg
ICAgICAgICAgICAgICMgdGhlIE51bGxCcm93c2VyIGlzIHVzZWQgaW4gcGxhY2Ugb2YgdGhlICJ0
YXJnZXQiIGJyb3dzZXIKLSAgICAgICAgICAgICAgICAgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNw
ZWMiOgotICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jbHMgPSBOdWxsQnJvd3Nlcgot
ICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nl
cl9jbHMgPSBwcm9kdWN0LmJyb3dzZXJfY2xzCisgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJf
Y2xzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9jbHModGVzdF90eXBlKQogCi0gICAgICAgICAgICAg
ICAgICAgIGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9rd2FyZ3ModGVzdF90
eXBlLAorICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3YXJncyA9IHByb2R1Y3QuZ2V0X2Jy
b3dzZXJfa3dhcmdzKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV90ZXN0
X2dyb3Vwcz1sZW4odGVzdF9ncm91cHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgICAgICAg
ICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhlY3V0b3JfY2xhc3Nlcy5nZXQodGVz
dF90eXBlKQotICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBwcm9kdWN0Lmdl
dF9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5j
b25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIsCisgICAgICAg
ICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncyA9IHByb2R1Y3QuZ2V0X2V4ZWN1dG9yX2t3YXJn
cyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKIApAQCAtMzM0LDEwICsz
MzYsMTMgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dh
cmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9jb3VudCArPSBtYW5hZ2VyX2dyb3VwLnRlc3RfY291bnQoKQogICAgICAg
ICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9jb3VudCArPSBtYW5hZ2VyX2dyb3VwLnVuZXhw
ZWN0ZWRfY291bnQoKQorICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9wYXNzX2Nv
dW50ICs9IG1hbmFnZXJfZ3JvdXAudW5leHBlY3RlZF9wYXNzX2NvdW50KCkKICAgICAgICAgICAg
ICAgICByZWNvcmRpbmcuc2V0KFsiYWZ0ZXItZW5kIl0pCiAgICAgICAgICAgICAgICAgdGVzdF90
b3RhbCArPSB0ZXN0X2NvdW50CiAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF90b3RhbCArPSB1
bmV4cGVjdGVkX2NvdW50Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkdvdCAlaSB1bmV4
cGVjdGVkIHJlc3VsdHMiICUgdW5leHBlY3RlZF9jb3VudCkKKyAgICAgICAgICAgICAgICB1bmV4
cGVjdGVkX3Bhc3NfdG90YWwgKz0gdW5leHBlY3RlZF9wYXNzX2NvdW50CisgICAgICAgICAgICAg
ICAgbG9nZ2VyLmluZm8oIkdvdCAlaSB1bmV4cGVjdGVkIHJlc3VsdHMsIHdpdGggJWkgdW5leHBl
Y3RlZCBwYXNzZXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5leHBlY3RlZF9j
b3VudCwgdW5leHBlY3RlZF9wYXNzX2NvdW50KSkKICAgICAgICAgICAgICAgICBsb2dnZXIuc3Vp
dGVfZW5kKCkKICAgICAgICAgICAgICAgICBpZiByZXBlYXRfdW50aWxfdW5leHBlY3RlZCBhbmQg
dW5leHBlY3RlZF90b3RhbCA+IDA6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCkBAIC0zNTks
NiArMzY0LDEzIEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAq
Kmt3YXJncyk6CiAgICAgICAgIGxvZ2dlci5pbmZvKCJUb2xlcmF0aW5nICVzIHVuZXhwZWN0ZWQg
cmVzdWx0cyIgJSB1bmV4cGVjdGVkX3RvdGFsKQogICAgICAgICByZXR1cm4gVHJ1ZQogCisgICAg
YWxsX3VuZXhwZWN0ZWRfcGFzc2VkID0gKHVuZXhwZWN0ZWRfdG90YWwgYW5kCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPT0gdW5leHBlY3RlZF9wYXNzX3Rv
dGFsKQorICAgIGlmIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCBhbmQgbm90IGt3YXJnc1siZmFpbF9v
bl91bmV4cGVjdGVkX3Bhc3MiXToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlRvbGVyYXRpbmcgJWkg
dW5leHBlY3RlZCByZXN1bHRzIGJlY2F1c2UgdGhleSBhbGwgUEFTUyIgJQorICAgICAgICAgICAg
ICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwpCisgICAgICAgIHJldHVybiBUcnVlCisKICAg
ICByZXR1cm4gdW5leHBlY3RlZF90b3RhbCA9PSAwCiAKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVzdC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dHRlc3QucHkKaW5kZXggMzFiMjQ1NjEyYmUwLi4wY2Q3MmUyODViMDAgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRl
c3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0dGVzdC5weQpAQCAtMSw5ICsxLDkgQEAKIGltcG9ydCBvcwogaW1wb3J0IHN1
YnByb2Nlc3MKIGltcG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQg
dXJsam9pbgogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKLWZyb20gc2l4IGlt
cG9ydCBpdGVyaXRlbXMsIHN0cmluZ190eXBlcworZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xh
c3NWYXIsIERpY3QsIFR5cGUKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCiAKIGZy
b20gLndwdG1hbmlmZXN0LnBhcnNlciBpbXBvcnQgYXRvbXMKIApAQCAtODMsNyArODMsNyBAQCBk
ZWYgZ2V0X3J1bl9pbmZvKG1ldGFkYXRhX3Jvb3QsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICBy
ZXR1cm4gUnVuSW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0LCAqKmt3YXJncykKIAogCi1jbGFz
cyBSdW5JbmZvKGRpY3QpOgorY2xhc3MgUnVuSW5mbyhEaWN0W3N0ciwgQW55XSk6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG1ldGFkYXRhX3Jvb3QsIHByb2R1Y3QsIGRlYnVnLAogICAgICAgICAg
ICAgICAgICBicm93c2VyX3ZlcnNpb249Tm9uZSwKICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9j
aGFubmVsPU5vbmUsCkBAIC0xNTAsMjIgKzE1MCwyOCBAQCBkZWYgc2VydmVyX3Byb3RvY29sKG1h
bmlmZXN0X2l0ZW0pOgogCiBjbGFzcyBUZXN0KG9iamVjdCk6CiAKLSAgICByZXN1bHRfY2xzID0g
Tm9uZQotICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUKLSAgICB0ZXN0X3R5cGUgPSBOb25l
CisgICAgcmVzdWx0X2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbVHlwZVtSZXN1bHRdXQor
ICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbVHlwZVtTdWJ0
ZXN0UmVzdWx0XV0KKyAgICB0ZXN0X3R5cGUgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW3N0cl0K
IAogICAgIGRlZmF1bHRfdGltZW91dCA9IDEwICAjIHNlY29uZHMKICAgICBsb25nX3RpbWVvdXQg
PSA2MCAgIyBzZWNvbmRzCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJs
LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLAotICAgICAgICAgICAgICAgICB0aW1l
b3V0PU5vbmUsIHBhdGg9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLCBxdWljPUZhbHNlKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRh
ZGF0YSwgdGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRo
PU5vbmUsIHByb3RvY29sPSJodHRwIiwgc3ViZG9tYWluPUZhbHNlLAorICAgICAgICAgICAgICAg
ICBxdWljPUZhbHNlKToKKyAgICAgICAgc2VsZi51cmxfYmFzZSA9IHVybF9iYXNlCiAgICAgICAg
IHNlbGYudGVzdHNfcm9vdCA9IHRlc3RzX3Jvb3QKICAgICAgICAgc2VsZi51cmwgPSB1cmwKICAg
ICAgICAgc2VsZi5faW5oZXJpdF9tZXRhZGF0YSA9IGluaGVyaXRfbWV0YWRhdGEKICAgICAgICAg
c2VsZi5fdGVzdF9tZXRhZGF0YSA9IHRlc3RfbWV0YWRhdGEKICAgICAgICAgc2VsZi50aW1lb3V0
ID0gdGltZW91dCBpZiB0aW1lb3V0IGlzIG5vdCBOb25lIGVsc2Ugc2VsZi5kZWZhdWx0X3RpbWVv
dXQKICAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotICAgICAgICBzZWxmLmVudmlyb25tZW50ID0g
eyJwcm90b2NvbCI6IHByb3RvY29sLCAicHJlZnMiOiBzZWxmLnByZWZzLCAicXVpYyI6IHF1aWN9
CisgICAgICAgIHNlbGYuc3ViZG9tYWluID0gc3ViZG9tYWluCisgICAgICAgIHNlbGYuZW52aXJv
bm1lbnQgPSB7InVybF9iYXNlIjogdXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInByb3RvY29sIjogcHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBy
ZWZzIjogc2VsZi5wcmVmcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicXVpYyI6IHF1
aWN9CiAKICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKICAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2Uob3RoZXIsIFRlc3QpOgpAQCAtMTg0LDEzICsxOTAsMTUgQEAgY2xhc3MgVGVzdChvYmpl
Y3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmcm9tX21hbmlmZXN0KGNscywgbWFuaWZl
c3RfZmlsZSwgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6
CiAgICAgICAgIHRpbWVvdXQgPSBjbHMubG9uZ190aW1lb3V0IGlmIG1hbmlmZXN0X2l0ZW0udGlt
ZW91dCA9PSAibG9uZyIgZWxzZSBjbHMuZGVmYXVsdF90aW1lb3V0Ci0gICAgICAgIHJldHVybiBj
bHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAorICAgICAgICByZXR1cm4gY2xzKG1hbmlmZXN0
X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZS50ZXN0c19y
b290LAogICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0udXJsLAogICAgICAgICAgICAg
ICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0
YSwKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCiAgICAgICAgICAgICAgICAg
ICAgcGF0aD1vcy5wYXRoLmpvaW4obWFuaWZlc3RfZmlsZS50ZXN0c19yb290LCBtYW5pZmVzdF9p
dGVtLnBhdGgpLAotICAgICAgICAgICAgICAgICAgIHByb3RvY29sPXNlcnZlcl9wcm90b2NvbCht
YW5pZmVzdF9pdGVtKSkKKyAgICAgICAgICAgICAgICAgICBwcm90b2NvbD1zZXJ2ZXJfcHJvdG9j
b2wobWFuaWZlc3RfaXRlbSksCisgICAgICAgICAgICAgICAgICAgc3ViZG9tYWluPW1hbmlmZXN0
X2l0ZW0uc3ViZG9tYWluKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlkKHNlbGYpOgpAQCAt
Mjk5LDcgKzMwNyw3IEBAIGNsYXNzIFRlc3Qob2JqZWN0KToKICAgICAgICAgcnYgPSB7fQogICAg
ICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKE5vbmUpOgogICAgICAgICAgICAgdGhyZXNo
b2xkID0gbWV0YS5sZWFrX3RocmVzaG9sZAotICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4g
aXRlcml0ZW1zKHRocmVzaG9sZCk6CisgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiB0aHJl
c2hvbGQuaXRlbXMoKToKICAgICAgICAgICAgICAgICBpZiBrZXkgbm90IGluIHJ2OgogICAgICAg
ICAgICAgICAgICAgICBydltrZXldID0gdmFsdWUKICAgICAgICAgcmV0dXJuIHJ2CkBAIC0zNDEs
NyArMzQ5LDcgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogCiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIGV4cGVjdGVkID0gbWV0YWRhdGEuZ2V0KCJleHBlY3RlZCIpCi0gICAgICAgICAgICBpZiBp
c2luc3RhbmNlKGV4cGVjdGVkLCBzdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShleHBlY3RlZCwgc3RyKToKICAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQKICAg
ICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgbGlzdCk6CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGV4cGVjdGVkWzBdCkBAIC0zOTMsMTEgKzQwMSwxMSBAQCBjbGFzcyBUZXN0aGFy
bmVzc1Rlc3QoVGVzdCk6CiAgICAgc3VidGVzdF9yZXN1bHRfY2xzID0gVGVzdGhhcm5lc3NTdWJ0
ZXN0UmVzdWx0CiAgICAgdGVzdF90eXBlID0gInRlc3RoYXJuZXNzIgogCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0
YSwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5o
ZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgdGltZW91dD1O
b25lLCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgdGVzdGRyaXZlcj1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAganNzaGVsbD1GYWxzZSwgc2NyaXB0cz1Ob25lLCBxdWljPUZhbHNlKToKLSAg
ICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRh
dGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgcGF0aCwg
cHJvdG9jb2wsIHF1aWMpCisgICAgICAgICAgICAgICAgIGpzc2hlbGw9RmFsc2UsIHNjcmlwdHM9
Tm9uZSwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAgICAgICAgVGVzdC5fX2luaXRf
XyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0
X21ldGFkYXRhLCB0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIHByb3RvY29s
LCBzdWJkb21haW4sIHF1aWMpCiAKICAgICAgICAgc2VsZi50ZXN0ZHJpdmVyID0gdGVzdGRyaXZl
cgogICAgICAgICBzZWxmLmpzc2hlbGwgPSBqc3NoZWxsCkBAIC00MTIsNyArNDIwLDggQEAgY2xh
c3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICBzY3JpcHRfbWV0YWRhdGEgPSBtYW5p
ZmVzdF9pdGVtLnNjcmlwdF9tZXRhZGF0YSBvciBbXQogICAgICAgICBzY3JpcHRzID0gW3YgZm9y
IChrLCB2KSBpbiBzY3JpcHRfbWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICBpZiBrID09ICJz
Y3JpcHQiXQotICAgICAgICByZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAg
ICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9maWxlLnVybF9iYXNlLAorICAgICAgICAgICAgICAg
ICAgIG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAgICBtYW5pZmVz
dF9pdGVtLnVybCwKICAgICAgICAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLAogICAgICAg
ICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCkBAIC00MjIsNiArNDMxLDcgQEAgY2xhc3MgVGVz
dGhhcm5lc3NUZXN0KFRlc3QpOgogICAgICAgICAgICAgICAgICAgIHRlc3Rkcml2ZXI9dGVzdGRy
aXZlciwKICAgICAgICAgICAgICAgICAgICBqc3NoZWxsPWpzc2hlbGwsCiAgICAgICAgICAgICAg
ICAgICAgc2NyaXB0cz1zY3JpcHRzLAorICAgICAgICAgICAgICAgICAgIHN1YmRvbWFpbj1tYW5p
ZmVzdF9pdGVtLnN1YmRvbWFpbiwKICAgICAgICAgICAgICAgICAgICBxdWljPXF1aWMpCiAKICAg
ICBAcHJvcGVydHkKQEAgLTQ1MiwxMSArNDYyLDExIEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3Qp
OgogICAgIHJlc3VsdF9jbHMgPSBSZWZ0ZXN0UmVzdWx0CiAgICAgdGVzdF90eXBlID0gInJlZnRl
c3QiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21l
dGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2VzLAotICAgICAgICAgICAgICAgICB0aW1l
b3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwgZnV6enk9
Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLAotICAgICAgICAgICAgICAgICBxdWljPUZhbHNlKToKLSAg
ICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRh
dGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgcGF0aCwg
cHJvdG9jb2wsIHF1aWMpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19y
b290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMsCisg
ICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCB2aWV3cG9ydF9zaXplPU5v
bmUsIGRwaT1Ob25lLCBmdXp6eT1Ob25lLAorICAgICAgICAgICAgICAgICBwcm90b2NvbD0iaHR0
cCIsIHN1YmRvbWFpbj1GYWxzZSwgcXVpYz1GYWxzZSk6CisgICAgICAgIFRlc3QuX19pbml0X18o
c2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9t
ZXRhZGF0YSwgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBwcm90b2NvbCwg
c3ViZG9tYWluLCBxdWljKQogCiAgICAgICAgIGZvciBfLCByZWZfdHlwZSBpbiByZWZlcmVuY2Vz
OgogICAgICAgICAgICAgaWYgcmVmX3R5cGUgbm90IGluICgiPT0iLCAiIT0iKToKQEAgLTQ4Niwx
MyArNDk2LDE1IEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogCiAgICAgICAgIHVybCA9IG1h
bmlmZXN0X3Rlc3QudXJsCiAKLSAgICAgICAgbm9kZSA9IGNscyhtYW5pZmVzdF9maWxlLnRlc3Rz
X3Jvb3QsCisgICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3RfZmlsZS51cmxfYmFzZSwKKyAgICAg
ICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAg
ICAgbWFuaWZlc3RfdGVzdC51cmwsCiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0
YSwKICAgICAgICAgICAgICAgICAgICB0ZXN0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAg
IFtdLAogICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9dGltZW91dCwKICAgICAgICAgICAgICAg
ICAgICBwYXRoPW1hbmlmZXN0X3Rlc3QucGF0aCwKKyAgICAgICAgICAgICAgICAgICBzdWJkb21h
aW49bWFuaWZlc3RfdGVzdC5zdWJkb21haW4sCiAgICAgICAgICAgICAgICAgICAgcXVpYz1xdWlj
LAogICAgICAgICAgICAgICAgICAgICoqY2xzLmNsc19rd2FyZ3MobWFuaWZlc3RfdGVzdCkpCiAK
QEAgLTUwNywyMCArNTE5LDIzIEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogICAgICAgICAj
IFBlciB0aGUgbG9naWMgZG9jdW1lbnRlZCBhYm92ZSwgdGhpcyBtZWFucyB0aGF0IG5vbmUgb2Yg
dGhlIG1pc21hdGNoZXMgcHJvdmlkZWQgbWF0Y2gsCiAgICAgICAgIG1pc21hdGNoX3dhbGsgPSBO
b25lCiAgICAgICAgIGlmIHJlZnNfYnlfdHlwZVsiIT0iXToKLSAgICAgICAgICAgIG1pc21hdGNo
X3dhbGsgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgICAg
ICBtaXNtYXRjaF93YWxrID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS51cmxfYmFzZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3Rz
X3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmc19ieV90
eXBlWyIhPSJdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtd
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10pCiAgICAgICAgICAgICBjbXBfcmVm
ID0gbWlzbWF0Y2hfd2FsawogICAgICAgICAgICAgZm9yIHJlZl91cmwgaW4gcmVmc19ieV90eXBl
WyIhPSJdWzE6XToKLSAgICAgICAgICAgICAgICBjbXBfc2VsZiA9IFJlZnRlc3RUZXN0KG1hbmlm
ZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICBjbXBfc2VsZiA9IFJlZnRlc3RU
ZXN0KG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSkKICAgICAgICAgICAg
ICAgICBjbXBfcmVmLnJlZmVyZW5jZXMuYXBwZW5kKChjbXBfc2VsZiwgIiE9IikpCi0gICAgICAg
ICAgICAgICAgY21wX3JlZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwK
KyAgICAgICAgICAgICAgICBjbXBfcmVmID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS51cmxf
YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmls
ZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZf
dXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKQEAgLTUzNiw3ICs1NTEsOCBAQCBj
bGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKICAgICAgICAgICAgICMgRm9yIGVhY2ggPT0gcmVmLCBh
ZGQgYSByZWZlcmVuY2UgdG8gdGhpcyBub2RlIHdob3NlIHRhaWwgaXMgdGhlIG1pc21hdGNoIGxp
c3QuCiAgICAgICAgICAgICAjIFBlciB0aGUgbG9naWMgZG9jdW1lbnRlZCBhYm92ZSwgdGhpcyBt
ZWFucyBhbnkgb25lIG9mIHRoZSBtYXRjaGVzIG11c3QgcGFzcyBwbHVzIGFsbCB0aGUgbWlzbWF0
Y2hlcy4KICAgICAgICAgICAgIGZvciByZWZfdXJsIGluIHJlZnNfYnlfdHlwZVsiPT0iXToKLSAg
ICAgICAgICAgICAgICByZWYgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3Qs
CisgICAgICAgICAgICAgICAgcmVmID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS51cmxfYmFz
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3Rz
X3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmX3VybCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOb25lLApAQCAtNjA1LDEyICs2MjEsMTIgQEAgY2xhc3MgUmVmdGVzdFRlc3Qo
VGVzdCk6CiBjbGFzcyBQcmludFJlZnRlc3RUZXN0KFJlZnRlc3RUZXN0KToKICAgICB0ZXN0X3R5
cGUgPSAicHJpbnQtcmVmdGVzdCIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0c19yb290
LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMsCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0
YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHJlZmVyZW5jZXMsCiAgICAgICAgICAgICAgICAgIHRpbWVv
dXQ9Tm9uZSwgcGF0aD1Ob25lLCB2aWV3cG9ydF9zaXplPU5vbmUsIGRwaT1Ob25lLCBmdXp6eT1O
b25lLAotICAgICAgICAgICAgICAgICBwYWdlX3Jhbmdlcz1Ob25lLCBwcm90b2NvbD0iaHR0cCIs
IHF1aWM9RmFsc2UpOgotICAgICAgICBzdXBlcihQcmludFJlZnRlc3RUZXN0LCBzZWxmKS5fX2lu
aXRfXyh0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsCisg
ICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2VzPU5vbmUsIHByb3RvY29sPSJodHRwIiwgc3ViZG9t
YWluPUZhbHNlLCBxdWljPUZhbHNlKToKKyAgICAgICAgc3VwZXIoUHJpbnRSZWZ0ZXN0VGVzdCwg
c2VsZikuX19pbml0X18odXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVmZXJlbmNlcywgdGltZW91dCwgcGF0aCwgdmlld3BvcnRfc2l6ZSwgZHBpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdXp6eSwgcHJv
dG9jb2wsIHF1aWM9cXVpYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnV6enksIHByb3RvY29sLCBzdWJkb21haW49c3ViZG9tYWluLCBxdWljPXF1aWMp
CiAgICAgICAgIHNlbGYuX3BhZ2VfcmFuZ2VzID0gcGFnZV9yYW5nZXMKIAogICAgIEBjbGFzc21l
dGhvZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5CmluZGV4IDcxMWFkNWFmNzlm
Mi4uYjgzNDc3ZTVjYTcyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2FjY2VwdF9hbGVydC9hY2NlcHQucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5CkBA
IC0xLDcgKzEsOSBAQAoraW1wb3J0IHB5dGVzdAorCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBv
cnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxp
bmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IHdhaXRf
Zm9yX25ld19oYW5kbGUKIGZyb20gdGVzdHMuc3VwcG9ydC5zeW5jIGltcG9ydCBQb2xsCiAKIApA
QCAtMTAsNyArMTIsNyBAQCBkZWYgYWNjZXB0X2FsZXJ0KHNlc3Npb24pOgogICAgICAgICAiUE9T
VCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9hbGVydC9hY2NlcHQiLmZvcm1hdCgqKnZhcnMoc2Vz
c2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgdXJsKToK
K2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+
IikKIAogICAgIHJlc3BvbnNlID0gYWNjZXB0X2FsZXJ0KHNlc3Npb24pCkBAIC0zMywyNyArMzUs
NDEgQEAgZGVmIHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCiAKIAotZGVmIHRlc3RfYWNjZXB0X2FsZXJ0KHNl
c3Npb24pOgorZGVmIHRlc3RfYWNjZXB0X2FsZXJ0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwvc2NyaXB0
PiIpCisKICAgICByZXNwb25zZSA9IGFjY2VwdF9hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQogCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhj
ZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKIAotZGVmIHRlc3RfYWNjZXB0
X2NvbmZpcm0oc2Vzc2lvbik6CitkZWYgdGVzdF9hY2NlcHRfY29uZmlybShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3
aW5kb3cuY29uZmlybSgnSGVsbG8nKTs8L3NjcmlwdD4iKQorCiAgICAgcmVzcG9uc2UgPSBhY2Nl
cHRfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNlc3Npb24u
YWxlcnQudGV4dAorCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3
aW5kb3cucmVzdWx0IikgaXMgVHJ1ZQogCiAKLWRlZiB0ZXN0X2FjY2VwdF9wcm9tcHQoc2Vzc2lv
bik6CitkZWYgdGVzdF9hY2NlcHRfcHJvbXB0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgd2luZG93LnJl
c3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTsKICAg
ICAgICAgPC9zY3JpcHQ+CiAgICAgICAgICIiIikKKwogICAgIHJlc3BvbnNlID0gYWNjZXB0X2Fs
ZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0
LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93
LnJlc3VsdCIpID09ICJGZWRlcmVyIgogCiAKQEAgLTY4LDMgKzg0LDI3IEBAIGRlZiB0ZXN0X3Vu
ZXhwZWN0ZWRfYWxlcnQoc2Vzc2lvbik6CiAKICAgICByZXNwb25zZSA9IGFjY2VwdF9hbGVydChz
ZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0
CisKKworZGVmIHRlc3RfYWNjZXB0X2luX3BvcHVwX3dpbmRvdyhzZXNzaW9uLCBpbmxpbmUpOgor
ICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcworCisgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiCisgICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93Lm9wZW4oJ2Fib3V0OmJs
YW5rJywgJ19ibGFuaycsICd3aWR0aD01MDA7IGhlaWdodD0yMDA7cmVzaXphYmxlPXllcycpOyI+
b3BlbjwvYnV0dG9uPgorICAgICAgICAiIiIpCisgICAgYnV0dG9uID0gc2Vzc2lvbi5maW5kLmNz
cygiYnV0dG9uIiwgYWxsPUZhbHNlKQorICAgIGJ1dHRvbi5jbGljaygpCisKKyAgICBzZXNzaW9u
LndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNlc3Npb24sIG9yaWdfaGFuZGxl
cykKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKKyAgICAgICAgPHNjcmlwdD53aW5kb3cu
YWxlcnQoIkhlbGxvIik8L3NjcmlwdD4KKyAgICAgICAgIiIiKQorCisgICAgcmVzcG9uc2UgPSBh
Y2NlcHRfYWxlcnQoc2Vzc2lvbikKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNlc3Np
b24uYWxlcnQudGV4dApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkKaW5kZXggZjA1MTUzNzkwMjYx
Li4zYTE5NDMyZmM2YTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hZGRfY29va2llL2FkZC5weQpAQCAtMSwxMyArMSwx
MyBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGlt
ZWRlbHRhCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCiAKIGZyb20gd2ViZHJpdmVyLnRyYW5z
cG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJz
IGltcG9ydCBjbGVhcl9hbGxfY29va2llcwogCisKIGRlZiBhZGRfY29va2llKHNlc3Npb24sIGNv
b2tpZSk6CiAgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCiAgICAgICAgICJQT1NU
IiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2Nvb2tpZSIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSks
CkBAIC01NCw2ICs1NCw0MyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24s
IGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5k
b3ciKQogCiAKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAicGFnZSIsCisgICAgWwor
ICAgICAgICAiYWJvdXQ6YmxhbmsiLAorICAgICAgICAiYmxvYjpmb28vYmFyIiwKKyAgICAgICAg
ImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgsPHA+Zm9vPC9wPiIsCisgICAgICAgICJmaWxl
Oi8vL2Zvby9iYXIiLAorICAgICAgICAiZnRwOi8vZXhhbXBsZS5vcmciLAorICAgICAgICAiamF2
YXNjcmlwdDpmb28iLAorICAgICAgICAid3M6Ly9leGFtcGxlLm9yZyIsCisgICAgICAgICJ3c3M6
Ly9leGFtcGxlLm9yZyIsCisgICAgXSwKKyAgICBpZHM9WworICAgICAgICAiYWJvdXQiLAorICAg
ICAgICAiYmxvYiIsCisgICAgICAgICJkYXRhIiwKKyAgICAgICAgImZpbGUiLAorICAgICAgICAi
ZnRwIiwKKyAgICAgICAgImphdmFzY3JpcHQiLAorICAgICAgICAid2Vic29ja2V0IiwKKyAgICAg
ICAgInNlY3VyZSB3ZWJzb2NrZXQiLAorICAgIF0sCispCitkZWYgdGVzdF9jb29raWVfdW5zdXBw
b3J0ZWRfc2NoZW1lKHNlc3Npb24sIHBhZ2UpOgorICAgIG5ld19jb29raWUgPSB7CisgICAgICAg
ICJuYW1lIjogImhlbGxvIiwKKyAgICAgICAgInZhbHVlIjogIndvcmxkIiwKKyAgICAgICAgImRv
bWFpbiI6IHBhZ2UsCisgICAgICAgICJwYXRoIjogIi8iLAorICAgICAgICAiaHR0cE9ubHkiOiBG
YWxzZSwKKyAgICAgICAgInNlY3VyZSI6IEZhbHNlCisgICAgfQorCisgICAgcmVzdWx0ID0gYWRk
X2Nvb2tpZShzZXNzaW9uLCBuZXdfY29va2llKQorICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJp
bnZhbGlkIGNvb2tpZSBkb21haW4iKQorCisKIGRlZiB0ZXN0X2FkZF9kb21haW5fY29va2llKHNl
c3Npb24sIHVybCwgc2VydmVyX2NvbmZpZyk6CiAgICAgbmV3X2Nvb2tpZSA9IHsKICAgICAgICAg
Im5hbWUiOiAiaGVsbG8iLApAQCAtNzIsMTEgKzEwOSwxMSBAQCBkZWYgdGVzdF9hZGRfZG9tYWlu
X2Nvb2tpZShzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcpOgogCiAgICAgY29va2llID0gc2Vz
c2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0ICJkb21haW4iIGluIGNvb2tpZQotICAg
IGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0sIHRleHRfdHlwZSkKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCBzdHIpCiAgICAgYXNzZXJ0ICJuYW1lIiBp
biBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4dF90eXBl
KQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAgYXNzZXJ0
ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJd
LCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCBzdHIp
CiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImhlbGxvIgogICAgIGFzc2VydCBjb29r
aWVbInZhbHVlIl0gPT0gIndvcmxkIgpAQCAtMTAyLDExICsxMzksMTEgQEAgZGVmIHRlc3RfYWRk
X2Nvb2tpZV9mb3JfaXAoc2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnLCBjb25maWd1cmF0aW9u
KToKIAogICAgIGNvb2tpZSA9IHNlc3Npb24uY29va2llcygiaGVsbG8iKQogICAgIGFzc2VydCAi
bmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRl
eHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAg
IGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsi
dmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUi
XSwgc3RyKQogICAgIGFzc2VydCAiZG9tYWluIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb29raWVbImRvbWFpbiJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJkb21haW4iXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFtZSJdID09ICJo
ZWxsbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09ICJ3b3JsZCIKQEAgLTEzMSw5ICsx
NjgsOSBAQCBkZWYgdGVzdF9hZGRfbm9uX3Nlc3Npb25fY29va2llKHNlc3Npb24sIHVybCk6CiAK
ICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUi
IGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5
cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3Nl
cnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVl
Il0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0
cikKICAgICBhc3NlcnQgImV4cGlyeSIgaW4gY29va2llCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJleHBpcnkiXSwgaW50KQogCkBAIC0xNTYsOSArMTkzLDkgQEAgZGVmIHRlc3RfYWRk
X3Nlc3Npb25fY29va2llKHNlc3Npb24sIHVybCk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNv
b2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAgICBpZiAiZXhwaXJ5IiBpbiBj
b29raWU6CiAgICAgICAgIGFzc2VydCBjb29raWUuZ2V0KCJleHBpcnkiKSBpcyBOb25lCiAKQEAg
LTE4MSwxMSArMjE4LDExIEBAIGRlZiB0ZXN0X2FkZF9zZXNzaW9uX2Nvb2tpZV93aXRoX2xlYWRp
bmdfZG90X2NoYXJhY3Rlcl9pbl9kb21haW4oc2Vzc2lvbiwgdXJsLCBzCiAKICAgICBjb29raWUg
PSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQot
ICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBp
biBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlw
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAgICBhc3Nl
cnQgImRvbWFpbiIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21h
aW4iXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0s
IHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0
IGNvb2tpZVsidmFsdWUiXSA9PSAid29ybGQiCkBAIC0yMDksMTEgKzI0NiwxMSBAQCBkZWYgdGVz
dF9hZGRfY29va2llX3dpdGhfdmFsaWRfc2FtZXNpdGVfZmxhZyhzZXNzaW9uLCB1cmwsIHNhbWVf
c2l0ZSk6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBhc3Nl
cnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJd
LCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikK
ICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZh
bHVlIl0sIHN0cikKICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBjb29raWUKLSAgICBhc3NlcnQg
aXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5h
bWUiXSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAid29ybGQiCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Jh
Y2svYmFjay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
YmFjay9iYWNrLnB5CmluZGV4IDljYTUyZThmMjIzZS4uODZhZDIyNzhhYjM5IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JhY2svYmFjay5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JhY2sv
YmFjay5weQpAQCAtMSw0ICsxLDYgQEAKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQoraW1wb3J0IHB5dGVzdAorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCisKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNj
ZXNzCiAKIApAQCAtNyw3ICs5LDcgQEAgZGVmIGJhY2soc2Vzc2lvbik6CiAgICAgICAgICJQT1NU
IiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2JhY2siLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQog
CiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxs
X3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxkaXY+IikKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+IikKIApAQCAtMzEsNyAr
MzMsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19oaXN0b3J5KHNlc3Npb24pOgogICAgIGFzc2Vy
dF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHRlc3RfcGFnZXMgPSBbCiAg
ICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5saW5lKCI8cCBpZD0yPiIpLApA
QCAtNDYsNyArNDgsNyBAQCBkZWYgdGVzdF9kYXRhX3VybHMoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
IHNlc3Npb24udXJsID09IHRlc3RfcGFnZXNbMF0KIAogCi1kZWYgdGVzdF9kaXNtaXNzZWRfYmVm
b3JldW5sb2FkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHVybF9iZWZvcmV1bmxvYWQgPSBpbmxpbmUoIiIiCiAgICAgICA8
aW5wdXQgdHlwZT0idGV4dCI+CiAgICAgICA8c2NyaXB0PgpAQCAtODgsNyArOTAsNyBAQCBkZWYg
dGVzdF9mcmFnbWVudHMoc2Vzc2lvbiwgdXJsKToKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0g
dGVzdF9wYWdlc1swXQogCiAKLWRlZiB0ZXN0X2hpc3RvcnlfcHVzaHN0YXRlKHNlc3Npb24sIHVy
bCk6CitkZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHB1
c2hzdGF0ZV9wYWdlID0gaW5saW5lKCIiIgogICAgICAgPHNjcmlwdD4KICAgICAgICAgZnVuY3Rp
b24gcHVzaFN0YXRlKCkgewpAQCAtMTA5LDMgKzExMSw0MiBAQCBkZWYgdGVzdF9oaXN0b3J5X3B1
c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgogCiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHB1c2hz
dGF0ZV9wYWdlCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBoaXN0
b3J5LnN0YXRlOyIpIGlzIE5vbmUKKworCitkZWYgdGVzdF9yZW1vdmVkX2lmcmFtZShzZXNzaW9u
LCB1cmwsIGlubGluZSk6CisgICAgcGFnZSA9IGlubGluZSgiPHA+Zm9vIikKKworICAgIHNlc3Np
b24udXJsID0gcGFnZQorICAgIHNlc3Npb24udXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1
cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sIikKKworICAgIHN1YmZyYW1lID0gc2Vz
c2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRj
aF9mcmFtZShzdWJmcmFtZSkKKworICAgIHJlc3BvbnNlID0gYmFjayhzZXNzaW9uKQorICAgIGFz
c2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHBhZ2UK
KworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUg
aXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2Vj
dXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbihzZXNzaW9uLCB1cmwpOgor
ICAgIGJhc2VfcGF0aCA9ICgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvc3ViZnJhbWUu
aHRtbCIgKworICAgICAgICAgICAgICAgICAiP3BpcGU9aGVhZGVyKENyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5LHNhbWUtb3JpZ2luIikKKyAgICBmaXJzdF9wYWdlID0gdXJsKGJhc2VfcGF0aCwg
cHJvdG9jb2w9Imh0dHBzIikKKyAgICBzZWNvbmRfcGFnZSA9IHVybChiYXNlX3BhdGgsIHByb3Rv
Y29sPSJodHRwcyIsIGRvbWFpbj0iYWx0IikKKworICAgIHNlc3Npb24udXJsID0gZmlyc3RfcGFn
ZQorICAgIHNlc3Npb24udXJsID0gc2Vjb25kX3BhZ2UKKworICAgIGVsZW0gPSBzZXNzaW9uLmZp
bmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBiYWNrKHNlc3Np
b24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51
cmwgPT0gZmlyc3RfcGFnZQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKGVycm9yLlN0YWxlRWxl
bWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgICAgIGVsZW0uY2xpY2soKQorICAgIGVsZW0g
PSBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iYWNrL3VzZXJfcHJvbXB0
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmFjay91
c2VyX3Byb21wdHMucHkKaW5kZXggNzEyMWY3YzZiMmE2Li45ZDA0ZjBmNGFiMTIgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmFjay91c2Vy
X3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9iYWNrL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxl
ZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGJhY2soc2Vzc2lvbik6CkBAIC0xMiw3ICsxMSw3IEBA
IGRlZiBiYWNrKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIHBhZ2VzKHNlc3Np
b24pOgorZGVmIHBhZ2VzKHNlc3Npb24sIGlubGluZSk6CiAgICAgcGFnZXMgPSBbCiAgICAgICAg
IGlubGluZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5saW5lKCI8cCBpZD0yPiIpLApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25l
d19zZXNzaW9uL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2JpZGkvbmV3X3Nlc3Npb24vY29u
bmVjdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmlk
aS9uZXdfc2Vzc2lvbi9jb25uZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uMzU3ZGEzMWJhODYyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL2Nvbm5lY3QucHkK
QEAgLTAsMCArMSwzNCBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IGFzeW5jaW8KK2ltcG9ydCB3
ZWJzb2NrZXRzCitpbXBvcnQgd2ViZHJpdmVyCisKKyMgY2xhc3NpYyBzZXNzaW9uIHRvIGVuYWJs
ZSBiaWRpIGNhcGFiaWxpdHkgbWFudWFsbHkKKyMgSW50ZW5kZWQgdG8gYmUgdGhlIGZpcnN0IHRl
c3QgaW4gdGhpcyBmaWxlCitAcHl0ZXN0Lm1hcmsuYXN5bmNpbworQHB5dGVzdC5tYXJrLmNhcGFi
aWxpdGllcyh7IndlYlNvY2tldFVybCI6IFRydWV9KQorYXN5bmMgZGVmIHRlc3Rfd2Vic29ja2V0
X3VybF9jb25uZWN0KHNlc3Npb24pOgorICAgIHdlYnNvY2tldF91cmwgPSBzZXNzaW9uLmNhcGFi
aWxpdGllc1sid2ViU29ja2V0VXJsIl0KKyAgICBhc3luYyB3aXRoIHdlYnNvY2tldHMuY29ubmVj
dCh3ZWJzb2NrZXRfdXJsKSBhcyB3ZWJzb2NrZXQ6CisgICAgICAgIGF3YWl0IHdlYnNvY2tldC5z
ZW5kKCJIZWxsbyB3b3JsZCEiKQorCisjIHRlc3QgYmlkaV9zZXNzaW9uIHNlbmQKKyMgdXNpbmcg
YmlkaV9zZXNzaW9uIGlzIHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gdGVzdCBiaWRpCitAcHl0ZXN0
Lm1hcmsuYXN5bmNpbworYXN5bmMgZGVmIHRlc3RfYmlkaV9zZXNzaW9uX3NlbmQoYmlkaV9zZXNz
aW9uKToKKyAgICBhd2FpdCBiaWRpX3Nlc3Npb24uc2VuZF9jb21tYW5kKCJ0ZXN0LnRlc3QiLCB7
fSkKKworIyBiaWRpIHNlc3Npb24gZm9sbG93aW5nIGEgYmlkaSBzZXNzaW9uIHdpdGggYSBkaWZm
ZXJlbnQgY2FwYWJpbGl0aWVzCisjIHRvIHRlc3Qgc2Vzc2lvbiByZWNyZWF0aW9uCitAcHl0ZXN0
Lm1hcmsuYXN5bmNpbworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJl
Q2VydHMiOiBUcnVlfSkKK2FzeW5jIGRlZiB0ZXN0X2JpZGlfc2Vzc2lvbl93aXRoX2RpZmZlcmVu
dF9jYXBhYmlsaXR5KGJpZGlfc2Vzc2lvbik6CisgICAgYXdhaXQgYmlkaV9zZXNzaW9uLnNlbmRf
Y29tbWFuZCgidGVzdC50ZXN0Iiwge30pCisKKyMgY2xhc3NpYyBzZXNzaW9uIGZvbGxvd2luZyBh
IGJpZGkgc2Vzc2lvbiB0byB0ZXN0IHNlc3Npb24KKyMgcmVjcmVhdGlvbgorIyBJbnRlbmRlZCB0
byBiZSB0aGUgbGFzdCB0ZXN0IGluIHRoaXMgZmlsZSB0byBtYWtlIHN1cmUKKyMgY2xhc3NpYyBz
ZXNzaW9uIGlzIG5vdCBpbXBhY3RlZCBieSBiaWRpIHRlc3RzCitAcHl0ZXN0Lm1hcmsuYXN5bmNp
bworZGVmIHRlc3RfY2xhc3NpY19hZnRlcl9iaWRpX3Nlc3Npb24oc2Vzc2lvbik6CisgICAgYXNz
ZXJ0IG5vdCBpc2luc3RhbmNlKHNlc3Npb24sIHdlYmRyaXZlci5iaWRpLkJpZGlTZXNzaW9uKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9j
bG9zZV93aW5kb3cvY2xvc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2Nsb3NlX3dpbmRvdy9jbG9zZS5weQppbmRleCA1M2FmNTczMGY4M2YuLjdiMzgy
ZmE5YmJjYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkKQEAgLTIsNyArMiw2
IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyIGltcG9ydCBlcnJvcgogCiBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vzcwot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGNsb3NlKHNl
c3Npb24pOgpAQCAtNDYsNyArNDUsNyBAQCBkZWYgdGVzdF9jbG9zZV9icm93c2luZ19jb250ZXh0
KHNlc3Npb24pOgogICAgIGFzc2VydCBuZXdfaGFuZGxlIG5vdCBpbiBoYW5kbGVzCiAKIAotZGVm
IHRlc3RfY2xvc2VfYnJvd3NpbmdfY29udGV4dF93aXRoX2Rpc21pc3NlZF9iZWZvcmV1bmxvYWRf
cHJvbXB0KHNlc3Npb24pOgorZGVmIHRlc3RfY2xvc2VfYnJvd3NpbmdfY29udGV4dF93aXRoX2Rp
c21pc3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNlc3Npb24sIGlubGluZSk6CiAgICAgb3JpZ2lu
YWxfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcwogCiAgICAgbmV3X2hhbmRsZSA9IHNlc3Npb24u
bmV3X3dpbmRvdygpCkBAIC04MSwzICs4MCwyMyBAQCBkZWYgdGVzdF9jbG9zZV9sYXN0X2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbik6CiAKICAgICAjIFdpdGggbm8gbW9yZSBvcGVuIHRvcC1sZXZl
bCBicm93c2luZyBjb250ZXh0cywgdGhlIHNlc3Npb24gaXMgY2xvc2VkLgogICAgIHNlc3Npb24u
c2Vzc2lvbl9pZCA9IE5vbmUKKworCitkZWYgdGVzdF9lbGVtZW50X3VzYWdlX2FmdGVyX2Nsb3Np
bmdfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBpbmxpbmUpOgorICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8cCBpZD0nYSc+Zm9vIikKKyAgICBhID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFs
bD1GYWxzZSkKKyAgICBmaXJzdCA9IHNlc3Npb24ud2luZG93X2hhbmRsZQorCisgICAgc2Vjb25k
ID0gc2Vzc2lvbi5uZXdfd2luZG93KHR5cGVfaGludD0idGFiIikKKyAgICBzZXNzaW9uLndpbmRv
d19oYW5kbGUgPSBzZWNvbmQKKworICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0nYic+
b3RoZXIiKQorICAgIGIgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQorCisgICAg
c2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gZmlyc3QKKyAgICByZXNwb25zZSA9IGNsb3NlKHNlc3Np
b24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IGxlbihzZXNzaW9u
LmhhbmRsZXMpID09IDEKKworICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IHNlY29uZAorICAg
IGFzc2VydCBiLmF0dHJpYnV0ZSgiaWQiKSA9PSAiYiIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVsZXRlLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9kZWxldGVfc2Vz
c2lvbi9kZWxldGUucHkKaW5kZXggZDBiNGQ3OTYzMDhlLi5hMzAzMmNjMTM0NzUgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVsZXRlX3Nl
c3Npb24vZGVsZXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZGVsZXRlX3Nlc3Npb24vZGVsZXRlLnB5CkBAIC0yLDcgKzIsNiBAQCBpbXBvcnQg
cHl0ZXN0CiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKIAogZnJvbSB0ZXN0cy5zdXBwb3J0
LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZGVsZXRlX3Nlc3Npb24oc2Vzc2lvbik6CkBAIC0xOSw3
ICsxOCw3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAgICAgc2Vz
c2lvbi5lbmQoKQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNl
c3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZF9wcm9tcHQoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxpbnB1dCB0eXBl
PSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGlzbWlzc19hbGVydC9kaXNt
aXNzLnB5CmluZGV4IGRhNjViYWMzODhkZi4uYTI4ZGVjNzY4NzUwIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxlcnQvZGlz
bWlzcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2Rpc21pc3NfYWxlcnQvZGlzbWlzcy5weQpAQCAtMSw3ICsxLDkgQEAKK2ltcG9ydCBweXRlc3QK
KwogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNj
ZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20gdGVzdHMu
c3VwcG9ydC5oZWxwZXJzIGltcG9ydCB3YWl0X2Zvcl9uZXdfaGFuZGxlCiBmcm9tIHRlc3RzLnN1
cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCiAKQEAgLTEwLDcgKzEyLDcgQEAgZGVmIGRpc21pc3Nf
YWxlcnQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2Fs
ZXJ0L2Rpc21pc3MiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxf
cmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFs
dWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53
aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+IikKIAogICAgIHJlc3BvbnNlID0gZGlzbWlz
c19hbGVydChzZXNzaW9uKQpAQCAtMzMsMjggKzM1LDQ1IEBAIGRlZiB0ZXN0X25vX3VzZXJfcHJv
bXB0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggYWxlcnQi
KQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfYWxlcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9kaXNtaXNz
X2FsZXJ0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3Jp
cHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwvc2NyaXB0PiIpCisKICAgICByZXNwb25zZSA9IGRp
c21pc3NfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKIAorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNlc3Np
b24uYWxlcnQudGV4dAorCiAKLWRlZiB0ZXN0X2Rpc21pc3NfY29uZmlybShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2Rpc21pc3NfY29uZmlybShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cuY29uZmlybSgnSGVsbG8n
KTs8L3NjcmlwdD4iKQorCiAgICAgcmVzcG9uc2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Npb24pCiAg
ICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9T
dWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFz
c2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LnJlc3VsdDsiKSBpcyBG
YWxzZQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NfcHJvbXB0KHNlc3Npb24pOgotICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdFbnRl
ciBZb3VyIE5hbWU6ICcsICdGZWRlcmVyJyk7PC9zY3JpcHQ+IikKK2RlZiB0ZXN0X2Rpc21pc3Nf
cHJvbXB0KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCisg
ICAgICAgIDxzY3JpcHQ+d2luZG93LnJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0VudGVyIFlvdXIg
TmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4KKyAgICAgICAgIiIiKQorCiAgICAgcmVzcG9u
c2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Up
CisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAg
ICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gd2luZG93LnJlc3VsdCIpIGlzIE5vbmUKIAogCiBkZWYgdGVzdF91bmV4cGVjdGVk
X2FsZXJ0KHNlc3Npb24pOgogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7IGFsZXJ0KCdIZWxsbycpOyB9LCAxMDApOyIpCisKICAgICB3YWl0ID0gUG9s
bCgKICAgICAgICAgc2Vzc2lvbiwKICAgICAgICAgdGltZW91dD01LApAQCAtNjQsMyArODMsMjcg
QEAgZGVmIHRlc3RfdW5leHBlY3RlZF9hbGVydChzZXNzaW9uKToKIAogICAgIHJlc3BvbnNlID0g
ZGlzbWlzc19hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vz
c2lvbi5hbGVydC50ZXh0CisKKworZGVmIHRlc3RfZGlzbWlzc19pbl9wb3B1cF93aW5kb3coc2Vz
c2lvbiwgaW5saW5lKToKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKKworICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIgorICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IndpbmRv
dy5vcGVuKCdhYm91dDpibGFuaycsICdfYmxhbmsnLCAnd2lkdGg9NTAwOyBoZWlnaHQ9MjAwO3Jl
c2l6YWJsZT15ZXMnKTsiPm9wZW48L2J1dHRvbj4KKyAgICAgICAgIiIiKQorICAgIGJ1dHRvbiA9
IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKKyAgICBidXR0b24uY2xpY2so
KQorCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNz
aW9uLCBvcmlnX2hhbmRsZXMpCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCisgICAgICAg
IDxzY3JpcHQ+d2luZG93LmFsZXJ0KCJIZWxsbyIpPC9zY3JpcHQ+CisgICAgICAgICIiIikKKwor
ICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9u
KToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvY2xlYXIucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIv
Y2xlYXIucHkKaW5kZXggMDE4OWMzOGMyNzcwLi5iNjVmNDQzYWE3NTggMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGVhci9j
bGVhci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xlYXIvY2xlYXIucHkKQEAgLTExLDcgKzExLDYgQEAgZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfaW5fZXZlbnRzLAogICAgIGFzc2VydF9z
dWNjZXNzLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAog
QHB5dGVzdC5maXh0dXJlCkBAIC0zNyw3ICszNiw3IEBAIGRlZiB0ZXh0X2ZpbGUodG1wZGlyX2Zh
Y3RvcnkpOgogICAgIHJldHVybiBmaAogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUo
c2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtNDgsMTAgKzQ3LDE3IEBAIGRl
ZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAKIGRlZiB0ZXN0X25vX3RvcF9i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGVsZW1lbnQgPSBF
bGVtZW50KCJmb28iLCBzZXNzaW9uKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGVhcihzZXNz
aW9uLCBlbGVtZW50KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93
IikKIAorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKICAgICBy
ZXNwb25zZSA9IGVsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxlbWVudCkKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5k
bGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xlYXIoc2Vzc2lv
biwgZWxlbWVudCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQi
KQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1l
KToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikKQEAgLTYwLDcgKzY2LDcg
QEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVz
dF9jb25uZWN0ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2Nvbm5lY3RlZF9lbGVtZW50
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAt
NjksNyArNzUsNyBAQCBkZWYgdGVzdF9jb25uZWN0ZWRfZWxlbWVudChzZXNzaW9uKToKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVm
IHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9wb2ludGVyX2lu
dGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgc3R5bGU9J21hcmdpbi1sZWZ0OiAtMTAwMHB4JyB2YWx1ZT1mb29iYXI+IikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTc3LDcg
KzgzLDcgQEAgZGVmIHRlc3RfcG9pbnRlcl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYg
dGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9rZXlib2FyZF9p
bnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
IiIKICAgICAgICAgPGlucHV0IHZhbHVlPWZvb2Jhcj4KICAgICAgICAgPGRpdj48L2Rpdj4KQEAg
LTExNCw3ICsxMjAsNyBAQCBkZWYgdGVzdF9rZXlib2FyZF9pbnRlcmFjdGFibGUoc2Vzc2lvbik6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGltZSIsICIxOTo0OCIsICIiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJtb250aCIsICIyMDE3LTExIiwgIiIpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAoIndlZWsiLCAiMjAxNy1XNTIiLCAiIildKQotZGVmIHRlc3RfaW5w
dXQoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHR5cGUsIHZh
bHVlLCBkZWZhdWx0KToKK2RlZiB0ZXN0X2lucHV0KHNlc3Npb24sIGlubGluZSwgYWRkX2V2ZW50
X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHR5cGUsIHZhbHVlLCBkZWZhdWx0KToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9JXMgdmFsdWU9JyVzJz4iICUgKHR5cGUs
IHZhbHVlKSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0cmFja2VkX2V2ZW50cykKQEAg
LTE0NCw3ICsxNTAsNyBAQCBkZWYgdGVzdF9pbnB1dChzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVu
ZXJzLCB0cmFja2VkX2V2ZW50cywgdHlwZSwgdmFsdWUsIGRlZmF1bAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAibW9udGgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAid2VlayIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIl0pCi1kZWYgdGVzdF9pbnB1dF9kaXNhYmxl
ZChzZXNzaW9uLCB0eXBlKToKK2RlZiB0ZXN0X2lucHV0X2Rpc2FibGVkKHNlc3Npb24sIGlubGlu
ZSwgdHlwZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzIGRpc2Fi
bGVkPiIgJSB0eXBlKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFs
bD1GYWxzZSkKIApAQCAtMTY5LDcgKzE3NSw3IEBAIGRlZiB0ZXN0X2lucHV0X2Rpc2FibGVkKHNl
c3Npb24sIHR5cGUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAibW9udGgiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2VlayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJm
aWxlIl0pCi1kZWYgdGVzdF9pbnB1dF9yZWFkb25seShzZXNzaW9uLCB0eXBlKToKK2RlZiB0ZXN0
X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIGlubGluZSwgdHlwZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzIHJlYWRvbmx5PiIgJSB0eXBlKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTc3LDcgKzE4Myw3
IEBAIGRlZiB0ZXN0X2lucHV0X3JlYWRvbmx5KHNlc3Npb24sIHR5cGUpOgogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRlc3RfdGV4
dGFyZWEoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgorZGVm
IHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFj
a2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0ZXh0YXJlYT5mb29iYXI8
L3RleHRhcmVhPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInRleHRhcmVhIiwg
YWxsPUZhbHNlKQogICAgIGFkZF9ldmVudF9saXN0ZW5lcnMoZWxlbWVudCwgdHJhY2tlZF9ldmVu
dHMpCkBAIC0xODksNyArMTk1LDcgQEAgZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbiwgYWRkX2V2
ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIGFzc2VydF9pbl9ldmVudHMoc2Vz
c2lvbiwgWyJmb2N1cyIsICJjaGFuZ2UiLCAiYmx1ciJdKQogCiAKLWRlZiB0ZXN0X3RleHRhcmVh
X2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfdGV4dGFyZWFfZGlzYWJsZWQoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRleHRhcmVhIGRpc2FibGVkPjwv
dGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBh
bGw9RmFsc2UpCiAKQEAgLTE5Nyw3ICsyMDMsNyBAQCBkZWYgdGVzdF90ZXh0YXJlYV9kaXNhYmxl
ZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGVsZW1lbnQg
c3RhdGUiKQogCiAKLWRlZiB0ZXN0X3RleHRhcmVhX3JlYWRvbmx5KHNlc3Npb24pOgorZGVmIHRl
c3RfdGV4dGFyZWFfcmVhZG9ubHkoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPHRleHRhcmVhIHJlYWRvbmx5PjwvdGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBhbGw9RmFsc2UpCiAKQEAgLTIwNSw3ICsyMTEs
NyBAQCBkZWYgdGVzdF90ZXh0YXJlYV9yZWFkb25seShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0ZXN0X2lucHV0
X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2RlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vzc2lvbiwg
dGV4dF9maWxlLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlw
ZT1maWxlPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZh
bHNlKQogICAgIGVsZW1lbnQuc2VuZF9rZXlzKHN0cih0ZXh0X2ZpbGUpKQpAQCAtMjE1LDcgKzIy
MSw3IEBAIGRlZiB0ZXN0X2lucHV0X2ZpbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKICAgICBhc3Nl
cnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X2lucHV0X2Zp
bGVfbXVsdGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKK2RlZiB0ZXN0X2lucHV0X2ZpbGVfbXVs
dGlwbGUoc2Vzc2lvbiwgdGV4dF9maWxlLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgdHlwZT1maWxlIG11bHRpcGxlPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGVsZW1lbnQuc2VuZF9rZXlzKHN0cih0
ZXh0X2ZpbGUpKQpAQCAtMjI2LDcgKzIzMiw3IEBAIGRlZiB0ZXN0X2lucHV0X2ZpbGVfbXVsdGlw
bGUoc2Vzc2lvbiwgdGV4dF9maWxlKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFs
dWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X3NlbGVjdChzZXNzaW9uKToKK2RlZiB0ZXN0X3NlbGVj
dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAg
ICA8c2VsZWN0PgogICAgICAgICAgIDxvcHRpb24+Zm9vCkBAIC0yNDEsNyArMjQ3LDcgQEAgZGVm
IHRlc3Rfc2VsZWN0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFs
aWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRlc3RfYnV0dG9uKHNlc3Npb24pOgorZGVmIHRl
c3RfYnV0dG9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxi
dXR0b24+PC9idXR0b24+IikKICAgICBidXR0b24gPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24i
LCBhbGw9RmFsc2UpCiAKQEAgLTI0OSw3ICsyNTUsNyBAQCBkZWYgdGVzdF9idXR0b24oc2Vzc2lv
bik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0YXRlIikK
IAogCi1kZWYgdGVzdF9idXR0b25fd2l0aF9zdWJ0cmVlKHNlc3Npb24pOgorZGVmIHRlc3RfYnV0
dG9uX3dpdGhfc3VidHJlZShzZXNzaW9uLCBpbmxpbmUpOgogICAgICIiIgogICAgIEVsZW1lbnRz
IGluc2lkZSBidXR0b24gZWxlbWVudHMgYXJlIGludGVyYWN0YWJsZS4KICAgICAiIiIKQEAgLTI2
NCw3ICsyNzAsNyBAQCBkZWYgdGVzdF9idXR0b25fd2l0aF9zdWJ0cmVlKHNlc3Npb24pOgogICAg
IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0X2NvbnRlbnRlZGl0YWJsZShz
ZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYgdGVzdF9j
b250ZW50ZWRpdGFibGUoc2Vzc2lvbiwgaW5saW5lLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFj
a2VkX2V2ZW50cyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGNvbnRlbnRlZGl0YWJs
ZT5mb29iYXI8L3A+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFsbD1G
YWxzZSkKICAgICBhZGRfZXZlbnRfbGlzdGVuZXJzKGVsZW1lbnQsIHRyYWNrZWRfZXZlbnRzKQpA
QCAtMjc3LDcgKzI4Myw3IEBAIGRlZiB0ZXN0X2NvbnRlbnRlZGl0YWJsZShzZXNzaW9uLCBhZGRf
ZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CiAgICAgYXNzZXJ0X2VsZW1lbnRfaGFz
X2ZvY3VzKHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5ib2R5IikpCiAK
IAotZGVmIHRlc3RfZGVzaWdubW9kZShzZXNzaW9uKToKK2RlZiB0ZXN0X2Rlc2lnbm1vZGUoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiZm9vYmFyIikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYm9keSIsIGFsbD1GYWxzZSkKICAgICBhc3NlcnQg
ZWxlbWVudC5wcm9wZXJ0eSgiaW5uZXJIVE1MIikgPT0gImZvb2JhciIKQEAgLTI4OSw3ICsyOTUs
NyBAQCBkZWYgdGVzdF9kZXNpZ25tb2RlKHNlc3Npb24pOgogICAgIGFzc2VydF9lbGVtZW50X2hh
c19mb2N1cyhzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuYm9keSIpKQog
CiAKLWRlZiB0ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9mb2N1c193aGVuX2VtcHR5KHNlc3Npb24s
IGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKToKK2RlZiB0ZXN0X3Jlc2V0dGFi
bGVfZWxlbWVudF9mb2N1c193aGVuX2VtcHR5KHNlc3Npb24sIGlubGluZSwgYWRkX2V2ZW50X2xp
c3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2Up
CiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0cmFja2VkX2V2ZW50cykKQEAgLTMx
Myw3ICszMTksNyBAQCBkZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRfZm9jdXNfd2hlbl9lbXB0
eShzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFjawogICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInRpbWUiLCAiZm9vIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgibW9u
dGgiLCAiZm9vIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgid2VlayIsICJmb28iKV0p
Ci1kZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRfZG9lc19ub3Rfc2F0aXNmeV92YWxpZGF0aW9u
X2NvbnN0cmFpbnRzKHNlc3Npb24sIHR5cGUsIGludmFsaWRfdmFsdWUpOgorZGVmIHRlc3RfcmVz
ZXR0YWJsZV9lbGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFsaWRhdGlvbl9jb25zdHJhaW50cyhz
ZXNzaW9uLCBpbmxpbmUsIHR5cGUsIGludmFsaWRfdmFsdWUpOgogICAgICIiIgogICAgIFNvbWUg
VUFzIGFsbG93IGludmFsaWQgaW5wdXQgdG8gY2VydGFpbiB0eXBlcyBvZiBjb25zdHJhaW5lZAog
ICAgIGZvcm0gY29udHJvbHMuICBGb3IgZXhhbXBsZSwgR2Vja28gYWxsb3dzIG5vbi12YWxpZCBj
aGFyYWN0ZXJzCkBAIC0zNTAsNyArMzU2LDcgQEAgZGVmIHRlc3RfcmVzZXR0YWJsZV9lbGVtZW50
X2RvZXNfbm90X3NhdGlzZnlfdmFsaWRhdGlvbl9jb25zdHJhaW50cyhzZXNzaW9uLCB0eXAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN1Ym1pdCIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJidXR0b24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UiXSkKLWRlZiB0
ZXN0X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlwZSk6CitkZWYgdGVzdF9ub25fZWRp
dGFibGVfaW5wdXRzKHNlc3Npb24sIGlubGluZSwgdHlwZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dCB0eXBlPSVzPiIgJSB0eXBlKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzU4LDcgKzM2NCw3IEBAIGRlZiB0ZXN0
X25vbl9lZGl0YWJsZV9pbnB1dHMoc2Vzc2lvbiwgdHlwZSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVzdF9zY3JvbGxfaW50
b192aWV3KHNlc3Npb24pOgorZGVmIHRlc3Rfc2Nyb2xsX2ludG9fdmlldyhzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQgdmFsdWU9
Zm9vYmFyPgogICAgICAgICA8ZGl2IHN0eWxlPSdoZWlnaHQ6IDIwMHZoOyB3aWR0aDogNTAwMHZo
Jz4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9jbGVhci91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvdXNlcl9wcm9tcHRzLnB5CmluZGV4
IGNmYjg1MGUwOGQ1YS4uN2E4NTY0YTY4NGE3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvdXNlcl9wcm9tcHRzLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGVhci91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAK
IGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQs
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsZWFyKHNlc3Npb24sIGVsZW1lbnQpOgpA
QCAtMTQsNyArMTMsNyBAQCBkZWYgZWxlbWVudF9jbGVhcihzZXNzaW9uLCBlbGVtZW50KToKIAog
CiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6
CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0
eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3Qu
Zml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC01Niw3
ICs1NSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2sv
YnViYmxpbmcucHkKaW5kZXggYTA2OWE1YTVkZjNkLi43NjIwZWMzMjI0ZmMgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGlj
ay9idWJibGluZy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xpY2svYnViYmxpbmcucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24s
IGVsZW1lbnQpOgpAQCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxl
bWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiB0ZXN0
X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9uKToKK2RlZiB0ZXN0X2NsaWNr
X2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c3R5bGU+CiAgICAgICAgIGJvZHkgKiB7CkBAIC00
NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2NsaWNrX2V2ZW50X2J1YmJsZXNfdG9fcGFyZW50cyhzZXNz
aW9uKToKICAgICBhc3NlcnQgdGhyZWUgaW4gY2xpY2tzCiAKIAotZGVmIHRlc3Rfc3Bpbl9ldmVu
dF9sb29wKHNlc3Npb24pOgorZGVmIHRlc3Rfc3Bpbl9ldmVudF9sb29wKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgIiIiCiAgICAgV2FpdCB1bnRpbCB0aGUgdXNlciBhZ2VudCBldmVudCBsb29wIGhh
cyBzcHVuIGVub3VnaCB0aW1lcyB0bwogICAgIHByb2Nlc3MgdGhlIERPTSBldmVudHMgZ2VuZXJh
dGVkIGJ5IGNsaWNraW5nLgpAQCAtODYsNyArODUsNyBAQCBkZWYgdGVzdF9zcGluX2V2ZW50X2xv
b3Aoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHRocmVlIGluIGRlbGF5ZWRfY2xpY2tzCiAKIAotZGVm
IHRlc3RfZWxlbWVudF9kaXNhcHBlYXJzX2R1cmluZ19jbGljayhzZXNzaW9uKToKK2RlZiB0ZXN0
X2VsZW1lbnRfZGlzYXBwZWFyc19kdXJpbmdfY2xpY2soc2Vzc2lvbiwgaW5saW5lKToKICAgICAi
IiIKICAgICBXaGVuIGFuIGVsZW1lbnQgaW4gdGhlIGV2ZW50IGJ1YmJsaW5nIG9yZGVyIGRpc2Fw
cGVhcnMgKGl0cyBDU1MKICAgICBkaXNwbGF5IHN0eWxlIGlzIHNldCB0byAibm9uZSIpIGR1cmlu
ZyBhIGNsaWNrLCBHZWNrbyBhbmQgQmxpbmsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jZW50ZXJfcG9pbnQucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xp
Y2svY2VudGVyX3BvaW50LnB5CmluZGV4IGRhNjBhMDg3Mjc3ZC4uZWYwYzlhN2ZlMjdkIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfY2xpY2svY2VudGVyX3BvaW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jZW50ZXJfcG9pbnQucHkKQEAgLTIsNyAr
Miw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJz
IGltcG9ydCBjZW50ZXJfcG9pbnQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTIsNyAr
MTEsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAgICAgICAg
IGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHNxdWFyZShzaXplKToKK2RlZiBzcXVh
cmUoaW5saW5lLCBzaXplKToKICAgICByZXR1cm4gaW5saW5lKCIiIgogICAgICAgICA8c3R5bGU+
CiAgICAgICAgIGJvZHkge3sgbWFyZ2luOiAwIH19CkBAIC00MSw4ICs0MCw4IEBAIGRlZiBhc3Nl
cnRfb25lX2NsaWNrKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBsZShjbGlja3NbMF0pCiAKIAot
ZGVmIHRlc3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uKToKLSAgICBzZXNzaW9uLnVybCA9IHNx
dWFyZSg0NDQpCitkZWYgdGVzdF9lbnRpcmVseV9pbl92aWV3KHNlc3Npb24sIGlubGluZSk6Cisg
ICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoaW5saW5lLCA0NDQpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoIiN0YXJnZXQiLCBhbGw9RmFsc2UpCiAKICAgICByZXNwb25zZSA9IGVsZW1l
bnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKQEAgLTUzLDggKzUyLDggQEAgZGVmIHRlc3RfZW50
aXJlbHlfaW5fdmlldyhzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNp
emUiLCByYW5nZSgxLCAxMSkpCi1kZWYgdGVzdF9jc3NfcGl4ZWxfcm91bmRpbmcoc2Vzc2lvbiwg
c2l6ZSk6Ci0gICAgc2Vzc2lvbi51cmwgPSBzcXVhcmUoc2l6ZSkKK2RlZiB0ZXN0X2Nzc19waXhl
bF9yb3VuZGluZyhzZXNzaW9uLCBpbmxpbmUsIHNpemUpOgorICAgIHNlc3Npb24udXJsID0gc3F1
YXJlKGlubGluZSwgc2l6ZSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI3Rhcmdl
dCIsIGFsbD1GYWxzZSkKICAgICBleHBlY3RlZF9jbGlja19wb2ludCA9IGNlbnRlcl9wb2ludChl
bGVtZW50KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2sucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2sucHkKaW5kZXggM2E1ZDcz
NzIxNmQ5Li5iMWIxMDE2MmU0ZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jbGljay5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2su
cHkKQEAgLTEsNyArMSw2IEBACiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgRWxlbWVudAogCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1l
bnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiBlbGVtZW50
X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50
LmlkKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRl
c3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8cD5mb28iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwg
YWxsPUZhbHNlKQogCkBAIC0yMiwxMCArMjEsMTcgQEAgZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92
YWx1ZShzZXNzaW9uKToKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lv
biwgY2xvc2VkX3dpbmRvdyk6CiAgICAgZWxlbWVudCA9IEVsZW1lbnQoImZvbyIsIHNlc3Npb24p
CisgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpCisgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgb3JpZ2luYWxfaGFu
ZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGlj
ayhzZXNzaW9uLCBlbGVtZW50KQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
d2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQor
ICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJv
d3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIGVsZW1lbnQgPSBFbGVt
ZW50KCJmb28iLCBzZXNzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2V2ZW50cy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9ldmVudHMucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lM2QzMmMxYmNiNDQKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfY2xpY2svZXZlbnRzLnB5CkBAIC0wLDAgKzEsMzMgQEAKK2Zyb20gd2ViZHJp
dmVyIGltcG9ydCBFbGVtZW50Citmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNz
ZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGlj
dAorCitkZWYgZ2V0X2V2ZW50cyhzZXNzaW9uKToKKyAgICAiIiJSZXR1cm4gbGlzdCBvZiBtb3Vz
ZSBldmVudHMgcmVjb3JkZWQgaW4gdGhlIGZpeHR1cmUuIiIiCisgICAgcmV0dXJuIHNlc3Npb24u
ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhbGxFdmVudHMuZXZlbnRzOyIpIG9yIFtdCisKK2RlZiBl
bGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5z
cG9ydC5zZW5kKAorICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9lbGVtZW50
L3tlbGVtZW50X2lkfS9jbGljayIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNz
aW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQorCitk
ZWYgdGVzdF9ldmVudF9tb3VzZW1vdmUoc2Vzc2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLnVybCA9
IHVybCgiL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvdGVzdF9jbGlja193
ZHNwZWMuaHRtbCIpCisKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygnI291dGVyJywg
YWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50
KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgZXZlbnRzID0gZ2V0X2V2ZW50
cyhzZXNzaW9uKQorICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9PSA0CisKKyAgICBleHBlY3RlZCA9
IFsKKyAgICAgICAgeyJ0eXBlIjogIm1vdXNlbW92ZSIsICJidXR0b25zIjogMCwgImJ1dHRvbiI6
IDB9LAorICAgICAgICB7InR5cGUiOiAibW91c2Vkb3duIiwgImJ1dHRvbnMiOiAxLCAiYnV0dG9u
IjogMH0sCisgICAgICAgIHsidHlwZSI6ICJtb3VzZXVwIiwgImJ1dHRvbnMiOiAwLCAiYnV0dG9u
IjogMH0sCisgICAgICAgIHsidHlwZSI6ICJjbGljayIsICJidXR0b25zIjogMCwgImJ1dHRvbiI6
IDB9LAorICAgIF0KKyAgICBmaWx0ZXJlZF9ldmVudHMgPSBbZmlsdGVyX2RpY3QoZSwgZXhwZWN0
ZWRbMF0pIGZvciBlIGluIGV2ZW50c10KKworICAgIGFzc2VydCBleHBlY3RlZCA9PSBmaWx0ZXJl
ZF9ldmVudHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxlX3VwbG9hZC5weQpp
bmRleCBjZDViYjQzNDIwNGQuLjczODMyZDBmODVhZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2ZpbGVfdXBsb2Fk
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9jbGljay9maWxlX3VwbG9hZC5weQpAQCAtMSw1ICsxLDUgQEAKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRl
c3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKKwogCiBkZWYgZWxlbWVudF9jbGljayhz
ZXNzaW9uLCBlbGVtZW50KToKICAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKQEAg
LTgsNyArOCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAg
ICAgICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1kZWYgdGVzdF9maWxlX3VwbG9hZF9z
dGF0ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2ZpbGVfdXBsb2FkX3N0YXRlKHNlc3Npb24saW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZT4iKQogCiAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2Ns
aWNrL2ludGVyYWN0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9pbnRlcmFjdGFiaWxpdHkucHkKaW5kZXggNzQ2M2Q0
OTNlM2Q4Li5kNTU4NjBjODc0NmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9pbnRlcmFjdGFiaWxpdHkucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2Ns
aWNrL2ludGVyYWN0YWJpbGl0eS5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1
Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBl
bGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZWxl
bWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxl
bWVudC5pZCkpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24pOgorZGVmIHRlc3Rf
ZGlzcGxheV9ub25lKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IiIiPGJ1dHRvbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+Zm9vYmFyPC9idXR0b24+IiIiKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAKQEAgLTE5
LDcgKzE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24pOgogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3Rf
dmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF92aXNpYmlsaXR5X2hpZGRlbihz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxidXR0b24gc3R5
bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+Zm9vYmFyPC9idXR0b24+IiIiKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAKQEAgLTI3LDcgKzI2LDcg
QEAgZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9oaWRk
ZW4oc2Vzc2lvbik6CitkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGJ1dHRvbiBoaWRkZW4+Zm9vYmFyPC9idXR0b24+IikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQogCkBAIC0zNSw3
ICszNCw3IEBAIGRlZiB0ZXN0X2hpZGRlbihzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2Rpc2FibGVk
KHNlc3Npb24pOgorZGVmIHRlc3RfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiIiI8YnV0dG9uIGRpc2FibGVkPmZvb2JhcjwvYnV0dG9uPiIiIikK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQogCkBA
IC00NCw3ICs0Myw3IEBAIGRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgogCiAKIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgidHJhbnNmb3JtIiwgWyJ0cmFuc2xhdGUoLTEwMHB4LCAtMTAwcHgp
IiwgInJvdGF0ZSg1MGRlZykiXSkKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9j
c3NfdHJhbnNmb3JtKHNlc3Npb24sIHRyYW5zZm9ybSk6CitkZWYgdGVzdF9lbGVtZW50X25vdF9p
bnRlcmFjdGFibGVfY3NzX3RyYW5zZm9ybShzZXNzaW9uLCBpbmxpbmUsIHRyYW5zZm9ybSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1
MDBweDsgaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7
IHRyYW5zZm9ybToge3RyYW5zZm9ybX07Ij4KQEAgLTU1LDcgKzU0LDcgQEAgZGVmIHRlc3RfZWxl
bWVudF9ub3RfaW50ZXJhY3RhYmxlX2Nzc190cmFuc2Zvcm0oc2Vzc2lvbiwgdHJhbnNmb3JtKToK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQog
CiAKLWRlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9vdXRfb2ZfdmlldyhzZXNzaW9u
KToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9vdXRfb2ZfdmlldyhzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c3R5bGU+
CiAgICAgICAgIGlucHV0IHsKQEAgLTczLDcgKzcyLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3Rf
aW50ZXJhY3RhYmxlX291dF9vZl92aWV3KHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgidGFnX25hbWUiLCBbImRpdiIsICJzcGFuIl0pCi1kZWYgdGVzdF96ZXJvX3NpemVk
X2VsZW1lbnQoc2Vzc2lvbiwgdGFnX25hbWUpOgorZGVmIHRlc3RfemVyb19zaXplZF9lbGVtZW50
KHNlc3Npb24sIGlubGluZSwgdGFnX25hbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
ezB9PjwvezB9PiIuZm9ybWF0KHRhZ19uYW1lKSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcyh0YWdfbmFtZSwgYWxsPUZhbHNlKQogCkBAIC04MSw3ICs4MCw3IEBAIGRlZiB0ZXN0X3pl
cm9fc2l6ZWRfZWxlbWVudChzZXNzaW9uLCB0YWdfbmFtZSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9lbGVtZW50
X2ludGVyY2VwdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbnRlcmNlcHRlZChzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c3R5
bGU+CiAgICAgICAgIGRpdiB7CkBAIC0xMDIsMTQgKzEwMSwxNCBAQCBkZWYgdGVzdF9lbGVtZW50
X2ludGVyY2VwdGVkKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1l
bnQgY2xpY2sgaW50ZXJjZXB0ZWQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfaW50ZXJjZXB0ZWRf
bm9fcG9pbnRlcl9ldmVudHMoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2ludGVyY2VwdGVk
X25vX3BvaW50ZXJfZXZlbnRzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPVJvZ2VyIHN0eWxlPSJwb2ludGVyLWV2
ZW50czogbm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKICAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVu
dCkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IGNsaWNrIGludGVyY2VwdGVk
IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X25vdF92aXNpYmxlX292ZXJmbG93X2hpZGRlbihzZXNz
aW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X3Zpc2libGVfb3ZlcmZsb3dfaGlkZGVuKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzdHls
ZT4KICAgICAgICAgZGl2IHsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZpZ2F0ZS5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9uYXZpZ2F0ZS5w
eQppbmRleCBkNzc2YTFlYjg0ZTYuLjQ5MjcxODI5MmExNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL25hdmlnYXRl
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9jbGljay9uYXZpZ2F0ZS5weQpAQCAtMSw1ICsxLDkgQEAKK2ltcG9ydCBweXRlc3QKKwor
ZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KKwogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJz
IGltcG9ydCB3YWl0X2Zvcl9uZXdfaGFuZGxlCiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBv
cnQgUG9sbAogCiAKQEAgLTEwLDcgKzE0LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwg
ZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiB0
ZXN0X251bWJlcnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X251bWJl
cnNfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIGxpbmsgPSAiL3dl
YmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvaW5wdXQuaHRtbCIKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj17dXJsfT4xMjM0NTY8L2E+Ii5mb3JtYXQodXJsPWxp
bmspKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxsPUZhbHNlKQpAQCAt
MjIsNyArMjYsNyBAQCBkZWYgdGVzdF9udW1iZXJzX2xpbmsoc2Vzc2lvbiwgc2VydmVyX2NvbmZp
Zyk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09ICJodHRwOi8ve2hvc3R9Ontwb3J0fXt1cmx9
Ii5mb3JtYXQoaG9zdD1ob3N0LCBwb3J0PXBvcnQsIHVybD1saW5rKQogCiAKLWRlZiB0ZXN0X211
bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X211bHRpX2xp
bmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIGxpbmsgPSAiL3dl
YmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvaW5wdXQuaHRtbCIKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6
IHllbGxvdzsgd2lkdGg6IDUwcHg7Ij4KQEAgLTM3LDcgKzQxLDcgQEAgZGVmIHRlc3RfbXVsdGlf
bGluZV9saW5rKHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgogICAgIGFzc2VydCBzZXNzaW9uLnVy
bCA9PSAiaHR0cDovL3tob3N0fTp7cG9ydH17dXJsfSIuZm9ybWF0KGhvc3Q9aG9zdCwgcG9ydD1w
b3J0LCB1cmw9bGluaykKIAogCi1kZWYgdGVzdF9saW5rX3VubG9hZF9ldmVudChzZXNzaW9uLCBz
ZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2ZW50KHNlc3Npb24sIHNlcnZl
cl9jb25maWcsIGlubGluZSk6CiAgICAgbGluayA9ICIvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xpY2svc3VwcG9ydC9pbnB1dC5odG1sIgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgog
ICAgICAgICA8Ym9keSBvbnVubG9hZD0iY2hlY2tVbmxvYWQoKSI+CkBAIC02OCw3ICs3Miw3IEBA
IGRlZiB0ZXN0X2xpbmtfdW5sb2FkX2V2ZW50KHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgogICAg
IGFzc2VydCByZXNwb25zZSBpcyBUcnVlCiAKIAotZGVmIHRlc3RfbGlua19oYXNoKHNlc3Npb24p
OgorZGVmIHRlc3RfbGlua19oYXNoKHNlc3Npb24sIGlubGluZSk6CiAgICAgaWQgPSAiYW5jaG9y
IgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8YSBocmVmPSIje3VybH0i
PmFhYWE8L2E+CkBAIC05MywzNCArOTcsOTQgQEAgZGVmIHRlc3RfbGlua19oYXNoKHNlc3Npb24p
OgogICAgICAgICAgICAgIiIiLCBhcmdzPShlbGVtZW50LCkpIGlzIFRydWUKIAogCi1kZWYgdGVz
dF9saW5rX29wZW5fdGFyZ2V0X2luX25ld193aW5kb3coc2Vzc2lvbiwgdXJsKToKLSAgICBvcmln
X2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFy
Z2V0IiwgWworICAgICIiLAorICAgICJfYmxhbmsiLAorICAgICJfcGFyZW50IiwKKyAgICAiX3Nl
bGYiLAorICAgICJfdG9wIiwKK10pCitkZWYgdGVzdF9saW5rX2Zyb21fdG9wbGV2ZWxfY29udGV4
dF93aXRoX3RhcmdldChzZXNzaW9uLCBpbmxpbmUsIHRhcmdldCk6CisgICAgdGFyZ2V0X3BhZ2Ug
PSBpbmxpbmUoIjxwIGlkPSdmb28nPmZvbzwvcD4iKQogCi0gICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiCi0gICAgICAgIDxhIGhyZWY9Int9IiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBpbiBuZXcg
d2luZG93PC9hPgotICAgICIiIi5mb3JtYXQoaW5saW5lKCI8cCBpZD1mb28iKSkpCisgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9J3t9JyB0YXJnZXQ9J3t9Jz5jbGljazwvYT4iLmZv
cm1hdCh0YXJnZXRfcGFnZSwgdGFyZ2V0KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiYSIsIGFsbD1GYWxzZSkKIAorICAgIG9yaWdfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcwor
CiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpCiAgICAgYXNz
ZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKLSAgICBkZWYgZmluZF9uZXdfaGFuZGxlKHNlc3Npb24p
OgotICAgICAgICBuZXdfaGFuZGxlcyA9IGxpc3Qoc2V0KHNlc3Npb24uaGFuZGxlcykgLSBzZXQo
b3JpZ19oYW5kbGVzKSkKLSAgICAgICAgaWYgbmV3X2hhbmRsZXMgYW5kIGxlbihuZXdfaGFuZGxl
cykgPT0gMToKLSAgICAgICAgICAgIHJldHVybiBuZXdfaGFuZGxlc1swXQotICAgICAgICByZXR1
cm4gTm9uZQorICAgIGlmIHRhcmdldCA9PSAiX2JsYW5rIjoKKyAgICAgICAgc2Vzc2lvbi53aW5k
b3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNzaW9uLCBvcmlnX2hhbmRsZXMpCiAK
ICAgICB3YWl0ID0gUG9sbCgKICAgICAgICAgc2Vzc2lvbiwKICAgICAgICAgdGltZW91dD01LAot
ICAgICAgICBtZXNzYWdlPSJObyBuZXcgd2luZG93IGhhcyBiZWVuIG9wZW5lZCIpCi0gICAgbmV3
X2hhbmRsZSA9IHdhaXQudW50aWwoZmluZF9uZXdfaGFuZGxlKQorICAgICAgICBpZ25vcmVkX2V4
Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAgICAgICAgbWVzc2FnZT0iRXhwZWN0
ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAgIHdhaXQudW50aWwobGFtYmRhIHM6
IHMuZmluZC5jc3MoIiNmb28iKSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRhcmdl
dCIsIFsKKyAgICAiIiwKKyAgICAiX2JsYW5rIiwKKyAgICAiX3BhcmVudCIsCisgICAgIl9zZWxm
IiwKKyAgICAiX3RvcCIsCitdKQorZGVmIHRlc3RfbGlua19mcm9tX25lc3RlZF9jb250ZXh0X3dp
dGhfdGFyZ2V0KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCB0YXJnZXQpOgorICAgIHRhcmdldF9w
YWdlID0gaW5saW5lKCI8cCBpZD0nZm9vJz5mb288L3A+IikKKworICAgIHNlc3Npb24udXJsID0g
aW5saW5lKGlmcmFtZSgiPGEgaHJlZj0ne30nIHRhcmdldD0ne30nPmNsaWNrPC9hPiIuZm9ybWF0
KHRhcmdldF9wYWdlLCB0YXJnZXQpKSkKKyAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlm
cmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZSkKKyAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIuZm9ybWF0KHRhcmdldCksIGFsbD1GYWxzZSkK
IAotICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKLSAgICBzZXNzaW9uLmZp
bmQuY3NzKCIjZm9vIikKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKKworICAg
IHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQorICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorCisgICAgaWYgdGFyZ2V0ID09ICJfYmxhbmsiOgorICAgICAgICBz
ZXNzaW9uLndpbmRvd19oYW5kbGUgPSB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNlc3Npb24sIG9yaWdf
aGFuZGxlcykKKworICAgICMgV2l0aCB0aGUgY3VycmVudCBicm93c2luZyBjb250ZXh0IHJlbW92
ZWQgdGhlIG5hdmlnYXRpb24gc2hvdWxkCisgICAgIyBub3QgdGltZW91dC4gU3dpdGNoIHRvIHRo
ZSB0YXJnZXQgY29udGV4dCwgYW5kIHdhaXQgdW50aWwgdGhlIGV4cGVjdGVkCisgICAgIyBlbGVt
ZW50IGlzIGF2YWlsYWJsZS4KKyAgICBpZiB0YXJnZXQgPT0gIl9wYXJlbnQiOgorICAgICAgICBz
ZXNzaW9uLnN3aXRjaF9mcmFtZSgicGFyZW50IikKKyAgICBlbGlmIHRhcmdldCA9PSAiX3RvcCI6
CisgICAgICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKE5vbmUpCisKKyAgICB3YWl0ID0gUG9sbCgK
KyAgICAgICAgc2Vzc2lvbiwKKyAgICAgICAgdGltZW91dD01LAorICAgICAgICBpZ25vcmVkX2V4
Y2VwdGlvbnM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiwKKyAgICAgICAgbWVzc2FnZT0iRXhwZWN0
ZWQgZWxlbWVudCBoYXMgbm90IGJlZW4gZm91bmQiKQorICAgIHdhaXQudW50aWwobGFtYmRhIHM6
IHMuZmluZC5jc3MoIiNmb28iKSkKKworCisjIENhcGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMg
bm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFi
aWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVlfSkKK2RlZiB0ZXN0X2xpbmtfY3Jv
c3Nfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgdXJsKToKKyAgICBiYXNlX3BhdGggPSAoIi93ZWJk
cml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1YmZyYW1lLmh0bWwiICsKKyAgICAgICAgICAgICAg
ICAgIj9waXBlPWhlYWRlcihDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSxzYW1lLW9yaWdpbiIp
CisgICAgdGFyZ2V0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiLCBkb21h
aW49ImFsdCIpCisKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0ne30nPmNsaWNr
IG1lPC9hPiIuZm9ybWF0KHRhcmdldF9wYWdlKSwgcHJvdG9jb2w9Imh0dHBzIikKKyAgICBsaW5r
ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0gZWxl
bWVudF9jbGljayhzZXNzaW9uLCBsaW5rKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQor
CisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRhcmdldF9wYWdlCisKKyAgICBzZXNzaW9uLmZp
bmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0ZXN0X2xpbmtfY2xvc2VzX3dp
bmRvdyhzZXNzaW9uKToKK2RlZiB0ZXN0X2xpbmtfY2xvc2VzX3dpbmRvdyhzZXNzaW9uLCBpbmxp
bmUpOgogICAgIG5ld19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQogICAgIHNlc3Npb24u
d2luZG93X2hhbmRsZSA9IG5ld19oYW5kbGUKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9pbnRvX3Zp
ZXcucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfY2xpY2svc2Nyb2xsX2ludG9fdmlldy5weQppbmRleCA0YjAyNmU5ODZhMjEuLmMyZGM2NDg1
Mjg2ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9pbnRv
X3ZpZXcucHkKQEAgLTIsNyArMiw3IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVz
dHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjZW50ZXJfcG9pbnQKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQorCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVs
ZW1lbnQpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKApAQCAtMTgsNyArMTgs
NyBAQCBkZWYgYXNzZXJ0X29uZV9jbGljayhzZXNzaW9uKToKICAgICByZXR1cm4gdHVwbGUoY2xp
Y2tzWzBdKQogCiAKLWRlZiB0ZXN0X3Njcm9sbF9pbnRvX3ZpZXcoc2Vzc2lvbik6CitkZWYgdGVz
dF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dCB0eXBlPXRleHQgdmFsdWU9RmVkZXJlcgogICAgICAg
ICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwdmg7IHRvcDogNTAwdmgiPiIiIikK
QEAgLTM4LDcgKzM4LDcgQEAgZGVmIHRlc3Rfc2Nyb2xsX2ludG9fdmlldyhzZXNzaW9uKToKIAog
CiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm9mZnNldCIsIHJhbmdlKDksIDAsIC0xKSkKLWRl
ZiB0ZXN0X3BhcnRpYWxseV92aXNpYmxlX2RvZXNfbm90X3Njcm9sbChzZXNzaW9uLCBvZmZzZXQp
OgorZGVmIHRlc3RfcGFydGlhbGx5X3Zpc2libGVfZG9lc19ub3Rfc2Nyb2xsKHNlc3Npb24sIG9m
ZnNldCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHN0
eWxlPgogICAgICAgICBib2R5IHt7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2VsZWN0LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3NlbGVjdC5w
eQppbmRleCBkY2Y5MmU2NDU4OTQuLjYyZDQwNzU1YjU5YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3NlbGVjdC5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfY2xpY2svc2VsZWN0LnB5CkBAIC0xLDcgKzEsNCBAQAotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRlc3RfY2xpY2tfb3B0aW9uKHNlc3Npb24pOgor
ZGVmIHRlc3RfY2xpY2tfb3B0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0x
Nyw3ICsxNCw3IEBAIGRlZiB0ZXN0X2NsaWNrX29wdGlvbihzZXNzaW9uKToKICAgICBhc3NlcnQg
bm90IG9wdGlvbnNbMF0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19tdWx0aXBsZV9vcHRp
b24oc2Vzc2lvbik6CitkZWYgdGVzdF9jbGlja19tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3QgbXVsdGlw
bGU+CiAgICAgICAgIDxvcHRpb24+Zmlyc3QKQEAgLTMzLDcgKzMwLDcgQEAgZGVmIHRlc3RfY2xp
Y2tfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBub3Qgb3B0aW9uc1sxXS5z
ZWxlY3RlZAogCiAKLWRlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX29wdGlvbihzZXNzaW9uKToK
K2RlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX29wdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdD4KICAgICAgICAgPG9wdGlv
bj5maXJzdApAQCAtNTMsNyArNTAsNyBAQCBkZWYgdGVzdF9jbGlja19wcmVzZWxlY3RlZF9vcHRp
b24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBvcHRpb25zWzFdLnNlbGVjdGVkCiAKIAotZGVm
IHRlc3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgorZGVmIHRl
c3RfY2xpY2tfcHJlc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0IG11bHRpcGxlPgogICAg
ICAgICA8b3B0aW9uPmZpcnN0CkBAIC03Myw3ICs3MCw3IEBAIGRlZiB0ZXN0X2NsaWNrX3ByZXNl
bGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IG9wdGlvbnNb
MV0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19kZXNlbGVjdHNfb3RoZXJzKHNlc3Npb24p
OgorZGVmIHRlc3RfY2xpY2tfZGVzZWxlY3RzX290aGVycyhzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdD4KICAgICAgICAgPG9wdGlv
bj5maXJzdApAQCAtOTIsNyArODksNyBAQCBkZWYgdGVzdF9jbGlja19kZXNlbGVjdHNfb3RoZXJz
KHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzBdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3Rf
Y2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJzKHNlc3Npb24pOgorZGVmIHRl
c3RfY2xpY2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJzKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0IG11bHRpcGxl
PgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0xMTIsNyArMTA5LDcgQEAgZGVmIHRlc3RfY2xp
Y2tfbXVsdGlwbGVfZG9lc19ub3RfZGVzZWxlY3Rfb3RoZXJzKHNlc3Npb24pOgogICAgIGFzc2Vy
dCBvcHRpb25zWzJdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfb3B0aW9u
KHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfb3B0aW9uKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAg
ICA8b3B0aW9uPmZpcnN0CkBAIC0xMzAsNyArMTI3LDcgQEAgZGVmIHRlc3RfY2xpY2tfc2VsZWN0
ZWRfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBvcHRpb25zWzFdLnNlbGVjdGVkCiAKIAot
ZGVmIHRlc3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgorZGVmIHRl
c3RfY2xpY2tfc2VsZWN0ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0IG11bHRpcGxlPgogICAgICAg
ICA8b3B0aW9uPmZpcnN0CkBAIC0xNTIsNyArMTQ5LDcgQEAgZGVmIHRlc3RfY2xpY2tfc2VsZWN0
ZWRfbXVsdGlwbGVfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBub3Qgb3B0aW9uc1sxXS5z
ZWxlY3RlZAogCiAKLWRlZiB0ZXN0X291dF9vZl92aWV3X2Ryb3Bkb3duKHNlc3Npb24pOgorZGVm
IHRlc3Rfb3V0X29mX3ZpZXdfZHJvcGRvd24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAgICAgICAgIDxvcHRpb24+MQpAQCAt
MTgyLDcgKzE3OSw3IEBAIGRlZiB0ZXN0X291dF9vZl92aWV3X2Ryb3Bkb3duKHNlc3Npb24pOgog
ICAgIGFzc2VydCBvcHRpb25zWzE0XS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X291dF9vZl92aWV3
X211bHRpcGxlKHNlc3Npb24pOgorZGVmIHRlc3Rfb3V0X29mX3ZpZXdfbXVsdGlwbGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Qg
bXVsdGlwbGU+CiAgICAgICAgIDxvcHRpb24+MQpAQCAtMjEzLDcgKzIxMCw3IEBAIGRlZiB0ZXN0
X291dF9vZl92aWV3X211bHRpcGxlKHNlc3Npb24pOgogICAgIGFzc2VydCBsYXN0X29wdGlvbi5z
ZWxlY3RlZAogCiAKLWRlZiB0ZXN0X29wdGlvbl9kaXNhYmxlZChzZXNzaW9uKToKK2RlZiB0ZXN0
X29wdGlvbl9kaXNhYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAgIDxvcHRpb24gZGlzYWJsZWQ+Zm9v
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zaGFkb3dfZG9tLnB5CmluZGV4IGI1MmYy
NzQyOWMxOS4uNDU0OTNiNzMwZDY5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2sv
c2hhZG93X2RvbS5weQpAQCAtMSw2ICsxLDUgQEAKLWZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIGltcG9ydCBweXRlc3QKK2Zyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIAogZGVmIGVsZW1l
bnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xMCw3ICs5LDggQEAgZGVmIGVsZW1lbnRf
Y2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQu
aWQpKQogCiAKLWRlZiBnZXRfY2hlY2tib3hfZG9tKCk6CitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBn
ZXRfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0dXJuIGlubGluZSgiIiIKICAgICAgICAg
PHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQgewpAQCAtMzIsOCAr
MzIsOCBAQCBkZWYgZ2V0X2NoZWNrYm94X2RvbSgpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgiY2xpY2tfb24iLCBbImN1c3RvbV9lbGVtZW50IiwgImNoZWNrYm94X2VsZW1lbnQiXSkK
LWRlZiB0ZXN0X3NoYWRvd19lbGVtZW50X2NsaWNrKHNlc3Npb24sIGNsaWNrX29uKToKLSAgICBz
ZXNzaW9uLnVybCA9IGdldF9jaGVja2JveF9kb20oKQorZGVmIHRlc3Rfc2hhZG93X2VsZW1lbnRf
Y2xpY2soc2Vzc2lvbiwgZ2V0X2NoZWNrYm94X2RvbSwgY2xpY2tfb24pOgorICAgIHNlc3Npb24u
dXJsID0gZ2V0X2NoZWNrYm94X2RvbQogICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQiLCBhbGw9RmFsc2UpCiAgICAgY2hlY2tib3hf
ZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQpAQCAtNDcsNyAr
NDcsOCBAQCBkZWYgdGVzdF9zaGFkb3dfZWxlbWVudF9jbGljayhzZXNzaW9uLCBjbGlja19vbik6
CiAgICAgYXNzZXJ0IGlzX3Bvc3RfY2hlY2tlZCA9PSBUcnVlCiAKIAotZGVmIGdldF9uZXN0ZWRf
c2hhZG93X2NoZWNrYm94X2RvbSgpOgorQHB5dGVzdC5maXh0dXJlCitkZWYgZ2V0X25lc3RlZF9z
aGFkb3dfY2hlY2tib3hfZG9tKGlubGluZSk6CiAgICAgcmV0dXJuIGlubGluZSgiIiIKICAgICAg
ICAgPHN0eWxlPgogICAgICAgICAgICAgY3VzdG9tLW5lc3RpbmctZWxlbWVudCB7CkBAIC04Myw4
ICs4NCw4IEBAIGRlZiBnZXRfbmVzdGVkX3NoYWRvd19jaGVja2JveF9kb20oKToKIAogCiBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNsaWNrX29uIiwgWyJvdXRlcl9lbGVtZW50IiwgImlubmVy
X2VsZW1lbnQiLCAiY2hlY2tib3hfZWxlbWVudCJdKQotZGVmIHRlc3RfbmVzdGVkX3NoYWRvd19l
bGVtZW50X2NsaWNrKHNlc3Npb24sIGNsaWNrX29uKToKLSAgICBzZXNzaW9uLnVybCA9IGdldF9u
ZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSgpCitkZWYgdGVzdF9uZXN0ZWRfc2hhZG93X2VsZW1l
bnRfY2xpY2soc2Vzc2lvbiwgZ2V0X25lc3RlZF9zaGFkb3dfY2hlY2tib3hfZG9tLCBjbGlja19v
bik6CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfbmVzdGVkX3NoYWRvd19jaGVja2JveF9kb20KICAg
ICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLW5lc3RpbmctZWxlbWVu
dCIsIGFsbD1GYWxzZSkKICAgICBpbm5lcl9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3Njcmlw
dCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2N1c3RvbS1j
aGVja2JveC1lbGVtZW50JykiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ3M9KG91dGVyX2VsZW1lbnQsKSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdGFsZS5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9z
dGFsZS5weQppbmRleCBjZDI0ZGQ3MDYwM2QuLjhkMmFlMzQ4ZWY0ZiAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N0
YWxlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZWxlbWVudF9jbGljay9zdGFsZS5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpA
QCAtOSw3ICs4LDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAg
ICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiB0ZXN0X2lzX3N0YWxlKHNl
c3Npb24pOgorZGVmIHRlc3RfaXNfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGJ1dHRvbj5mb288L2J1dHRvbj4iKQogICAgIGJ1dHRvbiA9IHNlc3Np
b24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGJ1dHRvbj5iYXI8L2J1dHRvbj4iKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvdGVzdF9jbGlj
a193ZHNwZWMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9jbGljay9zdXBwb3J0L3Rlc3RfY2xpY2tfd2RzcGVjLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hOTQ1MWVjODJiZWMKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfY2xpY2svc3VwcG9ydC90ZXN0X2NsaWNrX3dkc3BlYy5odG1sCkBAIC0wLDAgKzEsMTAwIEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDx0aXRsZT5UZXN0IEVsZW1lbnQgQ2xpY2s8L3RpdGxlPgorICAgIDxzdHlsZT4KKyAgICAg
IGRpdiB7IHBhZGRpbmc6MHB4OyBtYXJnaW46IDBweDsgfQorICAgICAgI3RyYWNrUG9pbnRlciB7
IHBvc2l0aW9uOiBmaXhlZDsgfQorICAgICAgI3Jlc3VsdENvbnRhaW5lciB7IHdpZHRoOiA2MDBw
eDsgaGVpZ2h0OiA2MHB4OyB9CisgICAgICAuYXJlYSB7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOyB9CisgICAgICAuYmxvY2sgeyB3aWR0aDogNXB4
OyBoZWlnaHQ6IDVweDsgYm9yZGVyOiBzb2xpZCAxcHggcmVkOyB9CisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0PgorICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgIHZhciBlbHMgPSB7fTsK
KyAgICAgICAgdmFyIGFsbEV2ZW50cyA9IHsgZXZlbnRzOiBbXSB9OworICAgICAgICBmdW5jdGlv
biBkaXNwbGF5TWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZXZlbnRzIikuaW5uZXJIVE1MID0gIjxwPiIgKyBtZXNzYWdlICsgIjwvcD4iOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5kTWVzc2FnZShtZXNzYWdlKSB7Cisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRzIikuaW5uZXJIVE1MICs9
ICI8cD4iICsgbWVzc2FnZSArICI8L3A+IjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHJlY29yZFBvaW50ZXJFdmVudChldmVudCkgeworICAgICAgICAgIGlmIChldmVudC50eXBlID09
PSAiY29udGV4dG1lbnUiKSB7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwor
ICAgICAgICAgIH0KKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRzLnB1c2goeworICAgICAgICAg
ICAgInR5cGUiOiBldmVudC50eXBlLAorICAgICAgICAgICAgImJ1dHRvbiI6IGV2ZW50LmJ1dHRv
biwKKyAgICAgICAgICAgICJidXR0b25zIjogZXZlbnQuYnV0dG9ucywKKyAgICAgICAgICAgICJw
YWdlWCI6IGV2ZW50LnBhZ2VYLAorICAgICAgICAgICAgInBhZ2VZIjogZXZlbnQucGFnZVksCisg
ICAgICAgICAgICAiY3RybEtleSI6IGV2ZW50LmN0cmxLZXksCisgICAgICAgICAgICAibWV0YUtl
eSI6IGV2ZW50Lm1ldGFLZXksCisgICAgICAgICAgICAiYWx0S2V5IjogZXZlbnQuYWx0S2V5LAor
ICAgICAgICAgICAgInNoaWZ0S2V5IjogZXZlbnQuc2hpZnRLZXksCisgICAgICAgICAgICAidGFy
Z2V0IjogZXZlbnQudGFyZ2V0LmlkCisgICAgICAgICAgfSk7CisgICAgICAgICAgYXBwZW5kTWVz
c2FnZShldmVudC50eXBlICsgIiAiICsKKyAgICAgICAgICAgICAgImJ1dHRvbjogIiArIGV2ZW50
LmJ1dHRvbiArICIsICIgKworICAgICAgICAgICAgICAicGFnZVg6ICIgKyBldmVudC5wYWdlWCAr
ICIsICIgKworICAgICAgICAgICAgICAicGFnZVk6ICIgKyBldmVudC5wYWdlWSArICIsICIgKwor
ICAgICAgICAgICAgICAiYnV0dG9uOiAiICsgZXZlbnQuYnV0dG9uICsgIiwgIiArCisgICAgICAg
ICAgICAgICJidXR0b25zOiAiICsgZXZlbnQuYnV0dG9ucyArICIsICIgKworICAgICAgICAgICAg
ICAiY3RybEtleTogIiArIGV2ZW50LmN0cmxLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgImFs
dEtleTogIiArIGV2ZW50LmFsdEtleSArICIsICIgKworICAgICAgICAgICAgICAibWV0YUtleTog
IiArIGV2ZW50Lm1ldGFLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgInNoaWZ0S2V5OiAiICsg
ZXZlbnQuc2hpZnRLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRhcmdldCBpZDogIiArIGV2
ZW50LnRhcmdldC5pZCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZWNvcmRGaXJz
dFBvaW50ZXJNb3ZlKGV2ZW50KSB7CisgICAgICAgICAgcmVjb3JkUG9pbnRlckV2ZW50KGV2ZW50
KTsKKyAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgcmVj
b3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZXNl
dEV2ZW50cygpIHsKKyAgICAgICAgICBhbGxFdmVudHMuZXZlbnRzLmxlbmd0aCA9IDA7CisgICAg
ICAgICAgZGlzcGxheU1lc3NhZ2UoIiIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
bW92ZShlbCwgb2Zmc2V0WCwgb2Zmc2V0WSwgdGltZW91dCkgeworICAgICAgICAgIHJldHVybiBm
dW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgZWwuc3R5bGUudG9wID0gZXZlbnQuY2xpZW50WSArIG9mZnNldFkgKyAicHgi
OworICAgICAgICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gZXZlbnQuY2xpZW50WCArIG9mZnNldFgg
KyAicHgiOworICAgICAgICAgICAgfSwgdGltZW91dCk7CisgICAgICAgICAgfTsKKyAgICAgICAg
fQorCisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgb3V0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib3V0ZXIiKTsKKyAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vt
b3ZlIiwgcmVjb3JkRmlyc3RQb2ludGVyTW92ZSk7CisgICAgICAgICAgb3V0ZXIuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIG91dGVyLmFk
ZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAg
ICBvdXRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCByZWNvcmRQb2ludGVyRXZlbnQp
OworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCByZWNvcmRQb2lu
dGVyRXZlbnQpOworICAgICAgICAgIG91dGVyLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51
IiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKworICAgICAgICAgIC8vdmlzdWFsIGN1ZSBmb3IgbW91
c2Vtb3ZlCisgICAgICAgICAgdmFyIHBvaW50ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dHJhY2tQb2ludGVyIik7CisgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
bW92ZSIsIG1vdmUocG9pbnRlciwgMTUsIDE1LCAzMCkpOworICAgICAgICB9KTsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0cmFja1BvaW50ZXIiIGNsYXNzPSJi
bG9jayI+PC9kaXY+CisgIDxkaXY+CisgICAgPGgyPkNsaWNrUmVwb3J0ZXI8L2gyPgorICAgIDxk
aXYgaWQ9Im91dGVyIiBjbGFzcz0iYXJlYSI+CisgICAgPC9kaXY+CisgIDwvZGl2PgorICA8ZGl2
IGlkPSJyZXN1bHRDb250YWluZXIiPgorICAgIDxoMj5FdmVudHM8L2gyPgorICAgIDxkaXYgaWQ9
ImV2ZW50cyI+PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNr
L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21wdHMucHkKaW5kZXggYjM3MDZmZTRhZjE2Li4x
NDBhY2ViM2NlZGYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3VzZXJfcHJv
bXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBh
c3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAK
IAogZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CkBAIC0xNCw3ICsxMyw3IEBA
IGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwp
OgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0z
Miw3ICszMSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUwLDcgKzQ5LDcgQEAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xv
c2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cs
IGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQg
dHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVudF9lZGl0YWJsZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMv
Y29udGVudF9lZGl0YWJsZS5weQppbmRleCAxNmViYzJkMDE4ZmIuLjdmNjI4Zjk2YTUzYSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X3NlbmRfa2V5cy9jb250ZW50X2VkaXRhYmxlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVudF9lZGl0
YWJsZS5weQpAQCAtMSw5ICsxLDQgQEAKLWltcG9ydCBweXRlc3QKLQotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotZGVmIHRlc3Rfc2V0c19pbnNlcnRpb25fcG9p
bnRfdG9fZW5kKHNlc3Npb24pOgorZGVmIHRlc3Rfc2V0c19pbnNlcnRpb25fcG9pbnRfdG9fZW5k
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoJzxkaXYgY29udGVu
dGVkaXRhYmxlPXRydWU+SGVsbG8sPC9kaXY+JykKICAgICBpbnB1dCA9IHNlc3Npb24uZmluZC5j
c3MoImRpdiIsIGFsbD1GYWxzZSkKICAgICBpbnB1dC5zZW5kX2tleXMoJyB3b3JsZCEnKQpAQCAt
MTUsNyArMTAsNyBAQCBkZWYgdGVzdF9zZXRzX2luc2VydGlvbl9wb2ludF90b19lbmQoc2Vzc2lv
bik6CiAjCiAjIDEzLiBTZXQgdGhlIHRleHQgaW5zZXJ0aW9uIGNhcmV0IHVzaW5nIHNldCBzZWxl
Y3Rpb24gcmFuZ2UgdXNpbmcgY3VycmVudAogIyAgICAgdGV4dCBsZW5ndGggZm9yIGJvdGggdGhl
IHN0YXJ0IGFuZCBlbmQgcGFyYW1ldGVycy4KLWRlZiB0ZXN0X3NldHNfaW5zZXJ0aW9uX3BvaW50
X3RvX2FmdGVyX2xhc3RfdGV4dF9ub2RlKHNlc3Npb24pOgorZGVmIHRlc3Rfc2V0c19pbnNlcnRp
b25fcG9pbnRfdG9fYWZ0ZXJfbGFzdF90ZXh0X25vZGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgnPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZT5IZWw8c3Bhbj5s
bzwvc3Bhbj4sPC9kaXY+JykKICAgICBpbnB1dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFs
bD1GYWxzZSkKICAgICBpbnB1dC5zZW5kX2tleXMoIiB3b3JsZCEiKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5
cy9ldmVudHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfc2VuZF9rZXlzL2V2ZW50cy5weQppbmRleCA0MWIwMGVmMzdmYTIuLjRiZTE0MzJi
ZjNjMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkKQEAg
LTUsNyArNSw2IEBAIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNz
ZXJ0X2V2ZW50c19lcXVhbCwKICAgICBhc3NlcnRfc3VjY2VzcywKICkKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IG1hcF9maWxlc190b19t
dWx0aWxpbmVfdGV4dAogCkBAIC0zMSw3ICszMCw3IEBAIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhz
ZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0pCiAKIAotZGVm
IHRlc3RfZmlsZV91cGxvYWQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBhZGRfZXZlbnRfbGlzdGVu
ZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYgdGVzdF9maWxlX3VwbG9hZChzZXNzaW9uLCBjcmVh
dGVfZmlsZXMsIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCBpbmxpbmUpOgog
ICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImlucHV0IiwKICAgICAgICAgImNoYW5n
ZSIsCkBAIC01MCw3ICs0OSw3IEBAIGRlZiB0ZXN0X2ZpbGVfdXBsb2FkKHNlc3Npb24sIGNyZWF0
ZV9maWxlcywgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpCiAKIAogQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJ0YWciLCBbImlucHV0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVz
dF9mb3JtX2NvbnRyb2xfc2VuZF90ZXh0KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRy
YWNrZWRfZXZlbnRzLCB0YWcpOgorZGVmIHRlc3RfZm9ybV9jb250cm9sX3NlbmRfdGV4dChzZXNz
aW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgaW5saW5lLCB0YWcpOgog
ICAgIGV4cGVjdGVkX2V2ZW50cyA9IFsKICAgICAgICAgImZvY3VzIiwKICAgICAgICAgImtleWRv
d24iLApAQCAtNzcsNyArNzYsNyBAQCBkZWYgdGVzdF9mb3JtX2NvbnRyb2xfc2VuZF90ZXh0KHNl
c3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCB0YQogCiAKIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgidGFnIiwgWyJpbnB1dCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRl
c3Rfbm90X2JsdXJyZWQoc2Vzc2lvbiwgdGFnKToKK2RlZiB0ZXN0X25vdF9ibHVycmVkKHNlc3Np
b24sIGlubGluZSwgdGFnKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPCVzPiIgJSB0YWcp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBhbGw9RmFsc2UpCiAKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ZpbGVfdXBsb2FkLnB5CmluZGV4IDdm
YmFiOGE2NmFhNC4uZWY3OTJmNGRkODU1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ZpbGVfdXBsb2FkLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9zZW5kX2tleXMvZmlsZV91cGxvYWQucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQgcHl0ZXN0
CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9maWxlc191cGxvYWRlZCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxp
bmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IG1hcF9maWxlc190b19tdWx0aWxpbmVf
dGV4dAogCkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBl
bGVtZW50LCB0ZXh0KToKICAgICAgICAgeyJ0ZXh0IjogdGV4dH0pCiAKIAotZGVmIHRlc3RfZW1w
dHlfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2VtcHR5X3RleHQoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZT4iKQogICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMjIsNyArMjEs
NyBAQCBkZWYgdGVzdF9lbXB0eV90ZXh0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzKHNl
c3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0aXBsZV9maWxlcyhzZXNzaW9uLCBj
cmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iLCAi
YmFyIl0pCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBtdWx0
aXBsZT4iKQpAQCAtMzUsNyArMzQsNyBAQCBkZWYgdGVzdF9tdWx0aXBsZV9maWxlcyhzZXNzaW9u
LCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVt
ZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxlc19sYXN0X3BhdGhfbm90X2Zv
dW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0aXBsZV9maWxlc19sYXN0
X3BhdGhfbm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxl
cyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKICAgICBmaWxlcy5hcHBlbmQoImZvbyBi
YXIiKQogCkBAIC00OSw3ICs0OCw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX2xhc3RfcGF0
aF9ub3RfZm91bmQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBs
b2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgW10pCiAKIAotZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNf
d2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0
ZXN0X211bHRpcGxlX2ZpbGVzX3dpdGhvdXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNy
ZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJi
YXIiXSkKIAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlPiIpCkBA
IC02Miw3ICs2MSw3IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3dpdGhvdXRfbXVsdGlwbGVf
YXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9h
ZGVkKHNlc3Npb24sIGVsZW1lbnQsIFtdKQogCiAKLWRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3Nl
bmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxlX2ZpbGVz
X3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpcnN0X2Zp
bGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogICAgIHNlY29uZF9maWxlcyA9IGNy
ZWF0ZV9maWxlcyhbImpvaG4iLCAiZG9lIl0pCiAKQEAgLTgwLDcgKzc5LDcgQEAgZGVmIHRlc3Rf
bXVsdGlwbGVfZmlsZXNfc2VuZF90d2ljZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFz
c2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaXJzdF9maWxlcyArIHNlY29u
ZF9maWxlcykKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9maWxlc19yZXNldF93aXRoX2VsZW1lbnRf
Y2xlYXIoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3Jl
c2V0X3dpdGhfZWxlbWVudF9jbGVhcihzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAg
ICAgZmlyc3RfZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAgICAgc2Vjb25k
X2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiam9obiIsICJkb2UiXSkKIApAQCAtMTAyLDcgKzEwMSw3
IEBAIGRlZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3Jlc2V0X3dpdGhfZWxlbWVudF9jbGVhcihzZXNz
aW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBl
bGVtZW50LCBzZWNvbmRfZmlsZXMpCiAKIAotZGVmIHRlc3Rfc2luZ2xlX2ZpbGUoc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3NpbmdsZV9maWxlKHNlc3Npb24sIGNyZWF0ZV9maWxl
cywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogCiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKQEAgLTExNCw3ICsxMTMsNyBA
QCBkZWYgdGVzdF9zaW5nbGVfZmlsZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2Vy
dF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9z
aW5nbGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxlX2F0dHJpYnV0ZShzZXNzaW9uLCBj
cmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc2luZ2xlX2ZpbGVfcmVwbGFjZXNfd2l0aG91dF9tdWx0
aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVz
ID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKQEAgLTEyOSw3ICsxMjgsNyBAQCBkZWYgdGVzdF9zaW5n
bGVfZmlsZV9yZXBsYWNlc193aXRob3V0X211bHRpcGxlX2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVh
dGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBb
ZmlsZXNbMV1dKQogCiAKLWRlZiB0ZXN0X3NpbmdsZV9maWxlX2FwcGVuZHNfd2l0aF9tdWx0aXBs
ZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3NpbmdsZV9maWxl
X2FwcGVuZHNfd2l0aF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBp
bmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogCiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGUgbXVsdGlwbGU+IikKQEAgLTE0
NCw3ICsxNDMsNyBAQCBkZWYgdGVzdF9zaW5nbGVfZmlsZV9hcHBlbmRzX3dpdGhfbXVsdGlwbGVf
YXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9h
ZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X3RyYW5zcGFyZW50KHNl
c3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF90cmFuc3BhcmVudChzZXNzaW9uLCBjcmVh
dGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgdHlwZT1maWxlIHN0eWxlPSJvcGFjaXR5
OiAwIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZh
bHNlKQpAQCAtMTU0LDcgKzE1Myw3IEBAIGRlZiB0ZXN0X3RyYW5zcGFyZW50KHNlc3Npb24sIGNy
ZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQs
IGZpbGVzKQogCiAKLWRlZiB0ZXN0X29ic2N1cmVkKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6Citk
ZWYgdGVzdF9vYnNjdXJlZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmls
ZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIK
ICAgICAgICAgPHN0eWxlPgpAQCAtMTc4LDcgKzE3Nyw3IEBAIGRlZiB0ZXN0X29ic2N1cmVkKHNl
c3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Npb24s
IGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X291dHNpZGVfdmlld3BvcnQoc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X291dHNpZGVfdmlld3BvcnQoc2Vzc2lvbiwgY3JlYXRl
X2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0pCiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9ZmlsZSBzdHlsZT0ibWFyZ2luLWxl
ZnQ6IC0xMDB2aCI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKQEAgLTE4OCw3ICsxODcsNyBAQCBkZWYgdGVzdF9vdXRzaWRlX3ZpZXdwb3J0
KHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3VwbG9hZGVkKHNlc3Np
b24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X2hpZGRlbihzZXNzaW9uLCBjcmVhdGVf
ZmlsZXMpOgorZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToK
ICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgdHlwZT1maWxlIGhpZGRlbj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTE5OCw3ICsxOTcsNyBAQCBkZWYgdGVzdF9o
aWRkZW4oc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQo
c2Vzc2lvbiwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Np
b24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbiwgY3JlYXRl
X2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0pCiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9ZmlsZSBzdHlsZT0iZGlzcGxheTog
bm9uZSI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1G
YWxzZSkKQEAgLTIwOSw3ICsyMDgsNyBAQCBkZWYgdGVzdF9kaXNwbGF5X25vbmUoc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzKToKIAogCiBAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsic3RyaWN0Rmls
ZUludGVyYWN0YWJpbGl0eSI6IFRydWV9KQotZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihzZXNzaW9u
LCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihzZXNzaW9uLCBjcmVhdGVf
ZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBoaWRkZW4+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0yMTksNyArMjE4
LDcgQEAgZGVmIHRlc3Rfc3RyaWN0X2hpZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogCiAK
IEBweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJzdHJpY3RGaWxlSW50ZXJhY3RhYmlsaXR5Ijog
VHJ1ZX0pCi1kZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGNyZWF0ZV9maWxl
cyk6CitkZWYgdGVzdF9zdHJpY3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGNyZWF0ZV9maWxlcywg
aW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJdKQogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWZpbGUgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPiIi
IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Vs
ZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkK
aW5kZXggZTUzZDA2MTBmMWVkLi4wNDAzZGM5MjM3MmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZm9ybV9j
b250cm9scy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfc2VuZF9rZXlzL2Zvcm1fY29udHJvbHMucHkKQEAgLTEsNSArMSw0IEBACiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2VsZW1lbnRfaGFzX2ZvY3Vz
Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZWxlbWVu
dF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CkBAIC0xMCw3ICs5LDcgQEAgZGVm
IGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgogICAgICAgICB7InRl
eHQiOiB0ZXh0fSkKIAogCi1kZWYgdGVzdF9pbnB1dChzZXNzaW9uKToKK2RlZiB0ZXN0X2lucHV0
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBh
c3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgpAQCAtMjAsNyArMTksNyBAQCBk
ZWYgdGVzdF9pbnB1dChzZXNzaW9uKToKICAgICBhc3NlcnRfZWxlbWVudF9oYXNfZm9jdXMoZWxl
bWVudCkKIAogCi1kZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uKToKK2RlZiB0ZXN0X3RleHRhcmVh
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0ZXh0YXJlYT4i
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJ0ZXh0YXJlYSIsIGFsbD1GYWxzZSkK
ICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiIgpAQCAtMzAsNyArMjks
NyBAQCBkZWYgdGVzdF90ZXh0YXJlYShzZXNzaW9uKToKICAgICBhc3NlcnRfZWxlbWVudF9oYXNf
Zm9jdXMoZWxlbWVudCkKIAogCi1kZWYgdGVzdF9pbnB1dF9hcHBlbmQoc2Vzc2lvbik6CitkZWYg
dGVzdF9pbnB1dF9hcHBlbmQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IHZhbHVlPWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikg
PT0gImEiCkBAIC00Miw3ICs0MSw3IEBAIGRlZiB0ZXN0X2lucHV0X2FwcGVuZChzZXNzaW9uKToK
ICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiYWJjIgogCiAKLWRlZiB0
ZXN0X3RleHRhcmVhX2FwcGVuZChzZXNzaW9uKToKK2RlZiB0ZXN0X3RleHRhcmVhX2FwcGVuZChz
ZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGV4dGFyZWE+YTwv
dGV4dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBh
bGw9RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0gImEiCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Vs
ZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvaW50ZXJhY3RhYmlsaXR5
LnB5CmluZGV4IDA3MTc1MzdhZTVkOC4uMjczODQzZmI3YjQ2IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2lu
dGVyYWN0YWJpbGl0eS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0YWJpbGl0eS5weQpAQCAtMSw1ICsx
LDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJhbWUsIGlu
bGluZQogCiAKIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToK
QEAgLTEwLDcgKzksNyBAQCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwg
dGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9KQogCiAKLWRlZiB0ZXN0X2JvZHlfaXNfaW50
ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfYm9keV9pc19pbnRlcmFjdGFibGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGJvZHkg
b25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZSArPSBldmVu
dC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAgLTI5LDcgKzI4LDcgQEAgZGVmIHRlc3RfYm9k
eV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgi
dmFsdWUiKSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0X2RvY3VtZW50X2VsZW1lbnRfaXNfaW50ZXJh
Y3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfZG9jdW1lbnRfZWxlbWVudF9pc19pbnRlcmFjdGFi
bGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAg
ICAgPGh0bWwgb25rZXlwcmVzcz0iZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1
ZSArPSBldmVudC5rZXkiPgogICAgICAgICAgIDxpbnB1dD4KQEAgLTQ5LDcgKzQ4LDcgQEAgZGVm
IHRlc3RfZG9jdW1lbnRfZWxlbWVudF9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0X2lmcmFt
ZV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9pZnJhbWVfaXNfaW50ZXJhY3Rh
YmxlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShp
ZnJhbWUoIiIiCiAgICAgICAgIDxib2R5IG9ua2V5cHJlc3M9ImRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ2lucHV0JykudmFsdWUgKz0gZXZlbnQua2V5Ij4KICAgICAgICAgICA8aW5wdXQ+CkBAIC03
Myw3ICs3Miw3IEBAIGRlZiB0ZXN0X2lmcmFtZV9pc19pbnRlcmFjdGFibGUoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0IHJlc3VsdC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgogCiAKLWRlZiB0ZXN0
X3RyYW5zcGFyZW50X2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF90cmFuc3BhcmVudF9lbGVt
ZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0
IHN0eWxlPSJvcGFjaXR5OiAwIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
ImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC04Miw3ICs4MSw3IEBAIGRlZiB0ZXN0X3RyYW5zcGFy
ZW50X2VsZW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVl
IikgPT0gImZvbyIKIAogCi1kZWYgdGVzdF9yZWFkb25seV9lbGVtZW50KHNlc3Npb24pOgorZGVm
IHRlc3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgcmVhZG9ubHk+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTkxLDcgKzkwLDcgQEAgZGVmIHRlc3RfcmVh
ZG9ubHlfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFs
dWUiKSA9PSAiIgogCiAKLWRlZiB0ZXN0X29ic2N1cmVkX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYg
dGVzdF9vYnNjdXJlZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCiAgICAgICA8aW5wdXQ+CiAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjog
cmVsYXRpdmU7IHRvcDogLTNlbTsgaGVpZ2h0OiA1ZW07IGJhY2tncm91bmQ6IGJsdWU7Ij48L2Rp
dj4KQEAgLTEwMyw3ICsxMDIsNyBAQCBkZWYgdGVzdF9vYnNjdXJlZF9lbGVtZW50KHNlc3Npb24p
OgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIpID09ICJmb28iCiAKIAotZGVm
IHRlc3Rfbm90X2FfZm9jdXNhYmxlX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9ub3RfYV9m
b2N1c2FibGVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8ZGl2PmZvbzwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRp
diIsIGFsbD1GYWxzZSkKIApAQCAtMTExLDcgKzExMCw3IEBAIGRlZiB0ZXN0X25vdF9hX2ZvY3Vz
YWJsZV9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1l
bnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24p
OgorZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBub25lIj4iIiIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0xMTksNyAr
MTE4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3Rfdmlz
aWJpbGl0eV9oaWRkZW4oc2Vzc2lvbik6CitkZWYgdGVzdF92aXNpYmlsaXR5X2hpZGRlbihzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0i
dmlzaWJpbGl0eTogaGlkZGVuIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
ImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0xMjcsNyArMTI2LDcgQEAgZGVmIHRlc3RfdmlzaWJp
bGl0eV9oaWRkZW4oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVu
dCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbik6CitkZWYg
dGVzdF9oaWRkZW4oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IGhpZGRlbj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKIApAQCAtMTM1LDcgKzEzNCw3IEBAIGRlZiB0ZXN0X2hpZGRlbihzZXNzaW9u
KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUi
KQogCiAKLWRlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZGlzYWJsZWQoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgZGlzYWJs
ZWQ+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxz
ZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192aWV3LnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zY3JvbGxf
aW50b192aWV3LnB5CmluZGV4IDE4Zjg3ZmZhYWVjNi4uMjA1YzRlMzBlMWVkIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2Vu
ZF9rZXlzL3Njcm9sbF9pbnRvX3ZpZXcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192aWV3LnB5
CkBAIC0xLDYgKzEsNiBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgaXNfZWxlbWVudF9p
bl92aWV3cG9ydAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCisKIAog
ZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgogICAgIHJldHVy
biBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKApAQCAtMTAsNyArMTAsNyBAQCBkZWYgZWxlbWVudF9z
ZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9
KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9ub3Rfc2Nyb2xsYWJsZV92aWV3cG9y
dChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9ub3Rfc2Nyb2xsYWJsZV92
aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IC05OTk5cHg7XCI+IikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTIwLDcg
KzIwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX25vdF9zY3JvbGxhYmxlX3ZpZXdw
b3J0KHNlc3Npb24pOgogICAgIGFzc2VydCBub3QgaXNfZWxlbWVudF9pbl92aWV3cG9ydChzZXNz
aW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9zY3JvbGxhYmxl
X3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFi
bGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IHN0eWxlPVwibWFyZ2luLXRvcDogMTAydmg7XCI+IikKICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTMwLDcgKzMwLDcgQEAgZGVm
IHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CiAg
ICAgYXNzZXJ0IGlzX2VsZW1lbnRfaW5fdmlld3BvcnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1k
ZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmll
d3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9vdXRzaWRl
X29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdCBzdHlsZT0ibWFyZ2luLXRvcDogMTAydmg7
Ij4KICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb28iPmZvbzwvb3B0aW9uPgpAQCAtNDcsNyAr
NDcsNyBAQCBkZWYgdGVzdF9vcHRpb25fc2VsZWN0X2NvbnRhaW5lcl9vdXRzaWRlX29mX3Njcm9s
bGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGlzX2VsZW1lbnRfaW5fdmlld3Bv
cnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9vcHRpb25fc3RheXNfb3V0c2lkZV9v
Zl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRlc3Rfb3B0aW9uX3N0YXlzX291
dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0IG11bHRpcGxlIHN0eWxlPSJoZWln
aHQ6IDEwNXZoOyBtYXJnaW4tdG9wOiAxMDB2aDsiPgogICAgICAgICAgIDxvcHRpb24gdmFsdWU9
ImZvbyIgaWQ9ImZvbyIgc3R5bGU9ImhlaWdodDogMTAwdmg7Ij5mb288L29wdGlvbj4KQEAgLTY2
LDcgKzY2LDcgQEAgZGVmIHRlc3Rfb3B0aW9uX3N0YXlzX291dHNpZGVfb2Zfc2Nyb2xsYWJsZV92
aWV3cG9ydChzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IGlzX2VsZW1lbnRfaW5fdmlld3BvcnQo
c2Vzc2lvbiwgb3B0aW9uX2JhcikKIAogCi1kZWYgdGVzdF9jb250ZW50ZWRpdGFibGVfZWxlbWVu
dF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9jb250
ZW50ZWRpdGFibGVfZWxlbWVudF9vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdiBjb250ZW50ZWRpdGFi
bGUgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMDJ2aDtcIj48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2Vu
ZF9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
bGVtZW50X3NlbmRfa2V5cy9zZW5kX2tleXMucHkKaW5kZXggZWRmOTFlNzc2MTQ4Li5hYTM5M2Ux
NmQ4MTQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2VuZF9rZXlz
LnB5CkBAIC00LDcgKzQsNiBAQCBmcm9tIHdlYmRyaXZlciBpbXBvcnQgRWxlbWVudAogZnJvbSB3
ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNl
c3Npb24sIGVsZW1lbnQsIHRleHQpOgpAQCAtMTUsNyArMTQsNyBAQCBkZWYgZWxlbWVudF9zZW5k
X2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9KQog
CiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgorZGVmIHRl
c3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0yNSw3ICsyNCw3IEBAIGRlZiB0ZXN0X251bGxf
cGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgogICAgICAgICBhc3NlcnRfZXJyb3IoUmVz
cG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0
ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNl
X3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
IApAQCAtMzYsMTAgKzM1LDE3IEBAIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lv
bik6CiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93
aW5kb3cpOgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBzZXNzaW9uKQorICAgIHJlc3Bv
bnNlID0gZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgImZvbyIpCisgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgb3JpZ2luYWxfaGFu
ZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdwogICAgIHJlc3BvbnNlID0gZWxlbWVudF9zZW5k
X2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNl
LCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2lu
YWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVt
ZW50LCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQi
KQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1l
KToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikKQEAgLTQ5LDcgKzU1LDcg
QEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgog
CiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbVHJ1ZSwgTm9uZSwgMSwgW10s
IHt9XSkKLWRlZiB0ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNlc3Npb24sIHZhbHVlKToKK2RlZiB0
ZXN0X2ludmFsaWRfdGV4dF90eXBlKHNlc3Npb24sIGlubGluZSwgdmFsdWUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTU3LDcgKzYzLDcgQEAgZGVmIHRlc3RfaW52YWxp
ZF90ZXh0X3R5cGUoc2Vzc2lvbiwgdmFsdWUpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
ImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X3N0YWxlX2VsZW1lbnQoc2Vzc2lvbik6
CitkZWYgdGVzdF9zdGFsZV9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy91c2VyX3Byb21wdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9r
ZXlzL3VzZXJfcHJvbXB0cy5weQppbmRleCA2MjFiZGZmYTY2NDIuLmMxMDQ2ODQwZmE0ZSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X3NlbmRfa2V5cy91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy91c2VyX3Byb21wdHMucHkK
QEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1
Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBl
bGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKQEAgLTE1LDcgKzE0LDcg
QEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAg
ICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9
dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9
RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAg
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUxLDcgKzUw
LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvY29sbGVjdGlvbnMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVf
YXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CmluZGV4IDQ4NGEyNDdjZmZkOS4uMmRjOWI5YTAw
OWFjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvY29s
bGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBpbXBvcnQgb3MKIAotZnJvbSBzaXggaW1wb3J0
IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3Nh
bWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQs
IGFyZ3M9Tm9uZSk6CkBAIC0zNSw3ICszMiw3IEBAIGRlZiB0ZXN0X2FycmF5KHNlc3Npb24pOgog
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0pCiAKIAotZGVmIHRlc3RfZmlsZV9s
aXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxlX2xpc3Qoc2Vzc2lvbiwgdG1wZGly
LCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2luKCJmb28udHh0IiksIHRtcGRpci5q
b2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9
ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNTQsMTEgKzUxLDExIEBAIGRlZiB0ZXN0X2ZpbGVfbGlzdChz
ZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChmaWxlcywg
dmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhY3R1YWwsIGRpY3QpCiAgICAgICAg
IGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFjdHVh
bFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFjdHVhbFsi
bmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRoLmJhc2VuYW1lKHN0cihleHBlY3Rl
ZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVjdGlvbihz
ZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAgICAgIDxw
PmJhcgpAQCAtODYsNyArODMsNyBAQCBkZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9uKHNlc3Np
b24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgcHNbMV0sIHZhbHVlWzVdKQog
CiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfY29s
bGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgog
ICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC0xMDQsNyArMTAxLDcgQEAgZGVmIHRl
c3RfaHRtbF9jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50
KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRy
b2xzX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1sX2Zvcm1fY29udHJvbHNfY29s
bGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgog
ICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgIDxpbnB1dD4KQEAgLTEyNCw3ICsxMjEsNyBAQCBk
ZWYgdGVzdF9odG1sX2Zvcm1fY29udHJvbHNfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAg
YXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0
ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9vcHRp
b25zX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPHNlbGVjdD4KICAgICAgICAgICAgIDxvcHRpb24+CkBAIC0xNDQsNyAr
MTQxLDcgQEAgZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAgICAg
ICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAogCi1k
ZWYgdGVzdF9ub2RlX2xpc3Qoc2Vzc2lvbik6CitkZWYgdGVzdF9ub2RlX2xpc3Qoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAg
ICAgICAgIDxwPmJhcgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3Nj
cmlwdC9leGVjdXRlX2FzeW5jLnB5CmluZGV4IGM3NjljYTgxMWVlMC4uNTc0NmVkNmYwNWYzIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4
ZWN1dGVfYXN5bmNfc2NyaXB0L2V4ZWN1dGVfYXN5bmMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9leGVjdXRl
X2FzeW5jLnB5CkBAIC0xLDggKzEsMTAgQEAKIGltcG9ydCBweXRlc3QKIAorZnJvbSB3ZWJkcml2
ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBmcm9tIHdlYmRyaXZlci50cmFu
c3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCitmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBp
bXBvcnQgUG9sbAogCiAKIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQs
IGFyZ3M9Tm9uZSk6CkBAIC01MCw5ICs1MiwxNiBAQCBkZWYgdGVzdF9hYm9ydF9ieV91c2VyX3By
b21wdF90d2ljZShzZXNzaW9uLCBkaWFsb2dfdHlwZSk6CiAKICAgICBzZXNzaW9uLmFsZXJ0LmFj
Y2VwdCgpCiAKLSAgICAjIFRoZSBmaXJzdCBhbGVydCBoYXMgYmVlbiBhY2NlcHRlZCBieSB0aGUg
dXNlciBwcm9tcHQgaGFuZGxlciwgdGhlIHNlY29uZCBvbmUgcmVtYWlucy4KLSAgICAjIEZJWE1F
OiB0aGlzIGlzIGhvdyBicm93c2VycyBjdXJyZW50bHkgd29yaywgYnV0IHRoZSBzcGVjIHNob3Vs
ZCBjbGFyaWZ5IGlmIHRoaXMgaXMgdGhlCi0gICAgIyAgICAgICAgZXhwZWN0ZWQgYmVoYXZpb3Is
IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvMTE1My4KLSAgICBh
c3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09ICJCeWUiCisgICAgIyBUaGUgZmlyc3QgYWxlcnQg
aGFzIGJlZW4gYWNjZXB0ZWQgYnkgdGhlIHVzZXIgcHJvbXB0IGhhbmRsZXIsIHRoZSBzZWNvbmQK
KyAgICAjIGFsZXJ0IHdpbGwgc3RpbGwgYmUgb3BlbmVkIGJlY2F1c2UgdGhlIGN1cnJlbnQgc3Rl
cCBpc24ndCBhYm9ydGVkLgorICAgIHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAg
ICAgICB0aW1lb3V0PTUsCisgICAgICAgIG1lc3NhZ2U9IlNlY29uZCBhbGVydCBoYXMgbm90IGJl
ZW4gb3BlbmVkIiwKKyAgICAgICAgaWdub3JlZF9leGNlcHRpb25zPU5vU3VjaEFsZXJ0RXhjZXB0
aW9uCisgICAgKQorICAgIHRleHQgPSB3YWl0LnVudGlsKGxhbWJkYSBzOiBzLmFsZXJ0LnRleHQp
CisKKyAgICBhc3NlcnQgdGV4dCA9PSAiQnllIgogCiAgICAgc2Vzc2lvbi5hbGVydC5hY2NlcHQo
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVz
LnB5CmluZGV4IDM5NGFlMzI5NGNkMy4uZTUxYjNlM2VhNTc5IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0
L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CkBAIC0xLDUgKzEsNCBA
QAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zYW1lX2VsZW1lbnQs
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdzPU5vbmUp
OgpAQCAtMTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwgc2Ny
aXB0LCBhcmdzPU5vbmUpOgogICAgICAgICBib2R5KQogCiAKLWRlZiB0ZXN0X2NvbnRlbnRfYXR0
cmlidXRlKHNlc3Npb24pOgorZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZvb2Jhcj4iKQog
ICAgIHJlc3BvbnNlID0gZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwgIiIiCiAgICAgICAg
IGNvbnN0IHJlc29sdmUgPSBhcmd1bWVudHNbMF07CkBAIC0yMSw3ICsyMCw3IEBAIGRlZiB0ZXN0
X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
LCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24pOgorZGVmIHRl
c3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCIiIgogICAgICAgICA8aW5wdXQ+CiAgICAgICAgIDxzY3JpcHQ+CkBAIC0zNyw3ICszNiw3
IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxlbWVudChz
ZXNzaW9uKToKK2RlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAgICAgICAg
PHA+YmFyCkBAIC01OSw3ICs1OCw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxlbWVudChz
ZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGJhciwgdmFsdWUpCiAK
IAotZGVmIHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24pOgorZGVmIHRlc3Rf
c2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIiCiAg
ICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhl
Y3V0ZV9zY3JpcHQvY29sbGVjdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CmluZGV4IGJlMGIz
YTAxOGM1MC4uODI5MWZkNzEzODhiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3Jp
cHQvY29sbGVjdGlvbnMucHkKQEAgLTEsOSArMSw2IEBACiBpbXBvcnQgb3MKIAotZnJvbSBzaXgg
aW1wb3J0IHRleHRfdHlwZQotCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNz
ZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxp
bmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRlX3NjcmlwdChzZXNzaW9uLCBzY3JpcHQs
IGFyZ3M9Tm9uZSk6CkBAIC0zMSw3ICsyOCw3IEBAIGRlZiB0ZXN0X2FycmF5KHNlc3Npb24pOgog
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBbMSwgMl0pCiAKIAotZGVmIHRlc3RfZmlsZV9s
aXN0KHNlc3Npb24sIHRtcGRpcik6CitkZWYgdGVzdF9maWxlX2xpc3Qoc2Vzc2lvbiwgdG1wZGly
LCBpbmxpbmUpOgogICAgIGZpbGVzID0gW3RtcGRpci5qb2luKCJmb28udHh0IiksIHRtcGRpci5q
b2luKCJiYXIudHh0IildCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9
ZmlsZSBtdWx0aXBsZT4iKQpAQCAtNDcsMTEgKzQ0LDExIEBAIGRlZiB0ZXN0X2ZpbGVfbGlzdChz
ZXNzaW9uLCB0bXBkaXIpOgogICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChmaWxlcywg
dmFsdWUpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhY3R1YWwsIGRpY3QpCiAgICAgICAg
IGFzc2VydCAibmFtZSIgaW4gYWN0dWFsCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFjdHVh
bFsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGFjdHVhbFsi
bmFtZSJdLCBzdHIpCiAgICAgICAgIGFzc2VydCBvcy5wYXRoLmJhc2VuYW1lKHN0cihleHBlY3Rl
ZCkpID09IGFjdHVhbFsibmFtZSJdCiAKIAotZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVjdGlvbihz
ZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfYWxsX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAgICAgIDxw
PmJhcgpAQCAtNzYsNyArNzMsNyBAQCBkZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9uKHNlc3Np
b24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgcHNbMV0sIHZhbHVlWzVdKQog
CiAKLWRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfY29s
bGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgog
ICAgICAgICA8cD5mb28KICAgICAgICAgPHA+YmFyCkBAIC05MSw3ICs4OCw3IEBAIGRlZiB0ZXN0
X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChz
ZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0X2h0bWxfZm9ybV9jb250cm9s
c19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxl
Y3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAg
ICAgICAgPGZvcm0+CiAgICAgICAgICAgICA8aW5wdXQ+CkBAIC0xMDgsNyArMTA1LDcgQEAgZGVm
IHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAgICAgICAgIGFz
c2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAogCi1kZWYgdGVz
dF9odG1sX29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfb3B0aW9u
c19jb2xsZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IiIiCiAgICAgICAgIDxzZWxlY3Q+CiAgICAgICAgICAgICA8b3B0aW9uPgpAQCAtMTI1LDcgKzEy
Miw3IEBAIGRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24pOgogICAgICAg
ICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAotZGVm
IHRlc3Rfbm9kZV9saXN0KHNlc3Npb24pOgorZGVmIHRlc3Rfbm9kZV9saXN0KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwPmZvbwogICAg
ICAgICA8cD5iYXIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9jeWNsaWMucHkKaW5kZXgg
MTZiZGNkZDFkZWE1Li5lMzA5NGY4OWYzYjcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3Jp
cHQvY3ljbGljLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBleGVjdXRl
X3NjcmlwdChzZXNzaW9uLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CkBAIC00OSw3ICs0OCw3IEBAIGRl
ZiB0ZXN0X29iamVjdF9pbl9hcnJheShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJqYXZhc2NyaXB0IGVycm9yIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X2luX2NvbGxlY3Rp
b24oc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X2luX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48L2Rpdj4iKQogICAgIGRpdnMg
PSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiKQogCkBAIC02Myw3ICs2Miw3IEBAIGRlZiB0ZXN0X2Vs
ZW1lbnRfaW5fY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVu
dChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfaW5fb2Jq
ZWN0KHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbl9vYmplY3Qoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48L2Rpdj4iKQogICAgIGRpdiA9IHNl
c3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9leGVjdXRl
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRl
X3NjcmlwdC9leGVjdXRlLnB5CmluZGV4IGJkNzE5YjI3ODU5ZS4uMGY5MzRjYmI0NDUwIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1
dGVfc2NyaXB0L2V4ZWN1dGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5CkBAIC0xLDkgKzEsOSBAQAog
aW1wb3J0IHB5dGVzdAogCitmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRF
eGNlcHRpb24KIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nl
c3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0cy5z
dXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0zNCw3ICszNCw3IEBAIGRlZiB0ZXN0X25v
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfb3BlbmluZ19uZXdf
d2luZG93X2tlZXBzX2N1cnJlbnRfd2luZG93X2hhbmRsZShzZXNzaW9uKToKK2RlZiB0ZXN0X29w
ZW5pbmdfbmV3X3dpbmRvd19rZWVwc19jdXJyZW50X3dpbmRvd19oYW5kbGUoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndpbmRvd19oYW5kbGUKICAgICBv
cmlnaW5hbF9oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCiAKQEAgLTU3LDcgKzU3LDcgQEAgZGVm
IHRlc3RfZW5kaW5nX2NvbW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UsIDEpCiAKIAotZGVmIHRlc3Rfb3ZlcnJpZGVfbGlzdGVuZXJzKHNlc3Npb24pOgorZGVmIHRl
c3Rfb3ZlcnJpZGVfbGlzdGVuZXJzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCiA8c2NyaXB0PgogY2FsbGVkID0gW107CkBAIC04OCw5ICs4OCwxNiBAQCBk
ZWYgdGVzdF9hYm9ydF9ieV91c2VyX3Byb21wdF90d2ljZShzZXNzaW9uLCBkaWFsb2dfdHlwZSk6
CiAKICAgICBzZXNzaW9uLmFsZXJ0LmFjY2VwdCgpCiAKLSAgICAjIFRoZSBmaXJzdCBhbGVydCBo
YXMgYmVlbiBhY2NlcHRlZCBieSB0aGUgdXNlciBwcm9tcHQgaGFuZGxlciwgdGhlIHNlY29uZCBv
bmUgcmVtYWlucy4KLSAgICAjIEZJWE1FOiB0aGlzIGlzIGhvdyBicm93c2VycyBjdXJyZW50bHkg
d29yaywgYnV0IHRoZSBzcGVjIHNob3VsZCBjbGFyaWZ5IGlmIHRoaXMgaXMgdGhlCi0gICAgIyAg
ICAgICAgZXhwZWN0ZWQgYmVoYXZpb3IsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRy
aXZlci9pc3N1ZXMvMTE1My4KLSAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09ICJCeWUi
CisgICAgIyBUaGUgZmlyc3QgYWxlcnQgaGFzIGJlZW4gYWNjZXB0ZWQgYnkgdGhlIHVzZXIgcHJv
bXB0IGhhbmRsZXIsIHRoZSBzZWNvbmQKKyAgICAjIGFsZXJ0IHdpbGwgc3RpbGwgYmUgb3BlbmVk
IGJlY2F1c2UgdGhlIGN1cnJlbnQgc3RlcCBpc24ndCBhYm9ydGVkLgorICAgIHdhaXQgPSBQb2xs
KAorICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUsCisgICAgICAgIG1lc3NhZ2U9
IlNlY29uZCBhbGVydCBoYXMgbm90IGJlZW4gb3BlbmVkIiwKKyAgICAgICAgaWdub3JlZF9leGNl
cHRpb25zPU5vU3VjaEFsZXJ0RXhjZXB0aW9uCisgICAgKQorICAgIHRleHQgPSB3YWl0LnVudGls
KGxhbWJkYSBzOiBzLmFsZXJ0LnRleHQpCisKKyAgICBhc3NlcnQgdGV4dCA9PSAiQnllIgogCiAg
ICAgc2Vzc2lvbi5hbGVydC5hY2NlcHQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVzLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3Njcmlw
dC9wcm9wZXJ0aWVzLnB5CmluZGV4IDJiZTRmMWYzY2NjOS4uNTE5OTk5MzZlNzFhIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVf
c2NyaXB0L3Byb3BlcnRpZXMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CkBAIC0xLDUgKzEsNCBA
QAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zYW1lX2VsZW1lbnQs
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdzPU5vbmUpOgpAQCAt
MTEsNyArMTAsNyBAQCBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdzPU5v
bmUpOgogICAgICAgICBib2R5KQogCiAKLWRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Np
b24pOgorZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZvb2Jhcj4iKQogICAgIHJlc3BvbnNl
ID0gZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgIiIiCiAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKQEAgLTIwLDcgKzE5LDcgQEAgZGVmIHRlc3Rf
Y29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Us
ICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CitkZWYgdGVz
dF9pZGxfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiCiAgICAgICAgIDxpbnB1dD4KICAgICAgICAgPHNjcmlwdD4KQEAgLTM1LDcgKzM0LDcg
QEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSwgImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50KHNl
c3Npb24pOgorZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwPmZvbwogICAgICAgICA8
cD5iYXIKQEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZV9lbGVtZW50KHNl
c3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgYmFyLCB2YWx1ZSkKIAog
Ci1kZWYgdGVzdF9zY3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbik6CitkZWYgdGVzdF9z
Y3JpcHRfZGVmaW5pbmdfcHJvcGVydHkoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgIiIiCiAg
ICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmlu
ZF9lbGVtZW50L2ZpbmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CmluZGV4IDlmMDkxMWQ1NmRjMC4uNDUxMDYxN2Rh
NWE2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L2ZpbmQucHkKQEAgLTMsNyArMyw2IEBAIGlt
cG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3Nh
bWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToK
QEAgLTQ4LDcgKzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNz
aW9uLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRl
eHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUi
LCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIpXSkKLWRl
ZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgorZGVmIHRlc3RfZmlu
ZF9lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAt
IDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwg
bGluayB0ZXh0PC9hPiIpCiAKQEAgLTY0LDcgKzYzLDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50
KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIs
ICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVzdF9maW5k
X2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9m
aW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZhbHVlKToK
ICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShkb2N1bWVudCkKIApA
QCAtODEsNyArODAsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24s
IGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+
IiwgIkxJTksiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVy
Y2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksiKSwKIF0pCi1kZWYgdGVzdF9maW5k
X2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2Rl
ZiB0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRv
Y3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoZG9jdW1lbnQpCiAKQEAgLTEwMiw3ICsxMDEsNyBAQCBkZWYgdGVzdF9ub19lbGVtZW50KHNl
c3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlh
bCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
dGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8v
KltuYW1lKCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2lu
ZywgdmFsdWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIGlubGluZSwgdXNp
bmcsIHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8YSBocmVmPSIjIiBpZD0i
bGlua1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPiIiIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb2N0eXBlPSJ4aHRtbCIpCiAgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gZG9jdW1lbnQubGlua3NbMF0iKQpAQCAtMTE2LDcgKzExNSw3IEBAIGRlZiB0ZXN0
X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIsICI6cm9vdCIpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInRhZyBuYW1lIiwgImh0bWwiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJ4cGF0aCIsICIvaHRtbCIpXSkKLWRlZiB0ZXN0X2h0bWxkb2N1bWVudChzZXNzaW9uLCB1c2lu
ZywgdmFsdWUpOgorZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcs
IHZhbHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikKICAgICByZXNwb25zZSA9IGZp
bmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3Byb21wdHMucHkKaW5k
ZXggNjEzNDY2YjYyYjUxLi5hZGE4ZThlYmVlMzMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50L3VzZXJfcHJvbXB0cy5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRf
ZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nlc3MsCiAgICAgYXNzZXJ0X2RpYWxv
Z19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAK
IAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgpAQCAtMTgsNyArMTcs
NyBAQCBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUs
IHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5iYXI8L3A+IikKICAg
ICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCkBAIC0zNiw3
ICszNSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8cD5iYXI8L3A+IikKIApAQCAtNTEsNyArNTAsNyBAQCBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRp
YWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJhcjwvcD4iKQog
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fZWxlbWVudC9maW5kLnB5
CmluZGV4IGFhNjQ4MTE3OTc2Yi4uODc5ZGUzNzEzZjk5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1l
bnQvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvZmluZC5weQpAQCAtMyw3ICszLDYgQEAgaW1w
b3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2Ft
ZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBlbGVtZW50X2lkLCB1c2lu
ZywgdmFsdWUpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIGVs
ZW1lbnRfaWQsIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgIHsidXNpbmciOiB1c2luZywgInZhbHVl
IjogdmFsdWV9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0
dHApOgorZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48YSBocmVmPSMgaWQ9bGlua1RleHQ+
ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiZGl2IiwgYWxsPUZhbHNlKQogCkBAIC01NCw3ICs1Myw3IEBAIGRlZiB0ZXN0X2ludmFsaWRf
c2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJ4cGF0aCIsICIvL2EiKV0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcs
IHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2
YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+
PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTcwLDcgKzY5LDcg
QEAgZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8
YSBocmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBz
dHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRF
WFQiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGRvY3Vt
ZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGlu
bGluZSwgZG9jdW1lbnQsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTg4LDcgKzg3LDcgQEAg
ZGVmIHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUp
OgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9hPiIsICJMSU5LIiksCiAgICAg
KCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPnBhcnRpYWwgbGlu
ayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVmIHRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxf
bGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1l
bnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFsdWUpOgog
ICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PnswfTwvZGl2
PiIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2
IiwgYWxsPUZhbHNlKQpAQCAtOTgsNyArOTcsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFy
dGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKIAogCiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwgWygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhp
c3QiKV0pCi1kZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CitkZWYg
dGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICAjIFN0
ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48L2Rpdj4iKQogICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC0xMTIsNyArMTEx
LDcgQEAgZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvLypbbmFtZSgpPSdhJ10iKV0pCi1kZWYgdGVzdF94
aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X3hodG1sX25h
bWVzcGFjZShzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiPHA+PGEgaHJlZj0iIyIgaWQ9ImxpbmtUZXh0Ij5mdWxsIGxpbmsgdGV4dDwv
YT48L3A+IiIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3R5cGU9InhodG1sIikKICAg
ICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiInJldHVybiBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJwIikiIiIpCkBAIC0xMjMsNyArMTIyLDcgQEAgZGVmIHRlc3RfeGh0
bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgYXNzZXJ0X3NhbWVfZWxl
bWVudChzZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQpCiAKIAotZGVmIHRlc3RfcGFyZW50X2h0bWxk
b2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikKICAgICBmcm9tX2VsZW1lbnQg
PSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiInJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJib2R5IikiIiIpCiAgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1
cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IikKQEAgLTEzMyw3ICsxMzIsNyBAQCBkZWYgdGVz
dF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9zYW1lX2VsZW1lbnQo
c2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVu
dF9ub2RlX2Vycm9ycyhzZXNzaW9uKToKK2RlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9ub2Rl
X2Vycm9ycyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQog
ICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQiKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQvdXNlcl9wcm9t
cHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5k
X2VsZW1lbnRfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQppbmRleCAzZmRhZjRlNDdlZDcu
LjA1MzdhNzg2MTg5YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudF9mcm9tX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CkBAIC04LDcgKzgsNiBAQCBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFzc2VydF9zdWNjZXNzLAogICAgIGFz
c2VydF9kaWFsb2dfaGFuZGxlZCwKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcs
IHZhbHVlKToKQEAgLTIwLDcgKzE5LDcgQEAgZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBlbGVt
ZW50X2lkLCB1c2luZywgdmFsdWUpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
KToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9l
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtMzksNyArMzgs
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNTUsNyArNTQsNyBAQCBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywg
aW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0
aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PHA+
YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
ImRpdiIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvY29uZnRlc3Qu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudF9mcm9tX3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uYjhmYzkzMzE5ZjQzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9z
aGFkb3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5IEBACitpbXBvcnQgcHl0ZXN0CisK
K0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFnZShpbmxpbmUpOgorICAgIGRlZiBn
ZXRfc2hhZG93X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAgICAgICByZXR1cm4gaW5saW5lKCIi
IgorICAgICAgICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVudD48L2N1c3RvbS1zaGFkb3ctZWxl
bWVudD4KKyAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgICAgY3VzdG9tRWxlbWVu
dHMuZGVmaW5lKCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAorICAgICAgICAgICAgICAgICAgICBj
bGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dHJ1Y3RvcigpIHt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHt7bW9kZTog
J29wZW4nfX0pLmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHt7IHswfSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH19CisgICAgICAgICAgICAgICAgICAgIH19KTsKKyAgICAg
ICAgICAgIDwvc2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2NvbnRlbnQpKQorICAgIHJldHVybiBn
ZXRfc2hhZG93X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvZmluZC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zy
b21fc2hhZG93X3Jvb3QvZmluZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjg3OTQxZDQ5NWUxMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3Qv
ZmluZC5weQpAQCAtMCwwICsxLDE0MSBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZl
ci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNz
CisKKworZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfaWQsIHVzaW5nLCB2YWx1ZSk6
CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJQT1NUIiwgInNl
c3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lkfS9lbGVtZW50Ii5mb3JtYXQoCisg
ICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIHNo
YWRvd19pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5nIjogdXNpbmcsICJ2YWx1ZSI6IHZh
bHVlfSkKKworCitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwLCBn
ZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2
PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQorICAgIGN1
c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50Iiwg
YWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QK
KworICAgIHBhdGggPSAiL3Nlc3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lkfS9l
bGVtZW50Ii5mb3JtYXQoCisgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLCBz
aGFkb3dfaWQ9c2hhZG93X3Jvb3QuaWQpCisgICAgd2l0aCBodHRwLnBvc3QocGF0aCwgTm9uZSkg
YXMgcmVzcG9uc2U6CisgICAgICAgIGFzc2VydF9lcnJvcihSZXNwb25zZS5mcm9tX2h0dHAocmVz
cG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBmaW5kX2Vs
ZW1lbnQoc2Vzc2lvbiwgIm5vdFJlYWwiLCAiY3NzIHNlbGVjdG9yIiwgImZvbyIpCisgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQorCisKK2RlZiB0ZXN0X25vX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKKyAgICByZXNwb25zZSA9IGZp
bmRfZWxlbWVudChzZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCAiZm9vIikKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJ1c2luZyIsIFsiYSIsIFRydWUsIE5vbmUsIDEsIFtdLCB7fV0pCitk
ZWYgdGVzdF9pbnZhbGlkX3VzaW5nX2FyZ3VtZW50KHNlc3Npb24sIHVzaW5nKToKKyAgICAjIFN0
ZXAgMSAtIDIKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCAibm90UmVhbCIs
IHVzaW5nLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJn
dW1lbnQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbTm9uZSwgW10s
IHt9XSkKK2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUp
OgorICAgICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24s
ICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsIHZhbHVlKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK2RlZiB0ZXN0X2RldGFjaGVkX3NoYWRvd19y
b290KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hh
ZG93X3BhZ2UoIjxkaXY+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+PC9kaXY+IikKKyAgICBjdXN0
b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFs
bD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290Cisg
ICAgc2Vzc2lvbi5yZWZyZXNoKCkKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Np
b24sIHNoYWRvd19yb290LmlkLCAiY3NzIiwgImlucHV0IikKKyAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJkZXRhY2hlZCBzaGFkb3cgcm9vdCIpCisKKworZGVmIHRlc3RfZm91bmRfZWxlbWVu
dF9lcXVpdmFsZW5jZShzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJs
ID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPjwvZGl2PiIp
CisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVs
ZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVt
ZW50LCkpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAg
IHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIiwg
ImlucHV0IikKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2Vy
dF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFso
ImNzcyBzZWxlY3RvciIsICIjbGlua1RleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJsaW5rIHRleHQiLCAiZnVsbCBsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgi
eHBhdGgiLCAiLy9hIildKQorZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24sIGdldF9zaGFk
b3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVy
bCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5r
IHRleHQ8L2E+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
ImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBleHBlY3RlZCA9IHNlc3Np
b24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCcjbGlua1RleHQnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxl
bWVudC5zaGFkb3dfcm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNo
YWRvd19yb290LmlkLCB1c2luZywgdmFsdWUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Up
CisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCB2YWx1ZSwgZXhwZWN0ZWQpCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb2N1bWVudCx2YWx1ZSIsIFsKKyAgICAoIjxhIGhy
ZWY9Iz5saW5rIHRleHQ8L2E+IiwgImxpbmsgdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPiZuYnNw
O2xpbmsgdGV4dCZuYnNwOzwvYT4iLCAibGluayB0ZXh0IiksCisgICAgKCI8YSBocmVmPSM+bGlu
azxicj50ZXh0PC9hPiIsICJsaW5rXG50ZXh0IiksCisgICAgKCI8YSBocmVmPSM+bGluayZhbXA7
dGV4dDwvYT4iLCAibGluayZ0ZXh0IiksCisgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIs
ICJMSU5LIFRFWFQiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKK10pCitkZWYgdGVzdF9maW5k
X2VsZW1lbnRfbGlua190ZXh0KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgZG9jdW1lbnQsIHZh
bHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFn
ZSgiPGRpdj57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCisgICAgY3VzdG9tX2VsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisg
ICAgZXhwZWN0ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBd
LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnYScpWzBdIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1lbnQsKSkKKyAgICBzaGFkb3df
cm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisKKyAgICByZXNwb25zZSA9IGZpbmRf
ZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImxpbmsgdGV4dCIsIHZhbHVlKQorICAg
IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lv
biwgdmFsdWUsIGV4cGVjdGVkKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9jdW1l
bnQsdmFsdWUiLCBbCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgImxp
bmsiKSwKKyAgICAoIjxhIGhyZWY9Iz4mbmJzcDtwYXJ0aWFsIGxpbmsgdGV4dCZuYnNwOzwvYT4i
LCAibGluayIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIsICJrIHQi
KSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4iLCAia1xudCIpLAor
ICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayZhbXA7dGV4dDwvYT4iLCAiayZ0IiksCisgICAg
KCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJTksiKSwKKyAgICAoIjxhIGhy
ZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8
L2E+IiwgIkxJTksiKSwKK10pCitkZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3Rl
eHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVudCwgdmFsdWUpOgorICAgICMgU3Rl
cCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PnswfTwvZGl2
PiIuZm9ybWF0KGRvY3VtZW50KSkKKyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBleHBlY3RlZCA9IHNl
c3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yQWxsKCdhJylbMF0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2Vs
ZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24s
IHNoYWRvd19yb290LmlkLCAicGFydGlhbCBsaW5rIHRleHQiLCB2YWx1ZSkKKyAgICBhc3NlcnRf
c3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIHZhbHVl
LCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwg
WygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCitkZWYgdGVzdF9ub19lbGVtZW50KHNl
c3Npb24sIGdldF9zaGFkb3dfcGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkK
KyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48L2Rpdj4iKQorICAgIGN1
c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50Iiwg
YWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QK
KworICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCB1
c2luZywgdmFsdWUpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50
IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50X2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9z
aGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi4zODEzYTdkZjVkMzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19y
b290L3VzZXJfcHJvbXB0cy5weQpAQCAtMCwwICsxLDEyOSBAQAorIyBNRVRBOiB0aW1lb3V0PWxv
bmcKKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
KAorICAgIGFzc2VydF9lcnJvciwKKyAgICBhc3NlcnRfc2FtZV9lbGVtZW50LAorICAgIGFzc2Vy
dF9zdWNjZXNzLAorICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZCwKKykKKworCitkZWYgZmluZF9l
bGVtZW50KHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZhbHVlKToKKyAgICByZXR1cm4gc2Vz
c2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9p
ZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnQiLmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Np
b25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAgZWxlbWVudF9pZD1zaGFkb3df
aWQpLAorICAgICAgICB7InVzaW5nIjogdXNpbmcsICJ2YWx1ZSI6IHZhbHVlfSkKKworCitAcHl0
ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48cD5iYXI8
L3A+PGRpdj4iKQorICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3Vz
dG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgICAgICBzaGFkb3dfcm9vdCA9IG91
dGVyX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICAgICAgaW5uZXJfZWxlbWVudCA9IHNlc3Npb24u
ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdwJykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcmdzPShvdXRlcl9lbGVtZW50LCkpCisKKyAgICAgICAgY3JlYXRlX2RpYWxvZyhkaWFsb2df
dHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVu
dChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyBzZWxlY3RvciIsICJwIikKKyAgICAgICAg
dmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgICAgICBhc3NlcnRfZGlhbG9n
X2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0ZWRfcmV0
dmFsPXJldHZhbCkKKworICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIHZhbHVl
LCBpbm5lcl9lbGVtZW50KQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBnZXRfc2hh
ZG93X3BhZ2UpOgorICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRv
d19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAg
ICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgICAgIGNy
ZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVz
cG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0
b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxl
cnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVj
dGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCisKKyAgICByZXR1
cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uCisKKworQHB5dGVzdC5m
aXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CisgICAgICAg
IHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisg
ICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVs
ZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5z
aGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlh
bG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hh
ZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0IHNlc3Np
b24uYWxlcnQudGV4dCA9PSBkaWFsb2dfdHlwZQorICAgICAgICBzZXNzaW9uLmFsZXJ0LmRpc21p
c3MoKQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbgorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhh
dmlvciI6ICJhY2NlcHQifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUs
IHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgVHJ1ZSks
CisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3RfYWNjZXB0KGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCBy
ZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJl
aGF2aW9yIjogImFjY2VwdCBhbmQgbm90aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29u
ZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2FjY2VwdF9h
bmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9n
X3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7
InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRpc21pc3MifSkKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisg
ICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRl
c3RfZGlzbWlzcyhjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRp
YWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmls
aXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIGFuZCBub3RpZnkifSkK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAo
ImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0Iiwg
Tm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzc19hbmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisK
KworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjog
Imlnbm9yZSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSIsIFsiYWxl
cnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2RlZiB0ZXN0X2lnbm9yZShjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24sIGRpYWxvZ190eXBlKToKKyAgICBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpCisKKworQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxl
cnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25l
KSwKK10pCitkZWYgdGVzdF9kZWZhdWx0KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvZmlu
ZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9l
bGVtZW50cy9maW5kLnB5CmluZGV4IGMxMzgxYTBlODJhYy4uNDdmMDA5NzM5Mzg1IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudHMvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weQpAQCAtMyw3ICszLDYgQEAgaW1wb3J0IHB5dGVz
dAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50
LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKQEAgLTQ4LDcg
KzQ3LDcgQEAgZGVmIHRlc3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1
ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGlu
ayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0ZXN0X2Zp
bmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVu
dHMoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRl
eHQ8L2E+IikKIApAQCAtNjUsNyArNjQsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRzKHNlc3Np
b24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5L
IFRFWFQiKSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2Fz
ZSc+bGluayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1l
bnRzX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVmIHRlc3RfZmluZF9l
bGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFsdWUpOgogICAg
ICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSM+bm90IHdh
bnRlZDwvYT48YnIvPnswfSIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBleHBlY3RlZCA9IHNlc3Np
b24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5saW5rc1sxXTsiKQpAQCAtODgsNyAr
ODcsNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVu
dCwgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9hPiIsICJMSU5L
IiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPnBh
cnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVmIHRlc3RfZmluZF9lbGVtZW50
c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVmIHRlc3Rf
ZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50
LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxh
IGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9Ii5mb3JtYXQoZG9jdW1lbnQpKQogICAgIGV4
cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmxpbmtzWzFd
OyIpCkBAIC0xMTYsNyArMTE1LDcgQEAgZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCB1c2lu
ZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0
IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwg
ImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvLypbbmFtZSgpPSdh
J10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToK
K2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGEgaHJlZj0iIyIgaWQ9ImxpbmtUZXh0Ij5m
dWxsIGxpbmsgdGV4dDwvYT4iIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdHlwZT0i
eGh0bWwiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRv
Y3VtZW50LmxpbmtzWzBdOyIpCkBAIC0xMzQsNyArMTMzLDcgQEAgZGVmIHRlc3RfeGh0bWxfbmFt
ZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
WygiY3NzIHNlbGVjdG9yIiwgIjpyb290IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
dGFnIG5hbWUiLCAiaHRtbCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwg
Ii9odG1sIildKQotZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6
CitkZWYgdGVzdF9odG1sZG9jdW1lbnQoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50
cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpCiAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvdXNlcl9wcm9tcHRzLnB5Cmlu
ZGV4IDAxZWI4ZmYzYzg2My4uZjlhNDVlNTI3NTE1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvdXNlcl9wcm9tcHRz
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmlu
ZF9lbGVtZW50cy91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nlc3MsCiAgICAgYXNzZXJ0X2Rp
YWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKQEAgLTE4LDcg
KzE3LDcgQEAgZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKIAogCiBA
cHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAg
ICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2df
dHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmJhcjwvcD4i
KQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKQEAg
LTM4LDcgKzM3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxwPmJhcjwvcD4iKQogCkBAIC01Myw3ICs1Miw3IEBAIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBp
bmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRp
b24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+YmFyPC9w
PiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQv
ZmluZC5weQppbmRleCA1YzI2N2JhNjQ3OWUuLmFlNmY5NzZlOWY5NyAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zy
b21fZWxlbWVudC9maW5kLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2VsZW1lbnQvZmluZC5weQpAQCAtMyw3ICsz
LDYgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNw
b25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBh
c3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgZWxlbWVu
dF9pZCwgdXNpbmcsIHZhbHVlKToKQEAgLTE0LDcgKzEzLDcgQEAgZGVmIGZpbmRfZWxlbWVudHMo
c2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKICAgICAgICAgeyJ1c2luZyI6IHVz
aW5nLCAidmFsdWUiOiB2YWx1ZX0pCiAKIAotZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUo
c2Vzc2lvbiwgaHR0cCk6CitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBo
dHRwLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9IyBp
ZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKQEAgLTU0LDcgKzUzLDcgQEAgZGVmIHRl
c3RfaW52YWxpZF9zZWxlY3Rvcl9hcmd1bWVudChzZXNzaW9uLCB2YWx1ZSk6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIpXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vz
c2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgaW5s
aW5lLCB1c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rp
dj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBA
IC03MCw3ICs2OSw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZh
bHVlKToKICAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+IiwgIkxJTksgVEVYVCIpLAogICAg
ICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5saW5rIHRleHQ8
L2E+IiwgIkxJTksgVEVYVCIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfbGlua190ZXh0
KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xpbmtf
dGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jPm5vdCB3YW50ZWQ8L2E+
PGJyLz57MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTk0LDcgKzkzLDcgQEAgZGVmIHRlc3RfZmlu
ZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKICAgICAoIjxh
IGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4iLCAiTElOSyIpLAogICAgICgiPGEgaHJlZj0j
IHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4i
LCAiTElOSyIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQo
c2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlh
bF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICMgU3Rl
cCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2Fu
dGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC0xMTAsNyArMTA5LDcgQEAgZGVm
IHRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwg
dmFsdWUpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcsdmFsdWUiLCBbKCJj
c3Mgc2VsZWN0b3IiLCAiI3dvbnRFeGlzdCIpXSkKLWRlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lv
biwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lLCB1
c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8ZGl2PjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFs
bD1GYWxzZSkKQEAgLTEyNCw3ICsxMjMsNyBAQCBkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24s
IHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBsaW5r
IHRleHQiLCAibGluayB0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFnIG5h
bWUiLCAiYSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vKltuYW1l
KCk9J2EnXSIpXSkKLWRlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFs
dWUpOgorZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZh
bHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8cD48YSBocmVmPSIjIiBpZD0ibGlu
a1RleHQiPmZ1bGwgbGluayB0ZXh0PC9hPjwvcD4iIiIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgZG9jdHlwZT0ieGh0bWwiKQogICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9z
Y3JpcHQoIiIicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInAiKSIiIikKQEAgLTEzOSw3
ICsxMzgsNyBAQCBkZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVl
KToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZvdW5kX2VsZW1lbnQsIGV4cGVj
dGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9odG1sZG9jdW1lbnQoc2Vzc2lvbik6CitkZWYgdGVz
dF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIpCiAgICAgZnJvbV9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgi
IiJyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpIiIiKQogICAgIGV4cGVjdGVk
ID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dCIpCkBAIC0xNTMsNyArMTUyLDcgQEAgZGVmIHRlc3RfcGFyZW50X2h0bWxkb2N1bWVudChzZXNz
aW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZvdW5kX2VsZW1lbnQsIGV4
cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9ub2RlX2Vycm9ycyhzZXNz
aW9uKToKK2RlZiB0ZXN0X3BhcmVudF9vZl9kb2N1bWVudF9ub2RlX2Vycm9ycyhzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiKQogICAgIGZyb21fZWxlbWVudCA9
IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQi
KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX2Vs
ZW1lbnQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGNhN2JjNzczNWQwOC4uNDY3YmVjMDlhMWJkIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Zp
bmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVt
ZW50L3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAgZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfc3VjY2VzcywKICAgICBhc3NlcnRfZGlhbG9nX2hh
bmRsZWQsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBk
ZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgpAQCAt
MjAsNyArMTksNyBAQCBkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9uLCBlbGVtZW50X2lkLCB1c2lu
ZywgdmFsdWUpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNDEsNyArNDAsNyBAQCBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRp
YWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48
cD5iYXI8L3A+PGRpdj4iKQogICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtNTcsNyArNTYsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAg
ICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190
eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PHA+YmFyPC9wPjxkaXY+
IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1G
YWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21f
c2hhZG93X3Jvb3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5iOGZjOTMzMTlmNDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9v
dC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE5IEBACitpbXBvcnQgcHl0ZXN0CisKK0BweXRlc3Qu
Zml4dHVyZQorZGVmIGdldF9zaGFkb3dfcGFnZShpbmxpbmUpOgorICAgIGRlZiBnZXRfc2hhZG93
X3BhZ2Uoc2hhZG93X2NvbnRlbnQpOgorICAgICAgICByZXR1cm4gaW5saW5lKCIiIgorICAgICAg
ICAgICAgPGN1c3RvbS1zaGFkb3ctZWxlbWVudD48L2N1c3RvbS1zaGFkb3ctZWxlbWVudD4KKyAg
ICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdjdXN0b20tc2hhZG93LWVsZW1lbnQnLAorICAgICAgICAgICAgICAgICAgICBjbGFzcyBleHRl
bmRzIEhUTUxFbGVtZW50IHt7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3Rvcigp
IHt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHt7bW9kZTogJ29wZW4nfX0p
LmlubmVySFRNTCA9IGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHsw
fSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH19CisgICAgICAgICAgICAgICAgICAgIH19KTsKKyAgICAgICAgICAgIDwv
c2NyaXB0PiIiIi5mb3JtYXQoc2hhZG93X2NvbnRlbnQpKQorICAgIHJldHVybiBnZXRfc2hhZG93
X3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L2ZpbmQucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFk
b3dfcm9vdC9maW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
ZjcwYTRiNDVhYWRiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvZmluZC5w
eQpAQCAtMCwwICsxLDE0NCBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZlci50cmFu
c3BvcnQgaW1wb3J0IFJlc3BvbnNlCisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCisKKwor
ZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X2lkLCB1c2luZywgdmFsdWUpOgorICAg
IHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiUE9TVCIsICJzZXNzaW9u
L3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRvd19pZH0vZWxlbWVudHMiLmZvcm1hdCgKKyAgICAg
ICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAgc2hhZG93
X2lkPXNoYWRvd19pZCksCisgICAgICAgIHsidXNpbmciOiB1c2luZywgInZhbHVlIjogdmFsdWV9
KQorCisKK2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHAsIGlubGlu
ZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0
PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93
X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgcGF0aCA9ICIvc2Vzc2lv
bi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnRzIi5mb3JtYXQoCisgICAg
ICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLCBzaGFkb3dfaWQ9c2hhZG93X3Jvb3Qu
aWQpCisgICAgd2l0aCBodHRwLnBvc3QocGF0aCwgTm9uZSkgYXMgcmVzcG9uc2U6CisgICAgICAg
IGFzc2VydF9lcnJvcihSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2UpLCAiaW52YWxpZCBhcmd1
bWVudCIpCisKKworZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xv
c2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sICJub3RS
ZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Np
b24sIGNsb3NlZF9mcmFtZSk6CisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24s
ICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVz
aW5nIiwgWygiYSIpLCAoVHJ1ZSksIChOb25lKSwgKDEpLCAoW10pLCAoe30pXSkKK2RlZiB0ZXN0
X2ludmFsaWRfdXNpbmdfYXJndW1lbnQoc2Vzc2lvbiwgdXNpbmcpOgorICAgICMgU3RlcCAxIC0g
MgorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCAibm90UmVhbCIsIHVzaW5n
LCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQi
KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbTm9uZSwgW10sIHt9XSkK
K2RlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUpOgorICAg
ICMgU3RlcCAzIC0gNAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCAibm90
UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCB2YWx1ZSkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJpbnZhbGlkIGFyZ3VtZW50IikKKworCitkZWYgdGVzdF9kZXRhY2hlZF9zaGFkb3dfcm9vdChz
ZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19w
YWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPjwvZGl2PiIpCisgICAgY3VzdG9tX2Vs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFs
c2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorICAgIHNl
c3Npb24ucmVmcmVzaCgpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwg
c2hhZG93X3Jvb3QuaWQsICJjc3MiLCAiaW5wdXQiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgImRldGFjaGVkIHNoYWRvdyByb290IikKKworCitkZWYgdGVzdF9maW5kX2VsZW1lbnRzX2Vx
dWl2YWxlbmNlKHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSk6CisgICAgc2Vzc2lvbi51cmwgPSBn
ZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGlucHV0IGlkPSdjaGVjaycgdHlwZT0nY2hlY2tib3gnLz48
aW5wdXQgaWQ9J3RleHQnLz48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19y
b290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICByZXNwb25zZSA9IGZpbmRfZWxl
bWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3MiLCAiaW5wdXQiKQorICAgIGFzc2Vy
dF9zdWNjZXNzKHJlc3BvbnNlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmcs
dmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsoImNzcyBzZWxlY3RvciIsICIjbGlu
a1RleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJsaW5rIHRleHQiLCAiZnVsbCBs
aW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4
dCIsICJsaW5rIHRleHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIs
ICJhIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy9hIildKQorZGVm
IHRlc3RfZmluZF9lbGVtZW50cyhzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UsIHVzaW5nLCB2YWx1
ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2Uo
IjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCisg
ICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1l
bnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3df
cm9vdAorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCBzaGFkb3dfcm9vdC5p
ZCwgdXNpbmcsIHZhbHVlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUiLCBbCisgICAgKCI8YSBocmVmPSM+
bGluayB0ZXh0PC9hPiIsICJsaW5rIHRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz4mbmJzcDtsaW5r
IHRleHQmbmJzcDs8L2E+IiwgImxpbmsgdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPmxpbms8YnI+
dGV4dDwvYT4iLCAibGlua1xudGV4dCIpLAorICAgICgiPGEgaHJlZj0jPmxpbmsmYW1wO3RleHQ8
L2E+IiwgImxpbmsmdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPkxJTksgVEVYVDwvYT4iLCAiTElO
SyBURVhUIiksCisgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNh
c2UnPmxpbmsgdGV4dDwvYT4iLCAiTElOSyBURVhUIiksCitdKQorZGVmIHRlc3RfZmluZF9lbGVt
ZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVudCwgdmFsdWUp
OgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8
ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1l
bnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCisg
ICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1l
bnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3df
cm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3Vt
ZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKVsxXSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisKKyAg
ICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJsaW5r
IHRleHQiLCB2YWx1ZSkKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAg
IGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KQorICAgIGFzc2VydCBsZW4odmFsdWUpID09
IDEKKworICAgIGZvdW5kX2VsZW1lbnQgPSB2YWx1ZVswXQorICAgIGFzc2VydF9zYW1lX2VsZW1l
bnQoc2Vzc2lvbiwgZm91bmRfZWxlbWVudCwgZXhwZWN0ZWQpCisKKworQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJkb2N1bWVudCx2YWx1ZSIsIFsKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxp
bmsgdGV4dDwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJlZj0jPiZuYnNwO3BhcnRpYWwgbGlu
ayB0ZXh0Jm5ic3A7PC9hPiIsICJsaW5rIiksCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5r
IHRleHQ8L2E+IiwgImsgdCIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0
PC9hPiIsICJrXG50IiksCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rJmFtcDt0ZXh0PC9h
PiIsICJrJnQiKSwKKyAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4iLCAiTElO
SyIpLAorICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5w
YXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAorXSkKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVu
dHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCBkb2N1bWVudCwg
dmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19w
YWdlKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2FudGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQo
ZG9jdW1lbnQpKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFs
c2UpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93
LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5z
aGFkb3dfcm9vdAorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJu
IGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKVsxXSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkp
CisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQs
ICJwYXJ0aWFsIGxpbmsgdGV4dCIsIHZhbHVlKQorICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpCisgICAgYXNzZXJ0
IGxlbih2YWx1ZSkgPT0gMQorCisgICAgZm91bmRfZWxlbWVudCA9IHZhbHVlWzBdCisgICAgYXNz
ZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBmb3VuZF9lbGVtZW50LCBleHBlY3RlZCkKKworCitA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwgWygiY3NzIHNlbGVjdG9yIiwg
IiN3b250RXhpc3QiKV0pCitkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGdldF9zaGFkb3df
cGFnZSwgdXNpbmcsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9
IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNo
YWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICByZXNwb25zZSA9IGZp
bmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsIHVzaW5nLCB2YWx1ZSkKKyAgICBh
c3NlcnQgcmVzcG9uc2UuYm9keVsidmFsdWUiXSA9PSBbXQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hh
ZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRz
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzRiOTAzYzgzNmVm
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5CkBA
IC0wLDAgKzEsMTMxIEBACisjIE1FVEE6IHRpbWVvdXQ9bG9uZworCitpbXBvcnQgcHl0ZXN0CisK
K2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCisgICAgYXNzZXJ0X2Vycm9yLAor
ICAgIGFzc2VydF9zYW1lX2VsZW1lbnQsCisgICAgYXNzZXJ0X3N1Y2Nlc3MsCisgICAgYXNzZXJ0
X2RpYWxvZ19oYW5kbGVkLAorKQorCisKK2RlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRv
d19pZCwgdXNpbmcsIHZhbHVlKToKKyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgK
KyAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9
L2VsZW1lbnRzIi5mb3JtYXQoCisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lv
bl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9c2hhZG93X2lkKSwKKyAgICAgICAgeyJ1c2lu
ZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lv
bi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAgICAgICAg
b3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIs
IGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNoYWRvd19y
b290CisgICAgICAgIGlubmVyX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1
cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigncCcpIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0ob3V0ZXJfZWxlbWVu
dCwpKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5
cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19y
b290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAgICB2YWx1ZSA9IGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCkKKyAg
ICAgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gMQorCisgICAgICAgIGFzc2VydF9kaWFsb2dfaGFu
ZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9yZXR2YWw9
cmV0dmFsKQorCisgICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWVbMF0s
IGlubmVyX2VsZW1lbnQpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFk
b3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93
X3BhZ2UoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKKyAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICAg
ICAgc2hhZG93X3Jvb3QgPSBvdXRlcl9lbGVtZW50LnNoYWRvd19yb290CisKKyAgICAgICAgY3Jl
YXRlX2RpYWxvZyhkaWFsb2dfdHlwZSwgdGV4dD1kaWFsb2dfdHlwZSkKKworICAgICAgICByZXNw
b25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0
b3IiLCAicCIpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxl
cnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVj
dGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1yZXR2YWwpCisKKyAgICByZXR1
cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uCisKKworQHB5dGVzdC5m
aXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CisgICAgICAg
IHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisg
ICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVs
ZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5z
aGFkb3dfcm9vdAorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlh
bG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNo
YWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJ1bmV4cGVjdGVkIGFsZXJ0IG9wZW4iKQorCisgICAgICAgIGFzc2VydCBzZXNz
aW9uLmFsZXJ0LnRleHQgPT0gZGlhbG9nX3R5cGUKKyAgICAgICAgc2Vzc2lvbi5hbGVydC5kaXNt
aXNzKCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24KKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVo
YXZpb3IiOiAiYWNjZXB0In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBl
LCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIFRydWUp
LAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2FjY2VwdChjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAg
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwg
cmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRC
ZWhhdmlvciI6ICJhY2NlcHQgYW5kIG5vdGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNv
bmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10pCitkZWYgdGVzdF9hY2NlcHRf
YW5kX25vdGlmeShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxv
Z190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMo
eyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIn0pCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAor
ICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0
ZXN0X2Rpc21pc3MoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uLCBk
aWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJp
bGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlzbWlzcyBhbmQgbm90aWZ5In0p
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAg
KCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIs
IE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3NfYW5kX25vdGlmeShjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQor
CisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6
ICJpZ25vcmUifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUiLCBbImFs
ZXJ0IiwgImNvbmZpcm0iLCAicHJvbXB0Il0pCitkZWYgdGVzdF9pZ25vcmUoY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSk6CisgICAgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKQorCisKK0Bw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFs
ZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0IiwgTm9u
ZSksCitdKQorZGVmIHRlc3RfZGVmYXVsdChjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL2ZvcndhcmQu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQv
Zm9yd2FyZC5weQppbmRleCA0YTFlMjE1ODE1MTguLjk3YTkzNWM4Y2Q4MyAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL2Zvcndh
cmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
b3J3YXJkL2ZvcndhcmQucHkKQEAgLTEsNSArMSw3IEBACitpbXBvcnQgcHl0ZXN0Citmcm9tIHdl
YmRyaXZlciBpbXBvcnQgZXJyb3IKKwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBmb3J3YXJkKHNlc3Npb24pOgpAQCAtNyw3ICs5LDcgQEAg
ZGVmIGZvcndhcmQoc2Vzc2lvbik6CiAgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25f
aWR9L2ZvcndhcmQiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxf
cmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+IikKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPHA+IikKICAgICBzZXNzaW9uLmJhY2soKQpAQCAtMjcsNyAr
MjksNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFt
ZSk6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCiAKIAotZGVmIHRlc3Rfbm9fYnJvd3Np
bmdfaGlzdG9yeShzZXNzaW9uKToKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2hpc3Rvcnkoc2Vzc2lv
biwgaW5saW5lKToKICAgICB1cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAKICAgICBzZXNz
aW9uLnVybCA9IHVybApAQCAtNDAsNyArNDIsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19oaXN0
b3J5KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJpZCIpID09ICJmb28i
CiAKIAotZGVmIHRlc3RfZGF0YV91cmxzKHNlc3Npb24pOgorZGVmIHRlc3RfZGF0YV91cmxzKHNl
c3Npb24sIGlubGluZSk6CiAgICAgdGVzdF9wYWdlcyA9IFsKICAgICAgICAgaW5saW5lKCI8cCBp
ZD0xPiIpLAogICAgICAgICBpbmxpbmUoIjxwIGlkPTI+IiksCkBAIC01Nyw3ICs1OSw3IEBAIGRl
ZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gdGVz
dF9wYWdlc1sxXQogCiAKLWRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWQoc2Vzc2lvbik6
CitkZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNlc3Npb24sIGlubGluZSk6CiAgICAg
dXJsX2JlZm9yZXVubG9hZCA9IGlubGluZSgiIiIKICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0Ij4K
ICAgICAgIDxzY3JpcHQ+CkBAIC0xMDUsNyArMTA3LDcgQEAgZGVmIHRlc3RfZnJhZ21lbnRzKHNl
c3Npb24sIHVybCk6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHRlc3RfcGFnZXNbMl0KIAog
Ci1kZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgorZGVmIHRlc3RfaGlz
dG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBwdXNoc3RhdGVfcGFnZSA9IGlu
bGluZSgiIiIKICAgICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1bmN0aW9uIHB1c2hTdGF0ZSgpIHsK
QEAgLTEzMCwzICsxMzIsNDUgQEAgZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwg
dXJsKToKIAogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSAie30jcHVzaHN0YXRlIi5mb3JtYXQo
cHVzaHN0YXRlX3BhZ2UpCiAgICAgYXNzZXJ0IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBoaXN0b3J5LnN0YXRlOyIpID09IHsiZm9vIjogImJhciJ9CisKKworZGVmIHRlc3RfcmVtb3Zl
ZF9pZnJhbWUoc2Vzc2lvbiwgdXJsLCBpbmxpbmUpOgorICAgIHBhZ2UgPSBpbmxpbmUoIjxwPmZv
byIpCisKKyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0
bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbCIpCisgICAgc2Vzc2lvbi51cmwgPSBwYWdlCisKKyAg
ICBzZXNzaW9uLmJhY2soKQorCisgICAgc3ViZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCIjc3Vi
LWZyYW1lIiwgYWxsPUZhbHNlKQorICAgIHNlc3Npb24uc3dpdGNoX2ZyYW1lKHN1YmZyYW1lKQor
CisgICAgcmVzcG9uc2UgPSBmb3J3YXJkKHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gcGFnZQorCisKKyMgQ2FwYWJpbGl0
eSBuZWVkZWQgYXMgbG9uZyBhcyBubyB2YWxpZCBjZXJ0aWZpY2F0ZSBpcyBhdmFpbGFibGU6Cisj
ICAgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzI4ODQ3
CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0SW5zZWN1cmVDZXJ0cyI6IFRydWV9
KQorZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luKHNlc3Npb24sIHVybCk6CisgICAgYmFzZV9wYXRoID0g
KCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5odG1sIiArCisgICAgICAg
ICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1v
cmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMi
KQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBzIiwgZG9t
YWluPSJhbHQiKQorCisgICAgc2Vzc2lvbi51cmwgPSBmaXJzdF9wYWdlCisgICAgc2Vzc2lvbi51
cmwgPSBzZWNvbmRfcGFnZQorICAgIHNlc3Npb24uYmFjaygpCisKKyAgICBlbGVtID0gc2Vzc2lv
bi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0gZm9yd2Fy
ZChzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNl
c3Npb24udXJsID09IHNlY29uZF9wYWdlCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXJyb3Iu
U3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbS5jbGljaygpCisg
ICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQv
dXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQppbmRleCBlNWVlYThmNDQ1NzEuLjNlZWFmNmU3
MWNkYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZvcndhcmQvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMs
NiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9t
IHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZm9yd2FyZChzZXNz
aW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGZvcndhcmQoc2Vzc2lvbik6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgcGFnZXMoc2Vzc2lvbik6CitkZWYgcGFnZXMoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBwYWdlcyA9IFsKICAgICAgICAgaW5saW5lKCI8cCBpZD0xPiIpLAogICAgICAgICBp
bmxpbmUoIjxwIGlkPTI+IiksCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC9nZXQucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC9nZXQu
cHkKaW5kZXggN2Y4MjFmM2E0MGQ1Li4xMDg1YWQ4MmYxOGYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVtZW50L2dl
dC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9hY3RpdmVfZWxlbWVudC9nZXQucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQs
IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgcmVhZF9nbG9iYWwoc2Vzc2lvbiwgbmFtZSk6CkBAIC0yMSw3ICsyMCw3IEBAIGRl
ZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfc3Vj
Y2Vzc19kb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3N1Y2Nlc3NfZG9jdW1lbnQoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGJvZHk+
CiAgICAgICAgICAgICA8aDE+SGVhZGluZzwvaDE+CkBAIC0zNiw3ICszNSw3IEBAIGRlZiB0ZXN0
X3N1Y2Nlc3NfZG9jdW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50
KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjZXNzX2lucHV0KHNlc3Npb24pOgor
ZGVmIHRlc3Rfc3VjZXNzX2lucHV0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCiAgICAgICAgIDxib2R5PgogICAgICAgICAgICAgPGgxPkhlYWRpbmc8L2gx
PgpAQCAtNTAsNyArNDksNyBAQCBkZWYgdGVzdF9zdWNlc3NfaW5wdXQoc2Vzc2lvbik6CiAgICAg
YXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rf
c3VjZXNzX2lucHV0X25vbl9pbnRlcmFjdGFibGUoc2Vzc2lvbik6CitkZWYgdGVzdF9zdWNlc3Nf
aW5wdXRfbm9uX2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keT4KICAgICAgICAgICAgIDxoMT5IZWFkaW5nPC9o
MT4KQEAgLTY0LDcgKzYzLDcgQEAgZGVmIHRlc3Rfc3VjZXNzX2lucHV0X25vbl9pbnRlcmFjdGFi
bGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVsZW1l
bnQpCiAKIAotZGVmIHRlc3Rfc3VjY2Vzc19leHBsaWNpdF9mb2N1cyhzZXNzaW9uKToKK2RlZiB0
ZXN0X3N1Y2Nlc3NfZXhwbGljaXRfZm9jdXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICA8aDE+SGVhZGlu
ZzwvaDE+CkBAIC0xMDUsNyArMTA0LDcgQEAgZGVmIHRlc3Rfc3VjY2Vzc19leHBsaWNpdF9mb2N1
cyhzZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbiwgZWxlbWVu
dCkKIAogCi1kZWYgdGVzdF9zdWNjZXNzX2lmcmFtZV9jb250ZW50KHNlc3Npb24pOgorZGVmIHRl
c3Rfc3VjY2Vzc19pZnJhbWVfY29udGVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8Ym9keT48L2JvZHk+IikKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCIiIgogICAgICAgICBsZXQgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1l
Jyk7CkBAIC0xMjAsNyArMTE5LDcgQEAgZGVmIHRlc3Rfc3VjY2Vzc19pZnJhbWVfY29udGVudChz
ZXNzaW9uKToKICAgICBhc3NlcnRfaXNfYWN0aXZlX2VsZW1lbnQoc2Vzc2lvbiwgZWxlbWVudCkK
IAogCi1kZWYgdGVzdF9taXNzaW5nX2RvY3VtZW50X2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVz
dF9taXNzaW5nX2RvY3VtZW50X2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGJvZHk+PC9ib2R5PiIpCiAgICAgc2Vzc2lvbi5leGVjdXRlX3Njcmlw
dCgiIiIKICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkucmVtb3ZlKSB7CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxl
bWVudC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkKaW5kZXggN2ZhN2Jl
MWRkZTk5Li4xZmY3NzY5N2I3MDcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FjdGl2ZV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3Rp
dmVfZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50LAogICAg
IGFzc2VydF9zdWNjZXNzCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogCiBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Npb24pOgpAQCAtMTcsNyArMTYsNyBA
QCBkZWYgZ2V0X2FjdGl2ZV9lbGVtZW50KHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogCkBAIC0z
NCw3ICszMyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT10ZXh0PiIpCiAKQEAgLTQ5LDcgKzQ4LDcgQEAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3Rf
Y2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4
Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQgdHlwZT10ZXh0PiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWxlcnRfdGV4dC9nZXQucHkKaW5kZXgg
YjY0Njc4NjUzZTA4Li43ZWU3ZmYxODA4ZjkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQv
Z2V0LnB5CkBAIC0xLDkgKzEsNiBAQAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBmcm9t
IHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0cy5zdXBwb3J0
LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0yNywzNiArMjQsMzYgQEAgZGVmIHRlc3Rfbm9fdXNl
cl9wcm9tcHQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBh
bGVydCIpCiAKIAotZGVmIHRlc3RfZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbik6CitkZWYgdGVzdF9n
ZXRfYWxlcnRfdGV4dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8c2NyaXB0PndpbmRvdy5hbGVydCgnSGVsbG8nKTs8L3NjcmlwdD4iKQogICAgIHJlc3BvbnNl
ID0gZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkK
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBkaWN0KQogICAgIGFzc2VydCAi
dmFsdWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBhbGVydF90ZXh0ID0gcmVzcG9uc2UuYm9keVsi
dmFsdWUiXQotICAgIGFzc2VydCBpc2luc3RhbmNlKGFsZXJ0X3RleHQsIHRleHRfdHlwZSkKKyAg
ICBhc3NlcnQgaXNpbnN0YW5jZShhbGVydF90ZXh0LCBzdHIpCiAgICAgYXNzZXJ0IGFsZXJ0X3Rl
eHQgPT0gIkhlbGxvIgogCiAKLWRlZiB0ZXN0X2dldF9jb25maXJtX3RleHQoc2Vzc2lvbik6Citk
ZWYgdGVzdF9nZXRfY29uZmlybV90ZXh0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmNvbmZpcm0oJ0hlbGxvJyk7PC9zY3JpcHQ+IikK
ICAgICByZXNwb25zZSA9IGdldF9hbGVydF90ZXh0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UpCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keSwgZGljdCkK
ICAgICBhc3NlcnQgInZhbHVlIiBpbiByZXNwb25zZS5ib2R5CiAgICAgY29uZmlybV90ZXh0ID0g
cmVzcG9uc2UuYm9keVsidmFsdWUiXQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvbmZpcm1fdGV4
dCwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvbmZpcm1fdGV4dCwgc3RyKQog
ICAgIGFzc2VydCBjb25maXJtX3RleHQgPT0gIkhlbGxvIgogCiAKLWRlZiB0ZXN0X2dldF9wcm9t
cHRfdGV4dChzZXNzaW9uKToKK2RlZiB0ZXN0X2dldF9wcm9tcHRfdGV4dChzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5wcm9tcHQoJ0Vu
dGVyIFlvdXIgTmFtZTogJywgJ0ZlZGVyZXInKTs8L3NjcmlwdD4iKQogICAgIHJlc3BvbnNlID0g
Z2V0X2FsZXJ0X3RleHQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5ib2R5LCBkaWN0KQogICAgIGFzc2VydCAidmFs
dWUiIGluIHJlc3BvbnNlLmJvZHkKICAgICBwcm9tcHRfdGV4dCA9IHJlc3BvbnNlLmJvZHlbInZh
bHVlIl0KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShwcm9tcHRfdGV4dCwgdGV4dF90eXBlKQorICAg
IGFzc2VydCBpc2luc3RhbmNlKHByb21wdF90ZXh0LCBzdHIpCiAgICAgYXNzZXJ0IHByb21wdF90
ZXh0ID09ICJFbnRlciBZb3VyIE5hbWU6ICIKIAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9fX2luaXRf
Xy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2Nv
bXB1dGVkX2xhYmVsL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9nZXQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9n
ZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zOTA0YzZjZTQx
ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9jb21wdXRlZF9sYWJlbC9nZXQucHkKQEAgLTAsMCArMSwzNiBAQAoraW1w
b3J0IHB5dGVzdAorCitmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNl
cHRpb24KKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwg
YXNzZXJ0X3N1Y2Nlc3MKK2Zyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQor
CisKK2RlZiBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwgZWxlbWVudCk6CisgICAgcmV0dXJu
IHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQiLCAic2Vzc2lvbi97c2Vzc2lv
bl9pZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vY29tcHV0ZWRsYWJlbCIuZm9ybWF0KAorICAgICAg
ICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50
X2lkPWVsZW1lbnQpKQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBnZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lv
bikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKworZGVm
IHRlc3Rfbm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CisgICAgcmVzcG9uc2UgPSBnZXRfY29tcHV0
ZWRfbGFiZWwoc2Vzc2lvbikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGFs
ZXJ0IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImh0bWwsdGFnLGxhYmVsIiwgWwor
ICAgICgiPGJ1dHRvbj5vazwvYnV0dG9uPiIsICJidXR0b24iLCAib2siKSwKKyAgICAoIjxidXR0
b24gYXJpYS1sYWJlbGxlZGJ5PVwib25lIHR3b1wiPjwvYnV0dG9uPjxkaXYgaWQ9b25lPm9rPC9k
aXY+PGRpdiBpZD10d28+Z288L2Rpdj4iLCAiYnV0dG9uIiwgIm9rIGdvIiksCisgICAgKCI8YnV0
dG9uIGFyaWEtbGFiZWw9Zm9vPmJhcjwvYnV0dG9uPiIsICJidXR0b24iLCAiZm9vIiksCisgICAg
KCI8bGFiZWw+PGlucHV0PiBmb288L2xhYmVsPiIsICJpbnB1dCIsICJmb28iKSwKKyAgICAoIjxs
YWJlbCBmb3I9Yj5mb288bGFiZWw+PGlucHV0IGlkPWI+IiwgImlucHV0IiwgImZvbyIpXSkKK2Rl
ZiB0ZXN0X2dldF9jb21wdXRlZF9sYWJlbChzZXNzaW9uLCBodG1sLCB0YWcsIGxhYmVsKToKKyAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiezB9Ii5mb3JtYXQodGFnKSkKKyAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcyh0YWcsIGFsbD1GYWxzZSkKKyAgICByZXN1bHQgPSBnZXRfY29tcHV0
ZWRfbGFiZWwoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQs
IGxhYmVsKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX3JvbGUvX19pbml0X18ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDEKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2NvbXB1dGVkX3JvbGUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfcm9sZS9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4xMGZkNjI4ZjE1NmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9yb2xl
L2dldC5weQpAQCAtMCwwICsxLDM0IEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gd2ViZHJpdmVy
LmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgorCitmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcworZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCisKKworZGVmIGdldF9jb21wdXRlZF9yb2xlKHNl
c3Npb24sIGVsZW1lbnQpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAg
ICAgICAiR0VUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1lbnQve2VsZW1lbnRfaWR9L2Nv
bXB1dGVkcm9sZSIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Np
b25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQpKQorCisKK2RlZiB0ZXN0X25v
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2Ug
PSBnZXRfY29tcHV0ZWRfcm9sZShzZXNzaW9uLCAiaWQiKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVzdF9ub191c2VyX3Byb21wdChzZXNz
aW9uKToKKyAgICByZXNwb25zZSA9IGdldF9jb21wdXRlZF9yb2xlKHNlc3Npb24sICJpZCIpCisg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBhbGVydCIpCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJodG1sLHRhZyxleHBlY3RlZCIsIFsKKyAgICAoIjxsaSByb2xlPW1l
bnVpdGVtPmZvbyIsICJsaSIsICJtZW51IiksCisgICAgKCI8aW5wdXQgcm9sZT1zZWFyY2hib3g+
IiwgImlucHV0IiwgInNlYXJjaGJveCIpLAorICAgICgiPGltZyByb2xlPXByZXNlbnRhdGlvbj4i
LCAiaW1nIiwgInByZXNlbnRhdGlvbiIpXSkKK2RlZiB0ZXN0X2NvbXB1dGVkX3JvbGVzKHNlc3Np
b24sIGh0bWwsIHRhZywgZXhwZWN0ZWQpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKGh0bWwp
CisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBhbGw9RmFsc2UpCisgICAgcmVz
dWx0ID0gZ2V0X2NvbXB1dGVkX3JvbGUoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRf
c3VjY2VzcyhyZXN1bHQsIGV4cGVjdGVkKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvZ2V0LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvZ2V0
LnB5CmluZGV4IDAzODNhOGFiYTllOS4uMWNhMTNhMWE2ZDVlIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC9nZXQu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
Y3VycmVudF91cmwvZ2V0LnB5CkBAIC0xLDExICsxLDEyIEBACi1mcm9tIHNpeCBpbXBvcnQgdGV4
dF90eXBlCitpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQgcGxhdGZv
cm1fbmFtZQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vzcwog
Ci1kb2MgPSBpbmxpbmUoIjxwPmZyYW1lIikKLWFsZXJ0X2RvYyA9IGlubGluZSgiPHNjcmlwdD53
aW5kb3cuYWxlcnQoKTwvc2NyaXB0PiIpCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGRvYyhpbmxp
bmUpOgorICAgIHJldHVybiBpbmxpbmUoIjxwPmZyYW1lIikKIAogCiBkZWYgZ2V0X2N1cnJlbnRf
dXJsKHNlc3Npb24pOgpAQCAtMTgsMTQgKzE5LDE0IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2lu
Z19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF9mcmFtZSwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwogCiAgICAg
cmVzcG9uc2UgPSBnZXRfY3VycmVudF91cmwoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSwgZG9jKQogCiAKLWRlZiB0ZXN0X2dldF9jdXJyZW50X3VybF9tYXRjaGVzX2xvY2F0
aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX21hdGNoZXNfbG9jYXRpb24o
c2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwogCiAgICAgcmVzcG9uc2UgPSBn
ZXRfY3VycmVudF91cmwoc2Vzc2lvbikKQEAgLTM3LDcgKzM4LDcgQEAgZGVmIHRlc3RfZ2V0X2N1
cnJlbnRfdXJsX3BheWxvYWQoc2Vzc2lvbik6CiAKICAgICByZXNwb25zZSA9IGdldF9jdXJyZW50
X3VybChzZXNzaW9uKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAg
YXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5j
ZSh2YWx1ZSwgc3RyKQogCiAKIGRlZiB0ZXN0X2dldF9jdXJyZW50X3VybF9zcGVjaWFsX3BhZ2Vz
KHNlc3Npb24pOgpAQCAtNzYsNyArNzcsNyBAQCBkZWYgdGVzdF9zZXRfbWFsZm9ybWVkX3VybChz
ZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikK
IAogCi1kZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0ZXJfbW9kaWZpZWRfbG9jYXRpb24oc2Vz
c2lvbik6CitkZWYgdGVzdF9nZXRfY3VycmVudF91cmxfYWZ0ZXJfbW9kaWZpZWRfbG9jYXRpb24o
c2Vzc2lvbiwgZG9jKToKICAgICBzZXNzaW9uLnVybCA9IGRvYwogCiAgICAgcmVzcG9uc2UgPSBn
ZXRfY3VycmVudF91cmwoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2lm
cmFtZS5weQppbmRleCA5NDRlNjFiNTgzZmQuLjgwYTk2MGNlOGExNSAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwv
aWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2N1cnJlbnRfdXJsL2lmcmFtZS5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9ydCBweXRl
c3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJhbWUsIGlubGluZQogCiAKICIiIgpA
QCAtMTUsOSArMTQsMjAgQEAgYWxzbyBlbmZvcmNlIHByb2Nlc3MgaXNvbGF0aW9uIGJhc2VkIG9u
IHNpdGUgb3JpZ2luLgogVGhpcyBpcyBrbm93biB0byBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMg
Zm9yIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbnMuCiAiIiIKIAotZnJhbWVfZG9jID0gaW5saW5l
KCI8cD5mcmFtZSIpCi1vbmVfZnJhbWVfZG9jID0gaW5saW5lKCI8aWZyYW1lIHNyYz0nJXMnPjwv
aWZyYW1lPiIgJSBmcmFtZV9kb2MpCi1uZXN0ZWRfZnJhbWVzX2RvYyA9IGlubGluZSgiPGlmcmFt
ZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgb25lX2ZyYW1lX2RvYykKKworQHB5dGVzdC5maXh0dXJl
CitkZWYgZnJhbWVfZG9jKGlubGluZSk6CisgICAgcmV0dXJuIGlubGluZSgiPHA+ZnJhbWUiKQor
CisKK0BweXRlc3QuZml4dHVyZQorZGVmIG9uZV9mcmFtZV9kb2MoaW5saW5lLCBmcmFtZV9kb2Mp
OgorICAgIHJldHVybiBpbmxpbmUoIjxpZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIGZyYW1l
X2RvYykKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBuZXN0ZWRfZnJhbWVzX2RvYyhpbmxpbmUs
IG9uZV9mcmFtZV9kb2MpOgorICAgIHJldHVybiBpbmxpbmUoIjxpZnJhbWUgc3JjPSclcyc+PC9p
ZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCiAKIAogZGVmIGdldF9jdXJyZW50X3VybChzZXNzaW9u
KToKQEAgLTI1LDcgKzM1LDcgQEAgZGVmIGdldF9jdXJyZW50X3VybChzZXNzaW9uKToKICAgICAg
ICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS91cmwiLmZvcm1hdCgqKnZhcnMoc2Vzc2lv
bikpKQogCiAKLWRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToKK2RlZiB0ZXN0X2lmcmFtZShzZXNz
aW9uLCBvbmVfZnJhbWVfZG9jKToKICAgICB0b3BfbGV2ZWxfZG9jID0gb25lX2ZyYW1lX2RvYwog
ICAgIHNlc3Npb24udXJsID0gdG9wX2xldmVsX2RvYwogCkBAIC0zNyw3ICs0Nyw3IEBAIGRlZiB0
ZXN0X2lmcmFtZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgdG9wX2xl
dmVsX2RvYykKIAogCi1kZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Npb24pOgorZGVmIHRlc3Rf
bmVzdGVkX2lmcmFtZShzZXNzaW9uLCBuZXN0ZWRfZnJhbWVzX2RvYyk6CiAgICAgc2Vzc2lvbi51
cmwgPSBuZXN0ZWRfZnJhbWVzX2RvYwogICAgIHRvcF9sZXZlbF9kb2MgPSBzZXNzaW9uLnVybAog
CkBAIC01Myw3ICs2Myw3IEBAIGRlZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vzc2lvbik6CiAKIAog
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkb21haW4iLCBbIiIsICJhbHQiXSwgaWRzPVsic2Ft
ZV9vcmlnaW4iLCAiY3Jvc3Nfb3JpZ2luIl0pCi1kZWYgdGVzdF9vcmlnaW4oc2Vzc2lvbiwgZG9t
YWluLCB1cmwpOgorZGVmIHRlc3Rfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBkb21h
aW4pOgogICAgIHRvcF9sZXZlbF9kb2MgPSBpbmxpbmUoaWZyYW1lKCI8cD5mcmFtZSIsIGRvbWFp
bj1kb21haW4pKQogCiAgICAgc2Vzc2lvbi51cmwgPSB0b3BfbGV2ZWxfZG9jCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50
X3VybC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMucHkKaW5kZXggZjBlOTVkMTJm
MTRlLi5kNjU3YzE4ODI0MWQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL3VzZXJfcHJvbXB0cy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3Vy
bC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lvbik6CkBAIC0xMSw3ICsxMCw3
IEBAIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIpCiAgICAgICAgIGV4cGVjdGVk
X3VybCA9IHNlc3Npb24udXJsCkBAIC0yNyw3ICsyNiw3IEBAIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJl
dHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0xPiIpCiAKQEAgLTQy
LDcgKzQxLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8cCBpZD0xPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dldC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0
cmlidXRlL2dldC5weQppbmRleCBiMThkOWNhOGIyMmEuLjUyOGNiZDI5ZjAyMCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVu
dF9hdHRyaWJ1dGUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL2dldC5weQpAQCAtMSw3ICsxLDYgQEAK
IGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgZWxlbWVudCwg
YXR0cik6CkBAIC0xMyw4ICsxMiwxNCBAQCBkZWYgZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Np
b24sIGVsZW1lbnQsIGF0dHIpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9
IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X2F0dHJpYnV0ZShzZXNz
aW9uLCBlbGVtZW50LmlkLCAiaWQiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1
Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X2F0dHJpYnV0ZShzZXNzaW9u
LCAiZm9vIiwgImlkIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRv
dyIpCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVz
cG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImlkIikK
KyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKIGRlZiB0
ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKQEAgLTI4LDcg
KzMzLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9z
dGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJl
c2goKQpAQCAtMzYsNyArNDEsNyBAQCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgog
ICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAot
ZGVmIHRlc3Rfbm9ybWFsKHNlc3Npb24pOgorZGVmIHRlc3Rfbm9ybWFsKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgIyAxMy4yIFN0ZXAgNQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQg
dHlwZT1jaGVja2JveD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKQEAgLTczLDcgKzc4LDcgQEAgZGVmIHRlc3Rfbm9ybWFsKHNlc3Npb24pOgog
ICAgICgidHJhY2siLCBbImRlZmF1bHQiXSksCiAgICAgKCJ2aWRlbyIsIFsiYXV0b3BsYXkiLCAi
Y29udHJvbHMiLCAibG9vcCIsICJtdXRlZCJdKQogXSkKLWRlZiB0ZXN0X2Jvb2xlYW5fYXR0cmli
dXRlKHNlc3Npb24sIHRhZywgYXR0cnMpOgorZGVmIHRlc3RfYm9vbGVhbl9hdHRyaWJ1dGUoc2Vz
c2lvbiwgaW5saW5lLCB0YWcsIGF0dHJzKToKICAgICBmb3IgYXR0ciBpbiBhdHRyczoKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7MH0gezF9PiIuZm9ybWF0KHRhZywgYXR0cikpCiAg
ICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKHRhZywgYWxsPUZhbHNlKQpAQCAtODEs
NyArODYsNyBAQCBkZWYgdGVzdF9ib29sZWFuX2F0dHJpYnV0ZShzZXNzaW9uLCB0YWcsIGF0dHJz
KToKICAgICAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAidHJ1ZSIpCiAKIAotZGVmIHRlc3Rf
Z2xvYmFsX2Jvb2xlYW5fYXR0cmlidXRlcyhzZXNzaW9uKToKK2RlZiB0ZXN0X2dsb2JhbF9ib29s
ZWFuX2F0dHJpYnV0ZXMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPHAgaGlkZGVuPmZvbyIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBh
bGw9RmFsc2UpCiAgICAgcmVzdWx0ID0gZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVs
ZW1lbnQuaWQsICJoaWRkZW4iKQpAQCAtMTAzLDMgKzEwOCwxNCBAQCBkZWYgdGVzdF9nbG9iYWxf
Ym9vbGVhbl9hdHRyaWJ1dGVzKHNlc3Npb24pOgogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJwIiwgYWxsPUZhbHNlKQogICAgIHJlc3VsdCA9IGdldF9lbGVtZW50X2F0dHJpYnV0ZShz
ZXNzaW9uLCBlbGVtZW50LmlkLCAiaXRlbXNjb3BlIikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1
bHQsIE5vbmUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpc19yZWxhdGl2ZSIsIFtU
cnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29sdXRlIl0pCitkZWYgdGVzdF9hbmNo
b3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVsYXRpdmUpOgorICAgIGhyZWYgPSAi
L2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgiL2Zvby5odG1sIikKKworICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9vPC9hPiIuZm9ybWF0KGhyZWYpKQor
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxsPUZhbHNlKQorCisgICAgcmVz
cG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImhyZWYi
KQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBocmVmKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1
dGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDVlZTc5
MjlhZmRmOC4uMDA5Y2IxZTVmYTFlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0ZS91c2VyX3Byb21wdHMu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
ZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0
IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNl
c3Npb24sIGVsZW1lbnQsIGF0dHIpOgpAQCAtMTUsNyArMTQsNyBAQCBkZWYgZ2V0X2VsZW1lbnRf
YXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQsIGF0dHIpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTMxLDcgKzMw
LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00Nyw3ICs0Niw3IEBAIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQog
ICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weQppbmRleCA0ZTg3MDRk
NTBhZjkuLjM2OWNhOWM2OTlmOCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9jc3NfdmFsdWUvZ2V0LnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3Nz
X3ZhbHVlL2dldC5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlKHNlc3Np
b24sIGVsZW1lbnRfaWQsIHByb3ApOgpAQCAtMTQsOSArMTMsMTYgQEAgZGVmIGdldF9lbGVtZW50
X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKIAogCiBkZWYgdGVzdF9ub190
b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5h
bF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRfZWxl
bWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImRpc3BsYXkiKQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9l
bGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCAiZm9vIiwgImJhciIpCiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxl
ID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9jc3NfdmFsdWUo
c2Vzc2lvbiwgZWxlbWVudC5pZCwgImRpc3BsYXkiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChz
ZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfY3NzX3Zh
bHVlKHNlc3Npb24sICJmb28iLCAiYmFyIikKQEAgLTI4LDcgKzM0LDcgQEAgZGVmIHRlc3RfZWxl
bWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgIm5vIHN1
Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0
ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0zNyw3ICs0Myw3IEBAIGRlZiB0
ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0
YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9wcm9wZXJ0eV9uYW1lX3ZhbHVl
KHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbmFtZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogYmxv
Y2siPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCiAKQEAgLTQ1LDcgKzUxLDcgQEAgZGVmIHRlc3RfcHJvcGVydHlfbmFtZV92YWx1ZShzZXNz
aW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJibG9jayIpCiAKIAotZGVmIHRlc3Rf
cHJvcGVydHlfbmFtZV9ub3RfZXhpc3RlbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9wcm9wZXJ0eV9u
YW1lX25vdF9leGlzdGVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3Zh
bHVlL3VzZXJfcHJvbXB0cy5weQppbmRleCA1MjliNmFlOTE4M2QuLmIxZjlhM2ZiMGEwMCAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
ZWxlbWVudF9jc3NfdmFsdWUvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3VzZXJfcHJv
bXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9k
aWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAK
IAogZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToK
QEAgLTE4LDcgKzE3LDcgQEAgZGVmIGdldF9lbGVtZW50X2Nzc192YWx1ZShzZXNzaW9uLCBlbGVt
ZW50X2lkLCBwcm9wKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9jayI+IiIiKQogICAgICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0zNCw3ICsz
Myw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgor
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogYmxvY2siPiIiIikKICAgICAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtNTAsNyArNDks
NyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2Rl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiPGlucHV0IHN0eWxlPSJkaXNwbGF5OiBibG9jayI+IiIiKQogICAgICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3Bl
cnR5L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfcHJvcGVydHkvZ2V0LnB5CmluZGV4IDVjMDI0N2VkYjcwMi4uMTBmN2EwOGFl
NzNlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weQpAQCAt
MSw3ICsxLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9u
LCBlbGVtZW50X2lkLCBwcm9wKToKQEAgLTEzLDkgKzEyLDE2IEBAIGRlZiBnZXRfZWxlbWVudF9w
cm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKIAogCiBkZWYgdGVzdF9ub190b3Bf
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9o
YW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVu
dF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAidmFsdWUiKQorICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50
X3Byb3BlcnR5KHNlc3Npb24sICJmb28iLCAiaWQiKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdp
bmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwg
ZWxlbWVudC5pZCwgInZhbHVlIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xv
c2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24s
ICJmb28iLCAiaWQiKQpAQCAtMjcsNyArMzMsNyBAQCBkZWYgdGVzdF9lbGVtZW50X25vdF9mb3Vu
ZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQi
KQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50
X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dCBpZD1mb29iYXI+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTM2LDcgKzQyLDcgQEAgZGVmIHRl
c3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJz
dGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfcHJvcGVydHlfbm9uX2V4aXN0
ZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcHJvcGVydHlfbm9uX2V4aXN0ZW50KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtNDUsNyArNTEsNyBA
QCBkZWYgdGVzdF9wcm9wZXJ0eV9ub25fZXhpc3RlbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHNl
c3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uZm9vIiwgYXJncz0oZWxl
bWVudCwpKSBpcyBOb25lCiAKIAotZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbik6
CitkZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vYmFyPiIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC01Myw3ICs1OSw3IEBAIGRl
ZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24pOgor
ZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdmFsdWU9Zm9vPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoIiIi
YXJndW1lbnRzWzBdLnZhbHVlID0gImJhciI7IiIiLCBhcmdzPShlbGVtZW50LCkpCkBAIC03MCw3
ICs3Niw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgKCJudWxsIiwg
Tm9uZSksCiAgICAgKCJ1bmRlZmluZWQiLCBOb25lKSwKIF0pCi1kZWYgdGVzdF9wcmltaXRpdmVz
KHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKK2RlZiB0ZXN0X3ByaW1pdGl2
ZXMoc2Vzc2lvbiwgaW5saW5lLCBqc19wcmltaXRpdmUsIHB5X3ByaW1pdGl2ZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dD4KIApAQCAtOTMsNyArOTksNyBA
QCBkZWYgdGVzdF9wcmltaXRpdmVzKHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZl
KToKICAgICAoIm51bGwiLCBOb25lKSwKICAgICAoInVuZGVmaW5lZCIsIE5vbmUpLAogXSkKLWRl
ZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0X2J5X2V4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGpzX3ByaW1p
dGl2ZSwgcHlfcHJpbWl0aXZlKToKK2RlZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0X2J5X2V4ZWN1dGVf
c2NyaXB0KHNlc3Npb24sIGlubGluZSwganNfcHJpbWl0aXZlLCBweV9wcmltaXRpdmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgi
YXJndW1lbnRzWzBdLmZvb2JhciA9IHt9Ii5mb3JtYXQoanNfcHJpbWl0aXZlKSwgYXJncz0oZWxl
bWVudCwpKQpAQCAtMTAyLDcgKzEwOCw3IEBAIGRlZiB0ZXN0X3ByaW1pdGl2ZXNfc2V0X2J5X2V4
ZWN1dGVfc2NyaXB0KHNlc3Npb24sIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZlKToKICAgICBh
c3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgcHlfcHJpbWl0aXZlKQogCiAKLWRlZiB0ZXN0X211dGF0
ZWRfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X211dGF0ZWRfZWxlbWVudChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1jaGVja2JveD4i
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAg
ICBlbGVtZW50LmNsaWNrKCkKQEAgLTExNCwzICsxMjAsMTQgQEAgZGVmIHRlc3RfbXV0YXRlZF9l
bGVtZW50KHNlc3Npb24pOgogCiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShz
ZXNzaW9uLCBlbGVtZW50LmlkLCAiY2hlY2tlZCIpCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UsIFRydWUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpc19yZWxhdGl2ZSIsIFtU
cnVlLCBGYWxzZV0sIGlkcz1bInJlbGF0aXZlIiwgImFic29sdXRlIl0pCitkZWYgdGVzdF9hbmNo
b3JfaHJlZihzZXNzaW9uLCBpbmxpbmUsIHVybCwgaXNfcmVsYXRpdmUpOgorICAgIGhyZWYgPSAi
L2Zvby5odG1sIiBpZiBpc19yZWxhdGl2ZSBlbHNlIHVybCgiL2Zvby5odG1sIikKKworICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fSc+Zm9vPC9hPiIuZm9ybWF0KGhyZWYpKQor
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJhIiwgYWxsPUZhbHNlKQorCisgICAgcmVz
cG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50LmlkLCAiaHJlZiIp
CisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIHVybCgiL2Zvby5odG1sIikpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVt
ZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcHJvcGVydHkvdXNlcl9wcm9tcHRzLnB5Cmlu
ZGV4IDE2YTA5ODUzNmZkZS4uZTVlNzY5NDc4NjNlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJf
cHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAK
IGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3Byb3Bl
cnR5KHNlc3Npb24sIGVsZW1lbnRfaWQsIG5hbWUpOgpAQCAtMTMsNyArMTIsNyBAQCBkZWYgZ2V0
X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudF9pZCwgbmFtZSk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRl
ZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUs
IHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIp
CiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpA
QCAtMjksNyArMjgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ1LDcgKzQ0LDcgQEAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xv
c2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cs
IGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQg
aWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxs
PUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC9nZXQucHkKaW5kZXggNDk0YzQ1
ZjhlNDViLi45YWI0ZGI0YzYwNGYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC9nZXQucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L2dl
dC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBp
bXBvcnQgZWxlbWVudF9yZWN0Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE0
LDkgKzEzLDE2IEBAIGRlZiBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sIGVsZW1lbnRfaWQpOgog
CiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5k
b3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICBy
ZXNwb25zZSA9IGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBnZXRf
ZWxlbWVudF9yZWN0KHNlc3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFs
X2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50
LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAog
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAg
IHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCAiZm9vIikKQEAgLTI4LDcgKzM0
LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3VsdCwgIm5vIHN1Y2ggZWxlbWVudCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFs
ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0z
Nyw3ICs0Myw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9i
YXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2ljKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L3VzZXJfcHJvbXB0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1l
bnRfcmVjdC91c2VyX3Byb21wdHMucHkKaW5kZXggYzUxODY2Y2I4NzU4Li4yMDEzMTYwMzM4MWIg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X2VsZW1lbnRfcmVjdC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9yZWN0L3VzZXJfcHJvbXB0cy5w
eQpAQCAtNCw3ICs0LDYgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19o
YW5kbGVkCiBmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZWxlbWVudF9yZWN0Ci1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1l
bnRfcmVjdChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE4LDcgKzE3LDcgQEAgZGVmIGdldF9l
bGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICAgICAgZWxlbWVudCA9
IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMzQsNyArMzMsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
ZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFs
bD1GYWxzZSkKQEAgLTUwLDcgKzQ5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAg
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9v
dC9jb25mdGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZmMwYzkxYzNkM2YKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3No
YWRvd19yb290L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMjIgQEAKK2ltcG9ydCBweXRlc3QKKwor
QHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tib3hfZG9tKGlubGluZSk6CisgICAgcmV0dXJuIGlu
bGluZSgiIiIKKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgY3VzdG9tLWNoZWNrYm94LWVs
ZW1lbnQgeworICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7IHdpZHRoOjIwcHg7IGhlaWdo
dDoyMHB4OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8Y3VzdG9t
LWNoZWNrYm94LWVsZW1lbnQ+PC9jdXN0b20tY2hlY2tib3gtZWxlbWVudD4KKyAgICAgICAgPHNj
cmlwdD4KKyAgICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnY3VzdG9tLWNoZWNrYm94
LWVsZW1lbnQnLAorICAgICAgICAgICAgICAgIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgewor
ICAgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNo
U2hhZG93KHttb2RlOiAnb3Blbid9KS5pbm5lckhUTUwgPSBgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXY+PGlucHV0IHR5cGU9ImNoZWNrYm94Ii8+PC9kaXY+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgPC9zY3JpcHQ+IiIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3df
cm9vdC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9lbGVtZW50X3NoYWRvd19yb290L2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjgyZTUyNDIwYTJjMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jv
b3QvZ2V0LnB5CkBAIC0wLDAgKzEsNjAgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwg
YXNzZXJ0X3N1Y2Nlc3MKKworCitkZWYgZ2V0X3NoYWRvd19yb290KHNlc3Npb24sIGVsZW1lbnRf
aWQpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiR0VUIiwg
InNlc3Npb24ve3Nlc3Npb25faWR9L2VsZW1lbnQve2VsZW1lbnRfaWR9L3NoYWRvdyIuZm9ybWF0
KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAg
ICBlbGVtZW50X2lkPWVsZW1lbnRfaWQpKQorCisKK2RlZiB0ZXN0X25vX3RvcF9icm93c2luZ19j
b250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxl
bWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChzZXNz
aW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2lu
ZG93IikKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCAiZm9vIikKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKyAgICBzZXNzaW9u
LndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9zaGFk
b3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNz
aW9uLCBjbG9zZWRfZnJhbWUpOgorICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290KHNlc3Np
b24sICJmb28iKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikK
KworCitkZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9uKToKKyAgICByZXN1bHQgPSBn
ZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwg
Im5vIHN1Y2ggZWxlbWVudCIpCisKKworZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uLCBj
aGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hlY2tib3hfZG9tCisgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNl
KQorICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXN1bHQgPSBnZXRfc2hhZG93X3Jvb3Qo
c2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAic3RhbGUgZWxl
bWVudCByZWZlcmVuY2UiKQorCisKK2RlZiB0ZXN0X2dldF9zaGFkb3dfcm9vdChzZXNzaW9uLCBj
aGVja2JveF9kb20pOgorICAgIHNlc3Npb24udXJsID0gY2hlY2tib3hfZG9tCisgICAgZXhwZWN0
ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAicmV0dXJuIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2N1c3RvbS1jaGVja2JveC1lbGVtZW50Jykuc2hhZG93Um9vdC5ob3N0IikK
KyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1l
bGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290KHNlc3Np
b24sIGN1c3RvbV9lbGVtZW50LmlkKQorICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpCisgICAgYXNzZXJ0ICJzaGFk
b3ctNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmIiBpbiB2YWx1ZQorICAgIGFzc2VydF9zYW1l
X2VsZW1lbnQoc2Vzc2lvbiwgY3VzdG9tX2VsZW1lbnQsIGV4cGVjdGVkKQorCisKK2RlZiB0ZXN0
X25vX3NoYWRvd19yb290KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxkaXY+PHA+bm8gc2hhZG93IHJvb3Q8L3A+PC9kaXY+IikKKyAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRv
d19yb290KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCBzaGFkb3cgcm9vdCIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L3VzZXJfcHJvbXB0
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2Vs
ZW1lbnRfc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uMzI2NzFiOTVhNTM1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3df
cm9vdC91c2VyX3Byb21wdHMucHkKQEAgLTAsMCArMSwxMTcgQEAKKyMgTUVUQTogdGltZW91dD1s
b25nCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAorCisK
K2RlZiBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CisgICAgcmV0dXJuIHNl
c3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJHRVQiLCAic2Vzc2lvbi97c2Vzc2lvbl9p
ZH0vZWxlbWVudC97ZWxlbWVudF9pZH0vc2hhZG93Ii5mb3JtYXQoCisgICAgICAgICAgICBzZXNz
aW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVu
dF9pZCkpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGNoZWNrYm94X2RvbSk6
CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFs
b2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9kb20KKyAg
ICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50
IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9
ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lv
biwgZWxlbWVudC5pZCkKKyAgICAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkK
KyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpCisKKyAgICAgICAgYXNzZXJ0
X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVj
dGVkX3JldHZhbD1yZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGNoZWNr
Ym94X2RvbSk6CisgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9k
b20KKyAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1l
bGVtZW50IiwgYWxsPUZhbHNlKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUs
IHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qo
c2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAidW5l
eHBlY3RlZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQoc2Vz
c2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0ZWRfcmV0dmFsPXJldHZhbCkK
KworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24KKwor
CitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgY2hlY2tib3hfZG9tKToKKyAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToK
KyAgICAgICAgc2Vzc2lvbi51cmwgPSBjaGVja2JveF9kb20KKyAgICAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQorCisg
ICAgICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAg
ICAgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAg
ICAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAidW5leHBlY3RlZCBhbGVydCBvcGVuIikKKwor
ICAgICAgICBhc3NlcnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09IGRpYWxvZ190eXBlCisgICAgICAg
IHNlc3Npb24uYWxlcnQuZGlzbWlzcygpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7
InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImFjY2VwdCJ9KQorQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAg
ICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10pCitkZWYgdGVzdF9h
Y2NlcHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uLCBkaWFsb2df
dHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNl
cHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVz
KHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0IGFuZCBub3RpZnkifSkKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0
IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgVHJ1ZSksCisgICAgKCJwcm9tcHQiLCAiIiksCitd
KQorZGVmIHRlc3RfYWNjZXB0X2FuZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0
Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlzbWlzcyJ9
KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAg
ICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQi
LCBOb25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzKGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKwor
QHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRp
c21pc3MgYW5kIG5vdGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlw
ZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxz
ZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzX2FuZF9ub3Rp
ZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwg
cmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlh
bG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5k
bGVkUHJvbXB0QmVoYXZpb3IiOiAiaWdub3JlIn0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImRpYWxvZ190eXBlIiwgWyJhbGVydCIsICJjb25maXJtIiwgInByb21wdCJdKQorZGVmIHRlc3Rf
aWdub3JlKGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbiwgZGlhbG9n
X3R5cGUpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCBy
ZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwK
KyAgICAoInByb21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2RlZmF1bHQoY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS9nZXQucHkKaW5kZXggZmZl
NmRkNjQxZTgyLi5jZmM2M2JkNzg4ZGUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
dGFnX25hbWUvZ2V0LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2Vy
dHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNz
aW9uLCBlbGVtZW50X2lkKToKQEAgLTEwLDkgKzksMTYgQEAgZGVmIGdldF9lbGVtZW50X3RhZ19u
YW1lKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19j
b250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxl
bWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RhZ19uYW1l
KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3Vj
aCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwg
ImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisg
ICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2Ug
PSBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gZ2V0X2Vs
ZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgImZvbyIpCkBAIC0yNCw3ICszMCw3IEBAIGRlZiB0ZXN0
X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJu
byBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6Citk
ZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTMzLDcgKzM5
LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3Io
cmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAKLWRlZiB0ZXN0X2dldF9lbGVt
ZW50X3RhZ19uYW1lKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2VsZW1lbnRfdGFnX25hbWUoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4i
KQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1lL3VzZXJfcHJvbXB0
cy5weQppbmRleCAxMmE3ZDQ0ODQyMWUuLjg5Njk3ZDBhZDZhMiAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFt
ZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2VyX3Byb21wdHMucHkKQEAgLTMsNyAr
Myw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVu
dF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGdl
dF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbz4iKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTI4
LDcgKzI3LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00NCw3ICs0Myw3IEBAIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9i
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxp
bmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
ZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZv
bz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxz
ZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5CmluZGV4IDVmMTY5YTNhMjMz
Yi4uNzJkYzBjZjczNWU1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC9nZXQucHkK
QEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBA
IC0xMCwyOSArOSwzMiBAQCBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVtZW50X2lk
KToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRf
d2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93Cisg
ICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAg
YXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0g
Z2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9u
c2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmln
aW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxl
bWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQor
CiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToK
ICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X2dldHRp
bmdfdGV4dF9vZl9hX25vbl9leGlzdGFudF9lbGVtZW50X2lzX2FuX2Vycm9yKHNlc3Npb24pOgor
ZGVmIHRlc3RfZ2V0dGluZ190ZXh0X29mX2Ffbm9uX2V4aXN0YW50X2VsZW1lbnRfaXNfYW5fZXJy
b3Ioc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8Ym9keT5I
ZWxsbyB3b3JsZDwvYm9keT4iIiIpCiAKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF90ZXh0KHNl
c3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJubyBzdWNoIGVsZW1lbnQi
KQogCiAKLWRlZiB0ZXN0X3JlYWRfZWxlbWVudF90ZXh0KHNlc3Npb24pOgotICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgotICAgICAgICA8Ym9keT4KLSAgICAgICAgICBOb2lzZSBiZWZvcmUg
PHNwYW4gaWQ9J2lkJz5UaGlzIGhhcyBhbiBJRDwvc3Bhbj4uIE5vaXNlIGFmdGVyCi0gICAgICAg
IDwvYm9keT4iIiIpCi0KK2RlZiB0ZXN0X3JlYWRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGlubGlu
ZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIkJlZm9yZSBmPHNwYW4gaWQ9J2lkJz5vbzwv
c3Bhbj4gYWZ0ZXIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjaWQiLCBhbGw9
RmFsc2UpCiAKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnQu
aWQpCi0gICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiVGhpcyBoYXMgYW4gSUQiKQorICAgIGFz
c2VydF9zdWNjZXNzKHJlc3VsdCwgIm9vIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC91c2VyX3Byb21wdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVt
ZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDFlZTVjZGU0ZGE1Mi4uOWYwYmIzODZjZGY1
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9lbGVtZW50X3RleHQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGV4dC91c2VyX3Byb21wdHMu
cHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9n
X2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRl
ZiBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAtMTQsNyArMTMsNyBA
QCBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwg
cmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPWZvbz5iYXI8L3A+
IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2Up
CkBAIC0zMCw3ICsyOSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8cCBpZD1mb28+YmFyPC9wPiIpCiAgICAgICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtNDYsNyArNDUsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxw
IGlkPWZvbz5iYXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNm
b28iLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2dldF9uYW1lZF9jb29raWUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFtZWRfY29va2llL2dldC5weQppbmRl
eCAxMDJjMThmMDI3NWMuLmQxZTgzYjZhODE1MiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFtZWRfY29va2llL2dldC5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9uYW1lZF9j
b29raWUvZ2V0LnB5CkBAIC0xLDEyICsxLDEwIEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gZGF0
ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKLWZyb20gc2l4IGltcG9ydCBpbnRlZ2Vy
X3R5cGVzLCB0ZXh0X3R5cGUKIAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMg
aW1wb3J0IGNsZWFyX2FsbF9jb29raWVzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKIAogCiBkZWYgZ2V0X25hbWVkX2Nvb2tpZShzZXNzaW9uLCBuYW1lKToKQEAgLTM4
LDEzICszNiwxMyBAQCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vzc2lvbl9jb29raWUoc2Vzc2lvbiwg
dXJsKToKICAgICAjIHRhYmxlIGZvciBjb29raWUgY29udmVyc2lvbgogICAgICMgaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZGZuLXRhYmxlLWZvci1jb29raWUtY29udmVyc2lvbgog
ICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2ll
WyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUi
XSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNv
b2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAicGF0aCIgaW4gY29va2llCi0gICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJwYXRoIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb29raWVbInBhdGgiXSwgc3RyKQogICAgIGFzc2VydCAiZG9tYWluIiBpbiBjb29r
aWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCB0ZXh0X3R5cGUpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgc3RyKQogICAgIGFzc2VydCAi
c2VjdXJlIiBpbiBjb29raWUKICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNlY3VyZSJd
LCBib29sKQogICAgIGFzc2VydCAiaHR0cE9ubHkiIGluIGNvb2tpZQpAQCAtNTIsNyArNTAsNyBA
QCBkZWYgdGVzdF9nZXRfbmFtZWRfc2Vzc2lvbl9jb29raWUoc2Vzc2lvbiwgdXJsKToKICAgICBp
ZiAiZXhwaXJ5IiBpbiBjb29raWU6CiAgICAgICAgIGFzc2VydCBjb29raWUuZ2V0KCJleHBpcnki
KSBpcyBOb25lCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlz
aW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2llWyJuYW1l
Il0gPT0gImZvbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09ICJiYXIiCkBAIC03Miwx
MyArNzAsMTMgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX2Nvb2tpZShzZXNzaW9uLCB1cmwpOgogICAg
IGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAogICAgIGFzc2VydCAibmFtZSIgaW4g
Y29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkK
KyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAi
dmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwg
dGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQog
ICAgIGFzc2VydCAiZXhwaXJ5IiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbImV4cGlyeSJdLCBpbnRlZ2VyX3R5cGVzKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsiZXhwaXJ5Il0sIGludCkKICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBjb29raWUKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlwZSkKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb29raWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29r
aWVbIm5hbWUiXSA9PSAiZm9vIgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gImJhciIK
QEAgLTg3LDcgKzg1LDcgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX2Nvb2tpZShzZXNzaW9uLCB1cmwp
OgogICAgICAgICBjb29raWVbImV4cGlyeSJdKS5zdHJmdGltZSh1dGNfc3RyaW5nX2Zvcm1hdCkg
PT0gYV9kYXlfZnJvbV9ub3cKIAogCi1kZWYgdGVzdF9kdXBsaWNhdGVkX2Nvb2tpZShzZXNzaW9u
LCB1cmwsIHNlcnZlcl9jb25maWcpOgorZGVmIHRlc3RfZHVwbGljYXRlZF9jb29raWUoc2Vzc2lv
biwgdXJsLCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIG5ld19jb29raWUgPSB7CiAgICAg
ICAgICJuYW1lIjogImhlbGxvIiwKICAgICAgICAgInZhbHVlIjogIndvcmxkIiwKQEAgLTExMywx
MSArMTExLDExIEBAIGRlZiB0ZXN0X2R1cGxpY2F0ZWRfY29va2llKHNlc3Npb24sIHVybCwgc2Vy
dmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llLCBkaWN0KQogCiAgICAg
YXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5h
bWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBz
dHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2ll
WyJ2YWx1ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4gY29va2llCi0gICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0
IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2ll
WyJuYW1lIl0gPT0gbmV3X2Nvb2tpZVsibmFtZSJdCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUi
XSA9PSAibmV3d29ybGQiCkBAIC0xMzYsMTEgKzEzNCwxMSBAQCBkZWYgdGVzdF9nZXRfY29va2ll
X3dpdGhfc2FtZV9zaXRlX2ZsYWcoc2Vzc2lvbiwgdXJsLCBzYW1lX3NpdGUpOgogICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkKIAogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2ll
Ci0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBh
c3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUi
IGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90
eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFz
c2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsi
c2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsic2Ft
ZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFtZSJdID09ICJmb28iCiAgICAg
YXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAiYmFyIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9z
b3VyY2Uvc291cmNlLnB5CmluZGV4IDU0ODRjY2JmMmVlZi4uY2M0ZTIwODgzNWM4IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9wYWdl
X3NvdXJjZS9zb3VyY2UucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5CkBAIC0xLDUgKzEsNCBAQAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nl
c3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRf
cGFnZV9zb3VyY2Uoc2Vzc2lvbik6CkBAIC0xNyw3ICsxNiw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfc291cmNlX21hdGNoZXNfb3V0
ZXJfaHRtbChzZXNzaW9uKToKK2RlZiB0ZXN0X3NvdXJjZV9tYXRjaGVzX291dGVyX2h0bWwoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGh0bWw+PGhlYWQ+PHRp
dGxlPkNoZWVzZTwvdGl0bGU+PGJvZHk+UGVhcyIpCiAKICAgICBleHBlY3RlZCA9IHNlc3Npb24u
ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1M
IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weQpp
bmRleCAzYjBjZGZmOTdkZDkuLjEzY2IzMTU5NWU2MSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfcGFnZV9zb3VyY2UvdXNlcl9wcm9t
cHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
Z2V0X3BhZ2Vfc291cmNlL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBw
eXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwg
YXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9wYWdlX3NvdXJjZShzZXNzaW9uKToK
QEAgLTEyLDcgKzExLDcgQEAgZGVmIGdldF9wYWdlX3NvdXJjZShzZXNzaW9uKToKIAogCiBAcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlw
ZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAgICAg
ICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC5vdXRlckhUTUwiKQpAQCAtMjgsNyArMjcsNyBAQCBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdi8+IikKIApA
QCAtNDMsNyArNDIsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dldC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dldC5weQppbmRleCAz
NDQwNTc3NGJhMDYuLmU2OTZlYzM0MDMzOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvZ2V0LnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dldC5weQpAQCAt
MSw3ICsxLDQgQEAKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKLQogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfdGl0bGUoc2Vzc2lv
bik6CkBAIC0xNCw3ICsxMSw3IEBAIGRlZiB0ZXN0X3BheWxvYWQoc2Vzc2lvbik6CiAKICAgICBy
ZXNwb25zZSA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSkKKyAgICBh
c3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKQogCiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2lu
Z19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgpAQCAtMjIsMjggKzE5LDI4IEBAIGRl
ZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVz
dF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9u
b19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKIAogICAgIHJlc3BvbnNl
ID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsICJGb28i
KQogCiAKLWRlZiB0ZXN0X3dpdGhfZHVwbGljYXRlZF90aXRsZShzZXNzaW9uKToKK2RlZiB0ZXN0
X3dpdGhfZHVwbGljYXRlZF90aXRsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8dGl0bGU+Rmlyc3Q8L3RpdGxlPjx0aXRsZT5TZWNvbmQ8L3RpdGxlPiIpCiAK
ICAgICByZXN1bHQgPSBnZXRfdGl0bGUoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1
bHQsICJGaXJzdCIpCiAKIAotZGVmIHRlc3Rfd2l0aG91dF90aXRsZShzZXNzaW9uKToKK2RlZiB0
ZXN0X3dpdGhvdXRfdGl0bGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGgyPkhlbGxvPC9oMj4iKQogCiAgICAgcmVzdWx0ID0gZ2V0X3RpdGxlKHNlc3Npb24p
CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiIikKIAogCi1kZWYgdGVzdF9hZnRlcl9tb2Rp
ZmljYXRpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9hZnRlcl9tb2RpZmljYXRpb24oc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkluaXRpYWw8L3RpdGxl
PjxoMj5IZWxsbzwvaDI+IikKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJkb2N1bWVudC50
aXRsZSA9ICdVcGRhdGVkJyIpCiAKQEAgLTUxLDcgKzQ4LDcgQEAgZGVmIHRlc3RfYWZ0ZXJfbW9k
aWZpY2F0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIlVwZGF0ZWQi
KQogCiAKLWRlZiB0ZXN0X3N0cmlwX2FuZF9jb2xsYXBzZShzZXNzaW9uKToKK2RlZiB0ZXN0X3N0
cmlwX2FuZF9jb2xsYXBzZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIGRvY3VtZW50ID0gIjx0aXRs
ZT4gICBhIGJcdGNcbmRcdCBcbiBlXHRcbiA8L3RpdGxlPjxoMj5IZWxsbzwvaDI+IgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKGRvY3VtZW50KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9pZnJhbWUucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9pZnJhbWUu
cHkKaW5kZXggNTk5MWJmMzU5MDY5Li45YzVhYjBiNTk1ZDMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2lmcmFtZS5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRs
ZS9pZnJhbWUucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAogCiAiIiIKQEAgLTE1LDkgKzE0LDIwIEBA
IGFsc28gZW5mb3JjZSBwcm9jZXNzIGlzb2xhdGlvbiBiYXNlZCBvbiBzaXRlIG9yaWdpbi4KIFRo
aXMgaXMga25vd24gdG8gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zIGZvciBXZWJEcml2ZXIgaW1w
bGVtZW50YXRpb25zLgogIiIiCiAKLWZyYW1lX2RvYyA9IGlubGluZSgiPHRpdGxlPmNoZWVzZTwv
dGl0bGU+PHA+ZnJhbWUiKQotb25lX2ZyYW1lX2RvYyA9IGlubGluZSgiPHRpdGxlPmJhcjwvdGl0
bGU+PGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgZnJhbWVfZG9jKQotbmVzdGVkX2ZyYW1l
c19kb2MgPSBpbmxpbmUoIjx0aXRsZT5mb288L3RpdGxlPjxpZnJhbWUgc3JjPSclcyc+PC9pZnJh
bWU+IiAlIG9uZV9mcmFtZV9kb2MpCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGZyYW1lX2RvYyhp
bmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjx0aXRsZT5jaGVlc2U8L3RpdGxlPjxwPmZyYW1l
IikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBvbmVfZnJhbWVfZG9jKGlubGluZSwgZnJhbWVf
ZG9jKToKKyAgICByZXR1cm4gaW5saW5lKCI8dGl0bGU+YmFyPC90aXRsZT48aWZyYW1lIHNyYz0n
JXMnPjwvaWZyYW1lPiIgJSBmcmFtZV9kb2MpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgbmVz
dGVkX2ZyYW1lc19kb2MoaW5saW5lLCBvbmVfZnJhbWVfZG9jKToKKyAgICByZXR1cm4gaW5saW5l
KCI8dGl0bGU+Zm9vPC90aXRsZT48aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIgJSBvbmVfZnJh
bWVfZG9jKQogCiAKIGRlZiBnZXRfdGl0bGUoc2Vzc2lvbik6CkBAIC0yNSwxNCArMzUsMTQgQEAg
ZGVmIGdldF90aXRsZShzZXNzaW9uKToKICAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9u
X2lkfS90aXRsZSIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3Rfbm9faWZy
YW1lKHNlc3Npb24pOgorZGVmIHRlc3Rfbm9faWZyYW1lKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb29iYXI8L3RpdGxlPjxoMj5IZWxsbzwvaDI+
IikKIAogICAgIHJlc3VsdCA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNz
KHJlc3VsdCwgIkZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWZyYW1lKHNlc3Npb24pOgorZGVmIHRl
c3RfaWZyYW1lKHNlc3Npb24sIG9uZV9mcmFtZV9kb2MpOgogICAgIHNlc3Npb24udXJsID0gb25l
X2ZyYW1lX2RvYwogCiAgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9
RmFsc2UpCkBAIC00Myw3ICs1Myw3IEBAIGRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToKICAgICBh
c3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgImJhciIpCiAKIAotZGVmIHRlc3RfbmVzdGVkX2lmcmFt
ZShzZXNzaW9uKToKK2RlZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vzc2lvbiwgbmVzdGVkX2ZyYW1l
c19kb2MpOgogICAgIHNlc3Npb24udXJsID0gbmVzdGVkX2ZyYW1lc19kb2MKIAogICAgIG91dGVy
X2ZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQpAQCAtNTgsNyAr
NjgsNyBAQCBkZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Npb24pOgogCiAKIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiZG9tYWluIiwgWyIiLCAiYWx0Il0sIGlkcz1bInNhbWVfb3JpZ2luIiwg
ImNyb3NzX29yaWdpbiJdKQotZGVmIHRlc3Rfb3JpZ2luKHNlc3Npb24sIGRvbWFpbiwgdXJsKToK
K2RlZiB0ZXN0X29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSwgZG9tYWluKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPmZvbzwvdGl0bGU+e30iLmZvcm1hdCgKICAgICAg
ICAgaWZyYW1lKCI8dGl0bGU+YmFyPC90aXRsZT48cD5mcmFtZSIsIGRvbWFpbj1kb21haW4pKSkK
IApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5CmluZGV4IDc2ZDY1YzA4
OGEwYi4uMGZkNTFlNDZmMzJhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9t
cHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgpAQCAtMTIsNyArMTEsNyBAQCBkZWYgZ2V0X3RpdGxl
KHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKICAgICAgICAgZXhwZWN0ZWRfdGl0bGUgPSBzZXNz
aW9uLnRpdGxlCkBAIC0yOCw3ICsyNyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAg
ICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Rm9vPC90aXRsZT4iKQogCkBAIC00
Myw3ICs0Miw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikKIApAQCAtMTE3LDcgKzExNiw3IEBAIGRl
ZiB0ZXN0X2RlZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBk
aWFsb2dfdHlwZSwgcmV0dmFsKToKICMgdHJpZ2dlciB0aGUgY3JlYXRpb24gb2YgYSBkaWFsb2cg
YXQgYWxsLiBUaGVyZWZvcmUsIHRoaXMgdGVzdCBzaG91bGQgb25seSBiZQogIyBydW4gaW4gY29u
dGV4dHMgdGhhdCBzdXBwb3J0IHRoZSBkaWFsb2cgKGEgY29uZGl0aW9uIHRoYXQgbWF5IG5vdCBi
ZQogIyBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkpLgotIyBkZWYgdGVzdF90aXRsZV93aXRoX25v
bl9zaW1wbGVfZGlhbG9nKHNlc3Npb24pOgorIyBkZWYgdGVzdF90aXRsZV93aXRoX25vbl9zaW1w
bGVfZGlhbG9nKHNlc3Npb24sIGlubGluZSk6CiAjICAgIGRvY3VtZW50ID0gIjx0aXRsZT5XaXRo
IG5vbi1zaW1wbGUgZGlhbG9nPC90aXRsZT48aDI+SGVsbG88L2gyPiIKICMgICAgc3Bhd24gPSAi
IiIKICMgICAgICAgIHZhciBkb25lID0gYXJndW1lbnRzWzBdOwpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hhbmRsZS9n
ZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93
aW5kb3dfaGFuZGxlL2dldC5weQppbmRleCA4YzI2MjAzM2MzODMuLjY4NDQxZGE1ZWY4NCAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
d2luZG93X2hhbmRsZS9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkKQEAgLTEsMyArMSw1IEBACitp
bXBvcnQgcHl0ZXN0CisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtMTksMyArMjEsMjMgQEAgZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogZGVmIHRlc3RfYmFzaWMo
c2Vzc2lvbik6CiAgICAgcmVzcG9uc2UgPSBnZXRfd2luZG93X2hhbmRsZShzZXNzaW9uKQogICAg
IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCBzZXNzaW9uLndpbmRvd19oYW5kbGUpCisKKworIyBD
YXBhYmlsaXR5IG5lZWRlZCBhcyBsb25nIGFzIG5vIHZhbGlkIGNlcnRpZmljYXRlIGlzIGF2YWls
YWJsZToKKyMgICBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1
ZXMvMjg4NDcKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJhY2NlcHRJbnNlY3VyZUNlcnRz
IjogVHJ1ZX0pCitkZWYgdGVzdF9uYXZpZ2F0aW9uX3dpdGhfY29vcF9oZWFkZXJzKHNlc3Npb24s
IHVybCk6CisgICAgYmFzZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9z
dWJmcmFtZS5odG1sIiArCisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4iKQorCisgICAgc2Vzc2lvbi51cmwgPSB1cmwo
YmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiKQorICAgIHJlc3BvbnNlID0gZ2V0X3dpbmRvd19o
YW5kbGUoc2Vzc2lvbikKKyAgICBmaXJzdF9oYW5kbGUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKKworICAgICMgbmF2aWdhdGluZyB0byBhbm90aGVyIGRvbWFpbiB3aXRoIENPT1AgaGVhZGVy
cyB3aWxsIGZvcmNlIGEgcHJvY2VzcyBjaGFuZ2UKKyAgICAjIGluIG1vc3QgYnJvd3NlcnMKKyAg
ICBzZXNzaW9uLnVybCA9IHVybChiYXNlX3BhdGgsIHByb3RvY29sPSJodHRwcyIsIGRvbWFpbj0i
YWx0IikKKyAgICByZXNwb25zZSA9IGdldF93aW5kb3dfaGFuZGxlKHNlc3Npb24pCisgICAgc2Vj
b25kX2hhbmRsZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IGZpcnN0
X2hhbmRsZSA9PSBzZWNvbmRfaGFuZGxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVjdC9nZXQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVjdC9nZXQu
cHkKaW5kZXggNzkzNjUwZmVlZjQ2Li5mNzU5MmEzMGUwNjcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dpbmRvd19yZWN0L2dldC5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93
aW5kb3dfcmVjdC9nZXQucHkKQEAgLTEsOCArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNz
ZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCi0KLQotYWxlcnRfZG9jID0gaW5saW5lKCI8c2NyaXB0
PndpbmRvdy5hbGVydCgpPC9zY3JpcHQ+IikKIAogCiBkZWYgZ2V0X3dpbmRvd19yZWN0KHNlc3Np
b24pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9pZGxoYXJuZXNzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2lkbGhhcm5lc3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDA0OWQ4MzVmMmZjLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvIj4KLTxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy9XZWJJRExQYXJzZXIuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L2lkbGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0gICJ1c2Ugc3RyaWN0IjsKLQot
ICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewotICAgIGNvbnN0IGlkbF9hcnJheSA9IG5ldyBJ
ZGxBcnJheSgpOwotICAgIGNvbnN0IGlkbCA9IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNlcy93ZWJk
cml2ZXIuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKLSAgICBjb25zdCBodG1sID0gYXdhaXQg
ZmV0Y2goIi9pbnRlcmZhY2VzL2h0bWwuaWRsIikudGhlbihyID0+IHIudGV4dCgpKTsKLSAgICBp
ZGxfYXJyYXkuYWRkX2lkbHMoaWRsKTsKLSAgICBpZGxfYXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRs
cyhodG1sKTsKLSAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoewotICAgICAgTmF2aWdhdG9yOiBb
Im5hdmlnYXRvciJdCi0gICAgfSk7Ci0gICAgaWRsX2FycmF5LnRlc3QoKTsKLSAgfSwgIlRlc3Qg
SURMIGltcGxlbWVudGF0aW9uIG9mIHdlYmRyaXZlciBBUEkiKTsKLTwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJu
ZXNzLndpbmRvdy5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvaWRsaGFybmVzcy53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5lOTJlMTUxZDg5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lkbGhhcm5lc3Mud2luZG93LmpzCkBAIC0wLDAg
KzEsMTYgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcworLy8g
TUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworCisvLyBodHRwczovL3czYy5n
aXRodWIuaW8vd2ViZHJpdmVyLworCisidXNlIHN0cmljdCI7CisKK2lkbF90ZXN0KAorICBbIndl
YmRyaXZlciJdLAorICBbImh0bWwiXSwKKyAgaWRsX2FycmF5ID0+IHsKKyAgICBpZGxfYXJyYXku
YWRkX29iamVjdHMoeworICAgICAgTmF2aWdhdG9yOiBbIm5hdmlnYXRvciJdCisgICAgfSk7Cisg
IH0KKyk7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvZW5hYmxlZC5weQpp
bmRleCA4OGIxNTM0ZGVkMWEuLjRhNWE5MmJhNWU5MSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvZW5hYmxl
ZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lz
X2VsZW1lbnRfZW5hYmxlZC9lbmFibGVkLnB5CkBAIC0xLDcgKzEsNiBAQAogaW1wb3J0IHB5dGVz
dAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3Nl
cnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAog
ZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE1LDE2ICsx
NCwyMyBAQCBkZWYgaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAK
IGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cp
OgorICAgIG9yaWdpbmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKKyAgICByZXNw
b25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGlzX2Vs
ZW1lbnRfZW5hYmxlZChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5h
bF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVt
ZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisK
IAogZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgog
ICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9lbmFibGVkKHNlc3Npb24sICJmb28iKQogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9lbGVt
ZW50X3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNo
KCkKQEAgLTM0LDcgKzQwLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKIAog
CiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQiLCBbImJ1dHRvbiIsICJpbnB1dCIs
ICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X2Zvcm1fY29udHJvbF9kaXNhYmxlZChz
ZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2Zvcm1fY29udHJvbF9kaXNhYmxlZChzZXNzaW9u
LCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8e30gZGlzYWJs
ZWQvPiIuZm9ybWF0KGVsZW1lbnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVs
ZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtNDMsNyArNDksNyBAQCBkZWYgdGVzdF9mb3JtX2NvbnRy
b2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0p
Ci1kZWYgdGVzdF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0
ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx7fS8+Ii5mb3JtYXQoZWxlbWVudCkpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNlKQogCkBAIC01Miw3ICs1OCw3
IEBAIGRlZiB0ZXN0X2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnQpOgogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIsIFsiYnV0dG9uIiwgImlucHV0Iiwg
InNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2Vu
ZGFudChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2Nl
bmRhbnQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGZpZWxkc2V0IGRpc2FibGVkPjx7fS8+PC9maWVsZHNldD4iLmZvcm1hdChlbGVtZW50KSkK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2UpCiAKQEAg
LTYxLDcgKzY3LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2VuZGFudChzZXNz
aW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQiLCBb
ImJ1dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X2ZpZWxk
c2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBlbGVtZW50KToKK2RlZiB0ZXN0X2ZpZWxk
c2V0X2VuYWJsZWRfZGVzY2VuZGFudChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8ZmllbGRzZXQ+PHt9Lz48L2ZpZWxkc2V0PiIuZm9ybWF0KGVs
ZW1lbnQpKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxz
ZSkKIApAQCAtNzAsNyArNzYsNyBAQCBkZWYgdGVzdF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRh
bnQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVt
ZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVz
dF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChzZXNzaW9uLCBlbGVtZW50KToK
K2RlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNlc3Npb24sIGlu
bGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxmaWVsZHNldCBkaXNh
YmxlZD48bGVnZW5kPjx7fS8+PC9sZWdlbmQ+PC9maWVsZHNldD4iLmZvcm1hdChlbGVtZW50KSkK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2UpCiAKQEAg
LTc5LDcgKzg1LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2VuZGFudF9sZWdl
bmQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVt
ZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVz
dF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNlc3Npb24sIGVsZW1lbnQpOgor
ZGVmIHRlc3RfZmllbGRzZXRfZW5hYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChzZXNzaW9uLCBpbmxp
bmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZmllbGRzZXQ+PGxlZ2Vu
ZD48e30vPjwvbGVnZW5kPjwvZmllbGRzZXQ+Ii5mb3JtYXQoZWxlbWVudCkpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNlKQogCkBAIC04OCw3ICs5NCw3
IEBAIGRlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vzc2lvbiwg
ZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0
b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVzdF94aHRtbF9mb3Jt
X2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVzdF94aHRtbF9mb3Jt
X2NvbnRyb2xfZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiI8e30gZGlzYWJsZWQ9ImRpc2FibGVkIi8+IiIiLmZvcm1hdChlbGVt
ZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0eXBlPSJ4aHRtbCIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNlKQpAQCAtOTgsNyArMTA0
LDcgQEAgZGVmIHRlc3RfeGh0bWxfZm9ybV9jb250cm9sX2Rpc2FibGVkKHNlc3Npb24sIGVsZW1l
bnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIsIFsiYnV0dG9uIiwg
ImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfeGh0bWxfZm9ybV9jb250
cm9sX2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRy
b2xfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCIiIjx7fS8+IiIiLmZvcm1hdChlbGVtZW50KSwgZG9jdHlwZT0ieGh0bWwiKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtMTA2
LDcgKzExMiw3IEBAIGRlZiB0ZXN0X3hodG1sX2Zvcm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24s
IGVsZW1lbnQpOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgVHJ1ZSkKIAogCi1kZWYgdGVz
dF94bWxfYWx3YXlzX25vdF9lbmFibGVkKHNlc3Npb24pOgorZGVmIHRlc3RfeG1sX2Fsd2F5c19u
b3RfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIi
Ijxub3RlPjwvbm90ZT4iIiIsIGRvY3R5cGU9InhtbCIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoIm5vdGUiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL3VzZXJfcHJv
bXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNf
ZWxlbWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weQppbmRleCBiZDhiYzgxYmRmY2MuLjVkZDdk
NTgyYmQzZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL3Vz
ZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAg
LTE3LDcgKzE2LDcgQEAgZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50X2lk
KToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dCBpZD1mb28gZGlzYWJsZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAg
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUs
IHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIGRp
c2FibGVkPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxs
PUZhbHNlKQpAQCAtNDksNyArNDgsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVy
ZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gZGlzYWJsZWQ+IikKICAgICAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1l
bnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQucHkKaW5kZXggNzlhMTYx
NWRkOWZkLi42YzhlODE1NWNhYjEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC9zZWxlY3RlZC5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRf
c2VsZWN0ZWQvc2VsZWN0ZWQucHkKQEAgLTEsMTIgKzEsMTggQEAKK2ltcG9ydCBweXRlc3QKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNj
ZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCi1jaGVja19k
b2MgPSBpbmxpbmUoIiIiCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja19kb2MoaW5saW5lKToK
KyAgICByZXR1cm4gaW5saW5lKCIiIgogICAgIDxpbnB1dCBpZD1jaGVja2VkIHR5cGU9Y2hlY2ti
b3ggY2hlY2tlZD4KICAgICA8aW5wdXQgaWQ9bm90Q2hlY2tlZCB0eXBlPWNoZWNrYm94PgogICAg
ICIiIikKLW9wdGlvbl9kb2MgPSBpbmxpbmUoIiIiCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYg
b3B0aW9uX2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIiIiCiAgICAgPHNlbGVjdD4K
ICAgICAgIDxvcHRpb24gaWQ9bm90U2VsZWN0ZWQ+ci0KICAgICAgIDxvcHRpb24gaWQ9c2VsZWN0
ZWQgc2VsZWN0ZWQ+cisKQEAgLTIyLDE2ICsyOCwyNCBAQCBkZWYgaXNfZWxlbWVudF9zZWxlY3Rl
ZChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29u
dGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1l
bnQgPSBjbG9zZWRfd2luZG93CisKKyAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfc2VsZWN0ZWQo
c2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBpc19lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24sICJm
b28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAg
IHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0g
aXNfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgIm5vIHN1Y2ggZWxlbWVudCIpCisKIAogZGVmIHRlc3Rfbm9fYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0gaXNfZWxlbWVu
dF9zZWxlY3RlZChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbiwgY2hlY2tfZG9jKToKICAgICBzZXNzaW9uLnVy
bCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjY2hlY2tlZCIs
IGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtNDAsNyArNTQsNyBAQCBkZWYg
dGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJz
dGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9jaGVja2VkKHNl
c3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9jaGVja2VkKHNlc3Npb24sIGNoZWNrX2RvYyk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBjaGVja19kb2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygiI2NoZWNrZWQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ4LDcgKzYyLDcgQEAgZGVmIHRlc3RfZWxl
bWVudF9jaGVja2VkKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgVHJ1ZSkK
IAogCi1kZWYgdGVzdF9jaGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbik6CitkZWYgdGVzdF9j
aGVja2JveF9ub3Rfc2VsZWN0ZWQoc2Vzc2lvbiwgY2hlY2tfZG9jKToKICAgICBzZXNzaW9uLnVy
bCA9IGNoZWNrX2RvYwogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjbm90Q2hlY2tl
ZCIsIGFsbD1GYWxzZSkKIApAQCAtNTYsNyArNzAsNyBAQCBkZWYgdGVzdF9jaGVja2JveF9ub3Rf
c2VsZWN0ZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBGYWxzZSkKIAog
Ci1kZWYgdGVzdF9lbGVtZW50X3NlbGVjdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9z
ZWxlY3RlZChzZXNzaW9uLCBvcHRpb25fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9wdGlvbl9k
b2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI3NlbGVjdGVkIiwgYWxsPUZhbHNl
KQogCkBAIC02NCw3ICs3OCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBUcnVlKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRf
bm90X3NlbGVjdGVkKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9ub3Rfc2VsZWN0ZWQoc2Vz
c2lvbiwgb3B0aW9uX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBvcHRpb25fZG9jCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNub3RTZWxlY3RlZCIsIGFsbD1GYWxzZSkKIApkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19l
bGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC91c2VyX3Byb21wdHMucHkK
aW5kZXggNjc0ZjgwYzVjNzViLi45NmRhMmMwOGJkN2UgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC91c2Vy
X3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAK
IGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGlzX2VsZW1lbnRfc2VsZWN0
ZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBpc19lbGVtZW50
X3NlbGVjdGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbyB0eXBlPWNoZWNrYm94IGNo
ZWNrZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9
RmFsc2UpCkBAIC0zMSw3ICszMCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0
dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAg
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIHR5cGU9Y2hlY2tib3ggY2hl
Y2tlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1G
YWxzZSkKQEAgLTQ3LDcgKzQ2LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUK
LWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIHR5cGU9Y2hlY2tib3ggY2hlY2tl
ZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxz
ZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9tYXhpbWl6ZV93aW5kb3cvbWF4aW1pemUucHkKaW5kZXggNjkw
M2VlY2U3MGQwLi5lMjMzZTQ1YTEwZDcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2lu
ZG93L21heGltaXplLnB5CkBAIC04NCw2ICs4NCw3IEBAIGRlZiB0ZXN0X21heGltaXplX3doZW5f
cmVzaXplZF90b19tYXhfc2l6ZShzZXNzaW9uKToKICAgICBzZXNzaW9uLmVuZCgpCiAgICAgc2Vz
c2lvbi53aW5kb3cubWF4aW1pemUoKQogICAgIGF2YWlsYWJsZSA9IHNlc3Npb24ud2luZG93LnNp
emUKKyAgICBzZXNzaW9uLndpbmRvdy5zaXplID0gKDgwMCwgNjAwKQogICAgIHNlc3Npb24uZW5k
KCkKIAogICAgIHNlc3Npb24ud2luZG93LnNpemUgPSBhdmFpbGFibGUKQEAgLTk1LDQgKzk2LDUg
QEAgZGVmIHRlc3RfbWF4aW1pemVfd2hlbl9yZXNpemVkX3RvX21heF9zaXplKHNlc3Npb24pOgog
ICAgICMgaXRzIGV4cGVjdGVkIGRpbWVuc2lvbnMuCiAgICAgYmVmb3JlID0gc2Vzc2lvbi53aW5k
b3cuc2l6ZQogICAgIHNlc3Npb24ud2luZG93Lm1heGltaXplKCkKLSAgICBhc3NlcnQgc2Vzc2lv
bi53aW5kb3cuc2l6ZSA9PSBiZWZvcmUKKyAgICBhZnRlciA9IHNlc3Npb24ud2luZG93LnNpemUK
KyAgICBhc3NlcnQgYWZ0ZXIgPT0gYmVmb3JlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL25hdmlnYXRlLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZpZ2F0ZV90by9uYXZp
Z2F0ZS5weQppbmRleCAyODllNDMyMTAxMWYuLjI1ZDc2ODE2N2FhMCAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZpZ2F0ZV90by9uYXZp
Z2F0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L25hdmlnYXRlX3RvL25hdmlnYXRlLnB5CkBAIC0xLDggKzEsMTEgQEAKLWZyb20gdGVzdHMuc3Vw
cG9ydCBpbXBvcnQgcGxhdGZvcm1fbmFtZQoraW1wb3J0IHRpbWUKKworaW1wb3J0IHB5dGVzdAor
ZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1w
b3J0IFJlc3BvbnNlCiAKK2Zyb20gdGVzdHMuc3VwcG9ydCBpbXBvcnQgcGxhdGZvcm1fbmFtZQog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1
Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBu
YXZpZ2F0ZV90byhzZXNzaW9uLCB1cmwpOgpAQCAtMTcsNyArMjAsNyBAQCBkZWYgdGVzdF9udWxs
X3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwKToKICAgICAgICAgYXNzZXJ0X2Vycm9yKFJl
c3BvbnNlLmZyb21faHR0cChyZXNwb25zZSksICJpbnZhbGlkIGFyZ3VtZW50IikKIAogCi1kZWYg
dGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9yZXNwb25z
ZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHJlc3BvbnNlID0gbmF2aWdhdGVfdG8oc2Vz
c2lvbiwgaW5saW5lKCI8ZGl2Lz4iKSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3Bv
bnNlKQogICAgIGFzc2VydCB2YWx1ZSBpcyBOb25lCkBAIC0yOCw3ICszMSw3IEBAIGRlZiB0ZXN0
X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19icm93
c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICBkb2MgPSBp
bmxpbmUoIjxwPmZvbyIpCiAKICAgICByZXNwb25zZSA9IG5hdmlnYXRlX3RvKHNlc3Npb24sIGRv
YykKQEAgLTUyLDMgKzU1LDQ4IEBAIGRlZiB0ZXN0X2ZpbGVfcHJvdG9jb2woc2Vzc2lvbiwgc2Vy
dmVyX2NvbmZpZyk6CiAgICAgaWYgc2Vzc2lvbi51cmwuZW5kc3dpdGgoJy8nKToKICAgICAgICAg
dXJsICs9ICcvJwogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSB1cmwKKworCisjIENhcGFiaWxp
dHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlOgor
IyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yODg0
NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMiOiBUcnVl
fSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIHVybCk6CisgICAgYmFz
ZV9wYXRoID0gKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5odG1sIiAr
CisgICAgICAgICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3ksc2FtZS1vcmlnaW4iKQorICAgIGZpcnN0X3BhZ2UgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2Nv
bD0iaHR0cHMiKQorICAgIHNlY29uZF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0
dHBzIiwgZG9tYWluPSJhbHQiKQorCisgICAgcmVzcG9uc2UgPSBuYXZpZ2F0ZV90byhzZXNzaW9u
LCBmaXJzdF9wYWdlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0
IHNlc3Npb24udXJsID09IGZpcnN0X3BhZ2UKKyAgICBlbGVtID0gc2Vzc2lvbi5maW5kLmNzcygi
I2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0gbmF2aWdhdGVfdG8oc2Vzc2lv
biwgc2Vjb25kX3BhZ2UpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBhc3Nl
cnQgc2Vzc2lvbi51cmwgPT0gc2Vjb25kX3BhZ2UKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXJy
b3IuU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbS5jbGljaygp
CisKKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQorCisKK0BweXRl
c3QubWFyay5jYXBhYmlsaXRpZXMoeyJwYWdlTG9hZFN0cmF0ZWd5IjogImVhZ2VyIn0pCitkZWYg
dGVzdF91dGY4X21ldGFfdGFnX2FmdGVyXzEwMjRfYnl0ZXMoc2Vzc2lvbiwgdXJsKToKKyAgICBw
YWdlID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9tZXRhLXV0ZjgtYWZ0ZXIt
MTAyNC1ieXRlcy5odG1sIikKKworICAgICMgTG9hZGluZyB0aGUgcGFnZSB3aWxsIGNhdXNlIGEg
cmVhbCBwYXJzZSBjb21tZW5jaW5nLCBhbmQgYSByZW5hdmlnYXRpb24KKyAgICAjIHRvIHRoZSBz
YW1lIFVSTCBnZXR0aW5nIHRyaWdnZXJlZCBzdWJzZXF1ZW50bHkuIFRlc3QgdGhhdCB0aGUgbmF2
aWdhdGUKKyAgICAjIGNvbW1hbmQgd2FpdHMgbG9uZyBlbm91Z2guCisgICAgcmVzcG9uc2UgPSBu
YXZpZ2F0ZV90byhzZXNzaW9uLCBwYWdlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQor
CisgICAgIyBJZiB0aGUgY29tbWFuZCByZXR1cm5zIHRvbyBlYXJseSB0aGUgcHJvcGVydHkgd2ls
bCBiZSByZXNldCBkdWUgdG8gdGhlCisgICAgIyBzdWJzZXF1ZW50IHBhZ2UgbG9hZC4KKyAgICBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cuZm9vID0gJ2JhciciKQorCisgICAgIyBVc2Ug
ZGVsYXkgdG8gYWxsb3cgYSBwb3NzaWJsZSBtaXNzaW5nIHN1YnNlcXVlbnQgbmF2aWdhdGlvbiB0
byBzdGFydAorICAgIHRpbWUuc2xlZXAoMSkKKworICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gd2luZG93LmZvbyIpID09ICJiYXIiCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3VzZXJfcHJv
bXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmF2
aWdhdGVfdG8vdXNlcl9wcm9tcHRzLnB5CmluZGV4IDZhOTRjMTFiZjFkMy4uNjgyYmM0MGY0ZmU5
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3
ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIG5hdmlnYXRl
X3RvKHNlc3Npb24sIHVybCk6CkBAIC0xMyw3ICsxMiw3IEBAIGRlZiBuYXZpZ2F0ZV90byhzZXNz
aW9uLCB1cmwpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICB1cmwgPSBpbmxpbmUoIjxk
aXYvPiIpCiAKQEAgLTMwLDcgKzI5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAg
ICAgICAgdXJsID0gaW5saW5lKCI8ZGl2Lz4iKQogCkBAIC00Nyw3ICs0Niw3IEBAIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBp
bmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRp
b24oZGlhbG9nX3R5cGUpOgogICAgICAgICB1cmwgPSBpbmxpbmUoIjxkaXYvPiIpCiAKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nl
c3Npb24vcmVzcG9uc2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CmluZGV4IGNiZTllN2Q3ZmIxNC4uNDNhOGQ1
NzkzMTE0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vcmVzcG9uc2UucHkKQEAgLTEsMjkg
KzEsMjcgQEAKIGltcG9ydCB1dWlkCiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gc2l4IGltcG9ydCBz
dHJpbmdfdHlwZXMKLQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9z
dWNjZXNzCiAKIAogZGVmIHRlc3Rfc2Vzc2lvbmlkKG5ld19zZXNzaW9uLCBhZGRfYnJvd3Nlcl9j
YXBhYmlsaXRpZXMpOgogICAgIHJlc3BvbnNlLCBfID0gbmV3X3Nlc3Npb24oeyJjYXBhYmlsaXRp
ZXMiOiB7ImFsd2F5c01hdGNoIjogYWRkX2Jyb3dzZXJfY2FwYWJpbGl0aWVzKHt9KX19KQogICAg
IHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
dmFsdWVbInNlc3Npb25JZCJdLCBzdHJpbmdfdHlwZXMpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
dmFsdWVbInNlc3Npb25JZCJdLCBzdHIpCiAgICAgdXVpZC5VVUlEKGhleD12YWx1ZVsic2Vzc2lv
bklkIl0pCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjYXBhYmlsaXR5LCB0eXBlIiwg
WwotICAgICgiYnJvd3Nlck5hbWUiLCBzdHJpbmdfdHlwZXMpLAotICAgICgiYnJvd3NlclZlcnNp
b24iLCBzdHJpbmdfdHlwZXMpLAotICAgICgicGxhdGZvcm1OYW1lIiwgc3RyaW5nX3R5cGVzKSwK
KyAgICAoImJyb3dzZXJOYW1lIiwgc3RyKSwKKyAgICAoImJyb3dzZXJWZXJzaW9uIiwgc3RyKSwK
KyAgICAoInBsYXRmb3JtTmFtZSIsIHN0ciksCiAgICAgKCJhY2NlcHRJbnNlY3VyZUNlcnRzIiwg
Ym9vbCksCi0gICAgKCJwYWdlTG9hZFN0cmF0ZWd5Iiwgc3RyaW5nX3R5cGVzKSwKKyAgICAoInBh
Z2VMb2FkU3RyYXRlZ3kiLCBzdHIpLAogICAgICgicHJveHkiLCBkaWN0KSwKICAgICAoInNldFdp
bmRvd1JlY3QiLCBib29sKSwKICAgICAoInRpbWVvdXRzIiwgZGljdCksCiAgICAgKCJzdHJpY3RG
aWxlSW50ZXJhY3RhYmlsaXR5IiwgYm9vbCksCi0gICAgKCJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlv
ciIsIHN0cmluZ190eXBlcyksCisgICAgKCJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciIsIHN0ciks
CiBdKQogZGVmIHRlc3RfY2FwYWJpbGl0eV90eXBlKHNlc3Npb24sIGNhcGFiaWxpdHksIHR5cGUp
OgogICAgIGFzc2VydCBpc2luc3RhbmNlKHNlc3Npb24uY2FwYWJpbGl0aWVzLCBkaWN0KQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdf
c2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi93ZWJzb2NrZXRfdXJsLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDUyZGVjYzkwYWExCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lv
bi93ZWJzb2NrZXRfdXJsLnB5CkBAIC0wLDAgKzEsNyBAQAorZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCisKK2RlZiB0ZXN0X3dlYnNvY2tldF91cmwobmV3
X3Nlc3Npb24sIGFkZF9icm93c2VyX2NhcGFiaWxpdGllcyk6CisgICAgcmVzcG9uc2UsIF8gPSBu
ZXdfc2Vzc2lvbih7ImNhcGFiaWxpdGllcyI6IHsKKyAgICAgICAgImFsd2F5c01hdGNoIjogYWRk
X2Jyb3dzZXJfY2FwYWJpbGl0aWVzKHsid2ViU29ja2V0VXJsIjogVHJ1ZX0pfX0pCisgICAgdmFs
dWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnQgdmFsdWVbImNhcGFiaWxp
dGllcyJdWyJ3ZWJTb2NrZXRVcmwiXS5zdGFydHN3aXRoKCJ3czovLyIpCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3
X3RhYi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3
X3dpbmRvdy9uZXdfdGFiLnB5CmluZGV4IDkzMDBiMDRjNDVmYS4uMjcwZTRiNTFiODhmIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld193
aW5kb3cvbmV3X3RhYi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3RhYi5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBw
b3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgb3BlbmVyLCB3aW5kb3df
bmFtZQogCkBAIC0zMiw3ICszMSw3IEBAIGRlZiB0ZXN0X2tlZXBzX2N1cnJlbnRfd2luZG93X2hh
bmRsZShzZXNzaW9uKToKICAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID09IG9yaWdp
bmFsX2hhbmRsZQogCiAKLWRlZiB0ZXN0X29wZW5zX2Fib3V0X2JsYW5rX2luX25ld190YWIoc2Vz
c2lvbik6CitkZWYgdGVzdF9vcGVuc19hYm91dF9ibGFua19pbl9uZXdfdGFiKHNlc3Npb24sIGlu
bGluZSk6CiAgICAgdXJsID0gaW5saW5lKCI8cD5mb28iKQogICAgIHNlc3Npb24udXJsID0gdXJs
CiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvbmV3X3dpbmRvdy9uZXdfd2luZG93LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9uZXdfd2luZG93L25ld193aW5kb3cucHkKaW5kZXggYjM0ODU0Y2My
ZjNmLi5kM2MyMjQ1MDI3MDQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93LnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93
LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
ZnJvbSAuIGltcG9ydCBvcGVuZXIsIHdpbmRvd19uYW1lCiAKQEAgLTMyLDcgKzMxLDcgQEAgZGVm
IHRlc3Rfa2VlcHNfY3VycmVudF93aW5kb3dfaGFuZGxlKHNlc3Npb24pOgogICAgIGFzc2VydCBz
ZXNzaW9uLndpbmRvd19oYW5kbGUgPT0gb3JpZ2luYWxfaGFuZGxlCiAKIAotZGVmIHRlc3Rfb3Bl
bnNfYWJvdXRfYmxhbmtfaW5fbmV3X3dpbmRvdyhzZXNzaW9uKToKK2RlZiB0ZXN0X29wZW5zX2Fi
b3V0X2JsYW5rX2luX25ld193aW5kb3coc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmwgPSBpbmxp
bmUoIjxwPmZvbyIpCiAgICAgc2Vzc2lvbi51cmwgPSB1cmwKIApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvY29u
ZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Bl
cmZvcm1fYWN0aW9ucy9jb25mdGVzdC5weQppbmRleCA5NzBmN2I3ZGQ5YmUuLjE4OGY4ZGRiYjVl
ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkKQEAgLTMy
LDYgKzMyLDIyIEBAIGRlZiBtb3VzZV9jaGFpbihzZXNzaW9uKToKICAgICAgICAgeyJwb2ludGVy
VHlwZSI6ICJtb3VzZSJ9KQogCiAKK0BweXRlc3QuZml4dHVyZQorZGVmIHRvdWNoX2NoYWluKHNl
c3Npb24pOgorICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2UoCisgICAgICAgICJw
b2ludGVyIiwKKyAgICAgICAgInBvaW50ZXJfaWQiLAorICAgICAgICB7InBvaW50ZXJUeXBlIjog
InRvdWNoIn0pCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcGVuX2NoYWluKHNlc3Npb24pOgor
ICAgIHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2UoCisgICAgICAgICJwb2ludGVyIiwK
KyAgICAgICAgInBvaW50ZXJfaWQiLAorICAgICAgICB7InBvaW50ZXJUeXBlIjogInBlbiJ9KQor
CisKIEBweXRlc3QuZml4dHVyZQogZGVmIG5vbmVfY2hhaW4oc2Vzc2lvbik6CiAgICAgcmV0dXJu
IHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgibm9uZSIsICJub25lX2lkIikKQEAgLTY2LDMgKzgy
LDggQEAgZGVmIHRlc3RfYWN0aW9uc19wYWdlKHNlc3Npb24sIHVybCk6CiBAcHl0ZXN0LmZpeHR1
cmUKIGRlZiB0ZXN0X2FjdGlvbnNfc2Nyb2xsX3BhZ2Uoc2Vzc2lvbiwgdXJsKToKICAgICBzZXNz
aW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC90
ZXN0X2FjdGlvbnNfc2Nyb2xsX3dkc3BlYy5odG1sIikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2Rl
ZiB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlKHNlc3Npb24sIHVybCk6CisgICAgc2Vzc2lvbi51
cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQvdGVzdF9h
Y3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMva2V5X2V2ZW50cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9h
Y3Rpb25zL2tleV9ldmVudHMucHkKaW5kZXggYzM5NTgwMTViZmQ0Li44ZGJlMDI0ZDE4MzkgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVy
Zm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMva2V5X2V2ZW50cy5weQpAQCAtNSw3
ICs1LDggQEAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKIGltcG9ydCBweXRl
c3QKIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5rZXlzIGltcG9ydCBBTExf
RVZFTlRTLCBLZXlzLCBBTFRFUk5BVElWRV9LRVlfTkFNRVMKLWZyb20gdGVzdHMucGVyZm9ybV9h
Y3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cywgZ2V0
X2tleXMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBn
ZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZp
bHRlcl9kaWN0CiAKIAogZGVmIHRlc3Rfa2V5dXBfb25seV9zZW5kc19ub19ldmVudHMoc2Vzc2lv
biwga2V5X3JlcG9ydGVyLCBrZXlfY2hhaW4pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlci5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rp
b25zL3BvaW50ZXIucHkKaW5kZXggYWQ1NDY5MjE0NjBlLi42NzRkNDZkN2I2MTAgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9h
Y3Rpb25zL3BvaW50ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlci5weQpAQCAtNSwxNyArNSwxMiBAQCBp
bXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoV2luZG93RXhj
ZXB0aW9uCiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQubW91c2UgaW1wb3J0
IGdldF9pbnZpZXdfY2VudGVyLCBnZXRfdmlld3BvcnRfcmVjdAotZnJvbSB0ZXN0cy5wZXJmb3Jt
X2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzCitm
cm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50
cwogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9tb3ZlX3RvX2Nvb3Jk
aW5hdGVzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20gdGVz
dHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGljdAogZnJvbSB0ZXN0cy5zdXBwb3J0
LnN5bmMgaW1wb3J0IFBvbGwKIAogCi1kZWYgbGlua19kb2MoZGVzdCk6Ci0gICAgY29udGVudCA9
ICI8YSBocmVmPVwie31cIiBpZD1cImxpbmtcIj5kZXN0aW5hdGlvbjwvYT4iLmZvcm1hdChkZXN0
KQotICAgIHJldHVybiBpbmxpbmUoY29udGVudCkKLQotCiBkZWYgdGVzdF9udWxsX3Jlc3BvbnNl
X3ZhbHVlKHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICB2YWx1ZSA9IG1vdXNlX2NoYWluLmNs
aWNrKCkucGVyZm9ybSgpCiAgICAgYXNzZXJ0IHZhbHVlIGlzIE5vbmUKQEAgLTk1LDkgKzkwLDkg
QEAgZGVmIHRlc3RfY2xpY2tfZWxlbWVudF9jZW50ZXIoc2Vzc2lvbiwgdGVzdF9hY3Rpb25zX3Bh
Z2UsIG1vdXNlX2NoYWluKToKICAgICAgICAgICAgIGFzc2VydCBlWyJ0YXJnZXQiXSA9PSAib3V0
ZXIiCiAKIAotZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwpOgorZGVmIHRl
c3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwsIGlubGluZSk6CiAgICAgZGVzdGluYXRp
b24gPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvYWN0aW9ucy9zdXBwb3J0L3Rlc3RfYWN0aW9uc193
ZHNwZWMuaHRtbCIpCi0gICAgc3RhcnQgPSBsaW5rX2RvYyhkZXN0aW5hdGlvbikKKyAgICBzdGFy
dCA9IGlubGluZSgiPGEgaHJlZj1cInt9XCIgaWQ9XCJsaW5rXCI+ZGVzdGluYXRpb248L2E+Ii5m
b3JtYXQoZGVzdGluYXRpb24pKQogCiAgICAgZGVmIGNsaWNrKGxpbmspOgogICAgICAgICBtb3Vz
ZV9jaGFpbiA9IHNlc3Npb24uYWN0aW9ucy5zZXF1ZW5jZSgKQEAgLTExNSw2ICsxMTAsODUgQEAg
ZGVmIHRlc3RfY2xpY2tfbmF2aWdhdGlvbihzZXNzaW9uLCB1cmwpOgogICAgIFBvbGwoc2Vzc2lv
biwgbWVzc2FnZT1lcnJvcl9tZXNzYWdlKS51bnRpbChsYW1iZGEgczogcy51cmwgPT0gZGVzdGlu
YXRpb24pCiAKIAorZGVmIHRlc3RfcGVuX3BvaW50ZXJfcHJvcGVydGllcyhzZXNzaW9uLCB0ZXN0
X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCBwZW5fY2hhaW4pOgorICAgIHBvaW50ZXJBcmVhID0gc2Vz
c2lvbi5maW5kLmNzcygiI3BvaW50ZXJBcmVhIiwgYWxsPUZhbHNlKQorICAgIGNlbnRlciA9IGdl
dF9pbnZpZXdfY2VudGVyKHBvaW50ZXJBcmVhLnJlY3QsIGdldF92aWV3cG9ydF9yZWN0KHNlc3Np
b24pKQorICAgIHBlbl9jaGFpbi5wb2ludGVyX21vdmUoMCwgMCwgb3JpZ2luPXBvaW50ZXJBcmVh
KSBcCisgICAgICAgIC5wb2ludGVyX2Rvd24ocHJlc3N1cmU9MC4zNiwgdGlsdF94PS03MiwgdGls
dF95PTksIHR3aXN0PTg2KSBcCisgICAgICAgIC5wb2ludGVyX21vdmUoMTAsIDEwLCBvcmlnaW49
cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBvaW50ZXJfdXAoKSBcCisgICAgICAgIC5wb2ludGVy
X21vdmUoODAsIDUwLCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBlcmZvcm0oKQor
ICAgIGV2ZW50cyA9IGdldF9ldmVudHMoc2Vzc2lvbikKKyAgICBhc3NlcnQgbGVuKGV2ZW50cykg
PT0gMTAKKyAgICBldmVudF90eXBlcyA9IFtlWyJ0eXBlIl0gZm9yIGUgaW4gZXZlbnRzXQorICAg
IGFzc2VydCBbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVybW92ZSIsICJw
b2ludGVyZG93biIsCisgICAgICAgICAgICAicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwg
InBvaW50ZXJtb3ZlIiwgInBvaW50ZXJ1cCIsCisgICAgICAgICAgICAicG9pbnRlcm91dCIsICJw
b2ludGVybGVhdmUiXSA9PSBldmVudF90eXBlcworICAgIGFzc2VydCBldmVudHNbM11bInR5cGUi
XSA9PSAicG9pbnRlcmRvd24iCisgICAgYXNzZXJ0IGV2ZW50c1szXVsicGFnZVgiXSA9PSBweXRl
c3QuYXBwcm94KGNlbnRlclsieCJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbM11bInBh
Z2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzPTEuMCkKKyAgICBhc3NlcnQg
ZXZlbnRzWzNdWyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50c1sz
XVsicG9pbnRlclR5cGUiXSA9PSAicGVuIgorICAgICMgVGhlIGRlZmF1bHQgdmFsdWUgb2Ygd2lk
dGggYW5kIGhlaWdodCBmb3IgbW91c2UgYW5kIHBlbiBpbnB1dHMgaXMgMQorICAgIGFzc2VydCBy
b3VuZChldmVudHNbM11bIndpZHRoIl0sIDIpID09IDEKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRz
WzNdWyJoZWlnaHQiXSwgMikgPT0gMQorICAgIGFzc2VydCByb3VuZChldmVudHNbM11bInByZXNz
dXJlIl0sIDIpID09IDAuMzYKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WCJdID09IC03Mgor
ICAgIGFzc2VydCBldmVudHNbM11bInRpbHRZIl0gPT0gOQorICAgIGFzc2VydCBldmVudHNbM11b
InR3aXN0Il0gPT0gODYKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJ0eXBlIl0gPT0gInBvaW50ZXJt
b3ZlIgorICAgIGFzc2VydCBldmVudHNbNl1bInBhZ2VYIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50
ZXJbIngiXSsxMCwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJwYWdlWSJdID09IHB5
dGVzdC5hcHByb3goY2VudGVyWyJ5Il0rMTAsIGFicz0xLjApCisgICAgYXNzZXJ0IGV2ZW50c1s2
XVsidGFyZ2V0Il0gPT0gInBvaW50ZXJBcmVhIgorICAgIGFzc2VydCBldmVudHNbNl1bInBvaW50
ZXJUeXBlIl0gPT0gInBlbiIKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzZdWyJ3aWR0aCJdLCAy
KSA9PSAxCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1s2XVsiaGVpZ2h0Il0sIDIpID09IDEKKyAg
ICAjIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHByZXNzdXJlIGZvciBhbGwgaW5wdXRzIGlzIDAuNSwg
b3RoZXIgcHJvcGVydGllcyBhcmUgMAorICAgIGFzc2VydCByb3VuZChldmVudHNbNl1bInByZXNz
dXJlIl0sIDIpID09IDAuNQorICAgIGFzc2VydCBldmVudHNbNl1bInRpbHRYIl0gPT0gMAorICAg
IGFzc2VydCBldmVudHNbNl1bInRpbHRZIl0gPT0gMAorICAgIGFzc2VydCBldmVudHNbNl1bInR3
aXN0Il0gPT0gMAorCisKK2RlZiB0ZXN0X3RvdWNoX3BvaW50ZXJfcHJvcGVydGllcyhzZXNzaW9u
LCB0ZXN0X2FjdGlvbnNfcG9pbnRlcl9wYWdlLCB0b3VjaF9jaGFpbik6CisgICAgcG9pbnRlckFy
ZWEgPSBzZXNzaW9uLmZpbmQuY3NzKCIjcG9pbnRlckFyZWEiLCBhbGw9RmFsc2UpCisgICAgY2Vu
dGVyID0gZ2V0X2ludmlld19jZW50ZXIocG9pbnRlckFyZWEucmVjdCwgZ2V0X3ZpZXdwb3J0X3Jl
Y3Qoc2Vzc2lvbikpCisgICAgdG91Y2hfY2hhaW4ucG9pbnRlcl9tb3ZlKDAsIDAsIG9yaWdpbj1w
b2ludGVyQXJlYSkgXAorICAgICAgICAucG9pbnRlcl9kb3duKHdpZHRoPTIzLCBoZWlnaHQ9MzEs
IHByZXNzdXJlPTAuNzgsIHRpbHRfeD0yMSwgdGlsdF95PS04LCB0d2lzdD0zNTUpIFwKKyAgICAg
ICAgLnBvaW50ZXJfbW92ZSgxMCwgMTAsIG9yaWdpbj1wb2ludGVyQXJlYSwgd2lkdGg9MzksIGhl
aWdodD0zNSwgcHJlc3N1cmU9MC45MSwgdGlsdF94PS0xOSwgdGlsdF95PTYyLCB0d2lzdD0zNDUp
IFwKKyAgICAgICAgLnBvaW50ZXJfdXAoKSBcCisgICAgICAgIC5wb2ludGVyX21vdmUoODAsIDUw
LCBvcmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBlcmZvcm0oKQorICAgIGV2ZW50cyA9
IGdldF9ldmVudHMoc2Vzc2lvbikKKyAgICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gNworICAgIGV2
ZW50X3R5cGVzID0gW2VbInR5cGUiXSBmb3IgZSBpbiBldmVudHNdCisgICAgYXNzZXJ0IFsicG9p
bnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJkb3duIiwgInBvaW50ZXJtb3ZlIiwK
KyAgICAgICAgICAgICJwb2ludGVydXAiLCAicG9pbnRlcm91dCIsICJwb2ludGVybGVhdmUiXSA9
PSBldmVudF90eXBlcworICAgIGFzc2VydCBldmVudHNbMl1bInR5cGUiXSA9PSAicG9pbnRlcmRv
d24iCisgICAgYXNzZXJ0IGV2ZW50c1syXVsicGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRl
clsieCJdLCBhYnM9MS4wKQorICAgIGFzc2VydCBldmVudHNbMl1bInBhZ2VZIl0gPT0gcHl0ZXN0
LmFwcHJveChjZW50ZXJbInkiXSwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJ0YXJn
ZXQiXSA9PSAicG9pbnRlckFyZWEiCisgICAgYXNzZXJ0IGV2ZW50c1syXVsicG9pbnRlclR5cGUi
XSA9PSAidG91Y2giCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1syXVsid2lkdGgiXSwgMikgPT0g
MjMKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzJdWyJoZWlnaHQiXSwgMikgPT0gMzEKKyAgICBh
c3NlcnQgcm91bmQoZXZlbnRzWzJdWyJwcmVzc3VyZSJdLCAyKSA9PSAwLjc4CisgICAgYXNzZXJ0
IGV2ZW50c1syXVsidGlsdFgiXSA9PSAyMQorICAgIGFzc2VydCBldmVudHNbMl1bInRpbHRZIl0g
PT0gLTgKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJ0d2lzdCJdID09IDM1NQorICAgIGFzc2VydCBl
dmVudHNbM11bInR5cGUiXSA9PSAicG9pbnRlcm1vdmUiCisgICAgYXNzZXJ0IGV2ZW50c1szXVsi
cGFnZVgiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieCJdKzEwLCBhYnM9MS4wKQorICAgIGFz
c2VydCBldmVudHNbM11bInBhZ2VZIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSsxMCwg
YWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0YXJnZXQiXSA9PSAicG9pbnRlckFyZWEi
CisgICAgYXNzZXJ0IGV2ZW50c1szXVsicG9pbnRlclR5cGUiXSA9PSAidG91Y2giCisgICAgYXNz
ZXJ0IHJvdW5kKGV2ZW50c1szXVsid2lkdGgiXSwgMikgPT0gMzkKKyAgICBhc3NlcnQgcm91bmQo
ZXZlbnRzWzNdWyJoZWlnaHQiXSwgMikgPT0gMzUKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzNd
WyJwcmVzc3VyZSJdLCAyKSA9PSAwLjkxCisgICAgYXNzZXJ0IGV2ZW50c1szXVsidGlsdFgiXSA9
PSAtMTkKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WSJdID09IDYyCisgICAgYXNzZXJ0IGV2
ZW50c1szXVsidHdpc3QiXSA9PSAzNDUKKworCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRy
YWdfZHVyYXRpb24iLCBbMCwgMzAwLCA4MDBdKQogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJk
eCwgZHkiLCBbCiAgICAgKDIwLCAwKSwgKDAsIDE1KSwgKDEwLCAxNSksICgtMjAsIDApLCAoMTAs
IC0xNSksICgtMTAsIC0xNSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfY29udGV4dG1lbnUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy9wb2ludGVyX2NvbnRleHRtZW51LnB5CmluZGV4IGZkYTNmMThiYmMxYy4uNTBmNjg0MzI3
ZjJhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRtZW51LnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50
ZXJfY29udGV4dG1lbnUucHkKQEAgLTEsNyArMSw4IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20g
dGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQua2V5cyBpbXBvcnQgS2V5cwotZnJvbSB0ZXN0
cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRf
ZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQg
Z2V0X2V2ZW50cworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0
CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2RpZmllciwgcHJvcCIsIFsKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9y
bV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2RibGNsaWNrLnB5Cmlu
ZGV4IDhjODljZWY1ZjM4MC4uNWJlNjM1YTRkNTYwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2Ri
bGNsaWNrLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfZGJsY2xpY2sucHkKQEAgLTEsNyArMSw4IEBACiBp
bXBvcnQgcHl0ZXN0CiAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5l
IGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlv
bnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcworZnJvbSB0ZXN0cy5zdXBw
b3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJjbGlja19wYXVzZSIsIFswLCAyMDBdKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9tb2Rp
Zmllcl9jbGljay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfbW9kaWZpZXJfY2xpY2sucHkKaW5kZXggYmE4MWY2
ZDA5MGIyLi4yOGM0MDg2ZTBmOGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfbW9kaWZpZXJfY2xp
Y2sucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
ZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9tb2RpZmllcl9jbGljay5weQpAQCAtMSw3ICsxLDggQEAK
IGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5rZXlz
IGltcG9ydCBLZXlzCi1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBp
bXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25z
LnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVs
cGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm1v
ZGlmaWVyLCBwcm9wIiwgWwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9w
b2ludGVyX29yaWdpbi5weQppbmRleCA0YzlkYzg3OWU5OTkuLmM0ZTVkYjdhMDAxNyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkKQEAg
LTMsMjMgKzMsMjUgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IE1vdmVU
YXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5z
dXBwb3J0Lm1vdXNlIGltcG9ydCBnZXRfaW52aWV3X2NlbnRlciwgZ2V0X3ZpZXdwb3J0X3JlY3QK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKLWRlZiBvcmlnaW5f
ZG9jKGlubmVyX3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6Ci0gICAgcmV0dXJuIGlubGluZSgiIiIK
LSAgICAgIDxkaXYgaWQ9Im91dGVyIiBzdHlsZT0iezF9IgotICAgICAgICAgICBvbm1vdXNlbW92
ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WX19
Ij4KLSAgICAgICAgPGRpdiBpZD0iaW5uZXIiIHN0eWxlPSJ7MH0iPjwvZGl2PgotICAgICAgPC9k
aXY+Ci0gICAgIiIiLmZvcm1hdChpbm5lcl9zdHlsZSwgb3V0ZXJfc3R5bGUpKQorQHB5dGVzdC5m
aXh0dXJlCitkZWYgb3JpZ2luX2RvYyhpbmxpbmUpOgorICAgIGRlZiBvcmlnaW5fZG9jKGlubmVy
X3N0eWxlLCBvdXRlcl9zdHlsZT0iIik6CisgICAgICAgIHJldHVybiBpbmxpbmUoIiIiCisgICAg
ICAgICAgPGRpdiBpZD0ib3V0ZXIiIHN0eWxlPSJ7MX0iCisgICAgICAgICAgICAgICBvbm1vdXNl
bW92ZT0id2luZG93LmNvb3JkcyA9IHt7eDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50
WX19Ij4KKyAgICAgICAgICAgIDxkaXYgaWQ9ImlubmVyIiBzdHlsZT0iezB9Ij48L2Rpdj4KKyAg
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgIiIiLmZvcm1hdChpbm5lcl9zdHlsZSwgb3V0ZXJfc3R5
bGUpKQorICAgIHJldHVybiBvcmlnaW5fZG9jCiAKIAogZGVmIGdldF9jbGlja19jb29yZGluYXRl
cyhzZXNzaW9uKToKICAgICByZXR1cm4gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdp
bmRvdy5jb29yZHM7IikKIAogCi1kZWYgdGVzdF92aWV3cG9ydF9pbnNpZGUoc2Vzc2lvbiwgbW91
c2VfY2hhaW4pOgorZGVmIHRlc3Rfdmlld3BvcnRfaW5zaWRlKHNlc3Npb24sIG1vdXNlX2NoYWlu
LCBvcmlnaW5fZG9jKToKICAgICBwb2ludCA9IHsieCI6IDUwLCAieSI6IDUwfQogCiAgICAgc2Vz
c2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgYmFja2dy
b3VuZDogZ3JlZW47IikKQEAgLTM5LDcgKzQxLDcgQEAgZGVmIHRlc3Rfdmlld3BvcnRfb3V0c2lk
ZShzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgICAgICAgICAucGVyZm9ybSgpCiAKIAotZGVm
IHRlc3RfcG9pbnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfcG9p
bnRlcl9pbnNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHN0YXJ0
X3BvaW50ID0geyJ4IjogNTAsICJ5IjogNTB9CiAgICAgb2Zmc2V0ID0geyJ4IjogMTAsICJ5Ijog
NX0KIApAQCAtNjEsNyArNjMsNyBAQCBkZWYgdGVzdF9wb2ludGVyX291dHNpZGUoc2Vzc2lvbiwg
bW91c2VfY2hhaW4pOgogICAgICAgICAgICAgLnBlcmZvcm0oKQogCiAKLWRlZiB0ZXN0X2VsZW1l
bnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluKToKK2RlZiB0ZXN0X2VsZW1lbnRf
Y2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBzZXNz
aW9uLnVybCA9IG9yaWdpbl9kb2MoIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3Jv
dW5kOiBncmVlbjsiKQogICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjaW5uZXIiLCBhbGw9
RmFsc2UpCiAgICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50ZXIoZWxlbS5yZWN0LCBnZXRfdmll
d3BvcnRfcmVjdChzZXNzaW9uKSkKQEAgLTc1LDcgKzc3LDcgQEAgZGVmIHRlc3RfZWxlbWVudF9j
ZW50ZXJfcG9pbnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgIGFzc2VydCBjbGlja19jb29y
ZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdLCBhYnMgPSAxLjApCiAKIAotZGVm
IHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0aF9vZmZzZXQoc2Vzc2lvbiwgbW91c2VfY2hh
aW4pOgorZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0aF9vZmZzZXQoc2Vzc2lvbiwg
bW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHNlc3Npb24udXJsID0gb3JpZ2luX2RvYygi
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyIpCiAgICAgZWxl
bSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKICAgICBjZW50ZXIgPSBn
ZXRfaW52aWV3X2NlbnRlcihlbGVtLnJlY3QsIGdldF92aWV3cG9ydF9yZWN0KHNlc3Npb24pKQpA
QCAtODksNyArOTEsNyBAQCBkZWYgdGVzdF9lbGVtZW50X2NlbnRlcl9wb2ludF93aXRoX29mZnNl
dChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgYXNzZXJ0IGNsaWNrX2Nvb3Jkc1sieSJdID09
IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0gKyAxNSwgYWJzID0gMS4wKQogCiAKLWRlZiB0ZXN0
X2VsZW1lbnRfaW5fdmlld19jZW50ZXJfcG9pbnRfcGFydGx5X3Zpc2libGUoc2Vzc2lvbiwgbW91
c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9pbl92aWV3X2NlbnRlcl9wb2ludF9wYXJ0bHlf
dmlzaWJsZShzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAgICAgc2Vzc2lvbi51
cmwgPSBvcmlnaW5fZG9jKCIiIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5k
OiBncmVlbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOyBsZWZ0OiAtNTBweDsgdG9wOiAtMjVweDsiIiIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmlu
ZC5jc3MoIiNpbm5lciIsIGFsbD1GYWxzZSkKQEAgLTEwNCw3ICsxMDYsNyBAQCBkZWYgdGVzdF9l
bGVtZW50X2luX3ZpZXdfY2VudGVyX3BvaW50X3BhcnRseV92aXNpYmxlKHNlc3Npb24sIG1vdXNl
X2NoYWluKToKICAgICBhc3NlcnQgY2xpY2tfY29vcmRzWyJ5Il0gPT0gcHl0ZXN0LmFwcHJveChj
ZW50ZXJbInkiXSwgYWJzID0gMS4wKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfbGFyZ2VyX3RoYW5f
dmlld3BvcnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9sYXJnZXJf
dGhhbl92aWV3cG9ydChzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAgICAgc2Vz
c2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMzAwdnc7IGhlaWdodDogMzAwdmg7IGJhY2tn
cm91bmQ6IGdyZWVuOyIpCiAgICAgZWxlbSA9IHNlc3Npb24uZmluZC5jc3MoIiNpbm5lciIsIGFs
bD1GYWxzZSkKICAgICBjZW50ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihlbGVtLnJlY3QsIGdldF92
aWV3cG9ydF9yZWN0KHNlc3Npb24pKQpAQCAtMTE4LDcgKzEyMCw3IEBAIGRlZiB0ZXN0X2VsZW1l
bnRfbGFyZ2VyX3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgIGFzc2Vy
dCBjbGlja19jb29yZHNbInkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdLCBhYnMgPSAx
LjApCiAKIAotZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3ZpZXdfcG9ydChzZXNzaW9uLCBt
b3VzZV9jaGFpbik6CitkZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfdmlld19wb3J0KHNlc3Np
b24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9yaWdpbl9k
b2MoIiIid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGdyZWVuOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IC0y
MDBweDsgdG9wOiAtMTAwcHg7IiIiKQogICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjaW5u
ZXIiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3BhdXNlX2RibGNsaWNrLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxjbGljay5weQppbmRleCA4NTY3OWYzNjE0YTguLmQ0NjE3
OGExZDY1MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxjbGljay5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9u
cy9wb2ludGVyX3BhdXNlX2RibGNsaWNrLnB5CkBAIC0xLDUgKzEsNiBAQAogZnJvbSB0ZXN0cy5w
ZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5tb3VzZSBpbXBvcnQgZ2V0X2ludmlld19jZW50ZXIsIGdl
dF92aWV3cG9ydF9yZWN0Ci1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmlu
ZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rp
b25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnN1cHBvcnQu
aGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogX0RCTENMSUNLX0lOVEVSVkFMID0gNjQwCiAK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfdHJpcGxlY2xpY2sucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3RyaXBs
ZWNsaWNrLnB5CmluZGV4IDgxZDUxYmUxYTdlNi4uODIzOWZjMmE2MDYyIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9u
cy9wb2ludGVyX3RyaXBsZWNsaWNrLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfdHJpcGxlY2xpY2sucHkK
QEAgLTEsMTMgKzEsMTMgQEAKLWZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVm
aW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2Fj
dGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcwotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBp
bXBvcnQgZmlsdGVyX2RpY3QKIAogbG90c19vZl90ZXh0ID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBv
ciAiXAogICAgICAgICAgICAgICAgImluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWdu
YSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgIlwKICAgICAg
ICAgICAgICAgICJleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBl
eCBlYSBjb21tb2RvIGNvbnNlcXVhdC4iCiAKIAotZGVmIHRlc3RfdHJpcGxlY2xpY2tfYXRfY29v
cmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfdHJpcGxlY2xpY2tfYXRf
Y29vcmRpbmF0ZXMoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIGlubGluZSk6CiAgICAgIiIiCiAgICAg
ICAgIFRoaXMgdGVzdCBkb2VzIGEgdHJpcGxlIGNsaWNrIG9uIGEgY29vcmRpbmF0ZS4gT24gZGVz
a3RvcCBwbGF0Zm9ybXMKICAgICAgICAgdGhpcyB3aWxsIHNlbGVjdCBhIHBhcmFncmFwaC4gT24g
bW9iaWxlIHRoaXMgd2lsbCBub3QgaGF2ZSB0aGUgc2FtZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9y
dC9rZXlzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
ZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5CmluZGV4IDJkMzhlMWRmZjg3Ni4uOWU4N2Vi
ZmFjMWQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L2tleXMucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9r
ZXlzLnB5CkBAIC0yMSw3ICsyMSw2IEBAIGltcG9ydCBzeXMKIAogZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgT3JkZXJlZERpY3QKIGZyb20gaW5zcGVjdCBpbXBvcnQgZ2V0bWVtYmVycwotZnJvbSBz
aXggaW1wb3J0IHRleHRfdHlwZQogCiBjbGFzcyBLZXlzKG9iamVjdCk6CiAgICAgIiIiCkBAIC0x
MDcsNyArMTA2LDcgQEAgY2xhc3MgS2V5cyhvYmplY3QpOgogICAgIFJfREVMRVRFID0gdSJcdUUw
NUQiCiAKIAotQUxMX0tFWVMgPSBnZXRtZW1iZXJzKEtleXMsIGxhbWJkYSB4OiB0eXBlKHgpID09
IHRleHRfdHlwZSkKK0FMTF9LRVlTID0gZ2V0bWVtYmVycyhLZXlzLCBsYW1iZGEgeDogdHlwZSh4
KSA9PSBzdHIpCiAKIEFMTF9FVkVOVFMgPSBPcmRlcmVkRGljdCgKICAgICBbCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQvcmVmaW5lLnB5CmluZGV4IGQ1ZDI0
ZTkzNGY2MS4uMzVjOTYyYjllY2JmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1f
YWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjcsMTIgKzI3LDMgQEAgZGVmIGdldF9rZXlz
KGlucHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAgZWxzZToKICAgICAgICAgcmV0dXJu
IHJ2Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6Ci0gICAgIiIiRmlsdGVyIGBzb3Vy
Y2VgIGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBgZGAgZGljdC4KLQotICAgIDpw
YXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgotICAgIDpwYXJhbSBkOiBkaWN0aW9u
YXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcuCi0gICAgIiIiCi0gICAgcmV0
dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBw
b3J0L3Rlc3RfYWN0aW9uc19wb2ludGVyX3dkc3BlYy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC90ZXN0X2Fj
dGlvbnNfcG9pbnRlcl93ZHNwZWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLmYxZmQ5YjJkYTNmOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQvdGVz
dF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKK++7vzwhZG9j
dHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPlRlc3QgQWN0aW9uczwvdGl0bGU+CisgICAgPHN0eWxlPgorICAgICAgZGl2IHsgcGFkZGlu
ZzowcHg7IG1hcmdpbjogMHB4OyB9CisgICAgICAjdHJhY2tQb2ludGVyIHsgcG9zaXRpb246IGZp
eGVkOyB9CisgICAgICAjcmVzdWx0Q29udGFpbmVyIHsgd2lkdGg6IDYwMHB4OyBoZWlnaHQ6IDYw
cHg7IH0KKyAgICAgIC5hcmVhIHsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91
bmQtY29sb3I6ICNjY2M7IH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgICJ1
c2Ugc3RyaWN0IjsKKyAgICAgICAgdmFyIGVscyA9IHt9OworICAgICAgICB2YXIgYWxsRXZlbnRz
ID0geyBldmVudHM6IFtdIH07CisgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlNZXNzYWdlKG1lc3Nh
Z2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJldmVudHMiKS5pbm5l
ckhUTUwgPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9wPiI7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBhcHBlbmRNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJldmVudHMiKS5pbm5lckhUTUwgKz0gIjxwPiIgKyBtZXNzYWdlICsgIjwv
cD4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVjb3JkUG9pbnRlckV2ZW50KGV2
ZW50KSB7CisgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJjb250ZXh0bWVudSIpIHsKKyAg
ICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgfQorICAgICAgICAg
IGFsbEV2ZW50cy5ldmVudHMucHVzaCh7CisgICAgICAgICAgICAidHlwZSI6IGV2ZW50LnR5cGUs
CisgICAgICAgICAgICAiYnV0dG9uIjogZXZlbnQuYnV0dG9uLAorICAgICAgICAgICAgImJ1dHRv
bnMiOiBldmVudC5idXR0b25zLAorICAgICAgICAgICAgInBhZ2VYIjogZXZlbnQucGFnZVgsCisg
ICAgICAgICAgICAicGFnZVkiOiBldmVudC5wYWdlWSwKKyAgICAgICAgICAgICJjdHJsS2V5Ijog
ZXZlbnQuY3RybEtleSwKKyAgICAgICAgICAgICJtZXRhS2V5IjogZXZlbnQubWV0YUtleSwKKyAg
ICAgICAgICAgICJhbHRLZXkiOiBldmVudC5hbHRLZXksCisgICAgICAgICAgICAic2hpZnRLZXki
OiBldmVudC5zaGlmdEtleSwKKyAgICAgICAgICAgICJ0YXJnZXQiOiBldmVudC50YXJnZXQuaWQs
CisgICAgICAgICAgICAicG9pbnRlclR5cGUiOiBldmVudC5wb2ludGVyVHlwZSwKKyAgICAgICAg
ICAgICJ3aWR0aCI6IGV2ZW50LndpZHRoLAorICAgICAgICAgICAgImhlaWdodCI6IGV2ZW50Lmhl
aWdodCwKKyAgICAgICAgICAgICJwcmVzc3VyZSI6IGV2ZW50LnByZXNzdXJlLAorICAgICAgICAg
ICAgInRhbmdlbnRpYWxQcmVzc3VyZSI6IGV2ZW50LnRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAg
ICAgICAgICJ0aWx0WCI6IGV2ZW50LnRpbHRYLAorICAgICAgICAgICAgInRpbHRZIjogZXZlbnQu
dGlsdFksCisgICAgICAgICAgICAidHdpc3QiOiBldmVudC50d2lzdCwKKyAgICAgICAgICAgICJh
bHRpdHVkZUFuZ2xlIjogZXZlbnQuYWx0aXR1ZGVBbmdsZSwKKyAgICAgICAgICAgICJhemltdXRo
QW5nbGUiOiBldmVudC5hemltdXRoQW5nbGUKKyAgICAgICAgICB9KTsKKyAgICAgICAgICBhcHBl
bmRNZXNzYWdlKGV2ZW50LnR5cGUgKyAiICIgKworICAgICAgICAgICAgICAiYnV0dG9uOiAiICsg
ZXZlbnQuYnV0dG9uICsgIiwgIiArCisgICAgICAgICAgICAgICJwYWdlWDogIiArIGV2ZW50LnBh
Z2VYICsgIiwgIiArCisgICAgICAgICAgICAgICJwYWdlWTogIiArIGV2ZW50LnBhZ2VZICsgIiwg
IiArCisgICAgICAgICAgICAgICJidXR0b246ICIgKyBldmVudC5idXR0b24gKyAiLCAiICsKKyAg
ICAgICAgICAgICAgImJ1dHRvbnM6ICIgKyBldmVudC5idXR0b25zICsgIiwgIiArCisgICAgICAg
ICAgICAgICJjdHJsS2V5OiAiICsgZXZlbnQuY3RybEtleSArICIsICIgKworICAgICAgICAgICAg
ICAiYWx0S2V5OiAiICsgZXZlbnQuYWx0S2V5ICsgIiwgIiArCisgICAgICAgICAgICAgICJtZXRh
S2V5OiAiICsgZXZlbnQubWV0YUtleSArICIsICIgKworICAgICAgICAgICAgICAic2hpZnRLZXk6
ICIgKyBldmVudC5zaGlmdEtleSArICIsICIgKworICAgICAgICAgICAgICAidGFyZ2V0IGlkOiAi
ICsgZXZlbnQudGFyZ2V0LmlkICsgIiwgIiArCisgICAgICAgICAgICAgICJwb2ludGVyVHlwZTog
IiArIGV2ZW50LnBvaW50ZXJUeXBlICsgIiwgIiArCisgICAgICAgICAgICAgICJ3aWR0aDogIiAr
IGV2ZW50LndpZHRoICsgIiwgIiArCisgICAgICAgICAgICAgICJoZWlnaHQ6ICIgKyBldmVudC5o
ZWlnaHQgKyAiLCAiICsKKyAgICAgICAgICAgICAgInByZXNzdXJlOiAiICsgZXZlbnQucHJlc3N1
cmUgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRhbmdlbnRpYWxQcmVzc3VyZTogIiArIGV2ZW50
LnRhbmdlbnRpYWxQcmVzc3VyZSArICIsICIgKworICAgICAgICAgICAgICAidGlsdFg6ICIgKyBl
dmVudC50aWx0WCArICIsICIgKworICAgICAgICAgICAgICAidGlsdFk6ICIgKyBldmVudC50aWx0
WSArICIsICIgKworICAgICAgICAgICAgICAidHdpc3Q6ICIgKyBldmVudC50d2lzdCArICIsICIg
KworICAgICAgICAgICAgICAiYWx0aXR1ZGVBbmdsZTogIiArIGV2ZW50LmFsdGl0dWRlQW5nbGUg
KyAiLCAiICsKKyAgICAgICAgICAgICAgImF6aW11dGhBbmdsZTogIiArIGV2ZW50LmF6aW11dGhB
bmdsZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZXNldEV2ZW50cygpIHsKKyAg
ICAgICAgICBhbGxFdmVudHMuZXZlbnRzLmxlbmd0aCA9IDA7CisgICAgICAgICAgZGlzcGxheU1l
c3NhZ2UoIiIpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBwb2ludGVy
QXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb2ludGVyQXJlYSIpOworICAgICAgICAg
IHBvaW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgcmVjb3JkUG9pbnRl
ckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVy
bW92ZSIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEuYWRkRXZl
bnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBw
b2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3ZlciIsIHJlY29yZFBvaW50ZXJF
dmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmVu
dGVyIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVu
dExpc3RlbmVyKCJwb2ludGVyb3V0IiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBw
b2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLCByZWNvcmRQb2ludGVy
RXZlbnQpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8
ZGl2IGlkPSJ0cmFja1BvaW50ZXIiIGNsYXNzPSJibG9jayI+PC9kaXY+CisgIDxkaXY+CisgICAg
PGgyPlBvaW50ZXJSZXBvcnRlcjwvaDI+CisgICAgPGRpdiBpZD0icG9pbnRlckFyZWEiIGNsYXNz
PSJhcmVhIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdENvbnRhaW5l
ciI+CisgICAgPGgyPkV2ZW50czwvaDI+CisgICAgPGRpdiBpZD0iZXZlbnRzIj48L2Rpdj4KKyAg
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3do
ZWVsLnB5CmluZGV4IGZjODRmMmYyZTAxNC4uNjc3MzQ4MDBiMTlkIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy93
aGVlbC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3BlcmZvcm1fYWN0aW9ucy93aGVlbC5weQpAQCAtMiw4ICsyLDkgQEAgaW1wb3J0IHB5dGVzdAog
CiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoV2luZG93RXhjZXB0aW9uCiAKLWZy
b20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGlj
dCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUg
aW1wb3J0IGdldF9ldmVudHMKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfbW92ZV90b19jb29yZGluYXRlcworZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0
IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCB3
aGVlbF9jaGFpbik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQppbmRleCAzNDFlMDY5ZjdiYjYu
Ljg5Mjk2ZDJiMTQ2YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3ByaW50Y21kLnB5CkBAIC0xLDExICsxLDgg
QEAKLWltcG9ydCBiYXNlNjQKK2Zyb20gYmFzZTY0IGltcG9ydCBkZWNvZGVieXRlcwogCiBpbXBv
cnQgcHl0ZXN0CiAKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfYmluYXJ5Ci0KIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9t
IHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZG9fcHJpbnQoc2Vz
c2lvbiwgb3B0aW9ucyk6CkBAIC0yNywxMSArMjQsMTEgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiBkZWYgdGVzdF9ub19icm93c2lu
Z19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgcmVzcG9uc2UgPSBkb19wcmlu
dChzZXNzaW9uLCB7fSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQotICAg
IHBkZiA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZW5zdXJlX2JpbmFyeSh2YWx1ZSkpCisgICAgcGRm
ID0gZGVjb2RlYnl0ZXModmFsdWUuZW5jb2RlKCkpCiAgICAgYXNzZXJ0X3BkZihwZGYpCiAKIAot
ZGVmIHRlc3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfZG9jdW1lbnQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiVGVzdCIpCiAKICAg
ICByZXNwb25zZSA9IGRvX3ByaW50KHNlc3Npb24sIHsKQEAgLTQwLDcgKzM3LDcgQEAgZGVmIHRl
c3RfaHRtbF9kb2N1bWVudChzZXNzaW9uKToKICAgICAgICAgInNocmlua1RvRml0IjogRmFsc2UK
ICAgICB9KQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCi0gICAgcGRmID0g
YmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5KHZhbHVlKSkKKyAgICBwZGYgPSBkZWNv
ZGVieXRlcyh2YWx1ZS5lbmNvZGUoKSkKICAgICAjIFRPRE86IFRlc3QgdGhhdCB0aGUgb3V0cHV0
IGlzIHJlYXNvbmFibGUKICAgICBhc3NlcnRfcGRmKHBkZikKIApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC91c2VyX3Byb21wdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3ByaW50L3Vz
ZXJfcHJvbXB0cy5weQppbmRleCBhM2Y3YTEwYWMzNzIuLjBhMjliNTE4YWM5YSAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC91c2Vy
X3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9wcmludC91c2VyX3Byb21wdHMucHkKQEAgLTEsMTcgKzEsMTQgQEAKICMgTUVUQTogdGlt
ZW91dD1sb25nCi1pbXBvcnQgYmFzZTY0Citmcm9tIGJhc2U2NCBpbXBvcnQgZGVjb2RlYnl0ZXMK
IAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFyeQotCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3Nl
cnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBpbmxpbmUKIGZyb20gLnByaW50Y21kIGltcG9ydCBkb19wcmludCwgYXNzZXJ0X3BkZgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4i
KQogCkBAIC0yMCw3ICsxNyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAgICAgICAgIHJlc3BvbnNlID0g
ZG9fcHJpbnQoc2Vzc2lvbiwge30pCiAgICAgICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCiAKLSAgICAgICAgcGRmID0gYmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5
KHZhbHVlKSkKKyAgICAgICAgcGRmID0gZGVjb2RlYnl0ZXModmFsdWUuZW5jb2RlKCkpCiAgICAg
ICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190
eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQogCiAgICAgICAgIGFzc2VydF9wZGYocGRmKQpA
QCAtMjksNyArMjYsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCkBAIC00NCw3ICs0MSw3IEBAIGRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBp
bmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRp
b24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4i
KQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3JlZnJlc2gvcmVmcmVzaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvcmVmcmVzaC9yZWZyZXNoLnB5CmluZGV4IGVlZjQxMzAxN2U1ZS4uMzM1OTVk
MGZmNzFhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQpAQCAtMiw3ICsyLDYgQEAgaW1w
b3J0IHB5dGVzdAogCiBmcm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbiwgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uCiAKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0xMSw3ICsxMCw3IEBAIGRl
ZiByZWZyZXNoKHNlc3Npb24pOgogICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lk
fS9yZWZyZXNoIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jl
c3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PiIpCiAKICAgICBy
ZXNwb25zZSA9IHJlZnJlc2goc2Vzc2lvbikKQEAgLTI0LDcgKzIzLDcgQEAgZGVmIHRlc3Rfbm9f
dG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X25vX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKK2RlZiB0ZXN0X25vX2Jyb3dzaW5n
X2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpbmxpbmUpOgogICAgIHVybCA9IGlubGlu
ZSgiPGRpdiBpZD1mb28+IikKIAogICAgIHNlc3Npb24udXJsID0gdXJsCkBAIC00MCw3ICszOSw3
IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToK
ICAgICBhc3NlcnQgc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKIAogCi1kZWYg
dGVzdF9iYXNpYyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Jhc2ljKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgdXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogCiAgICAgc2Vzc2lvbi51cmwgPSB1cmwK
QEAgLTU2LDcgKzU1LDcgQEAgZGVmIHRlc3RfYmFzaWMoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHNl
c3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCiAKIAotZGVmIHRlc3RfZGlzbWlzc2Vk
X2JlZm9yZXVubG9hZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWQo
c2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmxfYmVmb3JldW5sb2FkID0gaW5saW5lKCIiIgogICAg
ICAgPGlucHV0IHR5cGU9InRleHQiPgogICAgICAgPHNjcmlwdD4KQEAgLTc5LDcgKzc4LDcgQEAg
ZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9uKToKICAgICBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIAogCi1kZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0
ZShzZXNzaW9uLCB1cmwpOgorZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgaW5s
aW5lKToKICAgICBwdXNoc3RhdGVfcGFnZSA9IGlubGluZSgiIiIKICAgICAgIDxzY3JpcHQ+CiAg
ICAgICAgIGZ1bmN0aW9uIHB1c2hTdGF0ZSgpIHsKQEAgLTExMSw3ICsxMTAsNyBAQCBkZWYgdGVz
dF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNzaW9uLCB1cmwpOgogICAgICAgICBlbGVtZW50LnByb3Bl
cnR5KCJpZCIpCiAKIAotZGVmIHRlc3RfcmVmcmVzaF9zd2l0Y2hlc190b19wYXJlbnRfYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBjcmVhdGVfZnJhbWUpOgorZGVmIHRlc3RfcmVmcmVzaF9zd2l0
Y2hlc190b19wYXJlbnRfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjcmVhdGVfZnJhbWUsIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAKICAgICBz
ZXNzaW9uLnN3aXRjaF9mcmFtZShjcmVhdGVfZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVmcmVzaC91c2VyX3Byb21wdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gv
dXNlcl9wcm9tcHRzLnB5CmluZGV4IGI4ZWY0MThlMTE1Zi4uN2U5NDRiNTNiMDk2IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gv
dXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcmVmcmVzaC91c2VyX3Byb21wdHMucHkKQEAgLTQsNyArNCw2IEBAIGltcG9ydCBw
eXRlc3QKIAogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IFN0YWxlRWxlbWVudFJlZmVyZW5j
ZUV4Y2VwdGlvbgogCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFz
c2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0xNCw3ICsxMyw3IEBAIGRlZiByZWZy
ZXNoKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGRpdiBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0zMyw3ICszMiw3IEBAIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAg
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUs
IHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQog
ICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAg
LTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5m
aW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3JlbGVhc2UucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9u
cy9yZWxlYXNlLnB5CmluZGV4IDFmNDg2Zjc3NTlmZC4uNWRmMWZmNGJlOTAyIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0
aW9ucy9yZWxlYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3JlbGVhc2UucHkKQEAgLTIwLDQgKzIwLDQgQEAgZGVm
IHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CiAK
IGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAg
ICByZXNwb25zZSA9IHJlbGVhc2VfYWN0aW9ucyhzZXNzaW9uKQotICAgIGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvc2VxdWVuY2UucHkKaW5kZXggMmQ4MTZm
ODA5NGIzLi43NTE0M2Q4NWNhNjAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25z
L3NlcXVlbmNlLnB5CkBAIC0xLDYgKzEsNyBAQAogIyBNRVRBOiB0aW1lb3V0PWxvbmcKIAotZnJv
bSB0ZXN0cy5yZWxlYXNlX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0
LCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5yZWxlYXNlX2FjdGlvbnMuc3VwcG9y
dC5yZWZpbmUgaW1wb3J0IGdldF9ldmVudHMsIGdldF9rZXlzCitmcm9tIHRlc3RzLnN1cHBvcnQu
aGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIAogCiBkZWYgdGVzdF9yZWxlYXNlX25vX2FjdGlv
bnNfc2VuZHNfbm9fZXZlbnRzKHNlc3Npb24sIGtleV9yZXBvcnRlcik6CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9u
cy9zdXBwb3J0L3JlZmluZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3N1cHBvcnQvcmVmaW5lLnB5CmluZGV4IDNhNmQ2M2Uw
NGNlOS4uOTBmNzIyNTg3YzNiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0
aW9ucy9zdXBwb3J0L3JlZmluZS5weQpAQCAtMjIsMTIgKzIyLDMgQEAgZGVmIGdldF9rZXlzKGlu
cHV0X2VsKToKICAgICAgICAgcmV0dXJuICIiCiAgICAgZWxzZToKICAgICAgICAgcmV0dXJuIHJ2
Ci0KLQotZGVmIGZpbHRlcl9kaWN0KHNvdXJjZSwgZCk6Ci0gICAgIiIiRmlsdGVyIGBzb3VyY2Vg
IGRpY3QgdG8gb25seSBjb250YWluIHNhbWUga2V5cyBhcyBgZGAgZGljdC4KLQotICAgIDpwYXJh
bSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8gZmlsdGVyLgotICAgIDpwYXJhbSBkOiBkaWN0aW9uYXJ5
IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRoZSBmaWx0ZXJpbmcuCi0gICAgIiIiCi0gICAgcmV0dXJu
IHtrOiBzb3VyY2Vba10gZm9yIGsgaW4gZC5rZXlzKCl9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3NlbmRfYWxlcnRfdGV4dC9zZW5kLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zZW5kX2FsZXJ0
X3RleHQvc2VuZC5weQppbmRleCA1ZGE2NzU5MGRhMzQuLmQ1ODQ2YWQ1NmIzYiAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zZW5kX2FsZXJ0
X3RleHQvc2VuZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3NlbmRfYWxlcnRfdGV4dC9zZW5kLnB5CkBAIC00LDEyICs0LDExIEBAIGZyb20gd2Vi
ZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgogZnJvbSB3ZWJkcml2ZXIu
dHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0Lmlu
bGluZSBpbXBvcnQgaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAog
CiAKIEBweXRlc3QuZml4dHVyZQotZGVmIHBhZ2Uoc2Vzc2lvbik6CitkZWYgcGFnZShzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2NyaXB0
PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdFbnRlciBZb3VyIE5hbWU6ICcsICdOYW1l
Jyk7PC9zY3JpcHQ+CiAgICAgIiIiKQpAQCAtNTUsNyArNTQsNyBAQCBkZWYgdGVzdF9ub191c2Vy
X3Byb21wdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190
eXBlIiwgWyJhbGVydCIsICJjb25maXJtIl0pCi1kZWYgdGVzdF9hbGVydF9lbGVtZW50X25vdF9p
bnRlcmFjdGFibGUoc2Vzc2lvbiwgZGlhbG9nX3R5cGUpOgorZGVmIHRlc3RfYWxlcnRfZWxlbWVu
dF9ub3RfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSwgZGlhbG9nX3R5cGUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy57fSgnSGVsbG8nKTs8L3NjcmlwdD4i
LmZvcm1hdChkaWFsb2dfdHlwZSkpCiAKICAgICByZXNwb25zZSA9IHNlbmRfYWxlcnRfdGV4dChz
ZXNzaW9uLCAiRmVkZXJlciIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkKaW5kZXggMWYwZjFiYzRm
ZTc3Li44YzdhZTIyYTY3YjUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3RhdHVzL3N0YXR1cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkKQEAgLTEsNyArMSw1
IEBACiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCi0KIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwogCiAKQEAgLTE4LDcgKzE2
LDcgQEAgZGVmIHRlc3RfZ2V0X3N0YXR1c19ub19zZXNzaW9uKGh0dHApOgogICAgICAgICB2YWx1
ZSA9IHBhcnNlZF9vYmpbInZhbHVlIl0KIAogICAgICAgICBhc3NlcnQgdmFsdWVbInJlYWR5Il0g
aW4gW1RydWUsIEZhbHNlXQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZVsibWVzc2Fn
ZSJdLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlWyJtZXNzYWdl
Il0sIHN0cikKIAogCiBkZWYgdGVzdF9zdGF0dXNfd2l0aF9zZXNzaW9uX3J1bm5pbmdfb25fZW5k
cG9pbnRfbm9kZShzZXNzaW9uKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2Fzc2VydHMucHkKaW5kZXggM2Mz
ZDY3N2M5MGVjLi5lNjBkNTNiNmM2ZjAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRzLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRzLnB5CkBA
IC0xLDggKzEsNiBAQAotaW1wb3J0IGJhc2U2NAogaW1wb3J0IGltZ2hkcgogaW1wb3J0IHN0cnVj
dAotCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFyeSwgdGV4dF90eXBlCitmcm9tIGJhc2U2
NCBpbXBvcnQgZGVjb2RlYnl0ZXMKIAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IEVsZW1lbnQsIE5v
U3VjaEFsZXJ0RXhjZXB0aW9uLCBXZWJEcml2ZXJFeGNlcHRpb24KIApAQCAtNTIsOCArNTAsOCBA
QCBkZWYgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCBlcnJvcl9jb2RlKToKICAgICBhc3NlcnQgcmVz
cG9uc2Uuc3RhdHVzID09IGVycm9yc1tlcnJvcl9jb2RlXQogICAgIGFzc2VydCAidmFsdWUiIGlu
IHJlc3BvbnNlLmJvZHkKICAgICBhc3NlcnQgcmVzcG9uc2UuYm9keVsidmFsdWUiXVsiZXJyb3Ii
XSA9PSBlcnJvcl9jb2RlCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFs
dWUiXVsibWVzc2FnZSJdLCB0ZXh0X3R5cGUpCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9u
c2UuYm9keVsidmFsdWUiXVsic3RhY2t0cmFjZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlz
aW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsibWVzc2FnZSJdLCBzdHIpCisgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keVsidmFsdWUiXVsic3RhY2t0cmFjZSJdLCBzdHIp
CiAgICAgYXNzZXJ0X3Jlc3BvbnNlX2hlYWRlcnMocmVzcG9uc2UuaGVhZGVycykKIAogCkBAIC0y
MTQsNiArMjEyLDYgQEAgZGVmIGFzc2VydF9tb3ZlX3RvX2Nvb3JkaW5hdGVzKHBvaW50LCB0YXJn
ZXQsIGV2ZW50cyk6CiAKIGRlZiBhc3NlcnRfcG5nKHNjcmVlbnNob3QpOgogICAgICIiIlRlc3Qg
dGhhdCBzY3JlZW5zaG90IGlzIGEgQmFzZTY0IGVuY29kZWQgUE5HIGZpbGUuIiIiCi0gICAgaW1h
Z2UgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkoc2NyZWVuc2hvdCkpCisgICAg
aW1hZ2UgPSBkZWNvZGVieXRlcyhzY3JlZW5zaG90LmVuY29kZSgpKQogICAgIG1pbWVfdHlwZSA9
IGltZ2hkci53aGF0KCIiLCBpbWFnZSkKICAgICBhc3NlcnQgbWltZV90eXBlID09ICJwbmciLCAi
RXhwZWN0ZWQgaW1hZ2UgdG8gYmUgUE5HLCBidXQgaXQgd2FzIHt9Ii5mb3JtYXQobWltZV90eXBl
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5CmluZGV4IDI1YThlYjk1
ZDExNC4uOWRhNGJiN2JlNWZmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVudGljYXRpb24ucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0
aW9uLnB5CkBAIC0xLDE1ICsxLDEyIEBACi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1w
b3J0IHVybGVuY29kZQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQogCiAKLWRl
ZiBiYXNpY19hdXRoZW50aWNhdGlvbih1c2VybmFtZT1Ob25lLCBwYXNzd29yZD1Ob25lLCBwcm90
b2NvbD0iaHR0cCIpOgotICAgIGZyb20gLmZpeHR1cmVzIGltcG9ydCBzZXJ2ZXJfY29uZmlnLCB1
cmwKLSAgICBidWlsZF91cmwgPSB1cmwoc2VydmVyX2NvbmZpZygpKQotCitkZWYgYmFzaWNfYXV0
aGVudGljYXRpb24odXJsLCB1c2VybmFtZT1Ob25lLCBwYXNzd29yZD1Ob25lLCBwcm90b2NvbD0i
aHR0cCIpOgogICAgIHF1ZXJ5ID0ge30KIAotICAgIHJldHVybiBidWlsZF91cmwoIi93ZWJkcml2
ZXIvdGVzdHMvc3VwcG9ydC9hdXRoZW50aWNhdGlvbi5weSIsCi0gICAgICAgICAgICAgICAgICAg
ICBxdWVyeT11cmxlbmNvZGUocXVlcnkpLAotICAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w9
cHJvdG9jb2wpCisgICAgcmV0dXJuIHVybCgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhl
bnRpY2F0aW9uLnB5IiwKKyAgICAgICAgICAgICAgIHF1ZXJ5PXVybGVuY29kZShxdWVyeSksCisg
ICAgICAgICAgICAgICBwcm90b2NvbD1wcm90b2NvbCkKIAogCiBkZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZSk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkKaW5kZXggOTU3YzRkMDU4Njhi
Li5kYjMyOTMxMTMxZDYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9maXh0dXJlcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkKQEAgLTIsMTUg
KzIsMTUgQEAgaW1wb3J0IGNvcHkKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIAoraW1wb3J0IGFz
eW5jaW8KIGltcG9ydCBweXRlc3QKIGltcG9ydCB3ZWJkcml2ZXIKIAotZnJvbSBzaXggaW1wb3J0
IHN0cmluZ190eXBlcwotCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHVu
c3BsaXQKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmx1bnNwbGl0CiAKIGZyb20gdGVzdHMu
c3VwcG9ydCBpbXBvcnQgZGVmYXVsdHMKLWZyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9y
dCBjbGVhbnVwX3Nlc3Npb24KK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBjbGVh
bnVwX3Nlc3Npb24sIGRlZXBfdXBkYXRlCitmcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9y
dCBidWlsZF9pbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5odHRwX3JlcXVlc3QgaW1wb3J0IEhU
VFBSZXF1ZXN0CiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9sbAogCkBAIC0zOCw2
ICszOCwxNyBAQCBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKICAgICAgICAg
ICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJjYXBhYmlsaXRpZXMiLCBtYXJrZXIuYXJncywgaWRz
PU5vbmUpCiAKIAorIyBFbnN1cmUgdGhhdCB0aGUgZXZlbnQgbG9vcCBpcyByZXN0YXJ0ZWQgb25j
ZSBwZXIgc2Vzc2lvbiByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCAgb2Ygb25jZSBwZXIgdGVzdAor
IyBpZiB3ZSBkb24ndCBkbyB0aGlzLCB0ZXN0cyB3aWxsIHRyeSB0byByZXVzZSBhIGNsb3NlZCBl
dmVudCBsb29wIGFuZCBmYWlsIHdpdGggYW4gZXJyb3IgdGhhdCB0aGUgImZ1dHVyZQorIyBiZWxv
bmdzIHRvIGEgZGlmZmVyZW50IGxvb3AiCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24i
KQorZGVmIGV2ZW50X2xvb3AoKToKKyAgICAiIiJDaGFuZ2UgZXZlbnRfbG9vcCBmaXh0dXJlIHRv
IHNlc3Npb24gbGV2ZWwuIiIiCisgICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3BfcG9s
aWN5KCkubmV3X2V2ZW50X2xvb3AoKQorICAgIHlpZWxkIGxvb3AKKyAgICBsb29wLmNsb3NlKCkK
KworCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiBhZGRfZXZlbnRfbGlzdGVuZXJzKHNlc3Npb24pOgog
ICAgICIiIlJlZ2lzdGVyIGxpc3RlbmVycyBmb3IgdHJhY2tlZCBldmVudHMgb24gZWxlbWVudC4i
IiIKQEAgLTk0LDcgKzEwNSw4IEBAIGRlZiBodHRwKGNvbmZpZ3VyYXRpb24pOgogCiBAcHl0ZXN0
LmZpeHR1cmUKIGRlZiBzZXJ2ZXJfY29uZmlnKCk6Ci0gICAgcmV0dXJuIGpzb24ubG9hZHMob3Mu
ZW52aXJvbi5nZXQoIldEX1NFUlZFUl9DT05GSUciKSkKKyAgICB3aXRoIG9wZW4ob3MuZW52aXJv
bi5nZXQoIldEX1NFUlZFUl9DT05GSUdfRklMRSIpLCAiciIpIGFzIGY6CisgICAgICAgIHJldHVy
biBqc29uLmxvYWQoZikKIAogCiBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQpAQCAt
MTEwLDggKzEyMiwyMyBAQCBkZWYgY29uZmlndXJhdGlvbigpOgogICAgIH0KIAogCithc3luYyBk
ZWYgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25lY2Vzc2FyeShjYXBzLCByZXF1ZXN0X2JpZGkp
OgorICAgIGdsb2JhbCBfY3VycmVudF9zZXNzaW9uCisKKyAgICAjIElmIHRoZXJlIGlzIGEgc2Vz
c2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYWN0aXZlIG9yIHRoZSBjdXJyZW50IHNl
c3Npb24KKyAgICAjIGlzIG9mIGRpZmZlcmVudCB0eXBlIHRoYW4gdGhlIG9uZSB3ZSB3b3VsZCBs
aWtlIHRvIGNyZWF0ZSwgZW5kIGl0IG5vdy4KKyAgICBpZiBfY3VycmVudF9zZXNzaW9uIGlzIG5v
dCBOb25lOgorICAgICAgICBpc19iaWRpID0gaXNpbnN0YW5jZShfY3VycmVudF9zZXNzaW9uLCB3
ZWJkcml2ZXIuQmlkaVNlc3Npb24pCisgICAgICAgIGlmIGlzX2JpZGkgIT0gcmVxdWVzdF9iaWRp
IG9yIG5vdCBfY3VycmVudF9zZXNzaW9uLm1hdGNoKGNhcHMpOgorICAgICAgICAgICAgaWYgaXNf
YmlkaToKKyAgICAgICAgICAgICAgICBhd2FpdCBfY3VycmVudF9zZXNzaW9uLmVuZCgpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24uZW5kKCkKKyAg
ICAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24gPSBOb25lCisKKwogQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSJmdW5jdGlvbiIpCi1kZWYgc2Vzc2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24s
IHJlcXVlc3QpOgorYXN5bmMgZGVmIHNlc3Npb24oY2FwYWJpbGl0aWVzLCBjb25maWd1cmF0aW9u
LCByZXF1ZXN0KToKICAgICAiIiJDcmVhdGUgYW5kIHN0YXJ0IGEgc2Vzc2lvbiBmb3IgYSB0ZXN0
IHRoYXQgZG9lcyBub3QgaXRzZWxmIHRlc3Qgc2Vzc2lvbiBjcmVhdGlvbi4KIAogICAgIEJ5IGRl
ZmF1bHQgdGhlIHNlc3Npb24gd2lsbCBzdGF5IG9wZW4gYWZ0ZXIgZWFjaCB0ZXN0LCBidXQgd2Ug
YWx3YXlzIHRyeSB0byBzdGFydCBhCkBAIC0xMjMsMTQgKzE1MCwxMCBAQCBkZWYgc2Vzc2lvbihj
YXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3QpOgogICAgICMgVXBkYXRlIGNvbmZp
Z3VyYXRpb24gY2FwYWJpbGl0aWVzIHdpdGggY3VzdG9tIG9uZXMgZnJvbSB0aGUKICAgICAjIGNh
cGFiaWxpdGllcyBmaXh0dXJlLCB3aGljaCBjYW4gYmUgc2V0IGJ5IHRlc3RzCiAgICAgY2FwcyA9
IGNvcHkuZGVlcGNvcHkoY29uZmlndXJhdGlvblsiY2FwYWJpbGl0aWVzIl0pCi0gICAgY2Fwcy51
cGRhdGUoY2FwYWJpbGl0aWVzKQorICAgIGRlZXBfdXBkYXRlKGNhcHMsIGNhcGFiaWxpdGllcykK
ICAgICBjYXBzID0geyJhbHdheXNNYXRjaCI6IGNhcHN9CiAKLSAgICAjIElmIHRoZXJlIGlzIGEg
c2Vzc2lvbiB3aXRoIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYWN0aXZlLCBlbmQgaXQgbm93Ci0g
ICAgaWYgX2N1cnJlbnRfc2Vzc2lvbiBpcyBub3QgTm9uZSBhbmQgKAotICAgICAgICAgICAgY2Fw
cyAhPSBfY3VycmVudF9zZXNzaW9uLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMpOgotICAgICAgICBf
Y3VycmVudF9zZXNzaW9uLmVuZCgpCi0gICAgICAgIF9jdXJyZW50X3Nlc3Npb24gPSBOb25lCisg
ICAgYXdhaXQgcmVzZXRfY3VycmVudF9zZXNzaW9uX2lmX25lY2Vzc2FyeShjYXBzLCBGYWxzZSkK
IAogICAgIGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgTm9uZToKICAgICAgICAgX2N1cnJlbnRfc2Vz
c2lvbiA9IHdlYmRyaXZlci5TZXNzaW9uKApAQCAtMTM5LDYgKzE2Miw3IEBAIGRlZiBzZXNzaW9u
KGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgICAgICAgICBjYXBh
YmlsaXRpZXM9Y2FwcykKICAgICB0cnk6CiAgICAgICAgIF9jdXJyZW50X3Nlc3Npb24uc3RhcnQo
KQorCiAgICAgZXhjZXB0IHdlYmRyaXZlci5lcnJvci5TZXNzaW9uTm90Q3JlYXRlZEV4Y2VwdGlv
bjoKICAgICAgICAgaWYgbm90IF9jdXJyZW50X3Nlc3Npb24uc2Vzc2lvbl9pZDoKICAgICAgICAg
ICAgIHJhaXNlCkBAIC0xNTIsNiArMTc2LDQ4IEBAIGRlZiBzZXNzaW9uKGNhcGFiaWxpdGllcywg
Y29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgY2xlYW51cF9zZXNzaW9uKF9jdXJyZW50X3Nl
c3Npb24pCiAKIAorQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCithc3luYyBkZWYg
YmlkaV9zZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmlndXJhdGlvbiwgcmVxdWVzdCk6CisgICAg
IiIiQ3JlYXRlIGFuZCBzdGFydCBhIGJpZGkgc2Vzc2lvbiBmb3IgYSB0ZXN0IHRoYXQgZG9lcyBu
b3QgaXRzZWxmIHRlc3QKKyAgICBiaWRpIHNlc3Npb24gY3JlYXRpb24uCisgICAgQnkgZGVmYXVs
dCB0aGUgc2Vzc2lvbiB3aWxsIHN0YXkgb3BlbiBhZnRlciBlYWNoIHRlc3QsIGJ1dCB3ZSBhbHdh
eXMgdHJ5IHRvIHN0YXJ0IGEKKyAgICBuZXcgb25lIGFuZCBhc3N1bWUgdGhhdCBpZiB0aGF0IGZh
aWxzIHRoZXJlIGlzIGFscmVhZHkgYSB2YWxpZCBzZXNzaW9uLiBUaGlzIG1ha2VzIGl0CisgICAg
cG9zc2libGUgdG8gcmVjb3ZlciBmcm9tIHNvbWUgZXJyb3JzIHRoYXQgbWlnaHQgbGVhdmUgdGhl
IHNlc3Npb24gaW4gYSBiYWQgc3RhdGUsIGJ1dAorICAgIGRvZXMgbm90IGRlbWFuZCB0aGF0IHdl
IHN0YXJ0IGEgbmV3IHNlc3Npb24gcGVyIHRlc3QuIiIiCisgICAgZ2xvYmFsIF9jdXJyZW50X3Nl
c3Npb24KKworICAgICMgVXBkYXRlIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzIHdpdGggY3Vz
dG9tIG9uZXMgZnJvbSB0aGUKKyAgICAjIGNhcGFiaWxpdGllcyBmaXh0dXJlLCB3aGljaCBjYW4g
YmUgc2V0IGJ5IHRlc3RzCisgICAgY2FwcyA9IGNvcHkuZGVlcGNvcHkoY29uZmlndXJhdGlvblsi
Y2FwYWJpbGl0aWVzIl0pCisgICAgZGVlcF91cGRhdGUoY2FwcywgY2FwYWJpbGl0aWVzKQorICAg
IGNhcHMgPSB7ImFsd2F5c01hdGNoIjogY2Fwc30KKworICAgIGF3YWl0IHJlc2V0X2N1cnJlbnRf
c2Vzc2lvbl9pZl9uZWNlc3NhcnkoY2FwcywgVHJ1ZSkKKworICAgIGlmIF9jdXJyZW50X3Nlc3Np
b24gaXMgTm9uZToKKyAgICAgICAgX2N1cnJlbnRfc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9u
KAorICAgICAgICAgICAgY29uZmlndXJhdGlvblsiaG9zdCJdLAorICAgICAgICAgICAgY29uZmln
dXJhdGlvblsicG9ydCJdLAorICAgICAgICAgICAgY2FwYWJpbGl0aWVzPWNhcHMsCisgICAgICAg
ICAgICBlbmFibGVfYmlkaT1UcnVlKQorCisgICAgdHJ5OgorICAgICAgICBfY3VycmVudF9zZXNz
aW9uLnN0YXJ0KCkKKyAgICAgICAgYXdhaXQgX2N1cnJlbnRfc2Vzc2lvbi5iaWRpX3Nlc3Npb24u
c3RhcnQoKQorICAgIGV4Y2VwdCB3ZWJkcml2ZXIuZXJyb3IuU2Vzc2lvbk5vdENyZWF0ZWRFeGNl
cHRpb246CisgICAgICAgIGlmIG5vdCBfY3VycmVudF9zZXNzaW9uLnNlc3Npb25faWQ6CisgICAg
ICAgICAgICByYWlzZQorCisgICAgIyBFbmZvcmNlIGEgZml4ZWQgZGVmYXVsdCB3aW5kb3cgc2l6
ZSBhbmQgcG9zaXRpb24KKyAgICBfY3VycmVudF9zZXNzaW9uLndpbmRvdy5zaXplID0gZGVmYXVs
dHMuV0lORE9XX1NJWkUKKyAgICBfY3VycmVudF9zZXNzaW9uLndpbmRvdy5wb3NpdGlvbiA9IGRl
ZmF1bHRzLldJTkRPV19QT1NJVElPTgorCisgICAgeWllbGQgX2N1cnJlbnRfc2Vzc2lvbi5iaWRp
X3Nlc3Npb24KKworICAgIGF3YWl0IF9jdXJyZW50X3Nlc3Npb24uYmlkaV9zZXNzaW9uLmVuZCgp
CisgICAgY2xlYW51cF9zZXNzaW9uKF9jdXJyZW50X3Nlc3Npb24pCisKKwogQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSJmdW5jdGlvbiIpCiBkZWYgY3VycmVudF9zZXNzaW9uKCk6CiAgICAgcmV0dXJu
IF9jdXJyZW50X3Nlc3Npb24KQEAgLTE1OSwxNCArMjI1LDEzIEBAIGRlZiBjdXJyZW50X3Nlc3Np
b24oKToKIAogQHB5dGVzdC5maXh0dXJlCiBkZWYgdXJsKHNlcnZlcl9jb25maWcpOgotICAgIGRl
ZiBpbm5lcihwYXRoLCBwcm90b2NvbD0iaHR0cCIsIGRvbWFpbj0iIiwgc3ViZG9tYWluPSIiLCBx
dWVyeT0iIiwgZnJhZ21lbnQ9IiIpOgorICAgIGRlZiB1cmwocGF0aCwgcHJvdG9jb2w9Imh0dHAi
LCBkb21haW49IiIsIHN1YmRvbWFpbj0iIiwgcXVlcnk9IiIsIGZyYWdtZW50PSIiKToKICAgICAg
ICAgZG9tYWluID0gc2VydmVyX2NvbmZpZ1siZG9tYWlucyJdW2RvbWFpbl1bc3ViZG9tYWluXQog
ICAgICAgICBwb3J0ID0gc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1bMF0KICAgICAg
ICAgaG9zdCA9ICJ7MH06ezF9Ii5mb3JtYXQoZG9tYWluLCBwb3J0KQogICAgICAgICByZXR1cm4g
dXJsdW5zcGxpdCgocHJvdG9jb2wsIGhvc3QsIHBhdGgsIHF1ZXJ5LCBmcmFnbWVudCkpCiAKLSAg
ICBpbm5lci5fX25hbWVfXyA9ICJ1cmwiCi0gICAgcmV0dXJuIGlubmVyCisgICAgcmV0dXJuIHVy
bAogCiAKIEBweXRlc3QuZml4dHVyZQpAQCAtMTgyLDcgKzI0Nyw3IEBAIGRlZiBjcmVhdGVfZGlh
bG9nKHNlc3Npb24pOgogICAgICAgICBpZiB0ZXh0IGlzIE5vbmU6CiAgICAgICAgICAgICB0ZXh0
ID0gIiIKIAotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0ZXh0LCBzdHJpbmdfdHlwZXMpLCAi
YHRleHRgIHBhcmFtZXRlciBtdXN0IGJlIGEgc3RyaW5nIgorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZSh0ZXh0LCBzdHIpLCAiYHRleHRgIHBhcmFtZXRlciBtdXN0IGJlIGEgc3RyaW5nIgogCiAg
ICAgICAgICMgU2NyaXB0IGNvbXBsZXRlcyBpdHNlbGYgd2hlbiB0aGUgdXNlciBwcm9tcHQgaGFz
IGJlZW4gb3BlbmVkLgogICAgICAgICAjIEZvciBwcm9tcHQoKSBkaWFsb2dzLCBhZGQgYSB2YWx1
ZSBmb3IgdGhlICdkZWZhdWx0JyBhcmd1bWVudCwKQEAgLTIzOCwxNSArMzAzLDU0IEBAIGRlZiBj
bG9zZWRfZnJhbWUoc2Vzc2lvbiwgdXJsKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjbG9z
ZWRfd2luZG93KHNlc3Npb24pOgorZGVmIGNsb3NlZF93aW5kb3coc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBvcmlnaW5hbF9oYW5kbGUgPSBzZXNzaW9uLndpbmRvd19oYW5kbGUKICAgICBuZXdfaGFu
ZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKIAogICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9
IG5ld19oYW5kbGUKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPSdhJyB2YWx1
ZT0nYic+IikKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCiAKICAgICBzZXNzaW9uLndpbmRvdy5jbG9zZSgpCiAgICAgYXNzZXJ0IG5ld19oYW5kbGUg
bm90IGluIHNlc3Npb24uaGFuZGxlcywgIlVuYWJsZSB0byBjbG9zZSB3aW5kb3cge30iLmZvcm1h
dChuZXdfaGFuZGxlKQogCi0gICAgeWllbGQgbmV3X2hhbmRsZQorICAgIHlpZWxkIChvcmlnaW5h
bF9oYW5kbGUsIGVsZW1lbnQpCiAKICAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5h
bF9oYW5kbGUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBpbmxpbmUodXJsKToKKyAgICAiIiJU
YWtlcyBhIHNvdXJjZSBleHRyYWN0IGFuZCBwcm9kdWNlcyB3ZWxsLWZvcm1lZCBkb2N1bWVudHMu
CisKKyAgICBCYXNlZCBvbiB0aGUgZGVzaXJlZCBkb2N1bWVudCB0eXBlLCB0aGUgZXh0cmFjdCBp
cyBlbWJlZGRlZCB3aXRoCisgICAgcHJlZGVmaW5lZCBib2lsZXJwbGF0ZSBpbiBvcmRlciB0byBw
cm9kdWNlIHdlbGwtZm9ybWVkIGRvY3VtZW50cy4KKyAgICBUaGUgbWVkaWEgdHlwZSBhbmQgY2hh
cmFjdGVyIHNldCBtYXkgYWxzbyBiZSBpbmRpdmlkdWFsbHkgY29uZmlndXJlZC4KKworICAgIFRo
aXMgaGVscGVyIGZ1bmN0aW9uIG9yaWdpbmFsbHkgdXNlZCBkYXRhIFVSTHMsIGJ1dCBzaW5jZSB0
aGVzZQorICAgIGFyZSBub3QgdW5pdmVyc2FsbHkgc3VwcG9ydGVkIChvciBpbmRlZWQgc3RhbmRh
cmRpc2VkISkgYWNyb3NzCisgICAgYnJvd3NlcnMsIGl0IG5vdyBkZWxlZ2F0ZXMgdGhlIHNlcnZp
bmcgb2YgdGhlIGRvY3VtZW50IHRvIHdwdHNlcnZlLgorICAgIFRoaXMgZmlsZSBhbHNvIGFjdHMg
YXMgYSB3cHRzZXJ2ZSBoYW5kbGVyIChzZWUgdGhlIG1haW4gZnVuY3Rpb24KKyAgICBiZWxvdykg
d2hpY2ggY29uZmlndXJlcyB0aGUgSFRUUCByZXNwb25zZSB1c2luZyBxdWVyeSBwYXJhbWV0ZXJz
LgorCisgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgVVJMIHRvIHRoZSB3cHRzZXJ2ZSBoYW5k
bGVyLCB3aGljaCBpbiB0dXJuCisgICAgd2lsbCBzZXJ2ZSBhbiBIVFRQIHJlc3BvbnNlIHdpdGgg
dGhlIHJlcXVlc3RlZCBzb3VyY2UgZXh0cmFjdAorICAgIGlubGluZWQgaW4gYSB3ZWxsLWZvcm1l
ZCBkb2N1bWVudCwgYW5kIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyCisgICAgb3B0aW9uYWxseSBj
b25maWd1cmVkIHVzaW5nIHRoZSBkZXNpcmVkIG1lZGlhIHR5cGUgYW5kIGNoYXJhY3RlciBzZXQu
CisKKyAgICBBbnkgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgcGFzc2VkIG9uIHRv
IHRoZSBidWlsZF91cmwKKyAgICBmdW5jdGlvbiwgd2hpY2ggY29tZXMgZnJvbSB0aGUgdXJsIGZp
eHR1cmUuCisgICAgIiIiCisgICAgZGVmIGlubGluZShzcmMsICoqa3dhcmdzKToKKyAgICAgICAg
cmV0dXJuIGJ1aWxkX2lubGluZSh1cmwsIHNyYywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gaW5s
aW5lCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgaWZyYW1lKGlubGluZSk6CisgICAgIiIiSW5s
aW5lcyBkb2N1bWVudCBleHRyYWN0IGFzIHRoZSBzb3VyY2UgZG9jdW1lbnQgb2YgYW4gPGlmcmFt
ZT4uIiIiCisgICAgZGVmIGlmcmFtZShzcmMsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuICI8
aWZyYW1lIHNyYz0ne30nPjwvaWZyYW1lPiIuZm9ybWF0KGlubGluZShzcmMsICoqa3dhcmdzKSkK
KworICAgIHJldHVybiBpZnJhbWUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2hlbHBlcnMucHkKaW5kZXggZjg1
NzA4M2I0Nzc0Li40M2JkYjQxY2Y5ODMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJzLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJzLnB5CkBA
IC0xLDUgKzEsNiBAQAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCitp
bXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBtYXRoCiBpbXBvcnQgc3lzCiAKQEAgLTEwNiw2ICsx
MDcsMjAgQEAgZGVmIGNsZWFyX2FsbF9jb29raWVzKHNlc3Npb24pOgogICAgIHNlc3Npb24udHJh
bnNwb3J0LnNlbmQoIkRFTEVURSIsICJzZXNzaW9uLyVzL2Nvb2tpZSIgJSBzZXNzaW9uLnNlc3Np
b25faWQpCiAKIAorZGVmIGRlZXBfdXBkYXRlKHNvdXJjZSwgb3ZlcnJpZGVzKToKKyAgICAiIiIK
KyAgICBVcGRhdGUgYSBuZXN0ZWQgZGljdGlvbmFyeSBvciBzaW1pbGFyIG1hcHBpbmcuCisgICAg
TW9kaWZ5IGBgc291cmNlYGAgaW4gcGxhY2UuCisgICAgIiIiCisgICAgZm9yIGtleSwgdmFsdWUg
aW4gb3ZlcnJpZGVzLml0ZW1zKCk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGNvbGxl
Y3Rpb25zLk1hcHBpbmcpIGFuZCB2YWx1ZToKKyAgICAgICAgICAgIHJldHVybmVkID0gZGVlcF91
cGRhdGUoc291cmNlLmdldChrZXksIHt9KSwgdmFsdWUpCisgICAgICAgICAgICBzb3VyY2Vba2V5
XSA9IHJldHVybmVkCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzb3VyY2Vba2V5XSA9IG92
ZXJyaWRlc1trZXldCisgICAgcmV0dXJuIHNvdXJjZQorCisKIGRlZiBkb2N1bWVudF9kaW1lbnNp
b25zKHNlc3Npb24pOgogICAgIHJldHVybiB0dXBsZShzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIi
IgogICAgICAgICBsZXQgcmVjdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKQEAgLTIyMSwzICsyMzYsMjcgQEAgZGVmIGF2YWlsYWJsZV9zY3JlZW5f
c2l6ZShzZXNzaW9uKToKICAgICAgICAgICAgIHNjcmVlbi5hdmFpbEhlaWdodCAtIHNjcmVlbi5h
dmFpbFRvcCwKICAgICAgICAgXTsKICAgICAgICAgIiIiKSkKKworZGVmIGZpbHRlcl9kaWN0KHNv
dXJjZSwgZCk6CisgICAgIiIiRmlsdGVyIGBzb3VyY2VgIGRpY3QgdG8gb25seSBjb250YWluIHNh
bWUga2V5cyBhcyBgZGAgZGljdC4KKworICAgIDpwYXJhbSBzb3VyY2U6IGRpY3Rpb25hcnkgdG8g
ZmlsdGVyLgorICAgIDpwYXJhbSBkOiBkaWN0aW9uYXJ5IHdob3NlIGtleXMgZGV0ZXJtaW5lIHRo
ZSBmaWx0ZXJpbmcuCisgICAgIiIiCisgICAgcmV0dXJuIHtrOiBzb3VyY2Vba10gZm9yIGsgaW4g
ZC5rZXlzKCl9CisKKworZGVmIHdhaXRfZm9yX25ld19oYW5kbGUoc2Vzc2lvbiwgaGFuZGxlc19i
ZWZvcmUpOgorICAgIGRlZiBmaW5kX25ld19oYW5kbGUoc2Vzc2lvbik6CisgICAgICAgIG5ld19o
YW5kbGVzID0gbGlzdChzZXQoc2Vzc2lvbi5oYW5kbGVzKSAtIHNldChoYW5kbGVzX2JlZm9yZSkp
CisgICAgICAgIGlmIG5ld19oYW5kbGVzIGFuZCBsZW4obmV3X2hhbmRsZXMpID09IDE6CisgICAg
ICAgICAgICByZXR1cm4gbmV3X2hhbmRsZXNbMF0KKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
IHdhaXQgPSBQb2xsKAorICAgICAgICBzZXNzaW9uLAorICAgICAgICB0aW1lb3V0PTUsCisgICAg
ICAgIG1lc3NhZ2U9Ik5vIG5ldyB3aW5kb3cgaGFzIGJlZW4gb3BlbmVkIikKKworICAgIHJldHVy
biB3YWl0LnVudGlsKGZpbmRfbmV3X2hhbmRsZSkKKwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvZnJhbWVzX25vX2Jm
Y2FjaGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3VwcG9ydC9odG1sL2ZyYW1lc19ub19iZmNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4xOTcyMTg3ZDIxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9mcmFt
ZXNfbm9fYmZjYWNoZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhlYWQ+CisgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiByZW1vdmUoKSB7Cisg
ICAgICBjb25zdCBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWItZnJhbWUiKTsK
KyAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGUiKTsKKyAg
ICAgIGRpdi5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgfQorICA8L3NjcmlwdD4KKzwvaGVhZD4K
KworPCEtLSB1bmxvYWQgaGFuZGxlciBwcmV2ZW50cyB0aGUgcGFnZSBmcm9tIGJlaW5nIGFkZGVk
IHRvIHRoZSBiZmNhY2hlIG9uIG5hdmlnYXRpb24gLS0+Cis8Ym9keSBvbnVubG9hZD0iIj4KKyAg
PGRpdiBpZD0iZGVsZXRlIj4KKyAgICA8aWZyYW1lIHNyYz0ic3ViZnJhbWUuaHRtbCIgaWQ9InN1
Yi1mcmFtZSI+PC9pZnJhbWU+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0
bWwvbWV0YS11dGY4LWFmdGVyLTEwMjQtYnl0ZXMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL21ldGEtdXRmOC1hZnRlci0xMDI0
LWJ5dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iNTkx
NjE0OGI1NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9tZXRhLXV0ZjgtYWZ0ZXItMTAyNC1ieXRlcy5o
dG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBMb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBOdWxsYSBldSBpYWN1
bGlzCitsZWN0dXMuIFF1aXNxdWUgdWxsYW1jb3JwZXIgZXN0IGF0IG51bmMgY29uc2VjdGV0dXIg
c3VzY2lwaXQuIEFsaXF1YW0gaW1wZXJkaWV0CittYXVyaXMgaW4gbnVsbGEgb3JuYXJlLCBpZCBl
bGVpZmVuZCB0dXJwaXMgcGxhY2VyYXQuIFZlc3RpYnVsdW0gbG9yZW0gbGliZXJvLAorc29sbGlj
aXR1ZGluIGluIG9yY2kgc3VzY2lwaXQsIGRpY3R1bSB2ZXN0aWJ1bHVtIG51bGxhLiBVdCBhYyBl
c3QgdGluY2lkdW50LAorY3Vyc3VzIGxlbyB2ZWwsIHBlbGxlbnRlc3F1ZSBvcmNpLiBTZWQgbWF0
dGlzIG1ldHVzIGF1Z3VlLCBhYyB0aW5jaWR1bnQgbnVuYworbG9ib3J0aXMgaW4uIFByb2luIGV1
IGlwc3VtIGF1Y3RvciBsb3JlbSBzYWdpdHRpcyBtYWxlc3VhZGEuIFZpdmFtdXMgbWF4aW11cywK
K2Vyb3MgZnJpbmdpbGxhIHZ1bHB1dGF0ZSB0aW5jaWR1bnQsIHRlbGx1cyB0ZWxsdXMgdml2ZXJy
YSBhdWd1ZSwgc2VkIGlhY3VsaXMKK2lwc3VtIGxhY3VzIHF1aXMgdGVsbHVzLiBNb3JiaSBldCBl
bmltIGF0IGFudGUgbW9sZXN0aWUgaW1wZXJkaWV0IGV0IGV0IG51bGxhLgorQWxpcXVhbSBjb25z
ZXF1YXQgcmhvbmN1cyBtYWduYSwgdml0YWUgc29kYWxlcyB1cm5hIG1heGltdXMgZWdldC4gTWF1
cmlzIGV1CitsYW9yZWV0IHR1cnBpcywgZWdldCBjb25kaW1lbnR1bSBsZWN0dXMuIE1hZWNlbmFz
IHZlbCBsb3JlbSB2ZWwgbnVsbGEgZWZmaWNpdHVyCitldWlzbW9kLiBTZWQgbG9ib3J0aXMgZW5p
bSBhYyBvZGlvIGJpYmVuZHVtLCBpZCB2ZWhpY3VsYSBuaWJoIHRlbXB1cy4gUGhhc2VsbHVzCitz
b2RhbGVzLCBpcHN1bSBmZXVnaWF0IGFsaXF1YW0gdmVoaWN1bGEsIGRpYW0gbGVvIGN1cnN1cyBl
c3QsIG5lYyB2YXJpdXMgbnVuYworZmVsaXMgdml0YWUgZXN0LiBDdXJhYml0dXIgYWMgcHVydXMg
bmlzbC4gTWF1cmlzIGNvbmRpbWVudHVtLCBtYWduYSBxdWlzCitjb25zZWN0ZXR1ciBiaWFtLiAt
LT4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxkaXYgaWQ9ImJvZHkiPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0
L2h0dHBfcmVxdWVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKaW5kZXggODk1ZDEzMTlhYzBhLi4yNDJkYzlj
OTE4ODcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0dHBfcmVxdWVzdC5weQpAQCAtMSw5ICsx
LDcgQEAKIGltcG9ydCBjb250ZXh0bGliCiBpbXBvcnQganNvbgogCi1mcm9tIHNpeCBpbXBvcnQg
dGV4dF90eXBlCi0KLWZyb20gc2l4Lm1vdmVzLmh0dHBfY2xpZW50IGltcG9ydCBIVFRQQ29ubmVj
dGlvbgorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KIAogCiBjbGFzcyBI
VFRQUmVxdWVzdChvYmplY3QpOgpAQCAtMzEsNyArMjksNyBAQCBjbGFzcyBIVFRQUmVxdWVzdChv
YmplY3QpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZhaWxlZCB0byBlbmNv
ZGUgcmVxdWVzdCBib2R5IGFzIEpTT046IHt9Ii5mb3JtYXQoCiAgICAgICAgICAgICAgICAgICAg
IGpzb24uZHVtcHMoYm9keSwgaW5kZW50PTIpKSkKIAotICAgICAgICAgICAgaWYgaXNpbnN0YW5j
ZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwYXlsb2Fk
LCBzdHIpOgogICAgICAgICAgICAgICAgIHBheWxvYWQgPSBib2R5LmVuY29kZSgidXRmLTgiKQog
CiAgICAgICAgIGNvbm4gPSBIVFRQQ29ubmVjdGlvbihzZWxmLmhvc3QsIHNlbGYucG9ydCkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9pbWFnZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvc3VwcG9ydC9pbWFnZS5weQppbmRleCA2MTQ5Y2NjY2JlMzIuLjJlN2FkOGMxMzA5YiAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBw
b3J0L2ltYWdlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc3VwcG9ydC9pbWFnZS5weQpAQCAtMSwxNCArMSwxMiBAQAotaW1wb3J0IGJhc2U2NAog
aW1wb3J0IG1hdGgKIGltcG9ydCBzdHJ1Y3QKLQotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9iaW5h
cnkKK2Zyb20gYmFzZTY0IGltcG9ydCBkZWNvZGVieXRlcwogCiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3BuZwogCiAKIGRlZiBwbmdfZGltZW5zaW9ucyhzY3JlZW5z
aG90KToKICAgICBhc3NlcnRfcG5nKHNjcmVlbnNob3QpCi0gICAgaW1hZ2UgPSBiYXNlNjQuZGVj
b2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkoc2NyZWVuc2hvdCkpCisgICAgaW1hZ2UgPSBkZWNvZGVi
eXRlcyhzY3JlZW5zaG90LmVuY29kZSgpKQogICAgIHdpZHRoLCBoZWlnaHQgPSBzdHJ1Y3QudW5w
YWNrKCI+TEwiLCBpbWFnZVsxNjoyNF0pCiAgICAgcmV0dXJuIGludCh3aWR0aCksIGludChoZWln
aHQpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N1cHBvcnQvaW5saW5lLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQppbmRleCBkMjNjYTc1ZDFjODAuLjQ5NGNhNzRm
OTI2NSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L2lubGluZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaW5saW5lLnB5CkBAIC0xLDYgKzEsNiBAQAogIiIiSGVs
cGVycyBmb3IgaW5saW5pbmcgZXh0cmFjdHMgb2YgZG9jdW1lbnRzIGluIHRlc3RzLiIiIgogCi1m
cm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQorZnJvbSB1cmxsaWIu
cGFyc2UgaW1wb3J0IHVybGVuY29kZQogCiAKIEJPSUxFUlBMQVRFUyA9IHsKQEAgLTI0LDMxICsy
NCw4IEBAIE1JTUVfVFlQRVMgPSB7CiAgICAgInhtbCI6ICJ0ZXh0L3htbCIsCiB9CiAKLWRlZiBp
bmxpbmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBjaGFyc2V0PU5vbmUsICoqa3dh
cmdzKToKLSAgICAiIiIKLSAgICBUYWtlcyBhIHNvdXJjZSBleHRyYWN0IGFuZCBwcm9kdWNlcyB3
ZWxsLWZvcm1lZCBkb2N1bWVudHMuCi0KLSAgICBCYXNlZCBvbiB0aGUgZGVzaXJlZCBkb2N1bWVu
dCB0eXBlLCB0aGUgZXh0cmFjdCBpcyBlbWJlZGRlZCB3aXRoCi0gICAgcHJlZGVmaW5lZCBib2ls
ZXJwbGF0ZSBpbiBvcmRlciB0byBwcm9kdWNlIHdlbGwtZm9ybWVkIGRvY3VtZW50cy4KLSAgICBU
aGUgbWVkaWEgdHlwZSBhbmQgY2hhcmFjdGVyIHNldCBtYXkgYWxzbyBiZSBpbmRpdmlkdWFsbHkg
Y29uZmlndXJlZC4KLQotICAgIFRoaXMgaGVscGVyIGZ1bmN0aW9uIG9yaWdpbmFsbHkgdXNlZCBk
YXRhIFVSTHMsIGJ1dCBzaW5jZSB0aGVzZQotICAgIGFyZSBub3QgdW5pdmVyc2FsbHkgc3VwcG9y
dGVkIChvciBpbmRlZWQgc3RhbmRhcmRpc2VkISkgYWNyb3NzCi0gICAgYnJvd3NlcnMsIGl0IG5v
dyBkZWxlZ2F0ZXMgdGhlIHNlcnZpbmcgb2YgdGhlIGRvY3VtZW50IHRvIHdwdHNlcnZlLgotICAg
IFRoaXMgZmlsZSBhbHNvIGFjdHMgYXMgYSB3cHRzZXJ2ZSBoYW5kbGVyIChzZWUgdGhlIG1haW4g
ZnVuY3Rpb24KLSAgICBiZWxvdykgd2hpY2ggY29uZmlndXJlcyB0aGUgSFRUUCByZXNwb25zZSB1
c2luZyBxdWVyeSBwYXJhbWV0ZXJzLgotCi0gICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgVVJM
IHRvIHRoZSB3cHRzZXJ2ZSBoYW5kbGVyLCB3aGljaCBpbiB0dXJuCi0gICAgd2lsbCBzZXJ2ZSBh
biBIVFRQIHJlc3BvbnNlIHdpdGggdGhlIHJlcXVlc3RlZCBzb3VyY2UgZXh0cmFjdAotICAgIGlu
bGluZWQgaW4gYSB3ZWxsLWZvcm1lZCBkb2N1bWVudCwgYW5kIHRoZSBDb250ZW50LVR5cGUgaGVh
ZGVyCi0gICAgb3B0aW9uYWxseSBjb25maWd1cmVkIHVzaW5nIHRoZSBkZXNpcmVkIG1lZGlhIHR5
cGUgYW5kIGNoYXJhY3RlciBzZXQuCi0KLSAgICBBbnkgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3Vt
ZW50cyBhcmUgcGFzc2VkIG9uIHRvIHRoZSBidWlsZF91cmwKLSAgICBmdW5jdGlvbi4KLSAgICAi
IiIKLSAgICBmcm9tIC5maXh0dXJlcyBpbXBvcnQgc2VydmVyX2NvbmZpZywgdXJsCi0gICAgYnVp
bGRfdXJsID0gdXJsKHNlcnZlcl9jb25maWcoKSkKIAorZGVmIGJ1aWxkX2lubGluZShidWlsZF91
cmwsIHNyYywgZG9jdHlwZT0iaHRtbCIsIG1pbWU9Tm9uZSwgY2hhcnNldD1Ob25lLCAqKmt3YXJn
cyk6CiAgICAgaWYgbWltZSBpcyBOb25lOgogICAgICAgICBtaW1lID0gTUlNRV9UWVBFU1tkb2N0
eXBlXQogICAgIGlmIGNoYXJzZXQgaXMgTm9uZToKQEAgLTYyLDExICszOSw2IEBAIGRlZiBpbmxp
bmUoc3JjLCBkb2N0eXBlPSJodG1sIiwgbWltZT1Ob25lLCBjaGFyc2V0PU5vbmUsICoqa3dhcmdz
KToKICAgICAgICAgKiprd2FyZ3MpCiAKIAotZGVmIGlmcmFtZShzcmMsICoqa3dhcmdzKToKLSAg
ICAiIiJJbmxpbmVzIGRvY3VtZW50IGV4dHJhY3QgYXMgdGhlIHNvdXJjZSBkb2N1bWVudCBvZiBh
biA8aWZyYW1lPi4iIiIKLSAgICByZXR1cm4gIjxpZnJhbWUgc3JjPSd7fSc+PC9pZnJhbWU+Ii5m
b3JtYXQoaW5saW5lKHNyYywgKiprd2FyZ3MpKQotCi0KIGRlZiBtYWluKHJlcXVlc3QsIHJlc3Bv
bnNlKToKICAgICBkb2MgPSByZXF1ZXN0LkdFVC5maXJzdChiImRvYyIsIE5vbmUpCiAgICAgbWlt
ZSA9IHJlcXVlc3QuR0VULmZpcnN0KGIibWltZSIsIE5vbmUpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvbWVyZ2VfZGljdGlv
bmFyaWVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9z
dXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQppbmRleCBjZjA2YzliNDMzY2UuLjcyZjFjYWIz
NTJkZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25hcmllcy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvbWVyZ2VfZGljdGlvbmFyaWVzLnB5
CkBAIC0xLDEwICsxLDMgQEAKLWRlZiBpdGVyaXRlbXMoZCk6Ci0gICAgIiIiQ3JlYXRlIGEga2V5
LXZhbHVlIGl0ZXJhdG9yIGZvciB0aGUgZ2l2ZW4gZGljdCBpbiBib3RoIFB5dGhvbiAyLnggYW5k
Ci0gICAgUHl0aG9uIDMueCBlbnZpcm9ubWVudHMiIiIKLSAgICBpZiBoYXNhdHRyKGQsICJpdGVy
aXRlbXMiKToKLSAgICAgICAgcmV0dXJuIGQuaXRlcml0ZW1zKCkKLSAgICByZXR1cm4gZC5pdGVt
cygpCi0KIGRlZiBtZXJnZV9kaWN0aW9uYXJpZXMoZmlyc3QsIHNlY29uZCk6CiAgICAgIiIiR2l2
ZW4gdHdvIGRpY3Rpb25hcmllcywgY3JlYXRlIGEgdGhpcmQgdGhhdCBkZWZpbmVzIGFsbCBzcGVj
aWZpZWQKICAgICBrZXkvdmFsdWUgcGFpcnMuIFRoaXMgbWVyZ2VfZGljdGlvbmFyaWVzIGlzIHBl
cmZvcm1lZCAiZGVlcGx5IiBvbiBhbnkgbmVzdGVkCkBAIC0xMiw3ICs1LDcgQEAgZGVmIG1lcmdl
X2RpY3Rpb25hcmllcyhmaXJzdCwgc2Vjb25kKToKICAgICBhbiBleGNlcHRpb24gd2lsbCBiZSBy
YWlzZWQuIiIiCiAgICAgcmVzdWx0ID0gZGljdChmaXJzdCkKIAotICAgIGZvciBrZXksIHZhbHVl
IGluIGl0ZXJpdGVtcyhzZWNvbmQpOgorICAgIGZvciBrZXksIHZhbHVlIGluIHNlY29uZC5pdGVt
cygpOgogICAgICAgICBpZiBrZXkgaW4gcmVzdWx0IGFuZCByZXN1bHRba2V5XSAhPSB2YWx1ZToK
ICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0W2tleV0sIGRpY3QpIGFuZCBpc2luc3Rh
bmNlKHZhbHVlLCBkaWN0KToKICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG1lcmdlX2Rp
Y3Rpb25hcmllcyhyZXN1bHRba2V5XSwgdmFsdWUpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9zeW5jLnB5CmluZGV4
IGZhNWQxODU1MGNjZS4uMzBmZjg3MmI2ZTE1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5weQpAQCAt
Miw4ICsyLDYgQEAgaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQog
Ci1pbXBvcnQgc2l4Ci0KIGZyb20gd2ViZHJpdmVyIGltcG9ydCBlcnJvcgogCiAKQEAgLTE0MCw2
ICsxMzgsNiBAQCBjbGFzcyBQb2xsKG9iamVjdCk6CiAgICAgICAgICAgICBtZXNzYWdlID0gIlRp
bWVkIG91dCBhZnRlciB7fSBzZWNvbmRzIi5mb3JtYXQoZWxhcHNlZCkKICAgICAgICAgICAgIGlm
IHNlbGYuZXhjX21zZyBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBtZXNzYWdlID0gInt9
IHdpdGggbWVzc2FnZToge30iLmZvcm1hdChtZXNzYWdlLCBzZWxmLmV4Y19tc2cpCi0gICAgICAg
ICAgICBzaXgucmVyYWlzZShzZWxmLmV4Y19jbHMsIHNlbGYuZXhjX2NscyhtZXNzYWdlPW1lc3Nh
Z2UpLCB0YikKKyAgICAgICAgICAgIHJhaXNlIHNlbGYuZXhjX2NscyhtZXNzYWdlPW1lc3NhZ2Up
LndpdGhfdHJhY2ViYWNrKHRiKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHJ2
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkKaW5k
ZXggOTA1ZjFlYjU2ZGNlLi42MzNlYmEzZjQyNDggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL2Nyb3NzX29yaWdp
bi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3
aXRjaF90b19mcmFtZS9jcm9zc19vcmlnaW4ucHkKQEAgLTEsMTAgKzEsOSBAQAotZnJvbSBzaXgu
bW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQorZnJvbSB1cmxsaWIucGFyc2UgaW1w
b3J0IHVybHBhcnNlCiAKIGltcG9ydCB3ZWJkcml2ZXIucHJvdG9jb2wgYXMgcHJvdG9jb2wKIAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCiBmcm9tIHRl
c3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZG9jdW1lbnRfbG9jYXRpb24KLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAKIAogIiIiCkBAIC0yNyw3ICsy
Niw3IEBAIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpOgogICAgICAgICBzZXNz
aW9uPXNlc3Npb24pCiAKIAotZGVmIHRlc3RfY3Jvc3Nfb3JpZ2luX2lmcmFtZShzZXNzaW9uLCBz
ZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lvbiwgc2Vy
dmVyX2NvbmZpZywgaW5saW5lLCBpZnJhbWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlm
cmFtZSgiIiwgZG9tYWluPSJhbHQiKSkKICAgICBmcmFtZV9lbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC0zOCw3ICszNyw3IEBAIGRlZiB0ZXN0X2Ny
b3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CiAgICAgYXNzZXJ0IHBh
cnNlX3Jlc3VsdC5uZXRsb2MgIT0gc2VydmVyX2NvbmZpZ1siYnJvd3Nlcl9ob3N0Il0KIAogCi1k
ZWYgdGVzdF9uZXN0ZWRfY3Jvc3Nfb3JpZ2luX2lmcmFtZShzZXNzaW9uLCBzZXJ2ZXJfY29uZmln
KToKK2RlZiB0ZXN0X25lc3RlZF9jcm9zc19vcmlnaW5faWZyYW1lKHNlc3Npb24sIHNlcnZlcl9j
b25maWcsIGlubGluZSwgaWZyYW1lKToKICAgICBmcmFtZTIgPSBpZnJhbWUoIiIsIGRvbWFpbj0i
YWx0Iiwgc3ViZG9tYWluPSJ3d3ciKQogICAgIGZyYW1lMSA9IGlmcmFtZShmcmFtZTIpCiAgICAg
dG9wX2RvYyA9IGlubGluZShmcmFtZTEsIGRvbWFpbj0iYWx0IikKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3
aXRjaC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dp
dGNoX3RvX2ZyYW1lL3N3aXRjaC5weQppbmRleCA3MDVmYTc5YTVkZTAuLjljY2FiMmM2Yzk2ZCAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9z
d2l0Y2hfdG9fZnJhbWUvc3dpdGNoLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weQpAQCAtMiwxMSArMiwx
MCBAQCBpbXBvcnQgcHl0ZXN0CiAKIGltcG9ydCB3ZWJkcml2ZXIucHJvdG9jb2wgYXMgcHJvdG9j
b2wKIAotZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlv
bgorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KIGZyb20gd2Vi
ZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1
Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZSwgaWZyYW1lCiAK
IAogZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CkBAIC0xNywxOCArMTYsMTMg
QEAgZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CiAgICAgICAgIHNlc3Npb249
c2Vzc2lvbikKIAogCi1kZWYgZnJhbWVzZXQoKmRvY3MpOgotICAgIGZyYW1lcyA9IGxpc3QobWFw
KGxhbWJkYSBkb2M6ICI8ZnJhbWUgc3JjPSd7fSc+PC9mcmFtZT4iLmZvcm1hdChpbmxpbmUoZG9j
KSksIGRvY3MpKQotICAgIHJldHVybiAiPGZyYW1lc2V0IHJvd3M9J3t9Jz5cbnt9PC9mcmFtZXNl
dD4iLmZvcm1hdChsZW4oZnJhbWVzKSAqICIqLCIsICJcbiIuam9pbihmcmFtZXMpKQotCi0KIGRl
ZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHApOgogICAgIHBhdGggPSAi
L3Nlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1lIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKQogICAg
IHdpdGggaHR0cC5wb3N0KHBhdGgsIE5vbmUpIGFzIHJlc3BvbnNlOgogICAgICAgICBhc3NlcnRf
ZXJyb3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFsaWQgYXJndW1lbnQiKQog
CiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CitkZWYgdGVzdF9udWxs
X3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNz
cygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC00Miw3ICszNiwxNiBAQCBkZWYgdGVzdF9udWxs
X3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgogICAgIDAsCiAgICAgeyJlbGVtZW50LTYwNjYtMTFl
NC1hNTJlLTRmNzM1NDY2Y2VjZiI6ICJmb28ifSwKIF0pCi1kZWYgdGVzdF9ub190b3BfYnJvd3Np
bmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93LCBpZCk6CitkZWYgdGVzdF9ub190b3Bf
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCB1cmwsIGlkKToKKyAgICBzZXNzaW9uLndpbmRvd19o
YW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQorCisgICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93
ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lcy5odG1sIikKKworICAgIHN1YmZyYW1l
ID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9u
LnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHNlc3Npb24ud2luZG93LmNsb3NlKCkKKwog
ICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGlkKQogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIApAQCAtNjEsMTMgKzY0LDE4IEBAIGRl
ZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpZCk6CiAg
ICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCitkZWYg
dGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFkeV90b3BfbGV2ZWwoc2Vzc2lvbiwg
Y2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwg
Tm9uZSkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKwog
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFsiZm9vIiwgVHJ1ZSwgW10sIHt9XSkK
IGRlZiB0ZXN0X2ZyYW1lX2lkX2ludmFsaWRfdHlwZXMoc2Vzc2lvbiwgdmFsdWUpOgogICAgIHJl
c3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIHZhbHVlKQogICAgIGFzc2VydF9lcnJv
cihyZXNwb25zZSwgImludmFsaWQgYXJndW1lbnQiKQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX251
bGwoc2Vzc2lvbik6CitkZWYgdGVzdF9mcmFtZV9pZF9udWxsKHNlc3Npb24sIGlubGluZSwgaWZy
YW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoInt9PGRpdj5mb28iLmZvcm1h
dChpZnJhbWUoIjxwPmJhciIpKSkpCiAKICAgICBmcmFtZTEgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
ZnJhbWUiLCBhbGw9RmFsc2UpCkBAIC04MiwxMCArOTAsMjcgQEAgZGVmIHRlc3RfZnJhbWVfaWRf
bnVsbChzZXNzaW9uKToKICAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBO
b25lKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCi0gICAgd2l0aCBweXRlc3QucmFp
c2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgd2l0aCBweXRlc3QucmFp
c2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgogICAgICAgICBlbGVtZW50Mi50ZXh0Ci0gICAg
d2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgogICAgICAgICBlbGVt
ZW50MS50ZXh0CiAKICAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1G
YWxzZSkKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGZyYW1lLCBmcmFtZTEpCisK
KworZGVmIHRlc3RfZmluZF9lbGVtZW50X3doaWxlX2ZyYW1lX2lzX3N0aWxsX2xvYWRpbmcoc2Vz
c2lvbiwgdXJsKToKKyAgICBzZXNzaW9uLnRpbWVvdXRzLmltcGxpY2l0ID0gNQorCisgICAgZnJh
bWVfdXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5odG1s
P3BpcGU9dHJpY2tsZShkMikiKQorICAgIHBhZ2VfdXJsID0gIjxodG1sPjxib2R5PjxpZnJhbWUg
c3JjPSd7fSc+PC9pZnJhbWU+PC9ib2R5PjwvaHRtbD4iLmZvcm1hdChmcmFtZV91cmwpCisKKyAg
ICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAiZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmlubmVySFRNTCA9IGFyZ3VtZW50c1swXTsiLCBhcmdzPVtwYWdlX3VybF0pCisKKyAgICBm
cmFtZTEgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgc2Vzc2lv
bi5zd2l0Y2hfZnJhbWUoZnJhbWUxKQorCisgICAgIyBFbnN1cmUgdGhhdCB0aGUgaXMgYWx3YXlz
IGEgdmFsaWQgYnJvd3NpbmcgY29udGV4dCwgYW5kIHRoZSBlbGVtZW50CisgICAgIyBjYW4gYmUg
Zm91bmQgZXZlbnR1YWxseS4KKyAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZh
bHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF9udW1iZXIu
cHkKaW5kZXggNzc1Mjk1NDQ2NzlhLi5jODg1OGU3N2ZmMTAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRj
aF9udW1iZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX251bWJlci5weQpAQCAtMyw3ICszLDYgQEAgaW1w
b3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2NvbCBhcyBwcm90b2NvbAogCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lLCBpZnJhbWUKIAogCiBk
ZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKQEAgLTIxLDcgKzIwLDcgQEAgZGVm
IHRlc3RfZnJhbWVfaWRfbnVtYmVyX291dF9vZl9ib3VuZHMoc2Vzc2lvbiwgdmFsdWUpOgogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5kZXgiLCBbMSwgNjU1MzVdKQotZGVmIHRlc3Rf
ZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3VuZHMoc2Vzc2lvbiwgaW5kZXgpOgorZGVm
IHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X291dF9vZl9ib3VuZHMoc2Vzc2lvbiwgaW5saW5l
LCBpZnJhbWUsIGluZGV4KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZv
byIpKQogCiAgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgaW5kZXgpCkBA
IC0yOSw3ICsyOCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9vdXRfb2ZfYm91
bmRzKHNlc3Npb24sIGluZGV4KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImluZGV4
LCB2YWx1ZSIsIFtbMCwgImZvbyJdLCBbMSwgImJhciJdXSkKLWRlZiB0ZXN0X2ZyYW1lX2lkX251
bWJlcl9pbmRleChzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgorZGVmIHRlc3RfZnJhbWVfaWRfbnVt
YmVyX2luZGV4KHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBpbmRleCwgdmFsdWUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCJ7fXt9Ii5mb3JtYXQoaWZyYW1lKCI8cD5mb28iKSwgaWZyYW1l
KCI8cD5iYXIiKSkpCiAKICAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBp
bmRleCkKQEAgLTM5LDcgKzM4LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4KHNl
c3Npb24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSB2YWx1ZQog
CiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9uZXN0ZWQoc2Vzc2lvbik6CitkZWYg
dGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXhfbmVzdGVkKHNlc3Npb24sIGlubGluZSwgaWZyYW1l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoInt9PHA+Zm9vIi5mb3JtYXQoaWZy
YW1lKCI8cD5iYXIiKSkpKQogCiAgICAgZXhwZWN0ZWRfdGV4dCA9IFsiZm9vIiwgImJhciJdCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3
aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF93ZWJlbGVtZW50
LnB5CmluZGV4IDg5NDgwYjY2YjNhNi4uYTMwZDJkOGQzMzljIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0
Y2hfd2ViZWxlbWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2ViZWxlbWVudC5weQpAQCAtMyw3ICsz
LDYgQEAgaW1wb3J0IHB5dGVzdAogaW1wb3J0IHdlYmRyaXZlci5wcm90b2NvbCBhcyBwcm90b2Nv
bAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3Nl
cnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lLCBpZnJh
bWUKIAogCiBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKQEAgLTE0LDE0ICsx
MywxNCBAQCBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKICAgICAgICAgc2Vz
c2lvbj1zZXNzaW9uKQogCiAKLWRlZiBmcmFtZXNldCgqZG9jcyk6CitkZWYgZnJhbWVzZXQoaW5s
aW5lLCAqZG9jcyk6CiAgICAgZnJhbWVzID0gbGlzdChtYXAobGFtYmRhIGRvYzogIjxmcmFtZSBz
cmM9J3t9Jz48L2ZyYW1lPiIuZm9ybWF0KGlubGluZShkb2MpKSwgZG9jcykpCiAgICAgcmV0dXJu
ICI8ZnJhbWVzZXQgcm93cz0ne30nPlxue308L2ZyYW1lc2V0PiIuZm9ybWF0KGxlbihmcmFtZXMp
ICogIiosIiwgIlxuIi5qb2luKGZyYW1lcykpCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28iXSwgWzEsICJiYXIiXV0pCi1kZWYgdGVzdF9mcmFt
ZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6Ci0gICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoZnJhbWVzZXQoIjxwPmZvbyIsICI8cD5iYXIiKSkKK2RlZiB0ZXN0X2Zy
YW1lX2lkX3dlYmVsZW1lbnRfZnJhbWUoc2Vzc2lvbiwgaW5saW5lLCBpbmRleCwgdmFsdWUpOgor
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKGZyYW1lc2V0KGlubGluZSwgIjxwPmZvbyIsICI8cD5i
YXIiKSkKICAgICBmcmFtZXMgPSBzZXNzaW9uLmZpbmQuY3NzKCJmcmFtZSIpCiAgICAgYXNzZXJ0
IGxlbihmcmFtZXMpID09IDIKIApAQCAtMzMsNyArMzIsNyBAQCBkZWYgdGVzdF9mcmFtZV9pZF93
ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGluZGV4LCB2YWx1ZSk6CiAKIAogQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28iXSwgWzEsICJiYXIiXV0pCi1k
ZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2lmcmFtZShzZXNzaW9uLCBpbmRleCwgdmFsdWUp
OgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9pZnJhbWUoc2Vzc2lvbiwgaW5saW5lLCBp
ZnJhbWUsIGluZGV4LCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoInt9e30iLmZv
cm1hdChpZnJhbWUoIjxwPmZvbyIpLCBpZnJhbWUoIjxwPmJhciIpKSkKICAgICBmcmFtZXMgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiKQogICAgIGFzc2VydCBsZW4oZnJhbWVzKSA9PSAyCkBA
IC00NSw3ICs0NCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfaWZyYW1lKHNlc3Np
b24sIGluZGV4LCB2YWx1ZSk6CiAgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSB2YWx1ZQogCiAK
LWRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbmVzdGVkKHNlc3Npb24pOgorZGVmIHRlc3Rf
ZnJhbWVfaWRfd2ViZWxlbWVudF9uZXN0ZWQoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgie308cD5mb28iLmZvcm1hdChpZnJhbWUoIjxw
PmJhciIpKSkpCiAKICAgICBleHBlY3RlZF90ZXh0ID0gWyJmb28iLCAiYmFyIl0KQEAgLTU4LDcg
KzU3LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9uZXN0ZWQoc2Vzc2lvbik6CiAg
ICAgICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gZXhwZWN0ZWRfdGV4dFtpXQogCiAKLWRlZiB0
ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbm9fZWxlbWVudF9yZWZlcmVuY2Uoc2Vzc2lvbik6Citk
ZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2VsZW1lbnRfcmVmZXJlbmNlKHNlc3Npb24s
IGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZv
byIpKQogICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQog
ICAgIGZyYW1lLmlkID0gImJhciIKQEAgLTY3LDcgKzY2LDcgQEAgZGVmIHRlc3RfZnJhbWVfaWRf
d2ViZWxlbWVudF9ub19lbGVtZW50X3JlZmVyZW5jZShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2ZyYW1lX2lkX3dl
YmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNlKHNlc3Npb24pOgorZGVmIHRlc3RfZnJhbWVfaWRfd2Vi
ZWxlbWVudF9zdGFsZV9yZWZlcmVuY2Uoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCiAgICAgZnJhbWUgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAKQEAgLTc3LDkgKzc2LDI3IEBAIGRlZiB0
ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNlKHNlc3Npb24pOgogICAgIGFz
c2VydF9lcnJvcihyZXNwb25zZSwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYg
dGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYg
dGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2ZyYW1lX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+Zm9vIikKICAgICBub19mcmFtZSA9IHNl
c3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKICAgICByZXNwb25zZSA9IHN3aXRjaF90
b19mcmFtZShzZXNzaW9uLCBub19mcmFtZSkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIGZyYW1lIikKKworCitkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2Nsb25lZF9p
bnRvX2lmcmFtZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CisgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoaWZyYW1lKCI8Ym9keT48cD5oZWxsbyB3b3JsZDwvcD48L2JvZHk+IikpCisKKyAgICBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCIiIgorICAgICAgICBjb25zdCBpZnJhbWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF07CisgICAgICAgIGNvbnN0IGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBkaXYuaW5uZXJIVE1MID0g
J0kgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2luZG93IGFuZCBhcHBlbmRlZCBpbnRvIHRoZSBp
ZnJhbWUnOworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRpdik7CisgICAgIiIiKQorCisgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
ZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lv
biwgZnJhbWUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQorICAgIGFzc2VydCBlbGVtZW50LnRl
eHQgPT0gIkkgYW0gYSBkaXYgY3JlYXRlZCBpbiB0b3Agd2luZG93IGFuZCBhcHBlbmRlZCBpbnRv
IHRoZSBpZnJhbWUiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUvc3dpdGNoLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1l
L3N3aXRjaC5weQppbmRleCBlZjJkYTQ1ZjE2MjUuLjljNmRiOGQyY2Q2MSAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fcGFy
ZW50X2ZyYW1lL3N3aXRjaC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19wYXJlbnRfZnJhbWUvc3dpdGNoLnB5CkBAIC0xLDkgKzEs
OCBAQAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHdlYmRyaXZlciBpbXBvcnQgU3RhbGVFbGVtZW50
UmVmZXJlbmNlRXhjZXB0aW9uCitmcm9tIHdlYmRyaXZlciBpbXBvcnQgTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
LCBpZnJhbWUKIAogCiBkZWYgc3dpdGNoX3RvX3BhcmVudF9mcmFtZShzZXNzaW9uKToKQEAgLTEx
LDcgKzEwLDcgQEAgZGVmIHN3aXRjaF90b19wYXJlbnRfZnJhbWUoc2Vzc2lvbik6CiAgICAgICAg
ICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L2ZyYW1lL3BhcmVudCIuZm9ybWF0KCoqdmFy
cyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToK
K2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCiAgICAgZnJhbWVfZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9u
LnN3aXRjaF9mcmFtZShmcmFtZV9lbGVtZW50KQpAQCAtMjEsNyArMjAsMTYgQEAgZGVmIHRlc3Rf
bnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKICAgICBhc3NlcnQgdmFsdWUgaXMgTm9uZQog
CiAKLWRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5k
b3cpOgorZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgdXJsKToKKyAg
ICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQorCisgICAgc2Vz
c2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1lcy5odG1s
IikKKworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiI3N1Yi1mcmFtZSIsIGFsbD1G
YWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJmcmFtZSkKKworICAgIHNlc3Npb24u
d2luZG93LmNsb3NlKCkKKwogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3BhcmVudF9mcmFtZShz
ZXNzaW9uKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIApA
QCAtNDksMTkgKzU3LDI5IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX2ZyYW1lKToKICAgICBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNl
KQogCiAKLWRlZiB0ZXN0X3N0YWxlX2VsZW1lbnRfZnJvbV9pZnJhbWUoc2Vzc2lvbik6CitkZWYg
dGVzdF9ub19icm93c2luZ19jb250ZXh0X3doZW5fYWxyZWFkeV90b3BfbGV2ZWwoc2Vzc2lvbiwg
Y2xvc2VkX3dpbmRvdyk6CisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNl
c3Npb24pCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQorCisK
K2RlZiB0ZXN0X3N3aXRjaF9mcm9tX2lmcmFtZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5mb28iKSkKICAgICBmcmFtZV9lbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24u
c3dpdGNoX2ZyYW1lKGZyYW1lX2VsZW1lbnQpCi0gICAgc3RhbGVfZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
InAiLCBhbGw9RmFsc2UpCiAKICAgICByZXN1bHQgPSBzd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNl
c3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0KQogCi0gICAgd2l0aCBweXRlc3QucmFp
c2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6Ci0gICAgICAgIHN0YWxlX2VsZW1l
bnQudGV4dAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToK
KyAgICAgICAgZWxlbWVudC50ZXh0CisKIAorZGVmIHRlc3Rfc3dpdGNoX2Zyb21fdG9wX2xldmVs
KHNlc3Npb24sIGlubGluZSk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmZvbyIpCisg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCiAKLWRlZiB0ZXN0
X3N3aXRjaF9mcm9tX3RvcF9sZXZlbChzZXNzaW9uKToKICAgICByZXN1bHQgPSBzd2l0Y2hfdG9f
cGFyZW50X2ZyYW1lKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0KQorCisgICAg
YXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiZm9vIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fd2luZG93L3N3aXRjaC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX3dp
bmRvdy9zd2l0Y2gucHkKaW5kZXggOThiNGJlZTE2ZTJkLi4yOGQ0MzJhOGI1YjQgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3Rv
X3dpbmRvdy9zd2l0Y2gucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zd2l0Y2hfdG9fd2luZG93L3N3aXRjaC5weQpAQCAtMSwzICsxLDYgQEAKK2lt
cG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEVsZW1lbnRF
eGNlcHRpb24sIE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQg
aW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3Nl
cnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCkBAIC01MSwzICs1NCw0NyBAQCBkZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIHVybCk6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UpCiAKICAgICBhc3NlcnQgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID09IG5ld19oYW5kbGUKKwor
CitkZWYgdGVzdF9zd2l0Y2hfdG9fd2luZG93X3NldHNfdG9wX2xldmVsX2NvbnRleHQoc2Vzc2lv
biwgaW5saW5lLCBpZnJhbWUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+
Zm9vIikpCisKKyAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxz
ZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZSkKKyAgICBzZXNzaW9uLmZpbmQuY3Nz
KCJwIiwgYWxsPUZhbHNlKQorCisgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fd2luZG93KHNlc3Np
b24sIHNlc3Npb24ud2luZG93X2hhbmRsZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkK
KworICAgIHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKKworCitkZWYgdGVz
dF9lbGVtZW50X25vdF9mb3VuZF9hZnRlcl90YWJfc3dpdGNoKHNlc3Npb24sIGlubGluZSk6Cisg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwIGlkPSdhJz5mb28iKQorICAgIHBhcmFncmFwaCA9
IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFsc2UpCisKKyAgICBzZXNzaW9uLndpbmRvd19o
YW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3codHlwZV9oaW50PSJ0YWIiKQorCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBwYXJhZ3JhcGgu
YXR0cmlidXRlKCJpZCIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlw
ZSIsIFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2RlZiB0ZXN0X2ZpbmRzX2V4aXNp
bmdfdXNlcl9wcm9tcHRfYWZ0ZXJfdGFiX3N3aXRjaChzZXNzaW9uLCBkaWFsb2dfdHlwZSk6Cisg
ICAgb3JpZ2luYWxfaGFuZGxlID0gc2Vzc2lvbi53aW5kb3dfaGFuZGxlCisgICAgbmV3X2hhbmRs
ZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCisKKyAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJ7
fSgnZm9vJyk7Ii5mb3JtYXQoZGlhbG9nX3R5cGUpKQorCisgICAgcmVzcG9uc2UgPSBzd2l0Y2hf
dG9fd2luZG93KHNlc3Npb24sIG5ld19oYW5kbGUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAg
ICAgICBzZXNzaW9uLmFsZXJ0LnRleHQKKworICAgIHNlc3Npb24ud2luZG93LmNsb3NlKCkKKwor
ICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3dpbmRvdyhzZXNzaW9uLCBvcmlnaW5hbF9oYW5kbGUp
CisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICBzZXNzaW9uLmFsZXJ0LmFjY2Vw
dCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3QvaWZyYW1l
LnB5CmluZGV4IDgzZjU1ZGVmZjc1My4uZTdmMWIwYzgwNTNkIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5z
aG90L2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L2lmcmFtZS5weQpAQCAtMiw3ICsyLDYgQEAg
aW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0
X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBvcnQgcG5nX2RpbWVuc2lvbnMK
LWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAKIGZyb20g
LiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zCiAKQEAgLTY4LDcgKzY3LDcgQEAgZGVmIHRha2Vf
ZWxlbWVudF9zY3JlZW5zaG90KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogICAgICkKIAogCi1kZWYg
dGVzdF9mcmFtZV9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfZnJhbWVfZWxlbWVudChzZXNz
aW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgIyBDcmVhdGUgYSByZWZlcmVuY2UgZWxlbWVudCB3
aGljaCBsb29rcyBleGFjdGx5IGxpa2UgdGhlIGZyYW1lJ3MgY29udGVudAogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCJ7MH17MX0iLmZvcm1hdChSRUZFUkVOQ0VfU1RZTEUsIFJFRkVSRU5DRV9D
T05URU5UKSkKIApAQCAtOTcsNyArOTYsNyBAQCBkZWYgdGVzdF9mcmFtZV9lbGVtZW50KHNlc3Np
b24pOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9tYWluIiwgWyIiLCAiYWx0Il0s
IGlkcz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdpbiJdKQotZGVmIHRlc3Rfc291cmNlX29y
aWdpbihzZXNzaW9uLCB1cmwsIGRvbWFpbik6CitkZWYgdGVzdF9zb3VyY2Vfb3JpZ2luKHNlc3Np
b24sIGlubGluZSwgaWZyYW1lLCBkb21haW4pOgogICAgICMgQ3JlYXRlIGEgcmVmZXJlbmNlIGVs
ZW1lbnQgd2hpY2ggbG9va3MgZXhhY3RseSBsaWtlIHRoZSBpZnJhbWUKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiezB9ezF9Ii5mb3JtYXQoUkVGRVJFTkNFX1NUWUxFLCBSRUZFUkVOQ0VfQ09O
VEVOVCkpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNo
b3Qvc2NyZWVuc2hvdC5weQppbmRleCA2ZmY2Mzk2ZWRiMmEuLjRkM2JmYjBlNWM2OCAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2Vs
ZW1lbnRfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2NyZWVuc2hv
dC5weQpAQCAtMSw2ICsxLDUgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaW1hZ2UgaW1w
b3J0IHBuZ19kaW1lbnNpb25zCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxp
bmUKIAogZnJvbSAuIGltcG9ydCBlbGVtZW50X2RpbWVuc2lvbnMKIApAQCAtMjAsNyArMTksNyBA
QCBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93
KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVm
IHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorZGVmIHRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMzAsNyArMjksNyBAQCBkZWYgdGVz
dF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0
IHBuZ19kaW1lbnNpb25zKHNjcmVlbnNob3QpID09IGVsZW1lbnRfZGltZW5zaW9ucyhzZXNzaW9u
LCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3Rfc3RhbGUo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNl
c3Npb24ucmVmcmVzaCgpCkBAIC0zOSw3ICszOCw3IEBAIGRlZiB0ZXN0X3N0YWxlKHNlc3Npb24p
OgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAK
IAotZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24pOgorZGVmIHRlc3RfZm9y
bWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9z
Y3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQppbmRleCA1ZDFiNDk3ZmYyYzQuLjM5ZmVmZTkzMjVh
OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hv
dC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3BuZywgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5p
bmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiB0YWtlX2VsZW1lbnRfc2NyZWVuc2hvdChzZXNz
aW9uLCBlbGVtZW50X2lkKToKQEAgLTE3LDcgKzE2LDcgQEAgZGVmIHRha2VfZWxlbWVudF9zY3Jl
ZW5zaG90KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0zNSw3ICszNCw3IEBAIGRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBp
bmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
ZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQvPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1G
YWxzZSkKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUK
LWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lmcmFtZS5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3Jl
ZW5zaG90L2lmcmFtZS5weQppbmRleCA2MDFjMDM5ZDU2ZGUuLjgxODgxYzFkYWU3MyAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3Nj
cmVlbnNob3QvaWZyYW1lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L2lmcmFtZS5weQpAQCAtMiw5ICsyLDggQEAgaW1w
b3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1
Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBvcnQgcG5nX2RpbWVuc2lvbnMKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAKLWZyb20gLiBp
bXBvcnQgZWxlbWVudF9kaW1lbnNpb25zLCB2aWV3cG9ydF9kaW1lbnNpb25zCitmcm9tIC4gaW1w
b3J0IHZpZXdwb3J0X2RpbWVuc2lvbnMKIAogREVGQVVMVF9DT05URU5UID0gIjxkaXYgaWQ9J2Nv
bnRlbnQnPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvZGl2PiIKIApAQCAtNjMsNyArNjIs
NyBAQCBkZWYgdGFrZV9zY3JlZW5zaG90KHNlc3Npb24pOgogICAgICAgICAiR0VUIiwgInNlc3Np
b24ve3Nlc3Npb25faWR9L3NjcmVlbnNob3QiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAK
LWRlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uKToK
K2RlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBp
bmxpbmUsIGlmcmFtZSk6CiAgICAgaWZyYW1lX2NvbnRlbnQgPSAiezB9ezF9Ii5mb3JtYXQoSU5O
RVJfSUZSQU1FX1NUWUxFLCBERUZBVUxUX0NPTlRFTlQpCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiezB9ezF9IiIiLmZvcm1hdChPVVRFUl9JRlJBTUVfU1RZTEUsIGlmcmFtZShpZnJhbWVf
Y29udGVudCkpKQogCkBAIC04Miw3ICs4MSw3IEBAIGRlZiB0ZXN0X2Fsd2F5c19jYXB0dXJlc190
b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImRvbWFpbiIsIFsiIiwgImFsdCJdLCBpZHM9WyJzYW1lX29yaWdpbiIsICJjcm9zc19vcmln
aW4iXSkKLWRlZiB0ZXN0X3NvdXJjZV9vcmlnaW4oc2Vzc2lvbiwgZG9tYWluKToKK2RlZiB0ZXN0
X3NvdXJjZV9vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGRvbWFpbik6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoInswfXsxfSIuZm9ybWF0KFJFRkVSRU5DRV9TVFlMRSwgUkVGRVJF
TkNFX0NPTlRFTlQpKQogCiAgICAgcmVzcG9uc2UgPSB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbikK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
dGFrZV9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5CmluZGV4IGQ2
MTMwOTE5MTY3YS4uOWU3MWE2MzNjNzA4IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5Cisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3Jl
ZW5zaG90L3NjcmVlbnNob3QucHkKQEAgLTEsNiArMSw1IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfcG5nLCBhc3NlcnRfc3VjY2Vzcwog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmltYWdlIGltcG9ydCBwbmdfZGltZW5zaW9ucwotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgdmlld3BvcnRf
ZGltZW5zaW9ucwogCkBAIC0xNSw3ICsxNCw3IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19j
b250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Np
b24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0PiIpCiAKICAgICByZXNwb25zZSA9IHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKQpAQCAtMjUs
NyArMjQsNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9m
cmFtZSk6CiAgICAgYXNzZXJ0IHBuZ19kaW1lbnNpb25zKHZhbHVlKSA9PSB2aWV3cG9ydF9kaW1l
bnNpb25zKHNlc3Npb24pCiAKIAotZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Np
b24pOgorZGVmIHRlc3RfZm9ybWF0X2FuZF9kaW1lbnNpb25zKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogCiAgICAgcmVzcG9uc2UgPSB0YWtl
X3NjcmVlbnNob3Qoc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90
L3VzZXJfcHJvbXB0cy5weQppbmRleCBhZDllMzY5NTE0OGQuLjdkNTdmOGYyNzE2YiAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3Nj
cmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3
ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfcG5nLCBhc3Nl
cnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAog
ZGVmIHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIHRha2Vf
c2NyZWVuc2hvdChzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKIApAQCAtMjksNyArMjgsNyBAQCBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4i
KQogCkBAIC00NCw3ICs0Myw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440486</attachid>
            <date>2021-10-07 01:08:20 -0700</date>
            <delta_ts>2021-10-08 07:21:44 -0700</delta_ts>
            <desc>fast-cq-Patch</desc>
            <filename>wd-update-tests.diff</filename>
            <type>text/plain</type>
            <size>807503</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL3N0ZXBzLnB5IGIv
VG9vbHMvQ0lTdXBwb3J0L2J1aWxkLXdlYmtpdC1vcmcvc3RlcHMucHkKaW5kZXggNDEzYzNmMmU2
Mzk3Li4wMDFiOGQ4ZGFlZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJr
aXQtb3JnL3N0ZXBzLnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9idWlsZC13ZWJraXQtb3JnL3N0
ZXBzLnB5CkBAIC05NTcsNyArOTU3LDcgQEAgY2xhc3MgUnVuV2ViRHJpdmVyVGVzdHMoc2hlbGwu
VGVzdCk6CiAgICAgZGVzY3JpcHRpb24gPSBbIndlYmRyaXZlci10ZXN0cyBydW5uaW5nIl0KICAg
ICBkZXNjcmlwdGlvbkRvbmUgPSBbIndlYmRyaXZlci10ZXN0cyJdCiAgICAganNvbkZpbGVOYW1l
ID0gIndlYmRyaXZlcl90ZXN0cy5qc29uIgotICAgIGNvbW1hbmQgPSBbInB5dGhvbiIsICJUb29s
cy9TY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHMiLCAiLS1qc29uLW91dHB1dD17MH0iLmZvcm1h
dChqc29uRmlsZU5hbWUpLCBXaXRoUHJvcGVydGllcygiLS0lKGNvbmZpZ3VyYXRpb24pcyIpXQor
ICAgIGNvbW1hbmQgPSBbInB5dGhvbjMiLCAiVG9vbHMvU2NyaXB0cy9ydW4td2ViZHJpdmVyLXRl
c3RzIiwgIi0tanNvbi1vdXRwdXQ9ezB9Ii5mb3JtYXQoanNvbkZpbGVOYW1lKSwgV2l0aFByb3Bl
cnRpZXMoIi0tJShjb25maWd1cmF0aW9uKXMiKV0KICAgICBsb2dmaWxlcyA9IHsianNvbiI6IGpz
b25GaWxlTmFtZX0KIAogICAgIGRlZiBzdGFydChzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZjUwYjA2NzY4MmUuLmYyZTYyYjVkNDVh
YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDIxLTEwLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViRHJpdmVyXSBVcGRhdGUgdzNjIGFuZCBzZWxlbml1
bSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMwNTUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzYyMDUxOD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENJU3VwcG9ydC9idWlsZC13ZWJr
aXQtb3JnL3N0ZXBzLnB5OgorICAgICAgICAoUnVuV2ViRHJpdmVyVGVzdHMpOiBSdW4gcnVuLXdl
YmRyaXZlci10ZXN0cyB3aXRoIHB5dGhvbjMuCisgICAgICAgICogU2NyaXB0cy9ydW4td2ViZHJp
dmVyLXRlc3RzOiBSdW4gd2l0aCBweXRob24zLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
X19pbml0X18ucHk6IFVzZSBhIG5ld2VyIHZlcnNpb24gb2YgcHl0ZXN0IGFuZCBpdHMgZGVwZW5k
ZW5jaWVzIHRvIG1hdGNoIHdoYXQgdGVzdHMgZXhwZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHk6CisgICAgICAgIChjb2xsZWN0
KTogVXNlIGNvbnRleHRsaWIgdG8gcmVkaXJlY3Qgc3Rkb3V0IHRvIC9kZXYvbnVsbCB3aGlsZSBj
b2xsZWN0aW5nIHRlc3RzLgorICAgICAgICAocnVuKTogVXNlIEV4aXRDb2RlIG5ldyBlbnVtIGFk
ZGVkIHRvIHB5dGVzdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0
cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHk6CisgICAgICAgIChXZWJEcml2ZXJTZWxl
bml1bUV4ZWN1dG9yLl9faW5pdF9fKTogRG8gbm90IGVuY29kZSBwYXRocy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2Vs
ZW5pdW0ucHk6CisgICAgICAgIChXZWJEcml2ZXJUZXN0UnVubmVyU2VsZW5pdW0uY29sbGVjdF90
ZXN0cyk6IFVzZSBpdGVtcygpIGluc3RlYWQgb2YgaXRlcml0ZW1zKCkgdGhhdCBkb2Vzbid0IGV4
aXN0IGluIHB5dGhvbjMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVz
dHMvd2ViZHJpdmVyX3czY19leGVjdXRvci5weToKKyAgICAgICAgKFdlYktpdERyaXZlclNlcnZl
ci5fX2luaXRfXyk6CisgICAgICAgIChXZWJEcml2ZXJXM0NFeGVjdXRvci5fX2luaXRfXyk6Cisg
ICAgICAgIChXZWJEcml2ZXJXM0NFeGVjdXRvci5zZXR1cCk6CisgICAgICAgIChXZWJEcml2ZXJX
M0NFeGVjdXRvci5fcnVubmVyKToKKwogMjAyMS0xMC0wNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJv
bm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBQeXRob24gMzogcnVuLWluc3BlY3Rvci1n
ZW5lcmF0b3ItdGVzdHMgYW5kIGdlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5w
eQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4td2ViZHJpdmVyLXRlc3RzIGIvVG9vbHMv
U2NyaXB0cy9ydW4td2ViZHJpdmVyLXRlc3RzCmluZGV4IGY0OTE3NDk2M2Y4ZS4uZTI0Njg0MzQ1
M2ZhIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi13ZWJkcml2ZXItdGVzdHMKKysrIGIv
VG9vbHMvU2NyaXB0cy9ydW4td2ViZHJpdmVyLXRlc3RzCkBAIC0xLDQgKzEsNCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCisjIS91c3IvYmluL2VudiBweXRob24zCiAKICMgQ29weXJpZ2h0IChD
KSAyMDE3IElnYWxpYSBTLkwuCiAjCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weQppbmRleCBl
YjY4MGU1YTQ4OWMuLjQ3YTc4YjBhNDgxYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5
CkBAIC0zNSw2ICszNSwxMCBAQCBBdXRvSW5zdGFsbC5zZXRfZGlyZWN0b3J5KG9zLnBhdGguam9p
bihsaWJyYXJpZXMsICdhdXRvaW5zdGFsbGVkJywgJ3B5dGhvbi17fScuZgogCiBpZiBzeXMudmVy
c2lvbl9pbmZvID49ICgzLCA1KToKICAgICBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdw
eWxpbnQnLCBWZXJzaW9uKDIsIDYsIDApKSkKKyAgICBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNr
YWdlKCdweXRlc3RfYXN5bmNpbycsIFZlcnNpb24oMCwgMTQpLCBweXBpX25hbWU9J3B5dGVzdC1h
c3luY2lvJykpCisgICAgQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0X3RpbWVv
dXQnLCBWZXJzaW9uKDEsIDQsIDIpLCBweXBpX25hbWU9J3B5dGVzdC10aW1lb3V0JykpCisgICAg
QXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0JywgVmVyc2lvbig2LCAxLCAyKSwg
aW1wbGljaXRfZGVwcz1bJ3B5dGVzdF9hc3luY2lvJywgJ3B5dGVzdF90aW1lb3V0J10pKQorICAg
IEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3dlYnNvY2tldHMnLCBWZXJzaW9uKDgsIDEp
KSkKIGVsaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMiwgNykgYW5kIHN5cy52ZXJzaW9uX2luZm8g
PCAoMywpOgogICAgIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3B5bGludCcsIFZlcnNp
b24oMCwgMjgsIDApKSkKICAgICBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdsb2dpbGFi
LmNvbW1vbicsIFZlcnNpb24oMCwgNTgsIDEpLCBweXBpX25hbWU9J2xvZ2lsYWItY29tbW9uJywg
YWxpYXNlcz1bJ2xvZ2lsYWInXSkpCkBAIC01MywxNiArNTcsMTQgQEAgQXV0b0luc3RhbGwucmVn
aXN0ZXIoUGFja2FnZSgnZnVuY3NpZ3MnLCBWZXJzaW9uKDEsIDAsIDIpKSkKIEF1dG9JbnN0YWxs
LnJlZ2lzdGVyKFBhY2thZ2UoJ2ltcG9ydGxpYl9tZXRhZGF0YScsIFZlcnNpb24oMSwgNywgMCkp
KQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnZ2Vuc2hpJywgVmVyc2lvbigwLCA3LCAz
KSwgcHlwaV9uYW1lPSdHZW5zaGknKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2h0
bWw1bGliJywgVmVyc2lvbigxLCAxKSkpCitBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdp
bmljb25maWcnLCBWZXJzaW9uKDEsIDEsIDEpKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2th
Z2UoJ21lY2hhbml6ZScsIFZlcnNpb24oMCwgNCwgNSkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIo
UGFja2FnZSgnbW9yZV9pdGVydG9vbHMnLCBWZXJzaW9uKDQsIDIsIDApLCBweXBpX25hbWU9J21v
cmUtaXRlcnRvb2xzJykpCi1BdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb3pwcm9jZXNz
JywgVmVyc2lvbigxLCAyLCAwKSkpCi1BdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb3ps
b2cnLCBWZXJzaW9uKDYsIDEpKSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21venBy
b2Nlc3MnLCBWZXJzaW9uKDEsIDMsIDApKSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2Uo
J21vemxvZycsIFZlcnNpb24oNywgMSwgMCksIHdoZWVsPVRydWUpKQogQXV0b0luc3RhbGwucmVn
aXN0ZXIoUGFja2FnZSgnbW96dGVybScsIFZlcnNpb24oMSwgMCwgMCkpKQotQXV0b0luc3RhbGwu
cmVnaXN0ZXIoUGFja2FnZSgncGx1Z2d5JywgVmVyc2lvbigwLCA1LCAyKSkpCitBdXRvSW5zdGFs
bC5yZWdpc3RlcihQYWNrYWdlKCdwbHVnZ3knLCBWZXJzaW9uKDAsIDEzLCAxKSkpCiBBdXRvSW5z
dGFsbC5yZWdpc3RlcihQYWNrYWdlKCdweScsIFZlcnNpb24oMSwgNSwgMikpKQotQXV0b0luc3Rh
bGwucmVnaXN0ZXIoUGFja2FnZSgncHl0ZXN0X3RpbWVvdXQnLCBWZXJzaW9uKDEsIDQsIDIpLCBw
eXBpX25hbWU9J3B5dGVzdC10aW1lb3V0JykpCi0jIFB5dGVzdCBoZWxkIHRvIDMueCBkdWUgdG8g
V1BUIHdlYmRyaXZlciBjb21wYXRpYmlsaXR5Ci1BdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCdweXRlc3QnLCBWZXJzaW9uKDMsIDYsIDIpLCBpbXBsaWNpdF9kZXBzPVsncHl0ZXN0X3RpbWVv
dXQnXSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdweWNvZGVzdHlsZScsIFZlcnNp
b24oMiwgNSwgMCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnc2NhbmRpcicsIFZl
cnNpb24oMSwgMTAsIDApKSkKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3NvdXBzaWV2
ZScsIFZlcnNpb24oMSwgOSwgNikpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93ZWJkcml2ZXJfdGVzdHMvcHl0ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvd2ViZHJpdmVyX3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkKaW5kZXggMGVjNjVmOTRiZmFjLi5m
MWU0MTQ4NTIyYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVy
X3Rlc3RzL3B5dGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJk
cml2ZXJfdGVzdHMvcHl0ZXN0X3J1bm5lci5weQpAQCAtMjAsNiArMjAsNyBAQAogIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUwogIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IGNvbnRleHRsaWIKIGltcG9ydCBlcnJubwog
aW1wb3J0IG9zCiBpbXBvcnQgc2h1dGlsCkBAIC0yOSw3ICszMCw3IEBAIGltcG9ydCB0ZW1wZmls
ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0
ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLndlYmtpdF9maW5kZXIgaW1wb3J0IFdlYktpdEZpbmRl
cgogaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfSU5URVJOQUxF
UlJPUgorZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgRXhpdENvZGUKIAogCiBjbGFzcyBUZW1w
b3JhcnlEaXJlY3Rvcnkob2JqZWN0KToKQEAgLTE2OCwxNiArMTY5LDE0IEBAIGNsYXNzIFRlc3RF
eHBlY3RhdGlvbnNNYXJrZXIob2JqZWN0KToKIAogZGVmIGNvbGxlY3QoZGlyZWN0b3J5LCBhcmdz
LCBpZ25vcmVfcGFyYW09Tm9uZSk6CiAgICAgY29sbGVjdF9yZWNvcmRlciA9IENvbGxlY3RSZWNv
cmRlcihpZ25vcmVfcGFyYW0pCi0gICAgc3Rkb3V0ID0gc3lzLnN0ZG91dAotICAgIHdpdGggb3Bl
bihvcy5kZXZudWxsLCAnd2InKSBhcyBkZXZudWxsOgotICAgICAgICBzeXMuc3Rkb3V0ID0gZGV2
bnVsbAotICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9y
eToKLSAgICAgICAgICAgIGNtZCA9IFsnLS1jb2xsZWN0LW9ubHknLAotICAgICAgICAgICAgICAg
ICAgICctLWJhc2V0ZW1wPSVzJyAlIGNhY2hlX2RpcmVjdG9yeV0KLSAgICAgICAgICAgIGNtZC5l
eHRlbmQoYXJncykKLSAgICAgICAgICAgIGNtZC5hcHBlbmQoZGlyZWN0b3J5KQotICAgICAgICAg
ICAgcHl0ZXN0Lm1haW4oY21kLCBwbHVnaW5zPVtjb2xsZWN0X3JlY29yZGVyXSkKLSAgICBzeXMu
c3Rkb3V0ID0gc3Rkb3V0CisgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZjoKKyAg
ICAgICAgd2l0aCBjb250ZXh0bGliLnJlZGlyZWN0X3N0ZG91dChmKToKKyAgICAgICAgICAgIHdp
dGggVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgY2FjaGVfZGlyZWN0b3J5OgorICAgICAgICAgICAg
ICAgIGNtZCA9IFsnLS1jb2xsZWN0LW9ubHknLAorICAgICAgICAgICAgICAgICAgICAgICAnLS1i
YXNldGVtcCcsIGNhY2hlX2RpcmVjdG9yeV0KKyAgICAgICAgICAgICAgICBjbWQuZXh0ZW5kKGFy
Z3MpCisgICAgICAgICAgICAgICAgY21kLmFwcGVuZChkaXJlY3RvcnkpCisgICAgICAgICAgICAg
ICAgcHl0ZXN0Lm1haW4oY21kLCBwbHVnaW5zPVtjb2xsZWN0X3JlY29yZGVyXSkKICAgICByZXR1
cm4gY29sbGVjdF9yZWNvcmRlci50ZXN0cwogCiAKQEAgLTE5MiwxNiArMTkxLDE2IEBAIGRlZiBy
dW4ocGF0aCwgYXJncywgdGltZW91dCwgZW52LCBleHBlY3RhdGlvbnMsIGlnbm9yZV9wYXJhbT1O
b25lKToKICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9yeToK
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgY21kID0gWyctdnYnLAotICAgICAgICAgICAgICAg
ICAgICctLWNhcHR1cmU9bm8nLAotICAgICAgICAgICAgICAgICAgICctLWJhc2V0ZW1wPSVzJyAl
IGNhY2hlX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJlJywgJ25vJywK
KyAgICAgICAgICAgICAgICAgICAnLS1iYXNldGVtcCcsIGNhY2hlX2RpcmVjdG9yeSwKICAgICAg
ICAgICAgICAgICAgICAnLS1zaG93bG9jYWxzJywKLSAgICAgICAgICAgICAgICAgICAnLS10aW1l
b3V0PSVzJyAlIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgJy0tdGltZW91dCcsIHN0cih0
aW1lb3V0KSwKICAgICAgICAgICAgICAgICAgICAnLXAnLCAnbm86Y2FjaGVwcm92aWRlciddCiAg
ICAgICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCiAgICAgICAgICAgICBjbWQuYXBwZW5kKHBhdGgp
CiAgICAgICAgICAgICByZXN1bHQgPSBweXRlc3QubWFpbihjbWQsIHBsdWdpbnM9W2hhcm5lc3Nf
cmVjb3JkZXIsIHN1YnRlc3RzX3JlY29yZGVyLCBleHBlY3RhdGlvbnNfbWFya2VyXSkKIAotICAg
ICAgICAgICAgaWYgcmVzdWx0ID09IEVYSVRfSU5URVJOQUxFUlJPUjoKKyAgICAgICAgICAgIGlm
IHJlc3VsdCA9PSBFeGl0Q29kZS5JTlRFUk5BTF9FUlJPUjoKICAgICAgICAgICAgICAgICBoYXJu
ZXNzX3JlY29yZGVyLm91dGNvbWUgPSAoJ0VSUk9SJywgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgaGFybmVzc19yZWNvcmRlci5vdXRjb21lID0gKCdF
UlJPUicsIHN0cihlKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJp
dmVyX3Rlc3RzL3dlYmRyaXZlcl9zZWxlbml1bV9leGVjdXRvci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9zZWxlbml1bV9leGVjdXRvci5weQpp
bmRleCBmYmQ3NjI2ZjU1OWUuLjVlNTc0ODNkYTYyNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1dG9yLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9z
ZWxlbml1bV9leGVjdXRvci5weQpAQCAtNDAsOCArNDAsOCBAQCBjbGFzcyBXZWJEcml2ZXJTZWxl
bml1bUV4ZWN1dG9yKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2VudiA9IGVudgogICAgICAgICBz
ZWxmLl9lbnYudXBkYXRlKGRyaXZlci5icm93c2VyX2VudigpKQogCi0gICAgICAgIHNlbGYuX2Fy
Z3MgPSBbJy0tZHJpdmVyPSVzJyAlIHNlbGYuX2RyaXZlcl9uYW1lLCAnLS1kcml2ZXItYmluYXJ5
PSVzJyAlIGRyaXZlci5iaW5hcnlfcGF0aCgpLmVuY29kZSgpXQotICAgICAgICBicm93c2VyX3Bh
dGggPSBkcml2ZXIuYnJvd3Nlcl9wYXRoKCkuZW5jb2RlKCkKKyAgICAgICAgc2VsZi5fYXJncyA9
IFsnLS1kcml2ZXI9JXMnICUgc2VsZi5fZHJpdmVyX25hbWUsICctLWRyaXZlci1iaW5hcnk9JXMn
ICUgZHJpdmVyLmJpbmFyeV9wYXRoKCldCisgICAgICAgIGJyb3dzZXJfcGF0aCA9IGRyaXZlci5i
cm93c2VyX3BhdGgoKQogICAgICAgICBpZiBicm93c2VyX3BhdGg6CiAgICAgICAgICAgICBzZWxm
Ll9hcmdzLmV4dGVuZChbJy0tYnJvd3Nlci1iaW5hcnk9JXMnICUgYnJvd3Nlcl9wYXRoXSkKICAg
ICAgICAgYnJvd3Nlcl9hcmdzID0gZHJpdmVyLmJyb3dzZXJfYXJncygpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5u
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJf
dGVzdF9ydW5uZXIucHkKaW5kZXggNjVjMDRlNWJmMzMwLi5mYmNkMmZkN2M0NjggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0
X3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93
ZWJkcml2ZXJfdGVzdF9ydW5uZXIucHkKQEAgLTE2NSw1ICsxNjUsNSBAQCBjbGFzcyBXZWJEcml2
ZXJUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIGlmIGRpcmVjdG9yeSBhbmQgbm90IG9zLnBh
dGguZXhpc3RzKGRpcmVjdG9yeSk6CiAgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJlY3Rvcnkp
CiAKLSAgICAgICAgd2l0aCBvcGVuKG91dHB1dF9wYXRoLCAnd2InKSBhcyBmcDoKKyAgICAgICAg
d2l0aCBvcGVuKG91dHB1dF9wYXRoLCAndycpIGFzIGZwOgogICAgICAgICAgICAganNvbi5kdW1w
KGpzb25fcmVzdWx0cywgZnApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dl
YmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2Vs
ZW5pdW0ucHkKaW5kZXggYjBiZWVhMGY5MTQyLi4wNjUxMmU0ZmQ3NmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0X3J1bm5l
cl9zZWxlbml1bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0
cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkKQEAgLTUwLDcgKzUwLDcgQEAgY2xh
c3MgV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtKG9iamVjdCk6CiAgICAgICAgICMgQ29sbGVj
dGVkIHRlc3RzIGFyZSByZWxhdGl2ZSB0byB0ZXN0IGRpcmVjdG9yeS4KICAgICAgICAgYmFzZV9k
aXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyLCBvcy5wYXRoLmRpcm5hbWUocmVsYXRp
dmVfdGVzdHNfZGlyKSkKICAgICAgICAgY29sbGVjdGVkX3Rlc3RzID0ge30KLSAgICAgICAgZm9y
IHRlc3QsIHN1YnRlc3RzIGluIGV4ZWN1dG9yLmNvbGxlY3Qob3MucGF0aC5qb2luKHNlbGYuX3Rl
c3RzX2RpciwgcmVsYXRpdmVfdGVzdHNfZGlyKSkuaXRlcml0ZW1zKCk6CisgICAgICAgIGZvciB0
ZXN0LCBzdWJ0ZXN0cyBpbiBleGVjdXRvci5jb2xsZWN0KG9zLnBhdGguam9pbihzZWxmLl90ZXN0
c19kaXIsIHJlbGF0aXZlX3Rlc3RzX2RpcikpLml0ZW1zKCk6CiAgICAgICAgICAgICBjb2xsZWN0
ZWRfdGVzdHNbb3MucGF0aC5qb2luKGJhc2VfZGlyLCB0ZXN0KV0gPSBzdWJ0ZXN0cwogICAgICAg
ICBzZWxlbml1bV90ZXN0cyA9IFtdCiAgICAgICAgIGlmIG5vdCB0ZXN0czoKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2NfZXhl
Y3V0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2
ZXJfdzNjX2V4ZWN1dG9yLnB5CmluZGV4IGNjMmQwNzViYzBhZi4uMTg0M2RlNTUzNzc5IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJf
dzNjX2V4ZWN1dG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rl
c3RzL3dlYmRyaXZlcl93M2NfZXhlY3V0b3IucHkKQEAgLTExNSw4ICsxMTUsOCBAQCBjbGFzcyBX
ZWJLaXREcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWZhdWx0X2Jhc2VfcGF0
aCA9ICcvJwogICAgIHRlc3RfZW52ID0gTm9uZQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5PU5vbmUsIHBvcnQ9Tm9uZSwgYmFzZV9wYXRoPScnLCBhcmdzPU5vbmUpOgot
ICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBv
cnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzLCBlbnY9c2VsZi50ZXN0X2Vu
dikKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Tm9uZSwgcG9ydD1Ob25l
LCBiYXNlX3BhdGg9JycsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgorICAgICAgICBXZWJEcml2ZXJT
ZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFzZV9wYXRo
PWJhc2VfcGF0aCwgZW52PXNlbGYudGVzdF9lbnYsIGFyZ3M9YXJncykKIAogICAgIGRlZiBtYWtl
X2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksICctLXBvcnQ9JXMn
ICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwpAQCAtMTM1LDggKzEzNSw4IEBAIGNsYXNz
IFdlYkRyaXZlclczQ0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKICAgICAgICAgc2VydmVyX2Nv
bmZpZyA9IHsnYnJvd3Nlcl9ob3N0Jzogc2VydmVyLmhvc3QoKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZG9tYWlucyc6IHsnJzogeycnOiBzZXJ2ZXIuaG9zdCgpfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnYWx0Jzp7ICcnOiAnMTI3LjAuMC4xJ319LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICdwb3J0cyc6IHsnaHR0cCc6IFtzdHIoc2VydmVyLmh0dHBf
cG9ydCgpKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwcyc6IFtz
dHIoc2VydmVyLmh0dHBzX3BvcnQoKSldfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAncG9y
dHMnOiB7J2h0dHAnOiBbc2VydmVyLmh0dHBfcG9ydCgpXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2h0dHBzJzogW3NlcnZlci5odHRwc19wb3J0KCldfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAnZG9jX3Jvb3QnOiBzZXJ2ZXIuZG9jdW1lbnRfcm9vdCgpfQogICAg
ICAgICBzZWxmLnJ1bm5lciA9IFRlc3RSdW5uZXIoKQogICAgICAgICBXZHNwZWNFeGVjdXRvci5f
X2luaXRfXyhzZWxmLCBzZWxmLnJ1bm5lci5sb2dnZXIsIGRyaXZlci5icm93c2VyX25hbWUoKSwg
c2VydmVyX2NvbmZpZywgZHJpdmVyLmJpbmFyeV9wYXRoKCksIE5vbmUsIGNhcGFiaWxpdGllcz1k
cml2ZXIuY2FwYWJpbGl0aWVzKCkpCkBAIC0xNDcsMTMgKzE0NywxMyBAQCBjbGFzcyBXZWJEcml2
ZXJXM0NFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6CiAgICAgICAgIHNlbGYuX3Jlc3VsdF9xdWV1
ZSA9IFF1ZXVlKCkKIAogICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc2VsZi5wcm90b2Nv
bC5zZXR1cChzZWxmLnJ1bm5lcikKKyAgICAgICAgc3VwZXIoV2ViRHJpdmVyVzNDRXhlY3V0b3Is
IHNlbGYpLnNldHVwKHNlbGYucnVubmVyKQogICAgICAgICBhcmdzID0gKHNlbGYuX3Rlc3RfcXVl
dWUsCiAgICAgICAgICAgICAgICAgc2VsZi5fcmVzdWx0X3F1ZXVlLAogICAgICAgICAgICAgICAg
IHNlbGYucHJvdG9jb2wuc2Vzc2lvbl9jb25maWdbJ2hvc3QnXSwKICAgICAgICAgICAgICAgICBz
dHIoc2VsZi5wcm90b2NvbC5zZXNzaW9uX2NvbmZpZ1sncG9ydCddKSwKICAgICAgICAgICAgICAg
ICBqc29uLmR1bXBzKHNlbGYucHJvdG9jb2wuc2Vzc2lvbl9jb25maWdbJ2NhcGFiaWxpdGllcydd
KSwKLSAgICAgICAgICAgICAgICBqc29uLmR1bXBzKHNlbGYuc2VydmVyX2NvbmZpZyksCisgICAg
ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgIHNlbGYuX3Rp
bWVvdXQsCiAgICAgICAgICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zKQogICAgICAgICBzZWxm
Ll9wcm9jZXNzID0gUHJvY2Vzcyh0YXJnZXQ9V2ViRHJpdmVyVzNDRXhlY3V0b3IuX3J1bm5lciwg
YXJncz1hcmdzKQpAQCAtMTc0LDEzICsxNzQsMTggQEAgY2xhc3MgV2ViRHJpdmVyVzNDRXhlY3V0
b3IoV2RzcGVjRXhlY3V0b3IpOgogICAgICAgICAgICAgaWYgdGVzdCA9PSAnVEVBUkRPV04nOgog
ICAgICAgICAgICAgICAgIGJyZWFrCiAKLSAgICAgICAgICAgIGVudiA9IHsnV0RfSE9TVCc6IGhv
c3QsCi0gICAgICAgICAgICAgICAgICAgJ1dEX1BPUlQnOiBwb3J0LAotICAgICAgICAgICAgICAg
ICAgICdXRF9DQVBBQklMSVRJRVMnOiBjYXBhYmlsaXRpZXMsCi0gICAgICAgICAgICAgICAgICAg
J1dEX1NFUlZFUl9DT05GSUcnOiBzZXJ2ZXJfY29uZmlnfQotICAgICAgICAgICAgZW52LnVwZGF0
ZShXZWJLaXREcml2ZXJTZXJ2ZXIudGVzdF9lbnYpCi0gICAgICAgICAgICBhcmdzID0gWyctLXN0
cmljdCcsICctcCcsICdubzptb3psb2cnXQotICAgICAgICAgICAgcmVzdWx0X3F1ZXVlLnB1dChw
eXRlc3RfcnVubmVyLnJ1bih0ZXN0LCBhcmdzLCB0aW1lb3V0LCBlbnYsIGV4cGVjdGF0aW9ucykp
CisgICAgICAgICAgICB3aXRoIHB5dGVzdF9ydW5uZXIuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMg
Y2FjaGVfZGlyZWN0b3J5OgorICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWdfcGF0aCA9IG9z
LnBhdGguam9pbihjYWNoZV9kaXJlY3RvcnksICd3ZF9zZXJ2ZXJfY29uZmlnLmpzb24nKQorICAg
ICAgICAgICAgICAgIHdpdGggb3BlbihzZXJ2ZXJfY29uZmlnX3BhdGgsICd3JykgYXMgZjoKKyAg
ICAgICAgICAgICAgICAgICAganNvbi5kdW1wKHNlcnZlcl9jb25maWcsIGYpCisKKyAgICAgICAg
ICAgICAgICBlbnYgPSB7J1dEX0hPU1QnOiBob3N0LAorICAgICAgICAgICAgICAgICAgICAgICAn
V0RfUE9SVCc6IHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICdXRF9DQVBBQklMSVRJRVMn
OiBjYXBhYmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICdXRF9TRVJWRVJfQ09ORklH
X0ZJTEUnOiBzZXJ2ZXJfY29uZmlnX3BhdGh9CisgICAgICAgICAgICAgICAgZW52LnVwZGF0ZShX
ZWJLaXREcml2ZXJTZXJ2ZXIudGVzdF9lbnYpCisgICAgICAgICAgICAgICAgYXJncyA9IFsnLS1z
dHJpY3QnLCAnLXAnLCAnbm86bW96bG9nJ10KKyAgICAgICAgICAgICAgICByZXN1bHRfcXVldWUu
cHV0KHB5dGVzdF9ydW5uZXIucnVuKHRlc3QsIGFyZ3MsIHRpbWVvdXQsIGVudiwgZXhwZWN0YXRp
b25zKSkKIAogICAgIGRlZiBydW4oc2VsZiwgdGVzdCk6CiAgICAgICAgIHNlbGYuX3Rlc3RfcXVl
dWUucHV0KHRlc3QpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cgYi9XZWJE
cml2ZXJUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTAyYjkyYmZlZjliLi4zMmYyODQwMDNkNGQgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZworKysgYi9XZWJEcml2ZXJUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0wNyAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYkRyaXZlcl0gVXBkYXRlIHcz
YyBhbmQgc2VsZW5pdW0gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMDU1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM2MjA1MTg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sOgorICAgICAgICAq
IGltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb246CisgICAgICAgICogaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvOgorICAgICAgICAqIGltcG9ydGVkL3czYy9pbXBvcnRlci5qc29uOgorICAgICAg
ICAqIGltcG9ydGVkL3czYy90b29scy86CisgICAgICAgICogaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci86CisKIDIwMjEtMDgtMjIgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dQRV1bV2ViRHJpdmVyXSBCYXNpYyBmdWxsc2NyZWVuIHN1cHBvcnQgZm9yIHRoZSBo
ZWFkbGVzcyBiYWNrZW5kCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRp
b25zLmpzb24gYi9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRpb25zLmpzb24KaW5kZXggNDU2
NjdmOTcyZjAzLi45NDI5YTQyMjBjYjQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMuanNvbgorKysgYi9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRpb25zLmpz
b24KQEAgLTI5MSw2ICsyOTEsMzAgQEAKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVz
dF9ub19icm93c2luZ19jb250ZXh0IjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsi
d3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInRlc3RfY29va2llX3Vuc3VwcG9ydGVkX3Nj
aGVtZVthYm91dF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYifX0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRfc2NoZW1lW2Jsb2Jd
IjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZB
SUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgInRlc3RfY29va2llX3Vuc3VwcG9ydGVkX3NjaGVtZVtkYXRhXSI6IHsKKyAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0
ZXN0X2Nvb2tpZV91bnN1cHBvcnRlZF9zY2hlbWVbZmlsZV0iOiB7CisgICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8yMzA2MTYifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVf
dW5zdXBwb3J0ZWRfc2NoZW1lW2Z0cF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTYi
fX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9jb29raWVfdW5zdXBwb3J0ZWRf
c2NoZW1lW2phdmFzY3JpcHRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxs
IjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgInRlc3RfY29va2llX3Vuc3VwcG9ydGVkX3NjaGVt
ZVt3ZWJzb2NrZXRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJz
dGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE2In19CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgInRlc3RfY29va2llX3Vuc3VwcG9ydGVkX3NjaGVtZVtzZWN1
cmUgd2Vic29ja2V0XSI6IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsi
c3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNiJ9fQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfSwKQEAgLTc0NCw3ICs3NjgsMTAgQEAKICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzE4MDY0NSJ9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0
X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUw
In19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAgICAgICAgICAgICAi
d3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn0s
CisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjog
IndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0IjogewogICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMjEyOTUwIn19CkBAIC03NjMsNyArNzkwLDEwIEBACiAgICAgImltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9jbGljay5weSI6IHsKICAgICAgICAgInN1
YnRlc3RzIjogewogICAgICAgICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7
Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJd
LCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiB7CisgICAgICAgICAgICAgICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dz
aW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTgwMCwx
MyArODMwLDEzIEBACiAgICAgfSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnQvZmluZC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewotICAgICAgICAg
ICAgInRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9h
Pi1saW5rXG50ZXh0XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3Rl
eHRbPGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4tbGlua1xcbnRleHRdIjogewogICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rf
ZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1
cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4tTElOSyBURVhUXSI6IHsKICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxl
bWVudF9wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8L2E+
LWtcbnRdIjogeworICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190
ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xcbnRdIjogewogICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRl
c3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10
cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJTktdIjogewpAQCAt
ODIyLDEzICs4NTIsMTMgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudHMvZmluZC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewotICAg
ICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHRbPGEgaHJlZj0jPmxpbms8YnI+
dGV4dDwvYT4tbGlua1xudGV4dF0iOiB7CisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRz
X2xpbmtfdGV4dFs8YSBocmVmPSM+bGluazxicj50ZXh0PC9hPi1saW5rXFxudGV4dF0iOiB7CiAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAidGVzdF9maW5kX2VsZW1lbnRzX2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJh
bnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4tTElOSyBURVhUXSI6IHsKICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0
X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jPnBhcnRpYWwgbGluazxi
cj50ZXh0PC9hPi1rXG50XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfcGFy
dGlhbF9saW5rX3RleHRbPGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1rXFxudF0i
OiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJ
TCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9IyBz
dHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJ
TktdIjogewpAQCAtODQ0LDEzICs4NzQsMTMgQEAKICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L2ZpbmQucHkiOiB7CiAg
ICAgICAgICJzdWJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudHNfbGlu
a190ZXh0WzxhIGhyZWY9Iz5saW5rPGJyPnRleHQ8L2E+LWxpbmtcbnRleHRdIjogeworICAgICAg
ICAgICAgInRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHRbPGEgaHJlZj0jPmxpbms8YnI+dGV4
dDwvYT4tbGlua1xcbnRleHRdIjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxs
IjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHRb
PGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5saW5rIHRleHQ8L2E+
LUxJTksgVEVYVF0iOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlua190ZXh0
WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xudF0iOiB7CisgICAgICAgICAg
ICAidGVzdF9maW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFs
IGxpbms8YnI+dGV4dDwvYT4ta1xcbnRdIjogewogICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0
In19CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19wYXJ0
aWFsX2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2Un
PnBhcnRpYWwgbGluayB0ZXh0PC9hPi1MSU5LXSI6IHsKQEAgLTg2OSwxMyArODk5LDEzIEBACiAg
ICAgfSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJv
bV9lbGVtZW50L2ZpbmQucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKLSAgICAgICAgICAg
ICJ0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3RleHRbPGEgaHJlZj0jPmxpbms8YnI+dGV4dDwvYT4t
bGlua1xudGV4dF0iOiB7CisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRfbGlua190ZXh0
WzxhIGhyZWY9Iz5saW5rPGJyPnRleHQ8L2E+LWxpbmtcXG50ZXh0XSI6IHsKICAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X2Zp
bmRfZWxlbWVudF9saW5rX3RleHRbPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBw
ZXJjYXNlJz5saW5rIHRleHQ8L2E+LUxJTksgVEVYVF0iOiB7CiAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8xODQ5NjQifX0KICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAidGVzdF9maW5kX2VsZW1l
bnRfcGFydGlhbF9saW5rX3RleHRbPGEgaHJlZj0jPnBhcnRpYWwgbGluazxicj50ZXh0PC9hPi1r
XG50XSI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4
dFs8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8L2E+LWtcXG50XSI6IHsKICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0
X2ZpbmRfZWxlbWVudF9wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJh
bnNmb3JtOiB1cHBlcmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPi1MSU5LXSI6IHsKQEAgLTkz
NSw3ICs5NjUsMTAgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X3NlbmRfa2V5cy9zZW5kX2tleXMucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAg
ICAgICAgICJ0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0IjogewotICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMjEyOTUwIn19CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeworICAgICAgICAg
ICAgICAgICAgICAid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMjEyOTUwIn0sCisgICAgICAgICAgICAgICAgICAgICJndGsiOiB7InN0YXR1cyI6IFsiRkFJ
TCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTIifQorICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAidGVzdF9ub19icm93c2luZ19jb250ZXh0Ijogewog
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsid3BlIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjEyOTUwIn19CkBAIC0xMTUyLDcgKzExODUsMTAgQEAKICAg
ICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvZ2V0
LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3Bf
YnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsi
c3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAg
ICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsKICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzIxMjk1MCJ9fQpAQCAtMTE2Myw3ICsxMTk5LDEwIEBACiAgICAgImltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weSI6IHsKICAgICAgICAgInN1
YnRlc3RzIjogewogICAgICAgICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7
Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJd
LCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiB7CisgICAgICAgICAgICAgICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dz
aW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTExNzQs
NyArMTIxMywxMCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVt
ZW50X3Byb3BlcnR5L2dldC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewogICAgICAgICAg
ICAgInRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8yMTI5NTAifX0KKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAgICAg
ICAgICAgICJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8y
MTI5NTAifSwKKyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVn
IjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KQEAgLTExOTYsNyArMTIzOCwxMCBAQAogICAgICJp
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1lL2dldC5weSI6
IHsKICAgICAgICAgInN1YnRlc3RzIjogewogICAgICAgICAgICAgInRlc3Rfbm9fdG9wX2Jyb3dz
aW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0
YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0KKyAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAgICAgICAgICAgICJ3cGUiOiB7InN0YXR1
cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifSwKKyAgICAgICAgICAg
ICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5
NTAifX0KQEAgLTEyMTgsNyArMTI2MywxMCBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5IjogewogICAgICAgICAic3VidGVzdHMiOiB7
CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4
dCI6IHsKICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJG
QUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTM2OCw3ICsxNDE2LDEw
IEBACiAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJ
TCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMDU5MjMifX0KICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6IHsKLSAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0
Lm9yZy9iLzIxMjk1MCJ9fQorICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsKKyAgICAgICAg
ICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzIxMjk1MCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3RrIjogeyJzdGF0dXMiOiBbIkZB
SUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgInRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dCI6IHsK
ICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIxMjk1MCJ9fQpAQCAtMTM3OSw3ICsxNDMwLDEwIEBACiAg
ICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC9zZWxl
Y3RlZC5weSI6IHsKICAgICAgICAgInN1YnRlc3RzIjogewogICAgICAgICAgICAgInRlc3Rfbm9f
dG9wX2Jyb3dzaW5nX2NvbnRleHQiOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJ3
cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifX0K
KyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAgICAgICAgICAgICJ3cGUi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifSwKKyAg
ICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICJ0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQiOiB7CiAgICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJ3cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8yMTI5NTAifX0KQEAgLTE0NDIsNyArMTQ5NiwxMCBAQAogICAgICJpbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b193aW5kb3cvc3dpdGNoLnB5IjogewogICAgICAgICAi
c3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6
IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7IndwZSI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzIwNTk5NCJ9fQorICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIndwZSI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzIwNTk5NCJ9LAorICAgICAgICAgICAgICAgICAgICAiZ3Rr
IjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjEyIn0KKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9LApAQCAtMTQ5
NSw1ICsxNTUyLDI5IEBACiAgICAgfSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9taW5pbWl6ZV93aW5kb3cvbWluaW1pemUucHkiIDogewogICAgICAgICAiZXhwZWN0ZWQiOiB7
ICJ3cGUiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSB9IH0KKyAgICB9LAorICAgICJpbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L2ZpbmQucHki
OiB7CisgICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJdLCAi
YnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICB9LAorICAgICJpbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L3VzZXJfcHJvbXB0
cy5weSI6IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQ
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L2ZpbmQu
cHkiOiB7CisgICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJd
LCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICB9LAorICAgICJpbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC91c2VyX3By
b21wdHMucHkiOiB7CisgICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsi
U0tJUCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICB9LAorICAgICJpbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L2dldC5weSI6
IHsKKyAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgIH0sCisgICAgImltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Ijog
eworICAgICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0In19CisgICAgfSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNzaW9uL2Nvbm5lY3QucHkiOiB7CisgICAgICAgICJl
eHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8yMzA2MTUifX0KKyAgICB9LAorICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L25ld19zZXNzaW9uL3dlYnNvY2tldF91cmwucHkiOiB7CisgICAgICAgICJleHBlY3RlZCI6IHsg
ImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTUi
fX0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvamF2YXNjcmlwdFBhZ2UuaHRtbAppbmRleCBm
Y2FjMjUyZTg5OWEuLjE2OTBhZDA3ZGQ3OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvamF2YXNjcmlwdFBhZ2UuaHRtbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0
UGFnZS5odG1sCkBAIC04Niw3ICs4Niw3IEBACiAgIDwvZGl2PgogCiA8L2Rpdj4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCisKIDxkaXYgaWQ9ImZvcm1hZ2VkZG9uIj4KICAgICA8
Zm9ybSBhY3Rpb249IiMiPgogICAgICAgICBLZXkgVXA6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
a2V5VXAiIG9ua2V5dXA9ImphdmFzY3JpcHQ6dXBkYXRlQ29udGVudCh0aGlzKSIvPjxici8+CkBA
IC0xNTEsMTUgKzE1MSwxNSBAQAogICAgICAgICAgICAvPgogCiAgICAgPGlucHV0IGlkPSJjaGFu
Z2VhYmxlIiBuYW1lPSJjaGFuZ2VhYmxlIiBvbmZvY3VzPSJhcHBlbmRNZXNzYWdlKCdmb2N1cycp
IiBvbmNoYW5nZT0iYXBwZW5kTWVzc2FnZSgnY2hhbmdlJykiIG9uYmx1cj0iYXBwZW5kTWVzc2Fn
ZSgnYmx1cicpIi8+Ci0gICAgICAgICAgIAotICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0i
cGxhaW5CdXR0b24iIAorCisgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJwbGFpbkJ1dHRv
biIKICAgICAJCW9uZm9jdXM9ImFwcGVuZE1lc3NhZ2UoJ2ZvY3VzJykiCiAgICAgICAgICAgIAlv
bmtleWRvd249ImFwcGVuZE1lc3NhZ2UoJ2tleWRvd24nKSIKICAgICAgICAgICAgCW9ua2V5cHJl
c3M9ImFwcGVuZE1lc3NhZ2UoJ2tleXByZXNzJykiCiAgICAgICAgICAgIAlvbmtleXVwPSJhcHBl
bmRNZXNzYWdlKCdrZXl1cCcpIgogICAgICAgICAgICAJb25ibHVyPSJhcHBlbmRNZXNzYWdlKCdi
bHVyJykiCiAgICAgICAgICAgIAlvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdjbGljaycpIgotICAg
ICAgICAgICAJb25tb3VzZWRvd249ImFwcGVuZE1lc3NhZ2UoJ21vdXNlZG93biAnKSIgCisgICAg
ICAgICAgIAlvbm1vdXNlZG93bj0iYXBwZW5kTWVzc2FnZSgnbW91c2Vkb3duICcpIgogICAgICAg
ICAgICAJb25tb3VzZXVwPSJhcHBlbmRNZXNzYWdlKCdtb3VzZXVwICcpIgogICAgICAgICAgICAg
b25tb3VzZW92ZXI9InJlZ2lzdGVyKCdtb3VzZW92ZXIgJykiCiAgICAgICAgICAgICBvbm1vdXNl
bW92ZT0icmVnaXN0ZXIoJ21vdXNlbW92ZSAnKSIKQEAgLTE3Myw3ICsxNzMsNyBAQAogICAgIDxi
dXR0b24gdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzd2l0Y2hGb2N1cycpOyB2YXIgY2xpY2tFdmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCdNb3VzZUV2ZW50cycpOyBjbGlja0V2ZW50LmluaXRNb3VzZUV2ZW50KCdjbGljaycs
IHRydWUsIHRydWUsIG51bGwsIDAsIDAsIDAsIDAsIDAsZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIDAsIGVsZW1lbnQpO2VsZW1lbnQuZGlzcGF0Y2hFdmVudChjbGlja0V2ZW50KTsiPkRvIG1h
Z2ljPC9idXR0b24+PGJyLz4KICAgICA8bGFiZWwgaWQ9ImxhYmVsRm9yQ2hlY2tib3giIGZvcj0i
bGFiZWxlZENoZWNrYm94IiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdsYWJlbGNsaWNrJykiPlRv
Z2dsZSBjaGVja2JveDwvbGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ibGFiZWxlZENo
ZWNrYm94IiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdjaGJveGNsaWNrJykiLz4KICAgPC9mb3Jt
PgotICAKKwogICA8Zm9ybSBhY3Rpb249ImphdmFzY3JpcHRQYWdlLmh0bWwiIGlkPSJzdWJtaXRM
aXN0ZW5pbmdGb3JtIiBvbnN1Ym1pdD0iYXBwZW5kTWVzc2FnZSgnZm9ybS1vbnN1Ym1pdCAnKTsg
cmV0dXJuIGZhbHNlOyI+CiAgICAgPHA+CiAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdExpc3Rlbmlu
Z0Zvcm0tdGV4dCIgdHlwZT0idGV4dCIgb25zdWJtaXQ9ImFwcGVuZE1lc3NhZ2UoJ3RleHQtb25z
dWJtaXQgJykiIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ3RleHQtb25jbGljayAnKTsiIC8+CkBA
IC0xOTgsNyArMTk4LDcgQEAKICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImhpZGRlbmxpbmsiPm9r
PC9hPgogICAgICAgPC9kaXY+CiAgICAgPC9kaXY+Ci0gICAgCisKICAgICA8ZGl2IHN0eWxlPSJ2
aXNpYmlsaXR5OiBoaWRkZW47Ij4KICAgICAgIDxzcGFuPgogICAgICAgICA8aW5wdXQgaWQ9InVu
Y2xpY2thYmxlIiAvPgpAQCAtMjY1LDcgKzI2NSw3IEBACiAKIDxhIGlkPSJuZXdfd2luZG93IiBv
bm1vdXNldXA9IndpbmRvdy5vcGVuKCdjbG9zZWFibGVfd2luZG93Lmh0bWwnLCAnY2xvc2VfbWUn
KSIgaHJlZj0iIyI+Q2xpY2sgbWUgdG8gb3BlbiBhIG5ldyB3aW5kb3c8L2E+CiAKLTxhIGlkPSJ0
aHJvd2luZy1tb3VzZW92ZXIiIG9ubW91c2VvdmVyPSJ0aHJvdyBuZXcgRXJyb3IoKSIgaHJlZj0i
I3Rocm93aW5nLW1vdXNlb3ZlciI+TW91c2Ugb3ZlciBtZSB3aWxsIHRocm93IGEgSlMgZXJyb3I8
L2E+Cis8YSBpZD0idGhyb3dpbmctbW91c2VvdmVyIiBvbm1vdXNlb3Zlcj0idGhyb3cgbmV3IEVy
cm9yKCdJIGxpa2UgY2hlZXNlJykiIGhyZWY9IiN0aHJvd2luZy1tb3VzZW92ZXIiPk1vdXNlIG92
ZXIgbWUgd2lsbCB0aHJvdyBhIEpTIGVycm9yPC9hPgogCiA8ZGl2IGlkPSJwYXJlbnQiPgogICAg
IDxzcGFuIGlkPSJtb3ZhYmxlIiBvbm1vdXNlb3Zlcj0idmFyIHAgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbW92YWJsZScpOyBkaXNwbGF5TWVzc2FnZSgncGFyZW50IG1hdGNoZXM/ICcgKyAo
cCAhPSBldmVudC5yZWxhdGVkVGFyZ2V0KSk7Ij4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb24gYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9pbXBvcnRlci5qc29uCmluZGV4IGQ5ODVjOGVkYWM3NS4uNWJhMGMzYTVkMzAz
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9pbXBvcnRlci5q
c29uCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb24K
QEAgLTEsNiArMSw2IEBACiB7CiAgICAgInJlcG9zaXRvcnkiOiAiaHR0cHM6Ly9naXRodWIuY29t
L1NlbGVuaXVtSFEvc2VsZW5pdW0uZ2l0IiwKLSAgICAicmV2aXNpb24iOiAiZDRmOWZlMjEzZGQ2
ZTViMTBiODliZTM2MGJlNjM1NzQ3ZWQzZTEzOCIsCisgICAgInJldmlzaW9uIjogImUzZmNmNzkx
MjM5YzBlOWJhNWMwNDY4NjAyNWY1NzhiNTYxZWNkNmYiLAogICAgICJwYXRoc190b19pbXBvcnQi
OiBbCiAgICAgICAgICJjb21tb24iLAogICAgICAgICAicHkvY29uZnRlc3QucHkiLApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvY29uZnRlc3QucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQppbmRleCA2ZDY0
ZjNmZmU3YzAuLmIyMzU4YjdmNjVlOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvY29uZnRlc3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvY29uZnRlc3QucHkKQEAgLTE2LDMxICsxNiwyNSBAQAogIyB1bmRlciB0aGUg
TGljZW5zZS4KIAogaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzb2NrZXQKIGlt
cG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCiBpbXBvcnQgdGltZQogCiBpbXBvcnQgcHl0ZXN0
Ci1mcm9tIF9weXRlc3Quc2tpcHBpbmcgaW1wb3J0IE1hcmtFdmFsdWF0b3IKIAogZnJvbSBzZWxl
bml1bSBpbXBvcnQgd2ViZHJpdmVyCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRGVz
aXJlZENhcGFiaWxpdGllcwogZnJvbSB0ZXN0LnNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ud2Vi
c2VydmVyIGltcG9ydCBTaW1wbGVXZWJTZXJ2ZXIKIGZyb20gdGVzdC5zZWxlbml1bS53ZWJkcml2
ZXIuY29tbW9uLm5ldHdvcmsgaW1wb3J0IGdldF9sYW5faXAKIAotaWYgc3lzLnZlcnNpb25faW5m
b1swXSA9PSAzOgotICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KLWVsc2U6
Ci0gICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVybG9wZW4KK2Zyb20gdXJsbGliLnJlcXVlc3QgaW1w
b3J0IHVybG9wZW4KIAogZHJpdmVycyA9ICgKLSAgICAnQmxhY2tCZXJyeScsCiAgICAgJ0Nocm9t
ZScsCiAgICAgJ0VkZ2UnLAogICAgICdGaXJlZm94JywKICAgICAnSWUnLAotICAgICdNYXJpb25l
dHRlJywKICAgICAnUmVtb3RlJywKICAgICAnU2FmYXJpJywKICAgICAnV2ViS2l0R1RLJywKQEAg
LTgyLDEwICs3NiwyOCBAQCBkZWYgZHJpdmVyKHJlcXVlc3QpOgogICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGlzIHRlc3QgcmVxdWlyZXMgYSAt
LWRyaXZlciB0byBiZSBzcGVjaWZpZWQuJykKIAorICAgICMgc2tpcCB0ZXN0cyBpZiBub3QgYXZh
aWxhYmxlIG9uIHRoZSBwbGF0Zm9ybQorICAgIF9wbGF0Zm9ybSA9IHBsYXRmb3JtLnN5c3RlbSgp
CisgICAgaWYgZHJpdmVyX2NsYXNzID09ICJTYWZhcmkiIGFuZCBfcGxhdGZvcm0gIT0gIkRhcndp
biI6CisgICAgICAgIHB5dGVzdC5za2lwKCJTYWZhcmkgdGVzdHMgY2FuIG9ubHkgcnVuIG9uIGFu
IEFwcGxlIE9TIikKKyAgICBpZiAoZHJpdmVyX2NsYXNzID09ICJJZSIgb3IgZHJpdmVyX2NsYXNz
ID09ICJFZGdlIikgYW5kIF9wbGF0Zm9ybSAhPSAiV2luZG93cyI6CisgICAgICAgIHB5dGVzdC5z
a2lwKCJJRSBhbmQgRWRnZUhUTUwgVGVzdHMgY2FuIG9ubHkgcnVuIG9uIFdpbmRvd3MiKQorICAg
IGlmICJXZWJLaXQiIGluIGRyaXZlcl9jbGFzcyBhbmQgX3BsYXRmb3JtICE9ICJMaW51eCI6Cisg
ICAgICAgIHB5dGVzdC5za2lwKCJXZWJraXQgdGVzdHMgY2FuIG9ubHkgcnVuIG9uIExpbnV4IikK
KwogICAgICMgY29uZGl0aW9uYWxseSBtYXJrIHRlc3RzIGFzIGV4cGVjdGVkIHRvIGZhaWwgYmFz
ZWQgb24gZHJpdmVyCi0gICAgcmVxdWVzdC5ub2RlLl9ldmFseGZhaWwgPSByZXF1ZXN0Lm5vZGUu
X2V2YWx4ZmFpbCBvciBNYXJrRXZhbHVhdG9yKAotICAgICAgICByZXF1ZXN0Lm5vZGUsICd4ZmFp
bF97MH0nLmZvcm1hdChkcml2ZXJfY2xhc3MubG93ZXIoKSkpCi0gICAgaWYgcmVxdWVzdC5ub2Rl
Ll9ldmFseGZhaWwuaXN0cnVlKCk6CisgICAgbWFya2VyID0gcmVxdWVzdC5ub2RlLmdldF9jbG9z
ZXN0X21hcmtlcigneGZhaWxfezB9Jy5mb3JtYXQoZHJpdmVyX2NsYXNzLmxvd2VyKCkpKQorCisg
ICAgaWYgbWFya2VyIGlzIG5vdCBOb25lOgorICAgICAgICBpZiAicnVuIiBpbiBtYXJrZXIua3dh
cmdzOgorICAgICAgICAgICAgaWYgbWFya2VyLmt3YXJnc1sicnVuIl0gaXMgRmFsc2U6CisgICAg
ICAgICAgICAgICAgcHl0ZXN0LnNraXAoKQorICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmICJyYWlzZXMiIGluIG1hcmtlci5rd2FyZ3M6Cisg
ICAgICAgICAgICBtYXJrZXIua3dhcmdzLnBvcCgicmFpc2VzIikKKyAgICAgICAgcHl0ZXN0Lnhm
YWlsKCoqbWFya2VyLmt3YXJncykKKwogICAgICAgICBkZWYgZmluKCk6CiAgICAgICAgICAgICBn
bG9iYWwgZHJpdmVyX2luc3RhbmNlCiAgICAgICAgICAgICBpZiBkcml2ZXJfaW5zdGFuY2UgaXMg
bm90IE5vbmU6CkBAIC05MywyNSArMTA1LDEyIEBAIGRlZiBkcml2ZXIocmVxdWVzdCk6CiAgICAg
ICAgICAgICBkcml2ZXJfaW5zdGFuY2UgPSBOb25lCiAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxp
emVyKGZpbikKIAotICAgICMgc2tpcCBkcml2ZXIgaW5zdGFudGlhdGlvbiBpZiB4ZmFpbChydW49
RmFsc2UpCi0gICAgaWYgbm90IHJlcXVlc3QuY29uZmlnLmdldG9wdGlvbigncnVueGZhaWwnKToK
LSAgICAgICAgaWYgcmVxdWVzdC5ub2RlLl9ldmFseGZhaWwuaXN0cnVlKCk6Ci0gICAgICAgICAg
ICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5nZXQoJ3J1bicpIGlzIEZhbHNlOgotICAgICAg
ICAgICAgICAgIHlpZWxkCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0KICAgICBkcml2ZXJfcGF0
aCA9IHJlcXVlc3QuY29uZmlnLm9wdGlvbi5leGVjdXRhYmxlCiAgICAgb3B0aW9ucyA9IE5vbmUK
IAogICAgIGdsb2JhbCBkcml2ZXJfaW5zdGFuY2UKICAgICBpZiBkcml2ZXJfaW5zdGFuY2UgaXMg
Tm9uZToKLSAgICAgICAgaWYgZHJpdmVyX2NsYXNzID09ICdCbGFja0JlcnJ5JzoKLSAgICAgICAg
ICAgIGt3YXJncy51cGRhdGUoeydkZXZpY2VfcGFzc3dvcmQnOiAncGFzc3dvcmQnfSkKICAgICAg
ICAgaWYgZHJpdmVyX2NsYXNzID09ICdGaXJlZm94JzoKLSAgICAgICAgICAgIGt3YXJncy51cGRh
dGUoeydjYXBhYmlsaXRpZXMnOiB7J21hcmlvbmV0dGUnOiBGYWxzZX19KQotICAgICAgICAgICAg
b3B0aW9ucyA9IGdldF9vcHRpb25zKGRyaXZlcl9jbGFzcywgcmVxdWVzdC5jb25maWcpCi0gICAg
ICAgIGlmIGRyaXZlcl9jbGFzcyA9PSAnTWFyaW9uZXR0ZSc6Ci0gICAgICAgICAgICBkcml2ZXJf
Y2xhc3MgPSAnRmlyZWZveCcKICAgICAgICAgICAgIG9wdGlvbnMgPSBnZXRfb3B0aW9ucyhkcml2
ZXJfY2xhc3MsIHJlcXVlc3QuY29uZmlnKQogICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ1Jl
bW90ZSc6CiAgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLkZJ
UkVGT1guY29weSgpCkBAIC0xMjksNyArMTI4LDggQEAgZGVmIGRyaXZlcihyZXF1ZXN0KToKICAg
ICAgICAgICAgIGt3YXJnc1snb3B0aW9ucyddID0gb3B0aW9ucwogICAgICAgICBkcml2ZXJfaW5z
dGFuY2UgPSBnZXRhdHRyKHdlYmRyaXZlciwgZHJpdmVyX2NsYXNzKSgqKmt3YXJncykKICAgICB5
aWVsZCBkcml2ZXJfaW5zdGFuY2UKLSAgICBpZiBNYXJrRXZhbHVhdG9yKHJlcXVlc3Qubm9kZSwg
J25vX2RyaXZlcl9hZnRlcl90ZXN0JykuaXN0cnVlKCk6CisKKyAgICBpZiByZXF1ZXN0Lm5vZGUu
Z2V0X2Nsb3Nlc3RfbWFya2VyKCJub19kcml2ZXJfYWZ0ZXJfdGVzdCIpOgogICAgICAgICBkcml2
ZXJfaW5zdGFuY2UgPSBOb25lCiAKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weQppbmRleCA0YTA0OWI4NTkxMzIu
LjMyM2NhYWViNzkwYyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkKQEAgLTE2LDQgKzE2LDQgQEAKICMgdW5k
ZXIgdGhlIExpY2Vuc2UuCiAKIAotX192ZXJzaW9uX18gPSAiNC4wLjBhNiIKK19fdmVyc2lvbl9f
ID0gIjQuMC4wYTciCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS9jb21tb24vZXhjZXB0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9leGNlcHRpb25zLnB5CmluZGV4IDRjYjEx
Yzg5ZDU4ZS4uZTgyN2IwN2UxZTNhIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS9jb21tb24vZXhjZXB0aW9ucy5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9jb21tb24vZXhjZXB0aW9ucy5w
eQpAQCAtMTU4LDcgKzE1OCw3IEBAIGNsYXNzIEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uKElu
dmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgogY2xhc3MgRWxlbWVudE5vdEludGVyYWN0YWJs
ZUV4Y2VwdGlvbihJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKToKICAgICAiIiIKICAgICBU
aHJvd24gd2hlbiBhbiBlbGVtZW50IGlzIHByZXNlbnQgaW4gdGhlIERPTSBidXQgaW50ZXJhY3Rp
b25zCi0gICAgd2l0aCB0aGF0IGVsZW1lbnQgd2lsbCBoaXQgYW5vdGhlciBlbGVtZW50IGRvIHRv
IHBhaW50IG9yZGVyCisgICAgd2l0aCB0aGF0IGVsZW1lbnQgd2lsbCBoaXQgYW5vdGhlciBlbGVt
ZW50IGR1ZSB0byBwYWludCBvcmRlcgogICAgICIiIgogICAgIHBhc3MKIApAQCAtMjczLDcgKzI3
Myw3IEBAIGNsYXNzIFNjcmVlbnNob3RFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKIGNs
YXNzIEVsZW1lbnRDbGlja0ludGVyY2VwdGVkRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6
CiAgICAgIiIiCiAgICAgVGhlIEVsZW1lbnQgQ2xpY2sgY29tbWFuZCBjb3VsZCBub3QgYmUgY29t
cGxldGVkIGJlY2F1c2UgdGhlIGVsZW1lbnQgcmVjZWl2aW5nIHRoZSBldmVudHMKLSAgICBpcyBv
YnNjdXJpbmcgdGhlIGVsZW1lbnQgdGhhdCB3YXMgcmVxdWVzdGVkIGNsaWNrZWQuCisgICAgaXMg
b2JzY3VyaW5nIHRoZSBlbGVtZW50IHRoYXQgd2FzIHJlcXVlc3RlZCB0byBiZSBjbGlja2VkLgog
ICAgICIiIgogICAgIHBhc3MKIApAQCAtMjg4LDcgKzI4OCw3IEBAIGNsYXNzIEluc2VjdXJlQ2Vy
dGlmaWNhdGVFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKIAogY2xhc3MgSW52YWxpZENv
b3JkaW5hdGVzRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAgICAgIiIiCi0gICAgVGhl
IGNvb3JkaW5hdGVzIHByb3ZpZGVkIHRvIGFuIGludGVyYWN0aW9ucyBvcGVyYXRpb24gYXJlIGlu
dmFsaWQuCisgICAgVGhlIGNvb3JkaW5hdGVzIHByb3ZpZGVkIHRvIGFuIGludGVyYWN0aW9uJ3Mg
b3BlcmF0aW9uIGFyZSBpbnZhbGlkLgogICAgICIiIgogICAgIHBhc3MKIApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL19f
aW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL19faW5pdF9fLnB5CmluZGV4IDliOTNkY2MyODQ3Yy4uZTc1NzYzNmFjNzViIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvX19pbml0X18ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9fLnB5CkBAIC0xNiwxNCArMTYsMTQgQEAK
ICMgdW5kZXIgdGhlIExpY2Vuc2UuCiAKIGZyb20gLnNhZmFyaS53ZWJkcml2ZXIgaW1wb3J0IFdl
YkRyaXZlciBhcyBTYWZhcmkgICMgbm9xYQotZnJvbSAud2Via2l0Z3RrLndlYmRyaXZlciBpbXBv
cnQgV2ViRHJpdmVyIGFzIFdlYktpdEdUSyAjIG5vcWEKLWZyb20gLndlYmtpdGd0ay5vcHRpb25z
IGltcG9ydCBPcHRpb25zIGFzIFdlYktpdEdUS09wdGlvbnMgIyBub3FhCi1mcm9tIC53cGV3ZWJr
aXQud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgV1BFV2ViS2l0ICMgbm9xYQotZnJvbSAu
d3Bld2Via2l0Lm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMgYXMgV1BFV2ViS2l0T3B0aW9ucyAjIG5v
cWEKK2Zyb20gLndlYmtpdGd0ay53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXZWJLaXRH
VEsgICMgbm9xYQorZnJvbSAud2Via2l0Z3RrLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMgYXMgV2Vi
S2l0R1RLT3B0aW9ucyAgIyBub3FhCitmcm9tIC53cGV3ZWJraXQud2ViZHJpdmVyIGltcG9ydCBX
ZWJEcml2ZXIgYXMgV1BFV2ViS2l0ICAjIG5vcWEKK2Zyb20gLndwZXdlYmtpdC5vcHRpb25zIGlt
cG9ydCBPcHRpb25zIGFzIFdQRVdlYktpdE9wdGlvbnMgICMgbm9xYQogZnJvbSAucmVtb3RlLndl
YmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFJlbW90ZSAgIyBub3FhCiBmcm9tIC5jb21tb24u
ZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMgICMgbm9xYQog
ZnJvbSAuY29tbW9uLmFjdGlvbl9jaGFpbnMgaW1wb3J0IEFjdGlvbkNoYWlucyAgIyBub3FhCiBm
cm9tIC5jb21tb24udG91Y2hfYWN0aW9ucyBpbXBvcnQgVG91Y2hBY3Rpb25zICAjIG5vcWEKIGZy
b20gLmNvbW1vbi5wcm94eSBpbXBvcnQgUHJveHkgICMgbm9xYQogCi1fX3ZlcnNpb25fXyA9ICc0
LjAuMGE2JworX192ZXJzaW9uX18gPSAnNC4wLjBhNycKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3B0aW9u
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vb3B0aW9ucy5weQppbmRleCBiZmYyNTE3MjdiM2UuLjkyMDM0ODEyODlkMiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9vcHRpb25zLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3B0aW9ucy5weQpAQCAtNDks
MTIgKzQ5LDEyIEBAIGNsYXNzIEJhc2VPcHRpb25zKG9iamVjdCk6CiAgICAgICAgICIiIlJldHVy
biBtaW5pbWFsIGNhcGFiaWxpdGllcyBuZWNlc3NhcnkgYXMgYSBkaWN0aW9uYXJ5LiIiIgogCiAK
LQogY2xhc3MgQXJnT3B0aW9ucyhCYXNlT3B0aW9ucyk6CiAKICAgICBkZWYgX19pbml0X18oc2Vs
Zik6CiAgICAgICAgIHN1cGVyKEFyZ09wdGlvbnMsIHNlbGYpLl9faW5pdF9fKCkKICAgICAgICAg
c2VsZi5fYXJndW1lbnRzID0gW10KKyAgICAgICAgc2VsZi5faWdub3JlX2xvY2FsX3Byb3h5ID0g
RmFsc2UKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBhcmd1bWVudHMoc2VsZik6CkBAIC03NSw2
ICs3NSwxMiBAQCBjbGFzcyBBcmdPcHRpb25zKEJhc2VPcHRpb25zKToKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2FyZ3VtZW50IGNhbiBub3QgYmUgbnVsbCcp
CiAKKyAgICBkZWYgaWdub3JlX2xvY2FsX3Byb3h5X2Vudmlyb25tZW50X3ZhcmlhYmxlcyhzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBCeSBjYWxsaW5nIHRoaXMgeW91IHdpbGwgaWdu
b3JlIEhUVFBfUFJPWFkgYW5kIEhUVFBTX1BST1hZIGZyb20gYmVpbmcgcGlja2VkIHVwIGFuZCB1
c2VkLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5faWdub3JlX2xvY2FsX3Byb3h5ID0gVHJ1
ZQorCiAgICAgZGVmIHRvX2NhcGFiaWxpdGllcyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYu
X2NhcHMKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZXJ2aWNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZXJ2aWNlLnB5Cmlu
ZGV4IGQyMGE5MDJmYWM3ZS4uOGMzMmUwZGJlY2MxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2Uu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9zZXJ2aWNlLnB5CkBAIC00Niw2ICs0Niw4IEBAIGNsYXNzIFNlcnZpY2Uo
b2JqZWN0KToKIAogICAgICAgICBzZWxmLnN0YXJ0X2Vycm9yX21lc3NhZ2UgPSBzdGFydF9lcnJv
cl9tZXNzYWdlCiAgICAgICAgIHNlbGYubG9nX2ZpbGUgPSBsb2dfZmlsZQorICAgICAgICAjIERl
ZmF1bHQgdmFsdWUgZm9yIGV2ZXJ5IHB5dGhvbiBzdWJwcm9jZXNzOiBzdWJwcm9jZXNzLlBvcGVu
KC4uLiwgY3JlYXRpb25mbGFncz0wKQorICAgICAgICBzZWxmLmNyZWF0aW9uZmxhZ3MgPSAwCiAg
ICAgICAgIHNlbGYuZW52ID0gZW52IG9yIG9zLmVudmlyb24KIAogICAgIEBwcm9wZXJ0eQpAQCAt
NzMsNyArNzUsOCBAQCBjbGFzcyBTZXJ2aWNlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcz1wbGF0Zm9ybS5zeXN0ZW0oKSAhPSAn
V2luZG93cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
ZG91dD1zZWxmLmxvZ19maWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGRlcnI9c2VsZi5sb2dfZmlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RkaW49UElQRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RkaW49UElQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRpb25mbGFncz1zZWxmLmNyZWF0aW9uZmxhZ3MpCiAgICAg
ICAgIGV4Y2VwdCBUeXBlRXJyb3I6CiAgICAgICAgICAgICByYWlzZQogICAgICAgICBleGNlcHQg
T1NFcnJvciBhcyBlcnI6CkBAIC05OCw5ICsxMDEsMTAgQEAgY2xhc3MgU2VydmljZShvYmplY3Qp
OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRfcHJvY2Vzc19zdGlsbF9ydW5uaW5nKCkKICAgICAg
ICAgICAgIGlmIHNlbGYuaXNfY29ubmVjdGFibGUoKToKICAgICAgICAgICAgICAgICBicmVhawor
CiAgICAgICAgICAgICBjb3VudCArPSAxCi0gICAgICAgICAgICB0aW1lLnNsZWVwKDEpCi0gICAg
ICAgICAgICBpZiBjb3VudCA9PSAzMDoKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMC41KQorICAg
ICAgICAgICAgaWYgY291bnQgPT0gNjA6CiAgICAgICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVy
RXhjZXB0aW9uKCJDYW4gbm90IGNvbm5lY3QgdG8gdGhlIFNlcnZpY2UgJXMiICUgc2VsZi5wYXRo
KQogCiAgICAgZGVmIGFzc2VydF9wcm9jZXNzX3N0aWxsX3J1bm5pbmcoc2VsZik6CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL3V0aWxzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91dGlscy5weQppbmRleCA5NTdmMmZkMjY2OTkuLjFm
NjBlNDQ1NzNhMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91dGlscy5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5
CkBAIC0zNiw3ICszNiw3IEBAIGRlZiBmcmVlX3BvcnQoKToKICAgICBEZXRlcm1pbmVzIGEgZnJl
ZSBwb3J0IHVzaW5nIHNvY2tldHMuCiAgICAgIiIiCiAgICAgZnJlZV9zb2NrZXQgPSBzb2NrZXQu
c29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCi0gICAgZnJlZV9zb2Nr
ZXQuYmluZCgoJzAuMC4wLjAnLCAwKSkKKyAgICBmcmVlX3NvY2tldC5iaW5kKCgnMTI3LjAuMC4x
JywgMCkpCiAgICAgZnJlZV9zb2NrZXQubGlzdGVuKDUpCiAgICAgcG9ydCA9IGZyZWVfc29ja2V0
LmdldHNvY2tuYW1lKClbMV0KICAgICBmcmVlX3NvY2tldC5jbG9zZSgpCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVt
b3RlL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVfY29ubmVjdGlvbi5weQppbmRl
eCA2ZjFjMWI0NzEyMDcuLjI0NDhjMWIwNmI0YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVfY29u
bmVjdGlvbi5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0aW9uLnB5CkBAIC0xNDEsNyArMTQx
LDcgQEAgY2xhc3MgUmVtb3RlQ29ubmVjdGlvbihvYmplY3QpOgogICAgICAgICByZXR1cm4gdXJs
bGliMy5Qb29sTWFuYWdlcigqKnBvb2xfbWFuYWdlcl9pbml0X2FyZ3MpIGlmIHNlbGYuX3Byb3h5
X3VybCBpcyBOb25lIGVsc2UgXAogICAgICAgICAgICAgdXJsbGliMy5Qcm94eU1hbmFnZXIoc2Vs
Zi5fcHJveHlfdXJsLCAqKnBvb2xfbWFuYWdlcl9pbml0X2FyZ3MpCiAKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgcmVtb3RlX3NlcnZlcl9hZGRyLCBrZWVwX2FsaXZlPUZhbHNlLCByZXNvbHZlX2lw
PU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBf
YWxpdmU9RmFsc2UsIHJlc29sdmVfaXA9Tm9uZSwgaWdub3JlX3Byb3h5PUZhbHNlKToKICAgICAg
ICAgaWYgcmVzb2x2ZV9pcCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGltcG9ydCB3YXJuaW5n
cwogICAgICAgICAgICAgd2FybmluZ3Mud2FybigKQEAgLTE0OSw3ICsxNDksNyBAQCBjbGFzcyBS
ZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJu
aW5nKQogICAgICAgICBzZWxmLmtlZXBfYWxpdmUgPSBrZWVwX2FsaXZlCiAgICAgICAgIHNlbGYu
X3VybCA9IHJlbW90ZV9zZXJ2ZXJfYWRkcgotICAgICAgICBzZWxmLl9wcm94eV91cmwgPSBzZWxm
Ll9nZXRfcHJveHlfdXJsKCkKKyAgICAgICAgc2VsZi5fcHJveHlfdXJsID0gc2VsZi5fZ2V0X3By
b3h5X3VybCgpIGlmIG5vdCBpZ25vcmVfcHJveHkgZWxzZSBOb25lCiAgICAgICAgIGlmIGtlZXBf
YWxpdmU6CiAgICAgICAgICAgICBzZWxmLl9jb25uID0gc2VsZi5fZ2V0X2Nvbm5lY3Rpb25fbWFu
YWdlcigpCiAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVu
dC8kaWQvdmFsdWUnKSwKICAgICAgICAgICAgIENvbW1hbmQuU0VORF9LRVlTX1RPX0FDVElWRV9F
TEVNRU5UOgogICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2tl
eXMnKSwKLSAgICAgICAgICAgIENvbW1hbmQuVVBMT0FEX0ZJTEU6ICgnUE9TVCcsICIvc2Vzc2lv
bi8kc2Vzc2lvbklkL2ZpbGUiKSwKKyAgICAgICAgICAgIENvbW1hbmQuVVBMT0FEX0ZJTEU6ICgn
UE9TVCcsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL3NlL2ZpbGUiKSwKICAgICAgICAgICAgIENvbW1h
bmQuR0VUX0VMRU1FTlRfVkFMVUU6CiAgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24v
JHNlc3Npb25JZC9lbGVtZW50LyRpZC92YWx1ZScpLAogICAgICAgICAgICAgQ29tbWFuZC5HRVRf
RUxFTUVOVF9UQUdfTkFNRToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZHJpdmVyLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93
ZWJkcml2ZXIucHkKaW5kZXggNjIyODJkNTI2OTViLi5jNDgzMTAzZDNhNTAgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9y
ZW1vdGUvd2ViZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvd2ViZHJpdmVyLnB5CkBAIC0yMCwxOSArMjAs
MjMgQEAKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRhCiBpbXBvcnQgYmFzZTY0CiBpbXBvcnQgY29w
eQotZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgorZnJvbSBjb250ZXh0bGli
IGltcG9ydCAoY29udGV4dG1hbmFnZXIsIGFzeW5jY29udGV4dG1hbmFnZXIpCitpbXBvcnQgaW1w
b3J0bGliCiBpbXBvcnQgcGtndXRpbAogaW1wb3J0IHdhcm5pbmdzCitpbXBvcnQgc3lzCiAKIGZy
b20gLmNvbW1hbmQgaW1wb3J0IENvbW1hbmQKIGZyb20gLmVycm9yaGFuZGxlciBpbXBvcnQgRXJy
b3JIYW5kbGVyCiBmcm9tIC5maWxlX2RldGVjdG9yIGltcG9ydCBGaWxlRGV0ZWN0b3IsIExvY2Fs
RmlsZURldGVjdG9yCiBmcm9tIC5tb2JpbGUgaW1wb3J0IE1vYmlsZQogZnJvbSAucmVtb3RlX2Nv
bm5lY3Rpb24gaW1wb3J0IFJlbW90ZUNvbm5lY3Rpb24KK2Zyb20gLnNjcmlwdF9rZXkgaW1wb3J0
IFNjcmlwdEtleQogZnJvbSAuc3dpdGNoX3RvIGltcG9ydCBTd2l0Y2hUbwogZnJvbSAud2ViZWxl
bWVudCBpbXBvcnQgV2ViRWxlbWVudAogCiBmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25z
IGltcG9ydCAoSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEphdmFzY3JpcHRFeGNlcHRpb24sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyRXhjZXB0aW9uLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vU3VjaENvb2tpZUV4Y2VwdGlvbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmtub3duTWV0aG9kRXhjZXB0aW9u
KQpAQCAtNDgsNiArNTIsMTQgQEAgdHJ5OgogZXhjZXB0IE5hbWVFcnJvcjoKICAgICBwYXNzCiAK
K2NkcCA9IE5vbmUKKworCitkZWYgaW1wb3J0X2NkcCgpOgorICAgIGdsb2JhbCBjZHAKKyAgICBp
ZiBjZHAgaXMgTm9uZToKKyAgICAgICAgY2RwID0gaW1wb3J0bGliLmltcG9ydF9tb2R1bGUoInNl
bGVuaXVtLndlYmRyaXZlci5jb21tb24uYmlkaS5jZHAiKQorCiAKIF9XM0NfQ0FQQUJJTElUWV9O
QU1FUyA9IGZyb3plbnNldChbCiAgICAgJ2FjY2VwdEluc2VjdXJlQ2VydHMnLApAQCAtNjgsNiAr
ODAsOCBAQCBfT1NTX1czQ19DT05WRVJTSU9OID0gewogICAgICdwbGF0Zm9ybSc6ICdwbGF0Zm9y
bU5hbWUnCiB9CiAKK2RldnRvb2xzID0gTm9uZQorCiAKIGRlZiBfbWFrZV93M2NfY2FwcyhjYXBz
KToKICAgICAiIiJNYWtlcyBhIFczQyBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMgb2JqZWN0LgpA
QCAtMTAyLDcgKzExNiw3IEBAIGRlZiBfbWFrZV93M2NfY2FwcyhjYXBzKToKICAgICByZXR1cm4g
eyJmaXJzdE1hdGNoIjogW3t9XSwgImFsd2F5c01hdGNoIjogYWx3YXlzX21hdGNofQogCiAKLWRl
ZiBnZXRfcmVtb3RlX2Nvbm5lY3Rpb24oY2FwYWJpbGl0aWVzLCBjb21tYW5kX2V4ZWN1dG9yLCBr
ZWVwX2FsaXZlKToKK2RlZiBnZXRfcmVtb3RlX2Nvbm5lY3Rpb24oY2FwYWJpbGl0aWVzLCBjb21t
YW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlLCBpZ25vcmVfbG9jYWxfcHJveHk9RmFsc2UpOgogICAg
IGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnNhZmFyaS5yZW1vdGVfY29ubmVjdGlvbiBpbXBvcnQg
U2FmYXJpUmVtb3RlQ29ubmVjdGlvbgogCiAgICAgY2FuZGlkYXRlcyA9IFtSZW1vdGVDb25uZWN0
aW9uXSArIFtTYWZhcmlSZW1vdGVDb25uZWN0aW9uXQpAQCAtMTExLDcgKzEyNSw3IEBAIGRlZiBn
ZXRfcmVtb3RlX2Nvbm5lY3Rpb24oY2FwYWJpbGl0aWVzLCBjb21tYW5kX2V4ZWN1dG9yLCBrZWVw
X2FsaXZlKToKICAgICAgICAgUmVtb3RlQ29ubmVjdGlvbgogICAgICkKIAotICAgIHJldHVybiBo
YW5kbGVyKGNvbW1hbmRfZXhlY3V0b3IsIGtlZXBfYWxpdmU9a2VlcF9hbGl2ZSkKKyAgICByZXR1
cm4gaGFuZGxlcihjb21tYW5kX2V4ZWN1dG9yLCBrZWVwX2FsaXZlPWtlZXBfYWxpdmUsIGlnbm9y
ZV9wcm94eT1pZ25vcmVfbG9jYWxfcHJveHkpCiAKIAogQGFkZF9tZXRhY2xhc3MoQUJDTWV0YSkK
QEAgLTE2Myw4ICsxNzcsMTAgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogICAg
ICAgICAgLSBvcHRpb25zIC0gaW5zdGFuY2Ugb2YgYSBkcml2ZXIgb3B0aW9ucy5PcHRpb25zIGNs
YXNzCiAgICAgICAgICIiIgogICAgICAgICBjYXBhYmlsaXRpZXMgPSB7fQorICAgICAgICBfaWdu
b3JlX2xvY2FsX3Byb3h5ID0gRmFsc2UKICAgICAgICAgaWYgb3B0aW9ucyBpcyBub3QgTm9uZToK
ICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IG9wdGlvbnMudG9fY2FwYWJpbGl0aWVzKCkKKyAg
ICAgICAgICAgIF9pZ25vcmVfbG9jYWxfcHJveHkgPSBvcHRpb25zLl9pZ25vcmVfbG9jYWxfcHJv
eHkKICAgICAgICAgaWYgZGVzaXJlZF9jYXBhYmlsaXRpZXMgaXMgbm90IE5vbmU6CiAgICAgICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShkZXNpcmVkX2NhcGFiaWxpdGllcywgZGljdCk6CiAgICAg
ICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVyRXhjZXB0aW9uKCJEZXNpcmVkIENhcGFiaWxpdGll
cyBtdXN0IGJlIGEgZGljdGlvbmFyeSIpCkBAIC0xNzIsMTAgKzE4OCwxMyBAQCBjbGFzcyBXZWJE
cml2ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzLnVwZGF0
ZShkZXNpcmVkX2NhcGFiaWxpdGllcykKICAgICAgICAgc2VsZi5jb21tYW5kX2V4ZWN1dG9yID0g
Y29tbWFuZF9leGVjdXRvcgogICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuY29tbWFuZF9leGVj
dXRvciwgKHN0ciwgYnl0ZXMpKToKLSAgICAgICAgICAgIHNlbGYuY29tbWFuZF9leGVjdXRvciA9
IGdldF9yZW1vdGVfY29ubmVjdGlvbihjYXBhYmlsaXRpZXMsIGNvbW1hbmRfZXhlY3V0b3I9Y29t
bWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZlKQorICAgICAgICAgICAgc2VsZi5j
b21tYW5kX2V4ZWN1dG9yID0gZ2V0X3JlbW90ZV9jb25uZWN0aW9uKGNhcGFiaWxpdGllcywgY29t
bWFuZF9leGVjdXRvcj1jb21tYW5kX2V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBfYWxpdmU9a2VlcF9hbGl2ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZ25vcmVfbG9jYWxfcHJveHk9X2lnbm9yZV9sb2NhbF9wcm94eSkKICAgICAgICAgc2VsZi5f
aXNfcmVtb3RlID0gVHJ1ZQogICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBOb25lCi0gICAgICAg
IHNlbGYuY2FwYWJpbGl0aWVzID0ge30KKyAgICAgICAgc2VsZi5jYXBzID0ge30KKyAgICAgICAg
c2VsZi5waW5uZWRfc2NyaXB0cyA9IHt9CiAgICAgICAgIHNlbGYuZXJyb3JfaGFuZGxlciA9IEVy
cm9ySGFuZGxlcigpCiAgICAgICAgIHNlbGYuc3RhcnRfY2xpZW50KCkKICAgICAgICAgc2VsZi5z
dGFydF9zZXNzaW9uKGNhcGFiaWxpdGllcywgYnJvd3Nlcl9wcm9maWxlKQpAQCAtMjM1LDggKzI1
NCw4IEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKIAogICAgICAgICAgICAgICAg
IG5hbWUgPSBkcml2ZXIubmFtZQogICAgICAgICAiIiIKLSAgICAgICAgaWYgJ2Jyb3dzZXJOYW1l
JyBpbiBzZWxmLmNhcGFiaWxpdGllczoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmNhcGFiaWxp
dGllc1snYnJvd3Nlck5hbWUnXQorICAgICAgICBpZiAnYnJvd3Nlck5hbWUnIGluIHNlbGYuY2Fw
czoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNhcHNbJ2Jyb3dzZXJOYW1lJ10KICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdicm93c2VyTmFtZSBub3Qgc3BlY2lm
aWVkIGluIHNlc3Npb24gY2FwYWJpbGl0aWVzJykKIApAQCAtMjc5LDEyICsyOTgsMTIgQEAgY2xh
c3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogICAgICAgICBpZiAnc2Vzc2lvbklkJyBub3Qg
aW4gcmVzcG9uc2U6CiAgICAgICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlWyd2YWx1ZSddCiAg
ICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IHJlc3BvbnNlWydzZXNzaW9uSWQnXQotICAgICAgICBz
ZWxmLmNhcGFiaWxpdGllcyA9IHJlc3BvbnNlLmdldCgndmFsdWUnKQorICAgICAgICBzZWxmLmNh
cHMgPSByZXNwb25zZS5nZXQoJ3ZhbHVlJykKIAogICAgICAgICAjIGlmIGNhcGFiaWxpdGllcyBp
cyBub25lIHdlIGFyZSBwcm9iYWJseSBzcGVha2luZyB0bwogICAgICAgICAjIGEgVzNDIGVuZHBv
aW50Ci0gICAgICAgIGlmIHNlbGYuY2FwYWJpbGl0aWVzIGlzIE5vbmU6Ci0gICAgICAgICAgICBz
ZWxmLmNhcGFiaWxpdGllcyA9IHJlc3BvbnNlLmdldCgnY2FwYWJpbGl0aWVzJykKKyAgICAgICAg
aWYgc2VsZi5jYXBzIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmNhcHMgPSByZXNwb25zZS5n
ZXQoJ2NhcGFiaWxpdGllcycpCiAKICAgICAgICAgIyBEb3VibGUgY2hlY2sgdG8gc2VlIGlmIHdl
IGhhdmUgYSBXM0MgQ29tcGxpYW50IGJyb3dzZXIKICAgICAgICAgc2VsZi53M2MgPSByZXNwb25z
ZS5nZXQoJ3N0YXR1cycpIGlzIE5vbmUKQEAgLTY4OSw2ICs3MDgsMjYgQEAgY2xhc3MgV2ViRHJp
dmVyKEJhc2VXZWJEcml2ZXIpOgogICAgICAgICB3YXJuaW5ncy53YXJuKCJmaW5kX2VsZW1lbnRz
X2J5XyogY29tbWFuZHMgYXJlIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmluZF9lbGVtZW50cygp
IGluc3RlYWQiKQogICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkNTU19T
RUxFQ1RPUiwgdmFsdWU9Y3NzX3NlbGVjdG9yKQogCisgICAgZGVmIHBpbl9zY3JpcHQoc2VsZiwg
c2NyaXB0KToKKyAgICAgICAgIiIiCisKKyAgICAgICAgIiIiCisgICAgICAgIHNjcmlwdF9rZXkg
PSBTY3JpcHRLZXkoKQorICAgICAgICBzZWxmLnBpbm5lZF9zY3JpcHRzW3NjcmlwdF9rZXkuaWRd
ID0gc2NyaXB0CisgICAgICAgIHJldHVybiBzY3JpcHRfa2V5CisKKyAgICBkZWYgdW5waW4oc2Vs
Ziwgc2NyaXB0X2tleSk6CisgICAgICAgICIiIgorCisgICAgICAgICIiIgorICAgICAgICBzZWxm
LnBpbm5lZF9zY3JpcHRzLnBvcChzY3JpcHRfa2V5LmlkKQorCisgICAgZGVmIGdldF9waW5uZWRf
c2NyaXB0cyhzZWxmKToKKyAgICAgICAgIiIiCisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy
biBsaXN0KHNlbGYucGlubmVkX3NjcmlwdHMua2V5cygpKQorCiAgICAgZGVmIGV4ZWN1dGVfc2Ny
aXB0KHNlbGYsIHNjcmlwdCwgKmFyZ3MpOgogICAgICAgICAiIiIKICAgICAgICAgU3luY2hyb25v
dXNseSBFeGVjdXRlcyBKYXZhU2NyaXB0IGluIHRoZSBjdXJyZW50IHdpbmRvdy9mcmFtZS4KQEAg
LTcwMiw2ICs3NDEsMTIgQEAgY2xhc3MgV2ViRHJpdmVyKEJhc2VXZWJEcml2ZXIpOgogCiAgICAg
ICAgICAgICAgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gZG9jdW1lbnQudGl0bGU7
JykKICAgICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2NyaXB0LCBTY3JpcHRLZXkp
OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNjcmlwdCA9IHNlbGYucGlubmVk
X3NjcmlwdHNbc2NyaXB0LmlkXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAg
ICAgICAgICAgIHJhaXNlIEphdmFzY3JpcHRFeGNlcHRpb24oIlBpbm5lZCBzY3JpcHQgY291bGQg
bm90IGJlIGZvdW5kIikKKwogICAgICAgICBjb252ZXJ0ZWRfYXJncyA9IGxpc3QoYXJncykKICAg
ICAgICAgY29tbWFuZCA9IE5vbmUKICAgICAgICAgaWYgc2VsZi53M2M6CkBAIC0xMDY3LDggKzEx
MTIsNyBAQCBjbGFzcyBXZWJEcml2ZXIoQmFzZVdlYkRyaXZlcik6CiAKICAgICBkZWYgZmluZF9l
bGVtZW50KHNlbGYsIGJ5PUJ5LklELCB2YWx1ZT1Ob25lKToKICAgICAgICAgIiIiCi0gICAgICAg
IEZpbmQgYW4gZWxlbWVudCBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFuZCBsb2NhdG9yLiBQcmVmZXIg
dGhlIGZpbmRfZWxlbWVudF9ieV8qIG1ldGhvZHMgd2hlbgotICAgICAgICBwb3NzaWJsZS4KKyAg
ICAgICAgRmluZCBhbiBlbGVtZW50IGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0b3IuCiAK
ICAgICAgICAgOlVzYWdlOgogICAgICAgICAgICAgOjoKQEAgLTEwOTUsOCArMTEzOSw3IEBAIGNs
YXNzIFdlYkRyaXZlcihCYXNlV2ViRHJpdmVyKToKIAogICAgIGRlZiBmaW5kX2VsZW1lbnRzKHNl
bGYsIGJ5PUJ5LklELCB2YWx1ZT1Ob25lKToKICAgICAgICAgIiIiCi0gICAgICAgIEZpbmQgZWxl
bWVudHMgZ2l2ZW4gYSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4gUHJlZmVyIHRoZSBmaW5kX2Vs
ZW1lbnRzX2J5XyogbWV0aG9kcyB3aGVuCi0gICAgICAgIHBvc3NpYmxlLgorICAgICAgICBGaW5k
IGVsZW1lbnRzIGdpdmVuIGEgQnkgc3RyYXRlZ3kgYW5kIGxvY2F0b3IuCiAKICAgICAgICAgOlVz
YWdlOgogICAgICAgICAgICAgOjoKQEAgLTExMDgsNyArMTE1MSw3IEBAIGNsYXNzIFdlYkRyaXZl
cihCYXNlV2ViRHJpdmVyKToKICAgICAgICAgaWYgaXNpbnN0YW5jZShieSwgUmVsYXRpdmVCeSk6
CiAgICAgICAgICAgICBfcGtnID0gJy4nLmpvaW4oX19uYW1lX18uc3BsaXQoJy4nKVs6LTFdKQog
ICAgICAgICAgICAgcmF3X2Z1bmN0aW9uID0gcGtndXRpbC5nZXRfZGF0YShfcGtnLCAnZmluZEVs
ZW1lbnRzLmpzJykuZGVjb2RlKCd1dGY4JykKLSAgICAgICAgICAgIGZpbmRfZWxlbWVudF9qcyA9
ICJyZXR1cm4gKCVzKS5hcHBseShudWxsLCBhcmd1bWVudHMpOyIgJSByYXdfZnVuY3Rpb24KKyAg
ICAgICAgICAgIGZpbmRfZWxlbWVudF9qcyA9ICJyZXR1cm4gKHt9KS5hcHBseShudWxsLCBhcmd1
bWVudHMpOyIuZm9ybWF0KHJhd19mdW5jdGlvbikKICAgICAgICAgICAgIHJldHVybiBzZWxmLmV4
ZWN1dGVfc2NyaXB0KGZpbmRfZWxlbWVudF9qcywgYnkudG9fZGljdCgpKQogCiAgICAgICAgIGlm
IHNlbGYudzNjOgpAQCAtMTEzNSw3ICsxMTc4LDE2IEBAIGNsYXNzIFdlYkRyaXZlcihCYXNlV2Vi
RHJpdmVyKToKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybnMgdGhlIGRyaXZlcnMgY3VycmVu
dCBkZXNpcmVkIGNhcGFiaWxpdGllcyBiZWluZyB1c2VkCiAgICAgICAgICIiIgotICAgICAgICBy
ZXR1cm4gc2VsZi5jYXBhYmlsaXRpZXMKKyAgICAgICAgd2FybmluZ3Mud2FybigiZGVzaXJlZF9j
YXBhYmlsaXRpZXMgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIGNhbGwgY2FwYWJpbGl0aWVzLiIsCisg
ICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCisg
ICAgICAgIHJldHVybiBzZWxmLmNhcHMKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjYXBhYmls
aXRpZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICByZXR1cm5zIHRoZSBkcml2ZXJzIGN1
cnJlbnQgY2FwYWJpbGl0aWVzIGJlaW5nIHVzZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1
cm4gc2VsZi5jYXBzCiAKICAgICBkZWYgZ2V0X3NjcmVlbnNob3RfYXNfZmlsZShzZWxmLCBmaWxl
bmFtZSk6CiAgICAgICAgICIiIgpAQCAtMTQxNywzICsxNDY5LDExMCBAQCBjbGFzcyBXZWJEcml2
ZXIoQmFzZVdlYkRyaXZlcik6CiAgICAgICAgICAgICAgICAgZHJpdmVyLmdldF9sb2coJ3NlcnZl
cicpCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuR0VU
X0xPRywgeyd0eXBlJzogbG9nX3R5cGV9KVsndmFsdWUnXQorCisgICAgQGFzeW5jY29udGV4dG1h
bmFnZXIKKyAgICBhc3luYyBkZWYgYWRkX2pzX2Vycm9yX2xpc3RlbmVyKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgTGlzdGVucyBmb3IgSlMgZXJyb3JzIGFuZCB3aGVuIHRoZSBjb250ZXh0
bWFuYWdlciBleGl0cyBjaGVjayBpZiB0aGVyZSB3ZXJlIEpTIEVycm9ycworCisgICAgICAgIDpV
c2FnZToKKyAgICAgICAgICAgICA6OgorCisgICAgICAgICAgICAgICAgYXN5bmMgd2l0aCBkcml2
ZXIuYWRkX2pzX2Vycm9yX2xpc3RlbmVyKCkgYXMgZXJyb3I6CisgICAgICAgICAgICAgICAgICAg
IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJ0aHJvd2luZy1tb3VzZW92ZXIiKS5jbGljaygp
CisgICAgICAgICAgICAgICAgYXNzZXJ0IGVycm9yIGlzIG5vdCBOb25lCisgICAgICAgICAgICAg
ICAgYXNzZXJ0IGVycm9yLmV4Y2VwdGlvbl9kZXRhaWxzLnN0YWNrX3RyYWNlLmNhbGxfZnJhbWVz
WzBdLmZ1bmN0aW9uX25hbWUgPT0gIm9ubW91c2VvdmVyIgorICAgICAgICAiIiIKKyAgICAgICAg
YXNzZXJ0IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDcpCisgICAgICAgIGdsb2JhbCBjZHAKKyAg
ICAgICAgYXN5bmMgd2l0aCBzZWxmLl9nZXRfYmlkaV9jb25uZWN0aW9uKCk6CisgICAgICAgICAg
ICBnbG9iYWwgZGV2dG9vbHMKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nlc3Npb25f
Y29udGV4dCgncGFnZS5lbmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5leGVjdXRl
KGRldnRvb2xzLnBhZ2UuZW5hYmxlKCkpCisgICAgICAgICAgICBzZXNzaW9uID0gY2RwLmdldF9z
ZXNzaW9uX2NvbnRleHQoJ3J1bnRpbWUuZW5hYmxlJykKKyAgICAgICAgICAgIGF3YWl0IHNlc3Np
b24uZXhlY3V0ZShkZXZ0b29scy5ydW50aW1lLmVuYWJsZSgpKQorICAgICAgICAgICAganNfZXhj
ZXB0aW9uID0gZGV2dG9vbHMucnVudGltZS5FeGNlcHRpb25UaHJvd24oTm9uZSwgTm9uZSkKKyAg
ICAgICAgICAgIGFzeW5jIHdpdGggc2Vzc2lvbi53YWl0X2ZvcihkZXZ0b29scy5ydW50aW1lLkV4
Y2VwdGlvblRocm93bikgYXMgZXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHlpZWxkIGpzX2V4
Y2VwdGlvbgorICAgICAgICAgICAganNfZXhjZXB0aW9uLnRpbWVzdGFtcCA9IGV4Y2VwdGlvbi52
YWx1ZS50aW1lc3RhbXAKKyAgICAgICAgICAgIGpzX2V4Y2VwdGlvbi5leGNlcHRpb25fZGV0YWls
cyA9IGV4Y2VwdGlvbi52YWx1ZS5leGNlcHRpb25fZGV0YWlscworCisgICAgQGFzeW5jY29udGV4
dG1hbmFnZXIKKyAgICBhc3luYyBkZWYgYWRkX2xpc3RlbmVyKHNlbGYsIGV2ZW50X3R5cGUpOgor
ICAgICAgICAnJycKKyAgICAgICAgTGlzdGVucyBmb3IgY2VydGFpbiBldmVudHMgdGhhdCBhcmUg
cGFzc2VkIGluLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBldmVudF90eXBlOiBUaGUg
dHlwZSBvZiBldmVudCB0aGF0IHdlIHdhbnQgdG8gbG9vayBhdC4KKworICAgICAgICAgOlVzYWdl
OgorICAgICAgICAgICAgIDo6CisKKyAgICAgICAgICAgICAgICBhc3luYyB3aXRoIGRyaXZlci5h
ZGRfbGlzdGVuZXIoQ29uc29sZS5sb2cpIGFzIG1lc3NhZ2VzOgorICAgICAgICAgICAgICAgICAg
ICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoImNvbnNvbGUubG9nKCdJIGxpa2UgY2hlZXNlJykiKQor
ICAgICAgICAgICAgICAgIGFzc2VydCBtZXNzYWdlc1sibWVzc2FnZSJdID09ICJJIGxvdmUgY2hl
ZXNlIgorCisgICAgICAgICcnJworICAgICAgICBhc3NlcnQgc3lzLnZlcnNpb25faW5mbyA+PSAo
MywgNykKKyAgICAgICAgZ2xvYmFsIGNkcAorICAgICAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZl
ci5jb21tb24uYmlkaS5jb25zb2xlIGltcG9ydCBDb25zb2xlCisKKyAgICAgICAgYXN5bmMgd2l0
aCBzZWxmLl9nZXRfYmlkaV9jb25uZWN0aW9uKCk6CisgICAgICAgICAgICBnbG9iYWwgZGV2dG9v
bHMKKyAgICAgICAgICAgIHNlc3Npb24gPSBjZHAuZ2V0X3Nlc3Npb25fY29udGV4dCgncGFnZS5l
bmFibGUnKQorICAgICAgICAgICAgYXdhaXQgc2Vzc2lvbi5leGVjdXRlKGRldnRvb2xzLnBhZ2Uu
ZW5hYmxlKCkpCisgICAgICAgICAgICBzZXNzaW9uID0gY2RwLmdldF9zZXNzaW9uX2NvbnRleHQo
J2NvbnNvbGUuZW5hYmxlJykKKyAgICAgICAgICAgIGF3YWl0IHNlc3Npb24uZXhlY3V0ZShkZXZ0
b29scy5jb25zb2xlLmVuYWJsZSgpKQorICAgICAgICAgICAgY29uc29sZSA9IHsKKyAgICAgICAg
ICAgICAgICAibWVzc2FnZSI6IE5vbmUsCisgICAgICAgICAgICAgICAgImxldmVsIjogTm9uZQor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYXN5bmMgd2l0aCBzZXNzaW9uLndhaXRfZm9yKGRl
dnRvb2xzLmNvbnNvbGUuTWVzc2FnZUFkZGVkKSBhcyBtZXNzYWdlczoKKyAgICAgICAgICAgICAg
ICB5aWVsZCBjb25zb2xlCisgICAgICAgICAgICBpZiBldmVudF90eXBlID09IENvbnNvbGUuRVJS
T1I6CisgICAgICAgICAgICAgICAgaWYgbWVzc2FnZXMudmFsdWUubWVzc2FnZS5sZXZlbCA9PSAi
ZXJyb3IiOgorICAgICAgICAgICAgICAgICAgICBjb25zb2xlWyJtZXNzYWdlIl0gPSBtZXNzYWdl
cy52YWx1ZS5tZXNzYWdlLnRleHQKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVsibGV2ZWwi
XSA9IG1lc3NhZ2VzLnZhbHVlLm1lc3NhZ2UubGV2ZWwKKyAgICAgICAgICAgIGVsaWYgZXZlbnRf
dHlwZSA9PSBDb25zb2xlLkFMTDoKKyAgICAgICAgICAgICAgICBjb25zb2xlWyJtZXNzYWdlIl0g
PSBtZXNzYWdlcy52YWx1ZS5tZXNzYWdlLnRleHQKKyAgICAgICAgICAgICAgICBjb25zb2xlWyJs
ZXZlbCJdID0gbWVzc2FnZXMudmFsdWUubWVzc2FnZS5sZXZlbAorCisgICAgQGFzeW5jY29udGV4
dG1hbmFnZXIKKyAgICBhc3luYyBkZWYgX2dldF9iaWRpX2Nvbm5lY3Rpb24oc2VsZik6CisgICAg
ICAgIGdsb2JhbCBjZHAKKyAgICAgICAgaW1wb3J0X2NkcCgpCisgICAgICAgIHdzX3VybCA9IE5v
bmUKKyAgICAgICAgaWYgc2VsZi5jYXBzLmdldCgic2U6b3B0aW9ucyIpOgorICAgICAgICAgICAg
d3NfdXJsID0gc2VsZi5jYXBzLmdldCgic2U6b3B0aW9ucyIpLmdldCgiY2RwIikKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHZlcnNpb24sIHdzX3VybCA9IHNlbGYuX2dldF9jZHBfZGV0YWls
cygpCisKKyAgICAgICAgaWYgd3NfdXJsIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBXZWJE
cml2ZXJFeGNlcHRpb24oIlVuYWJsZSB0byBmaW5kIHVybCB0byBjb25uZWN0IHRvIGZyb20gY2Fw
YWJpbGl0aWVzIikKKworICAgICAgICBjZHAuaW1wb3J0X2RldnRvb2xzKHZlcnNpb24pCisKKyAg
ICAgICAgZ2xvYmFsIGRldnRvb2xzCisgICAgICAgIGRldnRvb2xzID0gaW1wb3J0bGliLmltcG9y
dF9tb2R1bGUoInNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGV2dG9vbHMudnt9Ii5mb3JtYXQo
dmVyc2lvbikpCisgICAgICAgIGFzeW5jIHdpdGggY2RwLm9wZW5fY2RwKHdzX3VybCkgYXMgY29u
bjoKKyAgICAgICAgICAgIHRhcmdldHMgPSBhd2FpdCBjb25uLmV4ZWN1dGUoZGV2dG9vbHMudGFy
Z2V0LmdldF90YXJnZXRzKCkpCisgICAgICAgICAgICB0YXJnZXRfaWQgPSB0YXJnZXRzWzBdLnRh
cmdldF9pZAorICAgICAgICAgICAgYXN5bmMgd2l0aCBjb25uLm9wZW5fc2Vzc2lvbih0YXJnZXRf
aWQpIGFzIHNlc3Npb246CisgICAgICAgICAgICAgICAgeWllbGQgc2Vzc2lvbgorCisgICAgZGVm
IF9nZXRfY2RwX2RldGFpbHMoc2VsZik6CisgICAgICAgIGltcG9ydCBqc29uCisgICAgICAgIGlt
cG9ydCB1cmxsaWIzCisKKyAgICAgICAgaHR0cCA9IHVybGxpYjMuUG9vbE1hbmFnZXIoKQorICAg
ICAgICBkZWJ1Z2dlcl9hZGRyZXNzID0gc2VsZi5jYXBzLmdldCgiezB9OmNocm9tZU9wdGlvbnMi
LmZvcm1hdChzZWxmLnZlbmRvcl9wcmVmaXgpKS5nZXQoImRlYnVnZ2VyQWRkcmVzcyIpCisgICAg
ICAgIHJlcyA9IGh0dHAucmVxdWVzdCgnR0VUJywgImh0dHA6Ly97MH0vanNvbi92ZXJzaW9uIi5m
b3JtYXQoZGVidWdnZXJfYWRkcmVzcykpCisgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKHJlcy5k
YXRhKQorCisgICAgICAgIGJyb3dzZXJfdmVyc2lvbiA9IGRhdGEuZ2V0KCJCcm93c2VyIikKKyAg
ICAgICAgd2Vic29ja2V0X3VybCA9IGRhdGEuZ2V0KCJ3ZWJTb2NrZXREZWJ1Z2dlclVybCIpCisK
KyAgICAgICAgaW1wb3J0IHJlCisgICAgICAgIHZlcnNpb24gPSByZS5zZWFyY2gociIuKi8oXGQr
KVwuIiwgYnJvd3Nlcl92ZXJzaW9uKS5ncm91cCgxKQorCisgICAgICAgIHJldHVybiB2ZXJzaW9u
LCB3ZWJzb2NrZXRfdXJsCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVsZW1lbnQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dl
YmVsZW1lbnQucHkKaW5kZXggNmYzZWJiY2MzYjU0Li4wOTNlNDJhNWJhMTMgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9y
ZW1vdGUvd2ViZWxlbWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVsZW1lbnQucHkKQEAgLTUzNCw5ICs1
MzQsMTQgQEAgY2xhc3MgV2ViRWxlbWVudChCYXNlV2ViRWxlbWVudCk6CiAgICAgICAgICMgdHJh
bnNmZXIgZmlsZSB0byBhbm90aGVyIG1hY2hpbmUgb25seSBpZiByZW1vdGUgZHJpdmVyIGlzIHVz
ZWQKICAgICAgICAgIyB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgZm9yIGphdmEgYmluZGluZwogICAg
ICAgICBpZiBzZWxmLnBhcmVudC5faXNfcmVtb3RlOgotICAgICAgICAgICAgbG9jYWxfZmlsZSA9
IHNlbGYucGFyZW50LmZpbGVfZGV0ZWN0b3IuaXNfbG9jYWxfZmlsZSgqdmFsdWUpCi0gICAgICAg
ICAgICBpZiBsb2NhbF9maWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHZhbHVlID0g
c2VsZi5fdXBsb2FkKGxvY2FsX2ZpbGUpCisgICAgICAgICAgICBsb2NhbF9maWxlcyA9IGxpc3Qo
bWFwKGxhbWJkYSBrZXlzX3RvX3NlbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYucGFyZW50LmZpbGVfZGV0ZWN0b3IuaXNfbG9jYWxfZmlsZShrZXlzX3RvX3NlbmQp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJy5qb2luKHZhbHVlKS5zcGxp
dCgnXG4nKSkpCisgICAgICAgICAgICBpZiBOb25lIG5vdCBpbiBsb2NhbF9maWxlczoKKyAgICAg
ICAgICAgICAgICByZW1vdGVfZmlsZXMgPSBbXQorICAgICAgICAgICAgICAgIGZvciBmaWxlIGlu
IGxvY2FsX2ZpbGVzOgorICAgICAgICAgICAgICAgICAgICByZW1vdGVfZmlsZXMuYXBwZW5kKHNl
bGYuX3VwbG9hZChmaWxlKSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICdcbicuam9pbihyZW1v
dGVfZmlsZXMpCiAKICAgICAgICAgc2VsZi5fZXhlY3V0ZShDb21tYW5kLlNFTkRfS0VZU19UT19F
TEVNRU5ULAogICAgICAgICAgICAgICAgICAgICAgIHsndGV4dCc6ICIiLmpvaW4oa2V5c190b190
eXBpbmcodmFsdWUpKSwKQEAgLTcwNCw4ICs3MDksNyBAQCBjbGFzcyBXZWJFbGVtZW50KEJhc2VX
ZWJFbGVtZW50KToKIAogICAgIGRlZiBmaW5kX2VsZW1lbnQoc2VsZiwgYnk9QnkuSUQsIHZhbHVl
PU5vbmUpOgogICAgICAgICAiIiIKLSAgICAgICAgRmluZCBhbiBlbGVtZW50IGdpdmVuIGEgQnkg
c3RyYXRlZ3kgYW5kIGxvY2F0b3IuIFByZWZlciB0aGUgZmluZF9lbGVtZW50X2J5XyogbWV0aG9k
cyB3aGVuCi0gICAgICAgIHBvc3NpYmxlLgorICAgICAgICBGaW5kIGFuIGVsZW1lbnQgZ2l2ZW4g
YSBCeSBzdHJhdGVneSBhbmQgbG9jYXRvci4KIAogICAgICAgICA6VXNhZ2U6CiAgICAgICAgICAg
ICA6OgpAQCAtNzMyLDggKzczNiw3IEBAIGNsYXNzIFdlYkVsZW1lbnQoQmFzZVdlYkVsZW1lbnQp
OgogCiAgICAgZGVmIGZpbmRfZWxlbWVudHMoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgog
ICAgICAgICAiIiIKLSAgICAgICAgRmluZCBlbGVtZW50cyBnaXZlbiBhIEJ5IHN0cmF0ZWd5IGFu
ZCBsb2NhdG9yLiBQcmVmZXIgdGhlIGZpbmRfZWxlbWVudHNfYnlfKiBtZXRob2RzIHdoZW4KLSAg
ICAgICAgcG9zc2libGUuCisgICAgICAgIEZpbmQgZWxlbWVudHMgZ2l2ZW4gYSBCeSBzdHJhdGVn
eSBhbmQgbG9jYXRvci4KIAogICAgICAgICA6VXNhZ2U6CiAgICAgICAgICAgICA6OgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3NhZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvcmVtb3RlX2Nvbm5lY3Rpb24u
cHkKaW5kZXggMjJjNjIzZTYxMGFmLi5kNjkyNDI4OTk4ZjUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvcmVt
b3RlX2Nvbm5lY3Rpb24ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9yZW1vdGVfY29ubmVjdGlvbi5weQpAQCAtMjMs
OCArMjMsOCBAQCBjbGFzcyBTYWZhcmlSZW1vdGVDb25uZWN0aW9uKFJlbW90ZUNvbm5lY3Rpb24p
OgogCiAgICAgYnJvd3Nlcl9uYW1lID0gRGVzaXJlZENhcGFiaWxpdGllcy5TQUZBUklbJ2Jyb3dz
ZXJOYW1lJ10KIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtl
ZXBfYWxpdmU9VHJ1ZSk6Ci0gICAgICAgIFJlbW90ZUNvbm5lY3Rpb24uX19pbml0X18oc2VsZiwg
cmVtb3RlX3NlcnZlcl9hZGRyLCBrZWVwX2FsaXZlKQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9VHJ1ZSwgaWdub3JlX3Byb3h5PUZhbHNlKToK
KyAgICAgICAgUmVtb3RlQ29ubmVjdGlvbi5fX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2Fk
ZHIsIGtlZXBfYWxpdmUsIGlnbm9yZV9wcm94eT1pZ25vcmVfcHJveHkpCiAKICAgICAgICAgc2Vs
Zi5fY29tbWFuZHNbIkdFVF9QRVJNSVNTSU9OUyJdID0gKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC9hcHBsZS9wZXJtaXNzaW9ucycpCiAgICAgICAgIHNlbGYuX2NvbW1hbmRzWyJTRVRfUEVS
TUlTU0lPTlMiXSA9ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2FwcGxlL3Blcm1pc3Np
b25zJykKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hcGlfZXhhbXBsZV90ZXN0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9hcGlfZXhhbXBsZV90ZXN0cy5weQppbmRleCAzOTc0OTI1NDljMmQuLjJlN2EwNmI0ZWZl
OCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9hcGlfZXhhbXBsZV90ZXN0cy5weQpAQCAtMSwyMCArMSwzIEBACi0jIExpY2Vuc2VkIHRv
IHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQotIyBvciBt
b3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUK
LSMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24K
LSMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMg
ZmlsZQotIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
Ci0jICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2UKLSMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUg
TGljZW5zZSBhdAotIwotIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNF
LTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRv
IGluIHdyaXRpbmcsCi0jIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuCi0jICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBP
UiBDT05ESVRJT05TIE9GIEFOWQotIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAg
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKLSMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBl
cm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwotIyB1bmRlciB0aGUgTGljZW5zZS4KLQogIyBDb3B5
cmlnaHQgMjAwOC0yMDA5IFdlYkRyaXZlciBjb21taXR0ZXJzCiAjIENvcHlyaWdodCAyMDA4LTIw
MDkgR29vZ2xlIEluYy4KICMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdf
dGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xsaW5nX3Rlc3RzLnB5CmluZGV4IGNhMGQw
ODAwYTMyYy4uNGM5MWMyMjdmMGRiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xs
aW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVzdHMucHkKQEAg
LTE3OCwxNCArMTc4LDE0IEBAIGRlZiBnZXRTY3JvbGxUb3AoZHJpdmVyKToKICAgICByZXR1cm4g
ZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AiKQog
CiAKLUBweXRlc3QubWFyay54ZmFpbF9maXJlZm94KAotICAgIHJlYXNvbj0naHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVt
b3RlKAotICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVz
LzQwOCcpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCi1kZWYgdGVzdFNob3VsZEJlQWJsZVRv
Q2xpY2tFbGVtZW50SW5BVGFsbEZyYW1lKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxvYWQo
InNjcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfdGFsbF9mcmFtZS5odG1sIikKLSAgICBkcml2ZXIu
c3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgInRhbGxfZnJhbWUi
KSkKLSAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiY2hlY2tib3gi
KQotICAgIGVsZW1lbnQuY2xpY2soKQotICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkK
KyMgQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3goCisjICAgICByZWFzb249J2h0dHBzOi8vZ2l0
aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lzc3Vlcy80MDgnKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
cmVtb3RlKAorIyAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9p
c3N1ZXMvNDA4JykKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorIyBkZWYgdGVzdFNob3Vs
ZEJlQWJsZVRvQ2xpY2tFbGVtZW50SW5BVGFsbEZyYW1lKGRyaXZlciwgcGFnZXMpOgorIyAgICAg
cGFnZXMubG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF90YWxsX2ZyYW1lLmh0bWwiKQor
IyAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUs
ICJ0YWxsX2ZyYW1lIikpCisjICAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5O
QU1FLCAiY2hlY2tib3giKQorIyAgICAgZWxlbWVudC5jbGljaygpCisjICAgICBhc3NlcnQgZWxl
bWVudC5pc19zZWxlY3RlZCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZHJpdmVyX2VsZW1lbnRf
ZmluZGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3Rz
LnB5CmluZGV4IGQ2ZTc4NDI4MDU3My4uOWI4MDFkYzMwZDdjIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vZHJpdmVyX2VsZW1lbnRfZmluZGluZ190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZHJpdmVy
X2VsZW1lbnRfZmluZGluZ190ZXN0cy5weQpAQCAtMzM1LDE2ICszMzUsMTYgQEAgZGVmIHRlc3Rf
RmluZGluZ19BTGlua19CeV9YcGF0aF9Vc2luZ19Db250YWluc19LZXl3b3JkX1Nob3VsZF9Xb3Jr
KGRyaXZlciwgcGFnZXMKICAgICBhc3NlcnQgImhlbGxvIHdvcmxkIiBpbiBlbGVtZW50LnRleHQK
IAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNl
cHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKHJhaXNlcz1JbnZhbGlkU2Vs
ZWN0b3JFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9SW52YWxp
ZFNlbGVjdG9yRXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9SW52
YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKLUBweXRlc3QubWFyay54ZmFpbF93ZWJraXRndGsocmFp
c2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKLWRlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1Rv
X0ZpbmRfRWxlbWVudF9CeV9YUGF0aF9XaXRoX05hbWVzcGFjZShkcml2ZXIsIHBhZ2VzKToKLSAg
ICBwYWdlcy5sb2FkKCJzdmdQYWdlLmh0bWwiKQotICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LlhQQVRILCAiLy9zdmc6c3ZnLy9zdmc6dGV4dCIpCi0gICAgYXNzZXJ0IGVsZW1l
bnQudGV4dCA9PSAiVGVzdCBDaGFydCIKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShyYWlz
ZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21p
dW1lZGdlKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCisjIEBweXRlc3QubWFyay54
ZmFpbF9maXJlZm94KHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCisjIEBweXRlc3Qu
bWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKKyMgQHB5
dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKKyMg
QHB5dGVzdC5tYXJrLnhmYWlsX3dlYmtpdGd0ayhyYWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0
aW9uKQorIyBkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0VsZW1lbnRfQnlfWFBhdGhf
V2l0aF9OYW1lc3BhY2UoZHJpdmVyLCBwYWdlcyk6CisjICAgICBwYWdlcy5sb2FkKCJzdmdQYWdl
Lmh0bWwiKQorIyAgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIv
L3N2ZzpzdmcvL3N2Zzp0ZXh0IikKKyMgICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gIlRlc3Qg
Q2hhcnQiCiAKIAogZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9FbGVtZW50X0J5X1hQ
YXRoX0luX1htbF9Eb2N1bWVudChkcml2ZXIsIHBhZ2VzKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZnJhbWVfc3dpdGNoaW5nX3Rl
c3RzLnB5CmluZGV4IDhhNzU5YjYwMGI5OC4uMThiMzQ2NTc1ODE2IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vZnJhbWVfc3dpdGNoaW5nX3Rlc3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0
Y2hpbmdfdGVzdHMucHkKQEAgLTM2OCwyMyArMzY4LDIzIEBAIGRlZiB0ZXN0U2hvdWxkQmVBYmxl
VG9Td2l0Y2hUb1RoZVRvcElmVGhlRnJhbWVJc0RlbGV0ZWRGcm9tVW5kZXJVc1dpdGhXZWJlbGVt
ZW50CiAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnByZXNlbmNlX29mX2Vs
ZW1lbnRfbG9jYXRlZCgoQnkuSUQsICJzdWNjZXNzIikpKQogCiAKLUBweXRlc3QubWFyay54ZmFp
bF9jaHJvbWUocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCi1AcHl0ZXN0Lm1hcmsueGZh
aWxfY2hyb21pdW1lZGdlKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQotQHB5dGVzdC5t
YXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29k
cml2ZXIvaXNzdWVzLzYxNCcpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJE
cml2ZXJFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0naHR0cHM6
Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIvaXNzdWVzLzYxNCcpCi1AcHl0ZXN0Lm1h
cmsueGZhaWxfd2Via2l0Z3RrKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQotQHB5dGVz
dC5tYXJrLnhmYWlsX3NhZmFyaQotZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb0RvQW55dGhpbmdU
aGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2VzLmxv
YWQoImZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lLmh0bWwiKQotICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZTEiKSkK
LQotICAgIGtpbGxJZnJhbWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAia2lsbElmcmFt
ZSIpCi0gICAga2lsbElmcmFtZS5jbGljaygpCi0KLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9T
dWNoRnJhbWVFeGNlcHRpb24pOgotICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAi
a2lsbElmcmFtZSIpLmNsaWNrKCkKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShyYWlzZXM9
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRn
ZShyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2Zp
cmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1
ZXMvNjE0JykKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhj
ZXB0aW9uLAorIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0naHR0cHM6Ly9naXRo
dWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIvaXNzdWVzLzYxNCcpCisjIEBweXRlc3QubWFyay54
ZmFpbF93ZWJraXRndGsocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCisjIEBweXRlc3Qu
bWFyay54ZmFpbF9zYWZhcmkKKyMgZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb0RvQW55dGhpbmdU
aGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMu
bG9hZCgiZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRtbCIpCisjICAgICBk
cml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJpZnJhbWUx
IikpCisKKyMgICAgIGtpbGxJZnJhbWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAia2ls
bElmcmFtZSIpCisjICAgICBraWxsSWZyYW1lLmNsaWNrKCkKKworIyAgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKE5vU3VjaEZyYW1lRXhjZXB0aW9uKToKKyMgICAgICAgICBkcml2ZXIuZmluZF9lbGVt
ZW50KEJ5LklELCAia2lsbElmcmFtZSIpLmNsaWNrKCkKIAogCiBkZWYgdGVzdFNob3VsZFJldHVy
bldpbmRvd1RpdGxlSW5BRnJhbWVzZXQoZHJpdmVyLCBwYWdlcyk6CmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZGluZ190ZXN0
cy5weQppbmRleCAxNDExZWU1OWRhMWIuLjliYzdhNWI1MGVjZCAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3BhZ2VfbG9hZGluZ190ZXN0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkaW5nX3Rl
c3RzLnB5CkBAIC0xNSwxMiArMTUsMTIgQEAKICMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogIyB1bmRlciB0aGUgTGljZW5zZS4KIAotaW1w
b3J0IHB5dGVzdAotCi1mcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBXZWJE
cml2ZXJFeGNlcHRpb24KLWZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQg
QnkKLWZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdCBpbXBvcnQgV2ViRHJpdmVy
V2FpdAotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29u
ZGl0aW9ucyBhcyBFQworIyBpbXBvcnQgcHl0ZXN0CisjCisjIGZyb20gc2VsZW5pdW0uY29tbW9u
LmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorIyBmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5CisjIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1
cHBvcnQud2FpdCBpbXBvcnQgV2ViRHJpdmVyV2FpdAorIyBmcm9tIHNlbGVuaXVtLndlYmRyaXZl
ci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCiAKIAogZGVmIHRlc3RT
aG91bGRXYWl0Rm9yRG9jdW1lbnRUb0JlTG9hZGVkKGRyaXZlciwgcGFnZXMpOgpAQCAtNDAsMjUg
KzQwLDI1IEBAIGRlZiB0ZXN0U2hvdWxkV2FpdEZvckRvY3VtZW50VG9CZUxvYWRlZChkcml2ZXIs
IHBhZ2VzKToKICMgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCiAK
IAotZGVmIHRlc3RTaG91bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBhZ2UoZHJp
dmVyLCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQotICAgIGxvY2F0
aW9uID0gZHJpdmVyLmN1cnJlbnRfdXJsCi0gICAgZHJpdmVyLmdldChsb2NhdGlvbiArICIjdGV4
dCIpCi0gICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImlkMSIpCisjIGRl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9HZXRBRnJhZ21lbnRPblRoZUN1cnJlbnRQYWdlKGRyaXZlciwg
cGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorIyAgICAgbG9jYXRp
b24gPSBkcml2ZXIuY3VycmVudF91cmwKKyMgICAgIGRyaXZlci5nZXQobG9jYXRpb24gKyAiI3Rl
eHQiKQorIyAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImlkMSIpCiAK
IAotQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikK
LUBweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKLWRl
ZiB0ZXN0U2hvdWxkUmV0dXJuV2hlbkdldHRpbmdBVXJsVGhhdERvZXNOb3RSZXNvbHZlKGRyaXZl
cik6Ci0gICAgIyAgT2YgY291cnNlLCB3ZSdyZSB1cCB0aGUgY3JlZWsgaWYgdGhpcyBldmVyIGRv
ZXMgZ2V0IHJlZ2lzdGVyZWQKLSAgICBkcml2ZXIuZ2V0KCJodHRwOi8vd3d3LnRoaXN1cmxkb2Vz
bm90ZXhpc3QuY29teC8iKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2Vi
RHJpdmVyRXhjZXB0aW9uKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJE
cml2ZXJFeGNlcHRpb24pCisjIGRlZiB0ZXN0U2hvdWxkUmV0dXJuV2hlbkdldHRpbmdBVXJsVGhh
dERvZXNOb3RSZXNvbHZlKGRyaXZlcik6CisjICAgICAjICBPZiBjb3Vyc2UsIHdlJ3JlIHVwIHRo
ZSBjcmVlayBpZiB0aGlzIGV2ZXIgZG9lcyBnZXQgcmVnaXN0ZXJlZAorIyAgICAgZHJpdmVyLmdl
dCgiaHR0cDovL3d3dy50aGlzdXJsZG9lc25vdGV4aXN0LmNvbXgvIikKIAogCi1AcHl0ZXN0Lm1h
cmsueGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQotQHB5dGVzdC5tYXJr
LnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQotZGVmIHRlc3RTaG91bGRS
ZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0RG9lc05vdENvbm5lY3QoZHJpdmVyKToKLSAgICAjICBI
ZXJlJ3MgaG9waW5nIHRoYXQgdGhlcmUncyBub3RoaW5nIGhlcmUuIFRoZXJlIHNob3VsZG4ndCBi
ZQotICAgIGRyaXZlci5nZXQoImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMSIpCisjIEBweXRlc3QubWFy
ay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCisjIEBweXRlc3QubWFy
ay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKKyMgZGVmIHRlc3RTaG91
bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxUaGF0RG9lc05vdENvbm5lY3QoZHJpdmVyKToKKyMgICAg
ICMgIEhlcmUncyBob3BpbmcgdGhhdCB0aGVyZSdzIG5vdGhpbmcgaGVyZS4gVGhlcmUgc2hvdWxk
bid0IGJlCisjICAgICBkcml2ZXIuZ2V0KCJodHRwOi8vbG9jYWxob3N0OjMwMDEiKQogCiAjIGRl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9Mb2FkQVBhZ2VXaXRoRnJhbWVzZXRzQW5kV2FpdFVudGlsQWxs
RnJhbWVzQXJlTG9hZGVkKCkgewogIyAgICAgZHJpdmVyLmdldChwYWdlcy5mcmFtZXNldFBhZ2Up
CkBAIC04MSw1NSArODEsNTUgQEAgZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGluZ0FVcmxU
aGF0RG9lc05vdENvbm5lY3QoZHJpdmVyKToKICMgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVy
LnRpdGxlLCBhbnlPZihlcXVhbFRvKG9yaWdpbmFsVGl0bGUpLCBlcXVhbFRvKCJXZSBMZWF2ZSBG
cm9tIEhlcmUiKSkpOwogCiAKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKLWRlZiB0ZXN0U2hv
dWxkQmVBYmxlVG9OYXZpZ2F0ZUJhY2tJblRoZUJyb3dzZXJIaXN0b3J5KGRyaXZlciwgcGFnZXMp
OgotICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxf
c2FmYXJpCisjIGRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9OYXZpZ2F0ZUJhY2tJblRoZUJyb3dzZXJI
aXN0b3J5KGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CiAKLSAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaW1hZ2VCdXR0b24i
KS5zdWJtaXQoKQotICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9p
cygiV2UgQXJyaXZlIEhlcmUiKSkKKyMgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQs
IHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCisjICAgICBXZWJEcml2ZXJXYWl0KGRyaXZl
ciwgMykudW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCiAKLSAgICBkcml2ZXIu
YmFjaygpCi0gICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgTGVhdmUgRnJvbSBIZXJlIgor
IyAgICAgZHJpdmVyLmJhY2soKQorIyAgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgTGVh
dmUgRnJvbSBIZXJlIgogCiAKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKLWRlZiB0ZXN0U2hv
dWxkQmVBYmxlVG9OYXZpZ2F0ZUJhY2tJblRoZUJyb3dzZXJIaXN0b3J5SW5QcmVzZW5jZU9mSWZy
YW1lcyhkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisj
IEBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmln
YXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnlJblByZXNlbmNlT2ZJZnJhbWVzKGRyaXZlciwgcGFn
ZXMpOgorIyAgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQogCi0gICAgZHJpdmVyLmZp
bmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT0ic2FtZVdpbmRvdyIpLmNsaWNrKCkKKyMgICAg
IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuTkFNRSwgdmFsdWU9InNhbWVXaW5kb3ciKS5jbGlj
aygpCiAKLSAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJUaGlzIHBhZ2UgaGFzIGlmcmFtZXMi
CisjICAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJUaGlzIHBhZ2UgaGFzIGlmcmFtZXMiCiAK
LSAgICBkcml2ZXIuYmFjaygpCi0gICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiWEhUTUwgVGVz
dCBQYWdlIgorIyAgICAgZHJpdmVyLmJhY2soKQorIyAgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9
PSAiWEhUTUwgVGVzdCBQYWdlIgogCiAKLWRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9OYXZpZ2F0ZUZv
cndhcmRzSW5UaGVCcm93c2VySGlzdG9yeShkcml2ZXIsIHBhZ2VzKToKLSAgICBwYWdlcy5sb2Fk
KCJmb3JtUGFnZS5odG1sIikKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlRm9yd2Fy
ZHNJblRoZUJyb3dzZXJIaXN0b3J5KGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgi
Zm9ybVBhZ2UuaHRtbCIpCiAKLSAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1
ZT0iaW1hZ2VCdXR0b24iKS5zdWJtaXQoKQotICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51
bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZlIEhlcmUiKSkKKyMgICAgIGRyaXZlci5maW5kX2Vs
ZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCisjICAgICBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikp
CiAKLSAgICBkcml2ZXIuYmFjaygpCi0gICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgTGVh
dmUgRnJvbSBIZXJlIgorIyAgICAgZHJpdmVyLmJhY2soKQorIyAgICAgYXNzZXJ0IGRyaXZlci50
aXRsZSA9PSAiV2UgTGVhdmUgRnJvbSBIZXJlIgogCi0gICAgZHJpdmVyLmZvcndhcmQoKQotICAg
IGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIEFycml2ZSBIZXJlIgorIyAgICAgZHJpdmVyLmZv
cndhcmQoKQorIyAgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCiAK
IAotQHB5dGVzdC5tYXJrLnhmYWlsX2llCi1AcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChydW49
RmFsc2UpCi1AcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJ1bj1GYWxzZSkKLUBweXRlc3QubWFy
ay54ZmFpbF9jaHJvbWUocnVuPUZhbHNlKQotQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9taXVtZWRn
ZShydW49RmFsc2UpCi1kZWYgdGVzdFNob3VsZE5vdEhhbmdpZkRvY3VtZW50T3BlbkNhbGxJc05l
dmVyRm9sbG93ZWRCeURvY3VtZW50Q2xvc2VDYWxsKGRyaXZlciwgcGFnZXMpOgotICAgIHBhZ2Vz
LmxvYWQoImRvY3VtZW50X3dyaXRlX2luX29ubG9hZC5odG1sIikKLSAgICBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LlhQQVRILCAiLy9ib2R5IikKKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2llCisjIEBw
eXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJ1bj1GYWxzZSkKKyMgQHB5dGVzdC5tYXJrLnhmYWls
X3JlbW90ZShydW49RmFsc2UpCisjIEBweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocnVuPUZhbHNl
KQorIyBAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21pdW1lZGdlKHJ1bj1GYWxzZSkKKyMgZGVmIHRl
c3RTaG91bGROb3RIYW5naWZEb2N1bWVudE9wZW5DYWxsSXNOZXZlckZvbGxvd2VkQnlEb2N1bWVu
dENsb3NlQ2FsbChkcml2ZXIsIHBhZ2VzKToKKyMgICAgIHBhZ2VzLmxvYWQoImRvY3VtZW50X3dy
aXRlX2luX29ubG9hZC5odG1sIikKKyMgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgs
ICIvL2JvZHkiKQogCiAKLWRlZiB0ZXN0U2hvdWxkQmVBYmxlVG9SZWZyZXNoQVBhZ2UoZHJpdmVy
LCBwYWdlcyk6Ci0gICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorIyBkZWYgdGVzdFNo
b3VsZEJlQWJsZVRvUmVmcmVzaEFQYWdlKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9h
ZCgieGh0bWxUZXN0Lmh0bWwiKQogCi0gICAgZHJpdmVyLnJlZnJlc2goKQorIyAgICAgZHJpdmVy
LnJlZnJlc2goKQogCi0gICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiWEhUTUwgVGVzdCBQYWdl
IgorIyAgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiWEhUTUwgVGVzdCBQYWdlIgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3NjcmlwdF9waW5uaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Njcmlw
dF9waW5uaW5nX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uNWVmOWNlM2E3ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NjcmlwdF9waW5u
aW5nX3Rlc3RzLnB5CkBAIC0wLDAgKzEsNjkgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zy
b20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IEphdmFzY3JpcHRFeGNlcHRpb24K
KworCitkZWYgdGVzdF9zaG91bGRfYWxsb3dfc2NyaXB0X3Bpbm5pbmcoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBkcml2ZXIucGlubmVkX3Nj
cmlwdHMgPSB7fQorICAgIHNjcmlwdF9rZXkgPSBkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuICdp
IGxpa2UgY2hlZXNlJzsiKQorCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KHNj
cmlwdF9rZXkpCisKKyAgICBhc3NlcnQgcmVzdWx0ID09ICdpIGxpa2UgY2hlZXNlJworCisKK2Rl
ZiB0ZXN0X3Nob3VsZF9hbGxvd19waW5uZWRfc2NyaXB0c190b190YWtlX2FyZ3VtZW50cyhkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZl
ci5waW5uZWRfc2NyaXB0cyA9IHt9CisgICAgaGVsbG8gPSBkcml2ZXIucGluX3NjcmlwdCgicmV0
dXJuIGFyZ3VtZW50c1swXSIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQo
aGVsbG8sICJjaGVlc2UiKQorCisgICAgYXNzZXJ0IHJlc3VsdCA9PSAiY2hlZXNlIgorCisKK2Rl
ZiB0ZXN0X3Nob3VsZF9saXN0X2FsbF9waW5uZWRfc2NyaXB0cyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZlci5waW5uZWRfc2NyaXB0
cyA9IHt9CisgICAgZXhwZWN0ZWQgPSBbXQorICAgIGV4cGVjdGVkLmFwcGVuZChkcml2ZXIucGlu
X3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXTsiKS5pZCkKKyAgICBleHBlY3RlZC5hcHBlbmQo
ZHJpdmVyLnBpbl9zY3JpcHQoInJldHVybiAnY2hlZXNlJzsiKS5pZCkKKyAgICBleHBlY3RlZC5h
cHBlbmQoZHJpdmVyLnBpbl9zY3JpcHQoInJldHVybiA0MjsiKS5pZCkKKworICAgIHJlc3VsdCA9
IGRyaXZlci5nZXRfcGlubmVkX3NjcmlwdHMoKQorICAgIGFzc2VydCBleHBlY3RlZCA9PSByZXN1
bHQKKworCitkZWYgdGVzdF9zaG91bGRfYWxsb3dfc2NyaXB0c190b19iZV91bnBpbm5lZChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZl
ci5waW5uZWRfc2NyaXB0cyA9IHt9CisgICAgY2hlZXNlID0gZHJpdmVyLnBpbl9zY3JpcHQoInJl
dHVybiAnY2hlZXNlJzsiKQorICAgIGRyaXZlci51bnBpbihjaGVlc2UpCisgICAgcmVzdWx0cyA9
IGRyaXZlci5nZXRfcGlubmVkX3NjcmlwdHMoKQorICAgIGFzc2VydCBjaGVlc2Ugbm90IGluIHJl
c3VsdHMKKworCitkZWYgdGVzdF9jYWxsaW5nX3VucGlubmVkX3NjcmlwdF9jYXVzZXNfZXJyb3Io
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBj
aGVlc2UgPSBkcml2ZXIucGluX3NjcmlwdCgicmV0dXJuICdicmllJzsiKQorICAgIGRyaXZlci51
bnBpbihjaGVlc2UpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEphdmFzY3JpcHRFeGNlcHRpb24p
OgorICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoY2hlZXNlKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZWxlY3RfY2xhc3NfdGVz
dHMucHkKaW5kZXggNTJiN2Q5Yjk4ZTFjLi4zMTUyNmFkNDJjZDIgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9zZWxlY3RfY2xhc3NfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190
ZXN0cy5weQpAQCAtOTEsMjAgKzkxLDIwIEBAIGRlZiB0ZXN0U2VsZWN0QnlWaXNpYmxlVGV4dFNp
bmdsZShkcml2ZXIsIHBhZ2VzKToKICAgICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rfc2VsZWN0
ZWRfb3B0aW9uLnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVt4XQogCiAKLUBweXRlc3QubWFyay54
ZmFpbF9jaHJvbWUoCi0gICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hy
b21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKLUBweXRlc3QubWFyay54ZmFpbF9jaHJv
bWl1bWVkZ2UoCi0gICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21l
ZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkK
LWRlZiB0ZXN0U2VsZWN0QnlWaXNpYmxlVGV4dFNob3VsZE5vcm1hbGl6ZVNwYWNlcyhkcml2ZXIs
IHBhZ2VzKToKLSAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKLQotICAgIGZvciBzZWxl
Y3QgaW4gW3NpbmdsZVNlbGVjdFZhbHVlc1dpdGhTcGFjZXNdOgotICAgICAgICBzZWwgPSBTZWxl
Y3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpCi0gICAgICAg
IGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3RbJ3ZhbHVlcyddKSk6Ci0gICAgICAgICAgICBwcmlu
dChzZWxlY3RbJ3ZhbHVlcyddW3hdKQotICAgICAgICAgICAgc2VsLnNlbGVjdF9ieV92aXNpYmxl
X3RleHQoc2VsZWN0Wyd2YWx1ZXMnXVt4XSkKLSAgICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rf
c2VsZWN0ZWRfb3B0aW9uLnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVt4XQorIyBAcHl0ZXN0Lm1h
cmsueGZhaWxfY2hyb21lKAorIyAgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3Jn
L3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKKyMgQHB5dGVzdC5tYXJrLnhm
YWlsX2Nocm9taXVtZWRnZSgKKyMgICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9y
Zy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTgyMicpCisjIEBweXRlc3QubWFyay54
ZmFpbF9zYWZhcmkKKyMgZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0U2hvdWxkTm9ybWFsaXpl
U3BhY2VzKGRyaXZlciwgcGFnZXMpOgorIyAgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CisKKyMgICAgIGZvciBzZWxlY3QgaW4gW3NpbmdsZVNlbGVjdFZhbHVlc1dpdGhTcGFjZXNdOgor
IyAgICAgICAgIHNlbCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVj
dFsnbmFtZSddKSkKKyMgICAgICAgICBmb3IgeCBpbiByYW5nZShsZW4oc2VsZWN0Wyd2YWx1ZXMn
XSkpOgorIyAgICAgICAgICAgICBwcmludChzZWxlY3RbJ3ZhbHVlcyddW3hdKQorIyAgICAgICAg
ICAgICBzZWwuc2VsZWN0X2J5X3Zpc2libGVfdGV4dChzZWxlY3RbJ3ZhbHVlcyddW3hdKQorIyAg
ICAgICAgICAgICBhc3NlcnQgc2VsLmZpcnN0X3NlbGVjdGVkX29wdGlvbi50ZXh0ID09IHNlbGVj
dFsndmFsdWVzJ11beF0KIAogCiBAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyZWFzb249J2h0
dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjk0MDMnKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3dfdGVz
dHMucHkKaW5kZXggODVlYjI0N2IyOTg2Li45ODUwOWIxNDE1MjUgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi93aW5kb3dfdGVzdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0cy5weQpAQCAt
MTQsMzAgKzE0LDMwIEBACiAjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUg
dGhlIExpY2Vuc2UgZm9yIHRoZQogIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlz
c2lvbnMgYW5kIGxpbWl0YXRpb25zCiAjIHVuZGVyIHRoZSBMaWNlbnNlLgotaW1wb3J0IG9zCisK
IGltcG9ydCBweXRlc3QKIAogZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQg
V2ViRHJpdmVyRXhjZXB0aW9uCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQg
aW1wb3J0IFdlYkRyaXZlcldhaXQKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWxfaWUKLUBweXRlc3Qu
bWFyay54ZmFpbF9jaHJvbWl1bWVkZ2UocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQotQHB5dGVz
dC5tYXJrLnhmYWlsX2ZpcmVmb3gocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQotQHB5dGVzdC5t
YXJrLnhmYWlsX3JlbW90ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCi1kZWYgdGVzdFNob3Vs
ZE1heGltaXplVGhlV2luZG93KGRyaXZlcik6Ci0gICAgcmVzaXplX3RpbWVvdXQgPSA1Ci0gICAg
d2FpdCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCByZXNpemVfdGltZW91dCkKLSAgICBvbGRfc2l6
ZSA9IGRyaXZlci5nZXRfd2luZG93X3NpemUoKQotICAgIGRyaXZlci5zZXRfd2luZG93X3NpemUo
MjAwLCAyMDApCi0gICAgd2FpdC51bnRpbCgKLSAgICAgICAgbGFtYmRhIGRyOiBkci5nZXRfd2lu
ZG93X3NpemUoKSAhPSBvbGRfc2l6ZSBpZiBvbGRfc2l6ZVsid2lkdGgiXSAhPSAyMDAgYW5kIG9s
ZF9zaXplWyJoZWlnaHQiXSAhPSAyMDAgZWxzZSBUcnVlKQotICAgIHNpemUgPSBkcml2ZXIuZ2V0
X3dpbmRvd19zaXplKCkKLSAgICBkcml2ZXIubWF4aW1pemVfd2luZG93KCkKLSAgICB3YWl0LnVu
dGlsKGxhbWJkYSBkcjogZHIuZ2V0X3dpbmRvd19zaXplKCkgIT0gc2l6ZSkKLSAgICBuZXdfc2l6
ZSA9IGRyaXZlci5nZXRfd2luZG93X3NpemUoKQotICAgIGFzc2VydCBuZXdfc2l6ZVsid2lkdGgi
XSA+IHNpemVbIndpZHRoIl0KLSAgICBhc3NlcnQgbmV3X3NpemVbImhlaWdodCJdID4gc2l6ZVsi
aGVpZ2h0Il0KKyMgQHB5dGVzdC5tYXJrLnhmYWlsX2llCisjIEBweXRlc3QubWFyay54ZmFpbF9j
aHJvbWl1bWVkZ2UocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorIyBAcHl0ZXN0Lm1hcmsueGZh
aWxfZmlyZWZveChyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCisjIEBweXRlc3QubWFyay54ZmFp
bF9yZW1vdGUocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorIyBkZWYgdGVzdFNob3VsZE1heGlt
aXplVGhlV2luZG93KGRyaXZlcik6CisjICAgICByZXNpemVfdGltZW91dCA9IDUKKyMgICAgIHdh
aXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgcmVzaXplX3RpbWVvdXQpCisjICAgICBvbGRfc2l6
ZSA9IGRyaXZlci5nZXRfd2luZG93X3NpemUoKQorIyAgICAgZHJpdmVyLnNldF93aW5kb3dfc2l6
ZSgyMDAsIDIwMCkKKyMgICAgIHdhaXQudW50aWwoCisjICAgICAgICAgbGFtYmRhIGRyOiBkci5n
ZXRfd2luZG93X3NpemUoKSAhPSBvbGRfc2l6ZSBpZiBvbGRfc2l6ZVsid2lkdGgiXSAhPSAyMDAg
YW5kIG9sZF9zaXplWyJoZWlnaHQiXSAhPSAyMDAgZWxzZSBUcnVlKQorIyAgICAgc2l6ZSA9IGRy
aXZlci5nZXRfd2luZG93X3NpemUoKQorIyAgICAgZHJpdmVyLm1heGltaXplX3dpbmRvdygpCisj
ICAgICB3YWl0LnVudGlsKGxhbWJkYSBkcjogZHIuZ2V0X3dpbmRvd19zaXplKCkgIT0gc2l6ZSkK
KyMgICAgIG5ld19zaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisjICAgICBhc3NlcnQg
bmV3X3NpemVbIndpZHRoIl0gPiBzaXplWyJ3aWR0aCJdCisjICAgICBhc3NlcnQgbmV3X3NpemVb
ImhlaWdodCJdID4gc2l6ZVsiaGVpZ2h0Il0KIAogCiBkZWYgdGVzdF9zaG91bGRfZ2V0X3RoZV9z
aXplX29mX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgpAQCAtMTEyLDM3ICsxMTIsMzcgQEAg
ZGVmIHRlc3Rfc2hvdWxkX3NldF90aGVfcmVjdF9vZl90aGVfY3VycmVudF93aW5kb3coZHJpdmVy
KToKICAgICBhc3NlcnQgbmV3X3JlY3QuZ2V0KCdoZWlnaHQnKSA9PSB0YXJnZXRfaGVpZ2h0CiAK
IAotQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBub3Qg
aW1wbGVtZW50ZWQnKQotQHB5dGVzdC5tYXJrLnNraXBpZihvcy5lbnZpcm9uLmdldCgnVFJBVklT
JykgPT0gJ3RydWUnLAotICAgICAgICAgICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29t
bWFuZCBjYXVzZXMgVHJhdmlzIHRvIGhhbmcnKQotQHB5dGVzdC5tYXJrLm5vX2RyaXZlcl9hZnRl
cl90ZXN0Ci1kZWYgdGVzdF9zaG91bGRfZnVsbHNjcmVlbl90aGVfY3VycmVudF93aW5kb3coZHJp
dmVyKToKLSAgICBzdGFydF93aWR0aCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdp
bmRvdy5pbm5lcldpZHRoOycpCi0gICAgc3RhcnRfaGVpZ2h0ID0gZHJpdmVyLmV4ZWN1dGVfc2Ny
aXB0KCdyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0OycpCisjIEBweXRlc3QubWFyay54ZmFpbF9z
YWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyMgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQorIyBAcHl0
ZXN0Lm1hcmsuc2tpcGlmKG9zLmVudmlyb24uZ2V0KCdUUkFWSVMnKSA9PSAndHJ1ZScsCisjICAg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgY2F1c2VzIFRyYXZp
cyB0byBoYW5nJykKKyMgQHB5dGVzdC5tYXJrLm5vX2RyaXZlcl9hZnRlcl90ZXN0CisjIGRlZiB0
ZXN0X3Nob3VsZF9mdWxsc2NyZWVuX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgorIyAgICAg
c3RhcnRfd2lkdGggPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJX
aWR0aDsnKQorIyAgICAgc3RhcnRfaGVpZ2h0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1
cm4gd2luZG93LmlubmVySGVpZ2h0OycpCiAKLSAgICBkcml2ZXIuZnVsbHNjcmVlbl93aW5kb3co
KQorIyAgICAgZHJpdmVyLmZ1bGxzY3JlZW5fd2luZG93KCkKIAotICAgIFdlYkRyaXZlcldhaXQo
ZHJpdmVyLCAyKVwKLSAgICAgICAgLnVudGlsKGxhbWJkYSBkOiBkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoJ3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDsnKSA+IHN0YXJ0X3dpZHRoKQorIyAgICAgV2Vi
RHJpdmVyV2FpdChkcml2ZXIsIDIpXAorIyAgICAgICAgIC51bnRpbChsYW1iZGEgZDogZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykgPiBzdGFydF93aWR0
aCkKIAotICAgIGVuZF93aWR0aCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRv
dy5pbm5lcldpZHRoOycpCi0gICAgZW5kX2hlaWdodCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgn
cmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDsnKQorIyAgICAgZW5kX3dpZHRoID0gZHJpdmVyLmV4
ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykKKyMgICAgIGVuZF9oZWln
aHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7JykK
IAotICAgIGRyaXZlci5xdWl0KCkgICMgS2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1bm5pbmcg
ZnVsbHNjcmVlbiBhZnRlcgorIyAgICAgZHJpdmVyLnF1aXQoKSAgIyBLaWxsIGRyaXZlciBzbyB3
ZSBhcmVuJ3QgcnVubmluZyBmdWxsc2NyZWVuIGFmdGVyCiAKLSAgICBhc3NlcnQgZW5kX3dpZHRo
ID4gc3RhcnRfd2lkdGgKLSAgICBhc3NlcnQgZW5kX2hlaWdodCA+IHN0YXJ0X2hlaWdodAorIyAg
ICAgYXNzZXJ0IGVuZF93aWR0aCA+IHN0YXJ0X3dpZHRoCisjICAgICBhc3NlcnQgZW5kX2hlaWdo
dCA+IHN0YXJ0X2hlaWdodAogCiAKLUBweXRlc3QubWFyay54ZmFpbF9zYWZhcmkocmFpc2VzPVdl
YkRyaXZlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdNaW5p
bWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKG9zLmVu
dmlyb24uZ2V0KCdUUkFWSVMnKSA9PSAndHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNv
bj0nTWluaW1pemUgY29tbWFuZCBjYXVzZXMgVHJhdmlzIHRvIGhhbmcnKQotQHB5dGVzdC5tYXJr
Lm5vX2RyaXZlcl9hZnRlcl90ZXN0Ci1kZWYgdGVzdF9zaG91bGRfbWluaW1pemVfdGhlX2N1cnJl
bnRfd2luZG93KGRyaXZlcik6Ci0gICAgZHJpdmVyLm1pbmltaXplX3dpbmRvdygpCi0gICAgbWlu
aW1pemVkID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gZG9jdW1lbnQuaGlkZGVuOycp
Ci0gICAgZHJpdmVyLnF1aXQoKSAgIyBLaWxsIGRyaXZlciBzbyB3ZSBhcmVuJ3QgcnVubmluZyBt
aW5pbWl6ZWQgYWZ0ZXIKLQotICAgIGFzc2VydCBtaW5pbWl6ZWQgaXMgVHJ1ZQorIyBAcHl0ZXN0
Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisjICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSdNaW5pbWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRl
ZCcpCisjIEBweXRlc3QubWFyay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICd0
cnVlJywKKyMgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1hbmQgY2F1
c2VzIFRyYXZpcyB0byBoYW5nJykKKyMgQHB5dGVzdC5tYXJrLm5vX2RyaXZlcl9hZnRlcl90ZXN0
CisjIGRlZiB0ZXN0X3Nob3VsZF9taW5pbWl6ZV90aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToK
KyMgICAgIGRyaXZlci5taW5pbWl6ZV93aW5kb3coKQorIyAgICAgbWluaW1pemVkID0gZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gZG9jdW1lbnQuaGlkZGVuOycpCisjICAgICBkcml2ZXIu
cXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4ndCBydW5uaW5nIG1pbmltaXplZCBhZnRl
cgorCisjICAgICBhc3NlcnQgbWluaW1pemVkIGlzIFRydWUKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy9pbXBvcnRlci5qc29uIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL2ltcG9ydGVyLmpzb24KaW5kZXggZjQwMGVmNWEzOTU3Li5lYWE4MDE4NzIzMDUgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy9pbXBvcnRlci5qc29uCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy9pbXBvcnRlci5qc29uCkBAIC0xLDYgKzEsNiBA
QAogewogICAgICJyZXBvc2l0b3J5IjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzLmdpdCIsCi0gICAgInJldmlzaW9uIjogImI1N2RhOTdmYzA1ZTU0NDBhZTY3NTAy
N2RkNDVhMjZiZTQ4ZTJkYmQiLAorICAgICJyZXZpc2lvbiI6ICJlYjhiZGNlNTUyYTJhOWIxMDAx
MGY3NzU1ZWQ5ZDhkMDc3M2Q1NDhlIiwKICAgICAicGF0aHNfdG9faW1wb3J0IjogWwogICAgICAg
ICAidG9vbHMvd2ViZHJpdmVyIiwKICAgICAgICAgInRvb2xzL3dwdHJ1bm5lciIsCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2
ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CmluZGV4IGQ4NjBiOWVhMjUzMy4uYTgxNzUxNDA3ZTcw
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVy
L3dlYmRyaXZlci9fX2luaXRfXy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9fX2luaXRfXy5weQpAQCAtNiw2ICs2LDcgQEAgZnJv
bSAuY2xpZW50IGltcG9ydCAoCiAgICAgRmluZCwKICAgICBGcmFtZSwKICAgICBTZXNzaW9uLAor
ICAgIFNoYWRvd1Jvb3QsCiAgICAgVGltZW91dHMsCiAgICAgV2luZG93KQogZnJvbSAuZXJyb3Ig
aW1wb3J0ICgKQEAgLTM0LDMgKzM1LDUgQEAgZnJvbSAuZXJyb3IgaW1wb3J0ICgKICAgICBVbmtu
b3duTWV0aG9kRXhjZXB0aW9uLAogICAgIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLAog
ICAgIFdlYkRyaXZlckV4Y2VwdGlvbikKK2Zyb20gLmJpZGkgaW1wb3J0ICgKKyAgICBCaWRpU2Vz
c2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJk
cml2ZXIvd2ViZHJpdmVyL2JpZGkucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uMGJjZDQ4OWNkMzVlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS5weQpAQCAt
MCwwICsxLDU2IEBACitpbXBvcnQgY29weQoraW1wb3J0IHdlYnNvY2tldHMKKworZnJvbSAuIGlt
cG9ydCBjbGllbnQKKworY2xhc3MgQmlkaVNlc3Npb24oY2xpZW50LlNlc3Npb24pOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICBob3N0LAorICAgICAgICAgICAgICAg
ICBwb3J0LAorICAgICAgICAgICAgICAgICB1cmxfcHJlZml4PSIvIiwKKyAgICAgICAgICAgICAg
ICAgY2FwYWJpbGl0aWVzPU5vbmUsCisgICAgICAgICAgICAgICAgIGV4dGVuc2lvbj1Ob25lKToK
KyAgICAgICAgIiIiCisgICAgICAgIEFkZCBhIGNhcGFiaWxpdHkgb2YgIndlYlNvY2tldFVybCI6
IFRydWUgdG8gZW5hYmxlCisgICAgICAgIEJpZGlyZWN0aW9uYWwgY29ubmVjdGlvbiBpbiBzZXNz
aW9uIGNyZWF0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi53ZWJzb2NrZXRfdHJhbnNw
b3J0ID0gTm9uZQorICAgICAgICBjYXBhYmlsaXRpZXMgPSBzZWxmLl9lbmFibGVfd2Vic29ja2V0
KGNhcGFiaWxpdGllcykKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhob3N0LCBwb3J0LCB1cmxf
cHJlZml4LCBjYXBhYmlsaXRpZXMsIGV4dGVuc2lvbikKKworICAgIGRlZiBfZW5hYmxlX3dlYnNv
Y2tldChzZWxmLCBjYXBzKToKKyAgICAgICAgaWYgY2FwczoKKyAgICAgICAgICAgIGNhcHMuc2V0
ZGVmYXVsdCgiYWx3YXlzTWF0Y2giLCB7fSkudXBkYXRlKHsid2ViU29ja2V0VXJsIjogVHJ1ZX0p
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXBzID0geyJhbHdheXNNYXRjaCI6IHsid2Vi
U29ja2V0VXJsIjogVHJ1ZX19CisgICAgICAgIHJldHVybiBjYXBzCisKKyAgICBkZWYgbWF0Y2go
c2VsZiwgY2FwYWJpbGl0aWVzKToKKyAgICAgICAgIiIiRXhwZW5zaXZlIG1hdGNoIHRvIHNlZSBp
ZiBjYXBhYmlsaXRpZXMgaXMgdGhlIHNhbWUgYXMgcHJldmlvdXNseQorICAgICAgICByZXF1ZXN0
ZWQgY2FwYWJpbGl0aWVzIGlmIHdlYnNvY2tldCB3b3VsZCBiZSBlbmFibGVkLgorCisgICAgICAg
IDpyZXR1cm4gQm9vbGVhbi4KKyAgICAgICAgIiIiCisgICAgICAgIGNhcHMgPSBjb3B5LmRlZXBj
b3B5KGNhcGFiaWxpdGllcykKKyAgICAgICAgY2FwcyA9IHNlbGYuX2VuYWJsZV93ZWJzb2NrZXQo
Y2FwcykKKyAgICAgICAgcmV0dXJuIHN1cGVyKCkubWF0Y2goY2FwcykKKworICAgIGFzeW5jIGRl
ZiBzdGFydChzZWxmKToKKyAgICAgICAgIiIiU3RhcnQgYSBuZXcgV2ViRHJpdmVyIEJpZGlyZWN0
aW9uYWwgc2Vzc2lvbgorICAgICAgICB3aXRoIHdlYnNvY2tldCBjb25uZWN0ZWQuCisKKyAgICAg
ICAgOnJldHVybjogRGljdGlvbmFyeSB3aXRoIGBjYXBhYmlsaXRpZXNgIGFuZCBgc2Vzc2lvbklk
YC4KKyAgICAgICAgIiIiCisgICAgICAgIHZhbHVlID0gc3VwZXIoKS5zdGFydCgpCisKKyAgICAg
ICAgaWYgbm90IHNlbGYud2Vic29ja2V0X3RyYW5zcG9ydCBvciBub3Qgc2VsZi53ZWJzb2NrZXRf
dHJhbnNwb3J0Lm9wZW46CisgICAgICAgICAgICBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQgPSBh
d2FpdCB3ZWJzb2NrZXRzLmNvbm5lY3Qoc2VsZi5jYXBhYmlsaXRpZXNbIndlYlNvY2tldFVybCJd
KQorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGFzeW5jIGRlZiBlbmQoc2VsZik6CisgICAg
ICAgICIiIkNsb3NlIHdlYnNvY2tldCBjb25uZWN0aW9uIGZpcnN0IGJlZm9yZSBjbG9zaW5nIHNl
c3Npb24uCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQ6
CisgICAgICAgICAgICBhd2FpdCBzZWxmLndlYnNvY2tldF90cmFuc3BvcnQuY2xvc2UoKQorICAg
ICAgICAgICAgc2VsZi53ZWJzb2NrZXRfdHJhbnNwb3J0ID0gTm9uZQorICAgICAgICBzdXBlcigp
LmVuZCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2Vi
ZHJpdmVyL3dlYmRyaXZlci9iaWRpL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9fX2luaXRfXy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU3YzU2MzMyZjkwMgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2Vi
ZHJpdmVyL2JpZGkvX19pbml0X18ucHkKQEAgLTAsMCArMSwzIEBACisjIGZsYWtlODogbm9xYQor
Citmcm9tIC5jbGllbnQgaW1wb3J0IEJpZGlTZXNzaW9uCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVudC5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L2JpZGkvY2xpZW50LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
NDMwOWEyNWUzODczCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9jbGllbnQucHkKQEAgLTAsMCArMSwz
OTMgQEAKK2ltcG9ydCBhc3luY2lvCitpbXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQganNvbgoraW1w
b3J0IGxvZ2dpbmcKK2ltcG9ydCBzeXMKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRk
aWN0Citmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBBd2FpdGFibGUsIENhbGxhYmxlLCBDb3JvdXRp
bmUsIExpc3QsIE9wdGlvbmFsLCBNYXBwaW5nLCBNdXRhYmxlTWFwcGluZworZnJvbSB1cmxsaWIu
cGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHBhcnNlCisKK2ltcG9ydCB3ZWJzb2NrZXRzCisKKwor
bG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoIndlYmRyaXZlci5iaWRpIikKKworCitjbGFzcyBC
aWRpRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVycjogc3Ry
LCBtc2c6IHN0ciwgc3RhY2s6IE9wdGlvbmFsW3N0cl0gPSBOb25lKToKKyAgICAgICAgc2VsZi5l
cnIgPSBlcnIKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKyAgICAgICAgc2VsZi5zdGFjayA9IHN0
YWNrCisKKworZGVmIGdldF9ydW5uaW5nX2xvb3AoKSAtPiBhc3luY2lvLkFic3RyYWN0RXZlbnRM
b29wOgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDcpOgorICAgICAgICByZXR1cm4g
YXN5bmNpby5nZXRfcnVubmluZ19sb29wKCkKKyAgICAjIFVubGlrZSB0aGUgYWJvdmUsIHRoaXMg
d2lsbCBhY3R1YWxseSBjcmVhdGUgYW4gZXZlbnQgbG9vcAorICAgICMgaWYgdGhlcmUgaXNuJ3Qg
b25lOyBob3BlZnVsbHkgcnVubmluZyB0ZXN0cyBpbiBQeXRob24gPj0gMy43CisgICAgIyB3aWxs
IGFsbG93IHVzIHRvIGNhdGNoIGFueSBiZWhhdmlvdXIgZGlmZmVyZW5jZQorICAgIHJldHVybiBh
c3luY2lvLmdldF9ldmVudF9sb29wKCkKKworCitjbGFzcyBCaWRpU2Vzc2lvbjoKKyAgICAiIiJB
IFdlYkRyaXZlciBCaURpIHNlc3Npb24uCisKKyAgICBUaGlzIGlzIHRoZSBtYWluIHJlcHJlc2Vu
dGF0aW9uIG9mIGEgQmlEaSBzZXNzaW9uIGFuZCBwcm92aWRlcyB0aGUKKyAgICBpbnRlcmZhY2Ug
Zm9yIHJ1bm5pbmcgY29tbWFuZHMgaW4gdGhlIHNlc3Npb24sIGFuZCBmb3IgYXR0YWNoaW5nCisg
ICAgZXZlbnQgaGFuZGxlcnMgdG8gdGhlIHNlc3Npb24uIEZvciBleGFtcGxlOgorCisgICAgYXN5
bmMgZGVmIG9uX2xvZyhkYXRhKToKKyAgICAgICAgcHJpbnQoZGF0YSkKKworICAgIHNlc3Npb24g
PSBCaWRpU2Vzc2lvbigid3M6Ly9sb2NhbGhvc3Q6NDQ0NSIsIGNhcGFiaWxpdGllcykKKyAgICBz
ZXNzaW9uLmFkZF9ldmVudF9saXN0ZW5lcigibG9nLmVudHJ5QWRkZWQiLCBvbl9sb2cpCisgICAg
YXdhaXQgc2Vzc2lvbi5zdGFydCgpCisgICAgYXdhaXQgc2Vzc2lvbi5zdWJzY3JpYmUoImxvZy5l
bnRyeUFkZGVkIikKKyAgICAjIERvIHNvbWUgc3R1ZmYgd2l0aCB0aGUgc2Vzc2lvbgorICAgIHNl
c3Npb24uZW5kKCkKKworICAgIElmIHRoZSBzZXNzaW9uIGlkIGlzIHByb3ZpZGVkIGl0J3MgYXNz
dW1lZCB0aGF0IHRoZSB1bmRlcmx5aW5nCisgICAgV2ViRHJpdmVyIHNlc3Npb24gd2FzIGFscmVh
ZHkgY3JlYXRlZCwgYW5kIHRoZSBXZWJTb2NrZXQgVVJMIHdhcworICAgIHRha2VuIGZyb20gdGhl
IG5ldyBzZXNzaW9uIHJlc3BvbnNlLiBJZiBubyBzZXNzaW9uIGlkIGlzIHByb3ZpZGVkLCBpdCdz
CisgICAgYXNzdW1lZCB0aGF0IGEgQmlEaS1vbmx5IHNlc3Npb24gc2hvdWxkIGJlIGNyZWF0ZWQg
d2hlbiBzdGFydCgpIGlzIGNhbGxlZC4KKworICAgIEl0IGNhbiBhbHNvIGJlIHVzZWQgYXMgYSBj
b250ZXh0IG1hbmFnZXIsIHdpdGggdGhlIFdlYlNvY2tldCB0cmFuc3BvcnQKKyAgICBpbXBsaWN0
bHkgYmVpbmcgY3JlYXRlZCB3aGVuIHRoZSBjb250ZXh0IGlzIGVudGVyZWQsIGFuZCBjbG9zZWQg
d2hlbgorICAgIHRoZSBjb250ZXh0IGlzIGV4aXRlZC4KKworICAgIDpwYXJhbSB3ZWJzb2NrZXRf
dXJsOiBXZWJTb2NrZXRzIFVSTCBvbiB3aGljaCB0byBjb25uZWN0IHRvIHRoZSBzZXNzaW9uLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGV4Y2x1ZGVzIGFueSBwYXRoIGNvbXBvbmVu
dC4KKyAgICA6cGFyYW0gc2Vzc2lvbl9pZDogU3RyaW5nIGlkIG9mIGV4aXN0aW5nIEhUVFAgc2Vz
c2lvbgorICAgIDpwYXJhbSBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcyByZXNwb25zZSBvZiBl
eGlzdGluZyBzZXNzaW9uCisgICAgOnBhcmFtIHJlcXVlc3RlZF9jYXBhYmlsaXRpZXM6IERpY3Rp
b25hcnkgcmVwcmVzZW50aW5nIHRoZSBjYXBhYmlsaXRpZXMgcmVxdWVzdC4KKworICAgICIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIHdlYnNvY2tldF91cmw6
IHN0ciwKKyAgICAgICAgICAgICAgICAgc2Vzc2lvbl9pZDogT3B0aW9uYWxbc3RyXSA9IE5vbmUs
CisgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllczogT3B0aW9uYWxbTWFwcGluZ1tzdHIsIEFu
eV1dID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgcmVxdWVzdGVkX2NhcGFiaWxpdGllczogT3B0
aW9uYWxbTWFwcGluZ1tzdHIsIEFueV1dID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgbG9vcDog
T3B0aW9uYWxbYXN5bmNpby5BYnN0cmFjdEV2ZW50TG9vcF0gPSBOb25lKToKKyAgICAgICAgc2Vs
Zi50cmFuc3BvcnQ6IE9wdGlvbmFsW1RyYW5zcG9ydF0gPSBOb25lCisKKyAgICAgICAgIyBUaGUg
ZnVsbCBVUkwgZm9yIGEgd2Vic29ja2V0IGxvb2tzIGxpa2UKKyAgICAgICAgIyB3czovLzxob3N0
Pjo8cG9ydD4vc2Vzc2lvbiB3aGVuIHdlJ3JlIGNyZWF0aW5nIGEgc2Vzc2lvbiBhbmQKKyAgICAg
ICAgIyB3czovLzxob3N0Pjo8cG9ydD4vc2Vzc2lvbi88c2Vzc2lvbmlkPiB3aGVuIHdlJ3JlIGNv
bm5lY3RpbmcgdG8gYW4gZXhpc3Rpbmcgc2Vzc2lvbi4KKyAgICAgICAgIyBUbyBiZSB1c2VyIGZy
aWVuZGx5LCBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGNsYXNzIHdhcyBjcmVhdGVkIHdpdGgg
ZWl0aGVyIGEKKyAgICAgICAgIyBmdWxsIFVSTCBpbmNsdWRpbmcgdGhlIHBhdGgsIGFuZCBhbHNv
IHRoZSBjYXNlIHdoZXJlIGp1c3QgYSBzZXJ2ZXIgdXJsIGlzIHBhc3NlZCBpbi4KKyAgICAgICAg
cGFyc2VkX3VybCA9IHVybHBhcnNlKHdlYnNvY2tldF91cmwpCisgICAgICAgIGlmIHBhcnNlZF91
cmwucGF0aCA9PSAiIiBvciBwYXJzZWRfdXJsLnBhdGggPT0gIi8iOgorICAgICAgICAgICAgaWYg
c2Vzc2lvbl9pZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHdlYnNvY2tldF91cmwgPSB1cmxq
b2luKHdlYnNvY2tldF91cmwsICJzZXNzaW9uIikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgd2Vic29ja2V0X3VybCA9IHVybGpvaW4od2Vic29ja2V0X3VybCwgZiJzZXNzaW9u
L3tzZXNzaW9uX2lkfSIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzZXNzaW9uX2lk
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGlmIHBhcnNlZF91cmwucGF0aCAhPSBmIi9z
ZXNzaW9uL3tzZXNzaW9uX2lkfSI6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoZiJXZWJTb2NrZXQgVVJMIHtzZXNzaW9uX2lkfSBkb2Vzbid0IG1hdGNoIHNlc3Npb24gaWQi
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBwYXJzZWRfdXJsLnBhdGgg
IT0gIi9zZXNzaW9uIjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIldl
YlNvY2tldCBVUkwge3Nlc3Npb25faWR9IGRvZXNuJ3QgbWF0Y2ggc2Vzc2lvbiB1cmwiKQorCisg
ICAgICAgIGlmIHNlc3Npb25faWQgaXMgTm9uZSBhbmQgY2FwYWJpbGl0aWVzIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVHJpZWQgdG8gY3JlYXRlIEJpRGktb25s
eSBzZXNzaW9uIHdpdGggZXhpc3RpbmcgY2FwYWJpbGl0aWVzIikKKworICAgICAgICBzZWxmLndl
YnNvY2tldF91cmwgPSB3ZWJzb2NrZXRfdXJsCisgICAgICAgIHNlbGYucmVxdWVzdGVkX2NhcGFi
aWxpdGllcyA9IHJlcXVlc3RlZF9jYXBhYmlsaXRpZXMKKyAgICAgICAgc2VsZi5jYXBhYmlsaXRp
ZXMgPSBjYXBhYmlsaXRpZXMKKyAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gc2Vzc2lvbl9pZAor
CisgICAgICAgIHNlbGYuY29tbWFuZF9pZCA9IDAKKyAgICAgICAgc2VsZi5wZW5kaW5nX2NvbW1h
bmRzOiBNdXRhYmxlTWFwcGluZ1tpbnQsICJhc3luY2lvLkZ1dHVyZVtBbnldIl0gPSB7fQorICAg
ICAgICBzZWxmLmV2ZW50X2xpc3RlbmVyczogTXV0YWJsZU1hcHBpbmdbT3B0aW9uYWxbc3RyXSwg
TGlzdFtDYWxsYWJsZVtbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV0sIEFueV1dXSA9IGRlZmF1bHRk
aWN0KGxpc3QpCisKKyAgICAgICAgIyBNb2R1bGVzLgorICAgICAgICAjIEZvciBlYWNoIG1vZHVs
ZSwgaGF2ZSBhIHByb3BlcnR5IHJlcHJlc2VudGluZyB0aGF0IG1vZHVsZQorICAgICAgICBzZWxm
LnNlc3Npb24gPSBTZXNzaW9uKHNlbGYpCisKKyAgICAgICAgaWYgbG9vcCBpcyBOb25lOgorICAg
ICAgICAgICAgbG9vcCA9IGdldF9ydW5uaW5nX2xvb3AoKQorICAgICAgICBzZWxmLmxvb3AgPSBs
b29wCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9odHRwKGNscywKKyAgICAgICAg
ICAgICAgICAgIHNlc3Npb25faWQ6IHN0ciwKKyAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGll
czogTWFwcGluZ1tzdHIsIEFueV0sCisgICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFth
c3luY2lvLkFic3RyYWN0RXZlbnRMb29wXSA9IE5vbmUpIC0+ICJCaWRpU2Vzc2lvbiI6CisgICAg
ICAgICIiIkNyZWF0ZSBhIEJpRGkgc2Vzc2lvbiBmcm9tIGFuIGV4aXN0aW5nIEhUVFAgc2Vzc2lv
bgorCisgICAgICAgIDpwYXJhbSBzZXNzaW9uX2lkOiBTdHJpbmcgaWQgb2YgdGhlIHNlc3Npb24K
KyAgICAgICAgOnBhcmFtIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzIHJldHVybmVkIGluIHRo
ZSBOZXcgU2Vzc2lvbiBIVFRQIHJlc3BvbnNlLiIiIgorICAgICAgICB3ZWJzb2NrZXRfdXJsID0g
Y2FwYWJpbGl0aWVzLmdldCgid2ViU29ja2V0VXJsIikKKyAgICAgICAgaWYgd2Vic29ja2V0X3Vy
bCBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gd2ViU29ja2V0VXJs
IGZvdW5kIGluIGNhcGFiaWxpdGllcyIpCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHdlYnNv
Y2tldF91cmwsIHN0cik6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ3ZWJTb2NrZXRV
cmwgaXMgbm90IGEgc3RyaW5nIikKKyAgICAgICAgcmV0dXJuIGNscyh3ZWJzb2NrZXRfdXJsLCBz
ZXNzaW9uX2lkPXNlc3Npb25faWQsIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsIGxvb3A9bG9v
cCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBiaWRpX29ubHkoY2xzLAorICAgICAgICAg
ICAgICAgICAgd2Vic29ja2V0X3VybDogc3RyLAorICAgICAgICAgICAgICAgICAgcmVxdWVzdGVk
X2NhcGFiaWxpdGllczogT3B0aW9uYWxbTWFwcGluZ1tzdHIsIEFueV1dLAorICAgICAgICAgICAg
ICAgICAgbG9vcDogT3B0aW9uYWxbYXN5bmNpby5BYnN0cmFjdEV2ZW50TG9vcF0gPSBOb25lKSAt
PiAiQmlkaVNlc3Npb24iOgorICAgICAgICAiIiJDcmVhdGUgYSBCaURpIHNlc3Npb24gd2hlcmUg
dGhlcmUgaXMgbm8gZXhpc3RpbmcgSFRUUCBzZXNzaW9uCisKKyAgICAgICAgOnBhcmFtIHdlYmRv
Y2tldF91cmw6IFVSTCB0byB0aGUgV2ViU29ja2V0IHNlcnZlciBsaXN0ZW5pbmcgZm9yIEJpRGkg
Y29ubmVjdGlvbnMKKyAgICAgICAgOnBhcmFtIHJlcXVlc3RlZF9jYXBhYmlsaXRpZXM6IENhcGFi
aWxpdGllcyByZXF1ZXN0IGZvciBlc3RhYmxpc2hpbmcgdGhlIHNlc3Npb24uIiIiCisgICAgICAg
IHJldHVybiBjbHMod2Vic29ja2V0X3VybCwgcmVxdWVzdGVkX2NhcGFiaWxpdGllcz1yZXF1ZXN0
ZWRfY2FwYWJpbGl0aWVzLCBsb29wPWxvb3ApCisKKyAgICBhc3luYyBkZWYgX19hZW50ZXJfXyhz
ZWxmKSAtPiAiQmlkaVNlc3Npb24iOgorICAgICAgICBhd2FpdCBzZWxmLnN0YXJ0KCkKKyAgICAg
ICAgcmV0dXJuIHNlbGYKKworICAgIGFzeW5jIGRlZiBfX2FleGl0X18oc2VsZiwgKmFyZ3M6IEFu
eSkgLT4gTm9uZToKKyAgICAgICAgYXdhaXQgc2VsZi5lbmQoKQorCisgICAgYXN5bmMgZGVmIHN0
YXJ0KHNlbGYpIC0+IE5vbmU6CisgICAgICAgICIiIkNvbm5lY3QgdG8gdGhlIFdlYkRyaXZlciBC
aURpIHJlbW90ZSB2aWEgV2ViU29ja2V0cyIiIgorICAgICAgICBzZWxmLnRyYW5zcG9ydCA9IFRy
YW5zcG9ydChzZWxmLndlYnNvY2tldF91cmwsIHNlbGYub25fbWVzc2FnZSwgbG9vcD1zZWxmLmxv
b3ApCisKKyAgICAgICAgaWYgc2VsZi5zZXNzaW9uX2lkIGlzIE5vbmU6CisgICAgICAgICAgICBz
ZWxmLnNlc3Npb25faWQsIHNlbGYuY2FwYWJpbGl0aWVzID0gYXdhaXQgc2VsZi5zZXNzaW9uLm5l
dyhzZWxmLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMpCisKKyAgICAgICAgYXdhaXQgc2VsZi50cmFu
c3BvcnQuc3RhcnQoKQorCisgICAgYXN5bmMgZGVmIHNlbmRfY29tbWFuZChzZWxmLCBtZXRob2Q6
IHN0ciwgcGFyYW1zOiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gQXdhaXRhYmxlW01hcHBpbmdbc3Ry
LCBBbnldXToKKyAgICAgICAgIiIiU2VuZCBhIGNvbW1hbmQgdG8gdGhlIHJlbW90ZSBzZXJ2ZXIi
IiIKKyAgICAgICAgIyB0aGlzIGlzbid0IHRocmVhZHNhZmUKKyAgICAgICAgc2VsZi5jb21tYW5k
X2lkICs9IDEKKyAgICAgICAgY29tbWFuZF9pZCA9IHNlbGYuY29tbWFuZF9pZAorCisgICAgICAg
IGJvZHkgPSB7CisgICAgICAgICAgICAiaWQiOiBjb21tYW5kX2lkLAorICAgICAgICAgICAgIm1l
dGhvZCI6IG1ldGhvZCwKKyAgICAgICAgICAgICJwYXJhbXMiOiBwYXJhbXMKKyAgICAgICAgfQor
ICAgICAgICBhc3NlcnQgY29tbWFuZF9pZCBub3QgaW4gc2VsZi5wZW5kaW5nX2NvbW1hbmRzCisg
ICAgICAgIHNlbGYucGVuZGluZ19jb21tYW5kc1tjb21tYW5kX2lkXSA9IHNlbGYubG9vcC5jcmVh
dGVfZnV0dXJlKCkKKyAgICAgICAgYXNzZXJ0IHNlbGYudHJhbnNwb3J0IGlzIG5vdCBOb25lCisg
ICAgICAgIGF3YWl0IHNlbGYudHJhbnNwb3J0LnNlbmQoYm9keSkKKworICAgICAgICByZXR1cm4g
c2VsZi5wZW5kaW5nX2NvbW1hbmRzW2NvbW1hbmRfaWRdCisKKyAgICBhc3luYyBkZWYgb25fbWVz
c2FnZShzZWxmLCBkYXRhOiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gTm9uZToKKyAgICAgICAgIiIi
SGFuZGxlIGEgbWVzc2FnZSBmcm9tIHRoZSByZW1vdGUgc2VydmVyIiIiCisgICAgICAgIGlmICJp
ZCIgaW4gZGF0YToKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNvbW1hbmQgcmVzcG9uc2Ugb3Ig
ZXJyb3IKKyAgICAgICAgICAgIGZ1dHVyZSA9IHNlbGYucGVuZGluZ19jb21tYW5kcy5nZXQoZGF0
YVsiaWQiXSkKKyAgICAgICAgICAgIGlmIGZ1dHVyZSBpcyBOb25lOgorICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoZiJObyBwZW5kaW5nIGNvbW1hbmQgd2l0aCBpZCB7ZGF0YVsnaWQn
XX0iKQorICAgICAgICAgICAgaWYgInJlc3VsdCIgaW4gZGF0YToKKyAgICAgICAgICAgICAgICBm
dXR1cmUuc2V0X3Jlc3VsdChkYXRhWyJyZXN1bHQiXSkKKyAgICAgICAgICAgIGVsaWYgImVycm9y
IiBpbiBkYXRhIGFuZCAibWVzc2FnZSIgaW4gZGF0YToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShkYXRhWyJlcnJvciJdLCBzdHIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IGlz
aW5zdGFuY2UoZGF0YVsibWVzc2FnZSJdLCBzdHIpCisgICAgICAgICAgICAgICAgZnV0dXJlLnNl
dF9leGNlcHRpb24oQmlkaUV4Y2VwdGlvbihkYXRhWyJlcnJvciJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsibWVzc2FnZSJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5nZXQo
InN0YWNrdHJhY2UiKSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoZiJVbmV4cGVjdGVkIG1lc3NhZ2U6IHtkYXRhIXJ9IikKKyAgICAgICAgZWxp
ZiAibWV0aG9kIiBpbiBkYXRhIGFuZCAicGFyYW1zIiBpbiBkYXRhOgorICAgICAgICAgICAgIyBU
aGlzIGlzIGFuIGV2ZW50CisgICAgICAgICAgICBtZXRob2QgPSBkYXRhWyJtZXRob2QiXQorICAg
ICAgICAgICAgbGlzdGVuZXJzID0gc2VsZi5ldmVudF9saXN0ZW5lcnMuZ2V0KG1ldGhvZCwgW10p
CisgICAgICAgICAgICBpZiBub3QgbGlzdGVuZXJzOgorICAgICAgICAgICAgICAgIGxpc3RlbmVy
cyA9IHNlbGYuZXZlbnRfbGlzdGVuZXJzLmdldChOb25lLCBbXSkKKyAgICAgICAgICAgIGZvciBs
aXN0ZW5lciBpbiBsaXN0ZW5lcnM6CisgICAgICAgICAgICAgICAgYXdhaXQgbGlzdGVuZXIobWV0
aG9kLCBkYXRhWyJwYXJhbXMiXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoZiJVbmV4cGVjdGVkIG1lc3NhZ2U6IHtkYXRhIXJ9IikKKworICAgIGFzeW5jIGRl
ZiBlbmQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgIiIiQ2xvc2Ugd2Vic29ja2V0IGNvbm5lY3Rp
b24uIiIiCisgICAgICAgIGFzc2VydCBzZWxmLnRyYW5zcG9ydCBpcyBub3QgTm9uZQorICAgICAg
ICBhd2FpdCBzZWxmLnRyYW5zcG9ydC5lbmQoKQorCisgICAgZGVmIGFkZF9ldmVudF9saXN0ZW5l
cihzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogT3B0aW9uYWxbc3RyXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuOiBDYWxsYWJsZVtbc3RyLCBNYXBwaW5nW3N0
ciwgQW55XV0sIEF3YWl0YWJsZVtBbnldXSkgLT4gTm9uZToKKyAgICAgICAgIiIiQWRkIGEgbGlz
dGVuZXIgZm9yIHRoZSBldmVudCB3aXRoIGEgZ2l2ZW4gbmFtZS4KKworICAgICAgICBJZiBuYW1l
IGlzIE5vbmUsIHRoZSBsaXN0ZW5lciBpcyBjYWxsZWQgZm9yIGFsbCBtZXNzYWdlcyB0aGF0IGFy
ZSBub3Qgb3RoZXJ3aXNlCisgICAgICAgIGhhbmRsZWQuCisKKyAgICAgICAgOnBhcmFtIG5hbWU6
IE5hbWUgb2YgZXZlbnQgdG8gbGlzdGVuIGZvciBvciBOb25lIHRvIHJlZ2lzdGVyIGEgZGVmYXVs
dCBoYW5kbGVyCisgICAgICAgIDpwYXJhbSBmbjogQXN5bmMgY2FsbGJhY2sgZnVuY3Rpb24gdGhh
dCByZWNlaXZlcyBldmVudCBkYXRhCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmV2ZW50X2xp
c3RlbmVyc1tuYW1lXS5hcHBlbmQoZm4pCisKKworY2xhc3MgVHJhbnNwb3J0OgorICAgICIiIkxv
dyBsZXZlbCBtZXNzYWdlIGhhbmRsZXIgZm9yIHRoZSBXZWJTb2NrZXRzIGNvbm5lY3Rpb24iIiIK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsOiBzdHIsCisgICAgICAgICAgICAgICAgIG1zZ19o
YW5kbGVyOiBDYWxsYWJsZVtbTWFwcGluZ1tzdHIsIEFueV1dLCBDb3JvdXRpbmVbQW55LCBBbnks
IE5vbmVdXSwKKyAgICAgICAgICAgICAgICAgbG9vcDogT3B0aW9uYWxbYXN5bmNpby5BYnN0cmFj
dEV2ZW50TG9vcF0gPSBOb25lKToKKyAgICAgICAgc2VsZi51cmwgPSB1cmwKKyAgICAgICAgc2Vs
Zi5jb25uZWN0aW9uOiBPcHRpb25hbFt3ZWJzb2NrZXRzLldlYlNvY2tldENsaWVudFByb3RvY29s
XSA9IE5vbmUKKyAgICAgICAgc2VsZi5tc2dfaGFuZGxlciA9IG1zZ19oYW5kbGVyCisgICAgICAg
IHNlbGYuc2VuZF9idWY6IExpc3RbTWFwcGluZ1tzdHIsIEFueV1dID0gW10KKworICAgICAgICBp
ZiBsb29wIGlzIE5vbmU6CisgICAgICAgICAgICBsb29wID0gZ2V0X3J1bm5pbmdfbG9vcCgpCisg
ICAgICAgIHNlbGYubG9vcCA9IGxvb3AKKworICAgICAgICBzZWxmLnJlYWRfbWVzc2FnZV90YXNr
OiBPcHRpb25hbFthc3luY2lvLlRhc2tbQW55XV0gPSBOb25lCisKKyAgICBhc3luYyBkZWYgc3Rh
cnQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gYXdhaXQgd2Vic29j
a2V0cy5jbGllbnQuY29ubmVjdChzZWxmLnVybCkKKyAgICAgICAgc2VsZi5yZWFkX21lc3NhZ2Vf
dGFzayA9IHNlbGYubG9vcC5jcmVhdGVfdGFzayhzZWxmLnJlYWRfbWVzc2FnZXMoKSkKKworICAg
ICAgICBmb3IgbXNnIGluIHNlbGYuc2VuZF9idWY6CisgICAgICAgICAgICBhd2FpdCBzZWxmLl9z
ZW5kKHNlbGYuY29ubmVjdGlvbiwgbXNnKQorCisgICAgYXN5bmMgZGVmIHNlbmQoc2VsZiwgZGF0
YTogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE5vbmU6CisgICAgICAgIGlmIHNlbGYuY29ubmVjdGlv
biBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGF3YWl0IHNlbGYuX3NlbmQoc2VsZi5jb25uZWN0
aW9uLCBkYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zZW5kX2J1Zi5hcHBl
bmQoZGF0YSkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBhc3luYyBkZWYgX3NlbmQoY29ubmVj
dGlvbjogd2Vic29ja2V0cy5XZWJTb2NrZXRDbGllbnRQcm90b2NvbCwgZGF0YTogTWFwcGluZ1tz
dHIsIEFueV0pIC0+IE5vbmU6CisgICAgICAgIG1zZyA9IGpzb24uZHVtcHMoZGF0YSkKKyAgICAg
ICAgbG9nZ2VyLmRlYnVnKCLihpIgJXMiLCBtc2cpCisgICAgICAgIGF3YWl0IGNvbm5lY3Rpb24u
c2VuZChtc2cpCisKKyAgICBhc3luYyBkZWYgaGFuZGxlKHNlbGYsIG1zZzogc3RyKSAtPiBOb25l
OgorICAgICAgICBsb2dnZXIuZGVidWcoIuKGkCAlcyIsIG1zZykKKyAgICAgICAgZGF0YSA9IGpz
b24ubG9hZHMobXNnKQorICAgICAgICBhd2FpdCBzZWxmLm1zZ19oYW5kbGVyKGRhdGEpCisKKyAg
ICBhc3luYyBkZWYgZW5kKHNlbGYpIC0+IE5vbmU6CisgICAgICAgIGlmIHNlbGYuY29ubmVjdGlv
bjoKKyAgICAgICAgICAgIGF3YWl0IHNlbGYuY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgICAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBOb25lCisKKyAgICBhc3luYyBkZWYgcmVhZF9tZXNzYWdlcyhz
ZWxmKSAtPiBOb25lOgorICAgICAgICBhc3NlcnQgc2VsZi5jb25uZWN0aW9uIGlzIG5vdCBOb25l
CisgICAgICAgIGFzeW5jIGZvciBtc2cgaW4gc2VsZi5jb25uZWN0aW9uOgorICAgICAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UobXNnLCBzdHIpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoIkdvdCBhIGJpbmFyeSBtZXNzYWdlIikKKyAgICAgICAgICAgIGF3YWl0IHNlbGYuaGFu
ZGxlKG1zZykKKworCitjbGFzcyBjb21tYW5kOgorICAgICIiIkRlY29yYXRvciBmb3IgaW1wbGVt
ZW50aW5nIGJpZGkgY29tbWFuZHMKKworICAgIEltcGxlbWVudGluZyBhIGNvbW1hbmQgaW52b2x2
ZXMgc3BlY2lmeWluZyBhbiBhc3luYyBmdW5jdGlvbiB0aGF0CisgICAgYnVpbGRzIHRoZSBwYXJh
bWV0ZXJzIHRvIHRoZSBjb21tYW5kLiBUaGUgZGVjb3JhdG9yIGFycmFuZ2VzIHRob3NlCisgICAg
cGFyYW1ldGVycyB0byBiZSB0dXJuZWQgaW50byBhIHNlbmRfY29tbWFuZCBjYWxsLCB1c2luZyB0
aGUgY2xhc3MKKyAgICBhbmQgbWV0aG9kIG5hbWVzIHRvIGRldGVybWluZSB0aGUgbWV0aG9kIGlu
IHRoZSBjYWxsLgorCisgICAgQ29tbWFuZHMgZGVjb3JhdGVkIGluIHRoaXMgd2F5IGRvbid0IHJl
dHVybiBhIGZ1dHVyZSwgYnV0IGF3YWl0CisgICAgdGhlIGFjdHVhbCByZXNwb25zZS4gSW4gc29t
ZSBjYXNlcyBpdCBjYW4gYmUgdXNlZnVsIHRvCisgICAgcG9zdC1wcm9jZXNzIHRoaXMgcmVzcG9u
c2UgYmVmb3JlIHJldHVybmluZyBpdCB0byB0aGUgY2xpZW50LiBUaGlzCisgICAgY2FuIGJlIGRv
bmUgYnkgc3BlY2lmeWluZyBhIHNlY29uZCBkZWNvcmF0ZWQgbWV0aG9kIGxpa2UKKyAgICBAY29t
bWFuZF9uYW1lLnJlc3VsdC4gVGhhdCBtZXRob2Qgd2lsbCB0aGVuIGJlIGNhbGxlZCBvbmNlIHRo
ZQorICAgIHJlc3VsdCBvZiB0aGUgb3JpZ2luYWwgY29tbWFuZCBpcyBrbm93biwgYW5kIHRoZSBy
ZXR1cm4gdmFsdWUgb2YKKyAgICB0aGUgbWV0aG9kIHVzZWQgYXMgdGhlIHJlc3BvbnNlIG9mIHRo
ZSBjb21tYW5kLgorCisgICAgU28gZm9yIGFuIGV4YW1wbGUsIGlmIHdlIGhhZCBhIGNvbW1hbmQg
dGVzdC50ZXN0TWV0aG9kLCB3aGljaAorICAgIHJldHVybmVkIGEgcmVzdWx0IHdoaWNoIHdlIHdh
bnQgdG8gY29udmVydCB0byBhIFRlc3RSZXN1bHQgdHlwZSwKKyAgICB0aGUgaW1wbGVtZW50YXRp
b24gbWlnaHQgbG9vayBsaWtlOgorCisgICAgY2xhc3MgVGVzdChCaWRpTW9kdWxlKToKKyAgICAg
ICAgQGNvbW1hbmQKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsIHRlc3RfZGF0YT1Ob25l
KToKKyAgICAgICAgICAgIHJldHVybiB7InRlc3REYXRhIjogdGVzdF9kYXRhfQorCisgICAgICAg
QHRlc3RfbWV0aG9kLnJlc3VsdAorICAgICAgIGRlZiBjb252ZXJ0X3Rlc3RfbWV0aG9kX3Jlc3Vs
dChzZWxmLCByZXN1bHQpOgorICAgICAgICAgICByZXR1cm4gVGVzdERhdGEoKipyZXN1bHQpCisg
ICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZm46IENhbGxhYmxlWy4uLiwgTWFwcGlu
Z1tzdHIsIEFueV1dKToKKyAgICAgICAgc2VsZi5wYXJhbXNfZm4gPSBmbgorICAgICAgICBzZWxm
LnJlc3VsdF9mbjogT3B0aW9uYWxbQ2FsbGFibGVbLi4uLCBBbnldXSA9IE5vbmUKKworICAgIGRl
ZiByZXN1bHQoc2VsZiwgZm46IENhbGxhYmxlW1tBbnksIE11dGFibGVNYXBwaW5nW3N0ciwgQW55
XV0sIE1hcHBpbmdbc3RyLCBBbnldXSkgLT4gTm9uZToKKyAgICAgICAgc2VsZi5yZXN1bHRfZm4g
PSBmbgorCisgICAgZGVmIF9fc2V0X25hbWVfXyhzZWxmLCBvd25lcjogQW55LCBuYW1lOiBzdHIp
IC0+IE5vbmU6CisgICAgICAgICMgVGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgY2xhc3MgaXMgY3Jl
YXRlZAorICAgICAgICAjIHNlZSBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3JlZmVyZW5jZS9k
YXRhbW9kZWwuaHRtbCNvYmplY3QuX19zZXRfbmFtZV9fCisgICAgICAgIHBhcmFtc19mbiA9IHNl
bGYucGFyYW1zX2ZuCisgICAgICAgIHJlc3VsdF9mbiA9IHNlbGYucmVzdWx0X2ZuCisKKyAgICAg
ICAgQGZ1bmN0b29scy53cmFwcyhwYXJhbXNfZm4pCisgICAgICAgIGFzeW5jIGRlZiBpbm5lcihz
ZWxmOiBBbnksICoqa3dhcmdzOiBBbnkpIC0+IEFueToKKyAgICAgICAgICAgIHBhcmFtcyA9IHBh
cmFtc19mbihzZWxmLCAqKmt3YXJncykKKworICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSBjbGFz
c25hbWUgYW5kIHRoZSBtZXRob2QgbmFtZSB0byBhIGJpZGkgY29tbWFuZCBuYW1lCisgICAgICAg
ICAgICBtb2RfbmFtZSA9IG93bmVyLl9fbmFtZV9fLmxvd2VyKCkKKyAgICAgICAgICAgIGlmIGhh
c2F0dHIob3duZXIsICJwcmVmaXgiKToKKyAgICAgICAgICAgICAgICBtb2RfbmFtZSA9IGYie293
bmVyLnByZWZpeH06e21vZF9uYW1lfSIKKyAgICAgICAgICAgIGNtZF9uYW1lID0gZiJ7bW9kX25h
bWV9Lnt0b19jYW1lbGNhc2UobmFtZSl9IgorCisgICAgICAgICAgICBmdXR1cmUgPSBhd2FpdCBz
ZWxmLnNlc3Npb24uc2VuZF9jb21tYW5kKGNtZF9uYW1lLCBwYXJhbXMpCisgICAgICAgICAgICBy
ZXN1bHQgPSBhd2FpdCBmdXR1cmUKKworICAgICAgICAgICAgaWYgcmVzdWx0X2ZuIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgICMgQ29udmVydCB0aGUgcmVzdWx0IGlmIHdlIGhhdmUgYSBj
b252ZXJzaW9uIGZ1bmN0aW9uIGRlZmluZWQKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1
bHRfZm4oc2VsZiwgcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgICAg
ICMgT3ZlcndyaXRlIHRoZSBtZXRob2Qgb24gdGhlIG93bmVyIGNsYXNzIHdpdGggdGhlIHdyYXBw
ZXIKKyAgICAgICAgc2V0YXR0cihvd25lciwgbmFtZSwgaW5uZXIpCisKKyAgICBkZWYgX19jYWxs
X18oKmFyZ3M6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gQXdhaXRhYmxlW0FueV06CisgICAgICAg
ICMgVGhpcyBpc24ndCByZWFsbHkgdXNlZCwgYnV0IG15cHkgZG9lc24ndCB1bmRlcnN0YW5kIF9f
c2V0X25hbWVfXworICAgICAgICBwYXNzCisKKworZGVmIHRvX2NhbWVsY2FzZShuYW1lOiBzdHIp
IC0+IHN0cjoKKyAgICAiIiJDb252ZXJ0IGEgcHl0aG9uIHN0eWxlIG1ldGhvZCBuYW1lIGZvb19i
YXIgdG8gYSBCaURpIGNvbW1hbmQgbmFtZSBmb29CYXIiIiIKKyAgICBwYXJ0cyA9IG5hbWUuc3Bs
aXQoIl8iKQorICAgIHBhcnRzWzBdID0gcGFydHNbMF0ubG93ZXIoKQorICAgIGZvciBpIGluIHJh
bmdlKDEsIGxlbihwYXJ0cykpOgorICAgICAgICBwYXJ0c1tpXSA9IHBhcnRzW2ldLnRpdGxlKCkK
KyAgICByZXR1cm4gIiIuam9pbihwYXJ0cykKKworCitjbGFzcyBCaWRpTW9kdWxlOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uOiBCaWRpU2Vzc2lvbik6CisgICAgICAgIHNlbGYuc2Vz
c2lvbiA9IHNlc3Npb24KKworCitjbGFzcyBTZXNzaW9uKEJpZGlNb2R1bGUpOgorICAgIEBjb21t
YW5kCisgICAgZGVmIG5ldyhzZWxmLCBjYXBhYmlsaXRpZXM6IE1hcHBpbmdbc3RyLCBBbnldKSAt
PiBNYXBwaW5nW3N0ciwgTWFwcGluZ1tzdHIsIEFueV1dOgorICAgICAgICByZXR1cm4geyJjYXBh
YmlsaXRpZXMiOiBjYXBhYmlsaXRpZXN9CisKKyAgICBAbmV3LnJlc3VsdAorICAgIGRlZiBfbmV3
KHNlbGYsIHJlc3VsdDogTWFwcGluZ1tzdHIsIEFueV0pIC0+IEFueToKKyAgICAgICAgcmV0dXJu
IHJlc3VsdC5nZXQoInNlc3Npb25faWQiKSwgcmVzdWx0LmdldCgiY2FwYWJpbGl0aWVzIiwge30p
CisKKyAgICBAY29tbWFuZAorICAgIGRlZiBzdWJzY3JpYmUoc2VsZiwKKyAgICAgICAgICAgICAg
ICAgIGV2ZW50czogT3B0aW9uYWxbTGlzdFtzdHJdXSA9IE5vbmUsCisgICAgICAgICAgICAgICAg
ICBjb250ZXh0czogT3B0aW9uYWxbTGlzdFtzdHJdXSA9IE5vbmUpIC0+IE1hcHBpbmdbc3RyLCBB
bnldOgorICAgICAgICBwYXJhbXM6IE11dGFibGVNYXBwaW5nW3N0ciwgQW55XSA9IHsiZXZlbnRz
IjogZXZlbnRzIGlmIGV2ZW50cyBpcyBub3QgTm9uZSBlbHNlIFtdfQorICAgICAgICBpZiBjb250
ZXh0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHBhcmFtc1siY29udGV4dHMiXSA9IGNvbnRl
eHRzCisgICAgICAgIHJldHVybiBwYXJhbXMKKworICAgIEBjb21tYW5kCisgICAgZGVmIHVuc3Vi
c2NyaWJlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgIGV2ZW50czogT3B0aW9uYWxbTGlzdFtz
dHJdXSA9IE5vbmUsCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHRzOiBPcHRpb25hbFtMaXN0
W3N0cl1dID0gTm9uZSkgLT4gTWFwcGluZ1tzdHIsIEFueV06CisgICAgICAgIHBhcmFtczogTXV0
YWJsZU1hcHBpbmdbc3RyLCBBbnldID0geyJldmVudHMiOiBldmVudHMgaWYgZXZlbnRzIGlzIG5v
dCBOb25lIGVsc2UgW119CisgICAgICAgIGlmIGNvbnRleHRzIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgcGFyYW1zWyJjb250ZXh0cyJdID0gY29udGV4dHMKKyAgICAgICAgcmV0dXJuIHBhcmFt
cworCisKK2NsYXNzIFRlc3QoQmlkaU1vZHVsZSk6CisgICAgIiIiVmVyeSB0ZW1wb3JhcnkgbW9k
dWxlIHRoYXQgZG9lcyBub3RoaW5nLCBleGNlcHQgZGVtb25zdHJhdGUgYSB2ZW5kb3IgcHJlZml4
IGFuZAorICAgIHByb3ZpZGUgYSB3YXkgdG8gd29yayB3aXRoIEdlY2tvJ3MgY3VycmVudCBza2Vs
ZXRvbiBpbXBsZW1lbnRhdGlvbi4iIiIKKworICAgIHByZWZpeCA9ICJtb3oiCisKKyAgICBAY29t
bWFuZAorICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVy
biBrd2FyZ3MKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQppbmRleCBmNGUzYzc2Mzc5NWUu
LjJjN2IxYzVkYmViMSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQpAQCAtMSw5ICsx
LDkgQEAKIGZyb20gLiBpbXBvcnQgZXJyb3IKIGZyb20gLiBpbXBvcnQgcHJvdG9jb2wKIGZyb20g
LiBpbXBvcnQgdHJhbnNwb3J0Citmcm9tIC5iaWRpLmNsaWVudCBpbXBvcnQgQmlkaVNlc3Npb24K
IAotZnJvbSBzaXggaW1wb3J0IHN0cmluZ190eXBlcwotZnJvbSBzaXgubW92ZXMudXJsbGliIGlt
cG9ydCBwYXJzZSBhcyB1cmxwYXJzZQorZnJvbSB1cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVybHBh
cnNlCiAKIAogZGVmIGNvbW1hbmQoZnVuYyk6CkBAIC0xMTYsMTQgKzExNiw0OSBAQCBjbGFzcyBB
Y3Rpb25TZXF1ZW5jZShvYmplY3QpOgogICAgIGRlZiBfa2V5X2FjdGlvbihzZWxmLCBzdWJ0eXBl
LCB2YWx1ZSk6CiAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsidHlwZSI6IHN1YnR5cGUs
ICJ2YWx1ZSI6IHZhbHVlfSkKIAotICAgIGRlZiBfcG9pbnRlcl9hY3Rpb24oc2VsZiwgc3VidHlw
ZSwgYnV0dG9uKToKLSAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjogc3VidHlw
ZSwgImJ1dHRvbiI6IGJ1dHRvbn0pCisgICAgZGVmIF9wb2ludGVyX2FjdGlvbihzZWxmLCBzdWJ0
eXBlLCBidXR0b249Tm9uZSwgeD1Ob25lLCB5PU5vbmUsIGR1cmF0aW9uPU5vbmUsIG9yaWdpbj1O
b25lLCB3aWR0aD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PU5vbmUsIHBy
ZXNzdXJlPU5vbmUsIHRhbmdlbnRpYWxfcHJlc3N1cmU9Tm9uZSwgdGlsdF94PU5vbmUsCisgICAg
ICAgICAgICAgICAgICAgICAgICB0aWx0X3k9Tm9uZSwgdHdpc3Q9Tm9uZSwgYWx0aXR1ZGVfYW5n
bGU9Tm9uZSwgYXppbXV0aF9hbmdsZT1Ob25lKToKKyAgICAgICAgYWN0aW9uID0geworICAgICAg
ICAgICAgInR5cGUiOiBzdWJ0eXBlCisgICAgICAgIH0KKyAgICAgICAgaWYgYnV0dG9uIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJidXR0b24iXSA9IGJ1dHRvbgorICAgICAgICBp
ZiB4IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJ4Il0gPSB4CisgICAgICAgIGlm
IHkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bInkiXSA9IHkKKyAgICAgICAgaWYg
ZHVyYXRpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImR1cmF0aW9uIl0gPSBk
dXJhdGlvbgorICAgICAgICBpZiBvcmlnaW4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rp
b25bIm9yaWdpbiJdID0gb3JpZ2luCisgICAgICAgIGlmIHdpZHRoIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgYWN0aW9uWyJ3aWR0aCJdID0gd2lkdGgKKyAgICAgICAgaWYgaGVpZ2h0IGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJoZWlnaHQiXSA9IGhlaWdodAorICAgICAgICBp
ZiBwcmVzc3VyZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsicHJlc3N1cmUiXSA9
IHByZXNzdXJlCisgICAgICAgIGlmIHRhbmdlbnRpYWxfcHJlc3N1cmUgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICBhY3Rpb25bInRhbmdlbnRpYWxQcmVzc3VyZSJdID0gdGFuZ2VudGlhbF9wcmVz
c3VyZQorICAgICAgICBpZiB0aWx0X3ggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25b
InRpbHRYIl0gPSB0aWx0X3gKKyAgICAgICAgaWYgdGlsdF95IGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgYWN0aW9uWyJ0aWx0WSJdID0gdGlsdF95CisgICAgICAgIGlmIHR3aXN0IGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgYWN0aW9uWyJ0d2lzdCJdID0gdHdpc3QKKyAgICAgICAgaWYgYWx0
aXR1ZGVfYW5nbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImFsdGl0dWRlQW5n
bGUiXSA9IGFsdGl0dWRlX2FuZ2xlCisgICAgICAgIGlmIGF6aW11dGhfYW5nbGUgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBhY3Rpb25bImF6aW11dGhBbmdsZSJdID0gYXppbXV0aF9hbmdsZQor
ICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChhY3Rpb24pCiAKICAgICBkZWYgcGF1c2Uoc2Vs
ZiwgZHVyYXRpb24pOgogICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5cGUiOiAicGF1
c2UiLCAiZHVyYXRpb24iOiBkdXJhdGlvbn0pCiAgICAgICAgIHJldHVybiBzZWxmCiAKLSAgICBk
ZWYgcG9pbnRlcl9tb3ZlKHNlbGYsIHgsIHksIGR1cmF0aW9uPU5vbmUsIG9yaWdpbj1Ob25lKToK
KyAgICBkZWYgcG9pbnRlcl9tb3ZlKHNlbGYsIHgsIHksIGR1cmF0aW9uPU5vbmUsIG9yaWdpbj1O
b25lLCB3aWR0aD1Ob25lLCBoZWlnaHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIHByZXNz
dXJlPU5vbmUsIHRhbmdlbnRpYWxfcHJlc3N1cmU9Tm9uZSwgdGlsdF94PU5vbmUsIHRpbHRfeT1O
b25lLAorICAgICAgICAgICAgICAgICAgICAgdHdpc3Q9Tm9uZSwgYWx0aXR1ZGVfYW5nbGU9Tm9u
ZSwgYXppbXV0aF9hbmdsZT1Ob25lKToKICAgICAgICAgIiIiUXVldWUgYSBwb2ludGVyTW92ZSBh
Y3Rpb24uCiAKICAgICAgICAgOnBhcmFtIHg6IERlc3RpbmF0aW9uIHgtYXhpcyBjb29yZGluYXRl
IG9mIHBvaW50ZXIgaW4gQ1NTIHBpeGVscy4KQEAgLTEzMywxNiArMTY4LDEwIEBAIGNsYXNzIEFj
dGlvblNlcXVlbmNlKG9iamVjdCk6CiAgICAgICAgIDpwYXJhbSBvcmlnaW46IE9yaWdpbiBvZiBj
b29yZGluYXRlcywgZWl0aGVyICJ2aWV3cG9ydCIsICJwb2ludGVyIiBvcgogICAgICAgICAgICAg
ICAgICAgICAgICBhbiBFbGVtZW50LiBJZiBOb25lLCByZW1vdGUgZW5kIGRlZmF1bHRzIHRvICJ2
aWV3cG9ydCIuCiAgICAgICAgICIiIgotICAgICAgICBhY3Rpb24gPSB7Ci0gICAgICAgICAgICAi
dHlwZSI6ICJwb2ludGVyTW92ZSIsCi0gICAgICAgICAgICAieCI6IHgsCi0gICAgICAgICAgICAi
eSI6IHkKLSAgICAgICAgfQotICAgICAgICBpZiBkdXJhdGlvbiBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIGFjdGlvblsiZHVyYXRpb24iXSA9IGR1cmF0aW9uCi0gICAgICAgIGlmIG9yaWdpbiBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIGFjdGlvblsib3JpZ2luIl0gPSBvcmlnaW4KLSAgICAg
ICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoYWN0aW9uKQorICAgICAgICBzZWxmLl9wb2ludGVyX2Fj
dGlvbigicG9pbnRlck1vdmUiLCB4PXgsIHk9eSwgZHVyYXRpb249ZHVyYXRpb24sIG9yaWdpbj1v
cmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXdpZHRoLCBoZWlnaHQ9
aGVpZ2h0LCBwcmVzc3VyZT1wcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGFuZ2VudGlhbF9wcmVzc3VyZT10YW5nZW50aWFsX3ByZXNzdXJlLCB0aWx0X3g9dGlsdF94LCB0
aWx0X3k9dGlsdF95LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0d2lzdD10d2lzdCwg
YWx0aXR1ZGVfYW5nbGU9YWx0aXR1ZGVfYW5nbGUsIGF6aW11dGhfYW5nbGU9YXppbXV0aF9hbmds
ZSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBwb2ludGVyX3VwKHNlbGYsIGJ1dHRv
bj0wKToKQEAgLTE1MSwxNiArMTgwLDIxIEBAIGNsYXNzIEFjdGlvblNlcXVlbmNlKG9iamVjdCk6
CiAgICAgICAgIDpwYXJhbSBidXR0b246IFBvaW50ZXIgYnV0dG9uIHRvIHBlcmZvcm0gYWN0aW9u
IHdpdGguCiAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQ6IDAsIHdoaWNoIHJlcHJlc2Vu
dHMgbWFpbiBkZXZpY2UgYnV0dG9uLgogICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcG9pbnRl
cl9hY3Rpb24oInBvaW50ZXJVcCIsIGJ1dHRvbikKKyAgICAgICAgc2VsZi5fcG9pbnRlcl9hY3Rp
b24oInBvaW50ZXJVcCIsIGJ1dHRvbj1idXR0b24pCiAgICAgICAgIHJldHVybiBzZWxmCiAKLSAg
ICBkZWYgcG9pbnRlcl9kb3duKHNlbGYsIGJ1dHRvbj0wKToKKyAgICBkZWYgcG9pbnRlcl9kb3du
KHNlbGYsIGJ1dHRvbj0wLCB3aWR0aD1Ob25lLCBoZWlnaHQ9Tm9uZSwgcHJlc3N1cmU9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgICAgIHRhbmdlbnRpYWxfcHJlc3N1cmU9Tm9uZSwgdGlsdF94PU5v
bmUsIHRpbHRfeT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgdHdpc3Q9Tm9uZSwgYWx0aXR1
ZGVfYW5nbGU9Tm9uZSwgYXppbXV0aF9hbmdsZT1Ob25lKToKICAgICAgICAgIiIiUXVldWUgYSBw
b2ludGVyRG93biBhY3Rpb24gZm9yIGBidXR0b25gLgogCiAgICAgICAgIDpwYXJhbSBidXR0b246
IFBvaW50ZXIgYnV0dG9uIHRvIHBlcmZvcm0gYWN0aW9uIHdpdGguCiAgICAgICAgICAgICAgICAg
ICAgICAgIERlZmF1bHQ6IDAsIHdoaWNoIHJlcHJlc2VudHMgbWFpbiBkZXZpY2UgYnV0dG9uLgog
ICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcG9pbnRlcl9hY3Rpb24oInBvaW50ZXJEb3duIiwg
YnV0dG9uKQorICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlckRvd24iLCBidXR0
b249YnV0dG9uLCB3aWR0aD13aWR0aCwgaGVpZ2h0PWhlaWdodCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJlc3N1cmU9cHJlc3N1cmUsIHRhbmdlbnRpYWxfcHJlc3N1cmU9dGFuZ2Vu
dGlhbF9wcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsdF94PXRpbHRf
eCwgdGlsdF95PXRpbHRfeSwgdHdpc3Q9dHdpc3QsIGFsdGl0dWRlX2FuZ2xlPWFsdGl0dWRlX2Fu
Z2xlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhemltdXRoX2FuZ2xlPWF6aW11dGhf
YW5nbGUpCiAgICAgICAgIHJldHVybiBzZWxmCiAKICAgICBkZWYgY2xpY2soc2VsZiwgZWxlbWVu
dD1Ob25lLCBidXR0b249MCk6CkBAIC0yNzMsMTkgKzMwNywyMiBAQCBjbGFzcyBXaW5kb3cob2Jq
ZWN0KToKIAogICAgICAgICByZXR1cm4gaGFuZGxlcwogCi0gICAgQHByb3BlcnR5CisgICAgIyBU
aGUgbWFueSAidHlwZTogaWdub3JlIiBjb21tZW50cyBoZXJlIGFuZCBiZWxvdyBhcmUgdG8gc2ls
ZW5jZSBteXB5J3MKKyAgICAjICJEZWNvcmF0ZWQgcHJvcGVydHkgbm90IHN1cHBvcnRlZCIgZXJy
b3IsIHdoaWNoIGlzIGR1ZSB0byBhIGxpbWl0YXRpb24KKyAgICAjIGluIG15cHksIHNlZSBodHRw
czovL2dpdGh1Yi5jb20vcHl0aG9uL215cHkvaXNzdWVzLzEzNjIuCisgICAgQHByb3BlcnR5ICAj
IHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHJlY3Qoc2VsZik6CiAgICAgICAg
IHJldHVybiBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ3aW5kb3cv
cmVjdCIpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAg
ICAgQGNvbW1hbmQKICAgICBkZWYgc2l6ZShzZWxmKToKICAgICAgICAgIiIiR2V0cyB0aGUgd2lu
ZG93IHNpemUgYXMgYSB0dXBsZSBvZiBgKHdpZHRoLCBoZWlnaHQpYC4iIiIKICAgICAgICAgcmVj
dCA9IHNlbGYucmVjdAogICAgICAgICByZXR1cm4gKHJlY3RbIndpZHRoIl0sIHJlY3RbImhlaWdo
dCJdKQogCi0gICAgQHNpemUuc2V0dGVyCisgICAgQHNpemUuc2V0dGVyICAjIHR5cGU6IGlnbm9y
ZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHNpemUoc2VsZiwgbmV3X3NpemUpOgogICAgICAgICAi
IiJTZXQgd2luZG93IHNpemUgYnkgcGFzc2luZyBhIHR1cGxlIG9mIGAod2lkdGgsIGhlaWdodClg
LiIiIgpAQCAtMjkzLDE0ICszMzAsMTQgQEAgY2xhc3MgV2luZG93KG9iamVjdCk6CiAgICAgICAg
IGJvZHkgPSB7IndpZHRoIjogd2lkdGgsICJoZWlnaHQiOiBoZWlnaHR9CiAgICAgICAgIHNlbGYu
c2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ3aW5kb3cvcmVjdCIsIGJvZHkp
CiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNv
bW1hbmQKICAgICBkZWYgcG9zaXRpb24oc2VsZik6CiAgICAgICAgICIiIkdldHMgdGhlIHdpbmRv
dyBwb3NpdGlvbiBhcyBhIHR1cGxlIG9mIGAoeCwgeSlgLiIiIgogICAgICAgICByZWN0ID0gc2Vs
Zi5yZWN0CiAgICAgICAgIHJldHVybiAocmVjdFsieCJdLCByZWN0WyJ5Il0pCiAKLSAgICBAcG9z
aXRpb24uc2V0dGVyCisgICAgQHBvc2l0aW9uLnNldHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBA
Y29tbWFuZAogICAgIGRlZiBwb3NpdGlvbihzZWxmLCBuZXdfcG9zaXRpb24pOgogICAgICAgICAi
IiJTZXQgd2luZG93IHBvc2l0aW9uIGJ5IHBhc3NpbmcgYSB0dXBsZSBvZiBgKHgsIHkpYC4iIiIK
QEAgLTMzOCw2ICszNzUsNDIgQEAgY2xhc3MgRnJhbWUob2JqZWN0KToKICAgICAgICAgcmV0dXJu
IGNscyh1dWlkLCBzZXNzaW9uKQogCiAKK2NsYXNzIFNoYWRvd1Jvb3Qob2JqZWN0KToKKyAgICBp
ZGVudGlmaWVyID0gInNoYWRvdy02MDY2LTExZTQtYTUyZS00ZjczNTQ2NmNlY2YiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbiwgaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgQ29u
c3RydWN0IGEgbmV3IHNoYWRvdyByb290IHJlcHJlc2VudGF0aW9uLgorCisgICAgICAgIDpwYXJh
bSBpZDogU2hhZG93IHJvb3QgVVVJRCB3aGljaCBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MKKyAgICAg
ICAgICAgIGFsbCBicm93c2luZyBjb250ZXh0cy4KKyAgICAgICAgOnBhcmFtIHNlc3Npb246IEN1
cnJlbnQgYGB3ZWJkcml2ZXIuU2Vzc2lvbmBgLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5p
ZCA9IGlkCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uLCBzZXNzaW9uKToKKyAgICAgICAgdXVpZCA9
IGpzb25bU2hhZG93Um9vdC5pZGVudGlmaWVyXQorICAgICAgICByZXR1cm4gY2xzKHV1aWQsIHNl
c3Npb24pCisKKyAgICBkZWYgc2VuZF9zaGFkb3dfY29tbWFuZChzZWxmLCBtZXRob2QsIHVyaSwg
Ym9keT1Ob25lKToKKyAgICAgICAgdXJsID0gInNoYWRvdy97fS97fSIuZm9ybWF0KHNlbGYuaWQs
IHVyaSkKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCht
ZXRob2QsIHVybCwgYm9keSkKKworICAgIEBjb21tYW5kCisgICAgZGVmIGZpbmRfZWxlbWVudChz
ZWxmLCBzdHJhdGVneSwgc2VsZWN0b3IpOgorICAgICAgICBib2R5ID0geyJ1c2luZyI6IHN0cmF0
ZWd5LAorICAgICAgICAgICAgICAgICJ2YWx1ZSI6IHNlbGVjdG9yfQorICAgICAgICByZXR1cm4g
c2VsZi5zZW5kX3NoYWRvd19jb21tYW5kKCJQT1NUIiwgImVsZW1lbnQiLCBib2R5KQorCisgICAg
QGNvbW1hbmQKKyAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBzdHJhdGVneSwgc2VsZWN0b3Ip
OgorICAgICAgICBib2R5ID0geyJ1c2luZyI6IHN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICJ2
YWx1ZSI6IHNlbGVjdG9yfQorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3NoYWRvd19jb21tYW5k
KCJQT1NUIiwgImVsZW1lbnRzIiwgYm9keSkKKworCiBjbGFzcyBGaW5kKG9iamVjdCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb24pOgogICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNz
aW9uCkBAIC0zNjUsNyArNDM4LDcgQEAgY2xhc3MgQ29va2llcyhvYmplY3QpOgogICAgICAgICBj
b29raWUgPSB7Im5hbWUiOiBuYW1lLAogICAgICAgICAgICAgICAgICAgInZhbHVlIjogTm9uZX0K
IAotICAgICAgICBpZiBpc2luc3RhbmNlKG5hbWUsIHN0cmluZ190eXBlcyk6CisgICAgICAgIGlm
IGlzaW5zdGFuY2UobmFtZSwgc3RyKToKICAgICAgICAgICAgIGNvb2tpZVsidmFsdWUiXSA9IHZh
bHVlCiAgICAgICAgIGVsaWYgaGFzYXR0cih2YWx1ZSwgInZhbHVlIik6CiAgICAgICAgICAgICBj
b29raWVbInZhbHVlIl0gPSB2YWx1ZS52YWx1ZQpAQCAtMzg0LDEyICs0NTcsMTIgQEAgY2xhc3Mg
VXNlclByb21wdChvYmplY3QpOgogICAgIGRlZiBhY2NlcHQoc2VsZik6CiAgICAgICAgIHNlbGYu
c2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJhbGVydC9hY2NlcHQiKQogCi0g
ICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5k
CiAgICAgZGVmIHRleHQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlc3Npb24uc2VuZF9z
ZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJhbGVydC90ZXh0IikKIAotICAgIEB0ZXh0LnNldHRlcgor
ICAgIEB0ZXh0LnNldHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB0
ZXh0KHNlbGYsIHZhbHVlKToKICAgICAgICAgYm9keSA9IHsidGV4dCI6IHZhbHVlfQpAQCAtNDAx
LDggKzQ3NCwxNiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIGhv
c3QsCiAgICAgICAgICAgICAgICAgIHBvcnQsCiAgICAgICAgICAgICAgICAgIHVybF9wcmVmaXg9
Ii8iLAorICAgICAgICAgICAgICAgICBlbmFibGVfYmlkaT1GYWxzZSwKICAgICAgICAgICAgICAg
ICAgY2FwYWJpbGl0aWVzPU5vbmUsCiAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbj1Ob25lKToK
KworICAgICAgICBpZiBlbmFibGVfYmlkaToKKyAgICAgICAgICAgIGlmIGNhcGFiaWxpdGllcyBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMuc2V0ZGVmYXVsdCgiYWx3
YXlzTWF0Y2giLCB7fSkudXBkYXRlKHsid2ViU29ja2V0VXJsIjogVHJ1ZX0pCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IHsiYWx3YXlzTWF0Y2giOiB7
IndlYlNvY2tldFVybCI6IFRydWV9fQorCiAgICAgICAgIHNlbGYudHJhbnNwb3J0ID0gdHJhbnNw
b3J0LkhUVFBXaXJlUHJvdG9jb2woaG9zdCwgcG9ydCwgdXJsX3ByZWZpeCkKICAgICAgICAgc2Vs
Zi5yZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzCiAgICAgICAgIHNlbGYuY2Fw
YWJpbGl0aWVzID0gTm9uZQpAQCAtNDEwLDYgKzQ5MSw4IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0
KToKICAgICAgICAgc2VsZi50aW1lb3V0cyA9IE5vbmUKICAgICAgICAgc2VsZi53aW5kb3cgPSBO
b25lCiAgICAgICAgIHNlbGYuZmluZCA9IE5vbmUKKyAgICAgICAgc2VsZi5lbmFibGVfYmlkaSA9
IGVuYWJsZV9iaWRpCisgICAgICAgIHNlbGYuYmlkaV9zZXNzaW9uID0gTm9uZQogICAgICAgICBz
ZWxmLmV4dGVuc2lvbiA9IE5vbmUKICAgICAgICAgc2VsZi5leHRlbnNpb25fY2xzID0gZXh0ZW5z
aW9uCiAKQEAgLTQzNiw2ICs1MTksOSBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgZGVm
IF9fZGVsX18oc2VsZik6CiAgICAgICAgIHNlbGYuZW5kKCkKIAorICAgIGRlZiBtYXRjaChzZWxm
LCBjYXBhYmlsaXRpZXMpOgorICAgICAgICByZXR1cm4gc2VsZi5yZXF1ZXN0ZWRfY2FwYWJpbGl0
aWVzID09IGNhcGFiaWxpdGllcworCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgogICAgICAgICAiIiJT
dGFydCBhIG5ldyBXZWJEcml2ZXIgc2Vzc2lvbi4KIApAQCAtNDU4LDYgKzU0NCwxNCBAQCBjbGFz
cyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IHZhbHVlWyJzZXNz
aW9uSWQiXQogICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IHZhbHVlWyJjYXBhYmlsaXRpZXMi
XQogCisgICAgICAgIGlmICJ3ZWJTb2NrZXRVcmwiIGluIHNlbGYuY2FwYWJpbGl0aWVzOgorICAg
ICAgICAgICAgc2VsZi5iaWRpX3Nlc3Npb24gPSBCaWRpU2Vzc2lvbi5mcm9tX2h0dHAoc2VsZi5z
ZXNzaW9uX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMpCisgICAgICAgIGVsaWYgc2VsZi5lbmFibGVfYmlk
aToKKyAgICAgICAgICAgIHNlbGYuZW5kKCkKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLlNlc3Np
b25Ob3RDcmVhdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJSZXF1ZXN0ZWQgYmlkaSBz
ZXNzaW9uLCBidXQgd2ViU29ja2V0VXJsIGNhcGFiaWxpdHkgbm90IGZvdW5kIikKKwogICAgICAg
ICBpZiBzZWxmLmV4dGVuc2lvbl9jbHM6CiAgICAgICAgICAgICBzZWxmLmV4dGVuc2lvbiA9IHNl
bGYuZXh0ZW5zaW9uX2NscyhzZWxmKQogCkBAIC00NzAsNyArNTY0LDcgQEAgY2xhc3MgU2Vzc2lv
bihvYmplY3QpOgogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuc2VuZF9jb21tYW5k
KCJERUxFVEUiLCAic2Vzc2lvbi8lcyIgJSBzZWxmLnNlc3Npb25faWQpCi0gICAgICAgIGV4Y2Vw
dCBlcnJvci5JbnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9uOgorICAgICAgICBleGNlcHQgKE9TRXJy
b3IsIGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb24pOgogICAgICAgICAgICAgcGFzcwog
ICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gTm9uZQpAQCAt
NTQ1LDEyICs2MzksMTIgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgICAgICB1cmwgPSB1
cmxwYXJzZS51cmxqb2luKCJzZXNzaW9uLyVzLyIgJSBzZWxmLnNlc3Npb25faWQsIHVyaSkKICAg
ICAgICAgcmV0dXJuIHNlbGYuc2VuZF9jb21tYW5kKG1ldGhvZCwgdXJsLCBib2R5LCB0aW1lb3V0
KQogCi0gICAgQHByb3BlcnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBj
b21tYW5kCiAgICAgZGVmIHVybChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNz
aW9uX2NvbW1hbmQoIkdFVCIsICJ1cmwiKQogCi0gICAgQHVybC5zZXR0ZXIKKyAgICBAdXJsLnNl
dHRlciAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB1cmwoc2VsZiwgdXJs
KToKICAgICAgICAgaWYgdXJscGFyc2UudXJsc3BsaXQodXJsKS5uZXRsb2MgaXMgTm9uZToKQEAg
LTU3MCwxMiArNjY0LDEyIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICBkZWYgcmVmcmVz
aChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1Qi
LCAicmVmcmVzaCIpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdu
b3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgdGl0bGUoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAidGl0bGUiKQogCi0gICAgQHByb3BlcnR5
CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVmIHNv
dXJjZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdF
VCIsICJzb3VyY2UiKQpAQCAtNTg3LDEyICs2ODEsMTIgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3Qp
OgogCiAgICAgICAgIHJldHVybiB2YWx1ZVsiaGFuZGxlIl0KIAotICAgIEBwcm9wZXJ0eQorICAg
IEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAogICAgIGRlZiB3aW5kb3df
aGFuZGxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgi
R0VUIiwgIndpbmRvdyIpCiAKLSAgICBAd2luZG93X2hhbmRsZS5zZXR0ZXIKKyAgICBAd2luZG93
X2hhbmRsZS5zZXR0ZXIgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgd2lu
ZG93X2hhbmRsZShzZWxmLCBoYW5kbGUpOgogICAgICAgICBib2R5ID0geyJoYW5kbGUiOiBoYW5k
bGV9CkBAIC02MDgsMTIgKzcwMiwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAKICAgICAg
ICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCB1cmwsIGJvZHkpCiAK
LSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1h
bmQKICAgICBkZWYgaGFuZGxlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNz
aW9uX2NvbW1hbmQoIkdFVCIsICJ3aW5kb3cvaGFuZGxlcyIpCiAKLSAgICBAcHJvcGVydHkKKyAg
ICBAcHJvcGVydHkgICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgYWN0aXZl
X2VsZW1lbnQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5k
KCJHRVQiLCAiZWxlbWVudC9hY3RpdmUiKQpAQCAtNjgzLDcgKzc3Nyw2IEBAIGNsYXNzIFNlc3Np
b24ob2JqZWN0KToKICAgICBkZWYgc2NyZWVuc2hvdChzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJzY3JlZW5zaG90IikKIAotCiBjbGFzcyBF
bGVtZW50KG9iamVjdCk6CiAgICAgIiIiCiAgICAgUmVwcmVzZW50YXRpb24gb2YgYSB3ZWIgZWxl
bWVudC4KQEAgLTc0MiwxMiArODM1LDEyIEBAIGNsYXNzIEVsZW1lbnQob2JqZWN0KToKICAgICBk
ZWYgc2VuZF9rZXlzKHNlbGYsIHRleHQpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1l
bnRfY29tbWFuZCgiUE9TVCIsICJ2YWx1ZSIsIHsidGV4dCI6IHRleHR9KQogCi0gICAgQHByb3Bl
cnR5CisgICAgQHByb3BlcnR5ICAjIHR5cGU6IGlnbm9yZQogICAgIEBjb21tYW5kCiAgICAgZGVm
IHRleHQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJH
RVQiLCAidGV4dCIpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkgICMgdHlwZTogaWdu
b3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgbmFtZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJuYW1lIikKQEAgLTc1NiwxMiArODQ5LDEy
IEBAIGNsYXNzIEVsZW1lbnQob2JqZWN0KToKICAgICBkZWYgc3R5bGUoc2VsZiwgcHJvcGVydHlf
bmFtZSk6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAi
Y3NzLyVzIiAlIHByb3BlcnR5X25hbWUpCiAKLSAgICBAcHJvcGVydHkKKyAgICBAcHJvcGVydHkg
ICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgcmVjdChzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJyZWN0IikKIAotICAg
IEBwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29tbWFuZAog
ICAgIGRlZiBzZWxlY3RlZChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50
X2NvbW1hbmQoIkdFVCIsICJzZWxlY3RlZCIpCkBAIC03NzAsNiArODYzLDExIEBAIGNsYXNzIEVs
ZW1lbnQob2JqZWN0KToKICAgICBkZWYgc2NyZWVuc2hvdChzZWxmKToKICAgICAgICAgcmV0dXJu
IHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJzY3JlZW5zaG90IikKIAorICAgIEBw
cm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKKyAgICBAY29tbWFuZAorICAgIGRlZiBzaGFkb3dfcm9v
dChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIs
ICJzaGFkb3ciKQorCiAgICAgQGNvbW1hbmQKICAgICBkZWYgYXR0cmlidXRlKHNlbGYsIG5hbWUp
OgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgImF0dHJp
YnV0ZS8lcyIgJSBuYW1lKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQppbmRleCA4Mzc5NjU2
ZDczZGQuLmE0MTNhOTUwZDQ4ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkKQEAgLTEs
MTIgKzEsMTcgQEAKIGltcG9ydCBjb2xsZWN0aW9ucwogaW1wb3J0IGpzb24KIAotZnJvbSBzaXgg
aW1wb3J0IGl0ZXJ2YWx1ZXMKK2Zyb20gdHlwaW5nIGltcG9ydCBDbGFzc1ZhciwgRGVmYXVsdERp
Y3QsIFR5cGUKIAogCiBjbGFzcyBXZWJEcml2ZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICBo
dHRwX3N0YXR1cyA9IE5vbmUKLSAgICBzdGF0dXNfY29kZSA9IE5vbmUKKyAgICAjIFRoZSBzdGF0
dXNfY29kZSBjbGFzcyB2YXJpYWJsZSBpcyB1c2VkIHRvIG1hcCB0aGUgSlNPTiBFcnJvciBDb2Rl
IChzZWUKKyAgICAjIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvI2Vycm9ycykgdG8g
YSBXZWJEcml2ZXJFeGNlcHRpb24gc3ViY2xhc3MuCisgICAgIyBIb3dldmVyLCBodHRwX3N0YXR1
cyBuZWVkIG5vdCBtYXRjaCwgYW5kIGJvdGggYXJlIHNldCBhcyBpbnN0YW5jZQorICAgICMgdmFy
aWFibGVzLCBzaGFkb3dpbmcgdGhlIGNsYXNzIHZhcmlhYmxlcy4gVE9ETzogTWF0Y2ggb24gYm90
aCBodHRwX3N0YXR1cworICAgICMgYW5kIHN0YXR1c19jb2RlIGFuZCBsZXQgdGhlc2UgYmUgY2xh
c3MgdmFyaWFibGVzIG9ubHkuCisgICAgaHR0cF9zdGF0dXMgPSBOb25lICAjIHR5cGU6IENsYXNz
VmFyW2ludF0KKyAgICBzdGF0dXNfY29kZSA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbc3RyXQog
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGh0dHBfc3RhdHVzPU5vbmUsIHN0YXR1c19jb2RlPU5v
bmUsIG1lc3NhZ2U9Tm9uZSwgc3RhY2t0cmFjZT1Ob25lKToKICAgICAgICAgc3VwZXIoV2ViRHJp
dmVyRXhjZXB0aW9uLCBzZWxmKQpAQCAtMzQsNiArMzksMTEgQEAgY2xhc3MgV2ViRHJpdmVyRXhj
ZXB0aW9uKEV4Y2VwdGlvbik6CiAgICAgICAgIHJldHVybiBtZXNzYWdlCiAKIAorY2xhc3MgRGV0
YWNoZWRTaGFkb3dSb290RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9z
dGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29kZSA9ICJkZXRhY2hlZCBzaGFkb3cgcm9vdCIKKwor
CiBjbGFzcyBFbGVtZW50Q2xpY2tJbnRlcmNlcHRlZEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRp
b24pOgogICAgIGh0dHBfc3RhdHVzID0gNDAwCiAgICAgc3RhdHVzX2NvZGUgPSAiZWxlbWVudCBj
bGljayBpbnRlcmNlcHRlZCIKQEAgLTExNCw2ICsxMjQsMTEgQEAgY2xhc3MgTm9TdWNoRnJhbWVF
eGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICBzdGF0dXNfY29kZSA9ICJubyBzdWNo
IGZyYW1lIgogCiAKK2NsYXNzIE5vU3VjaFNoYWRvd1Jvb3RFeGNlcHRpb24oV2ViRHJpdmVyRXhj
ZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQwNAorICAgIHN0YXR1c19jb2RlID0gIm5vIHN1
Y2ggc2hhZG93IHJvb3QiCisKKwogY2xhc3MgTm9TdWNoV2luZG93RXhjZXB0aW9uKFdlYkRyaXZl
ckV4Y2VwdGlvbik6CiAgICAgaHR0cF9zdGF0dXMgPSA0MDQKICAgICBzdGF0dXNfY29kZSA9ICJu
byBzdWNoIHdpbmRvdyIKQEAgLTIwOSw3ICsyMjQsNyBAQCBkZWYgZ2V0KGVycm9yX2NvZGUpOgog
ICAgIHJldHVybiBfZXJyb3JzLmdldChlcnJvcl9jb2RlLCBXZWJEcml2ZXJFeGNlcHRpb24pCiAK
IAotX2Vycm9ycyA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KCkKLWZvciBpdGVtIGluIGxpc3Qo
aXRlcnZhbHVlcyhsb2NhbHMoKSkpOgorX2Vycm9yczogRGVmYXVsdERpY3Rbc3RyLCBUeXBlW1dl
YkRyaXZlckV4Y2VwdGlvbl1dID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QoKQorZm9yIGl0ZW0g
aW4gbGlzdChsb2NhbHMoKS52YWx1ZXMoKSk6CiAgICAgaWYgdHlwZShpdGVtKSA9PSB0eXBlIGFu
ZCBpc3N1YmNsYXNzKGl0ZW0sIFdlYkRyaXZlckV4Y2VwdGlvbik6CiAgICAgICAgIF9lcnJvcnNb
aXRlbS5zdGF0dXNfY29kZV0gPSBpdGVtCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9wcm90b2NvbC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5
CmluZGV4IGM4MTFmNmYyNmRiNy4uZTcxZTAxZDYyMDgzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9wcm90b2NvbC5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci9wcm90b2NvbC5weQpAQCAtMiw4ICsyLDYgQEAgaW1wb3J0IGpzb24KIAogaW1wb3J0IHdlYmRy
aXZlcgogCi1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCi0KIAogIiIiV2ViRHJpdmVyIHdpcmUg
cHJvdG9jb2wgY29kZWNzLiIiIgogCkBAIC0yMiw2ICsyMCw4IEBAIGNsYXNzIEVuY29kZXIoanNv
bi5KU09ORW5jb2Rlcik6CiAgICAgICAgICAgICByZXR1cm4ge3dlYmRyaXZlci5GcmFtZS5pZGVu
dGlmaWVyOiBvYmouaWR9CiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIHdlYmRyaXZlci5X
aW5kb3cpOgogICAgICAgICAgICAgcmV0dXJuIHt3ZWJkcml2ZXIuRnJhbWUuaWRlbnRpZmllcjog
b2JqLmlkfQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uob2JqLCB3ZWJkcml2ZXIuU2hhZG93Um9v
dCk6CisgICAgICAgICAgICByZXR1cm4ge3dlYmRyaXZlci5TaGFkb3dSb290LmlkZW50aWZpZXI6
IG9iai5pZH0KICAgICAgICAgcmV0dXJuIHN1cGVyKEVuY29kZXIsIHNlbGYpLmRlZmF1bHQob2Jq
KQogCiAKQEAgLTQwLDYgKzQwLDggQEAgY2xhc3MgRGVjb2Rlcihqc29uLkpTT05EZWNvZGVyKToK
ICAgICAgICAgICAgIHJldHVybiB3ZWJkcml2ZXIuRnJhbWUuZnJvbV9qc29uKHBheWxvYWQsIHNl
bGYuc2Vzc2lvbikKICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpIGFuZCB3
ZWJkcml2ZXIuV2luZG93LmlkZW50aWZpZXIgaW4gcGF5bG9hZDoKICAgICAgICAgICAgIHJldHVy
biB3ZWJkcml2ZXIuV2luZG93LmZyb21fanNvbihwYXlsb2FkLCBzZWxmLnNlc3Npb24pCisgICAg
ICAgIGVsaWYgaXNpbnN0YW5jZShwYXlsb2FkLCBkaWN0KSBhbmQgd2ViZHJpdmVyLlNoYWRvd1Jv
b3QuaWRlbnRpZmllciBpbiBwYXlsb2FkOgorICAgICAgICAgICAgcmV0dXJuIHdlYmRyaXZlci5T
aGFkb3dSb290LmZyb21fanNvbihwYXlsb2FkLCBzZWxmLnNlc3Npb24pCiAgICAgICAgIGVsaWYg
aXNpbnN0YW5jZShwYXlsb2FkLCBkaWN0KToKLSAgICAgICAgICAgIHJldHVybiB7azogc2VsZi5v
YmplY3RfaG9vayh2KSBmb3IgaywgdiBpbiBpdGVyaXRlbXMocGF5bG9hZCl9CisgICAgICAgICAg
ICByZXR1cm4ge2s6IHNlbGYub2JqZWN0X2hvb2sodikgZm9yIGssIHYgaW4gcGF5bG9hZC5pdGVt
cygpfQogICAgICAgICByZXR1cm4gcGF5bG9hZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNw
b3J0LnB5CmluZGV4IGU4MzZiMTlhMTU4ZC4uNWExY2UyODllYzA5IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3Bv
cnQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dlYmRyaXZlci93
ZWJkcml2ZXIvdHJhbnNwb3J0LnB5CkBAIC0xLDEwICsxLDkgQEAKIGltcG9ydCBqc29uCiBpbXBv
cnQgc2VsZWN0CiAKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUsIFBZMwotZnJvbSBzaXgubW92
ZXMuY29sbGVjdGlvbnNfYWJjIGltcG9ydCBNYXBwaW5nCi1mcm9tIHNpeC5tb3Zlcy5odHRwX2Ns
aWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KLWZyb20gc2l4Lm1vdmVzLnVybGxpYiBpbXBvcnQg
cGFyc2UgYXMgdXJscGFyc2UKK2Zyb20gaHR0cC5jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9u
Citmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgTGlzdCwgTWFwcGluZywgU2VxdWVuY2UsIFR1cGxl
Citmcm9tIHVybGxpYiBpbXBvcnQgcGFyc2UgYXMgdXJscGFyc2UKIAogZnJvbSAuIGltcG9ydCBl
cnJvcgogCkBAIC0xNCw3ICsxMyw3IEBAIGZyb20gLiBpbXBvcnQgZXJyb3IKIG1pc3NpbmcgPSBv
YmplY3QoKQogCiAKLWNsYXNzIFJlc3BvbnNlSGVhZGVycyhNYXBwaW5nKToKK2NsYXNzIFJlc3Bv
bnNlSGVhZGVycyhNYXBwaW5nW3N0ciwgc3RyXSk6CiAgICAgIiIiUmVhZC1vbmx5IGRpY3Rpb25h
cnktbGlrZSBBUEkgZm9yIGFjY2Vzc2luZyByZXNwb25zZSBoZWFkZXJzLgogCiAgICAgVGhpcyBj
bGFzczoKQEAgLTIzLDExICsyMiw5IEBAIGNsYXNzIFJlc3BvbnNlSGVhZGVycyhNYXBwaW5nKToK
ICAgICAgICogSGFzIGNhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGxvb2t1cC4KICAgICAgICogQWx3
YXlzIHJldHVybnMgYWxsIGhlYWRlciB2YWx1ZXMgdGhhdCBoYXZlIHRoZSBzYW1lIG5hbWUsIHNl
cGFyYXRlZCBieQogICAgICAgICBjb21tYXMuCi0KLSAgICBJdCBkb2VzIG5vdCBlbnN1cmUgaGVh
ZGVyIHR5cGVzIChlLmcuIGJpbmFyeSB2cyBzdHJpbmcpLgogICAgICIiIgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBpdGVtcyk6Ci0gICAgICAgIHNlbGYuaGVhZGVyc19kaWN0ID0ge30KKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgaXRlbXM6IFNlcXVlbmNlW1R1cGxlW3N0ciwgc3RyXV0pOgorICAg
ICAgICBzZWxmLmhlYWRlcnNfZGljdDogRGljdFtzdHIsIExpc3Rbc3RyXV0gPSB7fQogICAgICAg
ICBmb3Iga2V5LCB2YWx1ZSBpbiBpdGVtczoKICAgICAgICAgICAgIGtleSA9IGtleS5sb3dlcigp
CiAgICAgICAgICAgICBpZiBrZXkgbm90IGluIHNlbGYuaGVhZGVyc19kaWN0OgpAQCAtMTQ1LDE1
ICsxNDIsMTggQEAgY2xhc3MgSFRUUFdpcmVQcm90b2NvbChvYmplY3QpOgogICAgIGRlZiBjbG9z
ZShzZWxmKToKICAgICAgICAgIiIiQ2xvc2VzIHRoZSBjdXJyZW50IEhUVFAgY29ubmVjdGlvbiwg
aWYgdGhlcmUgaXMgb25lLiIiIgogICAgICAgICBpZiBzZWxmLl9jb25uOgotICAgICAgICAgICAg
c2VsZi5fY29ubi5jbG9zZSgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2Vs
Zi5fY29ubi5jbG9zZSgpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAg
ICAgICAjIFRoZSByZW1vdGUgY2xvc2VkIHRoZSBjb25uZWN0aW9uCisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICBzZWxmLl9jb25uID0gTm9uZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVm
IGNvbm5lY3Rpb24oc2VsZik6CiAgICAgICAgICIiIkdldHMgdGhlIGN1cnJlbnQgSFRUUCBjb25u
ZWN0aW9uLCBvciBsYXppbHkgY3JlYXRlcyBvbmUuIiIiCiAgICAgICAgIGlmIG5vdCBzZWxmLl9j
b25uOgogICAgICAgICAgICAgY29ubl9rd2FyZ3MgPSB7fQotICAgICAgICAgICAgaWYgbm90IFBZ
MzoKLSAgICAgICAgICAgICAgICBjb25uX2t3YXJnc1sic3RyaWN0Il0gPSBUcnVlCiAgICAgICAg
ICAgICAjIFdlIGFyZSBub3Qgc2V0dGluZyBhbiBIVFRQIHRpbWVvdXQgb3RoZXIgdGhhbiB0aGUg
ZGVmYXVsdCB3aGVuIHRoZQogICAgICAgICAgICAgIyBjb25uZWN0aW9uIGl0cyBjcmVhdGVkLiBU
aGUgc2VuZCBtZXRob2QgaGFzIGEgdGltZW91dCB2YWx1ZSBpZiBuZWVkZWQuCiAgICAgICAgICAg
ICBzZWxmLl9jb25uID0gSFRUUENvbm5lY3Rpb24oc2VsZi5ob3N0LCBzZWxmLnBvcnQsICoqY29u
bl9rd2FyZ3MpCkBAIC0yMzUsNyArMjM1LDcgQEAgY2xhc3MgSFRUUFdpcmVQcm90b2NvbChvYmpl
Y3QpOgogICAgICAgICByZXR1cm4gUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlLCBkZWNvZGVy
PWRlY29kZXIsICoqY29kZWNfa3dhcmdzKQogCiAgICAgZGVmIF9yZXF1ZXN0KHNlbGYsIG1ldGhv
ZCwgdXJpLCBwYXlsb2FkLCBoZWFkZXJzPU5vbmUsIHRpbWVvdXQ9Tm9uZSk6Ci0gICAgICAgIGlm
IGlzaW5zdGFuY2UocGF5bG9hZCwgdGV4dF90eXBlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShw
YXlsb2FkLCBzdHIpOgogICAgICAgICAgICAgcGF5bG9hZCA9IHBheWxvYWQuZW5jb2RlKCJ1dGYt
OCIpCiAKICAgICAgICAgaWYgaGVhZGVycyBpcyBOb25lOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0CmluZGV4IDBhZGYw
YTk0YjE1ZC4uNGEwNzljNzI1YmQ2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0CkBAIC02LDcgKzYsNiBAQCB3cHRy
dW5uZXIgaXMgYSBoYXJuZXNzIGZvciBydW5uaW5nIHRoZSBXM0MgYHdlYi1wbGF0Zm9ybS10ZXN0
cyB0ZXN0c3VpdGVgXy4KIC4uIHRvY3RyZWU6OgogICAgOm1heGRlcHRoOiAyCiAKLSAgIGRvY3Mv
dXNhZ2UKICAgIGRvY3MvZXhwZWN0YXRpb24KICAgIGRvY3MvZGVzaWduCiAgICBkb2NzL2ludGVy
bmFscwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci9kb2NzL3VzYWdlLnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvZG9jcy91c2FnZS5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1
ZmQ5N2JmNmMxMi4uMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwyNDIg
KzAsMCBAQAotR2V0dGluZyBTdGFydGVkCi09PT09PT09PT09PT09PT0KLQotSW5zdGFsbGluZyB3
cHRydW5uZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBlYXNpZXN0IHdheSB0byBpbnN0
YWxsIHdwdHJ1bm5lciBpcyBpbnRvIGEgdmlydHVhbGVudiwgdXNpbmcgcGlwOjoKLQotICB2aXJ0
dWFsZW52IHdwdHJ1bm5lcgotICBjZCB3cHRydW5uZXIKLSAgc291cmNlIGJpbi9hY3RpdmF0ZQot
ICBwaXAgaW5zdGFsbCB3cHRydW5uZXIKLQotVGhpcyB3aWxsIGluc3RhbGwgdGhlIGJhc2UgZGVw
ZW5kZW5jaWVzIGZvciB3cHRydW5uZXIsIGJ1dCBub3QgYW55Ci1leHRyYSBkZXBlbmRlbmNpZXMg
cmVxdWlyZWQgdG8gdGVzdCBhZ2FpbnN0IHNwZWNpZmljIGJyb3dzZXJzLiBJbgotb3JkZXIgdG8g
ZG8gdGhpcyB5b3UgbXVzdCB1c2UgdXNlIHRoZSBleHRyYSByZXF1aXJlbWVudHMgZmlsZXMgaW4K
LWBgJFZJUlRVQUxfRU5WL3JlcXVpcmVtZW50cy9yZXF1aXJlbWVudHNfYnJvd3Nlci50eHRgYC4g
Rm9yIGV4YW1wbGUsCi1pbiBvcmRlciB0byB0ZXN0IGFnYWluc3QgRmlyZWZveCB5b3Ugd291bGQg
aGF2ZSB0byBydW46OgotCi0gIHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy9yZXF1aXJlbWVu
dHNfZmlyZWZveC50eHQKLQotSWYgeW91IGludGVuZCB0byB3b3JrIG9uIHRoZSBjb2RlLCB0aGUg
YGAtZWBgIG9wdGlvbiB0byBwaXAgc2hvdWxkIGJlCi11c2VkIGluIGNvbWJpbmF0aW9uIHdpdGgg
YSBzb3VyY2UgY2hlY2tvdXQgaS5lLiBpbnNpZGUgYSB2aXJ0dWFsCi1lbnZpcm9ubWVudCBjcmVh
dGVkIGFzIGFib3ZlOjoKLQotICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3czYy93cHRy
dW5uZXIuZ2l0Ci0gIGNkIHdwdHJ1bm5lcgotICBwaXAgaW5zdGFsbCAtZSAuLwotCi1JbiBhZGRp
dGlvbiB0byB0aGUgZGVwZW5kZW5jaWVzIGluc3RhbGxlZCBieSBwaXAsIHdwdHJ1bm5lciByZXF1
aXJlcwotYSBjb3B5IG9mIHRoZSB3ZWItcGxhdGZvcm0tdGVzdHMgcmVwb3NpdG9yeS4gVGhpcyBj
YW4gYmUgbG9jYXRlZAotYW55d2hlcmUgb24gdGhlIGZpbGVzeXN0ZW0sIGJ1dCB0aGUgZWFzaWVz
dCBvcHRpb24gaXMgdG8gcHV0IGl0Ci11bmRlciB0aGUgc2FtZSBwYXJlbnQgZGlyZWN0b3J5IGFz
IHRoZSB3cHRydW5uZXIgY2hlY2tvdXQ6OgotCi0gIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQKLQotSXQgaXMgYWxzbyBuZWNlc3NhcnkgdG8g
Z2VuZXJhdGUgYSB3ZWItcGxhdGZvcm0tdGVzdHMgYGBNQU5JRkVTVC5qc29uYGAKLWZpbGUuIEl0
J3MgcmVjb21tZW5kZWQgdG8gYWxzbyBwdXQgdGhhdCB1bmRlciB0aGUgc2FtZSBwYXJlbnQgZGly
ZWN0b3J5IGFzCi10aGUgd3B0cnVubmVyIGNoZWNrb3V0LCBpbiBhIGRpcmVjdG9yeSBuYW1lZCBg
YG1ldGFgYDo6Ci0KLSAgbWtkaXIgbWV0YQotICBjZCB3ZWItcGxhdGZvcm0tdGVzdHMKLSAgcHl0
aG9uIG1hbmlmZXN0IC0tcGF0aCAuLi9tZXRhL01BTklGRVNULmpzb24KLQotVGhlIGBgTUFOSUZF
U1QuanNvbmBgIGZpbGUgbmVlZHMgdG8gYmUgcmVnZW5lcmF0ZWQgZWFjaCB0aW1lIHRoZQotd2Vi
LXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0IGlzIHVwZGF0ZWQuIFRvIGFpZCB3aXRoIHRoZSB1cGRh
dGUgcHJvY2VzcwotdGhlcmUgaXMgYSB0b29sIGNhbGxlZCBgYHdwdHVwZGF0ZWBgLCB3aGljaCBp
cyBkZXNjcmliZWQgaW4KLTpyZWY6YHdwdHVwZGF0ZS1sYWJlbGAuCi0KLVJ1bm5pbmcgdGhlIFRl
c3RzCi0tLS0tLS0tLS0tLS0tLS0tLQotCi1BIHRlc3QgcnVuIGlzIHN0YXJ0ZWQgdXNpbmcgdGhl
IGBgd3B0cnVubmVyYGAgY29tbWFuZC4gIFRoZSBjb21tYW5kCi10YWtlcyBtdWx0aXBsZSBvcHRp
b25zLCBvZiB3aGljaCB0aGUgZm9sbG93aW5nIGFyZSBtb3N0IHNpZ25pZmljYW50OgotCi1gYC0t
cHJvZHVjdGBgIChkZWZhdWx0cyB0byBgZmlyZWZveGApCi0gIFRoZSBwcm9kdWN0IHRvIHRlc3Qg
YWdhaW5zdDogYGNocm9tZWAsIGBmaXJlZm94YCwgb3IgYHNlcnZvYC4KLQotYGAtLWJpbmFyeWBg
IChyZXF1aXJlZCBpZiBwcm9kdWN0IGlzIGBmaXJlZm94YCBvciBgc2Vydm9gKQotICBUaGUgcGF0
aCB0byBhIGJpbmFyeSBmaWxlIGZvciB0aGUgcHJvZHVjdCAoYnJvd3NlcikgdG8gdGVzdCBhZ2Fp
bnN0LgotCi1gYC0td2ViZHJpdmVyLWJpbmFyeWBgIChyZXF1aXJlZCBpZiBwcm9kdWN0IGlzIGBj
aHJvbWVgKQotICBUaGUgcGF0aCB0byBhIGAqZHJpdmVyYCBiaW5hcnk7IGUuZy4sIGEgYGNocm9t
ZWRyaXZlcmAgYmluYXJ5LgotCi1gYC0tY2VydHV0aWwtYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHBy
b2R1Y3QgaXMgYGZpcmVmb3hgIFsjXV8pCi0gIFRoZSBwYXRoIHRvIGEgYGNlcnR1dGlsYCBiaW5h
cnkgKGZvciB0ZXN0cyB0aGF0IG11c3QgYmUgcnVuIG92ZXIgaHR0cHMpLgotCi1gYC0tbWV0YWRh
dGFgYCAocmVxdWlyZWQgb25seSB3aGVuIG5vdCBgdXNpbmcgZGVmYXVsdCBwYXRoc2BfKQotICBU
aGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIHRlc3QgbWV0YWRhdGEuIFsjXV8KLQot
YGAtLXRlc3RzYGAgKHJlcXVpcmVkIG9ubHkgd2hlbiBub3QgYHVzaW5nIGRlZmF1bHQgcGF0aHNg
XykKLSAgVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkgY29udGFpbmluZyBhIHdlYi1wbGF0Zm9ybS10
ZXN0cyBjaGVja291dC4KLQotYGAtLXByZWZzLXJvb3RgYCAocmVxdWlyZWQgb25seSB3aGVuIHRl
c3RpbmcgYSBGaXJlZm94IGJpbmFyeSkKLSAgVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkgY29udGFp
bmluZyBGaXJlZm94IHRlc3QtaGFybmVzcyBwcmVmZXJlbmNlcy4gWyNdXwotCi1gYC0tY29uZmln
YGAgKHNob3VsZCBkZWZhdWx0IHRvIGB3cHRydW5uZXIuZGVmYXVsdC5pbmlgKQotICBUaGUgcGF0
aCB0byB0aGUgY29uZmlnIChpbmkpIGZpbGUuCi0KLS4uIFsjXSBUaGUgYGAtLWNlcnR1dGlsLWJp
bmFyeWBgIG9wdGlvbiBpcyByZXF1aXJlZCB3aGVuIHRoZSBwcm9kdWN0IGlzCi0gICBgYGZpcmVm
b3hgYCB1bmxlc3MgYGAtLXNzbC10eXBlPW5vbmVgYCBpcyBzcGVjaWZpZWQuCi0KLS4uIFsjXSBU
aGUgYGAtLW1ldGFkYXRhYGAgcGF0aCBpcyB0byBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zOgot
Ci0gICogYSBgYE1BTklGRVNULmpzb25gYCBmaWxlICh0aGUgd2ViLXBsYXRmb3JtLXRlc3RzIGRv
Y3VtZW50YXRpb24gaGFzCi0gICAgaW5zdHJ1Y3Rpb25zIG9uIGdlbmVyYXRpbmcgdGhpcyBmaWxl
KQotICAqIChvcHRpb25hbGx5KSBhbnkgZXhwZWN0YXRpb24gZmlsZXMgKHNlZSA6cmVmOmB3cHR1
cGRhdGUtbGFiZWxgKQotCi0uLiBbI10gRXhhbXBsZSBgYC0tcHJlZnMtcm9vdGBgIHZhbHVlOiBg
YH4vbW96aWxsYS1jZW50cmFsL3Rlc3RpbmcvcHJvZmlsZXNgYC4KLQotVGhlcmUgYXJlIGFsc28g
YSB2YXJpZXR5IG9mIG90aGVyIGNvbW1hbmQtbGluZSBvcHRpb25zIGF2YWlsYWJsZTsgdXNlCi1g
YC0taGVscGBgIHRvIGxpc3QgdGhlbS4KLQotVGhlIGZvbGxvd2luZyBleGFtcGxlcyBzaG93IGhv
dyB0byBzdGFydCB3cHRydW5uZXIgd2l0aCB2YXJpb3VzIG9wdGlvbnMuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLQotU3RhcnRpbmcgd3B0cnVubmVyCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIGV4
YW1wbGVzIGJlbG93IGFzc3VtZSB0aGUgZm9sbG93aW5nIGRpcmVjdG9yeSBsYXlvdXQsCi10aG91
Z2ggbm8gc3BlY2lmaWMgZm9sZGVyIHN0cnVjdHVyZSBpcyByZXF1aXJlZDo6Ci0KLSAgfi90ZXN0
dHdmL3dwdHJ1bm5lciAgICAgICAgICAjIHdwdHJ1bm5lciBjaGVja291dAotICB+L3Rlc3R0d2Yv
d2ViLXBsYXRmb3JtLXRlc3RzICMgd2ViLXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0Ci0gIH4vdGVz
dHR3Zi9tZXRhICAgICAgICAgICAgICAgIyBtZXRhZGF0YQotCi1UbyB0ZXN0IGEgRmlyZWZveCBO
aWdodGx5IGJ1aWxkIGluIGFuIE9TIFggZW52aXJvbm1lbnQsIHlvdSBtaWdodCBzdGFydAotd3B0
cnVubmVyIHVzaW5nIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6
Ci0KLSAgd3B0cnVubmVyIC0tbWV0YWRhdGE9fi90ZXN0dHdmL21ldGEvIC0tdGVzdHM9fi90ZXN0
dHdmL3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmluYXJ5PX4vbW96aWxsYS1jZW50cmFs
L29iai14ODZfNjQtYXBwbGUtZGFyd2luMTQuMy4wL2Rpc3QvTmlnaHRseS5hcHAvQ29udGVudHMv
TWFjT1MvZmlyZWZveCBcCi0gICAgLS1jZXJ0dXRpbC1iaW5hcnk9fi9tb3ppbGxhLWNlbnRyYWwv
b2JqLXg4Nl82NC1hcHBsZS1kYXJ3aW4xNC4zLjAvc2VjdXJpdHkvbnNzL2NtZC9jZXJ0dXRpbC9j
ZXJ0dXRpbCBcCi0gICAgLS1wcmVmcy1yb290PX4vbW96aWxsYS1jZW50cmFsL3Rlc3RpbmcvcHJv
ZmlsZXMKLQotCi1BbmQgdG8gdGVzdCBhIENocm9taXVtIGJ1aWxkIGluIGFuIE9TIFggZW52aXJv
bm1lbnQsIHlvdSBtaWdodCBzdGFydAotd3B0cnVubmVyIHVzaW5nIHNvbWV0aGluZyBzaW1pbGFy
IHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6Ci0KLSAgd3B0cnVubmVyIC0tbWV0YWRhdGE9fi90
ZXN0dHdmL21ldGEvIC0tdGVzdHM9fi90ZXN0dHdmL3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAg
IC0tYmluYXJ5PX4vY2hyb21pdW0vc3JjL291dC9SZWxlYXNlL0Nocm9taXVtLmFwcC9Db250ZW50
cy9NYWNPUy9DaHJvbWl1bSBcCi0gICAgLS13ZWJkcml2ZXItYmluYXJ5PS91c3IvbG9jYWwvYmlu
L2Nocm9tZWRyaXZlciAtLXByb2R1Y3Q9Y2hyb21lCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1S
dW5uaW5nIHRlc3Qgc3Vic2V0cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVG8gcmVzdHJpY3Qg
YSB0ZXN0IHJ1biBqdXN0IHRvIHRlc3RzIGluIGEgcGFydGljdWxhciB3ZWItcGxhdGZvcm0tdGVz
dHMKLXN1YmRpcmVjdG9yeSwgc3BlY2lmeSB0aGUgZGlyZWN0b3J5IG5hbWUgaW4gdGhlIHBvc2l0
aW9uYWwgYXJndW1lbnRzIGFmdGVyCi10aGUgb3B0aW9uczsgZm9yIGV4YW1wbGUsIHJ1biBqdXN0
IHRoZSB0ZXN0cyBpbiB0aGUgYGRvbWAgc3ViZGlyZWN0b3J5OjoKLQotICB3cHRydW5uZXIgLS1t
ZXRhZGF0YT1+L3Rlc3R0d2YvbWV0YSAtLXRlc3RzPX4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVz
dHMvIFwKLSAgICAtLWJpbmFyeT0vcGF0aC90by9maXJlZm94IC0tY2VydHV0aWwtYmluYXJ5PS9w
YXRoL3RvL2NlcnR1dGlsIFwKLSAgICAtLXByZWZzLXJvb3Q9L3BhdGgvdG8vdGVzdGluZy9wcm9m
aWxlcyBcCi0gICAgZG9tCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJ1bm5pbmcgaW4gcGFyYWxs
ZWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVG8gc3BlZWQgdXAgdGhlIHRlc3RpbmcgcHJvY2Vz
cywgdXNlIHRoZSBgYC0tcHJvY2Vzc2VzYGAgb3B0aW9uIHRvIGhhdmUKLXdwdHJ1bm5lciBydW4g
bXVsdGlwbGUgYnJvd3NlciBpbnN0YW5jZXMgaW4gcGFyYWxsZWwuIEZvciBleGFtcGxlLCB0bwot
aGF2ZSB3cHRydW5uZXIgYXR0ZW1wdCB0byBydW4gdGVzdHMgYWdhaW5zdCB3aXRoIHNpeCBicm93
c2VyIGluc3RhbmNlcwotaW4gcGFyYWxsZWwsIHNwZWNpZnkgYGAtLXByb2Nlc3Nlcz02YGAuIEJ1
dCBub3RlIHRoYXQgYmVoYXZpb3VyIGluIHRoaXMKLW1vZGUgaXMgbmVjZXNzYXJpbHkgbGVzcyBk
ZXRlcm1pbmlzdGljIHRoYW4gd2l0aCBgYC0tcHJvY2Vzc2VzPTFgYCAodGhlCi1kZWZhdWx0KSwg
c28gdGhlcmUgbWF5IGJlIG1vcmUgbm9pc2UgaW4gdGhlIHRlc3QgcmVzdWx0cy4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLQotVXNpbmcgZGVmYXVsdCBwYXRocwotLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci1UaGUgKG90aGVyd2lzZS1yZXF1aXJlZCkgYGAtLXRlc3RzYGAgYW5kIGBgLS1tZXRhZGF0YWBg
IGNvbW1hbmQtbGluZQotb3B0aW9ucy9mbGFncyBiZSBvbWl0dGVkIGlmIGFueSBjb25maWd1cmF0
aW9uIGZpbGUgaXMgZm91bmQgdGhhdAotY29udGFpbnMgYSBzZWN0aW9uIHNwZWNpZnlpbmcgdGhl
IGBgdGVzdHNgYCBhbmQgYGBtZXRhZGF0YWBgIGtleXMuCi0KLVNlZSB0aGUgYENvbmZpZ3VyYXRp
b24gRmlsZWBfIHNlY3Rpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKLWNvbmZpZ3VyYXRp
b24gZmlsZXMsIGluY2x1ZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGVpciBleHBlY3RlZAotbG9j
YXRpb25zLgotCi1UaGUgY29udGVudCBvZiB0aGUgYGB3cHRydW5uZXIuZGVmYXVsdC5pbmlgYCBk
ZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZQotbWFrZXMgd3B0cnVubmVyIGxvb2sgZm9yIHRlc3Rz
ICh0aGF0IGlzLCBhIHdlYi1wbGF0Zm9ybS10ZXN0cyBjaGVja291dCkKLWFzIGEgc3ViZGlyZWN0
b3J5IG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBuYW1lZCBgYHRlc3RzYGAsIGFuZCBmb3IKLW1l
dGFkYXRhIGZpbGVzIGluIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBu
YW1lZCBgYG1ldGFgYC4KLQotT3V0cHV0Ci0tLS0tLS0KLQotd3B0cnVubmVyIHVzZXMgYHRoZSBt
b3psb2cgcGFja2FnZQotPGh0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9yZy9t
b3piYXNlL21vemxvZy5odG1sPmBfKSBmb3IKLW91dHB1dC4gVGhpcyBzdHJ1Y3R1cmVzIGV2ZW50
cyBzdWNoIGFzIHRlc3QgcmVzdWx0cyBvciBsb2cgbWVzc2FnZXMgYXMKLUpTT04gb2JqZWN0cyB0
aGF0IGNhbiB0aGVuIGJlIGZlZCB0byBvdGhlciB0b29scyBmb3IKLWludGVycHJldGF0aW9uLiBN
b3JlIGRldGFpbHMgYWJvdXQgdGhlIG1lc3NhZ2UgZm9ybWF0IGFyZSBnaXZlbiBpbgotYHRoZSBt
b3psb2cgZG9jdW1lbnRhdGlvbgotPGh0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxh
Lm9yZy9tb3piYXNlL21vemxvZy5odG1sPmBfLgotCi1CeSBkZWZhdWx0IHRoZSByYXcgSlNPTiBt
ZXNzYWdlcyBhcmUgZHVtcGVkIHRvIHN0ZG91dC4gVGhpcyBpcwotY29udmVuaWVudCBmb3IgcGlw
aW5nIGludG8gb3RoZXIgdG9vbHMsIGJ1dCBub3QgaWRlYWwgZm9yIGh1bWFucwotcmVhZGluZyB0
aGUgb3V0cHV0LiBgbW96bG9nCi08aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEu
b3JnL21vemJhc2UvbW96bG9nLmh0bWw+YF8gY29tZXMKLXdpdGggc2V2ZXJhbCBvdGhlciBmb3Jt
YXR0ZXJzLCB3aGljaCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIGNvbW1hbmQKLWxpbmUgb3B0aW9u
cy4gVGhlIGdlbmVyYWwgZm9ybWF0IG9mIHRoZXNlIG9wdGlvbnMgaXMKLWBgLS1sb2ctbmFtZT1k
ZXN0YGAsIHdoZXJlIGBgbmFtZWBgIGlzIHRoZSBuYW1lIG9mIHRoZSBmb3JtYXQgYW5kCi1gYGRl
c3RgYCBpcyBhIHBhdGggdG8gYSBkZXN0aW5hdGlvbiBmaWxlLCBvciBgYC1gYCBmb3Igc3Rkb3V0
LiBUaGUgcmF3Ci1KU09OIGRhdGEgaXMgd3JpdHRlbiBieSB0aGUgYGByYXdgYCBmb3JtYXR0ZXIg
c28sIHRoZSBkZWZhdWx0IHNldHVwCi1jb3JyZXNwb25kcyB0byBgYC0tbG9nLXJhdz0tYGAuCi0K
LUEgcmVhc29uYWJsZSBvdXRwdXQgZm9ybWF0IGZvciBodW1hbnMgaXMgcHJvdmlkZWQgYXMgYGBt
YWNoYGAuIFNvIGluCi1vcmRlciB0byBvdXRwdXQgdGhlIGZ1bGwgcmF3IGxvZyB0byBhIGZpbGUg
YW5kIGEgaHVtYW4tcmVhZGFibGUKLXN1bW1hcnkgdG8gc3Rkb3V0LCBvbmUgbWlnaHQgcGFzcyB0
aGUgb3B0aW9uczo6Ci0KLSAgLS1sb2ctcmF3PW91dHB1dC5sb2cgLS1sb2ctbWFjaD0tCi0KLUNv
bmZpZ3VyYXRpb24gRmlsZQotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLXdwdHJ1bm5lciB1c2VzIGEg
YGAuaW5pYGAgZmlsZSB0byBjb250cm9sIHNvbWUgY29uZmlndXJhdGlvbgotc2VjdGlvbnMuIFRo
ZSBmaWxlIGhhcyB0aHJlZSBzZWN0aW9uczsgYGBbcHJvZHVjdHNdYGAsCi1gYFttYW5pZmVzdDpk
ZWZhdWx0XWBgIGFuZCBgYFt3ZWItcGxhdGZvcm0tdGVzdHNdYGAuCi0KLWBgW3Byb2R1Y3RzXWBg
IGlzIHVzZWQgdG8KLWRlZmluZSB0aGUgc2V0IG9mIGF2YWlsYWJsZSBwcm9kdWN0cy4gQnkgZGVm
YXVsdCB0aGlzIHNlY3Rpb24gaXMgZW1wdHkKLXdoaWNoIG1lYW5zIHRoYXQgYWxsIHRoZSBwcm9k
dWN0cyBkaXN0cmlidXRlZCB3aXRoIHdwdHJ1bm5lciBhcmUKLWVuYWJsZWQgKGFsdGhvdWdoIHRo
ZWlyIGRlcGVuZGVuY2llcyBtYXkgbm90IGJlIGluc3RhbGxlZCkuIFRoZSBzZXQKLW9mIGVuYWJs
ZWQgcHJvZHVjdHMgY2FuIGJlIHNldCBieSB1c2luZyB0aGUgcHJvZHVjdCBuYW1lIGFzIHRoZQot
a2V5LiBGb3IgYnVpbHQgaW4gcHJvZHVjdHMgdGhlIHZhbHVlIGlzIGVtcHR5LiBJdCBpcyBhbHNv
IHBvc3NpYmxlIHRvCi1wcm92aWRlIHRoZSBwYXRoIHRvIGEgc2NyaXB0IGltcGxlbWVudGluZyB0
aGUgYnJvd3NlciBmdW5jdGlvbmFsaXR5Ci1lLmcuOjoKLQotICBbcHJvZHVjdHNdCi0gIGNocm9t
ZSA9Ci0gIG5ldHNjYXBlNCA9IHBhdGgvdG8vbmV0c2NhcGUucHkKLQotYGBbbWFuaWZlc3Q6ZGVm
YXVsdF1gYCBzcGVjaWZpZXMgdGhlIGRlZmF1bHQgcGF0aHMgZm9yIHRoZSB0ZXN0cyBhbmQgbWV0
YWRhdGEsCi1yZWxhdGl2ZSB0byB0aGUgY29uZmlnIGZpbGUuIEZvciBleGFtcGxlOjoKLQotICBb
bWFuaWZlc3Q6ZGVmYXVsdF0KLSAgdGVzdHMgPSB+L3Rlc3R0d2Yvd2ViLXBsYXRmb3JtLXRlc3Rz
Ci0gIG1ldGFkYXRhID0gfi90ZXN0dHdmL21ldGEKLQotCi1gYFt3ZWItcGxhdGZvcm0tdGVzdHNd
YGAgaXMgdXNlZCB0byBzZXQgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHVwc3RyZWFtCi1yZXBvc2l0
b3J5IHdoZW4gdXBkYXRpbmcgdGhlIHBhdGhzLiBgYHJlbW90ZV91cmxgYCBzcGVjaWZpZXMgdGhl
IGdpdAotdXJsIHRvIHB1bGwgZnJvbTsgYGBicmFuY2hgYCB0aGUgYnJhbmNoIHRvIHN5bmMgYWdh
aW5zdCBhbmQKLWBgc3luY19wYXRoYGAgdGhlIGxvY2FsIHBhdGgsIHJlbGF0aXZlIHRvIHRoZSBj
b25maWd1cmF0aW9uIGZpbGUsIHRvCi11c2Ugd2hlbiBjaGVja2luZyBvdXQgdGhlIHRlc3RzIGUu
Zy46OgotCi0gIFt3ZWItcGxhdGZvcm0tdGVzdHNdCi0gIHJlbW90ZV91cmwgPSBodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQKLSAgYnJhbmNoID0gbWFzdGVyCi0g
IHN5bmNfcGF0aCA9IHN5bmMKLQotQSBjb25maWd1cmF0aW9uIGZpbGUgbXVzdCBjb250YWluIGFs
bCB0aGUgYWJvdmUgZmllbGRzOyBmYWxsaW5nIGJhY2sKLXRvIHRoZSBkZWZhdWx0IHZhbHVlcyBm
b3IgdW5zcGVjaWZpZWQgZmllbGRzIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgotCi1UaGUgYGB3cHRy
dW5uZXJgYCBhbmQgYGB3cHR1cGRhdGVgYCBjb21tYW5kcyB3aWxsIHVzZSBjb25maWd1cmF0aW9u
Ci1maWxlcyBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgotCi0gKiBBbnkgcGF0aCBzdXBwbGllZCB3
aXRoIGEgYGAtLWNvbmZpZ2BgIGZsYWcgdG8gdGhlIGNvbW1hbmQuCi0KLSAqIEEgZmlsZSBjYWxs
ZWQgYGB3cHRydW5uZXIuaW5pYGAgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5Ci0KLSAqIFRoZSBk
ZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZSAoYGB3cHRydW5uZXIuZGVmYXVsdC5pbmlgYCBpbiB0
aGUKLSAgIHNvdXJjZSBkaXJlY3RvcnkpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKaW5kZXggMWVi
YTExNGEzMWMyLi44MzU2YzQ3ODVkYzAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKQEAgLTEs
OSArMSw4IEBACiBodG1sNWxpYj09MS4xCi1tb3ppbmZvPT0xLjIuMSAgIyBodHRwczovL2J1Z3pp
bGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIxMjI2Ci1tb3psb2c9PTYuMQotbW96
ZGVidWc9PTAuMgotIyBQaWxsb3cgNyByZXF1aXJlcyBQeXRob24gMwotcGlsbG93PT02LjIuMiAg
IyBweXVwOiA8Ny4wCi11cmxsaWIzW3NlY3VyZV09PTEuMjUuMTAKLXJlcXVlc3RzPT0yLjI0LjAK
LXNpeD09MS4xNS4wCittb3ppbmZvPT0xLjIuMiAgIyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIxMjI2Cittb3psb2c9PTcuMS4wCittb3pkZWJ1Zz09MC4z
LjAKK3BpbGxvdz09OC4zLjEKK3VybGxpYjNbc2VjdXJlXT09MS4yNi42CityZXF1ZXN0cz09Mi4y
NS4xCitzaXg9PTEuMTYuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKaW5k
ZXggZTdlNzE2MWIxNDI2Li43OTYxOTU1OGE1ZGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfY2hyb21lLnR4dApAQCAtMSArMSBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9
PTEuMy4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50
eHQKaW5kZXggZTdlNzE2MWIxNDI2Li43OTYxOTU1OGE1ZGMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9h
bmRyb2lkLnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nl
c3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdl
LnR4dAppbmRleCAwYTYxMjA4ZDc3YzEuLjdhZDAxODBiODU0NSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50
eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfZWRnZS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96
cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4
dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2ZpcmVmb3gudHh0CmluZGV4IDhiNDU3MDNhNTU5Ni4uNmJmMjgwYzQ3YzkyIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19maXJlZm94LnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dApAQCAtMSwxMCArMSwxMCBAQAogbWFy
aW9uZXR0ZV9kcml2ZXI9PTMuMS4wCi1tb3pjcmFzaD09Mi4wLjAKLW1vemluc3RhbGw9PTIuMC4w
Cittb3pjcmFzaD09Mi4xLjAKK21vemluc3RhbGw9PTIuMC4xCiBtb3psZWFrPT0wLjIKIG1vem5l
dHdvcms9PTEuMS4wCi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKIG1venBy
b2ZpbGU9PTIuNS4wCi1tb3pydW5uZXI9PTguMC4wCittb3pydW5uZXI9PTguMi4xCiBtb3p2ZXJz
aW9uPT0yLjMuMAotcHN1dGlsPT01LjcuMgorcHN1dGlsPT01LjguMApkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfaWUu
dHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfaWUudHh0CmluZGV4IDBhNjEyMDhkNzdjMS4uN2FkMDE4MGI4NTQ1IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19pZS50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfaWUudHh0CkBAIC0xLDIgKzEsMiBAQAotbW96cHJvY2Vzcz09MS4yLjAK
K21venByb2Nlc3M9PTEuMy4wCiBzZWxlbml1bT09My4xNDEuMApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEu
dHh0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfb3BlcmEudHh0CmluZGV4IDBhNjEyMDhkNzdjMS4uN2FkMDE4MGI4NTQ1IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19vcGVyYS50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0CkBAIC0xLDIgKzEsMiBAQAotbW96cHJvY2Vz
cz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCiBzZWxlbml1bT09My4xNDEuMApkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfc2FmYXJpLnR4dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKaW5kZXggZTdlNzE2MWIxNDI2Li42NWI3NmFhODVj
YzQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dApAQCAtMSArMSwyIEBA
Ci1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4zLjAKK3BzdXRpbD09NS44LjAKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX3NhdWNlLnR4dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dAppbmRleCAzNGM2NmVlMjM4YjYuLmQxZDBm
N2UyYmVlMiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dApAQCAtMSwzICsx
LDMgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjMuMAogc2VsZW5pdW09PTMu
MTQxLjAKLXJlcXVlc3RzPT0yLjI0LjAKK3JlcXVlc3RzPT0yLjI1LjEKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3Nl
cnZvLnR4dCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX3NlcnZvLnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfc2Vydm8udHh0CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dApAQCAtMSArMSBAQAotbW96cHJvY2Vz
cz09MS4yLjAKK21venByb2Nlc3M9PTEuMy4wCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Vi
a2l0LnR4dAppbmRleCBlN2U3MTYxYjE0MjYuLjc5NjE5NTU4YTVkYyAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Vi
a2l0LnR4dAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c193ZWJraXQudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAor
bW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvc2V0dXAucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3NldHVwLnB5CmluZGV4IGE0NTllMmM0NzE0MS4uYzIwOTU1ODQ4ZGJm
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3NldHVwLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvc2V0dXAucHkKQEAgLTIsOCArMiw2IEBACiAjIExpY2Vuc2UsIHYuIDIuMC4gSWYgYSBjb3B5
IG9mIHRoZSBNUEwgd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoaXMgZmlsZSwKICMgWW91IGNh
biBvYnRhaW4gb25lIGF0IGh0dHA6Ly9tb3ppbGxhLm9yZy9NUEwvMi4wLy4KIAotZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotCiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9zCiBp
bXBvcnQgc3lzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3RveC5pbmkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3RveC5pbmkKaW5kZXggNzk4ZjY0YTNlNDIyLi5jNDllNzU5ZWFkOGMgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvdG94LmluaQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkK
QEAgLTIsMTYgKzIsMTIgQEAKIHhmYWlsX3N0cmljdD10cnVlCiAKIFt0b3hdCi1lbnZsaXN0ID0g
cHkyNy17YmFzZSxjaHJvbWUsZWRnZSxmaXJlZm94LGllLG9wZXJhLHNhZmFyaSxzYXVjZSxzZXJ2
byx3ZWJraXQsd2Via2l0Z3RrX21pbmlicm93c2VyLGVwaXBoYW55fSx7cHkzNSxweTM2LHB5Mzcs
cHkzOH0tYmFzZQorZW52bGlzdCA9IHB5Mzkte2Jhc2UsY2hyb21lLGVkZ2UsZmlyZWZveCxpZSxv
cGVyYSxzYWZhcmksc2F1Y2Usc2Vydm8sd2Via2l0LHdlYmtpdGd0a19taW5pYnJvd3NlcixlcGlw
aGFueX0se3B5MzYscHkzNyxweTM4fS1iYXNlCiBza2lwX21pc3NpbmdfaW50ZXJwcmV0ZXJzID0g
RmFsc2UKIAogW3Rlc3RlbnZdCiBkZXBzID0KLSAgICAgcHl0ZXN0Pj0yLjkKLSAgICAgcHl0ZXN0
LWNvdgotICAgICBweXRlc3QteGRpc3QKLSAgICAgIyBtb2NrIG5vIGxvbmdlciBzdXBwb3J0cyBQ
eXRob24gMiBzaW5jZSB2NAotICAgICBtb2NrPT0zLioKKyAgICAgLXJ7dG94aW5pZGlyfS8uLi9y
ZXF1aXJlbWVudHNfcHl0ZXN0LnR4dAogICAgICAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50cy50
eHQKICAgICAgY2hyb21lOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19jaHJvbWUudHh0CiAg
ICAgIGVkZ2U6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2VkZ2UudHh0CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJsYXllci5weQpp
bmRleCA2MTEwNDUwYjcyODIuLjRiZDg3MWQxZmJkNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9p
ZF93ZWJsYXllci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5CkBAIC0xLDkgKzEs
OCBAQAotaW1wb3J0IHN1YnByb2Nlc3MKLQotZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhl
Y3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwotZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRf
bXVsdGlwbGllciAgICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIg
ICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2Ug
aW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICMgbm9xYTogRjQwMQogZnJvbSAuY2hyb21l
IGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgY2hyb21lX2V4ZWN1dG9yX2t3YXJncwotZnJvbSAu
LndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENocm9tZURyaXZlclNlcnZlcgorZnJvbSAuY2hyb21l
X2FuZHJvaWQgaW1wb3J0IENocm9tZUFuZHJvaWRCcm93c2VyQmFzZQogZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Is
ICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRv
cnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5v
cWE6IEY0MDEKQEAgLTExLDcgKzEwLDggQEAgZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9t
ZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dw
dHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImFuZHJvaWRfd2VibGF5ZXIiLAogICAgICAgICAgICAg
ICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiAiV2VibGF5ZXJTaGVsbCIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6
ICJXZWJsYXllclNoZWxsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6
ICJOdWxsQnJvd3NlciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJu
ZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiQ2hyb21lRHJpdmVyV2RzcGVjRXhl
Y3V0b3IifSwKQEAgLTI4LDIzICsyOCwyNCBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAg
ICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dz
ZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6Citk
ZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZp
ZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCiAg
ICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdLAogICAg
ICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwK
LSAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdz
Iil9CisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJf
YXJncyIpLAorICAgICAgICAgICAgInN0YWNrd2Fsa19iaW5hcnkiOiBrd2FyZ3MuZ2V0KCJzdGFj
a3dhbGtfYmluYXJ5IiksCisgICAgICAgICAgICAic3ltYm9sc19wYXRoIjoga3dhcmdzLmdldCgi
c3ltYm9sc19wYXRoIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAog
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgIyBVc2UgdXBkYXRlKCkgdG8gbW9k
aWZ5IHRoZSBnbG9iYWwgbGlzdCBpbiBwbGFjZS4KICAgICBfd3B0c2VydmVfcG9ydHMudXBkYXRl
KHNldCgKLSAgICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnaHR0cCddICsgc2VydmVyX2Nv
bmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCi0gICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11b
J3dzJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3c3MnXQorICAgICAgICB0ZXN0X2Vudmly
b25tZW50LmNvbmZpZ1sncG9ydHMnXVsnaHR0cCddICsgdGVzdF9lbnZpcm9ubWVudC5jb25maWdb
J3BvcnRzJ11bJ2h0dHBzJ10gKworICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9y
dHMnXVsnd3MnXSArIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWyd3c3MnXQogICAg
ICkpCiAKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgZXhlY3V0b3Jfa3dh
cmdzID0gY2hyb21lX2V4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZp
cm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGRlbCBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxp
dGllcyJdWyJnb29nOmNocm9tZU9wdGlvbnMiXVsicHJlZnMiXQogICAgIGNhcGFiaWxpdGllcyA9
IGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0KQEAgLTc0LDYxICs3NSwyMiBAQCBkZWYg
ZW52X29wdGlvbnMoKToKICAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEifQog
CiAKLSNUT0RPOiByZWZhY3RvciBjb21tb24gZWxlbWVudHMgb2YgV2VibGF5ZXJTaGVsbCBhbmQg
Q2hyb21lQW5kcm9pZEJyb3dzZXIKLWNsYXNzIFdlYmxheWVyU2hlbGwoQnJvd3Nlcik6CitjbGFz
cyBXZWJsYXllclNoZWxsKENocm9tZUFuZHJvaWRCcm93c2VyQmFzZSk6CiAgICAgIiIiQ2hyb21l
IGlzIGJhY2tlZCBieSBjaHJvbWVkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKICAg
ICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuQ2hyb21lRHJpdmVyU2VydmVyYGAuCiAgICAgIiIiCiAK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5hcnk9
ImNocm9tZWRyaXZlciIsCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LAor
ICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAorICAgICAg
ICAgICAgICAgICByZW1vdGVfcXVldWU9Tm9uZSwKICAgICAgICAgICAgICAgICAgZGV2aWNlX3Nl
cmlhbD1Ob25lLAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3RhY2t3
YWxrX2JpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9Tm9uZSk6CiAg
ICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgQ2hyb21lLiAgVGhlIGBi
aW5hcnlgIGFyZ3VtZW50IGdpdmVzCiAgICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2Ug
Zm9yIHRlc3RpbmcuIiIiCi0gICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQor
ICAgICAgICBzdXBlcihXZWJsYXllclNoZWxsLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIsCisgICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFs
LAorICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmluYXJ5LCBzeW1i
b2xzX3BhdGgpCiAgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5Ci0gICAgICAgIHNlbGYuZGV2
aWNlX3NlcmlhbCA9IGRldmljZV9zZXJpYWwKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBDaHJvbWVE
cml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdzKQotICAgICAgICBzZWxmLnNl
dHVwX2FkYl9yZXZlcnNlKCkKLQotICAgIGRlZiBfYWRiX3J1bihzZWxmLCBhcmdzKToKLSAgICAg
ICAgY21kID0gWydhZGInXQotICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6Ci0gICAgICAg
ICAgICBjbWQuZXh0ZW5kKFsnLXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQotICAgICAgICBjbWQu
ZXh0ZW5kKGFyZ3MpCi0gICAgICAgIHNlbGYubG9nZ2VyLmluZm8oJyAnLmpvaW4oY21kKSkKLSAg
ICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKGNtZCkKLQotICAgIGRlZiBzZXR1cF9hZGJfcmV2
ZXJzZShzZWxmKToKLSAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3dhaXQtZm9yLWRldmljZSddKQot
ICAgICAgICBzZWxmLl9hZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKLSAgICAg
ICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCi0gICAgICAgICMg
ImFkYiByZXZlcnNlIiBiYXNpY2FsbHkgZm9yd2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20g
ZGV2aWNlIHRvCi0gICAgICAgICMgaG9zdC4KLSAgICAgICAgZm9yIHBvcnQgaW4gX3dwdHNlcnZl
X3BvcnRzOgotICAgICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAndGNwOiVkJyAl
IHBvcnQsICd0Y3A6JWQnICUgcG9ydF0pCi0KLSAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3Mp
OgotICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkKLQotICAgIGRlZiBzdG9w
KHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3Jj
ZSkKLQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQK
LQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25s
eSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKLSAgICAgICAgIyBhbmQgZG9lc24ndCBz
YXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgotICAgICAgICAjIGlz
IGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKLQotICAgIGRl
ZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBzZWxmLnN0b3AoKQotICAgICAgICBzZWxmLl9hZGJf
cnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKLSAgICAgICAgc2VsZi5fYWRiX3J1bihb
J3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCi0KLSAgICBkZWYgZXhlY3V0b3JfYnJvd3Nlcihz
ZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjog
c2VsZi5zZXJ2ZXIudXJsfQorICAgICAgICBzZWxmLndwdHNlcnZlcl9wb3J0cyA9IF93cHRzZXJ2
ZV9wb3J0cwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJ2aWV3LnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5k
cm9pZF93ZWJ2aWV3LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
OWQ2MjA5MzRlZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJ2aWV3LnB5
CkBAIC0wLDAgKzEsOTUgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAgIyBub3Fh
OiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQg
Z2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQorZnJvbSAuY2hyb21lIGltcG9y
dCBleGVjdXRvcl9rd2FyZ3MgYXMgY2hyb21lX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuY2hyb21l
X2FuZHJvaWQgaW1wb3J0IENocm9tZUFuZHJvaWRCcm93c2VyQmFzZQorZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Is
ICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRv
cnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5v
cWE6IEY0MDEKKworCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImFuZHJvaWRfd2Vidmll
dyIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAg
ICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiU3lzdGVtV2ViVmlld1NoZWxsIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAg
ICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJu
ZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAi
V2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3ZHNwZWMiOiAiQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAgICAg
ICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAg
ImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAi
ZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25z
IjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6
ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KKworX3dwdHNlcnZlX3BvcnRzID0gc2V0KCkKKwor
CitkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2Vi
ZHJpdmVyX2JpbmFyeSIpCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBl
LCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5hcnki
OiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgImRldmljZV9zZXJpYWwiOiBrd2FyZ3Nb
ImRldmljZV9zZXJpYWwiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdz
WyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2Fy
Z3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpLAorICAgICAgICAgICAgInN0YWNrd2Fsa19iaW5hcnki
OiBrd2FyZ3MuZ2V0KCJzdGFja3dhbGtfYmluYXJ5IiksCisgICAgICAgICAgICAic3ltYm9sc19w
YXRoIjoga3dhcmdzLmdldCgic3ltYm9sc19wYXRoIil9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJn
cyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKKyAg
ICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgICMgVXNlIHVwZGF0ZSgpIHRvIG1vZGlm
eSB0aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCisgICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0ZShz
ZXQoCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwJ10gKyB0
ZXN0X2Vudmlyb25tZW50LmNvbmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAgIHRlc3Rf
ZW52aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWyd3cyddICsgdGVzdF9lbnZpcm9ubWVudC5jb25m
aWdbJ3BvcnRzJ11bJ3dzcyddCisgICAgKSkKKworICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9t
ZV9leGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1
bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKmt3YXJncykKKyAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29v
ZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KKyAgICBjYXBhYmlsaXRpZXMgPSBleGVjdXRvcl9r
d2FyZ3NbImNhcGFiaWxpdGllcyJdCisgICAgIyBOb3RlIHRoYXQgZm9yIFdlYlZpZXcsIHdlIGxh
dW5jaCBhIHRlc3Qgc2hlbGwgYW5kIGhhdmUgdGhlIHRlc3Qgc2hlbGwgdXNlIFdlYlZpZXcuCisg
ICAgIyBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvSEVB
RC9hbmRyb2lkX3dlYnZpZXcvZG9jcy93ZWJ2aWV3LXNoZWxsLm1kCisgICAgY2FwYWJpbGl0aWVz
WyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZFBhY2thZ2UiXSA9IFwKKyAgICAgICAga3dh
cmdzLmdldCgicGFja2FnZV9uYW1lIiwgIm9yZy5jaHJvbWl1bS53ZWJ2aWV3X3NoZWxsIikKKyAg
ICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkQWN0aXZpdHkiXSA9
IFwKKyAgICAgICAgIm9yZy5jaHJvbWl1bS53ZWJ2aWV3X3NoZWxsLldlYlBsYXRmb3JtVGVzdHNB
Y3Rpdml0eSIKKyAgICBpZiBrd2FyZ3MuZ2V0KCJkZXZpY2Vfc2VyaWFsIik6CisgICAgICAgIGNh
cGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWREZXZpY2VTZXJpYWwiXSA9
IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdCisKKyAgICAjIFdvcmthcm91bmQ6IGRyaXZlci5xdWl0
KCkgY2Fubm90IHF1aXQgU3lzdGVtV2ViVmlld1NoZWxsLgorICAgIGV4ZWN1dG9yX2t3YXJnc1si
cGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKKyAgICAjIFdvcmthcm91bmQ6IGRyaXZlci5jbG9z
ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJyZXN0YXJ0X2FmdGVy
X3Rlc3QiXSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9
IEZhbHNlCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoq
a3dhcmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICAjIGFs
bG93IHRoZSB1c2Ugb2YgaG9zdC1yZXNvbHZlci1ydWxlcyBpbiBsaWV1IG9mIG1vZGlmeWluZyAv
ZXRjL2hvc3RzIGZpbGUKKyAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEifQor
CisKK2NsYXNzIFN5c3RlbVdlYlZpZXdTaGVsbChDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UpOgor
ICAgICIiIkNocm9tZSBpcyBiYWNrZWQgYnkgY2hyb21lZHJpdmVyLCB3aGljaCBpcyBzdXBwbGll
ZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBg
LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJk
cml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAorICAgICAgICAgICAgICAgICByZW1vdGVfcXVl
dWU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZGV2aWNlX3NlcmlhbD1Ob25lLAorICAgICAgICAg
ICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICBzdGFja3dhbGtf
YmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKKyAgICAg
ICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUgYGJpbmFy
eWAgYXJndW1lbnQgZ2l2ZXMKKyAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBmb3Ig
dGVzdGluZy4iIiIKKyAgICAgICAgc3VwZXIoU3lzdGVtV2ViVmlld1NoZWxsLCBzZWxmKS5fX2lu
aXRfXyhsb2dnZXIsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVtb3RlX3F1
ZXVlLCBkZXZpY2Vfc2VyaWFsLAorICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFj
a3dhbGtfYmluYXJ5LCBzeW1ib2xzX3BhdGgpCisgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5
CisgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0gX3dwdHNlcnZlX3BvcnRzCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9iYXNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5weQppbmRleCA5OWY2ZTVjZmY0YzguLjI4
MmUyZDdhZDVlZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5
CkBAIC0xLDM0ICsxLDE0IEBACitpbXBvcnQgZW51bQogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZv
cm0KIGltcG9ydCBzb2NrZXQKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhv
ZAotZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcwog
CiBmcm9tIC4ud3B0Y29tbWFuZGxpbmUgaW1wb3J0IHJlcXVpcmVfYXJnICAjIG5vcWE6IEY0MDEK
IAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAogCi1kZWYgaW5oZXJpdChzdXBl
cl9tb2R1bGUsIGNoaWxkX2dsb2JhbHMsIHByb2R1Y3RfbmFtZSk6Ci0gICAgc3VwZXJfd3B0cnVu
bmVyID0gc3VwZXJfbW9kdWxlLl9fd3B0cnVubmVyX18KLSAgICBjaGlsZF9nbG9iYWxzWyJfX3dw
dHJ1bm5lcl9fIl0gPSBjaGlsZF93cHRydW5uZXIgPSBkZWVwY29weShzdXBlcl93cHRydW5uZXIp
Ci0KLSAgICBjaGlsZF93cHRydW5uZXJbInByb2R1Y3QiXSA9IHByb2R1Y3RfbmFtZQotCi0gICAg
Zm9yIGsgaW4gKCJjaGVja19hcmdzIiwgImJyb3dzZXIiLCAiYnJvd3Nlcl9rd2FyZ3MiLCAiZXhl
Y3V0b3Jfa3dhcmdzIiwKLSAgICAgICAgICAgICAgImVudl9leHRyYXMiLCAiZW52X29wdGlvbnMi
LCAidGltZW91dF9tdWx0aXBsaWVyIik6Ci0gICAgICAgIGF0dHIgPSBzdXBlcl93cHRydW5uZXJb
a10KLSAgICAgICAgY2hpbGRfZ2xvYmFsc1thdHRyXSA9IGdldGF0dHIoc3VwZXJfbW9kdWxlLCBh
dHRyKQotCi0gICAgZm9yIHYgaW4gc3VwZXJfbW9kdWxlLl9fd3B0cnVubmVyX19bImV4ZWN1dG9y
Il0udmFsdWVzKCk6Ci0gICAgICAgIGNoaWxkX2dsb2JhbHNbdl0gPSBnZXRhdHRyKHN1cGVyX21v
ZHVsZSwgdikKLQotICAgIGlmICJydW5faW5mb19leHRyYXMiIGluIHN1cGVyX3dwdHJ1bm5lcjoK
LSAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1bm5lclsicnVuX2luZm9fZXh0cmFzIl0KLSAgICAg
ICAgY2hpbGRfZ2xvYmFsc1thdHRyXSA9IGdldGF0dHIoc3VwZXJfbW9kdWxlLCBhdHRyKQotCi0K
IGRlZiBjbWRfYXJnKG5hbWUsIHZhbHVlPU5vbmUpOgogICAgIHByZWZpeCA9ICItIiBpZiBwbGF0
Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyIgZWxzZSAiLS0iCiAgICAgcnYgPSBwcmVmaXggKyBu
YW1lCkBAIC02NSw3ICs0NSw3IEBAIGRlZiBnZXRfZnJlZV9wb3J0KCk6CiAgICAgICAgIHMgPSBz
b2NrZXQuc29ja2V0KCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAu
MC4xIiwgMCkpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBP
U0Vycm9yOgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAg
IHJldHVybiBzLmdldHNvY2tuYW1lKClbMV0KQEAgLTEyNiw2ICsxMDYsMTIgQEAgY2xhc3MgQnJv
d3NlcihvYmplY3QpOgogICAgICAgICBwYXNzCiAKICAgICBkZWYgc2V0dGluZ3Moc2VsZiwgdGVz
dCk6CisgICAgICAgICIiIkRpY3Rpb25hcnkgb2YgbWV0YWRhdGEgdGhhdCBpcyBjb25zdGFudCBm
b3IgYSBzcGVjaWZpYyBsYXVuY2ggb2YgYSBicm93c2VyLgorCisgICAgICAgIFRoaXMgaXMgdXNl
ZCB0byBkZXRlcm1pbmUgd2hlbiB0aGUgYnJvd3NlciBpbnN0YW5jZSBjb25maWd1cmF0aW9uIGNo
YW5nZXMsIHJlcXVpcmluZworICAgICAgICBhIHJlbGF1bmNoIG9mIHRoZSBicm93c2VyLiBUaGUg
dGVzdCBydW5uZXIgY2FsbHMgdGhpcyBtZXRob2QgZm9yIGVhY2ggdGVzdCwgYW5kIGlmIHRoZQor
ICAgICAgICByZXR1cm5lZCB2YWx1ZSBkaWZmZXJzIGZyb20gdGhhdCBmb3IgdGhlIHByZXZpb3Vz
IHRlc3QsIHRoZSBicm93c2VyIGlzIHJlbGF1bmNoZWQuCisgICAgICAgICIiIgogICAgICAgICBy
ZXR1cm4ge30KIAogICAgIEBhYnN0cmFjdG1ldGhvZApAQCAtMTU3LDYgKzE0MywxMCBAQCBjbGFz
cyBCcm93c2VyKG9iamVjdCk6CiAgICAgICAgIHdpdGggd2hpY2ggaXQgc2hvdWxkIGJlIGluc3Rh
bnRpYXRlZCIiIgogICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7fQogCisgICAgZGVm
IG1heWJlX3BhcnNlX3RvbWJzdG9uZShzZWxmKToKKyAgICAgICAgIiIiUG9zc2libHkgcGFyc2Ug
dG9tYnN0b25lcyBvbiBBbmRyb2lkIGRldmljZSBmb3IgQW5kcm9pZCB0YXJnZXQiIiIKKyAgICAg
ICAgcGFzcworCiAgICAgZGVmIGNoZWNrX2NyYXNoKHNlbGYsIHByb2Nlc3MsIHRlc3QpOgogICAg
ICAgICAiIiJDaGVjayBpZiBhIGNyYXNoIG9jY3VyZWQgYW5kIG91dHB1dCBhbnkgdXNlZnVsIGlu
Zm9ybWF0aW9uIHRvIHRoZQogICAgICAgICBsb2cuIFJldHVybnMgYSBib29sZWFuIGluZGljYXRp
bmcgd2hldGhlciBhIGNyYXNoIG9jY3VyZWQuIiIiCkBAIC0xODIsMTEgKzE3Miw4IEBAIGNsYXNz
IE51bGxCcm93c2VyKEJyb3dzZXIpOgogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAg
cmV0dXJuIFRydWUKIAotICAgIGRlZiBvbl9vdXRwdXQoc2VsZiwgbGluZSk6Ci0gICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotCi1jbGFzcyBFeGVjdXRvckJyb3dzZXIob2JqZWN0
KToKK2NsYXNzIEV4ZWN1dG9yQnJvd3NlcjoKICAgICAiIiJWaWV3IG9mIHRoZSBCcm93c2VyIHVz
ZWQgYnkgdGhlIEV4ZWN1dG9yIG9iamVjdC4KICAgICBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRo
ZSBFeGVjdXRvciBydW5zIGluIGEgY2hpbGQgcHJvY2VzcyBhbmQKICAgICB3ZSBjYW4ndCBzaGlw
IEJyb3dzZXIgaW5zdGFuY2VzIGJldHdlZW4gcHJvY2Vzc2VzIG9uIFdpbmRvd3MuCkBAIC0xOTYs
NSArMTgzLDk1IEBAIGNsYXNzIEV4ZWN1dG9yQnJvd3NlcihvYmplY3QpOgogICAgIHVwIHRoZSBi
cm93c2VyIGZyb20gdGhlIHJ1bm5lciBwcm9jZXNzLgogICAgICIiIgogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIGZvciBrLCB2IGluIGl0ZXJpdGVtcyhrd2FyZ3Mp
OgorICAgICAgICBmb3IgaywgdiBpbiBrd2FyZ3MuaXRlbXMoKToKICAgICAgICAgICAgIHNldGF0
dHIoc2VsZiwgaywgdikKKworCitAZW51bS51bmlxdWUKK2NsYXNzIE91dHB1dEhhbmRsZXJTdGF0
ZShlbnVtLkludEVudW0pOgorICAgIEJFRk9SRV9QUk9DRVNTX1NUQVJUID0gMQorICAgIEFGVEVS
X1BST0NFU1NfU1RBUlQgPSAyCisgICAgQUZURVJfSEFORExFUl9TVEFSVCA9IDMKKyAgICBBRlRF
Ul9QUk9DRVNTX1NUT1AgPSA0CisKKworY2xhc3MgT3V0cHV0SGFuZGxlcjoKKyAgICAiIiJDbGFz
cyBmb3IgaGFuZGxpbmcgb3V0cHV0IGZyb20gYSBicm93c2VyIHByb2Nlc3MuCisKKyAgICBUaGlz
IGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBjb25zdW1pbmcgdGhlIGxvZ2dpbmcgZnJvbSBhIGJy
b3dzZXIgcHJvY2VzcworICAgIGFuZCBwYXNzaW5nIGl0IGludG8gdGhlIHJlbGV2YW50IGxvZ2dl
ci4gQSBjbGFzcyBpbnN0YW5jZSBpcyBkZXNpZ25lZCB0bworICAgIGJlIHBhc3NlZCBhcyB0aGUg
cHJvY2Vzc091dHB1dExpbmUgYXJndW1lbnQgdG8gbW96cHJvY2Vzcy5Qcm9jZXNzSGFuZGxlci4K
KworICAgIFRoZSBzZXR1cCBvZiB0aGlzIGNsYXNzIGlzIGNvbXBsZXggZm9yIHZhcmlvdXMgcmVh
c29uczoKKworICAgICogV2UgbmVlZCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNz
IGJlZm9yZSBzdGFydGluZyB0aGUgcHJvY2VzcworICAgICogV2Ugd2FudCBhY2Nlc3MgdG8gZGF0
YSBhYm91dCB0aGUgcnVubmluZyBwcm9jZXNzIGUuZy4gdGhlIHBpZAorICAgICogV2Ugd2FudCB0
byBsYXVuY2ggdGhlIHByb2Nlc3MgYW5kIGxhdGVyIHNldHVwIGFkZGl0aW9uYWwgbG9nIGhhbmRs
aW5nCisgICAgICB3aGljaCBpcyByZXN0cm9zcGVjdGl2ZWx5IGFwcGxpZWQgdG8gYW55IGV4aXN0
aW5nIG91dHB1dCAodGhpcyBzdXBwb3J0cworICAgICAgcHJlbGF1bmNoaW5nIGJyb3dzZXJzIGZv
ciBwZXJmb3JtYW5jZSwgYnV0IGhhdmluZyBsb2cgb3V0cHV0IGRlcGVuZCBvbiB0aGUKKyAgICAg
IHRlc3RzIHRoYXQgYXJlIHJ1biBlLmcuIGZvciBsZWFrIHN1cHByZXNzaW9uKS4KKworICAgIFRo
ZXJlZm9yZSB0aGUgbGlmZWN5Y2xlIGlzIGFzIGZvbGxvd3M6OgorCisgICAgICBvdXRwdXRfaGFu
ZGxlciA9IE91dHB1dEhhbmRsZXIobG9nZ2VyLCBjb21tYW5kLCAqKm91dHB1dF9oYW5kbGVyX2t3
YXJncykKKyAgICAgIHByb2MgPSBQcm9jZXNzSGFuZGxlcihjb21tYW5kLCAuLi4sIHByb2Nlc3NP
dXRwdXRMaW5lPW91dHB1dF9oYW5kbGVyKQorICAgICAgb3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJv
Y2Vzc19zdGFydChwcm9jLnBpZCkKKyAgICAgIFsuLi5dCisgICAgICAjIEFsbCBsb2dnaW5nIHRv
IHRoaXMgcG9pbnQgd2FzIGJ1ZmZlcmVkIGluLW1lbW9yeSwgYnV0IGFmdGVyIHN0YXJ0KCkKKyAg
ICAgICMgaXQncyBhY3R1YWxseSBzZW50IHRvIHRoZSBsb2dnZXIuCisgICAgICBvdXRwdXRfaGFu
ZGxlci5zdGFydCgqKm91dHB1dF9sb2dnZXJfc3RhcnRfa3dhcmdzKQorICAgICAgWy4uLl0KKyAg
ICAgIHByb2Mud2FpdCgpCisgICAgICBvdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0b3Ao
KQorCisgICAgU2luY2UgdGhlIHByb2Nlc3MgbGlmZXRpbWUgYW5kIHRoZSBvdXRwdXQgaGFuZGxl
ciBsaWZldGltZSBhcmUgY291cGxlZCAoaXQgZG9lc24ndAorICAgIHdvcmsgdG8gcmV1c2UgYW4g
b3V0cHV0IGhhbmRsZXIgZm9yIG11bHRpcGxlIHByb2Nlc3NlcyksIGl0IG1pZ2h0IG1ha2Ugc2Vu
c2UgdG8gaGF2ZQorICAgIGEgc2luZ2xlIGNsYXNzIHRoYXQgb3ducyB0aGUgcHJvY2VzcyBhbmQg
dGhlIG91dHB1dCBwcm9jZXNzaW5nIGZvciB0aGUgcHJvY2Vzcy4KKyAgICBUaGlzIGlzIGNvbXBs
aWNhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgd2UgZG9uJ3QgYWx3YXlzIHJ1biB0aGUgcHJvY2VzcyBk
aXJlY3RseSwKKyAgICBidXQgc29tZXRpbWVzIHVzZSBhIHdyYXBwZXIgZS5nLiBtb3pydW5uZXIu
CisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBjb21tYW5kLCAqKmt3
YXJncyk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYuY29tbWFu
ZCA9IGNvbW1hbmQKKyAgICAgICAgc2VsZi5waWQgPSBOb25lCisgICAgICAgIHNlbGYuc3RhdGUg
PSBPdXRwdXRIYW5kbGVyU3RhdGUuQkVGT1JFX1BST0NFU1NfU1RBUlQKKyAgICAgICAgc2VsZi5s
aW5lX2J1ZmZlciA9IFtdCisKKyAgICBkZWYgYWZ0ZXJfcHJvY2Vzc19zdGFydChzZWxmLCBwaWQp
OgorICAgICAgICBhc3NlcnQgc2VsZi5zdGF0ZSA9PSBPdXRwdXRIYW5kbGVyU3RhdGUuQkVGT1JF
X1BST0NFU1NfU1RBUlQKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIk91dHB1dEhhbmRsZXIu
YWZ0ZXJfcHJvY2Vzc19zdGFydCIpCisgICAgICAgIHNlbGYucGlkID0gcGlkCisgICAgICAgIHNl
bGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3RhdGUuQUZURVJfUFJPQ0VTU19TVEFSVAorCisgICAg
ZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgYXNzZXJ0IHNlbGYuc3RhdGUgPT0g
T3V0cHV0SGFuZGxlclN0YXRlLkFGVEVSX1BST0NFU1NfU1RBUlQKKyAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoIk91dHB1dEhhbmRsZXIuc3RhcnQiKQorICAgICAgICAjIE5lZWQgdG8gY2hhbmdl
IHRoZSBzdGF0ZSBoZXJlIGJlZm9yZSB3ZSB0cnkgdG8gZW1wdHkgdGhlIGJ1ZmZlcgorICAgICAg
ICAjIG9yIHdlJ2xsIGp1c3QgcmUtYnVmZmVyIHRoZSBleGlzdGluZyBvdXRwdXQuCisgICAgICAg
IHNlbGYuc3RhdGUgPSBPdXRwdXRIYW5kbGVyU3RhdGUuQUZURVJfSEFORExFUl9TVEFSVAorICAg
ICAgICBmb3IgaXRlbSBpbiBzZWxmLmxpbmVfYnVmZmVyOgorICAgICAgICAgICAgc2VsZihpdGVt
KQorICAgICAgICBzZWxmLmxpbmVfYnVmZmVyID0gTm9uZQorCisgICAgZGVmIGFmdGVyX3Byb2Nl
c3Nfc3RvcChzZWxmLCBjbGVhbl9zaHV0ZG93bj1UcnVlKToKKyAgICAgICAgIyBJZiB3ZSBkaWRu
J3QgZ2V0IGFzIGZhciBhcyBjb25maWd1cmUsIGp1c3QKKyAgICAgICAgIyBkdW1wIGFsbCBsb2dz
IHdpdGggbm8gY29uZmlndXJhdGlvbgorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiT3V0cHV0
SGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0b3AiKQorICAgICAgICBpZiBzZWxmLnN0YXRlIDwgT3V0
cHV0SGFuZGxlclN0YXRlLkFGVEVSX0hBTkRMRVJfU1RBUlQ6CisgICAgICAgICAgICBzZWxmLnN0
YXJ0KCkKKyAgICAgICAgc2VsZi5zdGF0ZSA9IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9QUk9D
RVNTX1NUT1AKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBsaW5lKToKKyAgICAgICAgaWYgc2Vs
Zi5zdGF0ZSA8IE91dHB1dEhhbmRsZXJTdGF0ZS5BRlRFUl9IQU5ETEVSX1NUQVJUOgorICAgICAg
ICAgICAgc2VsZi5saW5lX2J1ZmZlci5hcHBlbmQobGluZSkKKyAgICAgICAgICAgIHJldHVybgor
CisgICAgICAgICMgQ291bGQgYXNzZXJ0IHRoYXQgdGhlcmUncyBubyBvdXRwdXQgaGFuZGxlZCBv
bmNlIHdlJ3JlIGluIHRoZQorICAgICAgICAjIGFmdGVyX3Byb2Nlc3Nfc3RvcCBwaGFzZSwgYWx0
aG91Z2ggdGVjaG5pY2FsbHkgdGhlcmUncyBhIHJhY2UgY29uZGl0aW9uCisgICAgICAgICMgaGVy
ZSBiZWNhdXNlIHdlIGRvbid0IGtub3cgdGhlIGxvZ2dpbmcgdGhyZWFkIGhhcyBmaW5pc2hlZCBk
cmFpbmluZyB0aGUKKyAgICAgICAgIyBsb2dzLiBUaGUgc29sdXRpb24gbWlnaHQgYmUgdG8gbW92
ZSB0aGlzIGludG8gbW96cHJvY2VzcyBpdHNlbGYuCisKKyAgICAgICAgc2VsZi5sb2dnZXIucHJv
Y2Vzc19vdXRwdXQoc2VsZi5waWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLmNvbW1hbmQpIGlmIHNlbGYuY29tbWFu
ZCBlbHNlICIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5
CmluZGV4IGZkMjUxYTQzMWMzMC4uMGI2YTBjNjE4ZGZjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJv
bWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CkBAIC0xLDUgKzEsNiBAQAogZnJvbSAuIGltcG9y
dCBjaHJvbWVfc3BraV9jZXJ0cwogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JC
cm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9x
YTogRjQwMQogZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9x
YTogRjQwMQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENocm9tZURyaXZlclNlcnZl
cgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0
b3Jfa3dhcmdzCkBAIC0xMiw3ICsxMyw4IEBAIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJv
bWUgaW1wb3J0IChDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciwgICMgbm9xYTogRjQwCiAKIF9f
d3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lIiwKICAgICAgICAgICAgICAgICAgImNo
ZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIkNo
cm9tZUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiQ2hyb21l
QnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJy
b3dzZXIifSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJX
ZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicHJpbnQtcmVmdGVzdCI6ICJDaHJvbWVEcml2ZXJQcmludFJlZlRl
c3RFeGVjdXRvciIsCkBAIC0yOCwxNiArMzAsMTUgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3Mp
OgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBi
cm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3Mp
OgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJd
LAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5h
cnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZl
cl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisg
ICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0
X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0
ZXJfZG9uZSJdID0gVHJ1ZQogICAgIGV4ZWN1dG9yX2t3YXJnc1sic3VwcG9ydHNfZWFnZXJfcGFn
ZWxvYWQiXSA9IEZhbHNlCkBAIC04MSw5ICs4MiwzMSBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAg
ICAjIFBvaW50IGFsbCAudGVzdCBkb21haW5zIHRvIGxvY2FsaG9zdCBmb3IgQ2hyb21lCiAgICAg
Y2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0taG9zdC1yZXNvbHZlci1ydWxlcz1NQVAg
bm9uZXhpc3RlbnQuKi50ZXN0IH5OT1RGT1VORCwgTUFQICoudGVzdCAxMjcuMC4wLjEiKQogCisg
ICAgIyBDbGFzc2lmeSBgaHR0cC1wcml2YXRlYCwgYGh0dHAtcHVibGljYCBhbmQgaHR0cHMgdmFy
aWFudHMgaW4gdGhlCisgICAgIyBhcHByb3ByaWF0ZSBJUCBhZGRyZXNzIHNwYWNlcy4KKyAgICAj
IEZvciBtb3JlIGRldGFpbHMsIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZmNzL2Jsb2IvbWFzdGVyL3JmY3MvYWRkcmVzc19zcGFjZV9vdmVycmlkZXMubWQKKyAg
ICBhZGRyZXNzX3NwYWNlX292ZXJyaWRlc19wb3J0cyA9IFsKKyAgICAgICAgKCJodHRwLXByaXZh
dGUiLCAicHJpdmF0ZSIpLAorICAgICAgICAoImh0dHAtcHVibGljIiwgInB1YmxpYyIpLAorICAg
ICAgICAoImh0dHBzLXByaXZhdGUiLCAicHJpdmF0ZSIpLAorICAgICAgICAoImh0dHBzLXB1Ymxp
YyIsICJwdWJsaWMiKSwKKyAgICBdCisgICAgYWRkcmVzc19zcGFjZV9vdmVycmlkZXNfYXJnID0g
IiwiLmpvaW4oCisgICAgICAgICIxMjcuMC4wLjE6e309e30iLmZvcm1hdChwb3J0X251bWJlciwg
YWRkcmVzc19zcGFjZSkKKyAgICAgICAgZm9yIHBvcnRfbmFtZSwgYWRkcmVzc19zcGFjZSBpbiBh
ZGRyZXNzX3NwYWNlX292ZXJyaWRlc19wb3J0cworICAgICAgICBmb3IgcG9ydF9udW1iZXIgaW4g
dGVzdF9lbnZpcm9ubWVudC5jb25maWcucG9ydHMuZ2V0KHBvcnRfbmFtZSwgW10pCisgICAgKQor
ICAgIGlmIGFkZHJlc3Nfc3BhY2Vfb3ZlcnJpZGVzX2FyZzoKKyAgICAgICAgY2hyb21lX29wdGlv
bnNbImFyZ3MiXS5hcHBlbmQoCisgICAgICAgICAgICAiLS1pcC1hZGRyZXNzLXNwYWNlLW92ZXJy
aWRlcz0iICsgYWRkcmVzc19zcGFjZV9vdmVycmlkZXNfYXJnKQorCiAgICAgaWYga3dhcmdzWyJl
bmFibGVfbW9qb2pzIl06CiAgICAgICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCIt
LWVuYWJsZS1ibGluay1mZWF0dXJlcz1Nb2pvSlMsTW9qb0pTVGVzdCIpCiAKKyAgICBpZiBrd2Fy
Z3NbImVuYWJsZV9zd2lmdHNoYWRlciJdOgorICAgICAgICAjIGh0dHBzOi8vY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9IRUFEL2RvY3MvZ3B1L3N3aWZ0c2hhZGVyLm1k
CisgICAgICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uZXh0ZW5kKFsiLS11c2UtZ2w9YW5nbGUi
LCAiLS11c2UtYW5nbGU9c3dpZnRzaGFkZXIiXSkKKwogICAgICMgQ29weSBvdmVyIGFueSBvdGhl
ciBmbGFncyB0aGF0IHdlcmUgcGFzc2VkIGluIHZpYSAtLWJpbmFyeV9hcmdzCiAgICAgaWYga3dh
cmdzWyJiaW5hcnlfYXJncyJdIGlzIG5vdCBOb25lOgogICAgICAgICBjaHJvbWVfb3B0aW9uc1si
YXJncyJdLmV4dGVuZChrd2FyZ3NbImJpbmFyeV9hcmdzIl0pCkBAIC0xMTMsNyArMTM2LDcgQEAg
Y2xhc3MgQ2hyb21lQnJvd3NlcihCcm93c2VyKToKICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwK
LSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgICAgICAgICAgICAg
IHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5l
dyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMK
ICAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKICAgICAg
ICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJv
bWVfYW5kcm9pZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CmluZGV4IDQ4NWI5NmYzMWU3
ZC4uM2JhMDE1ODhiMjk0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQpAQCAtMSw3ICsxLDkgQEAKK2ltcG9ydCBtb3pwcm9j
ZXNzCiBpbXBvcnQgc3VicHJvY2VzcwogCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVj
dXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9t
dWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAg
IyBub3FhOiBGNDAxCiBmcm9tIC5jaHJvbWUgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJv
bWVfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21l
RHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAo
V2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQpAQCAtMTEsNyArMTMs
OCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJX
ZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3Qi
OiAiY2hyb21lX2FuZHJvaWQiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVj
a19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiQ2hyb21lQW5kcm9pZEJyb3dz
ZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiQ2hyb21lQW5kcm9pZEJy
b3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93
c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2Vi
RHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LApA
QCAtMjksMjMgKzMyLDI0IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJl
X2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3Mo
dGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2Vy
X2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJn
cyk6CiAgICAgcmV0dXJuIHsicGFja2FnZV9uYW1lIjoga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwK
ICAgICAgICAgICAgICJkZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCiAg
ICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJd
LAotICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2Fy
Z3MiKX0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZl
cl9hcmdzIiksCisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJncy5nZXQoInN0
YWNrd2Fsa19iaW5hcnkiKSwKKyAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBrd2FyZ3MuZ2V0
KCJzeW1ib2xzX3BhdGgiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2Vy
dmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9r
d2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEs
CiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICAjIFVzZSB1cGRhdGUoKSB0byBt
b2RpZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNlLgogICAgIF93cHRzZXJ2ZV9wb3J0cy51cGRh
dGUoc2V0KAotICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwJ10gKyBzZXJ2ZXJf
Y29uZmlnWydwb3J0cyddWydodHRwcyddICsKLSAgICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMn
XVsnd3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzcyddCisgICAgICAgIHRlc3RfZW52
aXJvbm1lbnQuY29uZmlnWydwb3J0cyddWydodHRwJ10gKyB0ZXN0X2Vudmlyb25tZW50LmNvbmZp
Z1sncG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnWydw
b3J0cyddWyd3cyddICsgdGVzdF9lbnZpcm9ubWVudC5jb25maWdbJ3BvcnRzJ11bJ3dzcyddCiAg
ICAgKSkKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9tZV9leGVjdXRvcl9rd2FyZ3ModGVz
dF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICBleGVjdXRvcl9r
d2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vu
dmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgIyBSZW1vdmUgdW5zdXBwb3J0ZWQgb3B0aW9u
cyBvbiBtb2JpbGUuCiAgICAgZGVsIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdv
b2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJdCkBAIC02OSwyMCArNzMsODIgQEAgZGVmIGVudl9v
cHRpb25zKCk6CiAgICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiAiMTI3LjAuMC4xIn0KIAogCi1j
bGFzcyBDaHJvbWVBbmRyb2lkQnJvd3NlcihCcm93c2VyKToKLSAgICAiIiJDaHJvbWUgaXMgYmFj
a2VkIGJ5IGNocm9tZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaAotICAgIGBgd3B0
cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KLSAgICAiIiIKK2NsYXNzIExv
Z2NhdFJ1bm5lcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dz
ZXIsIHJlbW90ZV9xdWV1ZSk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAg
IHNlbGYuYnJvd3NlciA9IGJyb3dzZXIKKyAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSByZW1v
dGVfcXVldWUKKworICAgIGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgc2VsZi5fcnVuKCkKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAg
ICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBfcnVuKHNlbGYpOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAjIFRPRE86IGFkYiBsb2djYXQgLWMgZmFpbCByYW5kb21seSB3aXRoIG1lc3Nh
Z2UKKyAgICAgICAgICAgICMgImZhaWxlZCB0byBjbGVhciB0aGUgJ21haW4nIGxvZyIKKyAgICAg
ICAgICAgIHNlbGYuYnJvd3Nlci5jbGVhcl9sb2coKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vz
cy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiRmFp
bGVkIHRvIGNsZWFyIGxvZ2NhdCBidWZmZXIiKQorCisgICAgICAgIHNlbGYuX2NtZCA9IHNlbGYu
YnJvd3Nlci5sb2djYXRfY21kKCkKKyAgICAgICAgc2VsZi5fcHJvYyA9IG1venByb2Nlc3MuUHJv
Y2Vzc0hhbmRsZXIoCisgICAgICAgICAgICBzZWxmLl9jbWQsCisgICAgICAgICAgICBwcm9jZXNz
T3V0cHV0TGluZT1zZWxmLm9uX291dHB1dCwKKyAgICAgICAgICAgIHN0b3JlT3V0cHV0PUZhbHNl
KQorICAgICAgICBzZWxmLl9wcm9jLnJ1bigpCisKKyAgICBkZWYgX3NlbmRfbWVzc2FnZShzZWxm
LCBjb21tYW5kLCAqYXJncyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucmVtb3Rl
X3F1ZXVlLnB1dCgoY29tbWFuZCwgYXJncykpCisgICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJv
cjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkVycm9yIHdoZW4gc2VuZCB0byBy
ZW1vdGUgcXVldWUiKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcGFja2FnZV9u
YW1lLCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAotICAgICAgICAgICAgICAgICBk
ZXZpY2Vfc2VyaWFsPU5vbmUsIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgotICAgICAgICBCcm93c2Vy
Ll9faW5pdF9fKHNlbGYsIGxvZ2dlcikKLSAgICAgICAgc2VsZi5wYWNrYWdlX25hbWUgPSBwYWNr
YWdlX25hbWUKKyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIGlmIHNl
bGYuaXNfYWxpdmUoKToKKyAgICAgICAgICAgIGtpbGxfcmVzdWx0ID0gc2VsZi5fcHJvYy5raWxs
KCkKKyAgICAgICAgICAgIGlmIGZvcmNlIGFuZCBraWxsX3Jlc3VsdCAhPSAwOgorICAgICAgICAg
ICAgICAgIHNlbGYuX3Byb2Mua2lsbCg5KQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAg
ICAgICByZXR1cm4gaGFzYXR0cihzZWxmLl9wcm9jLCAicHJvYyIpIGFuZCBzZWxmLl9wcm9jLnBv
bGwoKSBpcyBOb25lCisKKyAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgorICAgICAgICBk
YXRhID0geworICAgICAgICAgICAgImFjdGlvbiI6ICJwcm9jZXNzX291dHB1dCIsCisgICAgICAg
ICAgICAicHJvY2VzcyI6ICJMT0dDQVQiLAorICAgICAgICAgICAgImNvbW1hbmQiOiAibG9nY2F0
IiwKKyAgICAgICAgICAgICJkYXRhIjogbGluZQorICAgICAgICB9CisgICAgICAgIHNlbGYuX3Nl
bmRfbWVzc2FnZSgibG9nIiwgZGF0YSkKKworCitjbGFzcyBDaHJvbWVBbmRyb2lkQnJvd3NlckJh
c2UoQnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwKKyAgICAgICAgICAg
ICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAg
cmVtb3RlX3F1ZXVlID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgZGV2aWNlX3NlcmlhbD1Ob25l
LAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAgICAg
ICBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1O
b25lKToKKyAgICAgICAgc3VwZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlLCBzZWxmKS5fX2lu
aXRfXyhsb2dnZXIpCiAgICAgICAgIHNlbGYuZGV2aWNlX3NlcmlhbCA9IGRldmljZV9zZXJpYWwK
KyAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5ID0gc3RhY2t3YWxrX2JpbmFyeQorICAgICAg
ICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0aAorICAgICAgICBzZWxmLnJlbW90ZV9x
dWV1ZSA9IHJlbW90ZV9xdWV1ZQogICAgICAgICBzZWxmLnNlcnZlciA9IENocm9tZURyaXZlclNl
cnZlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisgICAgICAgIGlmIHNlbGYucmVtb3Rl
X3F1ZXVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2djYXRfcnVubmVyID0gTG9n
Y2F0UnVubmVyKHNlbGYubG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZiwgc2VsZi5yZW1vdGVfcXVldWUpCisKKyAgICBkZWYgc2V0dXAoc2VsZik6
CiAgICAgICAgIHNlbGYuc2V0dXBfYWRiX3JldmVyc2UoKQorICAgICAgICBpZiBzZWxmLnJlbW90
ZV9xdWV1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYubG9nY2F0X3J1bm5lci5zdGFy
dCgpCiAKICAgICBkZWYgX2FkYl9ydW4oc2VsZiwgYXJncyk6CiAgICAgICAgIGNtZCA9IFsnYWRi
J10KQEAgLTkyLDE0ICsxNTgsNiBAQCBjbGFzcyBDaHJvbWVBbmRyb2lkQnJvd3NlcihCcm93c2Vy
KToKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnICcuam9pbihjbWQpKQogICAgICAgICBzdWJw
cm9jZXNzLmNoZWNrX2NhbGwoY21kKQogCi0gICAgZGVmIHNldHVwX2FkYl9yZXZlcnNlKHNlbGYp
OgotICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2FpdC1mb3ItZGV2aWNlJ10pCi0gICAgICAgIHNl
bGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQotICAgICAgICBzZWxmLl9h
ZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKLSAgICAgICAgIyAiYWRiIHJldmVy
c2UiIGZvcndhcmRzIG5ldHdvcmsgY29ubmVjdGlvbiBmcm9tIGRldmljZSB0byBob3N0LgotICAg
ICAgICBmb3IgcG9ydCBpbiBfd3B0c2VydmVfcG9ydHM6Ci0gICAgICAgICAgICBzZWxmLl9hZGJf
cnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKLQogICAg
IGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJs
b2NrPUZhbHNlKQogCkBAIC0xMTksNiArMTc3LDYwIEBAIGNsYXNzIENocm9tZUFuZHJvaWRCcm93
c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnN0b3AoKQogICAgICAgICBzZWxmLl9hZGJfcnVu
KFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3Jl
dmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgIGlmIHNlbGYucmVtb3RlX3F1ZXVlIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2djYXRfcnVubmVyLnN0b3AoZm9yY2U9VHJ1
ZSkKIAogICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgogICAgICAgICByZXR1cm4gRXhl
Y3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CisKKyAgICBk
ZWYgY2xlYXJfbG9nKHNlbGYpOgorICAgICAgICBzZWxmLl9hZGJfcnVuKFsnbG9nY2F0JywgJy1j
J10pCisKKyAgICBkZWYgbG9nY2F0X2NtZChzZWxmKToKKyAgICAgICAgY21kID0gWydhZGInXQor
ICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6CisgICAgICAgICAgICBjbWQuZXh0ZW5kKFsn
LXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAgICAgICBjbWQuZXh0ZW5kKFsnbG9nY2F0Jywg
Jyo6RCddKQorICAgICAgICByZXR1cm4gY21kCisKKyAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwg
cHJvY2VzcywgdGVzdCk6CisgICAgICAgIHNlbGYubWF5YmVfcGFyc2VfdG9tYnN0b25lKCkKKyAg
ICAgICAgIyBFeGlzdGVuY2Ugb2YgYSB0b21ic3RvbmUgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVh
biB0ZXN0IHRhcmdldCBoYXMKKyAgICAgICAgIyBjcmFzaGVkLiBBbHdheXMgcmV0dXJuIEZhbHNl
IHNvIHdlIGRvbid0IGNoYW5nZSB0aGUgdGVzdCByZXN1bHRzLgorICAgICAgICByZXR1cm4gRmFs
c2UKKworICAgIGRlZiBtYXliZV9wYXJzZV90b21ic3RvbmUoc2VsZik6CisgICAgICAgIGlmIHNl
bGYuc3RhY2t3YWxrX2JpbmFyeToKKyAgICAgICAgICAgIGNtZCA9IFtzZWxmLnN0YWNrd2Fsa19i
aW5hcnksICItYSIsICItdyJdCisgICAgICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6Cisg
ICAgICAgICAgICAgICAgY21kLmV4dGVuZChbIi0tZGV2aWNlIiwgc2VsZi5kZXZpY2Vfc2VyaWFs
XSkKKyAgICAgICAgICAgIGNtZC5leHRlbmQoWyItLW91dHB1dC1kaXJlY3RvcnkiLCBzZWxmLnN5
bWJvbHNfcGF0aF0pCisgICAgICAgICAgICByYXdfb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19v
dXRwdXQoY21kKQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gcmF3X291dHB1dC5zcGxpdGxpbmVz
KCk6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoIlRSQUNFIiwg
bGluZSwgImxvZ2NhdCIpCisKKyAgICBkZWYgc2V0dXBfYWRiX3JldmVyc2Uoc2VsZik6CisgICAg
ICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1kZXZpY2UnXSkKKyAgICAgICAgc2VsZi5fYWRi
X3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgIHNlbGYuX2FkYl9ydW4o
WydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQorICAgICAgICAjICJhZGIgcmV2ZXJzZSIgZm9y
d2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20gZGV2aWNlIHRvIGhvc3QuCisgICAgICAgIGZv
ciBwb3J0IGluIHNlbGYud3B0c2VydmVyX3BvcnRzOgorICAgICAgICAgICAgc2VsZi5fYWRiX3J1
bihbJ3JldmVyc2UnLCAndGNwOiVkJyAlIHBvcnQsICd0Y3A6JWQnICUgcG9ydF0pCisKK2NsYXNz
IENocm9tZUFuZHJvaWRCcm93c2VyKENocm9tZUFuZHJvaWRCcm93c2VyQmFzZSk6CisgICAgIiIi
Q2hyb21lIGlzIGJhY2tlZCBieSBjaHJvbWVkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91
Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuQ2hyb21lRHJpdmVyU2VydmVyYGAuCisgICAg
IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwYWNrYWdlX25hbWUsCisgICAg
ICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCisgICAgICAgICAg
ICAgICAgIHJlbW90ZV9xdWV1ZSA9IE5vbmUsCisgICAgICAgICAgICAgICAgIGRldmljZV9zZXJp
YWw9Tm9uZSwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwKKyAgICAgICAg
ICAgICAgICAgc3RhY2t3YWxrX2JpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAgICBzeW1ib2xz
X3BhdGg9Tm9uZSk6CisgICAgICAgIHN1cGVyKENocm9tZUFuZHJvaWRCcm93c2VyLCBzZWxmKS5f
X2luaXRfXyhsb2dnZXIsCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVtb3Rl
X3F1ZXVlLCBkZXZpY2Vfc2VyaWFsLAorICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCBz
dGFja3dhbGtfYmluYXJ5LCBzeW1ib2xzX3BhdGgpCisgICAgICAgIHNlbGYucGFja2FnZV9uYW1l
ID0gcGFja2FnZV9uYW1lCisgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0gX3dwdHNlcnZl
X3BvcnRzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lv
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZlNGFjNTI4N2Yx
OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkKQEAgLTAsMCArMSw4MSBA
QAorZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2Fy
ZworZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIsIGdldF90aW1lb3V0X211bHRpcGxpZXIg
ICAjIG5vcWE6IEY0MDEKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDV1RDaHJvbWVE
cml2ZXJTZXJ2ZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBi
YXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBp
bXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhl
Y3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1w
b3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKKworCitfX3dwdHJ1
bm5lcl9fID0geyJwcm9kdWN0IjogImNocm9tZV9pb3MiLAorICAgICAgICAgICAgICAgICAiY2hl
Y2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9u
ZTogIkNocm9tZWlPU0Jyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2Rz
cGVjIjogIk51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVz
dGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IifSwK
KyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAg
ICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAg
ICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVv
dXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KKworZGVmIGNoZWNrX2Fy
Z3MoKiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnki
KQorCisKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3
YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjog
a3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAorICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorICAg
IGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGV4ZWN1dG9y
X2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSB7fQorICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MK
KworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKKworZGVmIGVu
dl9vcHRpb25zKCk6CisgICAgcmV0dXJuIHt9CisKKworY2xhc3MgQ2hyb21laU9TQnJvd3NlcihC
cm93c2VyKToKKyAgICAiIiJDaHJvbWVpT1MgaXMgYmFja2VkIGJ5IENXVENocm9tZURyaXZlciwg
d2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DV1RD
aHJvbWVEcml2ZXJTZXJ2ZXJgYC4KKyAgICAiIiIKKworICAgIGluaXRfdGltZW91dCA9IDEyMAor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJp
dmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJl
c2VudGF0aW9uIG9mIENocm9tZS4iIiIKKyAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBs
b2dnZXIpCisgICAgICAgIHNlbGYuc2VydmVyID0gQ1dUQ2hyb21lRHJpdmVyU2VydmVyKHNlbGYu
bG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5h
cnk9d2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKworICAgIGRlZiBzdGFydChzZWxmLCAqKmt3
YXJncyk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQorCisgICAgZGVm
IHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNl
PWZvcmNlKQorCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVy
LnBpZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICAjIFRPRE8oYXRvKTogVGhp
cyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAorICAgICAgICAjIGFuZCBkb2Vz
bid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCisgICAgICAg
ICMgaXMgYWN0aXZlLgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorCisg
ICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICBkZWYgZXhl
Y3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3
ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21l
X3Nwa2lfY2VydHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfc3BraV9jZXJ0cy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY1Y2NiYzZiYzhhMgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2Nocm9tZV9zcGtpX2NlcnRzLnB5CkBAIC0wLDAgKzEsMTMgQEAKKyMgVGhpcyBm
aWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5ICd3cHQgcmVnZW4tY2VydHMnCisjIERP
IE5PVCBFRElUIE1BTlVBTExZLgorCisjIHRvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LnBl
bQorV1BUX0ZJTkdFUlBSSU5UID0gJ0U5NkFzWjNQTWNGSTV4RzZvSi9OZjA3Nm9aZnZvb3Vidzhu
bFJ3Wm4wSms9JworCisjIHNpZ25lZC1leGNoYW5nZS9yZXNvdXJjZXMvMTI3LjAuMC4xLnN4Zy5w
ZW0KK1NYR19XUFRfRklOR0VSUFJJTlQgPSAnMFJ0NG1UNlNKWG9qRU1IVG5LbmxKL2hCS01CY0k0
a3RlQmxoUjFlVFRkaz0nCisKK0lHTk9SRV9DRVJUSUZJQ0FURV9FUlJPUlNfU1BLSV9MSVNUID0g
WworICAgIFdQVF9GSU5HRVJQUklOVCwKKyAgICBTWEdfV1BUX0ZJTkdFUlBSSU5UCitdCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9lZGdlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQppbmRleCBiZGIzN2IzZjg0YzIu
LjMxMDFlOWM3YmVhMyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
LnB5CkBAIC0xLDcgKzEsNyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgogaW1wb3J0IHRpbWUKIGltcG9ydCBzdWJwcm9jZXNzCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93
c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBOdWxs
QnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRn
ZURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFz
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0g
aW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKQEAgLTEw
LDcgKzEwLDggQEAgZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmVkZ2UgaW1wb3J0IEVkZ2VEcml2
ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1
Y3QiOiAiZWRnZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3Mi
LAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJFZGdlQnJvd3NlciIsCisgICAgICAgICAg
ICAgICAgICJicm93c2VyIjoge05vbmU6ICJFZGdlQnJvd3NlciIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAg
ImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3Ii
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZU
ZXN0RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJF
ZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKQEAgLTM0LDcgKzM1LDcgQEAgZGVmIGNoZWNrX2Fy
Z3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnki
KQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZp
ZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmlu
YXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVy
X2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpLAogICAgICAgICAgICAgInRpbWVv
dXRfbXVsdGlwbGllciI6IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLApAQCAtNDIs
MTAgKzQzLDkgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyl9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitk
ZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBy
dW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0
b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFn
ZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2Vf
ZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0
YSwgKiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBU
cnVlCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSA9IGdldF90aW1l
b3V0X211bHRpcGxpZXIodGVzdF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCkBAIC02
NSwxMCArNjUsMTAgQEAgZGVmIGVudl9vcHRpb25zKCk6CiAKIAogY2xhc3MgRWRnZUJyb3dzZXIo
QnJvd3Nlcik6Ci0gICAgdXNlZF9wb3J0cyA9IHNldCgpCiAgICAgaW5pdF90aW1lb3V0ID0gNjAK
IAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnksIHRpbWVv
dXRfbXVsdGlwbGllcj1Ob25lLCB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCB3ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgdGltZW91dF9t
dWx0aXBsaWVyPU5vbmUsIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAg
QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCiAgICAgICAgIHNlbGYuc2VydmVyID0gRWRn
ZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRn
ZV93ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQppbmRleCBjMjU0NWRlNDZm
MGIuLmU1OTQ5ZmUzZTU3ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkKQEAgLTEsMTIgKzEsMjggQEAKLWZyb20gLmJhc2Ug
aW1wb3J0IGluaGVyaXQKLWZyb20gLiBpbXBvcnQgZWRnZQorZnJvbSAuYmFzZSBpbXBvcnQgTnVs
bEJyb3dzZXIgICMgbm9xYTogRjQwMQorZnJvbSAuZWRnZSBpbXBvcnQgKEVkZ2VCcm93c2VyLCAg
IyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9y
LCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgY2hlY2tfYXJncywgICMgbm9xYTog
RjQwMQorICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzLCAgIyBub3FhOiBGNDAxCisg
ICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzLCAgIyBub3FhOiBGNDAxCisgICAgICAg
ICAgICAgICAgICAgZW52X2V4dHJhcywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAg
IGVudl9vcHRpb25zLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgcnVuX2luZm9f
ZXh0cmFzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgZ2V0X3RpbWVvdXRfbXVs
dGlwbGllcikgICMgbm9xYTogRjQwMQogCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJp
dmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRl
c3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogCiAKLWluaGVyaXQoZWRnZSwgZ2xvYmFscygpLCAi
ZWRnZV93ZWJkcml2ZXIiKQotCi0jIF9fd3B0cnVubmVyX18gbWFnaWNhbGx5IGFwcGVhcnMgZnJv
bSBpbmhlcml0LCBGODIxIGlzIHVuZGVmaW5lZCBuYW1lCi1fX3dwdHJ1bm5lcl9fWyJleGVjdXRv
ciJdWyJ0ZXN0aGFybmVzcyJdID0gIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiICAjIG5v
cWE6IEY4MjEKLV9fd3B0cnVubmVyX19bImV4ZWN1dG9yIl1bInJlZnRlc3QiXSA9ICJXZWJEcml2
ZXJSZWZUZXN0RXhlY3V0b3IiICAjIG5vcWE6IEY4MjEKK19fd3B0cnVubmVyX18gPSB7InByb2R1
Y3QiOiAiZWRnZV93ZWJkcml2ZXIiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJj
aGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VCcm93
c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3Nl
ciJ9LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRy
aXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ3ZHNwZWMiOiAiRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAg
ICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAg
ICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJl
bnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgICAgICAgICAgICAgICJydW5faW5mb19l
eHRyYXMiOiAicnVuX2luZm9fZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVs
dGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Vk
Z2VjaHJvbWl1bS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjRmMmUwZGRjNGQwMgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2VkZ2VjaHJvbWl1bS5weQpAQCAtMCwwICsxLDExOSBAQAorZnJvbSAuYmFzZSBpbXBvcnQg
QnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQg
TnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRf
bXVsdGlwbGllciAgICMgbm9xYTogRjQwMQorZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0
IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0
b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9x
YTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRy
aXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcmVkZ2VjaHJvbWl1bSBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3Ig
ICMgbm9xYTogRjQwMQorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZWNocm9t
aXVtIiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAg
ICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJFZGdlQ2hyb21pdW1Ccm93c2VyIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3Ro
YXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3Qi
OiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3ZHNwZWMiOiAiRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAg
ICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAg
ICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVu
dl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVs
dGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIix9CisKKworZGVmIGNoZWNrX2FyZ3Mo
Kiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQor
CisKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnki
XSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmlu
YXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2
ZXJfYXJncyIpfQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRl
c3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZp
cm9ubWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5f
aW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQor
ICAgIGV4ZWN1dG9yX2t3YXJnc1sic3VwcG9ydHNfZWFnZXJfcGFnZWxvYWQiXSA9IEZhbHNlCisK
KyAgICBjYXBhYmlsaXRpZXMgPSB7CisgICAgICAgICJtczplZGdlT3B0aW9ucyI6IHsKKyAgICAg
ICAgICAgICJwcmVmcyI6IHsKKyAgICAgICAgICAgICAgICAicHJvZmlsZSI6IHsKKyAgICAgICAg
ICAgICAgICAgICAgImRlZmF1bHRfY29udGVudF9zZXR0aW5nX3ZhbHVlcyI6IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJwb3B1cHMiOiAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInVzZUF1dG9tYXRpb25F
eHRlbnNpb24iOiBGYWxzZSwKKyAgICAgICAgICAgICJleGNsdWRlU3dpdGNoZXMiOiBbImVuYWJs
ZS1hdXRvbWF0aW9uIl0sCisgICAgICAgICAgICAidzNjIjogVHJ1ZQorICAgICAgICB9CisgICAg
fQorCisgICAgaWYgdGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6CisgICAgICAgIGNhcGFiaWxp
dGllc1sicGFnZUxvYWRTdHJhdGVneSJdID0gIm5vbmUiCisKKyAgICBmb3IgKGt3YXJnLCBjYXBh
YmlsaXR5KSBpbiBbKCJiaW5hcnkiLCAiYmluYXJ5IiksICgiYmluYXJ5X2FyZ3MiLCAiYXJncyIp
XToKKyAgICAgICAgaWYga3dhcmdzW2t3YXJnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNh
cGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9IGt3YXJnc1trd2FyZ10K
KworICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToKKyAgICAgICAgaWYgImFyZ3MiIG5vdCBpbiBj
YXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl06CisgICAgICAgICAgICBjYXBhYmlsaXRpZXNb
Im1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXSA9IFtdCisgICAgICAgIGlmICItLWhlYWRsZXNzIiBu
b3QgaW4gY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdWyJhcmdzIl06CisgICAgICAgICAg
ICBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxl
c3MiKQorCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGll
cworCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dh
cmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4g
e30KKworCitjbGFzcyBFZGdlQ2hyb21pdW1Ccm93c2VyKEJyb3dzZXIpOgorICAgICIiIk1pY3Jv
c29mdEVkZ2UgaXMgYmFja2VkIGJ5IE1TRWRnZURyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhy
b3VnaAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5FZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXJg
YC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2Vi
ZHJpdmVyX2JpbmFyeT0ibXNlZGdlZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVy
X2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2Vu
dGF0aW9uIG9mIE1pY3Jvc29mdEVkZ2UuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKKyAg
ICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKKyAgICAgICAg
QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCisgICAgICAgIHNlbGYuYmluYXJ5ID0gYmlu
YXJ5CisgICAgICAgIHNlbGYuc2VydmVyID0gRWRnZUNocm9taXVtRHJpdmVyU2VydmVyKHNlbGYu
bG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9
d2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXJncz13ZWJkcml2ZXJfYXJncykKKworICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6
CisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQorCisgICAgZGVmIHN0b3Ao
c2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNl
KQorCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAor
CisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5
IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAorICAgICAgICAjIGFuZCBkb2Vzbid0IHNh
eSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCisgICAgICAgICMgaXMg
YWN0aXZlLgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorCisgICAgZGVm
IGNsZWFudXAoc2VsZik6CisgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICBkZWYgZXhlY3V0b3Jf
YnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2
ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9lcGlwaGFueS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmQ2MWY3NGUyMjY4YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VwaXBoYW55LnB5CkBA
IC0wLDAgKzEsODAgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IChOdWxsQnJvd3NlciwgICMgbm9xYTog
RjQwMQorICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlX2RvbWFpbl9saXN0LAorICAgICAg
ICAgICAgICAgICAgIGdldF90aW1lb3V0X211bHRpcGxpZXIsICAjIG5vcWE6IEY0MDEKKyAgICAg
ICAgICAgICAgICAgICBtYXliZV9hZGRfYXJncykKK2Zyb20gLndlYmtpdCBpbXBvcnQgV2ViS2l0
QnJvd3NlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2Vf
ZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9y
dCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRv
ciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkRyaXZlckNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC4uZXhl
Y3V0b3JzLmV4ZWN1dG9yd2Via2l0IGltcG9ydCBXZWJLaXREcml2ZXJXZHNwZWNFeGVjdXRvciAg
IyBub3FhOiBGNDAxCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZXBpcGhhbnkiLAor
ICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAgICAg
ICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVwaXBoYW55QnJvd3NlciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKKyAgICAgICAgICAgICAg
ICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAg
ImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9y
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJl
ZlRlc3RFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjog
IldlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjcmFzaHRlc3QiOiAiV2ViRHJpdmVyQ3Jhc2h0ZXN0RXhlY3V0b3IifSwKKyAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAg
ICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVu
dl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4
dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0
aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCisKK2RlZiBjaGVja19hcmdzKCoq
a3dhcmdzKToKKyAgICBwYXNzCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICAjIFdvcmthcm91bmQg
Zm9yIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwL2lzc3Vlcy8xNzIKKyAg
ICB3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncyA9IFsiLS1ob3N0PTEyNy4wLjAuMSJdCisgICAgd2Vi
ZHJpdmVyX2FyZ3MgPSBtYXliZV9hZGRfYXJncyh3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncywga3dh
cmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKSkKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3Nb
ImJpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRy
aXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IHdlYmRyaXZlcl9h
cmdzfQorCisKK2RlZiBjYXBhYmlsaXRpZXMoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpOgorICAg
IGFyZ3MgPSBrd2FyZ3MuZ2V0KCJiaW5hcnlfYXJncyIsIFtdKQorICAgIGlmICItLWF1dG9tYXRp
b24tbW9kZSIgbm90IGluIGFyZ3M6CisgICAgICAgIGFyZ3MuYXBwZW5kKCItLWF1dG9tYXRpb24t
bW9kZSIpCisKKyAgICByZXR1cm4geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiRXBpcGhhbnki
LAorICAgICAgICAiYnJvd3NlclZlcnNpb24iOiAiMy4zMS40IiwgICMgRmlyc3QgdmVyc2lvbiB0
byBzdXBwb3J0IGF1dG9tYXRpb24KKyAgICAgICAgInBsYXRmb3JtTmFtZSI6ICJBTlkiLAorICAg
ICAgICAid2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zIjogeworICAgICAgICAgICAgImJpbmFyeSI6
IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAiYXJncyI6IGFyZ3MsCisgICAgICAgICAg
ICAiY2VydGlmaWNhdGVzIjogY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qoc2VydmVyX2NvbmZpZy5k
b21haW5zX3NldCwga3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdKX19CisKKworZGVmIGV4ZWN1dG9y
X2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0
YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgIGV4ZWN1dG9yX2t3YXJncyA9
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25l
Il0gPSBUcnVlCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxp
dGllcyh0ZXN0X2Vudmlyb25tZW50LmNvbmZpZywgKiprd2FyZ3MpCisgICAgcmV0dXJuIGV4ZWN1
dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10K
KworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitkZWYgcnVuX2luZm9f
ZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJraXRfcG9ydCI6ICJndGsifQorCisK
K2NsYXNzIEVwaXBoYW55QnJvd3NlcihXZWJLaXRCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lLAorICAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIFdlYktp
dEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5hcnks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9maXJlZm94LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weQppbmRleCAxNTE1MzA4OTdk
OWIuLmFjMjc0NTMxMjdhYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9maXJlZm94LnB5CkBAIC0xLDkgKzEsMTIgQEAKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCBpbwog
aW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc2lnbmFsCiBp
bXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgemlw
ZmlsZQogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCiAKIGltcG9ydCBt
b3ppbmZvCkBAIC0xNSwyNiArMTgsMzAgQEAgZnJvbSBtb3pydW5uZXIgaW1wb3J0IEZpcmVmb3hS
dW5uZXIKIGZyb20gbW96cnVubmVyLnV0aWxzIGltcG9ydCB0ZXN0X2Vudmlyb25tZW50LCBnZXRf
c3RhY2tfZml4ZXJfZnVuY3Rpb24KIGZyb20gbW96Y3Jhc2ggaW1wb3J0IG1vemNyYXNoCiAKLWZy
b20gLmJhc2UgaW1wb3J0IChnZXRfZnJlZV9wb3J0LAotICAgICAgICAgICAgICAgICAgIEJyb3dz
ZXIsCitmcm9tIC5iYXNlIGltcG9ydCAoQnJvd3NlciwKICAgICAgICAgICAgICAgICAgICBFeGVj
dXRvckJyb3dzZXIsCi0gICAgICAgICAgICAgICAgICAgcmVxdWlyZV9hcmcsCisgICAgICAgICAg
ICAgICAgICAgTnVsbEJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgT3V0cHV0SGFuZGxlciwK
KyAgICAgICAgICAgICAgICAgICBPdXRwdXRIYW5kbGVyU3RhdGUsCisgICAgICAgICAgICAgICAg
ICAgYnJvd3Nlcl9jb21tYW5kLAogICAgICAgICAgICAgICAgICAgIGNtZF9hcmcsCi0gICAgICAg
ICAgICAgICAgICAgYnJvd3Nlcl9jb21tYW5kKQorICAgICAgICAgICAgICAgICAgIGdldF9mcmVl
X3BvcnQsCisgICAgICAgICAgICAgICAgICAgcmVxdWlyZV9hcmcpCiBmcm9tIC4uZXhlY3V0b3Jz
IGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3JtYXJpb25ldHRlIGltcG9ydCAoTWFyaW9uZXR0ZVRlc3RoYXJuZXNz
RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRS
ZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVdkc3BlY0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAx
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVD
cmFzaHRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQotZnJvbSAuLnByb2Nlc3MgaW1wb3J0IGNh
c3RfZW52Citmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViRHJpdmVyU2VydmVyCiAK
IAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAogX193cHRydW5uZXJfXyA9IHsi
cHJvZHVjdCI6ICJmaXJlZm94IiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hl
Y2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIkZpcmVmb3hCcm93c2VyIiwK
KyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkZpcmVmb3hCcm93c2VyIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJGaXJlZm94V2RTcGVjQnJvd3Nl
ciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7ImNyYXNodGVzdCI6ICJNYXJpb25l
dHRlQ3Jhc2h0ZXN0RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRl
c3RoYXJuZXNzIjogIk1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIk1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3Ii
LApAQCAtNTMsMTEgKzYwLDExIEBAIGRlZiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgogICAgIGlmIGt3YXJnc1sidGltZW91dF9tdWx0
aXBsaWVyIl0gaXMgbm90IE5vbmU6CiAgICAgICAgIHJldHVybiBrd2FyZ3NbInRpbWVvdXRfbXVs
dGlwbGllciJdCiAgICAgaWYgdGVzdF90eXBlID09ICJyZWZ0ZXN0IjoKLSAgICAgICAgaWYgcnVu
X2luZm9fZGF0YVsiZGVidWciXSBvciBydW5faW5mb19kYXRhLmdldCgiYXNhbiIpOgorICAgICAg
ICBpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikg
b3IgcnVuX2luZm9fZGF0YS5nZXQoInRzYW4iKToKICAgICAgICAgICAgIHJldHVybiA0CiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gMgotICAgIGVsaWYgcnVuX2luZm9fZGF0YVsi
ZGVidWciXSBvciBydW5faW5mb19kYXRhLmdldCgiYXNhbiIpOgorICAgIGVsaWYgcnVuX2luZm9f
ZGF0YVsiZGVidWciXSBvciBydW5faW5mb19kYXRhLmdldCgiYXNhbiIpIG9yIHJ1bl9pbmZvX2Rh
dGEuZ2V0KCJ0c2FuIik6CiAgICAgICAgIGlmIHJ1bl9pbmZvX2RhdGEuZ2V0KCJjY292Iik6CiAg
ICAgICAgICAgICByZXR1cm4gNAogICAgICAgICBlbHNlOgpAQCAtNzYsNyArODMsNyBAQCBkZWYg
Y2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikK
IAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdz
WyJiaW5hcnkiXSwKICAgICAgICAgICAgICJwcmVmc19yb290Ijoga3dhcmdzWyJwcmVmc19yb290
Il0sCiAgICAgICAgICAgICAiZXh0cmFfcHJlZnMiOiBrd2FyZ3NbImV4dHJhX3ByZWZzIl0sCkBA
IC0xMDEsMTMgKzEwOCwyNCBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5m
b19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICAgICAgICAgICJjb25maWciOiBjb25maWcs
CiAgICAgICAgICAgICAiYnJvd3Nlcl9jaGFubmVsIjoga3dhcmdzWyJicm93c2VyX2NoYW5uZWwi
XSwKICAgICAgICAgICAgICJoZWFkbGVzcyI6IGt3YXJnc1siaGVhZGxlc3MiXSwKLSAgICAgICAg
ICAgICJwcmVsb2FkX2Jyb3dzZXIiOiBrd2FyZ3NbInByZWxvYWRfYnJvd3NlciJdfQorICAgICAg
ICAgICAgInByZWxvYWRfYnJvd3NlciI6IGt3YXJnc1sicHJlbG9hZF9icm93c2VyIl0gYW5kIG5v
dCBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSBhbmQgbm90IGt3YXJnc1sibnVtX3Rlc3RfZ3Jv
dXBzIl0gPT0gMSwKKyAgICAgICAgICAgICJzcGVjaWFscG93ZXJzX3BhdGgiOiBrd2FyZ3NbInNw
ZWNpYWxwb3dlcnNfcGF0aCJdfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorY2xhc3MgV2RTcGVj
UHJvZmlsZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9maWxlKToKKyAgICAg
ICAgc2VsZi5wcm9maWxlID0gcHJvZmlsZQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2Fy
Z3MpOgorICAgICAgICBzZWxmLnByb2ZpbGUuY2xlYW51cCgpCisKKworZGVmIGV4ZWN1dG9yX2t3
YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwK
ICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJh
c2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19k
YXRhLAorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNs
b3NlX2FmdGVyX2RvbmUiXSA9IHRlc3RfdHlwZSAhPSAicmVmdGVzdCIKICAgICBleGVjdXRvcl9r
d2FyZ3NbInRpbWVvdXRfbXVsdGlwbGllciJdID0gZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0ZXN0
X3R5cGUsCkBAIC0xMjEsMjIgKzEzOSw2MyBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAg
ZXhlY3V0b3Jfa3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBrd2FyZ3NbInJlZnRlc3RfaW50
ZXJuYWwiXQogICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdID0g
a3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXQogICAgIGlmIHRlc3RfdHlwZSA9PSAid2RzcGVj
IjoKLSAgICAgICAgb3B0aW9ucyA9IHt9CisgICAgICAgIG9wdGlvbnMgPSB7ImFyZ3MiOiBbXX0K
ICAgICAgICAgaWYga3dhcmdzWyJiaW5hcnkiXToKICAgICAgICAgICAgIG9wdGlvbnNbImJpbmFy
eSJdID0ga3dhcmdzWyJiaW5hcnkiXQogICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeV9hcmdzIl06
CiAgICAgICAgICAgICBvcHRpb25zWyJhcmdzIl0gPSBrd2FyZ3NbImJpbmFyeV9hcmdzIl0KLSAg
ICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOgotICAgICAgICAgICAgaWYgImFyZ3MiIG5vdCBp
biBvcHRpb25zOgotICAgICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXSA9IFtdCi0gICAgICAg
ICAgICBpZiAiLS1oZWFkbGVzcyIgbm90IGluIG9wdGlvbnNbImFyZ3MiXToKLSAgICAgICAgICAg
ICAgICBvcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhlYWRsZXNzIikKLSAgICAgICAgb3B0aW9u
c1sicHJlZnMiXSA9IHsKLSAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMiOiAi
LCIuam9pbihzZXJ2ZXJfY29uZmlnLmRvbWFpbnNfc2V0KQotICAgICAgICB9Ci0gICAgICAgIGZv
ciBwcmVmLCB2YWx1ZSBpbiBrd2FyZ3NbImV4dHJhX3ByZWZzIl06Ci0gICAgICAgICAgICBvcHRp
b25zWyJwcmVmcyJdLnVwZGF0ZSh7cHJlZjogUHJlZmVyZW5jZXMuY2FzdCh2YWx1ZSl9KQorCisg
ICAgICAgIHByb2ZpbGVfY3JlYXRvciA9IFByb2ZpbGVDcmVhdG9yKGxvZ2dlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwcmVmc19yb290Il0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZW52aXJvbm1lbnQu
Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5
cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZXh0
cmFfcHJlZnMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dh
cmdzWyJnZWNrb19lMTBzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGt3YXJnc1siZW5hYmxlX2Zpc3Npb24iXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVu
dC5jb25maWcuc3NsX2NvbmZpZ1siY2FfY2VydF9wYXRoIl0pCisgICAgICAgIGlmIGt3YXJnc1si
cHJvY2Vzc2VzIl0gPiAxOgorICAgICAgICAgICAgIyBXaXRoIG11bHRpcGxlIHByb2Nlc3Nlcywg
d2Ugd291bGQgbmVlZCBhIHByb2ZpbGUgZGlyZWN0b3J5IHBlciBwcm9jZXNzLCBidXQgd2UKKyAg
ICAgICAgICAgICMgZG9uJ3QgaGF2ZSBhbiBlYXN5IHdheSB0byBkbyB0aGF0LCBzbyBpbmNsdWRl
IHRoZSBwcm9maWxlIGluIHRoZSBjYXBhYmlsdGllcworICAgICAgICAgICAgIyBkaXJlY3RseSBp
bnN0ZWFkLiBUaGlzIG1lYW5zIHJlY3JlYXRpbmcgaXQgcGVyIHNlc3Npb24sIHdoaWNoIGlzIHNs
b3cKKyAgICAgICAgICAgIG9wdGlvbnNbInByb2ZpbGUiXSA9IHByb2ZpbGVfY3JlYXRvci5jcmVh
dGVfYmFzZTY0KCkKKyAgICAgICAgICAgIHByb2ZpbGUgPSBOb25lCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBwcm9maWxlID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0ZSgpCisgICAgICAgICAg
ICBvcHRpb25zWyJhcmdzIl0uZXh0ZW5kKFsiLS1wcm9maWxlIiwgcHJvZmlsZS5wcm9maWxlXSkK
KyAgICAgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuZW52X2V4dHJhc19jbXMuYXBwZW5kKFdkU3Bl
Y1Byb2ZpbGUocHJvZmlsZSkpCisKICAgICAgICAgY2FwYWJpbGl0aWVzWyJtb3o6ZmlyZWZveE9w
dGlvbnMiXSA9IG9wdGlvbnMKKworICAgICAgICAjIFRoaXMgZ2V0cyByZXVzZWQgZm9yIGZpcmVm
b3hfYW5kcm9pZCwgYnV0IHRoZSBlbnZpcm9ubWVudCBzZXR1cAorICAgICAgICAjIGlzbid0IHJl
cXVpcmVkIGluIHRoYXQgY2FzZQorICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdOgorICAgICAg
ICAgICAgZW52aXJvbiA9IGdldF9lbnZpcm9uKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGt3YXJnc1siaGVhZGxlc3MiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrd2FyZ3NbImVuYWJsZV93ZWJyZW5kZXIiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSkKKyAgICAgICAgICAg
IGxlYWtfcmVwb3J0X2ZpbGUgPSBzZXR1cF9sZWFrX3JlcG9ydChrd2FyZ3NbImxlYWtfY2hlY2si
XSwgcHJvZmlsZSwgZW52aXJvbikKKworICAgICAgICAgICAgIyBUaGlzIGRvZXNuJ3Qgd29yayB3
aXRoIHdkc3BlYyB0ZXN0cworICAgICAgICAgICAgIyBJbiBwYXJ0aWN1bGFyIHRlc3RzIGNhbiBj
cmVhdGUgYSBzZXNzaW9uIHdpdGhvdXQgcGFzc2luZyBpbiB0aGUgY2FwYWJpbGl0ZXMKKyAgICAg
ICAgICAgICMgYW5kIGluIHRob3NlIGNhc2VzIHdlIGdldCB0aGUgZGVmYXVsdCBnZWNrb2RyaXZl
ciBwcm9maWxlIHdoaWNoIGRvZXNuJ3QKKyAgICAgICAgICAgICMgZ3VhcmFudGVlIHplcm8gbmV0
d29yayBhY2Nlc3MKKyAgICAgICAgICAgIGRlbCBlbnZpcm9uWyJNT1pfRElTQUJMRV9OT05MT0NB
TF9DT05ORUNUSU9OUyJdCisgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3NbImVudmlyb24iXSA9
IGVudmlyb24KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3Mi
XSBhbmQgIi0taGVhZGxlc3MiIG5vdCBpbiBvcHRpb25zWyJhcmdzIl06CisgICAgICAgICAgICAg
ICAgb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpCisgICAgICAgICAgICBsZWFr
X3JlcG9ydF9maWxlID0gTm9uZQorCisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sic3RhY2tmaXhf
ZGlyIl0gPSBrd2FyZ3NbInN0YWNrZml4X2RpciJdLAorICAgICAgICBleGVjdXRvcl9rd2FyZ3Nb
ImxlYWtfcmVwb3J0X2ZpbGUiXSA9IGxlYWtfcmVwb3J0X2ZpbGUKKyAgICAgICAgZXhlY3V0b3Jf
a3dhcmdzWyJhc2FuIl0gPSBydW5faW5mb19kYXRhLmdldCgiYXNhbiIpCisKICAgICBpZiBrd2Fy
Z3NbImNlcnR1dGlsX2JpbmFyeSJdIGlzIE5vbmU6CiAgICAgICAgIGNhcGFiaWxpdGllc1siYWNj
ZXB0SW5zZWN1cmVDZXJ0cyJdID0gVHJ1ZQogICAgIGlmIGNhcGFiaWxpdGllczoKQEAgLTE0NCw2
ICsyMDMsNyBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICBleGVjdXRvcl9rd2FyZ3NbImRlYnVn
Il0gPSBydW5faW5mb19kYXRhWyJkZWJ1ZyJdCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjY292Il0g
PSBydW5faW5mb19kYXRhLmdldCgiY2NvdiIsIEZhbHNlKQogICAgIGV4ZWN1dG9yX2t3YXJnc1si
YnJvd3Nlcl92ZXJzaW9uIl0gPSBydW5faW5mb19kYXRhLmdldCgiYnJvd3Nlcl92ZXJzaW9uIikK
KyAgICBleGVjdXRvcl9rd2FyZ3NbImRlYnVnX3Rlc3QiXSA9IGt3YXJnc1siZGVidWdfdGVzdCJd
CiAgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwogCiAKQEAgLTE3NywxNiArMjM3LDExIEBAIGRl
ZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgogICAgICAgICAgICJ3YXNtIjoga3dhcmdzLmdl
dCgid2FzbSIsIFRydWUpLAogICAgICAgICAgICJ2ZXJpZnkiOiBrd2FyZ3NbInZlcmlmeSJdLAog
ICAgICAgICAgICJoZWFkbGVzcyI6IGt3YXJncy5nZXQoImhlYWRsZXNzIiwgRmFsc2UpIG9yICJN
T1pfSEVBRExFU1MiIGluIG9zLmVudmlyb24sCi0gICAgICAgICAgInN3LWUxMHMiOiBUcnVlLAot
ICAgICAgICAgICJmaXNzaW9uIjoga3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24iKSBvciBnZXRf
Ym9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpfQotCi0gICAgIyBUaGUgdmFsdWUgb2YgYHN3
LWUxMHNgIGRlZmF1bHRzIHRvIHdoZXRoZXIgdGhlICJwYXJlbnRfaW50ZXJjZXB0IgotICAgICMg
aW1wbGVtZW50YXRpb24gaXMgZW5hYmxlZCBmb3IgdGhlIGN1cnJlbnQgYnVpbGQuIFRoaXMgdmFs
dWUsIGhvd2V2ZXIsCi0gICAgIyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBleHBsaWNpdGx5IHNldHRp
bmcgdGhlIHByZWYgd2l0aCB0aGUgYC0tc2V0cHJlZmAgQ0xJCi0gICAgIyBmbGFnLCB3aGljaCBp
cyBjaGVja2VkIGhlcmUuCi0gICAgc3dfZTEwc19vdmVycmlkZSA9IGdldF9ib29sX3ByZWZfaWZf
ZXhpc3RzKCJkb20uc2VydmljZVdvcmtlcnMucGFyZW50X2ludGVyY2VwdCIpCi0gICAgaWYgc3df
ZTEwc19vdmVycmlkZSBpcyBub3QgTm9uZToKLSAgICAgICAgcnZbInN3LWUxMHMiXSA9IHN3X2Ux
MHNfb3ZlcnJpZGUKKyAgICAgICAgICAiZmlzc2lvbiI6IGt3YXJncy5nZXQoImVuYWJsZV9maXNz
aW9uIikgb3IgZ2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5hdXRvc3RhcnQiKSwKKyAgICAgICAgICAi
c2Vzc2lvbkhpc3RvcnlJblBhcmVudCI6IChrd2FyZ3MuZ2V0KCJlbmFibGVfZmlzc2lvbiIpIG9y
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2Jvb2xfcHJlZigiZmlz
c2lvbi5hdXRvc3RhcnQiKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdldF9ib29sX3ByZWYoImZpc3Npb24uc2Vzc2lvbkhpc3RvcnlJblBhcmVudCIpKSwKKyAgICAg
ICAgICAic3dnbCI6IGdldF9ib29sX3ByZWYoImdmeC53ZWJyZW5kZXIuc29mdHdhcmUiKX0KIAog
ICAgIHJ2LnVwZGF0ZShydW5faW5mb19icm93c2VyX3ZlcnNpb24oKiprd2FyZ3MpKQogCkBAIC0y
MDgsMTEgKzI2Myw0NiBAQCBkZWYgcnVuX2luZm9fYnJvd3Nlcl92ZXJzaW9uKCoqa3dhcmdzKToK
IAogCiBkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToKLSAgICByZXR1cm4gKFsib3MiLCAiZGVidWci
LCAid2VicmVuZGVyIiwgImZpc3Npb24iLCAiZTEwcyIsICJzdy1lMTBzIiwgInByb2Nlc3NvciJd
LAorICAgIHJldHVybiAoWyJvcyIsICJkZWJ1ZyIsICJ3ZWJyZW5kZXIiLCAiZmlzc2lvbiIsICJl
MTBzIiwgInByb2Nlc3NvciIsICJzd2dsIl0sCiAgICAgICAgICAgICB7Im9zIjogWyJ2ZXJzaW9u
Il0sICJwcm9jZXNzb3IiOiBbImJpdHMiXX0pCiAKIAotY2xhc3MgRmlyZWZveEluc3RhbmNlTWFu
YWdlcihvYmplY3QpOgorZGVmIGdldF9lbnZpcm9uKGxvZ2dlciwgYmluYXJ5LCBkZWJ1Z19pbmZv
LCBzdHlsb190aHJlYWRzLCBoZWFkbGVzcywgZW5hYmxlX3dlYnJlbmRlciwKKyAgICAgICAgICAg
ICAgICBjaGFvc19tb2RlX2ZsYWdzPU5vbmUpOgorICAgIGVudiA9IHRlc3RfZW52aXJvbm1lbnQo
eHJlUGF0aD1vcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKGJpbmFyeSkpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVidWdnZXI9ZGVidWdfaW5mbyBpcyBub3QgTm9uZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUxTYW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvZz1sb2dnZXIpCisKKyAgICBlbnZbIlNUWUxPX1RIUkVBRFMiXSA9IHN0cihz
dHlsb190aHJlYWRzKQorICAgIGlmIGNoYW9zX21vZGVfZmxhZ3MgaXMgbm90IE5vbmU6CisgICAg
ICAgIGVudlsiTU9aX0NIQU9TTU9ERSJdID0gc3RyKGNoYW9zX21vZGVfZmxhZ3MpCisgICAgaWYg
aGVhZGxlc3M6CisgICAgICAgIGVudlsiTU9aX0hFQURMRVNTIl0gPSAiMSIKKyAgICBpZiBlbmFi
bGVfd2VicmVuZGVyOgorICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIxIgorICAgICAg
ICBlbnZbIk1PWl9BQ0NFTEVSQVRFRCJdID0gIjEiCisgICAgZWxzZToKKyAgICAgICAgZW52WyJN
T1pfV0VCUkVOREVSIl0gPSAiMCIKKyAgICByZXR1cm4gZW52CisKKworZGVmIHNldHVwX2xlYWtf
cmVwb3J0KGxlYWtfY2hlY2ssIHByb2ZpbGUsIGVudik6CisgICAgbGVha19yZXBvcnRfZmlsZSA9
IE5vbmUKKyAgICBpZiBsZWFrX2NoZWNrOgorICAgICAgICBmaWxlbmFtZSA9ICJydW50ZXN0c19s
ZWFrc18lcy5sb2ciICUgb3MuZ2V0cGlkKCkKKyAgICAgICAgaWYgcHJvZmlsZSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGUgPSBvcy5wYXRoLmpvaW4ocHJvZmlsZS5w
cm9maWxlLCBmaWxlbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxlYWtfcmVwb3J0
X2ZpbGUgPSBvcy5wYXRoLmpvaW4odGVtcGZpbGUuZ2V0dGVtcGRpcigpLCBmaWxlbmFtZSkKKyAg
ICAgICAgaWYgb3MucGF0aC5leGlzdHMobGVha19yZXBvcnRfZmlsZSk6CisgICAgICAgICAgICBv
cy5yZW1vdmUobGVha19yZXBvcnRfZmlsZSkKKyAgICAgICAgZW52WyJYUENPTV9NRU1fQkxPQVRf
TE9HIl0gPSBsZWFrX3JlcG9ydF9maWxlCisKKyAgICByZXR1cm4gbGVha19yZXBvcnRfZmlsZQor
CisKK2NsYXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXI6CiAgICAgX19tZXRhY2xhc3NfXyA9IEFC
Q01ldGEKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgYmluYXJ5X2Fy
Z3MsIHByb2ZpbGVfY3JlYXRvciwgZGVidWdfaW5mbywKQEAgLTI2NywyMCArMzU3LDggQEAgY2xh
c3MgRmlyZWZveEluc3RhbmNlTWFuYWdlcihvYmplY3QpOgogICAgICAgICBtYXJpb25ldHRlX3Bv
cnQgPSBnZXRfZnJlZV9wb3J0KCkKICAgICAgICAgcHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeyJt
YXJpb25ldHRlLnBvcnQiOiBtYXJpb25ldHRlX3BvcnR9KQogCi0gICAgICAgIGVudiA9IHRlc3Rf
ZW52aXJvbm1lbnQoeHJlUGF0aD1vcy5wYXRoLmRpcm5hbWUoc2VsZi5iaW5hcnkpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnZ2VyPXNlbGYuZGVidWdfaW5mbyBpcyBub3Qg
Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VMU2FuPVRydWUsIGxvZz1z
ZWxmLmxvZ2dlcikKLQotICAgICAgICBlbnZbIlNUWUxPX1RIUkVBRFMiXSA9IHN0cihzZWxmLnN0
eWxvX3RocmVhZHMpCi0gICAgICAgIGlmIHNlbGYuY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGVudlsiTU9aX0NIQU9TTU9ERSJdID0gc3RyKHNlbGYuY2hhb3NfbW9k
ZV9mbGFncykKLSAgICAgICAgaWYgc2VsZi5oZWFkbGVzczoKLSAgICAgICAgICAgIGVudlsiTU9a
X0hFQURMRVNTIl0gPSAiMSIKLSAgICAgICAgaWYgc2VsZi5lbmFibGVfd2VicmVuZGVyOgotICAg
ICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMSIKLSAgICAgICAgICAgIGVudlsiTU9a
X0FDQ0VMRVJBVEVEIl0gPSAiMSIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGVudlsiTU9a
X1dFQlJFTkRFUiJdID0gIjAiCisgICAgICAgIGVudiA9IGdldF9lbnZpcm9uKHNlbGYubG9nZ2Vy
LCBzZWxmLmJpbmFyeSwgc2VsZi5kZWJ1Z19pbmZvLCBzZWxmLnN0eWxvX3RocmVhZHMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaGVhZGxlc3MsIHNlbGYuZW5hYmxlX3dlYnJlbmRl
ciwgc2VsZi5jaGFvc19tb2RlX2ZsYWdzKQogCiAgICAgICAgIGFyZ3MgPSBzZWxmLmJpbmFyeV9h
cmdzWzpdIGlmIHNlbGYuYmluYXJ5X2FyZ3MgZWxzZSBbXQogICAgICAgICBhcmdzICs9IFtjbWRf
YXJnKCJtYXJpb25ldHRlIiksICJhYm91dDpibGFuayJdCkBAIC0yODksMjYgKzM2NywyNiBAQCBj
bGFzcyBGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvKQogCi0gICAgICAgIGlmIHNlbGYubGVha19j
aGVjazoKLSAgICAgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGUgPSBvcy5wYXRoLmpvaW4ocHJvZmls
ZS5wcm9maWxlLCAicnVudGVzdHNfbGVha3NfJXMubG9nIiAlIG9zLmdldHBpZCgpKQotICAgICAg
ICAgICAgaWYgb3MucGF0aC5leGlzdHMobGVha19yZXBvcnRfZmlsZSk6Ci0gICAgICAgICAgICAg
ICAgb3MucmVtb3ZlKGxlYWtfcmVwb3J0X2ZpbGUpCi0gICAgICAgICAgICBlbnZbIlhQQ09NX01F
TV9CTE9BVF9MT0ciXSA9IGxlYWtfcmVwb3J0X2ZpbGUKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGxlYWtfcmVwb3J0X2ZpbGUgPSBOb25lCi0KLSAgICAgICAgb3V0cHV0X2hhbmRsZXIgPSBP
dXRwdXRIYW5kbGVyKHNlbGYubG9nZ2VyLCBzZWxmLnN0YWNrZml4X2Rpciwgc2VsZi5zeW1ib2xz
X3BhdGgsIHNlbGYuYXNhbikKKyAgICAgICAgbGVha19yZXBvcnRfZmlsZSA9IHNldHVwX2xlYWtf
cmVwb3J0KHNlbGYubGVha19jaGVjaywgcHJvZmlsZSwgZW52KQorICAgICAgICBvdXRwdXRfaGFu
ZGxlciA9IEZpcmVmb3hPdXRwdXRIYW5kbGVyKHNlbGYubG9nZ2VyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja2ZpeF9kaXI9c2VsZi5zdGFja2ZpeF9kaXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19w
YXRoPXNlbGYuc3ltYm9sc19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFzYW49c2VsZi5hc2FuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGU9bGVha19yZXBvcnRfZmlsZSkKICAg
ICAgICAgcnVubmVyID0gRmlyZWZveFJ1bm5lcihwcm9maWxlPXByb2ZpbGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PWNtZFswXSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbWRhcmdzPWNtZFsxOl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW52PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX2NsYXNzPVByb2Nl
c3NIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfYXJncz17
InByb2Nlc3NPdXRwdXRMaW5lIjogW291dHB1dF9oYW5kbGVyXX0pCiAgICAgICAgIGluc3RhbmNl
ID0gQnJvd3Nlckluc3RhbmNlKHNlbGYubG9nZ2VyLCBydW5uZXIsIG1hcmlvbmV0dGVfcG9ydCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXIsIGxlYWtf
cmVwb3J0X2ZpbGUpCiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIEZpcmVm
b3giKQotICAgICAgICBydW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLCBpbnRlcmFj
dGl2ZT1zZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5mby5pbnRlcmFjdGl2ZSkKKyAg
ICAgICAgcnVubmVyLnN0YXJ0KGRlYnVnX2FyZ3M9ZGVidWdfYXJncywKKyAgICAgICAgICAgICAg
ICAgICAgIGludGVyYWN0aXZlPXNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5kZWJ1Z19pbmZvLmlu
dGVyYWN0aXZlKQorICAgICAgICBvdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0YXJ0KHJ1
bm5lci5wcm9jZXNzX2hhbmRsZXIucGlkKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiRmly
ZWZveCBTdGFydGVkIikKIAogICAgICAgICByZXR1cm4gaW5zdGFuY2UKQEAgLTMzMCw2ICs0MDgs
NyBAQCBjbGFzcyBTaW5nbGVJbnN0YW5jZU1hbmFnZXIoRmlyZWZveEluc3RhbmNlTWFuYWdlcik6
CiAgICAgICAgICAgICBpZiBpbnN0YW5jZToKICAgICAgICAgICAgICAgICBpbnN0YW5jZS5zdG9w
KGZvcmNlKQogICAgICAgICAgICAgICAgIGluc3RhbmNlLmNsZWFudXAoKQorICAgICAgICBzZWxm
LmJhc2VfcHJvZmlsZS5jbGVhbnVwKCkKIAogCiBjbGFzcyBQcmVsb2FkSW5zdGFuY2VNYW5hZ2Vy
KEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIpOgpAQCAtMzUyLDE1ICs0MzEsMTYgQEAgY2xhc3MgUHJl
bG9hZEluc3RhbmNlTWFuYWdlcihGaXJlZm94SW5zdGFuY2VNYW5hZ2VyKToKICAgICAgICAgcmV0
dXJuIHNlbGYuY3VycmVudAogCiAgICAgZGVmIHRlYXJkb3duKHNlbGYsIGZvcmNlPUZhbHNlKToK
LSAgICAgICAgZm9yIGluc3RhbmNlLCBza2lwX21hcmlvbmV0dGUgaW4gWyhzZWxmLnByZXZpb3Vz
LCBGYWxzZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Vs
Zi5jdXJyZW50LCBGYWxzZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2VsZi5wZW5kaW5nLCBUcnVlKV06CisgICAgICAgIGZvciBpbnN0YW5jZSwgdW51c2Vk
IGluIFsoc2VsZi5wcmV2aW91cywgRmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNlbGYuY3VycmVudCwgRmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNlbGYucGVuZGluZywgVHJ1ZSldOgogICAgICAgICAgICAgaWYgaW5zdGFuY2U6Ci0g
ICAgICAgICAgICAgICAgaW5zdGFuY2Uuc3RvcChmb3JjZSwgc2tpcF9tYXJpb25ldHRlPXNraXBf
bWFyaW9uZXR0ZSkKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5zdG9wKGZvcmNlLCB1bnVzZWQp
CiAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY2xlYW51cCgpCisgICAgICAgIHNlbGYuYmFzZV9w
cm9maWxlLmNsZWFudXAoKQogCiAKLWNsYXNzIEJyb3dzZXJJbnN0YW5jZShvYmplY3QpOgorY2xh
c3MgQnJvd3Nlckluc3RhbmNlOgogICAgIHNodXRkb3duX3RpbWVvdXQgPSA3MAogCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcnVubmVyLCBtYXJpb25ldHRlX3BvcnQsIG91dHB1dF9o
YW5kbGVyLCBsZWFrX3JlcG9ydF9maWxlKToKQEAgLTM3MSwyNSArNDUxLDM1IEBAIGNsYXNzIEJy
b3dzZXJJbnN0YW5jZShvYmplY3QpOgogICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyID0gb3V0
cHV0X2hhbmRsZXIKICAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlID0gbGVha19yZXBvcnRf
ZmlsZQogCi0gICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UsIHNraXBfbWFyaW9uZXR0ZT1G
YWxzZSk6Ci0gICAgICAgICIiIlN0b3AgRmlyZWZveCIiIgorICAgIGRlZiBzdG9wKHNlbGYsIGZv
cmNlPUZhbHNlLCB1bnVzZWQ9RmFsc2UpOgorICAgICAgICAiIiJTdG9wIEZpcmVmb3gKKworICAg
ICAgICA6cGFyYW0gZm9yY2U6IFNpZ25hbCB0aGUgZmlyZWZveCBwcm9jZXNzIHdpdGhvdXQgd2Fp
dGluZyBmb3IgYSBjbGVhbiBzaHV0ZG93bgorICAgICAgICA6cGFyYW0gdW51c2VkOiBUaGlzIGlu
c3RhbmNlIHdhcyBub3QgdXNlZCBmb3IgcnVubmluZyB0ZXN0cyBhbmQgc28KKyAgICAgICAgICAg
ICAgICAgICAgICAgZG9lc24ndCBoYXZlIGFuIGFjdGl2ZSBtYXJpb25ldHRlIHNlc3Npb24gYW5k
IGRvZXNuJ3QgcmVxdWlyZQorICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgcG9zdHByb2Nl
c3NpbmcuCisgICAgICAgICIiIgogICAgICAgICBpc19ydW5uaW5nID0gc2VsZi5ydW5uZXIgaXMg
bm90IE5vbmUgYW5kIHNlbGYucnVubmVyLmlzX3J1bm5pbmcoKQogICAgICAgICBpZiBpc19ydW5u
aW5nOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0b3BwaW5nIEZpcmVmb3ggJXMi
ICUgc2VsZi5waWQoKSkKICAgICAgICAgICAgIHNodXRkb3duX21ldGhvZHMgPSBbKFRydWUsIGxh
bWJkYTogc2VsZi5ydW5uZXIud2FpdChzZWxmLnNodXRkb3duX3RpbWVvdXQpKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKEZhbHNlLCBsYW1iZGE6IHNlbGYucnVubmVyLnN0b3Ao
c2lnbmFsLlNJR1RFUk0pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEZhbHNl
LCBsYW1iZGE6IHNlbGYucnVubmVyLnN0b3Aoc2lnbmFsLlNJR0tJTEwpKV0KLSAgICAgICAgICAg
IGlmIHNraXBfbWFyaW9uZXR0ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEZh
bHNlLCBsYW1iZGE6IHNlbGYucnVubmVyLnN0b3Aoc2lnbmFsLlNJR1RFUk0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuc2h1dGRvd25fdGltZW91dCkpXQorICAgICAgICAgICAgaWYgaGFzYXR0cihzaWduYWwsICJT
SUdLSUxMIik6CisgICAgICAgICAgICAgICAgc2h1dGRvd25fbWV0aG9kcy5hcHBlbmQoKEZhbHNl
LCBsYW1iZGE6IHNlbGYucnVubmVyLnN0b3Aoc2lnbmFsLlNJR0tJTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5zaHV0ZG93bl90aW1lb3V0KSkpCisgICAgICAgICAgICBpZiB1bnVzZWQgb3IgZm9y
Y2U6CisgICAgICAgICAgICAgICAgIyBEb24ndCB3YWl0IGZvciB0aGUgaW5zdGFuY2UgdG8gY2xv
c2UgaXRzZWxmCiAgICAgICAgICAgICAgICAgc2h1dGRvd25fbWV0aG9kcyA9IHNodXRkb3duX21l
dGhvZHNbMTpdCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgIyBGb3IgRmlyZWZv
eCB3ZSBhc3N1bWUgdGhhdCBzdG9wcGluZyB0aGUgcnVubmVyIHByb21wdHMgdGhlCiAgICAgICAg
ICAgICAgICAgIyBicm93c2VyIHRvIHNodXQgZG93bi4gVGhpcyBhbGxvd3MgdGhlIGxlYWsgbG9n
IHRvIGJlIHdyaXR0ZW4KLSAgICAgICAgICAgICAgICBmb3IgY2xlYW4sIHN0b3BfZiBpbiBzaHV0
ZG93bl9tZXRob2RzOgotICAgICAgICAgICAgICAgICAgICBpZiBub3QgZm9yY2Ugb3Igbm90IGNs
ZWFuOgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0Y29kZSA9IHN0b3BfZigpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiByZXRjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkJyb3dzZXIgZXhpdGVkIHdpdGggcmV0dXJu
IGNvZGUgJXMiICUgcmV0Y29kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawor
ICAgICAgICAgICAgICAgIGZvciBpLCAoY2xlYW4sIHN0b3BfZikgaW4gZW51bWVyYXRlKHNodXRk
b3duX21ldGhvZHMpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU2h1
dHRpbmcgZG93biBhdHRlbXB0ICVpLyVpIiAlIChpICsgMSwgbGVuKHNodXRkb3duX21ldGhvZHMp
KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0Y29kZSA9IHN0b3BfZigpCisgICAgICAgICAgICAg
ICAgICAgIGlmIHJldGNvZGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5pbmZvKCJCcm93c2VyIGV4aXRlZCB3aXRoIHJldHVybiBjb2RlICVzIiAlIHJl
dGNvZGUpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0
IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBoYXBwZW4gb24gV2luZG93cyBp
ZiB0aGUgcHJvY2VzcyBpcyBhbHJlYWR5IGRlYWQKICAgICAgICAgICAgICAgICBwYXNzCkBAIC0z
OTcsOCArNDg3LDggQEAgY2xhc3MgQnJvd3Nlckluc3RhbmNlKG9iamVjdCk6CiAgICAgICAgICAg
ICAjIFRoZSBicm93c2VyIHdhcyBhbHJlYWR5IHN0b3BwZWQsIHdoaWNoIHdlIGFzc3VtZSB3YXMg
YSBjcmFzaAogICAgICAgICAgICAgIyBUT0RPOiBTaG91bGQgd2UgY2hlY2sgdGhlIGV4aXQgY29k
ZSBoZXJlPwogICAgICAgICAgICAgY2xlYW4gPSBGYWxzZQotICAgICAgICBpZiBub3Qgc2tpcF9t
YXJpb25ldHRlOgotICAgICAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlci5hZnRlcl9zdG9wKGNs
ZWFuX3NodXRkb3duPWNsZWFuKQorICAgICAgICBpZiBub3QgdW51c2VkOgorICAgICAgICAgICAg
c2VsZi5vdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0b3AoY2xlYW5fc2h1dGRvd249Y2xl
YW4pCiAKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLnJ1bm5lci5wcm9jZXNz
X2hhbmRsZXIgaXMgTm9uZToKQEAgLTQxNSwxMiArNTA1LDEzIEBAIGNsYXNzIEJyb3dzZXJJbnN0
YW5jZShvYmplY3QpOgogICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiBjbGVhbnVwKHNl
bGYpOgotICAgICAgICAjIG1venByb2ZpbGUgaGFuZGxlcyBkZWxldGluZyB0aGUgcHJvZmlsZSB3
aGVuIHRoZSByZWZjb3VudCByZWFjaGVzIDAKKyAgICAgICAgc2VsZi5ydW5uZXIuY2xlYW51cCgp
CiAgICAgICAgIHNlbGYucnVubmVyID0gTm9uZQogCiAKLWNsYXNzIE91dHB1dEhhbmRsZXIob2Jq
ZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBzdGFja2ZpeF9kaXIsIHN5bWJv
bHNfcGF0aCwgYXNhbik6CitjbGFzcyBGaXJlZm94T3V0cHV0SGFuZGxlcihPdXRwdXRIYW5kbGVy
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBjb21tYW5kLCBzeW1ib2xzX3BhdGg9
Tm9uZSwgc3RhY2tmaXhfZGlyPU5vbmUsIGFzYW49RmFsc2UsCisgICAgICAgICAgICAgICAgIGxl
YWtfcmVwb3J0X2ZpbGU9Tm9uZSk6CiAgICAgICAgICIiIkZpbHRlciBmb3IgaGFuZGxpbmcgRmly
ZWZveCBwcm9jZXNzIG91dHB1dC4KIAogICAgICAgICBUaGlzIHJlY2VpdmVzIEZpcmVmb3ggcHJv
Y2VzcyBvdXRwdXQgaW4gdGhlIF9fY2FsbF9fIGZ1bmN0aW9uLCBkb2VzCkBAIC00MzEsOSArNTIy
LDcgQEAgY2xhc3MgT3V0cHV0SGFuZGxlcihvYmplY3QpOgogICAgICAgICBvZiB0aGUgb3V0cHV0
IGhhbmRsZXJzLgogICAgICAgICAiIiIKIAotICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgot
ICAgICAgICAjIFRoZXNlIGFyZSBmaWxsZWQgaW4gYWZ0ZXIgc2V0dXAoKSBpcyBjYWxsZWQKLSAg
ICAgICAgc2VsZi5pbnN0YW5jZSA9IE5vbmUKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhsb2dn
ZXIsIGNvbW1hbmQpCiAKICAgICAgICAgc2VsZi5zeW1ib2xzX3BhdGggPSBzeW1ib2xzX3BhdGgK
ICAgICAgICAgaWYgc3RhY2tmaXhfZGlyOgpAQCAtNDQ1LDIxICs1MzQsMTggQEAgY2xhc3MgT3V0
cHV0SGFuZGxlcihvYmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5zdGFj
a19maXhlciA9IE5vbmUKICAgICAgICAgc2VsZi5hc2FuID0gYXNhbgorICAgICAgICBzZWxmLmxl
YWtfcmVwb3J0X2ZpbGUgPSBsZWFrX3JlcG9ydF9maWxlCiAKKyAgICAgICAgIyBUaGVzZSBhcmUg
ZmlsbGVkIGluIGFmdGVyIGNvbmZpZ3VyZV9oYW5kbGVycygpIGlzIGNhbGxlZAogICAgICAgICBz
ZWxmLmxzYW5faGFuZGxlciA9IE5vbmUKICAgICAgICAgc2VsZi5tb3psZWFrX2FsbG93ZWQgPSBO
b25lCiAgICAgICAgIHNlbGYubW96bGVha190aHJlc2hvbGRzID0gTm9uZQogICAgICAgICBzZWxm
Lmdyb3VwX21ldGFkYXRhID0ge30KIAotICAgICAgICBzZWxmLmxpbmVfYnVmZmVyID0gW10KLSAg
ICAgICAgc2VsZi5zZXR1cF9yYW4gPSBGYWxzZQotCi0gICAgZGVmIHNldHVwKHNlbGYsIGluc3Rh
bmNlPU5vbmUsIGdyb3VwX21ldGFkYXRhPU5vbmUsIGxzYW5fZGlzYWJsZWQ9RmFsc2UsCi0gICAg
ICAgICAgICAgIGxzYW5fYWxsb3dlZD1Ob25lLCBsc2FuX21heF9zdGFja19kZXB0aD1Ob25lLCBt
b3psZWFrX2FsbG93ZWQ9Tm9uZSwKLSAgICAgICAgICAgICAgbW96bGVha190aHJlc2hvbGRzPU5v
bmUsICoqa3dhcmdzKToKKyAgICBkZWYgc3RhcnQoc2VsZiwgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwg
bHNhbl9kaXNhYmxlZD1GYWxzZSwgbHNhbl9hbGxvd2VkPU5vbmUsCisgICAgICAgICAgICAgIGxz
YW5fbWF4X3N0YWNrX2RlcHRoPU5vbmUsIG1vemxlYWtfYWxsb3dlZD1Ob25lLCBtb3psZWFrX3Ro
cmVzaG9sZHM9Tm9uZSwKKyAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgICAgICAiIiJDb25m
aWd1cmUgdGhlIG91dHB1dCBoYW5kbGVyIiIiCi0gICAgICAgIHNlbGYuaW5zdGFuY2UgPSBpbnN0
YW5jZQotCiAgICAgICAgIGlmIGdyb3VwX21ldGFkYXRhIGlzIE5vbmU6CiAgICAgICAgICAgICBn
cm91cF9tZXRhZGF0YSA9IHt9CiAgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRhdGEgPSBncm91cF9t
ZXRhZGF0YQpAQCAtNDc1LDE4ICs1NjEsMTMgQEAgY2xhc3MgT3V0cHV0SGFuZGxlcihvYmplY3Qp
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxv
d0FsbD1sc2FuX2Rpc2FibGVkKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5sc2Fu
X2hhbmRsZXIgPSBOb25lCisgICAgICAgIHN1cGVyKCkuc3RhcnQoKQogCi0gICAgICAgIHNlbGYu
c2V0dXBfcmFuID0gVHJ1ZQotCi0gICAgICAgIGZvciBsaW5lIGluIHNlbGYubGluZV9idWZmZXI6
Ci0gICAgICAgICAgICBzZWxmLl9fY2FsbF9fKGxpbmUpCi0gICAgICAgIHNlbGYubGluZV9idWZm
ZXIgPSBbXQotCi0gICAgZGVmIGFmdGVyX3N0b3Aoc2VsZiwgY2xlYW5fc2h1dGRvd249VHJ1ZSk6
Ci0gICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlBST0NFU1MgTEVBS1MgJXMiICUgc2VsZi5pbnN0
YW5jZS5sZWFrX3JlcG9ydF9maWxlKQorICAgIGRlZiBhZnRlcl9wcm9jZXNzX3N0b3Aoc2VsZiwg
Y2xlYW5fc2h1dGRvd249VHJ1ZSk6CisgICAgICAgIHN1cGVyKCkuYWZ0ZXJfcHJvY2Vzc19zdG9w
KGNsZWFuX3NodXRkb3duKQogICAgICAgICBpZiBzZWxmLmxzYW5faGFuZGxlcjoKICAgICAgICAg
ICAgIHNlbGYubHNhbl9oYW5kbGVyLnByb2Nlc3MoKQotICAgICAgICBpZiBzZWxmLmluc3RhbmNl
LmxlYWtfcmVwb3J0X2ZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgIGlmIHNlbGYubGVha19yZXBv
cnRfZmlsZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGlmIG5vdCBjbGVhbl9zaHV0ZG93bjoK
ICAgICAgICAgICAgICAgICAjIElmIHdlIGRpZG4ndCBnZXQgYSBjbGVhbiBzaHV0ZG93biB0aGVy
ZSBwcm9iYWJseSBpc24ndCBhIGxlYWsgcmVwb3J0IGZpbGUKICAgICAgICAgICAgICAgICBzZWxm
LmxvZ2dlci53YXJuaW5nKCJGaXJlZm94IGRpZG4ndCBleGl0IGNsZWFubHksIG5vdCBwcm9jZXNz
aW5nIGxlYWsgbG9ncyIpCkBAIC00OTQsMjEgKzU3NSwyNCBAQCBjbGFzcyBPdXRwdXRIYW5kbGVy
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIyBXZSBoYXZlIHRvIGlnbm9yZSBtaXNzaW5nIGxl
YWtzIGluIHRoZSB0YWIgYmVjYXVzZSBpdCBjYW4gaGFwcGVuIHRoYXQgdGhlCiAgICAgICAgICAg
ICAgICAgIyBjb250ZW50IHByb2Nlc3MgY3Jhc2hlZCBhbmQgaW4gdGhhdCBjYXNlIHdlIGRvbid0
IHdhbnQgdGhlIHRlc3QgdG8gZmFpbC4KICAgICAgICAgICAgICAgICAjIElkZWFsbHkgd2Ugd291
bGQgcmVjb3JkIHdoaWNoIGNvbnRlbnQgcHJvY2VzcyBjcmFzaGVkIGFuZCBqdXN0IHNraXAgdGhv
c2UuCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiUFJPQ0VTUyBMRUFLUyAlcyIg
JSBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCiAgICAgICAgICAgICAgICAgbW96bGVhay5wcm9jZXNz
X2xlYWtfbG9nKAotICAgICAgICAgICAgICAgICAgICBzZWxmLmluc3RhbmNlLmxlYWtfcmVwb3J0
X2ZpbGUsCisgICAgICAgICAgICAgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSwKICAgICAg
ICAgICAgICAgICAgICAgbGVha190aHJlc2hvbGRzPXNlbGYubW96bGVha190aHJlc2hvbGRzLAog
ICAgICAgICAgICAgICAgICAgICBpZ25vcmVfbWlzc2luZ19sZWFrcz1bInRhYiIsICJnbXBsdWdp
biJdLAogICAgICAgICAgICAgICAgICAgICBsb2c9c2VsZi5sb2dnZXIsCiAgICAgICAgICAgICAg
ICAgICAgIHN0YWNrX2ZpeGVyPXNlbGYuc3RhY2tfZml4ZXIsCiAgICAgICAgICAgICAgICAgICAg
IHNjb3BlPXNlbGYuZ3JvdXBfbWV0YWRhdGEuZ2V0KCJzY29wZSIpLAogICAgICAgICAgICAgICAg
ICAgICBhbGxvd2VkPXNlbGYubW96bGVha19hbGxvd2VkKQorICAgICAgICAgICAgaWYgb3MucGF0
aC5leGlzdHMoc2VsZi5sZWFrX3JlcG9ydF9maWxlKToKKyAgICAgICAgICAgICAgICBvcy51bmxp
bmsoc2VsZi5sZWFrX3JlcG9ydF9maWxlKQogCiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGxpbmUp
OgogICAgICAgICAiIiJXcml0ZSBhIGxpbmUgb2Ygb3V0cHV0IGZyb20gdGhlIGZpcmVmb3ggcHJv
Y2VzcyB0byB0aGUgbG9nIiIiCiAgICAgICAgIGlmIGIiR0xpYi1HT2JqZWN0LUNSSVRJQ0FMIiBp
biBsaW5lOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGlmIGxpbmU6Ci0gICAgICAgICAg
ICBpZiBub3Qgc2VsZi5zZXR1cF9yYW46CisgICAgICAgICAgICBpZiBzZWxmLnN0YXRlIDwgT3V0
cHV0SGFuZGxlclN0YXRlLkFGVEVSX0hBTkRMRVJfU1RBUlQ6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5saW5lX2J1ZmZlci5hcHBlbmQobGluZSkKICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAg
ICAgICAgIGRhdGEgPSBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIikKQEAgLTUxNywxNCAr
NjAxLDEyIEBAIGNsYXNzIE91dHB1dEhhbmRsZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIHNl
bGYubHNhbl9oYW5kbGVyOgogICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLmxzYW5faGFuZGxl
ci5sb2coZGF0YSkKICAgICAgICAgICAgIGlmIGRhdGEgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5pbnN0YW5jZSBhbmQKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluc3RhbmNlLnJ1bm5l
ci5wcm9jZXNzX2hhbmRsZXIgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5pbnN0YW5jZS5ydW5uZXIucHJvY2Vzc19oYW5kbGVyLnBpZCwKKyAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5pbnN0YW5j
ZS5ydW5uZXIuY29tbWFuZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLmNvbW1hbmQpKQogCiAKLWNsYXNzIFByb2ZpbGVD
cmVhdG9yKG9iamVjdCk6CitjbGFzcyBQcm9maWxlQ3JlYXRvcjoKICAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCBjb25maWcsIHRlc3RfdHlwZSwgZXh0cmFfcHJlZnMs
IGUxMHMsCiAgICAgICAgICAgICAgICAgIGVuYWJsZV9maXNzaW9uLCBicm93c2VyX2NoYW5uZWws
IGJpbmFyeSwgY2VydHV0aWxfYmluYXJ5LCBjYV9jZXJ0aWZpY2F0ZV9wYXRoKToKICAgICAgICAg
c2VsZi5sb2dnZXIgPSBsb2dnZXIKQEAgLTU0MCwxOCArNjIyLDM4IEBAIGNsYXNzIFByb2ZpbGVD
cmVhdG9yKG9iamVjdCk6CiAgICAgICAgIHNlbGYuY2VydHV0aWxfYmluYXJ5ID0gY2VydHV0aWxf
YmluYXJ5CiAgICAgICAgIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCA9IGNhX2NlcnRpZmljYXRl
X3BhdGgKIAotICAgIGRlZiBjcmVhdGUoc2VsZik6CisgICAgZGVmIGNyZWF0ZShzZWxmLCAqKmt3
YXJncyk6CiAgICAgICAgICIiIkNyZWF0ZSBhIEZpcmVmb3ggcHJvZmlsZSBhbmQgcmV0dXJuIHRo
ZSBtb3pwcm9maWxlIFByb2ZpbGUgb2JqZWN0IHBvaW50aW5nIGF0IHRoYXQKLSAgICAgICAgcHJv
ZmlsZSIiIgorICAgICAgICBwcm9maWxlCisKKyAgICAgICAgOnBhcmFtIGt3YXJnczogQWRkaXRp
b25hbCBhcmd1bWVudHMgdG8gcGFzcyBpbnRvIHRoZSBwcm9maWxlIGNvbnN0cnVjdG9yCisgICAg
ICAgICIiIgogICAgICAgICBwcmVmZXJlbmNlcyA9IHNlbGYuX2xvYWRfcHJlZnMoKQogCi0gICAg
ICAgIHByb2ZpbGUgPSBGaXJlZm94UHJvZmlsZShwcmVmZXJlbmNlcz1wcmVmZXJlbmNlcykKKyAg
ICAgICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKHByZWZlcmVuY2VzPXByZWZlcmVuY2VzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdG9yZT1GYWxzZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgICAgICBzZWxmLl9zZXRfcmVx
dWlyZWRfcHJlZnMocHJvZmlsZSkKICAgICAgICAgaWYgc2VsZi5jYV9jZXJ0aWZpY2F0ZV9wYXRo
IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5fc2V0dXBfc3NsKHByb2ZpbGUpCiAKICAg
ICAgICAgcmV0dXJuIHByb2ZpbGUKIAorICAgIGRlZiBjcmVhdGVfYmFzZTY0KHNlbGYsICoqa3dh
cmdzKToKKyAgICAgICAgcHJvZmlsZSA9IHNlbGYuY3JlYXRlKCoqa3dhcmdzKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICB3aXRoIGlvLkJ5dGVzSU8oKSBhcyBidWY6CisgICAgICAgICAgICAg
ICAgd2l0aCB6aXBmaWxlLlppcEZpbGUoYnVmLCAidyIsIGNvbXByZXNzaW9uPXppcGZpbGUuWklQ
X0RFRkxBVEVEKSBhcyB6aXBmOgorICAgICAgICAgICAgICAgICAgICBmb3IgZGlycGF0aCwgXywg
ZmlsZW5hbWVzIGluIG9zLndhbGsocHJvZmlsZS5wcm9maWxlKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3JjX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlycGF0aCwgZmlsZW5hbWUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzdF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKHNyY19wYXRo
LCBwcm9maWxlLnByb2ZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBvcGVu
KHNyY19wYXRoLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6
aXBmLndyaXRlc3RyKGRlc3RfcGF0aCwgZi5yZWFkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGJhc2U2NC5iNjRlbmNvZGUoYnVmLmdldHZhbHVlKCkpLmRlY29kZSgiYXNjaWkiKS5zdHJpcCgp
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwcm9maWxlLmNsZWFudXAoKQorCiAgICAg
ZGVmIF9sb2FkX3ByZWZzKHNlbGYpOgogICAgICAgICBwcmVmcyA9IFByZWZlcmVuY2VzKCkKIApA
QCAtNjQxLDE0ICs3NDMsMTMgQEAgY2xhc3MgUHJvZmlsZUNyZWF0b3Iob2JqZWN0KToKIAogCiAg
ICAgICAgIGVudltlbnZfdmFyXSA9IChvcy5wYXRoLnBhdGhzZXAuam9pbihbY2VydHV0aWxfZGly
LCBlbnZbZW52X3Zhcl1dKQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgZW52X3ZhciBpbiBl
bnYgZWxzZSBjZXJ0dXRpbF9kaXIpLmVuY29kZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkgb3IgJ3V0Zi04JywgJ3JlcGxhY2UnKQorICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgZW52X3ZhciBpbiBlbnYgZWxzZSBjZXJ0dXRpbF9kaXIp
CiAKICAgICAgICAgZGVmIGNlcnR1dGlsKCphcmdzKToKICAgICAgICAgICAgIGNtZCA9IFtzZWxm
LmNlcnR1dGlsX2JpbmFyeV0gKyBsaXN0KGFyZ3MpCiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5w
cm9jZXNzX291dHB1dCgiY2VydHV0aWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoY21kLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWNhc3RfZW52
KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIi5qb2luKGNtZCkpCiAK
QEAgLTY3MCw3ICs3NzEsNiBAQCBjbGFzcyBQcm9maWxlQ3JlYXRvcihvYmplY3QpOgogICAgICAg
ICBjZXJ0dXRpbCgiLUwiLCAiLWQiLCBjZXJ0X2RiX3BhdGgpCiAKIAotCiBjbGFzcyBGaXJlZm94
QnJvd3NlcihCcm93c2VyKToKICAgICBpbml0X3RpbWVvdXQgPSA3MAogCkBAIC02NzksNyArNzc5
LDggQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAgICAgIGNh
X2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwgZTEwcz1GYWxzZSwgZW5hYmxlX3dlYnJlbmRlcj1GYWxz
ZSwgZW5hYmxlX2Zpc3Npb249RmFsc2UsCiAgICAgICAgICAgICAgICAgIHN0YWNrZml4X2Rpcj1O
b25lLCBiaW5hcnlfYXJncz1Ob25lLCB0aW1lb3V0X211bHRpcGxpZXI9Tm9uZSwgbGVha19jaGVj
az1GYWxzZSwKICAgICAgICAgICAgICAgICAgYXNhbj1GYWxzZSwgc3R5bG9fdGhyZWFkcz0xLCBj
aGFvc19tb2RlX2ZsYWdzPU5vbmUsIGNvbmZpZz1Ob25lLAotICAgICAgICAgICAgICAgICBicm93
c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLCBoZWFkbGVzcz1Ob25lLCBwcmVsb2FkX2Jyb3dzZXI9RmFs
c2UsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVsPSJuaWdodGx5
IiwgaGVhZGxlc3M9Tm9uZSwgcHJlbG9hZF9icm93c2VyPUZhbHNlLAorICAgICAgICAgICAgICAg
ICBzcGVjaWFscG93ZXJzX3BhdGg9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBCcm93c2VyLl9f
aW5pdF9fKHNlbGYsIGxvZ2dlcikKIAogICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgpAQCAt
Njg4LDYgKzc4OSw3IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAg
ICAgc2VsZi5pbml0X3RpbWVvdXQgPSBzZWxmLmluaXRfdGltZW91dCAqIHRpbWVvdXRfbXVsdGlw
bGllcgogCiAgICAgICAgIHNlbGYuaW5zdGFuY2UgPSBOb25lCisgICAgICAgIHNlbGYuX3NldHRp
bmdzID0gTm9uZQogCiAgICAgICAgIHNlbGYuc3RhY2tmaXhfZGlyID0gc3RhY2tmaXhfZGlyCiAg
ICAgICAgIHNlbGYuc3ltYm9sc19wYXRoID0gc3ltYm9sc19wYXRoCkBAIC02OTYsNiArNzk4LDgg
QEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuYXNhbiA9IGFz
YW4KICAgICAgICAgc2VsZi5sZWFrX2NoZWNrID0gbGVha19jaGVjawogCisgICAgICAgIHNlbGYu
c3BlY2lhbHBvd2Vyc19wYXRoID0gc3BlY2lhbHBvd2Vyc19wYXRoCisKICAgICAgICAgcHJvZmls
ZV9jcmVhdG9yID0gUHJvZmlsZUNyZWF0b3IobG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmVmc19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25maWcsCkBAIC03MjYsMTkgKzgzMCwxOSBAQCBjbGFzcyBGaXJl
Zm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2FuKQogCi0KICAgICBkZWYgc2V0dGluZ3Mo
c2VsZiwgdGVzdCk6Ci0gICAgICAgIHJldHVybiB7ImNoZWNrX2xlYWtzIjogc2VsZi5sZWFrX2No
ZWNrIGFuZCBub3QgdGVzdC5sZWFrcywKLSAgICAgICAgICAgICAgICAibHNhbl9kaXNhYmxlZCI6
IHRlc3QubHNhbl9kaXNhYmxlZCwKLSAgICAgICAgICAgICAgICAibHNhbl9hbGxvd2VkIjogdGVz
dC5sc2FuX2FsbG93ZWQsCi0gICAgICAgICAgICAgICAgImxzYW5fbWF4X3N0YWNrX2RlcHRoIjog
dGVzdC5sc2FuX21heF9zdGFja19kZXB0aCwKLSAgICAgICAgICAgICAgICAibW96bGVha19hbGxv
d2VkIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1vemxlYWtfYWxsb3dlZCwKLSAgICAgICAg
ICAgICAgICAibW96bGVha190aHJlc2hvbGRzIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1v
emxlYWtfdGhyZXNob2xkfQorICAgICAgICBzZWxmLl9zZXR0aW5ncyA9IHsiY2hlY2tfbGVha3Mi
OiBzZWxmLmxlYWtfY2hlY2sgYW5kIG5vdCB0ZXN0LmxlYWtzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAibHNhbl9kaXNhYmxlZCI6IHRlc3QubHNhbl9kaXNhYmxlZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgImxzYW5fYWxsb3dlZCI6IHRlc3QubHNhbl9hbGxvd2VkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAibHNhbl9tYXhfc3RhY2tfZGVwdGgiOiB0ZXN0LmxzYW5fbWF4
X3N0YWNrX2RlcHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibW96bGVha19hbGxvd2Vk
Ijogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1vemxlYWtfYWxsb3dlZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm1vemxlYWtfdGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQg
dGVzdC5tb3psZWFrX3RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNwZWNp
YWxfcG93ZXJzIjogc2VsZi5zcGVjaWFscG93ZXJzX3BhdGggYW5kIHRlc3QudXJsX2Jhc2UgPT0g
Ii9fbW96aWxsYS8ifQorICAgICAgICByZXR1cm4gc2VsZi5fc2V0dGluZ3MKIAogICAgIGRlZiBz
dGFydChzZWxmLCBncm91cF9tZXRhZGF0YT1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYu
aW5zdGFuY2UgPSBzZWxmLmluc3RhbmNlX21hbmFnZXIuZ2V0KCkKLSAgICAgICAgc2VsZi5pbnN0
YW5jZS5vdXRwdXRfaGFuZGxlci5zZXR1cChzZWxmLmluc3RhbmNlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhLAorICAgICAgICBzZWxm
Lmluc3RhbmNlLm91dHB1dF9oYW5kbGVyLnN0YXJ0KGdyb3VwX21ldGFkYXRhLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgZGVmIHN0
b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgpAQCAtNzU2LDcgKzg2MCwxMSBAQCBjbGFzcyBGaXJlZm94
QnJvd3NlcihCcm93c2VyKToKIAogICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgogICAg
ICAgICBhc3NlcnQgc2VsZi5pbnN0YW5jZSBpcyBub3QgTm9uZQotICAgICAgICByZXR1cm4gRXhl
Y3V0b3JCcm93c2VyLCB7Im1hcmlvbmV0dGVfcG9ydCI6IHNlbGYuaW5zdGFuY2UubWFyaW9uZXR0
ZV9wb3J0fQorICAgICAgICBleHRlbnNpb25zID0gW10KKyAgICAgICAgaWYgc2VsZi5fc2V0dGlu
Z3MuZ2V0KCJzcGVjaWFsX3Bvd2VycyIsIEZhbHNlKToKKyAgICAgICAgICAgIGV4dGVuc2lvbnMu
YXBwZW5kKHNlbGYuc3BlY2lhbHBvd2Vyc19wYXRoKQorICAgICAgICByZXR1cm4gRXhlY3V0b3JC
cm93c2VyLCB7Im1hcmlvbmV0dGVfcG9ydCI6IHNlbGYuaW5zdGFuY2UubWFyaW9uZXR0ZV9wb3J0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4dGVuc2lvbnMiOiBleHRlbnNp
b25zfQogCiAgICAgZGVmIGNoZWNrX2NyYXNoKHNlbGYsIHByb2Nlc3MsIHRlc3QpOgogICAgICAg
ICBkdW1wX2RpciA9IG9zLnBhdGguam9pbihzZWxmLmluc3RhbmNlLnJ1bm5lci5wcm9maWxlLnBy
b2ZpbGUsICJtaW5pZHVtcHMiKQpAQCAtNzcxLDMgKzg3OSwzOSBAQCBjbGFzcyBGaXJlZm94QnJv
d3NlcihCcm93c2VyKToKICAgICAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgICAgICBzZWxm
LmxvZ2dlci53YXJuaW5nKCJMb29raW5nIGZvciBjcmFzaCBkdW1wIGZpbGVzIGZhaWxlZCIpCiAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKworCitjbGFzcyBGaXJlZm94V2RTcGVjQnJvd3NlcihO
dWxsQnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgbGVha19jaGVjaz1G
YWxzZSwgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgKiprd2Fy
Z3MpCisgICAgICAgIHNlbGYubGVha19jaGVjayA9IGxlYWtfY2hlY2sKKworICAgIGRlZiBzZXR0
aW5ncyhzZWxmLCB0ZXN0KToKKyAgICAgICAgcmV0dXJuIHsiY2hlY2tfbGVha3MiOiBzZWxmLmxl
YWtfY2hlY2sgYW5kIG5vdCB0ZXN0LmxlYWtzLAorICAgICAgICAgICAgICAgICJsc2FuX2Rpc2Fi
bGVkIjogdGVzdC5sc2FuX2Rpc2FibGVkLAorICAgICAgICAgICAgICAgICJsc2FuX2FsbG93ZWQi
OiB0ZXN0LmxzYW5fYWxsb3dlZCwKKyAgICAgICAgICAgICAgICAibHNhbl9tYXhfc3RhY2tfZGVw
dGgiOiB0ZXN0LmxzYW5fbWF4X3N0YWNrX2RlcHRoLAorICAgICAgICAgICAgICAgICJtb3psZWFr
X2FsbG93ZWQiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha19hbGxvd2VkLAorICAg
ICAgICAgICAgICAgICJtb3psZWFrX3RocmVzaG9sZHMiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRl
c3QubW96bGVha190aHJlc2hvbGR9CisKKworY2xhc3MgR2Vja29Ecml2ZXJTZXJ2ZXIoV2ViRHJp
dmVyU2VydmVyKToKKyAgICBvdXRwdXRfaGFuZGxlcl9jbHMgPSBGaXJlZm94T3V0cHV0SGFuZGxl
cgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgbWFyaW9uZXR0ZV9wb3J0PTI4Mjgs
IGJpbmFyeT0iZ2Vja29kcml2ZXIiLAorICAgICAgICAgICAgICAgICBob3N0PSIxMjcuMC4wLjEi
LCBwb3J0PU5vbmUsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgorICAgICAgICBpZiBlbnYgaXMgTm9u
ZToKKyAgICAgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAgIGVudlsiUlVT
VF9CQUNLVFJBQ0UiXSA9ICIxIgorICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBiaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0
PWhvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PXBvcnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJncz1hcmdzKQorICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9
IG1hcmlvbmV0dGVfcG9ydAorCisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKKyAgICAgICAg
cmV0dXJuIFtzZWxmLmJpbmFyeSwKKyAgICAgICAgICAgICAgICAiLS1tYXJpb25ldHRlLXBvcnQi
LCBzdHIoc2VsZi5tYXJpb25ldHRlX3BvcnQpLAorICAgICAgICAgICAgICAgICItLWhvc3QiLCBz
ZWxmLmhvc3QsCisgICAgICAgICAgICAgICAgIi0tcG9ydCIsIHN0cihzZWxmLnBvcnQpXSArIHNl
bGYuX2FyZ3MKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Zp
cmVmb3hfYW5kcm9pZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LjRkN2ViZjVlMWZkNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5w
eQpAQCAtMCwwICsxLDI5MCBAQAoraW1wb3J0IG9zCisKK2ltcG9ydCBtb3puZXR3b3JrCitmcm9t
IG1venJ1bm5lciBpbXBvcnQgRmVubmVjRW11bGF0b3JSdW5uZXIKKworZnJvbSAuYmFzZSBpbXBv
cnQgKGdldF9mcmVlX3BvcnQsCisgICAgICAgICAgICAgICAgICAgY21kX2FyZywKKyAgICAgICAg
ICAgICAgICAgICBicm93c2VyX2NvbW1hbmQpCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9ybWFy
aW9uZXR0ZSBpbXBvcnQgKE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBG
NDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0
dGVSZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3Fh
OiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCAoQnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICBF
eGVjdXRvckJyb3dzZXIpCitmcm9tIC5maXJlZm94IGltcG9ydCAoZ2V0X3RpbWVvdXRfbXVsdGlw
bGllciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2V4dHJh
cyBhcyBmeF9ydW5faW5mb19leHRyYXMsCisgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3By
b3BlcnRpZXMsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9r
d2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICBQcm9maWxlQ3JlYXRv
ciBhcyBGaXJlZm94UHJvZmlsZUNyZWF0b3IpCisKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVj
dCI6ICJmaXJlZm94X2FuZHJvaWQiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJj
aGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRmlyZWZveEFuZHJvaWRC
cm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJN
YXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVmdGVzdCI6ICJNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjcmFzaHRlc3QiOiAiTWFyaW9uZXR0ZUNyYXNodGVzdEV4ZWN1
dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJn
cyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdz
IiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAg
ICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgICAgICAgICAgICAg
ICJydW5faW5mb19leHRyYXMiOiAicnVuX2luZm9fZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAg
InVwZGF0ZV9wcm9wZXJ0aWVzIjogInVwZGF0ZV9wcm9wZXJ0aWVzIiwKKyAgICAgICAgICAgICAg
ICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KKworCitk
ZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CisgICAgcGFzcworCisKK2RlZiBicm93c2VyX2t3YXJn
cyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6Cisg
ICAgcmV0dXJuIHsiYWRiX2JpbmFyeSI6IGt3YXJnc1siYWRiX2JpbmFyeSJdLAorICAgICAgICAg
ICAgInBhY2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2FnZV9uYW1lIl0sCisgICAgICAgICAgICAi
ZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdLAorICAgICAgICAgICAgInBy
ZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKKyAgICAgICAgICAgICJleHRyYV9wcmVm
cyI6IGt3YXJnc1siZXh0cmFfcHJlZnMiXSwKKyAgICAgICAgICAgICJ0ZXN0X3R5cGUiOiB0ZXN0
X3R5cGUsCisgICAgICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdfaW5mbyJdLAor
ICAgICAgICAgICAgInN5bWJvbHNfcGF0aCI6IGt3YXJnc1sic3ltYm9sc19wYXRoIl0sCisgICAg
ICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJnc1sic3RhY2t3YWxrX2JpbmFyeSJdLAor
ICAgICAgICAgICAgImNlcnR1dGlsX2JpbmFyeSI6IGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0s
CisgICAgICAgICAgICAiY2FfY2VydGlmaWNhdGVfcGF0aCI6IGNvbmZpZy5zc2xfY29uZmlnWyJj
YV9jZXJ0X3BhdGgiXSwKKyAgICAgICAgICAgICJlbmFibGVfd2VicmVuZGVyIjoga3dhcmdzWyJl
bmFibGVfd2VicmVuZGVyIl0sCisgICAgICAgICAgICAic3RhY2tmaXhfZGlyIjoga3dhcmdzWyJz
dGFja2ZpeF9kaXIiXSwKKyAgICAgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1siYmluYXJ5
X2FyZ3MiXSwKKyAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiBnZXRfdGltZW91dF9t
dWx0aXBsaWVyKHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyksCisgICAgICAg
ICAgICAiZTEwcyI6IHJ1bl9pbmZvX2RhdGFbImUxMHMiXSwKKyAgICAgICAgICAgICMgZGVza3Rv
cCBvbmx5CisgICAgICAgICAgICAibGVha19jaGVjayI6IEZhbHNlLAorICAgICAgICAgICAgInN0
eWxvX3RocmVhZHMiOiBrd2FyZ3NbInN0eWxvX3RocmVhZHMiXSwKKyAgICAgICAgICAgICJjaGFv
c19tb2RlX2ZsYWdzIjoga3dhcmdzWyJjaGFvc19tb2RlX2ZsYWdzIl0sCisgICAgICAgICAgICAi
Y29uZmlnIjogY29uZmlnLAorICAgICAgICAgICAgImluc3RhbGxfZm9udHMiOiBrd2FyZ3NbImlu
c3RhbGxfZm9udHMiXSwKKyAgICAgICAgICAgICJ0ZXN0c19yb290IjogY29uZmlnLmRvY19yb290
LAorICAgICAgICAgICAgInNwZWNpYWxwb3dlcnNfcGF0aCI6IGt3YXJnc1sic3BlY2lhbHBvd2Vy
c19wYXRoIl19CisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQor
CisKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgorICAgIHJ2ID0gZnhfcnVuX2luZm9f
ZXh0cmFzKCoqa3dhcmdzKQorICAgIHBhY2thZ2UgPSBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdCisg
ICAgcnYudXBkYXRlKHsiZTEwcyI6IFRydWUgaWYgcGFja2FnZSBpcyBub3QgTm9uZSBhbmQgImdl
Y2tvdmlldyIgaW4gcGFja2FnZSBlbHNlIEZhbHNlLAorICAgICAgICAgICAgICAgImhlYWRsZXNz
IjogRmFsc2V9KQorICAgIHJldHVybiBydgorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgICMg
VGhlIHNlcnZlciBob3N0IGlzIHNldCB0byBwdWJsaWMgbG9jYWxob3N0IElQIHNvIHRoYXQgcmVz
b3VyY2VzIGNhbiBiZSBhY2Nlc3NlZAorICAgICMgZnJvbSBBbmRyb2lkIGVtdWxhdG9yCisgICAg
cmV0dXJuIHsic2VydmVyX2hvc3QiOiBtb3puZXR3b3JrLmdldF9pcCgpLAorICAgICAgICAgICAg
ImJpbmRfYWRkcmVzcyI6IEZhbHNlLAorICAgICAgICAgICAgInN1cHBvcnRzX2RlYnVnZ2VyIjog
VHJ1ZX0KKworCitjbGFzcyBQcm9maWxlQ3JlYXRvcihGaXJlZm94UHJvZmlsZUNyZWF0b3IpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywgdGVzdF90
eXBlLCBleHRyYV9wcmVmcywKKyAgICAgICAgICAgICAgICAgZW5hYmxlX2Zpc3Npb24sIGJyb3dz
ZXJfY2hhbm5lbCwgY2VydHV0aWxfYmluYXJ5LCBjYV9jZXJ0aWZpY2F0ZV9wYXRoKToKKyAgICAg
ICAgc3VwZXIoUHJvZmlsZUNyZWF0b3IsIHNlbGYpLl9faW5pdF9fKGxvZ2dlciwgcHJlZnNfcm9v
dCwgY29uZmlnLCB0ZXN0X3R5cGUsIGV4dHJhX3ByZWZzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSwgZW5hYmxlX2Zpc3Npb24sIGJyb3dzZXJfY2hh
bm5lbCwgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNlcnR1dGlsX2JpbmFyeSwgY2FfY2VydGlmaWNhdGVfcGF0aCkKKworICAgIGRlZiBfc2V0X3Jl
cXVpcmVkX3ByZWZzKHNlbGYsIHByb2ZpbGUpOgorICAgICAgICBwcm9maWxlLnNldF9wcmVmZXJl
bmNlcyh7CisgICAgICAgICAgICAibmV0d29yay5kbnMubG9jYWxEb21haW5zIjogIiwiLmpvaW4o
c2VsZi5jb25maWcuZG9tYWluc19zZXQpLAorICAgICAgICAgICAgImRvbS5kaXNhYmxlX29wZW5f
ZHVyaW5nX2xvYWQiOiBGYWxzZSwKKyAgICAgICAgICAgICJwbGFjZXMuaGlzdG9yeS5lbmFibGVk
IjogRmFsc2UsCisgICAgICAgICAgICAiZG9tLnNlbmRfYWZ0ZXJfcGFpbnRfdG9fY29udGVudCI6
IFRydWUsCisgICAgICAgICAgICAibmV0d29yay5wcmVsb2FkIjogVHJ1ZSwKKyAgICAgICAgICAg
ICJicm93c2VyLnRhYnMucmVtb3RlLmF1dG9zdGFydCI6IFRydWUsCisgICAgICAgIH0pCisKKyAg
ICAgICAgaWYgc2VsZi50ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgorICAgICAgICAgICAgc2VsZi5s
b2dnZXIuaW5mbygiU2V0dGluZyBhbmRyb2lkIHJlZnRlc3QgcHJlZmVyZW5jZXMiKQorICAgICAg
ICAgICAgcHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeworICAgICAgICAgICAgICAgICJicm93c2Vy
LnZpZXdwb3J0LmRlc2t0b3BXaWR0aCI6IDgwMCwKKyAgICAgICAgICAgICAgICAjIERpc2FibGUg
aGlnaCBEUEkKKyAgICAgICAgICAgICAgICAibGF5b3V0LmNzcy5kZXZQaXhlbHNQZXJQeCI6ICIx
LjAiLAorICAgICAgICAgICAgICAgICMgRW5zdXJlIHRoYXQgdGhlIGZ1bGwgYnJvd3NlciBlbGVt
ZW50CisgICAgICAgICAgICAgICAgIyBhcHBlYXJzIGluIHRoZSBzY3JlZW5zaG90CisgICAgICAg
ICAgICAgICAgImFwei5hbGxvd196b29taW5nIjogRmFsc2UsCisgICAgICAgICAgICAgICAgImFu
ZHJvaWQud2lkZ2V0X3BhaW50c19iYWNrZ3JvdW5kIjogRmFsc2UsCisgICAgICAgICAgICAgICAg
IyBFbnN1cmUgdGhhdCBzY3JvbGxiYXJzIGFyZSBhbHdheXMgcGFpbnRlZAorICAgICAgICAgICAg
ICAgICJsYXlvdXQudGVzdGluZy5vdmVybGF5LXNjcm9sbGJhcnMuYWx3YXlzLXZpc2libGUiOiBU
cnVlLAorICAgICAgICAgICAgfSkKKworCitjbGFzcyBGaXJlZm94QW5kcm9pZEJyb3dzZXIoQnJv
d3Nlcik6CisgICAgaW5pdF90aW1lb3V0ID0gMzAwCisgICAgc2h1dGRvd25fdGltZW91dCA9IDYw
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCB0ZXN0X3R5cGUs
IHBhY2thZ2VfbmFtZT0ib3JnLm1vemlsbGEuZ2Vja292aWV3LnRlc3QiLAorICAgICAgICAgICAg
ICAgICBkZXZpY2Vfc2VyaWFsPSJlbXVsYXRvci01NDQ0IiwgZXh0cmFfcHJlZnM9Tm9uZSwgZGVi
dWdfaW5mbz1Ob25lLAorICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9Tm9uZSwgc3RhY2t3
YWxrX2JpbmFyeT1Ob25lLCBjZXJ0dXRpbF9iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
Y2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZhbHNlLCBlbmFibGVfd2VicmVuZGVyPUZh
bHNlLCBzdGFja2ZpeF9kaXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgYmluYXJ5X2FyZ3M9Tm9u
ZSwgdGltZW91dF9tdWx0aXBsaWVyPU5vbmUsIGxlYWtfY2hlY2s9RmFsc2UsIGFzYW49RmFsc2Us
CisgICAgICAgICAgICAgICAgIHN0eWxvX3RocmVhZHM9MSwgY2hhb3NfbW9kZV9mbGFncz1Ob25l
LCBjb25maWc9Tm9uZSwgYnJvd3Nlcl9jaGFubmVsPSJuaWdodGx5IiwKKyAgICAgICAgICAgICAg
ICAgaW5zdGFsbF9mb250cz1GYWxzZSwgdGVzdHNfcm9vdD1Ob25lLCBzcGVjaWFscG93ZXJzX3Bh
dGg9Tm9uZSwgYWRiX2JpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisK
KyAgICAgICAgc3VwZXIoRmlyZWZveEFuZHJvaWRCcm93c2VyLCBzZWxmKS5fX2luaXRfXyhsb2dn
ZXIpCisgICAgICAgIHNlbGYucHJlZnNfcm9vdCA9IHByZWZzX3Jvb3QKKyAgICAgICAgc2VsZi50
ZXN0X3R5cGUgPSB0ZXN0X3R5cGUKKyAgICAgICAgc2VsZi5wYWNrYWdlX25hbWUgPSBwYWNrYWdl
X25hbWUKKyAgICAgICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAorICAgICAg
ICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCisgICAgICAgIHNlbGYuc3ltYm9sc19wYXRo
ID0gc3ltYm9sc19wYXRoCisgICAgICAgIHNlbGYuc3RhY2t3YWxrX2JpbmFyeSA9IHN0YWNrd2Fs
a19iaW5hcnkKKyAgICAgICAgc2VsZi5jZXJ0dXRpbF9iaW5hcnkgPSBjZXJ0dXRpbF9iaW5hcnkK
KyAgICAgICAgc2VsZi5jYV9jZXJ0aWZpY2F0ZV9wYXRoID0gY2FfY2VydGlmaWNhdGVfcGF0aAor
ICAgICAgICBzZWxmLmUxMHMgPSBUcnVlCisgICAgICAgIHNlbGYuZW5hYmxlX3dlYnJlbmRlciA9
IGVuYWJsZV93ZWJyZW5kZXIKKyAgICAgICAgc2VsZi5zdGFja2ZpeF9kaXIgPSBzdGFja2ZpeF9k
aXIKKyAgICAgICAgc2VsZi5iaW5hcnlfYXJncyA9IGJpbmFyeV9hcmdzCisgICAgICAgIHNlbGYu
dGltZW91dF9tdWx0aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCisgICAgICAgIHNlbGYubGVh
a19jaGVjayA9IGxlYWtfY2hlY2sKKyAgICAgICAgc2VsZi5hc2FuID0gYXNhbgorICAgICAgICBz
ZWxmLnN0eWxvX3RocmVhZHMgPSBzdHlsb190aHJlYWRzCisgICAgICAgIHNlbGYuY2hhb3NfbW9k
ZV9mbGFncyA9IGNoYW9zX21vZGVfZmxhZ3MKKyAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcK
KyAgICAgICAgc2VsZi5icm93c2VyX2NoYW5uZWwgPSBicm93c2VyX2NoYW5uZWwKKyAgICAgICAg
c2VsZi5pbnN0YWxsX2ZvbnRzID0gaW5zdGFsbF9mb250cworICAgICAgICBzZWxmLnRlc3RzX3Jv
b3QgPSB0ZXN0c19yb290CisgICAgICAgIHNlbGYuc3BlY2lhbHBvd2Vyc19wYXRoID0gc3BlY2lh
bHBvd2Vyc19wYXRoCisgICAgICAgIHNlbGYuYWRiX2JpbmFyeSA9IGFkYl9iaW5hcnkKKworICAg
ICAgICBzZWxmLnByb2ZpbGVfY3JlYXRvciA9IFByb2ZpbGVDcmVhdG9yKGxvZ2dlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmc19yb290LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfcHJlZnMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnR1dGls
X2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
YV9jZXJ0aWZpY2F0ZV9wYXRoKQorCisgICAgICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gTm9u
ZQorICAgICAgICBzZWxmLnByb2ZpbGUgPSBOb25lCisgICAgICAgIHNlbGYucnVubmVyID0gTm9u
ZQorICAgICAgICBzZWxmLl9zZXR0aW5ncyA9IHt9CisKKyAgICBkZWYgc2V0dGluZ3Moc2VsZiwg
dGVzdCk6CisgICAgICAgIHNlbGYuX3NldHRpbmdzID0geyJjaGVja19sZWFrcyI6IHNlbGYubGVh
a19jaGVjayBhbmQgbm90IHRlc3QubGVha3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJs
c2FuX2FsbG93ZWQiOiB0ZXN0LmxzYW5fYWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgImxzYW5fbWF4X3N0YWNrX2RlcHRoIjogdGVzdC5sc2FuX21heF9zdGFja19kZXB0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm1vemxlYWtfYWxsb3dlZCI6IHNlbGYubGVha19jaGVj
ayBhbmQgdGVzdC5tb3psZWFrX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJt
b3psZWFrX3RocmVzaG9sZHMiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha190aHJl
c2hvbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGVjaWFsX3Bvd2VycyI6IHNlbGYu
c3BlY2lhbHBvd2Vyc19wYXRoIGFuZCB0ZXN0LnVybF9iYXNlID09ICIvX21vemlsbGEvIn0KKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3NldHRpbmdzCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2Fy
Z3MpOgorICAgICAgICBpZiBzZWxmLm1hcmlvbmV0dGVfcG9ydCBpcyBOb25lOgorICAgICAgICAg
ICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBnZXRfZnJlZV9wb3J0KCkKKworICAgICAgICBhZGRv
bnMgPSBbc2VsZi5zcGVjaWFscG93ZXJzX3BhdGhdIGlmIHNlbGYuX3NldHRpbmdzLmdldCgic3Bl
Y2lhbF9wb3dlcnMiKSBlbHNlIE5vbmUKKyAgICAgICAgc2VsZi5wcm9maWxlID0gc2VsZi5wcm9m
aWxlX2NyZWF0b3IuY3JlYXRlKGFkZG9ucz1hZGRvbnMpCisgICAgICAgIHNlbGYucHJvZmlsZS5z
ZXRfcHJlZmVyZW5jZXMoeyJtYXJpb25ldHRlLnBvcnQiOiBzZWxmLm1hcmlvbmV0dGVfcG9ydH0p
CisKKyAgICAgICAgaWYgc2VsZi5pbnN0YWxsX2ZvbnRzOgorICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoIkNvcHlpbmcgQWhlbSBmb250IHRvIHByb2ZpbGUiKQorICAgICAgICAgICAgZm9u
dF9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5wcm9maWxlLnByb2ZpbGUsICJmb250cyIpCisgICAg
ICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZm9udF9kaXIpOgorICAgICAgICAgICAgICAg
IG9zLm1ha2VkaXJzKGZvbnRfZGlyKQorICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9p
bihzZWxmLnRlc3RzX3Jvb3QsICJmb250cyIsICJBaGVtLnR0ZiIpLCAicmIiKSBhcyBzcmM6Cisg
ICAgICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihmb250X2RpciwgIkFoZW0udHRm
IiksICJ3YiIpIGFzIGRlc3Q6CisgICAgICAgICAgICAgICAgICAgIGRlc3Qud3JpdGUoc3JjLnJl
YWQoKSkKKworICAgICAgICBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgPSBOb25lCisKKyAgICAgICAg
ZGVidWdfYXJncywgY21kID0gYnJvd3Nlcl9jb21tYW5kKHNlbGYucGFja2FnZV9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5iaW5hcnlfYXJncyBp
ZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10gKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW2NtZF9hcmcoIm1hcmlvbmV0dGUiKSwgImFib3V0OmJsYW5rIl0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlYnVnX2luZm8p
CisKKyAgICAgICAgZW52ID0ge30KKyAgICAgICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUiJdID0g
IjEiCisgICAgICAgIGVudlsiTU9aX0NSQVNIUkVQT1JURVJfU0hVVERPV04iXSA9ICIxIgorICAg
ICAgICBlbnZbIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NPTk5FQ1RJT05TIl0gPSAiMSIKKyAgICAg
ICAgZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc2VsZi5zdHlsb190aHJlYWRzKQorICAgICAg
ICBpZiBzZWxmLmNoYW9zX21vZGVfZmxhZ3MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBlbnZb
Ik1PWl9DSEFPU01PREUiXSA9IHN0cihzZWxmLmNoYW9zX21vZGVfZmxhZ3MpCisgICAgICAgIGlm
IHNlbGYuZW5hYmxlX3dlYnJlbmRlcjoKKyAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJd
ID0gIjEiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9
ICIwIgorCisgICAgICAgIHNlbGYucnVubmVyID0gRmVubmVjRW11bGF0b3JSdW5uZXIoYXBwPXNl
bGYucGFja2FnZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByb2ZpbGU9c2VsZi5wcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNtZGFyZ3M9Y21kWzE6XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbnY9ZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1zZWxmLnN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWw9c2VsZi5kZXZpY2Vfc2VyaWFs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVE9ETyAtIGNo
b29zZSBhcHByb3ByaWF0ZSBsb2cgZGlyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nZGlyPW9zLmdldGN3ZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFkYl9wYXRoPXNlbGYuYWRiX2JpbmFyeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsaWNpdF9jbGVhbnVwPVRydWUpCisK
KyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nICVzIiAlIHNlbGYucGFja2FnZV9u
YW1lKQorICAgICAgICAjIGNvbm5lY3QgdG8gYSBydW5uaW5nIGVtdWxhdG9yCisgICAgICAgIHNl
bGYucnVubmVyLmRldmljZS5jb25uZWN0KCkKKworICAgICAgICBzZWxmLnJ1bm5lci5zdG9wKCkK
KyAgICAgICAgc2VsZi5ydW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZT1zZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYu
ZGVidWdfaW5mby5pbnRlcmFjdGl2ZSkKKworICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2
aWNlLmZvcndhcmQoCisgICAgICAgICAgICBsb2NhbD0idGNwOnt9Ii5mb3JtYXQoc2VsZi5tYXJp
b25ldHRlX3BvcnQpLAorICAgICAgICAgICAgcmVtb3RlPSJ0Y3A6e30iLmZvcm1hdChzZWxmLm1h
cmlvbmV0dGVfcG9ydCkpCisKKyAgICAgICAgZm9yIHBvcnRzIGluIHNlbGYuY29uZmlnLnBvcnRz
LnZhbHVlcygpOgorICAgICAgICAgICAgZm9yIHBvcnQgaW4gcG9ydHM6CisgICAgICAgICAgICAg
ICAgc2VsZi5ydW5uZXIuZGV2aWNlLmRldmljZS5yZXZlcnNlKAorICAgICAgICAgICAgICAgICAg
ICBsb2NhbD0idGNwOnt9Ii5mb3JtYXQocG9ydCksCisgICAgICAgICAgICAgICAgICAgIHJlbW90
ZT0idGNwOnt9Ii5mb3JtYXQocG9ydCkpCisKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIiVz
IFN0YXJ0ZWQiICUgc2VsZi5wYWNrYWdlX25hbWUpCisKKyAgICBkZWYgc3RvcChzZWxmLCBmb3Jj
ZT1GYWxzZSk6CisgICAgICAgIGlmIHNlbGYucnVubmVyIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgaWYgc2VsZi5ydW5uZXIuZGV2aWNlLmNvbm5lY3RlZDoKKyAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgIHNlbGYucnVubmVyLmRldmljZS5kZXZpY2UucmVtb3ZlX2Zv
cndhcmRzKCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmRldmljZS5y
ZW1vdmVfcmV2ZXJzZXMoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRvIHJlbW92
ZSBmb3J3YXJkZWQgb3IgcmV2ZXJzZWQgcG9ydHM6ICVzIiAlIGUpCisgICAgICAgICAgICAjIFdl
IGFzc3VtZSB0aGF0IHN0b3BwaW5nIHRoZSBydW5uZXIgcHJvbXB0cyB0aGUKKyAgICAgICAgICAg
ICMgYnJvd3NlciB0byBzaHV0IGRvd24uCisgICAgICAgICAgICBzZWxmLnJ1bm5lci5jbGVhbnVw
KCkKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoInN0b3BwZWQiKQorCisgICAgZGVmIHBpZChz
ZWxmKToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXIucHJvY2Vzc19oYW5kbGVyIGlzIE5vbmU6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLnJ1bm5lci5wcm9jZXNzX2hhbmRsZXIucGlkCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgaXNfYWxpdmUoc2Vs
Zik6CisgICAgICAgIGlmIHNlbGYucnVubmVyOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYucnVu
bmVyLmlzX3J1bm5pbmcoKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBjbGVhbnVw
KHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5zdG9wKGZvcmNlKQorCisgICAgZGVm
IGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIs
IHsibWFyaW9uZXR0ZV9wb3J0Ijogc2VsZi5tYXJpb25ldHRlX3BvcnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIFdlIG5ldmVyIHdhbnQgbWFyaW9uZXR0ZSB0byBpbnN0YWxs
IGV4dGVuc2lvbnMgYmVjYXVzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0
aGF0IGRvZXNuJ3Qgd29yayBvbiBBbmRyb2lkOyBpbnN0ZWFkIHRoZXkgYXJlIGluIHRoZSBwcm9m
aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXh0ZW5zaW9ucyI6IFtdfQor
CisgICAgZGVmIGNoZWNrX2NyYXNoKHNlbGYsIHByb2Nlc3MsIHRlc3QpOgorICAgICAgICBpZiBu
b3Qgb3MuZW52aXJvbi5nZXQoIk1JTklEVU1QX1NUQUNLV0FMSyIsICIiKSBhbmQgc2VsZi5zdGFj
a3dhbGtfYmluYXJ5OgorICAgICAgICAgICAgb3MuZW52aXJvblsiTUlOSURVTVBfU1RBQ0tXQUxL
Il0gPSBzZWxmLnN0YWNrd2Fsa19iaW5hcnkKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5ydW5u
ZXIuY2hlY2tfZm9yX2NyYXNoZXModGVzdF9uYW1lPXRlc3QpKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
aWUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9pZS5weQppbmRleCA3OGMyMmI5MDlhY2YuLmM4NTFkYWYwYjYzYyAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvaWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkKQEAgLTEsMTIgKzEsMTEgQEAK
LWZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcK
LWZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEK
LWZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2Vy
dmVyCitmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgTnVs
bEJyb3dzZXIsIGdldF90aW1lb3V0X211bHRpcGxpZXIgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4
ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBm
cm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yaW50ZXJuZXRleHBsb3JlciBpbXBvcnQgSW50ZXJuZXRF
eHBsb3JlckRyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193cHRydW5uZXJf
XyA9IHsicHJvZHVjdCI6ICJpZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNo
ZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJJbnRlcm5ldEV4cGxvcmVy
QnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIk51bGxCcm93c2VyIiwKICAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ3ZHNwZWMiOiAiSW50ZXJuZXRFeHBsb3JlckRy
aXZlcldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6
ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAi
ZXhlY3V0b3Jfa3dhcmdzIiwKQEAgLTE4LDE4ICsxNywxNyBAQCBfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImllIiwKIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2Fy
Zyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3Rf
dHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2Fy
Z3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgog
ICAgIHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnki
XSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9h
cmdzIil9CiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBj
YWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIs
IHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAg
ICAgICAgICAgKiprd2FyZ3MpOgogICAgIG9wdGlvbnMgPSB7fQogICAgIG9wdGlvbnNbInJlcXVp
cmVXaW5kb3dGb2N1cyJdID0gVHJ1ZQogICAgIGNhcGFiaWxpdGllcyA9IHt9CiAgICAgY2FwYWJp
bGl0aWVzWyJzZTppZU9wdGlvbnMiXSA9IG9wdGlvbnMKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBi
YXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9f
ZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykK
ICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBleGVj
dXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCiAgICAgcmV0dXJuIGV4
ZWN1dG9yX2t3YXJncwpAQCAtMzksMzUgKzM3LDMgQEAgZGVmIGVudl9leHRyYXMoKiprd2FyZ3Mp
OgogCiBkZWYgZW52X29wdGlvbnMoKToKICAgICByZXR1cm4geyJzdXBwb3J0c19kZWJ1Z2dlciI6
IEZhbHNlfQotCi1jbGFzcyBJbnRlcm5ldEV4cGxvcmVyQnJvd3NlcihCcm93c2VyKToKLSAgICB1
c2VkX3BvcnRzID0gc2V0KCkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRy
aXZlcl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgotICAgICAgICBCcm93c2VyLl9faW5p
dF9fKHNlbGYsIGxvZ2dlcikKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBJbnRlcm5ldEV4cGxvcmVy
RHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9h
cmdzKQotICAgICAgICBzZWxmLndlYmRyaXZlcl9ob3N0ID0gImxvY2FsaG9zdCIKLSAgICAgICAg
c2VsZi53ZWJkcml2ZXJfcG9ydCA9IHNlbGYuc2VydmVyLnBvcnQKLQotICAgIGRlZiBzdGFydChz
ZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKLQotICAgIGRlZiBz
dG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1m
b3JjZSkKLQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5w
aWQKLQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMg
b25seSBpbmRpY2F0ZXMgdGhlIHNlcnZlciBpcyBhbGl2ZSwKLSAgICAgICAgIyBhbmQgZG9lc24n
dCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgotICAgICAgICAj
IGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKLQotICAg
IGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBzZWxmLnN0b3AoKQotCi0gICAgZGVmIGV4ZWN1
dG9yX2Jyb3dzZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2Vi
ZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvb3BlcmEucHkKaW5kZXggODA1ZmVkZWU2MzZjLi5mM2EyOTI5Y2U4ZWIgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL29wZXJhLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CkBAIC0xLDQgKzEsNSBA
QAogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2Fy
ZworZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAuYmFz
ZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndl
YmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IE9wZXJhRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3Jz
IGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKQEAgLTksNyAr
MTAsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yb3BlcmEgaW1wb3J0IE9wZXJhRHJpdmVy
V2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0
IjogIm9wZXJhIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIs
Ci0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIk9wZXJhQnJvd3NlciIsCisgICAgICAgICAg
ICAgICAgICJicm93c2VyIjoge05vbmU6ICJPcGVyYUJyb3dzZXIiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAg
ICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9y
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVtUmVm
VGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAi
T3BlcmFEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LApAQCAtMjQsMTggKzI2LDE3IEBAIGRlZiBjaGVj
a19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmlu
YXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwg
cnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijog
a3dhcmdzWyJiaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdz
WyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2Fy
Z3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4
ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2lu
Zm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIGZyb20gc2VsZW5p
dW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCiAKLSAgICBleGVjdXRvcl9r
d2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUK
ICAgICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmlsaXRpZXMuT1BFUkEuaXRlbXMo
KSkKICAgICBjYXBhYmlsaXRpZXMuc2V0ZGVmYXVsdCgib3BlcmFPcHRpb25zIiwge30pWyJwcmVm
cyJdID0gewpAQCAtNzEsNyArNzIsNyBAQCBjbGFzcyBPcGVyYUJyb3dzZXIoQnJvd3Nlcik6CiAg
ICAgIiIiCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZl
cl9iaW5hcnk9Im9wZXJhZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9
Tm9uZSk6CisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToK
ICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBPcGVyYS4gIFRoZSBg
YmluYXJ5YCBhcmd1bWVudCBnaXZlcwogICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNl
IGZvciB0ZXN0aW5nLiIiIgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQppbmRleCBjYjJi
MTc1ZDRkZmIuLjIwYTU0NzVhY2YwYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL3NhZmFyaS5weQpAQCAtMSw0ICsxLDExIEBACitpbXBvcnQgb3MKK2ltcG9ydCBwbGlz
dGxpYgorZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorCitpbXBv
cnQgcHN1dGlsCisKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3Nlciwg
cmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDEK
IGZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEK
IGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTYWZhcmlEcml2ZXJTZXJ2ZXIKIGZyb20g
Li5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJn
cwpAQCAtMTAsNyArMTcsOCBAQCBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2FmYXJpIGltcG9y
dCBTYWZhcmlEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVy
X18gPSB7InByb2R1Y3QiOiAic2FmYXJpIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3Mi
OiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIlNhZmFyaUJyb3dz
ZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiU2FmYXJpQnJvd3NlciIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwK
ICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJU
ZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0
ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIlNhZmFyaURyaXZlcldkc3BlY0V4ZWN1dG9yIiwKQEAgLTI2LDE1
ICszNCwxNCBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dh
cmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3Mo
bG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAg
IHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwK
LSAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdz
Iil9CisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJf
YXJncyIpLAorICAgICAgICAgICAgImtpbGxfc2FmYXJpIjoga3dhcmdzLmdldCgia2lsbF9zYWZh
cmkiLCBGYWxzZSl9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAgICAgICAg
ICoqa3dhcmdzKToKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCitkZWYg
ZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5f
aW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3
YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAg
ICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0ge30KICAgICBpZiB0ZXN0X3R5cGUg
PT0gInRlc3RoYXJuZXNzIjoKQEAgLTU4LDE1ICs2NSw2MCBAQCBjbGFzcyBTYWZhcmlCcm93c2Vy
KEJyb3dzZXIpOgogICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5TYWZhcmlEcml2ZXJTZXJ2ZXJg
YC4KICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9i
aW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIHdlYmRyaXZlcl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUsIGtpbGxfc2FmYXJpPUZh
bHNlLCAqKmt3YXJncyk6CiAgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24g
b2YgU2FmYXJpLiAgVGhlIGB3ZWJkcml2ZXJfYmluYXJ5YAogICAgICAgICBhcmd1bWVudCBnaXZl
cyB0aGUgV2ViRHJpdmVyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIChUaGUgYnJvd3Nlcgog
ICAgICAgICBiaW5hcnkgbG9jYXRpb24gY2Fubm90IGJlIHNwZWNpZmllZCwgYXMgU2FmYXJpIGFu
ZCBTYWZhcmlEcml2ZXIgYXJlCi0gICAgICAgIGNvdXBsZWQuKSIiIgorICAgICAgICBjb3VwbGVk
LikgSWYgYGtpbGxfc2FmYXJpYCBpcyBUcnVlLCB0aGVuIGBCcm93c2VyLnN0b3BgIHdpbGwgc3Rv
cCBTYWZhcmkuIiIiCiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAg
ICAgICBzZWxmLnNlcnZlciA9IFNhZmFyaURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5h
cnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJp
dmVyX2FyZ3MpCisgICAgICAgIGlmICIvIiBub3QgaW4gd2ViZHJpdmVyX2JpbmFyeToKKyAgICAg
ICAgICAgIHdkX3BhdGggPSBmaW5kX2V4ZWN1dGFibGUod2ViZHJpdmVyX2JpbmFyeSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHdkX3BhdGggPSB3ZWJkcml2ZXJfYmluYXJ5CisgICAgICAg
IHNlbGYuc2FmYXJpX3BhdGggPSBzZWxmLl9maW5kQXNzb2NpYXRlZFNhZmFyaUV4ZWN1dGFibGUo
d2RfcGF0aCkKKworICAgICAgICBsb2dnZXIuZGVidWcoIldlYkRyaXZlciBleGVjdXRhYmxlIHBh
dGg6ICVzIiAlIHdkX3BhdGgpCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiU2FmYXJpIGV4ZWN1dGFi
bGUgcGF0aDogJXMiICUgc2VsZi5zYWZhcmlfcGF0aCkKKworICAgICAgICBzZWxmLmtpbGxfc2Fm
YXJpID0ga2lsbF9zYWZhcmkKKworICAgIGRlZiBfZmluZEFzc29jaWF0ZWRTYWZhcmlFeGVjdXRh
YmxlKHNlbGYsIHdkX3BhdGgpOgorICAgICAgICBidW5kbGVfcGF0aHMgPSBbCisgICAgICAgICAg
ICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHdkX3BhdGgpLCAiLi4iLCAiLi4iKSwgICMg
YnVuZGxlZCBTYWZhcmkgKGUuZy4gU1RQKQorICAgICAgICAgICAgb3MucGF0aC5qb2luKG9zLnBh
dGguZGlybmFtZSh3ZF9wYXRoKSwgIlNhZmFyaS5hcHAiKSwgICMgbG9jYWwgU2FmYXJpIGJ1aWxk
CisgICAgICAgICAgICAiL0FwcGxpY2F0aW9ucy9TYWZhcmkuYXBwIiwgICMgc3lzdGVtIFNhZmFy
aQorICAgICAgICBdCisKKyAgICAgICAgZm9yIGJ1bmRsZV9wYXRoIGluIGJ1bmRsZV9wYXRoczoK
KyAgICAgICAgICAgIGluZm9fcGF0aCA9IG9zLnBhdGguam9pbihidW5kbGVfcGF0aCwgIkNvbnRl
bnRzIiwgIkluZm8ucGxpc3QiKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGlu
Zm9fcGF0aCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgd2l0aCBv
cGVuKGluZm9fcGF0aCwgInJiIikgYXMgZnA6CisgICAgICAgICAgICAgICAgaW5mbyA9IHBsaXN0
bGliLmxvYWQoZnApCisKKyAgICAgICAgICAgICMgY2hlY2sgd2UgaGF2ZSBhIFNhZmFyaSBmYW1p
bHkgYnVuZGxlCisgICAgICAgICAgICBpZiAiQ0ZCdW5kbGVJZGVudGlmaWVyIiBub3QgaW4gaW5m
bzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWRlbnQgPSBpbmZvWyJD
RkJ1bmRsZUlkZW50aWZpZXIiXQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaWRlbnQs
IHN0cikgb3Igbm90IGlkZW50LnN0YXJ0c3dpdGgoImNvbS5hcHBsZS5TYWZhcmkiKToKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAjIGdldCB0aGUgZXhlY3V0YWJsZSBu
YW1lCisgICAgICAgICAgICBpZiAiQ0ZCdW5kbGVFeGVjdXRhYmxlIiBub3QgaW4gaW5mbzoKKyAg
ICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXhlID0gaW5mb1siQ0ZCdW5kbGVF
eGVjdXRhYmxlIl0KKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4ZSwgc3RyKToKKyAg
ICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBleGVfcGF0aCA9IG9zLnBhdGgu
am9pbihidW5kbGVfcGF0aCwgIkNvbnRlbnRzIiwgIk1hY09TIiwgZXhlKQorICAgICAgICAgICAg
aWYgbm90IG9zLnBhdGguaXNmaWxlKGV4ZV9wYXRoKToKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorCisgICAgICAgICAgICByZXR1cm4gZXhlX3BhdGgKIAogICAgIGRlZiBzdGFydChzZWxmLCAq
Kmt3YXJncyk6CiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQpAQCAtNzQs
NiArMTI2LDIwIEBAIGNsYXNzIFNhZmFyaUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgZGVmIHN0b3Ao
c2VsZiwgZm9yY2U9RmFsc2UpOgogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNl
KQogCisgICAgICAgIGlmIHNlbGYua2lsbF9zYWZhcmk6CisgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiR29pbmcgdG8gc3RvcCBTYWZhcmkiKQorICAgICAgICAgICAgZm9yIHByb2MgaW4g
cHN1dGlsLnByb2Nlc3NfaXRlcihhdHRycz1bImV4ZSJdKToKKyAgICAgICAgICAgICAgICBpZiBw
cm9jLmluZm9bImV4ZSJdIGlzIG5vdCBOb25lIGFuZCBvcy5wYXRoLnNhbWVmaWxlKHByb2MuaW5m
b1siZXhlIl0sIHNlbGYuc2FmYXJpX3BhdGgpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1ZygiU3RvcHBpbmcgU2FmYXJpICVzIiAlIHByb2MucGlkKQorICAgICAgICAgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLnRlcm1pbmF0ZSgpCisg
ICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJvYy53YWl0KDEwKQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHBzdXRpbC5UaW1l
b3V0RXhwaXJlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLmtpbGwoKQorICAg
ICAgICAgICAgICAgICAgICBleGNlcHQgcHN1dGlsLk5vU3VjaFByb2Nlc3M6CisgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNzCisKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICByZXR1cm4g
c2VsZi5zZXJ2ZXIucGlkCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1
Y2UucHkKaW5kZXggYzU3YWM5NDJlZDRlLi40OTEzMTk5MTc1OTkgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3NhdWNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5CkBAIC0xMiw3ICsxMiw3IEBAIGltcG9ydCB0
aW1lCiAKIGltcG9ydCByZXF1ZXN0cwogCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lP
IGFzIFN0cmluZ0lPCitmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIC5iYXNlIGltcG9y
dCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9tIC5iYXNlIGltcG9y
dCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCkBAIC05NSwxNiArOTUsMTUg
QEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInNh
dWNlX2tleSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHNhdWNlX2NvbmZpZyA9
IGdldF9zYXVjZV9jb25maWcoKiprd2FyZ3MpCiAKICAgICByZXR1cm4geyJzYXVjZV9jb25maWci
OiBzYXVjZV9jb25maWd9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAog
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFz
ZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdz
KHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAK
ICAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gZ2V0X2NhcGFiaWxpdGllcygq
Kmt3YXJncykKIApAQCAtMjI4LDcgKzIyNyw3IEBAIGNsYXNzIFNhdWNlRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6CiBjbGFzcyBTYXVjZUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0ID0g
MzAwCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBzYXVjZV9jb25maWcpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHNhdWNlX2NvbmZpZywgKiprd2FyZ3MpOgogICAg
ICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAgICAgICAgc2VsZi5zYXVjZV9j
b25maWcgPSBzYXVjZV9jb25maWcKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9zZXJ2by5weQppbmRleCBiOTQ3NjU0MGFjN2MuLjE3OTFjMWRhMjcwNiAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvc2Vydm8ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKQEAgLTMzLDcgKzMzLDcgQEAgZGVm
IGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgImJpbmFyeSIp
CiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmln
LCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9p
bmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7CiAgICAgICAgICJiaW5h
cnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVi
dWdfaW5mbyJdLApAQCAtNDMsMTAgKzQzLDkgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9l
bnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3Mp
OgotICAgIHJ2ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9f
ZGF0YSwgKiprd2FyZ3MpCisgICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUs
IHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQogICAgIHJ2WyJwYXVz
ZV9hZnRlcl90ZXN0Il0gPSBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXQogICAgIGlmIHRlc3Rf
dHlwZSA9PSAid2RzcGVjIjoKICAgICAgICAgcnZbImNhcGFiaWxpdGllcyJdID0ge30KQEAgLTcx
LDcgKzcwLDcgQEAgZGVmIHVwZGF0ZV9wcm9wZXJ0aWVzKCk6CiAKIGNsYXNzIFNlcnZvQnJvd3Nl
cihOdWxsQnJvd3Nlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBk
ZWJ1Z19pbmZvPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsCi0gICAgICAgICAgICAgICAgIHVzZXJf
c3R5bGVzaGVldHM9Tm9uZSwgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lKToKKyAgICAgICAgICAg
ICAgICAgdXNlcl9zdHlsZXNoZWV0cz1Ob25lLCBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUsICoq
a3dhcmdzKToKICAgICAgICAgTnVsbEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAg
ICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1
Z19pbmZvCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJp
dmVyLnB5CmluZGV4IDQzNzk0ZTQxNzA2ZC4uOWE2YTFhNDAyYjM2IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9zZXJ2b2RyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQpAQCAtNiwxMiArNiwx
NiBAQCBmcm9tIG1venByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAKIGZyb20gdG9vbHMu
c2VydmUuc2VydmUgaW1wb3J0IG1ha2VfaG9zdHNfZmlsZQogCi1mcm9tIC5iYXNlIGltcG9ydCBC
cm93c2VyLCByZXF1aXJlX2FyZywgZ2V0X2ZyZWVfcG9ydCwgYnJvd3Nlcl9jb21tYW5kLCBFeGVj
dXRvckJyb3dzZXIKK2Zyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAorICAgICAgICAgICAgICAg
ICAgIEV4ZWN1dG9yQnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICBPdXRwdXRIYW5kbGVyLAor
ICAgICAgICAgICAgICAgICAgIHJlcXVpcmVfYXJnLAorICAgICAgICAgICAgICAgICAgIGdldF9m
cmVlX3BvcnQsCisgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jb21tYW5kKQogZnJvbSAuYmFz
ZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4
ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBm
cm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2Vydm9kcml2ZXIgaW1wb3J0IChTZXJ2b1dlYkRyaXZl
clRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAg
IyBub3FhOiBGNDAxCi1mcm9tIC4ucHJvY2VzcyBpbXBvcnQgY2FzdF9lbnYKIAogaGVyZSA9IG9z
LnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMzYsNyArNDAsNyBAQCBkZWYgY2hlY2tfYXJn
cygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikKIAogCi1kZWYg
YnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJpbmFyeSI6IGt3YXJn
c1siYmluYXJ5Il0sCiAgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1siYmluYXJ5X2FyZ3Mi
XSwKQEAgLTQ3LDkgKzUxLDggQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LCAqKmt3YXJncyk6Ci0gICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2Vy
LCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAg
ICBydiA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwg
cnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgcmV0dXJuIHJ2CiAKIApAQCAtNzcsNyArODAs
OCBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1l
b3V0ID0gMzAwICAjIExhcmdlIHRpbWVvdXQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIGJvb3Rpbmcg
YW4gQW5kcm9pZCBlbXVsYXRvcgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmlu
YXJ5LCBkZWJ1Z19pbmZvPU5vbmUsIHdlYmRyaXZlcl9ob3N0PSIxMjcuMC4wLjEiLAotICAgICAg
ICAgICAgICAgICBzZXJ2ZXJfY29uZmlnPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsIHVzZXJfc3R5
bGVzaGVldHM9Tm9uZSwgaGVhZGxlc3M9Tm9uZSk6CisgICAgICAgICAgICAgICAgIHNlcnZlcl9j
b25maWc9Tm9uZSwgYmluYXJ5X2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgdXNlcl9zdHls
ZXNoZWV0cz1Ob25lLCBoZWFkbGVzcz1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEJyb3dzZXIu
X19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAg
ICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3Mgb3IgW10KQEAgLTkxLDYgKzk1LDcg
QEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnVz
ZXJfc3R5bGVzaGVldHMgPSB1c2VyX3N0eWxlc2hlZXRzIGlmIHVzZXJfc3R5bGVzaGVldHMgZWxz
ZSBbXQogICAgICAgICBzZWxmLmhlYWRsZXNzID0gaGVhZGxlc3MgaWYgaGVhZGxlc3MgZWxzZSBG
YWxzZQogICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBzZXJ2ZXJfY29uZmlnLnNz
bF9jb25maWdbImNhX2NlcnRfcGF0aCJdCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIgPSBO
b25lCiAKICAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLndlYmRy
aXZlcl9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCkBAIC0xMjksMTMgKzEzNCwxNiBAQCBjbGFzcyBT
ZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuY29tbWFuZCA9IGRl
YnVnX2FyZ3MgKyBzZWxmLmNvbW1hbmQKIAogICAgICAgICBpZiBub3Qgc2VsZi5kZWJ1Z19pbmZv
IG9yIG5vdCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6CisgICAgICAgICAgICBzZWxmLm91
dHB1dF9oYW5kbGVyID0gT3V0cHV0SGFuZGxlcihzZWxmLmxvZ2dlciwgc2VsZi5jb21tYW5kKQog
ICAgICAgICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzc0hhbmRsZXIoc2VsZi5jb21tYW5kLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9W3Nl
bGYub25fb3V0cHV0XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dj1jYXN0X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW52PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlT3V0
cHV0PUZhbHNlKQogICAgICAgICAgICAgc2VsZi5wcm9jLnJ1bigpCisgICAgICAgICAgICBzZWxm
Lm91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3RhcnQoc2VsZi5wcm9jLnBpZCkKKyAgICAg
ICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXIuc3RhcnQoKQogICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNvbW1hbmQsIGVudj1jYXN0
X2VudihlbnYpKQorICAgICAgICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxm
LmNvbW1hbmQsIGVudj1lbnYpCiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNlcnZvIFN0
YXJ0ZWQiKQogCkBAIC0xNDcsNiArMTU1LDggQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2Vy
KEJyb3dzZXIpOgogICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAg
IyBUaGlzIGNhbiBoYXBwZW4gb24gV2luZG93cyBpZiB0aGUgcHJvY2VzcyBpcyBhbHJlYWR5IGRl
YWQKICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHNlbGYub3V0cHV0X2hhbmRsZXIg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nl
c3Nfc3RvcCgpCiAKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLnByb2MgaXMg
Tm9uZToKQEAgLTE1NywxMiArMTY3LDYgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJy
b3dzZXIpOgogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAgICAgICAgICByZXR1
cm4gTm9uZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgIiIiV3Jp
dGUgYSBsaW5lIG9mIG91dHB1dCBmcm9tIHRoZSBwcm9jZXNzIHRvIHRoZSBsb2ciIiIKLSAgICAg
ICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY29t
bWFuZCkpCi0KICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnBy
b2MucG9sbCgpIGlzIE5vbmUKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
d2Via2l0LnB5CmluZGV4IGRhOTNjZjE2NDM5OS4uYWQyNDc3MWFjOWNlIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy93ZWJraXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CkBAIC0xLDUgKzEsNSBAQAogZnJv
bSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwotZnJv
bSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgY2VydGlmaWNhdGVfZG9tYWlu
X2xpc3QgICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIsIGdldF90
aW1lb3V0X211bHRpcGxpZXIsIGNlcnRpZmljYXRlX2RvbWFpbl9saXN0ICAjIG5vcWE6IEY0MDEK
IGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9y
X2t3YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRy
aXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsICAjIG5v
cWE6IEY0MDEKQEAgLTEwLDcgKzEwLDggQEAgZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0
IFdlYktpdERyaXZlclNlcnZlcgogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIndlYmtp
dCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAg
ICAgICAgICAgICAiYnJvd3NlciI6ICJXZWJLaXRCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAg
ImJyb3dzZXIiOiB7Tm9uZTogIldlYktpdEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJicm93
c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRv
ciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhl
Y3V0b3IiLApAQCAtMjksNyArMzAsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAg
cmVxdWlyZV9hcmcoa3dhcmdzLCAid2Via2l0X3BvcnQiKQogCiAKLWRlZiBicm93c2VyX2t3YXJn
cyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dz
ZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dh
cmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAg
ICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAg
ICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CkBA
IC01NCwxMiArNTUsMTEgQEAgZGVmIGNhcGFiaWxpdGllc19mb3JfcG9ydChzZXJ2ZXJfY29uZmln
LCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHt9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYg
ZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5f
aW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZXhlY3V0b3Jf
a3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIs
IHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhl
Y3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwg
Kiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVl
Ci0gICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllc19mb3Jf
cG9ydChzZXJ2ZXJfY29uZmlnLAorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0g
PSBjYXBhYmlsaXRpZXNfZm9yX3BvcnQodGVzdF9lbnZpcm9ubWVudC5jb25maWcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3
YXJncykKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKQEAgLTgyLDcgKzgyLDcgQEAgY2xh
c3MgV2ViS2l0QnJvd3NlcihCcm93c2VyKToKICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lLAotICAgICAgICAgICAg
ICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Fy
Z3M9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dl
cikKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBX
ZWJLaXREcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2VyLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0
Z3RrX21pbmlicm93c2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uN2EwMmFkMTQ5MDJiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmli
cm93c2VyLnB5CkBAIC0wLDAgKzEsODQgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IChOdWxsQnJvd3Nl
ciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlX2RvbWFpbl9s
aXN0LAorICAgICAgICAgICAgICAgICAgIGdldF90aW1lb3V0X211bHRpcGxpZXIsICAjIG5vcWE6
IEY0MDEKKyAgICAgICAgICAgICAgICAgICBtYXliZV9hZGRfYXJncykKK2Zyb20gLndlYmtpdCBp
bXBvcnQgV2ViS2l0QnJvd3NlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dh
cmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2Vi
ZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQw
MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJl
ZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYkRyaXZlckNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAx
Citmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2Via2l0IGltcG9ydCBXZWJLaXREcml2ZXJXZHNw
ZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAi
d2Via2l0Z3RrX21pbmlicm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAi
Y2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJXZWJLaXRH
VEtNaW5pQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAi
TnVsbEJyb3dzZXIifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dz
ZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6
ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIldlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9y
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjcmFzaHRlc3QiOiAiV2ViRHJpdmVy
Q3Jhc2h0ZXN0RXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6
ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZf
ZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwK
KyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAor
ICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRp
cGxpZXIifQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICBwYXNzCisKKworZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKKyAgICAjIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9y
Zy9HTk9NRS9saWJzb3VwL2lzc3Vlcy8xNzIKKyAgICB3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncyA9
IFsiLS1ob3N0PTEyNy4wLjAuMSJdCisgICAgd2ViZHJpdmVyX2FyZ3MgPSBtYXliZV9hZGRfYXJn
cyh3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncywga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKSkK
KyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgIndl
YmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAg
ICJ3ZWJkcml2ZXJfYXJncyI6IHdlYmRyaXZlcl9hcmdzfQorCisKK2RlZiBjYXBhYmlsaXRpZXMo
c2VydmVyX2NvbmZpZywgKiprd2FyZ3MpOgorICAgIGJyb3dzZXJfcmVxdWlyZWRfYXJncyA9IFsi
LS1hdXRvbWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1qYXZhc2NyaXB0
LWNhbi1vcGVuLXdpbmRvd3MtYXV0b21hdGljYWxseT10cnVlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLS1lbmFibGUteHNzLWF1ZGl0b3I9ZmFsc2UiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICItLWVuYWJsZS1tZWRpYS1jYXBhYmlsaXRpZXM9dHJ1ZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLWVuY3J5cHRlZC1tZWRpYT10cnVlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbWVkaWEtc3RyZWFtPXRydWUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1tb2NrLWNhcHR1cmUtZGV2aWNl
cz10cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtd2ViYXVkaW89
dHJ1ZSJdCisgICAgYXJncyA9IGt3YXJncy5nZXQoImJpbmFyeV9hcmdzIiwgW10pCisgICAgYXJn
cyA9IG1heWJlX2FkZF9hcmdzKGJyb3dzZXJfcmVxdWlyZWRfYXJncywgYXJncykKKyAgICByZXR1
cm4geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiTWluaUJyb3dzZXIiLAorICAgICAgICAid2Vi
a2l0Z3RrOmJyb3dzZXJPcHRpb25zIjogeworICAgICAgICAgICAgImJpbmFyeSI6IGt3YXJnc1si
YmluYXJ5Il0sCisgICAgICAgICAgICAiYXJncyI6IGFyZ3MsCisgICAgICAgICAgICAiY2VydGlm
aWNhdGVzIjogY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qoc2VydmVyX2NvbmZpZy5kb21haW5zX3Nl
dCwga3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdKX19CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyhs
b2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKKyAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhl
Y3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwg
Kiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVl
CisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcyh0ZXN0
X2Vudmlyb25tZW50LmNvbmZpZywgKiprd2FyZ3MpCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJn
cworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYg
ZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitkZWYgcnVuX2luZm9fZXh0cmFzKCoq
a3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJraXRfcG9ydCI6ICJndGsifQorCisKK2NsYXNzIFdl
YktpdEdUS01pbmlCcm93c2VyKFdlYktpdEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCisgICAgICAgICAg
ICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgV2ViS2l0QnJv
d3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncykKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Nv
bmZpZy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2NvbmZpZy5weQppbmRleCBkNDZiZWI4ZTcxZGIuLjhhOWJkYmY3MzBkNiAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvY29uZmlnLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2NvbmZpZy5weQpAQCAtMSwxMSArMSwxMiBAQAotZnJvbSBzaXgubW92
ZXMuY29uZmlncGFyc2VyIGltcG9ydCBTYWZlQ29uZmlnUGFyc2VyCitmcm9tIGNvbmZpZ3BhcnNl
ciBpbXBvcnQgQ29uZmlnUGFyc2VyCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20gY29sbGVj
dGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0Citmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0CiAK
IGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAKLWNsYXNzIENvbmZpZ0RpY3QoZGlj
dCk6CitjbGFzcyBDb25maWdEaWN0KERpY3Rbc3RyLCBBbnldKToKICAgICBkZWYgX19pbml0X18o
c2VsZiwgYmFzZV9wYXRoLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLmJhc2VfcGF0
aCA9IGJhc2VfcGF0aAogICAgICAgICBkaWN0Ll9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cykKQEAgLTIwLDcgKzIxLDcgQEAgY2xhc3MgQ29uZmlnRGljdChkaWN0KToKIGRlZiByZWFkKGNv
bmZpZ19wYXRoKToKICAgICBjb25maWdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChjb25maWdfcGF0
aCkKICAgICBjb25maWdfcm9vdCA9IG9zLnBhdGguZGlybmFtZShjb25maWdfcGF0aCkKLSAgICBw
YXJzZXIgPSBTYWZlQ29uZmlnUGFyc2VyKCkKKyAgICBwYXJzZXIgPSBDb25maWdQYXJzZXIoKQog
ICAgIHN1Y2Nlc3MgPSBwYXJzZXIucmVhZChjb25maWdfcGF0aCkKICAgICBhc3NlcnQgY29uZmln
X3BhdGggaW4gc3VjY2Vzcywgc3VjY2VzcwogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmly
b25tZW50LnB5CmluZGV4IDI1MjdkMjZkMzkxZC4uM2ZlOTcxNDU2ZWQ2IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZp
cm9ubWVudC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQpAQCAtMSwxNSArMSwxNCBAQAogaW1wb3J0IGpz
b24KIGltcG9ydCBvcwotaW1wb3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IHNpZ25hbAogaW1w
b3J0IHNvY2tldAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKLWZyb20gc2l4IGltcG9ydCBpdGVy
aXRlbXMKIAotZnJvbSBtb3psb2cgaW1wb3J0IGdldF9kZWZhdWx0X2xvZ2dlciwgaGFuZGxlcnMs
IHByb3h5Citmcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1bHRfbG9nZ2VyLCBoYW5kbGVycwog
Ci1mcm9tIC53cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3JpdGVyCitmcm9tIC4gaW1wb3J0
IG1wY29udGV4dAorZnJvbSAud3B0bG9nZ2luZyBpbXBvcnQgTG9nTGV2ZWxSZXdyaXRlciwgUXVl
dWVIYW5kbGVyLCBMb2dRdWV1ZVRocmVhZAogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKQogcmVwb19yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCBvcy5w
YXJkaXIsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKQEAgLTUwLDI0ICs0OSw1OCBAQCBjbGFzcyBU
ZXN0RW52aXJvbm1lbnRFcnJvcihFeGNlcHRpb24pOgogICAgIHBhc3MKIAogCitkZWYgZ2V0X3Nl
cnZlcl9sb2dnZXIoKToKKyAgICBsb2dnZXIgPSBnZXRfZGVmYXVsdF9sb2dnZXIoY29tcG9uZW50
PSJ3cHRzZXJ2ZSIpCisgICAgbG9nX2ZpbHRlciA9IGhhbmRsZXJzLkxvZ0xldmVsRmlsdGVyKGxh
bWJkYSB4OiB4LCAiaW5mbyIpCisgICAgIyBEb3duZ3JhZGUgZXJyb3JzIHRvIHdhcm5pbmdzIGZv
ciB0aGUgc2VydmVyCisgICAgbG9nX2ZpbHRlciA9IExvZ0xldmVsUmV3cml0ZXIobG9nX2ZpbHRl
ciwgWyJlcnJvciJdLCAid2FybmluZyIpCisgICAgbG9nZ2VyLmNvbXBvbmVudF9maWx0ZXIgPSBs
b2dfZmlsdGVyCisgICAgcmV0dXJuIGxvZ2dlcgorCisKK2NsYXNzIFByb3h5TG9nZ2luZ0NvbnRl
eHQ6CisgICAgIiIiQ29udGV4dCBtYW5hZ2VyIG9iamVjdCB0aGF0IGhhbmRsZXMgc2V0dXAgYW5k
IHRlYXJkb3duIG9mIGEgbG9nIHF1ZXVlCisgICAgZm9yIGhhbmRsaW5nIGxvZ2dpbmcgbWVzc2Fn
ZXMgZnJvbSB3cHRzZXJ2ZS4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgor
ICAgICAgICBtcF9jb250ZXh0ID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2Vs
Zi5sb2dfcXVldWUgPSBtcF9jb250ZXh0LlF1ZXVlKCkKKyAgICAgICAgc2VsZi5sb2dnaW5nX3Ro
cmVhZCA9IExvZ1F1ZXVlVGhyZWFkKHNlbGYubG9nX3F1ZXVlLCBsb2dnZXIpCisgICAgICAgIHNl
bGYubG9nZ2VyX2hhbmRsZXIgPSBRdWV1ZUhhbmRsZXIoc2VsZi5sb2dfcXVldWUpCisKKyAgICBk
ZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dpbmdfdGhyZWFkLnN0YXJ0KCkK
KyAgICAgICAgcmV0dXJuIHNlbGYubG9nZ2VyX2hhbmRsZXIKKworICAgIGRlZiBfX2V4aXRfXyhz
ZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYubG9nX3F1ZXVlLnB1dChOb25lKQorICAgICAgICAj
IFdhaXQgZm9yIHRocmVhZCB0byBzaHV0IGRvd24gYnV0IG5vdCBmb3IgdG9vIGxvbmcgc2luY2Ug
aXQncyBhIGRhZW1vbgorICAgICAgICBzZWxmLmxvZ2dpbmdfdGhyZWFkLmpvaW4oMSkKKworCiBj
bGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhh
dCBvd25zIHRoZSB0ZXN0IGVudmlyb25tZW50IGkuZS4gdGhlIGh0dHAgYW5kCiAgICAgd2Vic29j
a2V0cyBzZXJ2ZXJzIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aHMsIHRlc3Ro
YXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyLAotICAgICAgICAgICAgICAgICBwYXVzZV9hZnRlcl90
ZXN0LCBkZWJ1Z19pbmZvLCBvcHRpb25zLCBzc2xfY29uZmlnLCBlbnZfZXh0cmFzLAorICAgICAg
ICAgICAgICAgICBwYXVzZV9hZnRlcl90ZXN0LCBkZWJ1Z190ZXN0LCBkZWJ1Z19pbmZvLCBvcHRp
b25zLCBzc2xfY29uZmlnLCBlbnZfZXh0cmFzLAogICAgICAgICAgICAgICAgICBlbmFibGVfcXVp
Yz1GYWxzZSwgbW9qb2pzX3BhdGg9Tm9uZSk6CisKICAgICAgICAgc2VsZi50ZXN0X3BhdGhzID0g
dGVzdF9wYXRocwogICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUKICAgICAgICAgc2VsZi5jb25m
aWdfY3R4ID0gTm9uZQogICAgICAgICBzZWxmLmNvbmZpZyA9IE5vbmUKKyAgICAgICAgc2VsZi5z
ZXJ2ZXJfbG9nZ2VyID0gZ2V0X3NlcnZlcl9sb2dnZXIoKQorICAgICAgICBzZWxmLnNlcnZlcl9s
b2dnaW5nX2N0eCA9IFByb3h5TG9nZ2luZ0NvbnRleHQoc2VsZi5zZXJ2ZXJfbG9nZ2VyKQogICAg
ICAgICBzZWxmLnRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyID0gdGVzdGhhcm5lc3NfdGlt
ZW91dF9tdWx0aXBsZXIKICAgICAgICAgc2VsZi5wYXVzZV9hZnRlcl90ZXN0ID0gcGF1c2VfYWZ0
ZXJfdGVzdAorICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1Z190ZXN0CiAgICAgICAgIHNl
bGYudGVzdF9zZXJ2ZXJfcG9ydCA9IG9wdGlvbnMucG9wKCJ0ZXN0X3NlcnZlcl9wb3J0IiwgVHJ1
ZSkKICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0gZGVidWdfaW5mbwogICAgICAgICBzZWxmLm9w
dGlvbnMgPSBvcHRpb25zIGlmIG9wdGlvbnMgaXMgbm90IE5vbmUgZWxzZSB7fQogCi0gICAgICAg
IHNlbGYuY2FjaGVfbWFuYWdlciA9IG11bHRpcHJvY2Vzc2luZy5NYW5hZ2VyKCkKLSAgICAgICAg
c2VsZi5zdGFzaCA9IHNlcnZlLnN0YXNoLlN0YXNoU2VydmVyKCkKKyAgICAgICAgbXBfY29udGV4
dCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHNlbGYuY2FjaGVfbWFuYWdlciA9
IG1wX2NvbnRleHQuTWFuYWdlcigpCisgICAgICAgIHNlbGYuc3Rhc2ggPSBzZXJ2ZS5zdGFzaC5T
dGFzaFNlcnZlcihtcF9jb250ZXh0PW1wX2NvbnRleHQpCiAgICAgICAgIHNlbGYuZW52X2V4dHJh
cyA9IGVudl9leHRyYXMKICAgICAgICAgc2VsZi5lbnZfZXh0cmFzX2NtcyA9IE5vbmUKICAgICAg
ICAgc2VsZi5zc2xfY29uZmlnID0gc3NsX2NvbmZpZwpAQCAtNzUsNiArMTA4LDcgQEAgY2xhc3Mg
VGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgIHNlbGYubW9qb2pzX3BhdGggPSBtb2pv
anNfcGF0aAogCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VydmVyX2xvZ19o
YW5kbGVyID0gc2VsZi5zZXJ2ZXJfbG9nZ2luZ19jdHguX19lbnRlcl9fKCkKICAgICAgICAgc2Vs
Zi5jb25maWdfY3R4ID0gc2VsZi5idWlsZF9jb25maWcoKQogCiAgICAgICAgIHNlbGYuY29uZmln
ID0gc2VsZi5jb25maWdfY3R4Ll9fZW50ZXJfXygpCkBAIC04Miw4ICsxMTYsNiBAQCBjbGFzcyBU
ZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgc2VsZi5zdGFzaC5fX2VudGVyX18oKQog
ICAgICAgICBzZWxmLmNhY2hlX21hbmFnZXIuX19lbnRlcl9fKCkKIAotICAgICAgICBzZWxmLnNl
dHVwX3NlcnZlcl9sb2dnaW5nKCkKLQogICAgICAgICBhc3NlcnQgc2VsZi5lbnZfZXh0cmFzX2Nt
cyBpcyBOb25lLCAoCiAgICAgICAgICAgICAiQSBUZXN0RW52aXJvbm1lbnQgb2JqZWN0IGNhbm5v
dCBiZSBuZXN0ZWQiKQogCkBAIC05NCw4ICsxMjYsMTEgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50
KG9iamVjdCk6CiAgICAgICAgICAgICBjbS5fX2VudGVyX18oKQogICAgICAgICAgICAgc2VsZi5l
bnZfZXh0cmFzX2Ntcy5hcHBlbmQoY20pCiAKLSAgICAgICAgc2VsZi5zZXJ2ZXJzID0gc2VydmUu
c3RhcnQoc2VsZi5jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuZ2V0X3JvdXRlcygpKQorICAgICAgICBzZWxmLnNlcnZlcnMgPSBzZXJ2ZS5zdGFydChzZWxm
LnNlcnZlcl9sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9yb3V0
ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBfY29udGV4dD1tcGNv
bnRleHQuZ2V0X2NvbnRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9nX2hhbmRsZXJzPVtzZXJ2ZXJfbG9nX2hhbmRsZXJdKQogCiAgICAgICAgIGlmIHNlbGYub3B0
aW9ucy5nZXQoInN1cHBvcnRzX2RlYnVnZ2VyIikgYW5kIHNlbGYuZGVidWdfaW5mbyBhbmQgc2Vs
Zi5kZWJ1Z19pbmZvLmludGVyYWN0aXZlOgogICAgICAgICAgICAgc2VsZi5pZ25vcmVfaW50ZXJy
dXB0cygpCkBAIC0xMDQsOSArMTM5LDkgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6
CiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpOgogICAg
ICAgICBzZWxmLnByb2Nlc3NfaW50ZXJydXB0cygpCiAKLSAgICAgICAgZm9yIHNjaGVtZSwgc2Vy
dmVycyBpbiBpdGVyaXRlbXMoc2VsZi5zZXJ2ZXJzKToKKyAgICAgICAgZm9yIHNjaGVtZSwgc2Vy
dmVycyBpbiBzZWxmLnNlcnZlcnMuaXRlbXMoKToKICAgICAgICAgICAgIGZvciBwb3J0LCBzZXJ2
ZXIgaW4gc2VydmVyczoKLSAgICAgICAgICAgICAgICBzZXJ2ZXIua2lsbCgpCisgICAgICAgICAg
ICAgICAgc2VydmVyLnN0b3AoKQogICAgICAgICBmb3IgY20gaW4gc2VsZi5lbnZfZXh0cmFzX2Nt
czoKICAgICAgICAgICAgIGNtLl9fZXhpdF9fKGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpCiAK
QEAgLTExNSw2ICsxNTAsNyBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAg
ICAgc2VsZi5jYWNoZV9tYW5hZ2VyLl9fZXhpdF9fKGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIp
CiAgICAgICAgIHNlbGYuc3Rhc2guX19leGl0X18oKQogICAgICAgICBzZWxmLmNvbmZpZ19jdHgu
X19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikKKyAgICAgICAgc2VsZi5zZXJ2ZXJf
bG9nZ2luZ19jdHguX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikKIAogICAgIGRl
ZiBpZ25vcmVfaW50ZXJydXB0cyhzZWxmKToKICAgICAgICAgc2lnbmFsLnNpZ25hbChzaWduYWwu
U0lHSU5ULCBzaWduYWwuU0lHX0lHTikKQEAgLTEyNSwxMSArMTYxLDE1IEBAIGNsYXNzIFRlc3RF
bnZpcm9ubWVudChvYmplY3QpOgogICAgIGRlZiBidWlsZF9jb25maWcoc2VsZik6CiAgICAgICAg
IG92ZXJyaWRlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VydmVfcGF0aChzZWxmLnRlc3RfcGF0aHMp
LCAiY29uZmlnLmpzb24iKQogCi0gICAgICAgIGNvbmZpZyA9IHNlcnZlLkNvbmZpZ0J1aWxkZXIo
KQorICAgICAgICBjb25maWcgPSBzZXJ2ZS5Db25maWdCdWlsZGVyKHNlbGYuc2VydmVyX2xvZ2dl
cikKIAogICAgICAgICBwb3J0cyA9IHsKICAgICAgICAgICAgICJodHRwIjogWzgwMDAsIDgwMDFd
LAorICAgICAgICAgICAgImh0dHAtcHJpdmF0ZSI6IFs4MDAyXSwKKyAgICAgICAgICAgICJodHRw
LXB1YmxpYyI6IFs4MDAzXSwKICAgICAgICAgICAgICJodHRwcyI6IFs4NDQzLCA4NDQ0XSwKKyAg
ICAgICAgICAgICJodHRwcy1wcml2YXRlIjogWzg0NDVdLAorICAgICAgICAgICAgImh0dHBzLXB1
YmxpYyI6IFs4NDQ2XSwKICAgICAgICAgICAgICJ3cyI6IFs4ODg4XSwKICAgICAgICAgICAgICJ3
c3MiOiBbODg4OV0sCiAgICAgICAgICAgICAiaDIiOiBbOTAwMF0sCkBAIC0xNjAsMjQgKzIwMCw2
IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBjb25m
aWcKIAotICAgIGRlZiBzZXR1cF9zZXJ2ZXJfbG9nZ2luZyhzZWxmKToKLSAgICAgICAgc2VydmVy
X2xvZ2dlciA9IGdldF9kZWZhdWx0X2xvZ2dlcihjb21wb25lbnQ9IndwdHNlcnZlIikKLSAgICAg
ICAgYXNzZXJ0IHNlcnZlcl9sb2dnZXIgaXMgbm90IE5vbmUKLSAgICAgICAgbG9nX2ZpbHRlciA9
IGhhbmRsZXJzLkxvZ0xldmVsRmlsdGVyKGxhbWJkYSB4OiB4LCAiaW5mbyIpCi0gICAgICAgICMg
RG93bmdyYWRlIGVycm9ycyB0byB3YXJuaW5ncyBmb3IgdGhlIHNlcnZlcgotICAgICAgICBsb2df
ZmlsdGVyID0gTG9nTGV2ZWxSZXdyaXRlcihsb2dfZmlsdGVyLCBbImVycm9yIl0sICJ3YXJuaW5n
IikKLSAgICAgICAgc2VydmVyX2xvZ2dlci5jb21wb25lbnRfZmlsdGVyID0gbG9nX2ZpbHRlcgot
Ci0gICAgICAgIHNlcnZlcl9sb2dnZXIgPSBwcm94eS5RdWV1ZWRQcm94eUxvZ2dlcihzZXJ2ZXJf
bG9nZ2VyKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgU2V0IGFzIHRoZSBkZWZhdWx0
IGxvZ2dlciBmb3Igd3B0c2VydmUKLSAgICAgICAgICAgIHNlcnZlLnNldF9sb2dnZXIoc2VydmVy
X2xvZ2dlcikKLSAgICAgICAgICAgIHNlcnZlLmxvZ2dlciA9IHNlcnZlcl9sb2dnZXIKLSAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICMgVGhpcyBoYXBwZW5zIGlmIGxvZ2dp
bmcgaGFzIGFscmVhZHkgYmVlbiBzZXQgdXAgZm9yIHdwdHNlcnZlCi0gICAgICAgICAgICBwYXNz
Ci0KICAgICBkZWYgZ2V0X3JvdXRlcyhzZWxmKToKICAgICAgICAgcm91dGVfYnVpbGRlciA9IHNl
cnZlLlJvdXRlc0J1aWxkZXIoKQogCkBAIC0xOTEsNyArMjEzLDggQEAgY2xhc3MgVGVzdEVudmly
b25tZW50KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgKHNlbGYub3B0aW9ucy5nZXQoInRlc3Ro
YXJuZXNzcmVwb3J0IiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIiksCiAgICAgICAgICAgICAgICAg
IHsib3V0cHV0Ijogc2VsZi5wYXVzZV9hZnRlcl90ZXN0LAogICAgICAgICAgICAgICAgICAgInRp
bWVvdXRfbXVsdGlwbGllciI6IHNlbGYudGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIsCi0g
ICAgICAgICAgICAgICAgICAiZXhwbGljaXRfdGltZW91dCI6ICJ0cnVlIiBpZiBzZWxmLmRlYnVn
X2luZm8gaXMgbm90IE5vbmUgZWxzZSAiZmFsc2UifSwKKyAgICAgICAgICAgICAgICAgICJleHBs
aWNpdF90aW1lb3V0IjogInRydWUiIGlmIHNlbGYuZGVidWdfaW5mbyBpcyBub3QgTm9uZSBlbHNl
ICJmYWxzZSIsCisgICAgICAgICAgICAgICAgICAiZGVidWciOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1
Z190ZXN0IGVsc2UgImZhbHNlIn0sCiAgICAgICAgICAgICAgICAgICJ0ZXh0L2phdmFzY3JpcHQ7
Y2hhcnNldD11dGY4IiwKICAgICAgICAgICAgICAgICAgIi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiKV06CiAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRo
LmpvaW4oaGVyZSwgcGF0aCkpCkBAIC0yMDksNyArMjMyLDcgQEAgY2xhc3MgVGVzdEVudmlyb25t
ZW50KG9iamVjdCk6CiAgICAgICAgIHJvdXRlX2J1aWxkZXIuYWRkX2hhbmRsZXIoIkdFVCIsICIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN0cmluZ0hhbmRsZXIoZGF0YSwgInRleHQvamF2YXNjcmlwdCIpKQogCi0gICAgICAgIGZv
ciB1cmxfYmFzZSwgcGF0aHMgaW4gaXRlcml0ZW1zKHNlbGYudGVzdF9wYXRocyk6CisgICAgICAg
IGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gc2VsZi50ZXN0X3BhdGhzLml0ZW1zKCk6CiAgICAgICAg
ICAgICBpZiB1cmxfYmFzZSA9PSAiLyI6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAg
ICAgICAgIHJvdXRlX2J1aWxkZXIuYWRkX21vdW50X3BvaW50KHVybF9iYXNlLCBwYXRoc1sidGVz
dHNfcGF0aCJdKQpAQCAtMjQxLDEzICsyNjQsMTMgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9i
amVjdCk6CiAgICAgICAgIGZhaWxlZCA9IFtdCiAgICAgICAgIHBlbmRpbmcgPSBbXQogICAgICAg
ICBob3N0ID0gc2VsZi5jb25maWdbInNlcnZlcl9ob3N0Il0KLSAgICAgICAgZm9yIHNjaGVtZSwg
c2VydmVycyBpbiBpdGVyaXRlbXMoc2VsZi5zZXJ2ZXJzKToKKyAgICAgICAgZm9yIHNjaGVtZSwg
c2VydmVycyBpbiBzZWxmLnNlcnZlcnMuaXRlbXMoKToKICAgICAgICAgICAgIGZvciBwb3J0LCBz
ZXJ2ZXIgaW4gc2VydmVyczoKICAgICAgICAgICAgICAgICBpZiBub3Qgc2VydmVyLmlzX2FsaXZl
KCk6CiAgICAgICAgICAgICAgICAgICAgIGZhaWxlZC5hcHBlbmQoKHNjaGVtZSwgcG9ydCkpCiAK
ICAgICAgICAgaWYgbm90IGZhaWxlZCBhbmQgc2VsZi50ZXN0X3NlcnZlcl9wb3J0OgotICAgICAg
ICAgICAgZm9yIHNjaGVtZSwgc2VydmVycyBpbiBpdGVyaXRlbXMoc2VsZi5zZXJ2ZXJzKToKKyAg
ICAgICAgICAgIGZvciBzY2hlbWUsIHNlcnZlcnMgaW4gc2VsZi5zZXJ2ZXJzLml0ZW1zKCk6CiAg
ICAgICAgICAgICAgICAgIyBUT0RPKEhleGNsZXMpOiBGaW5kIGEgd2F5IHRvIHRlc3QgUVVJQydz
IFVEUCBwb3J0LgogICAgICAgICAgICAgICAgIGlmIHNjaGVtZSA9PSAicXVpYy10cmFuc3BvcnQi
OgogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtMjU2LDcgKzI3OSw3IEBAIGNsYXNz
IFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBzLnNldHRpbWVv
dXQoMC4xKQogICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBzLmNvbm5lY3QoKGhvc3QsIHBvcnQpKQotICAgICAgICAgICAgICAgICAgICBleGNlcHQgc29j
a2V0LmVycm9yOgorICAgICAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAg
ICAgICAgICAgICAgICAgIHBlbmRpbmcuYXBwZW5kKChob3N0LCBwb3J0KSkKICAgICAgICAgICAg
ICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICAgICAgICAgIHMuY2xvc2UoKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2FjdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weQppbmRleCBiMTFk
MzBiYjk0YWEuLjk2M2VkMzM3ZmRlNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2FjdGlvbnMucHkKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2FjdGlvbnMucHkKQEAgLTEzLDYgKzEzLDE4IEBAIGNsYXNzIENsaWNrQWN0aW9u
KG9iamVjdCk6CiAgICAgICAgIHNlbGYucHJvdG9jb2wuY2xpY2suZWxlbWVudChlbGVtZW50KQog
CiAKK2NsYXNzIERlbGV0ZUFsbENvb2tpZXNBY3Rpb24ob2JqZWN0KToKKyAgICBuYW1lID0gImRl
bGV0ZV9hbGxfY29va2llcyIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3Rv
Y29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2Nv
bCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJEZWxldGluZyBhbGwgY29va2llcyIpCisgICAgICAgIHNlbGYu
cHJvdG9jb2wuY29va2llcy5kZWxldGVfYWxsX2Nvb2tpZXMoKQorCisKIGNsYXNzIFNlbmRLZXlz
QWN0aW9uKG9iamVjdCk6CiAgICAgbmFtZSA9ICJzZW5kX2tleXMiCiAKQEAgLTE3MSw2ICsxODMs
NyBAQCBjbGFzcyBTZXRVc2VyVmVyaWZpZWRBY3Rpb24ob2JqZWN0KToKIAogCiBhY3Rpb25zID0g
W0NsaWNrQWN0aW9uLAorICAgICAgICAgICBEZWxldGVBbGxDb29raWVzQWN0aW9uLAogICAgICAg
ICAgICBTZW5kS2V5c0FjdGlvbiwKICAgICAgICAgICAgQWN0aW9uU2VxdWVuY2VBY3Rpb24sCiAg
ICAgICAgICAgIEdlbmVyYXRlVGVzdFJlcG9ydEFjdGlvbiwKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9i
YXNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKaW5kZXggNGMzODkxYzFjYjY3Li5hODhhYjgyZTc4ZDMg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5CkBAIC04LDI5
ICs4LDMwIEBAIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBzb2NrZXQKIGltcG9ydCBzeXMKIGZy
b20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAotZnJvbSBzaXggaW1wb3J0IHRl
eHRfdHlwZQotZnJvbSBzaXgubW92ZXMuaHR0cF9jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9u
Ci1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHNwbGl0LCB1
cmx1bnNwbGl0Citmcm9tIGh0dHAuY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgorZnJvbSB0
eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIENsYXNzVmFyLCBPcHRpb25hbCwgVHVwbGUsIFR5
cGUsIFRZUEVfQ0hFQ0tJTkcKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxz
cGxpdCwgdXJsdW5zcGxpdAogCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogZnJvbSAu
YWN0aW9ucyBpbXBvcnQgYWN0aW9ucwogZnJvbSAucHJvdG9jb2wgaW1wb3J0IFByb3RvY29sLCBC
YXNlUHJvdG9jb2xQYXJ0CiAKK2lmIFRZUEVfQ0hFQ0tJTkc6CisgICAgZnJvbSAuLndlYmRyaXZl
cl9zZXJ2ZXIgaW1wb3J0IFdlYkRyaXZlclNlcnZlcgorCiBoZXJlID0gb3MucGF0aC5kaXJuYW1l
KF9fZmlsZV9fKQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29u
ZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAotICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncyk6CitkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVu
dCwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgogICAgIHRpbWVvdXRfbXVsdGlwbGllciA9IGt3
YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0KICAgICBpZiB0aW1lb3V0X211bHRpcGxpZXIgaXMg
Tm9uZToKICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyID0gMQogCi0gICAgZXhlY3V0b3Jfa3dh
cmdzID0geyJzZXJ2ZXJfY29uZmlnIjogc2VydmVyX2NvbmZpZywKKyAgICBleGVjdXRvcl9rd2Fy
Z3MgPSB7InNlcnZlcl9jb25maWciOiB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZywKICAgICAgICAg
ICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IHRpbWVvdXRfbXVsdGlwbGllciwK
ICAgICAgICAgICAgICAgICAgICAgICAgImRlYnVnX2luZm8iOiBrd2FyZ3NbImRlYnVnX2luZm8i
XX0KIAogICAgIGlmIHRlc3RfdHlwZSBpbiAoInJlZnRlc3QiLCAicHJpbnQtcmVmdGVzdCIpOgot
ICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInNjcmVlbnNob3RfY2FjaGUiXSA9IGNhY2hlX21hbmFn
ZXIuZGljdCgpCisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sic2NyZWVuc2hvdF9jYWNoZSJdID0g
dGVzdF9lbnZpcm9ubWVudC5jYWNoZV9tYW5hZ2VyLmRpY3QoKQogCiAgICAgaWYgdGVzdF90eXBl
ID09ICJ3ZHNwZWMiOgogICAgICAgICBleGVjdXRvcl9rd2FyZ3NbImJpbmFyeSJdID0ga3dhcmdz
LmdldCgiYmluYXJ5IikKQEAgLTQyLDcgKzQzLDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAg
IyB3YW50IHRvIHZpZXcgdGhlIHJlc3VsdHMsIGhvd2V2ZXIsIHRoZSBleGVjdXRvciBoYXMgdG8g
c2tpcCB0aGF0IGNsZWFudXAuCiAgICAgaWYga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gb3Ig
a3dhcmdzWyJwYXVzZV9vbl91bmV4cGVjdGVkIl06CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1si
Y2xlYW51cF9hZnRlcl90ZXN0Il0gPSBGYWxzZQotCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJkZWJ1
Z190ZXN0Il0gPSBrd2FyZ3NbImRlYnVnX3Rlc3QiXQogICAgIHJldHVybiBleGVjdXRvcl9rd2Fy
Z3MKIAogCkBAIC0xODAsMTEgKzE4MSwxMSBAQCBjbGFzcyBUaW1lZFJ1bm5lcihvYmplY3QpOgog
ICAgICAgICBzZWxmLnJlc3VsdF9mbGFnID0gdGhyZWFkaW5nLkV2ZW50KCkKIAogICAgIGRlZiBy
dW4oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuc2V0X3RpbWVvdXQoKSBpcyBTdG9wOgotICAgICAg
ICAgICAgcmV0dXJuIFN0b3AKLQotICAgICAgICBpZiBzZWxmLmJlZm9yZV9ydW4oKSBpcyBTdG9w
OgotICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAgICAgZm9yIHNldHVwX2ZuIGluIFtzZWxm
LnNldF90aW1lb3V0LCBzZWxmLmJlZm9yZV9ydW5dOgorICAgICAgICAgICAgZXJyID0gc2V0dXBf
Zm4oKQorICAgICAgICAgICAgaWYgZXJyOgorICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0g
KEZhbHNlLCBlcnIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CiAKICAgICAg
ICAgZXhlY3V0b3IgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLnJ1bl9mdW5jKQogICAg
ICAgICBleGVjdXRvci5zdGFydCgpCkBAIC0yNDMsOCArMjQ0LDE0IEBAIGNsYXNzIFRlc3RFeGVj
dXRvcihvYmplY3QpOgogICAgICIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCiAKLSAg
ICB0ZXN0X3R5cGUgPSBOb25lCi0gICAgY29udmVydF9yZXN1bHQgPSBOb25lCisgICAgdGVzdF90
eXBlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltzdHJdCisgICAgIyBjb252ZXJ0X3Jlc3VsdCBp
cyBhIGNsYXNzIHZhcmlhYmxlIHNldCB0byBhIGNhbGxhYmxlIGNvbnZlcnRlcgorICAgICMgKGUu
Zy4gcmVmdGVzdF9yZXN1bHRfY29udmVydGVyKSBjb252ZXJ0aW5nIGZyb20gYW4gaW5zdGFuY2Ug
b2YKKyAgICAjIFVSTE1hbmlmZXN0SXRlbSAoZS5nLiBSZWZUZXN0KSArIHR5cGUtZGVwZW5kZW50
IHJlc3VsdHMgb2JqZWN0ICsKKyAgICAjIHR5cGUtZGVwZW5kZW50IGV4dHJhIGRhdGEsIHJldHVy
bmluZyBhIHR1cGxlIG9mIFJlc3VsdCBhbmQgbGlzdCBvZgorICAgICMgU3VidGVzdFJlc3VsdC4g
Rm9yIG5vdywgYW55IGNhbGxhYmxlIGlzIGFjY2VwdGVkLiBUT0RPOiBNYWtlIHRoaXMgdHlwZQor
ICAgICMgc3RyaWN0ZXIgd2hlbiBtb3JlIG9mIHRoZSBzdXJyb3VuZGluZyBjb2RlIGlzIGFubm90
YXRlZC4KKyAgICBjb252ZXJ0X3Jlc3VsdCA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbQ2FsbGFi
bGVbLi4uLCBBbnldXQogICAgIHN1cHBvcnRzX3Rlc3Rkcml2ZXIgPSBGYWxzZQogICAgIHN1cHBv
cnRzX2pzc2hlbGwgPSBGYWxzZQogICAgICMgRXh0cmEgdGltZW91dCB0byB1c2UgYWZ0ZXIgaW50
ZXJuYWwgdGVzdCB0aW1lb3V0IGF0IHdoaWNoIHRoZSBoYXJuZXNzCkBAIC0yODcsMTggKzI5NCwx
NSBAQCBjbGFzcyBUZXN0RXhlY3V0b3Iob2JqZWN0KToKICAgICAgICAgIiIiUnVuIGEgcGFydGlj
dWxhciB0ZXN0LgogCiAgICAgICAgIDpwYXJhbSB0ZXN0OiBUaGUgdGVzdCB0byBydW4iIiIKLSAg
ICAgICAgaWYgdGVzdC5lbnZpcm9ubWVudCAhPSBzZWxmLmxhc3RfZW52aXJvbm1lbnQ6Ci0gICAg
ICAgICAgICBzZWxmLm9uX2Vudmlyb25tZW50X2NoYW5nZSh0ZXN0LmVudmlyb25tZW50KQogICAg
ICAgICB0cnk6CisgICAgICAgICAgICBpZiB0ZXN0LmVudmlyb25tZW50ICE9IHNlbGYubGFzdF9l
bnZpcm9ubWVudDoKKyAgICAgICAgICAgICAgICBzZWxmLm9uX2Vudmlyb25tZW50X2NoYW5nZSh0
ZXN0LmVudmlyb25tZW50KQogICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5kb190ZXN0KHRlc3Qp
CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIGV4Y2VwdGlvbl9z
dHJpbmcgPSB0cmFjZWJhY2suZm9ybWF0X2V4YygpCiAgICAgICAgICAgICBzZWxmLmxvZ2dlci53
YXJuaW5nKGV4Y2VwdGlvbl9zdHJpbmcpCiAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnJlc3Vs
dF9mcm9tX2V4Y2VwdGlvbih0ZXN0LCBlLCBleGNlcHRpb25fc3RyaW5nKQogCi0gICAgICAgIGlm
IHJlc3VsdCBpcyBTdG9wOgotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotCiAgICAgICAgICMg
bG9nIHJlc3VsdCBvZiBwYXJlbnQgdGVzdAogICAgICAgICBpZiByZXN1bHRbMF0uc3RhdHVzID09
ICJFUlJPUiI6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZyhyZXN1bHRbMF0ubWVzc2Fn
ZSkKQEAgLTMwNywxNCArMzExLDE4IEBAIGNsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgogCiAg
ICAgICAgIHNlbGYucnVubmVyLnNlbmRfbWVzc2FnZSgidGVzdF9lbmRlZCIsIHRlc3QsIHJlc3Vs
dCkKIAotICAgIGRlZiBzZXJ2ZXJfdXJsKHNlbGYsIHByb3RvY29sKToKKyAgICBkZWYgc2VydmVy
X3VybChzZWxmLCBwcm90b2NvbCwgc3ViZG9tYWluPUZhbHNlKToKICAgICAgICAgc2NoZW1lID0g
Imh0dHBzIiBpZiBwcm90b2NvbCA9PSAiaDIiIGVsc2UgcHJvdG9jb2wKLSAgICAgICAgcmV0dXJu
ICIlczovLyVzOiVzIiAlIChzY2hlbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5zZXJ2ZXJfY29uZmlnWyJicm93c2VyX2hvc3QiXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnNlcnZlcl9jb25maWdbInBvcnRzIl1bcHJvdG9jb2xdWzBdKQorICAg
ICAgICBob3N0ID0gc2VsZi5zZXJ2ZXJfY29uZmlnWyJicm93c2VyX2hvc3QiXQorICAgICAgICBp
ZiBzdWJkb21haW46CisgICAgICAgICAgICAjIFRoZSBvbmx5IHN1cHBvcnRlZCBzdWJkb21haW4g
ZmlsZW5hbWUgZmxhZyBpcyAid3d3Ii4KKyAgICAgICAgICAgIGhvc3QgPSAie3N1YmRvbWFpbn0u
e2hvc3R9Ii5mb3JtYXQoc3ViZG9tYWluPSJ3d3ciLCBob3N0PWhvc3QpCisgICAgICAgIHJldHVy
biAie3NjaGVtZX06Ly97aG9zdH06e3BvcnR9Ii5mb3JtYXQoc2NoZW1lPXNjaGVtZSwgaG9zdD1o
b3N0LAorICAgICAgICAgICAgcG9ydD1zZWxmLnNlcnZlcl9jb25maWdbInBvcnRzIl1bcHJvdG9j
b2xdWzBdKQogCiAgICAgZGVmIHRlc3RfdXJsKHNlbGYsIHRlc3QpOgotICAgICAgICByZXR1cm4g
dXJsam9pbihzZWxmLnNlcnZlcl91cmwodGVzdC5lbnZpcm9ubWVudFsicHJvdG9jb2wiXSksIHRl
c3QudXJsKQorICAgICAgICByZXR1cm4gdXJsam9pbihzZWxmLnNlcnZlcl91cmwodGVzdC5lbnZp
cm9ubWVudFsicHJvdG9jb2wiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3Quc3ViZG9tYWluKSwgdGVzdC51cmwpCiAKICAgICBAYWJzdHJhY3RtZXRob2QKICAg
ICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKQEAgLTMzMiw3ICszNDAsNyBAQCBjbGFzcyBUZXN0
RXhlY3V0b3Iob2JqZWN0KToKICAgICAgICAgICAgIHN0YXR1cyA9IGUuc3RhdHVzCiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICBzdGF0dXMgPSAiSU5URVJOQUwtRVJST1IiCi0gICAgICAgIG1l
c3NhZ2UgPSB0ZXh0X3R5cGUoZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKSkKKyAgICAgICAgbWVz
c2FnZSA9IHN0cihnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQogICAgICAgICBpZiBtZXNzYWdl
OgogICAgICAgICAgICAgbWVzc2FnZSArPSAiXG4iCiAgICAgICAgIG1lc3NhZ2UgKz0gZXhjZXB0
aW9uX3N0cmluZwpAQCAtNDIzLDcgKzQzMSw3IEBAIGNsYXNzIFJlZlRlc3RJbXBsZW1lbnRhdGlv
bihvYmplY3QpOgogCiAgICAgICAgIGlmIGxlbihsaHNfaGFzaGVzKSAhPSBsZW4ocmhzX2hhc2hl
cyk6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJHb3QgZGlmZmVyZW50IG51bWJlciBv
ZiBwYWdlcyIpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHJldHVybiBy
ZWxhdGlvbiA9PSAiIT0iLCBOb25lCiAKICAgICAgICAgYXNzZXJ0IGxlbihsaHNfc2NyZWVuc2hv
dHMpID09IGxlbihsaHNfaGFzaGVzKSA9PSBsZW4ocmhzX3NjcmVlbnNob3RzKSA9PSBsZW4ocmhz
X2hhc2hlcykKIApAQCAtNTkwLDExICs1OTgsMTEgQEAgY2xhc3MgUmVmVGVzdEltcGxlbWVudGF0
aW9uKG9iamVjdCk6CiAKIGNsYXNzIFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CiAgICAg
Y29udmVydF9yZXN1bHQgPSBweXRlc3RfcmVzdWx0X2NvbnZlcnRlcgotICAgIHByb3RvY29sX2Ns
cyA9IE5vbmUKKyAgICBwcm90b2NvbF9jbHMgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW1R5cGVb
UHJvdG9jb2xdXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2Vy
dmVyX2NvbmZpZywgd2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAgd2ViZHJpdmVy
X2FyZ3MsIHRpbWVvdXRfbXVsdGlwbGllcj0xLCBjYXBhYmlsaXRpZXM9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGRl
YnVnX2luZm89Tm9uZSwgZW52aXJvbj1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYuZG9f
ZGVsYXllZF9pbXBvcnRzKCkKICAgICAgICAgVGVzdEV4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRpcGxpZXIsCkBAIC02MDMsNyArNjEx
LDEzIEBAIGNsYXNzIFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CiAgICAgICAgIHNlbGYu
d2ViZHJpdmVyX2FyZ3MgPSB3ZWJkcml2ZXJfYXJncwogICAgICAgICBzZWxmLnRpbWVvdXRfbXVs
dGlwbGllciA9IHRpbWVvdXRfbXVsdGlwbGllcgogICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9
IGNhcGFiaWxpdGllcwotICAgICAgICBzZWxmLnByb3RvY29sID0gc2VsZi5wcm90b2NvbF9jbHMo
c2VsZiwgYnJvd3NlcikKKyAgICAgICAgc2VsZi5lbnZpcm9uID0gZW52aXJvbiBpZiBlbnZpcm9u
IGlzIG5vdCBOb25lIGVsc2Uge30KKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3Mg
PSBOb25lCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0gTm9uZQor
CisgICAgZGVmIHNldHVwKHNlbGYsIHJ1bm5lcik6CisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBz
ZWxmLnByb3RvY29sX2NscyhzZWxmLCBzZWxmLmJyb3dzZXIpCisgICAgICAgIHN1cGVyKCkuc2V0
dXAocnVubmVyKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5wcm90b2NvbC5pc19hbGl2ZSgpCkBAIC03MDYsNyArNzIwLDcgQEAgY2xhc3MgQ29ubmVjdGlv
bmxlc3NQcm90b2NvbChQcm90b2NvbCk6CiAKIAogY2xhc3MgV2RzcGVjUHJvdG9jb2woUHJvdG9j
b2wpOgotICAgIHNlcnZlcl9jbHMgPSBOb25lCisgICAgc2VydmVyX2NscyA9IE5vbmUgICMgdHlw
ZTogQ2xhc3NWYXJbT3B0aW9uYWxbVHlwZVtXZWJEcml2ZXJTZXJ2ZXJdXV0KIAogICAgIGltcGxl
bWVudHMgPSBbQ29ubmVjdGlvbmxlc3NCYXNlUHJvdG9jb2xQYXJ0XQogCkBAIC03MTcsMTQgKzcz
MSwyMSBAQCBjbGFzcyBXZHNwZWNQcm90b2NvbChQcm90b2NvbCk6CiAgICAgICAgIHNlbGYuY2Fw
YWJpbGl0aWVzID0gc2VsZi5leGVjdXRvci5jYXBhYmlsaXRpZXMKICAgICAgICAgc2VsZi5zZXNz
aW9uX2NvbmZpZyA9IE5vbmUKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCisgICAgICAgIHNl
bGYuZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAgIHNlbGYuZW52aXJvbi51cGRh
dGUoZXhlY3V0b3IuZW52aXJvbikKKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3Mg
PSBleGVjdXRvci5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MKKyAgICAgICAgc2VsZi5vdXRwdXRfaGFu
ZGxlcl9zdGFydF9rd2FyZ3MgPSBleGVjdXRvci5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MK
IAogICAgIGRlZiBjb25uZWN0KHNlbGYpOgogICAgICAgICAiIiJDb25uZWN0IHRvIGJyb3dzZXIg
dmlhIHRoZSBIVFRQIHNlcnZlci4iIiIKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBzZWxmLnNlcnZl
cl9jbHMoCiAgICAgICAgICAgICBzZWxmLmxvZ2dlciwKICAgICAgICAgICAgIGJpbmFyeT1zZWxm
LndlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICBhcmdzPXNlbGYud2ViZHJpdmVyX2FyZ3Mp
Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQorICAgICAgICAgICAgYXJn
cz1zZWxmLndlYmRyaXZlcl9hcmdzLAorICAgICAgICAgICAgZW52PXNlbGYuZW52aXJvbikKKyAg
ICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dF9oYW5kbGVyX2t3YXJncz1zZWxmLm91dHB1dF9oYW5kbGVyX2t3YXJncywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzPXNl
bGYub3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzKQogICAgICAgICBzZWxmLmxvZ2dlci5pbmZv
KAogICAgICAgICAgICAgIldlYkRyaXZlciBIVFRQIHNlcnZlciBsaXN0ZW5pbmcgYXQgJXMiICUg
c2VsZi5zZXJ2ZXIudXJsKQogICAgICAgICBzZWxmLnNlc3Npb25fY29uZmlnID0geyJob3N0Ijog
c2VsZi5zZXJ2ZXIuaG9zdCwKQEAgLTc2Miw3ICs3ODMsNyBAQCBjbGFzcyBDYWxsYmFja0hhbmRs
ZXIob2JqZWN0KToKICAgICBXZWJEcml2ZXIuIFRoaW5ncyB0aGF0IGFyZSBtb3JlIGRpZmZlcmVu
dCB0byBXZWJEcml2ZXIgbWF5IG5lZWQgdG8gY3JlYXRlIGEKICAgICBmdWxseSBjdXN0b20gaW1w
bGVtZW50YXRpb24uIiIiCiAKLSAgICB1bmltcGxlbWVudGVkX2V4YyA9IChOb3RJbXBsZW1lbnRl
ZEVycm9yLCkKKyAgICB1bmltcGxlbWVudGVkX2V4YyA9IChOb3RJbXBsZW1lbnRlZEVycm9yLCkg
ICMgdHlwZTogQ2xhc3NWYXJbVHVwbGVbVHlwZVtFeGNlcHRpb25dLCAuLi5dXQogCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wsIHRlc3Rfd2luZG93KToKICAgICAgICAg
c2VsZi5wcm90b2NvbCA9IHByb3RvY29sCkBAIC04MzEsNyArODUyLDcgQEAgY2xhc3MgQWN0aW9u
Q29udGV4dChvYmplY3QpOgogCiAgICAgICAgIHNlbGYuaW5pdGlhbF93aW5kb3cgPSBzZWxmLnBy
b3RvY29sLmJhc2UuY3VycmVudF93aW5kb3cKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN3
aXRjaGluZyB0byB3aW5kb3cgJXMiICUgc2VsZi5jb250ZXh0KQotICAgICAgICBzZWxmLnByb3Rv
Y29sLnRlc3Rkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhzZWxmLmNvbnRleHQpCisgICAgICAgIHNl
bGYucHJvdG9jb2wudGVzdGRyaXZlci5zd2l0Y2hfdG9fd2luZG93KHNlbGYuY29udGV4dCwgc2Vs
Zi5pbml0aWFsX3dpbmRvdykKIAogICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6CiAgICAg
ICAgIGlmIHNlbGYuY29udGV4dCBpcyBOb25lOgpAQCAtODM5LDUgKzg2MCw0IEBAIGNsYXNzIEFj
dGlvbkNvbnRleHQob2JqZWN0KToKIAogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3dpdGNo
aW5nIGJhY2sgdG8gaW5pdGlhbCB3aW5kb3ciKQogICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uu
c2V0X3dpbmRvdyhzZWxmLmluaXRpYWxfd2luZG93KQotICAgICAgICBzZWxmLnByb3RvY29sLnRl
c3Rkcml2ZXIuX3N3aXRjaF90b19mcmFtZShOb25lKQogICAgICAgICBzZWxmLmluaXRpYWxfd2lu
ZG93ID0gTm9uZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yY2hyb21lLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9yY2hyb21lLnB5CmluZGV4IDNhNzA0NzU0MTM3Zi4uNDMxZDM5OGViZDI3IDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yY2hy
b21lLnB5CkBAIC0xLDcgKzEsNyBAQAogaW1wb3J0IG9zCiBpbXBvcnQgdHJhY2ViYWNrCiAKLWZy
b20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSB1cmxsaWIucGFy
c2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAuYmFzZSBpbXBvcnQgV2RzcGVjUHJvdG9jb2wsIFdk
c3BlY0V4ZWN1dG9yLCBnZXRfcGFnZXMKIGZyb20gLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCBX
ZWJEcml2ZXJQcm90b2NvbCwgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yLCBXZWJEcml2ZXJSdW4K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcmVkZ2VjaHJvbWl1bS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmViYmEwNmE5ZTFhYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2Vj
aHJvbWl1bS5weQpAQCAtMCwwICsxLDEwIEBACitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBv
cnQgRWRnZUNocm9taXVtRHJpdmVyU2VydmVyCitmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNFeGVj
dXRvciwgV2RzcGVjUHJvdG9jb2wKKworCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJQcm90b2Nv
bChXZHNwZWNQcm90b2NvbCk6CisgICAgc2VydmVyX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclNl
cnZlcgorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4
ZWN1dG9yKToKKyAgICBwcm90b2NvbF9jbHMgPSBFZGdlQ2hyb21pdW1Ecml2ZXJQcm90b2NvbApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cm1hcmlvbmV0dGUucHkKaW5kZXggN2UyY2M4ZTM4YTQ0Li4yNWEzMzYwYjdkODAgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFy
aW9uZXR0ZS5weQpAQCAtNSw4ICs1LDcgQEAgaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sK
IGltcG9ydCB1dWlkCiAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJrZXlzCi1mcm9t
IHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KK2Zyb20gdXJsbGliLnBhcnNl
IGltcG9ydCB1cmxqb2luCiAKIGVycm9ycyA9IE5vbmUKIG1hcmlvbmV0dGUgPSBOb25lCkBAIC0z
MywyNyArMzIsMjIgQEAgZnJvbSAucHJvdG9jb2wgaW1wb3J0IChBY3Rpb25TZXF1ZW5jZVByb3Rv
Y29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmFnZVByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgIENsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBDb29r
aWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTZW5kS2V5c1Byb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgVGVzdERyaXZlclByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgQ292ZXJhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgIEdlbmVyYXRlVGVzdFJlcG9ydFByb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgIFNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICAg
ICAgIFByaW50UHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKLWZy
b20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBHZWNrb0RyaXZlclNlcnZlcgorICAgICAgICAg
ICAgICAgICAgICAgICBQcmludFByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
RGVidWdQcm90b2NvbFBhcnQpCiAKIAogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgotICAgIGds
b2JhbCBlcnJvcnMsIG1hcmlvbmV0dGUKKyAgICBnbG9iYWwgZXJyb3JzLCBtYXJpb25ldHRlLCBB
ZGRvbnMKIAotICAgICMgTWFyaW9uZXR0ZSBjbGllbnQgdXNlZCB0byBiZSBjYWxsZWQgbWFyaW9u
ZXR0ZSwgcmVjZW50bHkgaXQgY2hhbmdlZAotICAgICMgdG8gbWFyaW9uZXR0ZV9kcml2ZXIgZm9y
IHVuZmF0aG9tYWJsZSByZWFzb25zCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgbWFyaW9uZXR0
ZQotICAgICAgICBmcm9tIG1hcmlvbmV0dGUgaW1wb3J0IGVycm9ycwotICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICAgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlciBpbXBvcnQgbWFyaW9uZXR0
ZSwgZXJyb3JzCisgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlciBpbXBvcnQgbWFyaW9uZXR0ZSwg
ZXJyb3JzCisgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlci5hZGRvbnMgaW1wb3J0IEFkZG9ucwog
CiAKIGRlZiBfc3dpdGNoX3RvX3dpbmRvdyhtYXJpb25ldHRlLCBoYW5kbGUpOgpAQCAtMTMzLDcg
KzEyNyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVCYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBh
cnQpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGV4Y2VwdCBlcnJvcnMuSmF2
YXNjcmlwdEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVu
IGlmIHdlIG5hdmlnYXRlLCBidXQganVzdCBrZWVwIGdvaW5nCi0gICAgICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIuZGVidWcoZS5tZXNzYWdlKQorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKGUpCiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6
CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNvY2tldCBjbG9zZWQiKQpAQCAt
NDQxLDYgKzQzNSwxNSBAQCBjbGFzcyBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQ
cm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4gZWxlbWVudC5jbGljaygpCiAKIAorY2xhc3Mg
TWFyaW9uZXR0ZUNvb2tpZXNQcm90b2NvbFBhcnQoQ29va2llc1Byb3RvY29sUGFydCk6CisgICAg
ZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5t
YXJpb25ldHRlCisKKyAgICBkZWYgZGVsZXRlX2FsbF9jb29raWVzKHNlbGYpOgorICAgICAgICBz
ZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwgY29va2llcyIpCisgICAgICAgIHJldHVybiBz
ZWxmLm1hcmlvbmV0dGUuZGVsZXRlX2FsbF9jb29raWVzKCkKKworCiBjbGFzcyBNYXJpb25ldHRl
U2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1
cChzZWxmKToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0
ZQpAQCAtNDczLDggKzQ3NiwxMiBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdERyaXZlclByb3RvY29s
UGFydChUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgIG9ialsibWVzc2FnZSJd
ID0gc3RyKG1lc3NhZ2UpCiAgICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQo
IndpbmRvdy5wb3N0TWVzc2FnZSglcywgJyonKSIgJSBqc29uLmR1bXBzKG9iaikpCiAKLSAgICBk
ZWYgX3N3aXRjaF90b19mcmFtZShzZWxmLCBmcmFtZV9udW1iZXIpOgotICAgICAgICBzZWxmLm1h
cmlvbmV0dGUuc3dpdGNoX3RvX2ZyYW1lKGZyYW1lX251bWJlcikKKyAgICBkZWYgX3N3aXRjaF90
b19mcmFtZShzZWxmLCBpbmRleF9vcl9lbGVtKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
c2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b19mcmFtZShpbmRleF9vcl9lbGVtKQorICAgICAgICBl
eGNlcHQgKGVycm9ycy5Ob1N1Y2hGcmFtZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICBlcnJv
cnMuU3RhbGVFbGVtZW50RXhjZXB0aW9uKSBhcyBlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvciBmcm9tIGUKIAogICAgIGRlZiBfc3dpdGNoX3RvX3BhcmVudF9mcmFtZShzZWxmKToKICAg
ICAgICAgc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b19wYXJlbnRfZnJhbWUoKQpAQCAtNDg5LDcg
KzQ5Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVDb3ZlcmFnZVByb3RvY29sUGFydChDb3ZlcmFnZVBy
b3RvY29sUGFydCk6CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICBzY3JpcHQgPSAiIiIK
LSAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5p
bXBvcnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5q
c20iKTsKKyAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVV
dGlscy5pbXBvcnQoImNocm9tZTovL3JlbW90ZS9jb250ZW50L21hcmlvbmV0dGUvUGVyVGVzdENv
dmVyYWdlVXRpbHMuanNtIik7CiAgICAgICAgICAgICByZXR1cm4gUGVyVGVzdENvdmVyYWdlVXRp
bHMuZW5hYmxlZDsKICAgICAgICAgICAgICIiIgogICAgICAgICB3aXRoIHNlbGYubWFyaW9uZXR0
ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSk6CkBAIC00OTks
NyArNTA2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0KENvdmVyYWdl
UHJvdG9jb2xQYXJ0KToKICAgICAgICAgc2NyaXB0ID0gIiIiCiAgICAgICAgICAgICB2YXIgY2Fs
bGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwogCi0gICAgICAgICAgICBj
b25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJjaHJvbWU6
Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7CisgICAgICAg
ICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJj
aHJvbWU6Ly9yZW1vdGUvY29udGVudC9tYXJpb25ldHRlL1BlclRlc3RDb3ZlcmFnZVV0aWxzLmpz
bSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMuYmVmb3JlVGVzdCgpLnRoZW4o
Y2FsbGJhY2ssIGNhbGxiYWNrKTsKICAgICAgICAgICAgICIiIgogICAgICAgICB3aXRoIHNlbGYu
bWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSk6
CkBAIC01MTksNyArNTI2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0
KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgc2NyaXB0ID0gIiIiCiAgICAgICAgICAg
ICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwogCi0gICAg
ICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1wb3J0
KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7
CisgICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMu
aW1wb3J0KCJjaHJvbWU6Ly9yZW1vdGUvY29udGVudC9tYXJpb25ldHRlL1BlclRlc3RDb3ZlcmFn
ZVV0aWxzLmpzbSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMuYWZ0ZXJUZXN0
KCkudGhlbihjYWxsYmFjaywgY2FsbGJhY2spOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdp
dGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRf
Q0hST01FKToKQEAgLTU2MywxMiArNTcwLDIyIEBAIGNsYXNzIE1hcmlvbmV0dGVWaXJ0dWFsQXV0
aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFyCiAg
ICAgZGVmIHNldF91c2VyX3ZlcmlmaWVkKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQsIHV2KToKICAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic2V0X3VzZXJfdmVyaWZpZWQgbm90IHll
dCBpbXBsZW1lbnRlZCIpCiAKKwogY2xhc3MgTWFyaW9uZXR0ZVNldFBlcm1pc3Npb25Qcm90b2Nv
bFBhcnQoU2V0UGVybWlzc2lvblByb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgog
ICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCiAKLSAgICBk
ZWYgc2V0X3Blcm1pc3Npb24oc2VsZiwgbmFtZSwgc3RhdGUsIG9uZV9yZWFsbSk6Ci0gICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInNldF9wZXJtaXNzaW9uIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQiKQorICAgIGRlZiBzZXRfcGVybWlzc2lvbihzZWxmLCBkZXNjcmlwdG9yLCBzdGF0ZSwg
b25lX3JlYWxtKToKKyAgICAgICAgYm9keSA9IHsKKyAgICAgICAgICAgICJkZXNjcmlwdG9yIjog
ZGVzY3JpcHRvciwKKyAgICAgICAgICAgICJzdGF0ZSI6IHN0YXRlLAorICAgICAgICB9CisgICAg
ICAgIGlmIG9uZV9yZWFsbSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHlbIm9uZVJlYWxt
Il0gPSBvbmVfcmVhbG0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRl
Ll9zZW5kX21lc3NhZ2UoIldlYkRyaXZlcjpTZXRQZXJtaXNzaW9uIiwgYm9keSkKKyAgICAgICAg
ZXhjZXB0IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbjoKKyAgICAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInNldF9wZXJtaXNzaW9uIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQiKQogCiAKIGNsYXNzIE1hcmlvbmV0dGVQcmludFByb3RvY29sUGFydChQcmludFByb3Rv
Y29sUGFydCk6CkBAIC02MjEsNiArNjM4LDMwIEBAIHJlbmRlcignJXMnKS50aGVuKHJlc3VsdCA9
PiBjYWxsYmFjayhyZXN1bHQpKSIiIiAlIHBkZl9iYXNlNjQsIG5ld19zYW5kYm94PUZhbHNlCiAg
ICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBfc3dpdGNoX3RvX3dpbmRvdyhzZWxmLm1hcmlv
bmV0dGUsIGhhbmRsZSkKIAorCitjbGFzcyBNYXJpb25ldHRlRGVidWdQcm90b2NvbFBhcnQoRGVi
dWdQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi5tYXJp
b25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIGxvYWRfZGV2dG9vbHMo
c2VsZik6CisgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5t
YXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKKyAgICAgICAgICAgIHNlbGYucGFyZW50LmJhc2Uu
ZXhlY3V0ZV9zY3JpcHQoIiIiCitjb25zdCB7IHJlcXVpcmUgfSA9IENocm9tZVV0aWxzLmltcG9y
dCgicmVzb3VyY2U6Ly9kZXZ0b29scy9zaGFyZWQvTG9hZGVyLmpzbSIpOworY29uc3QgeyBUYXJn
ZXRGYWN0b3J5IH0gPSByZXF1aXJlKCJkZXZ0b29scy9jbGllbnQvZnJhbWV3b3JrL3RhcmdldCIp
OworY29uc3QgeyBnRGV2VG9vbHMgfSA9IHJlcXVpcmUoImRldnRvb2xzL2NsaWVudC9mcmFtZXdv
cmsvZGV2dG9vbHMiKTsKKworY29uc3QgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxl
bmd0aCAtIDFdOworCithc3luYyBmdW5jdGlvbiBsb2FkRGV2VG9vbHMoKSB7CisgICAgY29uc3Qg
dGFyZ2V0ID0gYXdhaXQgVGFyZ2V0RmFjdG9yeS5mb3JUYWIod2luZG93LmdCcm93c2VyLnNlbGVj
dGVkVGFiKTsKKyAgICBhd2FpdCBnRGV2VG9vbHMuc2hvd1Rvb2xib3godGFyZ2V0LCAid2ViY29u
c29sZSIsICJ3aW5kb3ciKTsKK30KKworbG9hZERldlRvb2xzKCkuY2F0Y2goKCkgPT4gZHVtcCgi
RGV2dG9vbHMgZmFpbGVkIHRvIGxvYWQiKSkKKyAgICAgICAgICAgICAgLnRoZW4oY2FsbGJhY2sp
OworIiIiLCBhc3luY2hyb25vdXM9VHJ1ZSkKKworCiBjbGFzcyBNYXJpb25ldHRlUHJvdG9jb2wo
UHJvdG9jb2wpOgogICAgIGltcGxlbWVudHMgPSBbTWFyaW9uZXR0ZUJhc2VQcm90b2NvbFBhcnQs
CiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQsCkBA
IC02MjgsNiArNjY5LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3RvY29sKToKICAg
ICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTdG9yYWdlUHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgTWFyaW9uZXR0ZVNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgTWFyaW9uZXR0ZUNsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9u
ZXR0ZUNvb2tpZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlU2Vu
ZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQWN0aW9uU2Vx
dWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlVGVzdERyaXZl
clByb3RvY29sUGFydCwKQEAgLTYzNiw3ICs2NzgsOCBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9j
b2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUdlbmVyYXRlVGVzdFJl
cG9ydFByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVWaXJ0dWFsQXV0
aGVudGljYXRvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTZXRQ
ZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVByaW50
UHJvdG9jb2xQYXJ0XQorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVByaW50UHJvdG9jb2xQ
YXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZURlYnVnUHJvdG9jb2xQYXJ0XQogCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyLCBjYXBhYmlsaXRpZXM9Tm9u
ZSwgdGltZW91dF9tdWx0aXBsaWVyPTEsIGUxMHM9VHJ1ZSwgY2Nvdj1GYWxzZSk6CiAgICAgICAg
IGRvX2RlbGF5ZWRfaW1wb3J0cygpCkBAIC02ODAsMTEgKzcyMywxMiBAQCBjbGFzcyBNYXJpb25l
dHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAg
IHNlbGYubWFyaW9uZXR0ZS5fcmVxdWVzdF9pbl9hcHBfc2h1dGRvd24oKQogICAgICAgICAgICAg
ICAgIHNlbGYubWFyaW9uZXR0ZS5kZWxldGVfc2Vzc2lvbihzZW5kX3JlcXVlc3Q9RmFsc2UpCisg
ICAgICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmNsZWFudXAoKQogICAgICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdHlwaWNhbGx5IGJlY2F1
c2UgdGhlIHNlc3Npb24gbmV2ZXIgc3RhcnRlZAogICAgICAgICAgICAgICAgIHBhc3MKICAgICAg
ICAgaWYgc2VsZi5tYXJpb25ldHRlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZGVsIHNlbGYu
bWFyaW9uZXR0ZQorICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gTm9uZQogICAgICAgICBz
dXBlcihNYXJpb25ldHRlUHJvdG9jb2wsIHNlbGYpLnRlYXJkb3duKCkKIAogICAgIGRlZiBpc19h
bGl2ZShzZWxmKToKQEAgLTY5NiwyMCArNzQwLDE5IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2Nv
bChQcm90b2NvbCk6CiAKICAgICBkZWYgb25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYsIG9sZF9l
bnZpcm9ubWVudCwgbmV3X2Vudmlyb25tZW50KToKICAgICAgICAgI1Vuc2V0IGFsbCB0aGUgb2xk
IHByZWZzCi0gICAgICAgIGZvciBuYW1lIGluIGl0ZXJrZXlzKG9sZF9lbnZpcm9ubWVudC5nZXQo
InByZWZzIiwge30pKToKKyAgICAgICAgZm9yIG5hbWUgaW4gb2xkX2Vudmlyb25tZW50LmdldCgi
cHJlZnMiLCB7fSkua2V5cygpOgogICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmV4ZWN1dG9yLm9y
aWdpbmFsX3ByZWZfdmFsdWVzW25hbWVdCiAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgog
ICAgICAgICAgICAgICAgIHNlbGYucHJlZnMuY2xlYXIobmFtZSkKICAgICAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICAgICAgc2VsZi5wcmVmcy5zZXQobmFtZSwgdmFsdWUpCiAKLSAgICAgICAg
Zm9yIG5hbWUsIHZhbHVlIGluIGl0ZXJpdGVtcyhuZXdfZW52aXJvbm1lbnQuZ2V0KCJwcmVmcyIs
IHt9KSk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBuZXdfZW52aXJvbm1lbnQuZ2V0KCJw
cmVmcyIsIHt9KS5pdGVtcygpOgogICAgICAgICAgICAgc2VsZi5leGVjdXRvci5vcmlnaW5hbF9w
cmVmX3ZhbHVlc1tuYW1lXSA9IHNlbGYucHJlZnMuZ2V0KG5hbWUpCiAgICAgICAgICAgICBzZWxm
LnByZWZzLnNldChuYW1lLCB2YWx1ZSkKIAogCiBjbGFzcyBFeGVjdXRlQXN5bmNTY3JpcHRSdW4o
VGltZWRSdW5uZXIpOgotCiAgICAgZGVmIHNldF90aW1lb3V0KHNlbGYpOgogICAgICAgICB0aW1l
b3V0ID0gc2VsZi50aW1lb3V0CiAKQEAgLTcyMiw4ICs3NjUsOSBAQCBjbGFzcyBFeGVjdXRlQXN5
bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgogICAgICAgICAgICAgICAgICMgdGltZW91dCBpcyBz
ZXQgdG9vIGhpZ2guIFRoaXMgd29ya3MgYXQgbGVhc3QuCiAgICAgICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC5iYXNlLnNldF90aW1lb3V0KDIqKjI4IC0gMSkKICAgICAgICAgZXhjZXB0IElPRXJy
b3I6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBtYXJpb25ldHRlIGNvbm5l
Y3Rpb24gYmVmb3JlIHN0YXJ0aW5nIHRlc3QiKQotICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAg
ICAgICAgICAgIG1zZyA9ICJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBiZWZvcmUgc3RhcnRp
bmcgdGVzdCIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAg
IHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIGJlZm9yZV9ydW4oc2Vs
Zik6CiAgICAgICAgIGluZGV4ID0gc2VsZi51cmwucmZpbmQoIi9zdG9yYWdlLyIpCkBAIC03NDcs
NyArNzkxLDcgQEAgY2xhc3MgRXhlY3V0ZUFzeW5jU2NyaXB0UnVuKFRpbWVkUnVubmVyKToKICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiBvbiBjb21t
YW5kLCBzZXR0aW5nIHN0YXR1cyB0byBDUkFTSCIpCiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9
IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShlLCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbikg
YW5kIGUubWVzc2FnZS5zdGFydHN3aXRoKCJEb2N1bWVudCB3YXMgdW5sb2FkZWQiKToKKyAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2UoZSwgZXJyb3JzLkphdmFzY3JpcHRFeGNlcHRpb24pIGFuZCBz
dHIoZSkuc3RhcnRzd2l0aCgiRG9jdW1lbnQgd2FzIHVubG9hZGVkIik6CiAgICAgICAgICAgICAg
ICAgbWVzc2FnZSA9ICJEb2N1bWVudCB1bmxvYWRlZDsgbWF5YmUgdGVzdCBuYXZpZ2F0ZWQgdGhl
IHRvcC1sZXZlbC1icm93c2luZyBjb250ZXh0PyIKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICAgICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKQEAgLTc2NSw3ICs4
MDksNyBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4
ZWN1dG9yKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZl
cl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAogICAgICAgICAgICAgICAgICBjbG9zZV9h
ZnRlcl9kb25lPVRydWUsIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsCi0gICAg
ICAgICAgICAgICAgIGRlYnVnPUZhbHNlLCBjY292PUZhbHNlLCAqKmt3YXJncyk6CisgICAgICAg
ICAgICAgICAgIGRlYnVnPUZhbHNlLCBjY292PUZhbHNlLCBkZWJ1Z190ZXN0PUZhbHNlLCAqKmt3
YXJncyk6CiAgICAgICAgICIiIk1hcmlvbmV0dGUtYmFzZWQgZXhlY3V0b3IgZm9yIHRlc3RoYXJu
ZXNzLmpzIHRlc3RzIiIiCiAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IuX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRpcGxpZXIsCkBA
IC03ODEsNiArODI1LDkgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVz
dGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3Nl
X2FmdGVyX2RvbmUKICAgICAgICAgc2VsZi53aW5kb3dfaWQgPSBzdHIodXVpZC51dWlkNCgpKQog
ICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKKyAgICAgICAgc2VsZi5kZWJ1Z190ZXN0ID0gZGVi
dWdfdGVzdAorCisgICAgICAgIHNlbGYuaW5zdGFsbF9leHRlbnNpb25zID0gYnJvd3Nlci5leHRl
bnNpb25zCiAKICAgICAgICAgc2VsZi5vcmlnaW5hbF9wcmVmX3ZhbHVlcyA9IHt9CiAKQEAgLTc4
OSw2ICs4MzYsMTEgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhh
cm5lc3NFeGVjdXRvcik6CiAKICAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKICAgICAgICAg
c3VwZXIoTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsIHNlbGYpLnNldHVwKHJ1bm5lcikK
KyAgICAgICAgZm9yIGV4dGVuc2lvbl9wYXRoIGluIHNlbGYuaW5zdGFsbF9leHRlbnNpb25zOgor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiSW5zdGFsbGluZyBleHRlbnNpb24gZnJvbSAl
cyIgJSBleHRlbnNpb25fcGF0aCkKKyAgICAgICAgICAgIGFkZG9ucyA9IEFkZG9ucyhzZWxmLnBy
b3RvY29sLm1hcmlvbmV0dGUpCisgICAgICAgICAgICBhZGRvbnMuaW5zdGFsbChleHRlbnNpb25f
cGF0aCkKKwogICAgICAgICBzZWxmLnByb3RvY29sLnRlc3RoYXJuZXNzLmxvYWRfcnVubmVyKHNl
bGYubGFzdF9lbnZpcm9ubWVudFsicHJvdG9jb2wiXSkKIAogICAgIGRlZiBpc19hbGl2ZShzZWxm
KToKQEAgLTg0Miw2ICs4OTQsOSBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRv
cihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93
aW5kb3codGVzdF93aW5kb3cpCiAgICAgICAgIHByb3RvY29sLnRlc3RoYXJuZXNzLnRlc3Rfd2lu
ZG93X2xvYWRlZCgpCiAKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190ZXN0OgorICAgICAgICAgICAg
c2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX2RldnRvb2xzKCkKKwogICAgICAgICBoYW5kbGVyID0g
Q2FsbGJhY2tIYW5kbGVyKHNlbGYubG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cpCiAgICAg
ICAgIHByb3RvY29sLm1hcmlvbmV0dGUubmF2aWdhdGUodXJsKQogICAgICAgICB3aGlsZSBUcnVl
OgpAQCAtODY4LDcgKzkyMyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVm
VGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCByZWZ0ZXN0
X2ludGVybmFsPUZhbHNlLAogICAgICAgICAgICAgICAgICByZWZ0ZXN0X3NjcmVlbnNob3Q9InVu
ZXhwZWN0ZWQiLCBjY292PUZhbHNlLAogICAgICAgICAgICAgICAgICBncm91cF9tZXRhZGF0YT1O
b25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwgZGVidWc9RmFsc2UsCi0gICAgICAgICAgICAgICAgIGJy
b3dzZXJfdmVyc2lvbj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGJyb3dzZXJf
dmVyc2lvbj1Ob25lLCBkZWJ1Z190ZXN0PUZhbHNlLCAqKmt3YXJncyk6CiAgICAgICAgICIiIk1h
cmlvbmV0dGUtYmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCiAgICAgICAgIFJlZlRlc3RF
eGVjdXRvci5fX2luaXRfXyhzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9nZ2VyLApAQCAtODkxLDYgKzk0Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0
b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi5vcmlnaW5hbF9wcmVmX3ZhbHVlcyA9
IHt9CiAgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRhdGEgPSBncm91cF9tZXRhZGF0YQogICAgICAg
ICBzZWxmLmRlYnVnID0gZGVidWcKKyAgICAgICAgc2VsZi5kZWJ1Z190ZXN0ID0gZGVidWdfdGVz
dAogCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3QuanMiKSkg
YXMgZjoKICAgICAgICAgICAgIHNlbGYuc2NyaXB0ID0gZi5yZWFkKCkKQEAgLTk1Myw3ICsxMDA5
LDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToK
ICAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IHNlbGYucHJvdG9jb2wuYXNzZXJ0cy5nZXQo
KQogICAgICAgICAgICAgaWYgImV4dHJhIiBub3QgaW4gcmVzdWx0OgogICAgICAgICAgICAgICAg
IHJlc3VsdFsiZXh0cmEiXSA9IHt9Ci0gICAgICAgICAgICByZXN1bHRbImV4dHJhIl1bImFzc2Vy
dGlvbl9jb3VudCJdID0gYXNzZXJ0aW9uX2NvdW50CisgICAgICAgICAgICBpZiBhc3NlcnRpb25f
Y291bnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmVzdWx0WyJleHRyYSJdWyJhc3Nl
cnRpb25fY291bnQiXSA9IGFzc2VydGlvbl9jb3VudAorCisgICAgICAgIGlmIHNlbGYuZGVidWdf
dGVzdCBhbmQgcmVzdWx0WyJzdGF0dXMiXSBpbiBbIlBBU1MiLCAiRkFJTCIsICJFUlJPUiJdIGFu
ZCAiZXh0cmEiIGluIHJlc3VsdDoKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRf
d2luZG93KHNlbGYucHJvdG9jb2wuYmFzZS53aW5kb3dfaGFuZGxlcygpWzBdKQorICAgICAgICAg
ICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX3JlZnRlc3RfYW5hbHl6ZXIodGVzdCwgcmVzdWx0
KQogCiAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIHJlc3VsdCkKIApA
QCAtMTAwMCw4ICsxMDYxLDcgQEAgY2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24o
UmVmVGVzdEltcGxlbWVudGF0aW9uKToKICAgICAgICAgZGF0YSA9IHsic2NyZWVuc2hvdCI6IHNj
cmVlbnNob3QsICJpc1ByaW50Ijogc2VsZi5leGVjdXRvci5pc19wcmludH0KICAgICAgICAgaWYg
c2VsZi5leGVjdXRvci5ncm91cF9tZXRhZGF0YSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGRh
dGFbInVybENvdW50Il0gPSB7dXJsam9pbihzZWxmLmV4ZWN1dG9yLnNlcnZlcl91cmwoa2V5WzBd
KSwga2V5WzFdKTp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5
LCB2YWx1ZSBpbiBpdGVyaXRlbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmV4ZWN1dG9yLmdyb3VwX21ldGFkYXRhLmdldCgidXJsX2NvdW50Iiwge30pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLmV4ZWN1
dG9yLmdyb3VwX21ldGFkYXRhLmdldCgidXJsX2NvdW50Iiwge30pLml0ZW1zKCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgPiAxfQogICAgICAgICBzZWxmLmNocm9t
ZV9zY29wZSA9IGNocm9tZV9zY29wZQogICAgICAgICBpZiBjaHJvbWVfc2NvcGU6CkBAIC0xMDUz
LDEyICsxMTEzLDMyIEBAIGNsYXNzIEludGVybmFsUmVmVGVzdEltcGxlbWVudGF0aW9uKFJlZlRl
c3RJbXBsZW1lbnRhdGlvbik6CiAKIAogY2xhc3MgR2Vja29Ecml2ZXJQcm90b2NvbChXZHNwZWNQ
cm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IEdlY2tvRHJpdmVyU2VydmVyCisgICAgc2VydmVy
X2NscyA9IE5vbmUgICMgVG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cyB3ZSBzZXQgdGhpcyBhdCBy
dW50aW1lCiAKIAogY2xhc3MgTWFyaW9uZXR0ZVdkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9y
KToKICAgICBwcm90b2NvbF9jbHMgPSBHZWNrb0RyaXZlclByb3RvY29sCiAKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmlu
YXJ5LAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVy
PTEsIGNhcGFiaWxpdGllcz1Ob25lLAorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUs
IGVudmlyb249Tm9uZSwgc3RhY2tmaXhfZGlyPU5vbmUsCisgICAgICAgICAgICAgICAgIHN5bWJv
bHNfcGF0aD1Ob25lLCBsZWFrX3JlcG9ydF9maWxlPU5vbmUsIGFzYW49RmFsc2UsCisgICAgICAg
ICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5vbmUsIGJyb3dzZXJfc2V0dGluZ3M9Tm9uZSwgKipr
d2FyZ3MpOgorCisgICAgICAgIGZyb20gLi5icm93c2Vycy5maXJlZm94IGltcG9ydCBHZWNrb0Ry
aXZlclNlcnZlcgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgYnJvd3Nlciwgc2Vy
dmVyX2NvbmZpZywgd2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3
ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzLCBkZWJ1Z19p
bmZvPWRlYnVnX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbj1lbnZpcm9u
LCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5wcm90b2NvbF9jbHMuc2VydmVyX2NscyA9IEdlY2tv
RHJpdmVyU2VydmVyCisgICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdzID0geyJzdGFj
a2ZpeF9kaXIiOiBzdGFja2ZpeF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzeW1ib2xzX3BhdGgiOiBzeW1ib2xzX3BhdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJhc2FuIjogYXNhbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImxlYWtfcmVwb3J0X2ZpbGUiOiBsZWFrX3JlcG9ydF9maWxlfQorICAg
ICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IHsiZ3JvdXBfbWV0YWRhdGEi
OiBncm91cF9tZXRhZGF0YX0KKyAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2Fy
Z3MudXBkYXRlKGJyb3dzZXJfc2V0dGluZ3MpCisKKwogCiBjbGFzcyBNYXJpb25ldHRlQ3Jhc2h0
ZXN0RXhlY3V0b3IoQ3Jhc2h0ZXN0RXhlY3V0b3IpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLApkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxl
bml1bS5weQppbmRleCBmZjI2MzUxZjg0ZWQuLjlkNjc1Y2IzZWY4NyAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkK
QEAgLTEsNCArMSwzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAog
aW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHNvY2tldApAQCAtNiw3ICs1LDcgQEAgaW1w
b3J0IHRocmVhZGluZwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCB1dWlk
Ci1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KK2Zyb20gdXJsbGli
LnBhcnNlIGltcG9ydCB1cmxqb2luCiAKIGZyb20gLmJhc2UgaW1wb3J0IChDYWxsYmFja0hhbmRs
ZXIsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLApAQCAtMTksMTAgKzE4LDEw
IEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJv
dG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIEFj
dGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJp
dmVyUHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKIAogaGVyZSA9
IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMTgzLDYgKzE4MiwxNSBAQCBjbGFzcyBT
ZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcmV0
dXJuIGVsZW1lbnQuY2xpY2soKQogCiAKK2NsYXNzIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFy
dChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNl
bGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZGVsZXRlX2Fs
bF9jb29raWVzKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwg
Y29va2llcyIpCisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5kZWxldGVfYWxsX2Nvb2tp
ZXMoKQorCisKIGNsYXNzIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90
b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi53ZWJkcml2ZXIg
PSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTIxOSw2ICsyMjcsNyBAQCBjbGFzcyBTZWxlbml1
bVByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtVGVzdGhhcm5l
c3NQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bVNlbGVjdG9yUHJvdG9j
b2xQYXJ0LAogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1DbGlja1Byb3RvY29sUGFydCwKKyAg
ICAgICAgICAgICAgICAgIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBT
ZWxlbml1bVRlc3REcml2ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1
bUFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0XQpAQCAtMjY3LDggKzI3Niw5IEBAIGNsYXNzIFNl
bGVuaXVtUnVuKFRpbWVkUnVubmVyKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVvdXQpCiAg
ICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLkVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIikKLSAg
ICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgICAgICBtc2cgPSAiTG9zdCBXZWJEcml2ZXIg
Y29ubmVjdGlvbiIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAg
ICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIHJ1bl9mdW5jKHNl
bGYpOgogICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CmluZGV4IGVmZTkzYWJjNjljNy4uZjMyMjQyMWJkM2Zh
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JzZXJ2by5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf
ZnVuY3Rpb24KIGltcG9ydCBiYXNlNjQKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKQEAgLTcsNyAr
Niw2IEBAIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRyYWNlYmFj
awogaW1wb3J0IHV1aWQKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfc3RyLCBpdGVyaXRlbXMKIAog
ZnJvbSBtb3pwcm9jZXNzIGltcG9ydCBQcm9jZXNzSGFuZGxlcgogCkBAIC0yMyw3ICsyMSw2IEBA
IGZyb20gLmJhc2UgaW1wb3J0IChDb25uZWN0aW9ubGVzc1Byb3RvY29sLAogICAgICAgICAgICAg
ICAgICAgIFdkc3BlY1Byb3RvY29sKQogZnJvbSAucHJvY2VzcyBpbXBvcnQgUHJvY2Vzc1Rlc3RF
eGVjdXRvcgogZnJvbSAuLmJyb3dzZXJzLmJhc2UgaW1wb3J0IGJyb3dzZXJfY29tbWFuZAotZnJv
bSAuLnByb2Nlc3MgaW1wb3J0IGNhc3RfZW52CiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBv
cnQgU2Vydm9Ecml2ZXJTZXJ2ZXIKIAogCkBAIC00OCw3ICs0NSw3IEBAIGRlZiBidWlsZF9zZXJ2
b19jb21tYW5kKHRlc3QsIHRlc3RfdXJsX2Z1bmMsIGJyb3dzZXIsIGJpbmFyeSwgcGF1c2VfYWZ0
ZXJfdGVzdCwKICAgICAgICAgYXJncyArPSBbIi1aIiwgZGVidWdfb3B0c10KICAgICBmb3Igc3R5
bGVzaGVldCBpbiBicm93c2VyLnVzZXJfc3R5bGVzaGVldHM6CiAgICAgICAgIGFyZ3MgKz0gWyIt
LXVzZXItc3R5bGVzaGVldCIsIHN0eWxlc2hlZXRdCi0gICAgZm9yIHByZWYsIHZhbHVlIGluIGl0
ZXJpdGVtcyh0ZXN0LmVudmlyb25tZW50LmdldCgncHJlZnMnLCB7fSkpOgorICAgIGZvciBwcmVm
LCB2YWx1ZSBpbiB0ZXN0LmVudmlyb25tZW50LmdldCgncHJlZnMnLCB7fSkuaXRlbXMoKToKICAg
ICAgICAgYXJncyArPSBbIi0tcHJlZiIsICIlcz0lcyIgJSAocHJlZiwgdmFsdWUpXQogICAgIGlm
IGJyb3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aDoKICAgICAgICAgYXJncyArPSBbIi0tY2VydGlm
aWNhdGUtcGF0aCIsIGJyb3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aF0KQEAgLTEwMywxMSArMTAw
LDExIEBAIGNsYXNzIFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9y
KToKICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYuY29tbWFuZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5l
PVtzZWxmLm9uX291dHB1dF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvbkZpbmlzaD1zZWxmLm9uX2ZpbmlzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudj1jYXN0X2VudihlbnYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW52PWVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0b3JlT3V0cHV0PUZhbHNlKQogICAgICAgICAgICAgc2VsZi5wcm9jLnJ1bigpCiAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYu
Y29tbWFuZCwgZW52PWNhc3RfZW52KGVudikpCisgICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJw
cm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWVudikKIAogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICB0aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRpcGxpZXIK
QEAgLTIzNSw3ICsyMzIsNyBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVz
dEV4ZWN1dG9yKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmludGVyYWN0aXZlOgogICAgICAg
ICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYuY29tbWFuZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1b
c2VsZi5vbl9vdXRwdXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVudj1jYXN0X2VudihlbnYpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudj1lbnYpCiAKIAogICAgICAgICAgICAgICAgIHRyeToKQEAgLTI0Nyw3ICsy
NDQsNyBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToK
ICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihzZWxmLmNvbW1hbmQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYpCiAg
ICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBydiA9IHNlbGYucHJvYy53
YWl0KCkKICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CkBAIC0yNjQs
NyArMjYxLDkgQEAgY2xhc3MgU2Vydm9SZWZUZXN0RXhlY3V0b3IoUHJvY2Vzc1Rlc3RFeGVjdXRv
cik6CiAgICAgICAgICAgICB3aXRoIG9wZW4ob3V0cHV0X3BhdGgsICJyYiIpIGFzIGY6CiAgICAg
ICAgICAgICAgICAgIyBNaWdodCBuZWVkIHRvIHN0cmlwIHZhcmlhYmxlIGhlYWRlcnMgb3Igc29t
ZXRoaW5nIGhlcmUKICAgICAgICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZSwgW2Vuc3VyZV9zdHIoYmFzZTY0LmI2NGVuY29kZShkYXRhKSldCisg
ICAgICAgICAgICAgICAgIyBSZXR1cm5pbmcgdGhlIHNjcmVlbnNob3QgYXMgYSBzdHJpbmcgY291
bGQgcG90ZW50aWFsbHkgYmUgYXZvaWRlZCwKKyAgICAgICAgICAgICAgICAjIHNlZSBodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjg5MjkuCisgICAgICAg
ICAgICAgICAgcmV0dXJuIFRydWUsIFtiYXNlNjQuYjY0ZW5jb2RlKGRhdGEpLmRlY29kZSgpXQog
CiAgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1w
bGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkKQEAgLTM1NywxMSArMzU2LDExIEBAIGNsYXNzIFNl
cnZvQ3Jhc2h0ZXN0RXhlY3V0b3IoUHJvY2Vzc1Rlc3RFeGVjdXRvcik6CiAKICAgICAgICAgaWYg
bm90IHNlbGYuaW50ZXJhY3RpdmU6CiAgICAgICAgICAgICBzZWxmLnByb2MgPSBQcm9jZXNzSGFu
ZGxlcihjb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWNhc3RfZW52KGVudiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bnY9ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVPdXRw
dXQ9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLnByb2MucnVuKCkKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwgZW52PWNhc3Rf
ZW52KGVudikpCisgICAgICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKGNvbW1h
bmQsIGVudj1lbnYpCiAKICAgICAgICAgc2VsZi5wcm9jLndhaXQoKQogCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVy
LnB5CmluZGV4IDJjZDFkYmYzYWQwNi4uMDM5YmNkMTRlMmJlIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JzZXJ2b2RyaXZlci5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5w
eQpAQCAtMTAsNyArMTAsNiBAQCBmcm9tIC5iYXNlIGltcG9ydCAoUHJvdG9jb2wsCiAgICAgICAg
ICAgICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKICAgICAgICAgICAgICAgICAgICBUaW1l
ZFJ1bm5lciwKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCi1mcm9tIC4udGVzdHJ1
bm5lciBpbXBvcnQgU3RvcAogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IHdhaXRfZm9y
X3NlcnZpY2UKIAogd2ViZHJpdmVyID0gTm9uZQpAQCAtMTg0LDggKzE4Myw5IEBAIGNsYXNzIFNl
cnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAg
ICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0ID0gdGlt
ZW91dAogICAgICAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAgICAgICAg
IGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0
IHdlYmRyaXZlciBjb25uZWN0aW9uIikKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RvcAorICAg
ICAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIgorICAgICAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgICAgICByZXR1cm4gKCJJ
TlRFUk5BTC1FUlJPUiIsIG1zZykKIAogICAgICAgICBzdWNjZXNzLCBkYXRhID0gU2Vydm9XZWJE
cml2ZXJSdW4oc2VsZi5sb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLApAQCAtMjc2LDggKzI3Niw5IEBAIGNsYXNzIFNl
cnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgICAg
ICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLnRpbWVvdXRzLnNjcmlwdCA9IHRpbWVvdXQKICAg
ICAgICAgICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CiAgICAgICAgICAgICBleGNlcHQg
SU9FcnJvcjoKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCB3ZWJkcml2
ZXIgY29ubmVjdGlvbiIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAgICAgICAg
ICAgICBtc2cgPSAiTG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIKKyAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAgICAgICAgICAgcmV0dXJuICgiSU5URVJOQUwt
RVJST1IiLCBtc2cpCiAKICAgICAgICAgcmV0dXJuIFNlcnZvV2ViRHJpdmVyUnVuKHNlbGYubG9n
Z2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2NyZWVuc2hvdCwK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cndlYmRyaXZlci5weQppbmRleCBiYWQ1ZmQwNzIyMzcuLjZkNTkxNmE2YWZiYyAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRy
aXZlci5weQpAQCAtMSw0ICsxLDMgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0CiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0CkBAIC02LDcgKzUs
NyBAQCBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1w
b3J0IHV1aWQKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJv
bSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxi
YWNrSGFuZGxlciwKICAgICAgICAgICAgICAgICAgICBDcmFzaHRlc3RFeGVjdXRvciwKQEAgLTIw
LDIyICsxOSwyMyBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEJhc2VQcm90b2NvbFBhcnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sLAogICAgICAgICAgICAgICAgICAgICAgICBT
ZWxlY3RvclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQ2xpY2tQcm90b2Nv
bFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZXNQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgIFNlbmRLZXlzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgVGVzdERyaXZlclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJh
dGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTZXRQZXJt
aXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgICAgICBWaXJ0dWFsQXV0aGVu
dGljYXRvclByb3RvY29sUGFydCkKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCisgICAg
ICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0LAorICAg
ICAgICAgICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29sUGFydCkKIAotaW1wb3J0IHdlYmRyaXZl
ciBhcyBjbGllbnQKK2Zyb20gd2ViZHJpdmVyLmNsaWVudCBpbXBvcnQgU2Vzc2lvbgogZnJvbSB3
ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
CiAKIAogY2xhc3MgV2ViRHJpdmVyQ2FsbGJhY2tIYW5kbGVyKENhbGxiYWNrSGFuZGxlcik6Ci0g
ICAgdW5pbXBsZW1lbnRlZF9leGMgPSAoTm90SW1wbGVtZW50ZWRFcnJvciwgY2xpZW50LlVua25v
d25Db21tYW5kRXhjZXB0aW9uKQorICAgIHVuaW1wbGVtZW50ZWRfZXhjID0gKE5vdEltcGxlbWVu
dGVkRXJyb3IsIGVycm9yLlVua25vd25Db21tYW5kRXhjZXB0aW9uKQogCiAKIGNsYXNzIFdlYkRy
aXZlckJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CkBAIC00OSw3ICs0OSw3IEBA
IGNsYXNzIFdlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAgICAg
ZGVmIHNldF90aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICBzZWxmLndlYmRyaXZlci50aW1lb3V0cy5zY3JpcHQgPSB0aW1lb3V0Ci0gICAgICAgIGV4Y2Vw
dCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICBleGNlcHQgZXJyb3IuV2ViRHJp
dmVyRXhjZXB0aW9uOgogICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGh0dHBzOi8vYnVncy5jaHJv
bWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDU3CiAgICAgICAgICAg
ICBib2R5ID0geyJ0eXBlIjogInNjcmlwdCIsICJtcyI6IHRpbWVvdXQgKiAxMDAwfQogICAgICAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAidGltZW91
dHMiLCBib2R5KQpAQCAtNzEsMTYgKzcxLDE2IEBAIGNsYXNzIFdlYkRyaXZlckJhc2VQcm90b2Nv
bFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAg
ICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3Jp
cHQoIiIpCi0gICAgICAgICAgICBleGNlcHQgKGNsaWVudC5UaW1lb3V0RXhjZXB0aW9uLAotICAg
ICAgICAgICAgICAgICAgICBjbGllbnQuU2NyaXB0VGltZW91dEV4Y2VwdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgY2xpZW50LkphdmFzY3JpcHRFcnJvckV4Y2VwdGlvbik6CisgICAgICAgICAg
ICBleGNlcHQgKGVycm9yLlRpbWVvdXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgIGVy
cm9yLlNjcmlwdFRpbWVvdXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgIGVycm9yLkph
dmFzY3JpcHRFcnJvckV4Y2VwdGlvbik6CiAgICAgICAgICAgICAgICAgIyBBIEphdmFzY3JpcHRF
cnJvckV4Y2VwdGlvbiB3aWxsIGhhcHBlbiB3aGVuIHdlIG5hdmlnYXRlOwogICAgICAgICAgICAg
ICAgICMgYnkgaWdub3JpbmcgaXQgaXQncyBwb3NzaWJsZSB0byByZWxvYWQgdGhlIHRlc3Qgd2hp
bHN0IHRoZQogICAgICAgICAgICAgICAgICMgaGFybmVzcyByZW1haW5zIHBhdXNlZAogICAgICAg
ICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsCi0gICAg
ICAgICAgICAgICAgICAgIGNsaWVudC5Ob1N1Y2hXaW5kb3dFeGNlcHRpb24sCi0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24sCisgICAgICAgICAgICAgICAg
ICAgIGVycm9yLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZXJy
b3IuVW5rbm93bkVycm9yRXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICAgICBJT0Vycm9yKToK
ICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKQEAg
LTExNiw3ICsxMTYsNyBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydChU
ZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
ICAgc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZSA9IGhhbmRsZQogICAgICAgICAgICAgICAg
IHNlbGYud2ViZHJpdmVyLndpbmRvdy5jbG9zZSgpCi0gICAgICAgICAgICBleGNlcHQgY2xpZW50
Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKKyAgICAgICAgICAgIGV4Y2VwdCBlcnJvci5Ob1N1Y2hX
aW5kb3dFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLndlYmRy
aXZlci53aW5kb3dfaGFuZGxlID0gc2VsZi5ydW5uZXJfaGFuZGxlCiAgICAgICAgIHJldHVybiBz
ZWxmLnJ1bm5lcl9oYW5kbGUKQEAgLTE5MCw2ICsxOTAsMTUgQEAgY2xhc3MgV2ViRHJpdmVyQ2xp
Y2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4gZWxlbWVu
dC5jbGljaygpCiAKIAorY2xhc3MgV2ViRHJpdmVyQ29va2llc1Byb3RvY29sUGFydChDb29raWVz
UHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJp
dmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZGVsZXRlX2FsbF9jb29raWVz
KHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwgY29va2llcyIp
CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiREVM
RVRFIiwgImNvb2tpZSIpCisKKwogY2xhc3MgV2ViRHJpdmVyU2VuZEtleXNQcm90b2NvbFBhcnQo
U2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTE5Nyw3ICsyMDYsNyBAQCBj
bGFzcyBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6
CiAgICAgZGVmIHNlbmRfa2V5cyhzZWxmLCBlbGVtZW50LCBrZXlzKToKICAgICAgICAgdHJ5Ogog
ICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9rZXlzKGtleXMpCi0gICAgICAgIGV4Y2Vw
dCBjbGllbnQuVW5rbm93bkVycm9yRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGV4Y2VwdCBlcnJv
ci5Vbmtub3duRXJyb3JFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICMgd29ya2Fyb3VuZCBo
dHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9
MTk5OQogICAgICAgICAgICAgaWYgKGUuaHR0cF9zdGF0dXMgIT0gNTAwIG9yCiAgICAgICAgICAg
ICAgICAgZS5zdGF0dXNfY29kZSAhPSAidW5rbm93biBlcnJvciIpOgpAQCAtMjI3LDggKzIzNiwx
MiBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFRlc3REcml2ZXJQcm90
b2NvbFBhcnQpOgogICAgICAgICAgICAgb2JqWyJtZXNzYWdlIl0gPSBzdHIobWVzc2FnZSkKICAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5wb3N0TWVzc2FnZSgl
cywgJyonKSIgJSBqc29uLmR1bXBzKG9iaikpCiAKLSAgICBkZWYgX3N3aXRjaF90b19mcmFtZShz
ZWxmLCBmcmFtZV9udW1iZXIpOgotICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0Y2hfZnJhbWUo
ZnJhbWVfbnVtYmVyKQorICAgIGRlZiBfc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGluZGV4X29yX2Vs
ZW0pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0Y2hfZnJh
bWUoaW5kZXhfb3JfZWxlbSkKKyAgICAgICAgZXhjZXB0IChlcnJvci5TdGFsZUVsZW1lbnRSZWZl
cmVuY2VFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgZXJyb3IuTm9TdWNoRnJhbWVFeGNlcHRp
b24pIGFzIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yIGZyb20gZQogCiAgICAgZGVm
IF9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlci5z
d2l0Y2hfZnJhbWUoInBhcmVudCIpCkBAIC0yODMsMTcgKzI5NiwyNCBAQCBjbGFzcyBXZWJEcml2
ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGljYXRvclBy
b3RvY29sUGFydAogICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2Nv
bW1hbmQoIlBPU1QiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcy91diIgJSBhdXRoZW50aWNh
dG9yX2lkLCB1dikKIAogCitjbGFzcyBXZWJEcml2ZXJEZWJ1Z1Byb3RvY29sUGFydChEZWJ1Z1By
b3RvY29sUGFydCk6CisgICAgZGVmIGxvYWRfZGV2dG9vbHMoc2VsZik6CisgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisKIGNsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3Rv
Y29sKToKICAgICBpbXBsZW1lbnRzID0gW1dlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgIFdlYkRyaXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgV2ViRHJpdmVyQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2
ZXJDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyU2VuZEtl
eXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJBY3Rpb25TZXF1ZW5j
ZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclRlc3REcml2ZXJQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJHZW5lcmF0ZVRlc3RSZXBvcnRQ
cm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZXRQZXJtaXNzaW9uUHJv
dG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVmlydHVhbEF1dGhlbnRpY2F0
b3JQcm90b2NvbFBhcnRdCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVu
dGljYXRvclByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckRlYnVnUHJv
dG9jb2xQYXJ0XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyLCBj
YXBhYmlsaXRpZXMsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoV2ViRHJpdmVyUHJvdG9jb2ws
IHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQpAQCAtMzA4LDcgKzMyOCw3IEBAIGNs
YXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgaG9zdCwgcG9ydCA9IHNl
bGYudXJsLnNwbGl0KCI6IilbMV0uc3RyaXAoIi8iKSwgc2VsZi51cmwuc3BsaXQoJzonKVstMV0u
c3RyaXAoIi8iKQogCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHsiYWx3YXlzTWF0Y2giOiBzZWxm
LmNhcGFiaWxpdGllc30KLSAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBjbGllbnQuU2Vzc2lvbiho
b3N0LCBwb3J0LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBzZWxmLndlYmRy
aXZlciA9IFNlc3Npb24oaG9zdCwgcG9ydCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcykKICAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuc3RhcnQoKQogCiAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgpA
QCAtMzMxLDcgKzM1MSw3IEBAIGNsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29sKToKICAg
ICAgICAgICAgICMgNSBzZWNvbmRzIG9mIGV4dHJhX3RpbWVvdXQgd2UgaGF2ZSBhcyBtYXhpbXVt
IHRvIGVuZCB0aGUgdGVzdCBiZWZvcmUKICAgICAgICAgICAgICMgdGhlIGV4dGVybmFsIHRpbWVv
dXQgZnJvbSB0ZXN0cnVubmVyIHRyaWdnZXJzLgogICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIu
c2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ3aW5kb3ciLCB0aW1lb3V0PTIpCi0gICAgICAg
IGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24sIGNs
aWVudC5JbnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChzb2NrZXQu
dGltZW91dCwgZXJyb3IuVW5rbm93bkVycm9yRXhjZXB0aW9uLCBlcnJvci5JbnZhbGlkU2Vzc2lv
bklkRXhjZXB0aW9uKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4g
VHJ1ZQogCkBAIC0zNDMsMTkgKzM2MywyMCBAQCBjbGFzcyBXZWJEcml2ZXJSdW4oVGltZWRSdW5u
ZXIpOgogICAgIGRlZiBzZXRfdGltZW91dChzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHNlbGYudGltZW91dCArIHNlbGYuZXh0
cmFfdGltZW91dCkKLSAgICAgICAgZXhjZXB0IGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb246
Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBXZWJEcml2ZXIgY29ubmVjdGlv
biIpCi0gICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICBleGNlcHQgZXJyb3IuVW5rbm93
bkVycm9yRXhjZXB0aW9uOgorICAgICAgICAgICAgbXNnID0gIkxvc3QgV2ViRHJpdmVyIGNvbm5l
Y3Rpb24iCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAgICAgICBy
ZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIsIG1zZykKIAogICAgIGRlZiBydW5fZnVuYyhzZWxmKToK
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1bmMo
c2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKLSAgICAgICAgZXhjZXB0IChj
bGllbnQuVGltZW91dEV4Y2VwdGlvbiwgY2xpZW50LlNjcmlwdFRpbWVvdXRFeGNlcHRpb24pOgor
ICAgICAgICBleGNlcHQgKGVycm9yLlRpbWVvdXRFeGNlcHRpb24sIGVycm9yLlNjcmlwdFRpbWVv
dXRFeGNlcHRpb24pOgogICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5B
TC1USU1FT1VUIiwgTm9uZSkKLSAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgY2xpZW50
LlVua25vd25FcnJvckV4Y2VwdGlvbik6CisgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQs
IGVycm9yLlVua25vd25FcnJvckV4Y2VwdGlvbik6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9
IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoZSwgY2xpZW50LldlYkRyaXZlckV4Y2VwdGlvbikg
YW5kCisgICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShlLCBlcnJvci5XZWJEcml2ZXJFeGNlcHRp
b24pIGFuZAogICAgICAgICAgICAgICAgICAgICBlLmh0dHBfc3RhdHVzID09IDQwOCBhbmQKICAg
ICAgICAgICAgICAgICAgICAgZS5zdGF0dXNfY29kZSA9PSAiYXN5bmNocm9ub3VzIHNjcmlwdCB0
aW1lb3V0Iik6CiAgICAgICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGZvciBodHRwczovL2J1Z3Mu
Y2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MjAwMQpAQCAtNDQ5
LDcgKzQ3MCw3IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5l
c3NFeGVjdXRvcik6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3Qp
IG9yIGxlbihyZXN1bHQpICE9IDI6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
ICAgICAgICBpc19hbGl2ZSA9IHNlbGYuaXNfYWxpdmUoKQotICAgICAgICAgICAgICAgIGV4Y2Vw
dCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBlcnJv
ci5XZWJEcml2ZXJFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgICAgIGlzX2FsaXZlID0gRmFs
c2UKIAogICAgICAgICAgICAgICAgIGlmIG5vdCBpc19hbGl2ZToKQEAgLTQ4Myw3ICs1MDQsNyBA
QCBpZiAobG9jYXRpb24uaHJlZiA9PT0gImFib3V0OmJsYW5rIikgewogfSBlbHNlIHsKICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsICgpID0+IHtpZiAoZG9j
dW1lbnQucmVhZHlTdGF0ZSAhPT0gImxvYWRpbmciKSB7Y2FsbGJhY2sodHJ1ZSl9fSk7CiB9IiIi
LCBhc3luY2hyb25vdXM9VHJ1ZSkKLSAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQuSmF2YXNjcmlw
dEVycm9yRXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjZXB0IGVycm9yLkphdmFzY3JpcHRFcnJv
ckV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAjIFdlIGNhbiBnZXQgYW4gZXJyb3IgaGVyZSBp
ZiB0aGUgc2NyaXB0IHJ1bnMgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsKICAgICAgICAgICAg
ICAgICAjIGRvY3VtZW50IGJlZm9yZSBpdCBoYXMgbmF2aWdhdGVkLCB3aXRoIHRoZSBkcml2ZXIg
cmV0dXJuaW5nIGFuIGVycm9yCiAgICAgICAgICAgICAgICAgIyBpbmRpY2F0aW5nIHRoYXQgdGhl
IGRvY3VtZW50IHdhcyB1bmxvYWRlZApAQCAtNDk3LDcgKzUxOCw3IEBAIGNsYXNzIFdlYkRyaXZl
clJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEs
CiAgICAgICAgICAgICAgICAgIHNjcmVlbnNob3RfY2FjaGU9Tm9uZSwgY2xvc2VfYWZ0ZXJfZG9u
ZT1UcnVlLAotICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIGNhcGFiaWxpdGllcz1O
b25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJp
bGl0aWVzPU5vbmUsIGRlYnVnX3Rlc3Q9RmFsc2UsICoqa3dhcmdzKToKICAgICAgICAgIiIiV2Vi
RHJpdmVyLWJhc2VkIGV4ZWN1dG9yIGZvciByZWZ0ZXN0cyIiIgogICAgICAgICBSZWZUZXN0RXhl
Y3V0b3IuX19pbml0X18oc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Z2dlciwKQEAgLTUxMiw2ICs1MzMsNyBAQCBjbGFzcyBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Io
UmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbiA9IFJlZlRlc3RJ
bXBsZW1lbnRhdGlvbihzZWxmKQogICAgICAgICBzZWxmLmNsb3NlX2FmdGVyX2RvbmUgPSBjbG9z
ZV9hZnRlcl9kb25lCiAgICAgICAgIHNlbGYuaGFzX3dpbmRvdyA9IEZhbHNlCisgICAgICAgIHNl
bGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKIAogICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5q
b2luKGhlcmUsICJ0ZXN0LXdhaXQuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNlbGYud2FpdF9z
Y3JpcHQgPSBmLnJlYWQoKSAlIHsiY2xhc3NuYW1lIjogInJlZnRlc3Qtd2FpdCJ9CkBAIC01Mjks
MTMgKzU1MSwxNiBAQCBjbGFzcyBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1
dG9yKToKICAgICAgICAgKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnByb3RvY29s
LndlYmRyaXZlci53aW5kb3cucG9zaXRpb24gPSAoMCwgMCkKLSAgICAgICAgZXhjZXB0IGNsaWVu
dC5JbnZhbGlkQXJndW1lbnRFeGNlcHRpb246CisgICAgICAgIGV4Y2VwdCBlcnJvci5JbnZhbGlk
QXJndW1lbnRFeGNlcHRpb246CiAgICAgICAgICAgICAjIFNhZmFyaSAxMiB0aHJvd3Mgd2l0aCAw
IG9yIDEsIHRyZWF0aW5nIHRoZW0gYXMgYm9vbHM7IGZpeGVkIGluIFNUUAogICAgICAgICAgICAg
c2VsZi5wcm90b2NvbC53ZWJkcml2ZXIud2luZG93LnBvc2l0aW9uID0gKDIsIDIpCiAgICAgICAg
IHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLndpbmRvdy5zaXplID0gKDgwMCArIHdpZHRoX29mZnNl
dCwgNjAwICsgaGVpZ2h0X29mZnNldCkKIAogICAgICAgICByZXN1bHQgPSBzZWxmLmltcGxlbWVu
dGF0aW9uLnJ1bl90ZXN0KHRlc3QpCiAKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z190ZXN0IGFuZCBy
ZXN1bHRbInN0YXR1cyJdIGluIFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIl0gYW5kICJleHRyYSIg
aW4gcmVzdWx0OgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5kZWJ1Zy5sb2FkX3JlZnRlc3Rf
YW5hbHl6ZXIodGVzdCwgcmVzdWx0KQorCiAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVz
dWx0KHRlc3QsIHJlc3VsdCkKIAogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYsIHRlc3QsIHZpZXdw
b3J0X3NpemUsIGRwaSwgcGFnZV9yYW5nZXMpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29s
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CmluZGV4IGJkNzY4YjEwNzNjNy4uZjk1NDdhZDkwNGJj
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5
CkBAIC0xLDYgKzEsNyBAQAogaW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIGFiYyBpbXBvcnQgQUJD
TWV0YSwgYWJzdHJhY3RtZXRob2QKK2Zyb20gdHlwaW5nIGltcG9ydCBDbGFzc1ZhciwgTGlzdCwg
VHlwZQogCiAKIGNsYXNzIFByb3RvY29sKG9iamVjdCk6CkBAIC0xNiw3ICsxNyw3IEBAIGNsYXNz
IFByb3RvY29sKG9iamVjdCk6CiAgICAgOnBhcmFtIEJyb3dzZXIgYnJvd3NlcjogVGhlIEJyb3dz
ZXIgdXNpbmcgdGhpcyBwcm90b2NvbCIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCiAK
LSAgICBpbXBsZW1lbnRzID0gW10KKyAgICBpbXBsZW1lbnRzID0gW10gICMgdHlwZTogQ2xhc3NW
YXJbTGlzdFtUeXBlW1Byb3RvY29sUGFydF1dXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4
ZWN1dG9yLCBicm93c2VyKToKICAgICAgICAgc2VsZi5leGVjdXRvciA9IGV4ZWN1dG9yCkBAIC04
Miw3ICs4Myw3IEBAIGNsYXNzIFByb3RvY29sUGFydChvYmplY3QpOgogICAgIDpwYXJhbSBQcm90
b2NvbCBwYXJlbnQ6IFRoZSBwYXJlbnQgcHJvdG9jb2wiIiIKICAgICBfX21ldGFjbGFzc19fID0g
QUJDTWV0YQogCi0gICAgbmFtZSA9IE5vbmUKKyAgICBuYW1lID0gTm9uZSAgIyB0eXBlOiBDbGFz
c1ZhcltzdHJdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKICAgICAgICAgc2Vs
Zi5wYXJlbnQgPSBwYXJlbnQKQEAgLTI4MSw2ICsyODIsMTggQEAgY2xhc3MgQ2xpY2tQcm90b2Nv
bFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcGFzcwogCiAKK2NsYXNzIENvb2tpZXNQcm90
b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBtYW5hZ2lu
ZyBjb29raWVzIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAi
Y29va2llcyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tp
ZXMoc2VsZik6CisgICAgICAgICIiIkRlbGV0ZSBhbGwgY29va2llcy4iIiIKKyAgICAgICAgcGFz
cworCisKIGNsYXNzIFNlbmRLZXlzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgIiIi
UHJvdG9jb2wgcGFydCBmb3IgcGVyZm9ybWluZyB0cnVzdGVkIGNsaWNrcyIiIgogICAgIF9fbWV0
YWNsYXNzX18gPSBBQkNNZXRhCkBAIC0zNTgsNDMgKzM3MSw3MiBAQCBjbGFzcyBUZXN0RHJpdmVy
UHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAgIDpwYXJhbSBzdHIgbWVzc2FnZTog
QWRkaXRpb25hbCBkYXRhIHRvIGFkZCB0byB0aGUgbWVzc2FnZS4iIiIKICAgICAgICAgcGFzcwog
Ci0gICAgZGVmIHN3aXRjaF90b193aW5kb3coc2VsZiwgd3B0cnVubmVyX2lkKToKKyAgICBkZWYg
c3dpdGNoX3RvX3dpbmRvdyhzZWxmLCB3cHRydW5uZXJfaWQsIGluaXRpYWxfd2luZG93PU5vbmUp
OgogICAgICAgICAiIiJTd2l0Y2ggdG8gYSB3aW5kb3cgZ2l2ZW4gYSB3cHRydW5uZXIgd2luZG93
IGlkCiAKLSAgICAgICAgOnBhcmFtIHN0ciB3cHRydW5uZXJfaWQ6IHdpbmRvdyBpZCIiIgorICAg
ICAgICA6cGFyYW0gc3RyIHdwdHJ1bm5lcl9pZDogVGVzdGRyaXZlci1zcGVjaWZpYyBpZCBmb3Ig
dGhlIHRhcmdldCB3aW5kb3cKKyAgICAgICAgOnBhcmFtIHN0ciBpbml0aWFsX3dpbmRvdzogV2Vi
RHJpdmVyIHdpbmRvdyBpZCBmb3IgdGhlIHRlc3Qgd2luZG93IiIiCiAgICAgICAgIGlmIHdwdHJ1
bm5lcl9pZCBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgaWYgaW5pdGlh
bF93aW5kb3cgaXMgTm9uZToKKyAgICAgICAgICAgIGluaXRpYWxfd2luZG93ID0gc2VsZi5wYXJl
bnQuYmFzZS5jdXJyZW50X3dpbmRvdworCiAgICAgICAgIHN0YWNrID0gW3N0cihpdGVtKSBmb3Ig
aXRlbSBpbiBzZWxmLnBhcmVudC5iYXNlLndpbmRvd19oYW5kbGVzKCldCisgICAgICAgIGZpcnN0
ID0gVHJ1ZQogICAgICAgICB3aGlsZSBzdGFjazoKICAgICAgICAgICAgIGl0ZW0gPSBzdGFjay5w
b3AoKQorCiAgICAgICAgICAgICBpZiBpdGVtIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGZpcnN0IGlzIEZhbHNlCiAgICAgICAgICAgICAgICAgc2VsZi5fc3dpdGNoX3RvX3BhcmVu
dF9mcmFtZSgpCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsaWYgaXNp
bnN0YW5jZShpdGVtLCBzdHIpOgotICAgICAgICAgICAgICAgIHNlbGYucGFyZW50LmJhc2Uuc2V0
X3dpbmRvdyhpdGVtKQorCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIHN0cik6Cisg
ICAgICAgICAgICAgICAgaWYgbm90IGZpcnN0IG9yIGl0ZW0gIT0gaW5pdGlhbF93aW5kb3c6Cisg
ICAgICAgICAgICAgICAgICAgIHNlbGYucGFyZW50LmJhc2Uuc2V0X3dpbmRvdyhpdGVtKQorICAg
ICAgICAgICAgICAgIGZpcnN0ID0gRmFsc2UKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fc3dpdGNoX3RvX2ZyYW1lKGl0ZW0pCisgICAgICAgICAgICAgICAgYXNzZXJ0
IGZpcnN0IGlzIEZhbHNlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9zd2l0Y2hfdG9fZnJhbWUoaXRlbSkKKyAgICAgICAgICAgICAgICBleGNlcHQgVmFs
dWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgZnJhbWUgbm8gbG9uZ2VyIGV4aXN0
cywgb3IgZG9lc24ndCBoYXZlIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQsIHNvIGNvbnRpbnVl
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBoYW5kbGVfd2luZG93X2lkID0gc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3Nj
cmlwdCgicmV0dXJuIHdpbmRvdy5fX3dwdHJ1bm5lcl9pZCIpCi0gICAgICAgICAgICAgICAgaWYg
c3RyKGhhbmRsZV93aW5kb3dfaWQpID09IHdwdHJ1bm5lcl9pZDoKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgICAgICAgICAgIyBHZXQgdGhlIHdpbmRvdyBpZCBhbmQgYSBsaXN0
IG9mIGVsZW1lbnRzIGNvbnRhaW5pbmcgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLgorICAgICAg
ICAgICAgICAgICMgRm9yIGVtYmVkIHdlIGNhbid0IHRlbGwgZnByIHN1cmUgaWYgdGhlcmUncyBh
IG5lc3RlZCBicm93c2luZyBjb250ZXh0LCBzbyBhbHdheXMgcmV0dXJuIGl0CisgICAgICAgICAg
ICAgICAgIyBhbmQgZmFpbCBsYXRlciBpZiB0aGVyZSBpc24ndAorICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoIiIiCisgICAgICAgICAgICAg
ICAgbGV0IGNvbnRleHRQYXJlbnRzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCJmcmFtZSwgaWZyYW1lLCBlbWJlZCwgb2JqZWN0IikpCisgICAgICAgICAgICAgICAgICAg
IC5maWx0ZXIoZWxlbSA9PiBlbGVtLmxvY2FsTmFtZSAhPT0gImVtYmVkIiA/IChlbGVtLmNvbnRl
bnRXaW5kb3cgIT09IG51bGwpIDogdHJ1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFt3aW5k
b3cuX193cHRydW5uZXJfaWQsIGNvbnRleHRQYXJlbnRzXSIiIikKICAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZnJhbWVfY291
bnQgPSBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93Lmxlbmd0
aCIpCi0gICAgICAgICAgICAjIE5vbmUgaGVyZSBtYWtlcyB1cyBzd2l0Y2ggYmFjayB0byB0aGUg
cGFyZW50IGFmdGVyIHdlJ3ZlIHByb2Nlc3NlZCBhbGwgdGhlIHN1YmZyYW1lcwotICAgICAgICAg
ICAgc3RhY2suYXBwZW5kKE5vbmUpCi0gICAgICAgICAgICBpZiBmcmFtZV9jb3VudDoKLSAgICAg
ICAgICAgICAgICBzdGFjay5leHRlbmQocmV2ZXJzZWQocmFuZ2UoMCwgZnJhbWVfY291bnQpKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBpZiByZXN1bHQgaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICAjIFdpdGggbWFyaW9uZXR0ZSBhdCBsZWFzdCB0aGlzIGlzIHBv
c3NpYmxlIGlmIHRoZSBjb250ZW50IHByb2Nlc3MgY3Jhc2hlZC4gTm90IHF1aXRlCisgICAgICAg
ICAgICAgICAgIyBzdXJlIGhvdyB3ZSB3YW50IHRvIGhhbmRsZSB0aGF0IGNhc2UuCisgICAgICAg
ICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaGFuZGxlX3dpbmRvd19pZCwgbmVzdGVk
X2NvbnRleHRfY29udGFpbmVycyA9IHJlc3VsdAorCisgICAgICAgICAgICBpZiBoYW5kbGVfd2lu
ZG93X2lkIGFuZCBzdHIoaGFuZGxlX3dpbmRvd19pZCkgPT0gd3B0cnVubmVyX2lkOgorICAgICAg
ICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBmb3IgZWxlbSBpbiByZXZlcnNlZChuZXN0
ZWRfY29udGV4dF9jb250YWluZXJzKToKKyAgICAgICAgICAgICAgICAjIE5vbmUgaGVyZSBtYWtl
cyB1cyBzd2l0Y2ggYmFjayB0byB0aGUgcGFyZW50IGFmdGVyIHdlJ3ZlIHByb2Nlc3NlZCB0aGUg
ZnJhbWUKKyAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmQoTm9uZSkKKyAgICAgICAgICAgICAg
ICBzdGFjay5hcHBlbmQoZWxlbSkKIAogICAgICAgICByYWlzZSBFeGNlcHRpb24oIldpbmRvdyB3
aXRoIGlkICVzIG5vdCBmb3VuZCIgJSB3cHRydW5uZXJfaWQpCiAKICAgICBAYWJzdHJhY3RtZXRo
b2QKLSAgICBkZWYgX3N3aXRjaF90b19mcmFtZShzZWxmLCBpbmRleCk6CisgICAgZGVmIF9zd2l0
Y2hfdG9fZnJhbWUoc2VsZiwgaW5kZXhfb3JfZWxlbSk6CiAgICAgICAgICIiIlN3aXRjaCB0byBh
IGZyYW1lIGluIHRoZSBjdXJyZW50IHdpbmRvdwogCi0gICAgICAgIDpwYXJhbSBpbnQgaW5kZXg6
IEZyYW1lIGlkIiIiCisgICAgICAgIDpwYXJhbSBpbnQgaW5kZXhfb3JfZWxlbTogRnJhbWUgaWQg
b3IgY29udGFpbmVyIGVsZW1lbnQiIiIKICAgICAgICAgcGFzcwogCiAgICAgQGFic3RyYWN0bWV0
aG9kCkBAIC01MDMsMyArNTQ1LDMyIEBAIGNsYXNzIFByaW50UHJvdG9jb2xQYXJ0KFByb3RvY29s
UGFydCk6CiAgICAgZGVmIHJlbmRlcl9hc19wZGYoc2VsZiwgd2lkdGgsIGhlaWdodCk6CiAgICAg
ICAgICIiIk91dHB1dCBkb2N1bWVudCBhcyBQREYiIiIKICAgICAgICAgcGFzcworCisKK2NsYXNz
IERlYnVnUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9jb2wgcGFydCBm
b3IgZGVidWdnaW5nIHRlc3QgZmFpbHVyZXMuIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01l
dGEKKworICAgIG5hbWUgPSAiZGVidWciCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYg
bG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgIiIiTG9hZCBkZXZ0b29scyBpbiB0aGUgY3Vy
cmVudCB3aW5kb3ciIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIGxvYWRfcmVmdGVzdF9hbmFs
eXplcihzZWxmLCB0ZXN0LCByZXN1bHQpOgorICAgICAgICBpbXBvcnQgaW8KKyAgICAgICAgaW1w
b3J0IG1vemxvZworICAgICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgcXVvdGUsIHVybGpv
aW4KKworICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlciA9IG1vemxvZy5zdHJ1Y3R1cmVkbG9nLlN0
cnVjdHVyZWRMb2dnZXIoImRlYnVnX3Rlc3QiKQorICAgICAgICBvdXRwdXQgPSBpby5TdHJpbmdJ
TygpCisgICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2VyLnN1aXRlX3N0YXJ0KFtdKQorICAgICAgICBk
ZWJ1Z190ZXN0X2xvZ2dlci5hZGRfaGFuZGxlcihtb3psb2cuaGFuZGxlcnMuU3RyZWFtSGFuZGxl
cihvdXRwdXQsIGZvcm1hdHRlcj1tb3psb2cuZm9ybWF0dGVycy5UYnBsRm9ybWF0dGVyKCkpKQor
ICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCisgICAgICAgICMg
QWx3YXlzIHVzZSBQQVNTIGFzIHRoZSBleHBlY3RlZCB2YWx1ZSBzbyB3ZSBnZXQgb3V0cHV0IGV2
ZW4gZm9yIGV4cGVjdGVkIGZhaWx1cmVzCisgICAgICAgIGRlYnVnX3Rlc3RfbG9nZ2VyLnRlc3Rf
ZW5kKHRlc3QuaWQsIHJlc3VsdFsic3RhdHVzIl0sICJQQVNTIiwgZXh0cmE9cmVzdWx0LmdldCgi
ZXh0cmEiKSkKKworICAgICAgICBzZWxmLnBhcmVudC5iYXNlLmxvYWQodXJsam9pbihzZWxmLnBh
cmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKCJodHRwcyIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi9jb21tb24vdGhpcmRfcGFydHkvcmVmdGVzdC1hbmFseXplci54aHRtbCNsb2c9
JXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZShvdXRwdXQuZ2V0dmFs
dWUoKSkpKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQppbmRleCAzZDMyOTE3NjU5YjMuLjUwODE5YTkzNTg5
OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKQEAgLTI0LDcgKzI0LDcgQEAgZGVmIGRvX2RlbGF5ZWRf
aW1wb3J0cygpOgogICAgIGltcG9ydCBweXRlc3QKIAogCi1kZWYgcnVuKHBhdGgsIHNlcnZlcl9j
b25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTApOgorZGVmIHJ1bihwYXRoLCBzZXJ2ZXJf
Y29uZmlnLCBzZXNzaW9uX2NvbmZpZywgdGltZW91dD0wLCBlbnZpcm9uPU5vbmUpOgogICAgICIi
IgogICAgIFJ1biBQeXRob24gdGVzdCBhdCBgYHBhdGhgYCBpbiBweXRlc3QuICBUaGUgcHJvdmlk
ZWQgYGBzZXNzaW9uYGAKICAgICBpcyBleHBvc2VkIGFzIGEgZml4dHVyZSBhdmFpbGFibGUgaW4g
dGhlIHNjb3BlIG9mIHRoZSB0ZXN0IGZ1bmN0aW9ucy4KQEAgLTQxLDI4ICs0MSw0MCBAQCBkZWYg
cnVuKHBhdGgsIHNlcnZlcl9jb25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTApOgogICAg
IGlmIHB5dGVzdCBpcyBOb25lOgogICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQogCi0gICAg
b3MuZW52aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQotICAgIG9zLmVu
dmlyb25bIldEX1BPUlQiXSA9IHN0cihzZXNzaW9uX2NvbmZpZ1sicG9ydCJdKQotICAgIG9zLmVu
dmlyb25bIldEX0NBUEFCSUxJVElFUyJdID0ganNvbi5kdW1wcyhzZXNzaW9uX2NvbmZpZ1siY2Fw
YWJpbGl0aWVzIl0pCi0gICAgb3MuZW52aXJvblsiV0RfU0VSVkVSX0NPTkZJRyJdID0ganNvbi5k
dW1wcyhzZXJ2ZXJfY29uZmlnLmFzX2RpY3RfZm9yX3dkX2Vudl92YXJpYWJsZSgpKQotCi0gICAg
aGFybmVzcyA9IEhhcm5lc3NSZXN1bHRSZWNvcmRlcigpCi0gICAgc3VidGVzdHMgPSBTdWJ0ZXN0
UmVzdWx0UmVjb3JkZXIoKQotCi0gICAgd2l0aCBUZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBjYWNo
ZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcHl0ZXN0Lm1haW4oWyItLXN0cmljdCIsICAj
IHR1cm4gd2FybmluZ3MgaW50byBlcnJvcnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLXZ2
IiwgICMgc2hvdyBlYWNoIGluZGl2aWR1YWwgc3VidGVzdCBhbmQgZnVsbCBmYWlsdXJlIGxvZ3MK
LSAgICAgICAgICAgICAgICAgICAgICAgICAiLS1jYXB0dXJlIiwgIm5vIiwgICMgZW5hYmxlIHN0
ZG91dC9zdGRlcnIgZnJvbSB0ZXN0cwotICAgICAgICAgICAgICAgICAgICAgICAgICItLWJhc2V0
ZW1wIiwgY2FjaGUsICAjIHRlbXBvcmFyeSBkaXJlY3RvcnkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAiLS1zaG93bG9jYWxzIiwgICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJpYWJsZXMgaW4g
bG9jYWwgc2NvcGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAibm86bW96bG9nIiwg
ICMgdXNlIHRoZSBXUFQgcmVzdWx0IHJlY29yZGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAg
Ii1wIiwgIm5vOmNhY2hlcHJvdmlkZXIiLCAgIyBkaXNhYmxlIHN0YXRlIHByZXNlcnZhdGlvbiBh
Y3Jvc3MgaW52b2NhdGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLW89Y29uc29sZV9v
dXRwdXRfc3R5bGU9Y2xhc3NpYyIsICAjIGRpc2FibGUgdGVzdCBwcm9ncmVzcyBiYXIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXRoXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdp
bnM9W2hhcm5lc3MsIHN1YnRlc3RzXSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgaGFybmVzcy5vdXRjb21lID0gKCJJTlRFUk5BTC1FUlJPUiIsIHN0cihlKSkK
KyAgICBvbGRfZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisgICAgdHJ5OgorICAgICAgICB3
aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlOgorICAgICAgICAgICAgb3MuZW52aXJv
blsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQorICAgICAgICAgICAgb3MuZW52
aXJvblsiV0RfUE9SVCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCisgICAgICAgICAg
ICBvcy5lbnZpcm9uWyJXRF9DQVBBQklMSVRJRVMiXSA9IGpzb24uZHVtcHMoc2Vzc2lvbl9jb25m
aWdbImNhcGFiaWxpdGllcyJdKQorCisgICAgICAgICAgICBjb25maWdfcGF0aCA9IG9zLnBhdGgu
am9pbihjYWNoZSwgIndkX3NlcnZlcl9jb25maWcuanNvbiIpCisgICAgICAgICAgICBvcy5lbnZp
cm9uWyJXRF9TRVJWRVJfQ09ORklHX0ZJTEUiXSA9IGNvbmZpZ19wYXRoCisgICAgICAgICAgICB3
aXRoIG9wZW4oY29uZmlnX3BhdGgsICJ3IikgYXMgZjoKKyAgICAgICAgICAgICAgICBqc29uLmR1
bXAoc2VydmVyX2NvbmZpZy5hc19kaWN0KCksIGYpCisKKyAgICAgICAgICAgIGlmIGVudmlyb246
CisgICAgICAgICAgICAgICAgb3MuZW52aXJvbi51cGRhdGUoZW52aXJvbikKKworICAgICAgICAg
ICAgaGFybmVzcyA9IEhhcm5lc3NSZXN1bHRSZWNvcmRlcigpCisgICAgICAgICAgICBzdWJ0ZXN0
cyA9IFN1YnRlc3RSZXN1bHRSZWNvcmRlcigpCisKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBweXRlc3QubWFpbihbIi0tc3RyaWN0IiwgICMgdHVybiB3YXJuaW5ncyBpbnRvIGVy
cm9ycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXZ2IiwgICMgc2hvdyBlYWNoIGlu
ZGl2aWR1YWwgc3VidGVzdCBhbmQgZnVsbCBmYWlsdXJlIGxvZ3MKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi0tY2FwdHVyZSIsICJubyIsICAjIGVuYWJsZSBzdGRvdXQvc3RkZXJyIGZy
b20gdGVzdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmFzZXRlbXAiLCBjYWNo
ZSwgICMgdGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
LS1zaG93bG9jYWxzIiwgICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJpYWJsZXMgaW4gbG9jYWwg
c2NvcGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOm1vemxvZyIsICAj
IHVzZSB0aGUgV1BUIHJlc3VsdCByZWNvcmRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLXAiLCAibm86Y2FjaGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUgcHJlc2VydmF0aW9u
IGFjcm9zcyBpbnZvY2F0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW89Y29u
c29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYyIsICAjIGRpc2FibGUgdGVzdCBwcm9ncmVzcyBiYXIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGx1Z2lucz1baGFybmVzcywgc3VidGVzdHNdKQorICAgICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIGhhcm5lc3Mub3V0Y29tZSA9ICgiSU5U
RVJOQUwtRVJST1IiLCBzdHIoZSkpCisKKyAgICBmaW5hbGx5OgorICAgICAgICBvcy5lbnZpcm9u
ID0gb2xkX2Vudmlyb24KIAogICAgIHJldHVybiAoaGFybmVzcy5vdXRjb21lLCBzdWJ0ZXN0cy5y
ZXN1bHRzKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43NmFkZTk1ZjA3ZjcKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leHBlY3RlZHRyZWUucHkKQEAgLTAsMCArMSwxMzEgQEAKK2Zyb20gbWF0aCBpbXBv
cnQgbG9nCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorCitjbGFzcyBOb2Rl
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3AsIHZhbHVlKToKKyAgICAgICAg
c2VsZi5wcm9wID0gcHJvcAorICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWUKKyAgICAgICAgc2Vs
Zi5wYXJlbnQgPSBOb25lCisKKyAgICAgICAgc2VsZi5jaGlsZHJlbiA9IHNldCgpCisKKyAgICAg
ICAgIyBQb3B1bGF0ZWQgZm9yIGxlYWYgbm9kZXMKKyAgICAgICAgc2VsZi5ydW5faW5mbyA9IHNl
dCgpCisgICAgICAgIHNlbGYucmVzdWx0X3ZhbHVlcyA9IGRlZmF1bHRkaWN0KGludCkKKworICAg
IGRlZiBhZGQoc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYuY2hpbGRyZW4uYWRkKG5vZGUpCisg
ICAgICAgIG5vZGUucGFyZW50ID0gc2VsZgorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAg
ICAgICB5aWVsZCBzZWxmCisgICAgICAgIGZvciBub2RlIGluIHNlbGYuY2hpbGRyZW46CisgICAg
ICAgICAgICBmb3IgaXRlbSBpbiBub2RlOgorICAgICAgICAgICAgICAgIHlpZWxkIGl0ZW0KKwor
ICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gMSArIHN1bShsZW4oaXRlbSkg
Zm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbikKKworCitkZWYgZW50cm9weShyZXN1bHRzKToKKyAg
ICAiIiJUaGlzIGlzIGJhc2ljYWxseSBhIG1lYXN1cmUgb2YgdGhlIHVuaWZvcm1pdHkgb2YgdGhl
IHZhbHVlcyBpbiByZXN1bHRzCisgICAgYmFzZWQgb24gdGhlIHNoYW5ub24gZW50cm9weSIiIgor
CisgICAgcmVzdWx0X2NvdW50cyA9IGRlZmF1bHRkaWN0KGludCkKKyAgICB0b3RhbCA9IGZsb2F0
KGxlbihyZXN1bHRzKSkKKyAgICBmb3IgdmFsdWVzIGluIHJlc3VsdHMudmFsdWVzKCk6CisgICAg
ICAgICMgTm90IHN1cmUgdGhpcyBpcyByaWdodCwgcG9zc2libHkgd2FudCB0byB0cmVhdCBtdWx0
aXBsZSB2YWx1ZXMgYXMKKyAgICAgICAgIyBkaXN0aW5jdCBmcm9tIG11bHRpcGxlIG9mIHRoZSBz
YW1lIHZhbHVlPworICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVzOgorICAgICAgICAgICAgcmVz
dWx0X2NvdW50c1t2YWx1ZV0gKz0gMQorCisgICAgZW50cm9weV9zdW0gPSAwCisKKyAgICBmb3Ig
Y291bnQgaW4gcmVzdWx0X2NvdW50cy52YWx1ZXMoKToKKyAgICAgICAgcHJvcCA9IGZsb2F0KGNv
dW50KSAvIHRvdGFsCisgICAgICAgIGVudHJvcHlfc3VtIC09IHByb3AgKiBsb2cocHJvcCwgMikK
KworICAgIHJldHVybiBlbnRyb3B5X3N1bQorCisKK2RlZiBzcGxpdF9yZXN1bHRzKHByb3AsIHJl
c3VsdHMpOgorICAgICIiIlNwbGl0IGEgZGljdGlvbmFyeSBvZiByZXN1bHRzIGludG8gYSBkaWN0
aW9uYXJ5IG9mIGRpY3Rpb25hcmllcyB3aGVyZQorICAgIGVhY2ggc3ViLWRpY3Rpb25hcnkgaGFz
IGEgc3BlY2lmaWMgdmFsdWUgb2YgdGhlIGdpdmVuIHByb3BlcnR5IiIiCisgICAgYnlfcHJvcCA9
IGRlZmF1bHRkaWN0KGRpY3QpCisgICAgZm9yIHJ1bl9pbmZvLCB2YWx1ZSBpbiByZXN1bHRzLml0
ZW1zKCk6CisgICAgICAgIGJ5X3Byb3BbcnVuX2luZm9bcHJvcF1dW3J1bl9pbmZvXSA9IHZhbHVl
CisKKyAgICByZXR1cm4gYnlfcHJvcAorCisKK2RlZiBidWlsZF90cmVlKHByb3BlcnRpZXMsIGRl
cGVuZGVudF9wcm9wcywgcmVzdWx0cywgdHJlZT1Ob25lKToKKyAgICAiIiJCdWlsZCBhIGRlY2lz
aW9uIHRyZWUgbWFwcGluZyBwcm9wZXJ0aWVzIHRvIHJlc3VsdHMKKworICAgIDpwYXJhbSBwcm9w
ZXJ0aWVzOiAtIEEgbGlzdCBvZiBydW5faW5mbyBwcm9wZXJ0aWVzIHRvIGNvbnNpZGVyCisgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRyZWUKKyAgICA6cGFyYW0gZGVwZW5kZW50X3By
b3BzOiAtIEEgZGljdGlvbmFyeSBtYXBwaW5nIHByb3BlcnR5IG5hbWUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvIHByb3BlcnRpZXMgdGhhdCBzaG91bGQgb25seSBiZSBjb25zaWRl
cmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlciB0aGUgcHJvcGVydGllcyBp
biB0aGUga2V5LiBGb3IgZXhhbXBsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJv
cyI6IFsidmVyc2lvbiJdfSBtZWFucyB0aGF0ICJ2ZXJzaW9uIiB3b24ndAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmUgdXNlZCB1bnRpbCBhZnRlciBvcy4KKyAgICA6cGFyYW0gcmVz
dWx0czogRGljdGlvbmFyeSBtYXBwaW5nIHJ1bl9pbmZvIHRvIHNldCBvZiByZXN1bHRzCisgICAg
OnRyZWU6IEEgTm9kZSBvYmplY3QgdG8gdXNlIGFzIHRoZSByb290IG9mIHRoZSAoc3ViKXRyZWUi
IiIKKworICAgIGlmIHRyZWUgaXMgTm9uZToKKyAgICAgICAgdHJlZSA9IE5vZGUoTm9uZSwgTm9u
ZSkKKworICAgIHByb3BfaW5kZXggPSB7cHJvcDogaSBmb3IgaSwgcHJvcCBpbiBlbnVtZXJhdGUo
cHJvcGVydGllcyl9CisKKyAgICBhbGxfcmVzdWx0cyA9IGRlZmF1bHRkaWN0KGludCkKKyAgICBm
b3IgcmVzdWx0X3ZhbHVlcyBpbiByZXN1bHRzLnZhbHVlcygpOgorICAgICAgICBmb3IgcmVzdWx0
X3ZhbHVlLCBjb3VudCBpbiByZXN1bHRfdmFsdWVzLml0ZW1zKCk6CisgICAgICAgICAgICBhbGxf
cmVzdWx0c1tyZXN1bHRfdmFsdWVdICs9IGNvdW50CisKKyAgICAjIElmIHRoZXJlIGlzIG9ubHkg
b25lIHJlc3VsdCB3ZSBhcmUgZG9uZQorICAgIGlmIG5vdCBwcm9wZXJ0aWVzIG9yIGxlbihhbGxf
cmVzdWx0cykgPT0gMToKKyAgICAgICAgZm9yIHZhbHVlLCBjb3VudCBpbiBhbGxfcmVzdWx0cy5p
dGVtcygpOgorICAgICAgICAgICAgdHJlZS5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAor
ICAgICAgICB0cmVlLnJ1bl9pbmZvIHw9IHNldChyZXN1bHRzLmtleXMoKSkKKyAgICAgICAgcmV0
dXJuIHRyZWUKKworICAgIHJlc3VsdHNfcGFydGl0aW9ucyA9IFtdCisgICAgcmVtb3ZlX3Byb3Bl
cnRpZXMgPSBzZXQoKQorICAgIGZvciBwcm9wIGluIHByb3BlcnRpZXM6CisgICAgICAgIHJlc3Vs
dF9zZXRzID0gc3BsaXRfcmVzdWx0cyhwcm9wLCByZXN1bHRzKQorICAgICAgICBpZiBsZW4ocmVz
dWx0X3NldHMpID09IDE6CisgICAgICAgICAgICAjIElmIHRoaXMgcHJvcGVydHkgZG9lc24ndCBw
YXJ0aXRpb24gdGhlIHNwYWNlIHRoZW4ganVzdCByZW1vdmUgaXQKKyAgICAgICAgICAgICMgZnJv
bSB0aGUgc2V0IHRvIGNvbnNpZGVyCisgICAgICAgICAgICByZW1vdmVfcHJvcGVydGllcy5hZGQo
cHJvcCkKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIG5ld19lbnRyb3B5ID0gMC4KKyAg
ICAgICAgcmVzdWx0c19zZXRzX2VudHJvcHkgPSBbXQorICAgICAgICBmb3IgcHJvcF92YWx1ZSwg
cmVzdWx0X3NldCBpbiByZXN1bHRfc2V0cy5pdGVtcygpOgorICAgICAgICAgICAgcmVzdWx0c19z
ZXRzX2VudHJvcHkuYXBwZW5kKChlbnRyb3B5KHJlc3VsdF9zZXQpLCBwcm9wX3ZhbHVlLCByZXN1
bHRfc2V0KSkKKyAgICAgICAgICAgIG5ld19lbnRyb3B5ICs9IChmbG9hdChsZW4ocmVzdWx0X3Nl
dCkpIC8gbGVuKHJlc3VsdHMpKSAqIHJlc3VsdHNfc2V0c19lbnRyb3B5Wy0xXVswXQorCisgICAg
ICAgIHJlc3VsdHNfcGFydGl0aW9ucy5hcHBlbmQoKG5ld19lbnRyb3B5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHRzX3NldHNfZW50cm9weSkpCisKKyAgICAjIEluIHRoZSBjYXNlIHRoYXQg
bm8gcHJvcGVydGllcyBwYXJ0aXRpb24gdGhlIHNwYWNlCisgICAgaWYgbm90IHJlc3VsdHNfcGFy
dGl0aW9uczoKKyAgICAgICAgZm9yIHZhbHVlLCBjb3VudCBpbiBhbGxfcmVzdWx0cy5pdGVtcygp
OgorICAgICAgICAgICAgdHJlZS5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAorICAgICAg
ICB0cmVlLnJ1bl9pbmZvIHw9IHNldChyZXN1bHRzLmtleXMoKSkKKyAgICAgICAgcmV0dXJuIHRy
ZWUKKworICAgICMgc3BsaXQgYnkgdGhlIHByb3BlcnR5IHdpdGggdGhlIGhpZ2hlc3QgZW50cm9w
eQorICAgIHJlc3VsdHNfcGFydGl0aW9ucy5zb3J0KGtleT1sYW1iZGEgeDogKHhbMF0sIHByb3Bf
aW5kZXhbeFsxXV0pKQorICAgIF8sIGJlc3RfcHJvcCwgc3ViX3Jlc3VsdHMgPSByZXN1bHRzX3Bh
cnRpdGlvbnNbMF0KKworICAgICMgQ3JlYXRlIGEgbmV3IHNldCBvZiBwcm9wZXJ0aWVzIHRoYXQg
Y2FuIGJlIHVzZWQKKyAgICBuZXdfcHJvcHMgPSBwcm9wZXJ0aWVzWzpwcm9wX2luZGV4W2Jlc3Rf
cHJvcF1dICsgcHJvcGVydGllc1twcm9wX2luZGV4W2Jlc3RfcHJvcF0gKyAxOl0KKyAgICBuZXdf
cHJvcHMuZXh0ZW5kKGRlcGVuZGVudF9wcm9wcy5nZXQoYmVzdF9wcm9wLCBbXSkpCisgICAgaWYg
cmVtb3ZlX3Byb3BlcnRpZXM6CisgICAgICAgIG5ld19wcm9wcyA9IFtpdGVtIGZvciBpdGVtIGlu
IG5ld19wcm9wcyBpZiBpdGVtIG5vdCBpbiByZW1vdmVfcHJvcGVydGllc10KKworICAgIGZvciBf
LCBwcm9wX3ZhbHVlLCByZXN1bHRzX3NldHMgaW4gc3ViX3Jlc3VsdHM6CisgICAgICAgIG5vZGUg
PSBOb2RlKGJlc3RfcHJvcCwgcHJvcF92YWx1ZSkKKyAgICAgICAgdHJlZS5hZGQobm9kZSkKKyAg
ICAgICAgYnVpbGRfdHJlZShuZXdfcHJvcHMsIGRlcGVuZGVudF9wcm9wcywgcmVzdWx0c19zZXRz
LCBub2RlKQorICAgIHJldHVybiB0cmVlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQppbmRleCA5
MTAzNThmNTE1OTYuLjM5ZTI0OGIyNTFiMCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5CkBA
IC03NywxMyArNzcsMTUgQEAgY2xhc3MgRm9udEluc3RhbGxlcihvYmplY3QpOgogCiAgICAgICAg
ICMgUGVyIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvcmVzdWx0cy1jb2xs
ZWN0aW9uL2lzc3Vlcy8yMTgKICAgICAgICAgIyBpbnN0YWxsaW5nIEFoZW0gb24gbWFjT1MgaXMg
Zmxha3ksIHNvIGNoZWNrIGlmIGl0IGFjdHVhbGx5IGluc3RhbGxlZAotICAgICAgICBmb250cyA9
IGNoZWNrX291dHB1dChbJy91c3Ivc2Jpbi9zeXN0ZW1fcHJvZmlsZXInLCAnLXhtbCcsICdTUEZv
bnRzRGF0YVR5cGUnXSkKKyAgICAgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3JykgYXMgZjoK
KyAgICAgICAgICAgIGZvbnRzID0gY2hlY2tfb3V0cHV0KFsnL3Vzci9zYmluL3N5c3RlbV9wcm9m
aWxlcicsICcteG1sJywgJ1NQRm9udHNEYXRhVHlwZSddLCBzdGRlcnI9ZikKKwogICAgICAgICB0
cnk6CiAgICAgICAgICAgICAjIGlmIHB5MwotICAgICAgICAgICAgcmVhZFBsaXN0RnJvbUJ5dGVz
ID0gcGxpc3RsaWIucmVhZFBsaXN0RnJvbUJ5dGVzCisgICAgICAgICAgICBsb2FkX3BsaXN0ID0g
cGxpc3RsaWIubG9hZHMKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAg
ICAgcmVhZFBsaXN0RnJvbUJ5dGVzID0gcGxpc3RsaWIucmVhZFBsaXN0RnJvbVN0cmluZwotICAg
ICAgICBmb250cyA9IHJlYWRQbGlzdEZyb21CeXRlcyhmb250cykKKyAgICAgICAgICAgIGxvYWRf
cGxpc3QgPSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tU3RyaW5nCisgICAgICAgIGZvbnRzID0gbG9h
ZF9wbGlzdChmb250cykKICAgICAgICAgYXNzZXJ0IGxlbihmb250cykgPT0gMQogICAgICAgICBm
b3IgZm9udCBpbiBmb250c1swXVsnX2l0ZW1zJ106CiAgICAgICAgICAgICBpZiBmb250WydwYXRo
J10gPT0gaW5zdGFsbGVkX2ZvbnRfcGF0aDoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvX19pbml0X18u
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9mb3JtYXR0ZXJzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL2Nocm9taXVtLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9y
bWF0dGVycy9jaHJvbWl1bS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmU4NmYzMzMwYWY5ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkK
QEAgLTAsMCArMSwyNzYgQEAKK2ltcG9ydCBqc29uCitpbXBvcnQgdGltZQorCitmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorZnJvbSBtb3psb2cuZm9ybWF0dGVycyBpbXBvcnQg
YmFzZQorCisKK2NsYXNzIENocm9taXVtRm9ybWF0dGVyKGJhc2UuQmFzZUZvcm1hdHRlcik6ICAj
IHR5cGU6IGlnbm9yZQorICAgICIiIkZvcm1hdHRlciB0byBwcm9kdWNlIHJlc3VsdHMgbWF0Y2hp
bmcgdGhlIENocm9taXVtIEpTT04gVGVzdCBSZXN1bHRzIGZvcm1hdC4KKyAgICBodHRwczovL2No
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvbWFzdGVyL2RvY3MvdGVzdGlu
Zy9qc29uX3Rlc3RfcmVzdWx0c19mb3JtYXQubWQKKworICAgIE5vdGFibHksIGVhY2ggdGVzdCBo
YXMgYW4gImFydGlmYWN0cyIgZmllbGQgdGhhdCBpcyBhIGRpY3QgY29uc2lzdGluZyBvZgorICAg
ICAgICAibG9nIjogYSBsaXN0IG9mIHN0cmluZ3MgKG9uZSBwZXIgc3VidGVzdCArIG9uZSBmb3Ig
aGFybmVzcyBzdGF0dXMsIHNlZQorICAgICAgICAgICAgX2FwcGVuZF90ZXN0X21lc3NhZ2UgZm9y
IHRoZSBmb3JtYXQpCisgICAgICAgICJzY3JlZW5zaG90cyI6IGEgbGlzdCBvZiBzdHJpbmdzIGlu
IHRoZSBmb3JtYXQgb2YgInVybDogYmFzZTY0IgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZik6CisgICAgICAgICMgV2hldGhlciB0aGUgcnVuIHdhcyBpbnRlcnJ1cHRlZCwgZWl0
aGVyIGJ5IHRoZSB0ZXN0IHJ1bm5lciBvciB1c2VyLgorICAgICAgICBzZWxmLmludGVycnVwdGVk
ID0gRmFsc2UKKworICAgICAgICAjIEEgbWFwIG9mIHRlc3Qgc3RhdHVzIHRvIHRoZSBudW1iZXIg
b2YgdGVzdHMgdGhhdCBoYWQgdGhhdCBzdGF0dXMuCisgICAgICAgIHNlbGYubnVtX2ZhaWx1cmVz
X2J5X3N0YXR1cyA9IGRlZmF1bHRkaWN0KGludCkKKworICAgICAgICAjIFN0YXJ0IHRpbWUsIGV4
cHJlc3NlZCBhcyBvZmZzZXQgc2luY2UgVU5JWCBlcG9jaCBpbiBzZWNvbmRzLgorICAgICAgICBz
ZWxmLnN0YXJ0X3RpbWVzdGFtcF9zZWNvbmRzID0gTm9uZQorCisgICAgICAgICMgVHJpZSBvZiB0
ZXN0IHJlc3VsdHMuIEVhY2ggZGlyZWN0b3J5IGluIHRoZSB0ZXN0IG5hbWUgaXMgYSBub2RlIGlu
CisgICAgICAgICMgdGhlIHRyaWUgYW5kIHRoZSBsZWFmIGNvbnRhaW5zIHRoZSBkaWN0IG9mIHBl
ci10ZXN0IGRhdGEuCisgICAgICAgIHNlbGYudGVzdHMgPSB7fQorCisgICAgICAgICMgVHdvIGRp
Y3Rpb25hcmllcyBrZXllZCBieSB0ZXN0IG5hbWUuIFZhbHVlcyBhcmUgbGlzdHMgb2Ygc3RyaW5n
czoKKyAgICAgICAgIyBhY3R1YWwgbWV0YWRhdGEgY29udGVudCBhbmQgb3RoZXIgbWVzc2FnZXMs
IHJlc3BlY3RpdmVseS4KKyAgICAgICAgIyBTZWUgX2FwcGVuZF90ZXN0X21lc3NhZ2UgZm9yIGV4
YW1wbGVzLgorICAgICAgICBzZWxmLmFjdHVhbF9tZXRhZGF0YSA9IGRlZmF1bHRkaWN0KGxpc3Qp
CisgICAgICAgIHNlbGYubWVzc2FnZXMgPSBkZWZhdWx0ZGljdChsaXN0KQorCisgICAgICAgICMg
TGlzdCBvZiB0ZXN0cyB0aGF0IGhhdmUgZmFpbGluZyBzdWJ0ZXN0cy4KKyAgICAgICAgc2VsZi50
ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMgPSBzZXQoKQorCisgICAgICAgICMgQnJvd3NlciBsb2cg
Zm9yIHRoZSBjdXJyZW50IHRlc3QgdW5kZXIgZXhlY3V0aW9uLgorICAgICAgICAjIFRoZXNlIGxv
Z3MgYXJlIGZyb20gQ2hyb21lRHJpdmVyJ3Mgc3Rkb3V0L2Vyciwgc28gd2UgY2Fubm90IHNheSBm
b3IKKyAgICAgICAgIyBzdXJlIHdoaWNoIHRlc3QgYSBtZXNzYWdlIGlzIGZyb20sIGJ1dCBpbnN0
ZWFkIHdlIGNvcnJlbGF0ZSB0aGVtIGJhc2VkCisgICAgICAgICMgb24gdGltaW5nLgorICAgICAg
ICBzZWxmLmJyb3dzZXJfbG9nID0gW10KKworICAgIGRlZiBfYXBwZW5kX3Rlc3RfbWVzc2FnZShz
ZWxmLCB0ZXN0LCBzdWJ0ZXN0LCB3cHRfYWN0dWFsX3N0YXR1cywgbWVzc2FnZSk6CisgICAgICAg
IHIiIiIKKyAgICAgICAgQXBwZW5kcyB0aGUgbWVzc2FnZSBkYXRhIGZvciBhIHRlc3Qgb3Igc3Vi
dGVzdC4KKworICAgICAgICA6cGFyYW0gc3RyIHRlc3Q6IHRoZSBuYW1lIG9mIHRoZSB0ZXN0Cisg
ICAgICAgIDpwYXJhbSBzdHIgc3VidGVzdDogdGhlIG5hbWUgb2YgdGhlIHN1YnRlc3Qgd2l0aCB0
aGUgbWVzc2FnZS4gV2lsbCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUgaWYg
dGhpcyBpcyBjYWxsZWQgZm9yIGEgdGVzdC4KKyAgICAgICAgOnBhcmFtIHN0ciB3cHRfYWN0dWFs
X3N0YXR1czogdGhlIHRlc3Qgc3RhdHVzIGFzIHJlcG9ydGVkIGJ5IFdQVAorICAgICAgICA6cGFy
YW0gc3RyIG1lc3NhZ2U6IHRoZSBzdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSBtZXNzYWdlIGZvciB0
aGlzIHRlc3QKKworICAgICAgICBFeGFtcGxlIGFjdHVhbF9tZXRhZGF0YSBvZiBhIHRlc3Qgd2l0
aCBhIHN1YnRlc3Q6CisgICAgICAgICAgICAiW3Rlc3RfbmFtZV1cbiAgZXhwZWN0ZWQ6IE9LXG4i
CisgICAgICAgICAgICAiICBbc3VidGVzdF9uYW1lXVxuICAgIGV4cGVjdGVkOiBGQUlMXG4iCisK
KyAgICAgICAgTk9URTogdGhyb3VnaG91dCB0aGlzIGZ1bmN0aW9uIHdlIG91dHB1dCBhIGtleSBj
YWxsZWQgImV4cGVjdGVkIiBidXQKKyAgICAgICAgZmlsbCBpdCBpbiB3aXRoIHRoZSBhY3R1YWwg
c3RhdHVzLiBUaGlzIGlzIGJ5IGRlc2lnbi4gVGhlIGdvYWwgb2YgdGhpcworICAgICAgICBvdXRw
dXQgaXMgdG8gbG9vayBleGFjdGx5IGxpa2UgV1BUJ3MgZXhwZWN0YXRpb24gbWV0YWRhdGEgc28g
dGhhdCBpdAorICAgICAgICBjYW4gYmUgZWFzaWx5IGRpZmYtZWQuCisKKyAgICAgICAgTWVzc2Fn
ZXMgYXJlIGFwcGVuZGVkIHZlcmJhdGltIHRvIHNlbGYubWVzc2FnZXNbdGVzdF0uCisgICAgICAg
ICIiIgorICAgICAgICBpZiBzdWJ0ZXN0OgorICAgICAgICAgICAgcmVzdWx0ID0gIiAgWyVzXVxu
ICAgIGV4cGVjdGVkOiAlc1xuIiAlIChzdWJ0ZXN0LCB3cHRfYWN0dWFsX3N0YXR1cykKKyAgICAg
ICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhW3Rlc3RdLmFwcGVuZChyZXN1bHQpCisgICAgICAg
ICAgICBpZiBtZXNzYWdlOgorICAgICAgICAgICAgICAgIHNlbGYubWVzc2FnZXNbdGVzdF0uYXBw
ZW5kKCIlczogJXNcbiIgJSAoc3VidGVzdCwgbWVzc2FnZSkpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAjIE5vIHN1YnRlc3QsIHNvIHRoaXMgaXMgdGhlIHRvcC1sZXZlbCB0ZXN0LiBUaGUg
cmVzdWx0IG11c3QgYmUKKyAgICAgICAgICAgICMgcHJlcGVuZGVkIHRvIHRoZSBsaXN0LCBzbyB0
aGF0IGl0IGNvbWVzIGJlZm9yZSBhbnkgc3VidGVzdC4KKyAgICAgICAgICAgIHRlc3RfbmFtZV9s
YXN0X3BhcnQgPSB0ZXN0LnNwbGl0KCIvIilbLTFdCisgICAgICAgICAgICByZXN1bHQgPSAiWyVz
XVxuICBleHBlY3RlZDogJXNcbiIgJSAodGVzdF9uYW1lX2xhc3RfcGFydCwgd3B0X2FjdHVhbF9z
dGF0dXMpCisgICAgICAgICAgICBzZWxmLmFjdHVhbF9tZXRhZGF0YVt0ZXN0XS5pbnNlcnQoMCwg
cmVzdWx0KQorICAgICAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgICAgICBzZWxmLm1l
c3NhZ2VzW3Rlc3RdLmluc2VydCgwLCAiSGFybmVzczogJXNcbiIgJSBtZXNzYWdlKQorCisgICAg
ZGVmIF9hcHBlbmRfYXJ0aWZhY3Qoc2VsZiwgY3VyX2RpY3QsIGFydGlmYWN0X25hbWUsIGFydGlm
YWN0X3ZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIEFwcGVuZHMgYXJ0aWZhY3RzIHRvIHRo
ZSBzcGVjaWZpZWQgZGljdGlvbmFyeS4KKyAgICAgICAgOnBhcmFtIGRpY3QgY3VyX2RpY3Q6IHRo
ZSB0ZXN0IGxlYWYgZGljdGlvbmFyeSB0byBhcHBlbmQgdG8KKyAgICAgICAgOnBhcmFtIHN0ciBh
cnRpZmFjdF9uYW1lOiB0aGUgbmFtZSBvZiB0aGUgYXJ0aWZhY3QKKyAgICAgICAgOnBhcmFtIHN0
ciBhcnRpZmFjdF92YWx1ZTogdGhlIHZhbHVlIG9mIHRoZSBhcnRpZmFjdAorICAgICAgICAiIiIK
KyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYXJ0aWZhY3RfdmFsdWUsIHN0ciksICJhcnRpZmFj
dF92YWx1ZSBtdXN0IGJlIGEgc3RyIgorICAgICAgICBpZiAiYXJ0aWZhY3RzIiBub3QgaW4gY3Vy
X2RpY3Qua2V5cygpOgorICAgICAgICAgICAgY3VyX2RpY3RbImFydGlmYWN0cyJdID0gZGVmYXVs
dGRpY3QobGlzdCkKKyAgICAgICAgY3VyX2RpY3RbImFydGlmYWN0cyJdW2FydGlmYWN0X25hbWVd
LmFwcGVuZChhcnRpZmFjdF92YWx1ZSkKKworICAgIGRlZiBfc3RvcmVfdGVzdF9yZXN1bHQoc2Vs
ZiwgbmFtZSwgYWN0dWFsLCBleHBlY3RlZCwgYWN0dWFsX21ldGFkYXRhLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZXMsIHdwdF9hY3R1YWwsIHN1YnRlc3RfZmFpbHVyZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnRlc3Rfc2NyZWVuc2hvdHM9Tm9uZSk6CisgICAg
ICAgICIiIgorICAgICAgICBTdG9yZXMgdGhlIHJlc3VsdCBvZiBhIHNpbmdsZSB0ZXN0IGluIHxz
ZWxmLnRlc3RzfAorCisgICAgICAgIDpwYXJhbSBzdHIgbmFtZTogbmFtZSBvZiB0aGUgdGVzdC4K
KyAgICAgICAgOnBhcmFtIHN0ciBhY3R1YWw6IGFjdHVhbCBzdGF0dXMgb2YgdGhlIHRlc3QuCisg
ICAgICAgIDpwYXJhbSBzdHIgZXhwZWN0ZWQ6IGV4cGVjdGVkIHN0YXR1c2VzIG9mIHRoZSB0ZXN0
LgorICAgICAgICA6cGFyYW0gbGlzdCBhY3R1YWxfbWV0YWRhdGE6IGEgbGlzdCBvZiBtZXRhZGF0
YSBpdGVtcy4KKyAgICAgICAgOnBhcmFtIGxpc3QgbWVzc2FnZXM6IGEgbGlzdCBvZiB0ZXN0IG1l
c3NhZ2VzLgorICAgICAgICA6cGFyYW0gc3RyIHdwdF9hY3R1YWw6IGFjdHVhbCBzdGF0dXMgcmVw
b3J0ZWQgYnkgd3B0LCBtYXkgZGlmZmVyIGZyb20gfGFjdHVhbHwuCisgICAgICAgIDpwYXJhbSBi
b29sIHN1YnRlc3RfZmFpbHVyZTogd2hldGhlciB0aGlzIHRlc3QgZmFpbGVkIGJlY2F1c2Ugb2Yg
c3VidGVzdHMuCisgICAgICAgIDpwYXJhbSBPcHRpb25hbFtsaXN0XSByZWZ0ZXN0X3NjcmVlbnNo
b3RzOiBzZWUgZXhlY3V0b3JzL2Jhc2UucHkgZm9yIGRlZmluaXRpb24uCisgICAgICAgICIiIgor
ICAgICAgICAjIFRoZSB0ZXN0IG5hbWUgY2FuIGNvbnRhaW4gYSBsZWFkaW5nIC8gd2hpY2ggd2ls
bCBwcm9kdWNlIGFuIGVtcHR5CisgICAgICAgICMgc3RyaW5nIGluIHRoZSBmaXJzdCBwb3NpdGlv
biBvZiB0aGUgbGlzdCByZXR1cm5lZCBieSBzcGxpdC4gV2UgdXNlCisgICAgICAgICMgZmlsdGVy
KE5vbmUpIHRvIHJlbW92ZSBzdWNoIGVudHJpZXMuCisgICAgICAgIG5hbWVfcGFydHMgPSBmaWx0
ZXIoTm9uZSwgbmFtZS5zcGxpdCgiLyIpKQorICAgICAgICBjdXJfZGljdCA9IHNlbGYudGVzdHMK
KyAgICAgICAgZm9yIG5hbWVfcGFydCBpbiBuYW1lX3BhcnRzOgorICAgICAgICAgICAgY3VyX2Rp
Y3QgPSBjdXJfZGljdC5zZXRkZWZhdWx0KG5hbWVfcGFydCwge30pCisgICAgICAgIGN1cl9kaWN0
WyJhY3R1YWwiXSA9IGFjdHVhbAorICAgICAgICBjdXJfZGljdFsiZXhwZWN0ZWQiXSA9IGV4cGVj
dGVkCisgICAgICAgIGlmIHN1YnRlc3RfZmFpbHVyZToKKyAgICAgICAgICAgIHNlbGYuX2FwcGVu
ZF9hcnRpZmFjdChjdXJfZGljdCwgIndwdF9zdWJ0ZXN0X2ZhaWx1cmUiLCAidHJ1ZSIpCisgICAg
ICAgIGlmIHdwdF9hY3R1YWwgIT0gYWN0dWFsOgorICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2Fy
dGlmYWN0KGN1cl9kaWN0LCAid3B0X2FjdHVhbF9zdGF0dXMiLCB3cHRfYWN0dWFsKQorICAgICAg
ICBpZiB3cHRfYWN0dWFsID09ICdDUkFTSCc6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxm
LmJyb3dzZXJfbG9nOgorICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVuZF9hcnRpZmFjdChjdXJf
ZGljdCwgIndwdF9jcmFzaF9sb2ciLCBsaW5lKQorICAgICAgICBmb3IgbWV0YWRhdGEgaW4gYWN0
dWFsX21ldGFkYXRhOgorICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2FydGlmYWN0KGN1cl9kaWN0
LCAid3B0X2FjdHVhbF9tZXRhZGF0YSIsIG1ldGFkYXRhKQorICAgICAgICBmb3IgbWVzc2FnZSBp
biBtZXNzYWdlczoKKyAgICAgICAgICAgIHNlbGYuX2FwcGVuZF9hcnRpZmFjdChjdXJfZGljdCwg
IndwdF9sb2ciLCBtZXNzYWdlKQorCisgICAgICAgICMgU3RvcmUgc2NyZWVuc2hvdHMgKGlmIGFu
eSkuCisgICAgICAgIGZvciBpdGVtIGluIHJlZnRlc3Rfc2NyZWVuc2hvdHMgb3IgW106CisgICAg
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCBkaWN0KToKKyAgICAgICAgICAgICAgICAj
IFNraXAgdGhlIHJlbGF0aW9uIHN0cmluZy4KKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgZGF0YSA9ICIlczogJXMiICUgKGl0ZW1bInVybCJdLCBpdGVtWyJzY3JlZW5zaG90
Il0pCisgICAgICAgICAgICBzZWxmLl9hcHBlbmRfYXJ0aWZhY3QoY3VyX2RpY3QsICJzY3JlZW5z
aG90cyIsIGRhdGEpCisKKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHRoZXJlIHdhcyBhIHJlZ3Jl
c3Npb24gb3IgdW5leHBlY3RlZCBzdGF0dXMuIFRoaXMgb25seQorICAgICAgICAjIGhhcHBlbnMg
Zm9yIHRlc3RzIHRoYXQgd2VyZSBydW4KKyAgICAgICAgaWYgYWN0dWFsICE9ICJTS0lQIjoKKyAg
ICAgICAgICAgIGlmIGFjdHVhbCBub3QgaW4gZXhwZWN0ZWQ6CisgICAgICAgICAgICAgICAgY3Vy
X2RpY3RbImlzX3VuZXhwZWN0ZWQiXSA9IFRydWUKKyAgICAgICAgICAgICAgICBpZiBhY3R1YWwg
IT0gIlBBU1MiOgorICAgICAgICAgICAgICAgICAgICBjdXJfZGljdFsiaXNfcmVncmVzc2lvbiJd
ID0gVHJ1ZQorCisgICAgZGVmIF9tYXBfc3RhdHVzX25hbWUoc2VsZiwgc3RhdHVzKToKKyAgICAg
ICAgIiIiCisgICAgICAgIE1hcHMgYSBXUFQgc3RhdHVzIHRvIGEgQ2hyb21pdW0gc3RhdHVzLgor
CisgICAgICAgIENocm9taXVtIGhhcyBmaXZlIG1haW4gc3RhdHVzZXMgdGhhdCB3ZSBoYXZlIHRv
IG1hcCB0bzoKKyAgICAgICAgQ1JBU0g6IHRoZSB0ZXN0IGhhcm5lc3MgY3Jhc2hlZAorICAgICAg
ICBGQUlMOiB0aGUgdGVzdCBkaWQgbm90IHJ1biBhcyBleHBlY3RlZAorICAgICAgICBQQVNTOiB0
aGUgdGVzdCByYW4gYXMgZXhwZWN0ZWQKKyAgICAgICAgU0tJUDogdGhlIHRlc3Qgd2FzIG5vdCBy
dW4KKyAgICAgICAgVElNRU9VVDogdGhlIGRpZCBub3QgZmluaXNoIGluIHRpbWUgYW5kIHdhcyBh
Ym9ydGVkCisKKyAgICAgICAgOnBhcmFtIHN0ciBzdGF0dXM6IHRoZSBzdHJpbmcgc3RhdHVzIG9m
IGEgdGVzdCBmcm9tIFdQVAorICAgICAgICA6cmV0dXJuOiBhIGNvcnJlc3BvbmRpbmcgc3RyaW5n
IHN0YXR1cyBmb3IgQ2hyb21pdW0KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHN0YXR1cyA9PSAi
T0siOgorICAgICAgICAgICAgcmV0dXJuICJQQVNTIgorICAgICAgICBpZiBzdGF0dXMgPT0gIk5P
VFJVTiI6CisgICAgICAgICAgICByZXR1cm4gIlNLSVAiCisgICAgICAgIGlmIHN0YXR1cyA9PSAi
RVhURVJOQUwtVElNRU9VVCI6CisgICAgICAgICAgICByZXR1cm4gIlRJTUVPVVQiCisgICAgICAg
IGlmIHN0YXR1cyBpbiAoIkVSUk9SIiwgIlBSRUNPTkRJVElPTl9GQUlMRUQiKToKKyAgICAgICAg
ICAgIHJldHVybiAiRkFJTCIKKyAgICAgICAgaWYgc3RhdHVzID09ICJJTlRFUk5BTC1FUlJPUiI6
CisgICAgICAgICAgICByZXR1cm4gIkNSQVNIIgorICAgICAgICAjIEFueSBvdGhlciBzdGF0dXMg
anVzdCBnZXRzIHJldHVybmVkIGFzLWlzLgorICAgICAgICByZXR1cm4gc3RhdHVzCisKKyAgICBk
ZWYgX2dldF9leHBlY3RlZF9zdGF0dXNfZnJvbV9kYXRhKHNlbGYsIGFjdHVhbF9zdGF0dXMsIGRh
dGEpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyB0aGUgZXhwZWN0ZWQgc3RhdHVzZXMgZnJv
bSBhIHxkYXRhfCBkaWN0aW9uYXJ5LgorCisgICAgICAgIElmIHRoZXJlIGlzIG5vIGV4cGVjdGVk
IHN0YXR1cyBpbiBkYXRhLCB0aGUgYWN0dWFsIHN0YXR1cyBpcyByZXR1cm5lZC4KKyAgICAgICAg
VGhpcyBpcyBiZWNhdXNlIG1vemxvZyB3aWxsIGRlbGV0ZSAiZXhwZWN0ZWQiIGZyb20gfGRhdGF8
IGlmIGl0IGlzIHRoZQorICAgICAgICBzYW1lIGFzICJzdGF0dXMiLiBTbyB0aGUgcHJlc2VuY2Ug
b2YgImV4cGVjdGVkIiBpbXBsaWVzIHRoYXQgInN0YXR1cyIgaXMKKyAgICAgICAgdW5leHBlY3Rl
ZC4gQ29udmVyc2VseSwgdGhlIGFic2VuY2Ugb2YgImV4cGVjdGVkIiBpbXBsaWVzIHRoZSAic3Rh
dHVzIgorICAgICAgICBpcyBleHBlY3RlZC4gU28gd2UgdXNlIHRoZSAiZXhwZWN0ZWQiIHN0YXR1
cyBpZiBpdCdzIHRoZXJlIG9yIGZhbGwgYmFjaworICAgICAgICB0byB0aGUgYWN0dWFsIHN0YXR1
cyBpZiBpdCdzIG5vdC4KKworICAgICAgICBJZiB0aGUgdGVzdCBoYXMgbXVsdGlwbGUgc3RhdHVz
ZXMsIGl0IHdpbGwgaGF2ZSBvdGhlciBzdGF0dXNlcyBsaXN0ZWQgYXMKKyAgICAgICAgImtub3du
X2ludGVybWl0dGVudCIgaW4gfGRhdGF8LiBJZiB0aGVzZSBleGlzdCwgdGhleSB3aWxsIGJlIGFk
ZGVkIHRvCisgICAgICAgIHRoZSByZXR1cm5lZCBzdGF0dXMgd2l0aCBzcGFjZWQgaW4gYmV0d2Vl
bi4KKworICAgICAgICA6cGFyYW0gc3RyIGFjdHVhbF9zdGF0dXM6IHRoZSBhY3R1YWwgc3RhdHVz
IG9mIHRoZSB0ZXN0CisgICAgICAgIDpwYXJhbSBkYXRhOiBhIGRhdGEgZGljdGlvbmFyeSB0byBl
eHRyYWN0IGV4cGVjdGVkIHN0YXR1cyBmcm9tCisgICAgICAgIDpyZXR1cm4gc3RyOiB0aGUgZXhw
ZWN0ZWQgc3RhdHVzZXMgYXMgYSBzdHJpbmcKKyAgICAgICAgIiIiCisgICAgICAgIGV4cGVjdGVk
X3N0YXR1c2VzID0gc2VsZi5fbWFwX3N0YXR1c19uYW1lKGRhdGFbImV4cGVjdGVkIl0pIGlmICJl
eHBlY3RlZCIgaW4gZGF0YSBlbHNlIGFjdHVhbF9zdGF0dXMKKyAgICAgICAgaWYgZGF0YS5nZXQo
Imtub3duX2ludGVybWl0dGVudCIpOgorICAgICAgICAgICAgYWxsX3N0YXRzdWVzID0ge3NlbGYu
X21hcF9zdGF0dXNfbmFtZShvdGhlcl9zdGF0dXMpIGZvciBvdGhlcl9zdGF0dXMgaW4gZGF0YVsi
a25vd25faW50ZXJtaXR0ZW50Il19CisgICAgICAgICAgICBhbGxfc3RhdHN1ZXMuYWRkKGV4cGVj
dGVkX3N0YXR1c2VzKQorICAgICAgICAgICAgZXhwZWN0ZWRfc3RhdHVzZXMgPSAiICIuam9pbihz
b3J0ZWQoYWxsX3N0YXRzdWVzKSkKKyAgICAgICAgcmV0dXJuIGV4cGVjdGVkX3N0YXR1c2VzCisK
KyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6CisgICAgICAgICMgfGRhdGF8IGNvbnRh
aW5zIGEgdGltZXN0YW1wIGluIG1pY3Jvc2Vjb25kcywgd2hpbGUgdGltZS50aW1lKCkgZ2l2ZXMK
KyAgICAgICAgIyBpdCBpbiBzZWNvbmRzLgorICAgICAgICBzZWxmLnN0YXJ0X3RpbWVzdGFtcF9z
ZWNvbmRzID0gKGZsb2F0KGRhdGFbInRpbWUiXSkgLyAxMDAwIGlmICJ0aW1lIiBpbiBkYXRhCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB0aW1lLnRpbWUoKSkK
KworICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdF9uYW1lID0g
ZGF0YVsidGVzdCJdCisgICAgICAgIHdwdF9hY3R1YWxfc3RhdHVzID0gZGF0YVsic3RhdHVzIl0K
KyAgICAgICAgYWN0dWFsX3N0YXR1cyA9IHNlbGYuX21hcF9zdGF0dXNfbmFtZSh3cHRfYWN0dWFs
X3N0YXR1cykKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVzZXMgPSBzZWxmLl9nZXRfZXhwZWN0ZWRf
c3RhdHVzX2Zyb21fZGF0YShhY3R1YWxfc3RhdHVzLCBkYXRhKQorCisgICAgICAgIGlzX3VuZXhw
ZWN0ZWQgPSBhY3R1YWxfc3RhdHVzIG5vdCBpbiBleHBlY3RlZF9zdGF0dXNlcworICAgICAgICBp
ZiBpc191bmV4cGVjdGVkIGFuZCB0ZXN0X25hbWUgbm90IGluIHNlbGYudGVzdHNfd2l0aF9zdWJ0
ZXN0X2ZhaWxzOgorICAgICAgICAgICAgc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMuYWRk
KHRlc3RfbmFtZSkKKyAgICAgICAgIyBXZSBzaG91bGQgYWx3YXlzIGdldCBhIHN1YnRlc3QgaW4g
dGhlIGRhdGEgZGljdCwgYnV0IGl0J3MgdGVjaG5pY2FsbHkKKyAgICAgICAgIyBwb3NzaWJsZSB0
aGF0IGl0J3MgbWlzc2luZy4gQmUgcmVzaWxpZW50IGhlcmUuCisgICAgICAgIHN1YnRlc3RfbmFt
ZSA9IGRhdGEuZ2V0KCJzdWJ0ZXN0IiwgIlVOS05PV04gU1VCVEVTVCIpCisgICAgICAgIHNlbGYu
X2FwcGVuZF90ZXN0X21lc3NhZ2UodGVzdF9uYW1lLCBzdWJ0ZXN0X25hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd3B0X2FjdHVhbF9zdGF0dXMsIGRhdGEuZ2V0KCJtZXNz
YWdlIiwgIiIpKQorCisgICAgZGVmIHRlc3RfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0
X25hbWUgPSBkYXRhWyJ0ZXN0Il0KKyAgICAgICAgIyBTYXZlIHRoZSBzdGF0dXMgcmVwb3J0ZWQg
YnkgV1BUIHNpbmNlIHdlIG1pZ2h0IGNoYW5nZSBpdCB3aGVuCisgICAgICAgICMgcmVwb3J0aW5n
IHRvIENocm9taXVtLgorICAgICAgICB3cHRfYWN0dWFsX3N0YXR1cyA9IGRhdGFbInN0YXR1cyJd
CisgICAgICAgIGFjdHVhbF9zdGF0dXMgPSBzZWxmLl9tYXBfc3RhdHVzX25hbWUod3B0X2FjdHVh
bF9zdGF0dXMpCisgICAgICAgIGV4cGVjdGVkX3N0YXR1c2VzID0gc2VsZi5fZ2V0X2V4cGVjdGVk
X3N0YXR1c19mcm9tX2RhdGEoYWN0dWFsX3N0YXR1cywgZGF0YSkKKyAgICAgICAgc3VidGVzdF9m
YWlsdXJlID0gRmFsc2UKKyAgICAgICAgaWYgdGVzdF9uYW1lIGluIHNlbGYudGVzdHNfd2l0aF9z
dWJ0ZXN0X2ZhaWxzOgorICAgICAgICAgICAgc3VidGVzdF9mYWlsdXJlID0gVHJ1ZQorICAgICAg
ICAgICAgIyBDbGVhbiB1cCB0aGUgdGVzdCBsaXN0IHRvIGF2b2lkIGFjY3VtdWxhdGluZyB0b28g
bWFueS4KKyAgICAgICAgICAgIHNlbGYudGVzdHNfd2l0aF9zdWJ0ZXN0X2ZhaWxzLnJlbW92ZSh0
ZXN0X25hbWUpCisgICAgICAgICAgICAjIFRoaXMgdGVzdCBwYXNzZWQgYnV0IGl0IGhhcyBmYWls
aW5nIHN1YnRlc3RzLiBTaW5jZSB3ZSBjYW4gb25seQorICAgICAgICAgICAgIyByZXBvcnQgYSBz
aW5nbGUgc3RhdHVzIHRvIENocm9taXVtLCB3ZSBjaG9vc2UgRkFJTCB0byBpbmRpY2F0ZQorICAg
ICAgICAgICAgIyB0aGF0IHNvbWV0aGluZyBhYm91dCB0aGlzIHRlc3QgZGlkIG5vdCBydW4gY29y
cmVjdGx5LgorICAgICAgICAgICAgaWYgYWN0dWFsX3N0YXR1cyA9PSAiUEFTUyI6CisgICAgICAg
ICAgICAgICAgYWN0dWFsX3N0YXR1cyA9ICJGQUlMIgorCisgICAgICAgIHNlbGYuX2FwcGVuZF90
ZXN0X21lc3NhZ2UodGVzdF9uYW1lLCBOb25lLCB3cHRfYWN0dWFsX3N0YXR1cywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmdldCgibWVzc2FnZSIsICIiKSkKKyAgICAg
ICAgc2VsZi5fc3RvcmVfdGVzdF9yZXN1bHQodGVzdF9uYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhY3R1YWxfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHBlY3RlZF9zdGF0dXNlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5hY3R1YWxfbWV0YWRhdGFbdGVzdF9uYW1lXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5tZXNzYWdlc1t0ZXN0X25hbWVdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3cHRfYWN0dWFsX3N0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3VidGVzdF9mYWlsdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhLmdldCgiZXh0cmEiLCB7fSkuZ2V0KCJyZWZ0ZXN0X3NjcmVlbnNob3RzIikpCisKKyAgICAg
ICAgIyBSZW1vdmUgdGhlIHRlc3QgZnJvbSBkaWN0cyB0byBhdm9pZCBhY2N1bXVsYXRpbmcgdG9v
IG1hbnkuCisgICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhLnBvcCh0ZXN0X25hbWUpCisgICAg
ICAgIHNlbGYubWVzc2FnZXMucG9wKHRlc3RfbmFtZSkKKworICAgICAgICAjIFVwZGF0ZSB0aGUg
Y291bnQgb2YgaG93IG1hbnkgdGVzdHMgcmFuIHdpdGggZWFjaCBzdGF0dXMuCisgICAgICAgIHNl
bGYubnVtX2ZhaWx1cmVzX2J5X3N0YXR1c1thY3R1YWxfc3RhdHVzXSArPSAxCisKKyAgICAgICAg
IyBOZXcgdGVzdCwgbmV3IGJyb3dzZXIgbG9ncy4KKyAgICAgICAgc2VsZi5icm93c2VyX2xvZyA9
IFtdCisKKyAgICBkZWYgc3VpdGVfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICAjIENyZWF0ZSB0
aGUgZmluYWwgcmVzdWx0IGRpY3Rpb25hcnkKKyAgICAgICAgZmluYWxfcmVzdWx0ID0geworICAg
ICAgICAgICAgIyBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZHMgdGhhdCB3ZSBqdXN0IGhh
cmQtY29kZS4KKyAgICAgICAgICAgICJpbnRlcnJ1cHRlZCI6IEZhbHNlLAorICAgICAgICAgICAg
InBhdGhfZGVsaW1pdGVyIjogIi8iLAorICAgICAgICAgICAgInZlcnNpb24iOiAzLAorICAgICAg
ICAgICAgInNlY29uZHNfc2luY2VfZXBvY2giOiBzZWxmLnN0YXJ0X3RpbWVzdGFtcF9zZWNvbmRz
LAorICAgICAgICAgICAgIm51bV9mYWlsdXJlc19ieV90eXBlIjogc2VsZi5udW1fZmFpbHVyZXNf
Ynlfc3RhdHVzLAorICAgICAgICAgICAgInRlc3RzIjogc2VsZi50ZXN0cworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBqc29uLmR1bXBzKGZpbmFsX3Jlc3VsdCkKKworICAgIGRlZiBwcm9jZXNz
X291dHB1dChzZWxmLCBkYXRhKToKKyAgICAgICAgY21kID0gZGF0YS5nZXQoImNvbW1hbmQiLCAi
IikKKyAgICAgICAgaWYgYW55KGMgaW4gY21kIGZvciBjIGluIFsiY2hyb21lZHJpdmVyIiwgImxv
Z2NhdCJdKToKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlcl9sb2cuYXBwZW5kKGRhdGFbJ2RhdGEn
XSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3Rz
L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5
ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3dwdHJlcG9ydC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0
cmVwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODZkNGM0
MmY5N2IwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRyZXBvcnQucHkKQEAgLTAsMCAr
MSwxMzUgQEAKK2ltcG9ydCBqc29uCitpbXBvcnQgcmUKKworZnJvbSBtb3psb2cuc3RydWN0dXJl
ZC5mb3JtYXR0ZXJzLmJhc2UgaW1wb3J0IEJhc2VGb3JtYXR0ZXIKK2Zyb20gLi5leGVjdXRvcnMu
YmFzZSBpbXBvcnQgc3RyaXBfc2VydmVyCisKKworTE9ORV9TVVJST0dBVEVfUkUgPSByZS5jb21w
aWxlKHUiW1x1RDgwMC1cdURGRkZdIikKKworCitkZWYgc3Vycm9nYXRlX3JlcGxhY2VtZW50KG1h
dGNoKToKKyAgICByZXR1cm4gIlUrIiArIGhleChvcmQobWF0Y2guZ3JvdXAoKSkpWzI6XQorCisK
K2RlZiByZXBsYWNlX2xvbmVfc3Vycm9nYXRlKGRhdGEpOgorICAgIHJldHVybiBMT05FX1NVUlJP
R0FURV9SRS5zdWJuKHN1cnJvZ2F0ZV9yZXBsYWNlbWVudCwgZGF0YSlbMF0KKworCitjbGFzcyBX
cHRyZXBvcnRGb3JtYXR0ZXIoQmFzZUZvcm1hdHRlcik6ICAjIHR5cGU6IGlnbm9yZQorICAgICIi
IkZvcm1hdHRlciB0aGF0IHByb2R1Y2VzIHJlc3VsdHMgaW4gdGhlIGZvcm1hdCB0aGF0IHdwdHJl
cG9ydCBleHBlY3RzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxm
LnJhd19yZXN1bHRzID0ge30KKyAgICAgICAgc2VsZi5yZXN1bHRzID0ge30KKworICAgIGRlZiBz
dWl0ZV9zdGFydChzZWxmLCBkYXRhKToKKyAgICAgICAgaWYgJ3J1bl9pbmZvJyBpbiBkYXRhOgor
ICAgICAgICAgICAgc2VsZi5yZXN1bHRzWydydW5faW5mbyddID0gZGF0YVsncnVuX2luZm8nXQor
ICAgICAgICBzZWxmLnJlc3VsdHNbJ3RpbWVfc3RhcnQnXSA9IGRhdGFbJ3RpbWUnXQorICAgICAg
ICBzZWxmLnJlc3VsdHNbInJlc3VsdHMiXSA9IFtdCisKKyAgICBkZWYgc3VpdGVfZW5kKHNlbGYs
IGRhdGEpOgorICAgICAgICBzZWxmLnJlc3VsdHNbJ3RpbWVfZW5kJ10gPSBkYXRhWyd0aW1lJ10K
KyAgICAgICAgZm9yIHRlc3RfbmFtZSBpbiBzZWxmLnJhd19yZXN1bHRzOgorICAgICAgICAgICAg
cmVzdWx0ID0geyJ0ZXN0IjogdGVzdF9uYW1lfQorICAgICAgICAgICAgcmVzdWx0LnVwZGF0ZShz
ZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0pCisgICAgICAgICAgICBzZWxmLnJlc3VsdHNbInJl
c3VsdHMiXS5hcHBlbmQocmVzdWx0KQorICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnJl
c3VsdHMpICsgIlxuIgorCisgICAgZGVmIGZpbmRfb3JfY3JlYXRlX3Rlc3Qoc2VsZiwgZGF0YSk6
CisgICAgICAgIHRlc3RfbmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICBpZiB0ZXN0X25hbWUg
bm90IGluIHNlbGYucmF3X3Jlc3VsdHM6CisgICAgICAgICAgICBzZWxmLnJhd19yZXN1bHRzW3Rl
c3RfbmFtZV0gPSB7CisgICAgICAgICAgICAgICAgInN1YnRlc3RzIjogW10sCisgICAgICAgICAg
ICAgICAgInN0YXR1cyI6ICIiLAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogTm9uZQorICAg
ICAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VsZi5yYXdfcmVzdWx0c1t0ZXN0X25hbWVdCisK
KyAgICBkZWYgdGVzdF9zdGFydChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmlu
ZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICB0ZXN0WyJzdGFydF90aW1lIl0gPSBkYXRh
WyJ0aW1lIl0KKworICAgIGRlZiBjcmVhdGVfc3VidGVzdChzZWxmLCBkYXRhKToKKyAgICAgICAg
dGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICBzdWJ0ZXN0X25h
bWUgPSByZXBsYWNlX2xvbmVfc3Vycm9nYXRlKGRhdGFbInN1YnRlc3QiXSkKKworICAgICAgICBz
dWJ0ZXN0ID0geworICAgICAgICAgICAgIm5hbWUiOiBzdWJ0ZXN0X25hbWUsCisgICAgICAgICAg
ICAic3RhdHVzIjogIiIsCisgICAgICAgICAgICAibWVzc2FnZSI6IE5vbmUKKyAgICAgICAgfQor
ICAgICAgICB0ZXN0WyJzdWJ0ZXN0cyJdLmFwcGVuZChzdWJ0ZXN0KQorCisgICAgICAgIHJldHVy
biBzdWJ0ZXN0CisKKyAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6CisgICAgICAgIHN1
YnRlc3QgPSBzZWxmLmNyZWF0ZV9zdWJ0ZXN0KGRhdGEpCisgICAgICAgIHN1YnRlc3RbInN0YXR1
cyJdID0gZGF0YVsic3RhdHVzIl0KKyAgICAgICAgaWYgImV4cGVjdGVkIiBpbiBkYXRhOgorICAg
ICAgICAgICAgc3VidGVzdFsiZXhwZWN0ZWQiXSA9IGRhdGFbImV4cGVjdGVkIl0KKyAgICAgICAg
aWYgImtub3duX2ludGVybWl0dGVudCIgaW4gZGF0YToKKyAgICAgICAgICAgIHN1YnRlc3RbImtu
b3duX2ludGVybWl0dGVudCJdID0gZGF0YVsia25vd25faW50ZXJtaXR0ZW50Il0KKyAgICAgICAg
aWYgIm1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAgICBzdWJ0ZXN0WyJtZXNzYWdlIl0gPSBy
ZXBsYWNlX2xvbmVfc3Vycm9nYXRlKGRhdGFbIm1lc3NhZ2UiXSkKKworICAgIGRlZiB0ZXN0X2Vu
ZChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChk
YXRhKQorICAgICAgICBzdGFydF90aW1lID0gdGVzdC5wb3AoInN0YXJ0X3RpbWUiKQorICAgICAg
ICB0ZXN0WyJkdXJhdGlvbiJdID0gZGF0YVsidGltZSJdIC0gc3RhcnRfdGltZQorICAgICAgICB0
ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1cyJdCisgICAgICAgIGlmICJleHBlY3RlZCIgaW4g
ZGF0YToKKyAgICAgICAgICAgIHRlc3RbImV4cGVjdGVkIl0gPSBkYXRhWyJleHBlY3RlZCJdCisg
ICAgICAgIGlmICJrbm93bl9pbnRlcm1pdHRlbnQiIGluIGRhdGE6CisgICAgICAgICAgICB0ZXN0
WyJrbm93bl9pbnRlcm1pdHRlbnQiXSA9IGRhdGFbImtub3duX2ludGVybWl0dGVudCJdCisgICAg
ICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgdGVzdFsibWVzc2FnZSJdID0g
cmVwbGFjZV9sb25lX3N1cnJvZ2F0ZShkYXRhWyJtZXNzYWdlIl0pCisgICAgICAgIGlmICJyZWZ0
ZXN0X3NjcmVlbnNob3RzIiBpbiBkYXRhLmdldCgiZXh0cmEiLCB7fSk6CisgICAgICAgICAgICB0
ZXN0WyJzY3JlZW5zaG90cyJdID0geworICAgICAgICAgICAgICAgIHN0cmlwX3NlcnZlcihpdGVt
WyJ1cmwiXSk6ICJzaGExOiIgKyBpdGVtWyJoYXNoIl0KKyAgICAgICAgICAgICAgICBmb3IgaXRl
bSBpbiBkYXRhWyJleHRyYSJdWyJyZWZ0ZXN0X3NjcmVlbnNob3RzIl0KKyAgICAgICAgICAgICAg
ICBpZiB0eXBlKGl0ZW0pID09IGRpY3QKKyAgICAgICAgICAgIH0KKyAgICAgICAgdGVzdF9uYW1l
ID0gZGF0YVsidGVzdCJdCisgICAgICAgIHJlc3VsdCA9IHsidGVzdCI6IGRhdGFbInRlc3QiXX0K
KyAgICAgICAgcmVzdWx0LnVwZGF0ZShzZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0pCisgICAg
ICAgIHNlbGYucmVzdWx0c1sicmVzdWx0cyJdLmFwcGVuZChyZXN1bHQpCisgICAgICAgIHNlbGYu
cmF3X3Jlc3VsdHMucG9wKHRlc3RfbmFtZSkKKworICAgIGRlZiBhc3NlcnRpb25fY291bnQoc2Vs
ZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkK
KyAgICAgICAgdGVzdFsiYXNzZXJ0cyJdID0geworICAgICAgICAgICAgImNvdW50IjogZGF0YVsi
Y291bnQiXSwKKyAgICAgICAgICAgICJtaW4iOiBkYXRhWyJtaW5fZXhwZWN0ZWQiXSwKKyAgICAg
ICAgICAgICJtYXgiOiBkYXRhWyJtYXhfZXhwZWN0ZWQiXQorICAgICAgICB9CisKKyAgICBkZWYg
bHNhbl9sZWFrKHNlbGYsIGRhdGEpOgorICAgICAgICBpZiAibHNhbl9sZWFrcyIgbm90IGluIHNl
bGYucmVzdWx0czoKKyAgICAgICAgICAgIHNlbGYucmVzdWx0c1sibHNhbl9sZWFrcyJdID0gW10K
KyAgICAgICAgbHNhbl9sZWFrcyA9IHNlbGYucmVzdWx0c1sibHNhbl9sZWFrcyJdCisgICAgICAg
IGxzYW5fbGVha3MuYXBwZW5kKHsiZnJhbWVzIjogZGF0YVsiZnJhbWVzIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic2NvcGUiOiBkYXRhWyJzY29wZSJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImFsbG93ZWRfbWF0Y2giOiBkYXRhLmdldCgiYWxsb3dlZF9tYXRjaCIpfSkK
KworICAgIGRlZiBmaW5kX29yX2NyZWF0ZV9tb3psZWFrKHNlbGYsIGRhdGEpOgorICAgICAgICBp
ZiAibW96bGVhayIgbm90IGluIHNlbGYucmVzdWx0czoKKyAgICAgICAgICAgIHNlbGYucmVzdWx0
c1sibW96bGVhayJdID0ge30KKyAgICAgICAgc2NvcGUgPSBkYXRhWyJzY29wZSJdCisgICAgICAg
IGlmIHNjb3BlIG5vdCBpbiBzZWxmLnJlc3VsdHNbIm1vemxlYWsiXToKKyAgICAgICAgICAgIHNl
bGYucmVzdWx0c1sibW96bGVhayJdW3Njb3BlXSA9IHsib2JqZWN0cyI6IFtdLCAidG90YWwiOiBb
XX0KKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0c1sibW96bGVhayJdW3Njb3BlXQorCisgICAg
ZGVmIG1vemxlYWtfb2JqZWN0KHNlbGYsIGRhdGEpOgorICAgICAgICBzY29wZV9kYXRhID0gc2Vs
Zi5maW5kX29yX2NyZWF0ZV9tb3psZWFrKGRhdGEpCisgICAgICAgIHNjb3BlX2RhdGFbIm9iamVj
dHMiXS5hcHBlbmQoeyJwcm9jZXNzIjogZGF0YVsicHJvY2VzcyJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6IGRhdGFbIm5hbWUiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbG93ZWQiOiBkYXRhLmdldCgiYWxsb3dlZCIs
IEZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5dGVzIjog
ZGF0YVsiYnl0ZXMiXX0pCisKKyAgICBkZWYgbW96bGVha190b3RhbChzZWxmLCBkYXRhKToKKyAg
ICAgICAgc2NvcGVfZGF0YSA9IHNlbGYuZmluZF9vcl9jcmVhdGVfbW96bGVhayhkYXRhKQorICAg
ICAgICBzY29wZV9kYXRhWyJ0b3RhbCJdLmFwcGVuZCh7ImJ5dGVzIjogZGF0YVsiYnl0ZXMiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aHJlc2hvbGQiOiBkYXRhLmdl
dCgidGhyZXNob2xkIiwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cHJvY2VzcyI6IGRhdGFbInByb2Nlc3MiXX0pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3dwdHNjcmVl
bnNob3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb3JtYXR0ZXJzL3dwdHNjcmVlbnNob3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi43NTA1NDhiMjgxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0
ZXJzL3dwdHNjcmVlbnNob3QucHkKQEAgLTAsMCArMSw0NyBAQAoraW1wb3J0IHJlcXVlc3RzCitm
cm9tIG1vemxvZy5zdHJ1Y3R1cmVkLmZvcm1hdHRlcnMuYmFzZSBpbXBvcnQgQmFzZUZvcm1hdHRl
cgorCitERUZBVUxUX0FQSSA9ICJodHRwczovL3dwdC5meWkvYXBpL3NjcmVlbnNob3RzL2hhc2hl
cyIKKworCitjbGFzcyBXcHRzY3JlZW5zaG90Rm9ybWF0dGVyKEJhc2VGb3JtYXR0ZXIpOiAgIyB0
eXBlOiBpZ25vcmUKKyAgICAiIiJGb3JtYXR0ZXIgdGhhdCBvdXRwdXRzIHNjcmVlbnNob3RzIGlu
IHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgd3B0LmZ5aS4iIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBhcGk9Tm9uZSk6CisgICAgICAgIHNlbGYuYXBpID0gYXBpIG9yIERFRkFVTFRfQVBJCisg
ICAgICAgIHNlbGYuY2FjaGUgPSBzZXQoKQorCisgICAgZGVmIHN1aXRlX3N0YXJ0KHNlbGYsIGRh
dGEpOgorICAgICAgICAjIFRPRE8oSGV4Y2xlcyk6IFdlIG1pZ2h0IHdhbnQgdG8gbW92ZSB0aGUg
cmVxdWVzdCBpbnRvIGEgZGlmZmVyZW50CisgICAgICAgICMgcGxhY2UsIG1ha2UgaXQgbm9uLWJs
b2NraW5nLCBhbmQgaGFuZGxlIGVycm9ycyBiZXR0ZXIuCisgICAgICAgIHBhcmFtcyA9IHt9Cisg
ICAgICAgIHJ1bl9pbmZvID0gZGF0YS5nZXQoInJ1bl9pbmZvIiwge30pCisgICAgICAgIGlmICJw
cm9kdWN0IiBpbiBydW5faW5mbzoKKyAgICAgICAgICAgIHBhcmFtc1siYnJvd3NlciJdID0gcnVu
X2luZm9bInByb2R1Y3QiXQorICAgICAgICBpZiAiYnJvd3Nlcl92ZXJzaW9uIiBpbiBydW5faW5m
bzoKKyAgICAgICAgICAgIHBhcmFtc1siYnJvd3Nlcl92ZXJzaW9uIl0gPSBydW5faW5mb1siYnJv
d3Nlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgIm9zIiBpbiBydW5faW5mbzoKKyAgICAgICAgICAg
IHBhcmFtc1sib3MiXSA9IHJ1bl9pbmZvWyJvcyJdCisgICAgICAgIGlmICJvc192ZXJzaW9uIiBp
biBydW5faW5mbzoKKyAgICAgICAgICAgIHBhcmFtc1sib3NfdmVyc2lvbiJdID0gcnVuX2luZm9b
Im9zX3ZlcnNpb24iXQorICAgICAgICB0cnk6CisgICAgICAgICAgICByID0gcmVxdWVzdHMuZ2V0
KHNlbGYuYXBpLCBwYXJhbXM9cGFyYW1zKQorICAgICAgICAgICAgci5yYWlzZV9mb3Jfc3RhdHVz
KCkKKyAgICAgICAgICAgIHNlbGYuY2FjaGUgPSBzZXQoci5qc29uKCkpCisgICAgICAgIGV4Y2Vw
dCAocmVxdWVzdHMuZXhjZXB0aW9ucy5SZXF1ZXN0RXhjZXB0aW9uLCBWYWx1ZUVycm9yKToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAg
aWYgInJlZnRlc3Rfc2NyZWVuc2hvdHMiIG5vdCBpbiBkYXRhLmdldCgiZXh0cmEiLCB7fSk6Cisg
ICAgICAgICAgICByZXR1cm4KKyAgICAgICAgb3V0cHV0ID0gIiIKKyAgICAgICAgZm9yIGl0ZW0g
aW4gZGF0YVsiZXh0cmEiXVsicmVmdGVzdF9zY3JlZW5zaG90cyJdOgorICAgICAgICAgICAgaWYg
dHlwZShpdGVtKSAhPSBkaWN0OgorICAgICAgICAgICAgICAgICMgU2tpcCB0aGUgcmVsYXRpb24g
c3RyaW5nLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBjaGVja3N1bSA9
ICJzaGExOiIgKyBpdGVtWyJoYXNoIl0KKyAgICAgICAgICAgIGlmIGNoZWNrc3VtIGluIHNlbGYu
Y2FjaGU6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHNlbGYuY2FjaGUu
YWRkKGNoZWNrc3VtKQorICAgICAgICAgICAgb3V0cHV0ICs9ICJkYXRhOmltYWdlL3BuZztiYXNl
NjQse31cbiIuZm9ybWF0KGl0ZW1bInNjcmVlbnNob3QiXSkKKyAgICAgICAgcmV0dXJuIG91dHB1
dCBpZiBvdXRwdXQgZWxzZSBOb25lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9pbnN0cnVtZW50cy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2luc3RydW1lbnRz
LnB5CmluZGV4IGE4ODdjZjRmZGE3Mi4uNGUzZTAxM2FlYzQzIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9pbnN0cnVtZW50
cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9pbnN0cnVtZW50cy5weQpAQCAtMSw2ICsxLDYgQEAKIGltcG9ydCB0aW1lCiBpbXBv
cnQgdGhyZWFkaW5nCi1mcm9tIHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgUXVldWUKK2Zyb20gcXVl
dWUgaW1wb3J0IFF1ZXVlCiAKICIiIkluc3RydW1lbnRhdGlvbiBmb3IgbWVhc3VyaW5nIGhpZ2gt
bGV2ZWwgdGltZSBzcGVudCBvbiB2YXJpb3VzIHRhc2tzIGluc2lkZSB0aGUgcnVubmVyLgogCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQppbmRleCAzMWM1
N2U5Y2I3MzQuLjFjZDAzNWEzYjI0MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9t
YW5pZmVzdGV4cGVjdGVkLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0IG9zCiBmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBkZXF1ZQotZnJvbSBzaXggaW1wb3J0IHN0cmluZ190eXBlcywgdGV4dF90
eXBlCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KLQorZnJvbSB1
cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAogZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMg
aW1wb3J0IHN0YXRpYwogZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMuYmFzZSBpbXBvcnQgTWFu
aWZlc3RJdGVtCkBAIC00OSw3ICs0Nyw3IEBAIGRlZiBsaXN0X3Byb3AobmFtZSwgbm9kZSk6CiAg
ICAgIiIiTGlzdCBwcm9wZXJ0eSIiIgogICAgIHRyeToKICAgICAgICAgbGlzdF9wcm9wID0gbm9k
ZS5nZXQobmFtZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaXN0X3Byb3AsIHN0cmluZ190eXBl
cyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UobGlzdF9wcm9wLCBzdHIpOgogICAgICAgICAgICAg
cmV0dXJuIFtsaXN0X3Byb3BdCiAgICAgICAgIHJldHVybiBsaXN0KGxpc3RfcHJvcCkKICAgICBl
eGNlcHQgS2V5RXJyb3I6CkBAIC01OSw3ICs1Nyw3IEBAIGRlZiBsaXN0X3Byb3AobmFtZSwgbm9k
ZSk6CiBkZWYgc3RyX3Byb3AobmFtZSwgbm9kZSk6CiAgICAgdHJ5OgogICAgICAgICBwcm9wID0g
bm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHJvcCwgc3RyaW5nX3R5
cGVzKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHJvcCwgc3RyKToKICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IKICAgICAgICAgcmV0dXJuIHByb3AKICAgICBleGNlcHQgS2V5RXJy
b3I6CkBAIC03MCw3ICs2OCw3IEBAIGRlZiB0YWdzKG5vZGUpOgogICAgICIiIlNldCBvZiB0YWdz
IHRoYXQgaGF2ZSBiZWVuIGFwcGxpZWQgdG8gdGhlIHRlc3QiIiIKICAgICB0cnk6CiAgICAgICAg
IHZhbHVlID0gbm9kZS5nZXQoInRhZ3MiKQotICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB0
ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgogICAgICAgICAg
ICAgcmV0dXJuIHt2YWx1ZX0KICAgICAgICAgcmV0dXJuIHNldCh2YWx1ZSkKICAgICBleGNlcHQg
S2V5RXJyb3I6CkBAIC03OSw3ICs3Nyw3IEBAIGRlZiB0YWdzKG5vZGUpOgogCiBkZWYgcHJlZnMo
bm9kZSk6CiAgICAgZGVmIHZhbHVlKGluaV92YWx1ZSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2Uo
aW5pX3ZhbHVlLCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGluaV92YWx1ZSwg
c3RyKToKICAgICAgICAgICAgIHJldHVybiB0dXBsZShwcmVmX3BpZWNlLnN0cmlwKCkgZm9yIHBy
ZWZfcGllY2UgaW4gaW5pX3ZhbHVlLnNwbGl0KCc6JywgMSkpCiAgICAgICAgIGVsc2U6CiAgICAg
ICAgICAgICAjIHRoaXMgc2hvdWxkIGJlIHRoaW5ncyBsaWtlIEBSZXNldCwgd2hpY2ggYXJlIGFw
cGFyZW50bHkgdHlwZSAnb2JqZWN0JwpAQCAtODcsNyArODUsNyBAQCBkZWYgcHJlZnMobm9kZSk6
CiAKICAgICB0cnk6CiAgICAgICAgIG5vZGVfcHJlZnMgPSBub2RlLmdldCgicHJlZnMiKQotICAg
ICAgICBpZiBpc2luc3RhbmNlKG5vZGVfcHJlZnMsIHRleHRfdHlwZSk6CisgICAgICAgIGlmIGlz
aW5zdGFuY2Uobm9kZV9wcmVmcywgc3RyKToKICAgICAgICAgICAgIHJ2ID0gZGljdCh2YWx1ZShu
b2RlX3ByZWZzKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ2ID0gZGljdCh2YWx1ZShp
dGVtKSBmb3IgaXRlbSBpbiBub2RlX3ByZWZzKQpAQCAtOTksNyArOTcsNyBAQCBkZWYgcHJlZnMo
bm9kZSk6CiBkZWYgc2V0X3Byb3AobmFtZSwgbm9kZSk6CiAgICAgdHJ5OgogICAgICAgICBub2Rl
X2l0ZW1zID0gbm9kZS5nZXQobmFtZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1z
LCB0ZXh0X3R5cGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIHN0cik6CiAg
ICAgICAgICAgICBydiA9IHtub2RlX2l0ZW1zfQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
cnYgPSBzZXQobm9kZV9pdGVtcykKQEAgLTExMiw3ICsxMTAsNyBAQCBkZWYgbGVha190aHJlc2hv
bGQobm9kZSk6CiAgICAgcnYgPSB7fQogICAgIHRyeToKICAgICAgICAgbm9kZV9pdGVtcyA9IG5v
ZGUuZ2V0KCJsZWFrLXRocmVzaG9sZCIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9pdGVt
cywgdGV4dF90eXBlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1zLCBzdHIpOgog
ICAgICAgICAgICAgbm9kZV9pdGVtcyA9IFtub2RlX2l0ZW1zXQogICAgICAgICBmb3IgaXRlbSBp
biBub2RlX2l0ZW1zOgogICAgICAgICAgICAgcHJvY2VzcywgdmFsdWUgPSBpdGVtLnJzcGxpdCgi
OiIsIDEpCkBAIC0xNDAsNyArMTM4LDcgQEAgZGVmIGZ1enp5X3Byb3Aobm9kZSk6CiAgICAgICBt
YXhEaWZmZXJlbmNlcz0xMDt0b3RhbFBpeGVscz0xMC0yMAogCiAgICAgICBzcGVjaWZpZXMgdGhh
dCBmb3IgYW55IHRlc3QvcmVmIHBhaXIgZm9yIHdoaWNoIG5vIG90aGVyIHJ1bGUgaXMgc3VwcGxp
ZWQsCi0gICAgICB0aGVyZSBtdXN0IGJlIGEgbWF4aW11bSBwaXhlbCBkaWZmZXJlbmNlIG9mIGV4
YWN0bHkgMTAsIGFuZCBiZXR3ZW4gMTAgYW5kCisgICAgICB0aGVyZSBtdXN0IGJlIGEgbWF4aW11
bSBwaXhlbCBkaWZmZXJlbmNlIG9mIGV4YWN0bHkgMTAsIGFuZCBiZXR3ZWVuIDEwIGFuZAogICAg
ICAgMjAgdG90YWwgcGl4ZWxzIGRpZmZlcmVudC4KIAogICAgICAgdGVzdC5odG1sPT1yZWYuaHRt
OjEwOzIwCkBAIC0xNjksNyArMTY3LDcgQEAgZGVmIGZ1enp5X3Byb3Aobm9kZSk6CiAgICAgaWYg
bm90IGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgogICAgICAgICB2YWx1ZSA9IFt2YWx1ZV0KICAg
ICBmb3IgaXRlbSBpbiB2YWx1ZToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgdGV4
dF90eXBlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgc3RyKToKICAgICAgICAg
ICAgIHJ2LmFwcGVuZChpdGVtKQogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgcGFydHMg
PSBpdGVtLnJzcGxpdCgiOiIsIDEpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVz
dGluY2x1ZGUucHkKaW5kZXggNzliNWIxOWIzYTNmLi45NzM0OGU2ZDUyZjkgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21h
bmlmZXN0aW5jbHVkZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKQEAgLTYsOCArNiw3IEBAIGJl
IGluY2x1ZGVkIG9yIGV4Y2x1ZGVkLgogIiIiCiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9zCi1mcm9t
IHNpeCBpbXBvcnQgaXRlcml0ZW1zCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0
IHVybHBhcnNlLCB1cmxzcGxpdAorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlLCB1
cmxzcGxpdAogCiBmcm9tIC53cHRtYW5pZmVzdC5ub2RlIGltcG9ydCBEYXRhTm9kZQogZnJvbSAu
d3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IGNvbmRpdGlvbmFsCkBAIC05NSw3ICs5NCw3IEBA
IGNsYXNzIEluY2x1ZGVNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogICAgICAgICBpZiBwYXRoczoK
ICAgICAgICAgICAgIHVybHMgPSBbXQogICAgICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6Ci0g
ICAgICAgICAgICAgICAgZm9yIG1hbmlmZXN0LCBkYXRhIGluIGl0ZXJpdGVtcyh0ZXN0X21hbmlm
ZXN0cyk6CisgICAgICAgICAgICAgICAgZm9yIG1hbmlmZXN0LCBkYXRhIGluIHRlc3RfbWFuaWZl
c3RzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gRmFsc2UKICAgICAgICAg
ICAgICAgICAgICAgcmVsX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgocGF0aCwgZGF0YVsidGVzdHNf
cGF0aCJdKQogICAgICAgICAgICAgICAgICAgICBpdGVyYXRvciA9IG1hbmlmZXN0Lml0ZXJwYXRo
IGlmIG9zLnBhdGguaXNmaWxlKHBhdGgpIGVsc2UgbWFuaWZlc3QuaXRlcmRpcgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
bWFuaWZlc3R1cGRhdGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQppbmRleCAxMjk0NTdiM2ZkMTIuLmIy
NWQ0OWIwZmI3YyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUu
cHkKQEAgLTEsOSArMSw4IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u
CiBpbXBvcnQgb3MKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwg
dXJsc3BsaXQKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxpdAogZnJv
bSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZSwgZGVmYXVsdGRpY3QsIGRlcXVlCiBmcm9t
IG1hdGggaW1wb3J0IGNlaWwKLWZyb20gc2l4IGltcG9ydCBpbnRlZ2VyX3R5cGVzLCBpdGVya2V5
cywgaXRlcnZhbHVlcywgaXRlcml0ZW1zLCBzdHJpbmdfdHlwZXMsIHRleHRfdHlwZQorZnJvbSB0
eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIENsYXNzVmFyLCBEaWN0LCBMaXN0CiAKIGZyb20g
LndwdG1hbmlmZXN0IGltcG9ydCBzZXJpYWxpemUKIGZyb20gLndwdG1hbmlmZXN0Lm5vZGUgaW1w
b3J0IChEYXRhTm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZSwKQEAg
LTc2LDcgKzc1LDcgQEAgY2xhc3MgVXBkYXRlUHJvcGVydGllcyhvYmplY3QpOgogICAgICAgICBy
ZXR1cm4gbmFtZSBpbiBzZWxmLl9jbGFzc2VzCiAKICAgICBkZWYgX19pdGVyX18oc2VsZik6Ci0g
ICAgICAgIGZvciBuYW1lIGluIGl0ZXJrZXlzKHNlbGYuX2NsYXNzZXMpOgorICAgICAgICBmb3Ig
bmFtZSBpbiBzZWxmLl9jbGFzc2VzLmtleXMoKToKICAgICAgICAgICAgIHlpZWxkIGdldGF0dHIo
c2VsZiwgbmFtZSkKIAogCkBAIC0zMTMsMTggKzMxMiwyMSBAQCBkZWYgYnVpbGRfY29uZGl0aW9u
YWxfdHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToKIAogZGVmIGJ1aWxkX3Vu
Y29uZGl0aW9uYWxfdHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToKICAgICBy
b290ID0gZXhwZWN0ZWR0cmVlLk5vZGUoTm9uZSwgTm9uZSkKLSAgICBmb3IgcnVuX2luZm8sIHZh
bHVlcyBpbiBpdGVyaXRlbXMocmVzdWx0cyk6Ci0gICAgICAgIGZvciB2YWx1ZSwgY291bnQgaW4g
aXRlcml0ZW1zKHZhbHVlcyk6CisgICAgZm9yIHJ1bl9pbmZvLCB2YWx1ZXMgaW4gcmVzdWx0cy5p
dGVtcygpOgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIHZhbHVlcy5pdGVtcygpOgogICAg
ICAgICAgICAgcm9vdC5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAogICAgICAgICByb290
LnJ1bl9pbmZvLmFkZChydW5faW5mbykKICAgICByZXR1cm4gcm9vdAogCiAKIGNsYXNzIFByb3Bl
cnR5VXBkYXRlKG9iamVjdCk6Ci0gICAgcHJvcGVydHlfbmFtZSA9IE5vbmUKLSAgICBjbHNfZGVm
YXVsdF92YWx1ZSA9IE5vbmUKLSAgICB2YWx1ZV90eXBlID0gTm9uZQotICAgIHByb3BlcnR5X2J1
aWxkZXIgPSBOb25lCisgICAgcHJvcGVydHlfbmFtZSA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJb
c3RyXQorICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltBbnld
CisgICAgdmFsdWVfdHlwZSA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbdHlwZV0KKyAgICAjIHBy
b3BlcnR5X2J1aWxkZXIgaXMgYSBjbGFzcyB2YXJpYWJsZSBzZXQgdG8gZWl0aGVyIGJ1aWxkX2Nv
bmRpdGlvbmFsX3RyZWUKKyAgICAjIG9yIGJ1aWxkX3VuY29uZGl0aW9uYWxfdHJlZS4gVE9ETzog
TWFrZSB0aGlzIHR5cGUgc3RyaWN0ZXIgd2hlbiB0aG9zZQorICAgICMgbWV0aG9kcyBhcmUgYW5u
b3RhdGVkLgorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW0Nh
bGxhYmxlWy4uLiwgQW55XV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlKToKICAgICAg
ICAgc2VsZi5ub2RlID0gbm9kZQpAQCAtNDExLDcgKzQxMyw3IEBAIGNsYXNzIFByb3BlcnR5VXBk
YXRlKG9iamVjdCk6CiAgICAgICAgIGZvciBlIGluIGVycm9yczoKICAgICAgICAgICAgIGlmIGRp
c2FibGVfaW50ZXJtaXR0ZW50OgogICAgICAgICAgICAgICAgIGNvbmRpdGlvbiA9IGUuY29uZC5j
aGlsZHJlblswXSBpZiBlLmNvbmQgZWxzZSBOb25lCi0gICAgICAgICAgICAgICAgbXNnID0gZGlz
YWJsZV9pbnRlcm1pdHRlbnQgaWYgaXNpbnN0YW5jZShkaXNhYmxlX2ludGVybWl0dGVudCwgc3Ry
aW5nX3R5cGVzKyh0ZXh0X3R5cGUsKSkgZWxzZSAidW5zdGFibGUiCisgICAgICAgICAgICAgICAg
bXNnID0gZGlzYWJsZV9pbnRlcm1pdHRlbnQgaWYgaXNpbnN0YW5jZShkaXNhYmxlX2ludGVybWl0
dGVudCwgc3RyKSBlbHNlICJ1bnN0YWJsZSIKICAgICAgICAgICAgICAgICBzZWxmLm5vZGUuc2V0
KCJkaXNhYmxlZCIsIG1zZywgY29uZGl0aW9uKQogICAgICAgICAgICAgICAgIHNlbGYubm9kZS5u
ZXdfZGlzYWJsZWQgPSBUcnVlCiAgICAgICAgICAgICBlbHNlOgpAQCAtNDk5LDcgKzUwMSw3IEBA
IGNsYXNzIFByb3BlcnR5VXBkYXRlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciBydW5faW5mbyBpbiBub2RlLnJ1bl9pbmZvfQogCiAgICAgICAgIG5vZGVfYnlfcnVuX2lu
Zm8gPSB7cnVuX2luZm86IG5vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHJ1
bl9pbmZvLCBub2RlKSBpbiBpdGVyaXRlbXMocnVuX2luZm9faW5kZXgpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChydW5faW5mbywgbm9kZSkgaW4gcnVuX2luZm9faW5kZXguaXRl
bXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUucmVzdWx0X3ZhbHVlc30K
IAogICAgICAgICBydW5faW5mb19ieV9jb25kaXRpb24gPSBzZWxmLnJ1bl9pbmZvX2J5X2NvbmRp
dGlvbihydW5faW5mb19pbmRleCwKQEAgLTUxMiw3ICs1MTQsNyBAQCBjbGFzcyBQcm9wZXJ0eVVw
ZGF0ZShvYmplY3QpOgogICAgICAgICAgICAgIyB1c2luZyB0aGUgcHJvcGVydGllcyB3ZSd2ZSBz
cGVjaWZpZWQgYW5kIG5vdCBtYXRjaGluZyBhbnkgcnVuX2luZm8KICAgICAgICAgICAgIHRvcF9s
ZXZlbF9wcm9wcywgZGVwZW5kZW50X3Byb3BzID0gc2VsZi5ub2RlLnJvb3QucnVuX2luZm9fcHJv
cGVydGllcwogICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMgPSBzZXQodG9wX2xldmVsX3By
b3BzKQotICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcnZhbHVlcyhkZXBlbmRlbnRfcHJvcHMp
OgorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZGVwZW5kZW50X3Byb3BzLnZhbHVlcygpOgogICAg
ICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzIHw9IHNldChpdGVtKQogICAgICAgICAgICAg
Zm9yIGNvbmRpdGlvbiBpbiBjdXJyZW50X2NvbmRpdGlvbnM6CiAgICAgICAgICAgICAgICAgaWYg
KChub3QgY29uZGl0aW9uLnZhcmlhYmxlcy5pc3N1YnNldCh1cGRhdGVfcHJvcGVydGllcykgYW5k
CkBAIC02MTQsNyArNjE2LDggQEAgY2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0KToKICAgICAg
ICAgICAgICAgICAgICAgZXhjZXB0IENvbmRpdGlvbkVycm9yOgogICAgICAgICAgICAgICAgICAg
ICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9wX3NldCwgdmFsdWUpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBlcnJvciA9IENvbmRpdGlvbkVycm9yKGV4cHIpCi0gICAgICAgICAgICAgICAgICAg
IGV4cHIgPSBtYWtlX2V4cHIocHJvcF9zZXQsIHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9wX3NldCwg
dmFsdWUpCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgIyBUaGUg
cm9vdCBub2RlIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcKICAgICAgICAgICAgICAgICAgICAgZXhw
ciA9IE5vbmUKQEAgLTY5NSw3ICs2OTgsNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9wZXJ0
eVVwZGF0ZSk6CiAgICAgICAgICAgICByYWlzZSBDb25kaXRpb25FcnJvcgogCiAgICAgICAgIGNv
dW50cyA9IHt9Ci0gICAgICAgIGZvciBzdGF0dXMsIGNvdW50IGluIGl0ZXJpdGVtcyhuZXcpOgor
ICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBpbiBuZXcuaXRlbXMoKToKICAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2Uoc3RhdHVzLCB0dXBsZSk6CiAgICAgICAgICAgICAgICAgY291bnRzW3N0YXR1
c1swXV0gPSBjb3VudAogICAgICAgICAgICAgICAgIGNvdW50cy51cGRhdGUoe2ludGVybWl0dGVu
dDogMCBmb3IgaW50ZXJtaXR0ZW50IGluIHN0YXR1c1sxOl0gaWYgaW50ZXJtaXR0ZW50IG5vdCBp
biBjb3VudHN9KQpAQCAtNzA5LDI0ICs3MTIsMjcgQEAgY2xhc3MgRXhwZWN0ZWRVcGRhdGUoUHJv
cGVydHlVcGRhdGUpOgogICAgICAgICAjIENvdW50cyB3aXRoIDAgYXJlIGNvbnNpZGVyZWQgaW50
ZXJtaXR0ZW50LgogICAgICAgICBzdGF0dXNlcyA9IFsiT0siLCAiUEFTUyIsICJGQUlMIiwgIkVS
Uk9SIiwgIlRJTUVPVVQiLCAiQ1JBU0giXQogICAgICAgICBzdGF0dXNfcHJpb3JpdHkgPSB7dmFs
dWU6IGkgZm9yIGksIHZhbHVlIGluIGVudW1lcmF0ZShzdGF0dXNlcyl9Ci0gICAgICAgIHNvcnRl
ZF9uZXcgPSBzb3J0ZWQoaXRlcml0ZW1zKGNvdW50cyksIGtleT1sYW1iZGEgeDooLTEgKiB4WzFd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0dXNfcHJpb3JpdHkuZ2V0KHhbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzdGF0dXNfcHJpb3JpdHkpKSkp
CisgICAgICAgIHNvcnRlZF9uZXcgPSBzb3J0ZWQoY291bnRzLml0ZW1zKCksIGtleT1sYW1iZGEg
eDooLTEgKiB4WzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0dXNfcHJpb3JpdHkuZ2V0KHhbMF0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzdGF0dXNfcHJpb3Jp
dHkpKSkpCiAgICAgICAgIGV4cGVjdGVkID0gW10KICAgICAgICAgZm9yIHN0YXR1cywgY291bnQg
aW4gc29ydGVkX25ldzoKICAgICAgICAgICAgICMgSWYgd2UgYXJlIG5vdCByZW1vdmluZyBleGlz
dGluZyByZWNvcmRlZCBpbnRlcm1pdHRlbnRzLCB3aXRoIGEgY291bnQgb2YgMCwKICAgICAgICAg
ICAgICMgYWRkIHRoZW0gaW4gdG8gZXhwZWN0ZWQuCiAgICAgICAgICAgICBpZiBjb3VudCA+IDAg
b3Igbm90IHNlbGYucmVtb3ZlX2ludGVybWl0dGVudDoKICAgICAgICAgICAgICAgICBleHBlY3Rl
ZC5hcHBlbmQoc3RhdHVzKQorCisgICAgICAgICMgSWYgdGhlIG5ldyBpbnRlcm1pdHRlbnQgaXMg
YSBzdWJzZXQgb2YgdGhlIGV4aXN0aW5nIG9uZSwganVzdCB1c2UgdGhlIGV4aXN0aW5nIG9uZQor
ICAgICAgICAjIFRoaXMgcHJldmVudHMgZnJlcXVlbnQgZmxpcC1mbG9wcGluZyBvZiByZXN1bHRz
IGJldHdlZW4gZS5nLiBbT0ssIFRJTUVPVVRdIGFuZAorICAgICAgICAjIFtUSU1FT1VULCBPS10K
KyAgICAgICAgaWYgY3VycmVudCBhbmQgc2V0KGV4cGVjdGVkKS5pc3N1YnNldChzZXQoY3VycmVu
dCkpOgorICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQKKwogICAgICAgICBpZiBzZWxmLnVwZGF0
ZV9pbnRlcm1pdHRlbnQ6CiAgICAgICAgICAgICBpZiBsZW4oZXhwZWN0ZWQpID09IDE6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCiAgICAgICAgICAgICByZXR1cm4gZXhwZWN0
ZWQKIAotICAgICAgICAjIElmIG5vdGhpbmcgaGFzIGNoYW5nZWQgYW5kIG5vdCBzZWxmLnVwZGF0
ZV9pbnRlcm1pdHRlbnQsIHByZXNlcnZlIGV4aXN0aW5nCi0gICAgICAgICMgaW50ZXJtaXR0ZW50
LgotICAgICAgICBpZiBzZXQoZXhwZWN0ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50KSk6Ci0gICAg
ICAgICAgICByZXR1cm4gY3VycmVudAogICAgICAgICAjIElmIHdlIGFyZSBub3QgdXBkYXRpbmcg
aW50ZXJtaXR0ZW50cywgcmV0dXJuIHRoZSBzdGF0dXMgd2l0aCB0aGUgaGlnaGVzdCBvY2N1cmVu
Y2UuCiAgICAgICAgIHJldHVybiBleHBlY3RlZFswXQogCkBAIC03NjIsNyArNzY4LDcgQEAgY2xh
c3MgTWluQXNzZXJ0c1VwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CiAKIAogY2xhc3MgQXBwZW5kT25s
eUxpc3RVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgotICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gW10K
KyAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IFtdICAjIHR5cGU6IENsYXNzVmFyW0xpc3Rbc3RyXV0K
ICAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25kaXRpb25hbF90cmVlCiAKICAgICBk
ZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBjdXJyZW50LCBuZXcpOgpAQCAtNzc0LDcgKzc4MCw3IEBA
IGNsYXNzIEFwcGVuZE9ubHlMaXN0VXBkYXRlKFByb3BlcnR5VXBkYXRlKToKICAgICAgICAgZm9y
IGl0ZW0gaW4gbmV3OgogICAgICAgICAgICAgaWYgaXRlbSBpcyBOb25lOgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoaXRlbSwgdGV4dF90eXBl
KToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpdGVtLCBzdHIpOgogICAgICAgICAgICAg
ICAgIHJ2LmFkZChpdGVtKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBydiB8
PSBpdGVtCkBAIC04MTUsMTQgKzgyMSwxNCBAQCBjbGFzcyBMZWFrT2JqZWN0VXBkYXRlKEFwcGVu
ZE9ubHlMaXN0VXBkYXRlKToKIAogY2xhc3MgTGVha1RocmVzaG9sZFVwZGF0ZShQcm9wZXJ0eVVw
ZGF0ZSk6CiAgICAgcHJvcGVydHlfbmFtZSA9ICJsZWFrLXRocmVzaG9sZCIKLSAgICBjbHNfZGVm
YXVsdF92YWx1ZSA9IHt9CisgICAgY2xzX2RlZmF1bHRfdmFsdWUgPSB7fSAgIyB0eXBlOiBDbGFz
c1ZhcltEaWN0W3N0ciwgaW50XV0KICAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25k
aXRpb25hbF90cmVlCiAKICAgICBkZWYgZnJvbV9yZXN1bHRfdmFsdWUoc2VsZiwgcmVzdWx0KToK
ICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIHRvX2luaV92YWx1ZShzZWxmLCBkYXRh
KToKLSAgICAgICAgcmV0dXJuIFsiJXM6JXMiICUgaXRlbSBmb3IgaXRlbSBpbiBzb3J0ZWQoaXRl
cml0ZW1zKGRhdGEpKV0KKyAgICAgICAgcmV0dXJuIFsiJXM6JXMiICUgaXRlbSBmb3IgaXRlbSBp
biBzb3J0ZWQoZGF0YS5pdGVtcygpKV0KIAogICAgIGRlZiBmcm9tX2luaV92YWx1ZShzZWxmLCBk
YXRhKToKICAgICAgICAgcnYgPSB7fQpAQCAtODk3LDEwICs5MDMsMTAgQEAgZGVmIG1ha2VfZXhw
cihwcm9wX3NldCwgcmhzKToKIAogCiBkZWYgbWFrZV9ub2RlKHZhbHVlKToKLSAgICBpZiBpc2lu
c3RhbmNlKHZhbHVlLCBpbnRlZ2VyX3R5cGVzKyhmbG9hdCwpKToKKyAgICBpZiBpc2luc3RhbmNl
KHZhbHVlLCAoaW50LCBmbG9hdCwpKToKICAgICAgICAgbm9kZSA9IE51bWJlck5vZGUodmFsdWUp
Ci0gICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgotICAgICAgICBub2RlID0g
U3RyaW5nTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwg
c3RyKToKKyAgICAgICAgbm9kZSA9IFN0cmluZ05vZGUoc3RyKHZhbHVlKSkKICAgICBlbGlmIGhh
c2F0dHIodmFsdWUsICJfX2l0ZXJfXyIpOgogICAgICAgICBub2RlID0gTGlzdE5vZGUoKQogICAg
ICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKQEAgLTkwOSwxNCArOTE1LDE0IEBAIGRlZiBtYWtlX25v
ZGUodmFsdWUpOgogCiAKIGRlZiBtYWtlX3ZhbHVlX25vZGUodmFsdWUpOgotICAgIGlmIGlzaW5z
dGFuY2UodmFsdWUsIGludGVnZXJfdHlwZXMrKGZsb2F0LCkpOgorICAgIGlmIGlzaW5zdGFuY2Uo
dmFsdWUsIChpbnQsIGZsb2F0LCkpOgogICAgICAgICBub2RlID0gVmFsdWVOb2RlKHZhbHVlKQot
ICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgdGV4dF90eXBlKToKLSAgICAgICAgbm9kZSA9IFZh
bHVlTm9kZSh0ZXh0X3R5cGUodmFsdWUpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc3Ry
KToKKyAgICAgICAgbm9kZSA9IFZhbHVlTm9kZShzdHIodmFsdWUpKQogICAgIGVsaWYgaGFzYXR0
cih2YWx1ZSwgIl9faXRlcl9fIik6CiAgICAgICAgIG5vZGUgPSBMaXN0Tm9kZSgpCiAgICAgICAg
IGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICAgICAgbm9kZS5hcHBlbmQobWFrZV9ub2RlKGl0
ZW0pKQorICAgICAgICAgICAgbm9kZS5hcHBlbmQobWFrZV92YWx1ZV9ub2RlKGl0ZW0pKQogICAg
IGVsc2U6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkRvbid0IGtub3cgaG93IHRvIGNvbnZl
cnQgJXMgaW50byBub2RlIiAlIHR5cGUodmFsdWUpKQogICAgIHJldHVybiBub2RlCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9tZXRhZGF0YS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CmluZGV4IGFiOGQ0NzQwZjNmYy4uOWM1NGU1NzBjMDFi
IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9tZXRhZGF0YS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weQpAQCAtMSwxMiArMSwxMSBAQAot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGFycmF5CiBpbXBv
cnQgb3MKLWltcG9ydCBzeXMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0LCBu
YW1lZHR1cGxlCitmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgTGlzdCwgVHVwbGUKIAogZnJvbSBt
b3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2cKLWZyb20gc2l4IGltcG9ydCBlbnN1cmVfc3RyLCBl
bnN1cmVfdGV4dCwgaXRlcml0ZW1zLCBpdGVya2V5cywgaXRlcnZhbHVlcywgdGV4dF90eXBlCi1m
cm9tIHNpeC5tb3ZlcyBpbXBvcnQgaW50ZXJuLCByYW5nZQorZnJvbSBzaXggaW1wb3J0IGVuc3Vy
ZV9zdHIsIGVuc3VyZV90ZXh0Citmcm9tIHN5cyBpbXBvcnQgaW50ZXJuCiAKIGZyb20gLiBpbXBv
cnQgbWFuaWZlc3R1cGRhdGUKIGZyb20gLiBpbXBvcnQgdGVzdGxvYWRlcgpAQCAtMjIsNyArMjEs
NyBAQCBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoIndlYi1wbGF0Zm9y
bS10ZXN0cyIpCiB0cnk6CiAgICAgaW1wb3J0IHVqc29uIGFzIGpzb24KIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKLSAgICBpbXBvcnQganNvbgorICAgIGltcG9ydCBqc29uICAjIHR5cGU6IGlnbm9yZQog
CiAKIGNsYXNzIFJ1bkluZm8ob2JqZWN0KToKQEAgLTQ1LDExICs0NCwxMSBAQCBjbGFzcyBSdW5J
bmZvKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLmNhbm9uaWNhbF9yZXByID09IG90aGVy
LmNhbm9uaWNhbF9yZXByCiAKICAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgotICAgICAgICBmb3Ig
a2V5LCB2YWx1ZSBpbiBpdGVyaXRlbXMoc2VsZi5kYXRhKToKKyAgICAgICAgZm9yIGtleSwgdmFs
dWUgaW4gc2VsZi5kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICB5aWVsZCBrZXksIHZhbHVlCiAK
ICAgICBkZWYgaXRlbXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBsaXN0KGl0ZXJpdGVtcyhzZWxm
KSkKKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVtcygpKQogCiAKIGRlZiB1cGRhdGVfZXhw
ZWN0ZWQodGVzdF9wYXRocywgc2VydmVfcm9vdCwgbG9nX2ZpbGVfbmFtZXMsCkBAIC05Myw3ICs5
Miw3IEBAIGRlZiB1cGRhdGVfZXhwZWN0ZWQodGVzdF9wYXRocywgc2VydmVfcm9vdCwgbG9nX2Zp
bGVfbmFtZXMsCiAKIGRlZiBkb19kZWxheWVkX2ltcG9ydHMoc2VydmVfcm9vdD1Ob25lKToKICAg
ICBnbG9iYWwgbWFuaWZlc3QsIG1hbmlmZXN0aXRlbQotICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0
IG1hbmlmZXN0LCBpdGVtIGFzIG1hbmlmZXN0aXRlbQorICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0
IG1hbmlmZXN0LCBpdGVtIGFzIG1hbmlmZXN0aXRlbSAgIyB0eXBlOiBpZ25vcmUKIAogCiBkZWYg
ZmlsZXNfaW5fcmVwbyhyZXBvX3Jvb3QpOgpAQCAtMTI5LDcgKzEyOCw3IEBAIGRlZiB1bmV4cGVj
dGVkX2NoYW5nZXMobWFuaWZlc3RzLCBjaGFuZ2VfZGF0YSwgZmlsZXNfY2hhbmdlZCk6CiAgICAg
ZmlsZXNfY2hhbmdlZCA9IHNldChmaWxlc19jaGFuZ2VkKQogCiAgICAgcm9vdF9tYW5pZmVzdCA9
IE5vbmUKLSAgICBmb3IgbWFuaWZlc3QsIHBhdGhzIGluIGl0ZXJpdGVtcyhtYW5pZmVzdHMpOgor
ICAgIGZvciBtYW5pZmVzdCwgcGF0aHMgaW4gbWFuaWZlc3RzLml0ZW1zKCk6CiAgICAgICAgIGlm
IHBhdGhzWyJ1cmxfYmFzZSJdID09ICIvIjoKICAgICAgICAgICAgIHJvb3RfbWFuaWZlc3QgPSBt
YW5pZmVzdAogICAgICAgICAgICAgYnJlYWsKQEAgLTE3MCw5ICsxNjksMTAgQEAgY2xhc3MgSW50
ZXJuZWREYXRhKG9iamVjdCk6CiAgICAgdHlwZV9jb252ID0gTm9uZQogICAgIHJldl90eXBlX2Nv
bnYgPSBOb25lCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWF4X2JpdHM9OCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG1heF9iaXRzOiBpbnQgPSA4KToKICAgICAgICAgc2VsZi5tYXhfaWR4
ID0gMioqbWF4X2JpdHMgLSAyCiAgICAgICAgICMgUmVzZXJ2ZSAwIGFzIGEgc2VudGluYWwKKyAg
ICAgICAgc2VsZi5fZGF0YTogVHVwbGVbTGlzdFtvYmplY3RdLCBEaWN0W2ludCwgb2JqZWN0XV0K
ICAgICAgICAgc2VsZi5fZGF0YSA9IFtOb25lXSwge30KIAogICAgIGRlZiBjbGVhcihzZWxmKToK
QEAgLTI0MCw3ICsyNDAsNyBAQCBkZWYgcGFja19yZXN1bHQoZGF0YSk6CiBkZWYgdW5wYWNrX3Jl
c3VsdChkYXRhKToKICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIGludCk6CiAgICAgICAgIHJldHVy
biAoc3RhdHVzX2ludGVybi5nZXQoZGF0YSksIE5vbmUpCi0gICAgaWYgaXNpbnN0YW5jZShkYXRh
LCB0ZXh0X3R5cGUpOgorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgc3RyKToKICAgICAgICAgcmV0
dXJuIChkYXRhLCBOb25lKQogICAgICMgVW5wYWNrIG11bHRpcGxlIHN0YXR1c2VzIGludG8gYSB0
dXBsZSB0byBiZSB1c2VkIGluIHRoZSBSZXN1bHRzIG5hbWVkIHR1cGxlIGJlbG93LAogICAgICMg
c2VwYXJhdGluZyBgc3RhdHVzYCBhbmQgYGtub3duX2ludGVybWl0dGVudGAuCkBAIC0yNTksNyAr
MjU5LDcgQEAgZGVmIGxvYWRfdGVzdF9kYXRhKHRlc3RfcGF0aHMpOgogICAgIG1hbmlmZXN0cyA9
IG1hbmlmZXN0X2xvYWRlci5sb2FkKCkKIAogICAgIGlkX3Rlc3RfbWFwID0ge30KLSAgICBmb3Ig
dGVzdF9tYW5pZmVzdCwgcGF0aHMgaW4gaXRlcml0ZW1zKG1hbmlmZXN0cyk6CisgICAgZm9yIHRl
c3RfbWFuaWZlc3QsIHBhdGhzIGluIG1hbmlmZXN0cy5pdGVtcygpOgogICAgICAgICBpZF90ZXN0
X21hcC51cGRhdGUoY3JlYXRlX3Rlc3RfdHJlZShwYXRoc1sibWV0YWRhdGFfcGF0aCJdLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21hbmlmZXN0KSkK
ICAgICByZXR1cm4gaWRfdGVzdF9tYXAKQEAgLTI4NywxMCArMjg3LDEwIEBAIGRlZiB1cGRhdGVf
cmVzdWx0cyhpZF90ZXN0X21hcCwKICAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVybWl0
dGVudCwKICAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAogICAgICAgICAg
ICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpOgotICAgIHRlc3RfZmlsZV9pdGVtcyA9IHNl
dChpdGVydmFsdWVzKGlkX3Rlc3RfbWFwKSkKKyAgICB0ZXN0X2ZpbGVfaXRlbXMgPSBzZXQoaWRf
dGVzdF9tYXAudmFsdWVzKCkpCiAKICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGUgPSB7fQot
ICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfY2xzIGluIGl0ZXJpdGVtcyh3cHR0ZXN0Lm1hbmlmZXN0
X3Rlc3RfY2xzKToKKyAgICBmb3IgdGVzdF90eXBlLCB0ZXN0X2NscyBpbiB3cHR0ZXN0Lm1hbmlm
ZXN0X3Rlc3RfY2xzLml0ZW1zKCk6CiAgICAgICAgIGlmIHRlc3RfY2xzLnJlc3VsdF9jbHM6CiAg
ICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGVbKHRlc3RfdHlwZSwgRmFsc2UpXSA9
IHRlc3RfY2xzLnJlc3VsdF9jbHMuZGVmYXVsdF9leHBlY3RlZAogICAgICAgICBpZiB0ZXN0X2Ns
cy5zdWJ0ZXN0X3Jlc3VsdF9jbHM6CkBAIC0zMjcsMTAgKzMyNyw3IEBAIGRlZiB3cml0ZV9uZXdf
ZXhwZWN0ZWQobWV0YWRhdGFfcGF0aCwgZXhwZWN0ZWQpOgogICAgICAgICB0cnk6CiAgICAgICAg
ICAgICB3aXRoIG9wZW4odG1wX3BhdGgsICJ3YiIpIGFzIGY6CiAgICAgICAgICAgICAgICAgZi53
cml0ZShtYW5pZmVzdF9zdHIuZW5jb2RlKCJ1dGY4IikpCi0gICAgICAgICAgICBpZiBzeXMudmVy
c2lvbl9pbmZvID49ICgzLCAzKToKLSAgICAgICAgICAgICAgICBvcy5yZXBsYWNlKHRtcF9wYXRo
LCBwYXRoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBvcy5yZW5hbWUodG1w
X3BhdGgsIHBhdGgpCisgICAgICAgICAgICBvcy5yZXBsYWNlKHRtcF9wYXRoLCBwYXRoKQogICAg
ICAgICBleGNlcHQgKEV4Y2VwdGlvbiwgS2V5Ym9hcmRJbnRlcnJ1cHQpOgogICAgICAgICAgICAg
dHJ5OgogICAgICAgICAgICAgICAgIG9zLnVubGluayh0bXBfcGF0aCkKQEAgLTQzMSw3ICs0Mjgs
NyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKICAgICAgICAgICAgIGFjdGlvbl9t
YXBbImxzYW5fbGVhayJdKGl0ZW0pCiAKICAgICAgICAgbW96bGVha19kYXRhID0gZGF0YS5nZXQo
Im1vemxlYWsiLCB7fSkKLSAgICAgICAgZm9yIHNjb3BlLCBzY29wZV9kYXRhIGluIGl0ZXJpdGVt
cyhtb3psZWFrX2RhdGEpOgorICAgICAgICBmb3Igc2NvcGUsIHNjb3BlX2RhdGEgaW4gbW96bGVh
a19kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICBmb3Iga2V5LCBhY3Rpb24gaW4gWygib2JqZWN0
cyIsICJtb3psZWFrX29iamVjdCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
InRvdGFsIiwgIm1vemxlYWtfdG90YWwiKV06CiAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4g
c2NvcGVfZGF0YS5nZXQoa2V5LCBbXSk6CkBAIC02NjgsMTEgKzY2NSwxMSBAQCBjbGFzcyBUZXN0
RmlsZURhdGEob2JqZWN0KToKICAgICAgICAgIyBSZXR1cm4gc3VidGVzdCBub2RlcyBwcmVzZW50
IGluIHRoZSBleHBlY3RlZCBmaWxlLCBidXQgbWlzc2luZyBmcm9tIHRoZSBkYXRhCiAgICAgICAg
IHJ2ID0gW10KIAotICAgICAgICBmb3IgdGVzdF9pZCwgc3VidGVzdHMgaW4gaXRlcml0ZW1zKHNl
bGYuZGF0YSk6CisgICAgICAgIGZvciB0ZXN0X2lkLCBzdWJ0ZXN0cyBpbiBzZWxmLmRhdGEuaXRl
bXMoKToKICAgICAgICAgICAgIHRlc3QgPSBleHBlY3RlZC5nZXRfdGVzdChlbnN1cmVfdGV4dCh0
ZXN0X2lkKSkKICAgICAgICAgICAgIGlmIG5vdCB0ZXN0OgogICAgICAgICAgICAgICAgIGNvbnRp
bnVlCi0gICAgICAgICAgICBzZWVuX3N1YnRlc3RzID0gc2V0KGVuc3VyZV90ZXh0KGl0ZW0pIGZv
ciBpdGVtIGluIGl0ZXJrZXlzKHN1YnRlc3RzKSBpZiBpdGVtIGlzIG5vdCBOb25lKQorICAgICAg
ICAgICAgc2Vlbl9zdWJ0ZXN0cyA9IHNldChlbnN1cmVfdGV4dChpdGVtKSBmb3IgaXRlbSBpbiBz
dWJ0ZXN0cy5rZXlzKCkgaWYgaXRlbSBpcyBub3QgTm9uZSkKICAgICAgICAgICAgIG1pc3Npbmdf
c3VidGVzdHMgPSBzZXQodGVzdC5zdWJ0ZXN0cy5rZXlzKCkpIC0gc2Vlbl9zdWJ0ZXN0cwogICAg
ICAgICAgICAgZm9yIGl0ZW0gaW4gbWlzc2luZ19zdWJ0ZXN0czoKICAgICAgICAgICAgICAgICBl
eHBlY3RlZF9zdWJ0ZXN0ID0gdGVzdC5nZXRfc3VidGVzdChpdGVtKQpAQCAtNjkxLDcgKzY4OCw3
IEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmplY3QpOgogICAgICAgICAjIHNpbmNlIHJlbW92aW5n
IHRoZXNlIG1heSBiZSBpbmFwcHJvcHJpYXRlCiAgICAgICAgIHRvcF9sZXZlbF9wcm9wcywgZGVw
ZW5kZW50X3Byb3BzID0gdXBkYXRlX3Byb3BlcnRpZXMKICAgICAgICAgYWxsX3Byb3BlcnRpZXMg
PSBzZXQodG9wX2xldmVsX3Byb3BzKQotICAgICAgICBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKGRl
cGVuZGVudF9wcm9wcyk6CisgICAgICAgIGZvciBpdGVtIGluIGRlcGVuZGVudF9wcm9wcy52YWx1
ZXMoKToKICAgICAgICAgICAgIGFsbF9wcm9wZXJ0aWVzIHw9IHNldChpdGVtKQogCiAgICAgICAg
IGZpbHRlcmVkID0gW10KQEAgLTc0MSw5ICs3MzgsOSBAQCBjbGFzcyBUZXN0RmlsZURhdGEob2Jq
ZWN0KToKICAgICAgICAgICAgIHRlc3RfZXhwZWN0ZWQgPSBleHBlY3RlZC5nZXRfdGVzdCh0ZXN0
X2lkKQogICAgICAgICAgICAgZXhwZWN0ZWRfYnlfdGVzdFt0ZXN0X2lkXSA9IHRlc3RfZXhwZWN0
ZWQKIAotICAgICAgICBmb3IgdGVzdF9pZCwgdGVzdF9kYXRhIGluIGl0ZXJpdGVtcyhzZWxmLmRh
dGEpOgorICAgICAgICBmb3IgdGVzdF9pZCwgdGVzdF9kYXRhIGluIHNlbGYuZGF0YS5pdGVtcygp
OgogICAgICAgICAgICAgdGVzdF9pZCA9IGVuc3VyZV9zdHIodGVzdF9pZCkKLSAgICAgICAgICAg
IGZvciBzdWJ0ZXN0X2lkLCByZXN1bHRzX2xpc3QgaW4gaXRlcml0ZW1zKHRlc3RfZGF0YSk6Cisg
ICAgICAgICAgICBmb3Igc3VidGVzdF9pZCwgcmVzdWx0c19saXN0IGluIHRlc3RfZGF0YS5pdGVt
cygpOgogICAgICAgICAgICAgICAgIGZvciBwcm9wLCBydW5faW5mbywgdmFsdWUgaW4gcmVzdWx0
c19saXN0OgogICAgICAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBkaXJlY3RvcnkgbWV0
YWRhdGEKICAgICAgICAgICAgICAgICAgICAgaWYgc3VidGVzdF9pZCBpcyBOb25lIGFuZCB0ZXN0
X2lkLmVuZHN3aXRoKCJfX2Rpcl9fIik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNTBjMDQ3ODJhNjUK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQucHkKQEAgLTAsMCArMSwxMSBAQAoraW1wb3J0IG11
bHRpcHJvY2Vzc2luZworCitfY29udGV4dCA9IE5vbmUKKworCitkZWYgZ2V0X2NvbnRleHQoKToK
KyAgICBnbG9iYWwgX2NvbnRleHQKKworICAgIGlmIF9jb250ZXh0IGlzIE5vbmU6CisgICAgICAg
IF9jb250ZXh0ID0gbXVsdGlwcm9jZXNzaW5nLmdldF9jb250ZXh0KCJzcGF3biIpCisgICAgcmV0
dXJuIF9jb250ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9jZXNzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvY2Vzcy5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGEyYjg5NGNiNzRkLi4wMDAwMDAwMDAwMDAKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvY2Vzcy5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLWltcG9ydCBzeXMKLQotaW1wb3J0IHNp
eAotCi0KLWRlZiBjYXN0X2VudihlbnYpOgotICAgICIiIkVuY29kZSBhbGwgdGhlIGVudmlyb25t
ZW50IHZhbHVlcyBhcyB0aGUgYXBwcm9wcmlhdGUgdHlwZSBmb3IgZWFjaCBQeXRob24gdmVyc2lv
bgotICAgIFRoaXMgYXNzdW1lcyB0aGF0IGFsbCB0aGUgZGF0YSBpcyBvciBjYW4gYmUgcmVwcmVz
ZW50ZWQgYXMgVVRGOCIiIgotCi0gICAgZW52X3R5cGUgPSBzaXguZW5zdXJlX2JpbmFyeSBpZiBz
eXMudmVyc2lvbl9pbmZvWzBdIDwgMyBlbHNlIHNpeC5lbnN1cmVfc3RyCi0gICAgcmV0dXJuIHtl
bnZfdHlwZShrZXkpOiBlbnZfdHlwZSh2YWx1ZSkgZm9yIGtleSwgdmFsdWUgaW4gc2l4Lml0ZXJp
dGVtcyhlbnYpfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQppbmRleCBhYmQ4NDA5
NGJiMzMuLmU2NWRmNWVlODk5MyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkK
QEAgLTEsNiArMSw1IEBACiBpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgaW1wCi1mcm9tIHNpeCBp
bXBvcnQgaXRlcml0ZW1zCiAKIGZyb20gLmJyb3dzZXJzIGltcG9ydCBwcm9kdWN0X2xpc3QKIApA
QCAtMzQsMzQgKzMzLDI5IEBAIGNsYXNzIFByb2R1Y3Qob2JqZWN0KToKICAgICAgICAgbW9kdWxl
ID0gcHJvZHVjdF9tb2R1bGUoY29uZmlnLCBwcm9kdWN0KQogICAgICAgICBkYXRhID0gbW9kdWxl
Ll9fd3B0cnVubmVyX18KICAgICAgICAgc2VsZi5uYW1lID0gcHJvZHVjdAorICAgICAgICBpZiBp
c2luc3RhbmNlKGRhdGFbImJyb3dzZXIiXSwgc3RyKToKKyAgICAgICAgICAgIHNlbGYuX2Jyb3dz
ZXJfY2xzID0ge05vbmU6IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pfQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fYnJvd3Nlcl9jbHMgPSB7a2V5OiBnZXRhdHRyKG1v
ZHVsZSwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiBkYXRhWyJicm93c2VyIl0uaXRlbXMoKX0KICAgICAgICAgc2VsZi5jaGVja19hcmdz
ID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImNoZWNrX2FyZ3MiXSkKLSAgICAgICAgc2VsZi5icm93
c2VyX2NscyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pCiAgICAgICAgIHNlbGYu
Z2V0X2Jyb3dzZXJfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXJfa3dhcmdz
Il0pCiAgICAgICAgIHNlbGYuZ2V0X2V4ZWN1dG9yX2t3YXJncyA9IGdldGF0dHIobW9kdWxlLCBk
YXRhWyJleGVjdXRvcl9rd2FyZ3MiXSkKICAgICAgICAgc2VsZi5lbnZfb3B0aW9ucyA9IGdldGF0
dHIobW9kdWxlLCBkYXRhWyJlbnZfb3B0aW9ucyJdKSgpCiAgICAgICAgIHNlbGYuZ2V0X2Vudl9l
eHRyYXMgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiZW52X2V4dHJhcyJdKQogICAgICAgICBzZWxm
LnJ1bl9pbmZvX2V4dHJhcyA9IChnZXRhdHRyKG1vZHVsZSwgZGF0YVsicnVuX2luZm9fZXh0cmFz
Il0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBk
YXRhIGVsc2UgbGFtYmRhICoqa3dhcmdzOnt9KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBkYXRhIGVsc2UgbGFtYmRhICoqa3dhcmdzOnt9
KQogICAgICAgICBzZWxmLmdldF90aW1lb3V0X211bHRpcGxpZXIgPSBnZXRhdHRyKG1vZHVsZSwg
ZGF0YVsidGltZW91dF9tdWx0aXBsaWVyIl0pCiAKICAgICAgICAgc2VsZi5leGVjdXRvcl9jbGFz
c2VzID0ge30KLSAgICAgICAgZm9yIHRlc3RfdHlwZSwgY2xzX25hbWUgaW4gaXRlcml0ZW1zKGRh
dGFbImV4ZWN1dG9yIl0pOgorICAgICAgICBmb3IgdGVzdF90eXBlLCBjbHNfbmFtZSBpbiBkYXRh
WyJleGVjdXRvciJdLml0ZW1zKCk6CiAgICAgICAgICAgICBjbHMgPSBnZXRhdHRyKG1vZHVsZSwg
Y2xzX25hbWUpCiAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2NsYXNzZXNbdGVzdF90eXBlXSA9
IGNscwogCi0KLWRlZiBsb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Nscz1GYWxz
ZSk6Ci0gICAgcnYgPSBQcm9kdWN0KGNvbmZpZywgcHJvZHVjdCkKLSAgICBpZiBub3QgbG9hZF9j
bHM6Ci0gICAgICAgIHJldHVybiAocnYuY2hlY2tfYXJncywKLSAgICAgICAgICAgICAgICBydi5i
cm93c2VyX2NscywKLSAgICAgICAgICAgICAgICBydi5nZXRfYnJvd3Nlcl9rd2FyZ3MsCi0gICAg
ICAgICAgICAgICAgcnYuZXhlY3V0b3JfY2xhc3NlcywKLSAgICAgICAgICAgICAgICBydi5nZXRf
ZXhlY3V0b3Jfa3dhcmdzLAotICAgICAgICAgICAgICAgIHJ2LmVudl9vcHRpb25zLAotICAgICAg
ICAgICAgICAgIHJ2LmdldF9lbnZfZXh0cmFzLAotICAgICAgICAgICAgICAgIHJ2LnJ1bl9pbmZv
X2V4dHJhcykKLSAgICByZXR1cm4gcnYKKyAgICBkZWYgZ2V0X2Jyb3dzZXJfY2xzKHNlbGYsIHRl
c3RfdHlwZSk6CisgICAgICAgIGlmIHRlc3RfdHlwZSBpbiBzZWxmLl9icm93c2VyX2NsczoKKyAg
ICAgICAgICAgIHJldHVybiBzZWxmLl9icm93c2VyX2Nsc1t0ZXN0X3R5cGVdCisgICAgICAgIHJl
dHVybiBzZWxmLl9icm93c2VyX2Nsc1tOb25lXQogCiAKIGRlZiBsb2FkX3Byb2R1Y3RfdXBkYXRl
KGNvbmZpZywgcHJvZHVjdCk6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkKaW5k
ZXggODhkMWMyMzJiZmI1Li5lZWI1YWYyMzAwMjkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weQorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9z
dGFiaWxpdHkucHkKQEAgLTUsNyArNSw2IEBAIGltcG9ydCBpbwogaW1wb3J0IG9zCiBmcm9tIGNv
bGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdCwgZGVmYXVsdGRpY3QKIGZyb20gZGF0ZXRpbWUg
aW1wb3J0IGRhdGV0aW1lCi1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKIGZyb20gbW96bG9n
IGltcG9ydCByZWFkZXIKIGZyb20gbW96bG9nLmZvcm1hdHRlcnMgaW1wb3J0IEpTT05Gb3JtYXR0
ZXIKQEAgLTEzLDggKzEyLDggQEAgZnJvbSBtb3psb2cuaGFuZGxlcnMgaW1wb3J0IEJhc2VIYW5k
bGVyLCBTdHJlYW1IYW5kbGVyLCBMb2dMZXZlbEZpbHRlcgogCiBoZXJlID0gb3MucGF0aC5kaXJu
YW1lKF9fZmlsZV9fKQogbG9jYWxwYXRocyA9IGltcC5sb2FkX3NvdXJjZSgibG9jYWxwYXRocyIs
IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIs
ICJsb2NhbHBhdGhzLnB5IikpKQotZnJvbSBjaS50Yy5naXRodWJfY2hlY2tzX291dHB1dCBpbXBv
cnQgZ2V0X2doX2NoZWNrc19vdXRwdXR0ZXIKLWZyb20gd3B0Lm1hcmtkb3duIGltcG9ydCBtYXJr
ZG93bl9hZGp1c3QsIHRhYmxlCitmcm9tIGNpLnRjLmdpdGh1Yl9jaGVja3Nfb3V0cHV0IGltcG9y
dCBnZXRfZ2hfY2hlY2tzX291dHB1dHRlciAgIyB0eXBlOiBpZ25vcmUKK2Zyb20gd3B0Lm1hcmtk
b3duIGltcG9ydCBtYXJrZG93bl9hZGp1c3QsIHRhYmxlICAjIHR5cGU6IGlnbm9yZQogCiAKICMg
SWYgYSB0ZXN0IHRha2VzIG1vcmUgdGhhbiAoRkxBS1lfVEhSRVNIT0xEKnRpbWVvdXQpIGFuZCBk
b2VzIG5vdCBjb25zaXN0ZW50bHkKQEAgLTIyLDcgKzIxLDcgQEAgZnJvbSB3cHQubWFya2Rvd24g
aW1wb3J0IG1hcmtkb3duX2FkanVzdCwgdGFibGUKIEZMQUtZX1RIUkVTSE9MRCA9IDAuOAogCiAK
LWNsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CitjbGFzcyBMb2dBY3Rpb25GaWx0
ZXIoQmFzZUhhbmRsZXIpOiAgIyB0eXBlOiBpZ25vcmUKIAogICAgICIiIkhhbmRsZXIgdGhhdCBm
aWx0ZXJzIG91dCBtZXNzYWdlcyBub3Qgb2YgYSBnaXZlbiBzZXQgb2YgYWN0aW9ucy4KIApAQCAt
NDQsNyArNDMsNyBAQCBjbGFzcyBMb2dBY3Rpb25GaWx0ZXIoQmFzZUhhbmRsZXIpOgogICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuaW5uZXIoaXRlbSkKIAogCi1jbGFzcyBMb2dIYW5kbGVyKHJlYWRl
ci5Mb2dIYW5kbGVyKToKK2NsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRsZXIpOiAgIyB0
eXBlOiBpZ25vcmUKIAogICAgICIiIkhhbmRsZSB1cGRhdGluZyB0ZXN0IGFuZCBzdWJ0ZXN0IHN0
YXR1cyBpbiBsb2cuCiAKQEAgLTE0MiwxMCArMTQxLDEwIEBAIGRlZiBwcm9jZXNzX3Jlc3VsdHMo
bG9nLCBpdGVyYXRpb25zKToKICAgICBoYW5kbGVyID0gTG9nSGFuZGxlcigpCiAgICAgcmVhZGVy
LmhhbmRsZV9sb2cocmVhZGVyLnJlYWQobG9nKSwgaGFuZGxlcikKICAgICByZXN1bHRzID0gaGFu
ZGxlci5yZXN1bHRzCi0gICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiBpdGVyaXRlbXMocmVzdWx0
cyk6CisgICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiByZXN1bHRzLml0ZW1zKCk6CiAgICAgICAg
IGlmIGlzX2luY29uc2lzdGVudCh0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CiAgICAgICAg
ICAgICBpbmNvbnNpc3RlbnQuYXBwZW5kKCh0ZXN0X25hbWUsIE5vbmUsIHRlc3RbInN0YXR1cyJd
LCBbXSkpCi0gICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gaXRlcml0ZW1zKHRl
c3RbInN1YnRlc3RzIl0pOgorICAgICAgICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0IGluIHRl
c3RbInN1YnRlc3RzIl0uaXRlbXMoKToKICAgICAgICAgICAgIGlmIGlzX2luY29uc2lzdGVudChz
dWJ0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CiAgICAgICAgICAgICAgICAgaW5jb25zaXN0
ZW50LmFwcGVuZCgodGVzdF9uYW1lLCBzdWJ0ZXN0X25hbWUsIHN1YnRlc3RbInN0YXR1cyJdLCBz
dWJ0ZXN0WyJtZXNzYWdlcyJdKSkKIApAQCAtMjM1LDcgKzIzNCw3IEBAIGRlZiB3cml0ZV9yZXN1
bHRzKGxvZywgcmVzdWx0cywgaXRlcmF0aW9ucywgcHJfbnVtYmVyPU5vbmUsIHVzZV9kZXRhaWxz
PUZhbHNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRlc3RzIiBpZiBsZW4ocmVzdWx0cykgPiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgInRlc3QiKSkKIAotICAgIGZvciB0ZXN0X25h
bWUsIHRlc3QgaW4gaXRlcml0ZW1zKHJlc3VsdHMpOgorICAgIGZvciB0ZXN0X25hbWUsIHRlc3Qg
aW4gcmVzdWx0cy5pdGVtcygpOgogICAgICAgICBiYXNldXJsID0gImh0dHA6Ly93M2MtdGVzdC5v
cmcvc3VibWlzc2lvbnMiCiAgICAgICAgIGlmICJodHRwcyIgaW4gb3MucGF0aC5zcGxpdGV4dCh0
ZXN0X25hbWUpWzBdLnNwbGl0KCIuIilbMTpdOgogICAgICAgICAgICAgYmFzZXVybCA9ICJodHRw
czovL3czYy10ZXN0Lm9yZy9zdWJtaXNzaW9ucyIKQEAgLTMwNSw3ICszMDQsNyBAQCBkZWYgZ2V0
X3N0ZXBzKGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0YXJ0LCBrd2FyZ3NfZXh0cmFz
KToKICAgICBmb3Iga3dhcmdzX2V4dHJhIGluIGt3YXJnc19leHRyYXM6CiAgICAgICAgIGlmIGt3
YXJnc19leHRyYToKICAgICAgICAgICAgIGZsYWdzX3N0cmluZyA9ICIgd2l0aCBmbGFncyAlcyIg
JSAiICIuam9pbigKLSAgICAgICAgICAgICAgICAiJXM9JXMiICUgaXRlbSBmb3IgaXRlbSBpbiBp
dGVyaXRlbXMoa3dhcmdzX2V4dHJhKSkKKyAgICAgICAgICAgICAgICAiJXM9JXMiICUgaXRlbSBm
b3IgaXRlbSBpbiBrd2FyZ3NfZXh0cmEuaXRlbXMoKSkKICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgIGZsYWdzX3N0cmluZyA9ICIiCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
ZHJpdmVyLWV4dHJhLmpzCmluZGV4IDljMGM2OWFmM2EzZi4uODQyYWJmNDExZjkwIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0ZHJpdmVyLWV4dHJhLmpzCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKQEAgLTM0LDcgKzM0
LDcgQEAKICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICJ0ZXN0ZHJpdmVyLWNvbXBs
ZXRlIikgewogICAgICAgICAgICAgY29uc3QgY21kX2lkID0gZGF0YS5jbWRfaWQ7CiAgICAgICAg
ICAgICBjb25zdCBbb25fc3VjY2Vzcywgb25fZmFpbHVyZV0gPSBwZW5kaW5nLmdldChjbWRfaWQp
OwotICAgICAgICAgICAgcGVuZGluZy5jbGVhcihjbWRfaWQpOworICAgICAgICAgICAgcGVuZGlu
Zy5kZWxldGUoY21kX2lkKTsKICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVyID0gZGF0YS5zdGF0
dXMgPT09ICJzdWNjZXNzIiA/IG9uX3N1Y2Nlc3MgOiBvbl9mYWlsdXJlOwogICAgICAgICAgICAg
cmVzb2x2ZXIoZGF0YSk7CiAgICAgICAgICAgICBpZiAoaXNfdGVzdF9jb250ZXh0KSB7CkBAIC0x
MzYsNiArMTM2LDkgQEAKICAgICAgICAgICAgIGlmICh0ZXN0aGFybmVzc19jb250ZXh0ID09PSBu
dWxsKSB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUcmllZCB0byBydW4gaW4g
YSBub24tdGVzdGhhcm5lc3Mgd2luZG93IHdpdGhvdXQgYSBjYWxsIHRvIHNldF90ZXN0X2NvbnRl
eHQiKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhY3Rpb25fbXNnLmNvbnRleHQg
PT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhY3Rpb25fbXNnLmNvbnRleHQgPSBnZXRfd2lu
ZG93X2lkKHdpbmRvdyk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbWRfaWQgPSBjdHhf
Y21kX2lkKys7CiAgICAgICAgICAgICBhY3Rpb25fbXNnLmNtZF9pZCA9IGNtZF9pZDsKICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0X2RyaXZlci5tZXNzYWdlX3Rlc3Qoe3R5cGU6ICJ0ZXN0ZHJpdmVy
LWNvbW1hbmQiLApAQCAtMTY5LDYgKzE3MiwxMCBAQAogICAgICAgICByZXR1cm4gY3JlYXRlX2Fj
dGlvbigiY2xpY2siLCB7c2VsZWN0b3IsIGNvbnRleHR9KTsKICAgICB9OwogCisgICAgd2luZG93
LnRlc3RfZHJpdmVyX2ludGVybmFsLmRlbGV0ZV9hbGxfY29va2llcyA9IGZ1bmN0aW9uKGNvbnRl
eHQ9bnVsbCkgeworICAgICAgICByZXR1cm4gY3JlYXRlX2FjdGlvbigiZGVsZXRlX2FsbF9jb29r
aWVzIiwge2NvbnRleHR9KTsKKyAgICB9OworCiAgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVy
bmFsLnNlbmRfa2V5cyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGtleXMpIHsKICAgICAgICAgY29uc3Qg
c2VsZWN0b3IgPSBnZXRfc2VsZWN0b3IoZWxlbWVudCk7CiAgICAgICAgIGNvbnN0IGNvbnRleHQg
PSBnZXRfY29udGV4dChlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZv
LmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKaW5kZXggYTEwYjY5ZGY1NTA0Li40YTI3ZGMy
N2VmNmYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNz
cmVwb3J0LXNlcnZvLmpzCkBAIC0xLDQgKzEsNCBAQAotdmFyIHByb3BzID0ge291dHB1dDolKG91
dHB1dClkfTsKK3ZhciBwcm9wcyA9IHtvdXRwdXQ6JShvdXRwdXQpZCwgZGVidWc6ICUoZGVidWcp
c307CiB2YXIgc3RhcnRfbG9jID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogc3RhcnRf
bG9jLmhyZWYgPSBsb2NhdGlvbi5ocmVmOwogc2V0dXAocHJvcHMpOwpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhh
cm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5q
cwppbmRleCBjODg4NDEzNjA0NzAuLjc4MTk1MzhkYmI4ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3Ny
ZXBvcnQtc2Vydm9kcml2ZXIuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMK
QEAgLTEsNCArMSw0IEBACi1zZXR1cCh7b3V0cHV0OiUob3V0cHV0KWR9KTsKK3NldHVwKHtvdXRw
dXQ6JShvdXRwdXQpZCwgZGVidWc6ICUoZGVidWcpc30pOwogCiBhZGRfY29tcGxldGlvbl9jYWxs
YmFjayhmdW5jdGlvbigpIHsKICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbiAo
dGVzdHMsIHN0YXR1cykgewpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVz
c3JlcG9ydC5qcwppbmRleCA5Y2Q2ODBlMTRhZWQuLmQzODU2OTI0NDVjNSAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dGhhcm5lc3NyZXBvcnQuanMKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKQEAgLTczLDYgKzczLDcg
QEAgd2luZG93Ll9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4dF9ldmVudCA9IGZ1bmN0aW9uKCkgewog
ICB2YXIgcHJvcHMgPSB7b3V0cHV0OiAlKG91dHB1dClkLAogICAgICAgICAgICAgICAgdGltZW91
dF9tdWx0aXBsaWVyOiAlKHRpbWVvdXRfbXVsdGlwbGllcilzLAogICAgICAgICAgICAgICAgZXhw
bGljaXRfdGltZW91dDogJShleHBsaWNpdF90aW1lb3V0KXMsCisgICAgICAgICAgICAgICBkZWJ1
ZzogJShkZWJ1ZylzLAogICAgICAgICAgICAgICAgbWVzc2FnZV9ldmVudHM6IFsiY29tcGxldGlv
biJdfTsKIAogICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cywgaGFybmVz
c19zdGF0dXMpIHsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5CmluZGV4IDRh
M2ZhNDI3MzY1NC4uOTQ5MmE4YmMzOGU2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rs
b2FkZXIucHkKQEAgLTEsMTYgKzEsMTQgQEAKIGltcG9ydCBoYXNobGliCiBpbXBvcnQganNvbgog
aW1wb3J0IG9zCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHNwbGl0Citm
cm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRh
LCBhYnN0cmFjdG1ldGhvZAotZnJvbSBzaXgubW92ZXMucXVldWUgaW1wb3J0IEVtcHR5Citmcm9t
IHF1ZXVlIGltcG9ydCBFbXB0eQogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3Qs
IGRlcXVlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKLWZyb20gc2l4IGltcG9y
dCBlbnN1cmVfYmluYXJ5LCBpdGVyaXRlbXMKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCByYW5nZQog
CiBmcm9tIC4gaW1wb3J0IG1hbmlmZXN0aW5jbHVkZQogZnJvbSAuIGltcG9ydCBtYW5pZmVzdGV4
cGVjdGVkCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAogZnJvbSAuIGltcG9ydCB3cHR0ZXN0CiBm
cm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAogCkBAIC0yMiw5ICsyMCw5IEBAIGRvd25sb2Fk
X2Zyb21fZ2l0aHViID0gTm9uZQogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgogICAgICMgVGhp
cyByZWxpZXMgb24gYW4gYWxyZWFkeSBsb2FkZWQgbW9kdWxlIGhhdmluZyBzZXQgdGhlIHN5cy5w
YXRoIGNvcnJlY3RseSA6KAogICAgIGdsb2JhbCBtYW5pZmVzdCwgbWFuaWZlc3RfdXBkYXRlLCBk
b3dubG9hZF9mcm9tX2dpdGh1YgotICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0Cisg
ICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QgICMgdHlwZTogaWdub3JlCiAgICAgZnJv
bSBtYW5pZmVzdCBpbXBvcnQgdXBkYXRlIGFzIG1hbmlmZXN0X3VwZGF0ZQotICAgIGZyb20gbWFu
aWZlc3QuZG93bmxvYWQgaW1wb3J0IGRvd25sb2FkX2Zyb21fZ2l0aHViCisgICAgZnJvbSBtYW5p
ZmVzdC5kb3dubG9hZCBpbXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIgICMgdHlwZTogaWdub3Jl
CiAKIAogY2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKQEAgLTQxLDcgKzM5LDcgQEAgY2xh
c3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKICAgICAgICAgICAgIHJhaXNlCiAKICAgICAgICAg
c2VsZi5ncm91cF9ieV90ZXN0ID0ge30KLSAgICAgICAgZm9yIGdyb3VwLCB0ZXN0X2lkcyBpbiBp
dGVyaXRlbXMoc2VsZi5fZGF0YSk6CisgICAgICAgIGZvciBncm91cCwgdGVzdF9pZHMgaW4gc2Vs
Zi5fZGF0YS5pdGVtcygpOgogICAgICAgICAgICAgZm9yIHRlc3RfaWQgaW4gdGVzdF9pZHM6CiAg
ICAgICAgICAgICAgICAgc2VsZi5ncm91cF9ieV90ZXN0W3Rlc3RfaWRdID0gZ3JvdXAKIApAQCAt
NTEsNiArNDksMTYgQEAgY2xhc3MgVGVzdEdyb3Vwc0ZpbGUob2JqZWN0KToKICAgICBkZWYgX19n
ZXRpdGVtX18oc2VsZiwga2V5KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFba2V5XQogCitk
ZWYgcmVhZF9pbmNsdWRlX2Zyb21fZmlsZShmaWxlKToKKyAgICBuZXdfaW5jbHVkZSA9IFtdCisg
ICAgd2l0aCBvcGVuKGZpbGUpIGFzIGY6CisgICAgICAgIGZvciBsaW5lIGluIGY6CisgICAgICAg
ICAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgICAgICAgICAjIEFsbG93IHdob2xlLWxpbmUg
Y29tbWVudHM7CisgICAgICAgICAgICAjIGZyYWdtZW50cyBtZWFuIHdlIGNhbid0IGhhdmUgcGFy
dGlhbCBsaW5lICMtYmFzZWQgY29tbWVudHMKKyAgICAgICAgICAgIGlmIGxlbihsaW5lKSA+IDAg
YW5kIG5vdCBsaW5lLnN0YXJ0c3dpdGgoIiMiKToKKyAgICAgICAgICAgICAgICBuZXdfaW5jbHVk
ZS5hcHBlbmQobGluZSkKKyAgICByZXR1cm4gbmV3X2luY2x1ZGUKIAogZGVmIHVwZGF0ZV9pbmNs
dWRlX2Zvcl9ncm91cHModGVzdF9ncm91cHMsIGluY2x1ZGUpOgogICAgIGlmIGluY2x1ZGUgaXMg
Tm9uZToKQEAgLTkzLDcgKzEwMSw3IEBAIGNsYXNzIEhhc2hDaHVua2VyKFRlc3RDaHVua2VyKToK
ICAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFuaWZlc3QpOgogICAgICAgICBjaHVua19pbmRleCA9
IHNlbGYuY2h1bmtfbnVtYmVyIC0gMQogICAgICAgICBmb3IgdGVzdF90eXBlLCB0ZXN0X3BhdGgs
IHRlc3RzIGluIG1hbmlmZXN0OgotICAgICAgICAgICAgaCA9IGludChoYXNobGliLm1kNShlbnN1
cmVfYmluYXJ5KHRlc3RfcGF0aCkpLmhleGRpZ2VzdCgpLCAxNikKKyAgICAgICAgICAgIGggPSBp
bnQoaGFzaGxpYi5tZDUodGVzdF9wYXRoLmVuY29kZSgpKS5oZXhkaWdlc3QoKSwgMTYpCiAgICAg
ICAgICAgICBpZiBoICUgc2VsZi50b3RhbF9jaHVua3MgPT0gY2h1bmtfaW5kZXg6CiAgICAgICAg
ICAgICAgICAgeWllbGQgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzCiAKQEAgLTExMiw3ICsx
MjAsNyBAQCBjbGFzcyBEaXJlY3RvcnlIYXNoQ2h1bmtlcihUZXN0Q2h1bmtlcik6CiAgICAgICAg
ICAgICAgICAgaGFzaF9wYXRoID0gb3MucGF0aC5zZXAuam9pbihvcy5wYXRoLmRpcm5hbWUodGVz
dF9wYXRoKS5zcGxpdChvcy5wYXRoLnNlcCwgZGVwdGgpWzpkZXB0aF0pCiAgICAgICAgICAgICBl
bHNlOgogICAgICAgICAgICAgICAgIGhhc2hfcGF0aCA9IG9zLnBhdGguZGlybmFtZSh0ZXN0X3Bh
dGgpCi0gICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KGVuc3VyZV9iaW5hcnkoaGFzaF9w
YXRoKSkuaGV4ZGlnZXN0KCksIDE2KQorICAgICAgICAgICAgaCA9IGludChoYXNobGliLm1kNSho
YXNoX3BhdGguZW5jb2RlKCkpLmhleGRpZ2VzdCgpLCAxNikKICAgICAgICAgICAgIGlmIGggJSBz
ZWxmLnRvdGFsX2NodW5rcyA9PSBjaHVua19pbmRleDoKICAgICAgICAgICAgICAgICB5aWVsZCB0
ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMKIApAQCAtMTczLDcgKzE4MSw3IEBAIGNsYXNzIE1h
bmlmZXN0TG9hZGVyKG9iamVjdCk6CiAKICAgICBkZWYgbG9hZChzZWxmKToKICAgICAgICAgcnYg
PSB7fQotICAgICAgICBmb3IgdXJsX2Jhc2UsIHBhdGhzIGluIGl0ZXJpdGVtcyhzZWxmLnRlc3Rf
cGF0aHMpOgorICAgICAgICBmb3IgdXJsX2Jhc2UsIHBhdGhzIGluIHNlbGYudGVzdF9wYXRocy5p
dGVtcygpOgogICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IHNlbGYubG9hZF9tYW5pZmVzdCh1
cmxfYmFzZT11cmxfYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKipwYXRocykKICAgICAgICAgICAgIHBhdGhfZGF0YSA9IHsidXJsX2Jhc2UiOiB1
cmxfYmFzZX0KQEAgLTM5MCw3ICszOTgsOCBAQCBjbGFzcyBHcm91cGVkU291cmNlKFRlc3RTb3Vy
Y2UpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0ZXN0cywg
Kiprd2FyZ3MpOgotICAgICAgICB0ZXN0X3F1ZXVlID0gUXVldWUoKQorICAgICAgICBtcCA9IG1w
Y29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHRlc3RfcXVldWUgPSBtcC5RdWV1ZSgpCiAg
ICAgICAgIGdyb3VwcyA9IFtdCiAKICAgICAgICAgc3RhdGUgPSB7fQpAQCAtNDIzLDcgKzQzMiw4
IEBAIGNsYXNzIEdyb3VwZWRTb3VyY2UoVGVzdFNvdXJjZSk6CiBjbGFzcyBTaW5nbGVUZXN0U291
cmNlKFRlc3RTb3VyY2UpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBtYWtlX3F1ZXVlKGNs
cywgdGVzdHMsICoqa3dhcmdzKToKLSAgICAgICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAg
ICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICB0ZXN0X3F1ZXVlID0gbXAu
UXVldWUoKQogICAgICAgICBwcm9jZXNzZXMgPSBrd2FyZ3NbInByb2Nlc3NlcyJdCiAgICAgICAg
IHF1ZXVlcyA9IFtkZXF1ZShbXSkgZm9yIF8gaW4gcmFuZ2UocHJvY2Vzc2VzKV0KICAgICAgICAg
bWV0YWRhdGFzID0gW2Nscy5ncm91cF9tZXRhZGF0YShOb25lKSBmb3IgXyBpbiByYW5nZShwcm9j
ZXNzZXMpXQpAQCAtNDY3LDkgKzQ3NywxMCBAQCBjbGFzcyBHcm91cEZpbGVUZXN0U291cmNlKFRl
c3RTb3VyY2UpOgogCiAgICAgICAgIGlkc190b190ZXN0cyA9IHt0ZXN0LmlkOiB0ZXN0IGZvciB0
ZXN0IGluIHRlc3RzfQogCi0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgIG1w
ID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1wLlF1ZXVl
KCkKIAotICAgICAgICBmb3IgZ3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gaXRlcml0ZW1zKHRlc3Rz
X2J5X2dyb3VwKToKKyAgICAgICAgZm9yIGdyb3VwX25hbWUsIHRlc3RfaWRzIGluIHRlc3RzX2J5
X2dyb3VwLml0ZW1zKCk6CiAgICAgICAgICAgICBncm91cF9tZXRhZGF0YSA9IHsic2NvcGUiOiBn
cm91cF9uYW1lfQogICAgICAgICAgICAgZ3JvdXAgPSBkZXF1ZSgpCiAKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Ry
dW5uZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cnVubmVyLnB5CmluZGV4IDBiZGU1YmEzNDhlYS4uNGRhMTI1NWQxM2I3IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cnVubmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkKQEAgLTEsMTQgKzEsMTIgQEAK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwotCi1pbXBvcnQgbXVsdGlw
cm9jZXNzaW5nCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNrCi1mcm9tIHNpeC5t
b3Zlcy5xdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gcXVldWUgaW1wb3J0IEVtcHR5CiBmcm9tIGNv
bGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQg
UHJvY2VzcywgY3VycmVudF9wcm9jZXNzLCBRdWV1ZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgc3Ry
dWN0dXJlZGxvZywgY2FwdHVyZQogCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAorCiAjIFNwZWNp
YWwgdmFsdWUgdXNlZCBhcyBhIHNlbnRpbmFsIGluIHZhcmlvdXMgY29tbWFuZHMKIFN0b3AgPSBv
YmplY3QoKQogCkBAIC0yNCwzMCArMjIsMTIgQEAgZGVmIHJlbGVhc2VfbW96bG9nX2xvY2soKToK
ICAgICAgICAgcGFzcwogCiAKLWNsYXNzIE1lc3NhZ2VMb2dnZXIob2JqZWN0KToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgbWVzc2FnZV9mdW5jKToKLSAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2Ug
PSBtZXNzYWdlX2Z1bmMKLQotICAgIGRlZiBfbG9nX2RhdGEoc2VsZiwgYWN0aW9uLCAqKmt3YXJn
cyk6Ci0gICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJsb2ciLCBhY3Rpb24sIGt3YXJncykKLQot
ICAgIGRlZiBwcm9jZXNzX291dHB1dChzZWxmLCBwcm9jZXNzLCBkYXRhLCBjb21tYW5kKToKLSAg
ICAgICAgc2VsZi5fbG9nX2RhdGEoInByb2Nlc3Nfb3V0cHV0IiwgcHJvY2Vzcz1wcm9jZXNzLCBk
YXRhPWRhdGEsIGNvbW1hbmQ9Y29tbWFuZCkKLQorY2xhc3MgTG9nTWVzc2FnZUhhbmRsZXI6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlbmRfbWVzc2FnZSk6CisgICAgICAgIHNlbGYuc2VuZF9t
ZXNzYWdlID0gc2VuZF9tZXNzYWdlCiAKLWRlZiBfbG9nX2Z1bmMobGV2ZWxfbmFtZSk6Ci0gICAg
ZGVmIGxvZyhzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgc2VsZi5fbG9nX2RhdGEobGV2ZWxfbmFt
ZS5sb3dlcigpLCBtZXNzYWdlPW1lc3NhZ2UpCi0gICAgbG9nLl9fZG9jX18gPSAiIiJMb2cgYSBt
ZXNzYWdlIHdpdGggbGV2ZWwgJXMKLQotOnBhcmFtIG1lc3NhZ2U6IFRoZSBzdHJpbmcgbWVzc2Fn
ZSB0byBsb2cKLSIiIiAlIGxldmVsX25hbWUKLSAgICBsb2cuX19uYW1lX18gPSBzdHIobGV2ZWxf
bmFtZSkubG93ZXIoKQotICAgIHJldHVybiBsb2cKLQotIyBDcmVhdGUgYWxsIHRoZSBtZXRob2Rz
IG9uIFN0cnVjdHVyZWRMb2cgZm9yIGRlYnVnIGxldmVscwotZm9yIGxldmVsX25hbWUgaW4gc3Ry
dWN0dXJlZGxvZy5sb2dfbGV2ZWxzOgotICAgIHNldGF0dHIoTWVzc2FnZUxvZ2dlciwgbGV2ZWxf
bmFtZS5sb3dlcigpLCBfbG9nX2Z1bmMobGV2ZWxfbmFtZSkpCisgICAgZGVmIF9fY2FsbF9fKHNl
bGYsIGRhdGEpOgorICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgibG9nIiwgZGF0YSkKIAogCiBj
bGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CkBAIC02OCw3ICs0OCw3IEBAIGNsYXNzIFRlc3RSdW5u
ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5yZXN1bHRfcXVldWUgPSByZXN1bHRfcXVldWUKIAog
ICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKLSAgICAgICAgc2VsZi5uYW1lID0gY3Vy
cmVudF9wcm9jZXNzKCkubmFtZQorICAgICAgICBzZWxmLm5hbWUgPSBtcGNvbnRleHQuZ2V0X2Nv
bnRleHQoKS5jdXJyZW50X3Byb2Nlc3MoKS5uYW1lCiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9n
Z2VyCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtOTgsNyArNzgsMTIgQEAgY2xhc3Mg
VGVzdFJ1bm5lcihvYmplY3QpOgogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgICIiIk1haW4g
bG9vcCBhY2NlcHRpbmcgY29tbWFuZHMgb3ZlciB0aGUgcGlwZSBhbmQgdHJpZ2dlcmluZwogICAg
ICAgICB0aGUgYXNzb2NpYXRlZCBtZXRob2RzIiIiCi0gICAgICAgIHNlbGYuc2V0dXAoKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnNldHVwKCkKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkFuIGVycm9yIG9jY3VyZWQg
ZHVyaW5nIGV4ZWN1dG9yIHNldHVwOlxuJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIHJhaXNlCiAgICAgICAg
IGNvbW1hbmRzID0geyJydW5fdGVzdCI6IHNlbGYucnVuX3Rlc3QsCiAgICAgICAgICAgICAgICAg
ICAgICJyZXNldCI6IHNlbGYucmVzZXQsCiAgICAgICAgICAgICAgICAgICAgICJzdG9wIjogc2Vs
Zi5zdG9wLApAQCAtMTUzLDcgKzEzOCw5IEBAIGRlZiBzdGFydF9ydW5uZXIocnVubmVyX2NvbW1h
bmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRfcXVldWUsCiAgICAgIyBpbiB0aGUgbG9nZ2luZyBtb2R1
bGUgdW5sb2NrZWQKICAgICByZWxlYXNlX21vemxvZ19sb2NrKCkKIAotICAgIGxvZ2dlciA9IE1l
c3NhZ2VMb2dnZXIoc2VuZF9tZXNzYWdlKQorICAgIHByb2NfbmFtZSA9IG1wY29udGV4dC5nZXRf
Y29udGV4dCgpLmN1cnJlbnRfcHJvY2VzcygpLm5hbWUKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVk
bG9nLlN0cnVjdHVyZWRMb2dnZXIocHJvY19uYW1lKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihM
b2dNZXNzYWdlSGFuZGxlcihzZW5kX21lc3NhZ2UpKQogCiAgICAgd2l0aCBjYXB0dXJlLkNhcHR1
cmVJTyhsb2dnZXIsIGNhcHR1cmVfc3RkaW8pOgogICAgICAgICB0cnk6CkBAIC0yNjUsNyArMjUy
LDcgQEAgY2xhc3MgQnJvd3Nlck1hbmFnZXIob2JqZWN0KToKIAogY2xhc3MgX1J1bm5lck1hbmFn
ZXJTdGF0ZShvYmplY3QpOgogICAgIGJlZm9yZV9pbml0ID0gbmFtZWR0dXBsZSgiYmVmb3JlX2lu
aXQiLCBbXSkKLSAgICBpbml0aWFsaXppbmcgPSBuYW1lZHR1cGxlKCJpbml0aWFsaXppbmdfYnJv
d3NlciIsCisgICAgaW5pdGlhbGl6aW5nID0gbmFtZWR0dXBsZSgiaW5pdGlhbGl6aW5nIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwgImdyb3Vw
X21ldGFkYXRhIiwgImZhaWx1cmVfY291bnQiXSkKICAgICBydW5uaW5nID0gbmFtZWR0dXBsZSgi
cnVubmluZyIsIFsidGVzdCIsICJ0ZXN0X2dyb3VwIiwgImdyb3VwX21ldGFkYXRhIl0pCiAgICAg
cmVzdGFydGluZyA9IG5hbWVkdHVwbGUoInJlc3RhcnRpbmciLCBbInRlc3QiLCAidGVzdF9ncm91
cCIsICJncm91cF9tZXRhZGF0YSJdKQpAQCAtMzA2LDkgKzI5MywxMSBAQCBjbGFzcyBUZXN0UnVu
bmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5leGVjdXRvcl9jbHMg
PSBleGVjdXRvcl9jbHMKICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3MgPSBleGVjdXRvcl9r
d2FyZ3MKIAorICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisKICAgICAgICAg
IyBGbGFncyB1c2VkIHRvIHNodXQgZG93biB0aGlzIHRocmVhZCBpZiB3ZSBnZXQgYSBzaWdpbnQK
ICAgICAgICAgc2VsZi5wYXJlbnRfc3RvcF9mbGFnID0gc3RvcF9mbGFnCi0gICAgICAgIHNlbGYu
Y2hpbGRfc3RvcF9mbGFnID0gbXVsdGlwcm9jZXNzaW5nLkV2ZW50KCkKKyAgICAgICAgc2VsZi5j
aGlsZF9zdG9wX2ZsYWcgPSBtcC5FdmVudCgpCiAKICAgICAgICAgc2VsZi5yZXJ1biA9IHJlcnVu
CiAgICAgICAgIHNlbGYucnVuX2NvdW50ID0gMApAQCAtMzIxLDggKzMxMCw4IEBAIGNsYXNzIFRl
c3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBhc3NlcnQgcmVjb3Jk
aW5nIGlzIG5vdCBOb25lCiAgICAgICAgIHNlbGYucmVjb3JkaW5nID0gcmVjb3JkaW5nCiAKLSAg
ICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gUXVldWUoKQotICAgICAgICBzZWxmLnJlbW90ZV9x
dWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAuUXVldWUoKQor
ICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IG1wLlF1ZXVlKCkKIAogICAgICAgICBzZWxmLnRl
c3RfcnVubmVyX3Byb2MgPSBOb25lCiAKQEAgLTMzMiw2ICszMjEsNyBAQCBjbGFzcyBUZXN0UnVu
bmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKIAogICAgICAgICBzZWxmLnRlc3RfY291bnQg
PSAwCiAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCA9IDAKKyAgICAgICAgc2VsZi51bmV4
cGVjdGVkX3Bhc3NfY291bnQgPSAwCiAKICAgICAgICAgIyBUaGlzIG1heSBub3QgcmVhbGx5IGJl
IHdoYXQgd2Ugd2FudAogICAgICAgICBzZWxmLmRhZW1vbiA9IFRydWUKQEAgLTM1NCw3ICszNDQs
OCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAg
c3BpbnMuIiIiCiAgICAgICAgIHNlbGYucmVjb3JkaW5nLnNldChbInRlc3RydW5uZXIiLCAic3Rh
cnR1cCJdKQogICAgICAgICBzZWxmLmxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExv
Z2dlcihzZWxmLnN1aXRlX25hbWUpCi0gICAgICAgIHdpdGggc2VsZi5icm93c2VyX2NscyhzZWxm
LmxvZ2dlciwgKipzZWxmLmJyb3dzZXJfa3dhcmdzKSBhcyBicm93c2VyOgorICAgICAgICB3aXRo
IHNlbGYuYnJvd3Nlcl9jbHMoc2VsZi5sb2dnZXIsIHJlbW90ZV9xdWV1ZT1zZWxmLmNvbW1hbmRf
cXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnNlbGYuYnJvd3Nlcl9rd2Fy
Z3MpIGFzIGJyb3dzZXI6CiAgICAgICAgICAgICBzZWxmLmJyb3dzZXIgPSBCcm93c2VyTWFuYWdl
cihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyb3dzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmNvbW1hbmRfcXVldWUsCkBAIC00OTQsNiArNDg1LDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFn
ZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlLmZhaWx1cmVfY291bnQgKyAxKQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3NbImdyb3VwX21ldGFkYXRhIl0g
PSBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhCisgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3
YXJnc1siYnJvd3Nlcl9zZXR0aW5ncyJdID0gc2VsZi5icm93c2VyLmJyb3dzZXJfc2V0dGluZ3MK
ICAgICAgICAgICAgIHNlbGYuc3RhcnRfdGVzdF9ydW5uZXIoKQogCiAgICAgZGVmIHN0YXJ0X3Rl
c3RfcnVubmVyKHNlbGYpOgpAQCAtNTE0LDkgKzUwNiwxMSBAQCBjbGFzcyBUZXN0UnVubmVyTWFu
YWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICBleGVjdXRvcl9icm93c2Vy
X2t3YXJncywKICAgICAgICAgICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8sCiAgICAgICAgICAg
ICAgICAgc2VsZi5jaGlsZF9zdG9wX2ZsYWcpCi0gICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJv
YyA9IFByb2Nlc3ModGFyZ2V0PXN0YXJ0X3J1bm5lciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmFtZT0iVGVzdFJ1bm5lci0laSIgJSBzZWxmLm1hbmFnZXJfbnVtYmVyKQor
CisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2VsZi50ZXN0
X3J1bm5lcl9wcm9jID0gbXAuUHJvY2Vzcyh0YXJnZXQ9c3RhcnRfcnVubmVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9YXJncywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJUZXN0UnVubmVyLSVpIiAlIHNl
bGYubWFuYWdlcl9udW1iZXIpCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5zdGFydCgp
CiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0IHJ1bm5lciBzdGFydGVkIikKICAgICAg
ICAgIyBOb3cgd2Ugd2FpdCBmb3IgZWl0aGVyIGFuIGluaXRfc3VjY2VlZGVkIGV2ZW50IG9yIGFu
IGluaXRfZmFpbGVkIGV2ZW50CkBAIC02MDUsNiArNTk5LDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1h
bmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYg
c2VsZi50aW1lciBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYudGltZXIuY2FuY2VsKCkK
KwogICAgICAgICAjIFdyaXRlIHRoZSByZXN1bHQgb2YgZWFjaCBzdWJ0ZXN0CiAgICAgICAgIGZp
bGVfcmVzdWx0LCB0ZXN0X3Jlc3VsdHMgPSByZXN1bHRzCiAgICAgICAgIHN1YnRlc3RfdW5leHBl
Y3RlZCA9IEZhbHNlCkBAIC02MjUsNiArNjIwLDExIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2Vy
KHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3Vu
dCArPSAxCiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhwZWN0ZWQgY291
bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQogICAgICAgICAg
ICAgICAgIHN1YnRlc3RfdW5leHBlY3RlZCA9IFRydWUKKworICAgICAgICAgICAgaXNfdW5leHBl
Y3RlZF9wYXNzID0gaXNfdW5leHBlY3RlZCBhbmQgcmVzdWx0LnN0YXR1cyA9PSAiUEFTUyIKKyAg
ICAgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWRfcGFzczoKKyAgICAgICAgICAgICAgICBzZWxmLnVu
ZXhwZWN0ZWRfcGFzc19jb3VudCArPSAxCisKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnRlc3Rf
c3RhdHVzKHRlc3QuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zdGF0
dXMsCkBAIC02MzMsMzQgKzYzMyw0MCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRp
bmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtub3duX2lu
dGVybWl0dGVudD1rbm93bl9pbnRlcm1pdHRlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGFjaz1yZXN1bHQuc3RhY2spCiAKLSAgICAgICAgIyBXZSBoYXZlIGEgY291
cGxlIG9mIHN0YXR1cyBjb2RlcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHksIGJ1dCBub3QgZXhw
b3NlZCB0byB0aGUKLSAgICAgICAgIyB1c2VyLiBUaGVzZSBhcmUgdXNlZCB0byBpbmRpY2F0ZSB0
aGF0IHNvbWUgcG9zc2libHktYnJva2VuIHN0YXRlIHdhcyByZWFjaGVkCi0gICAgICAgICMgYW5k
IHdlIHNob3VsZCByZXN0YXJ0IHRoZSBydW5uZXIgYmVmb3JlIHRoZSBuZXh0IHRlc3QuCi0gICAg
ICAgICMgSU5URVJOQUwtRVJST1IgaW5kaWNhdGVzIGEgUHl0aG9uIGV4Y2VwdGlvbiB3YXMgY2F1
Z2h0IGluIHRoZSBoYXJuZXNzCi0gICAgICAgICMgRVhURVJOQUwtVElNRU9VVCBpbmRpY2F0ZXMg
d2UgaGFkIHRvIGZvcmNpYmx5IGtpbGwgdGhlIGJyb3dzZXIgZnJvbSB0aGUgaGFybmVzcwotICAg
ICAgICAjIGJlY2F1c2UgdGhlIHRlc3QgZGlkbid0IHJldHVybiBhIHJlc3VsdCBhZnRlciByZWFj
aGluZyB0aGUgdGVzdC1pbnRlcm5hbCB0aW1lb3V0Ci0gICAgICAgIHN0YXR1c19zdWJucyA9IHsi
SU5URVJOQUwtRVJST1IiOiAiRVJST1IiLAotICAgICAgICAgICAgICAgICAgICAgICAgIkVYVEVS
TkFMLVRJTUVPVVQiOiAiVElNRU9VVCJ9CiAgICAgICAgIGV4cGVjdGVkID0gdGVzdC5leHBlY3Rl
ZCgpCiAgICAgICAgIGtub3duX2ludGVybWl0dGVudCA9IHRlc3Qua25vd25faW50ZXJtaXR0ZW50
KCkKLSAgICAgICAgc3RhdHVzID0gc3RhdHVzX3N1Ym5zLmdldChmaWxlX3Jlc3VsdC5zdGF0dXMs
IGZpbGVfcmVzdWx0LnN0YXR1cykKKyAgICAgICAgc3RhdHVzID0gZmlsZV9yZXN1bHQuc3RhdHVz
CiAKICAgICAgICAgaWYgc2VsZi5icm93c2VyLmNoZWNrX2NyYXNoKHRlc3QuaWQpIGFuZCBzdGF0
dXMgIT0gIkNSQVNIIjoKLSAgICAgICAgICAgIGlmIHRlc3QudGVzdF90eXBlID09ICJjcmFzaHRl
c3QiOgorICAgICAgICAgICAgaWYgdGVzdC50ZXN0X3R5cGUgPT0gImNyYXNodGVzdCIgb3Igc3Rh
dHVzID09ICJFWFRFUk5BTC1USU1FT1VUIjoKICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5p
bmZvKCJGb3VuZCBhIGNyYXNoIGR1bXAgZmlsZTsgY2hhbmdpbmcgc3RhdHVzIHRvIENSQVNIIikK
ICAgICAgICAgICAgICAgICBzdGF0dXMgPSAiQ1JBU0giCiAgICAgICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZvdW5kIGEgY3Jhc2ggZHVtcDsgc2hv
dWxkIGNoYW5nZSBzdGF0dXMgZnJvbSAlcyB0byBDUkFTSCBidXQgdGhpcyBjYXVzZXMgaW5zdGFi
aWxpdHkiICUgKHN0YXR1cywpKQogCisgICAgICAgICMgV2UgaGF2ZSBhIGNvdXBsZSBvZiBzdGF0
dXMgY29kZXMgdGhhdCBhcmUgdXNlZCBpbnRlcm5hbGx5LCBidXQgbm90IGV4cG9zZWQgdG8gdGhl
CisgICAgICAgICMgdXNlci4gVGhlc2UgYXJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBzb21lIHBv
c3NpYmx5LWJyb2tlbiBzdGF0ZSB3YXMgcmVhY2hlZAorICAgICAgICAjIGFuZCB3ZSBzaG91bGQg
cmVzdGFydCB0aGUgcnVubmVyIGJlZm9yZSB0aGUgbmV4dCB0ZXN0LgorICAgICAgICAjIElOVEVS
TkFMLUVSUk9SIGluZGljYXRlcyBhIFB5dGhvbiBleGNlcHRpb24gd2FzIGNhdWdodCBpbiB0aGUg
aGFybmVzcworICAgICAgICAjIEVYVEVSTkFMLVRJTUVPVVQgaW5kaWNhdGVzIHdlIGhhZCB0byBm
b3JjaWJseSBraWxsIHRoZSBicm93c2VyIGZyb20gdGhlIGhhcm5lc3MKKyAgICAgICAgIyBiZWNh
dXNlIHRoZSB0ZXN0IGRpZG4ndCByZXR1cm4gYSByZXN1bHQgYWZ0ZXIgcmVhY2hpbmcgdGhlIHRl
c3QtaW50ZXJuYWwgdGltZW91dAorICAgICAgICBzdGF0dXNfc3VibnMgPSB7IklOVEVSTkFMLUVS
Uk9SIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJFWFRFUk5BTC1USU1FT1VU
IjogIlRJTUVPVVQifQorICAgICAgICBzdGF0dXMgPSBzdGF0dXNfc3VibnMuZ2V0KHN0YXR1cywg
c3RhdHVzKQorCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCArPSAxCiAgICAgICAgIGlzX3VuZXhw
ZWN0ZWQgPSBleHBlY3RlZCAhPSBzdGF0dXMgYW5kIHN0YXR1cyBub3QgaW4ga25vd25faW50ZXJt
aXR0ZW50CiAgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWQ6CiAgICAgICAgICAgICBzZWxmLnVuZXhw
ZWN0ZWRfY291bnQgKz0gMQogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhwZWN0
ZWQgY291bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQogCisg
ICAgICAgIGlzX3VuZXhwZWN0ZWRfcGFzcyA9IGlzX3VuZXhwZWN0ZWQgYW5kIHN0YXR1cyA9PSAi
T0siCisgICAgICAgIGlmIGlzX3VuZXhwZWN0ZWRfcGFzczoKKyAgICAgICAgICAgIHNlbGYudW5l
eHBlY3RlZF9wYXNzX2NvdW50ICs9IDEKKwogICAgICAgICBpZiAiYXNzZXJ0aW9uX2NvdW50IiBp
biBmaWxlX3Jlc3VsdC5leHRyYToKLSAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IGZpbGVf
cmVzdWx0LmV4dHJhLnBvcCgiYXNzZXJ0aW9uX2NvdW50IikKLSAgICAgICAgICAgIGlmIGFzc2Vy
dGlvbl9jb3VudCA+IDA6CisgICAgICAgICAgICBhc3NlcnRpb25fY291bnQgPSBmaWxlX3Jlc3Vs
dC5leHRyYVsiYXNzZXJ0aW9uX2NvdW50Il0KKyAgICAgICAgICAgIGlmIGFzc2VydGlvbl9jb3Vu
dCBpcyBub3QgTm9uZSBhbmQgYXNzZXJ0aW9uX2NvdW50ID4gMDoKICAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5hc3NlcnRpb25fY291bnQodGVzdC5pZCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50KGFzc2VydGlvbl9jb3VudCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QubWluX2Fzc2VydGlvbl9jb3Vu
dCwKQEAgLTcyMiw4ICs3MjgsOCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcu
VGhyZWFkKToKICAgICAgICAgc2VsZi5zdG9wX3J1bm5lcigpCiAgICAgICAgIHJldHVybiBSdW5u
ZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKHNlbGYuc3RhdGUudGVzdCwgc2VsZi5zdGF0ZS50
ZXN0X2dyb3VwLCBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhLCAwKQogCi0gICAgZGVmIGxvZyhz
ZWxmLCBhY3Rpb24sIGt3YXJncyk6Ci0gICAgICAgIGdldGF0dHIoc2VsZi5sb2dnZXIsIGFjdGlv
bikoKiprd2FyZ3MpCisgICAgZGVmIGxvZyhzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5sb2dn
ZXIubG9nX3JhdyhkYXRhKQogCiAgICAgZGVmIGVycm9yKHNlbGYsIG1lc3NhZ2UpOgogICAgICAg
ICBzZWxmLmxvZ2dlci5lcnJvcihtZXNzYWdlKQpAQCAtNzYxLDIwICs3NjcsMjYgQEAgY2xhc3Mg
VGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJ3YWl0aW5nIGZvciBydW5uZXIgcHJvY2VzcyB0byBlbmQiKQogICAgICAgICBzZWxm
LnRlc3RfcnVubmVyX3Byb2Muam9pbigxMCkKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkFm
dGVyIGpvaW4iKQorICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAgICAgICAg
IGlmIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5pc19hbGl2ZSgpOgogICAgICAgICAgICAgIyBUaGlz
IG1pZ2h0IGxlYWsgYSBmaWxlIGhhbmRsZSBmcm9tIHRoZSBxdWV1ZQogICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIud2FybmluZygiRm9yY2libHkgdGVybWluYXRpbmcgcnVubmVyIHByb2Nlc3MiKQog
ICAgICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnRlcm1pbmF0ZSgpCisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0ZXIgdGVybWluYXRpbmcgcnVubmVyIHByb2Nlc3MiKQog
CiAgICAgICAgICAgICAjIE11bHRpcHJvY2Vzc2luZyBxdWV1ZXMgYXJlIGJhY2tlZCBieSBvcGVy
YXRpbmcgc3lzdGVtIHBpcGVzLiBJZgogICAgICAgICAgICAgIyB0aGUgcGlwZSBpbiB0aGUgY2hp
bGQgcHJvY2VzcyBoYWQgYnVmZmVyZWQgZGF0YSBhdCB0aGUgdGltZSBvZgogICAgICAgICAgICAg
IyBmb3JjZWQgdGVybWluYXRpb24sIHRoZSBxdWV1ZSBpcyBubyBsb25nZXIgaW4gYSB1c2FibGUg
c3RhdGUKICAgICAgICAgICAgICMgKHN1YnNlcXVlbnQgYXR0ZW1wdHMgdG8gcmV0cmlldmUgaXRl
bXMgbWF5IGJsb2NrIGluZGVmaW5pdGVseSkuCiAgICAgICAgICAgICAjIERpc2NhcmQgdGhlIHBv
dGVudGlhbGx5LWNvcnJ1cHRlZCBxdWV1ZSBhbmQgY3JlYXRlIGEgbmV3IG9uZS4KKyAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJSZWNyZWF0aW5nIGNvbW1hbmQgcXVldWUiKQorICAgICAg
ICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlLmNhbmNlbF9qb2luX3RocmVhZCgpCiAgICAgICAgICAg
ICBzZWxmLmNvbW1hbmRfcXVldWUuY2xvc2UoKQotICAgICAgICAgICAgc2VsZi5jb21tYW5kX3F1
ZXVlID0gUXVldWUoKQorICAgICAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAuUXVldWUo
KQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlJlY3JlYXRpbmcgcmVtb3RlIHF1ZXVl
IikKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlLmNhbmNlbF9qb2luX3RocmVhZCgpCiAg
ICAgICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLnJl
bW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gbXAu
UXVldWUoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlJ1
bm5lciBwcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJWkiICUgc2VsZi50ZXN0X3J1bm5lcl9wcm9j
LmV4aXRjb2RlKQogCkBAIC05MTUsMyArOTI3LDYgQEAgY2xhc3MgTWFuYWdlckdyb3VwKG9iamVj
dCk6CiAKICAgICBkZWYgdW5leHBlY3RlZF9jb3VudChzZWxmKToKICAgICAgICAgcmV0dXJuIHN1
bShtYW5hZ2VyLnVuZXhwZWN0ZWRfY291bnQgZm9yIG1hbmFnZXIgaW4gc2VsZi5wb29sKQorCisg
ICAgZGVmIHVuZXhwZWN0ZWRfcGFzc19jb3VudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1bSht
YW5hZ2VyLnVuZXhwZWN0ZWRfcGFzc19jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBvb2wpCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9z
YXVjZS5weQppbmRleCBlMWUxOGVjNWU5Y2QuLjMyNDVkMTI1YzUzNCAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
YnJvd3NlcnMvdGVzdF9zYXVjZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5CkBA
IC0xLDYgKzEsNyBAQAoraW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzeXMKK2Zyb20gdW5pdHRlc3Qg
aW1wb3J0IG1vY2sKIAotaW1wb3J0IG1vY2sKIGltcG9ydCBweXRlc3QKIAogZnJvbSBvcy5wYXRo
IGltcG9ydCBqb2luLCBkaXJuYW1lCkBAIC0xMSw2ICsxMiw4IEBAIHNhdWNlID0gcHl0ZXN0Lmlt
cG9ydG9yc2tpcCgid3B0cnVubmVyLmJyb3dzZXJzLnNhdWNlIikKIAogZnJvbSB3cHRzZXJ2ZS5j
b25maWcgaW1wb3J0IENvbmZpZ0J1aWxkZXIKIAorbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIo
KQorCiAKIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9zdWNjZXNzKCk6CiAgICAgd2l0aCBtb2NrLnBh
dGNoLm9iamVjdChzYXVjZS5TYXVjZUNvbm5lY3QsICJ1cGxvYWRfcHJlcnVuX2V4ZWMiKSxcCkBA
IC0yOSw3ICszMiw3IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9zdWNjZXNzKCk6CiAgICAgICAg
ICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKICAgICAgICAgICAgIHNhdWNlX2Nvbm5l
Y3RfYXJncz1bXSkKIAotICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJl
eGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CisgICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihs
b2dnZXIsIGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgogICAgICAg
ICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQogICAgICAgICAgICAgd2l0aCBz
YXVjZV9jb25uZWN0OgogICAgICAgICAgICAgICAgIHBhc3MKQEAgLTU5LDcgKzYyLDcgQEAgZGVm
IHRlc3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfZXhpdChyZWFkeWZpbGUsIHJldHVybmNvZGUpOgog
ICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCiAgICAgICAgICAgICBzYXVj
ZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJf
aG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgorICAgICAgICB3aXRoIENvbmZpZ0J1
aWxkZXIobG9nZ2VyLCBicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoK
ICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKICAgICAgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhzYXVjZS5TYXVjZUV4Y2VwdGlvbik6CiAgICAgICAgICAgICAg
ICAgd2l0aCBzYXVjZV9jb25uZWN0OgpAQCAtODgsNyArOTEsNyBAQCBkZWYgdGVzdF9zYXVjZWNv
bm5lY3RfY2xlYW51cCgpOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIs
CiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKLSAgICAgICAgd2l0aCBDb25m
aWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgorICAg
ICAgICB3aXRoIENvbmZpZ0J1aWxkZXIobG9nZ2VyLCBicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0
IikgYXMgZW52X2NvbmZpZzoKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2Nv
bmZpZykKICAgICAgICAgICAgIHdpdGggc2F1Y2VfY29ubmVjdDoKICAgICAgICAgICAgICAgICBQ
b3Blbi5yZXR1cm5fdmFsdWUucG9sbC5yZXR1cm5fdmFsdWUgPSBOb25lCkBAIC0xMTIsNyArMTE1
LDcgQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfbmV2ZXJfcmVhZHkoKToKICAgICAg
ICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAogICAgICAgICAgICAgc2F1Y2VfY29u
bmVjdF9hcmdzPVtdKQogCi0gICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9
ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKKyAgICAgICAgd2l0aCBDb25maWdCdWlsZGVy
KGxvZ2dlciwgYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAgICAg
ICAgICAgICBzYXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCiAgICAgICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoc2F1Y2UuU2F1Y2VFeGNlcHRpb24pOgogICAgICAgICAgICAgICAgIHdp
dGggc2F1Y2VfY29ubmVjdDoKQEAgLTE0MSw3ICsxNDQsOCBAQCBkZWYgdGVzdF9zYXVjZWNvbm5l
Y3RfdHVubmVsX2RvbWFpbnMoKToKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJk
ZGQiLAogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtdKQogCi0gICAgICAgIHdpdGgg
Q29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IiwKKyAgICAgICAgd2l0aCBD
b25maWdCdWlsZGVyKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJf
aG9zdD0iZXhhbXBsZS5uZXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRl
X2hvc3RzPXsiYWx0IjogImV4YW1wbGUub3JnIn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdWJkb21haW5zPXsiYSIsICJiIn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Rf
c3ViZG9tYWlucz17IngiLCAieSJ9KSBhcyBlbnZfY29uZmlnOgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJv
d3NlcnMvdGVzdF93ZWJraXRndGsucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weQpp
bmRleCA2MTUwZDUwYWNmOTMuLmIyMGQzNTc2Njc0ZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMv
dGVzdF93ZWJraXRndGsucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkKQEAg
LTEsMyArMSw0IEBACitpbXBvcnQgbG9nZ2luZwogZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luLCBk
aXJuYW1lCiAKIGltcG9ydCBweXRlc3QKQEAgLTksNiArMTAsOCBAQCBmcm9tIHdwdHJ1bm5lciBp
bXBvcnQgZW52aXJvbm1lbnQsIHByb2R1Y3RzCiB0ZXN0X3BhdGhzID0geyIvIjogeyJ0ZXN0c19w
YXRoIjogam9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4uIiwgIi4u
Iil9fSAgIyByZXBvIHJvb3QKIGVudmlyb25tZW50LmRvX2RlbGF5ZWRfaW1wb3J0cyhOb25lLCB0
ZXN0X3BhdGhzKQogCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKIAogQGFjdGl2ZV9w
cm9kdWN0cygicHJvZHVjdCIpCiBkZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNhdGVfZG9tYWlu
X2xpc3QocHJvZHVjdCk6CkBAIC0yMiwxMCArMjUsNyBAQCBkZWYgdGVzdF93ZWJraXRndGtfY2Vy
dGlmaWNhdGVfZG9tYWluX2xpc3QocHJvZHVjdCk6CiAgICAgaWYgcHJvZHVjdCBub3QgaW4gWyJl
cGlwaGFueSIsICJ3ZWJraXQiLCAid2Via2l0Z3RrX21pbmlicm93c2VyIl06CiAgICAgICAgIHB5
dGVzdC5za2lwKCIlcyBkb2Vzbid0IHN1cHBvcnQgY2VydGlmaWNhdGVfZG9tYWluX2xpc3QiICUg
cHJvZHVjdCkKIAotICAgIChjaGVja19hcmdzLAotICAgICB0YXJnZXRfYnJvd3Nlcl9jbHMsIGdl
dF9icm93c2VyX2t3YXJncywKLSAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0X2V4ZWN1dG9yX2t3
YXJncywKLSAgICAgZW52X29wdGlvbnMsIGdldF9lbnZfZXh0cmFzLCBydW5faW5mb19leHRyYXMp
ID0gcHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0KQorICAgIHByb2R1Y3RfZGF0YSA9
IHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAKICAgICBjZXJ0X2ZpbGUgPSAiL2hvbWUv
dXNlci93cHQvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbSIKICAgICB2YWxpZF9kb21haW5zX3Rlc3Qg
PSBbImEuZXhhbXBsZS5vcmciLCAiYi5leGFtcGxlLm9yZyIsICJleGFtcGxlLm9yZyIsCkBAIC00
MSwxMiArNDEsMjUgQEAgZGVmIHRlc3Rfd2Via2l0Z3RrX2NlcnRpZmljYXRlX2RvbWFpbl9saXN0
KHByb2R1Y3QpOgogICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gTm9uZQogICAgIGt3
YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKICAgICBrd2FyZ3NbInBhdXNlX29uX3Vu
ZXhwZWN0ZWQiXSA9IEZhbHNlCi0gICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0i
ZXhhbXBsZS5uZXQiLAorICAgIGt3YXJnc1siZGVidWdfdGVzdCJdID0gRmFsc2UKKyAgICB3aXRo
IENvbmZpZ0J1aWxkZXIobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2hv
c3Q9ImV4YW1wbGUubmV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRlX2hvc3Rz
PXsiYWx0IjogImV4YW1wbGUub3JnIn0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmRvbWFp
bnM9eyJhIiwgImIifSwKICAgICAgICAgICAgICAgICAgICAgICAgbm90X3N1YmRvbWFpbnM9eyJ4
IiwgInkifSkgYXMgZW52X2NvbmZpZzoKIAotICAgICAgICBleGVjdXRvcl9hcmdzID0gZ2V0X2V4
ZWN1dG9yX2t3YXJncyhOb25lLCBlbnZfY29uZmlnLCBOb25lLCBOb25lLCAqKmt3YXJncykKKyAg
ICAgICAgIyBXZSBkb24ndCB3YW50IHRvIGFjdHVhbGx5IGNyZWF0ZSBhIHRlc3QgZW52aXJvbm1l
bnQ7IHRoZSBnZXRfZXhlY3V0b3Jfa3dhcmdzCisgICAgICAgICMgZnVuY3Rpb24gb25seSByZWFs
bHkgd2FudHMgYW4gb2JqZWN0IHdpdGggdGhlIGNvbmZpZyBrZXkKKworICAgICAgICBjbGFzcyBN
b2NrRW52aXJvbm1lbnQ6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToK
KyAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZworCisgICAgICAgIGV4ZWN1dG9y
X2FyZ3MgPSBwcm9kdWN0X2RhdGEuZ2V0X2V4ZWN1dG9yX2t3YXJncyhOb25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1v
Y2tFbnZpcm9ubWVudChlbnZfY29uZmlnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgICAgIGFzc2Vy
dCgnY2FwYWJpbGl0aWVzJyBpbiBleGVjdXRvcl9hcmdzKQogICAgICAgICBhc3NlcnQoJ3dlYmtp
dGd0azpicm93c2VyT3B0aW9ucycgaW4gZXhlY3V0b3JfYXJnc1snY2FwYWJpbGl0aWVzJ10pCiAg
ICAgICAgIGFzc2VydCgnY2VydGlmaWNhdGVzJyBpbiBleGVjdXRvcl9hcmdzWydjYXBhYmlsaXRp
ZXMnXVsnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zJ10pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zv
cm1hdHRlcnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkKaW5kZXggNjBiMWIwYTVhODc4Li4w
NDUyNmRhNzAyYmEgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90
ZXN0X2Zvcm1hdHRlcnMucHkKQEAgLTEsMTIgKzEsOSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB0
aW1lCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0cmluZ0lPCi0KLWltcG9y
dCBtb2NrCitmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIG1vemxvZyBpbXBvcnQgaGFu
ZGxlcnMsIHN0cnVjdHVyZWRsb2cKIAotZnJvbSAuLmZvcm1hdHRlcnMgaW1wb3J0IHdwdHJlcG9y
dAogZnJvbSAuLmZvcm1hdHRlcnMud3B0c2NyZWVuc2hvdCBpbXBvcnQgV3B0c2NyZWVuc2hvdEZv
cm1hdHRlcgogZnJvbSAuLmZvcm1hdHRlcnMud3B0cmVwb3J0IGltcG9ydCBXcHRyZXBvcnRGb3Jt
YXR0ZXIKIApAQCAtOTcsNDUgKzk0LDYgQEAgZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVfc3Vycm9n
YXRlKGNhcGZkKToKICAgICBhc3NlcnQgc3VidGVzdFsibWVzc2FnZSJdID09IHUiXFUwMDAxRjYw
MSBVK2RlMGFVK2Q4M2QiCiAKIAotZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVfc3Vycm9nYXRlX3Vj
czIoY2FwZmQpOgotICAgICMgU2luY2UgVUNTNCBpcyBhIHN1cGVyc2V0IG9mIFVDUzIgd2UgY2Fu
IG1lYW5pbmdmdWxseSB0ZXN0IHRoZSBVQ1MyIGNvZGUgb24gYQotICAgICMgVUNTNCBidWlsZCwg
YnV0IG5vdCB0aGUgcmV2ZXJzZS4gSG93ZXZlciBVQ1MyIGlzIGhhcmRlciB0byBoYW5kbGUgYW5k
IFVDUzQgaXMKLSAgICAjIHRoZSBjb21tb25lc3QgKGFuZCBzZW5zaWJsZSkgY29uZmlndXJhdGlv
biwgc28gdGhhdCdzIE9LLgotICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKLSAgICBsb2dnZXIgPSBz
dHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRlc3RfYSIpCi0gICAgbG9nZ2VyLmFkZF9o
YW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBXcHRyZXBvcnRGb3JtYXR0ZXIo
KSkpCi0KLSAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KHdwdHJlcG9ydCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdzdXJyb2dhdGVfcmVwbGFjZW1lbnQnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd3B0cmVwb3J0LlN1cnJvZ2F0ZVJlcGxhY2VtZW50VWNzMigpKToKLSAgICAg
ICAgIyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgotICAgICAgICBsb2dnZXIuc3VpdGVfc3RhcnQo
WyJ0ZXN0LWlkLTEiXSkgICMgbm8gcnVuX2luZm8gYXJnIQotICAgICAgICBsb2dnZXIudGVzdF9z
dGFydCgidGVzdC1pZC0xIikKLSAgICAgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0LWlkLTEi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidGVzdD11Ik5hbWUgd2l0aCBzdXJyb2dh
dGVcdUQ4MDAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPSJGQUlMIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9dSJcVTAwMDFGNjAxIFx1REUwQVx1RDgz
RCBcdUQ4M0RcdURFMEEiKQotICAgICAgICBsb2dnZXIudGVzdF9lbmQoInRlc3QtaWQtMSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IlBBU1MiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZT11Ilx1REUwQVx1RDgzRCBcdUQ4M0RcdURFMEEgXFUwMDAxRjYwMSIpCi0g
ICAgICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQotCi0gICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRw
dXQgdG8gc3Rkb3V0L3N0ZGVycgotICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNl
cHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQotICAgIGNhcHR1cmVkID0gY2FwZmQu
cmVhZG91dGVycigpCi0gICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgotICAgIGFzc2VydCBj
YXB0dXJlZC5lcnIgPT0gIiIKLQotICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhl
IGZvcm1hdHRlcgotICAgIG91dHB1dC5zZWVrKDApCi0gICAgb3V0cHV0X29iaiA9IGpzb24ubG9h
ZChvdXRwdXQpCi0gICAgdGVzdCA9IG91dHB1dF9vYmpbInJlc3VsdHMiXVswXQotICAgIGFzc2Vy
dCB0ZXN0WyJtZXNzYWdlIl0gPT0gdSJVK2RlMGFVK2Q4M2QgXFUwMDAxZjYwYSBcVTAwMDFGNjAx
IgotICAgIHN1YnRlc3QgPSB0ZXN0WyJzdWJ0ZXN0cyJdWzBdCi0gICAgYXNzZXJ0IHN1YnRlc3Rb
Im5hbWUiXSA9PSB1Ik5hbWUgd2l0aCBzdXJyb2dhdGVVK2Q4MDAiCi0gICAgYXNzZXJ0IHN1YnRl
c3RbIm1lc3NhZ2UiXSA9PSB1IlxVMDAwMUY2MDEgVStkZTBhVStkODNkIFxVMDAwMWY2MGEiCi0K
LQogZGVmIHRlc3Rfd3B0cmVwb3J0X2tub3duX2ludGVybWl0dGVudChjYXBmZCk6CiAgICAgb3V0
cHV0ID0gU3RyaW5nSU8oKQogICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExv
Z2dlcigidGVzdF9hIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0
X3Byb2R1Y3RzLnB5CmluZGV4IDVkMmJjZjA3NWQwZi4uMTIwYzdlNzJjNjNmIDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkKQEAgLTEsNiAr
MSw2IEBACiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRpcm5hbWUKK2Zyb20gdW5pdHRlc3Qg
aW1wb3J0IG1vY2sKIAotaW1wb3J0IG1vY2sKIGltcG9ydCBweXRlc3QKIAogZnJvbSAuYmFzZSBp
bXBvcnQgYWxsX3Byb2R1Y3RzLCBhY3RpdmVfcHJvZHVjdHMKQEAgLTE0LDcgKzE0LDcgQEAgZW52
aXJvbm1lbnQuZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRlc3RfcGF0aHMpCiBAYWN0aXZlX3By
b2R1Y3RzKCJwcm9kdWN0IikKIGRlZiB0ZXN0X2xvYWRfYWN0aXZlX3Byb2R1Y3QocHJvZHVjdCk6
CiAgICAgIiIidGVzdCB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IGxvYWQgdGhlIHByb2R1Y3Qgb2YgdGhl
IGN1cnJlbnQgdGVzdGVudiIiIgotICAgIHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVj
dCkKKyAgICBwcm9kdWN0cy5Qcm9kdWN0KHt9LCBwcm9kdWN0KQogICAgICMgdGVzdCBwYXNzZXMg
aWYgaXQgZG9lc24ndCB0aHJvdwogCiAKQEAgLTIyLDcgKzIyLDcgQEAgZGVmIHRlc3RfbG9hZF9h
Y3RpdmVfcHJvZHVjdChwcm9kdWN0KToKIGRlZiB0ZXN0X2xvYWRfYWxsX3Byb2R1Y3RzKHByb2R1
Y3QpOgogICAgICIiInRlc3QgZXZlcnkgcHJvZHVjdCBlaXRoZXIgbG9hZHMgb3IgdGhyb3dzIElt
cG9ydEVycm9yIiIiCiAgICAgdHJ5OgotICAgICAgICBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoe30s
IHByb2R1Y3QpCisgICAgICAgIHByb2R1Y3RzLlByb2R1Y3Qoe30sIHByb2R1Y3QpCiAgICAgZXhj
ZXB0IEltcG9ydEVycm9yOgogICAgICAgICBwYXNzCiAKQEAgLTMxLDI2ICszMSwyNCBAQCBkZWYg
dGVzdF9sb2FkX2FsbF9wcm9kdWN0cyhwcm9kdWN0KToKICAgICAic2F1Y2UiOiBweXRlc3QubWFy
ay5za2lwKCJuZWVkcyBlbnYgZXh0cmFzIGt3YXJncyIpLAogfSkKIGRlZiB0ZXN0X3NlcnZlcl9z
dGFydF9jb25maWcocHJvZHVjdCk6Ci0gICAgKGNoZWNrX2FyZ3MsCi0gICAgIHRhcmdldF9icm93
c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdzLAotICAgICBleGVjdXRvcl9jbGFzc2VzLCBnZXRf
ZXhlY3V0b3Jfa3dhcmdzLAotICAgICBlbnZfb3B0aW9ucywgZ2V0X2Vudl9leHRyYXMsIHJ1bl9p
bmZvX2V4dHJhcykgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisgICAgcHJv
ZHVjdF9kYXRhID0gcHJvZHVjdHMuUHJvZHVjdCh7fSwgcHJvZHVjdCkKIAotICAgIGVudl9leHRy
YXMgPSBnZXRfZW52X2V4dHJhcygpCisgICAgZW52X2V4dHJhcyA9IHByb2R1Y3RfZGF0YS5nZXRf
ZW52X2V4dHJhcygpCiAKICAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KGVudmlyb25tZW50LnNl
cnZlLCAic3RhcnQiKSBhcyBzdGFydDoKICAgICAgICAgd2l0aCBlbnZpcm9ubWVudC5UZXN0RW52
aXJvbm1lbnQodGVzdF9wYXRocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InR5cGUiOiAibm9uZSJ9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfZXh0cmFzKToKICAgICAg
ICAgICAgIHN0YXJ0LmFzc2VydF9jYWxsZWRfb25jZSgpCiAgICAgICAgICAgICBhcmdzID0gc3Rh
cnQuY2FsbF9hcmdzCi0gICAgICAgICAgICBjb25maWcgPSBhcmdzWzBdWzBdCi0gICAgICAgICAg
ICBpZiAic2VydmVyX2hvc3QiIGluIGVudl9vcHRpb25zOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCBjb25maWdbInNlcnZlcl9ob3N0Il0gPT0gZW52X29wdGlvbnNbInNlcnZlcl9ob3N0Il0KKyAg
ICAgICAgICAgIGNvbmZpZyA9IGFyZ3NbMF1bMV0KKyAgICAgICAgICAgIGlmICJzZXJ2ZXJfaG9z
dCIgaW4gcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zOgorICAgICAgICAgICAgICAgIGFzc2VydCBj
b25maWdbInNlcnZlcl9ob3N0Il0gPT0gcHJvZHVjdF9kYXRhLmVudl9vcHRpb25zWyJzZXJ2ZXJf
aG9zdCJdCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGFzc2VydCBjb25maWdb
InNlcnZlcl9ob3N0Il0gPT0gY29uZmlnWyJicm93c2VyX2hvc3QiXQogICAgICAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29uZmlnWyJiaW5kX2FkZHJlc3MiXSwgYm9vbCkKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL3Rlc3RfdGVzdGxvYWRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQppbmRleCAzOTRk
MmEwMDE3N2IuLjc3Y2Q4NWI4MjBkNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQpAQCAtMSw1ICsxLDMgQEAKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwotCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGlt
cG9ydCB0ZW1wZmlsZQpAQCAtOCw2ICs2LDcgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9tIG1vemxv
ZyBpbXBvcnQgc3RydWN0dXJlZAogZnJvbSAuLnRlc3Rsb2FkZXIgaW1wb3J0IFRlc3RGaWx0ZXIg
YXMgRmlsdGVyLCBUZXN0TG9hZGVyIGFzIExvYWRlcgorZnJvbSAuLnRlc3Rsb2FkZXIgaW1wb3J0
IHJlYWRfaW5jbHVkZV9mcm9tX2ZpbGUKIGZyb20gLnRlc3Rfd3B0dGVzdCBpbXBvcnQgbWFrZV9t
b2NrX21hbmlmZXN0CiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCkBAIC01OCw2
ICs1NywyOCBAQCBkZWYgdGVzdF9sb2FkZXJfaDJfdGVzdHMoKToKICAgICBhc3NlcnQgbGVuKGxv
YWRlci5kaXNhYmxlZF90ZXN0c1sidGVzdGhhcm5lc3MiXSkgPT0gMQogICAgIGFzc2VydCBsb2Fk
ZXIuZGlzYWJsZWRfdGVzdHNbInRlc3RoYXJuZXNzIl1bMF0udXJsID09ICIvYS9iYXIuaDIuaHRt
bCIKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0iTmFtZWRUZW1wb3JhcnlGaWxlIGNhbm5vdCBiZSByZW9wZW5l
ZCBvbiBXaW4zMiIpCitkZWYgdGVzdF9pbmNsdWRlX2ZpbGUoKToKKyAgICB0ZXN0X2Nhc2VzID0g
IiIiCisjIFRoaXMgaXMgYSBjb21tZW50CisvZm9vL2Jhci1lcnJvci5odHRwcy5odG1sCisvZm9v
L2Jhci1zdWNjZXNzLmh0dHBzLmh0bWwKKy9mb28vaWRsaGFybmVzcy5odHRwcy5hbnkuaHRtbAor
L2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXIuaHRtbAorICAgICIiIgorCisgICAgd2l0
aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUobW9kZT0id3QiKSBhcyBmOgorICAgICAgICBm
LndyaXRlKHRlc3RfY2FzZXMpCisgICAgICAgIGYuZmx1c2goKQorCisgICAgICAgIGluY2x1ZGUg
PSByZWFkX2luY2x1ZGVfZnJvbV9maWxlKGYubmFtZSkKKworICAgICAgICBhc3NlcnQgbGVuKGlu
Y2x1ZGUpID09IDQKKyAgICAgICAgYXNzZXJ0ICIvZm9vL2Jhci1lcnJvci5odHRwcy5odG1sIiBp
biBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9iYXItc3VjY2Vzcy5odHRwcy5odG1sIiBp
biBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS5odG1s
IiBpbiBpbmNsdWRlCisgICAgICAgIGFzc2VydCAiL2Zvby9pZGxoYXJuZXNzLmh0dHBzLmFueS53
b3JrZXIuaHRtbCIgaW4gaW5jbHVkZQogCiBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3Jt
ID09ICJ3aW4zMiIsCiAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJOYW1lZFRlbXBvcmFyeUZp
bGUgY2Fubm90IGJlIHJlb3BlbmVkIG9uIFdpbjMyIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBk
YXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKaW5kZXggYTFiYThkZTI4NzgwLi44MDRmNzUxMjUx
ODAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5
CkBAIC0xLDExICsxLDEyIEBACiBpbXBvcnQganNvbgotaW1wb3J0IG1vY2sKIGltcG9ydCBvcwot
aW1wb3J0IHB5dGVzdAogaW1wb3J0IHN5cwogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTworZnJvbSB1
bml0dGVzdCBpbXBvcnQgbW9jaworCitpbXBvcnQgcHl0ZXN0CiAKLWZyb20gLi4gaW1wb3J0IG1l
dGFkYXRhLCBtYW5pZmVzdHVwZGF0ZQorZnJvbSAuLiBpbXBvcnQgbWV0YWRhdGEsIG1hbmlmZXN0
dXBkYXRlLCB3cHRtYW5pZmVzdAogZnJvbSAuLnVwZGF0ZS51cGRhdGUgaW1wb3J0IFdQVFVwZGF0
ZQogZnJvbSAuLnVwZGF0ZS5iYXNlIGltcG9ydCBTdGVwUnVubmVyLCBTdGVwCiBmcm9tIG1vemxv
ZyBpbXBvcnQgc3RydWN0dXJlZGxvZywgaGFuZGxlcnMsIGZvcm1hdHRlcnMKQEAgLTQ0Miw3ICs0
NDMsNyBAQCBkZWYgdGVzdF91cGRhdGVfcmVvcmRlcl9leHBlY3RlZCgpOgogCiAgICAgYXNzZXJ0
IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90
ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVs
dF9ydW5faW5mbykgPT0gWyJGQUlMIiwgIlBBU1MiXQorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZh
dWx0X3J1bl9pbmZvKSA9PSBbIlBBU1MiLCAiRkFJTCJdCiAKIAogZGVmIHRlc3RfdXBkYXRlX2Fu
ZF9wcmVzZXJ2ZV91bmNoYW5nZWRfZXhwZWN0ZWRfaW50ZXJtaXR0ZW50KCk6CkBAIC0xNjcyLDMg
KzE2NzMsMTA1IEBAIGRlZiB0ZXN0X3VwZGF0ZV9waWNrbGUoKToKICAgICB3cHR1cGRhdGUgPSBX
UFRVcGRhdGUobG9nZ2VyLCAqKmFyZ3MyKQogICAgIHdwdHVwZGF0ZSA9IFdQVFVwZGF0ZShsb2dn
ZXIsIHJ1bm5lcl9jbHM9VXBkYXRlUnVubmVyLCAqKmFyZ3MpCiAgICAgd3B0dXBkYXRlLnJ1bigp
CisKKworZGVmIHRlc3RfdXBkYXRlX3NlcmlhbGl6ZV9xdW90ZWQoKToKKyAgICB0ZXN0cyA9IFso
InBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAg
ICAgIGIiIiJbdGVzdC5odG1dCisgIGV4cGVjdGVkOiAiRVJST1IiCisgIFt0ZXN0MV0KKyAgICBl
eHBlY3RlZDoKKyAgICAgaWYgb3MgPT0gImxpbnV4IjogWyJQQVNTIiwgIkZBSUwiXQorICAgICAi
RVJST1IiCisiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsi
dGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAg
ICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorICAgIGxvZ18xID0gc3VpdGVfbG9n
KFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAg
ICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJG
QUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
IkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
Ik9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImxpbnV4In0p
CisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAi
dGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMi
OiAiRVJST1IifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3Qi
OiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1
cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJ3aW4i
fSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIGZ1
bGxfdXBkYXRlPVRydWUsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworCisgICAgbWFuaWZl
c3Rfc3RyID0gd3B0bWFuaWZlc3Quc2VyaWFsaXplKHVwZGF0ZWRbMF1bMV0ubm9kZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9lbXB0eV9kYXRhPVRydWUp
CisgICAgYXNzZXJ0IG1hbmlmZXN0X3N0ciA9PSAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAg
ICBleHBlY3RlZDoKKyAgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlMXQorICAgICAg
RVJST1IKKyIiIgorCisKK2RlZiB0ZXN0X3VwZGF0ZV9zZXJpYWxpemVfdW5xdW90ZWQoKToKKyAg
ICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIs
CisgICAgICAgICAgICAgIGIiIiJbdGVzdC5odG1dCisgIGV4cGVjdGVkOiBFUlJPUgorICBbdGVz
dDFdCisgICAgZXhwZWN0ZWQ6CisgICAgIGlmIG9zID09ICJsaW51eCI6IFtQQVNTLCBGQUlMXQor
ICAgICBFUlJPUgorIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQi
LCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0
dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3RhdHVzIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAgICAg
ICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1IiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkKKyAgICBsb2dfMSA9IHN1aXRl
X2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6
IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3Qi
OiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1
cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51
eCJ9KQorICAgIGxvZ18yID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0
X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0
IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Rh
dHVzIjogIkVSUk9SIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0
ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAi
d2luIn0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEsIGxvZ18y
LCBmdWxsX3VwZGF0ZT1UcnVlLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUpCisKKworICAgIG1h
bmlmZXN0X3N0ciA9IHdwdG1hbmlmZXN0LnNlcmlhbGl6ZSh1cGRhdGVkWzBdWzFdLm5vZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBfZW1wdHlfZGF0YT1U
cnVlKQorICAgIGFzc2VydCBtYW5pZmVzdF9zdHIgPT0gIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFd
CisgICAgZXhwZWN0ZWQ6CisgICAgICBpZiBvcyA9PSAibGludXgiOiBbUEFTUywgRkFJTF0KKyAg
ICAgIEVSUk9SCisiIiIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rf
d3B0dGVzdC5weQppbmRleCA0ZWVlOWNjYjFiNjkuLjU5YWE2MzZhOTAzNyAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvdGVzdF93cHR0ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weQpAQCAtMSw1ICsxLDUg
QEAKLWltcG9ydCBtb2NrCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitmcm9tIHVuaXR0ZXN0IGlt
cG9ydCBtb2NrCiAKIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0IGFzIHdwdG1hbmlmZXN0
CiBmcm9tIG1hbmlmZXN0Lml0ZW0gaW1wb3J0IFRlc3RoYXJuZXNzVGVzdCwgUmVmVGVzdApAQCAt
MjAyLDE0ICsyMDIsMTYgQEAgZGVmIHRlc3RfZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1cygpOgog
CiAKIGRlZiB0ZXN0X21ldGFkYXRhX2Z1enp5KCk6Ci0gICAgaXRlbSA9IFJlZlRlc3QoIi4iLCAi
YS9mdXp6eS5odG1sIiwgIi8iLCAiYS9mdXp6eS5odG1sIiwKKyAgICBpdGVtID0gUmVmVGVzdCh0
ZXN0c19yb290PSIuIiwKKyAgICAgICAgICAgICAgICAgICBwYXRoPSJhL2Z1enp5Lmh0bWwiLAor
ICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIvIiwKKyAgICAgICAgICAgICAgICAgICB1cmw9
ImEvZnV6enkuaHRtbCIsCiAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcz1bWyIvYS9mdXp6
eS1yZWYuaHRtbCIsICI9PSJdXSwKICAgICAgICAgICAgICAgICAgICBmdXp6eT1bW1siL2EvZnV6
enkuaHRtbCIsICcvYS9mdXp6eS1yZWYuaHRtbCcsICc9PSddLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW1syLCAzXSwgWzEwLCAxNV1dXV0pCiAgICAgcyA9IG1vY2suTW9jayhyZWxfcGF0
aD0iYS9mdXp6eS5odG1sIiwgcmVsX3BhdGhfcGFydHM9KCJhIiwgImZ1enp5Lmh0bWwiKSwgaGFz
aD0iMCIqNDApCiAgICAgcy5tYW5pZmVzdF9pdGVtcyA9IG1vY2suTW9jayhyZXR1cm5fdmFsdWU9
KGl0ZW0uaXRlbV90eXBlLCBbaXRlbV0pKQogCi0KICAgICBtYW5pZmVzdCA9IHdwdG1hbmlmZXN0
Lk1hbmlmZXN0KCIiKQogCiAgICAgdHJlZSwgc291cmNlZmlsZV9tb2NrID0gdHJlZV9hbmRfc291
cmNlZmlsZV9tb2NrcyhbKHMsIE5vbmUsIFRydWUpXSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNlLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL2Jhc2UucHkKaW5kZXggNTQ3ODA4ZTUyOTMzLi40N2VhN2ZmYjQxZjAgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3VwZGF0ZS9iYXNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNlLnB5CkBAIC0xLDkgKzEsMTEgQEAKK2Zyb20g
dHlwaW5nIGltcG9ydCBDbGFzc1ZhciwgTGlzdCwgVHlwZQorCiBleGl0X3VuY2xlYW4gPSBvYmpl
Y3QoKQogZXhpdF9jbGVhbiA9IG9iamVjdCgpCiAKIAogY2xhc3MgU3RlcChvYmplY3QpOgotICAg
IHByb3ZpZGVzID0gW10KKyAgICBwcm92aWRlcyA9IFtdICAjIHR5cGU6IENsYXNzVmFyW0xpc3Rb
c3RyXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgogICAgICAgICBzZWxmLmxv
Z2dlciA9IGxvZ2dlcgpAQCAtNDUsNyArNDcsNyBAQCBjbGFzcyBTdGVwKG9iamVjdCk6CiAKIAog
Y2xhc3MgU3RlcFJ1bm5lcihvYmplY3QpOgotICAgIHN0ZXBzID0gW10KKyAgICBzdGVwcyA9IFtd
ICAjIHR5cGU6IENsYXNzVmFyW0xpc3RbVHlwZVtTdGVwXV1dCiAKICAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBzdGF0ZSk6CiAgICAgICAgICIiIkNsYXNzIHRoYXQgcnVucyBhIHNwZWNp
ZmllZCBzZXJpZXMgb2YgU3RlcHMgd2l0aCBhIGNvbW1vbiBTdGF0ZSIiIgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBk
YXRlL3N0YXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CmluZGV4IGJkYjIzZmVkOTllMS4uYTUyNmMyNGM5
NTlmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CkBAIC0xLDUg
KzEsNSBAQAogaW1wb3J0IG9zCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1BpY2tsZSBhcyBwaWNr
bGUgICMgbm9xYTogTjgxMworaW1wb3J0IHBpY2tsZQogCiBoZXJlID0gb3MucGF0aC5hYnNwYXRo
KG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCiAKQEAgLTk3LDcgKzk3LDcgQEAgY2xhc3MgU2F2
ZWRTdGF0ZShCYXNlU3RhdGUpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBub3Qgb3Mu
cGF0aC5pc2ZpbGUoY2xzLmZpbGVuYW1lKToKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQot
ICAgICAgICAgICAgd2l0aCBvcGVuKGNscy5maWxlbmFtZSkgYXMgZjoKKyAgICAgICAgICAgIHdp
dGggb3BlbihjbHMuZmlsZW5hbWUsICJyYiIpIGFzIGY6CiAgICAgICAgICAgICAgICAgdHJ5Ogog
ICAgICAgICAgICAgICAgICAgICBydiA9IHBpY2tsZS5sb2FkKGYpCiAgICAgICAgICAgICAgICAg
ICAgIGxvZ2dlci5kZWJ1ZygiTG9hZGluZyBkYXRhICVyIiAlIChydi5fZGF0YSwpKQpAQCAtMTEx
LDcgKzExMSw3IEBAIGNsYXNzIFNhdmVkU3RhdGUoQmFzZVN0YXRlKToKIAogICAgIGRlZiBzYXZl
KHNlbGYpOgogICAgICAgICAiIiJXcml0ZSB0aGUgc3RhdGUgdG8gZGlzayIiIgotICAgICAgICB3
aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAgICAgICB3aXRoIG9wZW4oc2Vs
Zi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIHBpY2tsZS5kdW1wKHNlbGYsIGYp
CiAKICAgICBkZWYgY2xlYXIoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9z
eW5jLnB5CmluZGV4IGY4Nzg3NTJmNDUxNC4uMmM5ODM0YzY3MmQ2IDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUv
c3luYy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQpAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBVcGRhdGVD
aGVja291dChTdGVwKToKICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5sb2NhbF9icmFu
Y2gpCiAgICAgICAgIHN5bmNfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChzeW5jX3RyZWUucm9vdCkK
ICAgICAgICAgaWYgc3luY19wYXRoIG5vdCBpbiBzeXMucGF0aDoKLSAgICAgICAgICAgIGZyb20g
dXBkYXRlIGltcG9ydCBzZXR1cF9wYXRocworICAgICAgICAgICAgZnJvbSAudXBkYXRlIGltcG9y
dCBzZXR1cF9wYXRocwogICAgICAgICAgICAgc2V0dXBfcGF0aHMoc3luY19wYXRoKQogCiAgICAg
ZGVmIHJlc3RvcmUoc2VsZiwgc3RhdGUpOgpAQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBVcGRhdGVN
YW5pZmVzdChTdGVwKToKICAgICBwcm92aWRlcyA9IFsibWFuaWZlc3RfcGF0aCIsICJ0ZXN0X21h
bmlmZXN0Il0KIAogICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgotICAgICAgICBmcm9tIG1h
bmlmZXN0IGltcG9ydCBtYW5pZmVzdAorICAgICAgICBmcm9tIG1hbmlmZXN0IGltcG9ydCBtYW5p
ZmVzdCAgIyB0eXBlOiBpZ25vcmUKICAgICAgICAgc3RhdGUubWFuaWZlc3RfcGF0aCA9IG9zLnBh
dGguam9pbihzdGF0ZS5tZXRhZGF0YV9wYXRoLCAiTUFOSUZFU1QuanNvbiIpCiAgICAgICAgIHN0
YXRlLnRlc3RfbWFuaWZlc3QgPSBtYW5pZmVzdC5sb2FkX2FuZF91cGRhdGUoc3RhdGUuc3luY1si
cGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlLm1hbmlmZXN0X3BhdGgsCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdHJlZS5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS90cmVlLnB5CmluZGV4IGYzNjI3NzBmZjE2ZC4uMmY0M2JhY2QxNWJmIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRh
dGUvdHJlZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci91cGRhdGUvdHJlZS5weQpAQCAtMyw4ICszLDYgQEAgaW1wb3J0IHJlCiBp
bXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRlbXBmaWxlCiAKLWZyb20gc2l4Lm1vdmVzIGltcG9y
dCByYW5nZQotCiBmcm9tIC4uIGltcG9ydCB2Y3MKIGZyb20gLi52Y3MgaW1wb3J0IGdpdCwgaGcK
IApAQCAtODcsNyArODUsNyBAQCBjbGFzcyBIZ1RyZWUob2JqZWN0KToKIAogICAgIEBwcm9wZXJ0
eQogICAgIGRlZiBpc19jbGVhbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuaGcoInN0YXR1
cyIpLnN0cmlwKCkgPT0gIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuaGcoInN0YXR1cyIpLnN0cmlw
KCkgPT0gYiIiCiAKICAgICBkZWYgYWRkX25ldyhzZWxmLCBwcmVmaXg9Tm9uZSk6CiAgICAgICAg
IGlmIHByZWZpeCBpcyBub3QgTm9uZToKQEAgLTEwNSw3ICsxMDMsNyBAQCBjbGFzcyBIZ1RyZWUo
b2JqZWN0KToKICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgog
ICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIHBhdGNoX25hbWVzID0gW2l0ZW0uc3RyaXAoKSBm
b3IgaXRlbSBpbiBzZWxmLmhnKCJxc2VyaWVzIikuc3BsaXQoIlxuIikgaWYgaXRlbS5zdHJpcCgp
XQorICAgICAgICBwYXRjaF9uYW1lcyA9IFtpdGVtLnN0cmlwKCkgZm9yIGl0ZW0gaW4gc2VsZi5o
ZygicXNlcmllcyIpLnNwbGl0KGIiXG4iKSBpZiBpdGVtLnN0cmlwKCldCiAKICAgICAgICAgc3Vm
Zml4ID0gMAogICAgICAgICB0ZXN0X25hbWUgPSBwYXRjaF9uYW1lCkBAIC0xNDIsNyArMTQwLDcg
QEAgY2xhc3MgR2l0VHJlZShvYmplY3QpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3Q9
Tm9uZSwgbG9nX2Vycm9yPVRydWUpOgogICAgICAgICBpZiByb290IGlzIE5vbmU6Ci0gICAgICAg
ICAgICByb290ID0gZ2l0KCJyZXYtcGFyc2UiLCAiLS1zaG93LXRvcGxldmVsIiwgbG9nX2Vycm9y
PWxvZ19lcnJvcikuc3RyaXAoKQorICAgICAgICAgICAgcm9vdCA9IGdpdCgicmV2LXBhcnNlIiwg
Ii0tc2hvdy10b3BsZXZlbCIsIGxvZ19lcnJvcj1sb2dfZXJyb3IpLnN0cmlwKCkuZGVjb2RlKCd1
dGYtOCcpCiAgICAgICAgIHNlbGYucm9vdCA9IHJvb3QKICAgICAgICAgc2VsZi5naXQgPSB2Y3Mu
YmluZF90b19yZXBvKGdpdCwgc2VsZi5yb290LCBsb2dfZXJyb3I9bG9nX2Vycm9yKQogICAgICAg
ICBzZWxmLm1lc3NhZ2UgPSBOb25lCkBAIC0xNzgsNyArMTc2LDcgQEAgY2xhc3MgR2l0VHJlZShv
YmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2NsZWFuKHNlbGYpOgotICAgICAg
ICByZXR1cm4gc2VsZi5naXQoInN0YXR1cyIpLnN0cmlwKCkgPT0gIiIKKyAgICAgICAgcmV0dXJu
IHNlbGYuZ2l0KCJzdGF0dXMiKS5zdHJpcCgpID09IGIiIgogCiAgICAgZGVmIGFkZF9uZXcoc2Vs
ZiwgcHJlZml4PU5vbmUpOgogICAgICAgICAiIiJBZGQgZmlsZXMgdG8gdGhlIHN0YWdpbmcgYXJl
YS4KQEAgLTIwMyw3ICsyMDEsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgICAg
ICBmLnNlZWsoMCkKICAgICAgICAgICAgIGlnbm9yZWRfZmlsZXMgPSBzeW5jX3RyZWUuZ2l0KCJj
aGVjay1pZ25vcmUiLCAiLS1uby1pbmRleCIsICItLXN0ZGluIiwgIi16Iiwgc3RkaW49ZikKICAg
ICAgICAgYXJncyA9IFtdCi0gICAgICAgIGZvciBlbnRyeSBpbiBpZ25vcmVkX2ZpbGVzLnNwbGl0
KCdcMCcpOgorICAgICAgICBmb3IgZW50cnkgaW4gaWdub3JlZF9maWxlcy5kZWNvZGUoJ3V0Zi04
Jykuc3BsaXQoJ1wwJyk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZChvcy5wYXRoLmpvaW4ocHJl
Zml4LCBlbnRyeSkpCiAgICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgICBzZWxmLmdpdCgiYWRk
IiwgIi0tZm9yY2UiLCAqYXJncykKQEAgLTIxOSw3ICsyMTcsNyBAQCBjbGFzcyBHaXRUcmVlKG9i
amVjdCk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZChyZWZfZmlsdGVyKQogICAgICAgICBkYXRh
ID0gc2VsZi5naXQoInNob3ctcmVmIiwgKmFyZ3MpCiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAg
Zm9yIGxpbmUgaW4gZGF0YS5zcGxpdCgiXG4iKToKKyAgICAgICAgZm9yIGxpbmUgaW4gZGF0YS5z
cGxpdChiIlxuIik6CiAgICAgICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBzaGExLCByZWYgPSBsaW5lLnNwbGl0KCkKQEAg
LTIzNyw3ICsyMzUsNyBAQCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgICAgICBhcmdz
LmFwcGVuZChyZWZfZmlsdGVyKQogICAgICAgICBkYXRhID0gc2VsZi5naXQoImxzLXJlbW90ZSIs
IHJlbW90ZSwgKmFyZ3MpCiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAgZm9yIGxpbmUgaW4gZGF0
YS5zcGxpdCgiXG4iKToKKyAgICAgICAgZm9yIGxpbmUgaW4gZGF0YS5zcGxpdChiIlxuIik6CiAg
ICAgICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgogICAgICAgICAgICAgICAgIGNvbnRpbnVl
CiAgICAgICAgICAgICBzaGExLCByZWYgPSBsaW5lLnNwbGl0KCkKQEAgLTI1MCw4ICsyNDgsOCBA
QCBjbGFzcyBHaXRUcmVlKG9iamVjdCk6CiAgICAgICAgIDpwYXJhbSByZW1vdGU6IHRoZSByZW1v
dGUgVVJMCiAgICAgICAgIDpwYXJhbSBicmFuY2g6IHRoZSBicmFuY2ggbmFtZSIiIgogICAgICAg
ICBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZW1vdGUocmVtb3RlLCBicmFuY2gpOgotICAg
ICAgICAgICAgaWYgcmVmID09ICJyZWZzL2hlYWRzLyVzIiAlIGJyYW5jaDoKLSAgICAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5jb21taXRfY2xzKHNlbGYsIHNoYTEpCisgICAgICAgICAgICBpZiBy
ZWYuZGVjb2RlKCd1dGYtOCcpID09ICJyZWZzL2hlYWRzLyVzIiAlIGJyYW5jaDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5jb21taXRfY2xzKHNlbGYsIHNoYTEuZGVjb2RlKCd1dGYtOCcp
KQogICAgICAgICBhc3NlcnQgRmFsc2UKIAogICAgIGRlZiBjcmVhdGVfcGF0Y2goc2VsZiwgcGF0
Y2hfbmFtZSwgbWVzc2FnZSk6CkBAIC0yOTksOCArMjk3LDggQEAgY2xhc3MgR2l0VHJlZShvYmpl
Y3QpOgogCiAgICAgICAgIGFyZ3MgPSBbXQogICAgICAgICBpZiBicmFuY2g6Ci0gICAgICAgICAg
ICBicmFuY2hlcyA9IFtyZWZbbGVuKCJyZWZzL2hlYWRzLyIpOl0gZm9yIHNoYTEsIHJlZiBpbiBz
ZWxmLmxpc3RfcmVmcygpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiByZWYuc3RhcnRzd2l0
aCgicmVmcy9oZWFkcy8iKV0KKyAgICAgICAgICAgIGJyYW5jaGVzID0gW3JlZltsZW4oInJlZnMv
aGVhZHMvIik6XS5kZWNvZGUoJ3V0Zi04JykgZm9yIHNoYTEsIHJlZiBpbiBzZWxmLmxpc3RfcmVm
cygpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWYuc3RhcnRzd2l0aChiInJlZnMvaGVh
ZHMvIildCiAgICAgICAgICAgICBicmFuY2ggPSBnZXRfdW5pcXVlX25hbWUoYnJhbmNoZXMsIGJy
YW5jaCkKIAogICAgICAgICAgICAgYXJncyArPSBbIi1iIiwgYnJhbmNoXQpAQCAtMzM2LDggKzMz
NCw4IEBAIGNsYXNzIEdpdFRyZWUob2JqZWN0KToKICAgICAgICAgcnYgPSBbXQogCiAgICAgICAg
IGZvciByZXBvX3BhdGggaW4gcmVwb19wYXRoczoKLSAgICAgICAgICAgIHBhdGhzID0gdmNzLmdp
dCgibHMtdHJlZSIsICItciIsICItLW5hbWUtb25seSIsICJIRUFEIiwgcmVwbz1yZXBvX3BhdGgp
LnNwbGl0KCJcbiIpCi0gICAgICAgICAgICBydi5leHRlbmQob3MucGF0aC5yZWxwYXRoKG9zLnBh
dGguam9pbihyZXBvX3BhdGgsIGl0ZW0pLCBzZWxmLnJvb3QpIGZvciBpdGVtIGluIHBhdGhzCisg
ICAgICAgICAgICBwYXRocyA9IHZjcy5naXQoImxzLXRyZWUiLCAiLXIiLCAiLS1uYW1lLW9ubHki
LCAiSEVBRCIsIHJlcG89cmVwb19wYXRoKS5zcGxpdChiIlxuIikKKyAgICAgICAgICAgIHJ2LmV4
dGVuZChvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKHJlcG9fcGF0aCwgaXRlbS5kZWNvZGUo
J3V0Zi04JykpLCBzZWxmLnJvb3QpIGZvciBpdGVtIGluIHBhdGhzCiAgICAgICAgICAgICAgICAg
ICAgICAgaWYgaXRlbS5zdHJpcCgpKQogICAgICAgICByZXR1cm4gcnYKIApAQCAtMzQ1LDExICsz
NDMsMTEgQEAgY2xhc3MgR2l0VHJlZShvYmplY3QpOgogICAgICAgICAiIiJMaXN0IHN1Ym1vZHVs
ZSBkaXJlY3RvcmllcyIiIgogICAgICAgICBvdXRwdXQgPSBzZWxmLmdpdCgic3VibW9kdWxlIiwg
InN0YXR1cyIsICItLXJlY3Vyc2l2ZSIpCiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAgZm9yIGxp
bmUgaW4gb3V0cHV0LnNwbGl0KCJcbiIpOgorICAgICAgICBmb3IgbGluZSBpbiBvdXRwdXQuc3Bs
aXQoYiJcbiIpOgogICAgICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQogICAgICAgICAgICAg
aWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHBhcnRz
ID0gbGluZS5zcGxpdCgiICIpCisgICAgICAgICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoYiIgIikK
ICAgICAgICAgICAgIHJ2LmFwcGVuZChwYXJ0c1sxXSkKICAgICAgICAgcmV0dXJuIHJ2CiAKQEAg
LTQwMyw1ICs0MDEsNSBAQCBjbGFzcyBDb21taXQob2JqZWN0KToKICAgICAgICAgc2VsZi5naXQg
PSBzZWxmLnRyZWUuZ2l0CiAKICAgICBkZWYgX2dldF9tZXRhKHNlbGYpOgotICAgICAgICBhdXRo
b3IsIGVtYWlsLCBtZXNzYWdlID0gc2VsZi5naXQoInNob3ciLCAiLXMiLCAiLS1mb3JtYXQ9Zm9y
bWF0OiVhblxuJWFlXG4lQiIsIHNlbGYuc2hhMSkuc3BsaXQoIlxuIiwgMikKKyAgICAgICAgYXV0
aG9yLCBlbWFpbCwgbWVzc2FnZSA9IHNlbGYuZ2l0KCJzaG93IiwgIi1zIiwgIi0tZm9ybWF0PWZv
cm1hdDolYW5cbiVhZVxuJUIiLCBzZWxmLnNoYTEpLmRlY29kZSgndXRmLTgnKS5zcGxpdCgiXG4i
LCAyKQogICAgICAgICByZXR1cm4gYXV0aG9yLCBlbWFpbCwgc2VsZi5tc2dfY2xzKG1lc3NhZ2Up
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3VwZGF0ZS5weQppbmRleCA4MGU1MDlk
ZDM4M2IuLjI2NWEzMzExYmViMSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3VwZGF0ZS5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUv
dXBkYXRlLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAKLWZyb20g
c2l4IGltcG9ydCBpdGVydmFsdWVzCi0KIGZyb20gLm1ldGFkYXRhIGltcG9ydCBNZXRhZGF0YVVw
ZGF0ZVJ1bm5lcgogZnJvbSAuc3luYyBpbXBvcnQgU3luY0Zyb21VcHN0cmVhbVJ1bm5lcgogZnJv
bSAudHJlZSBpbXBvcnQgR2l0VHJlZSwgSGdUcmVlLCBOb1ZDU1RyZWUKQEAgLTExMSw3ICsxMDks
NyBAQCBjbGFzcyBSZW1vdmVPYnNvbGV0ZShTdGVwKToKICAgICAgICAgc3RhdGUudGVzdHNfcGF0
aCA9IHN0YXRlLnBhdGhzWyIvIl1bInRlc3RzX3BhdGgiXQogICAgICAgICBzdGF0ZS5tZXRhZGF0
YV9wYXRoID0gc3RhdGUucGF0aHNbIi8iXVsibWV0YWRhdGFfcGF0aCJdCiAKLSAgICAgICAgZm9y
IHVybF9wYXRocyBpbiBpdGVydmFsdWVzKHBhdGhzKToKKyAgICAgICAgZm9yIHVybF9wYXRocyBp
biBwYXRocy52YWx1ZXMoKToKICAgICAgICAgICAgIHRlc3RzX3BhdGggPSB1cmxfcGF0aHNbInRl
c3RzX3BhdGgiXQogICAgICAgICAgICAgbWV0YWRhdGFfcGF0aCA9IHVybF9wYXRoc1sibWV0YWRh
dGFfcGF0aCJdCiAgICAgICAgICAgICBmb3IgZGlycGF0aCwgZGlybmFtZXMsIGZpbGVuYW1lcyBp
biBvcy53YWxrKG1ldGFkYXRhX3BhdGgpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5CmluZGV4IDg5
NmQ4YTBkMmM2ZS4uMzQxOWE1MDdkYmFlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5CkBAIC0x
LDUgKzEsNiBAQAogaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0
aWFsCitmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKIAogZnJvbSBtb3psb2cgaW1wb3J0IGdl
dF9kZWZhdWx0X2xvZ2dlcgogCkBAIC03LDcgKzgsNyBAQCBmcm9tIHdwdHNlcnZlLnV0aWxzIGlt
cG9ydCBpc29tb3JwaGljX2RlY29kZQogCiBsb2dnZXIgPSBOb25lCiAKLWRlZiB2Y3MoYmluX25h
bWUpOgorZGVmIHZjcyhiaW5fbmFtZTogc3RyKSAtPiBDYWxsYWJsZVsuLi4sIE5vbmVdOgogICAg
IGRlZiBpbm5lcihjb21tYW5kLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBnbG9iYWwgbG9n
Z2VyCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5Cmlu
ZGV4IGRmYWUwNTdmZDMzMi4uNTY1ZTNkNGU0M2JlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVy
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKQEAgLTUsMTQgKzUsMTUgQEAgaW1wb3J0IHBsYXRm
b3JtCiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjaworZnJvbSB0
eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBUeXBlCiAKIGltcG9ydCBtb3pwcm9jZXNzCiAKLWZyb20g
LnByb2Nlc3MgaW1wb3J0IGNhc3RfZW52Citmcm9tIC5icm93c2Vycy5iYXNlIGltcG9ydCBPdXRw
dXRIYW5kbGVyCiAKIAogX19hbGxfXyA9IFsiU2VsZW5pdW1TZXJ2ZXIiLCAiQ2hyb21lRHJpdmVy
U2VydmVyIiwgIkNXVENocm9tZURyaXZlclNlcnZlciIsCi0gICAgICAgICAgICJFZGdlQ2hyb21p
dW1Ecml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIiLCAiR2Vja29Ecml2ZXJTZXJ2ZXIi
LAorICAgICAgICAgICAiRWRnZUNocm9taXVtRHJpdmVyU2VydmVyIiwgIk9wZXJhRHJpdmVyU2Vy
dmVyIiwKICAgICAgICAgICAgIkludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIiLCAiRWRnZURy
aXZlclNlcnZlciIsCiAgICAgICAgICAgICJTZXJ2b0RyaXZlclNlcnZlciIsICJXZWJLaXREcml2
ZXJTZXJ2ZXIiLCAiV2ViRHJpdmVyU2VydmVyIl0KIApAQCAtMjEsNiArMjIsNyBAQCBjbGFzcyBX
ZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICBfX21ldGFjbGFzc19fID0gYWJjLkFCQ01ldGEK
IAogICAgIGRlZmF1bHRfYmFzZV9wYXRoID0gIi8iCisgICAgb3V0cHV0X2hhbmRsZXJfY2xzID0g
T3V0cHV0SGFuZGxlciAgIyB0eXBlOiBDbGFzc1ZhcltUeXBlW091dHB1dEhhbmRsZXJdXQogCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBob3N0PSIxMjcuMC4wLjEiLCBw
b3J0PU5vbmUsCiAgICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgZW52PU5vbmUsIGFyZ3M9
Tm9uZSk6CkBAIC0zMSwxMiArMzMsMTQgQEAgY2xhc3MgV2ViRHJpdmVyU2VydmVyKG9iamVjdCk6
CiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCiAgICAgICAgIHNlbGYuYmluYXJ5ID0gYmlu
YXJ5CiAgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKwogICAgICAgICBpZiBiYXNlX3BhdGggPT0g
IiI6CiAgICAgICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IHNlbGYuZGVmYXVsdF9iYXNlX3BhdGgK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9wYXRoCiAg
ICAgICAgIHNlbGYuZW52ID0gb3MuZW52aXJvbi5jb3B5KCkgaWYgZW52IGlzIE5vbmUgZWxzZSBl
bnYKIAorICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUKICAgICAgICAgc2VsZi5f
cG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fY21kID0gTm9uZQogICAgICAgICBzZWxmLl9hcmdz
ID0gYXJncyBpZiBhcmdzIGlzIG5vdCBOb25lIGVsc2UgW10KQEAgLTQ2LDE4ICs1MCwyOCBAQCBj
bGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYp
OgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIGNvbW1hbmQgZm9yIHN0YXJ0aW5nIHRoZSBz
ZXJ2ZXIgcHJvY2VzcyBhcyBhIGxpc3QuIiIiCiAKLSAgICBkZWYgc3RhcnQoc2VsZiwgYmxvY2s9
RmFsc2UpOgorICAgIGRlZiBzdGFydChzZWxmLAorICAgICAgICAgICAgICBibG9jaz1GYWxzZSwK
KyAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzPU5vbmUsCisgICAgICAgICAgICAg
IG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncz1Ob25lKToKICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VsZi5fcnVuKGJsb2NrKQorICAgICAgICAgICAgc2VsZi5fcnVuKGJsb2NrLCBvdXRw
dXRfaGFuZGxlcl9rd2FyZ3MsIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncykKICAgICAgICAg
ZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAgICAgc2VsZi5zdG9wKCkKIAotICAg
IGRlZiBfcnVuKHNlbGYsIGJsb2NrKToKKyAgICBkZWYgX3J1bihzZWxmLCBibG9jaywgb3V0cHV0
X2hhbmRsZXJfa3dhcmdzLCBvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpOgorICAgICAgICBp
ZiBvdXRwdXRfaGFuZGxlcl9rd2FyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIG91dHB1dF9oYW5k
bGVyX2t3YXJncyA9IHt9CisgICAgICAgIGlmIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyBp
cyBOb25lOgorICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0ge30KICAg
ICAgICAgc2VsZi5fY21kID0gc2VsZi5tYWtlX2NvbW1hbmQoKQorICAgICAgICBzZWxmLl9vdXRw
dXRfaGFuZGxlciA9IHNlbGYub3V0cHV0X2hhbmRsZXJfY2xzKHNlbGYubG9nZ2VyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Nt
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKm91dHB1dF9oYW5kbGVyX2t3YXJncykKICAgICAgICAgc2VsZi5fcHJvYyA9IG1venByb2Nl
c3MuUHJvY2Vzc0hhbmRsZXIoCiAgICAgICAgICAgICBzZWxmLl9jbWQsCi0gICAgICAgICAgICBw
cm9jZXNzT3V0cHV0TGluZT1zZWxmLm9uX291dHB1dCwKLSAgICAgICAgICAgIGVudj1jYXN0X2Vu
dihzZWxmLmVudiksCisgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLl9vdXRwdXRf
aGFuZGxlciwKKyAgICAgICAgICAgIGVudj1zZWxmLmVudiwKICAgICAgICAgICAgIHN0b3JlT3V0
cHV0PUZhbHNlKQogCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBXZWJEcml2
ZXI6ICVzIiAlICcgJy5qb2luKHNlbGYuX2NtZCkpCkBAIC02OCw2ICs4Miw3IEBAIGNsYXNzIFdl
YkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoCiAg
ICAgICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgZXhlY3V0YWJsZSBub3QgZm91bmQ6ICVzIiAl
IHNlbGYuYmluYXJ5KQogICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgc2VsZi5fb3V0cHV0X2hh
bmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChzZWxmLl9wcm9jLnBpZCkKIAogICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygKICAgICAgICAgICAgICJXYWl0aW5nIGZvciBXZWJEcml2ZXIgdG8gYmVj
b21lIGFjY2Vzc2libGU6ICVzIiAlIHNlbGYudXJsKQpAQCAtNzgsMjcgKzkzLDI4IEBAIGNsYXNz
IFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgd2Fz
IG5vdCBhY2Nlc3NpYmxlICIKICAgICAgICAgICAgICAgICAid2l0aGluIHRoZSB0aW1lb3V0Olxu
JXMiICUgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKICAgICAgICAgICAgIHJhaXNlCi0KKyAgICAg
ICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIuc3RhcnQoKipvdXRwdXRfaGFuZGxlcl9zdGFydF9rd2Fy
Z3MpCiAgICAgICAgIGlmIGJsb2NrOgogICAgICAgICAgICAgc2VsZi5fcHJvYy53YWl0KCkKIAog
ICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKICAgICAgICAgc2VsZi5sb2dnZXIuZGVi
dWcoIlN0b3BwaW5nIFdlYkRyaXZlciIpCisgICAgICAgIGNsZWFuID0gVHJ1ZQogICAgICAgICBp
ZiBzZWxmLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICBraWxsX3Jlc3VsdCA9IHNlbGYuX3Byb2Mu
a2lsbCgpCiAgICAgICAgICAgICBpZiBmb3JjZSBhbmQga2lsbF9yZXN1bHQgIT0gMDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvYy5raWxsKDkpCi0gICAgICAgICAgICByZXR1cm4g
a2lsbF9yZXN1bHQKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmlzX2FsaXZlKCkKKyAgICAgICAg
ICAgICAgICBjbGVhbiA9IEZhbHNlCisgICAgICAgICAgICAgICAgc2VsZi5fcHJvYy5raWxsKDkp
CisgICAgICAgIHN1Y2Nlc3MgPSBub3Qgc2VsZi5pc19hbGl2ZSgpCisgICAgICAgIGlmIHN1Y2Nl
c3MgYW5kIHNlbGYuX291dHB1dF9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBP
bmx5IHRyeSB0byBkbyBvdXRwdXQgcG9zdC1wcm9jZXNzaW5nIGlmIHdlIG1hbmFnZWQgdG8gc2h1
dCBkb3duCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0
b3AoY2xlYW4pCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUKKyAgICAg
ICAgcmV0dXJuIHN1Y2Nlc3MKIAogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0
dXJuIGhhc2F0dHIoc2VsZi5fcHJvYywgInByb2MiKSBhbmQgc2VsZi5fcHJvYy5wb2xsKCkgaXMg
Tm9uZQogCi0gICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKLSAgICAgICAgc2VsZi5sb2dn
ZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLl9jbWQpKQotCiAgICAgQHBy
b3BlcnR5CiAgICAgZGVmIHBpZChzZWxmKToKICAgICAgICAgaWYgc2VsZi5fcHJvYyBpcyBub3Qg
Tm9uZToKQEAgLTEyMyw4OCArMTM5LDQyIEBAIGNsYXNzIFNlbGVuaXVtU2VydmVyKFdlYkRyaXZl
clNlcnZlcik6CiAKIAogY2xhc3MgQ2hyb21lRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJjaHJvbWVkcml2ZXIiLCBw
b3J0PU5vbmUsCi0gICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKLSAg
ICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2Vy
LCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQotCiAg
ICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwK
ICAgICAgICAgICAgICAgICBjbWRfYXJnKCJwb3J0Iiwgc3RyKHNlbGYucG9ydCkpLAogICAgICAg
ICAgICAgICAgIGNtZF9hcmcoInVybC1iYXNlIiwgc2VsZi5iYXNlX3BhdGgpIGlmIHNlbGYuYmFz
ZV9wYXRoIGVsc2UgIiIsCiAgICAgICAgICAgICAgICAgY21kX2FyZygiZW5hYmxlLWNocm9tZS1s
b2dzIildICsgc2VsZi5fYXJncwogCi1jbGFzcyBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIoV2ViRHJp
dmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9
Tm9uZSwgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKIAorY2xhc3MgQ1dUQ2hyb21l
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgZGVmIG1ha2VfY29tbWFuZChzZWxm
KToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKICAgICAgICAgICAgICAgICAiLS1wb3J0
PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIAotY2xhc3MgRWRnZUNocm9taXVt
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLCBwb3J0PU5vbmUsCi0gICAgICAgICAgICAgICAg
IGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5p
dF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFzZV9w
YXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQogCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2
ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAg
ICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAgIGNtZF9hcmcoInBvcnQiLCBz
dHIoc2VsZi5wb3J0KSksCiAgICAgICAgICAgICAgICAgY21kX2FyZygidXJsLWJhc2UiLCBzZWxm
LmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIl0gKyBzZWxmLl9hcmdzCiAKLWNs
YXNzIEVkZ2VEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnk9Im1pY3Jvc29mdHdlYmRyaXZlci5leGUiLCBwb3J0PU5vbmUs
Ci0gICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgaG9zdD0ibG9jYWxob3N0IiwgYXJncz1O
b25lKToKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2Vs
ZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCiAKK2Ns
YXNzIEVkZ2VEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgbWFrZV9jb21t
YW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAogICAgICAgICAgICAgICAg
ICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwogCi1jbGFzcyBPcGVy
YURyaXZlclNlcnZlcihDaHJvbWVEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJpbmFyeT0ib3BlcmFkcml2ZXIiLCBwb3J0PU5vbmUsCi0gICAgICAgICAgICAg
ICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKLSAgICAgICAgQ2hyb21lRHJpdmVyU2VydmVy
Ll9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwg
YmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQogCitjbGFzcyBPcGVyYURyaXZlclNlcnZl
cihDaHJvbWVEcml2ZXJTZXJ2ZXIpOgorICAgIHBhc3MKIAogY2xhc3MgSW50ZXJuZXRFeHBsb3Jl
ckRyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJpbmFyeT0iSUVEcml2ZXJTZXJ2ZXIuZXhlIiwgcG9ydD1Ob25lLAotICAgICAgICAg
ICAgICAgICBiYXNlX3BhdGg9IiIsIGhvc3Q9ImxvY2FsaG9zdCIsIGFyZ3M9Tm9uZSk6Ci0gICAg
ICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKLSAgICAgICAgICAgIHNlbGYsIGxvZ2dlciwg
YmluYXJ5LCBob3N0PWhvc3QsIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQotCiAgICAgZGVmIG1ha2Vf
Y29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKICAgICAgICAgICAg
ICAgICAiLS1wb3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKIAogCi1jbGFz
cyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIG1hcmlvbmV0dGVfcG9ydD0yODI4LCBiaW5hcnk9ImdlY2tvZHJpdmVyIiwK
LSAgICAgICAgICAgICAgICAgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD1Ob25lLCBhcmdzPU5vbmUp
OgotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotICAgICAgICBlbnZbIlJVU1RfQkFD
S1RSQUNFIl0gPSAiMSIKLSAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdD1ob3N0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW52PWNhc3RfZW52KGVudiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCi0gICAgICAgIHNlbGYubWFyaW9uZXR0ZV9w
b3J0ID0gbWFyaW9uZXR0ZV9wb3J0Ci0KLSAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgotICAg
ICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAotICAgICAgICAgICAgICAgICItLW1hcmlvbmV0dGUt
cG9ydCIsIHN0cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCi0gICAgICAgICAgICAgICAgIi0taG9z
dCIsIHNlbGYuaG9zdCwKLSAgICAgICAgICAgICAgICAiLS1wb3J0Iiwgc3RyKHNlbGYucG9ydCld
ICsgc2VsZi5fYXJncwotCi0KIGNsYXNzIFNhZmFyaURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2
ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT0ic2FmYXJpZHJpdmVy
IiwgcG9ydD1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0
X18oCi0gICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBhcmdzPWFy
Z3MpCi0KICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYu
YmluYXJ5LAogICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsg
c2VsZi5fYXJncwpAQCAtMjEyLDEzICsxODIsMTMgQEAgY2xhc3MgU2FmYXJpRHJpdmVyU2VydmVy
KFdlYkRyaXZlclNlcnZlcik6CiAKIGNsYXNzIFNlcnZvRHJpdmVyU2VydmVyKFdlYkRyaXZlclNl
cnZlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJzZXJ2byIsIGJp
bmFyeV9hcmdzPU5vbmUsIGhvc3Q9IjEyNy4wLjAuMSIsCi0gICAgICAgICAgICAgICAgIHBvcnQ9
Tm9uZSwgYXJncz1Ob25lKToKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAg
ICAgICAgICAgICAgcG9ydD1Ob25lLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAgICAgZW52
ID0gZW52IGlmIGVudiBpcyBub3QgTm9uZSBlbHNlIG9zLmVudmlyb24uY29weSgpCiAgICAgICAg
IGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgogICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBob3N0PWhvc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PXBv
cnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9Y2FzdF9lbnYoZW52KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCiAgICAgICAgIHNlbGYuYmluYXJ5X2FyZ3Mg
PSBiaW5hcnlfYXJncwogCkBAIC0yMzMsOSArMjAzLDYgQEAgY2xhc3MgU2Vydm9Ecml2ZXJTZXJ2
ZXIoV2ViRHJpdmVyU2VydmVyKToKIAogCiBjbGFzcyBXZWJLaXREcml2ZXJTZXJ2ZXIoV2ViRHJp
dmVyU2VydmVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Tm9uZSwg
cG9ydD1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQotCiAgICAgZGVmIG1h
a2VfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwgIi0tcG9ydD0l
cyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCiAKQEAgLTI1NCw3ICsyMjEsNyBAQCBk
ZWYgZ2V0X2ZyZWVfcG9ydCgpOgogICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCiAgICAgICAg
IHRyeToKICAgICAgICAgICAgIHMuYmluZCgoIjEyNy4wLjAuMSIsIDApKQotICAgICAgICBleGNl
cHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIGNv
bnRpbnVlCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gcy5nZXRzb2NrbmFtZSgp
WzFdCkBAIC0yNjUsNyArMjMyLDcgQEAgZGVmIGdldF9mcmVlX3BvcnQoKToKIGRlZiB3YWl0X2Zv
cl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9NjApOgogICAgICIiIldhaXRzIHVudGlsIG5ldHdvcmsg
c2VydmljZSBnaXZlbiBhcyBhIHR1cGxlIG9mIChob3N0LCBwb3J0KSBiZWNvbWVzCiAgICAgYXZh
aWxhYmxlIG9yIHRoZSBgdGltZW91dGAgZHVyYXRpb24gaXMgcmVhY2hlZCwgYXQgd2hpY2ggcG9p
bnQKLSAgICBgYHNvY2tldC5lcnJvcmBgIGlzIHJhaXNlZC4iIiIKKyAgICBgYHNvY2tldC50aW1l
b3V0YGAgaXMgcmFpc2VkLiIiIgogICAgIGVuZCA9IHRpbWUudGltZSgpICsgdGltZW91dAogICAg
IHdoaWxlIGVuZCA+IHRpbWUudGltZSgpOgogICAgICAgICBzbyA9IHNvY2tldC5zb2NrZXQoKQpA
QCAtMjczLDcgKzI0MCw3IEBAIGRlZiB3YWl0X2Zvcl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9NjAp
OgogICAgICAgICAgICAgc28uY29ubmVjdChhZGRyKQogICAgICAgICBleGNlcHQgc29ja2V0LnRp
bWVvdXQ6CiAgICAgICAgICAgICBwYXNzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMg
ZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIGlmIGUuZXJybm8g
IT0gZXJybm8uRUNPTk5SRUZVU0VEOgogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGVs
c2U6CkBAIC0yODEsNCArMjQ4LDQgQEAgZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwgdGltZW91
dD02MCk6CiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzby5jbG9zZSgpCiAgICAgICAg
IHRpbWUuc2xlZXAoMC41KQotICAgIHJhaXNlIHNvY2tldC5lcnJvcigiU2VydmljZSBpcyB1bmF2
YWlsYWJsZTogJXM6JWkiICUgYWRkcikKKyAgICByYWlzZSBzb2NrZXQudGltZW91dCgiU2Vydmlj
ZSBpcyB1bmF2YWlsYWJsZTogJXM6JWkiICUgYWRkcikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5l
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0Y29tbWFuZGxpbmUucHkKaW5kZXggOWQxZDQwNDgwOTU0Li5jNzA1MGViODBjMmIgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CkBAIC0xLDExICsx
LDkgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBwcmludF9mdW5j
dGlvbgogaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20gY29sbGVj
dGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CiBmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmlu
ZF9leGVjdXRhYmxlCiBmcm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEKLWZyb20gc2l4IGlt
cG9ydCBlbnN1cmVfdGV4dCwgaXRlcmtleXMsIGl0ZXJ2YWx1ZXMsIGl0ZXJpdGVtcwogCiBmcm9t
IC4gaW1wb3J0IGNvbmZpZwogZnJvbSAuIGltcG9ydCB3cHR0ZXN0CkBAIC0xNiw3ICsxNCw3IEBA
IGRlZiBhYnNfcGF0aChwYXRoKToKIAogCiBkZWYgdXJsX29yX3BhdGgocGF0aCk6Ci0gICAgZnJv
bSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQorICAgIGZyb20gdXJsbGli
LnBhcnNlIGltcG9ydCB1cmxwYXJzZQogCiAgICAgcGFyc2VkID0gdXJscGFyc2UocGF0aCkKICAg
ICBpZiBsZW4ocGFyc2VkLnNjaGVtZSkgPiAyOgpAQCAtNzIsNiArNzAsMTAgQEAgc2NoZW1lIGhv
c3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0iZmFpbF9vbl91bmV4cGVjdGVkIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkV4aXQgd2l0aCBzdGF0dXMgY29kZSAwIHdoZW4gdGVz
dCBleHBlY3RhdGlvbnMgYXJlIHZpb2xhdGVkIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LW5vLWZhaWwtb24tdW5leHBlY3RlZC1wYXNzIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSJmYWlsX29uX3VuZXhwZWN0ZWRfcGFzcyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJFeGl0IHdpdGggc3RhdHVzIGNvZGUgMCB3aGVuIGFsbCB1bmV4cGVjdGVkIHJlc3Vs
dHMgYXJlIFBBU1MiKQogCiAgICAgbW9kZV9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3Jv
dXAoIk1vZGUiKQogICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWxpc3QtdGVzdC1ncm91
cHMiLCBhY3Rpb249InN0b3JlX3RydWUiLApAQCAtMTMxLDYgKzEzMyw4IEBAIHNjaGVtZSBob3N0
IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iVGVzdCB0eXBlcyB0byBydW4iKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1
bWVudCgiLS1pbmNsdWRlIiwgYWN0aW9uPSJhcHBlbmQiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJVUkwgcHJlZml4IHRvIGluY2x1ZGUiKQorICAgIHRlc3Rf
c2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlLWZpbGUiLCBhY3Rpb249InN0
b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQSBmaWxl
IGxpc3RpbmcgVVJMIHByZWZpeCBmb3IgdGVzdHMiKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3Vw
LmFkZF9hcmd1bWVudCgiLS1leGNsdWRlIiwgYWN0aW9uPSJhcHBlbmQiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJVUkwgcHJlZml4IHRvIGV4Y2x1ZGUiKQog
ICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlLW1hbmlmZXN0
IiwgdHlwZT1hYnNfcGF0aCwKQEAgLTE3MCw2ICsxNzQsOCBAQCBzY2hlbWUgaG9zdCBhbmQgcG9y
dC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJIYWx0IHRoZSB0
ZXN0IHJ1bm5lciBhZnRlciBlYWNoIHRlc3QgKHRoaXMgaGFwcGVucyBieSBkZWZhdWx0IGlmIG9u
bHkgYSBzaW5nbGUgdGVzdCBpcyBydW4pIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCctLW5vLXBhdXNlLWFmdGVyLXRlc3QnLCBkZXN0PSJwYXVzZV9hZnRlcl90ZXN0IiwgYWN0
aW9uPSJzdG9yZV9mYWxzZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJEb24ndCBoYWx0IHRoZSB0ZXN0IHJ1bm5lciBpcnJlc3BlY3RpdmUgb2YgdGhlIG51bWJlciBv
ZiB0ZXN0cyBydW4iKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tZGVidWct
dGVzdCcsIGRlc3Q9ImRlYnVnX3Rlc3QiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVuIHRlc3RzIHdpdGggYWRkaXRpb25hbCBk
ZWJ1Z2dpbmcgZmVhdHVyZXMgZW5hYmxlZCIpCiAKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2Fy
Z3VtZW50KCctLXBhdXNlLW9uLXVuZXhwZWN0ZWQnLCBhY3Rpb249InN0b3JlX3RydWUiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSGFsdCB0aGUgdGVzdCBydW5uZXIg
d2hlbiBhbiB1bmV4cGVjdGVkIHJlc3VsdCBpcyBlbmNvdW50ZXJlZCIpCkBAIC0xODEsNyArMTg3
LDYgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iUGF0aCBvciB1cmwgdG8gc3ltYm9scyBmaWxlIHVzZWQgdG8gYW5hbHlz
ZSBjcmFzaCBtaW5pZHVtcHMuIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCIt
LXN0YWNrd2Fsay1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc3RhY2t3YWxrZXIgcHJv
Z3JhbSB1c2VkIHRvIGFuYWx5c2UgbWluaWR1bXBzLiIpCi0KICAgICBkZWJ1Z2dpbmdfZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLXBkYiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJEcm9wIGludG8gcGRiIG9uIHB5dGhvbiBleGNlcHRp
b24iKQogCkBAIC0xOTYsNiArMjAxLDggQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAg
IGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoJy0td2ViZHJpdmVyLWFyZycsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBhY3Rpb249ImFwcGVuZCIsIGRlc3Q9Indl
YmRyaXZlcl9hcmdzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkV4dHJh
IGFyZ3VtZW50IGZvciB0aGUgV2ViRHJpdmVyIGJpbmFyeSIpCisgICAgY29uZmlnX2dyb3VwLmFk
ZF9hcmd1bWVudCgiLS1hZGItYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGFkYiBiaW5hcnkgdG8gdXNlIikKICAgICBj
b25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBhY2thZ2UtbmFtZSIsIGFjdGlvbj0ic3RvcmUi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQW5kcm9pZCBwYWNrYWdlIG5h
bWUgdG8gcnVuIHRlc3RzIGFnYWluc3QiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQo
Ii0tZGV2aWNlLXNlcmlhbCIsIGFjdGlvbj0ic3RvcmUiLApAQCAtMjg0LDYgKzI5MSw4IEBAIHNj
aGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iRGlzYWJsZSBmaXNzaW9uIGluIEdlY2tvLiIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCItLXN0YWNrZml4LWRpciIsIGRlc3Q9InN0YWNrZml4X2RpciIsIGFjdGlvbj0ic3RvcmUi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9yeSBj
b250YWluaW5nIGFzc2VydGlvbiBzdGFjayBmaXhpbmcgc2NyaXB0cyIpCisgICAgZ2Vja29fZ3Jv
dXAuYWRkX2FyZ3VtZW50KCItLXNwZWNpYWxwb3dlcnMtcGF0aCIsIGFjdGlvbj0ic3RvcmUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIHNwZWNpYWxQb3dlcnMg
ZXh0ZW5zaW9uIHhwaSBmaWxlIikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tc2V0
cHJlZiIsIGRlc3Q9ImV4dHJhX3ByZWZzIiwgYWN0aW9uPSdhcHBlbmQnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBtZXRhdmFyPSJQUkVGPVZBTFVFIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRGVmaW5lcyBhbiBleHRyYSB1c2VyIHByZWZl
cmVuY2UgKG92ZXJyaWRlcyB0aG9zZSBpbiBwcmVmc19yb290KSIpCkBAIC0zMTIsMTQgKzMyMSwx
NyBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0idXNlcl9zdHlsZXNoZWV0cyIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkluamVjdCBhIHVzZXIgQ1NTIHN0
eWxlc2hlZXQgaW50byBldmVyeSB0ZXN0LiIpCiAKLSAgICBzZXJ2b19ncm91cCA9IHBhcnNlci5h
ZGRfYXJndW1lbnRfZ3JvdXAoIkNocm9tZS1zcGVjaWZpYyIpCi0gICAgc2Vydm9fZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLWVuYWJsZS1tb2pvanMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0
PUZhbHNlLAorICAgIGNocm9tZV9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoIkNo
cm9tZS1zcGVjaWZpYyIpCisgICAgY2hyb21lX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1lbmFibGUt
bW9qb2pzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iRW5hYmxlIE1vam9KUyBmb3IgdGVzdGluZy4gTm90ZSB0
aGF0IHRoaXMgZmxhZyBpcyB1c2FsbHkgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZW5hYmxlZCBhdXRvbWF0aWNhbGx5IGJ5IGB3cHQgcnVuYCwgaWYgaXQgc3VjY2VlZHMgaW4gZG93
bmxvYWRpbmcgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIHJpZ2h0IHZlcnNp
b24gb2YgbW9qb2pzLnppcCBvciBpZiAtLW1vam9qcy1wYXRoIGlzIHNwZWNpZmllZC4iKQotICAg
IHNlcnZvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1tb2pvanMtcGF0aCIsCisgICAgY2hyb21lX2dy
b3VwLmFkZF9hcmd1bWVudCgiLS1tb2pvanMtcGF0aCIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IlBhdGggdG8gbW9qb2pzIGdlbi8gZGlyZWN0b3J5LiBJZiBpdCBpcyBub3Qg
c3BlY2lmaWVkLCBgd3B0IHJ1bmAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2ls
bCBkb3dubG9hZCBhbmQgZXh0cmFjdCBtb2pvanMuemlwIGludG8gX3ZlbnYyL21vam9qcy9nZW4u
IikKKyAgICBjaHJvbWVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWVuYWJsZS1zd2lmdHNoYWRlciIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IkVuYWJsZSBTd2lmdFNoYWRlciBmb3IgQ1BVLWJhc2VkIDNEIGdyYXBo
aWNzLiBUaGlzIGNhbiBiZSB1c2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlu
IGVudmlyb25tZW50cyB3aXRoIG5vIGhhcmR3YXJlIEdQVSBhdmFpbGFibGUuIikKIAogICAgIHNh
dWNlX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiU2F1Y2UgTGFicy1zcGVjaWZp
YyIpCiAgICAgc2F1Y2VfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNhdWNlLWJyb3dzZXIiLCBkZXN0
PSJzYXVjZV9icm93c2VyIiwKQEAgLTM1NCwxMyArMzY2LDE3IEBAIHNjaGVtZSBob3N0IGFuZCBw
b3J0LiIiIikKIAogICAgIHRhc2tjbHVzdGVyX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9n
cm91cCgiVGFza2NsdXN0ZXItc3BlY2lmaWMiKQogICAgIHRhc2tjbHVzdGVyX2dyb3VwLmFkZF9h
cmd1bWVudCgiLS1naXRodWItY2hlY2tzLXRleHQtZmlsZSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9ZW5zdXJlX3RleHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGU9c3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJQYXRoIHRvIEdpdEh1YiBjaGVja3Mgb3V0cHV0IGZpbGUiKQogCiAgICAgd2Via2l0
X2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiV2ViS2l0LXNwZWNpZmljIikKICAg
ICB3ZWJraXRfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXdlYmtpdC1wb3J0IiwgZGVzdD0id2Via2l0
X3BvcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iV2ViS2l0IHBvcnQi
KQogCisgICAgc2FmYXJpX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiU2FmYXJp
LXNwZWNpZmljIikKKyAgICBzYWZhcmlfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWtpbGwtc2FmYXJp
IiwgZGVzdD0ia2lsbF9zYWZhcmkiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iS2lsbCBTYWZhcmkgd2hlbiBz
dG9wcGluZyB0aGUgYnJvd3NlciIpCisKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ0ZXN0X2xp
c3QiLCBuYXJncz0iKiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMaXN0IG9mIFVS
THMgZm9yIHRlc3RzIHRvIHJ1biwgb3IgcGF0aHMgaW5jbHVkaW5nIHRlc3RzIHRvIHJ1bi4gIgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGVxdWl2YWxlbnQgdG8gLS1pbmNsdWRlKSIp
CkBAIC00MDIsNyArNDE4LDcgQEAgZGVmIHNldF9mcm9tX2NvbmZpZyhrd2FyZ3MpOgogICAgICAg
ICAgICAgICAgICAgICAoImhvc3RfY2VydF9wYXRoIiwgImhvc3RfY2VydF9wYXRoIiwgVHJ1ZSks
CiAgICAgICAgICAgICAgICAgICAgICgiaG9zdF9rZXlfcGF0aCIsICJob3N0X2tleV9wYXRoIiwg
VHJ1ZSldfQogCi0gICAgZm9yIHNlY3Rpb24sIHZhbHVlcyBpbiBpdGVyaXRlbXMoa2V5cyk6Cisg
ICAgZm9yIHNlY3Rpb24sIHZhbHVlcyBpbiBrZXlzLml0ZW1zKCk6CiAgICAgICAgIGZvciBjb25m
aWdfdmFsdWUsIGt3X3ZhbHVlLCBpc19wYXRoIGluIHZhbHVlczoKICAgICAgICAgICAgIGlmIGt3
X3ZhbHVlIGluIGt3YXJncyBhbmQga3dhcmdzW2t3X3ZhbHVlXSBpcyBOb25lOgogICAgICAgICAg
ICAgICAgIGlmIG5vdCBpc19wYXRoOgpAQCAtNDM4LDcgKzQ1NCw3IEBAIGRlZiBnZXRfdGVzdF9w
YXRocyhjb25maWcpOgogICAgICMgU2V0IHVwIHRlc3RfcGF0aHMKICAgICB0ZXN0X3BhdGhzID0g
T3JkZXJlZERpY3QoKQogCi0gICAgZm9yIHNlY3Rpb24gaW4gaXRlcmtleXMoY29uZmlnKToKKyAg
ICBmb3Igc2VjdGlvbiBpbiBjb25maWcua2V5cygpOgogICAgICAgICBpZiBzZWN0aW9uLnN0YXJ0
c3dpdGgoIm1hbmlmZXN0OiIpOgogICAgICAgICAgICAgbWFuaWZlc3Rfb3B0cyA9IGNvbmZpZy5n
ZXQoc2VjdGlvbikKICAgICAgICAgICAgIHVybF9iYXNlID0gbWFuaWZlc3Rfb3B0cy5nZXQoInVy
bF9iYXNlIiwgIi8iKQpAQCAtNDY0LDcgKzQ4MCw3IEBAIGRlZiBleGVfcGF0aChuYW1lKToKIAog
CiBkZWYgY2hlY2tfcGF0aHMoa3dhcmdzKToKLSAgICBmb3IgdGVzdF9wYXRocyBpbiBpdGVydmFs
dWVzKGt3YXJnc1sidGVzdF9wYXRocyJdKToKKyAgICBmb3IgdGVzdF9wYXRocyBpbiBrd2FyZ3Nb
InRlc3RfcGF0aHMiXS52YWx1ZXMoKToKICAgICAgICAgaWYgbm90ICgidGVzdHNfcGF0aCIgaW4g
dGVzdF9wYXRocyBhbmQKICAgICAgICAgICAgICAgICAibWV0YWRhdGFfcGF0aCIgaW4gdGVzdF9w
YXRocyk6CiAgICAgICAgICAgICBwcmludCgiRmF0YWw6IG11c3Qgc3BlY2lmeSBib3RoIGEgdGVz
dCBwYXRoIGFuZCBtZXRhZGF0YSBwYXRoIikKQEAgLTQ3Miw3ICs0ODgsNyBAQCBkZWYgY2hlY2tf
cGF0aHMoa3dhcmdzKToKICAgICAgICAgaWYgIm1hbmlmZXN0X3BhdGgiIG5vdCBpbiB0ZXN0X3Bh
dGhzOgogICAgICAgICAgICAgdGVzdF9wYXRoc1sibWFuaWZlc3RfcGF0aCJdID0gb3MucGF0aC5q
b2luKHRlc3RfcGF0aHNbIm1ldGFkYXRhX3BhdGgiXSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTUFOSUZFU1QuanNvbiIpCi0gICAgICAg
IGZvciBrZXksIHBhdGggaW4gaXRlcml0ZW1zKHRlc3RfcGF0aHMpOgorICAgICAgICBmb3Iga2V5
LCBwYXRoIGluIHRlc3RfcGF0aHMuaXRlbXMoKToKICAgICAgICAgICAgIG5hbWUgPSBrZXkuc3Bs
aXQoIl8iLCAxKVswXQogCiAgICAgICAgICAgICBpZiBuYW1lID09ICJtYW5pZmVzdCI6CkBAIC01
ODgsNyArNjA0LDcgQEAgZGVmIGNoZWNrX2FyZ3Moa3dhcmdzKToKICAgICAgICAga3dhcmdzWyJy
ZWZ0ZXN0X2ludGVybmFsIl0gPSBUcnVlCiAKICAgICBpZiBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVu
c2hvdCJdIGlzIE5vbmU6Ci0gICAgICAgIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gPSAi
dW5leHBlY3RlZCIKKyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9ICJ1bmV4
cGVjdGVkIiBpZiBub3Qga3dhcmdzWyJkZWJ1Z190ZXN0Il0gZWxzZSAiYWx3YXlzIgogCiAgICAg
aWYga3dhcmdzWyJlbmFibGVfd2VicmVuZGVyIl0gaXMgTm9uZToKICAgICAgICAga3dhcmdzWyJl
bmFibGVfd2VicmVuZGVyIl0gPSBGYWxzZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dp
bmcucHkKaW5kZXggNDQ0ZDFkOTYyZDI1Li5iNWNiNTg4ODFmZDAgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dp
bmcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bG9nZ2luZy5weQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCBsb2dnaW5nCitm
cm9tIHRocmVhZGluZyBpbXBvcnQgVGhyZWFkCiAKIGZyb20gbW96bG9nIGltcG9ydCBjb21tYW5k
bGluZSwgc3RkYWRhcHRlciwgc2V0X2RlZmF1bHRfbG9nZ2VyCiBmcm9tIG1vemxvZy5zdHJ1Y3R1
cmVkbG9nIGltcG9ydCBTdHJ1Y3R1cmVkTG9nZ2VyLCBsb2dfbGV2ZWxzCkBAIC02NSwzICs2Niw0
MiBAQCBjbGFzcyBMb2dnZWRBYm92ZUxldmVsSGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAg
bm90IHNlbGYuaGFzX2xvZyBhbmQKICAgICAgICAgICAgIGxvZ19sZXZlbHNbZGF0YVsibGV2ZWwi
XV0gPD0gc2VsZi5taW5fbGV2ZWwpOgogICAgICAgICAgICAgc2VsZi5oYXNfbG9nID0gVHJ1ZQor
CisKK2NsYXNzIFF1ZXVlSGFuZGxlcihsb2dnaW5nLkhhbmRsZXIpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBxdWV1ZSwgbGV2ZWw9bG9nZ2luZy5OT1RTRVQpOgorICAgICAgICBzZWxmLnF1ZXVl
ID0gcXVldWUKKyAgICAgICAgbG9nZ2luZy5IYW5kbGVyLl9faW5pdF9fKHNlbGYsIGxldmVsPWxl
dmVsKQorCisgICAgZGVmIGNyZWF0ZUxvY2soc2VsZik6CisgICAgICAgICMgVGhlIHF1ZXVlIHBy
b3ZpZGVzIGl0cyBvd24gbG9ja2luZworICAgICAgICBzZWxmLmxvY2sgPSBOb25lCisKKyAgICBk
ZWYgZW1pdChzZWxmLCByZWNvcmQpOgorICAgICAgICBtc2cgPSBzZWxmLmZvcm1hdChyZWNvcmQp
CisgICAgICAgIGRhdGEgPSB7ImFjdGlvbiI6ICJsb2ciLAorICAgICAgICAgICAgICAgICJsZXZl
bCI6IHJlY29yZC5sZXZlbG5hbWUsCisgICAgICAgICAgICAgICAgInRocmVhZCI6IHJlY29yZC50
aHJlYWROYW1lLAorICAgICAgICAgICAgICAgICJwaWQiOiByZWNvcmQucHJvY2VzcywKKyAgICAg
ICAgICAgICAgICAic291cmNlIjogc2VsZi5uYW1lLAorICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogbXNnfQorICAgICAgICBzZWxmLnF1ZXVlLnB1dChkYXRhKQorCisKK2NsYXNzIExvZ1F1ZXVl
VGhyZWFkKFRocmVhZCk6CisgICAgIiIiVGhyZWFkIGZvciBoYW5kbGluZyBsb2cgbWVzc2FnZXMg
ZnJvbSBhIHF1ZXVlIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1ZXVlLCBsb2dnZXIpOgor
ICAgICAgICBzZWxmLnF1ZXVlID0gcXVldWUKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIK
KyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhuYW1lPSJUaHJlYWQtTG9nIikKKworICAgIGRlZiBy
dW4oc2VsZik6CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgZGF0YSA9IHNlbGYucXVldWUuZ2V0KCkKKyAgICAgICAgICAgIGV4Y2VwdCAoRU9G
RXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBk
YXRhIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgIyBBIE5vbmUgbWVzc2FnZSBpcyB1c2VkIHRv
IHNodXQgZG93biB0aGUgbG9nZ2luZyB0aHJlYWQKKyAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICAgICAgc2VsZi5sb2dnZXIubG9nX3JhdyhkYXRhKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qv
YmFja2VuZHMvYmFzZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zMDY5ZTRjZmU4ZGQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRtYW5pZmVzdC9iYWNrZW5kcy9iYXNlLnB5CkBAIC0wLDAgKzEsMjIyIEBACitpbXBvcnQg
YWJjCisKK2Zyb20gLi5ub2RlIGltcG9ydCBOb2RlVmlzaXRvcgorZnJvbSAuLnBhcnNlciBpbXBv
cnQgcGFyc2UKKworCitjbGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CisgICAgX19tZXRhY2xh
c3NfXyA9IGFiYy5BQkNNZXRhCisKKyAgICBkZWYgY29tcGlsZShzZWxmLCB0cmVlLCBkYXRhX2Ns
c19nZXR0ZXI9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLl9rd2FyZ3MgPSBrd2FyZ3MK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NvbXBpbGUodHJlZSwgZGF0YV9jbHNfZ2V0dGVyLCAqKmt3
YXJncykKKworICAgIGRlZiBfY29tcGlsZShzZWxmLCB0cmVlLCBkYXRhX2Nsc19nZXR0ZXI9Tm9u
ZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJDb21waWxlIGEgcmF3IEFTVCBpbnRvIGEgZm9ybSB3
aGVyZSBjb25kaXRpb25hbCBleHByZXNzaW9ucworICAgICAgICBhcmUgcmVwcmVzZW50ZWQgYnkg
Q29uZGl0aW9uYWxWYWx1ZSBvYmplY3RzIHRoYXQgY2FuIGJlIGV2YWx1YXRlZAorICAgICAgICBh
dCBydW50aW1lLgorCisgICAgICAgIHRyZWUgLSBUaGUgcm9vdCBub2RlIG9mIHRoZSB3cHRtYW5p
ZmVzdCBBU1QgdG8gY29tcGlsZQorCisgICAgICAgIGRhdGFfY2xzX2dldHRlciAtIEEgZnVuY3Rp
b24gdGFraW5nIHR3byBwYXJhbWV0ZXJzOyB0aGUgcHJldmlvdXMKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0IG5vZGUgYW5kIHRoZSBjdXJyZW50IGFzdCBub2RlIGFuZCByZXR1cm5p
bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsYXNzIG9mIHRoZSBvdXRwdXQgbm9k
ZSB0byB1c2UgZm9yIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdCBu
b2RlCisgICAgICAgICIiIgorICAgICAgICBpZiBkYXRhX2Nsc19nZXR0ZXIgaXMgTm9uZToKKyAg
ICAgICAgICAgIHNlbGYuZGF0YV9jbHNfZ2V0dGVyID0gbGFtYmRhIHgsIHk6IE1hbmlmZXN0SXRl
bQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBkYXRh
X2Nsc19nZXR0ZXIKKworICAgICAgICBzZWxmLnRyZWUgPSB0cmVlCisgICAgICAgIHNlbGYub3V0
cHV0X25vZGUgPSBzZWxmLl9pbml0aWFsX291dHB1dF9ub2RlKHRyZWUsICoqa3dhcmdzKQorICAg
ICAgICBzZWxmLnZpc2l0KHRyZWUpCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5vdXRwdXRfbm9k
ZSwgInNldF9kZWZhdWx0cyIpOgorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZS5zZXRfZGVm
YXVsdHMoKQorICAgICAgICBhc3NlcnQgc2VsZi5vdXRwdXRfbm9kZSBpcyBub3QgTm9uZQorICAg
ICAgICByZXR1cm4gc2VsZi5vdXRwdXRfbm9kZQorCisgICAgZGVmIF9pbml0aWFsX291dHB1dF9u
b2RlKHNlbGYsIG5vZGUsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZGF0YV9jbHNf
Z2V0dGVyKE5vbmUsIE5vbmUpKG5vZGUsICoqa3dhcmdzKQorCisgICAgZGVmIHZpc2l0X0RhdGFO
b2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpZiBub2RlICE9IHNlbGYudHJlZToKKyAgICAgICAg
ICAgIG91dHB1dF9wYXJlbnQgPSBzZWxmLm91dHB1dF9ub2RlCisgICAgICAgICAgICBzZWxmLm91
dHB1dF9ub2RlID0gc2VsZi5kYXRhX2Nsc19nZXR0ZXIoc2VsZi5vdXRwdXRfbm9kZSwgbm9kZSko
bm9kZSwgKipzZWxmLl9rd2FyZ3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRwdXRf
cGFyZW50ID0gTm9uZQorCisgICAgICAgIGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBO
b25lCisKKyAgICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICBz
ZWxmLnZpc2l0KGNoaWxkKQorCisgICAgICAgIGlmIG91dHB1dF9wYXJlbnQgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAjIEFwcGVuZCB0byB0aGUgcGFyZW50ICphZnRlciogcHJvY2Vzc2luZyBh
bGwgdGhlIG5vZGUgZGF0YQorICAgICAgICAgICAgb3V0cHV0X3BhcmVudC5hcHBlbmQoc2VsZi5v
dXRwdXRfbm9kZSkKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X25vZGUgPSBzZWxmLm91dHB1dF9u
b2RlLnBhcmVudAorCisgICAgICAgIGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBOb25l
CisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIHZpc2l0X0tleVZhbHVlTm9kZShz
ZWxmLCBub2RlKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHZpc2l0X0xpc3ROb2RlKHNlbGYs
IG5vZGUpOgorICAgICAgICByZXR1cm4gW3NlbGYudmlzaXQoY2hpbGQpIGZvciBjaGlsZCBpbiBu
b2RlLmNoaWxkcmVuXQorCisgICAgZGVmIHZpc2l0X1ZhbHVlTm9kZShzZWxmLCBub2RlKToKKyAg
ICAgICAgcmV0dXJuIG5vZGUuZGF0YQorCisgICAgZGVmIHZpc2l0X0F0b21Ob2RlKHNlbGYsIG5v
ZGUpOgorICAgICAgICByZXR1cm4gbm9kZS5kYXRhCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9k
CisgICAgZGVmIHZpc2l0X0NvbmRpdGlvbmFsTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcGFz
cworCisgICAgZGVmIHZpc2l0X1N0cmluZ05vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGluZGV4
ZXMgPSBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW5dCisKKyAg
ICAgICAgZGVmIHZhbHVlKHgpOgorICAgICAgICAgICAgcnYgPSBub2RlLmRhdGEKKyAgICAgICAg
ICAgIGZvciBpbmRleCBpbiBpbmRleGVzOgorICAgICAgICAgICAgICAgIHJ2ID0gcnZbaW5kZXgo
eCldCisgICAgICAgICAgICByZXR1cm4gcnYKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBk
ZWYgdmlzaXRfTnVtYmVyTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaWYgIi4iIGluIG5vZGUu
ZGF0YToKKyAgICAgICAgICAgIHJldHVybiBmbG9hdChub2RlLmRhdGEpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICByZXR1cm4gaW50KG5vZGUuZGF0YSkKKworICAgIGRlZiB2aXNpdF9WYXJp
YWJsZU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGluZGV4ZXMgPSBbc2VsZi52aXNpdChjaGls
ZCkgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW5dCisKKyAgICAgICAgZGVmIHZhbHVlKHgpOgor
ICAgICAgICAgICAgZGF0YSA9IHhbbm9kZS5kYXRhXQorICAgICAgICAgICAgZm9yIGluZGV4IGlu
IGluZGV4ZXM6CisgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGFbaW5kZXgoeCldCisgICAgICAg
ICAgICByZXR1cm4gZGF0YQorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiB2aXNpdF9J
bmRleE5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBsZW4obm9kZS5jaGlsZHJlbikg
PT0gMQorICAgICAgICByZXR1cm4gc2VsZi52aXNpdChub2RlLmNoaWxkcmVuWzBdKQorCisgICAg
QGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiB2aXNpdF9VbmFyeUV4cHJlc3Npb25Ob2RlKHNl
bGYsIG5vZGUpOgorICAgICAgICBwYXNzCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAg
ZGVmIHZpc2l0X0JpbmFyeUV4cHJlc3Npb25Ob2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNz
CisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIHZpc2l0X1VuYXJ5T3BlcmF0b3JO
b2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNzCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9k
CisgICAgZGVmIHZpc2l0X0JpbmFyeU9wZXJhdG9yTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAg
cGFzcworCisKK2NsYXNzIE1hbmlmZXN0SXRlbShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBub2RlLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQorICAgICAg
ICBzZWxmLm5vZGUgPSBub2RlCisgICAgICAgIHNlbGYuY2hpbGRyZW4gPSBbXQorICAgICAgICBz
ZWxmLl9kYXRhID0ge30KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICI8JXMgJXM+IiAlIChzZWxmLl9fY2xhc3NfXywgc2VsZi5ub2RlLmRhdGEpCisKKyAgICBkZWYg
X19zdHJfXyhzZWxmKToKKyAgICAgICAgcnYgPSBbcmVwcihzZWxmKV0KKyAgICAgICAgZm9yIGl0
ZW0gaW4gc2VsZi5jaGlsZHJlbjoKKyAgICAgICAgICAgIHJ2LmV4dGVuZCgiICAlcyIgJSBsaW5l
IGZvciBsaW5lIGluIHN0cihpdGVtKS5zcGxpdCgiXG4iKSkKKyAgICAgICAgcmV0dXJuICJcbiIu
am9pbihydikKKworICAgIGRlZiBzZXRfZGVmYXVsdHMoc2VsZik6CisgICAgICAgIHBhc3MKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19lbXB0eShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5f
ZGF0YToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gYWxsKGNoaWxk
LmlzX2VtcHR5IGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHJvb3Qoc2VsZik6CisgICAgICAgIG5vZGUgPSBzZWxmCisgICAgICAgIHdoaWxlIG5v
ZGUucGFyZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Cisg
ICAgICAgIHJldHVybiBub2RlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbmFtZShzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYubm9kZS5kYXRhCisKKyAgICBkZWYgZ2V0KHNlbGYsIGtleSk6
CisgICAgICAgIGZvciBub2RlIGluIFtzZWxmLCBzZWxmLnJvb3RdOgorICAgICAgICAgICAgaWYg
a2V5IGluIG5vZGUuX2RhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuX2RhdGFba2V5
XQorICAgICAgICByYWlzZSBLZXlFcnJvcgorCisgICAgZGVmIHNldChzZWxmLCBuYW1lLCB2YWx1
ZSk6CisgICAgICAgIHNlbGYuX2RhdGFbbmFtZV0gPSB2YWx1ZQorCisgICAgZGVmIHJlbW92ZShz
ZWxmKToKKyAgICAgICAgaWYgc2VsZi5wYXJlbnQ6CisgICAgICAgICAgICBzZWxmLnBhcmVudC5j
aGlsZHJlbi5yZW1vdmUoc2VsZikKKyAgICAgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQorCisg
ICAgZGVmIGl0ZXJjaGlsZHJlbihzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICBmb3IgaXRlbSBp
biBzZWxmLmNoaWxkcmVuOgorICAgICAgICAgICAgaWYgaXRlbS5uYW1lID09IG5hbWUgb3IgbmFt
ZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRlZiBoYXNfa2V5
KHNlbGYsIGtleSk6CisgICAgICAgIGZvciBub2RlIGluIFtzZWxmLCBzZWxmLnJvb3RdOgorICAg
ICAgICAgICAgaWYga2V5IGluIG5vZGUuX2RhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRy
dWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX2ZsYXR0ZW4oc2VsZik6CisgICAg
ICAgIHJ2ID0ge30KKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAg
ICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gbm9kZS5fZGF0YS5pdGVtcygpOgorICAgICAgICAg
ICAgICAgIGlmIG5hbWUgbm90IGluIHJ2OgorICAgICAgICAgICAgICAgICAgICBydltuYW1lXSA9
IHZhbHVlCisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKKyAg
ICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZW1zKCk6CisgICAgICAgICAgICB5
aWVsZCBpdGVtCisKKyAgICBkZWYgaXRlcmtleXMoc2VsZik6CisgICAgICAgIGZvciBpdGVtIGlu
IHNlbGYuX2ZsYXR0ZW4oKS5rZXlzKCk6CisgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBk
ZWYgaXRlcnZhbHVlcyhzZWxmKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigp
LnZhbHVlcygpOgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGFwcGVuZChzZWxm
LCBjaGlsZCk6CisgICAgICAgIGNoaWxkLnBhcmVudCA9IHNlbGYKKyAgICAgICAgc2VsZi5jaGls
ZHJlbi5hcHBlbmQoY2hpbGQpCisgICAgICAgIHJldHVybiBjaGlsZAorCisKK2RlZiBjb21waWxl
X2FzdChjb21waWxlciwgYXN0LCBkYXRhX2Nsc19nZXR0ZXI9Tm9uZSwgKiprd2FyZ3MpOgorICAg
IHJldHVybiBjb21waWxlcigpLmNvbXBpbGUoYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGF0YV9jbHNfZ2V0dGVyPWRhdGFfY2xzX2dldHRlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKQorCisKK2RlZiBjb21waWxlKGNvbXBpbGVyLCBzdHJlYW0s
IGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIGNvbXBpbGVfYXN0
KGNvbXBpbGVyLAorICAgICAgICAgICAgICAgICAgICAgICBwYXJzZShzdHJlYW0pLAorICAgICAg
ICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9jbHNfZ2V0dGVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncykKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRz
L2NvbmRpdGlvbmFsLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkKaW5kZXgg
M2IxMWU4MzAxMmFiLi4zMGRkMTQ0OTE1NmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRz
L2NvbmRpdGlvbmFsLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2NvbmRpdGlvbmFsLnB5CkBA
IC0xLDUgKzEsNSBAQAogaW1wb3J0IG9wZXJhdG9yCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX3Rl
eHQsIGl0ZXJpdGVtcywgaXRlcmtleXMsIHRleHRfdHlwZQorZnJvbSBzaXggaW1wb3J0IGVuc3Vy
ZV90ZXh0CiAKIGZyb20gLi5ub2RlIGltcG9ydCBOb2RlVmlzaXRvciwgRGF0YU5vZGUsIENvbmRp
dGlvbmFsTm9kZSwgS2V5VmFsdWVOb2RlLCBMaXN0Tm9kZSwgVmFsdWVOb2RlLCBCaW5hcnlFeHBy
ZXNzaW9uTm9kZSwgVmFyaWFibGVOb2RlCiBmcm9tIC4ucGFyc2VyIGltcG9ydCBwYXJzZQpAQCAt
MzAwLDkgKzMwMCw5IEBAIGNsYXNzIE1hbmlmZXN0SXRlbShvYmplY3QpOgogICAgICAgICBpZiBp
c2luc3RhbmNlKHZhbHVlLCBsaXN0KToKICAgICAgICAgICAgIHZhbHVlX25vZGUgPSBMaXN0Tm9k
ZSgpCiAgICAgICAgICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKLSAgICAgICAgICAgICAgICB2YWx1
ZV9ub2RlLmFwcGVuZChWYWx1ZU5vZGUodGV4dF90eXBlKGl0ZW0pKSkKKyAgICAgICAgICAgICAg
ICB2YWx1ZV9ub2RlLmFwcGVuZChWYWx1ZU5vZGUoc3RyKGl0ZW0pKSkKICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHZhbHVlX25vZGUgPSBWYWx1ZU5vZGUodGV4dF90eXBlKHZhbHVlKSkKKyAg
ICAgICAgICAgIHZhbHVlX25vZGUgPSBWYWx1ZU5vZGUoc3RyKHZhbHVlKSkKICAgICAgICAgaWYg
Y29uZGl0aW9uIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29u
ZGl0aW9uLCBDb25kaXRpb25hbE5vZGUpOgogICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsX25v
ZGUgPSBDb25kaXRpb25hbE5vZGUoKQpAQCAtMzY4LDE3ICszNjgsMTcgQEAgY2xhc3MgTWFuaWZl
c3RJdGVtKG9iamVjdCk6CiAgICAgZGVmIF9mbGF0dGVuKHNlbGYpOgogICAgICAgICBydiA9IHt9
CiAgICAgICAgIGZvciBub2RlIGluIFtzZWxmLCBzZWxmLnJvb3RdOgotICAgICAgICAgICAgZm9y
IG5hbWUsIHZhbHVlIGluIGl0ZXJpdGVtcyhub2RlLl9kYXRhKToKKyAgICAgICAgICAgIGZvciBu
YW1lLCB2YWx1ZSBpbiBub2RlLl9kYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgaWYgbmFt
ZSBub3QgaW4gcnY6CiAgICAgICAgICAgICAgICAgICAgIHJ2W25hbWVdID0gdmFsdWUKICAgICAg
ICAgcmV0dXJuIHJ2CiAKICAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgotICAgICAgICBmb3IgaXRl
bSBpbiBpdGVyaXRlbXMoc2VsZi5fZmxhdHRlbigpKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2Vs
Zi5fZmxhdHRlbigpLml0ZW1zKCk6CiAgICAgICAgICAgICB5aWVsZCBpdGVtCiAKICAgICBkZWYg
aXRlcmtleXMoc2VsZik6Ci0gICAgICAgIGZvciBpdGVtIGluIGl0ZXJrZXlzKHNlbGYuX2ZsYXR0
ZW4oKSk6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2ZsYXR0ZW4oKS5rZXlzKCk6CiAgICAg
ICAgICAgICB5aWVsZCBpdGVtCiAKICAgICBkZWYgaXRlcl9wcm9wZXJ0aWVzKHNlbGYpOgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L25vZGUucHkKaW5kZXggMGY4MmQ3
MDA2YjY5Li41ZTlkMmI2NDI3NDQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L25vZGUucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3Qvbm9kZS5weQpAQCAtMSw1ICsxLDMgQEAKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBy
YW5nZQotCiBjbGFzcyBOb2RlVmlzaXRvcihvYmplY3QpOgogICAgIGRlZiB2aXNpdChzZWxmLCBu
b2RlKToKICAgICAgICAgIyBUaGlzIGlzIHVnbHkgYXMgaGVsbCwgYnV0IHdlIGRvbid0IGhhdmUg
bXVsdGltZXRob2RzIGFuZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvcGFyc2VyLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvcGFyc2VyLnB5CmluZGV4IDkxMWVmYWM4MGYyNy4uNGM5N2M2OTE0MTM5IDEwMDY0NAotLS0g
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9wYXJzZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvcGFyc2VyLnB5CkBAIC0xMiwxMCAr
MTIsNyBAQAogCiAjIFRPRE86IGtlZXAgY29tbWVudHMgaW4gdGhlIHRyZWUKIAotZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCi0KLWZyb20gc2l4IGltcG9ydCBiaW5hcnlf
dHlwZSwgdGV4dF90eXBlLCBCeXRlc0lPLCB1bmljaHIKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBy
YW5nZQorZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwogCiBmcm9tIC5ub2RlIGltcG9ydCAoTm9kZSwg
QXRvbU5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLCBCaW5hcnlPcGVyYXRvck5vZGUsCiAgICAg
ICAgICAgICAgICAgICAgQ29uZGl0aW9uYWxOb2RlLCBEYXRhTm9kZSwgSW5kZXhOb2RlLCBLZXlW
YWx1ZU5vZGUsIExpc3ROb2RlLApAQCAtNTAsNyArNDcsNyBAQCBhdG9tcyA9IHsiVHJ1ZSI6IFRy
dWUsCiAgICAgICAgICAiUmVzZXQiOiBvYmplY3QoKX0KIAogZGVmIGRlY29kZShzKToKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZShzLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uocywg
c3RyKQogICAgIHJldHVybiBzCiAKIApAQCAtNTksNyArNTYsNyBAQCBkZWYgcHJlY2VkZW5jZShv
cGVyYXRvcl9ub2RlKToKIAogCiBjbGFzcyBUb2tlblR5cGVzKG9iamVjdCk6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOgogICAgICAgICBm
b3IgdHlwZSBpbiBbImdyb3VwX3N0YXJ0IiwgImdyb3VwX2VuZCIsICJwYXJlbiIsICJsaXN0X3N0
YXJ0IiwgImxpc3RfZW5kIiwgInNlcGFyYXRvciIsICJpZGVudCIsICJzdHJpbmciLCAibnVtYmVy
IiwgImF0b20iLCAiZW9mIl06CiAgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIHR5cGUsIHR5cGUp
CiAKQEAgLTc5LDcgKzc2LDcgQEAgY2xhc3MgVG9rZW5pemVyKG9iamVjdCk6CiAKICAgICBkZWYg
dG9rZW5pemUoc2VsZiwgc3RyZWFtKToKICAgICAgICAgc2VsZi5yZXNldCgpCi0gICAgICAgIGFz
c2VydCBub3QgaXNpbnN0YW5jZShzdHJlYW0sIHRleHRfdHlwZSkKKyAgICAgICAgYXNzZXJ0IG5v
dCBpc2luc3RhbmNlKHN0cmVhbSwgc3RyKQogICAgICAgICBpZiBpc2luc3RhbmNlKHN0cmVhbSwg
Ynl0ZXMpOgogICAgICAgICAgICAgc3RyZWFtID0gQnl0ZXNJTyhzdHJlYW0pCiAgICAgICAgIGlm
IG5vdCBoYXNhdHRyKHN0cmVhbSwgIm5hbWUiKToKQEAgLTg5LDcgKzg2LDcgQEAgY2xhc3MgVG9r
ZW5pemVyKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5uZXh0X2xpbmVfc3RhdGUgPSBzZWxmLmxp
bmVfc3RhcnRfc3RhdGUKICAgICAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKHN0cmVhbSk6
Ci0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lLCBiaW5hcnlfdHlwZSkKKyAgICAg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmUsIGJ5dGVzKQogICAgICAgICAgICAgc2VsZi5z
dGF0ZSA9IHNlbGYubmV4dF9saW5lX3N0YXRlCiAgICAgICAgICAgICBhc3NlcnQgc2VsZi5zdGF0
ZSBpcyBub3QgTm9uZQogICAgICAgICAgICAgc3RhdGVzID0gW10KQEAgLTk3LDcgKzk0LDcgQEAg
Y2xhc3MgVG9rZW5pemVyKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLmxpbmVfbnVtYmVyID0g
aSArIDEKICAgICAgICAgICAgIHNlbGYuaW5kZXggPSAwCiAgICAgICAgICAgICBzZWxmLmxpbmUg
PSBsaW5lLmRlY29kZSgndXRmLTgnKS5yc3RyaXAoKQotICAgICAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2Uoc2VsZi5saW5lLCB0ZXh0X3R5cGUpCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShzZWxmLmxpbmUsIHN0cikKICAgICAgICAgICAgIHdoaWxlIHNlbGYuc3RhdGUgIT0gc2VsZi5l
b2xfc3RhdGU6CiAgICAgICAgICAgICAgICAgc3RhdGVzLmFwcGVuZChzZWxmLnN0YXRlKQogICAg
ICAgICAgICAgICAgIHRva2VucyA9IHNlbGYuc3RhdGUoKQpAQCAtNTA1LDcgKzUwMiw3IEBAIGNs
YXNzIFRva2VuaXplcihvYmplY3QpOgogICAgICAgICAgICAgdmFsdWUgKz0gc2VsZi5lc2NhcGVf
dmFsdWUoYykKICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCiAKLSAgICAgICAgcmV0dXJuIHVu
aWNocih2YWx1ZSkKKyAgICAgICAgcmV0dXJuIGNocih2YWx1ZSkKIAogICAgIGRlZiBlc2NhcGVf
dmFsdWUoc2VsZiwgYyk6CiAgICAgICAgIGlmICcwJyA8PSBjIDw9ICc5JzoKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5CmluZGV4IGVj
OGQ4MGVkNmY3MS4uZTMxYTYwNzkxZWE3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVy
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkKQEAgLTEsNCArMSwzIEBACi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKIGZyb20gc2l4IGltcG9ydCBlbnN1cmVf
dGV4dAogCiBmcm9tIC5ub2RlIGltcG9ydCBOb2RlVmlzaXRvciwgVmFsdWVOb2RlLCBMaXN0Tm9k
ZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUKQEAgLTM0LDYgKzMzLDcgQEAgY2xhc3MgTWFuaWZlc3RT
ZXJpYWxpemVyKE5vZGVWaXNpdG9yKToKICAgICAgICAgcnYgPSAiXG4iLmpvaW4oc2VsZi52aXNp
dChyb290KSkKICAgICAgICAgaWYgbm90IHJ2OgogICAgICAgICAgICAgcmV0dXJuIHJ2CisgICAg
ICAgIHJ2ID0gcnYuc3RyaXAoKQogICAgICAgICBpZiBydlstMV0gIT0gIlxuIjoKICAgICAgICAg
ICAgIHJ2ID0gcnYgKyAiXG4iCiAgICAgICAgIHJldHVybiBydgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvdGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zZXJpYWxp
emVyLnB5CmluZGV4IGIyNDc4NTU4MDFlYS4uMDJlNTI4MTVkYmRjIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5p
ZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9z
ZXJpYWxpemVyLnB5CkBAIC0xLDggKzEsNSBAQAotaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0
CiAKLWltcG9ydCBweXRlc3QKLQogZnJvbSAuLiBpbXBvcnQgcGFyc2VyLCBzZXJpYWxpemVyCiAK
IApAQCAtMTkyLDcgKzE4OSw2IEBAIGNsYXNzIFRva2VuaXplclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAgICAgICAgICAgICAgciIiImtleTogIiMiCiAiIiIpCiAKLSAgICBAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLm1heHVuaWNvZGUgPT0gMHhGRkZGLCByZWFzb249Im5hcnJvdyB1
bmljb2RlIikKICAgICBkZWYgdGVzdF9lc2NhcGVfOShzZWxmKToKICAgICAgICAgc2VsZi5jb21w
YXJlKGJyIiIia2V5OiBcVTEwRkZGRmFiYyIiIiwKICAgICAgICAgICAgICAgICAgICAgIHUiIiJr
ZXk6IFxVMDAxMEZGRkZhYmMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQppbmRl
eCBlMWQ5ZWY4YjFhOTEuLjI1YTI1MTVlZjZmOCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dHJ1bm5lci5weQpAQCAtMSwxNSArMSwxMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu
dF9mdW5jdGlvbiwgdW5pY29kZV9saXRlcmFscwotCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBp
bXBvcnQgc3lzCi1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zLCBpdGVydmFsdWVzCiAKIGltcG9y
dCB3cHRzZXJ2ZQogZnJvbSB3cHRzZXJ2ZSBpbXBvcnQgc3NsdXRpbHMKIAogZnJvbSAuIGltcG9y
dCBlbnZpcm9ubWVudCBhcyBlbnYKIGZyb20gLiBpbXBvcnQgaW5zdHJ1bWVudHMKK2Zyb20gLiBp
bXBvcnQgbXBjb250ZXh0CiBmcm9tIC4gaW1wb3J0IHByb2R1Y3RzCiBmcm9tIC4gaW1wb3J0IHRl
c3Rsb2FkZXIKIGZyb20gLiBpbXBvcnQgd3B0Y29tbWFuZGxpbmUKQEAgLTE4LDcgKzE2LDYgQEAg
ZnJvbSAuIGltcG9ydCB3cHR0ZXN0CiBmcm9tIG1vemxvZyBpbXBvcnQgY2FwdHVyZSwgaGFuZGxl
cnMKIGZyb20gLmZvbnQgaW1wb3J0IEZvbnRJbnN0YWxsZXIKIGZyb20gLnRlc3RydW5uZXIgaW1w
b3J0IE1hbmFnZXJHcm91cAotZnJvbSAuYnJvd3NlcnMuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIK
IAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtNjUsNiArNjIsOSBAQCBk
ZWYgZ2V0X2xvYWRlcih0ZXN0X3BhdGhzLCBwcm9kdWN0LCBkZWJ1Zz1Ob25lLCBydW5faW5mb19l
eHRyYXM9Tm9uZSwgY2h1bmtlcl9rdwogICAgIG1hbmlmZXN0X2ZpbHRlcnMgPSBbXQogCiAgICAg
aW5jbHVkZSA9IGt3YXJnc1siaW5jbHVkZSJdCisgICAgaWYga3dhcmdzWyJpbmNsdWRlX2ZpbGUi
XToKKyAgICAgICAgaW5jbHVkZSA9IGluY2x1ZGUgb3IgW10KKyAgICAgICAgaW5jbHVkZS5leHRl
bmQodGVzdGxvYWRlci5yZWFkX2luY2x1ZGVfZnJvbV9maWxlKGt3YXJnc1siaW5jbHVkZV9maWxl
Il0pKQogICAgIGlmIHRlc3RfZ3JvdXBzOgogICAgICAgICBpbmNsdWRlID0gdGVzdGxvYWRlci51
cGRhdGVfaW5jbHVkZV9mb3JfZ3JvdXBzKHRlc3RfZ3JvdXBzLCBpbmNsdWRlKQogCkBAIC05Niw3
ICs5Niw3IEBAIGRlZiBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIGRlYnVnPU5vbmUs
IHJ1bl9pbmZvX2V4dHJhcz1Ob25lLCBjaHVua2VyX2t3CiBkZWYgbGlzdF90ZXN0X2dyb3Vwcyh0
ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgZW52LmRvX2RlbGF5ZWRfaW1wb3J0
cyhsb2dnZXIsIHRlc3RfcGF0aHMpCiAKLSAgICBydW5faW5mb19leHRyYXMgPSBwcm9kdWN0cy5s
b2FkX3Byb2R1Y3Qoa3dhcmdzWyJjb25maWciXSwgcHJvZHVjdClbLTFdKCoqa3dhcmdzKQorICAg
IHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLlByb2R1Y3Qoa3dhcmdzWyJjb25maWciXSwgcHJv
ZHVjdCkucnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKQogCiAgICAgcnVuX2luZm8sIHRlc3RfbG9h
ZGVyID0gZ2V0X2xvYWRlcih0ZXN0X3BhdGhzLCBwcm9kdWN0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcywgKipr
d2FyZ3MpCkBAIC0xMTAsMTIgKzExMCwxMiBAQCBkZWYgbGlzdF9kaXNhYmxlZCh0ZXN0X3BhdGhz
LCBwcm9kdWN0LCAqKmt3YXJncyk6CiAKICAgICBydiA9IFtdCiAKLSAgICBydW5faW5mb19leHRy
YXMgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoa3dhcmdzWyJjb25maWciXSwgcHJvZHVjdClbLTFd
KCoqa3dhcmdzKQorICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLlByb2R1Y3Qoa3dhcmdz
WyJjb25maWciXSwgcHJvZHVjdCkucnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKQogCiAgICAgcnVu
X2luZm8sIHRlc3RfbG9hZGVyID0gZ2V0X2xvYWRlcih0ZXN0X3BhdGhzLCBwcm9kdWN0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9p
bmZvX2V4dHJhcywgKiprd2FyZ3MpCiAKLSAgICBmb3IgdGVzdF90eXBlLCB0ZXN0cyBpbiBpdGVy
aXRlbXModGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHMpOgorICAgIGZvciB0ZXN0X3R5cGUsIHRl
c3RzIGluIHRlc3RfbG9hZGVyLmRpc2FibGVkX3Rlc3RzLml0ZW1zKCk6CiAgICAgICAgIGZvciB0
ZXN0IGluIHRlc3RzOgogICAgICAgICAgICAgcnYuYXBwZW5kKHsidGVzdCI6IHRlc3QuaWQsICJy
ZWFzb24iOiB0ZXN0LmRpc2FibGVkKCl9KQogICAgIHByaW50KGpzb24uZHVtcHMocnYsIGluZGVu
dD0yKSkKQEAgLTEyNCw3ICsxMjQsNyBAQCBkZWYgbGlzdF9kaXNhYmxlZCh0ZXN0X3BhdGhzLCBw
cm9kdWN0LCAqKmt3YXJncyk6CiBkZWYgbGlzdF90ZXN0cyh0ZXN0X3BhdGhzLCBwcm9kdWN0LCAq
Kmt3YXJncyk6CiAgICAgZW52LmRvX2RlbGF5ZWRfaW1wb3J0cyhsb2dnZXIsIHRlc3RfcGF0aHMp
CiAKLSAgICBydW5faW5mb19leHRyYXMgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoa3dhcmdzWyJj
b25maWciXSwgcHJvZHVjdClbLTFdKCoqa3dhcmdzKQorICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHBy
b2R1Y3RzLlByb2R1Y3Qoa3dhcmdzWyJjb25maWciXSwgcHJvZHVjdCkucnVuX2luZm9fZXh0cmFz
KCoqa3dhcmdzKQogCiAgICAgcnVuX2luZm8sIHRlc3RfbG9hZGVyID0gZ2V0X2xvYWRlcih0ZXN0
X3BhdGhzLCBwcm9kdWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcywgKiprd2FyZ3MpCkBAIC0xMzksOCArMTM5
LDEwIEBAIGRlZiBnZXRfcGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgog
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToK
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBrd2FyZ3NbImRlYnVnX3Rlc3Qi
XToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHRlc3RzID0gdGVzdF9sb2FkZXIu
dGVzdHMKLSAgICAgICAgaXNfc2luZ2xlX3Rlc3RoYXJuZXNzID0gKHN1bShsZW4oaXRlbSkgZm9y
IGl0ZW0gaW4gaXRlcnZhbHVlcyh0ZXN0cykpID09IDEgYW5kCisgICAgICAgIGlzX3NpbmdsZV90
ZXN0aGFybmVzcyA9IChzdW0obGVuKGl0ZW0pIGZvciBpdGVtIGluIHRlc3RzLnZhbHVlcygpKSA9
PSAxIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHRlc3RzLmdldCgi
dGVzdGhhcm5lc3MiLCBbXSkpID09IDEpCiAgICAgICAgIGlmIGt3YXJnc1sicmVwZWF0Il0gPT0g
MSBhbmQga3dhcmdzWyJyZXJ1biJdID09IDEgYW5kIGlzX3NpbmdsZV90ZXN0aGFybmVzczoKICAg
ICAgICAgICAgIHJldHVybiBUcnVlCkBAIC0xNTEsMTUgKzE1MywxOCBAQCBkZWYgZ2V0X3BhdXNl
X2FmdGVyX3Rlc3QodGVzdF9sb2FkZXIsICoqa3dhcmdzKToKIGRlZiBydW5fdGVzdHMoY29uZmln
LCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgIiIiU2V0IHVwIHRoZSB0ZXN0
IGVudmlyb25tZW50LCBsb2FkIHRoZSBsaXN0IG9mIHRlc3RzIHRvIGJlIGV4ZWN1dGVkLCBhbmQK
ICAgICBpbnZva2UgdGhlIHJlbWFpbmRlciBvZiB0aGUgY29kZSB0byBleGVjdXRlIHRlc3RzIiIi
CisgICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQogICAgIGlmIGt3YXJnc1siaW5zdHJ1
bWVudF90b19maWxlIl0gaXMgTm9uZToKICAgICAgICAgcmVjb3JkZXIgPSBpbnN0cnVtZW50cy5O
dWxsSW5zdHJ1bWVudCgpCiAgICAgZWxzZToKICAgICAgICAgcmVjb3JkZXIgPSBpbnN0cnVtZW50
cy5JbnN0cnVtZW50KGt3YXJnc1siaW5zdHJ1bWVudF90b19maWxlIl0pCi0gICAgd2l0aCByZWNv
cmRlciBhcyByZWNvcmRpbmcsIGNhcHR1cmUuQ2FwdHVyZUlPKGxvZ2dlciwgbm90IGt3YXJnc1si
bm9fY2FwdHVyZV9zdGRpbyJdKToKKyAgICB3aXRoIHJlY29yZGVyIGFzIHJlY29yZGluZywgY2Fw
dHVyZS5DYXB0dXJlSU8obG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wX2NvbnRleHQ9bXAp
OgogICAgICAgICByZWNvcmRpbmcuc2V0KFsic3RhcnR1cCJdKQogICAgICAgICBlbnYuZG9fZGVs
YXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKIAotICAgICAgICBwcm9kdWN0ID0gcHJv
ZHVjdHMubG9hZF9wcm9kdWN0KGNvbmZpZywgcHJvZHVjdCwgbG9hZF9jbHM9VHJ1ZSkKKyAgICAg
ICAgcHJvZHVjdCA9IHByb2R1Y3RzLlByb2R1Y3QoY29uZmlnLCBwcm9kdWN0KQogCiAgICAgICAg
IGVudl9leHRyYXMgPSBwcm9kdWN0LmdldF9lbnZfZXh0cmFzKCoqa3dhcmdzKQogCkBAIC0xOTQs
NiArMTk5LDcgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoq
a3dhcmdzKToKICAgICAgICAgc2tpcHBlZF90ZXN0cyA9IDAKICAgICAgICAgdGVzdF90b3RhbCA9
IDAKICAgICAgICAgdW5leHBlY3RlZF90b3RhbCA9IDAKKyAgICAgICAgdW5leHBlY3RlZF9wYXNz
X3RvdGFsID0gMAogCiAgICAgICAgIGlmIGxlbih0ZXN0X2xvYWRlci50ZXN0X2lkcykgPT0gMCBh
bmQga3dhcmdzWyJ0ZXN0X2xpc3QiXToKICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiVW5h
YmxlIHRvIGZpbmQgYW55IHRlc3RzIGF0IHRoZSBwYXRoKHMpOiIpCkBAIC0yMTksNiArMjI1LDcg
QEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToK
ICAgICAgICAgd2l0aCBlbnYuVGVzdEVudmlyb25tZW50KHRlc3RfcGF0aHMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z190ZXN0Il0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX2luZm8iXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuZW52X29wdGlvbnMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfY29uZmlnLApAQCAtMjI5LDcgKzIz
Niw3IEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJn
cyk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5l
bnN1cmVfc3RhcnRlZCgpCiAgICAgICAgICAgICBleGNlcHQgZW52LlRlc3RFbnZpcm9ubWVudEVy
cm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJFcnJvciBzdGFydGlu
ZyB0ZXN0IGVudmlyb25tZW50OiAlcyIgJSBlLm1lc3NhZ2UpCisgICAgICAgICAgICAgICAgbG9n
Z2VyLmNyaXRpY2FsKCJFcnJvciBzdGFydGluZyB0ZXN0IGVudmlyb25tZW50OiAlcyIgJSBlKQog
ICAgICAgICAgICAgICAgIHJhaXNlCiAKICAgICAgICAgICAgIHJlY29yZGluZy5zZXQoWyJzdGFy
dHVwIl0pCkBAIC0yNDcsNiArMjU0LDcgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0
aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIAogICAgICAgICAgICAgICAgIHRlc3RfY291bnQgPSAw
CiAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9jb3VudCA9IDAKKyAgICAgICAgICAgICAgICB1
bmV4cGVjdGVkX3Bhc3NfY291bnQgPSAwCiAKICAgICAgICAgICAgICAgICB0ZXN0cyA9IFtdCiAg
ICAgICAgICAgICAgICAgZm9yIHRlc3RfdHlwZSBpbiB0ZXN0X2xvYWRlci50ZXN0X3R5cGVzOgpA
QCAtMjY1LDI1ICsyNzMsMTkgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHBy
b2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICBmb3IgdGVzdF90eXBlIGluIGt3YXJn
c1sidGVzdF90eXBlcyJdOgogICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiUnVubmlu
ZyAlcyB0ZXN0cyIgJSB0ZXN0X3R5cGUpCiAKLSAgICAgICAgICAgICAgICAgICAgIyBXZWJEcml2
ZXIgdGVzdHMgbWF5IGNyZWF0ZSBhbmQgZGVzdHJveSBtdWx0aXBsZSBicm93c2VyCi0gICAgICAg
ICAgICAgICAgICAgICMgcHJvY2Vzc2VzIGFzIHBhcnQgb2YgdGhlaXIgZXhwZWN0ZWQgYmVoYXZp
b3IuIFRoZXNlCi0gICAgICAgICAgICAgICAgICAgICMgcHJvY2Vzc2VzIGFyZSBtYW5hZ2VkIGJ5
IGEgV2ViRHJpdmVyIHNlcnZlciBiaW5hcnkuIFRoaXMKLSAgICAgICAgICAgICAgICAgICAgIyBv
YnZpYXRlcyB0aGUgbmVlZCBmb3Igd3B0cnVubmVyIHRvIHByb3ZpZGUgYSBicm93c2VyLCBzbwot
ICAgICAgICAgICAgICAgICAgICAjIHRoZSBOdWxsQnJvd3NlciBpcyB1c2VkIGluIHBsYWNlIG9m
IHRoZSAidGFyZ2V0IiBicm93c2VyCi0gICAgICAgICAgICAgICAgICAgIGlmIHRlc3RfdHlwZSA9
PSAid2RzcGVjIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gTnVsbEJy
b3dzZXIKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAg
IGJyb3dzZXJfY2xzID0gcHJvZHVjdC5icm93c2VyX2NscworICAgICAgICAgICAgICAgICAgICBi
cm93c2VyX2NscyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfY2xzKHRlc3RfdHlwZSkKIAotICAgICAg
ICAgICAgICAgICAgICBicm93c2VyX2t3YXJncyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfa3dhcmdz
KHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MgPSBwcm9kdWN0
LmdldF9icm93c2VyX2t3YXJncyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90eXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bl9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZz10ZXN0X2Vudmlyb25tZW50LmNvbmZpZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dW1fdGVzdF9ncm91cHM9bGVuKHRlc3RfZ3JvdXBzKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKIAogICAg
ICAgICAgICAgICAgICAgICBleGVjdXRvcl9jbHMgPSBwcm9kdWN0LmV4ZWN1dG9yX2NsYXNzZXMu
Z2V0KHRlc3RfdHlwZSkKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzID0gcHJv
ZHVjdC5nZXRfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZW52aXJv
bm1lbnQuY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jYWNoZV9tYW5hZ2VyLAor
ICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9leGVjdXRv
cl9rd2FyZ3MobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZp
cm9ubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKQEAgLTMz
NCwxMCArMzM2LDEzIEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0
LCAqKmt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfY291bnQgKz0gbWFuYWdlcl9ncm91cC50ZXN0X2NvdW50KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfY291bnQgKz0gbWFuYWdlcl9ncm91
cC51bmV4cGVjdGVkX2NvdW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRf
cGFzc19jb3VudCArPSBtYW5hZ2VyX2dyb3VwLnVuZXhwZWN0ZWRfcGFzc19jb3VudCgpCiAgICAg
ICAgICAgICAgICAgcmVjb3JkaW5nLnNldChbImFmdGVyLWVuZCJdKQogICAgICAgICAgICAgICAg
IHRlc3RfdG90YWwgKz0gdGVzdF9jb3VudAogICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90
YWwgKz0gdW5leHBlY3RlZF9jb3VudAotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJHb3Qg
JWkgdW5leHBlY3RlZCByZXN1bHRzIiAlIHVuZXhwZWN0ZWRfY291bnQpCisgICAgICAgICAgICAg
ICAgdW5leHBlY3RlZF9wYXNzX3RvdGFsICs9IHVuZXhwZWN0ZWRfcGFzc19jb3VudAorICAgICAg
ICAgICAgICAgIGxvZ2dlci5pbmZvKCJHb3QgJWkgdW5leHBlY3RlZCByZXN1bHRzLCB3aXRoICVp
IHVuZXhwZWN0ZWQgcGFzc2VzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuZXhw
ZWN0ZWRfY291bnQsIHVuZXhwZWN0ZWRfcGFzc19jb3VudCkpCiAgICAgICAgICAgICAgICAgbG9n
Z2VyLnN1aXRlX2VuZCgpCiAgICAgICAgICAgICAgICAgaWYgcmVwZWF0X3VudGlsX3VuZXhwZWN0
ZWQgYW5kIHVuZXhwZWN0ZWRfdG90YWwgPiAwOgogICAgICAgICAgICAgICAgICAgICBicmVhawpA
QCAtMzU5LDYgKzM2NCwxMyBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJv
ZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICBsb2dnZXIuaW5mbygiVG9sZXJhdGluZyAlcyB1bmV4
cGVjdGVkIHJlc3VsdHMiICUgdW5leHBlY3RlZF90b3RhbCkKICAgICAgICAgcmV0dXJuIFRydWUK
IAorICAgIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCA9ICh1bmV4cGVjdGVkX3RvdGFsIGFuZAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3RvdGFsID09IHVuZXhwZWN0ZWRf
cGFzc190b3RhbCkKKyAgICBpZiBhbGxfdW5leHBlY3RlZF9wYXNzZWQgYW5kIG5vdCBrd2FyZ3Nb
ImZhaWxfb25fdW5leHBlY3RlZF9wYXNzIl06CisgICAgICAgIGxvZ2dlci5pbmZvKCJUb2xlcmF0
aW5nICVpIHVuZXhwZWN0ZWQgcmVzdWx0cyBiZWNhdXNlIHRoZXkgYWxsIFBBU1MiICUKKyAgICAg
ICAgICAgICAgICAgICAgdW5leHBlY3RlZF9wYXNzX3RvdGFsKQorICAgICAgICByZXR1cm4gVHJ1
ZQorCiAgICAgcmV0dXJuIHVuZXhwZWN0ZWRfdG90YWwgPT0gMAogCiAKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRl
c3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHR0ZXN0LnB5CmluZGV4IDMxYjI0NTYxMmJlMC4uMGNkNzJlMjg1YjAwIDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2MvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHR0ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKQEAgLTEsOSArMSw5IEBACiBpbXBvcnQgb3MKIGlt
cG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCi1mcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2Ug
aW1wb3J0IHVybGpvaW4KIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0Ci1mcm9t
IHNpeCBpbXBvcnQgaXRlcml0ZW1zLCBzdHJpbmdfdHlwZXMKK2Zyb20gdHlwaW5nIGltcG9ydCBB
bnksIENsYXNzVmFyLCBEaWN0LCBUeXBlCitmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9p
bgogCiBmcm9tIC53cHRtYW5pZmVzdC5wYXJzZXIgaW1wb3J0IGF0b21zCiAKQEAgLTgzLDcgKzgz
LDcgQEAgZGVmIGdldF9ydW5faW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0LCAqKmt3YXJncyk6
CiAgICAgcmV0dXJuIFJ1bkluZm8obWV0YWRhdGFfcm9vdCwgcHJvZHVjdCwgKiprd2FyZ3MpCiAK
IAotY2xhc3MgUnVuSW5mbyhkaWN0KToKK2NsYXNzIFJ1bkluZm8oRGljdFtzdHIsIEFueV0pOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRhZGF0YV9yb290LCBwcm9kdWN0LCBkZWJ1ZywKICAg
ICAgICAgICAgICAgICAgYnJvd3Nlcl92ZXJzaW9uPU5vbmUsCiAgICAgICAgICAgICAgICAgIGJy
b3dzZXJfY2hhbm5lbD1Ob25lLApAQCAtMTUwLDIyICsxNTAsMjggQEAgZGVmIHNlcnZlcl9wcm90
b2NvbChtYW5pZmVzdF9pdGVtKToKIAogY2xhc3MgVGVzdChvYmplY3QpOgogCi0gICAgcmVzdWx0
X2NscyA9IE5vbmUKLSAgICBzdWJ0ZXN0X3Jlc3VsdF9jbHMgPSBOb25lCi0gICAgdGVzdF90eXBl
ID0gTm9uZQorICAgIHJlc3VsdF9jbHMgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW1R5cGVbUmVz
dWx0XV0KKyAgICBzdWJ0ZXN0X3Jlc3VsdF9jbHMgPSBOb25lICAjIHR5cGU6IENsYXNzVmFyW1R5
cGVbU3VidGVzdFJlc3VsdF1dCisgICAgdGVzdF90eXBlID0gTm9uZSAgIyB0eXBlOiBDbGFzc1Zh
cltzdHJdCiAKICAgICBkZWZhdWx0X3RpbWVvdXQgPSAxMCAgIyBzZWNvbmRzCiAgICAgbG9uZ190
aW1lb3V0ID0gNjAgICMgc2Vjb25kcwogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jv
b3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKLSAgICAgICAgICAgICAg
ICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHByb3RvY29sPSJodHRwIiwgcXVpYz1GYWxzZSk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVy
aXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9u
ZSwgcGF0aD1Ob25lLCBwcm90b2NvbD0iaHR0cCIsIHN1YmRvbWFpbj1GYWxzZSwKKyAgICAgICAg
ICAgICAgICAgcXVpYz1GYWxzZSk6CisgICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFzZQog
ICAgICAgICBzZWxmLnRlc3RzX3Jvb3QgPSB0ZXN0c19yb290CiAgICAgICAgIHNlbGYudXJsID0g
dXJsCiAgICAgICAgIHNlbGYuX2luaGVyaXRfbWV0YWRhdGEgPSBpbmhlcml0X21ldGFkYXRhCiAg
ICAgICAgIHNlbGYuX3Rlc3RfbWV0YWRhdGEgPSB0ZXN0X21ldGFkYXRhCiAgICAgICAgIHNlbGYu
dGltZW91dCA9IHRpbWVvdXQgaWYgdGltZW91dCBpcyBub3QgTm9uZSBlbHNlIHNlbGYuZGVmYXVs
dF90aW1lb3V0CiAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKLSAgICAgICAgc2VsZi5lbnZpcm9u
bWVudCA9IHsicHJvdG9jb2wiOiBwcm90b2NvbCwgInByZWZzIjogc2VsZi5wcmVmcywgInF1aWMi
OiBxdWljfQorICAgICAgICBzZWxmLnN1YmRvbWFpbiA9IHN1YmRvbWFpbgorICAgICAgICBzZWxm
LmVudmlyb25tZW50ID0geyJ1cmxfYmFzZSI6IHVybF9iYXNlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJwcm90b2NvbCI6IHByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJwcmVmcyI6IHNlbGYucHJlZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInF1
aWMiOiBxdWljfQogCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CiAgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKG90aGVyLCBUZXN0KToKQEAgLTE4NCwxMyArMTkwLDE1IEBAIGNsYXNzIFRl
c3Qob2JqZWN0KToKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZnJvbV9tYW5pZmVzdChjbHMs
IG1hbmlmZXN0X2ZpbGUsIG1hbmlmZXN0X2l0ZW0sIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0
YWRhdGEpOgogICAgICAgICB0aW1lb3V0ID0gY2xzLmxvbmdfdGltZW91dCBpZiBtYW5pZmVzdF9p
dGVtLnRpbWVvdXQgPT0gImxvbmciIGVsc2UgY2xzLmRlZmF1bHRfdGltZW91dAotICAgICAgICBy
ZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgcmV0dXJuIGNscyht
YW5pZmVzdF9maWxlLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUu
dGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9pdGVtLnVybCwKICAgICAg
ICAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgIHRlc3Rf
bWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAogICAgICAgICAg
ICAgICAgICAgIHBhdGg9b3MucGF0aC5qb2luKG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwgbWFu
aWZlc3RfaXRlbS5wYXRoKSwKLSAgICAgICAgICAgICAgICAgICBwcm90b2NvbD1zZXJ2ZXJfcHJv
dG9jb2wobWFuaWZlc3RfaXRlbSkpCisgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w9c2VydmVy
X3Byb3RvY29sKG1hbmlmZXN0X2l0ZW0pLAorICAgICAgICAgICAgICAgICAgIHN1YmRvbWFpbj1t
YW5pZmVzdF9pdGVtLnN1YmRvbWFpbikKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBpZChzZWxm
KToKQEAgLTI5OSw3ICszMDcsNyBAQCBjbGFzcyBUZXN0KG9iamVjdCk6CiAgICAgICAgIHJ2ID0g
e30KICAgICAgICAgZm9yIG1ldGEgaW4gc2VsZi5pdGVybWV0YShOb25lKToKICAgICAgICAgICAg
IHRocmVzaG9sZCA9IG1ldGEubGVha190aHJlc2hvbGQKLSAgICAgICAgICAgIGZvciBrZXksIHZh
bHVlIGluIGl0ZXJpdGVtcyh0aHJlc2hvbGQpOgorICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUg
aW4gdGhyZXNob2xkLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgaWYga2V5IG5vdCBpbiBydjoK
ICAgICAgICAgICAgICAgICAgICAgcnZba2V5XSA9IHZhbHVlCiAgICAgICAgIHJldHVybiBydgpA
QCAtMzQxLDcgKzM0OSw3IEBAIGNsYXNzIFRlc3Qob2JqZWN0KToKIAogICAgICAgICB0cnk6CiAg
ICAgICAgICAgICBleHBlY3RlZCA9IG1ldGFkYXRhLmdldCgiZXhwZWN0ZWQiKQotICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UoZXhwZWN0ZWQsIHN0cik6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVj
dGVkCiAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWQsIGxpc3QpOgogICAgICAg
ICAgICAgICAgIHJldHVybiBleHBlY3RlZFswXQpAQCAtMzkzLDExICs0MDEsMTEgQEAgY2xhc3Mg
VGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IFRlc3RoYXJu
ZXNzU3VidGVzdFJlc3VsdAogICAgIHRlc3RfdHlwZSA9ICJ0ZXN0aGFybmVzcyIKIAotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3Rf
bWV0YWRhdGEsCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1
cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgIHRp
bWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCBwcm90b2NvbD0iaHR0cCIsIHRlc3Rkcml2ZXI9RmFsc2Us
Ci0gICAgICAgICAgICAgICAgIGpzc2hlbGw9RmFsc2UsIHNjcmlwdHM9Tm9uZSwgcXVpYz1GYWxz
ZSk6Ci0gICAgICAgIFRlc3QuX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0
X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0aW1lb3V0LAotICAgICAgICAgICAgICAgICAgICAg
IHBhdGgsIHByb3RvY29sLCBxdWljKQorICAgICAgICAgICAgICAgICBqc3NoZWxsPUZhbHNlLCBz
Y3JpcHRzPU5vbmUsIHN1YmRvbWFpbj1GYWxzZSwgcXVpYz1GYWxzZSk6CisgICAgICAgIFRlc3Qu
X19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSwgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBw
cm90b2NvbCwgc3ViZG9tYWluLCBxdWljKQogCiAgICAgICAgIHNlbGYudGVzdGRyaXZlciA9IHRl
c3Rkcml2ZXIKICAgICAgICAgc2VsZi5qc3NoZWxsID0ganNzaGVsbApAQCAtNDEyLDcgKzQyMCw4
IEBAIGNsYXNzIFRlc3RoYXJuZXNzVGVzdChUZXN0KToKICAgICAgICAgc2NyaXB0X21ldGFkYXRh
ID0gbWFuaWZlc3RfaXRlbS5zY3JpcHRfbWV0YWRhdGEgb3IgW10KICAgICAgICAgc2NyaXB0cyA9
IFt2IGZvciAoaywgdikgaW4gc2NyaXB0X21ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgaWYg
ayA9PSAic2NyaXB0Il0KLSAgICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9maWxlLnRlc3RzX3Jv
b3QsCisgICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAg
ICAgICAgICAgICBtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAg
bWFuaWZlc3RfaXRlbS51cmwsCiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0YSwK
ICAgICAgICAgICAgICAgICAgICB0ZXN0X21ldGFkYXRhLApAQCAtNDIyLDYgKzQzMSw3IEBAIGNs
YXNzIFRlc3RoYXJuZXNzVGVzdChUZXN0KToKICAgICAgICAgICAgICAgICAgICB0ZXN0ZHJpdmVy
PXRlc3Rkcml2ZXIsCiAgICAgICAgICAgICAgICAgICAganNzaGVsbD1qc3NoZWxsLAogICAgICAg
ICAgICAgICAgICAgIHNjcmlwdHM9c2NyaXB0cywKKyAgICAgICAgICAgICAgICAgICBzdWJkb21h
aW49bWFuaWZlc3RfaXRlbS5zdWJkb21haW4sCiAgICAgICAgICAgICAgICAgICAgcXVpYz1xdWlj
KQogCiAgICAgQHByb3BlcnR5CkBAIC00NTIsMTEgKzQ2MiwxMSBAQCBjbGFzcyBSZWZ0ZXN0VGVz
dChUZXN0KToKICAgICByZXN1bHRfY2xzID0gUmVmdGVzdFJlc3VsdAogICAgIHRlc3RfdHlwZSA9
ICJyZWZ0ZXN0IgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5o
ZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgcmVmZXJlbmNlcywKLSAgICAgICAgICAgICAg
ICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHZpZXdwb3J0X3NpemU9Tm9uZSwgZHBpPU5vbmUs
IGZ1enp5PU5vbmUsIHByb3RvY29sPSJodHRwIiwKLSAgICAgICAgICAgICAgICAgcXVpYz1GYWxz
ZSk6Ci0gICAgICAgIFRlc3QuX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0
X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0aW1lb3V0LAotICAgICAgICAgICAgICAgICAgICAg
IHBhdGgsIHByb3RvY29sLCBxdWljKQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwg
dGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVu
Y2VzLAorICAgICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRf
c2l6ZT1Ob25lLCBkcGk9Tm9uZSwgZnV6enk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgcHJvdG9j
b2w9Imh0dHAiLCBzdWJkb21haW49RmFsc2UsIHF1aWM9RmFsc2UpOgorICAgICAgICBUZXN0Ll9f
aW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEs
IHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgcHJv
dG9jb2wsIHN1YmRvbWFpbiwgcXVpYykKIAogICAgICAgICBmb3IgXywgcmVmX3R5cGUgaW4gcmVm
ZXJlbmNlczoKICAgICAgICAgICAgIGlmIHJlZl90eXBlIG5vdCBpbiAoIj09IiwgIiE9Iik6CkBA
IC00ODYsMTMgKzQ5NiwxNSBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKIAogICAgICAgICB1
cmwgPSBtYW5pZmVzdF90ZXN0LnVybAogCi0gICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3RfZmls
ZS50ZXN0c19yb290LAorICAgICAgICBub2RlID0gY2xzKG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2Us
CisgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAg
ICAgICAgICAgIG1hbmlmZXN0X3Rlc3QudXJsLAogICAgICAgICAgICAgICAgICAgIGluaGVyaXRf
bWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAg
ICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCiAgICAgICAg
ICAgICAgICAgICAgcGF0aD1tYW5pZmVzdF90ZXN0LnBhdGgsCisgICAgICAgICAgICAgICAgICAg
c3ViZG9tYWluPW1hbmlmZXN0X3Rlc3Quc3ViZG9tYWluLAogICAgICAgICAgICAgICAgICAgIHF1
aWM9cXVpYywKICAgICAgICAgICAgICAgICAgICAqKmNscy5jbHNfa3dhcmdzKG1hbmlmZXN0X3Rl
c3QpKQogCkBAIC01MDcsMjAgKzUxOSwyMyBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKICAg
ICAgICAgIyBQZXIgdGhlIGxvZ2ljIGRvY3VtZW50ZWQgYWJvdmUsIHRoaXMgbWVhbnMgdGhhdCBu
b25lIG9mIHRoZSBtaXNtYXRjaGVzIHByb3ZpZGVkIG1hdGNoLAogICAgICAgICBtaXNtYXRjaF93
YWxrID0gTm9uZQogICAgICAgICBpZiByZWZzX2J5X3R5cGVbIiE9Il06Ci0gICAgICAgICAgICBt
aXNtYXRjaF93YWxrID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAorICAg
ICAgICAgICAgbWlzbWF0Y2hfd2FsayA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUudXJsX2Jh
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmls
ZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
ZnNfYnlfdHlwZVsiIT0iXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKQogICAgICAgICAgICAg
Y21wX3JlZiA9IG1pc21hdGNoX3dhbGsKICAgICAgICAgICAgIGZvciByZWZfdXJsIGluIHJlZnNf
YnlfdHlwZVsiIT0iXVsxOl06Ci0gICAgICAgICAgICAgICAgY21wX3NlbGYgPSBSZWZ0ZXN0VGVz
dChtYW5pZmVzdF9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgY21wX3NlbGYgPSBS
ZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10pCiAgICAg
ICAgICAgICAgICAgY21wX3JlZi5yZWZlcmVuY2VzLmFwcGVuZCgoY21wX3NlbGYsICIhPSIpKQot
ICAgICAgICAgICAgICAgIGNtcF9yZWYgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF9maWxlLnRlc3Rz
X3Jvb3QsCisgICAgICAgICAgICAgICAgY21wX3JlZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2Zp
bGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlm
ZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCkBAIC01MzYsNyArNTUx
LDggQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgICAgICAgICAjIEZvciBlYWNoID09
IHJlZiwgYWRkIGEgcmVmZXJlbmNlIHRvIHRoaXMgbm9kZSB3aG9zZSB0YWlsIGlzIHRoZSBtaXNt
YXRjaCBsaXN0LgogICAgICAgICAgICAgIyBQZXIgdGhlIGxvZ2ljIGRvY3VtZW50ZWQgYWJvdmUs
IHRoaXMgbWVhbnMgYW55IG9uZSBvZiB0aGUgbWF0Y2hlcyBtdXN0IHBhc3MgcGx1cyBhbGwgdGhl
IG1pc21hdGNoZXMuCiAgICAgICAgICAgICBmb3IgcmVmX3VybCBpbiByZWZzX2J5X3R5cGVbIj09
Il06Ci0gICAgICAgICAgICAgICAgcmVmID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfZmlsZS50ZXN0
c19yb290LAorICAgICAgICAgICAgICAgIHJlZiA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X2ZpbGUu
dXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmls
ZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl91cmws
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTm9uZSwKQEAgLTYwNSwxMiArNjIxLDEyIEBAIGNsYXNzIFJlZnRl
c3RUZXN0KFRlc3QpOgogY2xhc3MgUHJpbnRSZWZ0ZXN0VGVzdChSZWZ0ZXN0VGVzdCk6CiAgICAg
dGVzdF90eXBlID0gInByaW50LXJlZnRlc3QiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVz
dHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2Vz
LAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhl
cml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2VzLAogICAgICAgICAgICAgICAg
ICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwg
ZnV6enk9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcGFnZV9yYW5nZXM9Tm9uZSwgcHJvdG9jb2w9
Imh0dHAiLCBxdWljPUZhbHNlKToKLSAgICAgICAgc3VwZXIoUHJpbnRSZWZ0ZXN0VGVzdCwgc2Vs
ZikuX19pbml0X18odGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFk
YXRhLAorICAgICAgICAgICAgICAgICBwYWdlX3Jhbmdlcz1Ob25lLCBwcm90b2NvbD0iaHR0cCIs
IHN1YmRvbWFpbj1GYWxzZSwgcXVpYz1GYWxzZSk6CisgICAgICAgIHN1cGVyKFByaW50UmVmdGVz
dFRlc3QsIHNlbGYpLl9faW5pdF9fKHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRf
bWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMsIHRpbWVvdXQsIHBhdGgsIHZpZXdwb3J0X3NpemUs
IGRwaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnV6
enksIHByb3RvY29sLCBxdWljPXF1aWMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1enp5LCBwcm90b2NvbCwgc3ViZG9tYWluPXN1YmRvbWFpbiwgcXVp
Yz1xdWljKQogICAgICAgICBzZWxmLl9wYWdlX3JhbmdlcyA9IHBhZ2VfcmFuZ2VzCiAKICAgICBA
Y2xhc3NtZXRob2QKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvYWNjZXB0X2FsZXJ0L2FjY2VwdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWNjZXB0X2FsZXJ0L2FjY2VwdC5weQppbmRleCA3MTFh
ZDVhZjc5ZjIuLmI4MzQ3N2U1Y2E3MiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9hY2NlcHRfYWxlcnQvYWNjZXB0LnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWNjZXB0X2FsZXJ0L2FjY2Vw
dC5weQpAQCAtMSw3ICsxLDkgQEAKK2ltcG9ydCBweXRlc3QKKwogZnJvbSB3ZWJkcml2ZXIuZXJy
b3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9y
dCB3YWl0X2Zvcl9uZXdfaGFuZGxlCiBmcm9tIHRlc3RzLnN1cHBvcnQuc3luYyBpbXBvcnQgUG9s
bAogCiAKQEAgLTEwLDcgKzEyLDcgQEAgZGVmIGFjY2VwdF9hbGVydChzZXNzaW9uKToKICAgICAg
ICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vYWxlcnQvYWNjZXB0Ii5mb3JtYXQoKip2
YXJzKHNlc3Npb24pKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24s
IHVybCk6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxzY3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwv
c2NyaXB0PiIpCiAKICAgICByZXNwb25zZSA9IGFjY2VwdF9hbGVydChzZXNzaW9uKQpAQCAtMzMs
MjcgKzM1LDQxIEBAIGRlZiB0ZXN0X25vX3VzZXJfcHJvbXB0KHNlc3Npb24pOgogICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggYWxlcnQiKQogCiAKLWRlZiB0ZXN0X2FjY2VwdF9h
bGVydChzZXNzaW9uKToKK2RlZiB0ZXN0X2FjY2VwdF9hbGVydChzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5hbGVydCgnSGVsbG8nKTs8
L3NjcmlwdD4iKQorCiAgICAgcmVzcG9uc2UgPSBhY2NlcHRfYWxlcnQoc2Vzc2lvbikKICAgICBh
c3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKIAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hB
bGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dAorCiAKLWRlZiB0ZXN0
X2FjY2VwdF9jb25maXJtKHNlc3Npb24pOgorZGVmIHRlc3RfYWNjZXB0X2NvbmZpcm0oc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cucmVz
dWx0ID0gd2luZG93LmNvbmZpcm0oJ0hlbGxvJyk7PC9zY3JpcHQ+IikKKwogICAgIHJlc3BvbnNl
ID0gYWNjZXB0X2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAgICBz
ZXNzaW9uLmFsZXJ0LnRleHQKKwogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJy
ZXR1cm4gd2luZG93LnJlc3VsdCIpIGlzIFRydWUKIAogCi1kZWYgdGVzdF9hY2NlcHRfcHJvbXB0
KHNlc3Npb24pOgorZGVmIHRlc3RfYWNjZXB0X3Byb21wdChzZXNzaW9uLCBpbmxpbmUpOgogICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8c2NyaXB0PgogICAgICAgICAgIHdp
bmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdFbnRlciBZb3VyIE5hbWU6ICcsICdGZWRlcmVy
Jyk7CiAgICAgICAgIDwvc2NyaXB0PgogICAgICAgICAiIiIpCisKICAgICByZXNwb25zZSA9IGFj
Y2VwdF9hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lv
bi5hbGVydC50ZXh0CisKICAgICBhc3NlcnQgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJu
IHdpbmRvdy5yZXN1bHQiKSA9PSAiRmVkZXJlciIKIAogCkBAIC02OCwzICs4NCwyNyBAQCBkZWYg
dGVzdF91bmV4cGVjdGVkX2FsZXJ0KHNlc3Npb24pOgogCiAgICAgcmVzcG9uc2UgPSBhY2NlcHRf
YWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAgICAgIHNlc3Npb24uYWxl
cnQudGV4dAorCisKK2RlZiB0ZXN0X2FjY2VwdF9pbl9wb3B1cF93aW5kb3coc2Vzc2lvbiwgaW5s
aW5lKToKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKKworICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgorICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdh
Ym91dDpibGFuaycsICdfYmxhbmsnLCAnd2lkdGg9NTAwOyBoZWlnaHQ9MjAwO3Jlc2l6YWJsZT15
ZXMnKTsiPm9wZW48L2J1dHRvbj4KKyAgICAgICAgIiIiKQorICAgIGJ1dHRvbiA9IHNlc3Npb24u
ZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKKyAgICBidXR0b24uY2xpY2soKQorCisgICAg
c2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNzaW9uLCBvcmln
X2hhbmRsZXMpCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCisgICAgICAgIDxzY3JpcHQ+
d2luZG93LmFsZXJ0KCJIZWxsbyIpPC9zY3JpcHQ+CisgICAgICAgICIiIikKKworICAgIHJlc3Bv
bnNlID0gYWNjZXB0X2FsZXJ0KHNlc3Npb24pCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Up
CisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAg
ICBzZXNzaW9uLmFsZXJ0LnRleHQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2FkZF9jb29raWUvYWRkLnB5CmluZGV4IGYwNTE1
Mzc5MDI2MS4uM2ExOTQzMmZjNmEyIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2FkZF9jb29raWUvYWRkLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYWRkX2Nvb2tpZS9hZGQucHkKQEAgLTEs
MTMgKzEsMTMgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUsIHRpbWVkZWx0YQotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQogCiBmcm9tIHdlYmRyaXZl
ci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQu
aGVscGVycyBpbXBvcnQgY2xlYXJfYWxsX2Nvb2tpZXMKIAorCiBkZWYgYWRkX2Nvb2tpZShzZXNz
aW9uLCBjb29raWUpOgogICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAogICAgICAg
ICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9jb29raWUiLmZvcm1hdCgqKnZhcnMoc2Vz
c2lvbikpLApAQCAtNTQsNiArNTQsNDMgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChz
ZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1
Y2ggd2luZG93IikKIAogCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgInBhZ2UiLAor
ICAgIFsKKyAgICAgICAgImFib3V0OmJsYW5rIiwKKyAgICAgICAgImJsb2I6Zm9vL2JhciIsCisg
ICAgICAgICJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LDxwPmZvbzwvcD4iLAorICAgICAg
ICAiZmlsZTovLy9mb28vYmFyIiwKKyAgICAgICAgImZ0cDovL2V4YW1wbGUub3JnIiwKKyAgICAg
ICAgImphdmFzY3JpcHQ6Zm9vIiwKKyAgICAgICAgIndzOi8vZXhhbXBsZS5vcmciLAorICAgICAg
ICAid3NzOi8vZXhhbXBsZS5vcmciLAorICAgIF0sCisgICAgaWRzPVsKKyAgICAgICAgImFib3V0
IiwKKyAgICAgICAgImJsb2IiLAorICAgICAgICAiZGF0YSIsCisgICAgICAgICJmaWxlIiwKKyAg
ICAgICAgImZ0cCIsCisgICAgICAgICJqYXZhc2NyaXB0IiwKKyAgICAgICAgIndlYnNvY2tldCIs
CisgICAgICAgICJzZWN1cmUgd2Vic29ja2V0IiwKKyAgICBdLAorKQorZGVmIHRlc3RfY29va2ll
X3Vuc3VwcG9ydGVkX3NjaGVtZShzZXNzaW9uLCBwYWdlKToKKyAgICBuZXdfY29va2llID0gewor
ICAgICAgICAibmFtZSI6ICJoZWxsbyIsCisgICAgICAgICJ2YWx1ZSI6ICJ3b3JsZCIsCisgICAg
ICAgICJkb21haW4iOiBwYWdlLAorICAgICAgICAicGF0aCI6ICIvIiwKKyAgICAgICAgImh0dHBP
bmx5IjogRmFsc2UsCisgICAgICAgICJzZWN1cmUiOiBGYWxzZQorICAgIH0KKworICAgIHJlc3Vs
dCA9IGFkZF9jb29raWUoc2Vzc2lvbiwgbmV3X2Nvb2tpZSkKKyAgICBhc3NlcnRfZXJyb3IocmVz
dWx0LCAiaW52YWxpZCBjb29raWUgZG9tYWluIikKKworCiBkZWYgdGVzdF9hZGRfZG9tYWluX2Nv
b2tpZShzZXNzaW9uLCB1cmwsIHNlcnZlcl9jb25maWcpOgogICAgIG5ld19jb29raWUgPSB7CiAg
ICAgICAgICJuYW1lIjogImhlbGxvIiwKQEAgLTcyLDExICsxMDksMTEgQEAgZGVmIHRlc3RfYWRk
X2RvbWFpbl9jb29raWUoc2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnKToKIAogICAgIGNvb2tp
ZSA9IHNlc3Npb24uY29va2llcygiaGVsbG8iKQogICAgIGFzc2VydCAiZG9tYWluIiBpbiBjb29r
aWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRvbWFpbiJdLCB0ZXh0X3R5cGUpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgc3RyKQogICAgIGFzc2VydCAi
bmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHRl
eHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgc3RyKQogICAg
IGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsi
dmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsidmFsdWUi
XSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tpZVsibmFtZSJdID09ICJoZWxsbyIKICAgICBhc3Nl
cnQgY29va2llWyJ2YWx1ZSJdID09ICJ3b3JsZCIKQEAgLTEwMiwxMSArMTM5LDExIEBAIGRlZiB0
ZXN0X2FkZF9jb29raWVfZm9yX2lwKHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZywgY29uZmln
dXJhdGlvbik6CiAKICAgICBjb29raWUgPSBzZXNzaW9uLmNvb2tpZXMoImhlbGxvIikKICAgICBh
c3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFt
ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0
cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
InZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgImRvbWFpbiIgaW4gY29va2llCi0gICAgYXNzZXJ0
IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsiZG9tYWluIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUi
XSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAid29ybGQiCkBAIC0x
MzEsOSArMTY4LDkgQEAgZGVmIHRlc3RfYWRkX25vbl9zZXNzaW9uX2Nvb2tpZShzZXNzaW9uLCB1
cmwpOgogCiAgICAgY29va2llID0gc2Vzc2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0
ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwg
dGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAg
ICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2ll
WyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1
ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJleHBpcnkiIGluIGNvb2tpZQogICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsiZXhwaXJ5Il0sIGludCkKIApAQCAtMTU2LDkgKzE5Myw5IEBAIGRlZiB0
ZXN0X2FkZF9zZXNzaW9uX2Nvb2tpZShzZXNzaW9uLCB1cmwpOgogCiAgICAgY29va2llID0gc2Vz
c2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBp
c2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29v
a2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCBzdHIpCiAgICAgaWYgImV4cGly
eSIgaW4gY29va2llOgogICAgICAgICBhc3NlcnQgY29va2llLmdldCgiZXhwaXJ5IikgaXMgTm9u
ZQogCkBAIC0xODEsMTEgKzIxOCwxMSBAQCBkZWYgdGVzdF9hZGRfc2Vzc2lvbl9jb29raWVfd2l0
aF9sZWFkaW5nX2RvdF9jaGFyYWN0ZXJfaW5fZG9tYWluKHNlc3Npb24sIHVybCwgcwogCiAgICAg
Y29va2llID0gc2Vzc2lvbi5jb29raWVzKCJoZWxsbyIpCiAgICAgYXNzZXJ0ICJuYW1lIiBpbiBj
b29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5hbWUiXSwgdGV4dF90eXBlKQor
ICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJ2
YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCB0
ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJ2YWx1ZSJdLCBzdHIpCiAg
ICAgYXNzZXJ0ICJkb21haW4iIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tp
ZVsiZG9tYWluIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbImRv
bWFpbiJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29va2llWyJuYW1lIl0gPT0gImhlbGxvIgogICAg
IGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gIndvcmxkIgpAQCAtMjA5LDExICsyNDYsMTEgQEAg
ZGVmIHRlc3RfYWRkX2Nvb2tpZV93aXRoX3ZhbGlkX3NhbWVzaXRlX2ZsYWcoc2Vzc2lvbiwgdXJs
LCBzYW1lX3NpdGUpOgogCiAgICAgY29va2llID0gc2Vzc2lvbi5jb29raWVzKCJoZWxsbyIpCiAg
ICAgYXNzZXJ0ICJuYW1lIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVb
Im5hbWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJd
LCBzdHIpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoY29va2llWyJ2YWx1ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29v
a2llWyJ2YWx1ZSJdLCBzdHIpCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4gY29va2llCi0gICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAgICBhc3NlcnQgY29v
a2llWyJuYW1lIl0gPT0gImhlbGxvIgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gIndv
cmxkIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9iYWNrL2JhY2sucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2JhY2svYmFjay5weQppbmRleCA5Y2E1MmU4ZjIyM2UuLjg2YWQyMjc4YWIzOSAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iYWNr
L2JhY2sucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9iYWNrL2JhY2sucHkKQEAgLTEsNCArMSw2IEBACi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKK2ltcG9ydCBweXRlc3QKK2Zyb20gd2ViZHJpdmVyIGltcG9ydCBlcnJv
cgorCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3Nl
cnRfc3VjY2VzcwogCiAKQEAgLTcsNyArOSw3IEBAIGRlZiBiYWNrKHNlc3Npb24pOgogICAgICAg
ICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9iYWNrIi5mb3JtYXQoKip2YXJzKHNlc3Np
b24pKSkKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRl
c3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8ZGl2PiIpCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPiIpCiAKQEAg
LTMxLDcgKzMzLDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfaGlzdG9yeShzZXNzaW9uKToKICAg
ICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKIAogCi1kZWYgdGVzdF9kYXRhX3VybHMoc2Vzc2lv
bik6CitkZWYgdGVzdF9kYXRhX3VybHMoc2Vzc2lvbiwgaW5saW5lKToKICAgICB0ZXN0X3BhZ2Vz
ID0gWwogICAgICAgICBpbmxpbmUoIjxwIGlkPTE+IiksCiAgICAgICAgIGlubGluZSgiPHAgaWQ9
Mj4iKSwKQEAgLTQ2LDcgKzQ4LDcgQEAgZGVmIHRlc3RfZGF0YV91cmxzKHNlc3Npb24pOgogICAg
IGFzc2VydCBzZXNzaW9uLnVybCA9PSB0ZXN0X3BhZ2VzWzBdCiAKIAotZGVmIHRlc3RfZGlzbWlz
c2VkX2JlZm9yZXVubG9hZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxv
YWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICB1cmxfYmVmb3JldW5sb2FkID0gaW5saW5lKCIiIgog
ICAgICAgPGlucHV0IHR5cGU9InRleHQiPgogICAgICAgPHNjcmlwdD4KQEAgLTg4LDcgKzkwLDcg
QEAgZGVmIHRlc3RfZnJhZ21lbnRzKHNlc3Npb24sIHVybCk6CiAgICAgYXNzZXJ0IHNlc3Npb24u
dXJsID09IHRlc3RfcGFnZXNbMF0KIAogCi1kZWYgdGVzdF9oaXN0b3J5X3B1c2hzdGF0ZShzZXNz
aW9uLCB1cmwpOgorZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgaW5saW5lKToK
ICAgICBwdXNoc3RhdGVfcGFnZSA9IGlubGluZSgiIiIKICAgICAgIDxzY3JpcHQ+CiAgICAgICAg
IGZ1bmN0aW9uIHB1c2hTdGF0ZSgpIHsKQEAgLTEwOSwzICsxMTEsNDIgQEAgZGVmIHRlc3RfaGlz
dG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgdXJsKToKIAogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9
PSBwdXNoc3RhdGVfcGFnZQogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1
cm4gaGlzdG9yeS5zdGF0ZTsiKSBpcyBOb25lCisKKworZGVmIHRlc3RfcmVtb3ZlZF9pZnJhbWUo
c2Vzc2lvbiwgdXJsLCBpbmxpbmUpOgorICAgIHBhZ2UgPSBpbmxpbmUoIjxwPmZvbyIpCisKKyAg
ICBzZXNzaW9uLnVybCA9IHBhZ2UKKyAgICBzZXNzaW9uLnVybCA9IHVybCgiL3dlYmRyaXZlci90
ZXN0cy9zdXBwb3J0L2h0bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbCIpCisKKyAgICBzdWJmcmFt
ZSA9IHNlc3Npb24uZmluZC5jc3MoIiNzdWItZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgc2Vzc2lv
bi5zd2l0Y2hfZnJhbWUoc3ViZnJhbWUpCisKKyAgICByZXNwb25zZSA9IGJhY2soc2Vzc2lvbikK
KyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGFzc2VydCBzZXNzaW9uLnVybCA9
PSBwYWdlCisKKworIyBDYXBhYmlsaXR5IG5lZWRlZCBhcyBsb25nIGFzIG5vIHZhbGlkIGNlcnRp
ZmljYXRlIGlzIGF2YWlsYWJsZToKKyMgICBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9pc3N1ZXMvMjg4NDcKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJhY2Nl
cHRJbnNlY3VyZUNlcnRzIjogVHJ1ZX0pCitkZWYgdGVzdF9jcm9zc19vcmlnaW4oc2Vzc2lvbiwg
dXJsKToKKyAgICBiYXNlX3BhdGggPSAoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL3N1
YmZyYW1lLmh0bWwiICsKKyAgICAgICAgICAgICAgICAgIj9waXBlPWhlYWRlcihDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSxzYW1lLW9yaWdpbiIpCisgICAgZmlyc3RfcGFnZSA9IHVybChiYXNl
X3BhdGgsIHByb3RvY29sPSJodHRwcyIpCisgICAgc2Vjb25kX3BhZ2UgPSB1cmwoYmFzZV9wYXRo
LCBwcm90b2NvbD0iaHR0cHMiLCBkb21haW49ImFsdCIpCisKKyAgICBzZXNzaW9uLnVybCA9IGZp
cnN0X3BhZ2UKKyAgICBzZXNzaW9uLnVybCA9IHNlY29uZF9wYWdlCisKKyAgICBlbGVtID0gc2Vz
c2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0gYmFj
ayhzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNl
c3Npb24udXJsID09IGZpcnN0X3BhZ2UKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhlcnJvci5T
dGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgorICAgICAgICBlbGVtLmNsaWNrKCkKKyAg
ICBlbGVtID0gc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmFjay91c2Vy
X3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2JhY2svdXNlcl9wcm9tcHRzLnB5CmluZGV4IDcxMjFmN2M2YjJhNi4uOWQwNGYwZjRhYjEyIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Jh
Y2svdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvYmFjay91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQg
cHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9n
X2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9y
dC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBiYWNrKHNlc3Npb24pOgpAQCAtMTIsNyAr
MTEsNyBAQCBkZWYgYmFjayhzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBwYWdl
cyhzZXNzaW9uKToKK2RlZiBwYWdlcyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHBhZ2VzID0gWwog
ICAgICAgICBpbmxpbmUoIjxwIGlkPTE+IiksCiAgICAgICAgIGlubGluZSgiPHAgaWQ9Mj4iKSwK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
YmlkaS9uZXdfc2Vzc2lvbi9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvYmlkaS9uZXdfc2Vzc2lvbi9fX2luaXRfXy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRpL25ld19zZXNz
aW9uL2Nvbm5lY3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2JpZGkvbmV3X3Nlc3Npb24vY29ubmVjdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjM1N2RhMzFiYTg2MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvYmlkaS9uZXdfc2Vzc2lvbi9jb25u
ZWN0LnB5CkBAIC0wLDAgKzEsMzQgQEAKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBhc3luY2lvCitp
bXBvcnQgd2Vic29ja2V0cworaW1wb3J0IHdlYmRyaXZlcgorCisjIGNsYXNzaWMgc2Vzc2lvbiB0
byBlbmFibGUgYmlkaSBjYXBhYmlsaXR5IG1hbnVhbGx5CisjIEludGVuZGVkIHRvIGJlIHRoZSBm
aXJzdCB0ZXN0IGluIHRoaXMgZmlsZQorQHB5dGVzdC5tYXJrLmFzeW5jaW8KK0BweXRlc3QubWFy
ay5jYXBhYmlsaXRpZXMoeyJ3ZWJTb2NrZXRVcmwiOiBUcnVlfSkKK2FzeW5jIGRlZiB0ZXN0X3dl
YnNvY2tldF91cmxfY29ubmVjdChzZXNzaW9uKToKKyAgICB3ZWJzb2NrZXRfdXJsID0gc2Vzc2lv
bi5jYXBhYmlsaXRpZXNbIndlYlNvY2tldFVybCJdCisgICAgYXN5bmMgd2l0aCB3ZWJzb2NrZXRz
LmNvbm5lY3Qod2Vic29ja2V0X3VybCkgYXMgd2Vic29ja2V0OgorICAgICAgICBhd2FpdCB3ZWJz
b2NrZXQuc2VuZCgiSGVsbG8gd29ybGQhIikKKworIyB0ZXN0IGJpZGlfc2Vzc2lvbiBzZW5kCisj
IHVzaW5nIGJpZGlfc2Vzc2lvbiBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IHRvIHRlc3QgYmlkaQor
QHB5dGVzdC5tYXJrLmFzeW5jaW8KK2FzeW5jIGRlZiB0ZXN0X2JpZGlfc2Vzc2lvbl9zZW5kKGJp
ZGlfc2Vzc2lvbik6CisgICAgYXdhaXQgYmlkaV9zZXNzaW9uLnNlbmRfY29tbWFuZCgidGVzdC50
ZXN0Iiwge30pCisKKyMgYmlkaSBzZXNzaW9uIGZvbGxvd2luZyBhIGJpZGkgc2Vzc2lvbiB3aXRo
IGEgZGlmZmVyZW50IGNhcGFiaWxpdGllcworIyB0byB0ZXN0IHNlc3Npb24gcmVjcmVhdGlvbgor
QHB5dGVzdC5tYXJrLmFzeW5jaW8KK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJhY2NlcHRJ
bnNlY3VyZUNlcnRzIjogVHJ1ZX0pCithc3luYyBkZWYgdGVzdF9iaWRpX3Nlc3Npb25fd2l0aF9k
aWZmZXJlbnRfY2FwYWJpbGl0eShiaWRpX3Nlc3Npb24pOgorICAgIGF3YWl0IGJpZGlfc2Vzc2lv
bi5zZW5kX2NvbW1hbmQoInRlc3QudGVzdCIsIHt9KQorCisjIGNsYXNzaWMgc2Vzc2lvbiBmb2xs
b3dpbmcgYSBiaWRpIHNlc3Npb24gdG8gdGVzdCBzZXNzaW9uCisjIHJlY3JlYXRpb24KKyMgSW50
ZW5kZWQgdG8gYmUgdGhlIGxhc3QgdGVzdCBpbiB0aGlzIGZpbGUgdG8gbWFrZSBzdXJlCisjIGNs
YXNzaWMgc2Vzc2lvbiBpcyBub3QgaW1wYWN0ZWQgYnkgYmlkaSB0ZXN0cworQHB5dGVzdC5tYXJr
LmFzeW5jaW8KK2RlZiB0ZXN0X2NsYXNzaWNfYWZ0ZXJfYmlkaV9zZXNzaW9uKHNlc3Npb24pOgor
ICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShzZXNzaW9uLCB3ZWJkcml2ZXIuYmlkaS5CaWRpU2Vz
c2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvY2xvc2Vfd2luZG93L2Nsb3NlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvY2xvc2UucHkKaW5kZXggNTNhZjU3MzBmODNm
Li43YjM4MmZhOWJiY2IgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvY2xvc2Vfd2luZG93L2Nsb3NlLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvY2xvc2Vfd2luZG93L2Nsb3NlLnB5CkBAIC0y
LDcgKzIsNiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKIAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1
Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBj
bG9zZShzZXNzaW9uKToKQEAgLTQ2LDcgKzQ1LDcgQEAgZGVmIHRlc3RfY2xvc2VfYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uKToKICAgICBhc3NlcnQgbmV3X2hhbmRsZSBub3QgaW4gaGFuZGxlcwog
CiAKLWRlZiB0ZXN0X2Nsb3NlX2Jyb3dzaW5nX2NvbnRleHRfd2l0aF9kaXNtaXNzZWRfYmVmb3Jl
dW5sb2FkX3Byb21wdChzZXNzaW9uKToKK2RlZiB0ZXN0X2Nsb3NlX2Jyb3dzaW5nX2NvbnRleHRf
d2l0aF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkX3Byb21wdChzZXNzaW9uLCBpbmxpbmUpOgogICAg
IG9yaWdpbmFsX2hhbmRsZXMgPSBzZXNzaW9uLmhhbmRsZXMKIAogICAgIG5ld19oYW5kbGUgPSBz
ZXNzaW9uLm5ld193aW5kb3coKQpAQCAtODEsMyArODAsMjMgQEAgZGVmIHRlc3RfY2xvc2VfbGFz
dF9icm93c2luZ19jb250ZXh0KHNlc3Npb24pOgogCiAgICAgIyBXaXRoIG5vIG1vcmUgb3BlbiB0
b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dHMsIHRoZSBzZXNzaW9uIGlzIGNsb3NlZC4KICAgICBz
ZXNzaW9uLnNlc3Npb25faWQgPSBOb25lCisKKworZGVmIHRlc3RfZWxlbWVudF91c2FnZV9hZnRl
cl9jbG9zaW5nX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgaW5saW5lKToKKyAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPHAgaWQ9J2EnPmZvbyIpCisgICAgYSA9IHNlc3Npb24uZmluZC5jc3Mo
InAiLCBhbGw9RmFsc2UpCisgICAgZmlyc3QgPSBzZXNzaW9uLndpbmRvd19oYW5kbGUKKworICAg
IHNlY29uZCA9IHNlc3Npb24ubmV3X3dpbmRvdyh0eXBlX2hpbnQ9InRhYiIpCisgICAgc2Vzc2lv
bi53aW5kb3dfaGFuZGxlID0gc2Vjb25kCisKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAg
aWQ9J2InPm90aGVyIikKKyAgICBiID0gc2Vzc2lvbi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkK
KworICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IGZpcnN0CisgICAgcmVzcG9uc2UgPSBjbG9z
ZShzZXNzaW9uKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydCBsZW4o
c2Vzc2lvbi5oYW5kbGVzKSA9PSAxCisKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBzZWNv
bmQKKyAgICBhc3NlcnQgYi5hdHRyaWJ1dGUoImlkIikgPT0gImIiCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2RlbGV0ZV9zZXNzaW9uL2Rl
bGV0ZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZGVs
ZXRlX3Nlc3Npb24vZGVsZXRlLnB5CmluZGV4IGQwYjRkNzk2MzA4ZS4uYTMwMzJjYzEzNDc1IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rl
bGV0ZV9zZXNzaW9uL2RlbGV0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2RlbGV0ZV9zZXNzaW9uL2RlbGV0ZS5weQpAQCAtMiw3ICsyLDYgQEAg
aW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCiAKIGZyb20gdGVzdHMu
c3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0
LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGRlbGV0ZV9zZXNzaW9uKHNlc3Npb24pOgpA
QCAtMTksNyArMTgsNyBAQCBkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgog
ICAgIHNlc3Npb24uZW5kKCkKIAogCi1kZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkX3By
b21wdChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWRfcHJvbXB0KHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCI+CiAgICAgICA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9kaXNtaXNzX2FsZXJ0L2Rpc21pc3MucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2Rpc21pc3NfYWxl
cnQvZGlzbWlzcy5weQppbmRleCBkYTY1YmFjMzg4ZGYuLmEyOGRlYzc2ODc1MCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9kaXNtaXNzX2Fs
ZXJ0L2Rpc21pc3MucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9kaXNtaXNzX2FsZXJ0L2Rpc21pc3MucHkKQEAgLTEsNyArMSw5IEBACitpbXBvcnQg
cHl0ZXN0CisKIGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlv
bgogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3Nl
cnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCitmcm9t
IHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgd2FpdF9mb3JfbmV3X2hhbmRsZQogZnJvbSB0
ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0xMCw3ICsxMiw3IEBAIGRlZiBk
aXNtaXNzX2FsZXJ0KHNlc3Npb24pOgogICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9u
X2lkfS9hbGVydC9kaXNtaXNzIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSkKIAogCi1kZWYgdGVz
dF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIHVybCk6CitkZWYgdGVzdF9udWxsX3Jlc3Bv
bnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxz
Y3JpcHQ+d2luZG93LmFsZXJ0KCdIZWxsbycpOzwvc2NyaXB0PiIpCiAKICAgICByZXNwb25zZSA9
IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKQEAgLTMzLDI4ICszNSw0NSBAQCBkZWYgdGVzdF9ub191
c2VyX3Byb21wdChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IGFsZXJ0IikKIAogCi1kZWYgdGVzdF9kaXNtaXNzX2FsZXJ0KHNlc3Npb24pOgorZGVmIHRlc3Rf
ZGlzbWlzc19hbGVydChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8c2NyaXB0PndpbmRvdy5hbGVydCgnSGVsbG8nKTs8L3NjcmlwdD4iKQorCiAgICAgcmVzcG9u
c2UgPSBkaXNtaXNzX2FsZXJ0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Up
CiAKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoQWxlcnRFeGNlcHRpb24pOgorICAgICAg
ICBzZXNzaW9uLmFsZXJ0LnRleHQKKwogCi1kZWYgdGVzdF9kaXNtaXNzX2NvbmZpcm0oc2Vzc2lv
bik6CitkZWYgdGVzdF9kaXNtaXNzX2NvbmZpcm0oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cucmVzdWx0ID0gd2luZG93LmNvbmZpcm0o
J0hlbGxvJyk7PC9zY3JpcHQ+IikKKwogICAgIHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNz
aW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisK
ICAgICBhc3NlcnQgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdy5yZXN1bHQ7
IikgaXMgRmFsc2UKIAogCi1kZWYgdGVzdF9kaXNtaXNzX3Byb21wdChzZXNzaW9uKToKLSAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cucmVzdWx0ID0gd2luZG93LnByb21w
dCgnRW50ZXIgWW91ciBOYW1lOiAnLCAnRmVkZXJlcicpOzwvc2NyaXB0PiIpCitkZWYgdGVzdF9k
aXNtaXNzX3Byb21wdChzZXNzaW9uLCBpbmxpbmUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCIiIgorICAgICAgICA8c2NyaXB0PndpbmRvdy5yZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdFbnRl
ciBZb3VyIE5hbWU6ICcsICdGZWRlcmVyJyk7PC9zY3JpcHQ+CisgICAgICAgICIiIikKKwogICAg
IHJlc3BvbnNlID0gZGlzbWlzc19hbGVydChzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9uKToK
KyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKICAgICBhc3NlcnQgc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIHdpbmRvdy5yZXN1bHQiKSBpcyBOb25lCiAKIAogZGVmIHRlc3RfdW5l
eHBlY3RlZF9hbGVydChzZXNzaW9uKToKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyBhbGVydCgnSGVsbG8nKTsgfSwgMTAwKTsiKQorCiAgICAgd2Fp
dCA9IFBvbGwoCiAgICAgICAgIHNlc3Npb24sCiAgICAgICAgIHRpbWVvdXQ9NSwKQEAgLTY0LDMg
KzgzLDI3IEBAIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfYWxlcnQoc2Vzc2lvbik6CiAKICAgICByZXNw
b25zZSA9IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4Y2VwdGlvbik6CisgICAg
ICAgIHNlc3Npb24uYWxlcnQudGV4dAorCisKK2RlZiB0ZXN0X2Rpc21pc3NfaW5fcG9wdXBfd2lu
ZG93KHNlc3Npb24sIGlubGluZSk6CisgICAgb3JpZ19oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVz
CisKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKKyAgICAgICAgPGJ1dHRvbiBvbmNsaWNr
PSJ3aW5kb3cub3BlbignYWJvdXQ6YmxhbmsnLCAnX2JsYW5rJywgJ3dpZHRoPTUwMDsgaGVpZ2h0
PTIwMDtyZXNpemFibGU9eWVzJyk7Ij5vcGVuPC9idXR0b24+CisgICAgICAgICIiIikKKyAgICBi
dXR0b24gPSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCisgICAgYnV0dG9u
LmNsaWNrKCkKKworICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IHdhaXRfZm9yX25ld19oYW5k
bGUoc2Vzc2lvbiwgb3JpZ19oYW5kbGVzKQorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgor
ICAgICAgICA8c2NyaXB0PndpbmRvdy5hbGVydCgiSGVsbG8iKTwvc2NyaXB0PgorICAgICAgICAi
IiIpCisKKyAgICByZXNwb25zZSA9IGRpc21pc3NfYWxlcnQoc2Vzc2lvbikKKyAgICBhc3NlcnRf
c3VjY2VzcyhyZXNwb25zZSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hBbGVydEV4
Y2VwdGlvbik6CisgICAgICAgIHNlc3Npb24uYWxlcnQudGV4dApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsZWFyL2NsZWFy
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsZWFyL2NsZWFyLnB5CmluZGV4IDAxODljMzhjMjc3MC4uYjY1ZjQ0M2FhNzU4IDEwMDY0NAot
LS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xlYXIvY2xlYXIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9lbGVtZW50X2NsZWFyL2NsZWFyLnB5CkBAIC0xMSw3ICsxMSw2IEBAIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X2luX2V2ZW50cywKICAgICBh
c3NlcnRfc3VjY2VzcywKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKIEBweXRlc3QuZml4dHVyZQpAQCAtMzcsNyArMzYsNyBAQCBkZWYgdGV4dF9maWxlKHRt
cGRpcl9mYWN0b3J5KToKICAgICByZXR1cm4gZmgKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNl
X3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ4LDEwICs0Nywx
NyBAQCBkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgogCiBkZWYgdGVzdF9u
b190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKICAgICBlbGVt
ZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikKKyAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xl
YXIoc2Vzc2lvbiwgZWxlbWVudCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNo
IHdpbmRvdyIpCiAKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93
CiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsZWFyKHNlc3Npb24sIGVsZW1lbnQpCiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5k
b3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsZWFy
KHNlc3Npb24sIGVsZW1lbnQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBl
bGVtZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF9mcmFtZSk6CiAgICAgZWxlbWVudCA9IEVsZW1lbnQoImZvbyIsIHNlc3Npb24pCkBAIC02MCw3
ICs2Niw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2Zy
YW1lKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAot
ZGVmIHRlc3RfY29ubmVjdGVkX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9jb25uZWN0ZWRf
ZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2Up
CiAKQEAgLTY5LDcgKzc1LDcgQEAgZGVmIHRlc3RfY29ubmVjdGVkX2VsZW1lbnQoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQog
CiAKLWRlZiB0ZXN0X3BvaW50ZXJfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfcG9p
bnRlcl9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPGlucHV0IHN0eWxlPSdtYXJnaW4tbGVmdDogLTEwMDBweCcgdmFsdWU9Zm9vYmFyPiIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBA
IC03Nyw3ICs4Myw3IEBAIGRlZiB0ZXN0X3BvaW50ZXJfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAK
IAotZGVmIHRlc3Rfa2V5Ym9hcmRfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3Rfa2V5
Ym9hcmRfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIiIiCiAgICAgICAgIDxpbnB1dCB2YWx1ZT1mb29iYXI+CiAgICAgICAgIDxkaXY+PC9k
aXY+CkBAIC0xMTQsNyArMTIwLDcgQEAgZGVmIHRlc3Rfa2V5Ym9hcmRfaW50ZXJhY3RhYmxlKHNl
c3Npb24pOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRpbWUiLCAiMTk6NDgiLCAiIiks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgibW9udGgiLCAiMjAxNy0xMSIsICIiKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCJ3ZWVrIiwgIjIwMTctVzUyIiwgIiIpXSkKLWRlZiB0
ZXN0X2lucHV0KHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCB0
eXBlLCB2YWx1ZSwgZGVmYXVsdCk6CitkZWYgdGVzdF9pbnB1dChzZXNzaW9uLCBpbmxpbmUsIGFk
ZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzLCB0eXBlLCB2YWx1ZSwgZGVmYXVsdCk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPSVzIHZhbHVlPSclcyc+IiAl
ICh0eXBlLCB2YWx1ZSkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogICAgIGFkZF9ldmVudF9saXN0ZW5lcnMoZWxlbWVudCwgdHJhY2tlZF9ldmVu
dHMpCkBAIC0xNDQsNyArMTUwLDcgQEAgZGVmIHRlc3RfaW5wdXQoc2Vzc2lvbiwgYWRkX2V2ZW50
X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIHR5cGUsIHZhbHVlLCBkZWZhdWwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm1vbnRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIndl
ZWsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZSJdKQotZGVmIHRlc3RfaW5wdXRf
ZGlzYWJsZWQoc2Vzc2lvbiwgdHlwZSk6CitkZWYgdGVzdF9pbnB1dF9kaXNhYmxlZChzZXNzaW9u
LCBpbmxpbmUsIHR5cGUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT0l
cyBkaXNhYmxlZD4iICUgdHlwZSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5w
dXQiLCBhbGw9RmFsc2UpCiAKQEAgLTE2OSw3ICsxNzUsNyBAQCBkZWYgdGVzdF9pbnB1dF9kaXNh
YmxlZChzZXNzaW9uLCB0eXBlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vbnRoIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndlZWsiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZmlsZSJdKQotZGVmIHRlc3RfaW5wdXRfcmVhZG9ubHkoc2Vzc2lvbiwgdHlwZSk6Citk
ZWYgdGVzdF9pbnB1dF9yZWFkb25seShzZXNzaW9uLCBpbmxpbmUsIHR5cGUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT0lcyByZWFkb25seT4iICUgdHlwZSkKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTE3Nyw3
ICsxODMsNyBAQCBkZWYgdGVzdF9pbnB1dF9yZWFkb25seShzZXNzaW9uLCB0eXBlKToKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0
ZXN0X3RleHRhcmVhKHNlc3Npb24sIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRz
KToKK2RlZiB0ZXN0X3RleHRhcmVhKHNlc3Npb24sIGlubGluZSwgYWRkX2V2ZW50X2xpc3RlbmVy
cywgdHJhY2tlZF9ldmVudHMpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGV4dGFyZWE+
Zm9vYmFyPC90ZXh0YXJlYT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJ0ZXh0
YXJlYSIsIGFsbD1GYWxzZSkKICAgICBhZGRfZXZlbnRfbGlzdGVuZXJzKGVsZW1lbnQsIHRyYWNr
ZWRfZXZlbnRzKQpAQCAtMTg5LDcgKzE5NSw3IEBAIGRlZiB0ZXN0X3RleHRhcmVhKHNlc3Npb24s
IGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKToKICAgICBhc3NlcnRfaW5fZXZl
bnRzKHNlc3Npb24sIFsiZm9jdXMiLCAiY2hhbmdlIiwgImJsdXIiXSkKIAogCi1kZWYgdGVzdF90
ZXh0YXJlYV9kaXNhYmxlZChzZXNzaW9uKToKK2RlZiB0ZXN0X3RleHRhcmVhX2Rpc2FibGVkKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0ZXh0YXJlYSBkaXNh
YmxlZD48L3RleHRhcmVhPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInRleHRh
cmVhIiwgYWxsPUZhbHNlKQogCkBAIC0xOTcsNyArMjAzLDcgQEAgZGVmIHRlc3RfdGV4dGFyZWFf
ZGlzYWJsZWQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBl
bGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVzdF90ZXh0YXJlYV9yZWFkb25seShzZXNzaW9uKToK
K2RlZiB0ZXN0X3RleHRhcmVhX3JlYWRvbmx5KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjx0ZXh0YXJlYSByZWFkb25seT48L3RleHRhcmVhPiIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoInRleHRhcmVhIiwgYWxsPUZhbHNlKQogCkBAIC0yMDUs
NyArMjExLDcgQEAgZGVmIHRlc3RfdGV4dGFyZWFfcmVhZG9ubHkoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBlbGVtZW50IHN0YXRlIikKIAogCi1kZWYgdGVz
dF9pbnB1dF9maWxlKHNlc3Npb24sIHRleHRfZmlsZSk6CitkZWYgdGVzdF9pbnB1dF9maWxlKHNl
c3Npb24sIHRleHRfZmlsZSwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlu
cHV0IHR5cGU9ZmlsZT4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKICAgICBlbGVtZW50LnNlbmRfa2V5cyhzdHIodGV4dF9maWxlKSkKQEAgLTIx
NSw3ICsyMjEsNyBAQCBkZWYgdGVzdF9pbnB1dF9maWxlKHNlc3Npb24sIHRleHRfZmlsZSk6CiAg
ICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0gIiIKIAogCi1kZWYgdGVzdF9p
bnB1dF9maWxlX211bHRpcGxlKHNlc3Npb24sIHRleHRfZmlsZSk6CitkZWYgdGVzdF9pbnB1dF9m
aWxlX211bHRpcGxlKHNlc3Npb24sIHRleHRfZmlsZSwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBtdWx0aXBsZT4iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBlbGVtZW50LnNlbmRfa2V5
cyhzdHIodGV4dF9maWxlKSkKQEAgLTIyNiw3ICsyMzIsNyBAQCBkZWYgdGVzdF9pbnB1dF9maWxl
X211bHRpcGxlKHNlc3Npb24sIHRleHRfZmlsZSk6CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVy
dHkoInZhbHVlIikgPT0gIiIKIAogCi1kZWYgdGVzdF9zZWxlY3Qoc2Vzc2lvbik6CitkZWYgdGVz
dF9zZWxlY3Qoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIK
ICAgICAgICAgPHNlbGVjdD4KICAgICAgICAgICA8b3B0aW9uPmZvbwpAQCAtMjQxLDcgKzI0Nyw3
IEBAIGRlZiB0ZXN0X3NlbGVjdChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJpbnZhbGlkIGVsZW1lbnQgc3RhdGUiKQogCiAKLWRlZiB0ZXN0X2J1dHRvbihzZXNzaW9uKToK
K2RlZiB0ZXN0X2J1dHRvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8YnV0dG9uPjwvYnV0dG9uPiIpCiAgICAgYnV0dG9uID0gc2Vzc2lvbi5maW5kLmNzcygi
YnV0dG9uIiwgYWxsPUZhbHNlKQogCkBAIC0yNDksNyArMjU1LDcgQEAgZGVmIHRlc3RfYnV0dG9u
KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBz
dGF0ZSIpCiAKIAotZGVmIHRlc3RfYnV0dG9uX3dpdGhfc3VidHJlZShzZXNzaW9uKToKK2RlZiB0
ZXN0X2J1dHRvbl93aXRoX3N1YnRyZWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICAiIiIKICAgICBF
bGVtZW50cyBpbnNpZGUgYnV0dG9uIGVsZW1lbnRzIGFyZSBpbnRlcmFjdGFibGUuCiAgICAgIiIi
CkBAIC0yNjQsNyArMjcwLDcgQEAgZGVmIHRlc3RfYnV0dG9uX3dpdGhfc3VidHJlZShzZXNzaW9u
KToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKIAogCi1kZWYgdGVzdF9jb250ZW50ZWRp
dGFibGUoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgorZGVm
IHRlc3RfY29udGVudGVkaXRhYmxlKHNlc3Npb24sIGlubGluZSwgYWRkX2V2ZW50X2xpc3RlbmVy
cywgdHJhY2tlZF9ldmVudHMpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBjb250ZW50
ZWRpdGFibGU+Zm9vYmFyPC9wPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAi
LCBhbGw9RmFsc2UpCiAgICAgYWRkX2V2ZW50X2xpc3RlbmVycyhlbGVtZW50LCB0cmFja2VkX2V2
ZW50cykKQEAgLTI3Nyw3ICsyODMsNyBAQCBkZWYgdGVzdF9jb250ZW50ZWRpdGFibGUoc2Vzc2lv
biwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgogICAgIGFzc2VydF9lbGVt
ZW50X2hhc19mb2N1cyhzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuYm9k
eSIpKQogCiAKLWRlZiB0ZXN0X2Rlc2lnbm1vZGUoc2Vzc2lvbik6CitkZWYgdGVzdF9kZXNpZ25t
b2RlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoImZvb2JhciIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImJvZHkiLCBhbGw9RmFsc2UpCiAgICAg
YXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoImlubmVySFRNTCIpID09ICJmb29iYXIiCkBAIC0yODks
NyArMjk1LDcgQEAgZGVmIHRlc3RfZGVzaWdubW9kZShzZXNzaW9uKToKICAgICBhc3NlcnRfZWxl
bWVudF9oYXNfZm9jdXMoc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmJv
ZHkiKSkKIAogCi1kZWYgdGVzdF9yZXNldHRhYmxlX2VsZW1lbnRfZm9jdXNfd2hlbl9lbXB0eShz
ZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cyk6CitkZWYgdGVzdF9y
ZXNldHRhYmxlX2VsZW1lbnRfZm9jdXNfd2hlbl9lbXB0eShzZXNzaW9uLCBpbmxpbmUsIGFkZF9l
dmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxs
PUZhbHNlKQogICAgIGFkZF9ldmVudF9saXN0ZW5lcnMoZWxlbWVudCwgdHJhY2tlZF9ldmVudHMp
CkBAIC0zMTMsNyArMzE5LDcgQEAgZGVmIHRlc3RfcmVzZXR0YWJsZV9lbGVtZW50X2ZvY3VzX3do
ZW5fZW1wdHkoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2sKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCJ0aW1lIiwgImZvbyIpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAoIm1vbnRoIiwgImZvbyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoIndlZWsiLCAi
Zm9vIildKQotZGVmIHRlc3RfcmVzZXR0YWJsZV9lbGVtZW50X2RvZXNfbm90X3NhdGlzZnlfdmFs
aWRhdGlvbl9jb25zdHJhaW50cyhzZXNzaW9uLCB0eXBlLCBpbnZhbGlkX3ZhbHVlKToKK2RlZiB0
ZXN0X3Jlc2V0dGFibGVfZWxlbWVudF9kb2VzX25vdF9zYXRpc2Z5X3ZhbGlkYXRpb25fY29uc3Ry
YWludHMoc2Vzc2lvbiwgaW5saW5lLCB0eXBlLCBpbnZhbGlkX3ZhbHVlKToKICAgICAiIiIKICAg
ICBTb21lIFVBcyBhbGxvdyBpbnZhbGlkIGlucHV0IHRvIGNlcnRhaW4gdHlwZXMgb2YgY29uc3Ry
YWluZWQKICAgICBmb3JtIGNvbnRyb2xzLiAgRm9yIGV4YW1wbGUsIEdlY2tvIGFsbG93cyBub24t
dmFsaWQgY2hhcmFjdGVycwpAQCAtMzUwLDcgKzM1Niw3IEBAIGRlZiB0ZXN0X3Jlc2V0dGFibGVf
ZWxlbWVudF9kb2VzX25vdF9zYXRpc2Z5X3ZhbGlkYXRpb25fY29uc3RyYWludHMoc2Vzc2lvbiwg
dHlwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJtaXQiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlIl0p
Ci1kZWYgdGVzdF9ub25fZWRpdGFibGVfaW5wdXRzKHNlc3Npb24sIHR5cGUpOgorZGVmIHRlc3Rf
bm9uX2VkaXRhYmxlX2lucHV0cyhzZXNzaW9uLCBpbmxpbmUsIHR5cGUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT0lcz4iICUgdHlwZSkKICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTM1OCw3ICszNjQsNyBAQCBk
ZWYgdGVzdF9ub25fZWRpdGFibGVfaW5wdXRzKHNlc3Npb24sIHR5cGUpOgogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgImludmFsaWQgZWxlbWVudCBzdGF0ZSIpCiAKIAotZGVmIHRlc3Rfc2Ny
b2xsX2ludG9fdmlldyhzZXNzaW9uKToKK2RlZiB0ZXN0X3Njcm9sbF9pbnRvX3ZpZXcoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGlucHV0
IHZhbHVlPWZvb2Jhcj4KICAgICAgICAgPGRpdiBzdHlsZT0naGVpZ2h0OiAyMDB2aDsgd2lkdGg6
IDUwMDB2aCc+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfY2xlYXIvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsZWFyL3VzZXJfcHJvbXB0cy5w
eQppbmRleCBjZmI4NTBlMDhkNWEuLjdhODU2NGE2ODRhNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsZWFyL3VzZXJfcHJv
bXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfY2xlYXIvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5
dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19o
YW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZWxlbWVudF9jbGVhcihzZXNzaW9uLCBlbGVt
ZW50KToKQEAgLTE0LDcgKzEzLDcgQEAgZGVmIGVsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgZWxlbWVu
dCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBp
bmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
aW5wdXQgdHlwZT10ZXh0PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKQEAgLTM1LDcgKzM0LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBA
cHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikK
ICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpA
QCAtNTYsNyArNTUsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2J1YmJsaW5n
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsaWNrL2J1YmJsaW5nLnB5CmluZGV4IGEwNjlhNWE1ZGYzZC4uNzYyMGVjMzIyNGZjIDEwMDY0
NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1l
bnRfY2xpY2svYnViYmxpbmcucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2J1YmJsaW5nLnB5CkBAIC0xLDUgKzEsNCBAQAog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9zdWNjZXNzCi1mcm9tIHRl
c3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZWxlbWVudF9jbGljayhz
ZXNzaW9uLCBlbGVtZW50KToKQEAgLTksNyArOCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Np
b24sIGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1k
ZWYgdGVzdF9jbGlja19ldmVudF9idWJibGVzX3RvX3BhcmVudHMoc2Vzc2lvbik6CitkZWYgdGVz
dF9jbGlja19ldmVudF9idWJibGVzX3RvX3BhcmVudHMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHN0eWxlPgogICAgICAgICBib2R5ICog
ewpAQCAtNDUsNyArNDQsNyBAQCBkZWYgdGVzdF9jbGlja19ldmVudF9idWJibGVzX3RvX3BhcmVu
dHMoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHRocmVlIGluIGNsaWNrcwogCiAKLWRlZiB0ZXN0X3Nw
aW5fZXZlbnRfbG9vcChzZXNzaW9uKToKK2RlZiB0ZXN0X3NwaW5fZXZlbnRfbG9vcChzZXNzaW9u
LCBpbmxpbmUpOgogICAgICIiIgogICAgIFdhaXQgdW50aWwgdGhlIHVzZXIgYWdlbnQgZXZlbnQg
bG9vcCBoYXMgc3B1biBlbm91Z2ggdGltZXMgdG8KICAgICBwcm9jZXNzIHRoZSBET00gZXZlbnRz
IGdlbmVyYXRlZCBieSBjbGlja2luZy4KQEAgLTg2LDcgKzg1LDcgQEAgZGVmIHRlc3Rfc3Bpbl9l
dmVudF9sb29wKHNlc3Npb24pOgogICAgIGFzc2VydCB0aHJlZSBpbiBkZWxheWVkX2NsaWNrcwog
CiAKLWRlZiB0ZXN0X2VsZW1lbnRfZGlzYXBwZWFyc19kdXJpbmdfY2xpY2soc2Vzc2lvbik6Citk
ZWYgdGVzdF9lbGVtZW50X2Rpc2FwcGVhcnNfZHVyaW5nX2NsaWNrKHNlc3Npb24sIGlubGluZSk6
CiAgICAgIiIiCiAgICAgV2hlbiBhbiBlbGVtZW50IGluIHRoZSBldmVudCBidWJibGluZyBvcmRl
ciBkaXNhcHBlYXJzIChpdHMgQ1NTCiAgICAgZGlzcGxheSBzdHlsZSBpcyBzZXQgdG8gIm5vbmUi
KSBkdXJpbmcgYSBjbGljaywgR2Vja28gYW5kIEJsaW5rCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2VudGVyX3Bv
aW50LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X2NsaWNrL2NlbnRlcl9wb2ludC5weQppbmRleCBkYTYwYTA4NzI3N2QuLmVmMGM5YTdmZTI3
ZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X2NsaWNrL2NlbnRlcl9wb2ludC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2VudGVyX3BvaW50LnB5CkBA
IC0yLDcgKzIsNiBAQCBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQu
aGVscGVycyBpbXBvcnQgY2VudGVyX3BvaW50Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGlt
cG9ydCBpbmxpbmUKIAogCiBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKQEAg
LTEyLDcgKzExLDcgQEAgZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAg
ICAgICAgICBlbGVtZW50X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiBzcXVhcmUoc2l6ZSk6Citk
ZWYgc3F1YXJlKGlubGluZSwgc2l6ZSk6CiAgICAgcmV0dXJuIGlubGluZSgiIiIKICAgICAgICAg
PHN0eWxlPgogICAgICAgICBib2R5IHt7IG1hcmdpbjogMCB9fQpAQCAtNDEsOCArNDAsOCBAQCBk
ZWYgYXNzZXJ0X29uZV9jbGljayhzZXNzaW9uKToKICAgICByZXR1cm4gdHVwbGUoY2xpY2tzWzBd
KQogCiAKLWRlZiB0ZXN0X2VudGlyZWx5X2luX3ZpZXcoc2Vzc2lvbik6Ci0gICAgc2Vzc2lvbi51
cmwgPSBzcXVhcmUoNDQ0KQorZGVmIHRlc3RfZW50aXJlbHlfaW5fdmlldyhzZXNzaW9uLCBpbmxp
bmUpOgorICAgIHNlc3Npb24udXJsID0gc3F1YXJlKGlubGluZSwgNDQ0KQogICAgIGVsZW1lbnQg
PSBzZXNzaW9uLmZpbmQuY3NzKCIjdGFyZ2V0IiwgYWxsPUZhbHNlKQogCiAgICAgcmVzcG9uc2Ug
PSBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpCkBAIC01Myw4ICs1Miw4IEBAIGRlZiB0
ZXN0X2VudGlyZWx5X2luX3ZpZXcoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJzaXplIiwgcmFuZ2UoMSwgMTEpKQotZGVmIHRlc3RfY3NzX3BpeGVsX3JvdW5kaW5nKHNl
c3Npb24sIHNpemUpOgotICAgIHNlc3Npb24udXJsID0gc3F1YXJlKHNpemUpCitkZWYgdGVzdF9j
c3NfcGl4ZWxfcm91bmRpbmcoc2Vzc2lvbiwgaW5saW5lLCBzaXplKToKKyAgICBzZXNzaW9uLnVy
bCA9IHNxdWFyZShpbmxpbmUsIHNpemUpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3Mo
IiN0YXJnZXQiLCBhbGw9RmFsc2UpCiAgICAgZXhwZWN0ZWRfY2xpY2tfcG9pbnQgPSBjZW50ZXJf
cG9pbnQoZWxlbWVudCkKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NsaWNrLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2NsaWNrLnB5CmluZGV4
IDNhNWQ3MzcyMTZkOS4uYjFiMTAxNjJlNGQ2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svY2xpY2sucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNr
L2NsaWNrLnB5CkBAIC0xLDcgKzEsNiBAQAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IEVsZW1lbnQK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRl
ZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTEsNyArMTAsNyBAQCBkZWYg
ZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKICAgICAgICAgICAgIGVsZW1lbnRfaWQ9
ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToK
K2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHA+Zm9vIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNz
cygicCIsIGFsbD1GYWxzZSkKIApAQCAtMjIsMTAgKzIxLDE3IEBAIGRlZiB0ZXN0X251bGxfcmVz
cG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAKIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0
KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAgIGVsZW1lbnQgPSBFbGVtZW50KCJmb28iLCBz
ZXNzaW9uKQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQor
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIG9yaWdp
bmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKICAgICByZXNwb25zZSA9IGVsZW1l
bnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJu
byBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9o
YW5kbGUKKyAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0
X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICBlbGVtZW50
ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9ldmVudHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZXZl
bnRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTNkMzJjMWJj
YjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL2V2ZW50cy5weQpAQCAtMCwwICsxLDMzIEBACitmcm9t
IHdlYmRyaXZlciBpbXBvcnQgRWxlbWVudAorZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9zdWNjZXNzCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmls
dGVyX2RpY3QKKworZGVmIGdldF9ldmVudHMoc2Vzc2lvbik6CisgICAgIiIiUmV0dXJuIGxpc3Qg
b2YgbW91c2UgZXZlbnRzIHJlY29yZGVkIGluIHRoZSBmaXh0dXJlLiIiIgorICAgIHJldHVybiBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYWxsRXZlbnRzLmV2ZW50czsiKSBvciBbXQor
CitkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKKyAgICByZXR1cm4gc2Vzc2lv
bi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0v
ZWxlbWVudC97ZWxlbWVudF9pZH0vY2xpY2siLmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Npb25f
aWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50Lmlk
KSkKKworZGVmIHRlc3RfZXZlbnRfbW91c2Vtb3ZlKHNlc3Npb24sIHVybCk6CisgICAgc2Vzc2lv
bi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdXBwb3J0L3Rlc3Rf
Y2xpY2tfd2RzcGVjLmh0bWwiKQorCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoJyNv
dXRlcicsIGFsbD1GYWxzZSkKKyAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwg
ZWxlbWVudCkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGV2ZW50cyA9IGdl
dF9ldmVudHMoc2Vzc2lvbikKKyAgICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gNAorCisgICAgZXhw
ZWN0ZWQgPSBbCisgICAgICAgIHsidHlwZSI6ICJtb3VzZW1vdmUiLCAiYnV0dG9ucyI6IDAsICJi
dXR0b24iOiAwfSwKKyAgICAgICAgeyJ0eXBlIjogIm1vdXNlZG93biIsICJidXR0b25zIjogMSwg
ImJ1dHRvbiI6IDB9LAorICAgICAgICB7InR5cGUiOiAibW91c2V1cCIsICJidXR0b25zIjogMCwg
ImJ1dHRvbiI6IDB9LAorICAgICAgICB7InR5cGUiOiAiY2xpY2siLCAiYnV0dG9ucyI6IDAsICJi
dXR0b24iOiAwfSwKKyAgICBdCisgICAgZmlsdGVyZWRfZXZlbnRzID0gW2ZpbHRlcl9kaWN0KGUs
IGV4cGVjdGVkWzBdKSBmb3IgZSBpbiBldmVudHNdCisKKyAgICBhc3NlcnQgZXhwZWN0ZWQgPT0g
ZmlsdGVyZWRfZXZlbnRzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZmlsZV91cGxvYWQucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svZmlsZV91cGxv
YWQucHkKaW5kZXggY2Q1YmI0MzQyMDRkLi43MzgzMmQwZjg1YWUgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9maWxl
X3VwbG9hZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfY2xpY2svZmlsZV91cGxvYWQucHkKQEAgLTEsNSArMSw1IEBACiBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vzcwot
ZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCisKIAogZGVmIGVsZW1lbnRf
Y2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0LnNl
bmQoCkBAIC04LDcgKzgsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToK
ICAgICAgICAgICAgIGVsZW1lbnRfaWQ9ZWxlbWVudC5pZCkpCiAKIAotZGVmIHRlc3RfZmlsZV91
cGxvYWRfc3RhdGUoc2Vzc2lvbik6CitkZWYgdGVzdF9maWxlX3VwbG9hZF9zdGF0ZShzZXNzaW9u
LGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikK
IAogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9jbGljay9pbnRlcmFjdGFiaWxpdHkucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svaW50ZXJhY3RhYmlsaXR5LnB5CmluZGV4
IDc0NjNkNDkzZTNkOC4uZDU1ODYwYzg3NDZmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svaW50ZXJhY3RhYmlsaXR5
LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxl
bWVudF9jbGljay9pbnRlcmFjdGFiaWxpdHkucHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQgcHl0
ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKQEAgLTExLDcgKzEwLDcgQEAg
ZGVmIGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCk6CiAgICAgICAgICAgICBlbGVtZW50
X2lkPWVsZW1lbnQuaWQpKQogCiAKLWRlZiB0ZXN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCIiIjxidXR0b24gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPmZvb2JhcjwvYnV0dG9uPiIi
IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQog
CkBAIC0xOSw3ICsxOCw3IEBAIGRlZiB0ZXN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uKToKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRl
ZiB0ZXN0X3Zpc2liaWxpdHlfaGlkZGVuKHNlc3Npb24pOgorZGVmIHRlc3RfdmlzaWJpbGl0eV9o
aWRkZW4oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8YnV0
dG9uIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW4iPmZvb2JhcjwvYnV0dG9uPiIiIikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYnV0dG9uIiwgYWxsPUZhbHNlKQogCkBAIC0yNyw3
ICsyNiw3IEBAIGRlZiB0ZXN0X3Zpc2liaWxpdHlfaGlkZGVuKHNlc3Npb24pOgogICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRl
c3RfaGlkZGVuKHNlc3Npb24pOgorZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxidXR0b24gaGlkZGVuPmZvb2JhcjwvYnV0dG9uPiIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxzZSkKIApA
QCAtMzUsNyArMzQsNyBAQCBkZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlIikKIAogCi1kZWYgdGVzdF9k
aXNhYmxlZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc2FibGVkKHNlc3Npb24sIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGJ1dHRvbiBkaXNhYmxlZD5mb29iYXI8L2J1dHRv
bj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImJ1dHRvbiIsIGFsbD1GYWxz
ZSkKIApAQCAtNDQsNyArNDMsNyBAQCBkZWYgdGVzdF9kaXNhYmxlZChzZXNzaW9uKToKIAogCiBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRyYW5zZm9ybSIsIFsidHJhbnNsYXRlKC0xMDBweCwg
LTEwMHB4KSIsICJyb3RhdGUoNTBkZWcpIl0pCi1kZWYgdGVzdF9lbGVtZW50X25vdF9pbnRlcmFj
dGFibGVfY3NzX3RyYW5zZm9ybShzZXNzaW9uLCB0cmFuc2Zvcm0pOgorZGVmIHRlc3RfZWxlbWVu
dF9ub3RfaW50ZXJhY3RhYmxlX2Nzc190cmFuc2Zvcm0oc2Vzc2lvbiwgaW5saW5lLCB0cmFuc2Zv
cm0pOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8ZGl2IHN0eWxlPSJ3
aWR0aDogNTAwcHg7IGhlaWdodDogMTAwcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOyB0cmFuc2Zvcm06IHt0cmFuc2Zvcm19OyI+CkBAIC01NSw3ICs1NCw3IEBAIGRlZiB0
ZXN0X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZV9jc3NfdHJhbnNmb3JtKHNlc3Npb24sIHRyYW5z
Zm9ybSk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJhY3Rh
YmxlIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X25vdF9pbnRlcmFjdGFibGVfb3V0X29mX3ZpZXco
c2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X25vdF9pbnRlcmFjdGFibGVfb3V0X29mX3ZpZXco
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAg
PHN0eWxlPgogICAgICAgICBpbnB1dCB7CkBAIC03Myw3ICs3Miw3IEBAIGRlZiB0ZXN0X2VsZW1l
bnRfbm90X2ludGVyYWN0YWJsZV9vdXRfb2ZfdmlldyhzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInRhZ19uYW1lIiwgWyJkaXYiLCAic3BhbiJdKQotZGVmIHRlc3RfemVy
b19zaXplZF9lbGVtZW50KHNlc3Npb24sIHRhZ19uYW1lKToKK2RlZiB0ZXN0X3plcm9fc2l6ZWRf
ZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIHRhZ19uYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiPHswfT48L3swfT4iLmZvcm1hdCh0YWdfbmFtZSkpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3ModGFnX25hbWUsIGFsbD1GYWxzZSkKIApAQCAtODEsNyArODAsNyBAQCBkZWYg
dGVzdF96ZXJvX3NpemVkX2VsZW1lbnQoc2Vzc2lvbiwgdGFnX25hbWUpOgogICAgIGFzc2VydF9l
cnJvcihyZXNwb25zZSwgImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3Rf
ZWxlbWVudF9pbnRlcmNlcHRlZChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfaW50ZXJjZXB0
ZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAg
ICAgPHN0eWxlPgogICAgICAgICBkaXYgewpAQCAtMTAyLDE0ICsxMDEsMTQgQEAgZGVmIHRlc3Rf
ZWxlbWVudF9pbnRlcmNlcHRlZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJlbGVtZW50IGNsaWNrIGludGVyY2VwdGVkIikKIAogCi1kZWYgdGVzdF9lbGVtZW50X2ludGVy
Y2VwdGVkX25vX3BvaW50ZXJfZXZlbnRzKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbnRl
cmNlcHRlZF9ub19wb2ludGVyX2V2ZW50cyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWJ1dHRvbiB2YWx1ZT1Sb2dlciBzdHlsZT0icG9p
bnRlci1ldmVudHM6IG5vbmUiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgcmVzcG9uc2UgPSBlbGVtZW50X2NsaWNrKHNlc3Npb24s
IGVsZW1lbnQpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBjbGljayBpbnRl
cmNlcHRlZCIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9ub3RfdmlzaWJsZV9vdmVyZmxvd19oaWRk
ZW4oc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X25vdF92aXNpYmxlX292ZXJmbG93X2hpZGRl
bihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAg
ICA8c3R5bGU+CiAgICAgICAgIGRpdiB7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svbmF2aWdhdGUucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svbmF2
aWdhdGUucHkKaW5kZXggZDc3NmExZWI4NGU2Li40OTI3MTgyOTJhMTcgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9u
YXZpZ2F0ZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2VsZW1lbnRfY2xpY2svbmF2aWdhdGUucHkKQEAgLTEsNSArMSw5IEBACitpbXBvcnQgcHl0
ZXN0CisKK2Zyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9u
CisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcwotZnJv
bSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCitmcm9tIHRlc3RzLnN1cHBvcnQu
aGVscGVycyBpbXBvcnQgd2FpdF9mb3JfbmV3X2hhbmRsZQogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5
bmMgaW1wb3J0IFBvbGwKIAogCkBAIC0xMCw3ICsxNCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNl
c3Npb24sIGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAog
Ci1kZWYgdGVzdF9udW1iZXJzX2xpbmsoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CitkZWYgdGVz
dF9udW1iZXJzX2xpbmsoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZywgaW5saW5lKToKICAgICBsaW5r
ID0gIi93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdXBwb3J0L2lucHV0Lmh0bWwiCiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9e3VybH0+MTIzNDU2PC9hPiIuZm9ybWF0
KHVybD1saW5rKSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxz
ZSkKQEAgLTIyLDcgKzI2LDcgQEAgZGVmIHRlc3RfbnVtYmVyc19saW5rKHNlc3Npb24sIHNlcnZl
cl9jb25maWcpOgogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSAiaHR0cDovL3tob3N0fTp7cG9y
dH17dXJsfSIuZm9ybWF0KGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCB1cmw9bGluaykKIAogCi1kZWYg
dGVzdF9tdWx0aV9saW5lX2xpbmsoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZyk6CitkZWYgdGVzdF9t
dWx0aV9saW5lX2xpbmsoc2Vzc2lvbiwgc2VydmVyX2NvbmZpZywgaW5saW5lKToKICAgICBsaW5r
ID0gIi93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdXBwb3J0L2lucHV0Lmh0bWwiCiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiB5ZWxsb3c7IHdpZHRoOiA1MHB4OyI+CkBAIC0zNyw3ICs0MSw3IEBAIGRlZiB0ZXN0
X211bHRpX2xpbmVfbGluayhzZXNzaW9uLCBzZXJ2ZXJfY29uZmlnKToKICAgICBhc3NlcnQgc2Vz
c2lvbi51cmwgPT0gImh0dHA6Ly97aG9zdH06e3BvcnR9e3VybH0iLmZvcm1hdChob3N0PWhvc3Qs
IHBvcnQ9cG9ydCwgdXJsPWxpbmspCiAKIAotZGVmIHRlc3RfbGlua191bmxvYWRfZXZlbnQoc2Vz
c2lvbiwgc2VydmVyX2NvbmZpZyk6CitkZWYgdGVzdF9saW5rX3VubG9hZF9ldmVudChzZXNzaW9u
LCBzZXJ2ZXJfY29uZmlnLCBpbmxpbmUpOgogICAgIGxpbmsgPSAiL3dlYmRyaXZlci90ZXN0cy9l
bGVtZW50X2NsaWNrL3N1cHBvcnQvaW5wdXQuaHRtbCIKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPGJvZHkgb251bmxvYWQ9ImNoZWNrVW5sb2FkKCkiPgpAQCAtNjgsNyAr
NzIsNyBAQCBkZWYgdGVzdF9saW5rX3VubG9hZF9ldmVudChzZXNzaW9uLCBzZXJ2ZXJfY29uZmln
KToKICAgICBhc3NlcnQgcmVzcG9uc2UgaXMgVHJ1ZQogCiAKLWRlZiB0ZXN0X2xpbmtfaGFzaChz
ZXNzaW9uKToKK2RlZiB0ZXN0X2xpbmtfaGFzaChzZXNzaW9uLCBpbmxpbmUpOgogICAgIGlkID0g
ImFuY2hvciIKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGEgaHJlZj0i
I3t1cmx9Ij5hYWFhPC9hPgpAQCAtOTMsMzQgKzk3LDk0IEBAIGRlZiB0ZXN0X2xpbmtfaGFzaChz
ZXNzaW9uKToKICAgICAgICAgICAgICIiIiwgYXJncz0oZWxlbWVudCwpKSBpcyBUcnVlCiAKIAot
ZGVmIHRlc3RfbGlua19vcGVuX3RhcmdldF9pbl9uZXdfd2luZG93KHNlc3Npb24sIHVybCk6Ci0g
ICAgb3JpZ19oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVzCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInRhcmdldCIsIFsKKyAgICAiIiwKKyAgICAiX2JsYW5rIiwKKyAgICAiX3BhcmVudCIsCisg
ICAgIl9zZWxmIiwKKyAgICAiX3RvcCIsCitdKQorZGVmIHRlc3RfbGlua19mcm9tX3RvcGxldmVs
X2NvbnRleHRfd2l0aF90YXJnZXQoc2Vzc2lvbiwgaW5saW5lLCB0YXJnZXQpOgorICAgIHRhcmdl
dF9wYWdlID0gaW5saW5lKCI8cCBpZD0nZm9vJz5mb288L3A+IikKIAotICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIgotICAgICAgICA8YSBocmVmPSJ7fSIgdGFyZ2V0PSJfYmxhbmsiPk9wZW4g
aW4gbmV3IHdpbmRvdzwvYT4KLSAgICAiIiIuZm9ybWF0KGlubGluZSgiPHAgaWQ9Zm9vIikpKQor
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8YSBocmVmPSd7fScgdGFyZ2V0PSd7fSc+Y2xpY2s8
L2E+Ii5mb3JtYXQodGFyZ2V0X3BhZ2UsIHRhcmdldCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImEiLCBhbGw9RmFsc2UpCiAKKyAgICBvcmlnX2hhbmRsZXMgPSBzZXNzaW9uLmhh
bmRsZXMKKwogICAgIHJlc3BvbnNlID0gZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KQog
ICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCi0gICAgZGVmIGZpbmRfbmV3X2hhbmRsZShz
ZXNzaW9uKToKLSAgICAgICAgbmV3X2hhbmRsZXMgPSBsaXN0KHNldChzZXNzaW9uLmhhbmRsZXMp
IC0gc2V0KG9yaWdfaGFuZGxlcykpCi0gICAgICAgIGlmIG5ld19oYW5kbGVzIGFuZCBsZW4obmV3
X2hhbmRsZXMpID09IDE6Ci0gICAgICAgICAgICByZXR1cm4gbmV3X2hhbmRsZXNbMF0KLSAgICAg
ICAgcmV0dXJuIE5vbmUKKyAgICBpZiB0YXJnZXQgPT0gIl9ibGFuayI6CisgICAgICAgIHNlc3Np
b24ud2luZG93X2hhbmRsZSA9IHdhaXRfZm9yX25ld19oYW5kbGUoc2Vzc2lvbiwgb3JpZ19oYW5k
bGVzKQogCiAgICAgd2FpdCA9IFBvbGwoCiAgICAgICAgIHNlc3Npb24sCiAgICAgICAgIHRpbWVv
dXQ9NSwKLSAgICAgICAgbWVzc2FnZT0iTm8gbmV3IHdpbmRvdyBoYXMgYmVlbiBvcGVuZWQiKQot
ICAgIG5ld19oYW5kbGUgPSB3YWl0LnVudGlsKGZpbmRfbmV3X2hhbmRsZSkKKyAgICAgICAgaWdu
b3JlZF9leGNlcHRpb25zPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24sCisgICAgICAgIG1lc3NhZ2U9
IkV4cGVjdGVkIGVsZW1lbnQgaGFzIG5vdCBiZWVuIGZvdW5kIikKKyAgICB3YWl0LnVudGlsKGxh
bWJkYSBzOiBzLmZpbmQuY3NzKCIjZm9vIikpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ0YXJnZXQiLCBbCisgICAgIiIsCisgICAgIl9ibGFuayIsCisgICAgIl9wYXJlbnQiLAorICAg
ICJfc2VsZiIsCisgICAgIl90b3AiLAorXSkKK2RlZiB0ZXN0X2xpbmtfZnJvbV9uZXN0ZWRfY29u
dGV4dF93aXRoX3RhcmdldChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSwgdGFyZ2V0KToKKyAgICB0
YXJnZXRfcGFnZSA9IGlubGluZSgiPHAgaWQ9J2Zvbyc+Zm9vPC9wPiIpCisKKyAgICBzZXNzaW9u
LnVybCA9IGlubGluZShpZnJhbWUoIjxhIGhyZWY9J3t9JyB0YXJnZXQ9J3t9Jz5jbGljazwvYT4i
LmZvcm1hdCh0YXJnZXRfcGFnZSwgdGFyZ2V0KSkpCisgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCisgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoZnJhbWUp
CisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImEiLmZvcm1hdCh0YXJnZXQpLCBhbGw9
RmFsc2UpCiAKLSAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBuZXdfaGFuZGxlCi0gICAgc2Vz
c2lvbi5maW5kLmNzcygiI2ZvbyIpCisgICAgb3JpZ19oYW5kbGVzID0gc2Vzc2lvbi5oYW5kbGVz
CisKKyAgICByZXNwb25zZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgZWxlbWVudCkKKyAgICBh
c3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGlmIHRhcmdldCA9PSAiX2JsYW5rIjoKKyAg
ICAgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gd2FpdF9mb3JfbmV3X2hhbmRsZShzZXNzaW9u
LCBvcmlnX2hhbmRsZXMpCisKKyAgICAjIFdpdGggdGhlIGN1cnJlbnQgYnJvd3NpbmcgY29udGV4
dCByZW1vdmVkIHRoZSBuYXZpZ2F0aW9uIHNob3VsZAorICAgICMgbm90IHRpbWVvdXQuIFN3aXRj
aCB0byB0aGUgdGFyZ2V0IGNvbnRleHQsIGFuZCB3YWl0IHVudGlsIHRoZSBleHBlY3RlZAorICAg
ICMgZWxlbWVudCBpcyBhdmFpbGFibGUuCisgICAgaWYgdGFyZ2V0ID09ICJfcGFyZW50IjoKKyAg
ICAgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoInBhcmVudCIpCisgICAgZWxpZiB0YXJnZXQgPT0g
Il90b3AiOgorICAgICAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShOb25lKQorCisgICAgd2FpdCA9
IFBvbGwoCisgICAgICAgIHNlc3Npb24sCisgICAgICAgIHRpbWVvdXQ9NSwKKyAgICAgICAgaWdu
b3JlZF9leGNlcHRpb25zPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24sCisgICAgICAgIG1lc3NhZ2U9
IkV4cGVjdGVkIGVsZW1lbnQgaGFzIG5vdCBiZWVuIGZvdW5kIikKKyAgICB3YWl0LnVudGlsKGxh
bWJkYSBzOiBzLmZpbmQuY3NzKCIjZm9vIikpCisKKworIyBDYXBhYmlsaXR5IG5lZWRlZCBhcyBs
b25nIGFzIG5vIHZhbGlkIGNlcnRpZmljYXRlIGlzIGF2YWlsYWJsZToKKyMgICBodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjg4NDcKK0BweXRlc3QubWFy
ay5jYXBhYmlsaXRpZXMoeyJhY2NlcHRJbnNlY3VyZUNlcnRzIjogVHJ1ZX0pCitkZWYgdGVzdF9s
aW5rX2Nyb3NzX29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIHVybCk6CisgICAgYmFzZV9wYXRoID0g
KCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9zdWJmcmFtZS5odG1sIiArCisgICAgICAg
ICAgICAgICAgICI/cGlwZT1oZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1v
cmlnaW4iKQorICAgIHRhcmdldF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBz
IiwgZG9tYWluPSJhbHQiKQorCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9J3t9
Jz5jbGljayBtZTwvYT4iLmZvcm1hdCh0YXJnZXRfcGFnZSksIHByb3RvY29sPSJodHRwcyIpCisg
ICAgbGluayA9IHNlc3Npb24uZmluZC5jc3MoImEiLCBhbGw9RmFsc2UpCisKKyAgICByZXNwb25z
ZSA9IGVsZW1lbnRfY2xpY2soc2Vzc2lvbiwgbGluaykKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKKworICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSB0YXJnZXRfcGFnZQorCisgICAgc2Vz
c2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKIAogCi1kZWYgdGVzdF9saW5rX2Ns
b3Nlc193aW5kb3coc2Vzc2lvbik6CitkZWYgdGVzdF9saW5rX2Nsb3Nlc193aW5kb3coc2Vzc2lv
biwgaW5saW5lKToKICAgICBuZXdfaGFuZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKICAgICBz
ZXNzaW9uLndpbmRvd19oYW5kbGUgPSBuZXdfaGFuZGxlCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zY3JvbGxf
aW50b192aWV3LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X2NsaWNrL3Njcm9sbF9pbnRvX3ZpZXcucHkKaW5kZXggNGIwMjZlOTg2YTIxLi5j
MmRjNjQ4NTI4NmUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zY3JvbGxfaW50b192aWV3LnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zY3Jv
bGxfaW50b192aWV3LnB5CkBAIC0yLDcgKzIsNyBAQCBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiBm
cm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgY2VudGVyX3BvaW50Ci1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKKwogCiBkZWYgZWxlbWVudF9jbGljayhzZXNz
aW9uLCBlbGVtZW50KToKICAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKQEAgLTE4
LDcgKzE4LDcgQEAgZGVmIGFzc2VydF9vbmVfY2xpY2soc2Vzc2lvbik6CiAgICAgcmV0dXJuIHR1
cGxlKGNsaWNrc1swXSkKIAogCi1kZWYgdGVzdF9zY3JvbGxfaW50b192aWV3KHNlc3Npb24pOgor
ZGVmIHRlc3Rfc2Nyb2xsX2ludG9fdmlldyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQgdHlwZT10ZXh0IHZhbHVlPUZlZGVyZXIK
ICAgICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHZoOyB0b3A6IDUwMHZo
Ij4iIiIpCkBAIC0zOCw3ICszOCw3IEBAIGRlZiB0ZXN0X3Njcm9sbF9pbnRvX3ZpZXcoc2Vzc2lv
bik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJvZmZzZXQiLCByYW5nZSg5LCAwLCAt
MSkpCi1kZWYgdGVzdF9wYXJ0aWFsbHlfdmlzaWJsZV9kb2VzX25vdF9zY3JvbGwoc2Vzc2lvbiwg
b2Zmc2V0KToKK2RlZiB0ZXN0X3BhcnRpYWxseV92aXNpYmxlX2RvZXNfbm90X3Njcm9sbChzZXNz
aW9uLCBvZmZzZXQsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAg
ICAgIDxzdHlsZT4KICAgICAgICAgYm9keSB7ewpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3NlbGVjdC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9z
ZWxlY3QucHkKaW5kZXggZGNmOTJlNjQ1ODk0Li42MmQ0MDc1NWI1OWIgMTAwNjQ0Ci0tLSBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9z
ZWxlY3QucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X2NsaWNrL3NlbGVjdC5weQpAQCAtMSw3ICsxLDQgQEAKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQotCi0KLWRlZiB0ZXN0X2NsaWNrX29wdGlvbihzZXNz
aW9uKToKK2RlZiB0ZXN0X2NsaWNrX29wdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdD4KICAgICAgICAgPG9wdGlvbj5maXJz
dApAQCAtMTcsNyArMTQsNyBAQCBkZWYgdGVzdF9jbGlja19vcHRpb24oc2Vzc2lvbik6CiAgICAg
YXNzZXJ0IG5vdCBvcHRpb25zWzBdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfbXVsdGlw
bGVfb3B0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfY2xpY2tfbXVsdGlwbGVfb3B0aW9uKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0
IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPmZpcnN0CkBAIC0zMyw3ICszMCw3IEBAIGRlZiB0
ZXN0X2NsaWNrX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IG9wdGlv
bnNbMV0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9jbGlja19wcmVzZWxlY3RlZF9vcHRpb24oc2Vz
c2lvbik6CitkZWYgdGVzdF9jbGlja19wcmVzZWxlY3RlZF9vcHRpb24oc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAgICAgICAg
IDxvcHRpb24+Zmlyc3QKQEAgLTUzLDcgKzUwLDcgQEAgZGVmIHRlc3RfY2xpY2tfcHJlc2VsZWN0
ZWRfb3B0aW9uKHNlc3Npb24pOgogICAgIGFzc2VydCBub3Qgb3B0aW9uc1sxXS5zZWxlY3RlZAog
CiAKLWRlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToK
K2RlZiB0ZXN0X2NsaWNrX3ByZXNlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdCBtdWx0aXBs
ZT4KICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtNzMsNyArNzAsNyBAQCBkZWYgdGVzdF9jbGlj
a19wcmVzZWxlY3RlZF9tdWx0aXBsZV9vcHRpb24oc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBv
cHRpb25zWzFdLnNlbGVjdGVkCiAKIAotZGVmIHRlc3RfY2xpY2tfZGVzZWxlY3RzX290aGVycyhz
ZXNzaW9uKToKK2RlZiB0ZXN0X2NsaWNrX2Rlc2VsZWN0c19vdGhlcnMoc2Vzc2lvbiwgaW5saW5l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgIDxzZWxlY3Q+CiAgICAgICAg
IDxvcHRpb24+Zmlyc3QKQEAgLTkyLDcgKzg5LDcgQEAgZGVmIHRlc3RfY2xpY2tfZGVzZWxlY3Rz
X290aGVycyhzZXNzaW9uKToKICAgICBhc3NlcnQgb3B0aW9uc1swXS5zZWxlY3RlZAogCiAKLWRl
ZiB0ZXN0X2NsaWNrX211bHRpcGxlX2RvZXNfbm90X2Rlc2VsZWN0X290aGVycyhzZXNzaW9uKToK
K2RlZiB0ZXN0X2NsaWNrX211bHRpcGxlX2RvZXNfbm90X2Rlc2VsZWN0X290aGVycyhzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdCBt
dWx0aXBsZT4KICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtMTEyLDcgKzEwOSw3IEBAIGRlZiB0
ZXN0X2NsaWNrX211bHRpcGxlX2RvZXNfbm90X2Rlc2VsZWN0X290aGVycyhzZXNzaW9uKToKICAg
ICBhc3NlcnQgb3B0aW9uc1syXS5zZWxlY3RlZAogCiAKLWRlZiB0ZXN0X2NsaWNrX3NlbGVjdGVk
X29wdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2NsaWNrX3NlbGVjdGVkX29wdGlvbihzZXNzaW9u
LCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdD4K
ICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtMTMwLDcgKzEyNyw3IEBAIGRlZiB0ZXN0X2NsaWNr
X3NlbGVjdGVkX29wdGlvbihzZXNzaW9uKToKICAgICBhc3NlcnQgb3B0aW9uc1sxXS5zZWxlY3Rl
ZAogCiAKLWRlZiB0ZXN0X2NsaWNrX3NlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToK
K2RlZiB0ZXN0X2NsaWNrX3NlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgPHNlbGVjdCBtdWx0aXBsZT4K
ICAgICAgICAgPG9wdGlvbj5maXJzdApAQCAtMTUyLDcgKzE0OSw3IEBAIGRlZiB0ZXN0X2NsaWNr
X3NlbGVjdGVkX211bHRpcGxlX29wdGlvbihzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IG9wdGlv
bnNbMV0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9vdXRfb2Zfdmlld19kcm9wZG93bihzZXNzaW9u
KToKK2RlZiB0ZXN0X291dF9vZl92aWV3X2Ryb3Bkb3duKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8c2VsZWN0PgogICAgICAgICA8b3B0aW9u
PjEKQEAgLTE4Miw3ICsxNzksNyBAQCBkZWYgdGVzdF9vdXRfb2Zfdmlld19kcm9wZG93bihzZXNz
aW9uKToKICAgICBhc3NlcnQgb3B0aW9uc1sxNF0uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9vdXRf
b2Zfdmlld19tdWx0aXBsZShzZXNzaW9uKToKK2RlZiB0ZXN0X291dF9vZl92aWV3X211bHRpcGxl
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICA8
c2VsZWN0IG11bHRpcGxlPgogICAgICAgICA8b3B0aW9uPjEKQEAgLTIxMyw3ICsyMTAsNyBAQCBk
ZWYgdGVzdF9vdXRfb2Zfdmlld19tdWx0aXBsZShzZXNzaW9uKToKICAgICBhc3NlcnQgbGFzdF9v
cHRpb24uc2VsZWN0ZWQKIAogCi1kZWYgdGVzdF9vcHRpb25fZGlzYWJsZWQoc2Vzc2lvbik6Citk
ZWYgdGVzdF9vcHRpb25fZGlzYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdD4KICAgICAgICAgICA8b3B0aW9uIGRpc2Fi
bGVkPmZvbwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9lbGVtZW50X2NsaWNrL3NoYWRvd19kb20ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc2hhZG93X2RvbS5weQppbmRl
eCBiNTJmMjc0MjljMTkuLjQ1NDkzYjczMGQ2OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X2NsaWNrL3NoYWRvd19kb20ucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X2NsaWNrL3NoYWRvd19kb20ucHkKQEAgLTEsNiArMSw1IEBACi1mcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiBpbXBvcnQgcHl0ZXN0Citmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogCiAKIGRl
ZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTAsNyArOSw4IEBAIGRlZiBl
bGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgogICAgICAgICAgICAgZWxlbWVudF9pZD1l
bGVtZW50LmlkKSkKIAogCi1kZWYgZ2V0X2NoZWNrYm94X2RvbSgpOgorQHB5dGVzdC5maXh0dXJl
CitkZWYgZ2V0X2NoZWNrYm94X2RvbShpbmxpbmUpOgogICAgIHJldHVybiBpbmxpbmUoIiIiCiAg
ICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgIGN1c3RvbS1jaGVja2JveC1lbGVtZW50IHsKQEAg
LTMyLDggKzMyLDggQEAgZGVmIGdldF9jaGVja2JveF9kb20oKToKIAogCiBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImNsaWNrX29uIiwgWyJjdXN0b21fZWxlbWVudCIsICJjaGVja2JveF9lbGVt
ZW50Il0pCi1kZWYgdGVzdF9zaGFkb3dfZWxlbWVudF9jbGljayhzZXNzaW9uLCBjbGlja19vbik6
Ci0gICAgc2Vzc2lvbi51cmwgPSBnZXRfY2hlY2tib3hfZG9tKCkKK2RlZiB0ZXN0X3NoYWRvd19l
bGVtZW50X2NsaWNrKHNlc3Npb24sIGdldF9jaGVja2JveF9kb20sIGNsaWNrX29uKToKKyAgICBz
ZXNzaW9uLnVybCA9IGdldF9jaGVja2JveF9kb20KICAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImN1c3RvbS1jaGVja2JveC1lbGVtZW50IiwgYWxsPUZhbHNlKQogICAgIGNo
ZWNrYm94X2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRz
WzBdLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKSIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1lbnQsKSkKQEAg
LTQ3LDcgKzQ3LDggQEAgZGVmIHRlc3Rfc2hhZG93X2VsZW1lbnRfY2xpY2soc2Vzc2lvbiwgY2xp
Y2tfb24pOgogICAgIGFzc2VydCBpc19wb3N0X2NoZWNrZWQgPT0gVHJ1ZQogCiAKLWRlZiBnZXRf
bmVzdGVkX3NoYWRvd19jaGVja2JveF9kb20oKToKK0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9u
ZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbShpbmxpbmUpOgogICAgIHJldHVybiBpbmxpbmUoIiIi
CiAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgIGN1c3RvbS1uZXN0aW5nLWVsZW1lbnQgewpA
QCAtODMsOCArODQsOCBAQCBkZWYgZ2V0X25lc3RlZF9zaGFkb3dfY2hlY2tib3hfZG9tKCk6CiAK
IAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbGlja19vbiIsIFsib3V0ZXJfZWxlbWVudCIs
ICJpbm5lcl9lbGVtZW50IiwgImNoZWNrYm94X2VsZW1lbnQiXSkKLWRlZiB0ZXN0X25lc3RlZF9z
aGFkb3dfZWxlbWVudF9jbGljayhzZXNzaW9uLCBjbGlja19vbik6Ci0gICAgc2Vzc2lvbi51cmwg
PSBnZXRfbmVzdGVkX3NoYWRvd19jaGVja2JveF9kb20oKQorZGVmIHRlc3RfbmVzdGVkX3NoYWRv
d19lbGVtZW50X2NsaWNrKHNlc3Npb24sIGdldF9uZXN0ZWRfc2hhZG93X2NoZWNrYm94X2RvbSwg
Y2xpY2tfb24pOgorICAgIHNlc3Npb24udXJsID0gZ2V0X25lc3RlZF9zaGFkb3dfY2hlY2tib3hf
ZG9tCiAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1uZXN0aW5n
LWVsZW1lbnQiLCBhbGw9RmFsc2UpCiAgICAgaW5uZXJfZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0
ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdj
dXN0b20tY2hlY2tib3gtZWxlbWVudCcpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmdzPShvdXRlcl9lbGVtZW50LCkpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3RhbGUu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRf
Y2xpY2svc3RhbGUucHkKaW5kZXggY2QyNGRkNzA2MDNkLi44ZDJhZTM0OGVmNGYgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9j
bGljay9zdGFsZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2VsZW1lbnRfY2xpY2svc3RhbGUucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVt
ZW50KToKQEAgLTksNyArOCw3IEBAIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQp
OgogICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50LmlkKSkKIAogCi1kZWYgdGVzdF9pc19z
dGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2lzX3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxidXR0b24+Zm9vPC9idXR0b24+IikKICAgICBidXR0b24g
PSBzZXNzaW9uLmZpbmQuY3NzKCJidXR0b24iLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxidXR0b24+YmFyPC9idXR0b24+IikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay9zdXBwb3J0L3Rl
c3RfY2xpY2tfd2RzcGVjLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svc3VwcG9ydC90ZXN0X2NsaWNrX3dkc3BlYy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTk0NTFlYzgyYmVjCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9lbGVtZW50X2NsaWNrL3N1cHBvcnQvdGVzdF9jbGlja193ZHNwZWMuaHRtbApAQCAtMCwwICsx
LDEwMCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8dGl0bGU+VGVzdCBFbGVtZW50IENsaWNrPC90aXRsZT4KKyAgICA8c3R5bGU+
CisgICAgICBkaXYgeyBwYWRkaW5nOjBweDsgbWFyZ2luOiAwcHg7IH0KKyAgICAgICN0cmFja1Bv
aW50ZXIgeyBwb3NpdGlvbjogZml4ZWQ7IH0KKyAgICAgICNyZXN1bHRDb250YWluZXIgeyB3aWR0
aDogNjAwcHg7IGhlaWdodDogNjBweDsgfQorICAgICAgLmFyZWEgeyB3aWR0aDogMTAwcHg7IGhl
aWdodDogNTBweDsgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgfQorICAgICAgLmJsb2NrIHsgd2lk
dGg6IDVweDsgaGVpZ2h0OiA1cHg7IGJvcmRlcjogc29saWQgMXB4IHJlZDsgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICB2YXIgZWxz
ID0ge307CisgICAgICAgIHZhciBhbGxFdmVudHMgPSB7IGV2ZW50czogW10gfTsKKyAgICAgICAg
ZnVuY3Rpb24gZGlzcGxheU1lc3NhZ2UobWVzc2FnZSkgeworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImV2ZW50cyIpLmlubmVySFRNTCA9ICI8cD4iICsgbWVzc2FnZSArICI8
L3A+IjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFwcGVuZE1lc3NhZ2UobWVzc2Fn
ZSkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV2ZW50cyIpLmlubmVy
SFRNTCArPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9wPiI7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiByZWNvcmRQb2ludGVyRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICBpZiAoZXZlbnQu
dHlwZSA9PT0gImNvbnRleHRtZW51IikgeworICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKKyAgICAgICAgICB9CisgICAgICAgICAgYWxsRXZlbnRzLmV2ZW50cy5wdXNoKHsKKyAg
ICAgICAgICAgICJ0eXBlIjogZXZlbnQudHlwZSwKKyAgICAgICAgICAgICJidXR0b24iOiBldmVu
dC5idXR0b24sCisgICAgICAgICAgICAiYnV0dG9ucyI6IGV2ZW50LmJ1dHRvbnMsCisgICAgICAg
ICAgICAicGFnZVgiOiBldmVudC5wYWdlWCwKKyAgICAgICAgICAgICJwYWdlWSI6IGV2ZW50LnBh
Z2VZLAorICAgICAgICAgICAgImN0cmxLZXkiOiBldmVudC5jdHJsS2V5LAorICAgICAgICAgICAg
Im1ldGFLZXkiOiBldmVudC5tZXRhS2V5LAorICAgICAgICAgICAgImFsdEtleSI6IGV2ZW50LmFs
dEtleSwKKyAgICAgICAgICAgICJzaGlmdEtleSI6IGV2ZW50LnNoaWZ0S2V5LAorICAgICAgICAg
ICAgInRhcmdldCI6IGV2ZW50LnRhcmdldC5pZAorICAgICAgICAgIH0pOworICAgICAgICAgIGFw
cGVuZE1lc3NhZ2UoZXZlbnQudHlwZSArICIgIiArCisgICAgICAgICAgICAgICJidXR0b246ICIg
KyBldmVudC5idXR0b24gKyAiLCAiICsKKyAgICAgICAgICAgICAgInBhZ2VYOiAiICsgZXZlbnQu
cGFnZVggKyAiLCAiICsKKyAgICAgICAgICAgICAgInBhZ2VZOiAiICsgZXZlbnQucGFnZVkgKyAi
LCAiICsKKyAgICAgICAgICAgICAgImJ1dHRvbjogIiArIGV2ZW50LmJ1dHRvbiArICIsICIgKwor
ICAgICAgICAgICAgICAiYnV0dG9uczogIiArIGV2ZW50LmJ1dHRvbnMgKyAiLCAiICsKKyAgICAg
ICAgICAgICAgImN0cmxLZXk6ICIgKyBldmVudC5jdHJsS2V5ICsgIiwgIiArCisgICAgICAgICAg
ICAgICJhbHRLZXk6ICIgKyBldmVudC5hbHRLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgIm1l
dGFLZXk6ICIgKyBldmVudC5tZXRhS2V5ICsgIiwgIiArCisgICAgICAgICAgICAgICJzaGlmdEtl
eTogIiArIGV2ZW50LnNoaWZ0S2V5ICsgIiwgIiArCisgICAgICAgICAgICAgICJ0YXJnZXQgaWQ6
ICIgKyBldmVudC50YXJnZXQuaWQpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVj
b3JkRmlyc3RQb2ludGVyTW92ZShldmVudCkgeworICAgICAgICAgIHJlY29yZFBvaW50ZXJFdmVu
dChldmVudCk7CisgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92
ZSIsIHJlY29yZEZpcnN0UG9pbnRlck1vdmUpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcmVzZXRFdmVudHMoKSB7CisgICAgICAgICAgYWxsRXZlbnRzLmV2ZW50cy5sZW5ndGggPSAw
OworICAgICAgICAgIGRpc3BsYXlNZXNzYWdlKCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIG1vdmUoZWwsIG9mZnNldFgsIG9mZnNldFksIHRpbWVvdXQpIHsKKyAgICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgIGVsLnN0eWxlLnRvcCA9IGV2ZW50LmNsaWVudFkgKyBvZmZzZXRZ
ICsgInB4IjsKKyAgICAgICAgICAgICAgZWwuc3R5bGUubGVmdCA9IGV2ZW50LmNsaWVudFggKyBv
ZmZzZXRYICsgInB4IjsKKyAgICAgICAgICAgIH0sIHRpbWVvdXQpOworICAgICAgICAgIH07Cisg
ICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50
TG9hZGVkIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIG91dGVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dGVyIik7CisgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlbW92ZSIsIHJlY29yZEZpcnN0UG9pbnRlck1vdmUpOworICAgICAgICAgIG91dGVyLmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgcmVjb3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBv
dXRlci5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIHJlY29yZFBvaW50ZXJFdmVudCk7Cisg
ICAgICAgICAgb3V0ZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgcmVjb3JkUG9pbnRl
ckV2ZW50KTsKKyAgICAgICAgICBvdXRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgcmVj
b3JkUG9pbnRlckV2ZW50KTsKKyAgICAgICAgICBvdXRlci5hZGRFdmVudExpc3RlbmVyKCJjb250
ZXh0bWVudSIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisKKyAgICAgICAgICAvL3Zpc3VhbCBjdWUg
Zm9yIG1vdXNlbW92ZQorICAgICAgICAgIHZhciBwb2ludGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRyYWNrUG9pbnRlciIpOworICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZW1vdmUiLCBtb3ZlKHBvaW50ZXIsIDE1LCAxNSwgMzApKTsKKyAgICAgICAgfSk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0idHJhY2tQb2ludGVyIiBj
bGFzcz0iYmxvY2siPjwvZGl2PgorICA8ZGl2PgorICAgIDxoMj5DbGlja1JlcG9ydGVyPC9oMj4K
KyAgICA8ZGl2IGlkPSJvdXRlciIgY2xhc3M9ImFyZWEiPgorICAgIDwvZGl2PgorICA8L2Rpdj4K
KyAgPGRpdiBpZD0icmVzdWx0Q29udGFpbmVyIj4KKyAgICA8aDI+RXZlbnRzPC9oMj4KKyAgICA8
ZGl2IGlkPSJldmVudHMiPjwvZGl2PgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVu
dF9jbGljay91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svdXNlcl9wcm9tcHRzLnB5CmluZGV4IGIzNzA2ZmU0
YWYxNi4uMTQwYWNlYjNjZWRmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfY2xpY2svdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9jbGljay91
c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9l
cnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogCiAKIGRlZiBlbGVtZW50X2NsaWNrKHNlc3Npb24sIGVsZW1lbnQpOgpAQCAtMTQsNyAr
MTMsNyBAQCBkZWYgZWxlbWVudF9jbGljayhzZXNzaW9uLCBlbGVtZW50KToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwg
cmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+
IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNl
KQpAQCAtMzIsNyArMzEsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC01MCw3ICs0OSw3IEBA
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2NvbnRlbnRfZWRpdGFibGUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2Vu
ZF9rZXlzL2NvbnRlbnRfZWRpdGFibGUucHkKaW5kZXggMTZlYmMyZDAxOGZiLi43ZjYyOGY5NmE1
M2EgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9zZW5kX2tleXMvY29udGVudF9lZGl0YWJsZS5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2NvbnRl
bnRfZWRpdGFibGUucHkKQEAgLTEsOSArMSw0IEBACi1pbXBvcnQgcHl0ZXN0Ci0KLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQotCi0KLWRlZiB0ZXN0X3NldHNfaW5zZXJ0
aW9uX3BvaW50X3RvX2VuZChzZXNzaW9uKToKK2RlZiB0ZXN0X3NldHNfaW5zZXJ0aW9uX3BvaW50
X3RvX2VuZChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCc8ZGl2
IGNvbnRlbnRlZGl0YWJsZT10cnVlPkhlbGxvLDwvZGl2PicpCiAgICAgaW5wdXQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAgICAgaW5wdXQuc2VuZF9rZXlzKCcgd29ybGQh
JykKQEAgLTE1LDcgKzEwLDcgQEAgZGVmIHRlc3Rfc2V0c19pbnNlcnRpb25fcG9pbnRfdG9fZW5k
KHNlc3Npb24pOgogIwogIyAxMy4gU2V0IHRoZSB0ZXh0IGluc2VydGlvbiBjYXJldCB1c2luZyBz
ZXQgc2VsZWN0aW9uIHJhbmdlIHVzaW5nIGN1cnJlbnQKICMgICAgIHRleHQgbGVuZ3RoIGZvciBi
b3RoIHRoZSBzdGFydCBhbmQgZW5kIHBhcmFtZXRlcnMuCi1kZWYgdGVzdF9zZXRzX2luc2VydGlv
bl9wb2ludF90b19hZnRlcl9sYXN0X3RleHRfbm9kZShzZXNzaW9uKToKK2RlZiB0ZXN0X3NldHNf
aW5zZXJ0aW9uX3BvaW50X3RvX2FmdGVyX2xhc3RfdGV4dF9ub2RlKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoJzxkaXYgY29udGVudGVkaXRhYmxlPXRydWU+SGVs
PHNwYW4+bG88L3NwYW4+LDwvZGl2PicpCiAgICAgaW5wdXQgPSBzZXNzaW9uLmZpbmQuY3NzKCJk
aXYiLCBhbGw9RmFsc2UpCiAgICAgaW5wdXQuc2VuZF9rZXlzKCIgd29ybGQhIikKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9z
ZW5kX2tleXMvZXZlbnRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9ldmVudHMucHkKaW5kZXggNDFiMDBlZjM3ZmEyLi40
YmUxNDMyYmYzYzIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZXZlbnRzLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvZXZlbnRz
LnB5CkBAIC01LDcgKzUsNiBAQCBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAog
ICAgIGFzc2VydF9ldmVudHNfZXF1YWwsCiAgICAgYXNzZXJ0X3N1Y2Nlc3MsCiApCi1mcm9tIHRl
c3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBtYXBfZmls
ZXNfdG9fbXVsdGlsaW5lX3RleHQKIApAQCAtMzEsNyArMzAsNyBAQCBkZWYgZWxlbWVudF9zZW5k
X2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9KQog
CiAKLWRlZiB0ZXN0X2ZpbGVfdXBsb2FkKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgYWRkX2V2ZW50
X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMpOgorZGVmIHRlc3RfZmlsZV91cGxvYWQoc2Vzc2lv
biwgY3JlYXRlX2ZpbGVzLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgaW5s
aW5lKToKICAgICBleHBlY3RlZF9ldmVudHMgPSBbCiAgICAgICAgICJpbnB1dCIsCiAgICAgICAg
ICJjaGFuZ2UiLApAQCAtNTAsNyArNDksNyBAQCBkZWYgdGVzdF9maWxlX3VwbG9hZChzZXNzaW9u
LCBjcmVhdGVfZmlsZXMsIGFkZF9ldmVudF9saXN0ZW5lcnMsIHRyYWNrZWRfZXZlbnRzKQogCiAK
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGFnIiwgWyJpbnB1dCIsICJ0ZXh0YXJlYSJdKQot
ZGVmIHRlc3RfZm9ybV9jb250cm9sX3NlbmRfdGV4dChzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVu
ZXJzLCB0cmFja2VkX2V2ZW50cywgdGFnKToKK2RlZiB0ZXN0X2Zvcm1fY29udHJvbF9zZW5kX3Rl
eHQoc2Vzc2lvbiwgYWRkX2V2ZW50X2xpc3RlbmVycywgdHJhY2tlZF9ldmVudHMsIGlubGluZSwg
dGFnKToKICAgICBleHBlY3RlZF9ldmVudHMgPSBbCiAgICAgICAgICJmb2N1cyIsCiAgICAgICAg
ICJrZXlkb3duIiwKQEAgLTc3LDcgKzc2LDcgQEAgZGVmIHRlc3RfZm9ybV9jb250cm9sX3NlbmRf
dGV4dChzZXNzaW9uLCBhZGRfZXZlbnRfbGlzdGVuZXJzLCB0cmFja2VkX2V2ZW50cywgdGEKIAog
CiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRhZyIsIFsiaW5wdXQiLCAidGV4dGFyZWEiXSkK
LWRlZiB0ZXN0X25vdF9ibHVycmVkKHNlc3Npb24sIHRhZyk6CitkZWYgdGVzdF9ub3RfYmx1cnJl
ZChzZXNzaW9uLCBpbmxpbmUsIHRhZyk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjwlcz4i
ICUgdGFnKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKHRhZywgYWxsPUZhbHNlKQog
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfc2VuZF9rZXlzL2ZpbGVfdXBsb2FkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9maWxlX3VwbG9hZC5weQpp
bmRleCA3ZmJhYjhhNjZhYTQuLmVmNzkyZjRkZDg1NSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9maWxlX3Vw
bG9hZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2VsZW1lbnRfc2VuZF9rZXlzL2ZpbGVfdXBsb2FkLnB5CkBAIC0xLDcgKzEsNiBAQAogaW1wb3J0
IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9y
LCBhc3NlcnRfZmlsZXNfdXBsb2FkZWQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogZnJvbSAuIGltcG9ydCBtYXBfZmlsZXNfdG9fbXVs
dGlsaW5lX3RleHQKIApAQCAtMTQsNyArMTMsNyBAQCBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vz
c2lvbiwgZWxlbWVudCwgdGV4dCk6CiAgICAgICAgIHsidGV4dCI6IHRleHR9KQogCiAKLWRlZiB0
ZXN0X2VtcHR5X3RleHQoc2Vzc2lvbik6CitkZWYgdGVzdF9lbXB0eV90ZXh0KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGU+IikKICAg
ICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTIy
LDcgKzIxLDcgQEAgZGVmIHRlc3RfZW1wdHlfdGV4dChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9m
aWxlcyhzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXMoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsi
Zm9vIiwgImJhciJdKQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZp
bGUgbXVsdGlwbGU+IikKQEAgLTM1LDcgKzM0LDcgQEAgZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXMo
c2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lv
biwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfbGFzdF9wYXRo
X25vdF9mb3VuZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfbXVsdGlwbGVfZmls
ZXNfbGFzdF9wYXRoX25vdF9mb3VuZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAg
ICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iLCAiYmFyIl0pCiAgICAgZmlsZXMuYXBwZW5k
KCJmb28gYmFyIikKIApAQCAtNDksNyArNDgsNyBAQCBkZWYgdGVzdF9tdWx0aXBsZV9maWxlc19s
YXN0X3BhdGhfbm90X2ZvdW5kKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2Zp
bGVzX3VwbG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIFtdKQogCiAKLWRlZiB0ZXN0X211bHRpcGxl
X2ZpbGVzX3dpdGhvdXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6
CitkZWYgdGVzdF9tdWx0aXBsZV9maWxlc193aXRob3V0X211bHRpcGxlX2F0dHJpYnV0ZShzZXNz
aW9uLCBjcmVhdGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJm
b28iLCAiYmFyIl0pCiAKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9Zmls
ZT4iKQpAQCAtNjIsNyArNjEsNyBAQCBkZWYgdGVzdF9tdWx0aXBsZV9maWxlc193aXRob3V0X211
bHRpcGxlX2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxl
c191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBbXSkKIAogCi1kZWYgdGVzdF9tdWx0aXBsZV9m
aWxlc19zZW5kX3R3aWNlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0aXBs
ZV9maWxlc19zZW5kX3R3aWNlKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBm
aXJzdF9maWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKICAgICBzZWNvbmRfZmls
ZXMgPSBjcmVhdGVfZmlsZXMoWyJqb2huIiwgImRvZSJdKQogCkBAIC04MCw3ICs3OSw3IEBAIGRl
ZiB0ZXN0X211bHRpcGxlX2ZpbGVzX3NlbmRfdHdpY2Uoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToK
ICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgZmlyc3RfZmlsZXMg
KyBzZWNvbmRfZmlsZXMpCiAKIAotZGVmIHRlc3RfbXVsdGlwbGVfZmlsZXNfcmVzZXRfd2l0aF9l
bGVtZW50X2NsZWFyKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9tdWx0aXBsZV9m
aWxlc19yZXNldF93aXRoX2VsZW1lbnRfY2xlYXIoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxp
bmUpOgogICAgIGZpcnN0X2ZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIiwgImJhciJdKQogICAg
IHNlY29uZF9maWxlcyA9IGNyZWF0ZV9maWxlcyhbImpvaG4iLCAiZG9lIl0pCiAKQEAgLTEwMiw3
ICsxMDEsNyBAQCBkZWYgdGVzdF9tdWx0aXBsZV9maWxlc19yZXNldF93aXRoX2VsZW1lbnRfY2xl
YXIoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vz
c2lvbiwgZWxlbWVudCwgc2Vjb25kX2ZpbGVzKQogCiAKLWRlZiB0ZXN0X3NpbmdsZV9maWxlKHNl
c3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9zaW5nbGVfZmlsZShzZXNzaW9uLCBjcmVh
dGVfZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKIAog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlPiIpCkBAIC0xMTQsNyAr
MTEzLDcgQEAgZGVmIHRlc3Rfc2luZ2xlX2ZpbGUoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKICAg
ICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxlbWVudCwgZmlsZXMpCiAKIAotZGVm
IHRlc3Rfc2luZ2xlX2ZpbGVfcmVwbGFjZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vz
c2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3NpbmdsZV9maWxlX3JlcGxhY2VzX3dpdGhv
dXRfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAg
ICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkKIAogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlPiIpCkBAIC0xMjksNyArMTI4LDcgQEAgZGVmIHRl
c3Rfc2luZ2xlX2ZpbGVfcmVwbGFjZXNfd2l0aG91dF9tdWx0aXBsZV9hdHRyaWJ1dGUoc2Vzc2lv
biwgY3JlYXRlX2ZpbGVzKToKICAgICBhc3NlcnRfZmlsZXNfdXBsb2FkZWQoc2Vzc2lvbiwgZWxl
bWVudCwgW2ZpbGVzWzFdXSkKIAogCi1kZWYgdGVzdF9zaW5nbGVfZmlsZV9hcHBlbmRzX3dpdGhf
bXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9zaW5n
bGVfZmlsZV9hcHBlbmRzX3dpdGhfbXVsdGlwbGVfYXR0cmlidXRlKHNlc3Npb24sIGNyZWF0ZV9m
aWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyIsICJiYXIiXSkK
IAogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgdHlwZT1maWxlIG11bHRpcGxlPiIp
CkBAIC0xNDQsNyArMTQzLDcgQEAgZGVmIHRlc3Rfc2luZ2xlX2ZpbGVfYXBwZW5kc193aXRoX211
bHRpcGxlX2F0dHJpYnV0ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxl
c191cGxvYWRlZChzZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF90cmFuc3Bh
cmVudChzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfdHJhbnNwYXJlbnQoc2Vzc2lv
biwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9v
Il0pCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0IHR5cGU9ZmlsZSBzdHlsZT0i
b3BhY2l0eTogMCI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIs
IGFsbD1GYWxzZSkKQEAgLTE1NCw3ICsxNTMsNyBAQCBkZWYgdGVzdF90cmFuc3BhcmVudChzZXNz
aW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChzZXNzaW9uLCBl
bGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9vYnNjdXJlZChzZXNzaW9uLCBjcmVhdGVfZmls
ZXMpOgorZGVmIHRlc3Rfb2JzY3VyZWQoc2Vzc2lvbiwgY3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgog
ICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0pCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIiIiCiAgICAgICAgIDxzdHlsZT4KQEAgLTE3OCw3ICsxNzcsNyBAQCBkZWYgdGVzdF9vYnNj
dXJlZChzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRlZChz
ZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9vdXRzaWRlX3ZpZXdwb3J0KHNl
c3Npb24sIGNyZWF0ZV9maWxlcyk6CitkZWYgdGVzdF9vdXRzaWRlX3ZpZXdwb3J0KHNlc3Npb24s
IGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJd
KQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWZpbGUgc3R5bGU9Im1h
cmdpbi1sZWZ0OiAtMTAwdmgiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0xODgsNyArMTg3LDcgQEAgZGVmIHRlc3Rfb3V0c2lkZV92
aWV3cG9ydChzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgogICAgIGFzc2VydF9maWxlc191cGxvYWRl
ZChzZXNzaW9uLCBlbGVtZW50LCBmaWxlcykKIAogCi1kZWYgdGVzdF9oaWRkZW4oc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X2hpZGRlbihzZXNzaW9uLCBjcmVhdGVfZmlsZXMsIGlu
bGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0IHR5cGU9ZmlsZSBoaWRkZW4+IikKICAgICBlbGVtZW50ID0gc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC0xOTgsNyArMTk3LDcgQEAgZGVm
IHRlc3RfaGlkZGVuKHNlc3Npb24sIGNyZWF0ZV9maWxlcyk6CiAgICAgYXNzZXJ0X2ZpbGVzX3Vw
bG9hZGVkKHNlc3Npb24sIGVsZW1lbnQsIGZpbGVzKQogCiAKLWRlZiB0ZXN0X2Rpc3BsYXlfbm9u
ZShzZXNzaW9uLCBjcmVhdGVfZmlsZXMpOgorZGVmIHRlc3RfZGlzcGxheV9ub25lKHNlc3Npb24s
IGNyZWF0ZV9maWxlcywgaW5saW5lKToKICAgICBmaWxlcyA9IGNyZWF0ZV9maWxlcyhbImZvbyJd
KQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCB0eXBlPWZpbGUgc3R5bGU9ImRp
c3BsYXk6IG5vbmUiPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQi
LCBhbGw9RmFsc2UpCkBAIC0yMDksNyArMjA4LDcgQEAgZGVmIHRlc3RfZGlzcGxheV9ub25lKHNl
c3Npb24sIGNyZWF0ZV9maWxlcyk6CiAKIAogQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InN0
cmljdEZpbGVJbnRlcmFjdGFiaWxpdHkiOiBUcnVlfSkKLWRlZiB0ZXN0X3N0cmljdF9oaWRkZW4o
c2Vzc2lvbiwgY3JlYXRlX2ZpbGVzKToKK2RlZiB0ZXN0X3N0cmljdF9oaWRkZW4oc2Vzc2lvbiwg
Y3JlYXRlX2ZpbGVzLCBpbmxpbmUpOgogICAgIGZpbGVzID0gY3JlYXRlX2ZpbGVzKFsiZm9vIl0p
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPWZpbGUgaGlkZGVuPiIpCiAg
ICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMjE5
LDcgKzIxOCw3IEBAIGRlZiB0ZXN0X3N0cmljdF9oaWRkZW4oc2Vzc2lvbiwgY3JlYXRlX2ZpbGVz
KToKIAogCiBAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsic3RyaWN0RmlsZUludGVyYWN0YWJp
bGl0eSI6IFRydWV9KQotZGVmIHRlc3Rfc3RyaWN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uLCBjcmVh
dGVfZmlsZXMpOgorZGVmIHRlc3Rfc3RyaWN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uLCBjcmVhdGVf
ZmlsZXMsIGlubGluZSk6CiAgICAgZmlsZXMgPSBjcmVhdGVfZmlsZXMoWyJmb28iXSkKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgdHlwZT1maWxlIHN0eWxlPSJkaXNwbGF5OiBu
b25lIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZh
bHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9mb3JtX2NvbnRyb2xzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9mb3JtX2NvbnRy
b2xzLnB5CmluZGV4IGU1M2QwNjEwZjFlZC4uMDQwM2RjOTIzNzJlIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlz
L2Zvcm1fY29udHJvbHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9mb3JtX2NvbnRyb2xzLnB5CkBAIC0xLDUgKzEs
NCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lbGVtZW50X2hh
c19mb2N1cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVm
IGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgpAQCAtMTAsNyArOSw3
IEBAIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAgICAg
ICAgeyJ0ZXh0IjogdGV4dH0pCiAKIAotZGVmIHRlc3RfaW5wdXQoc2Vzc2lvbik6CitkZWYgdGVz
dF9pbnB1dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5w
dXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2Up
CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0gIiIKQEAgLTIwLDcgKzE5
LDcgQEAgZGVmIHRlc3RfaW5wdXQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2VsZW1lbnRfaGFzX2Zv
Y3VzKGVsZW1lbnQpCiAKIAotZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbik6CitkZWYgdGVzdF90
ZXh0YXJlYShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGV4
dGFyZWE+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygidGV4dGFyZWEiLCBhbGw9
RmFsc2UpCiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0gIiIKQEAgLTMw
LDcgKzI5LDcgQEAgZGVmIHRlc3RfdGV4dGFyZWEoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2VsZW1l
bnRfaGFzX2ZvY3VzKGVsZW1lbnQpCiAKIAotZGVmIHRlc3RfaW5wdXRfYXBwZW5kKHNlc3Npb24p
OgorZGVmIHRlc3RfaW5wdXRfYXBwZW5kKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dCB2YWx1ZT1hPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmlu
ZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2
YWx1ZSIpID09ICJhIgpAQCAtNDIsNyArNDEsNyBAQCBkZWYgdGVzdF9pbnB1dF9hcHBlbmQoc2Vz
c2lvbik6CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVydHkoInZhbHVlIikgPT0gImFiYyIKIAog
Ci1kZWYgdGVzdF90ZXh0YXJlYV9hcHBlbmQoc2Vzc2lvbik6CitkZWYgdGVzdF90ZXh0YXJlYV9h
cHBlbmQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRleHRh
cmVhPmE8L3RleHRhcmVhPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInRleHRh
cmVhIiwgYWxsPUZhbHNlKQogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5KCJ2YWx1ZSIpID09
ICJhIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9pbnRlcmFjdGFiaWxpdHkucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL2ludGVyYWN0
YWJpbGl0eS5weQppbmRleCAwNzE3NTM3YWU1ZDguLjI3Mzg0M2ZiN2I0NiAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRf
a2V5cy9pbnRlcmFjdGFiaWxpdHkucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9lbGVtZW50X3NlbmRfa2V5cy9pbnRlcmFjdGFiaWxpdHkucHkKQEAg
LTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaWZy
YW1lLCBpbmxpbmUKIAogCiBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwg
dGV4dCk6CkBAIC0xMCw3ICs5LDcgQEAgZGVmIGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVs
ZW1lbnQsIHRleHQpOgogICAgICAgICB7InRleHQiOiB0ZXh0fSkKIAogCi1kZWYgdGVzdF9ib2R5
X2lzX2ludGVyYWN0YWJsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2JvZHlfaXNfaW50ZXJhY3RhYmxl
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAg
IDxib2R5IG9ua2V5cHJlc3M9ImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykudmFsdWUg
Kz0gZXZlbnQua2V5Ij4KICAgICAgICAgICA8aW5wdXQ+CkBAIC0yOSw3ICsyOCw3IEBAIGRlZiB0
ZXN0X2JvZHlfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgogICAgIGFzc2VydCByZXN1bHQucHJv
cGVydHkoInZhbHVlIikgPT0gImZvbyIKIAogCi1kZWYgdGVzdF9kb2N1bWVudF9lbGVtZW50X2lz
X2ludGVyYWN0YWJsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2RvY3VtZW50X2VsZW1lbnRfaXNfaW50
ZXJhY3RhYmxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIi
CiAgICAgICAgIDxodG1sIG9ua2V5cHJlc3M9ImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0
JykudmFsdWUgKz0gZXZlbnQua2V5Ij4KICAgICAgICAgICA8aW5wdXQ+CkBAIC00OSw3ICs0OCw3
IEBAIGRlZiB0ZXN0X2RvY3VtZW50X2VsZW1lbnRfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgog
ICAgIGFzc2VydCByZXN1bHQucHJvcGVydHkoInZhbHVlIikgPT0gImZvbyIKIAogCi1kZWYgdGVz
dF9pZnJhbWVfaXNfaW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3RfaWZyYW1lX2lzX2lu
dGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoaWZyYW1lKCIiIgogICAgICAgICA8Ym9keSBvbmtleXByZXNzPSJkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlICs9IGV2ZW50LmtleSI+CiAgICAgICAgICAgPGlucHV0
PgpAQCAtNzMsNyArNzIsNyBAQCBkZWYgdGVzdF9pZnJhbWVfaXNfaW50ZXJhY3RhYmxlKHNlc3Np
b24pOgogICAgIGFzc2VydCByZXN1bHQucHJvcGVydHkoInZhbHVlIikgPT0gImZvbyIKIAogCi1k
ZWYgdGVzdF90cmFuc3BhcmVudF9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3RfdHJhbnNwYXJl
bnRfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIi
IjxpbnB1dCBzdHlsZT0ib3BhY2l0eTogMCI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtODIsNyArODEsNyBAQCBkZWYgdGVzdF90
cmFuc3BhcmVudF9lbGVtZW50KHNlc3Npb24pOgogICAgIGFzc2VydCBlbGVtZW50LnByb3BlcnR5
KCJ2YWx1ZSIpID09ICJmb28iCiAKIAotZGVmIHRlc3RfcmVhZG9ubHlfZWxlbWVudChzZXNzaW9u
KToKK2RlZiB0ZXN0X3JlYWRvbmx5X2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0IHJlYWRvbmx5PiIpCiAgICAgZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC05MSw3ICs5MCw3IEBAIGRlZiB0
ZXN0X3JlYWRvbmx5X2VsZW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IGVsZW1lbnQucHJvcGVy
dHkoInZhbHVlIikgPT0gIiIKIAogCi1kZWYgdGVzdF9vYnNjdXJlZF9lbGVtZW50KHNlc3Npb24p
OgorZGVmIHRlc3Rfb2JzY3VyZWRfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgPGlucHV0PgogICAgICAgPGRpdiBzdHlsZT0icG9z
aXRpb246IHJlbGF0aXZlOyB0b3A6IC0zZW07IGhlaWdodDogNWVtOyBiYWNrZ3JvdW5kOiBibHVl
OyI+PC9kaXY+CkBAIC0xMDMsNyArMTAyLDcgQEAgZGVmIHRlc3Rfb2JzY3VyZWRfZWxlbWVudChz
ZXNzaW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgidmFsdWUiKSA9PSAiZm9vIgog
CiAKLWRlZiB0ZXN0X25vdF9hX2ZvY3VzYWJsZV9lbGVtZW50KHNlc3Npb24pOgorZGVmIHRlc3Rf
bm90X2FfZm9jdXNhYmxlX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGRpdj5mb288L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKQEAgLTExMSw3ICsxMTAsNyBAQCBkZWYgdGVzdF9ub3Rf
YV9mb2N1c2FibGVfZWxlbWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0ZXN0X2Rpc3BsYXlfbm9uZShz
ZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogbm9uZSI+IiIiKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAt
MTE5LDcgKzExOCw3IEBAIGRlZiB0ZXN0X2Rpc3BsYXlfbm9uZShzZXNzaW9uKToKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJlbGVtZW50IG5vdCBpbnRlcmFjdGFibGUiKQogCiAKLWRlZiB0
ZXN0X3Zpc2liaWxpdHlfaGlkZGVuKHNlc3Npb24pOgorZGVmIHRlc3RfdmlzaWJpbGl0eV9oaWRk
ZW4oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQg
c3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+IiIiKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMTI3LDcgKzEyNiw3IEBAIGRlZiB0ZXN0
X3Zpc2liaWxpdHlfaGlkZGVuKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
ImVsZW1lbnQgbm90IGludGVyYWN0YWJsZSIpCiAKIAotZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24p
OgorZGVmIHRlc3RfaGlkZGVuKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dCBoaWRkZW4+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTEzNSw3ICsxMzQsNyBAQCBkZWYgdGVzdF9oaWRkZW4o
c2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiZWxlbWVudCBub3QgaW50ZXJh
Y3RhYmxlIikKIAogCi1kZWYgdGVzdF9kaXNhYmxlZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Rpc2Fi
bGVkKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGlucHV0
IGRpc2FibGVkPiIiIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBh
bGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2Nyb2xsX2ludG9fdmlldy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMv
c2Nyb2xsX2ludG9fdmlldy5weQppbmRleCAxOGY4N2ZmYWFlYzYuLjIwNWM0ZTMwZTFlZCAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVt
ZW50X3NlbmRfa2V5cy9zY3JvbGxfaW50b192aWV3LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2Nyb2xsX2ludG9f
dmlldy5weQpAQCAtMSw2ICsxLDYgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGlzX2Vs
ZW1lbnRfaW5fdmlld3BvcnQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQorCiAKIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKICAg
ICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKQEAgLTEwLDcgKzEwLDcgQEAgZGVmIGVs
ZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgogICAgICAgICB7InRleHQi
OiB0ZXh0fSkKIAogCi1kZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfbm90X3Njcm9sbGFibGVf
dmlld3BvcnQoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfbm90X3Njcm9s
bGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAtOTk5OXB4O1wiPiIp
CiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBA
IC0yMCw3ICsyMCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9ub3Rfc2Nyb2xsYWJs
ZV92aWV3cG9ydChzZXNzaW9uKToKICAgICBhc3NlcnQgbm90IGlzX2VsZW1lbnRfaW5fdmlld3Bv
cnQoc2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9lbGVtZW50X291dHNpZGVfb2Zfc2Ny
b2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9z
Y3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dCBzdHlsZT1cIm1hcmdpbi10b3A6IDEwMnZoO1wiPiIpCiAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC0zMCw3ICszMCw3
IEBAIGRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Np
b24pOgogICAgIGFzc2VydCBpc19lbGVtZW50X2luX3ZpZXdwb3J0KHNlc3Npb24sIGVsZW1lbnQp
CiAKIAotZGVmIHRlc3Rfb3B0aW9uX3NlbGVjdF9jb250YWluZXJfb3V0c2lkZV9vZl9zY3JvbGxh
YmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRlc3Rfb3B0aW9uX3NlbGVjdF9jb250YWluZXJf
b3V0c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxzZWxlY3Qgc3R5bGU9Im1hcmdpbi10b3A6
IDEwMnZoOyI+CiAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZm9vIj5mb288L29wdGlvbj4KQEAg
LTQ3LDcgKzQ3LDcgQEAgZGVmIHRlc3Rfb3B0aW9uX3NlbGVjdF9jb250YWluZXJfb3V0c2lkZV9v
Zl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgogICAgIGFzc2VydCBpc19lbGVtZW50X2lu
X3ZpZXdwb3J0KHNlc3Npb24sIGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfb3B0aW9uX3N0YXlzX291
dHNpZGVfb2Zfc2Nyb2xsYWJsZV92aWV3cG9ydChzZXNzaW9uKToKK2RlZiB0ZXN0X29wdGlvbl9z
dGF5c19vdXRzaWRlX29mX3Njcm9sbGFibGVfdmlld3BvcnQoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHNlbGVjdCBtdWx0aXBsZSBzdHls
ZT0iaGVpZ2h0OiAxMDV2aDsgbWFyZ2luLXRvcDogMTAwdmg7Ij4KICAgICAgICAgICA8b3B0aW9u
IHZhbHVlPSJmb28iIGlkPSJmb28iIHN0eWxlPSJoZWlnaHQ6IDEwMHZoOyI+Zm9vPC9vcHRpb24+
CkBAIC02Niw3ICs2Niw3IEBAIGRlZiB0ZXN0X29wdGlvbl9zdGF5c19vdXRzaWRlX29mX3Njcm9s
bGFibGVfdmlld3BvcnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IG5vdCBpc19lbGVtZW50X2luX3Zp
ZXdwb3J0KHNlc3Npb24sIG9wdGlvbl9iYXIpCiAKIAotZGVmIHRlc3RfY29udGVudGVkaXRhYmxl
X2VsZW1lbnRfb3V0c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0KHNlc3Npb24pOgorZGVmIHRl
c3RfY29udGVudGVkaXRhYmxlX2VsZW1lbnRfb3V0c2lkZV9vZl9zY3JvbGxhYmxlX3ZpZXdwb3J0
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYgY29udGVu
dGVkaXRhYmxlIHN0eWxlPVwibWFyZ2luLXRvcDogMTAydmg7XCI+PC9kaXY+IikKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQogCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9r
ZXlzL3NlbmRfa2V5cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZWxlbWVudF9zZW5kX2tleXMvc2VuZF9rZXlzLnB5CmluZGV4IGVkZjkxZTc3NjE0OC4u
YWEzOTNlMTZkODE0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3NlbmRfa2V5cy5weQorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2VsZW1lbnRfc2VuZF9rZXlzL3Nl
bmRfa2V5cy5weQpAQCAtNCw3ICs0LDYgQEAgZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IEVsZW1lbnQK
IGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBlbGVtZW50X3NlbmRf
a2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToKQEAgLTE1LDcgKzE0LDcgQEAgZGVmIGVsZW1l
bnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsIHRleHQpOgogICAgICAgICB7InRleHQiOiB0
ZXh0fSkKIAogCi1kZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwKToK
K2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHAsIGlubGluZSk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtMjUsNyArMjQsNyBAQCBkZWYgdGVz
dF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwKToKICAgICAgICAgYXNzZXJ0X2Vy
cm9yKFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSksICJpbnZhbGlkIGFyZ3VtZW50IikKIAog
Ci1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9y
ZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9
RmFsc2UpCiAKQEAgLTM2LDEwICszNSwxNyBAQCBkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVl
KHNlc3Npb24pOgogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBj
bG9zZWRfd2luZG93KToKICAgICBlbGVtZW50ID0gRWxlbWVudCgiZm9vIiwgc2Vzc2lvbikKKyAg
ICByZXNwb25zZSA9IGVsZW1lbnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsICJmb28iKQor
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIG9yaWdp
bmFsX2hhbmRsZSwgZWxlbWVudCA9IGNsb3NlZF93aW5kb3cKICAgICByZXNwb25zZSA9IGVsZW1l
bnRfc2VuZF9rZXlzKHNlc3Npb24sIGVsZW1lbnQsICJmb28iKQogICAgIGFzc2VydF9lcnJvcihy
ZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9
IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lv
biwgZWxlbWVudCwgImZvbyIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBl
bGVtZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3Nl
ZF9mcmFtZSk6CiAgICAgZWxlbWVudCA9IEVsZW1lbnQoImZvbyIsIHNlc3Npb24pCkBAIC00OSw3
ICs1NSw3IEBAIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2Zy
YW1lKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZhbHVlIiwgW1RydWUsIE5vbmUs
IDEsIFtdLCB7fV0pCi1kZWYgdGVzdF9pbnZhbGlkX3RleHRfdHlwZShzZXNzaW9uLCB2YWx1ZSk6
CitkZWYgdGVzdF9pbnZhbGlkX3RleHRfdHlwZShzZXNzaW9uLCBpbmxpbmUsIHZhbHVlKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogCkBAIC01Nyw3ICs2Myw3IEBAIGRlZiB0ZXN0
X2ludmFsaWRfdGV4dF90eXBlKHNlc3Npb24sIHZhbHVlKToKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikKIAogCi1kZWYgdGVzdF9zdGFsZV9lbGVtZW50KHNl
c3Npb24pOgorZGVmIHRlc3Rfc3RhbGVfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvdXNlcl9wcm9tcHRz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9lbGVtZW50
X3NlbmRfa2V5cy91c2VyX3Byb21wdHMucHkKaW5kZXggNjIxYmRmZmE2NjQyLi5jMTA0Njg0MGZh
NGUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZWxlbWVudF9zZW5kX2tleXMvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZWxlbWVudF9zZW5kX2tleXMvdXNlcl9wcm9t
cHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBv
cnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVkLCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgZWxlbWVudF9zZW5kX2tleXMoc2Vzc2lvbiwgZWxlbWVudCwgdGV4dCk6CkBAIC0xNSw3
ICsxNCw3IEBAIGRlZiBlbGVtZW50X3NlbmRfa2V5cyhzZXNzaW9uLCBlbGVtZW50LCB0ZXh0KToK
IAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dCB0eXBlPXRleHQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0
IiwgYWxsPUZhbHNlKQpAQCAtMzMsNyArMzIsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRl
c3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwp
OgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAg
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCkBAIC01
MSw3ICs1MCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2NyaXB0L2NvbGxl
Y3Rpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
eGVjdXRlX2FzeW5jX3NjcmlwdC9jb2xsZWN0aW9ucy5weQppbmRleCA0ODRhMjQ3Y2ZmZDkuLjJk
YzliOWEwMDlhYyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9jb2xsZWN0aW9ucy5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfYXN5bmNfc2Ny
aXB0L2NvbGxlY3Rpb25zLnB5CkBAIC0xLDkgKzEsNiBAQAogaW1wb3J0IG9zCiAKLWZyb20gc2l4
IGltcG9ydCB0ZXh0X3R5cGUKLQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwg
c2NyaXB0LCBhcmdzPU5vbmUpOgpAQCAtMzUsNyArMzIsNyBAQCBkZWYgdGVzdF9hcnJheShzZXNz
aW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgWzEsIDJdKQogCiAKLWRlZiB0ZXN0
X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIpOgorZGVmIHRlc3RfZmlsZV9saXN0KHNlc3Npb24s
IHRtcGRpciwgaW5saW5lKToKICAgICBmaWxlcyA9IFt0bXBkaXIuam9pbigiZm9vLnR4dCIpLCB0
bXBkaXIuam9pbigiYmFyLnR4dCIpXQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dCB0eXBlPWZpbGUgbXVsdGlwbGU+IikKQEAgLTU0LDExICs1MSwxMSBAQCBkZWYgdGVzdF9maWxl
X2xpc3Qoc2Vzc2lvbiwgdG1wZGlyKToKICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAo
ZmlsZXMsIHZhbHVlKToKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWN0dWFsLCBkaWN0KQog
ICAgICAgICBhc3NlcnQgIm5hbWUiIGluIGFjdHVhbAotICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShhY3R1YWxbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShh
Y3R1YWxbIm5hbWUiXSwgc3RyKQogICAgICAgICBhc3NlcnQgb3MucGF0aC5iYXNlbmFtZShzdHIo
ZXhwZWN0ZWQpKSA9PSBhY3R1YWxbIm5hbWUiXQogCiAKLWRlZiB0ZXN0X2h0bWxfYWxsX2NvbGxl
Y3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9uKHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwPmZvbwogICAg
ICAgICA8cD5iYXIKQEAgLTg2LDcgKzgzLDcgQEAgZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVjdGlv
bihzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIHBzWzFdLCB2YWx1
ZVs1XSkKIAogCi1kZWYgdGVzdF9odG1sX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9o
dG1sX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAgICAgIDxwPmJhcgpAQCAtMTA0LDcgKzEwMSw3IEBA
IGRlZiB0ZXN0X2h0bWxfY29sbGVjdGlvbihzZXNzaW9uKToKICAgICAgICAgYXNzZXJ0X3NhbWVf
ZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQogCiAKLWRlZiB0ZXN0X2h0bWxfZm9y
bV9jb250cm9sc19jb2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRy
b2xzX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPGZvcm0+CiAgICAgICAgICAgICA8aW5wdXQ+CkBAIC0xMjQsNyArMTIx
LDcgQEAgZGVmIHRlc3RfaHRtbF9mb3JtX2NvbnRyb2xzX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAg
ICAgICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAog
Ci1kZWYgdGVzdF9odG1sX29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0
bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIiIiCiAgICAgICAgIDxzZWxlY3Q+CiAgICAgICAgICAgICA8b3B0aW9uPgpAQCAt
MTQ0LDcgKzE0MSw3IEBAIGRlZiB0ZXN0X2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uKHNlc3Npb24p
OgogICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwp
CiAKIAotZGVmIHRlc3Rfbm9kZV9saXN0KHNlc3Npb24pOgorZGVmIHRlc3Rfbm9kZV9saXN0KHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxw
PmZvbwogICAgICAgICA8cD5iYXIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvZXhlY3V0ZV9hc3luYy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9h
c3luY19zY3JpcHQvZXhlY3V0ZV9hc3luYy5weQppbmRleCBjNzY5Y2E4MTFlZTAuLjU3NDZlZDZm
MDVmMyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9leGVjdXRlX2FzeW5jX3NjcmlwdC9leGVjdXRlX2FzeW5jLnB5CisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQv
ZXhlY3V0ZV9hc3luYy5weQpAQCAtMSw4ICsxLDEwIEBACiBpbXBvcnQgcHl0ZXN0CiAKK2Zyb20g
d2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgogZnJvbSB3ZWJkcml2
ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcworZnJvbSB0ZXN0cy5zdXBwb3J0
LnN5bmMgaW1wb3J0IFBvbGwKIAogCiBkZWYgZXhlY3V0ZV9hc3luY19zY3JpcHQoc2Vzc2lvbiwg
c2NyaXB0LCBhcmdzPU5vbmUpOgpAQCAtNTAsOSArNTIsMTYgQEAgZGVmIHRlc3RfYWJvcnRfYnlf
dXNlcl9wcm9tcHRfdHdpY2Uoc2Vzc2lvbiwgZGlhbG9nX3R5cGUpOgogCiAgICAgc2Vzc2lvbi5h
bGVydC5hY2NlcHQoKQogCi0gICAgIyBUaGUgZmlyc3QgYWxlcnQgaGFzIGJlZW4gYWNjZXB0ZWQg
YnkgdGhlIHVzZXIgcHJvbXB0IGhhbmRsZXIsIHRoZSBzZWNvbmQgb25lIHJlbWFpbnMuCi0gICAg
IyBGSVhNRTogdGhpcyBpcyBob3cgYnJvd3NlcnMgY3VycmVudGx5IHdvcmssIGJ1dCB0aGUgc3Bl
YyBzaG91bGQgY2xhcmlmeSBpZiB0aGlzIGlzIHRoZQotICAgICMgICAgICAgIGV4cGVjdGVkIGJl
aGF2aW9yLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzExNTMu
Ci0gICAgYXNzZXJ0IHNlc3Npb24uYWxlcnQudGV4dCA9PSAiQnllIgorICAgICMgVGhlIGZpcnN0
IGFsZXJ0IGhhcyBiZWVuIGFjY2VwdGVkIGJ5IHRoZSB1c2VyIHByb21wdCBoYW5kbGVyLCB0aGUg
c2Vjb25kCisgICAgIyBhbGVydCB3aWxsIHN0aWxsIGJlIG9wZW5lZCBiZWNhdXNlIHRoZSBjdXJy
ZW50IHN0ZXAgaXNuJ3QgYWJvcnRlZC4KKyAgICB3YWl0ID0gUG9sbCgKKyAgICAgICAgc2Vzc2lv
biwKKyAgICAgICAgdGltZW91dD01LAorICAgICAgICBtZXNzYWdlPSJTZWNvbmQgYWxlcnQgaGFz
IG5vdCBiZWVuIG9wZW5lZCIsCisgICAgICAgIGlnbm9yZWRfZXhjZXB0aW9ucz1Ob1N1Y2hBbGVy
dEV4Y2VwdGlvbgorICAgICkKKyAgICB0ZXh0ID0gd2FpdC51bnRpbChsYW1iZGEgczogcy5hbGVy
dC50ZXh0KQorCisgICAgYXNzZXJ0IHRleHQgPT0gIkJ5ZSIKIAogICAgIHNlc3Npb24uYWxlcnQu
YWNjZXB0KCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvcHJvcGVydGllcy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvcHJv
cGVydGllcy5weQppbmRleCAzOTRhZTMyOTRjZDMuLmU1MWIzZTNlYTU3OSAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX2FzeW5j
X3NjcmlwdC9wcm9wZXJ0aWVzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9hc3luY19zY3JpcHQvcHJvcGVydGllcy5weQpAQCAtMSw1
ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc2FtZV9l
bGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNlc3Npb24sIHNjcmlwdCwgYXJn
cz1Ob25lKToKQEAgLTExLDcgKzEwLDcgQEAgZGVmIGV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNlc3Np
b24sIHNjcmlwdCwgYXJncz1Ob25lKToKICAgICAgICAgYm9keSkKIAogCi1kZWYgdGVzdF9jb250
ZW50X2F0dHJpYnV0ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB2YWx1ZT1mb29i
YXI+IikKICAgICByZXNwb25zZSA9IGV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNlc3Npb24sICIiIgog
ICAgICAgICBjb25zdCByZXNvbHZlID0gYXJndW1lbnRzWzBdOwpAQCAtMjEsNyArMjAsNyBAQCBk
ZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2Vzcyhy
ZXNwb25zZSwgImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uKToK
K2RlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiIiIKICAgICAgICAgPGlucHV0PgogICAgICAgICA8c2NyaXB0PgpAQCAtMzcs
NyArMzYsNyBAQCBkZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRlX2Vs
ZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9pZGxfYXR0cmlidXRlX2VsZW1lbnQoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPHA+Zm9vCiAg
ICAgICAgIDxwPmJhcgpAQCAtNTksNyArNTgsNyBAQCBkZWYgdGVzdF9pZGxfYXR0cmlidXRlX2Vs
ZW1lbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBiYXIsIHZh
bHVlKQogCiAKLWRlZiB0ZXN0X3NjcmlwdF9kZWZpbmluZ19wcm9wZXJ0eShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X3NjcmlwdF9kZWZpbmluZ19wcm9wZXJ0eShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCIiIgogICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0
Iik7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2V4ZWN1dGVfc2NyaXB0L2NvbGxlY3Rpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9jb2xsZWN0aW9ucy5weQppbmRl
eCBiZTBiM2EwMThjNTAuLjgyOTFmZDcxMzg4YiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9leGVjdXRlX3NjcmlwdC9jb2xsZWN0aW9ucy5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1
dGVfc2NyaXB0L2NvbGxlY3Rpb25zLnB5CkBAIC0xLDkgKzEsNiBAQAogaW1wb3J0IG9zCiAKLWZy
b20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKLQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1w
b3J0IGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBv
cnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwg
c2NyaXB0LCBhcmdzPU5vbmUpOgpAQCAtMzEsNyArMjgsNyBAQCBkZWYgdGVzdF9hcnJheShzZXNz
aW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgWzEsIDJdKQogCiAKLWRlZiB0ZXN0
X2ZpbGVfbGlzdChzZXNzaW9uLCB0bXBkaXIpOgorZGVmIHRlc3RfZmlsZV9saXN0KHNlc3Npb24s
IHRtcGRpciwgaW5saW5lKToKICAgICBmaWxlcyA9IFt0bXBkaXIuam9pbigiZm9vLnR4dCIpLCB0
bXBkaXIuam9pbigiYmFyLnR4dCIpXQogCiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dCB0eXBlPWZpbGUgbXVsdGlwbGU+IikKQEAgLTQ3LDExICs0NCwxMSBAQCBkZWYgdGVzdF9maWxl
X2xpc3Qoc2Vzc2lvbiwgdG1wZGlyKToKICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAo
ZmlsZXMsIHZhbHVlKToKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWN0dWFsLCBkaWN0KQog
ICAgICAgICBhc3NlcnQgIm5hbWUiIGluIGFjdHVhbAotICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShhY3R1YWxbIm5hbWUiXSwgdGV4dF90eXBlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShh
Y3R1YWxbIm5hbWUiXSwgc3RyKQogICAgICAgICBhc3NlcnQgb3MucGF0aC5iYXNlbmFtZShzdHIo
ZXhwZWN0ZWQpKSA9PSBhY3R1YWxbIm5hbWUiXQogCiAKLWRlZiB0ZXN0X2h0bWxfYWxsX2NvbGxl
Y3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1sX2FsbF9jb2xsZWN0aW9uKHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxwPmZvbwogICAg
ICAgICA8cD5iYXIKQEAgLTc2LDcgKzczLDcgQEAgZGVmIHRlc3RfaHRtbF9hbGxfY29sbGVjdGlv
bihzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIHBzWzFdLCB2YWx1
ZVs1XSkKIAogCi1kZWYgdGVzdF9odG1sX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9o
dG1sX2NvbGxlY3Rpb24oc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIiIKICAgICAgICAgPHA+Zm9vCiAgICAgICAgIDxwPmJhcgpAQCAtOTEsNyArODgsNyBAQCBk
ZWYgdGVzdF9odG1sX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAgICAgICAgIGFzc2VydF9zYW1lX2Vs
ZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAogCi1kZWYgdGVzdF9odG1sX2Zvcm1f
Y29udHJvbHNfY29sbGVjdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2h0bWxfZm9ybV9jb250cm9s
c19jb2xsZWN0aW9uKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IiIiCiAgICAgICAgIDxmb3JtPgogICAgICAgICAgICAgPGlucHV0PgpAQCAtMTA4LDcgKzEwNSw3
IEBAIGRlZiB0ZXN0X2h0bWxfZm9ybV9jb250cm9sc19jb2xsZWN0aW9uKHNlc3Npb24pOgogICAg
ICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGV4cGVjdGVkLCBhY3R1YWwpCiAKIAot
ZGVmIHRlc3RfaHRtbF9vcHRpb25zX2NvbGxlY3Rpb24oc2Vzc2lvbik6CitkZWYgdGVzdF9odG1s
X29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0g
aW5saW5lKCIiIgogICAgICAgICA8c2VsZWN0PgogICAgICAgICAgICAgPG9wdGlvbj4KQEAgLTEy
NSw3ICsxMjIsNyBAQCBkZWYgdGVzdF9odG1sX29wdGlvbnNfY29sbGVjdGlvbihzZXNzaW9uKToK
ICAgICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBleHBlY3RlZCwgYWN0dWFsKQog
CiAKLWRlZiB0ZXN0X25vZGVfbGlzdChzZXNzaW9uKToKK2RlZiB0ZXN0X25vZGVfbGlzdChzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5m
b28KICAgICAgICAgPHA+YmFyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2N5Y2xpYy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvY3ljbGljLnB5
CmluZGV4IDE2YmRjZGQxZGVhNS4uZTMwOTRmODlmM2I3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1dGVfc2NyaXB0L2N5Y2xpYy5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2V4ZWN1
dGVfc2NyaXB0L2N5Y2xpYy5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9z
dWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYg
ZXhlY3V0ZV9zY3JpcHQoc2Vzc2lvbiwgc2NyaXB0LCBhcmdzPU5vbmUpOgpAQCAtNDksNyArNDgs
NyBAQCBkZWYgdGVzdF9vYmplY3RfaW5fYXJyYXkoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAiamF2YXNjcmlwdCBlcnJvciIpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9pbl9j
b2xsZWN0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfZWxlbWVudF9pbl9jb2xsZWN0aW9uKHNlc3Np
b24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PC9kaXY+IikKICAg
ICBkaXZzID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IikKIApAQCAtNjMsNyArNjIsNyBAQCBkZWYg
dGVzdF9lbGVtZW50X2luX2NvbGxlY3Rpb24oc2Vzc2lvbik6CiAgICAgICAgIGFzc2VydF9zYW1l
X2VsZW1lbnQoc2Vzc2lvbiwgZXhwZWN0ZWQsIGFjdHVhbCkKIAogCi1kZWYgdGVzdF9lbGVtZW50
X2luX29iamVjdChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfaW5fb2JqZWN0KHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PC9kaXY+IikKICAgICBk
aXYgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQv
ZXhlY3V0ZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
ZXhlY3V0ZV9zY3JpcHQvZXhlY3V0ZS5weQppbmRleCBiZDcxOWIyNzg1OWUuLjBmOTM0Y2JiNDQ1
MCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9leGVjdXRlX3NjcmlwdC9leGVjdXRlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvZXhlY3V0ZS5weQpAQCAtMSw5ICsx
LDkgQEAKIGltcG9ydCBweXRlc3QKIAorZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3Vj
aEFsZXJ0RXhjZXB0aW9uCiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNl
CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGZyb20g
dGVzdHMuc3VwcG9ydC5zeW5jIGltcG9ydCBQb2xsCiAKIApAQCAtMzQsNyArMzQsNyBAQCBkZWYg
dGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X29wZW5p
bmdfbmV3X3dpbmRvd19rZWVwc19jdXJyZW50X3dpbmRvd19oYW5kbGUoc2Vzc2lvbik6CitkZWYg
dGVzdF9vcGVuaW5nX25ld193aW5kb3dfa2VlcHNfY3VycmVudF93aW5kb3dfaGFuZGxlKHNlc3Np
b24sIGlubGluZSk6CiAgICAgb3JpZ2luYWxfaGFuZGxlID0gc2Vzc2lvbi53aW5kb3dfaGFuZGxl
CiAgICAgb3JpZ2luYWxfaGFuZGxlcyA9IHNlc3Npb24uaGFuZGxlcwogCkBAIC01Nyw3ICs1Nyw3
IEBAIGRlZiB0ZXN0X2VuZGluZ19jb21tZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlLCAxKQogCiAKLWRlZiB0ZXN0X292ZXJyaWRlX2xpc3RlbmVycyhzZXNzaW9uKToK
K2RlZiB0ZXN0X292ZXJyaWRlX2xpc3RlbmVycyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogPHNjcmlwdD4KIGNhbGxlZCA9IFtdOwpAQCAtODgsOSArODgs
MTYgQEAgZGVmIHRlc3RfYWJvcnRfYnlfdXNlcl9wcm9tcHRfdHdpY2Uoc2Vzc2lvbiwgZGlhbG9n
X3R5cGUpOgogCiAgICAgc2Vzc2lvbi5hbGVydC5hY2NlcHQoKQogCi0gICAgIyBUaGUgZmlyc3Qg
YWxlcnQgaGFzIGJlZW4gYWNjZXB0ZWQgYnkgdGhlIHVzZXIgcHJvbXB0IGhhbmRsZXIsIHRoZSBz
ZWNvbmQgb25lIHJlbWFpbnMuCi0gICAgIyBGSVhNRTogdGhpcyBpcyBob3cgYnJvd3NlcnMgY3Vy
cmVudGx5IHdvcmssIGJ1dCB0aGUgc3BlYyBzaG91bGQgY2xhcmlmeSBpZiB0aGlzIGlzIHRoZQot
ICAgICMgICAgICAgIGV4cGVjdGVkIGJlaGF2aW9yLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWJkcml2ZXIvaXNzdWVzLzExNTMuCi0gICAgYXNzZXJ0IHNlc3Npb24uYWxlcnQudGV4dCA9
PSAiQnllIgorICAgICMgVGhlIGZpcnN0IGFsZXJ0IGhhcyBiZWVuIGFjY2VwdGVkIGJ5IHRoZSB1
c2VyIHByb21wdCBoYW5kbGVyLCB0aGUgc2Vjb25kCisgICAgIyBhbGVydCB3aWxsIHN0aWxsIGJl
IG9wZW5lZCBiZWNhdXNlIHRoZSBjdXJyZW50IHN0ZXAgaXNuJ3QgYWJvcnRlZC4KKyAgICB3YWl0
ID0gUG9sbCgKKyAgICAgICAgc2Vzc2lvbiwKKyAgICAgICAgdGltZW91dD01LAorICAgICAgICBt
ZXNzYWdlPSJTZWNvbmQgYWxlcnQgaGFzIG5vdCBiZWVuIG9wZW5lZCIsCisgICAgICAgIGlnbm9y
ZWRfZXhjZXB0aW9ucz1Ob1N1Y2hBbGVydEV4Y2VwdGlvbgorICAgICkKKyAgICB0ZXh0ID0gd2Fp
dC51bnRpbChsYW1iZGEgczogcy5hbGVydC50ZXh0KQorCisgICAgYXNzZXJ0IHRleHQgPT0gIkJ5
ZSIKIAogICAgIHNlc3Npb24uYWxlcnQuYWNjZXB0KCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvcHJvcGVydGll
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0
ZV9zY3JpcHQvcHJvcGVydGllcy5weQppbmRleCAyYmU0ZjFmM2NjYzkuLjUxOTk5OTM2ZTcxYSAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9l
eGVjdXRlX3NjcmlwdC9wcm9wZXJ0aWVzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZXhlY3V0ZV9zY3JpcHQvcHJvcGVydGllcy5weQpAQCAtMSw1
ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc2FtZV9l
bGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIGV4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIHNjcmlwdCwgYXJncz1Ob25l
KToKQEAgLTExLDcgKzEwLDcgQEAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlc3Npb24sIHNjcmlwdCwg
YXJncz1Ob25lKToKICAgICAgICAgYm9keSkKIAogCi1kZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0
ZShzZXNzaW9uKToKK2RlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24sIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB2YWx1ZT1mb29iYXI+IikKICAgICBy
ZXNwb25zZSA9IGV4ZWN1dGVfc2NyaXB0KHNlc3Npb24sICIiIgogICAgICAgICBjb25zdCBpbnB1
dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7CkBAIC0yMCw3ICsxOSw3IEBAIGRl
ZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlLCAiZm9vYmFyIikKIAogCi1kZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24pOgor
ZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQ+CiAgICAgICAgIDxzY3JpcHQ+CkBAIC0zNSw3
ICszNCw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UsICJmb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxl
bWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxlbWVudChzZXNzaW9uLCBp
bmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8cD5mb28KICAg
ICAgICAgPHA+YmFyCkBAIC01Niw3ICs1NSw3IEBAIGRlZiB0ZXN0X2lkbF9hdHRyaWJ1dGVfZWxl
bWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGJhciwgdmFs
dWUpCiAKIAotZGVmIHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24pOgorZGVm
IHRlc3Rfc2NyaXB0X2RlZmluaW5nX3Byb3BlcnR5KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGV4ZWN1dGVfc2NyaXB0KHNlc3Npb24s
ICIiIgogICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0
Iik7CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnQvZmluZC5weQppbmRleCA5ZjA5MTFkNTZkYzAuLjQ1
MTA2MTdkYTVhNiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9maW5kX2VsZW1lbnQvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC9maW5kLnB5CkBAIC0zLDcgKzMs
NiBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3Bv
bnNlCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zYW1lX2VsZW1lbnQsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5s
aW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIHVzaW5nLCB2
YWx1ZSk6CkBAIC00OCw3ICs0Nyw3IEBAIGRlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1l
bnQoc2Vzc2lvbiwgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwg
bGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRh
ZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvL2Ei
KV0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKK2RlZiB0
ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgIyBT
dGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxhIGhyZWY9IyBpZD1saW5rVGV4
dD5mdWxsIGxpbmsgdGV4dDwvYT4iKQogCkBAIC02NCw3ICs2Myw3IEBAIGRlZiB0ZXN0X2ZpbmRf
ZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPkxJTksgVEVY
VDwvYT4iLCAiTElOSyBURVhUIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNm
b3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4iLCAiTElOSyBURVhUIiksCiBdKQotZGVmIHRl
c3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVm
IHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNzaW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2
YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoZG9jdW1l
bnQpCiAKQEAgLTgxLDcgKzgwLDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChz
ZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBU
RVhUPC9hPiIsICJMSU5LIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3Jt
OiB1cHBlcmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPiIsICJMSU5LIiksCiBdKQotZGVmIHRl
c3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1
ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5s
aW5lLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKGRvY3VtZW50KQogCkBAIC0xMDIsNyArMTAxLDcgQEAgZGVmIHRlc3Rfbm9fZWxl
bWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAo
InBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0
aCIsICIvLypbbmFtZSgpPSdhJ10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lv
biwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxp
bmUsIHVzaW5nLCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPGEgaHJlZj0i
IyIgaWQ9ImxpbmtUZXh0Ij5mdWxsIGxpbmsgdGV4dDwvYT4iIiIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LmxpbmtzWzBdIikKQEAgLTExNiw3ICsxMTUsNyBAQCBk
ZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICBbKCJjc3Mgc2VsZWN0b3IiLCAiOnJvb3QiKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJodG1sIiksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgieHBhdGgiLCAiL2h0bWwiKV0pCi1kZWYgdGVzdF9odG1sZG9jdW1lbnQoc2Vzc2lv
biwgdXNpbmcsIHZhbHVlKToKK2RlZiB0ZXN0X2h0bWxkb2N1bWVudChzZXNzaW9uLCBpbmxpbmUs
IHVzaW5nLCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIpCiAgICAgcmVzcG9u
c2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKQogICAgIGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnQvdXNlcl9wcm9tcHRz
LnB5CmluZGV4IDYxMzQ2NmI2MmI1MS4uYWRhOGU4ZWJlZTMzIDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudC91c2VyX3By
b21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CkBAIC04LDcgKzgsNiBAQCBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFzc2VydF9zdWNjZXNzLAogICAgIGFzc2Vy
dF9kaWFsb2dfaGFuZGxlZCwKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToKQEAgLTE4
LDcgKzE3LDcgQEAgZGVmIGZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHA+YmFyPC9w
PiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQpA
QCAtMzYsNyArMzUsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHA+YmFyPC9wPiIpCiAKQEAgLTUxLDcgKzUwLDcgQEAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xv
c2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cs
IGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5iYXI8
L3A+IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L2ZpbmQucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX2VsZW1lbnQv
ZmluZC5weQppbmRleCBhYTY0ODExNzk3NmIuLjg3OWRlMzcxM2Y5OSAxMDA2NDQKLS0tIGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJv
bV9lbGVtZW50L2ZpbmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L2ZpbmQucHkKQEAgLTMsNyArMyw2
IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9u
c2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNz
ZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxp
bmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgZWxlbWVudF9p
ZCwgdXNpbmcsIHZhbHVlKToKQEAgLTE0LDcgKzEzLDcgQEAgZGVmIGZpbmRfZWxlbWVudChzZXNz
aW9uLCBlbGVtZW50X2lkLCB1c2luZywgdmFsdWUpOgogICAgICAgICB7InVzaW5nIjogdXNpbmcs
ICJ2YWx1ZSI6IHZhbHVlfSkKIAogCi1kZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNz
aW9uLCBodHRwKToKK2RlZiB0ZXN0X251bGxfcGFyYW1ldGVyX3ZhbHVlKHNlc3Npb24sIGh0dHAs
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PGEgaHJlZj0jIGlkPWxp
bmtUZXh0PmZ1bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKIApAQCAtNTQsNyArNTMsNyBAQCBkZWYgdGVzdF9p
bnZhbGlkX3NlbGVjdG9yX2FyZ3VtZW50KHNlc3Npb24sIHZhbHVlKToKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRleHQiKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgieHBhdGgiLCAiLy9hIildKQotZGVmIHRlc3RfZmluZF9lbGVtZW50KHNlc3Npb24s
IHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnQoc2Vzc2lvbiwgaW5saW5lLCB1
c2luZywgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC03MCw3
ICs2OSw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUpOgog
ICAgICgiPGEgaHJlZj0jPkxJTksgVEVYVDwvYT4iLCAiTElOSyBURVhUIiksCiAgICAgKCI8YSBo
cmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4iLCAi
TElOSyBURVhUIiksCiBdKQotZGVmIHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNzaW9u
LCBkb2N1bWVudCwgdmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNz
aW9uLCBpbmxpbmUsIGRvY3VtZW50LCB2YWx1ZSk6CiAgICAgIyBTdGVwIDggLSA5CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC04OCw3ICs4
Nyw3IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQs
IHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4iLCAiTElOSyIp
LAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5wYXJ0
aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRfZWxlbWVudF9w
YXJ0aWFsX2xpbmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVmIHRlc3RfZmlu
ZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZh
bHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj57
MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTk4LDcgKzk3LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVt
ZW50X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CiAKIAogQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyx2YWx1ZSIsIFsoImNzcyBzZWxlY3RvciIsICIj
d29udEV4aXN0IildKQotZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCB1c2luZywgdmFsdWUp
OgorZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCBpbmxpbmUsIHVzaW5nLCB2YWx1ZSk6CiAg
ICAgIyBTdGVwIDggLSA5CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PC9kaXY+IikK
ICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtMTEy
LDcgKzExMSw3IEBAIGRlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKToK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxpbmsgdGV4dCIsICJsaW5rIHRl
eHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcgbmFtZSIsICJhIiksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy8qW25hbWUoKT0nYSddIildKQotZGVm
IHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF94
aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywgdmFsdWUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIjxwPjxhIGhyZWY9IiMiIGlkPSJsaW5rVGV4dCI+ZnVsbCBsaW5r
IHRleHQ8L2E+PC9wPiIiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0eXBlPSJ4aHRt
bCIpCiAgICAgZnJvbV9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgiIiJyZXR1cm4g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigicCIpIiIiKQpAQCAtMTIzLDcgKzEyMiw3IEBAIGRlZiB0
ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgIGFzc2VydF9z
YW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVkKQogCiAKLWRlZiB0ZXN0X3BhcmVu
dF9odG1sZG9jdW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIpCiAgICAgZnJvbV9l
bGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgiIiJyZXR1cm4gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiYm9keSIpIiIiKQogICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3Njcmlw
dCgicmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCIpCkBAIC0xMzMsNyArMTMyLDcgQEAg
ZGVmIHRlc3RfcGFyZW50X2h0bWxkb2N1bWVudChzZXNzaW9uKToKICAgICBhc3NlcnRfc2FtZV9l
bGVtZW50KHNlc3Npb24sIHZhbHVlLCBleHBlY3RlZCkKIAogCi1kZWYgdGVzdF9wYXJlbnRfb2Zf
ZG9jdW1lbnRfbm9kZV9lcnJvcnMoc2Vzc2lvbik6CitkZWYgdGVzdF9wYXJlbnRfb2ZfZG9jdW1l
bnRfbm9kZV9lcnJvcnMoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiIikKICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L3Vz
ZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZmluZF9lbGVtZW50X2Zyb21fZWxlbWVudC91c2VyX3Byb21wdHMucHkKaW5kZXggM2ZkYWY0
ZTQ3ZWQ3Li4wNTM3YTc4NjE4OWMgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50X2Zyb21fZWxlbWVudC91c2VyX3Byb21w
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnRfZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQpAQCAtOCw3ICs4LDYgQEAg
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0ICgKICAgICBhc3NlcnRfc3VjY2VzcywK
ICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsCiApCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZmluZF9lbGVtZW50KHNlc3Npb24sIGVsZW1lbnRfaWQs
IHVzaW5nLCB2YWx1ZSk6CkBAIC0yMCw3ICsxOSw3IEBAIGRlZiBmaW5kX2VsZW1lbnQoc2Vzc2lv
biwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVlKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRl
X2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAg
b3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTM5
LDcgKzM4LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVj
a191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTU1LDcgKzU0LDcgQEAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9u
b3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8
ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCiAgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L2Nv
bmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI4ZmM5MzMxOWY0MwotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50
X2Zyb21fc2hhZG93X3Jvb3QvY29uZnRlc3QucHkKQEAgLTAsMCArMSwxOSBAQAoraW1wb3J0IHB5
dGVzdAorCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBnZXRfc2hhZG93X3BhZ2UoaW5saW5lKToKKyAg
ICBkZWYgZ2V0X3NoYWRvd19wYWdlKHNoYWRvd19jb250ZW50KToKKyAgICAgICAgcmV0dXJuIGlu
bGluZSgiIiIKKyAgICAgICAgICAgIDxjdXN0b20tc2hhZG93LWVsZW1lbnQ+PC9jdXN0b20tc2hh
ZG93LWVsZW1lbnQ+CisgICAgICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnY3VzdG9tLXNoYWRvdy1lbGVtZW50JywKKyAgICAgICAgICAgICAg
ICAgICAgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7eworICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3RydWN0b3IoKSB7eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBl
cigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7
e21vZGU6ICdvcGVuJ319KS5pbm5lckhUTUwgPSBgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7eyB7MH0gfX0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQorICAgICAgICAgICAgICAgICAgICB9fSk7
CisgICAgICAgICAgICA8L3NjcmlwdD4iIiIuZm9ybWF0KHNoYWRvd19jb250ZW50KSkKKyAgICBy
ZXR1cm4gZ2V0X3NoYWRvd19wYWdlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L2ZpbmQu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudF9mcm9tX3NoYWRvd19yb290L2ZpbmQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi44Nzk0MWQ0OTVlMTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRv
d19yb290L2ZpbmQucHkKQEAgLTAsMCArMSwxNDEgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3
ZWJkcml2ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQorCitmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRf
c3VjY2VzcworCisKK2RlZiBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X2lkLCB1c2luZywg
dmFsdWUpOgorICAgIHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiUE9T
VCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRvd19pZH0vZWxlbWVudCIuZm9y
bWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAg
ICAgICBzaGFkb3dfaWQ9c2hhZG93X2lkKSwKKyAgICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFs
dWUiOiB2YWx1ZX0pCisKKworZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwg
aHR0cCwgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFn
ZSgiPGRpdj48YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikK
KyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxl
bWVudCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRv
d19yb290CisKKyAgICBwYXRoID0gIi9zZXNzaW9uL3tzZXNzaW9uX2lkfS9zaGFkb3cve3NoYWRv
d19pZH0vZWxlbWVudCIuZm9ybWF0KAorICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lv
bl9pZCwgc2hhZG93X2lkPXNoYWRvd19yb290LmlkKQorICAgIHdpdGggaHR0cC5wb3N0KHBhdGgs
IE5vbmUpIGFzIHJlc3BvbnNlOgorICAgICAgICBhc3NlcnRfZXJyb3IoUmVzcG9uc2UuZnJvbV9o
dHRwKHJlc3BvbnNlKSwgImludmFsaWQgYXJndW1lbnQiKQorCisKK2RlZiB0ZXN0X25vX3RvcF9i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIHJlc3BvbnNlID0g
ZmluZF9lbGVtZW50KHNlc3Npb24sICJub3RSZWFsIiwgImNzcyBzZWxlY3RvciIsICJmb28iKQor
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKKworCitkZWYgdGVz
dF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CisgICAgcmVzcG9u
c2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgIm5vdFJlYWwiLCAiY3NzIHNlbGVjdG9yIiwgImZv
byIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQorCisKK0Bw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgidXNpbmciLCBbImEiLCBUcnVlLCBOb25lLCAxLCBbXSwg
e31dKQorZGVmIHRlc3RfaW52YWxpZF91c2luZ19hcmd1bWVudChzZXNzaW9uLCB1c2luZyk6Cisg
ICAgIyBTdGVwIDEgLSAyCisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgIm5v
dFJlYWwiLCB1c2luZywgInZhbHVlIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZh
bGlkIGFyZ3VtZW50IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZhbHVlIiwgW05v
bmUsIFtdLCB7fV0pCitkZWYgdGVzdF9pbnZhbGlkX3NlbGVjdG9yX2FyZ3VtZW50KHNlc3Npb24s
IHZhbHVlKToKKyAgICAjIFN0ZXAgMyAtIDQKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChz
ZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCB2YWx1ZSkKKyAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikKKworCitkZWYgdGVzdF9kZXRhY2hlZF9z
aGFkb3dfcm9vdChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24udXJsID0g
Z2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPjwvZGl2PiIpCisg
ICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1l
bnQiLCBhbGw9RmFsc2UpCisgICAgc2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3df
cm9vdAorICAgIHNlc3Npb24ucmVmcmVzaCgpCisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVu
dChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyIsICJpbnB1dCIpCisgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAiZGV0YWNoZWQgc2hhZG93IHJvb3QiKQorCisKK2RlZiB0ZXN0X2ZvdW5k
X2VsZW1lbnRfZXF1aXZhbGVuY2Uoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBzZXNz
aW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz48
L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNo
YWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lu
cHV0JykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0
b21fZWxlbWVudCwpKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jv
b3QKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwg
ImNzcyIsICJpbnB1dCIpCisgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAg
ICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIHZhbHVlLCBleHBlY3RlZCkKKworCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBbKCJjc3Mgc2VsZWN0b3IiLCAiI2xpbmtUZXh0IiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICgibGluayB0ZXh0IiwgImZ1bGwgbGluayB0ZXh0IiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICgicGFydGlhbCBsaW5rIHRleHQiLCAibGluayB0ZXh0IiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICgidGFnIG5hbWUiLCAiYSIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInhwYXRoIiwgIi8vYSIpXSkKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudChzZXNzaW9uLCBn
ZXRfc2hhZG93X3BhZ2UsIHVzaW5nLCB2YWx1ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vz
c2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1
bGwgbGluayB0ZXh0PC9hPjwvZGl2PiIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0ZWQg
PSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignI2xpbmtUZXh0JykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwpKQorICAgIHNoYWRvd19yb290ID0gY3Vz
dG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNz
aW9uLCBzaGFkb3dfcm9vdC5pZCwgdXNpbmcsIHZhbHVlKQorICAgIGFzc2VydF9zdWNjZXNzKHJl
c3BvbnNlKQorICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgdmFsdWUsIGV4cGVjdGVk
KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUiLCBbCisgICAg
KCI8YSBocmVmPSM+bGluayB0ZXh0PC9hPiIsICJsaW5rIHRleHQiKSwKKyAgICAoIjxhIGhyZWY9
Iz4mbmJzcDtsaW5rIHRleHQmbmJzcDs8L2E+IiwgImxpbmsgdGV4dCIpLAorICAgICgiPGEgaHJl
Zj0jPmxpbms8YnI+dGV4dDwvYT4iLCAibGlua1xudGV4dCIpLAorICAgICgiPGEgaHJlZj0jPmxp
bmsmYW1wO3RleHQ8L2E+IiwgImxpbmsmdGV4dCIpLAorICAgICgiPGEgaHJlZj0jPkxJTksgVEVY
VDwvYT4iLCAiTElOSyBURVhUIiksCisgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNm
b3JtOiB1cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4iLCAiTElOSyBURVhUIiksCitdKQorZGVmIHRl
c3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UsIGRvY3Vt
ZW50LCB2YWx1ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hh
ZG93X3BhZ2UoIjxkaXY+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQorICAgIGN1c3RvbV9l
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZh
bHNlKQorICAgIGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3Vt
ZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKVswXSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGN1c3RvbV9lbGVtZW50LCkpCisgICAg
c2hhZG93X3Jvb3QgPSBjdXN0b21fZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAgcmVzcG9uc2Ug
PSBmaW5kX2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJsaW5rIHRleHQiLCB2YWx1
ZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnRfc2FtZV9lbGVtZW50
KHNlc3Npb24sIHZhbHVlLCBleHBlY3RlZCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImRvY3VtZW50LHZhbHVlIiwgWworICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayB0ZXh0PC9h
PiIsICJsaW5rIiksCisgICAgKCI8YSBocmVmPSM+Jm5ic3A7cGFydGlhbCBsaW5rIHRleHQmbmJz
cDs8L2E+IiwgImxpbmsiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4i
LCAiayB0IiksCisgICAgKCI8YSBocmVmPSM+cGFydGlhbCBsaW5rPGJyPnRleHQ8L2E+IiwgImtc
bnQiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbmsmYW1wO3RleHQ8L2E+IiwgImsmdCIp
LAorICAgICgiPGEgaHJlZj0jPlBBUlRJQUwgTElOSyBURVhUPC9hPiIsICJMSU5LIiksCisgICAg
KCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPnBhcnRpYWwgbGlu
ayB0ZXh0PC9hPiIsICJMSU5LIiksCitdKQorZGVmIHRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxf
bGlua190ZXh0KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgZG9jdW1lbnQsIHZhbHVlKToKKyAg
ICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj57
MH08L2Rpdj4iLmZvcm1hdChkb2N1bWVudCkpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgZXhwZWN0
ZWQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvckFsbCgnYScpWzBdIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXJncz0oY3VzdG9tX2VsZW1lbnQsKSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1
c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChz
ZXNzaW9uLCBzaGFkb3dfcm9vdC5pZCwgInBhcnRpYWwgbGluayB0ZXh0IiwgdmFsdWUpCisgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9u
LCB2YWx1ZSwgZXhwZWN0ZWQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyx2
YWx1ZSIsIFsoImNzcyBzZWxlY3RvciIsICIjd29udEV4aXN0IildKQorZGVmIHRlc3Rfbm9fZWxl
bWVudChzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UsIHVzaW5nLCB2YWx1ZSk6CisgICAgIyBTdGVw
IDggLSA5CisgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PC9kaXY+IikK
KyAgICBjdXN0b21fZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxl
bWVudCIsIGFsbD1GYWxzZSkKKyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRv
d19yb290CisKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfcm9v
dC5pZCwgdXNpbmcsIHZhbHVlKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2gg
ZWxlbWVudCIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2ZpbmRfZWxlbWVudF9mcm9tX3NoYWRvd19yb290L3VzZXJfcHJvbXB0cy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50
X2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uMzgxM2E3ZGY1ZDMyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9z
aGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkKQEAgLTAsMCArMSwxMjkgQEAKKyMgTUVUQTogdGlt
ZW91dD1sb25nCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0ICgKKyAgICBhc3NlcnRfZXJyb3IsCisgICAgYXNzZXJ0X3NhbWVfZWxlbWVudCwKKyAg
ICBhc3NlcnRfc3VjY2VzcywKKyAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsCispCisKKworZGVm
IGZpbmRfZWxlbWVudChzZXNzaW9uLCBzaGFkb3dfaWQsIHVzaW5nLCB2YWx1ZSk6CisgICAgcmV0
dXJuIHNlc3Npb24udHJhbnNwb3J0LnNlbmQoCisgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nl
c3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lkfS9lbGVtZW50Ii5mb3JtYXQoCisgICAgICAgICAg
ICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAgIGVsZW1lbnRfaWQ9
c2hhZG93X2lkKSwKKyAgICAgICAgeyJ1c2luZyI6IHVzaW5nLCAidmFsdWUiOiB2YWx1ZX0pCisK
KworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGdldF9zaGFkb3dfcGFnZSk6CisgICAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlw
ZSwgcmV0dmFsKToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+
PHA+YmFyPC9wPjxkaXY+IikKKyAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24uZmluZC5j
c3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICAgICAgc2hhZG93X3Jv
b3QgPSBvdXRlcl9lbGVtZW50LnNoYWRvd19yb290CisgICAgICAgIGlubmVyX2VsZW1lbnQgPSBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcigncCcpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJncz0ob3V0ZXJfZWxlbWVudCwpKQorCisgICAgICAgIGNyZWF0ZV9kaWFsb2co
ZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBmaW5k
X2VsZW1lbnQoc2Vzc2lvbiwgc2hhZG93X3Jvb3QuaWQsICJjc3Mgc2VsZWN0b3IiLCAicCIpCisg
ICAgICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisKKyAgICAgICAgYXNzZXJ0
X2RpYWxvZ19oYW5kbGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVj
dGVkX3JldHZhbD1yZXR2YWwpCisKKyAgICAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9u
LCB2YWx1ZSwgaW5uZXJfZWxlbWVudCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywg
Z2V0X3NoYWRvd19wYWdlKToKKyAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgICAgICBzZXNzaW9uLnVybCA9IGdl
dF9zaGFkb3dfcGFnZSgiPGRpdj48cD5iYXI8L3A+PGRpdj4iKQorICAgICAgICBvdXRlcl9lbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNl
KQorICAgICAgICBzaGFkb3dfcm9vdCA9IG91dGVyX2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAg
ICAgICBjcmVhdGVfZGlhbG9nKGRpYWxvZ190eXBlLCB0ZXh0PWRpYWxvZ190eXBlKQorCisgICAg
ICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3Nz
IHNlbGVjdG9yIiwgInAiKQorICAgICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJ1bmV4cGVj
dGVkIGFsZXJ0IG9wZW4iKQorCisgICAgICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9u
LCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQorCisg
ICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbgorCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgor
ICAgICAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48cD5iYXI8L3A+PGRp
dj4iKQorICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNo
YWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgICAgICBzaGFkb3dfcm9vdCA9IG91dGVyX2Vs
ZW1lbnQuc2hhZG93X3Jvb3QKKworICAgICAgICBjcmVhdGVfZGlhbG9nKGRpYWxvZ190eXBlLCB0
ZXh0PWRpYWxvZ190eXBlKQorCisgICAgICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50KHNlc3Np
b24sIHNoYWRvd19yb290LmlkLCAiY3NzIHNlbGVjdG9yIiwgInAiKQorICAgICAgICBhc3NlcnRf
ZXJyb3IocmVzcG9uc2UsICJ1bmV4cGVjdGVkIGFsZXJ0IG9wZW4iKQorCisgICAgICAgIGFzc2Vy
dCBzZXNzaW9uLmFsZXJ0LnRleHQgPT0gZGlhbG9nX3R5cGUKKyAgICAgICAgc2Vzc2lvbi5hbGVy
dC5kaXNtaXNzKCkKKworICAgIHJldHVybiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24KKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJv
bXB0QmVoYXZpb3IiOiAiYWNjZXB0In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxv
Z190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIs
IFRydWUpLAorICAgICgicHJvbXB0IiwgIiIpLAorXSkKK2RlZiB0ZXN0X2FjY2VwdChjaGVja191
c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwp
OgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2df
dHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQ
cm9tcHRCZWhhdmlvciI6ICJhY2NlcHQgYW5kIG5vdGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAg
ICAoImNvbmZpcm0iLCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10pCitkZWYgdGVzdF9h
Y2NlcHRfYW5kX25vdGlmeShjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24s
IGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmls
aXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJkaXNtaXNzIn0pCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAgKCJhbGVydCIsIE5v
bmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21wdCIsIE5vbmUpLAorXSkK
K2RlZiB0ZXN0X2Rpc21pc3MoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsu
Y2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlzbWlzcyBhbmQgbm90
aWZ5In0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBb
CisgICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInBy
b21wdCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2Rpc21pc3NfYW5kX25vdGlmeShjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAg
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhh
dmlvciI6ICJpZ25vcmUifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUi
LCBbImFsZXJ0IiwgImNvbmZpcm0iLCAicHJvbXB0Il0pCitkZWYgdGVzdF9pZ25vcmUoY2hlY2tf
dXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSk6CisgICAg
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKQor
CisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAg
ICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgicHJvbXB0
IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGVmYXVsdChjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1l
bnRzL2ZpbmQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2ZpbmRfZWxlbWVudHMvZmluZC5weQppbmRleCBjMTM4MWEwZTgyYWMuLjQ3ZjAwOTczOTM4NSAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
aW5kX2VsZW1lbnRzL2ZpbmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzL2ZpbmQucHkKQEAgLTMsNyArMyw2IEBAIGltcG9y
dCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJv
bSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3NhbWVf
ZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CkBA
IC00OCw3ICs0Nyw3IEBAIGRlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lv
biwgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0
IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwg
ImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvL2EiKV0pCi1kZWYg
dGVzdF9maW5kX2VsZW1lbnRzKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9maW5k
X2VsZW1lbnRzKHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAt
IDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0jIGlkPWxpbmtUZXh0PmZ1bGwg
bGluayB0ZXh0PC9hPiIpCiAKQEAgLTY1LDcgKzY0LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50
cyhzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICgiPGEgaHJlZj0jPkxJTksgVEVYVDwvYT4i
LCAiTElOSyBURVhUIiksCiAgICAgKCI8YSBocmVmPSMgc3R5bGU9J3RleHQtdHJhbnNmb3JtOiB1
cHBlcmNhc2UnPmxpbmsgdGV4dDwvYT4iLCAiTElOSyBURVhUIiksCiBdKQotZGVmIHRlc3RfZmlu
ZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2RlZiB0ZXN0
X2ZpbmRfZWxlbWVudHNfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZhbHVl
KToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0j
Pm5vdCB3YW50ZWQ8L2E+PGJyLz57MH0iLmZvcm1hdChkb2N1bWVudCkpCiAgICAgZXhwZWN0ZWQg
PSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQubGlua3NbMV07IikKQEAg
LTg4LDcgKzg3LDcgQEAgZGVmIHRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHQoc2Vzc2lvbiwg
ZG9jdW1lbnQsIHZhbHVlKToKICAgICAoIjxhIGhyZWY9Iz5QQVJUSUFMIExJTksgVEVYVDwvYT4i
LCAiTElOSyIpLAogICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJj
YXNlJz5wYXJ0aWFsIGxpbmsgdGV4dDwvYT4iLCAiTElOSyIpLAogXSkKLWRlZiB0ZXN0X2ZpbmRf
ZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9jdW1lbnQsIHZhbHVlKToKK2Rl
ZiB0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBk
b2N1bWVudCwgdmFsdWUpOgogICAgICMgU3RlcCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8YSBocmVmPSM+bm90IHdhbnRlZDwvYT48YnIvPnswfSIuZm9ybWF0KGRvY3VtZW50KSkK
ICAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5s
aW5rc1sxXTsiKQpAQCAtMTE2LDcgKzExNSw3IEBAIGRlZiB0ZXN0X25vX2VsZW1lbnQoc2Vzc2lv
biwgdXNpbmcsIHZhbHVlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwYXJ0aWFsIGxp
bmsgdGV4dCIsICJsaW5rIHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0YWcg
bmFtZSIsICJhIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgieHBhdGgiLCAiLy8qW25h
bWUoKT0nYSddIildKQotZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5nLCB2
YWx1ZSk6CitkZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgaW5saW5lLCB1c2luZywg
dmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIjxhIGhyZWY9IiMiIGlkPSJsaW5r
VGV4dCI+ZnVsbCBsaW5rIHRleHQ8L2E+IiIiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3R5cGU9InhodG1sIikKICAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiBkb2N1bWVudC5saW5rc1swXTsiKQpAQCAtMTM0LDcgKzEzMyw3IEBAIGRlZiB0ZXN0X3ho
dG1sX25hbWVzcGFjZShzZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgIFsoImNzcyBzZWxlY3RvciIsICI6cm9vdCIpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInRhZyBuYW1lIiwgImh0bWwiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4
cGF0aCIsICIvaHRtbCIpXSkKLWRlZiB0ZXN0X2h0bWxkb2N1bWVudChzZXNzaW9uLCB1c2luZywg
dmFsdWUpOgorZGVmIHRlc3RfaHRtbGRvY3VtZW50KHNlc3Npb24sIGlubGluZSwgdXNpbmcsIHZh
bHVlKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikKICAgICByZXNwb25zZSA9IGZpbmRf
ZWxlbWVudHMoc2Vzc2lvbiwgdXNpbmcsIHZhbHVlKQogICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nl
c3MocmVzcG9uc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHMvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzL3VzZXJfcHJvbXB0
cy5weQppbmRleCAwMWViOGZmM2M4NjMuLmY5YTQ1ZTUyNzUxNSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzL3VzZXJf
cHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2ZpbmRfZWxlbWVudHMvdXNlcl9wcm9tcHRzLnB5CkBAIC04LDcgKzgsNiBAQCBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFzc2VydF9zdWNjZXNzLAogICAgIGFz
c2VydF9kaWFsb2dfaGFuZGxlZCwKICkKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CkBA
IC0xOCw3ICsxNyw3IEBAIGRlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6
CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxp
bmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24o
ZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5i
YXI8L3A+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoInAiLCBhbGw9RmFs
c2UpCkBAIC0zOCw3ICszNyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJl
Ci1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5iYXI8L3A+IikKIApAQCAtNTMsNyArNTIsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxw
PmJhcjwvcD4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L2ZpbmQucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9l
bGVtZW50L2ZpbmQucHkKaW5kZXggNWMyNjdiYTY0NzllLi5hZTZmOTc2ZTlmOTcgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVt
ZW50c19mcm9tX2VsZW1lbnQvZmluZC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9lbGVtZW50L2ZpbmQucHkKQEAg
LTMsNyArMyw2IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyLnRyYW5zcG9ydCBpbXBv
cnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9l
cnJvciwgYXNzZXJ0X3NhbWVfZWxlbWVudCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24s
IGVsZW1lbnRfaWQsIHVzaW5nLCB2YWx1ZSk6CkBAIC0xNCw3ICsxMyw3IEBAIGRlZiBmaW5kX2Vs
ZW1lbnRzKHNlc3Npb24sIGVsZW1lbnRfaWQsIHVzaW5nLCB2YWx1ZSk6CiAgICAgICAgIHsidXNp
bmciOiB1c2luZywgInZhbHVlIjogdmFsdWV9KQogCiAKLWRlZiB0ZXN0X251bGxfcGFyYW1ldGVy
X3ZhbHVlKHNlc3Npb24sIGh0dHApOgorZGVmIHRlc3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vz
c2lvbiwgaHR0cCwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48YSBo
cmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8L2E+PC9kaXY+IikKICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQogCkBAIC01NCw3ICs1Myw3IEBA
IGRlZiB0ZXN0X2ludmFsaWRfc2VsZWN0b3JfYXJndW1lbnQoc2Vzc2lvbiwgdmFsdWUpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRpYWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAoInRhZyBuYW1lIiwgImEiKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIvL2EiKV0pCi1kZWYgdGVzdF9maW5kX2VsZW1l
bnRzKHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRzKHNlc3Np
b24sIGlubGluZSwgdXNpbmcsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiPGRpdj48YSBocmVmPSMgaWQ9bGlua1RleHQ+ZnVsbCBsaW5rIHRleHQ8
L2E+PC9kaXY+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZh
bHNlKQpAQCAtNzAsNyArNjksNyBAQCBkZWYgdGVzdF9maW5kX2VsZW1lbnRzKHNlc3Npb24sIHVz
aW5nLCB2YWx1ZSk6CiAgICAgKCI8YSBocmVmPSM+TElOSyBURVhUPC9hPiIsICJMSU5LIFRFWFQi
KSwKICAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+bGlu
ayB0ZXh0PC9hPiIsICJMSU5LIFRFWFQiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRzX2xp
bmtfdGV4dChzZXNzaW9uLCBkb2N1bWVudCwgdmFsdWUpOgorZGVmIHRlc3RfZmluZF9lbGVtZW50
c19saW5rX3RleHQoc2Vzc2lvbiwgaW5saW5lLCBkb2N1bWVudCwgdmFsdWUpOgogICAgICMgU3Rl
cCA4IC0gOQogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9Iz5ub3Qgd2Fu
dGVkPC9hPjxici8+ezB9PC9kaXY+Ii5mb3JtYXQoZG9jdW1lbnQpKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJkaXYiLCBhbGw9RmFsc2UpCkBAIC05NCw3ICs5Myw3IEBAIGRlZiB0
ZXN0X2ZpbmRfZWxlbWVudHNfbGlua190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CiAg
ICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+IiwgIkxJTksiKSwKICAgICAoIjxh
IGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRl
eHQ8L2E+IiwgIkxJTksiKSwKIF0pCi1kZWYgdGVzdF9maW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlu
a190ZXh0KHNlc3Npb24sIGRvY3VtZW50LCB2YWx1ZSk6CitkZWYgdGVzdF9maW5kX2VsZW1lbnRz
X3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGlubGluZSwgZG9jdW1lbnQsIHZhbHVlKToKICAg
ICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj48YSBocmVmPSM+
bm90IHdhbnRlZDwvYT48YnIvPnswfTwvZGl2PiIuZm9ybWF0KGRvY3VtZW50KSkKICAgICBlbGVt
ZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZhbHNlKQpAQCAtMTEwLDcgKzEwOSw3
IEBAIGRlZiB0ZXN0X2ZpbmRfZWxlbWVudHNfcGFydGlhbF9saW5rX3RleHQoc2Vzc2lvbiwgZG9j
dW1lbnQsIHZhbHVlKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzaW5nLHZhbHVl
IiwgWygiY3NzIHNlbGVjdG9yIiwgIiN3b250RXhpc3QiKV0pCi1kZWYgdGVzdF9ub19lbGVtZW50
KHNlc3Npb24sIHVzaW5nLCB2YWx1ZSk6CitkZWYgdGVzdF9ub19lbGVtZW50KHNlc3Npb24sIGlu
bGluZSwgdXNpbmcsIHZhbHVlKToKICAgICAjIFN0ZXAgOCAtIDkKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPGRpdj48L2Rpdj4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJk
aXYiLCBhbGw9RmFsc2UpCkBAIC0xMjQsNyArMTIzLDcgQEAgZGVmIHRlc3Rfbm9fZWxlbWVudChz
ZXNzaW9uLCB1c2luZywgdmFsdWUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAoInBhcnRp
YWwgbGluayB0ZXh0IiwgImxpbmsgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAo
InRhZyBuYW1lIiwgImEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ4cGF0aCIsICIv
LypbbmFtZSgpPSdhJ10iKV0pCi1kZWYgdGVzdF94aHRtbF9uYW1lc3BhY2Uoc2Vzc2lvbiwgdXNp
bmcsIHZhbHVlKToKK2RlZiB0ZXN0X3hodG1sX25hbWVzcGFjZShzZXNzaW9uLCBpbmxpbmUsIHVz
aW5nLCB2YWx1ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPHA+PGEgaHJlZj0iIyIg
aWQ9ImxpbmtUZXh0Ij5mdWxsIGxpbmsgdGV4dDwvYT48L3A+IiIiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3R5cGU9InhodG1sIikKICAgICBmcm9tX2VsZW1lbnQgPSBzZXNzaW9uLmV4
ZWN1dGVfc2NyaXB0KCIiInJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwIikiIiIpCkBA
IC0xMzksNyArMTM4LDcgQEAgZGVmIHRlc3RfeGh0bWxfbmFtZXNwYWNlKHNlc3Npb24sIHVzaW5n
LCB2YWx1ZSk6CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBmb3VuZF9lbGVtZW50
LCBleHBlY3RlZCkKIAogCi1kZWYgdGVzdF9wYXJlbnRfaHRtbGRvY3VtZW50KHNlc3Npb24pOgor
ZGVmIHRlc3RfcGFyZW50X2h0bWxkb2N1bWVudChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiKQogICAgIGZyb21fZWxlbWVudCA9IHNlc3Npb24uZXhlY3V0ZV9z
Y3JpcHQoIiIicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKSIiIikKICAgICBl
eHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQiKQpAQCAtMTUzLDcgKzE1Miw3IEBAIGRlZiB0ZXN0X3BhcmVudF9odG1sZG9jdW1l
bnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBmb3VuZF9lbGVt
ZW50LCBleHBlY3RlZCkKIAogCi1kZWYgdGVzdF9wYXJlbnRfb2ZfZG9jdW1lbnRfbm9kZV9lcnJv
cnMoc2Vzc2lvbik6CitkZWYgdGVzdF9wYXJlbnRfb2ZfZG9jdW1lbnRfbm9kZV9lcnJvcnMoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIikKICAgICBmcm9tX2Vs
ZW1lbnQgPSBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxlbWVudC91c2VyX3Byb21wdHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNf
ZnJvbV9lbGVtZW50L3VzZXJfcHJvbXB0cy5weQppbmRleCBjYTdiYzc3MzVkMDguLjQ2N2JlYzA5
YTFiZCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fZWxlbWVudC91c2VyX3Byb21wdHMucHkKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zy
b21fZWxlbWVudC91c2VyX3Byb21wdHMucHkKQEAgLTgsNyArOCw2IEBAIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCAoCiAgICAgYXNzZXJ0X3N1Y2Nlc3MsCiAgICAgYXNzZXJ0X2Rp
YWxvZ19oYW5kbGVkLAogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5l
CiAKIAogZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgZWxlbWVudF9pZCwgdXNpbmcsIHZhbHVl
KToKQEAgLTIwLDcgKzE5LDcgQEAgZGVmIGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgZWxlbWVudF9p
ZCwgdXNpbmcsIHZhbHVlKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTQxLDcgKzQwLDcgQEAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUo
IjxkaXY+PHA+YmFyPC9wPjxkaXY+IikKICAgICAgICAgb3V0ZXJfZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKQEAgLTU3LDcgKzU2LDcgQEAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToK
IAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGlu
ZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxwPmJhcjwv
cD48ZGl2PiIpCiAgICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJkaXYi
LCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC9jb25mdGVzdC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50
c19mcm9tX3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uYjhmYzkzMzE5ZjQzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zyb21fc2hh
ZG93X3Jvb3QvY29uZnRlc3QucHkKQEAgLTAsMCArMSwxOSBAQAoraW1wb3J0IHB5dGVzdAorCitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiBnZXRfc2hhZG93X3BhZ2UoaW5saW5lKToKKyAgICBkZWYgZ2V0
X3NoYWRvd19wYWdlKHNoYWRvd19jb250ZW50KToKKyAgICAgICAgcmV0dXJuIGlubGluZSgiIiIK
KyAgICAgICAgICAgIDxjdXN0b20tc2hhZG93LWVsZW1lbnQ+PC9jdXN0b20tc2hhZG93LWVsZW1l
bnQ+CisgICAgICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgICAgIGN1c3RvbUVsZW1lbnRz
LmRlZmluZSgnY3VzdG9tLXNoYWRvdy1lbGVtZW50JywKKyAgICAgICAgICAgICAgICAgICAgY2xh
c3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7eworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Ry
dWN0b3IoKSB7eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBlcigpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7e21vZGU6ICdv
cGVuJ319KS5pbm5lckhUTUwgPSBgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7eyB7MH0gfX0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9fQorICAgICAgICAgICAgICAgICAgICB9fSk7CisgICAgICAg
ICAgICA8L3NjcmlwdD4iIiIuZm9ybWF0KHNoYWRvd19jb250ZW50KSkKKyAgICByZXR1cm4gZ2V0
X3NoYWRvd19wYWdlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL2ZpbmRfZWxlbWVudHNfZnJvbV9zaGFkb3dfcm9vdC9maW5kLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1lbnRzX2Zy
b21fc2hhZG93X3Jvb3QvZmluZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmY3MGE0YjQ1YWFkYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290
L2ZpbmQucHkKQEAgLTAsMCArMSwxNDQgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2
ZXIudHJhbnNwb3J0IGltcG9ydCBSZXNwb25zZQorCitmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc2FtZV9lbGVtZW50LCBhc3NlcnRfc3VjY2Vz
cworCisKK2RlZiBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19pZCwgdXNpbmcsIHZhbHVl
KToKKyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAgIlBPU1QiLCAi
c2Vzc2lvbi97c2Vzc2lvbl9pZH0vc2hhZG93L3tzaGFkb3dfaWR9L2VsZW1lbnRzIi5mb3JtYXQo
CisgICAgICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwKKyAgICAgICAgICAg
IHNoYWRvd19pZD1zaGFkb3dfaWQpLAorICAgICAgICB7InVzaW5nIjogdXNpbmcsICJ2YWx1ZSI6
IHZhbHVlfSkKKworCitkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRw
LCBpbmxpbmUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PjxhIGhyZWY9IyBpZD1s
aW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rpdj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAg
IHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QKKworICAgIHBhdGggPSAi
L3Nlc3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hhZG93X2lkfS9lbGVtZW50cyIuZm9ybWF0
KAorICAgICAgICBzZXNzaW9uX2lkPXNlc3Npb24uc2Vzc2lvbl9pZCwgc2hhZG93X2lkPXNoYWRv
d19yb290LmlkKQorICAgIHdpdGggaHR0cC5wb3N0KHBhdGgsIE5vbmUpIGFzIHJlc3BvbnNlOgor
ICAgICAgICBhc3NlcnRfZXJyb3IoUmVzcG9uc2UuZnJvbV9odHRwKHJlc3BvbnNlKSwgImludmFs
aWQgYXJndW1lbnQiKQorCisKK2RlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Np
b24sIGNsb3NlZF93aW5kb3cpOgorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9u
LCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKworZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4
dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhz
ZXNzaW9uLCAibm90UmVhbCIsICJjc3Mgc2VsZWN0b3IiLCAiZm9vIikKKyAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJ1c2luZyIsIFsoImEiKSwgKFRydWUpLCAoTm9uZSksICgxKSwgKFtdKSwgKHt9KV0pCitk
ZWYgdGVzdF9pbnZhbGlkX3VzaW5nX2FyZ3VtZW50KHNlc3Npb24sIHVzaW5nKToKKyAgICAjIFN0
ZXAgMSAtIDIKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgIm5vdFJlYWwi
LCB1c2luZywgInZhbHVlIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGFy
Z3VtZW50IikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZhbHVlIiwgW05vbmUsIFtd
LCB7fV0pCitkZWYgdGVzdF9pbnZhbGlkX3NlbGVjdG9yX2FyZ3VtZW50KHNlc3Npb24sIHZhbHVl
KToKKyAgICAjIFN0ZXAgMyAtIDQKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lv
biwgIm5vdFJlYWwiLCAiY3NzIHNlbGVjdG9yIiwgdmFsdWUpCisgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAiaW52YWxpZCBhcmd1bWVudCIpCisKKworZGVmIHRlc3RfZGV0YWNoZWRfc2hhZG93
X3Jvb3Qoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlKToKKyAgICBzZXNzaW9uLnVybCA9IGdldF9z
aGFkb3dfcGFnZSgiPGRpdj48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz48L2Rpdj4iKQorICAgIGN1
c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRvdy1lbGVtZW50Iiwg
YWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQuc2hhZG93X3Jvb3QK
KyAgICBzZXNzaW9uLnJlZnJlc2goKQorCisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNl
c3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIiwgImlucHV0IikKKyAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJkZXRhY2hlZCBzaGFkb3cgcm9vdCIpCisKKworZGVmIHRlc3RfZmluZF9lbGVt
ZW50c19lcXVpdmFsZW5jZShzZXNzaW9uLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIHNlc3Npb24u
dXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxpbnB1dCBpZD0nY2hlY2snIHR5cGU9J2NoZWNr
Ym94Jy8+PGlucHV0IGlkPSd0ZXh0Jy8+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICBz
aGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisgICAgcmVzcG9uc2UgPSBm
aW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3NzIiwgImlucHV0IikKKyAg
ICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
InVzaW5nLHZhbHVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbKCJjc3Mgc2VsZWN0b3Ii
LCAiI2xpbmtUZXh0IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgibGluayB0ZXh0Iiwg
ImZ1bGwgbGluayB0ZXh0IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgicGFydGlhbCBs
aW5rIHRleHQiLCAibGluayB0ZXh0IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgidGFn
IG5hbWUiLCAiYSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoInhwYXRoIiwgIi8vYSIp
XSkKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgZ2V0X3NoYWRvd19wYWdlLCB1c2lu
ZywgdmFsdWUpOgorICAgICMgU3RlcCA4IC0gOQorICAgIHNlc3Npb24udXJsID0gZ2V0X3NoYWRv
d19wYWdlKCI8ZGl2PjxhIGhyZWY9IyBpZD1saW5rVGV4dD5mdWxsIGxpbmsgdGV4dDwvYT48L2Rp
dj4iKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRv
dy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQu
c2hhZG93X3Jvb3QKKyAgICByZXNwb25zZSA9IGZpbmRfZWxlbWVudHMoc2Vzc2lvbiwgc2hhZG93
X3Jvb3QuaWQsIHVzaW5nLCB2YWx1ZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKwor
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRvY3VtZW50LHZhbHVlIiwgWworICAgICgiPGEg
aHJlZj0jPmxpbmsgdGV4dDwvYT4iLCAibGluayB0ZXh0IiksCisgICAgKCI8YSBocmVmPSM+Jm5i
c3A7bGluayB0ZXh0Jm5ic3A7PC9hPiIsICJsaW5rIHRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5s
aW5rPGJyPnRleHQ8L2E+IiwgImxpbmtcbnRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5saW5rJmFt
cDt0ZXh0PC9hPiIsICJsaW5rJnRleHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5MSU5LIFRFWFQ8L2E+
IiwgIkxJTksgVEVYVCIpLAorICAgICgiPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTog
dXBwZXJjYXNlJz5saW5rIHRleHQ8L2E+IiwgIkxJTksgVEVYVCIpLAorXSkKK2RlZiB0ZXN0X2Zp
bmRfZWxlbWVudHNfbGlua190ZXh0KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgZG9jdW1lbnQs
IHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3df
cGFnZSgiPGRpdj48YSBocmVmPSM+bm90IHdhbnRlZDwvYT48YnIvPnswfTwvZGl2PiIuZm9ybWF0
KGRvY3VtZW50KSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2IiwgYWxsPUZh
bHNlKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNoYWRv
dy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2VsZW1lbnQu
c2hhZG93X3Jvb3QKKyAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdhJylbMV0iLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxlbWVudCwp
KQorCisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19yb290Lmlk
LCAibGluayB0ZXh0IiwgdmFsdWUpCisgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCkKKyAgICBhc3NlcnQgbGVuKHZh
bHVlKSA9PSAxCisKKyAgICBmb3VuZF9lbGVtZW50ID0gdmFsdWVbMF0KKyAgICBhc3NlcnRfc2Ft
ZV9lbGVtZW50KHNlc3Npb24sIGZvdW5kX2VsZW1lbnQsIGV4cGVjdGVkKQorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgiZG9jdW1lbnQsdmFsdWUiLCBbCisgICAgKCI8YSBocmVmPSM+cGFy
dGlhbCBsaW5rIHRleHQ8L2E+IiwgImxpbmsiKSwKKyAgICAoIjxhIGhyZWY9Iz4mbmJzcDtwYXJ0
aWFsIGxpbmsgdGV4dCZuYnNwOzwvYT4iLCAibGluayIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRp
YWwgbGluayB0ZXh0PC9hPiIsICJrIHQiKSwKKyAgICAoIjxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8
YnI+dGV4dDwvYT4iLCAia1xudCIpLAorICAgICgiPGEgaHJlZj0jPnBhcnRpYWwgbGluayZhbXA7
dGV4dDwvYT4iLCAiayZ0IiksCisgICAgKCI8YSBocmVmPSM+UEFSVElBTCBMSU5LIFRFWFQ8L2E+
IiwgIkxJTksiKSwKKyAgICAoIjxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVy
Y2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+IiwgIkxJTksiKSwKK10pCitkZWYgdGVzdF9maW5k
X2VsZW1lbnRzX3BhcnRpYWxfbGlua190ZXh0KHNlc3Npb24sIGdldF9zaGFkb3dfcGFnZSwgZG9j
dW1lbnQsIHZhbHVlKToKKyAgICAjIFN0ZXAgOCAtIDkKKyAgICBzZXNzaW9uLnVybCA9IGdldF9z
aGFkb3dfcGFnZSgiPGRpdj48YSBocmVmPSM+bm90IHdhbnRlZDwvYT48YnIvPnswfTwvZGl2PiIu
Zm9ybWF0KGRvY3VtZW50KSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiZGl2Iiwg
YWxsPUZhbHNlKQorICAgIGN1c3RvbV9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9t
LXNoYWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgIHNoYWRvd19yb290ID0gY3VzdG9tX2Vs
ZW1lbnQuc2hhZG93X3Jvb3QKKyAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQo
InJldHVybiBhcmd1bWVudHNbMF0uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdhJylbMV0i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShjdXN0b21fZWxl
bWVudCwpKQorCisgICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19y
b290LmlkLCAicGFydGlhbCBsaW5rIHRleHQiLCB2YWx1ZSkKKyAgICB2YWx1ZSA9IGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KQorICAg
IGFzc2VydCBsZW4odmFsdWUpID09IDEKKworICAgIGZvdW5kX2VsZW1lbnQgPSB2YWx1ZVswXQor
ICAgIGFzc2VydF9zYW1lX2VsZW1lbnQoc2Vzc2lvbiwgZm91bmRfZWxlbWVudCwgZXhwZWN0ZWQp
CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2luZyx2YWx1ZSIsIFsoImNzcyBzZWxl
Y3RvciIsICIjd29udEV4aXN0IildKQorZGVmIHRlc3Rfbm9fZWxlbWVudChzZXNzaW9uLCBnZXRf
c2hhZG93X3BhZ2UsIHVzaW5nLCB2YWx1ZSk6CisgICAgIyBTdGVwIDggLSA5CisgICAgc2Vzc2lv
bi51cmwgPSBnZXRfc2hhZG93X3BhZ2UoIjxkaXY+PC9kaXY+IikKKyAgICBjdXN0b21fZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImN1c3RvbS1zaGFkb3ctZWxlbWVudCIsIGFsbD1GYWxzZSkK
KyAgICBzaGFkb3dfcm9vdCA9IGN1c3RvbV9lbGVtZW50LnNoYWRvd19yb290CisgICAgcmVzcG9u
c2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19yb290LmlkLCB1c2luZywgdmFsdWUp
CisgICAgYXNzZXJ0IHJlc3BvbnNlLmJvZHlbInZhbHVlIl0gPT0gW10KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19m
cm9tX3NoYWRvd19yb290L3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L3VzZXJf
cHJvbXB0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM0Yjkw
M2M4MzZlZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZmluZF9lbGVtZW50c19mcm9tX3NoYWRvd19yb290L3VzZXJfcHJvbXB0
cy5weQpAQCAtMCwwICsxLDEzMSBAQAorIyBNRVRBOiB0aW1lb3V0PWxvbmcKKworaW1wb3J0IHB5
dGVzdAorCitmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAorICAgIGFzc2VydF9l
cnJvciwKKyAgICBhc3NlcnRfc2FtZV9lbGVtZW50LAorICAgIGFzc2VydF9zdWNjZXNzLAorICAg
IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwKKykKKworCitkZWYgZmluZF9lbGVtZW50cyhzZXNzaW9u
LCBzaGFkb3dfaWQsIHVzaW5nLCB2YWx1ZSk6CisgICAgcmV0dXJuIHNlc3Npb24udHJhbnNwb3J0
LnNlbmQoCisgICAgICAgICJQT1NUIiwgInNlc3Npb24ve3Nlc3Npb25faWR9L3NoYWRvdy97c2hh
ZG93X2lkfS9lbGVtZW50cyIuZm9ybWF0KAorICAgICAgICAgICAgc2Vzc2lvbl9pZD1zZXNzaW9u
LnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lkPXNoYWRvd19pZCksCisgICAgICAg
IHsidXNpbmciOiB1c2luZywgInZhbHVlIjogdmFsdWV9KQorCisKK0BweXRlc3QuZml4dHVyZQor
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBj
cmVhdGVfZGlhbG9nLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAg
IHNlc3Npb24udXJsID0gZ2V0X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisg
ICAgICAgIG91dGVyX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVs
ZW1lbnQiLCBhbGw9RmFsc2UpCisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5z
aGFkb3dfcm9vdAorICAgICAgICBpbm5lcl9lbGVtZW50ID0gc2Vzc2lvbi5leGVjdXRlX3Njcmlw
dCgicmV0dXJuIGFyZ3VtZW50c1swXS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3AnKSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KG91dGVy
X2VsZW1lbnQsKSkKKworICAgICAgICBjcmVhdGVfZGlhbG9nKGRpYWxvZ190eXBlLCB0ZXh0PWRp
YWxvZ190eXBlKQorCisgICAgICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNzaW9uLCBz
aGFkb3dfcm9vdC5pZCwgImNzcyBzZWxlY3RvciIsICJwIikKKyAgICAgICAgdmFsdWUgPSBhc3Nl
cnRfc3VjY2VzcyhyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGxp
c3QpCisgICAgICAgIGFzc2VydCBsZW4odmFsdWUpID09IDEKKworICAgICAgICBhc3NlcnRfZGlh
bG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1kaWFsb2dfdHlwZSwgZXhwZWN0ZWRf
cmV0dmFsPXJldHZhbCkKKworICAgICAgICBhc3NlcnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIHZh
bHVlWzBdLCBpbm5lcl9lbGVtZW50KQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBn
ZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAgIHNlc3Npb24udXJsID0gZ2V0
X3NoYWRvd19wYWdlKCI8ZGl2PjxwPmJhcjwvcD48ZGl2PiIpCisgICAgICAgIG91dGVyX2VsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tc2hhZG93LWVsZW1lbnQiLCBhbGw9RmFsc2Up
CisgICAgICAgIHNoYWRvd19yb290ID0gb3V0ZXJfZWxlbWVudC5zaGFkb3dfcm9vdAorCisgICAg
ICAgIGNyZWF0ZV9kaWFsb2coZGlhbG9nX3R5cGUsIHRleHQ9ZGlhbG9nX3R5cGUpCisKKyAgICAg
ICAgcmVzcG9uc2UgPSBmaW5kX2VsZW1lbnRzKHNlc3Npb24sIHNoYWRvd19yb290LmlkLCAiY3Nz
IHNlbGVjdG9yIiwgInAiKQorICAgICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJ1bmV4cGVj
dGVkIGFsZXJ0IG9wZW4iKQorCisgICAgICAgIGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9u
LCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBlLCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQorCisg
ICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbgorCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBnZXRfc2hhZG93X3BhZ2UpOgorICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgor
ICAgICAgICBzZXNzaW9uLnVybCA9IGdldF9zaGFkb3dfcGFnZSgiPGRpdj48cD5iYXI8L3A+PGRp
dj4iKQorICAgICAgICBvdXRlcl9lbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiY3VzdG9tLXNo
YWRvdy1lbGVtZW50IiwgYWxsPUZhbHNlKQorICAgICAgICBzaGFkb3dfcm9vdCA9IG91dGVyX2Vs
ZW1lbnQuc2hhZG93X3Jvb3QKKworICAgICAgICBjcmVhdGVfZGlhbG9nKGRpYWxvZ190eXBlLCB0
ZXh0PWRpYWxvZ190eXBlKQorCisgICAgICAgIHJlc3BvbnNlID0gZmluZF9lbGVtZW50cyhzZXNz
aW9uLCBzaGFkb3dfcm9vdC5pZCwgImNzcyBzZWxlY3RvciIsICJwIikKKyAgICAgICAgYXNzZXJ0
X2Vycm9yKHJlc3BvbnNlLCAidW5leHBlY3RlZCBhbGVydCBvcGVuIikKKworICAgICAgICBhc3Nl
cnQgc2Vzc2lvbi5hbGVydC50ZXh0ID09IGRpYWxvZ190eXBlCisgICAgICAgIHNlc3Npb24uYWxl
cnQuZGlzbWlzcygpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9i
dXRfZXhjZXB0aW9uCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFBy
b21wdEJlaGF2aW9yIjogImFjY2VwdCJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFs
b2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0i
LCBUcnVlKSwKKyAgICAoInByb21wdCIsICIiKSwKK10pCitkZWYgdGVzdF9hY2NlcHQoY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFs
KToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVk
UHJvbXB0QmVoYXZpb3IiOiAiYWNjZXB0IGFuZCBub3RpZnkifSkKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisg
ICAgKCJjb25maXJtIiwgVHJ1ZSksCisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVmIHRlc3Rf
YWNjZXB0X2FuZF9ub3RpZnkoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
LCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJp
bGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3IiOiAiZGlzbWlzcyJ9KQorQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBO
b25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10p
CitkZWYgdGVzdF9kaXNtaXNzKGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2Vw
dGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJr
LmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRpc21pc3MgYW5kIG5v
dGlmeSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2dfdHlwZSwgcmV0dmFsIiwg
WworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBGYWxzZSksCisgICAgKCJw
cm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kaXNtaXNzX2FuZF9ub3RpZnkoY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAg
ICBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJl
dHZhbCkKKworCitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsidW5oYW5kbGVkUHJvbXB0QmVo
YXZpb3IiOiAiaWdub3JlIn0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBl
IiwgWyJhbGVydCIsICJjb25maXJtIiwgInByb21wdCJdKQorZGVmIHRlc3RfaWdub3JlKGNoZWNr
X3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUpOgorICAg
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSkK
KworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisg
ICAgKCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIEZhbHNlKSwKKyAgICAoInByb21w
dCIsIE5vbmUpLAorXSkKK2RlZiB0ZXN0X2RlZmF1bHQoY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uLCBkaWFsb2dfdHlwZSwgcmV0dmFsKToKKyAgICBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZm9yd2FyZC9m
b3J3YXJkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
b3J3YXJkL2ZvcndhcmQucHkKaW5kZXggNGExZTIxNTgxNTE4Li45N2E5MzVjOGNkODMgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZm9yd2Fy
ZC9mb3J3YXJkLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZm9yd2FyZC9mb3J3YXJkLnB5CkBAIC0xLDUgKzEsNyBAQAoraW1wb3J0IHB5dGVzdAor
ZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCisKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQu
aW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZm9yd2FyZChzZXNzaW9uKToKQEAgLTcsNyAr
OSw3IEBAIGRlZiBmb3J3YXJkKHNlc3Npb24pOgogICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tz
ZXNzaW9uX2lkfS9mb3J3YXJkIi5mb3JtYXQoKip2YXJzKHNlc3Npb24pKSkKIAogCi1kZWYgdGVz
dF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92
YWx1ZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2PiIp
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPiIpCiAgICAgc2Vzc2lvbi5iYWNrKCkKQEAg
LTI3LDcgKzI5LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9z
ZWRfZnJhbWUpOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQogCiAKLWRlZiB0ZXN0X25v
X2Jyb3dzaW5nX2hpc3Rvcnkoc2Vzc2lvbik6CitkZWYgdGVzdF9ub19icm93c2luZ19oaXN0b3J5
KHNlc3Npb24sIGlubGluZSk6CiAgICAgdXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQogCiAg
ICAgc2Vzc2lvbi51cmwgPSB1cmwKQEAgLTQwLDcgKzQyLDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3Np
bmdfaGlzdG9yeShzZXNzaW9uKToKICAgICBhc3NlcnQgZWxlbWVudC5wcm9wZXJ0eSgiaWQiKSA9
PSAiZm9vIgogCiAKLWRlZiB0ZXN0X2RhdGFfdXJscyhzZXNzaW9uKToKK2RlZiB0ZXN0X2RhdGFf
dXJscyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHRlc3RfcGFnZXMgPSBbCiAgICAgICAgIGlubGlu
ZSgiPHAgaWQ9MT4iKSwKICAgICAgICAgaW5saW5lKCI8cCBpZD0yPiIpLApAQCAtNTcsNyArNTks
NyBAQCBkZWYgdGVzdF9kYXRhX3VybHMoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHNlc3Npb24udXJs
ID09IHRlc3RfcGFnZXNbMV0KIAogCi1kZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3JldW5sb2FkKHNl
c3Npb24pOgorZGVmIHRlc3RfZGlzbWlzc2VkX2JlZm9yZXVubG9hZChzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHVybF9iZWZvcmV1bmxvYWQgPSBpbmxpbmUoIiIiCiAgICAgICA8aW5wdXQgdHlwZT0i
dGV4dCI+CiAgICAgICA8c2NyaXB0PgpAQCAtMTA1LDcgKzEwNyw3IEBAIGRlZiB0ZXN0X2ZyYWdt
ZW50cyhzZXNzaW9uLCB1cmwpOgogICAgIGFzc2VydCBzZXNzaW9uLnVybCA9PSB0ZXN0X3BhZ2Vz
WzJdCiAKIAotZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0
ZXN0X2hpc3RvcnlfcHVzaHN0YXRlKHNlc3Npb24sIGlubGluZSk6CiAgICAgcHVzaHN0YXRlX3Bh
Z2UgPSBpbmxpbmUoIiIiCiAgICAgICA8c2NyaXB0PgogICAgICAgICBmdW5jdGlvbiBwdXNoU3Rh
dGUoKSB7CkBAIC0xMzAsMyArMTMyLDQ1IEBAIGRlZiB0ZXN0X2hpc3RvcnlfcHVzaHN0YXRlKHNl
c3Npb24sIHVybCk6CiAKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gInt9I3B1c2hzdGF0ZSIu
Zm9ybWF0KHB1c2hzdGF0ZV9wYWdlKQogICAgIGFzc2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gaGlzdG9yeS5zdGF0ZTsiKSA9PSB7ImZvbyI6ICJiYXIifQorCisKK2RlZiB0ZXN0
X3JlbW92ZWRfaWZyYW1lKHNlc3Npb24sIHVybCwgaW5saW5lKToKKyAgICBwYWdlID0gaW5saW5l
KCI8cD5mb28iKQorCisgICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9odG1sL2ZyYW1lc19ub19iZmNhY2hlLmh0bWwiKQorICAgIHNlc3Npb24udXJsID0gcGFn
ZQorCisgICAgc2Vzc2lvbi5iYWNrKCkKKworICAgIHN1YmZyYW1lID0gc2Vzc2lvbi5maW5kLmNz
cygiI3N1Yi1mcmFtZSIsIGFsbD1GYWxzZSkKKyAgICBzZXNzaW9uLnN3aXRjaF9mcmFtZShzdWJm
cmFtZSkKKworICAgIHJlc3BvbnNlID0gZm9yd2FyZChzZXNzaW9uKQorICAgIGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlKQorCisgICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHBhZ2UKKworCisjIENh
cGFiaWxpdHkgbmVlZGVkIGFzIGxvbmcgYXMgbm8gdmFsaWQgY2VydGlmaWNhdGUgaXMgYXZhaWxh
YmxlOgorIyAgIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vl
cy8yODg0NworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7ImFjY2VwdEluc2VjdXJlQ2VydHMi
OiBUcnVlfSkKK2RlZiB0ZXN0X2Nyb3NzX29yaWdpbihzZXNzaW9uLCB1cmwpOgorICAgIGJhc2Vf
cGF0aCA9ICgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvc3ViZnJhbWUuaHRtbCIgKwor
ICAgICAgICAgICAgICAgICAiP3BpcGU9aGVhZGVyKENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5
LHNhbWUtb3JpZ2luIikKKyAgICBmaXJzdF9wYWdlID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9
Imh0dHBzIikKKyAgICBzZWNvbmRfcGFnZSA9IHVybChiYXNlX3BhdGgsIHByb3RvY29sPSJodHRw
cyIsIGRvbWFpbj0iYWx0IikKKworICAgIHNlc3Npb24udXJsID0gZmlyc3RfcGFnZQorICAgIHNl
c3Npb24udXJsID0gc2Vjb25kX3BhZ2UKKyAgICBzZXNzaW9uLmJhY2soKQorCisgICAgZWxlbSA9
IHNlc3Npb24uZmluZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCisKKyAgICByZXNwb25zZSA9
IGZvcndhcmQoc2Vzc2lvbikKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGFz
c2VydCBzZXNzaW9uLnVybCA9PSBzZWNvbmRfcGFnZQorCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KGVycm9yLlN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgICAgIGVsZW0uY2xp
Y2soKQorICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjZGVsZXRlIiwgYWxsPUZhbHNlKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9m
b3J3YXJkL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZm9yd2FyZC91c2VyX3Byb21wdHMucHkKaW5kZXggZTVlZWE4ZjQ0NTcxLi4z
ZWVhZjZlNzFjZGIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvZm9yd2FyZC91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9mb3J3YXJkL3VzZXJfcHJvbXB0cy5weQpAQCAt
Myw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGZvcndh
cmQoc2Vzc2lvbik6CkBAIC0xMiw3ICsxMSw3IEBAIGRlZiBmb3J3YXJkKHNlc3Npb24pOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIHBhZ2VzKHNlc3Npb24pOgorZGVmIHBhZ2VzKHNlc3Npb24s
IGlubGluZSk6CiAgICAgcGFnZXMgPSBbCiAgICAgICAgIGlubGluZSgiPHAgaWQ9MT4iKSwKICAg
ICAgICAgaW5saW5lKCI8cCBpZD0yPiIpLApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWN0aXZlX2VsZW1lbnQvZ2V0LnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWN0aXZlX2VsZW1l
bnQvZ2V0LnB5CmluZGV4IDdmODIxZjNhNDBkNS4uMTA4NWFkODJmMThmIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxl
bWVudC9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9nZXRfYWN0aXZlX2VsZW1lbnQvZ2V0LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X2lzX2FjdGl2ZV9l
bGVtZW50LCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQg
aW5saW5lCiAKIAogZGVmIHJlYWRfZ2xvYmFsKHNlc3Npb24sIG5hbWUpOgpAQCAtMjEsNyArMjAs
NyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6
CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0
ZXN0X3N1Y2Nlc3NfZG9jdW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9zdWNjZXNzX2RvY3VtZW50
KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAg
IDxib2R5PgogICAgICAgICAgICAgPGgxPkhlYWRpbmc8L2gxPgpAQCAtMzYsNyArMzUsNyBAQCBk
ZWYgdGVzdF9zdWNjZXNzX2RvY3VtZW50KHNlc3Npb24pOgogICAgIGFzc2VydF9pc19hY3RpdmVf
ZWxlbWVudChzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X3N1Y2Vzc19pbnB1dChzZXNz
aW9uKToKK2RlZiB0ZXN0X3N1Y2Vzc19pbnB1dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8Ym9keT4KICAgICAgICAgICAgIDxoMT5IZWFk
aW5nPC9oMT4KQEAgLTUwLDcgKzQ5LDcgQEAgZGVmIHRlc3Rfc3VjZXNzX2lucHV0KHNlc3Npb24p
OgogICAgIGFzc2VydF9pc19hY3RpdmVfZWxlbWVudChzZXNzaW9uLCBlbGVtZW50KQogCiAKLWRl
ZiB0ZXN0X3N1Y2Vzc19pbnB1dF9ub25faW50ZXJhY3RhYmxlKHNlc3Npb24pOgorZGVmIHRlc3Rf
c3VjZXNzX2lucHV0X25vbl9pbnRlcmFjdGFibGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICA8aDE+SGVh
ZGluZzwvaDE+CkBAIC02NCw3ICs2Myw3IEBAIGRlZiB0ZXN0X3N1Y2Vzc19pbnB1dF9ub25faW50
ZXJhY3RhYmxlKHNlc3Npb24pOgogICAgIGFzc2VydF9pc19hY3RpdmVfZWxlbWVudChzZXNzaW9u
LCBlbGVtZW50KQogCiAKLWRlZiB0ZXN0X3N1Y2Nlc3NfZXhwbGljaXRfZm9jdXMoc2Vzc2lvbik6
CitkZWYgdGVzdF9zdWNjZXNzX2V4cGxpY2l0X2ZvY3VzKHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiCiAgICAgICAgIDxib2R5PgogICAgICAgICAgICAgPGgx
PkhlYWRpbmc8L2gxPgpAQCAtMTA1LDcgKzEwNCw3IEBAIGRlZiB0ZXN0X3N1Y2Nlc3NfZXhwbGlj
aXRfZm9jdXMoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24s
IGVsZW1lbnQpCiAKIAotZGVmIHRlc3Rfc3VjY2Vzc19pZnJhbWVfY29udGVudChzZXNzaW9uKToK
K2RlZiB0ZXN0X3N1Y2Nlc3NfaWZyYW1lX2NvbnRlbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGJvZHk+PC9ib2R5PiIpCiAgICAgc2Vzc2lvbi5leGVjdXRl
X3NjcmlwdCgiIiIKICAgICAgICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lmcmFtZScpOwpAQCAtMTIwLDcgKzExOSw3IEBAIGRlZiB0ZXN0X3N1Y2Nlc3NfaWZyYW1lX2Nv
bnRlbnQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2lzX2FjdGl2ZV9lbGVtZW50KHNlc3Npb24sIGVs
ZW1lbnQpCiAKIAotZGVmIHRlc3RfbWlzc2luZ19kb2N1bWVudF9lbGVtZW50KHNlc3Npb24pOgor
ZGVmIHRlc3RfbWlzc2luZ19kb2N1bWVudF9lbGVtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxib2R5PjwvYm9keT4iKQogICAgIHNlc3Npb24uZXhlY3V0
ZV9zY3JpcHQoIiIiCiAgICAgICAgIGlmIChkb2N1bWVudC5ib2R5LnJlbW92ZSkgewpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfYWN0
aXZlX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfYWN0aXZlX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CmluZGV4
IDdmYTdiZTFkZGU5OS4uMWZmNzc2OTdiNzA3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hY3RpdmVfZWxlbWVudC91c2VyX3Byb21w
dHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfYWN0aXZlX2VsZW1lbnQvdXNlcl9wcm9tcHRzLnB5CkBAIC04LDcgKzgsNiBAQCBmcm9tIHRl
c3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgKAogICAgIGFzc2VydF9pc19hY3RpdmVfZWxlbWVu
dCwKICAgICBhc3NlcnRfc3VjY2VzcwogKQotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiAKIAogZGVmIGdldF9hY3RpdmVfZWxlbWVudChzZXNzaW9uKToKQEAgLTE3LDcg
KzE2LDcgQEAgZGVmIGdldF9hY3RpdmVfZWxlbWVudChzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCB0eXBlPXRleHQ+IikK
IApAQCAtMzQsNyArMzMsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQot
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9t
cHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogCkBAIC00OSw3ICs0OCw3
IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9t
cHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2Vk
X2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0IHR5cGU9dGV4dD4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hbGVydF90ZXh0L2dldC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2FsZXJ0X3RleHQvZ2V0LnB5
CmluZGV4IGI2NDY3ODY1M2UwOC4uN2VlN2ZmMTgwOGY5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hbGVydF90ZXh0L2dldC5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9hbGVy
dF90ZXh0L2dldC5weQpAQCAtMSw5ICsxLDYgQEAKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUK
LQogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFsZXJ0RXhjZXB0aW9uCiAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNj
ZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGZyb20gdGVzdHMu
c3VwcG9ydC5zeW5jIGltcG9ydCBQb2xsCiAKIApAQCAtMjcsMzYgKzI0LDM2IEBAIGRlZiB0ZXN0
X25vX3VzZXJfcHJvbXB0KHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5v
IHN1Y2ggYWxlcnQiKQogCiAKLWRlZiB0ZXN0X2dldF9hbGVydF90ZXh0KHNlc3Npb24pOgorZGVm
IHRlc3RfZ2V0X2FsZXJ0X3RleHQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9
IGlubGluZSgiPHNjcmlwdD53aW5kb3cuYWxlcnQoJ0hlbGxvJyk7PC9zY3JpcHQ+IikKICAgICBy
ZXNwb25zZSA9IGdldF9hbGVydF90ZXh0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keSwgZGljdCkKICAgICBh
c3NlcnQgInZhbHVlIiBpbiByZXNwb25zZS5ib2R5CiAgICAgYWxlcnRfdGV4dCA9IHJlc3BvbnNl
LmJvZHlbInZhbHVlIl0KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShhbGVydF90ZXh0LCB0ZXh0X3R5
cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYWxlcnRfdGV4dCwgc3RyKQogICAgIGFzc2VydCBh
bGVydF90ZXh0ID09ICJIZWxsbyIKIAogCi1kZWYgdGVzdF9nZXRfY29uZmlybV90ZXh0KHNlc3Np
b24pOgorZGVmIHRlc3RfZ2V0X2NvbmZpcm1fdGV4dChzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8c2NyaXB0PndpbmRvdy5jb25maXJtKCdIZWxsbycpOzwvc2Ny
aXB0PiIpCiAgICAgcmVzcG9uc2UgPSBnZXRfYWxlcnRfdGV4dChzZXNzaW9uKQogICAgIGFzc2Vy
dF9zdWNjZXNzKHJlc3BvbnNlKQogICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLmJvZHks
IGRpY3QpCiAgICAgYXNzZXJ0ICJ2YWx1ZSIgaW4gcmVzcG9uc2UuYm9keQogICAgIGNvbmZpcm1f
dGV4dCA9IHJlc3BvbnNlLmJvZHlbInZhbHVlIl0KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb25m
aXJtX3RleHQsIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb25maXJtX3RleHQs
IHN0cikKICAgICBhc3NlcnQgY29uZmlybV90ZXh0ID09ICJIZWxsbyIKIAogCi1kZWYgdGVzdF9n
ZXRfcHJvbXB0X3RleHQoc2Vzc2lvbik6CitkZWYgdGVzdF9nZXRfcHJvbXB0X3RleHQoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cucHJv
bXB0KCdFbnRlciBZb3VyIE5hbWU6ICcsICdGZWRlcmVyJyk7PC9zY3JpcHQ+IikKICAgICByZXNw
b25zZSA9IGdldF9hbGVydF90ZXh0KHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9u
c2UpCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UuYm9keSwgZGljdCkKICAgICBhc3Nl
cnQgInZhbHVlIiBpbiByZXNwb25zZS5ib2R5CiAgICAgcHJvbXB0X3RleHQgPSByZXNwb25zZS5i
b2R5WyJ2YWx1ZSJdCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UocHJvbXB0X3RleHQsIHRleHRfdHlw
ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShwcm9tcHRfdGV4dCwgc3RyKQogICAgIGFzc2VydCBw
cm9tcHRfdGV4dCA9PSAiRW50ZXIgWW91ciBOYW1lOiAiCiAKIApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfbGFiZWwv
X19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9jb21wdXRlZF9sYWJlbC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfbGFiZWwvZ2V0LnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRf
bGFiZWwvZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzkw
NGM2Y2U0MWY2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0ZWRfbGFiZWwvZ2V0LnB5CkBAIC0wLDAgKzEsMzYg
QEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEFs
ZXJ0RXhjZXB0aW9uCisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZXJyb3IsIGFzc2VydF9zdWNjZXNzCitmcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBp
bmxpbmUKKworCitkZWYgZ2V0X2NvbXB1dGVkX2xhYmVsKHNlc3Npb24sIGVsZW1lbnQpOgorICAg
IHJldHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiR0VUIiwgInNlc3Npb24v
e3Nlc3Npb25faWR9L2VsZW1lbnQve2VsZW1lbnRfaWR9L2NvbXB1dGVkbGFiZWwiLmZvcm1hdCgK
KyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAgICAgICAgICAg
ZWxlbWVudF9pZD1lbGVtZW50KSkKKworCitkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIHJlc3BvbnNlID0gZ2V0X2NvbXB1dGVkX2xhYmVs
KHNlc3Npb24pCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQor
CisKK2RlZiB0ZXN0X25vX3VzZXJfcHJvbXB0KHNlc3Npb24pOgorICAgIHJlc3BvbnNlID0gZ2V0
X2NvbXB1dGVkX2xhYmVsKHNlc3Npb24pCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8g
c3VjaCBhbGVydCIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJodG1sLHRhZyxsYWJl
bCIsIFsKKyAgICAoIjxidXR0b24+b2s8L2J1dHRvbj4iLCAiYnV0dG9uIiwgIm9rIiksCisgICAg
KCI8YnV0dG9uIGFyaWEtbGFiZWxsZWRieT1cIm9uZSB0d29cIj48L2J1dHRvbj48ZGl2IGlkPW9u
ZT5vazwvZGl2PjxkaXYgaWQ9dHdvPmdvPC9kaXY+IiwgImJ1dHRvbiIsICJvayBnbyIpLAorICAg
ICgiPGJ1dHRvbiBhcmlhLWxhYmVsPWZvbz5iYXI8L2J1dHRvbj4iLCAiYnV0dG9uIiwgImZvbyIp
LAorICAgICgiPGxhYmVsPjxpbnB1dD4gZm9vPC9sYWJlbD4iLCAiaW5wdXQiLCAiZm9vIiksCisg
ICAgKCI8bGFiZWwgZm9yPWI+Zm9vPGxhYmVsPjxpbnB1dCBpZD1iPiIsICJpbnB1dCIsICJmb28i
KV0pCitkZWYgdGVzdF9nZXRfY29tcHV0ZWRfbGFiZWwoc2Vzc2lvbiwgaHRtbCwgdGFnLCBsYWJl
bCk6CisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoInswfSIuZm9ybWF0KHRhZykpCisgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3ModGFnLCBhbGw9RmFsc2UpCisgICAgcmVzdWx0ID0gZ2V0
X2NvbXB1dGVkX2xhYmVsKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X3N1Y2Nlc3Mo
cmVzdWx0LCBsYWJlbCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX3JvbGUvX19pbml0X18ucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jb21wdXRlZF9yb2xlL19faW5p
dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJi
MmQxCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9jb21wdXRlZF9yb2xlL2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2NvbXB1dGVkX3JvbGUvZ2V0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTBmZDYyOGYxNTZiCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY29tcHV0
ZWRfcm9sZS9nZXQucHkKQEAgLTAsMCArMSwzNCBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHdl
YmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KKworZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKK2Zyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorCisKK2RlZiBnZXRfY29tcHV0ZWRf
cm9sZShzZXNzaW9uLCBlbGVtZW50KToKKyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2Vu
ZCgKKyAgICAgICAgIkdFVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9lbGVtZW50L3tlbGVtZW50
X2lkfS9jb21wdXRlZHJvbGUiLmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lv
bi5zZXNzaW9uX2lkLAorICAgICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50KSkKKworCitkZWYg
dGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIHJl
c3BvbnNlID0gZ2V0X2NvbXB1dGVkX3JvbGUoc2Vzc2lvbiwgImlkIikKKyAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCisKKworZGVmIHRlc3Rfbm9fdXNlcl9wcm9t
cHQoc2Vzc2lvbik6CisgICAgcmVzcG9uc2UgPSBnZXRfY29tcHV0ZWRfcm9sZShzZXNzaW9uLCAi
aWQiKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggYWxlcnQiKQorCisKK0Bw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaHRtbCx0YWcsZXhwZWN0ZWQiLCBbCisgICAgKCI8bGkg
cm9sZT1tZW51aXRlbT5mb28iLCAibGkiLCAibWVudSIpLAorICAgICgiPGlucHV0IHJvbGU9c2Vh
cmNoYm94PiIsICJpbnB1dCIsICJzZWFyY2hib3giKSwKKyAgICAoIjxpbWcgcm9sZT1wcmVzZW50
YXRpb24+IiwgImltZyIsICJwcmVzZW50YXRpb24iKV0pCitkZWYgdGVzdF9jb21wdXRlZF9yb2xl
cyhzZXNzaW9uLCBodG1sLCB0YWcsIGV4cGVjdGVkKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZShodG1sKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKHRhZywgYWxsPUZhbHNlKQor
ICAgIHJlc3VsdCA9IGdldF9jb21wdXRlZF9yb2xlKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAg
YXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCBleHBlY3RlZCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRfdXJsL2dldC5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJlbnRf
dXJsL2dldC5weQppbmRleCAwMzgzYThhYmE5ZTkuLjFjYTEzYTFhNmQ1ZSAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91
cmwvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2N1cnJlbnRfdXJsL2dldC5weQpAQCAtMSwxMSArMSwxMiBAQAotZnJvbSBzaXggaW1w
b3J0IHRleHRfdHlwZQoraW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQgaW1wb3J0
IHBsYXRmb3JtX25hbWUKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1
Y2Nlc3MKIAotZG9jID0gaW5saW5lKCI8cD5mcmFtZSIpCi1hbGVydF9kb2MgPSBpbmxpbmUoIjxz
Y3JpcHQ+d2luZG93LmFsZXJ0KCk8L3NjcmlwdD4iKQorCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBk
b2MoaW5saW5lKToKKyAgICByZXR1cm4gaW5saW5lKCI8cD5mcmFtZSIpCiAKIAogZGVmIGdldF9j
dXJyZW50X3VybChzZXNzaW9uKToKQEAgLTE4LDE0ICsxOSwxNCBAQCBkZWYgdGVzdF9ub190b3Bf
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKICAgICBhc3NlcnRfZXJy
b3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfbm9fYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29u
dGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGRvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBkb2MK
IAogICAgIHJlc3BvbnNlID0gZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1
Y2Nlc3MocmVzcG9uc2UsIGRvYykKIAogCi1kZWYgdGVzdF9nZXRfY3VycmVudF91cmxfbWF0Y2hl
c19sb2NhdGlvbihzZXNzaW9uKToKK2RlZiB0ZXN0X2dldF9jdXJyZW50X3VybF9tYXRjaGVzX2xv
Y2F0aW9uKHNlc3Npb24sIGRvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBkb2MKIAogICAgIHJlc3Bv
bnNlID0gZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pCkBAIC0zNyw3ICszOCw3IEBAIGRlZiB0ZXN0
X2dldF9jdXJyZW50X3VybF9wYXlsb2FkKHNlc3Npb24pOgogCiAgICAgcmVzcG9uc2UgPSBnZXRf
Y3VycmVudF91cmwoc2Vzc2lvbikKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
KQotICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlz
aW5zdGFuY2UodmFsdWUsIHN0cikKIAogCiBkZWYgdGVzdF9nZXRfY3VycmVudF91cmxfc3BlY2lh
bF9wYWdlcyhzZXNzaW9uKToKQEAgLTc2LDcgKzc3LDcgQEAgZGVmIHRlc3Rfc2V0X21hbGZvcm1l
ZF91cmwoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAiaW52YWxpZCBhcmd1
bWVudCIpCiAKIAotZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX2FmdGVyX21vZGlmaWVkX2xvY2F0
aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfZ2V0X2N1cnJlbnRfdXJsX2FmdGVyX21vZGlmaWVkX2xv
Y2F0aW9uKHNlc3Npb24sIGRvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBkb2MKIAogICAgIHJlc3Bv
bnNlID0gZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC9pZnJhbWUucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50
X3VybC9pZnJhbWUucHkKaW5kZXggOTQ0ZTYxYjU4M2ZkLi44MGE5NjBjZThhMTUgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2N1cnJl
bnRfdXJsL2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC9pZnJhbWUucHkKQEAgLTEsNyArMSw2IEBACiBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3Vj
Y2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaWZyYW1lLCBpbmxpbmUKIAog
CiAiIiIKQEAgLTE1LDkgKzE0LDIwIEBAIGFsc28gZW5mb3JjZSBwcm9jZXNzIGlzb2xhdGlvbiBi
YXNlZCBvbiBzaXRlIG9yaWdpbi4KIFRoaXMgaXMga25vd24gdG8gc29tZXRpbWVzIGNhdXNlIHBy
b2JsZW1zIGZvciBXZWJEcml2ZXIgaW1wbGVtZW50YXRpb25zLgogIiIiCiAKLWZyYW1lX2RvYyA9
IGlubGluZSgiPHA+ZnJhbWUiKQotb25lX2ZyYW1lX2RvYyA9IGlubGluZSgiPGlmcmFtZSBzcmM9
JyVzJz48L2lmcmFtZT4iICUgZnJhbWVfZG9jKQotbmVzdGVkX2ZyYW1lc19kb2MgPSBpbmxpbmUo
IjxpZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIG9uZV9mcmFtZV9kb2MpCisKK0BweXRlc3Qu
Zml4dHVyZQorZGVmIGZyYW1lX2RvYyhpbmxpbmUpOgorICAgIHJldHVybiBpbmxpbmUoIjxwPmZy
YW1lIikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBvbmVfZnJhbWVfZG9jKGlubGluZSwgZnJh
bWVfZG9jKToKKyAgICByZXR1cm4gaW5saW5lKCI8aWZyYW1lIHNyYz0nJXMnPjwvaWZyYW1lPiIg
JSBmcmFtZV9kb2MpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgbmVzdGVkX2ZyYW1lc19kb2Mo
aW5saW5lLCBvbmVfZnJhbWVfZG9jKToKKyAgICByZXR1cm4gaW5saW5lKCI8aWZyYW1lIHNyYz0n
JXMnPjwvaWZyYW1lPiIgJSBvbmVfZnJhbWVfZG9jKQogCiAKIGRlZiBnZXRfY3VycmVudF91cmwo
c2Vzc2lvbik6CkBAIC0yNSw3ICszNSw3IEBAIGRlZiBnZXRfY3VycmVudF91cmwoc2Vzc2lvbik6
CiAgICAgICAgICJHRVQiLCAic2Vzc2lvbi97c2Vzc2lvbl9pZH0vdXJsIi5mb3JtYXQoKip2YXJz
KHNlc3Npb24pKSkKIAogCi1kZWYgdGVzdF9pZnJhbWUoc2Vzc2lvbik6CitkZWYgdGVzdF9pZnJh
bWUoc2Vzc2lvbiwgb25lX2ZyYW1lX2RvYyk6CiAgICAgdG9wX2xldmVsX2RvYyA9IG9uZV9mcmFt
ZV9kb2MKICAgICBzZXNzaW9uLnVybCA9IHRvcF9sZXZlbF9kb2MKIApAQCAtMzcsNyArNDcsNyBA
QCBkZWYgdGVzdF9pZnJhbWUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2Us
IHRvcF9sZXZlbF9kb2MpCiAKIAotZGVmIHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uKToKK2Rl
ZiB0ZXN0X25lc3RlZF9pZnJhbWUoc2Vzc2lvbiwgbmVzdGVkX2ZyYW1lc19kb2MpOgogICAgIHNl
c3Npb24udXJsID0gbmVzdGVkX2ZyYW1lc19kb2MKICAgICB0b3BfbGV2ZWxfZG9jID0gc2Vzc2lv
bi51cmwKIApAQCAtNTMsNyArNjMsNyBAQCBkZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Npb24p
OgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZG9tYWluIiwgWyIiLCAiYWx0Il0sIGlk
cz1bInNhbWVfb3JpZ2luIiwgImNyb3NzX29yaWdpbiJdKQotZGVmIHRlc3Rfb3JpZ2luKHNlc3Np
b24sIGRvbWFpbiwgdXJsKToKK2RlZiB0ZXN0X29yaWdpbihzZXNzaW9uLCBpbmxpbmUsIGlmcmFt
ZSwgZG9tYWluKToKICAgICB0b3BfbGV2ZWxfZG9jID0gaW5saW5lKGlmcmFtZSgiPHA+ZnJhbWUi
LCBkb21haW49ZG9tYWluKSkKIAogICAgIHNlc3Npb24udXJsID0gdG9wX2xldmVsX2RvYwpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
Y3VycmVudF91cmwvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9nZXRfY3VycmVudF91cmwvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGYw
ZTk1ZDEyZjE0ZS4uZDY1N2MxODgyNDFkIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9jdXJyZW50X3VybC91c2VyX3Byb21wdHMucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfY3Vy
cmVudF91cmwvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVk
LCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pOgpAQCAtMTEs
NyArMTAsNyBAQCBkZWYgZ2V0X2N1cnJlbnRfdXJsKHNlc3Npb24pOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAgaWQ9MT4iKQogICAgICAgICBl
eHBlY3RlZF91cmwgPSBzZXNzaW9uLnVybApAQCAtMjcsNyArMjYsNyBAQCBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190
eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAgaWQ9MT4iKQog
CkBAIC00Miw3ICs0MSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHAgaWQ9MT4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0ZS9nZXQu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVt
ZW50X2F0dHJpYnV0ZS9nZXQucHkKaW5kZXggYjE4ZDljYThiMjJhLi41MjhjYmQyOWYwMjAgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X2VsZW1lbnRfYXR0cmlidXRlL2dldC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2F0dHJpYnV0ZS9nZXQucHkKQEAgLTEsNyAr
MSw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5l
IGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVs
ZW1lbnQsIGF0dHIpOgpAQCAtMTMsOCArMTIsMTQgQEAgZGVmIGdldF9lbGVtZW50X2F0dHJpYnV0
ZShzZXNzaW9uLCBlbGVtZW50LCBhdHRyKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3Npbmdf
Y29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVs
ZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1
dGUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImlkIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2Us
ICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9hdHRyaWJ1dGUo
c2Vzc2lvbiwgImZvbyIsICJpZCIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3Vj
aCB3aW5kb3ciKQorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQor
ICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQuaWQs
ICJpZCIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50IikKIAog
CiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CkBA
IC0yOCw3ICszMyw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgogICAg
IGFzc2VydF9lcnJvcihyZXN1bHQsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2Vs
ZW1lbnRfc3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlu
bGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lv
bi5yZWZyZXNoKCkKQEAgLTM2LDcgKzQxLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNz
aW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2Ui
KQogCiAKLWRlZiB0ZXN0X25vcm1hbChzZXNzaW9uKToKK2RlZiB0ZXN0X25vcm1hbChzZXNzaW9u
LCBpbmxpbmUpOgogICAgICMgMTMuMiBTdGVwIDUKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IHR5cGU9Y2hlY2tib3g+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCkBAIC03Myw3ICs3OCw3IEBAIGRlZiB0ZXN0X25vcm1hbChzZXNz
aW9uKToKICAgICAoInRyYWNrIiwgWyJkZWZhdWx0Il0pLAogICAgICgidmlkZW8iLCBbImF1dG9w
bGF5IiwgImNvbnRyb2xzIiwgImxvb3AiLCAibXV0ZWQiXSkKIF0pCi1kZWYgdGVzdF9ib29sZWFu
X2F0dHJpYnV0ZShzZXNzaW9uLCB0YWcsIGF0dHJzKToKK2RlZiB0ZXN0X2Jvb2xlYW5fYXR0cmli
dXRlKHNlc3Npb24sIGlubGluZSwgdGFnLCBhdHRycyk6CiAgICAgZm9yIGF0dHIgaW4gYXR0cnM6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ezB9IHsxfT4iLmZvcm1hdCh0YWcsIGF0
dHIpKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyh0YWcsIGFsbD1GYWxzZSkK
QEAgLTgxLDcgKzg2LDcgQEAgZGVmIHRlc3RfYm9vbGVhbl9hdHRyaWJ1dGUoc2Vzc2lvbiwgdGFn
LCBhdHRycyk6CiAgICAgICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgInRydWUiKQogCiAKLWRl
ZiB0ZXN0X2dsb2JhbF9ib29sZWFuX2F0dHJpYnV0ZXMoc2Vzc2lvbik6CitkZWYgdGVzdF9nbG9i
YWxfYm9vbGVhbl9hdHRyaWJ1dGVzKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxwIGhpZGRlbj5mb28iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3Nz
KCJwIiwgYWxsPUZhbHNlKQogICAgIHJlc3VsdCA9IGdldF9lbGVtZW50X2F0dHJpYnV0ZShzZXNz
aW9uLCBlbGVtZW50LmlkLCAiaGlkZGVuIikKQEAgLTEwMywzICsxMDgsMTQgQEAgZGVmIHRlc3Rf
Z2xvYmFsX2Jvb2xlYW5fYXR0cmlidXRlcyhzZXNzaW9uKToKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygicCIsIGFsbD1GYWxzZSkKICAgICByZXN1bHQgPSBnZXRfZWxlbWVudF9hdHRy
aWJ1dGUoc2Vzc2lvbiwgZWxlbWVudC5pZCwgIml0ZW1zY29wZSIpCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzdWx0LCBOb25lKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaXNfcmVsYXRp
dmUiLCBbVHJ1ZSwgRmFsc2VdLCBpZHM9WyJyZWxhdGl2ZSIsICJhYnNvbHV0ZSJdKQorZGVmIHRl
c3RfYW5jaG9yX2hyZWYoc2Vzc2lvbiwgaW5saW5lLCB1cmwsIGlzX3JlbGF0aXZlKToKKyAgICBo
cmVmID0gIi9mb28uaHRtbCIgaWYgaXNfcmVsYXRpdmUgZWxzZSB1cmwoIi9mb28uaHRtbCIpCisK
KyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0ne30nPmZvbzwvYT4iLmZvcm1hdCho
cmVmKSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKKwor
ICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfYXR0cmlidXRlKHNlc3Npb24sIGVsZW1lbnQuaWQs
ICJocmVmIikKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgaHJlZikKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
YXR0cmlidXRlL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL3VzZXJfcHJvbXB0cy5weQppbmRl
eCA1ZWU3OTI5YWZkZjguLjAwOWNiMWU1ZmExZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9hdHRyaWJ1dGUvdXNlcl9w
cm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfYXR0cmlidXRlL3VzZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAK
IGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9kaWFsb2dfaGFuZGxlZAotZnJvbSB0ZXN0
cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X2F0dHJp
YnV0ZShzZXNzaW9uLCBlbGVtZW50LCBhdHRyKToKQEAgLTE1LDcgKzE0LDcgQEAgZGVmIGdldF9l
bGVtZW50X2F0dHJpYnV0ZShzZXNzaW9uLCBlbGVtZW50LCBhdHRyKToKIAogCiBAcHl0ZXN0LmZp
eHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vz
c2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0
dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAg
ICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC0z
MSw3ICszMCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtNDcsNyArNDYsNyBAQCBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5s
aW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9u
KGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1m
b28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFs
c2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2dldF9lbGVtZW50X2Nzc192YWx1ZS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2Nzc192YWx1ZS9nZXQucHkKaW5kZXgg
NGU4NzA0ZDUwYWY5Li4zNjljYTljNjk5ZjggMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL2dldC5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVt
ZW50X2Nzc192YWx1ZS9nZXQucHkKQEAgLTEsNSArMSw0IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQu
YXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5z
dXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X2Nzc192YWx1
ZShzZXNzaW9uLCBlbGVtZW50X2lkLCBwcm9wKToKQEAgLTE0LDkgKzEzLDE2IEBAIGRlZiBnZXRf
ZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudF9pZCwgcHJvcCk6CiAKIAogZGVmIHRl
c3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAg
b3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdworICAgIHJlc3BvbnNlID0g
Z2V0X2VsZW1lbnRfY3NzX3ZhbHVlKHNlc3Npb24sIGVsZW1lbnQuaWQsICJkaXNwbGF5IikKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2Ug
PSBnZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgImZvbyIsICJiYXIiKQogICAgIGFzc2Vy
dF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAorICAgIHNlc3Npb24ud2luZG93
X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfY3Nz
X3ZhbHVlKHNlc3Npb24sIGVsZW1lbnQuaWQsICJkaXNwbGF5IikKKyAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2Nv
bnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50
X2Nzc192YWx1ZShzZXNzaW9uLCAiZm9vIiwgImJhciIpCkBAIC0yOCw3ICszNCw3IEBAIGRlZiB0
ZXN0X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1bHQs
ICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6
CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJp
bnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtMzcsNyArNDMsNyBA
QCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAgIGFzc2VydF9lcnJvcihyZXN1
bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVmIHRlc3RfcHJvcGVydHlfbmFt
ZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X3Byb3BlcnR5X25hbWVfdmFsdWUoc2Vzc2lvbiwg
aW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiI8aW5wdXQgc3R5bGU9ImRpc3Bs
YXk6IGJsb2NrIj4iIiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogCkBAIC00NSw3ICs1MSw3IEBAIGRlZiB0ZXN0X3Byb3BlcnR5X25hbWVfdmFs
dWUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzdWx0LCAiYmxvY2siKQogCiAKLWRl
ZiB0ZXN0X3Byb3BlcnR5X25hbWVfbm90X2V4aXN0ZW50KHNlc3Npb24pOgorZGVmIHRlc3RfcHJv
cGVydHlfbmFtZV9ub3RfZXhpc3RlbnQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVy
bCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlu
cHV0IiwgYWxsPUZhbHNlKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2Nzc192YWx1ZS91c2VyX3Byb21wdHMucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50
X2Nzc192YWx1ZS91c2VyX3Byb21wdHMucHkKaW5kZXggNTI5YjZhZTkxODNkLi5iMWY5YTNmYjBh
MDAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X2VsZW1lbnRfY3NzX3ZhbHVlL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X2Nzc192YWx1ZS91
c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBh
c3NlcnRfZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlu
bGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lvbiwgZWxlbWVudF9pZCwg
cHJvcCk6CkBAIC0xOCw3ICsxNyw3IEBAIGRlZiBnZXRfZWxlbWVudF9jc3NfdmFsdWUoc2Vzc2lv
biwgZWxlbWVudF9pZCwgcHJvcCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cp
OgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogYmxvY2siPiIiIikKICAg
ICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAt
MzQsNyArMzMsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiI8aW5wdXQgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4iIiIpCiAgICAg
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTUw
LDcgKzQ5LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
Zyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Np
b24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiIjxpbnB1dCBzdHlsZT0iZGlzcGxheTogYmxvY2siPiIiIikKICAgICAgICAg
ZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVu
dF9wcm9wZXJ0eS9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L2dldC5weQppbmRleCA1YzAyNDdlZGI3MDIuLjEw
ZjdhMDhhZTczZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfZWxlbWVudF9wcm9wZXJ0eS9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9wcm9wZXJ0eS9nZXQu
cHkKQEAgLTEsNyArMSw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5h
c3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfcHJvcGVydHko
c2Vzc2lvbiwgZWxlbWVudF9pZCwgcHJvcCk6CkBAIC0xMyw5ICsxMiwxNiBAQCBkZWYgZ2V0X2Vs
ZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudF9pZCwgcHJvcCk6CiAKIAogZGVmIHRlc3Rf
bm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgb3Jp
Z2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdworICAgIHJlc3BvbnNlID0gZ2V0
X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudC5pZCwgInZhbHVlIikKKyAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2UgPSBnZXRf
ZWxlbWVudF9wcm9wZXJ0eShzZXNzaW9uLCAiZm9vIiwgImlkIikKICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUg
PSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3Byb3BlcnR5KHNl
c3Npb24sIGVsZW1lbnQuaWQsICJ2YWx1ZSIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCBlbGVtZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Np
b24sIGNsb3NlZF9mcmFtZSk6CiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9wcm9wZXJ0eShz
ZXNzaW9uLCAiZm9vIiwgImlkIikKQEAgLTI3LDcgKzMzLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9u
b3RfZm91bmQoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBl
bGVtZW50IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgorZGVmIHRlc3Rf
ZWxlbWVudF9zdGFsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5l
KCI8aW5wdXQgaWQ9Zm9vYmFyPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlu
cHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0zNiw3ICs0Miw3IEBA
IGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAKLWRlZiB0ZXN0X3Byb3BlcnR5X25v
bl9leGlzdGVudChzZXNzaW9uKToKK2RlZiB0ZXN0X3Byb3BlcnR5X25vbl9leGlzdGVudChzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTQ1LDcg
KzUxLDcgQEAgZGVmIHRlc3RfcHJvcGVydHlfbm9uX2V4aXN0ZW50KHNlc3Npb24pOgogICAgIGFz
c2VydCBzZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLmZvbyIsIGFy
Z3M9KGVsZW1lbnQsKSkgaXMgTm9uZQogCiAKLWRlZiB0ZXN0X2NvbnRlbnRfYXR0cmlidXRlKHNl
c3Npb24pOgorZGVmIHRlc3RfY29udGVudF9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToKICAg
ICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZvb2Jhcj4iKQogICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKIApAQCAtNTMsNyArNTks
NyBAQCBkZWYgdGVzdF9jb250ZW50X2F0dHJpYnV0ZShzZXNzaW9uKToKICAgICBhc3NlcnRfc3Vj
Y2VzcyhyZXNwb25zZSwgImZvb2JhciIpCiAKIAotZGVmIHRlc3RfaWRsX2F0dHJpYnV0ZShzZXNz
aW9uKToKK2RlZiB0ZXN0X2lkbF9hdHRyaWJ1dGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPGlucHV0IHZhbHVlPWZvbz4iKQogICAgIGVsZW1lbnQgPSBzZXNz
aW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLmV4ZWN1dGVfc2Ny
aXB0KCIiImFyZ3VtZW50c1swXS52YWx1ZSA9ICJiYXIiOyIiIiwgYXJncz0oZWxlbWVudCwpKQpA
QCAtNzAsNyArNzYsNyBAQCBkZWYgdGVzdF9pZGxfYXR0cmlidXRlKHNlc3Npb24pOgogICAgICgi
bnVsbCIsIE5vbmUpLAogICAgICgidW5kZWZpbmVkIiwgTm9uZSksCiBdKQotZGVmIHRlc3RfcHJp
bWl0aXZlcyhzZXNzaW9uLCBqc19wcmltaXRpdmUsIHB5X3ByaW1pdGl2ZSk6CitkZWYgdGVzdF9w
cmltaXRpdmVzKHNlc3Npb24sIGlubGluZSwganNfcHJpbWl0aXZlLCBweV9wcmltaXRpdmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCIiIgogICAgICAgICA8aW5wdXQ+CiAKQEAgLTkzLDcg
Kzk5LDcgQEAgZGVmIHRlc3RfcHJpbWl0aXZlcyhzZXNzaW9uLCBqc19wcmltaXRpdmUsIHB5X3By
aW1pdGl2ZSk6CiAgICAgKCJudWxsIiwgTm9uZSksCiAgICAgKCJ1bmRlZmluZWQiLCBOb25lKSwK
IF0pCi1kZWYgdGVzdF9wcmltaXRpdmVzX3NldF9ieV9leGVjdXRlX3NjcmlwdChzZXNzaW9uLCBq
c19wcmltaXRpdmUsIHB5X3ByaW1pdGl2ZSk6CitkZWYgdGVzdF9wcmltaXRpdmVzX3NldF9ieV9l
eGVjdXRlX3NjcmlwdChzZXNzaW9uLCBpbmxpbmUsIGpzX3ByaW1pdGl2ZSwgcHlfcHJpbWl0aXZl
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24uZXhlY3V0ZV9z
Y3JpcHQoImFyZ3VtZW50c1swXS5mb29iYXIgPSB7fSIuZm9ybWF0KGpzX3ByaW1pdGl2ZSksIGFy
Z3M9KGVsZW1lbnQsKSkKQEAgLTEwMiw3ICsxMDgsNyBAQCBkZWYgdGVzdF9wcmltaXRpdmVzX3Nl
dF9ieV9leGVjdXRlX3NjcmlwdChzZXNzaW9uLCBqc19wcmltaXRpdmUsIHB5X3ByaW1pdGl2ZSk6
CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsIHB5X3ByaW1pdGl2ZSkKIAogCi1kZWYgdGVz
dF9tdXRhdGVkX2VsZW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9tdXRhdGVkX2VsZW1lbnQoc2Vz
c2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IHR5cGU9Y2hl
Y2tib3g+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCiAgICAgZWxlbWVudC5jbGljaygpCkBAIC0xMTQsMyArMTIwLDE0IEBAIGRlZiB0ZXN0X211
dGF0ZWRfZWxlbWVudChzZXNzaW9uKToKIAogICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcHJv
cGVydHkoc2Vzc2lvbiwgZWxlbWVudC5pZCwgImNoZWNrZWQiKQogICAgIGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlLCBUcnVlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaXNfcmVsYXRp
dmUiLCBbVHJ1ZSwgRmFsc2VdLCBpZHM9WyJyZWxhdGl2ZSIsICJhYnNvbHV0ZSJdKQorZGVmIHRl
c3RfYW5jaG9yX2hyZWYoc2Vzc2lvbiwgaW5saW5lLCB1cmwsIGlzX3JlbGF0aXZlKToKKyAgICBo
cmVmID0gIi9mb28uaHRtbCIgaWYgaXNfcmVsYXRpdmUgZWxzZSB1cmwoIi9mb28uaHRtbCIpCisK
KyAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGEgaHJlZj0ne30nPmZvbzwvYT4iLmZvcm1hdCho
cmVmKSkKKyAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiYSIsIGFsbD1GYWxzZSkKKwor
ICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfcHJvcGVydHkoc2Vzc2lvbiwgZWxlbWVudC5pZCwg
ImhyZWYiKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlLCB1cmwoIi9mb28uaHRtbCIpKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF9wcm9wZXJ0eS91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3Byb3BlcnR5L3VzZXJfcHJvbXB0
cy5weQppbmRleCAxNmEwOTg1MzZmZGUuLmU1ZTc2OTQ3ODYzZSAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9wcm9wZXJ0
eS91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9nZXRfZWxlbWVudF9wcm9wZXJ0eS91c2VyX3Byb21wdHMucHkKQEAgLTMsNyAr
Myw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVu
dF9wcm9wZXJ0eShzZXNzaW9uLCBlbGVtZW50X2lkLCBuYW1lKToKQEAgLTEzLDcgKzEyLDcgQEAg
ZGVmIGdldF9lbGVtZW50X3Byb3BlcnR5KHNlc3Npb24sIGVsZW1lbnRfaWQsIG5hbWUpOgogCiAK
IEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4
Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToK
ICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlk
PWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1G
YWxzZSkKQEAgLTI5LDcgKzI4LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+IikKICAgICAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCkBAIC00NSw3ICs0NCw3IEBA
IGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3Jl
YXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRf
bm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgi
PGlucHV0IGlkPWZvbz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2Zv
byIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC9nZXQucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3JlY3QvZ2V0LnB5CmluZGV4
IDQ5NGM0NWY4ZTQ1Yi4uOWFiNGRiNGM2MDRmIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3JlY3QvZ2V0LnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
cmVjdC9nZXQucHkKQEAgLTEsNiArMSw1IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0Lmhl
bHBlcnMgaW1wb3J0IGVsZW1lbnRfcmVjdAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiAKIAogZGVmIGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6
CkBAIC0xNCw5ICsxMywxNiBAQCBkZWYgZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCBlbGVtZW50
X2lkKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9z
ZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93
CisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sIGVsZW1lbnQuaWQpCisg
ICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNl
ID0gZ2V0X2VsZW1lbnRfcmVjdChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBv
cmlnaW5hbF9oYW5kbGUKKyAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwg
ZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQi
KQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1l
KToKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgImZvbyIpCkBAIC0y
OCw3ICszNCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfbm90X2ZvdW5kKHNlc3Npb24pOgogICAgIGFz
c2VydF9lcnJvcihyZXN1bHQsICJubyBzdWNoIGVsZW1lbnQiKQogCiAKLWRlZiB0ZXN0X2VsZW1l
bnRfc3RhbGUoc2Vzc2lvbik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGlubGlu
ZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dD4iKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKICAgICBzZXNzaW9uLnJlZnJlc2go
KQpAQCAtMzcsNyArNDMsNyBAQCBkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24pOgogICAg
IGFzc2VydF9lcnJvcihyZXN1bHQsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAKIAotZGVm
IHRlc3RfYmFzaWMoc2Vzc2lvbik6CitkZWYgdGVzdF9iYXNpYyhzZXNzaW9uLCBpbmxpbmUpOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lv
bi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC91c2VyX3By
b21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dl
dF9lbGVtZW50X3JlY3QvdXNlcl9wcm9tcHRzLnB5CmluZGV4IGM1MTg2NmNiODc1OC4uMjAxMzE2
MDMzODFiIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9lbGVtZW50X3JlY3QvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfcmVjdC91c2VyX3By
b21wdHMucHkKQEAgLTQsNyArNCw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MsIGFzc2VydF9k
aWFsb2dfaGFuZGxlZAogZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGVsZW1lbnRf
cmVjdAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdl
dF9lbGVtZW50X3JlY3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xOCw3ICsxNyw3IEBAIGRl
ZiBnZXRfZWxlbWVudF9yZWN0KHNlc3Npb24sIGVsZW1lbnRfaWQpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgICAgIGVs
ZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKQEAgLTM0LDcgKzMz
LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBp
bmxpbmUoIjxpbnB1dD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5w
dXQiLCBhbGw9RmFsc2UpCkBAIC01MCw3ICs0OSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRl
ZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUp
OgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfc2hh
ZG93X3Jvb3QvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290L2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWZjMGM5MWMzZDNmCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxl
bWVudF9zaGFkb3dfcm9vdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDIyIEBACitpbXBvcnQgcHl0
ZXN0CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNrYm94X2RvbShpbmxpbmUpOgorICAgIHJl
dHVybiBpbmxpbmUoIiIiCisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGN1c3RvbS1jaGVj
a2JveC1lbGVtZW50IHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyMHB4
OyBoZWlnaHQ6MjBweDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAg
PGN1c3RvbS1jaGVja2JveC1lbGVtZW50PjwvY3VzdG9tLWNoZWNrYm94LWVsZW1lbnQ+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2N1c3RvbS1j
aGVja2JveC1lbGVtZW50JywKKyAgICAgICAgICAgICAgICBjbGFzcyBleHRlbmRzIEhUTUxFbGVt
ZW50IHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSkuaW5uZXJIVE1MID0gYAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCB0eXBlPSJjaGVja2JveCIvPjwvZGl2Pgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIDwvc2NyaXB0PiIiIikKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
c2hhZG93X3Jvb3QvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44MmU1MjQyMGEyYzAKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3No
YWRvd19yb290L2dldC5weQpAQCAtMCwwICsxLDYwIEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20g
dGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2Vs
ZW1lbnQsIGFzc2VydF9zdWNjZXNzCisKKworZGVmIGdldF9zaGFkb3dfcm9vdChzZXNzaW9uLCBl
bGVtZW50X2lkKToKKyAgICByZXR1cm4gc2Vzc2lvbi50cmFuc3BvcnQuc2VuZCgKKyAgICAgICAg
IkdFVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9lbGVtZW50L3tlbGVtZW50X2lkfS9zaGFkb3ci
LmZvcm1hdCgKKyAgICAgICAgICAgIHNlc3Npb25faWQ9c2Vzc2lvbi5zZXNzaW9uX2lkLAorICAg
ICAgICAgICAgZWxlbWVudF9pZD1lbGVtZW50X2lkKSkKKworCitkZWYgdGVzdF9ub190b3BfYnJv
d3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5k
bGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jv
b3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBz
dWNoIHdpbmRvdyIpCisgICAgcmVzcG9uc2UgPSBnZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgImZv
byIpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQorCisgICAg
c2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBn
ZXRfc2hhZG93X3Jvb3Qoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVz
cG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQorCisKK2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRl
eHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9v
dChzZXNzaW9uLCAiZm9vIikKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdp
bmRvdyIpCisKKworZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmQoc2Vzc2lvbik6CisgICAgcmVz
dWx0ID0gZ2V0X3NoYWRvd19yb290KHNlc3Npb24sICJmb28iKQorICAgIGFzc2VydF9lcnJvcihy
ZXN1bHQsICJubyBzdWNoIGVsZW1lbnQiKQorCisKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vz
c2lvbiwgY2hlY2tib3hfZG9tKToKKyAgICBzZXNzaW9uLnVybCA9IGNoZWNrYm94X2RvbQorICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tY2hlY2tib3gtZWxlbWVudCIsIGFs
bD1GYWxzZSkKKyAgICBzZXNzaW9uLnJlZnJlc2goKQorCisgICAgcmVzdWx0ID0gZ2V0X3NoYWRv
d19yb290KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3VsdCwgInN0
YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKKworCitkZWYgdGVzdF9nZXRfc2hhZG93X3Jvb3Qoc2Vz
c2lvbiwgY2hlY2tib3hfZG9tKToKKyAgICBzZXNzaW9uLnVybCA9IGNoZWNrYm94X2RvbQorICAg
IGV4cGVjdGVkID0gc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgInJldHVybiBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdjdXN0b20tY2hlY2tib3gtZWxlbWVudCcpLnNoYWRvd1Jvb3Qu
aG9zdCIpCisgICAgY3VzdG9tX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tY2hl
Y2tib3gtZWxlbWVudCIsIGFsbD1GYWxzZSkKKyAgICByZXNwb25zZSA9IGdldF9zaGFkb3dfcm9v
dChzZXNzaW9uLCBjdXN0b21fZWxlbWVudC5pZCkKKyAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KQorICAgIGFzc2Vy
dCAic2hhZG93LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiIgaW4gdmFsdWUKKyAgICBhc3Nl
cnRfc2FtZV9lbGVtZW50KHNlc3Npb24sIGN1c3RvbV9lbGVtZW50LCBleHBlY3RlZCkKKworCitk
ZWYgdGVzdF9ub19zaGFkb3dfcm9vdChzZXNzaW9uLCBpbmxpbmUpOgorICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCI8ZGl2PjxwPm5vIHNoYWRvdyByb290PC9wPjwvZGl2PiIpCisgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKKyAgICByZXNwb25zZSA9IGdl
dF9zaGFkb3dfcm9vdChzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNw
b25zZSwgIm5vIHN1Y2ggc2hhZG93IHJvb3QiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9zaGFkb3dfcm9vdC91c2Vy
X3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L2dldF9lbGVtZW50X3NoYWRvd19yb290L3VzZXJfcHJvbXB0cy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjMyNjcxYjk1YTUzNQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
c2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5CkBAIC0wLDAgKzEsMTE3IEBACisjIE1FVEE6IHRp
bWVvdXQ9bG9uZworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRz
IGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRs
ZWQKKworCitkZWYgZ2V0X3NoYWRvd19yb290KHNlc3Npb24sIGVsZW1lbnRfaWQpOgorICAgIHJl
dHVybiBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kKAorICAgICAgICAiR0VUIiwgInNlc3Npb24ve3Nl
c3Npb25faWR9L2VsZW1lbnQve2VsZW1lbnRfaWR9L3NoYWRvdyIuZm9ybWF0KAorICAgICAgICAg
ICAgc2Vzc2lvbl9pZD1zZXNzaW9uLnNlc3Npb25faWQsCisgICAgICAgICAgICBlbGVtZW50X2lk
PWVsZW1lbnRfaWQpKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBjaGVja2Jv
eF9kb20pOgorICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAgIHNlc3Npb24udXJsID0gY2hlY2tib3hf
ZG9tCisgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tY2hlY2tib3gt
ZWxlbWVudCIsIGFsbD1GYWxzZSkKKworICAgICAgICBjcmVhdGVfZGlhbG9nKGRpYWxvZ190eXBl
LCB0ZXh0PWRpYWxvZ190eXBlKQorCisgICAgICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290
KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KQorCisgICAgICAg
IGFzc2VydF9kaWFsb2dfaGFuZGxlZChzZXNzaW9uLCBleHBlY3RlZF90ZXh0PWRpYWxvZ190eXBl
LCBleHBlY3RlZF9yZXR2YWw9cmV0dmFsKQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9n
LCBjaGVja2JveF9kb20pOgorICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgICAgIHNlc3Npb24udXJsID0gY2hl
Y2tib3hfZG9tCisgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tY2hl
Y2tib3gtZWxlbWVudCIsIGFsbD1GYWxzZSkKKworICAgICAgICBjcmVhdGVfZGlhbG9nKGRpYWxv
Z190eXBlLCB0ZXh0PWRpYWxvZ190eXBlKQorCisgICAgICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRv
d19yb290KHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25z
ZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpCisKKyAgICAgICAgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkKHNlc3Npb24sIGV4cGVjdGVkX3RleHQ9ZGlhbG9nX3R5cGUsIGV4cGVjdGVkX3JldHZhbD1y
ZXR2YWwpCisKKyAgICByZXR1cm4gY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGNoZWNrYm94X2RvbSk6Cisg
ICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2df
dHlwZSk6CisgICAgICAgIHNlc3Npb24udXJsID0gY2hlY2tib3hfZG9tCisgICAgICAgIGVsZW1l
bnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJjdXN0b20tY2hlY2tib3gtZWxlbWVudCIsIGFsbD1GYWxz
ZSkKKworICAgICAgICBjcmVhdGVfZGlhbG9nKGRpYWxvZ190eXBlLCB0ZXh0PWRpYWxvZ190eXBl
KQorCisgICAgICAgIHJlc3BvbnNlID0gZ2V0X3NoYWRvd19yb290KHNlc3Npb24sIGVsZW1lbnQu
aWQpCisgICAgICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgInVuZXhwZWN0ZWQgYWxlcnQgb3Bl
biIpCisKKyAgICAgICAgYXNzZXJ0IHNlc3Npb24uYWxlcnQudGV4dCA9PSBkaWFsb2dfdHlwZQor
ICAgICAgICBzZXNzaW9uLmFsZXJ0LmRpc21pc3MoKQorCisgICAgcmV0dXJuIGNoZWNrX3VzZXJf
cHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbgorCisKK0BweXRlc3QubWFyay5jYXBhYmls
aXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlvciI6ICJhY2NlcHQifSkKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9u
ZSksCisgICAgKCJjb25maXJtIiwgVHJ1ZSksCisgICAgKCJwcm9tcHQiLCAiIiksCitdKQorZGVm
IHRlc3RfYWNjZXB0KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbiwg
ZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhv
dXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFi
aWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImFjY2VwdCBhbmQgbm90aWZ5In0p
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRpYWxvZ190eXBlLCByZXR2YWwiLCBbCisgICAg
KCJhbGVydCIsIE5vbmUpLAorICAgICgiY29uZmlybSIsIFRydWUpLAorICAgICgicHJvbXB0Iiwg
IiIpLAorXSkKK2RlZiB0ZXN0X2FjY2VwdF9hbmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKwor
QHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImRp
c21pc3MifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlhbG9nX3R5cGUsIHJldHZhbCIs
IFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJtIiwgRmFsc2UpLAorICAgICgi
cHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzcyhjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24sIGRpYWxvZ190eXBlLCByZXR2YWwpOgorICAgIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KQorCisKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJ1bmhhbmRsZWRQcm9tcHRCZWhhdmlv
ciI6ICJkaXNtaXNzIGFuZCBub3RpZnkifSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlh
bG9nX3R5cGUsIHJldHZhbCIsIFsKKyAgICAoImFsZXJ0IiwgTm9uZSksCisgICAgKCJjb25maXJt
IiwgRmFsc2UpLAorICAgICgicHJvbXB0IiwgTm9uZSksCitdKQorZGVmIHRlc3RfZGlzbWlzc19h
bmRfbm90aWZ5KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9n
X3R5cGUsIHJldHZhbCk6CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpCisKKworQHB5dGVzdC5tYXJrLmNhcGFiaWxpdGllcyh7
InVuaGFuZGxlZFByb21wdEJlaGF2aW9yIjogImlnbm9yZSJ9KQorQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkaWFsb2dfdHlwZSIsIFsiYWxlcnQiLCAiY29uZmlybSIsICJwcm9tcHQiXSkKK2Rl
ZiB0ZXN0X2lnbm9yZShjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24s
IGRpYWxvZ190eXBlKToKKyAgICBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNl
cHRpb24oZGlhbG9nX3R5cGUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJkaWFsb2df
dHlwZSwgcmV0dmFsIiwgWworICAgICgiYWxlcnQiLCBOb25lKSwKKyAgICAoImNvbmZpcm0iLCBG
YWxzZSksCisgICAgKCJwcm9tcHQiLCBOb25lKSwKK10pCitkZWYgdGVzdF9kZWZhdWx0KGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6
CisgICAgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBl
LCByZXR2YWwpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1lL2dldC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvZ2V0LnB5Cmlu
ZGV4IGZmZTZkZDY0MWU4Mi4uY2ZjNjNiZDc4OGRlIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RhZ19uYW1lL2dldC5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9l
bGVtZW50X3RhZ19uYW1lL2dldC5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9y
dC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3Rz
LnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X2VsZW1lbnRfdGFnX25h
bWUoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xMCw5ICs5LDE2IEBAIGRlZiBnZXRfZWxlbWVu
dF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJv
d3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5k
bGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93CisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90
YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50LmlkKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwg
Im5vIHN1Y2ggd2luZG93IikKICAgICByZXNwb25zZSA9IGdldF9lbGVtZW50X3RhZ19uYW1lKHNl
c3Npb24sICJmb28iKQogICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93
IikKIAorICAgIHNlc3Npb24ud2luZG93X2hhbmRsZSA9IG9yaWdpbmFsX2hhbmRsZQorICAgIHJl
c3BvbnNlID0gZ2V0X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25v
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9
IGdldF9lbGVtZW50X3RhZ19uYW1lKHNlc3Npb24sICJmb28iKQpAQCAtMjQsNyArMzAsNyBAQCBk
ZWYgdGVzdF9lbGVtZW50X25vdF9mb3VuZChzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVz
dWx0LCAibm8gc3VjaCBlbGVtZW50IikKIAogCi1kZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Np
b24pOgorZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Np
b24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24ucmVmcmVzaCgpCkBAIC0z
Myw3ICszOSw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0
X2Vycm9yKHJlc3VsdCwgInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIikKIAogCi1kZWYgdGVzdF9n
ZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uKToKK2RlZiB0ZXN0X2dldF9lbGVtZW50X3RhZ19u
YW1lKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBp
ZD1mb28+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFs
c2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvdXNlcl9wcm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90YWdfbmFtZS91c2Vy
X3Byb21wdHMucHkKaW5kZXggMTJhN2Q0NDg0MjFlLi44OTY5N2QwYWQ2YTIgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRf
dGFnX25hbWUvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X2VsZW1lbnRfdGFnX25hbWUvdXNlcl9wcm9tcHRzLnB5CkBA
IC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0
cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0
X2VsZW1lbnRfdGFnX25hbWUoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xMiw3ICsxMSw3IEBA
IGRlZiBnZXRfZWxlbWVudF90YWdfbmFtZShzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBAcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAg
ZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlw
ZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28+
IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2Up
CkBAIC0yOCw3ICsyNyw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNl
c3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtNDQsNyArNDMsNyBAQCBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9j
bG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191
c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxv
ZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dCBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBh
bGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90ZXh0L2dldC5weQppbmRleCA1ZjE2
OWEzYTIzM2IuLjcyZGMwY2Y3MzVlNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF90ZXh0L2dldC5weQorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQv
Z2V0LnB5CkBAIC0xLDUgKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUg
aW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sIGVsZW1lbnRf
aWQpOgpAQCAtMTAsMjkgKzksMzIgQEAgZGVmIGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxl
bWVudF9pZCk6CiAKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwg
Y2xvc2VkX3dpbmRvdyk6CisgICAgb3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50ID0gY2xvc2VkX3dp
bmRvdworICAgIHJlc3BvbnNlID0gZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVtZW50Lmlk
KQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKICAgICByZXNw
b25zZSA9IGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9y
KHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxl
ID0gb3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Np
b24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVt
ZW50IikKKwogCiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9m
cmFtZSk6CiAgICAgcmVzcG9uc2UgPSBnZXRfZWxlbWVudF90ZXh0KHNlc3Npb24sICJmb28iKQog
ICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVz
dF9nZXR0aW5nX3RleHRfb2ZfYV9ub25fZXhpc3RhbnRfZWxlbWVudF9pc19hbl9lcnJvcihzZXNz
aW9uKToKK2RlZiB0ZXN0X2dldHRpbmdfdGV4dF9vZl9hX25vbl9leGlzdGFudF9lbGVtZW50X2lz
X2FuX2Vycm9yKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIi
PGJvZHk+SGVsbG8gd29ybGQ8L2JvZHk+IiIiKQogCiAgICAgcmVzdWx0ID0gZ2V0X2VsZW1lbnRf
dGV4dChzZXNzaW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAibm8gc3VjaCBl
bGVtZW50IikKIAogCi1kZWYgdGVzdF9yZWFkX2VsZW1lbnRfdGV4dChzZXNzaW9uKToKLSAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiIiIKLSAgICAgICAgPGJvZHk+Ci0gICAgICAgICAgTm9pc2Ug
YmVmb3JlIDxzcGFuIGlkPSdpZCc+VGhpcyBoYXMgYW4gSUQ8L3NwYW4+LiBOb2lzZSBhZnRlcgot
ICAgICAgICA8L2JvZHk+IiIiKQotCitkZWYgdGVzdF9yZWFkX2VsZW1lbnRfdGV4dChzZXNzaW9u
LCBpbmxpbmUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJCZWZvcmUgZjxzcGFuIGlkPSdp
ZCc+b288L3NwYW4+IGFmdGVyIikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2lk
IiwgYWxsPUZhbHNlKQogCiAgICAgcmVzdWx0ID0gZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBl
bGVtZW50LmlkKQotICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIlRoaXMgaGFzIGFuIElEIikK
KyAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJvbyIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvdXNlcl9w
cm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfZWxlbWVudF90ZXh0L3VzZXJfcHJvbXB0cy5weQppbmRleCAxZWU1Y2RlNGRhNTIuLjlmMGJi
Mzg2Y2RmNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9nZXRfZWxlbWVudF90ZXh0L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3RleHQvdXNlcl9w
cm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcywgYXNzZXJ0
X2RpYWxvZ19oYW5kbGVkCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUK
IAogCiBkZWYgZ2V0X2VsZW1lbnRfdGV4dChzZXNzaW9uLCBlbGVtZW50X2lkKToKQEAgLTE0LDcg
KzEzLDcgQEAgZGVmIGdldF9lbGVtZW50X3RleHQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAog
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgog
ICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9n
X3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD1mb28+
YmFyPC9wPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxs
PUZhbHNlKQpAQCAtMzAsNyArMjksNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dp
dGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNl
cHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAg
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHAgaWQ9Zm9vPmJhcjwvcD4iKQogICAgICAgICBl
bGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2ZvbyIsIGFsbD1GYWxzZSkKQEAgLTQ2LDcgKzQ1
LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9u
LCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3By
b21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9z
ZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8cCBpZD1mb28+YmFyPC9wPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQu
Y3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfbmFtZWRfY29va2llL2dldC5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X25hbWVkX2Nvb2tpZS9nZXQu
cHkKaW5kZXggMTAyYzE4ZjAyNzVjLi5kMWU4M2I2YTgxNTIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X25hbWVkX2Nvb2tpZS9nZXQu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRf
bmFtZWRfY29va2llL2dldC5weQpAQCAtMSwxMiArMSwxMCBAQAogaW1wb3J0IHB5dGVzdAogCiBm
cm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCi1mcm9tIHNpeCBpbXBvcnQg
aW50ZWdlcl90eXBlcywgdGV4dF90eXBlCiAKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMg
aW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5o
ZWxwZXJzIGltcG9ydCBjbGVhcl9hbGxfY29va2llcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGdldF9uYW1lZF9jb29raWUoc2Vzc2lvbiwgbmFtZSk6
CkBAIC0zOCwxMyArMzYsMTMgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX3Nlc3Npb25fY29va2llKHNl
c3Npb24sIHVybCk6CiAgICAgIyB0YWJsZSBmb3IgY29va2llIGNvbnZlcnNpb24KICAgICAjIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvI2Rmbi10YWJsZS1mb3ItY29va2llLWNvbnZl
cnNpb24KICAgICBhc3NlcnQgIm5hbWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2ll
WyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQg
aXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikKICAgICBhc3NlcnQgInBhdGgiIGluIGNvb2tpZQot
ICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsicGF0aCJdLCB0ZXh0X3R5cGUpCisgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoY29va2llWyJwYXRoIl0sIHN0cikKICAgICBhc3NlcnQgImRvbWFpbiIg
aW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJkb21haW4iXSwgdGV4dF90
eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsiZG9tYWluIl0sIHN0cikKICAgICBh
c3NlcnQgInNlY3VyZSIgaW4gY29va2llCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJz
ZWN1cmUiXSwgYm9vbCkKICAgICBhc3NlcnQgImh0dHBPbmx5IiBpbiBjb29raWUKQEAgLTUyLDcg
KzUwLDcgQEAgZGVmIHRlc3RfZ2V0X25hbWVkX3Nlc3Npb25fY29va2llKHNlc3Npb24sIHVybCk6
CiAgICAgaWYgImV4cGlyeSIgaW4gY29va2llOgogICAgICAgICBhc3NlcnQgY29va2llLmdldCgi
ZXhwaXJ5IikgaXMgTm9uZQogICAgIGFzc2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQotICAgIGFz
c2VydCBpc2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0IGNvb2tp
ZVsibmFtZSJdID09ICJmb28iCiAgICAgYXNzZXJ0IGNvb2tpZVsidmFsdWUiXSA9PSAiYmFyIgpA
QCAtNzIsMTMgKzcwLDEzIEBAIGRlZiB0ZXN0X2dldF9uYW1lZF9jb29raWUoc2Vzc2lvbiwgdXJs
KToKICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWUsIGRpY3QpCiAKICAgICBhc3NlcnQgIm5h
bWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0
X3R5cGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBh
c3NlcnQgInZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZh
bHVlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0s
IHN0cikKICAgICBhc3NlcnQgImV4cGlyeSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoY29va2llWyJleHBpcnkiXSwgaW50ZWdlcl90eXBlcykKKyAgICBhc3NlcnQgaXNpbnN0YW5j
ZShjb29raWVbImV4cGlyeSJdLCBpbnQpCiAgICAgYXNzZXJ0ICJzYW1lU2l0ZSIgaW4gY29va2ll
Ci0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCB0ZXh0X3R5cGUpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJzYW1lU2l0ZSJdLCBzdHIpCiAKICAgICBhc3Nl
cnQgY29va2llWyJuYW1lIl0gPT0gImZvbyIKICAgICBhc3NlcnQgY29va2llWyJ2YWx1ZSJdID09
ICJiYXIiCkBAIC04Nyw3ICs4NSw3IEBAIGRlZiB0ZXN0X2dldF9uYW1lZF9jb29raWUoc2Vzc2lv
biwgdXJsKToKICAgICAgICAgY29va2llWyJleHBpcnkiXSkuc3RyZnRpbWUodXRjX3N0cmluZ19m
b3JtYXQpID09IGFfZGF5X2Zyb21fbm93CiAKIAotZGVmIHRlc3RfZHVwbGljYXRlZF9jb29raWUo
c2Vzc2lvbiwgdXJsLCBzZXJ2ZXJfY29uZmlnKToKK2RlZiB0ZXN0X2R1cGxpY2F0ZWRfY29va2ll
KHNlc3Npb24sIHVybCwgc2VydmVyX2NvbmZpZywgaW5saW5lKToKICAgICBuZXdfY29va2llID0g
ewogICAgICAgICAibmFtZSI6ICJoZWxsbyIsCiAgICAgICAgICJ2YWx1ZSI6ICJ3b3JsZCIsCkBA
IC0xMTMsMTEgKzExMSwxMSBAQCBkZWYgdGVzdF9kdXBsaWNhdGVkX2Nvb2tpZShzZXNzaW9uLCB1
cmwsIHNlcnZlcl9jb25maWcpOgogICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZSwgZGljdCkK
IAogICAgIGFzc2VydCAibmFtZSIgaW4gY29va2llCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29v
a2llWyJuYW1lIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbIm5h
bWUiXSwgc3RyKQogICAgIGFzc2VydCAidmFsdWUiIGluIGNvb2tpZQotICAgIGFzc2VydCBpc2lu
c3RhbmNlKGNvb2tpZVsidmFsdWUiXSwgdGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvb2tpZVsidmFsdWUiXSwgc3RyKQogICAgIGFzc2VydCAic2FtZVNpdGUiIGluIGNvb2tpZQot
ICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgdGV4dF90eXBlKQorICAg
IGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsic2FtZVNpdGUiXSwgc3RyKQogCiAgICAgYXNzZXJ0
IGNvb2tpZVsibmFtZSJdID09IG5ld19jb29raWVbIm5hbWUiXQogICAgIGFzc2VydCBjb29raWVb
InZhbHVlIl0gPT0gIm5ld3dvcmxkIgpAQCAtMTM2LDExICsxMzQsMTEgQEAgZGVmIHRlc3RfZ2V0
X2Nvb2tpZV93aXRoX3NhbWVfc2l0ZV9mbGFnKHNlc3Npb24sIHVybCwgc2FtZV9zaXRlKToKICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWUsIGRpY3QpCiAKICAgICBhc3NlcnQgIm5hbWUiIGlu
IGNvb2tpZQotICAgIGFzc2VydCBpc2luc3RhbmNlKGNvb2tpZVsibmFtZSJdLCB0ZXh0X3R5cGUp
CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29va2llWyJuYW1lIl0sIHN0cikKICAgICBhc3NlcnQg
InZhbHVlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0s
IHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29raWVbInZhbHVlIl0sIHN0cikK
ICAgICBhc3NlcnQgInNhbWVTaXRlIiBpbiBjb29raWUKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b29raWVbInNhbWVTaXRlIl0sIHRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb29r
aWVbInNhbWVTaXRlIl0sIHN0cikKIAogICAgIGFzc2VydCBjb29raWVbIm5hbWUiXSA9PSAiZm9v
IgogICAgIGFzc2VydCBjb29raWVbInZhbHVlIl0gPT0gImJhciIKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3Nv
dXJjZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0
X3BhZ2Vfc291cmNlL3NvdXJjZS5weQppbmRleCA1NDg0Y2NiZjJlZWYuLmNjNGUyMDg4MzVjOCAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfcGFnZV9zb3VyY2Uvc291cmNlLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3NvdXJjZS5weQpAQCAtMSw1ICsxLDQg
QEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2Vy
dF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBk
ZWYgZ2V0X3BhZ2Vfc291cmNlKHNlc3Npb24pOgpAQCAtMTcsNyArMTYsNyBAQCBkZWYgdGVzdF9u
b19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgYXNzZXJ0X2Vy
cm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X3NvdXJjZV9tYXRj
aGVzX291dGVyX2h0bWwoc2Vzc2lvbik6CitkZWYgdGVzdF9zb3VyY2VfbWF0Y2hlc19vdXRlcl9o
dG1sKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxodG1sPjxo
ZWFkPjx0aXRsZT5DaGVlc2U8L3RpdGxlPjxib2R5PlBlYXMiKQogCiAgICAgZXhwZWN0ZWQgPSBz
ZXNzaW9uLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm91
dGVySFRNTCIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2dldF9wYWdlX3NvdXJjZS91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9wYWdlX3NvdXJjZS91c2VyX3Byb21w
dHMucHkKaW5kZXggM2IwY2RmZjk3ZGQ5Li4xM2NiMzE1OTVlNjEgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3BhZ2Vfc291cmNlL3Vz
ZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL2dldF9wYWdlX3NvdXJjZS91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBp
bXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRf
ZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBnZXRfcGFnZV9zb3VyY2Uoc2Vz
c2lvbik6CkBAIC0xMiw3ICsxMSw3IEBAIGRlZiBnZXRfcGFnZV9zb3VyY2Uoc2Vzc2lvbik6CiAK
IAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0
X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUp
OgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlh
bG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2Lz4i
KQogICAgICAgICBleHBlY3RlZCA9IHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MIikKQEAgLTI4LDcgKzI3LDcgQEAgZGVmIGNo
ZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVf
ZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNl
cl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihk
aWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxkaXYv
PiIpCiAKQEAgLTQzLDcgKzQyLDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUK
LWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6CiAgICAgICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2Lz4iKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9nZXQucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9nZXQucHkK
aW5kZXggMzQ0MDU3NzRiYTA2Li5lNjk2ZWMzNDAzMzkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL2dldC5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9nZXQu
cHkKQEAgLTEsNyArMSw0IEBACi1mcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCi0KIGZyb20gdGVz
dHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCi1m
cm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgZ2V0X3RpdGxl
KHNlc3Npb24pOgpAQCAtMTQsNyArMTEsNyBAQCBkZWYgdGVzdF9wYXlsb2FkKHNlc3Npb24pOgog
CiAgICAgcmVzcG9uc2UgPSBnZXRfdGl0bGUoc2Vzc2lvbikKICAgICB2YWx1ZSA9IGFzc2VydF9z
dWNjZXNzKHJlc3BvbnNlKQotICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUp
CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIHN0cikKIAogCiBkZWYgdGVzdF9ub190b3Bf
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKQEAgLTIyLDI4ICsxOSwy
OCBAQCBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2lu
ZG93KToKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAot
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorZGVm
IHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGlubGluZSk6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb288L3RpdGxlPiIpCiAKICAgICBy
ZXNwb25zZSA9IGdldF90aXRsZShzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNl
LCAiRm9vIikKIAogCi1kZWYgdGVzdF93aXRoX2R1cGxpY2F0ZWRfdGl0bGUoc2Vzc2lvbik6Citk
ZWYgdGVzdF93aXRoX2R1cGxpY2F0ZWRfdGl0bGUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNz
aW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZpcnN0PC90aXRsZT48dGl0bGU+U2Vjb25kPC90aXRs
ZT4iKQogCiAgICAgcmVzdWx0ID0gZ2V0X3RpdGxlKHNlc3Npb24pCiAgICAgYXNzZXJ0X3N1Y2Nl
c3MocmVzdWx0LCAiRmlyc3QiKQogCiAKLWRlZiB0ZXN0X3dpdGhvdXRfdGl0bGUoc2Vzc2lvbik6
CitkZWYgdGVzdF93aXRob3V0X3RpdGxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjxoMj5IZWxsbzwvaDI+IikKIAogICAgIHJlc3VsdCA9IGdldF90aXRsZShz
ZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgIiIpCiAKIAotZGVmIHRlc3RfYWZ0
ZXJfbW9kaWZpY2F0aW9uKHNlc3Npb24pOgorZGVmIHRlc3RfYWZ0ZXJfbW9kaWZpY2F0aW9uKHNl
c3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Jbml0aWFs
PC90aXRsZT48aDI+SGVsbG88L2gyPiIpCiAgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgiZG9j
dW1lbnQudGl0bGUgPSAnVXBkYXRlZCciKQogCkBAIC01MSw3ICs0OCw3IEBAIGRlZiB0ZXN0X2Fm
dGVyX21vZGlmaWNhdGlvbihzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsICJV
cGRhdGVkIikKIAogCi1kZWYgdGVzdF9zdHJpcF9hbmRfY29sbGFwc2Uoc2Vzc2lvbik6CitkZWYg
dGVzdF9zdHJpcF9hbmRfY29sbGFwc2Uoc2Vzc2lvbiwgaW5saW5lKToKICAgICBkb2N1bWVudCA9
ICI8dGl0bGU+ICAgYSBiXHRjXG5kXHQgXG4gZVx0XG4gPC90aXRsZT48aDI+SGVsbG88L2gyPiIK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZShkb2N1bWVudCkKIApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvaWZyYW1lLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUv
aWZyYW1lLnB5CmluZGV4IDU5OTFiZjM1OTA2OS4uOWM1YWIwYjU5NWQzIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF90aXRsZS9pZnJh
bWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9n
ZXRfdGl0bGUvaWZyYW1lLnB5CkBAIC0xLDcgKzEsNiBAQAogaW1wb3J0IHB5dGVzdAogCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMu
c3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlmcmFtZSwgaW5saW5lCiAKIAogIiIiCkBAIC0xNSw5ICsx
NCwyMCBAQCBhbHNvIGVuZm9yY2UgcHJvY2VzcyBpc29sYXRpb24gYmFzZWQgb24gc2l0ZSBvcmln
aW4uCiBUaGlzIGlzIGtub3duIHRvIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcyBmb3IgV2ViRHJp
dmVyIGltcGxlbWVudGF0aW9ucy4KICIiIgogCi1mcmFtZV9kb2MgPSBpbmxpbmUoIjx0aXRsZT5j
aGVlc2U8L3RpdGxlPjxwPmZyYW1lIikKLW9uZV9mcmFtZV9kb2MgPSBpbmxpbmUoIjx0aXRsZT5i
YXI8L3RpdGxlPjxpZnJhbWUgc3JjPSclcyc+PC9pZnJhbWU+IiAlIGZyYW1lX2RvYykKLW5lc3Rl
ZF9mcmFtZXNfZG9jID0gaW5saW5lKCI8dGl0bGU+Zm9vPC90aXRsZT48aWZyYW1lIHNyYz0nJXMn
PjwvaWZyYW1lPiIgJSBvbmVfZnJhbWVfZG9jKQorCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBmcmFt
ZV9kb2MoaW5saW5lKToKKyAgICByZXR1cm4gaW5saW5lKCI8dGl0bGU+Y2hlZXNlPC90aXRsZT48
cD5mcmFtZSIpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgb25lX2ZyYW1lX2RvYyhpbmxpbmUs
IGZyYW1lX2RvYyk6CisgICAgcmV0dXJuIGlubGluZSgiPHRpdGxlPmJhcjwvdGl0bGU+PGlmcmFt
ZSBzcmM9JyVzJz48L2lmcmFtZT4iICUgZnJhbWVfZG9jKQorCisKK0BweXRlc3QuZml4dHVyZQor
ZGVmIG5lc3RlZF9mcmFtZXNfZG9jKGlubGluZSwgb25lX2ZyYW1lX2RvYyk6CisgICAgcmV0dXJu
IGlubGluZSgiPHRpdGxlPmZvbzwvdGl0bGU+PGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iICUg
b25lX2ZyYW1lX2RvYykKIAogCiBkZWYgZ2V0X3RpdGxlKHNlc3Npb24pOgpAQCAtMjUsMTQgKzM1
LDE0IEBAIGRlZiBnZXRfdGl0bGUoc2Vzc2lvbik6CiAgICAgICAgICJHRVQiLCAic2Vzc2lvbi97
c2Vzc2lvbl9pZH0vdGl0bGUiLmZvcm1hdCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0
X25vX2lmcmFtZShzZXNzaW9uKToKK2RlZiB0ZXN0X25vX2lmcmFtZShzZXNzaW9uLCBpbmxpbmUp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8dGl0bGU+Rm9vYmFyPC90aXRsZT48aDI+SGVs
bG88L2gyPiIpCiAKICAgICByZXN1bHQgPSBnZXRfdGl0bGUoc2Vzc2lvbikKICAgICBhc3NlcnRf
c3VjY2VzcyhyZXN1bHQsICJGb29iYXIiKQogCiAKLWRlZiB0ZXN0X2lmcmFtZShzZXNzaW9uKToK
K2RlZiB0ZXN0X2lmcmFtZShzZXNzaW9uLCBvbmVfZnJhbWVfZG9jKToKICAgICBzZXNzaW9uLnVy
bCA9IG9uZV9mcmFtZV9kb2MKIAogICAgIGZyYW1lID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1l
IiwgYWxsPUZhbHNlKQpAQCAtNDMsNyArNTMsNyBAQCBkZWYgdGVzdF9pZnJhbWUoc2Vzc2lvbik6
CiAgICAgYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UsICJiYXIiKQogCiAKLWRlZiB0ZXN0X25lc3Rl
ZF9pZnJhbWUoc2Vzc2lvbik6CitkZWYgdGVzdF9uZXN0ZWRfaWZyYW1lKHNlc3Npb24sIG5lc3Rl
ZF9mcmFtZXNfZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG5lc3RlZF9mcmFtZXNfZG9jCiAKICAg
ICBvdXRlcl9mcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKQEAg
LTU4LDcgKzY4LDcgQEAgZGVmIHRlc3RfbmVzdGVkX2lmcmFtZShzZXNzaW9uKToKIAogCiBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRvbWFpbiIsIFsiIiwgImFsdCJdLCBpZHM9WyJzYW1lX29y
aWdpbiIsICJjcm9zc19vcmlnaW4iXSkKLWRlZiB0ZXN0X29yaWdpbihzZXNzaW9uLCBkb21haW4s
IHVybCk6CitkZWYgdGVzdF9vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUsIGRvbWFpbik6
CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5mb288L3RpdGxlPnt9Ii5mb3JtYXQo
CiAgICAgICAgIGlmcmFtZSgiPHRpdGxlPmJhcjwvdGl0bGU+PHA+ZnJhbWUiLCBkb21haW49ZG9t
YWluKSkpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvZ2V0X3RpdGxlL3VzZXJfcHJvbXB0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL3VzZXJfcHJvbXB0cy5weQppbmRleCA3
NmQ2NWMwODhhMGIuLjBmZDUxZTQ2ZjMyYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfdGl0bGUvdXNlcl9wcm9tcHRzLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3RpdGxlL3Vz
ZXJfcHJvbXB0cy5weQpAQCAtMyw3ICszLDYgQEAKIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0
cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X2Vy
cm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIAogZGVmIGdldF90aXRsZShzZXNzaW9uKToKQEAgLTEyLDcgKzExLDcgQEAgZGVmIGdl
dF90aXRsZShzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51
cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb288L3RpdGxlPiIpCiAgICAgICAgIGV4cGVjdGVkX3RpdGxl
ID0gc2Vzc2lvbi50aXRsZQpAQCAtMjgsNyArMjcsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRf
Y2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBw
eXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRf
d2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYg
Y2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2
YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHRpdGxlPkZvbzwvdGl0bGU+IikK
IApAQCAtNDMsNyArNDIsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRp
b24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoIjx0aXRsZT5Gb288L3RpdGxlPiIpCiAKQEAgLTExNyw3ICsxMTYs
NyBAQCBkZWYgdGVzdF9kZWZhdWx0KGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2Vw
dGlvbiwgZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAjIHRyaWdnZXIgdGhlIGNyZWF0aW9uIG9mIGEg
ZGlhbG9nIGF0IGFsbC4gVGhlcmVmb3JlLCB0aGlzIHRlc3Qgc2hvdWxkIG9ubHkgYmUKICMgcnVu
IGluIGNvbnRleHRzIHRoYXQgc3VwcG9ydCB0aGUgZGlhbG9nIChhIGNvbmRpdGlvbiB0aGF0IG1h
eSBub3QgYmUKICMgZGV0ZXJtaW5lZCBhdXRvbWF0aWNhbGx5KS4KLSMgZGVmIHRlc3RfdGl0bGVf
d2l0aF9ub25fc2ltcGxlX2RpYWxvZyhzZXNzaW9uKToKKyMgZGVmIHRlc3RfdGl0bGVfd2l0aF9u
b25fc2ltcGxlX2RpYWxvZyhzZXNzaW9uLCBpbmxpbmUpOgogIyAgICBkb2N1bWVudCA9ICI8dGl0
bGU+V2l0aCBub24tc2ltcGxlIGRpYWxvZzwvdGl0bGU+PGgyPkhlbGxvPC9oMj4iCiAjICAgIHNw
YXduID0gIiIiCiAjICAgICAgICB2YXIgZG9uZSA9IGFyZ3VtZW50c1swXTsKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dpbmRvd19o
YW5kbGUvZ2V0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfd2luZG93X2hhbmRsZS9nZXQucHkKaW5kZXggOGMyNjIwMzNjMzgzLi42ODQ0MWRhNWVm
ODQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvZ2V0X3dpbmRvd19oYW5kbGUvZ2V0LnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvZ2V0X3dpbmRvd19oYW5kbGUvZ2V0LnB5CkBAIC0xLDMgKzEs
NSBAQAoraW1wb3J0IHB5dGVzdAorCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQg
YXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogCiAKQEAgLTE5LDMgKzIxLDIzIEBAIGRlZiB0
ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKIGRlZiB0ZXN0
X2Jhc2ljKHNlc3Npb24pOgogICAgIHJlc3BvbnNlID0gZ2V0X3dpbmRvd19oYW5kbGUoc2Vzc2lv
bikKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSwgc2Vzc2lvbi53aW5kb3dfaGFuZGxlKQor
CisKKyMgQ2FwYWJpbGl0eSBuZWVkZWQgYXMgbG9uZyBhcyBubyB2YWxpZCBjZXJ0aWZpY2F0ZSBp
cyBhdmFpbGFibGU6CisjICAgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaXNzdWVzLzI4ODQ3CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsiYWNjZXB0SW5zZWN1
cmVDZXJ0cyI6IFRydWV9KQorZGVmIHRlc3RfbmF2aWdhdGlvbl93aXRoX2Nvb3BfaGVhZGVycyhz
ZXNzaW9uLCB1cmwpOgorICAgIGJhc2VfcGF0aCA9ICgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0
L2h0bWwvc3ViZnJhbWUuaHRtbCIgKworICAgICAgICAgICAgICAgICAiP3BpcGU9aGVhZGVyKENy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5LHNhbWUtb3JpZ2luIikKKworICAgIHNlc3Npb24udXJs
ID0gdXJsKGJhc2VfcGF0aCwgcHJvdG9jb2w9Imh0dHBzIikKKyAgICByZXNwb25zZSA9IGdldF93
aW5kb3dfaGFuZGxlKHNlc3Npb24pCisgICAgZmlyc3RfaGFuZGxlID0gYXNzZXJ0X3N1Y2Nlc3Mo
cmVzcG9uc2UpCisKKyAgICAjIG5hdmlnYXRpbmcgdG8gYW5vdGhlciBkb21haW4gd2l0aCBDT09Q
IGhlYWRlcnMgd2lsbCBmb3JjZSBhIHByb2Nlc3MgY2hhbmdlCisgICAgIyBpbiBtb3N0IGJyb3dz
ZXJzCisgICAgc2Vzc2lvbi51cmwgPSB1cmwoYmFzZV9wYXRoLCBwcm90b2NvbD0iaHR0cHMiLCBk
b21haW49ImFsdCIpCisgICAgcmVzcG9uc2UgPSBnZXRfd2luZG93X2hhbmRsZShzZXNzaW9uKQor
ICAgIHNlY29uZF9oYW5kbGUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAgIGFzc2Vy
dCBmaXJzdF9oYW5kbGUgPT0gc2Vjb25kX2hhbmRsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X3JlY3QvZ2V0LnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfd2luZG93X3Jl
Y3QvZ2V0LnB5CmluZGV4IDc5MzY1MGZlZWY0Ni4uZjc1OTJhMzBlMDY3IDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF93aW5kb3dfcmVj
dC9nZXQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9nZXRfd2luZG93X3JlY3QvZ2V0LnB5CkBAIC0xLDggKzEsNCBAQAogZnJvbSB0ZXN0cy5zdXBw
b3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQotCi0KLWFsZXJ0X2RvYyA9IGlubGluZSgi
PHNjcmlwdD53aW5kb3cuYWxlcnQoKTwvc2NyaXB0PiIpCiAKIAogZGVmIGdldF93aW5kb3dfcmVj
dChzZXNzaW9uKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvaWRsaGFybmVzcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQwNDlkODM1ZjJmYy4uMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaWRsaGFybmVzcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMjMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04Pgot
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyLyI+
Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy9pZGxoYXJuZXNzLmpzPjwvc2NyaXB0PgotCi08c2NyaXB0PgotICAidXNlIHN0cmlj
dCI7Ci0KLSAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKLSAgICBjb25zdCBpZGxfYXJyYXkg
PSBuZXcgSWRsQXJyYXkoKTsKLSAgICBjb25zdCBpZGwgPSBhd2FpdCBmZXRjaCgiL2ludGVyZmFj
ZXMvd2ViZHJpdmVyLmlkbCIpLnRoZW4ociA9PiByLnRleHQoKSk7Ci0gICAgY29uc3QgaHRtbCA9
IGF3YWl0IGZldGNoKCIvaW50ZXJmYWNlcy9odG1sLmlkbCIpLnRoZW4ociA9PiByLnRleHQoKSk7
Ci0gICAgaWRsX2FycmF5LmFkZF9pZGxzKGlkbCk7Ci0gICAgaWRsX2FycmF5LmFkZF9kZXBlbmRl
bmN5X2lkbHMoaHRtbCk7Ci0gICAgaWRsX2FycmF5LmFkZF9vYmplY3RzKHsKLSAgICAgIE5hdmln
YXRvcjogWyJuYXZpZ2F0b3IiXQotICAgIH0pOwotICAgIGlkbF9hcnJheS50ZXN0KCk7Ci0gIH0s
ICJUZXN0IElETCBpbXBsZW1lbnRhdGlvbiBvZiB3ZWJkcml2ZXIgQVBJIik7Ci08L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
aWRsaGFybmVzcy53aW5kb3cuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL2lkbGhhcm5lc3Mud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uZTkyZTE1MWQ4OTgzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pZGxoYXJuZXNzLndpbmRvdy5qcwpA
QCAtMCwwICsxLDE2IEBACisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIu
anMKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKKworLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8KKworInVzZSBzdHJpY3QiOworCitpZGxfdGVzdCgK
KyAgWyJ3ZWJkcml2ZXIiXSwKKyAgWyJodG1sIl0sCisgIGlkbF9hcnJheSA9PiB7CisgICAgaWRs
X2FycmF5LmFkZF9vYmplY3RzKHsKKyAgICAgIE5hdmlnYXRvcjogWyJuYXZpZ2F0b3IiXQorICAg
IH0pOworICB9CispOwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvZW5hYmxlZC5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL2VuYWJs
ZWQucHkKaW5kZXggODhiMTUzNGRlZDFhLi40YTVhOTJiYTVlOTEgMTAwNjQ0Ci0tLSBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVk
L2VuYWJsZWQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9pc19lbGVtZW50X2VuYWJsZWQvZW5hYmxlZC5weQpAQCAtMSw3ICsxLDYgQEAKIGltcG9y
dCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJv
ciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKIGRlZiBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0x
NSwxNiArMTQsMjMgQEAgZGVmIGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50X2lk
KToKIAogCiBkZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRf
d2luZG93KToKKyAgICBvcmlnaW5hbF9oYW5kbGUsIGVsZW1lbnQgPSBjbG9zZWRfd2luZG93Cisg
ICAgcmVzcG9uc2UgPSBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAg
ICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAgICAgcmVzcG9uc2Ug
PSBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJl
c3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0g
b3JpZ2luYWxfaGFuZGxlCisgICAgcmVzcG9uc2UgPSBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lv
biwgZWxlbWVudC5pZCkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1l
bnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2Zy
YW1lKToKICAgICByZXNwb25zZSA9IGlzX2VsZW1lbnRfZW5hYmxlZChzZXNzaW9uLCAiZm9vIikK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRl
c3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lv
biwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0PiIpCiAgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQogICAgIHNlc3Npb24u
cmVmcmVzaCgpCkBAIC0zNCw3ICs0MCw3IEBAIGRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lv
bik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVtZW50IiwgWyJidXR0b24iLCAi
aW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVzdF9mb3JtX2NvbnRyb2xfZGlz
YWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVzdF9mb3JtX2NvbnRyb2xfZGlzYWJsZWQo
c2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHt9
IGRpc2FibGVkLz4iLmZvcm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5k
LmNzcyhlbGVtZW50LCBhbGw9RmFsc2UpCiAKQEAgLTQzLDcgKzQ5LDcgQEAgZGVmIHRlc3RfZm9y
bV9jb250cm9sX2Rpc2FibGVkKHNlc3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgiZWxlbWVudCIsIFsiYnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0
YXJlYSJdKQotZGVmIHRlc3RfZm9ybV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudCk6
CitkZWYgdGVzdF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNzaW9uLCBpbmxpbmUsIGVsZW1lbnQp
OgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8e30vPiIuZm9ybWF0KGVsZW1lbnQpKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtNTIs
NyArNTgsNyBAQCBkZWYgdGVzdF9mb3JtX2NvbnRyb2xfZW5hYmxlZChzZXNzaW9uLCBlbGVtZW50
KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQiLCBbImJ1dHRvbiIsICJp
bnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVk
X2Rlc2NlbmRhbnQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVzdF9maWVsZHNldF9kaXNhYmxl
ZF9kZXNjZW5kYW50KHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6CiAgICAgc2Vzc2lvbi51cmwg
PSBpbmxpbmUoIjxmaWVsZHNldCBkaXNhYmxlZD48e30vPjwvZmllbGRzZXQ+Ii5mb3JtYXQoZWxl
bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNl
KQogCkBAIC02MSw3ICs2Nyw3IEBAIGRlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRh
bnQoc2Vzc2lvbiwgZWxlbWVudCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbGVt
ZW50IiwgWyJidXR0b24iLCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIl0pCi1kZWYgdGVz
dF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnQoc2Vzc2lvbiwgZWxlbWVudCk6CitkZWYgdGVz
dF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGZpZWxkc2V0Pjx7fS8+PC9maWVsZHNldD4iLmZv
cm1hdChlbGVtZW50KSkKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBh
bGw9RmFsc2UpCiAKQEAgLTcwLDcgKzc2LDcgQEAgZGVmIHRlc3RfZmllbGRzZXRfZW5hYmxlZF9k
ZXNjZW5kYW50KHNlc3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgiZWxlbWVudCIsIFsiYnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQot
ZGVmIHRlc3RfZmllbGRzZXRfZGlzYWJsZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vzc2lvbiwgZWxl
bWVudCk6CitkZWYgdGVzdF9maWVsZHNldF9kaXNhYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChzZXNz
aW9uLCBpbmxpbmUsIGVsZW1lbnQpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZmllbGRz
ZXQgZGlzYWJsZWQ+PGxlZ2VuZD48e30vPjwvbGVnZW5kPjwvZmllbGRzZXQ+Ii5mb3JtYXQoZWxl
bWVudCkpCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoZWxlbWVudCwgYWxsPUZhbHNl
KQogCkBAIC03OSw3ICs4NSw3IEBAIGRlZiB0ZXN0X2ZpZWxkc2V0X2Rpc2FibGVkX2Rlc2NlbmRh
bnRfbGVnZW5kKHNlc3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgiZWxlbWVudCIsIFsiYnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQot
ZGVmIHRlc3RfZmllbGRzZXRfZW5hYmxlZF9kZXNjZW5kYW50X2xlZ2VuZChzZXNzaW9uLCBlbGVt
ZW50KToKK2RlZiB0ZXN0X2ZpZWxkc2V0X2VuYWJsZWRfZGVzY2VuZGFudF9sZWdlbmQoc2Vzc2lv
biwgaW5saW5lLCBlbGVtZW50KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGZpZWxkc2V0
PjxsZWdlbmQ+PHt9Lz48L2xlZ2VuZD48L2ZpZWxkc2V0PiIuZm9ybWF0KGVsZW1lbnQpKQogICAg
IGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKIApAQCAtODgs
NyArOTQsNyBAQCBkZWYgdGVzdF9maWVsZHNldF9lbmFibGVkX2Rlc2NlbmRhbnRfbGVnZW5kKHNl
c3Npb24sIGVsZW1lbnQpOgogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZWxlbWVudCIs
IFsiYnV0dG9uIiwgImlucHV0IiwgInNlbGVjdCIsICJ0ZXh0YXJlYSJdKQotZGVmIHRlc3RfeGh0
bWxfZm9ybV9jb250cm9sX2Rpc2FibGVkKHNlc3Npb24sIGVsZW1lbnQpOgorZGVmIHRlc3RfeGh0
bWxfZm9ybV9jb250cm9sX2Rpc2FibGVkKHNlc3Npb24sIGlubGluZSwgZWxlbWVudCk6CiAgICAg
c2Vzc2lvbi51cmwgPSBpbmxpbmUoIiIiPHt9IGRpc2FibGVkPSJkaXNhYmxlZCIvPiIiIi5mb3Jt
YXQoZWxlbWVudCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdHlwZT0ieGh0bWwiKQog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKGVsZW1lbnQsIGFsbD1GYWxzZSkKQEAgLTk4
LDcgKzEwNCw3IEBAIGRlZiB0ZXN0X3hodG1sX2Zvcm1fY29udHJvbF9kaXNhYmxlZChzZXNzaW9u
LCBlbGVtZW50KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVsZW1lbnQiLCBbImJ1
dHRvbiIsICJpbnB1dCIsICJzZWxlY3QiLCAidGV4dGFyZWEiXSkKLWRlZiB0ZXN0X3hodG1sX2Zv
cm1fY29udHJvbF9lbmFibGVkKHNlc3Npb24sIGVsZW1lbnQpOgorZGVmIHRlc3RfeGh0bWxfZm9y
bV9jb250cm9sX2VuYWJsZWQoc2Vzc2lvbiwgaW5saW5lLCBlbGVtZW50KToKICAgICBzZXNzaW9u
LnVybCA9IGlubGluZSgiIiI8e30vPiIiIi5mb3JtYXQoZWxlbWVudCksIGRvY3R5cGU9InhodG1s
IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcyhlbGVtZW50LCBhbGw9RmFsc2UpCiAK
QEAgLTEwNiw3ICsxMTIsNyBAQCBkZWYgdGVzdF94aHRtbF9mb3JtX2NvbnRyb2xfZW5hYmxlZChz
ZXNzaW9uLCBlbGVtZW50KToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQsIFRydWUpCiAKIAot
ZGVmIHRlc3RfeG1sX2Fsd2F5c19ub3RfZW5hYmxlZChzZXNzaW9uKToKK2RlZiB0ZXN0X3htbF9h
bHdheXNfbm90X2VuYWJsZWQoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZSgiIiI8bm90ZT48L25vdGU+IiIiLCBkb2N0eXBlPSJ4bWwiKQogICAgIGVsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJub3RlIiwgYWxsPUZhbHNlKQogCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5hYmxlZC91
c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL2lzX2VsZW1lbnRfZW5hYmxlZC91c2VyX3Byb21wdHMucHkKaW5kZXggYmQ4YmM4MWJkZmNj
Li41ZGQ3ZDU4MmJkM2QgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvaXNfZWxlbWVudF9lbmFibGVkL3VzZXJfcHJvbXB0cy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfZW5h
YmxlZC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZy
b20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9kaWFs
b2dfaGFuZGxlZCwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1w
b3J0IGlubGluZQogCiAKIGRlZiBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lvbiwgZWxlbWVudF9p
ZCk6CkBAIC0xNyw3ICsxNiw3IEBAIGRlZiBpc19lbGVtZW50X2VuYWJsZWQoc2Vzc2lvbiwgZWxl
bWVudF9pZCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlh
bG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9l
eGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5s
aW5lKCI8aW5wdXQgaWQ9Zm9vIGRpc2FibGVkPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtMzMsNyArMzIsNyBAQCBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlk
PWZvbyBkaXNhYmxlZD4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2Zv
byIsIGFsbD1GYWxzZSkKQEAgLTQ5LDcgKzQ4LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Ns
b3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0
LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24o
c2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3Nl
ZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSk6
CiAgICAgICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQgaWQ9Zm9vIGRpc2FibGVkPiIp
CiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9p
c19lbGVtZW50X3NlbGVjdGVkL3NlbGVjdGVkLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9pc19lbGVtZW50X3NlbGVjdGVkL3NlbGVjdGVkLnB5CmluZGV4
IDc5YTE2MTVkZDlmZC4uNmM4ZTgxNTVjYWIxIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvc2VsZWN0ZWQu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9pc19l
bGVtZW50X3NlbGVjdGVkL3NlbGVjdGVkLnB5CkBAIC0xLDEyICsxLDE4IEBACitpbXBvcnQgcHl0
ZXN0CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3Nl
cnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAot
Y2hlY2tfZG9jID0gaW5saW5lKCIiIgorQHB5dGVzdC5maXh0dXJlCitkZWYgY2hlY2tfZG9jKGlu
bGluZSk6CisgICAgcmV0dXJuIGlubGluZSgiIiIKICAgICA8aW5wdXQgaWQ9Y2hlY2tlZCB0eXBl
PWNoZWNrYm94IGNoZWNrZWQ+CiAgICAgPGlucHV0IGlkPW5vdENoZWNrZWQgdHlwZT1jaGVja2Jv
eD4KICAgICAiIiIpCi1vcHRpb25fZG9jID0gaW5saW5lKCIiIgorCisKK0BweXRlc3QuZml4dHVy
ZQorZGVmIG9wdGlvbl9kb2MoaW5saW5lKToKKyAgICByZXR1cm4gaW5saW5lKCIiIgogICAgIDxz
ZWxlY3Q+CiAgICAgICA8b3B0aW9uIGlkPW5vdFNlbGVjdGVkPnItCiAgICAgICA8b3B0aW9uIGlk
PXNlbGVjdGVkIHNlbGVjdGVkPnIrCkBAIC0yMiwxNiArMjgsMjQgQEAgZGVmIGlzX2VsZW1lbnRf
c2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CiAKIAogZGVmIHRlc3Rfbm9fdG9wX2Jyb3dz
aW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdyk6CisgICAgb3JpZ2luYWxfaGFuZGxl
LCBlbGVtZW50ID0gY2xvc2VkX3dpbmRvdworCisgICAgcmVzcG9uc2UgPSBpc19lbGVtZW50X3Nl
bGVjdGVkKHNlc3Npb24sIGVsZW1lbnQuaWQpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAi
bm8gc3VjaCB3aW5kb3ciKQogICAgIHJlc3BvbnNlID0gaXNfZWxlbWVudF9zZWxlY3RlZChzZXNz
aW9uLCAiZm9vIikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIp
CiAKKyAgICBzZXNzaW9uLndpbmRvd19oYW5kbGUgPSBvcmlnaW5hbF9oYW5kbGUKKyAgICByZXNw
b25zZSA9IGlzX2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgZWxlbWVudC5pZCkKKyAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIGVsZW1lbnQiKQorCiAKIGRlZiB0ZXN0X25vX2Jy
b3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToKICAgICByZXNwb25zZSA9IGlz
X2VsZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgImZvbyIpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCB3aW5kb3ciKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfc3RhbGUoc2Vzc2lv
bik6CitkZWYgdGVzdF9lbGVtZW50X3N0YWxlKHNlc3Npb24sIGNoZWNrX2RvYyk6CiAgICAgc2Vz
c2lvbi51cmwgPSBjaGVja19kb2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI2No
ZWNrZWQiLCBhbGw9RmFsc2UpCiAgICAgc2Vzc2lvbi5yZWZyZXNoKCkKQEAgLTQwLDcgKzU0LDcg
QEAgZGVmIHRlc3RfZWxlbWVudF9zdGFsZShzZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVz
dWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVuY2UiKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfY2hl
Y2tlZChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfY2hlY2tlZChzZXNzaW9uLCBjaGVja19k
b2MpOgogICAgIHNlc3Npb24udXJsID0gY2hlY2tfZG9jCiAgICAgZWxlbWVudCA9IHNlc3Npb24u
ZmluZC5jc3MoIiNjaGVja2VkIiwgYWxsPUZhbHNlKQogCkBAIC00OCw3ICs2Miw3IEBAIGRlZiB0
ZXN0X2VsZW1lbnRfY2hlY2tlZChzZXNzaW9uKToKICAgICBhc3NlcnRfc3VjY2VzcyhyZXN1bHQs
IFRydWUpCiAKIAotZGVmIHRlc3RfY2hlY2tib3hfbm90X3NlbGVjdGVkKHNlc3Npb24pOgorZGVm
IHRlc3RfY2hlY2tib3hfbm90X3NlbGVjdGVkKHNlc3Npb24sIGNoZWNrX2RvYyk6CiAgICAgc2Vz
c2lvbi51cmwgPSBjaGVja19kb2MKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiI25v
dENoZWNrZWQiLCBhbGw9RmFsc2UpCiAKQEAgLTU2LDcgKzcwLDcgQEAgZGVmIHRlc3RfY2hlY2ti
b3hfbm90X3NlbGVjdGVkKHNlc3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgRmFs
c2UpCiAKIAotZGVmIHRlc3RfZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uKToKK2RlZiB0ZXN0X2Vs
ZW1lbnRfc2VsZWN0ZWQoc2Vzc2lvbiwgb3B0aW9uX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBv
cHRpb25fZG9jCiAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNzZWxlY3RlZCIsIGFs
bD1GYWxzZSkKIApAQCAtNjQsNyArNzgsNyBAQCBkZWYgdGVzdF9lbGVtZW50X3NlbGVjdGVkKHNl
c3Npb24pOgogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCwgVHJ1ZSkKIAogCi1kZWYgdGVzdF9l
bGVtZW50X25vdF9zZWxlY3RlZChzZXNzaW9uKToKK2RlZiB0ZXN0X2VsZW1lbnRfbm90X3NlbGVj
dGVkKHNlc3Npb24sIG9wdGlvbl9kb2MpOgogICAgIHNlc3Npb24udXJsID0gb3B0aW9uX2RvYwog
ICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjbm90U2VsZWN0ZWQiLCBhbGw9RmFsc2Up
CiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvaXNfZWxlbWVudF9zZWxlY3RlZC91c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0ZWQvdXNlcl9wcm9t
cHRzLnB5CmluZGV4IDY3NGY4MGM1Yzc1Yi4uOTZkYTJjMDhiZDdlIDEwMDY0NAotLS0gYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2lzX2VsZW1lbnRfc2VsZWN0
ZWQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvaXNfZWxlbWVudF9zZWxlY3RlZC91c2VyX3Byb21wdHMucHkKQEAgLTMsNyAr
Myw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9y
dCBhc3NlcnRfZXJyb3IsIGFzc2VydF9kaWFsb2dfaGFuZGxlZCwgYXNzZXJ0X3N1Y2Nlc3MKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBpc19lbGVtZW50
X3NlbGVjdGVkKHNlc3Npb24sIGVsZW1lbnRfaWQpOgpAQCAtMTQsNyArMTMsNyBAQCBkZWYgaXNf
ZWxlbWVudF9zZWxlY3RlZChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lv
biwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRf
ZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNr
X3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFs
KToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD1mb28gdHlwZT1jaGVj
a2JveCBjaGVja2VkPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCIjZm9v
IiwgYWxsPUZhbHNlKQpAQCAtMzEsNyArMzAsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xv
c2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRl
c3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwp
OgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbyB0eXBlPWNoZWNr
Ym94IGNoZWNrZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28i
LCBhbGw9RmFsc2UpCkBAIC00Nyw3ICs0Niw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0IGlkPWZvbyB0eXBlPWNoZWNrYm94
IGNoZWNrZWQ+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBh
bGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL21heGltaXplX3dpbmRvdy9tYXhpbWl6ZS5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbWF4aW1pemVfd2luZG93L21heGltaXplLnB5Cmlu
ZGV4IDY5MDNlZWNlNzBkMC4uZTIzM2U0NWExMGQ3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL21heGltaXplX3dpbmRvdy9tYXhpbWl6ZS5w
eQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL21heGlt
aXplX3dpbmRvdy9tYXhpbWl6ZS5weQpAQCAtODQsNiArODQsNyBAQCBkZWYgdGVzdF9tYXhpbWl6
ZV93aGVuX3Jlc2l6ZWRfdG9fbWF4X3NpemUoc2Vzc2lvbik6CiAgICAgc2Vzc2lvbi5lbmQoKQog
ICAgIHNlc3Npb24ud2luZG93Lm1heGltaXplKCkKICAgICBhdmFpbGFibGUgPSBzZXNzaW9uLndp
bmRvdy5zaXplCisgICAgc2Vzc2lvbi53aW5kb3cuc2l6ZSA9ICg4MDAsIDYwMCkKICAgICBzZXNz
aW9uLmVuZCgpCiAKICAgICBzZXNzaW9uLndpbmRvdy5zaXplID0gYXZhaWxhYmxlCkBAIC05NSw0
ICs5Niw1IEBAIGRlZiB0ZXN0X21heGltaXplX3doZW5fcmVzaXplZF90b19tYXhfc2l6ZShzZXNz
aW9uKToKICAgICAjIGl0cyBleHBlY3RlZCBkaW1lbnNpb25zLgogICAgIGJlZm9yZSA9IHNlc3Np
b24ud2luZG93LnNpemUKICAgICBzZXNzaW9uLndpbmRvdy5tYXhpbWl6ZSgpCi0gICAgYXNzZXJ0
IHNlc3Npb24ud2luZG93LnNpemUgPT0gYmVmb3JlCisgICAgYWZ0ZXIgPSBzZXNzaW9uLndpbmRv
dy5zaXplCisgICAgYXNzZXJ0IGFmdGVyID09IGJlZm9yZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZpZ2F0ZV90by9uYXZpZ2F0ZS5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmF2aWdhdGVf
dG8vbmF2aWdhdGUucHkKaW5kZXggMjg5ZTQzMjEwMTFmLi4yNWQ3NjgxNjdhYTAgMTAwNjQ0Ci0t
LSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmF2aWdhdGVf
dG8vbmF2aWdhdGUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9uYXZpZ2F0ZV90by9uYXZpZ2F0ZS5weQpAQCAtMSw4ICsxLDExIEBACi1mcm9tIHRl
c3RzLnN1cHBvcnQgaW1wb3J0IHBsYXRmb3JtX25hbWUKK2ltcG9ydCB0aW1lCisKK2ltcG9ydCBw
eXRlc3QKK2Zyb20gd2ViZHJpdmVyIGltcG9ydCBlcnJvcgogZnJvbSB3ZWJkcml2ZXIudHJhbnNw
b3J0IGltcG9ydCBSZXNwb25zZQogCitmcm9tIHRlc3RzLnN1cHBvcnQgaW1wb3J0IHBsYXRmb3Jt
X25hbWUKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAog
CiBkZWYgbmF2aWdhdGVfdG8oc2Vzc2lvbiwgdXJsKToKQEAgLTE3LDcgKzIwLDcgQEAgZGVmIHRl
c3RfbnVsbF9wYXJhbWV0ZXJfdmFsdWUoc2Vzc2lvbiwgaHR0cCk6CiAgICAgICAgIGFzc2VydF9l
cnJvcihSZXNwb25zZS5mcm9tX2h0dHAocmVzcG9uc2UpLCAiaW52YWxpZCBhcmd1bWVudCIpCiAK
IAotZGVmIHRlc3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxf
cmVzcG9uc2VfdmFsdWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICByZXNwb25zZSA9IG5hdmlnYXRl
X3RvKHNlc3Npb24sIGlubGluZSgiPGRpdi8+IikpCiAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2Vz
cyhyZXNwb25zZSkKICAgICBhc3NlcnQgdmFsdWUgaXMgTm9uZQpAQCAtMjgsNyArMzEsNyBAQCBk
ZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorZGVmIHRlc3Rf
bm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGlubGluZSk6CiAgICAg
ZG9jID0gaW5saW5lKCI8cD5mb28iKQogCiAgICAgcmVzcG9uc2UgPSBuYXZpZ2F0ZV90byhzZXNz
aW9uLCBkb2MpCkBAIC01MiwzICs1NSw0OCBAQCBkZWYgdGVzdF9maWxlX3Byb3RvY29sKHNlc3Np
b24sIHNlcnZlcl9jb25maWcpOgogICAgIGlmIHNlc3Npb24udXJsLmVuZHN3aXRoKCcvJyk6CiAg
ICAgICAgIHVybCArPSAnLycKICAgICBhc3NlcnQgc2Vzc2lvbi51cmwgPT0gdXJsCisKKworIyBD
YXBhYmlsaXR5IG5lZWRlZCBhcyBsb25nIGFzIG5vIHZhbGlkIGNlcnRpZmljYXRlIGlzIGF2YWls
YWJsZToKKyMgICBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1
ZXMvMjg4NDcKK0BweXRlc3QubWFyay5jYXBhYmlsaXRpZXMoeyJhY2NlcHRJbnNlY3VyZUNlcnRz
IjogVHJ1ZX0pCitkZWYgdGVzdF9jcm9zc19vcmlnaW4oc2Vzc2lvbiwgaW5saW5lLCB1cmwpOgor
ICAgIGJhc2VfcGF0aCA9ICgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvc3ViZnJhbWUu
aHRtbCIgKworICAgICAgICAgICAgICAgICAiP3BpcGU9aGVhZGVyKENyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5LHNhbWUtb3JpZ2luIikKKyAgICBmaXJzdF9wYWdlID0gdXJsKGJhc2VfcGF0aCwg
cHJvdG9jb2w9Imh0dHBzIikKKyAgICBzZWNvbmRfcGFnZSA9IHVybChiYXNlX3BhdGgsIHByb3Rv
Y29sPSJodHRwcyIsIGRvbWFpbj0iYWx0IikKKworICAgIHJlc3BvbnNlID0gbmF2aWdhdGVfdG8o
c2Vzc2lvbiwgZmlyc3RfcGFnZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKKworICAg
IGFzc2VydCBzZXNzaW9uLnVybCA9PSBmaXJzdF9wYWdlCisgICAgZWxlbSA9IHNlc3Npb24uZmlu
ZC5jc3MoIiNkZWxldGUiLCBhbGw9RmFsc2UpCisKKyAgICByZXNwb25zZSA9IG5hdmlnYXRlX3Rv
KHNlc3Npb24sIHNlY29uZF9wYWdlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisg
ICAgYXNzZXJ0IHNlc3Npb24udXJsID09IHNlY29uZF9wYWdlCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKGVycm9yLlN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgICAgIGVsZW0u
Y2xpY2soKQorCisgICAgc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFsbD1GYWxzZSkKKwor
CitAcHl0ZXN0Lm1hcmsuY2FwYWJpbGl0aWVzKHsicGFnZUxvYWRTdHJhdGVneSI6ICJlYWdlciJ9
KQorZGVmIHRlc3RfdXRmOF9tZXRhX3RhZ19hZnRlcl8xMDI0X2J5dGVzKHNlc3Npb24sIHVybCk6
CisgICAgcGFnZSA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvbWV0YS11dGY4
LWFmdGVyLTEwMjQtYnl0ZXMuaHRtbCIpCisKKyAgICAjIExvYWRpbmcgdGhlIHBhZ2Ugd2lsbCBj
YXVzZSBhIHJlYWwgcGFyc2UgY29tbWVuY2luZywgYW5kIGEgcmVuYXZpZ2F0aW9uCisgICAgIyB0
byB0aGUgc2FtZSBVUkwgZ2V0dGluZyB0cmlnZ2VyZWQgc3Vic2VxdWVudGx5LiBUZXN0IHRoYXQg
dGhlIG5hdmlnYXRlCisgICAgIyBjb21tYW5kIHdhaXRzIGxvbmcgZW5vdWdoLgorICAgIHJlc3Bv
bnNlID0gbmF2aWdhdGVfdG8oc2Vzc2lvbiwgcGFnZSkKKyAgICBhc3NlcnRfc3VjY2VzcyhyZXNw
b25zZSkKKworICAgICMgSWYgdGhlIGNvbW1hbmQgcmV0dXJucyB0b28gZWFybHkgdGhlIHByb3Bl
cnR5IHdpbGwgYmUgcmVzZXQgZHVlIHRvIHRoZQorICAgICMgc3Vic2VxdWVudCBwYWdlIGxvYWQu
CisgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgid2luZG93LmZvbyA9ICdiYXInIikKKworICAg
ICMgVXNlIGRlbGF5IHRvIGFsbG93IGEgcG9zc2libGUgbWlzc2luZyBzdWJzZXF1ZW50IG5hdmln
YXRpb24gdG8gc3RhcnQKKyAgICB0aW1lLnNsZWVwKDEpCisKKyAgICBhc3NlcnQgc2Vzc2lvbi5l
eGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdy5mb28iKSA9PSAiYmFyIgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZpZ2F0ZV90by91
c2VyX3Byb21wdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL25hdmlnYXRlX3RvL3VzZXJfcHJvbXB0cy5weQppbmRleCA2YTk0YzExYmYxZDMuLjY4MmJj
NDBmNGZlOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9uYXZpZ2F0ZV90by91c2VyX3Byb21wdHMucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uYXZpZ2F0ZV90by91c2VyX3Byb21wdHMucHkK
QEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzLCBhc3NlcnRfZGlhbG9nX2hh
bmRsZWQKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiAKIGRlZiBu
YXZpZ2F0ZV90byhzZXNzaW9uLCB1cmwpOgpAQCAtMTMsNyArMTIsNyBAQCBkZWYgbmF2aWdhdGVf
dG8oc2Vzc2lvbiwgdXJsKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6Citk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgdXJsID0gaW5s
aW5lKCI8ZGl2Lz4iKQogCkBAIC0zMCw3ICsyOSw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5
dGVzdC5maXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9u
KHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZh
bCk6CiAgICAgICAgIHVybCA9IGlubGluZSgiPGRpdi8+IikKIApAQCAtNDcsNyArNDYsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgdXJsID0gaW5saW5lKCI8ZGl2Lz4iKQog
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi9yZXNwb25zZS5weQppbmRleCBjYmU5ZTdkN2ZiMTQu
LjQzYThkNTc5MzExNCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi9yZXNwb25zZS5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL3Jlc3BvbnNlLnB5CkBA
IC0xLDI5ICsxLDI3IEBACiBpbXBvcnQgdXVpZAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHNpeCBp
bXBvcnQgc3RyaW5nX3R5cGVzCi0KIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBh
c3NlcnRfc3VjY2VzcwogCiAKIGRlZiB0ZXN0X3Nlc3Npb25pZChuZXdfc2Vzc2lvbiwgYWRkX2Jy
b3dzZXJfY2FwYWJpbGl0aWVzKToKICAgICByZXNwb25zZSwgXyA9IG5ld19zZXNzaW9uKHsiY2Fw
YWJpbGl0aWVzIjogeyJhbHdheXNNYXRjaCI6IGFkZF9icm93c2VyX2NhcGFiaWxpdGllcyh7fSl9
fSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQotICAgIGFzc2VydCBpc2lu
c3RhbmNlKHZhbHVlWyJzZXNzaW9uSWQiXSwgc3RyaW5nX3R5cGVzKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKHZhbHVlWyJzZXNzaW9uSWQiXSwgc3RyKQogICAgIHV1aWQuVVVJRChoZXg9dmFsdWVb
InNlc3Npb25JZCJdKQogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2FwYWJpbGl0eSwg
dHlwZSIsIFsKLSAgICAoImJyb3dzZXJOYW1lIiwgc3RyaW5nX3R5cGVzKSwKLSAgICAoImJyb3dz
ZXJWZXJzaW9uIiwgc3RyaW5nX3R5cGVzKSwKLSAgICAoInBsYXRmb3JtTmFtZSIsIHN0cmluZ190
eXBlcyksCisgICAgKCJicm93c2VyTmFtZSIsIHN0ciksCisgICAgKCJicm93c2VyVmVyc2lvbiIs
IHN0ciksCisgICAgKCJwbGF0Zm9ybU5hbWUiLCBzdHIpLAogICAgICgiYWNjZXB0SW5zZWN1cmVD
ZXJ0cyIsIGJvb2wpLAotICAgICgicGFnZUxvYWRTdHJhdGVneSIsIHN0cmluZ190eXBlcyksCisg
ICAgKCJwYWdlTG9hZFN0cmF0ZWd5Iiwgc3RyKSwKICAgICAoInByb3h5IiwgZGljdCksCiAgICAg
KCJzZXRXaW5kb3dSZWN0IiwgYm9vbCksCiAgICAgKCJ0aW1lb3V0cyIsIGRpY3QpLAogICAgICgi
c3RyaWN0RmlsZUludGVyYWN0YWJpbGl0eSIsIGJvb2wpLAotICAgICgidW5oYW5kbGVkUHJvbXB0
QmVoYXZpb3IiLCBzdHJpbmdfdHlwZXMpLAorICAgICgidW5oYW5kbGVkUHJvbXB0QmVoYXZpb3Ii
LCBzdHIpLAogXSkKIGRlZiB0ZXN0X2NhcGFiaWxpdHlfdHlwZShzZXNzaW9uLCBjYXBhYmlsaXR5
LCB0eXBlKToKICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZXNzaW9uLmNhcGFiaWxpdGllcywgZGlj
dCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvbmV3X3Nlc3Npb24vd2Vic29ja2V0X3VybC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vd2Vic29ja2V0X3VybC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ1MmRlY2M5MGFhMQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3
X3Nlc3Npb24vd2Vic29ja2V0X3VybC5weQpAQCAtMCwwICsxLDcgQEAKK2Zyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2VzcworCitkZWYgdGVzdF93ZWJzb2NrZXRf
dXJsKG5ld19zZXNzaW9uLCBhZGRfYnJvd3Nlcl9jYXBhYmlsaXRpZXMpOgorICAgIHJlc3BvbnNl
LCBfID0gbmV3X3Nlc3Npb24oeyJjYXBhYmlsaXRpZXMiOiB7CisgICAgICAgICJhbHdheXNNYXRj
aCI6IGFkZF9icm93c2VyX2NhcGFiaWxpdGllcyh7IndlYlNvY2tldFVybCI6IFRydWV9KX19KQor
ICAgIHZhbHVlID0gYXNzZXJ0X3N1Y2Nlc3MocmVzcG9uc2UpCisgICAgYXNzZXJ0IHZhbHVlWyJj
YXBhYmlsaXRpZXMiXVsid2ViU29ja2V0VXJsIl0uc3RhcnRzd2l0aCgid3M6Ly8iKQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfd2lu
ZG93L25ld190YWIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL25ld193aW5kb3cvbmV3X3RhYi5weQppbmRleCA5MzAwYjA0YzQ1ZmEuLjI3MGU0YjUxYjg4
ZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9uZXdfd2luZG93L25ld190YWIucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9uZXdfd2luZG93L25ld190YWIucHkKQEAgLTEsNSArMSw0IEBACiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVz
dHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IG9wZW5lciwg
d2luZG93X25hbWUKIApAQCAtMzIsNyArMzEsNyBAQCBkZWYgdGVzdF9rZWVwc19jdXJyZW50X3dp
bmRvd19oYW5kbGUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHNlc3Npb24ud2luZG93X2hhbmRsZSA9
PSBvcmlnaW5hbF9oYW5kbGUKIAogCi1kZWYgdGVzdF9vcGVuc19hYm91dF9ibGFua19pbl9uZXdf
dGFiKHNlc3Npb24pOgorZGVmIHRlc3Rfb3BlbnNfYWJvdXRfYmxhbmtfaW5fbmV3X3RhYihzZXNz
aW9uLCBpbmxpbmUpOgogICAgIHVybCA9IGlubGluZSgiPHA+Zm9vIikKICAgICBzZXNzaW9uLnVy
bCA9IHVybAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3dpbmRvdy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3dpbmRvdy9uZXdfd2luZG93LnB5CmluZGV4IGIz
NDg1NGNjMmYzZi4uZDNjMjI0NTAyNzA0IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3X3dpbmRvdy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld193aW5kb3cvbmV3
X3dpbmRvdy5weQpAQCAtMSw1ICsxLDQgQEAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGlt
cG9ydCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiAKIGZyb20gLiBpbXBvcnQgb3BlbmVyLCB3aW5kb3dfbmFtZQogCkBAIC0zMiw3ICszMSw3
IEBAIGRlZiB0ZXN0X2tlZXBzX2N1cnJlbnRfd2luZG93X2hhbmRsZShzZXNzaW9uKToKICAgICBh
c3NlcnQgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID09IG9yaWdpbmFsX2hhbmRsZQogCiAKLWRlZiB0
ZXN0X29wZW5zX2Fib3V0X2JsYW5rX2luX25ld193aW5kb3coc2Vzc2lvbik6CitkZWYgdGVzdF9v
cGVuc19hYm91dF9ibGFua19pbl9uZXdfd2luZG93KHNlc3Npb24sIGlubGluZSk6CiAgICAgdXJs
ID0gaW5saW5lKCI8cD5mb28iKQogICAgIHNlc3Npb24udXJsID0gdXJsCiAKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rp
b25zL2NvbmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9wZXJmb3JtX2FjdGlvbnMvY29uZnRlc3QucHkKaW5kZXggOTcwZjdiN2RkOWJlLi4xODhm
OGRkYmI1ZWYgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2NvbmZ0ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2NvbmZ0ZXN0LnB5
CkBAIC0zMiw2ICszMiwyMiBAQCBkZWYgbW91c2VfY2hhaW4oc2Vzc2lvbik6CiAgICAgICAgIHsi
cG9pbnRlclR5cGUiOiAibW91c2UifSkKIAogCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0b3VjaF9j
aGFpbihzZXNzaW9uKToKKyAgICByZXR1cm4gc2Vzc2lvbi5hY3Rpb25zLnNlcXVlbmNlKAorICAg
ICAgICAicG9pbnRlciIsCisgICAgICAgICJwb2ludGVyX2lkIiwKKyAgICAgICAgeyJwb2ludGVy
VHlwZSI6ICJ0b3VjaCJ9KQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIHBlbl9jaGFpbihzZXNz
aW9uKToKKyAgICByZXR1cm4gc2Vzc2lvbi5hY3Rpb25zLnNlcXVlbmNlKAorICAgICAgICAicG9p
bnRlciIsCisgICAgICAgICJwb2ludGVyX2lkIiwKKyAgICAgICAgeyJwb2ludGVyVHlwZSI6ICJw
ZW4ifSkKKworCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiBub25lX2NoYWluKHNlc3Npb24pOgogICAg
IHJldHVybiBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2UoIm5vbmUiLCAibm9uZV9pZCIpCkBAIC02
NiwzICs4Miw4IEBAIGRlZiB0ZXN0X2FjdGlvbnNfcGFnZShzZXNzaW9uLCB1cmwpOgogQHB5dGVz
dC5maXh0dXJlCiBkZWYgdGVzdF9hY3Rpb25zX3Njcm9sbF9wYWdlKHNlc3Npb24sIHVybCk6CiAg
ICAgc2Vzc2lvbi51cmwgPSB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1
cHBvcnQvdGVzdF9hY3Rpb25zX3Njcm9sbF93ZHNwZWMuaHRtbCIpCisKKworQHB5dGVzdC5maXh0
dXJlCitkZWYgdGVzdF9hY3Rpb25zX3BvaW50ZXJfcGFnZShzZXNzaW9uLCB1cmwpOgorICAgIHNl
c3Npb24udXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0
L3Rlc3RfYWN0aW9uc19wb2ludGVyX3dkc3BlYy5odG1sIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2tleV9l
dmVudHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Bl
cmZvcm1fYWN0aW9ucy9rZXlfZXZlbnRzLnB5CmluZGV4IGMzOTU4MDE1YmZkNC4uOGRiZTAyNGQx
ODM5IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3BlcmZvcm1fYWN0aW9ucy9rZXlfZXZlbnRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL2tleV9ldmVudHMucHkK
QEAgLTUsNyArNSw4IEBAIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CiBpbXBv
cnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQua2V5cyBpbXBv
cnQgQUxMX0VWRU5UUywgS2V5cywgQUxURVJOQVRJVkVfS0VZX05BTUVTCi1mcm9tIHRlc3RzLnBl
cmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVu
dHMsIGdldF9rZXlzCitmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBp
bXBvcnQgZ2V0X2V2ZW50cywgZ2V0X2tleXMKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGlt
cG9ydCBmaWx0ZXJfZGljdAogCiAKIGRlZiB0ZXN0X2tleXVwX29ubHlfc2VuZHNfbm9fZXZlbnRz
KHNlc3Npb24sIGtleV9yZXBvcnRlciwga2V5X2NoYWluKToKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50
ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZv
cm1fYWN0aW9ucy9wb2ludGVyLnB5CmluZGV4IGFkNTQ2OTIxNDYwZS4uNjc0ZDQ2ZDdiNjEwIDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Bl
cmZvcm1fYWN0aW9ucy9wb2ludGVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXIucHkKQEAgLTUsMTcgKzUs
MTIgQEAgaW1wb3J0IHB5dGVzdAogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaFdp
bmRvd0V4Y2VwdGlvbgogCiBmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0Lm1vdXNl
IGltcG9ydCBnZXRfaW52aWV3X2NlbnRlciwgZ2V0X3ZpZXdwb3J0X3JlY3QKLWZyb20gdGVzdHMu
cGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGljdCwgZ2V0X2V2
ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUgaW1wb3J0IGdl
dF9ldmVudHMKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfbW92ZV90
b19jb29yZGluYXRlcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCitm
cm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBvcnQgZmlsdGVyX2RpY3QKIGZyb20gdGVzdHMu
c3VwcG9ydC5zeW5jIGltcG9ydCBQb2xsCiAKIAotZGVmIGxpbmtfZG9jKGRlc3QpOgotICAgIGNv
bnRlbnQgPSAiPGEgaHJlZj1cInt9XCIgaWQ9XCJsaW5rXCI+ZGVzdGluYXRpb248L2E+Ii5mb3Jt
YXQoZGVzdCkKLSAgICByZXR1cm4gaW5saW5lKGNvbnRlbnQpCi0KLQogZGVmIHRlc3RfbnVsbF9y
ZXNwb25zZV92YWx1ZShzZXNzaW9uLCBtb3VzZV9jaGFpbik6CiAgICAgdmFsdWUgPSBtb3VzZV9j
aGFpbi5jbGljaygpLnBlcmZvcm0oKQogICAgIGFzc2VydCB2YWx1ZSBpcyBOb25lCkBAIC05NSw5
ICs5MCw5IEBAIGRlZiB0ZXN0X2NsaWNrX2VsZW1lbnRfY2VudGVyKHNlc3Npb24sIHRlc3RfYWN0
aW9uc19wYWdlLCBtb3VzZV9jaGFpbik6CiAgICAgICAgICAgICBhc3NlcnQgZVsidGFyZ2V0Il0g
PT0gIm91dGVyIgogCiAKLWRlZiB0ZXN0X2NsaWNrX25hdmlnYXRpb24oc2Vzc2lvbiwgdXJsKToK
K2RlZiB0ZXN0X2NsaWNrX25hdmlnYXRpb24oc2Vzc2lvbiwgdXJsLCBpbmxpbmUpOgogICAgIGRl
c3RpbmF0aW9uID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL2FjdGlvbnMvc3VwcG9ydC90ZXN0X2Fj
dGlvbnNfd2RzcGVjLmh0bWwiKQotICAgIHN0YXJ0ID0gbGlua19kb2MoZGVzdGluYXRpb24pCisg
ICAgc3RhcnQgPSBpbmxpbmUoIjxhIGhyZWY9XCJ7fVwiIGlkPVwibGlua1wiPmRlc3RpbmF0aW9u
PC9hPiIuZm9ybWF0KGRlc3RpbmF0aW9uKSkKIAogICAgIGRlZiBjbGljayhsaW5rKToKICAgICAg
ICAgbW91c2VfY2hhaW4gPSBzZXNzaW9uLmFjdGlvbnMuc2VxdWVuY2UoCkBAIC0xMTUsNiArMTEw
LDg1IEBAIGRlZiB0ZXN0X2NsaWNrX25hdmlnYXRpb24oc2Vzc2lvbiwgdXJsKToKICAgICBQb2xs
KHNlc3Npb24sIG1lc3NhZ2U9ZXJyb3JfbWVzc2FnZSkudW50aWwobGFtYmRhIHM6IHMudXJsID09
IGRlc3RpbmF0aW9uKQogCiAKK2RlZiB0ZXN0X3Blbl9wb2ludGVyX3Byb3BlcnRpZXMoc2Vzc2lv
biwgdGVzdF9hY3Rpb25zX3BvaW50ZXJfcGFnZSwgcGVuX2NoYWluKToKKyAgICBwb2ludGVyQXJl
YSA9IHNlc3Npb24uZmluZC5jc3MoIiNwb2ludGVyQXJlYSIsIGFsbD1GYWxzZSkKKyAgICBjZW50
ZXIgPSBnZXRfaW52aWV3X2NlbnRlcihwb2ludGVyQXJlYS5yZWN0LCBnZXRfdmlld3BvcnRfcmVj
dChzZXNzaW9uKSkKKyAgICBwZW5fY2hhaW4ucG9pbnRlcl9tb3ZlKDAsIDAsIG9yaWdpbj1wb2lu
dGVyQXJlYSkgXAorICAgICAgICAucG9pbnRlcl9kb3duKHByZXNzdXJlPTAuMzYsIHRpbHRfeD0t
NzIsIHRpbHRfeT05LCB0d2lzdD04NikgXAorICAgICAgICAucG9pbnRlcl9tb3ZlKDEwLCAxMCwg
b3JpZ2luPXBvaW50ZXJBcmVhKSBcCisgICAgICAgIC5wb2ludGVyX3VwKCkgXAorICAgICAgICAu
cG9pbnRlcl9tb3ZlKDgwLCA1MCwgb3JpZ2luPXBvaW50ZXJBcmVhKSBcCisgICAgICAgIC5wZXJm
b3JtKCkKKyAgICBldmVudHMgPSBnZXRfZXZlbnRzKHNlc3Npb24pCisgICAgYXNzZXJ0IGxlbihl
dmVudHMpID09IDEwCisgICAgZXZlbnRfdHlwZXMgPSBbZVsidHlwZSJdIGZvciBlIGluIGV2ZW50
c10KKyAgICBhc3NlcnQgWyJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm1v
dmUiLCAicG9pbnRlcmRvd24iLAorICAgICAgICAgICAgInBvaW50ZXJvdmVyIiwgInBvaW50ZXJl
bnRlciIsICJwb2ludGVybW92ZSIsICJwb2ludGVydXAiLAorICAgICAgICAgICAgInBvaW50ZXJv
dXQiLCAicG9pbnRlcmxlYXZlIl0gPT0gZXZlbnRfdHlwZXMKKyAgICBhc3NlcnQgZXZlbnRzWzNd
WyJ0eXBlIl0gPT0gInBvaW50ZXJkb3duIgorICAgIGFzc2VydCBldmVudHNbM11bInBhZ2VYIl0g
PT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbIngiXSwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRz
WzNdWyJwYWdlWSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0sIGFicz0xLjApCisgICAg
YXNzZXJ0IGV2ZW50c1szXVsidGFyZ2V0Il0gPT0gInBvaW50ZXJBcmVhIgorICAgIGFzc2VydCBl
dmVudHNbM11bInBvaW50ZXJUeXBlIl0gPT0gInBlbiIKKyAgICAjIFRoZSBkZWZhdWx0IHZhbHVl
IG9mIHdpZHRoIGFuZCBoZWlnaHQgZm9yIG1vdXNlIGFuZCBwZW4gaW5wdXRzIGlzIDEKKyAgICBh
c3NlcnQgcm91bmQoZXZlbnRzWzNdWyJ3aWR0aCJdLCAyKSA9PSAxCisgICAgYXNzZXJ0IHJvdW5k
KGV2ZW50c1szXVsiaGVpZ2h0Il0sIDIpID09IDEKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzNd
WyJwcmVzc3VyZSJdLCAyKSA9PSAwLjM2CisgICAgYXNzZXJ0IGV2ZW50c1szXVsidGlsdFgiXSA9
PSAtNzIKKyAgICBhc3NlcnQgZXZlbnRzWzNdWyJ0aWx0WSJdID09IDkKKyAgICBhc3NlcnQgZXZl
bnRzWzNdWyJ0d2lzdCJdID09IDg2CisgICAgYXNzZXJ0IGV2ZW50c1s2XVsidHlwZSJdID09ICJw
b2ludGVybW92ZSIKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJwYWdlWCJdID09IHB5dGVzdC5hcHBy
b3goY2VudGVyWyJ4Il0rMTAsIGFicz0xLjApCisgICAgYXNzZXJ0IGV2ZW50c1s2XVsicGFnZVki
XSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdKzEwLCBhYnM9MS4wKQorICAgIGFzc2VydCBl
dmVudHNbNl1bInRhcmdldCJdID09ICJwb2ludGVyQXJlYSIKKyAgICBhc3NlcnQgZXZlbnRzWzZd
WyJwb2ludGVyVHlwZSJdID09ICJwZW4iCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1s2XVsid2lk
dGgiXSwgMikgPT0gMQorICAgIGFzc2VydCByb3VuZChldmVudHNbNl1bImhlaWdodCJdLCAyKSA9
PSAxCisgICAgIyBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBwcmVzc3VyZSBmb3IgYWxsIGlucHV0cyBp
cyAwLjUsIG90aGVyIHByb3BlcnRpZXMgYXJlIDAKKyAgICBhc3NlcnQgcm91bmQoZXZlbnRzWzZd
WyJwcmVzc3VyZSJdLCAyKSA9PSAwLjUKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJ0aWx0WCJdID09
IDAKKyAgICBhc3NlcnQgZXZlbnRzWzZdWyJ0aWx0WSJdID09IDAKKyAgICBhc3NlcnQgZXZlbnRz
WzZdWyJ0d2lzdCJdID09IDAKKworCitkZWYgdGVzdF90b3VjaF9wb2ludGVyX3Byb3BlcnRpZXMo
c2Vzc2lvbiwgdGVzdF9hY3Rpb25zX3BvaW50ZXJfcGFnZSwgdG91Y2hfY2hhaW4pOgorICAgIHBv
aW50ZXJBcmVhID0gc2Vzc2lvbi5maW5kLmNzcygiI3BvaW50ZXJBcmVhIiwgYWxsPUZhbHNlKQor
ICAgIGNlbnRlciA9IGdldF9pbnZpZXdfY2VudGVyKHBvaW50ZXJBcmVhLnJlY3QsIGdldF92aWV3
cG9ydF9yZWN0KHNlc3Npb24pKQorICAgIHRvdWNoX2NoYWluLnBvaW50ZXJfbW92ZSgwLCAwLCBv
cmlnaW49cG9pbnRlckFyZWEpIFwKKyAgICAgICAgLnBvaW50ZXJfZG93bih3aWR0aD0yMywgaGVp
Z2h0PTMxLCBwcmVzc3VyZT0wLjc4LCB0aWx0X3g9MjEsIHRpbHRfeT0tOCwgdHdpc3Q9MzU1KSBc
CisgICAgICAgIC5wb2ludGVyX21vdmUoMTAsIDEwLCBvcmlnaW49cG9pbnRlckFyZWEsIHdpZHRo
PTM5LCBoZWlnaHQ9MzUsIHByZXNzdXJlPTAuOTEsIHRpbHRfeD0tMTksIHRpbHRfeT02MiwgdHdp
c3Q9MzQ1KSBcCisgICAgICAgIC5wb2ludGVyX3VwKCkgXAorICAgICAgICAucG9pbnRlcl9tb3Zl
KDgwLCA1MCwgb3JpZ2luPXBvaW50ZXJBcmVhKSBcCisgICAgICAgIC5wZXJmb3JtKCkKKyAgICBl
dmVudHMgPSBnZXRfZXZlbnRzKHNlc3Npb24pCisgICAgYXNzZXJ0IGxlbihldmVudHMpID09IDcK
KyAgICBldmVudF90eXBlcyA9IFtlWyJ0eXBlIl0gZm9yIGUgaW4gZXZlbnRzXQorICAgIGFzc2Vy
dCBbInBvaW50ZXJvdmVyIiwgInBvaW50ZXJlbnRlciIsICJwb2ludGVyZG93biIsICJwb2ludGVy
bW92ZSIsCisgICAgICAgICAgICAicG9pbnRlcnVwIiwgInBvaW50ZXJvdXQiLCAicG9pbnRlcmxl
YXZlIl0gPT0gZXZlbnRfdHlwZXMKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJ0eXBlIl0gPT0gInBv
aW50ZXJkb3duIgorICAgIGFzc2VydCBldmVudHNbMl1bInBhZ2VYIl0gPT0gcHl0ZXN0LmFwcHJv
eChjZW50ZXJbIngiXSwgYWJzPTEuMCkKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJwYWdlWSJdID09
IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5Il0sIGFicz0xLjApCisgICAgYXNzZXJ0IGV2ZW50c1sy
XVsidGFyZ2V0Il0gPT0gInBvaW50ZXJBcmVhIgorICAgIGFzc2VydCBldmVudHNbMl1bInBvaW50
ZXJUeXBlIl0gPT0gInRvdWNoIgorICAgIGFzc2VydCByb3VuZChldmVudHNbMl1bIndpZHRoIl0s
IDIpID09IDIzCisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1syXVsiaGVpZ2h0Il0sIDIpID09IDMx
CisgICAgYXNzZXJ0IHJvdW5kKGV2ZW50c1syXVsicHJlc3N1cmUiXSwgMikgPT0gMC43OAorICAg
IGFzc2VydCBldmVudHNbMl1bInRpbHRYIl0gPT0gMjEKKyAgICBhc3NlcnQgZXZlbnRzWzJdWyJ0
aWx0WSJdID09IC04CisgICAgYXNzZXJ0IGV2ZW50c1syXVsidHdpc3QiXSA9PSAzNTUKKyAgICBh
c3NlcnQgZXZlbnRzWzNdWyJ0eXBlIl0gPT0gInBvaW50ZXJtb3ZlIgorICAgIGFzc2VydCBldmVu
dHNbM11bInBhZ2VYIl0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbIngiXSsxMCwgYWJzPTEuMCkK
KyAgICBhc3NlcnQgZXZlbnRzWzNdWyJwYWdlWSJdID09IHB5dGVzdC5hcHByb3goY2VudGVyWyJ5
Il0rMTAsIGFicz0xLjApCisgICAgYXNzZXJ0IGV2ZW50c1szXVsidGFyZ2V0Il0gPT0gInBvaW50
ZXJBcmVhIgorICAgIGFzc2VydCBldmVudHNbM11bInBvaW50ZXJUeXBlIl0gPT0gInRvdWNoIgor
ICAgIGFzc2VydCByb3VuZChldmVudHNbM11bIndpZHRoIl0sIDIpID09IDM5CisgICAgYXNzZXJ0
IHJvdW5kKGV2ZW50c1szXVsiaGVpZ2h0Il0sIDIpID09IDM1CisgICAgYXNzZXJ0IHJvdW5kKGV2
ZW50c1szXVsicHJlc3N1cmUiXSwgMikgPT0gMC45MQorICAgIGFzc2VydCBldmVudHNbM11bInRp
bHRYIl0gPT0gLTE5CisgICAgYXNzZXJ0IGV2ZW50c1szXVsidGlsdFkiXSA9PSA2MgorICAgIGFz
c2VydCBldmVudHNbM11bInR3aXN0Il0gPT0gMzQ1CisKKwogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJkcmFnX2R1cmF0aW9uIiwgWzAsIDMwMCwgODAwXSkKIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgiZHgsIGR5IiwgWwogICAgICgyMCwgMCksICgwLCAxNSksICgxMCwgMTUpLCAoLTIwLCAw
KSwgKDEwLCAtMTUpLCAoLTEwLCAtMTUpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2NvbnRleHRt
ZW51LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJm
b3JtX2FjdGlvbnMvcG9pbnRlcl9jb250ZXh0bWVudS5weQppbmRleCBmZGEzZjE4YmJjMWMuLjUw
ZjY4NDMyN2YyYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9jb250ZXh0bWVudS5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9u
cy9wb2ludGVyX2NvbnRleHRtZW51LnB5CkBAIC0xLDcgKzEsOCBAQAogaW1wb3J0IHB5dGVzdAog
CiBmcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LmtleXMgaW1wb3J0IEtleXMKLWZy
b20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0ZXJfZGlj
dCwgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5yZWZpbmUg
aW1wb3J0IGdldF9ldmVudHMKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0
ZXJfZGljdAogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgibW9kaWZpZXIsIHByb3AiLCBb
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3Rz
L3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2RibGNsaWNrLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9kYmxjbGlj
ay5weQppbmRleCA4Yzg5Y2VmNWYzODAuLjViZTYzNWE0ZDU2MCAxMDA2NDQKLS0tIGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9p
bnRlcl9kYmxjbGljay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX2RibGNsaWNrLnB5CkBAIC0xLDcgKzEs
OCBAQAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0
LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVzdHMucGVyZm9y
bV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCiBmcm9tIHRlc3RzLnN1
cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X21vdmVfdG9fY29vcmRpbmF0ZXMKK2Zyb20gdGVz
dHMuc3VwcG9ydC5oZWxwZXJzIGltcG9ydCBmaWx0ZXJfZGljdAogCiAKIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgiY2xpY2tfcGF1c2UiLCBbMCwgMjAwXSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50
ZXJfbW9kaWZpZXJfY2xpY2sucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX21vZGlmaWVyX2NsaWNrLnB5CmluZGV4
IGJhODFmNmQwOTBiMi4uMjhjNDA4NmUwZjhjIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX21vZGlm
aWVyX2NsaWNrLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfbW9kaWZpZXJfY2xpY2sucHkKQEAgLTEsNyAr
MSw4IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBv
cnQua2V5cyBpbXBvcnQgS2V5cwotZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9ydC5y
ZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZvcm1f
YWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5zdXBw
b3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJtb2RpZmllciwgcHJvcCIsIFsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfb3JpZ2luLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMvcG9pbnRlcl9vcmlnaW4ucHkKaW5kZXggNGM5ZGM4NzllOTk5Li5jNGU1ZGI3YTAwMTcg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
cGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfb3JpZ2luLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfb3JpZ2lu
LnB5CkBAIC0zLDIzICszLDI1IEBAIGltcG9ydCBweXRlc3QKIGZyb20gd2ViZHJpdmVyIGltcG9y
dCBNb3ZlVGFyZ2V0T3V0T2ZCb3VuZHNFeGNlcHRpb24KIAogZnJvbSB0ZXN0cy5wZXJmb3JtX2Fj
dGlvbnMuc3VwcG9ydC5tb3VzZSBpbXBvcnQgZ2V0X2ludmlld19jZW50ZXIsIGdldF92aWV3cG9y
dF9yZWN0Ci1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCi1kZWYg
b3JpZ2luX2RvYyhpbm5lcl9zdHlsZSwgb3V0ZXJfc3R5bGU9IiIpOgotICAgIHJldHVybiBpbmxp
bmUoIiIiCi0gICAgICA8ZGl2IGlkPSJvdXRlciIgc3R5bGU9InsxfSIKLSAgICAgICAgICAgb25t
b3VzZW1vdmU9IndpbmRvdy5jb29yZHMgPSB7e3g6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNs
aWVudFl9fSI+Ci0gICAgICAgIDxkaXYgaWQ9ImlubmVyIiBzdHlsZT0iezB9Ij48L2Rpdj4KLSAg
ICAgIDwvZGl2PgotICAgICIiIi5mb3JtYXQoaW5uZXJfc3R5bGUsIG91dGVyX3N0eWxlKSkKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIG9yaWdpbl9kb2MoaW5saW5lKToKKyAgICBkZWYgb3JpZ2luX2Rv
Yyhpbm5lcl9zdHlsZSwgb3V0ZXJfc3R5bGU9IiIpOgorICAgICAgICByZXR1cm4gaW5saW5lKCIi
IgorICAgICAgICAgIDxkaXYgaWQ9Im91dGVyIiBzdHlsZT0iezF9IgorICAgICAgICAgICAgICAg
b25tb3VzZW1vdmU9IndpbmRvdy5jb29yZHMgPSB7e3g6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50
LmNsaWVudFl9fSI+CisgICAgICAgICAgICA8ZGl2IGlkPSJpbm5lciIgc3R5bGU9InswfSI+PC9k
aXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICIiIi5mb3JtYXQoaW5uZXJfc3R5bGUsIG91
dGVyX3N0eWxlKSkKKyAgICByZXR1cm4gb3JpZ2luX2RvYwogCiAKIGRlZiBnZXRfY2xpY2tfY29v
cmRpbmF0ZXMoc2Vzc2lvbik6CiAgICAgcmV0dXJuIHNlc3Npb24uZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiB3aW5kb3cuY29vcmRzOyIpCiAKIAotZGVmIHRlc3Rfdmlld3BvcnRfaW5zaWRlKHNlc3Np
b24sIG1vdXNlX2NoYWluKToKK2RlZiB0ZXN0X3ZpZXdwb3J0X2luc2lkZShzZXNzaW9uLCBtb3Vz
ZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAgICAgcG9pbnQgPSB7IngiOiA1MCwgInkiOiA1MH0KIAog
ICAgIHNlc3Npb24udXJsID0gb3JpZ2luX2RvYygid2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7
IGJhY2tncm91bmQ6IGdyZWVuOyIpCkBAIC0zOSw3ICs0MSw3IEBAIGRlZiB0ZXN0X3ZpZXdwb3J0
X291dHNpZGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgICAgICAgICAgLnBlcmZvcm0oKQog
CiAKLWRlZiB0ZXN0X3BvaW50ZXJfaW5zaWRlKHNlc3Npb24sIG1vdXNlX2NoYWluKToKK2RlZiB0
ZXN0X3BvaW50ZXJfaW5zaWRlKHNlc3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAg
ICBzdGFydF9wb2ludCA9IHsieCI6IDUwLCAieSI6IDUwfQogICAgIG9mZnNldCA9IHsieCI6IDEw
LCAieSI6IDV9CiAKQEAgLTYxLDcgKzYzLDcgQEAgZGVmIHRlc3RfcG9pbnRlcl9vdXRzaWRlKHNl
c3Npb24sIG1vdXNlX2NoYWluKToKICAgICAgICAgICAgIC5wZXJmb3JtKCkKIAogCi1kZWYgdGVz
dF9lbGVtZW50X2NlbnRlcl9wb2ludChzZXNzaW9uLCBtb3VzZV9jaGFpbik6CitkZWYgdGVzdF9l
bGVtZW50X2NlbnRlcl9wb2ludChzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAg
ICAgc2Vzc2lvbi51cmwgPSBvcmlnaW5fZG9jKCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsg
YmFja2dyb3VuZDogZ3JlZW47IikKICAgICBlbGVtID0gc2Vzc2lvbi5maW5kLmNzcygiI2lubmVy
IiwgYWxsPUZhbHNlKQogICAgIGNlbnRlciA9IGdldF9pbnZpZXdfY2VudGVyKGVsZW0ucmVjdCwg
Z2V0X3ZpZXdwb3J0X3JlY3Qoc2Vzc2lvbikpCkBAIC03NSw3ICs3Nyw3IEBAIGRlZiB0ZXN0X2Vs
ZW1lbnRfY2VudGVyX3BvaW50KHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAgICBhc3NlcnQgY2xp
Y2tfY29vcmRzWyJ5Il0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwgYWJzID0gMS4wKQog
CiAKLWRlZiB0ZXN0X2VsZW1lbnRfY2VudGVyX3BvaW50X3dpdGhfb2Zmc2V0KHNlc3Npb24sIG1v
dXNlX2NoYWluKToKK2RlZiB0ZXN0X2VsZW1lbnRfY2VudGVyX3BvaW50X3dpdGhfb2Zmc2V0KHNl
c3Npb24sIG1vdXNlX2NoYWluLCBvcmlnaW5fZG9jKToKICAgICBzZXNzaW9uLnVybCA9IG9yaWdp
bl9kb2MoIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiKQog
ICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjaW5uZXIiLCBhbGw9RmFsc2UpCiAgICAgY2Vu
dGVyID0gZ2V0X2ludmlld19jZW50ZXIoZWxlbS5yZWN0LCBnZXRfdmlld3BvcnRfcmVjdChzZXNz
aW9uKSkKQEAgLTg5LDcgKzkxLDcgQEAgZGVmIHRlc3RfZWxlbWVudF9jZW50ZXJfcG9pbnRfd2l0
aF9vZmZzZXQoc2Vzc2lvbiwgbW91c2VfY2hhaW4pOgogICAgIGFzc2VydCBjbGlja19jb29yZHNb
InkiXSA9PSBweXRlc3QuYXBwcm94KGNlbnRlclsieSJdICsgMTUsIGFicyA9IDEuMCkKIAogCi1k
ZWYgdGVzdF9lbGVtZW50X2luX3ZpZXdfY2VudGVyX3BvaW50X3BhcnRseV92aXNpYmxlKHNlc3Np
b24sIG1vdXNlX2NoYWluKToKK2RlZiB0ZXN0X2VsZW1lbnRfaW5fdmlld19jZW50ZXJfcG9pbnRf
cGFydGx5X3Zpc2libGUoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgogICAgIHNl
c3Npb24udXJsID0gb3JpZ2luX2RvYygiIiJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgYmFj
a2dyb3VuZDogZ3JlZW47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsgbGVmdDogLTUwcHg7IHRvcDogLTI1cHg7IiIiKQogICAgIGVsZW0gPSBzZXNz
aW9uLmZpbmQuY3NzKCIjaW5uZXIiLCBhbGw9RmFsc2UpCkBAIC0xMDQsNyArMTA2LDcgQEAgZGVm
IHRlc3RfZWxlbWVudF9pbl92aWV3X2NlbnRlcl9wb2ludF9wYXJ0bHlfdmlzaWJsZShzZXNzaW9u
LCBtb3VzZV9jaGFpbik6CiAgICAgYXNzZXJ0IGNsaWNrX2Nvb3Jkc1sieSJdID09IHB5dGVzdC5h
cHByb3goY2VudGVyWyJ5Il0sIGFicyA9IDEuMCkKIAogCi1kZWYgdGVzdF9lbGVtZW50X2xhcmdl
cl90aGFuX3ZpZXdwb3J0KHNlc3Npb24sIG1vdXNlX2NoYWluKToKK2RlZiB0ZXN0X2VsZW1lbnRf
bGFyZ2VyX3RoYW5fdmlld3BvcnQoc2Vzc2lvbiwgbW91c2VfY2hhaW4sIG9yaWdpbl9kb2MpOgog
ICAgIHNlc3Npb24udXJsID0gb3JpZ2luX2RvYygid2lkdGg6IDMwMHZ3OyBoZWlnaHQ6IDMwMHZo
OyBiYWNrZ3JvdW5kOiBncmVlbjsiKQogICAgIGVsZW0gPSBzZXNzaW9uLmZpbmQuY3NzKCIjaW5u
ZXIiLCBhbGw9RmFsc2UpCiAgICAgY2VudGVyID0gZ2V0X2ludmlld19jZW50ZXIoZWxlbS5yZWN0
LCBnZXRfdmlld3BvcnRfcmVjdChzZXNzaW9uKSkKQEAgLTExOCw3ICsxMjAsNyBAQCBkZWYgdGVz
dF9lbGVtZW50X2xhcmdlcl90aGFuX3ZpZXdwb3J0KHNlc3Npb24sIG1vdXNlX2NoYWluKToKICAg
ICBhc3NlcnQgY2xpY2tfY29vcmRzWyJ5Il0gPT0gcHl0ZXN0LmFwcHJveChjZW50ZXJbInkiXSwg
YWJzID0gMS4wKQogCiAKLWRlZiB0ZXN0X2VsZW1lbnRfb3V0c2lkZV9vZl92aWV3X3BvcnQoc2Vz
c2lvbiwgbW91c2VfY2hhaW4pOgorZGVmIHRlc3RfZWxlbWVudF9vdXRzaWRlX29mX3ZpZXdfcG9y
dChzZXNzaW9uLCBtb3VzZV9jaGFpbiwgb3JpZ2luX2RvYyk6CiAgICAgc2Vzc2lvbi51cmwgPSBv
cmlnaW5fZG9jKCIiIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kOiBncmVl
bjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBs
ZWZ0OiAtMjAwcHg7IHRvcDogLTEwMHB4OyIiIikKICAgICBlbGVtID0gc2Vzc2lvbi5maW5kLmNz
cygiI2lubmVyIiwgYWxsPUZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxj
bGljay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVy
Zm9ybV9hY3Rpb25zL3BvaW50ZXJfcGF1c2VfZGJsY2xpY2sucHkKaW5kZXggODU2NzlmMzYxNGE4
Li5kNDYxNzhhMWQ2NTAgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93
ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3BvaW50ZXJfcGF1c2VfZGJsY2xpY2sucHkK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvcG9pbnRlcl9wYXVzZV9kYmxjbGljay5weQpAQCAtMSw1ICsxLDYgQEAKIGZyb20g
dGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQubW91c2UgaW1wb3J0IGdldF9pbnZpZXdfY2Vu
dGVyLCBnZXRfdmlld3BvcnRfcmVjdAotZnJvbSB0ZXN0cy5wZXJmb3JtX2FjdGlvbnMuc3VwcG9y
dC5yZWZpbmUgaW1wb3J0IGZpbHRlcl9kaWN0LCBnZXRfZXZlbnRzCitmcm9tIHRlc3RzLnBlcmZv
cm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZ2V0X2V2ZW50cworZnJvbSB0ZXN0cy5z
dXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIF9EQkxDTElDS19JTlRFUlZBTCA9
IDY0MAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3RyaXBsZWNsaWNrLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvcG9pbnRl
cl90cmlwbGVjbGljay5weQppbmRleCA4MWQ1MWJlMWE3ZTYuLjgyMzlmYzJhNjA2MiAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3Jt
X2FjdGlvbnMvcG9pbnRlcl90cmlwbGVjbGljay5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9wb2ludGVyX3RyaXBsZWNs
aWNrLnB5CkBAIC0xLDEzICsxLDEzIEBACi1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBw
b3J0LnJlZmluZSBpbXBvcnQgZmlsdGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVzdHMucGVy
Zm9ybV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCiBmcm9tIHRlc3Rz
LnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X21vdmVfdG9fY29vcmRpbmF0ZXMKLWZyb20g
dGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQorZnJvbSB0ZXN0cy5zdXBwb3J0Lmhl
bHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIGxvdHNfb2ZfdGV4dCA9ICJMb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgIlwKICAgICAgICAgICAgICAgICJpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xv
cmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkICJc
CiAgICAgICAgICAgICAgICAiZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFs
aXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIgogCiAKLWRlZiB0ZXN0X3RyaXBsZWNsaWNr
X2F0X2Nvb3JkaW5hdGVzKHNlc3Npb24sIG1vdXNlX2NoYWluKToKK2RlZiB0ZXN0X3RyaXBsZWNs
aWNrX2F0X2Nvb3JkaW5hdGVzKHNlc3Npb24sIG1vdXNlX2NoYWluLCBpbmxpbmUpOgogICAgICIi
IgogICAgICAgICBUaGlzIHRlc3QgZG9lcyBhIHRyaXBsZSBjbGljayBvbiBhIGNvb3JkaW5hdGUu
IE9uIGRlc2t0b3AgcGxhdGZvcm1zCiAgICAgICAgIHRoaXMgd2lsbCBzZWxlY3QgYSBwYXJhZ3Jh
cGguIE9uIG1vYmlsZSB0aGlzIHdpbGwgbm90IGhhdmUgdGhlIHNhbWUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25z
L3N1cHBvcnQva2V5cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQva2V5cy5weQppbmRleCAyZDM4ZTFkZmY4NzYu
LjllODdlYmZhYzFkNyAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9rZXlzLnB5CisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1
cHBvcnQva2V5cy5weQpAQCAtMjEsNyArMjEsNiBAQCBpbXBvcnQgc3lzCiAKIGZyb20gY29sbGVj
dGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CiBmcm9tIGluc3BlY3QgaW1wb3J0IGdldG1lbWJlcnMK
LWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKIAogY2xhc3MgS2V5cyhvYmplY3QpOgogICAgICIi
IgpAQCAtMTA3LDcgKzEwNiw3IEBAIGNsYXNzIEtleXMob2JqZWN0KToKICAgICBSX0RFTEVURSA9
IHUiXHVFMDVEIgogCiAKLUFMTF9LRVlTID0gZ2V0bWVtYmVycyhLZXlzLCBsYW1iZGEgeDogdHlw
ZSh4KSA9PSB0ZXh0X3R5cGUpCitBTExfS0VZUyA9IGdldG1lbWJlcnMoS2V5cywgbGFtYmRhIHg6
IHR5cGUoeCkgPT0gc3RyKQogCiBBTExfRVZFTlRTID0gT3JkZXJlZERpY3QoCiAgICAgWwpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJm
b3JtX2FjdGlvbnMvc3VwcG9ydC9yZWZpbmUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQppbmRl
eCBkNWQyNGU5MzRmNjEuLjM1Yzk2MmI5ZWNiZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9yZWZp
bmUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
ZXJmb3JtX2FjdGlvbnMvc3VwcG9ydC9yZWZpbmUucHkKQEAgLTI3LDEyICsyNywzIEBAIGRlZiBn
ZXRfa2V5cyhpbnB1dF9lbCk6CiAgICAgICAgIHJldHVybiAiIgogICAgIGVsc2U6CiAgICAgICAg
IHJldHVybiBydgotCi0KLWRlZiBmaWx0ZXJfZGljdChzb3VyY2UsIGQpOgotICAgICIiIkZpbHRl
ciBgc291cmNlYCBkaWN0IHRvIG9ubHkgY29udGFpbiBzYW1lIGtleXMgYXMgYGRgIGRpY3QuCi0K
LSAgICA6cGFyYW0gc291cmNlOiBkaWN0aW9uYXJ5IHRvIGZpbHRlci4KLSAgICA6cGFyYW0gZDog
ZGljdGlvbmFyeSB3aG9zZSBrZXlzIGRldGVybWluZSB0aGUgZmlsdGVyaW5nLgotICAgICIiIgot
ICAgIHJldHVybiB7azogc291cmNlW2tdIGZvciBrIGluIGQua2V5cygpfQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlv
bnMvc3VwcG9ydC90ZXN0X2FjdGlvbnNfcG9pbnRlcl93ZHNwZWMuaHRtbCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rpb25zL3N1cHBvcnQv
dGVzdF9hY3Rpb25zX3BvaW50ZXJfd2RzcGVjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi5mMWZkOWIyZGEzZjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9zdXBw
b3J0L3Rlc3RfYWN0aW9uc19wb2ludGVyX3dkc3BlYy5odG1sCkBAIC0wLDAgKzEsMTAyIEBACivv
u788IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDx0aXRsZT5UZXN0IEFjdGlvbnM8L3RpdGxlPgorICAgIDxzdHlsZT4KKyAgICAgIGRpdiB7
IHBhZGRpbmc6MHB4OyBtYXJnaW46IDBweDsgfQorICAgICAgI3RyYWNrUG9pbnRlciB7IHBvc2l0
aW9uOiBmaXhlZDsgfQorICAgICAgI3Jlc3VsdENvbnRhaW5lciB7IHdpZHRoOiA2MDBweDsgaGVp
Z2h0OiA2MHB4OyB9CisgICAgICAuYXJlYSB7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBi
YWNrZ3JvdW5kLWNvbG9yOiAjY2NjOyB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAg
ICAgICAidXNlIHN0cmljdCI7CisgICAgICAgIHZhciBlbHMgPSB7fTsKKyAgICAgICAgdmFyIGFs
bEV2ZW50cyA9IHsgZXZlbnRzOiBbXSB9OworICAgICAgICBmdW5jdGlvbiBkaXNwbGF5TWVzc2Fn
ZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRz
IikuaW5uZXJIVE1MID0gIjxwPiIgKyBtZXNzYWdlICsgIjwvcD4iOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gYXBwZW5kTWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRzIikuaW5uZXJIVE1MICs9ICI8cD4iICsgbWVzc2Fn
ZSArICI8L3A+IjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlY29yZFBvaW50ZXJF
dmVudChldmVudCkgeworICAgICAgICAgIGlmIChldmVudC50eXBlID09PSAiY29udGV4dG1lbnUi
KSB7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgIH0KKyAg
ICAgICAgICBhbGxFdmVudHMuZXZlbnRzLnB1c2goeworICAgICAgICAgICAgInR5cGUiOiBldmVu
dC50eXBlLAorICAgICAgICAgICAgImJ1dHRvbiI6IGV2ZW50LmJ1dHRvbiwKKyAgICAgICAgICAg
ICJidXR0b25zIjogZXZlbnQuYnV0dG9ucywKKyAgICAgICAgICAgICJwYWdlWCI6IGV2ZW50LnBh
Z2VYLAorICAgICAgICAgICAgInBhZ2VZIjogZXZlbnQucGFnZVksCisgICAgICAgICAgICAiY3Ry
bEtleSI6IGV2ZW50LmN0cmxLZXksCisgICAgICAgICAgICAibWV0YUtleSI6IGV2ZW50Lm1ldGFL
ZXksCisgICAgICAgICAgICAiYWx0S2V5IjogZXZlbnQuYWx0S2V5LAorICAgICAgICAgICAgInNo
aWZ0S2V5IjogZXZlbnQuc2hpZnRLZXksCisgICAgICAgICAgICAidGFyZ2V0IjogZXZlbnQudGFy
Z2V0LmlkLAorICAgICAgICAgICAgInBvaW50ZXJUeXBlIjogZXZlbnQucG9pbnRlclR5cGUsCisg
ICAgICAgICAgICAid2lkdGgiOiBldmVudC53aWR0aCwKKyAgICAgICAgICAgICJoZWlnaHQiOiBl
dmVudC5oZWlnaHQsCisgICAgICAgICAgICAicHJlc3N1cmUiOiBldmVudC5wcmVzc3VyZSwKKyAg
ICAgICAgICAgICJ0YW5nZW50aWFsUHJlc3N1cmUiOiBldmVudC50YW5nZW50aWFsUHJlc3N1cmUs
CisgICAgICAgICAgICAidGlsdFgiOiBldmVudC50aWx0WCwKKyAgICAgICAgICAgICJ0aWx0WSI6
IGV2ZW50LnRpbHRZLAorICAgICAgICAgICAgInR3aXN0IjogZXZlbnQudHdpc3QsCisgICAgICAg
ICAgICAiYWx0aXR1ZGVBbmdsZSI6IGV2ZW50LmFsdGl0dWRlQW5nbGUsCisgICAgICAgICAgICAi
YXppbXV0aEFuZ2xlIjogZXZlbnQuYXppbXV0aEFuZ2xlCisgICAgICAgICAgfSk7CisgICAgICAg
ICAgYXBwZW5kTWVzc2FnZShldmVudC50eXBlICsgIiAiICsKKyAgICAgICAgICAgICAgImJ1dHRv
bjogIiArIGV2ZW50LmJ1dHRvbiArICIsICIgKworICAgICAgICAgICAgICAicGFnZVg6ICIgKyBl
dmVudC5wYWdlWCArICIsICIgKworICAgICAgICAgICAgICAicGFnZVk6ICIgKyBldmVudC5wYWdl
WSArICIsICIgKworICAgICAgICAgICAgICAiYnV0dG9uOiAiICsgZXZlbnQuYnV0dG9uICsgIiwg
IiArCisgICAgICAgICAgICAgICJidXR0b25zOiAiICsgZXZlbnQuYnV0dG9ucyArICIsICIgKwor
ICAgICAgICAgICAgICAiY3RybEtleTogIiArIGV2ZW50LmN0cmxLZXkgKyAiLCAiICsKKyAgICAg
ICAgICAgICAgImFsdEtleTogIiArIGV2ZW50LmFsdEtleSArICIsICIgKworICAgICAgICAgICAg
ICAibWV0YUtleTogIiArIGV2ZW50Lm1ldGFLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgInNo
aWZ0S2V5OiAiICsgZXZlbnQuc2hpZnRLZXkgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRhcmdl
dCBpZDogIiArIGV2ZW50LnRhcmdldC5pZCArICIsICIgKworICAgICAgICAgICAgICAicG9pbnRl
clR5cGU6ICIgKyBldmVudC5wb2ludGVyVHlwZSArICIsICIgKworICAgICAgICAgICAgICAid2lk
dGg6ICIgKyBldmVudC53aWR0aCArICIsICIgKworICAgICAgICAgICAgICAiaGVpZ2h0OiAiICsg
ZXZlbnQuaGVpZ2h0ICsgIiwgIiArCisgICAgICAgICAgICAgICJwcmVzc3VyZTogIiArIGV2ZW50
LnByZXNzdXJlICsgIiwgIiArCisgICAgICAgICAgICAgICJ0YW5nZW50aWFsUHJlc3N1cmU6ICIg
KyBldmVudC50YW5nZW50aWFsUHJlc3N1cmUgKyAiLCAiICsKKyAgICAgICAgICAgICAgInRpbHRY
OiAiICsgZXZlbnQudGlsdFggKyAiLCAiICsKKyAgICAgICAgICAgICAgInRpbHRZOiAiICsgZXZl
bnQudGlsdFkgKyAiLCAiICsKKyAgICAgICAgICAgICAgInR3aXN0OiAiICsgZXZlbnQudHdpc3Qg
KyAiLCAiICsKKyAgICAgICAgICAgICAgImFsdGl0dWRlQW5nbGU6ICIgKyBldmVudC5hbHRpdHVk
ZUFuZ2xlICsgIiwgIiArCisgICAgICAgICAgICAgICJhemltdXRoQW5nbGU6ICIgKyBldmVudC5h
emltdXRoQW5nbGUpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVzZXRFdmVudHMo
KSB7CisgICAgICAgICAgYWxsRXZlbnRzLmV2ZW50cy5sZW5ndGggPSAwOworICAgICAgICAgIGRp
c3BsYXlNZXNzYWdlKCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIg
cG9pbnRlckFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9pbnRlckFyZWEiKTsKKyAg
ICAgICAgICBwb2ludGVyQXJlYS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHJlY29y
ZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigi
cG9pbnRlcm1vdmUiLCByZWNvcmRQb2ludGVyRXZlbnQpOworICAgICAgICAgIHBvaW50ZXJBcmVh
LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAg
ICAgICAgcG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm92ZXIiLCByZWNvcmRQ
b2ludGVyRXZlbnQpOworICAgICAgICAgIHBvaW50ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIoInBv
aW50ZXJlbnRlciIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAgICAgICAgcG9pbnRlckFyZWEu
YWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm91dCIsIHJlY29yZFBvaW50ZXJFdmVudCk7CisgICAg
ICAgICAgcG9pbnRlckFyZWEuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIiwgcmVjb3Jk
UG9pbnRlckV2ZW50KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgPGRpdiBpZD0idHJhY2tQb2ludGVyIiBjbGFzcz0iYmxvY2siPjwvZGl2PgorICA8ZGl2
PgorICAgIDxoMj5Qb2ludGVyUmVwb3J0ZXI8L2gyPgorICAgIDxkaXYgaWQ9InBvaW50ZXJBcmVh
IiBjbGFzcz0iYXJlYSI+CisgICAgPC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJyZXN1bHRD
b250YWluZXIiPgorICAgIDxoMj5FdmVudHM8L2gyPgorICAgIDxkaXYgaWQ9ImV2ZW50cyI+PC9k
aXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvd2hlZWwucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0
aW9ucy93aGVlbC5weQppbmRleCBmYzg0ZjJmMmUwMTQuLjY3NzM0ODAwYjE5ZCAxMDA2NDQKLS0t
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2Fj
dGlvbnMvd2hlZWwucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvd2hlZWwucHkKQEAgLTIsOCArMiw5IEBAIGltcG9ydCBw
eXRlc3QKIAogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaFdpbmRvd0V4Y2VwdGlv
bgogCi1mcm9tIHRlc3RzLnBlcmZvcm1fYWN0aW9ucy5zdXBwb3J0LnJlZmluZSBpbXBvcnQgZmls
dGVyX2RpY3QsIGdldF9ldmVudHMKK2Zyb20gdGVzdHMucGVyZm9ybV9hY3Rpb25zLnN1cHBvcnQu
cmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X21vdmVfdG9fY29vcmRpbmF0ZXMKK2Zyb20gdGVzdHMuc3VwcG9ydC5oZWxwZXJz
IGltcG9ydCBmaWx0ZXJfZGljdAogCiAKIGRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vz
c2lvbiwgd2hlZWxfY2hhaW4pOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcHJpbnQvcHJpbnRjbWQucHkKaW5kZXggMzQxZTA2
OWY3YmI2Li44OTI5NmQyYjE0NmIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvcHJpbnQvcHJpbnRjbWQucHkKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wcmludC9wcmludGNtZC5weQpAQCAtMSwx
MSArMSw4IEBACi1pbXBvcnQgYmFzZTY0Citmcm9tIGJhc2U2NCBpbXBvcnQgZGVjb2RlYnl0ZXMK
IAogaW1wb3J0IHB5dGVzdAogCi1mcm9tIHNpeCBpbXBvcnQgZW5zdXJlX2JpbmFyeQotCiBmcm9t
IHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2Vz
cwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5saW5lCiAKIAogZGVmIGRvX3By
aW50KHNlc3Npb24sIG9wdGlvbnMpOgpAQCAtMjcsMTEgKzI0LDExIEBAIGRlZiB0ZXN0X25vX3Rv
cF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogZGVmIHRlc3Rfbm9f
YnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAgIHJlc3BvbnNlID0g
ZG9fcHJpbnQoc2Vzc2lvbiwge30pCiAgICAgdmFsdWUgPSBhc3NlcnRfc3VjY2VzcyhyZXNwb25z
ZSkKLSAgICBwZGYgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKGVuc3VyZV9iaW5hcnkodmFsdWUpKQor
ICAgIHBkZiA9IGRlY29kZWJ5dGVzKHZhbHVlLmVuY29kZSgpKQogICAgIGFzc2VydF9wZGYocGRm
KQogCiAKLWRlZiB0ZXN0X2h0bWxfZG9jdW1lbnQoc2Vzc2lvbik6CitkZWYgdGVzdF9odG1sX2Rv
Y3VtZW50KHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIlRlc3Qi
KQogCiAgICAgcmVzcG9uc2UgPSBkb19wcmludChzZXNzaW9uLCB7CkBAIC00MCw3ICszNyw3IEBA
IGRlZiB0ZXN0X2h0bWxfZG9jdW1lbnQoc2Vzc2lvbik6CiAgICAgICAgICJzaHJpbmtUb0ZpdCI6
IEZhbHNlCiAgICAgfSkKICAgICB2YWx1ZSA9IGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQotICAg
IHBkZiA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZW5zdXJlX2JpbmFyeSh2YWx1ZSkpCisgICAgcGRm
ID0gZGVjb2RlYnl0ZXModmFsdWUuZW5jb2RlKCkpCiAgICAgIyBUT0RPOiBUZXN0IHRoYXQgdGhl
IG91dHB1dCBpcyByZWFzb25hYmxlCiAgICAgYXNzZXJ0X3BkZihwZGYpCiAKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcHJpbnQvdXNlcl9w
cm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9w
cmludC91c2VyX3Byb21wdHMucHkKaW5kZXggYTNmN2ExMGFjMzcyLi4wYTI5YjUxOGFjOWEgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcHJp
bnQvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvcHJpbnQvdXNlcl9wcm9tcHRzLnB5CkBAIC0xLDE3ICsxLDE0IEBACiAjIE1F
VEE6IHRpbWVvdXQ9bG9uZwotaW1wb3J0IGJhc2U2NAorZnJvbSBiYXNlNjQgaW1wb3J0IGRlY29k
ZWJ5dGVzCiAKIGltcG9ydCBweXRlc3QKIAotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9iaW5hcnkK
LQogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9kaWFsb2dfaGFuZGxl
ZCwgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgaW5saW5lCiBmcm9tIC5wcmludGNtZCBpbXBvcnQgZG9fcHJpbnQsIGFzc2VydF9w
ZGYKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0
aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9w
cm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlu
bGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dC8+IikKIApAQCAtMjAsNyArMTcsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogICAgICAgICByZXNw
b25zZSA9IGRvX3ByaW50KHNlc3Npb24sIHt9KQogICAgICAgICB2YWx1ZSA9IGFzc2VydF9zdWNj
ZXNzKHJlc3BvbnNlKQogCi0gICAgICAgIHBkZiA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZW5zdXJl
X2JpbmFyeSh2YWx1ZSkpCisgICAgICAgIHBkZiA9IGRlY29kZWJ5dGVzKHZhbHVlLmVuY29kZSgp
KQogICAgICAgICBhc3NlcnRfZGlhbG9nX2hhbmRsZWQoc2Vzc2lvbiwgZXhwZWN0ZWRfdGV4dD1k
aWFsb2dfdHlwZSwgZXhwZWN0ZWRfcmV0dmFsPXJldHZhbCkKIAogICAgICAgICBhc3NlcnRfcGRm
KHBkZikKQEAgLTI5LDcgKzI2LDcgQEAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRo
b3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0
aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJf
cHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAg
ICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKIApAQCAtNDQsNyArNDEsNyBAQCBk
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0
ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25v
dF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVj
a191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRf
ZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dC8+IikKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9yZWZyZXNoL3JlZnJlc2gucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvcmVmcmVzaC5weQppbmRleCBlZWY0MTMwMTdlNWUu
LjMzNTk1ZDBmZjcxYSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9yZWZyZXNoL3JlZnJlc2gucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWZyZXNoL3JlZnJlc2gucHkKQEAgLTIsNyArMiw2
IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB3ZWJkcml2ZXIuZXJyb3IgaW1wb3J0IE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24sIFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbgogCi1mcm9tIHRl
c3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtMTEsNyArMTAs
NyBAQCBkZWYgcmVmcmVzaChzZXNzaW9uKToKICAgICAgICAgIlBPU1QiLCAic2Vzc2lvbi97c2Vz
c2lvbl9pZH0vcmVmcmVzaCIuZm9ybWF0KCoqdmFycyhzZXNzaW9uKSkpCiAKIAotZGVmIHRlc3Rf
bnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKK2RlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFs
dWUoc2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdj4iKQog
CiAgICAgcmVzcG9uc2UgPSByZWZyZXNoKHNlc3Npb24pCkBAIC0yNCw3ICsyMyw3IEBAIGRlZiB0
ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5kb3cpOgogICAg
IGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93IikKIAogCi1kZWYgdGVzdF9u
b19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSk6CitkZWYgdGVzdF9ub19i
cm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwgaW5saW5lKToKICAgICB1cmwg
PSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAKICAgICBzZXNzaW9uLnVybCA9IHVybApAQCAtNDAs
NyArMzksNyBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9m
cmFtZSk6CiAgICAgYXNzZXJ0IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCiAK
IAotZGVmIHRlc3RfYmFzaWMoc2Vzc2lvbik6CitkZWYgdGVzdF9iYXNpYyhzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKIAogICAgIHNlc3Npb24udXJs
ID0gdXJsCkBAIC01Niw3ICs1NSw3IEBAIGRlZiB0ZXN0X2Jhc2ljKHNlc3Npb24pOgogICAgIGFz
c2VydCBzZXNzaW9uLmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQogCiAKLWRlZiB0ZXN0X2Rp
c21pc3NlZF9iZWZvcmV1bmxvYWQoc2Vzc2lvbik6CitkZWYgdGVzdF9kaXNtaXNzZWRfYmVmb3Jl
dW5sb2FkKHNlc3Npb24sIGlubGluZSk6CiAgICAgdXJsX2JlZm9yZXVubG9hZCA9IGlubGluZSgi
IiIKICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0Ij4KICAgICAgIDxzY3JpcHQ+CkBAIC03OSw3ICs3
OCw3IEBAIGRlZiB0ZXN0X2Rpc21pc3NlZF9iZWZvcmV1bmxvYWQoc2Vzc2lvbik6CiAgICAgc2Vz
c2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKIAotZGVmIHRlc3RfaGlzdG9yeV9w
dXNoc3RhdGUoc2Vzc2lvbiwgdXJsKToKK2RlZiB0ZXN0X2hpc3RvcnlfcHVzaHN0YXRlKHNlc3Np
b24sIGlubGluZSk6CiAgICAgcHVzaHN0YXRlX3BhZ2UgPSBpbmxpbmUoIiIiCiAgICAgICA8c2Ny
aXB0PgogICAgICAgICBmdW5jdGlvbiBwdXNoU3RhdGUoKSB7CkBAIC0xMTEsNyArMTEwLDcgQEAg
ZGVmIHRlc3RfaGlzdG9yeV9wdXNoc3RhdGUoc2Vzc2lvbiwgdXJsKToKICAgICAgICAgZWxlbWVu
dC5wcm9wZXJ0eSgiaWQiKQogCiAKLWRlZiB0ZXN0X3JlZnJlc2hfc3dpdGNoZXNfdG9fcGFyZW50
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY3JlYXRlX2ZyYW1lKToKK2RlZiB0ZXN0X3JlZnJl
c2hfc3dpdGNoZXNfdG9fcGFyZW50X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY3JlYXRlX2Zy
YW1lLCBpbmxpbmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8ZGl2IGlkPWZvbz4iKQog
CiAgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoY3JlYXRlX2ZyYW1lKCkpCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvdXNlcl9w
cm9tcHRzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9y
ZWZyZXNoL3VzZXJfcHJvbXB0cy5weQppbmRleCBiOGVmNDE4ZTExNWYuLjdlOTQ0YjUzYjA5NiAx
MDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9y
ZWZyZXNoL3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3JlZnJlc2gvdXNlcl9wcm9tcHRzLnB5CkBAIC00LDcgKzQsNiBAQCBp
bXBvcnQgcHl0ZXN0CiAKIGZyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBTdGFsZUVsZW1lbnRS
ZWZlcmVuY2VFeGNlcHRpb24KIAotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBvcnQgaW5s
aW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5k
bGVkLCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zdWNjZXNzCiAKIApAQCAtMTQsNyArMTMsNyBAQCBk
ZWYgcmVmcmVzaChzZXNzaW9uKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2Vy
X3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6
CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3Nl
ZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lv
bi51cmwgPSBpbmxpbmUoIjxkaXYgaWQ9Zm9vPiIpCiAgICAgICAgIGVsZW1lbnQgPSBzZXNzaW9u
LmZpbmQuY3NzKCIjZm9vIiwgYWxsPUZhbHNlKQpAQCAtMzMsNyArMzIsNyBAQCBkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFs
b2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93
aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3By
b21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5l
KToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKGRpYWxv
Z190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdiBpZD1m
b28+IikKICAgICAgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFs
c2UpCkBAIC01MSw3ICs1MCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9l
eGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNlc3Npb24sIGNy
ZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2Vw
dGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2Vy
X3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgogICAgICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiPGRpdiBpZD1mb28+IikKICAgICAgICAgZWxlbWVudCA9IHNl
c3Npb24uZmluZC5jc3MoIiNmb28iLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9yZWxlYXNl
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNl
X2FjdGlvbnMvcmVsZWFzZS5weQppbmRleCAxZjQ4NmY3NzU5ZmQuLjVkZjFmZjRiZTkwMiAxMDA2
NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxl
YXNlX2FjdGlvbnMvcmVsZWFzZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9yZWxlYXNlLnB5CkBAIC0yMCw0ICsyMCw0
IEBAIGRlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF93aW5k
b3cpOgogCiBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFt
ZSk6CiAgICAgcmVzcG9uc2UgPSByZWxlYXNlX2FjdGlvbnMoc2Vzc2lvbikKLSAgICBhc3NlcnRf
c3VjY2VzcyhyZXNwb25zZSkKKyAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdp
bmRvdyIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zZXF1ZW5jZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcmVsZWFzZV9hY3Rpb25zL3NlcXVlbmNlLnB5CmluZGV4
IDJkODE2ZjgwOTRiMy4uNzUxNDNkODVjYTYwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zZXF1ZW5jZS5weQor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2Vf
YWN0aW9ucy9zZXF1ZW5jZS5weQpAQCAtMSw2ICsxLDcgQEAKICMgTUVUQTogdGltZW91dD1sb25n
CiAKLWZyb20gdGVzdHMucmVsZWFzZV9hY3Rpb25zLnN1cHBvcnQucmVmaW5lIGltcG9ydCBmaWx0
ZXJfZGljdCwgZ2V0X2V2ZW50cywgZ2V0X2tleXMKK2Zyb20gdGVzdHMucmVsZWFzZV9hY3Rpb25z
LnN1cHBvcnQucmVmaW5lIGltcG9ydCBnZXRfZXZlbnRzLCBnZXRfa2V5cworZnJvbSB0ZXN0cy5z
dXBwb3J0LmhlbHBlcnMgaW1wb3J0IGZpbHRlcl9kaWN0CiAKIAogZGVmIHRlc3RfcmVsZWFzZV9u
b19hY3Rpb25zX3NlbmRzX25vX2V2ZW50cyhzZXNzaW9uLCBrZXlfcmVwb3J0ZXIpOgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNl
X2FjdGlvbnMvc3VwcG9ydC9yZWZpbmUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3JlbGVhc2VfYWN0aW9ucy9zdXBwb3J0L3JlZmluZS5weQppbmRleCAz
YTZkNjNlMDRjZTkuLjkwZjcyMjU4N2MzYiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxlYXNlX2FjdGlvbnMvc3VwcG9ydC9yZWZpbmUu
cHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9yZWxl
YXNlX2FjdGlvbnMvc3VwcG9ydC9yZWZpbmUucHkKQEAgLTIyLDEyICsyMiwzIEBAIGRlZiBnZXRf
a2V5cyhpbnB1dF9lbCk6CiAgICAgICAgIHJldHVybiAiIgogICAgIGVsc2U6CiAgICAgICAgIHJl
dHVybiBydgotCi0KLWRlZiBmaWx0ZXJfZGljdChzb3VyY2UsIGQpOgotICAgICIiIkZpbHRlciBg
c291cmNlYCBkaWN0IHRvIG9ubHkgY29udGFpbiBzYW1lIGtleXMgYXMgYGRgIGRpY3QuCi0KLSAg
ICA6cGFyYW0gc291cmNlOiBkaWN0aW9uYXJ5IHRvIGZpbHRlci4KLSAgICA6cGFyYW0gZDogZGlj
dGlvbmFyeSB3aG9zZSBrZXlzIGRldGVybWluZSB0aGUgZmlsdGVyaW5nLgotICAgICIiIgotICAg
IHJldHVybiB7azogc291cmNlW2tdIGZvciBrIGluIGQua2V5cygpfQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zZW5kX2FsZXJ0X3RleHQv
c2VuZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc2Vu
ZF9hbGVydF90ZXh0L3NlbmQucHkKaW5kZXggNWRhNjc1OTBkYTM0Li5kNTg0NmFkNTZiM2IgMTAw
NjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc2Vu
ZF9hbGVydF90ZXh0L3NlbmQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy9zZW5kX2FsZXJ0X3RleHQvc2VuZC5weQpAQCAtNCwxMiArNCwxMSBAQCBm
cm9tIHdlYmRyaXZlci5lcnJvciBpbXBvcnQgTm9TdWNoQWxlcnRFeGNlcHRpb24KIGZyb20gd2Vi
ZHJpdmVyLnRyYW5zcG9ydCBpbXBvcnQgUmVzcG9uc2UKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFz
c2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3Vw
cG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0
IFBvbGwKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBwYWdlKHNlc3Npb24pOgorZGVmIHBhZ2Uo
c2Vzc2lvbiwgaW5saW5lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiIiIKICAgICAgICAg
PHNjcmlwdD53aW5kb3cucmVzdWx0ID0gd2luZG93LnByb21wdCgnRW50ZXIgWW91ciBOYW1lOiAn
LCAnTmFtZScpOzwvc2NyaXB0PgogICAgICIiIikKQEAgLTU1LDcgKzU0LDcgQEAgZGVmIHRlc3Rf
bm9fdXNlcl9wcm9tcHQoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJk
aWFsb2dfdHlwZSIsIFsiYWxlcnQiLCAiY29uZmlybSJdKQotZGVmIHRlc3RfYWxlcnRfZWxlbWVu
dF9ub3RfaW50ZXJhY3RhYmxlKHNlc3Npb24sIGRpYWxvZ190eXBlKToKK2RlZiB0ZXN0X2FsZXJ0
X2VsZW1lbnRfbm90X2ludGVyYWN0YWJsZShzZXNzaW9uLCBpbmxpbmUsIGRpYWxvZ190eXBlKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPHNjcmlwdD53aW5kb3cue30oJ0hlbGxvJyk7PC9z
Y3JpcHQ+Ii5mb3JtYXQoZGlhbG9nX3R5cGUpKQogCiAgICAgcmVzcG9uc2UgPSBzZW5kX2FsZXJ0
X3RleHQoc2Vzc2lvbiwgIkZlZGVyZXIiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdGF0dXMvc3RhdHVzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdGF0dXMvc3RhdHVzLnB5CmluZGV4IDFm
MGYxYmM0ZmU3Ny4uOGM3YWUyMmE2N2I1IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N0YXR1cy9zdGF0dXMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdGF0dXMvc3RhdHVzLnB5CkBAIC0x
LDcgKzEsNSBAQAogaW1wb3J0IGpzb24KIAotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotCiBm
cm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X3N1Y2Nlc3MKIAogCkBAIC0x
OCw3ICsxNiw3IEBAIGRlZiB0ZXN0X2dldF9zdGF0dXNfbm9fc2Vzc2lvbihodHRwKToKICAgICAg
ICAgdmFsdWUgPSBwYXJzZWRfb2JqWyJ2YWx1ZSJdCiAKICAgICAgICAgYXNzZXJ0IHZhbHVlWyJy
ZWFkeSJdIGluIFtUcnVlLCBGYWxzZV0KLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWVb
Im1lc3NhZ2UiXSwgdGV4dF90eXBlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZVsi
bWVzc2FnZSJdLCBzdHIpCiAKIAogZGVmIHRlc3Rfc3RhdHVzX3dpdGhfc2Vzc2lvbl9ydW5uaW5n
X29uX2VuZHBvaW50X25vZGUoc2Vzc2lvbik6CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXNzZXJ0cy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hc3NlcnRzLnB5Cmlu
ZGV4IDNjM2Q2NzdjOTBlYy4uZTYwZDUzYjZjNmYwIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXNzZXJ0cy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXNzZXJ0
cy5weQpAQCAtMSw4ICsxLDYgQEAKLWltcG9ydCBiYXNlNjQKIGltcG9ydCBpbWdoZHIKIGltcG9y
dCBzdHJ1Y3QKLQotZnJvbSBzaXggaW1wb3J0IGVuc3VyZV9iaW5hcnksIHRleHRfdHlwZQorZnJv
bSBiYXNlNjQgaW1wb3J0IGRlY29kZWJ5dGVzCiAKIGZyb20gd2ViZHJpdmVyIGltcG9ydCBFbGVt
ZW50LCBOb1N1Y2hBbGVydEV4Y2VwdGlvbiwgV2ViRHJpdmVyRXhjZXB0aW9uCiAKQEAgLTUyLDgg
KzUwLDggQEAgZGVmIGFzc2VydF9lcnJvcihyZXNwb25zZSwgZXJyb3JfY29kZSk6CiAgICAgYXNz
ZXJ0IHJlc3BvbnNlLnN0YXR1cyA9PSBlcnJvcnNbZXJyb3JfY29kZV0KICAgICBhc3NlcnQgInZh
bHVlIiBpbiByZXNwb25zZS5ib2R5CiAgICAgYXNzZXJ0IHJlc3BvbnNlLmJvZHlbInZhbHVlIl1b
ImVycm9yIl0gPT0gZXJyb3JfY29kZQotICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLmJv
ZHlbInZhbHVlIl1bIm1lc3NhZ2UiXSwgdGV4dF90eXBlKQotICAgIGFzc2VydCBpc2luc3RhbmNl
KHJlc3BvbnNlLmJvZHlbInZhbHVlIl1bInN0YWNrdHJhY2UiXSwgdGV4dF90eXBlKQorICAgIGFz
c2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLmJvZHlbInZhbHVlIl1bIm1lc3NhZ2UiXSwgc3RyKQor
ICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLmJvZHlbInZhbHVlIl1bInN0YWNrdHJhY2Ui
XSwgc3RyKQogICAgIGFzc2VydF9yZXNwb25zZV9oZWFkZXJzKHJlc3BvbnNlLmhlYWRlcnMpCiAK
IApAQCAtMjE0LDYgKzIxMiw2IEBAIGRlZiBhc3NlcnRfbW92ZV90b19jb29yZGluYXRlcyhwb2lu
dCwgdGFyZ2V0LCBldmVudHMpOgogCiBkZWYgYXNzZXJ0X3BuZyhzY3JlZW5zaG90KToKICAgICAi
IiJUZXN0IHRoYXQgc2NyZWVuc2hvdCBpcyBhIEJhc2U2NCBlbmNvZGVkIFBORyBmaWxlLiIiIgot
ICAgIGltYWdlID0gYmFzZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5KHNjcmVlbnNob3Qp
KQorICAgIGltYWdlID0gZGVjb2RlYnl0ZXMoc2NyZWVuc2hvdC5lbmNvZGUoKSkKICAgICBtaW1l
X3R5cGUgPSBpbWdoZHIud2hhdCgiIiwgaW1hZ2UpCiAgICAgYXNzZXJ0IG1pbWVfdHlwZSA9PSAi
cG5nIiwgIkV4cGVjdGVkIGltYWdlIHRvIGJlIFBORywgYnV0IGl0IHdhcyB7fSIuZm9ybWF0KG1p
bWVfdHlwZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvc3VwcG9ydC9hdXRoZW50aWNhdGlvbi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hdXRoZW50aWNhdGlvbi5weQppbmRleCAy
NWE4ZWI5NWQxMTQuLjlkYTRiYjdiZTVmZiAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2F1dGhlbnRpY2F0aW9uLnB5CisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9hdXRo
ZW50aWNhdGlvbi5weQpAQCAtMSwxNSArMSwxMiBAQAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBh
cnNlIGltcG9ydCB1cmxlbmNvZGUKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUK
IAogCi1kZWYgYmFzaWNfYXV0aGVudGljYXRpb24odXNlcm5hbWU9Tm9uZSwgcGFzc3dvcmQ9Tm9u
ZSwgcHJvdG9jb2w9Imh0dHAiKToKLSAgICBmcm9tIC5maXh0dXJlcyBpbXBvcnQgc2VydmVyX2Nv
bmZpZywgdXJsCi0gICAgYnVpbGRfdXJsID0gdXJsKHNlcnZlcl9jb25maWcoKSkKLQorZGVmIGJh
c2ljX2F1dGhlbnRpY2F0aW9uKHVybCwgdXNlcm5hbWU9Tm9uZSwgcGFzc3dvcmQ9Tm9uZSwgcHJv
dG9jb2w9Imh0dHAiKToKICAgICBxdWVyeSA9IHt9CiAKLSAgICByZXR1cm4gYnVpbGRfdXJsKCIv
d2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvYXV0aGVudGljYXRpb24ucHkiLAotICAgICAgICAgICAg
ICAgICAgICAgcXVlcnk9dXJsZW5jb2RlKHF1ZXJ5KSwKLSAgICAgICAgICAgICAgICAgICAgIHBy
b3RvY29sPXByb3RvY29sKQorICAgIHJldHVybiB1cmwoIi93ZWJkcml2ZXIvdGVzdHMvc3VwcG9y
dC9hdXRoZW50aWNhdGlvbi5weSIsCisgICAgICAgICAgICAgICBxdWVyeT11cmxlbmNvZGUocXVl
cnkpLAorICAgICAgICAgICAgICAgcHJvdG9jb2w9cHJvdG9jb2wpCiAKIAogZGVmIG1haW4ocmVx
dWVzdCwgcmVzcG9uc2UpOgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2ZpeHR1cmVzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2ZpeHR1cmVzLnB5CmluZGV4IDk1N2M0
ZDA1ODY4Yi4uZGIzMjkzMTEzMWQ2IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvZml4dHVyZXMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2ZpeHR1cmVzLnB5CkBA
IC0yLDE1ICsyLDE1IEBAIGltcG9ydCBjb3B5CiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKK2lt
cG9ydCBhc3luY2lvCiBpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgd2ViZHJpdmVyCiAKLWZyb20gc2l4
IGltcG9ydCBzdHJpbmdfdHlwZXMKLQotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9y
dCB1cmx1bnNwbGl0Citmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsdW5zcGxpdAogCiBmcm9t
IHRlc3RzLnN1cHBvcnQgaW1wb3J0IGRlZmF1bHRzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVy
cyBpbXBvcnQgY2xlYW51cF9zZXNzaW9uCitmcm9tIHRlc3RzLnN1cHBvcnQuaGVscGVycyBpbXBv
cnQgY2xlYW51cF9zZXNzaW9uLCBkZWVwX3VwZGF0ZQorZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGlu
ZSBpbXBvcnQgYnVpbGRfaW5saW5lCiBmcm9tIHRlc3RzLnN1cHBvcnQuaHR0cF9yZXF1ZXN0IGlt
cG9ydCBIVFRQUmVxdWVzdAogZnJvbSB0ZXN0cy5zdXBwb3J0LnN5bmMgaW1wb3J0IFBvbGwKIApA
QCAtMzgsNiArMzgsMTcgQEAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CiAg
ICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgiY2FwYWJpbGl0aWVzIiwgbWFya2VyLmFy
Z3MsIGlkcz1Ob25lKQogCiAKKyMgRW5zdXJlIHRoYXQgdGhlIGV2ZW50IGxvb3AgaXMgcmVzdGFy
dGVkIG9uY2UgcGVyIHNlc3Npb24gcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgIG9mIG9uY2UgcGVy
IHRlc3QKKyMgaWYgd2UgZG9uJ3QgZG8gdGhpcywgdGVzdHMgd2lsbCB0cnkgdG8gcmV1c2UgYSBj
bG9zZWQgZXZlbnQgbG9vcCBhbmQgZmFpbCB3aXRoIGFuIGVycm9yIHRoYXQgdGhlICJmdXR1cmUK
KyMgYmVsb25ncyB0byBhIGRpZmZlcmVudCBsb29wIgorQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJz
ZXNzaW9uIikKK2RlZiBldmVudF9sb29wKCk6CisgICAgIiIiQ2hhbmdlIGV2ZW50X2xvb3AgZml4
dHVyZSB0byBzZXNzaW9uIGxldmVsLiIiIgorICAgIGxvb3AgPSBhc3luY2lvLmdldF9ldmVudF9s
b29wX3BvbGljeSgpLm5ld19ldmVudF9sb29wKCkKKyAgICB5aWVsZCBsb29wCisgICAgbG9vcC5j
bG9zZSgpCisKKwogQHB5dGVzdC5maXh0dXJlCiBkZWYgYWRkX2V2ZW50X2xpc3RlbmVycyhzZXNz
aW9uKToKICAgICAiIiJSZWdpc3RlciBsaXN0ZW5lcnMgZm9yIHRyYWNrZWQgZXZlbnRzIG9uIGVs
ZW1lbnQuIiIiCkBAIC05NCw3ICsxMDUsOCBAQCBkZWYgaHR0cChjb25maWd1cmF0aW9uKToKIAog
QHB5dGVzdC5maXh0dXJlCiBkZWYgc2VydmVyX2NvbmZpZygpOgotICAgIHJldHVybiBqc29uLmxv
YWRzKG9zLmVudmlyb24uZ2V0KCJXRF9TRVJWRVJfQ09ORklHIikpCisgICAgd2l0aCBvcGVuKG9z
LmVudmlyb24uZ2V0KCJXRF9TRVJWRVJfQ09ORklHX0ZJTEUiKSwgInIiKSBhcyBmOgorICAgICAg
ICByZXR1cm4ganNvbi5sb2FkKGYpCiAKIAogQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9u
IikKQEAgLTExMCw4ICsxMjIsMjMgQEAgZGVmIGNvbmZpZ3VyYXRpb24oKToKICAgICB9CiAKIAor
YXN5bmMgZGVmIHJlc2V0X2N1cnJlbnRfc2Vzc2lvbl9pZl9uZWNlc3NhcnkoY2FwcywgcmVxdWVz
dF9iaWRpKToKKyAgICBnbG9iYWwgX2N1cnJlbnRfc2Vzc2lvbgorCisgICAgIyBJZiB0aGVyZSBp
cyBhIHNlc3Npb24gd2l0aCBkaWZmZXJlbnQgY2FwYWJpbGl0aWVzIGFjdGl2ZSBvciB0aGUgY3Vy
cmVudCBzZXNzaW9uCisgICAgIyBpcyBvZiBkaWZmZXJlbnQgdHlwZSB0aGFuIHRoZSBvbmUgd2Ug
d291bGQgbGlrZSB0byBjcmVhdGUsIGVuZCBpdCBub3cuCisgICAgaWYgX2N1cnJlbnRfc2Vzc2lv
biBpcyBub3QgTm9uZToKKyAgICAgICAgaXNfYmlkaSA9IGlzaW5zdGFuY2UoX2N1cnJlbnRfc2Vz
c2lvbiwgd2ViZHJpdmVyLkJpZGlTZXNzaW9uKQorICAgICAgICBpZiBpc19iaWRpICE9IHJlcXVl
c3RfYmlkaSBvciBub3QgX2N1cnJlbnRfc2Vzc2lvbi5tYXRjaChjYXBzKToKKyAgICAgICAgICAg
IGlmIGlzX2JpZGk6CisgICAgICAgICAgICAgICAgYXdhaXQgX2N1cnJlbnRfc2Vzc2lvbi5lbmQo
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBfY3VycmVudF9zZXNzaW9uLmVu
ZCgpCisgICAgICAgICAgICBfY3VycmVudF9zZXNzaW9uID0gTm9uZQorCisKIEBweXRlc3QuZml4
dHVyZShzY29wZT0iZnVuY3Rpb24iKQotZGVmIHNlc3Npb24oY2FwYWJpbGl0aWVzLCBjb25maWd1
cmF0aW9uLCByZXF1ZXN0KToKK2FzeW5jIGRlZiBzZXNzaW9uKGNhcGFiaWxpdGllcywgY29uZmln
dXJhdGlvbiwgcmVxdWVzdCk6CiAgICAgIiIiQ3JlYXRlIGFuZCBzdGFydCBhIHNlc3Npb24gZm9y
IGEgdGVzdCB0aGF0IGRvZXMgbm90IGl0c2VsZiB0ZXN0IHNlc3Npb24gY3JlYXRpb24uCiAKICAg
ICBCeSBkZWZhdWx0IHRoZSBzZXNzaW9uIHdpbGwgc3RheSBvcGVuIGFmdGVyIGVhY2ggdGVzdCwg
YnV0IHdlIGFsd2F5cyB0cnkgdG8gc3RhcnQgYQpAQCAtMTIzLDE0ICsxNTAsMTAgQEAgZGVmIHNl
c3Npb24oY2FwYWJpbGl0aWVzLCBjb25maWd1cmF0aW9uLCByZXF1ZXN0KToKICAgICAjIFVwZGF0
ZSBjb25maWd1cmF0aW9uIGNhcGFiaWxpdGllcyB3aXRoIGN1c3RvbSBvbmVzIGZyb20gdGhlCiAg
ICAgIyBjYXBhYmlsaXRpZXMgZml4dHVyZSwgd2hpY2ggY2FuIGJlIHNldCBieSB0ZXN0cwogICAg
IGNhcHMgPSBjb3B5LmRlZXBjb3B5KGNvbmZpZ3VyYXRpb25bImNhcGFiaWxpdGllcyJdKQotICAg
IGNhcHMudXBkYXRlKGNhcGFiaWxpdGllcykKKyAgICBkZWVwX3VwZGF0ZShjYXBzLCBjYXBhYmls
aXRpZXMpCiAgICAgY2FwcyA9IHsiYWx3YXlzTWF0Y2giOiBjYXBzfQogCi0gICAgIyBJZiB0aGVy
ZSBpcyBhIHNlc3Npb24gd2l0aCBkaWZmZXJlbnQgY2FwYWJpbGl0aWVzIGFjdGl2ZSwgZW5kIGl0
IG5vdwotICAgIGlmIF9jdXJyZW50X3Nlc3Npb24gaXMgbm90IE5vbmUgYW5kICgKLSAgICAgICAg
ICAgIGNhcHMgIT0gX2N1cnJlbnRfc2Vzc2lvbi5yZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzKToKLSAg
ICAgICAgX2N1cnJlbnRfc2Vzc2lvbi5lbmQoKQotICAgICAgICBfY3VycmVudF9zZXNzaW9uID0g
Tm9uZQorICAgIGF3YWl0IHJlc2V0X2N1cnJlbnRfc2Vzc2lvbl9pZl9uZWNlc3NhcnkoY2Fwcywg
RmFsc2UpCiAKICAgICBpZiBfY3VycmVudF9zZXNzaW9uIGlzIE5vbmU6CiAgICAgICAgIF9jdXJy
ZW50X3Nlc3Npb24gPSB3ZWJkcml2ZXIuU2Vzc2lvbigKQEAgLTEzOSw2ICsxNjIsNyBAQCBkZWYg
c2Vzc2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3QpOgogICAgICAgICAg
ICAgY2FwYWJpbGl0aWVzPWNhcHMpCiAgICAgdHJ5OgogICAgICAgICBfY3VycmVudF9zZXNzaW9u
LnN0YXJ0KCkKKwogICAgIGV4Y2VwdCB3ZWJkcml2ZXIuZXJyb3IuU2Vzc2lvbk5vdENyZWF0ZWRF
eGNlcHRpb246CiAgICAgICAgIGlmIG5vdCBfY3VycmVudF9zZXNzaW9uLnNlc3Npb25faWQ6CiAg
ICAgICAgICAgICByYWlzZQpAQCAtMTUyLDYgKzE3Niw0OCBAQCBkZWYgc2Vzc2lvbihjYXBhYmls
aXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3QpOgogICAgIGNsZWFudXBfc2Vzc2lvbihfY3Vy
cmVudF9zZXNzaW9uKQogCiAKK0BweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQorYXN5
bmMgZGVmIGJpZGlfc2Vzc2lvbihjYXBhYmlsaXRpZXMsIGNvbmZpZ3VyYXRpb24sIHJlcXVlc3Qp
OgorICAgICIiIkNyZWF0ZSBhbmQgc3RhcnQgYSBiaWRpIHNlc3Npb24gZm9yIGEgdGVzdCB0aGF0
IGRvZXMgbm90IGl0c2VsZiB0ZXN0CisgICAgYmlkaSBzZXNzaW9uIGNyZWF0aW9uLgorICAgIEJ5
IGRlZmF1bHQgdGhlIHNlc3Npb24gd2lsbCBzdGF5IG9wZW4gYWZ0ZXIgZWFjaCB0ZXN0LCBidXQg
d2UgYWx3YXlzIHRyeSB0byBzdGFydCBhCisgICAgbmV3IG9uZSBhbmQgYXNzdW1lIHRoYXQgaWYg
dGhhdCBmYWlscyB0aGVyZSBpcyBhbHJlYWR5IGEgdmFsaWQgc2Vzc2lvbi4gVGhpcyBtYWtlcyBp
dAorICAgIHBvc3NpYmxlIHRvIHJlY292ZXIgZnJvbSBzb21lIGVycm9ycyB0aGF0IG1pZ2h0IGxl
YXZlIHRoZSBzZXNzaW9uIGluIGEgYmFkIHN0YXRlLCBidXQKKyAgICBkb2VzIG5vdCBkZW1hbmQg
dGhhdCB3ZSBzdGFydCBhIG5ldyBzZXNzaW9uIHBlciB0ZXN0LiIiIgorICAgIGdsb2JhbCBfY3Vy
cmVudF9zZXNzaW9uCisKKyAgICAjIFVwZGF0ZSBjb25maWd1cmF0aW9uIGNhcGFiaWxpdGllcyB3
aXRoIGN1c3RvbSBvbmVzIGZyb20gdGhlCisgICAgIyBjYXBhYmlsaXRpZXMgZml4dHVyZSwgd2hp
Y2ggY2FuIGJlIHNldCBieSB0ZXN0cworICAgIGNhcHMgPSBjb3B5LmRlZXBjb3B5KGNvbmZpZ3Vy
YXRpb25bImNhcGFiaWxpdGllcyJdKQorICAgIGRlZXBfdXBkYXRlKGNhcHMsIGNhcGFiaWxpdGll
cykKKyAgICBjYXBzID0geyJhbHdheXNNYXRjaCI6IGNhcHN9CisKKyAgICBhd2FpdCByZXNldF9j
dXJyZW50X3Nlc3Npb25faWZfbmVjZXNzYXJ5KGNhcHMsIFRydWUpCisKKyAgICBpZiBfY3VycmVu
dF9zZXNzaW9uIGlzIE5vbmU6CisgICAgICAgIF9jdXJyZW50X3Nlc3Npb24gPSB3ZWJkcml2ZXIu
U2Vzc2lvbigKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25bImhvc3QiXSwKKyAgICAgICAgICAg
IGNvbmZpZ3VyYXRpb25bInBvcnQiXSwKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBzLAor
ICAgICAgICAgICAgZW5hYmxlX2JpZGk9VHJ1ZSkKKworICAgIHRyeToKKyAgICAgICAgX2N1cnJl
bnRfc2Vzc2lvbi5zdGFydCgpCisgICAgICAgIGF3YWl0IF9jdXJyZW50X3Nlc3Npb24uYmlkaV9z
ZXNzaW9uLnN0YXJ0KCkKKyAgICBleGNlcHQgd2ViZHJpdmVyLmVycm9yLlNlc3Npb25Ob3RDcmVh
dGVkRXhjZXB0aW9uOgorICAgICAgICBpZiBub3QgX2N1cnJlbnRfc2Vzc2lvbi5zZXNzaW9uX2lk
OgorICAgICAgICAgICAgcmFpc2UKKworICAgICMgRW5mb3JjZSBhIGZpeGVkIGRlZmF1bHQgd2lu
ZG93IHNpemUgYW5kIHBvc2l0aW9uCisgICAgX2N1cnJlbnRfc2Vzc2lvbi53aW5kb3cuc2l6ZSA9
IGRlZmF1bHRzLldJTkRPV19TSVpFCisgICAgX2N1cnJlbnRfc2Vzc2lvbi53aW5kb3cucG9zaXRp
b24gPSBkZWZhdWx0cy5XSU5ET1dfUE9TSVRJT04KKworICAgIHlpZWxkIF9jdXJyZW50X3Nlc3Np
b24uYmlkaV9zZXNzaW9uCisKKyAgICBhd2FpdCBfY3VycmVudF9zZXNzaW9uLmJpZGlfc2Vzc2lv
bi5lbmQoKQorICAgIGNsZWFudXBfc2Vzc2lvbihfY3VycmVudF9zZXNzaW9uKQorCisKIEBweXRl
c3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQogZGVmIGN1cnJlbnRfc2Vzc2lvbigpOgogICAg
IHJldHVybiBfY3VycmVudF9zZXNzaW9uCkBAIC0xNTksMTQgKzIyNSwxMyBAQCBkZWYgY3VycmVu
dF9zZXNzaW9uKCk6CiAKIEBweXRlc3QuZml4dHVyZQogZGVmIHVybChzZXJ2ZXJfY29uZmlnKToK
LSAgICBkZWYgaW5uZXIocGF0aCwgcHJvdG9jb2w9Imh0dHAiLCBkb21haW49IiIsIHN1YmRvbWFp
bj0iIiwgcXVlcnk9IiIsIGZyYWdtZW50PSIiKToKKyAgICBkZWYgdXJsKHBhdGgsIHByb3RvY29s
PSJodHRwIiwgZG9tYWluPSIiLCBzdWJkb21haW49IiIsIHF1ZXJ5PSIiLCBmcmFnbWVudD0iIik6
CiAgICAgICAgIGRvbWFpbiA9IHNlcnZlcl9jb25maWdbImRvbWFpbnMiXVtkb21haW5dW3N1YmRv
bWFpbl0KICAgICAgICAgcG9ydCA9IHNlcnZlcl9jb25maWdbInBvcnRzIl1bcHJvdG9jb2xdWzBd
CiAgICAgICAgIGhvc3QgPSAiezB9OnsxfSIuZm9ybWF0KGRvbWFpbiwgcG9ydCkKICAgICAgICAg
cmV0dXJuIHVybHVuc3BsaXQoKHByb3RvY29sLCBob3N0LCBwYXRoLCBxdWVyeSwgZnJhZ21lbnQp
KQogCi0gICAgaW5uZXIuX19uYW1lX18gPSAidXJsIgotICAgIHJldHVybiBpbm5lcgorICAgIHJl
dHVybiB1cmwKIAogCiBAcHl0ZXN0LmZpeHR1cmUKQEAgLTE4Miw3ICsyNDcsNyBAQCBkZWYgY3Jl
YXRlX2RpYWxvZyhzZXNzaW9uKToKICAgICAgICAgaWYgdGV4dCBpcyBOb25lOgogICAgICAgICAg
ICAgdGV4dCA9ICIiCiAKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodGV4dCwgc3RyaW5nX3R5
cGVzKSwgImB0ZXh0YCBwYXJhbWV0ZXIgbXVzdCBiZSBhIHN0cmluZyIKKyAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UodGV4dCwgc3RyKSwgImB0ZXh0YCBwYXJhbWV0ZXIgbXVzdCBiZSBhIHN0cmlu
ZyIKIAogICAgICAgICAjIFNjcmlwdCBjb21wbGV0ZXMgaXRzZWxmIHdoZW4gdGhlIHVzZXIgcHJv
bXB0IGhhcyBiZWVuIG9wZW5lZC4KICAgICAgICAgIyBGb3IgcHJvbXB0KCkgZGlhbG9ncywgYWRk
IGEgdmFsdWUgZm9yIHRoZSAnZGVmYXVsdCcgYXJndW1lbnQsCkBAIC0yMzgsMTUgKzMwMyw1NCBA
QCBkZWYgY2xvc2VkX2ZyYW1lKHNlc3Npb24sIHVybCk6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1k
ZWYgY2xvc2VkX3dpbmRvdyhzZXNzaW9uKToKK2RlZiBjbG9zZWRfd2luZG93KHNlc3Npb24sIGlu
bGluZSk6CiAgICAgb3JpZ2luYWxfaGFuZGxlID0gc2Vzc2lvbi53aW5kb3dfaGFuZGxlCiAgICAg
bmV3X2hhbmRsZSA9IHNlc3Npb24ubmV3X3dpbmRvdygpCiAKICAgICBzZXNzaW9uLndpbmRvd19o
YW5kbGUgPSBuZXdfaGFuZGxlCisgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dCBpZD0n
YScgdmFsdWU9J2InPiIpCisgICAgZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0Iiwg
YWxsPUZhbHNlKQogCiAgICAgc2Vzc2lvbi53aW5kb3cuY2xvc2UoKQogICAgIGFzc2VydCBuZXdf
aGFuZGxlIG5vdCBpbiBzZXNzaW9uLmhhbmRsZXMsICJVbmFibGUgdG8gY2xvc2Ugd2luZG93IHt9
Ii5mb3JtYXQobmV3X2hhbmRsZSkKIAotICAgIHlpZWxkIG5ld19oYW5kbGUKKyAgICB5aWVsZCAo
b3JpZ2luYWxfaGFuZGxlLCBlbGVtZW50KQogCiAgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0g
b3JpZ2luYWxfaGFuZGxlCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgaW5saW5lKHVybCk6Cisg
ICAgIiIiVGFrZXMgYSBzb3VyY2UgZXh0cmFjdCBhbmQgcHJvZHVjZXMgd2VsbC1mb3JtZWQgZG9j
dW1lbnRzLgorCisgICAgQmFzZWQgb24gdGhlIGRlc2lyZWQgZG9jdW1lbnQgdHlwZSwgdGhlIGV4
dHJhY3QgaXMgZW1iZWRkZWQgd2l0aAorICAgIHByZWRlZmluZWQgYm9pbGVycGxhdGUgaW4gb3Jk
ZXIgdG8gcHJvZHVjZSB3ZWxsLWZvcm1lZCBkb2N1bWVudHMuCisgICAgVGhlIG1lZGlhIHR5cGUg
YW5kIGNoYXJhY3RlciBzZXQgbWF5IGFsc28gYmUgaW5kaXZpZHVhbGx5IGNvbmZpZ3VyZWQuCisK
KyAgICBUaGlzIGhlbHBlciBmdW5jdGlvbiBvcmlnaW5hbGx5IHVzZWQgZGF0YSBVUkxzLCBidXQg
c2luY2UgdGhlc2UKKyAgICBhcmUgbm90IHVuaXZlcnNhbGx5IHN1cHBvcnRlZCAob3IgaW5kZWVk
IHN0YW5kYXJkaXNlZCEpIGFjcm9zcworICAgIGJyb3dzZXJzLCBpdCBub3cgZGVsZWdhdGVzIHRo
ZSBzZXJ2aW5nIG9mIHRoZSBkb2N1bWVudCB0byB3cHRzZXJ2ZS4KKyAgICBUaGlzIGZpbGUgYWxz
byBhY3RzIGFzIGEgd3B0c2VydmUgaGFuZGxlciAoc2VlIHRoZSBtYWluIGZ1bmN0aW9uCisgICAg
YmVsb3cpIHdoaWNoIGNvbmZpZ3VyZXMgdGhlIEhUVFAgcmVzcG9uc2UgdXNpbmcgcXVlcnkgcGFy
YW1ldGVycy4KKworICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIFVSTCB0byB0aGUgd3B0c2Vy
dmUgaGFuZGxlciwgd2hpY2ggaW4gdHVybgorICAgIHdpbGwgc2VydmUgYW4gSFRUUCByZXNwb25z
ZSB3aXRoIHRoZSByZXF1ZXN0ZWQgc291cmNlIGV4dHJhY3QKKyAgICBpbmxpbmVkIGluIGEgd2Vs
bC1mb3JtZWQgZG9jdW1lbnQsIGFuZCB0aGUgQ29udGVudC1UeXBlIGhlYWRlcgorICAgIG9wdGlv
bmFsbHkgY29uZmlndXJlZCB1c2luZyB0aGUgZGVzaXJlZCBtZWRpYSB0eXBlIGFuZCBjaGFyYWN0
ZXIgc2V0LgorCisgICAgQW55IGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudHMgYXJlIHBhc3Nl
ZCBvbiB0byB0aGUgYnVpbGRfdXJsCisgICAgZnVuY3Rpb24sIHdoaWNoIGNvbWVzIGZyb20gdGhl
IHVybCBmaXh0dXJlLgorICAgICIiIgorICAgIGRlZiBpbmxpbmUoc3JjLCAqKmt3YXJncyk6Cisg
ICAgICAgIHJldHVybiBidWlsZF9pbmxpbmUodXJsLCBzcmMsICoqa3dhcmdzKQorCisgICAgcmV0
dXJuIGlubGluZQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGlmcmFtZShpbmxpbmUpOgorICAg
ICIiIklubGluZXMgZG9jdW1lbnQgZXh0cmFjdCBhcyB0aGUgc291cmNlIGRvY3VtZW50IG9mIGFu
IDxpZnJhbWU+LiIiIgorICAgIGRlZiBpZnJhbWUoc3JjLCAqKmt3YXJncyk6CisgICAgICAgIHJl
dHVybiAiPGlmcmFtZSBzcmM9J3t9Jz48L2lmcmFtZT4iLmZvcm1hdChpbmxpbmUoc3JjLCAqKmt3
YXJncykpCisKKyAgICByZXR1cm4gaWZyYW1lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaGVscGVycy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9oZWxwZXJzLnB5Cmlu
ZGV4IGY4NTcwODNiNDc3NC4uNDNiZGI0MWNmOTgzIDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaGVscGVycy5weQorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaGVscGVy
cy5weQpAQCAtMSw1ICsxLDYgQEAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rp
b24KIAoraW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQgbWF0aAogaW1wb3J0IHN5cwogCkBAIC0x
MDYsNiArMTA3LDIwIEBAIGRlZiBjbGVhcl9hbGxfY29va2llcyhzZXNzaW9uKToKICAgICBzZXNz
aW9uLnRyYW5zcG9ydC5zZW5kKCJERUxFVEUiLCAic2Vzc2lvbi8lcy9jb29raWUiICUgc2Vzc2lv
bi5zZXNzaW9uX2lkKQogCiAKK2RlZiBkZWVwX3VwZGF0ZShzb3VyY2UsIG92ZXJyaWRlcyk6Cisg
ICAgIiIiCisgICAgVXBkYXRlIGEgbmVzdGVkIGRpY3Rpb25hcnkgb3Igc2ltaWxhciBtYXBwaW5n
LgorICAgIE1vZGlmeSBgYHNvdXJjZWBgIGluIHBsYWNlLgorICAgICIiIgorICAgIGZvciBrZXks
IHZhbHVlIGluIG92ZXJyaWRlcy5pdGVtcygpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVl
LCBjb2xsZWN0aW9ucy5NYXBwaW5nKSBhbmQgdmFsdWU6CisgICAgICAgICAgICByZXR1cm5lZCA9
IGRlZXBfdXBkYXRlKHNvdXJjZS5nZXQoa2V5LCB7fSksIHZhbHVlKQorICAgICAgICAgICAgc291
cmNlW2tleV0gPSByZXR1cm5lZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc291cmNlW2tl
eV0gPSBvdmVycmlkZXNba2V5XQorICAgIHJldHVybiBzb3VyY2UKKworCiBkZWYgZG9jdW1lbnRf
ZGltZW5zaW9ucyhzZXNzaW9uKToKICAgICByZXR1cm4gdHVwbGUoc2Vzc2lvbi5leGVjdXRlX3Nj
cmlwdCgiIiIKICAgICAgICAgbGV0IHJlY3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CkBAIC0yMjEsMyArMjM2LDI3IEBAIGRlZiBhdmFpbGFibGVf
c2NyZWVuX3NpemUoc2Vzc2lvbik6CiAgICAgICAgICAgICBzY3JlZW4uYXZhaWxIZWlnaHQgLSBz
Y3JlZW4uYXZhaWxUb3AsCiAgICAgICAgIF07CiAgICAgICAgICIiIikpCisKK2RlZiBmaWx0ZXJf
ZGljdChzb3VyY2UsIGQpOgorICAgICIiIkZpbHRlciBgc291cmNlYCBkaWN0IHRvIG9ubHkgY29u
dGFpbiBzYW1lIGtleXMgYXMgYGRgIGRpY3QuCisKKyAgICA6cGFyYW0gc291cmNlOiBkaWN0aW9u
YXJ5IHRvIGZpbHRlci4KKyAgICA6cGFyYW0gZDogZGljdGlvbmFyeSB3aG9zZSBrZXlzIGRldGVy
bWluZSB0aGUgZmlsdGVyaW5nLgorICAgICIiIgorICAgIHJldHVybiB7azogc291cmNlW2tdIGZv
ciBrIGluIGQua2V5cygpfQorCisKK2RlZiB3YWl0X2Zvcl9uZXdfaGFuZGxlKHNlc3Npb24sIGhh
bmRsZXNfYmVmb3JlKToKKyAgICBkZWYgZmluZF9uZXdfaGFuZGxlKHNlc3Npb24pOgorICAgICAg
ICBuZXdfaGFuZGxlcyA9IGxpc3Qoc2V0KHNlc3Npb24uaGFuZGxlcykgLSBzZXQoaGFuZGxlc19i
ZWZvcmUpKQorICAgICAgICBpZiBuZXdfaGFuZGxlcyBhbmQgbGVuKG5ld19oYW5kbGVzKSA9PSAx
OgorICAgICAgICAgICAgcmV0dXJuIG5ld19oYW5kbGVzWzBdCisgICAgICAgIHJldHVybiBOb25l
CisKKyAgICB3YWl0ID0gUG9sbCgKKyAgICAgICAgc2Vzc2lvbiwKKyAgICAgICAgdGltZW91dD01
LAorICAgICAgICBtZXNzYWdlPSJObyBuZXcgd2luZG93IGhhcyBiZWVuIG9wZW5lZCIpCisKKyAg
ICByZXR1cm4gd2FpdC51bnRpbChmaW5kX25ld19oYW5kbGUpCisKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odG1sL2ZyYW1l
c19ub19iZmNhY2hlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3N1cHBvcnQvaHRtbC9mcmFtZXNfbm9fYmZjYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTk3MjE4N2QyMWZlCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0
bWwvZnJhbWVzX25vX2JmY2FjaGUuaHRtbApAQCAtMCwwICsxLDE4IEBACis8aHRtbD4KKzxoZWFk
PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gcmVtb3Zl
KCkgeworICAgICAgY29uc3QgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ViLWZy
YW1lIik7CisgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRl
Iik7CisgICAgICBkaXYucmVtb3ZlQ2hpbGQoZnJhbWUpOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8
L2hlYWQ+CisKKzwhLS0gdW5sb2FkIGhhbmRsZXIgcHJldmVudHMgdGhlIHBhZ2UgZnJvbSBiZWlu
ZyBhZGRlZCB0byB0aGUgYmZjYWNoZSBvbiBuYXZpZ2F0aW9uIC0tPgorPGJvZHkgb251bmxvYWQ9
IiI+CisgIDxkaXYgaWQ9ImRlbGV0ZSI+CisgICAgPGlmcmFtZSBzcmM9InN1YmZyYW1lLmh0bWwi
IGlkPSJzdWItZnJhbWUiPjwvaWZyYW1lPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3Vw
cG9ydC9odG1sL21ldGEtdXRmOC1hZnRlci0xMDI0LWJ5dGVzLmh0bWwgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9tZXRhLXV0ZjgtYWZ0
ZXItMTAyNC1ieXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uYjU5MTYxNDhiNTU4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvbWV0YS11dGY4LWFmdGVyLTEwMjQt
Ynl0ZXMuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gTG9yZW0g
aXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gTnVsbGEg
ZXUgaWFjdWxpcworbGVjdHVzLiBRdWlzcXVlIHVsbGFtY29ycGVyIGVzdCBhdCBudW5jIGNvbnNl
Y3RldHVyIHN1c2NpcGl0LiBBbGlxdWFtIGltcGVyZGlldAorbWF1cmlzIGluIG51bGxhIG9ybmFy
ZSwgaWQgZWxlaWZlbmQgdHVycGlzIHBsYWNlcmF0LiBWZXN0aWJ1bHVtIGxvcmVtIGxpYmVybywK
K3NvbGxpY2l0dWRpbiBpbiBvcmNpIHN1c2NpcGl0LCBkaWN0dW0gdmVzdGlidWx1bSBudWxsYS4g
VXQgYWMgZXN0IHRpbmNpZHVudCwKK2N1cnN1cyBsZW8gdmVsLCBwZWxsZW50ZXNxdWUgb3JjaS4g
U2VkIG1hdHRpcyBtZXR1cyBhdWd1ZSwgYWMgdGluY2lkdW50IG51bmMKK2xvYm9ydGlzIGluLiBQ
cm9pbiBldSBpcHN1bSBhdWN0b3IgbG9yZW0gc2FnaXR0aXMgbWFsZXN1YWRhLiBWaXZhbXVzIG1h
eGltdXMsCitlcm9zIGZyaW5naWxsYSB2dWxwdXRhdGUgdGluY2lkdW50LCB0ZWxsdXMgdGVsbHVz
IHZpdmVycmEgYXVndWUsIHNlZCBpYWN1bGlzCitpcHN1bSBsYWN1cyBxdWlzIHRlbGx1cy4gTW9y
YmkgZXQgZW5pbSBhdCBhbnRlIG1vbGVzdGllIGltcGVyZGlldCBldCBldCBudWxsYS4KK0FsaXF1
YW0gY29uc2VxdWF0IHJob25jdXMgbWFnbmEsIHZpdGFlIHNvZGFsZXMgdXJuYSBtYXhpbXVzIGVn
ZXQuIE1hdXJpcyBldQorbGFvcmVldCB0dXJwaXMsIGVnZXQgY29uZGltZW50dW0gbGVjdHVzLiBN
YWVjZW5hcyB2ZWwgbG9yZW0gdmVsIG51bGxhIGVmZmljaXR1cgorZXVpc21vZC4gU2VkIGxvYm9y
dGlzIGVuaW0gYWMgb2RpbyBiaWJlbmR1bSwgaWQgdmVoaWN1bGEgbmliaCB0ZW1wdXMuIFBoYXNl
bGx1cworc29kYWxlcywgaXBzdW0gZmV1Z2lhdCBhbGlxdWFtIHZlaGljdWxhLCBkaWFtIGxlbyBj
dXJzdXMgZXN0LCBuZWMgdmFyaXVzIG51bmMKK2ZlbGlzIHZpdGFlIGVzdC4gQ3VyYWJpdHVyIGFj
IHB1cnVzIG5pc2wuIE1hdXJpcyBjb25kaW1lbnR1bSwgbWFnbmEgcXVpcworY29uc2VjdGV0dXIg
YmlhbS4gLS0+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8ZGl2IGlkPSJib2R5Ij48L2Rpdj4K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
c3VwcG9ydC9odHRwX3JlcXVlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHR0cF9yZXF1ZXN0LnB5CmluZGV4IDg5NWQxMzE5YWMwYS4u
MjQyZGM5YzkxODg3IDEwMDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHR0cF9yZXF1ZXN0LnB5CisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9odHRwX3JlcXVlc3QucHkKQEAg
LTEsOSArMSw3IEBACiBpbXBvcnQgY29udGV4dGxpYgogaW1wb3J0IGpzb24KIAotZnJvbSBzaXgg
aW1wb3J0IHRleHRfdHlwZQotCi1mcm9tIHNpeC5tb3Zlcy5odHRwX2NsaWVudCBpbXBvcnQgSFRU
UENvbm5lY3Rpb24KK2Zyb20gaHR0cC5jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9uCiAKIAog
Y2xhc3MgSFRUUFJlcXVlc3Qob2JqZWN0KToKQEAgLTMxLDcgKzI5LDcgQEAgY2xhc3MgSFRUUFJl
cXVlc3Qob2JqZWN0KToKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJGYWlsZWQg
dG8gZW5jb2RlIHJlcXVlc3QgYm9keSBhcyBKU09OOiB7fSIuZm9ybWF0KAogICAgICAgICAgICAg
ICAgICAgICBqc29uLmR1bXBzKGJvZHksIGluZGVudD0yKSkpCiAKLSAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UocGF5bG9hZCwgdGV4dF90eXBlKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uo
cGF5bG9hZCwgc3RyKToKICAgICAgICAgICAgICAgICBwYXlsb2FkID0gYm9keS5lbmNvZGUoInV0
Zi04IikKIAogICAgICAgICBjb25uID0gSFRUUENvbm5lY3Rpb24oc2VsZi5ob3N0LCBzZWxmLnBv
cnQpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N1cHBvcnQvaW1hZ2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL3N1cHBvcnQvaW1hZ2UucHkKaW5kZXggNjE0OWNjY2NiZTMyLi4yZTdhZDhjMTMw
OWIgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVz
dHMvc3VwcG9ydC9pbWFnZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaW1hZ2UucHkKQEAgLTEsMTQgKzEsMTIgQEAKLWltcG9ydCBi
YXNlNjQKIGltcG9ydCBtYXRoCiBpbXBvcnQgc3RydWN0Ci0KLWZyb20gc2l4IGltcG9ydCBlbnN1
cmVfYmluYXJ5Citmcm9tIGJhc2U2NCBpbXBvcnQgZGVjb2RlYnl0ZXMKIAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9wbmcKIAogCiBkZWYgcG5nX2RpbWVuc2lvbnMo
c2NyZWVuc2hvdCk6CiAgICAgYXNzZXJ0X3BuZyhzY3JlZW5zaG90KQotICAgIGltYWdlID0gYmFz
ZTY0LmRlY29kZXN0cmluZyhlbnN1cmVfYmluYXJ5KHNjcmVlbnNob3QpKQorICAgIGltYWdlID0g
ZGVjb2RlYnl0ZXMoc2NyZWVuc2hvdC5lbmNvZGUoKSkKICAgICB3aWR0aCwgaGVpZ2h0ID0gc3Ry
dWN0LnVucGFjaygiPkxMIiwgaW1hZ2VbMTY6MjRdKQogICAgIHJldHVybiBpbnQod2lkdGgpLCBp
bnQoaGVpZ2h0KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3VwcG9ydC9pbmxpbmUucHkKaW5kZXggZDIzY2E3NWQxYzgwLi40
OTRjYTc0ZjkyNjUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3VwcG9ydC9pbmxpbmUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2lubGluZS5weQpAQCAtMSw2ICsxLDYgQEAK
ICIiIkhlbHBlcnMgZm9yIGlubGluaW5nIGV4dHJhY3RzIG9mIGRvY3VtZW50cyBpbiB0ZXN0cy4i
IiIKIAotZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUKK2Zyb20g
dXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUKIAogCiBCT0lMRVJQTEFURVMgPSB7CkBAIC0y
NCwzMSArMjQsOCBAQCBNSU1FX1RZUEVTID0gewogICAgICJ4bWwiOiAidGV4dC94bWwiLAogfQog
Ci1kZWYgaW5saW5lKHNyYywgZG9jdHlwZT0iaHRtbCIsIG1pbWU9Tm9uZSwgY2hhcnNldD1Ob25l
LCAqKmt3YXJncyk6Ci0gICAgIiIiCi0gICAgVGFrZXMgYSBzb3VyY2UgZXh0cmFjdCBhbmQgcHJv
ZHVjZXMgd2VsbC1mb3JtZWQgZG9jdW1lbnRzLgotCi0gICAgQmFzZWQgb24gdGhlIGRlc2lyZWQg
ZG9jdW1lbnQgdHlwZSwgdGhlIGV4dHJhY3QgaXMgZW1iZWRkZWQgd2l0aAotICAgIHByZWRlZmlu
ZWQgYm9pbGVycGxhdGUgaW4gb3JkZXIgdG8gcHJvZHVjZSB3ZWxsLWZvcm1lZCBkb2N1bWVudHMu
Ci0gICAgVGhlIG1lZGlhIHR5cGUgYW5kIGNoYXJhY3RlciBzZXQgbWF5IGFsc28gYmUgaW5kaXZp
ZHVhbGx5IGNvbmZpZ3VyZWQuCi0KLSAgICBUaGlzIGhlbHBlciBmdW5jdGlvbiBvcmlnaW5hbGx5
IHVzZWQgZGF0YSBVUkxzLCBidXQgc2luY2UgdGhlc2UKLSAgICBhcmUgbm90IHVuaXZlcnNhbGx5
IHN1cHBvcnRlZCAob3IgaW5kZWVkIHN0YW5kYXJkaXNlZCEpIGFjcm9zcwotICAgIGJyb3dzZXJz
LCBpdCBub3cgZGVsZWdhdGVzIHRoZSBzZXJ2aW5nIG9mIHRoZSBkb2N1bWVudCB0byB3cHRzZXJ2
ZS4KLSAgICBUaGlzIGZpbGUgYWxzbyBhY3RzIGFzIGEgd3B0c2VydmUgaGFuZGxlciAoc2VlIHRo
ZSBtYWluIGZ1bmN0aW9uCi0gICAgYmVsb3cpIHdoaWNoIGNvbmZpZ3VyZXMgdGhlIEhUVFAgcmVz
cG9uc2UgdXNpbmcgcXVlcnkgcGFyYW1ldGVycy4KLQotICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJu
cyBhIFVSTCB0byB0aGUgd3B0c2VydmUgaGFuZGxlciwgd2hpY2ggaW4gdHVybgotICAgIHdpbGwg
c2VydmUgYW4gSFRUUCByZXNwb25zZSB3aXRoIHRoZSByZXF1ZXN0ZWQgc291cmNlIGV4dHJhY3QK
LSAgICBpbmxpbmVkIGluIGEgd2VsbC1mb3JtZWQgZG9jdW1lbnQsIGFuZCB0aGUgQ29udGVudC1U
eXBlIGhlYWRlcgotICAgIG9wdGlvbmFsbHkgY29uZmlndXJlZCB1c2luZyB0aGUgZGVzaXJlZCBt
ZWRpYSB0eXBlIGFuZCBjaGFyYWN0ZXIgc2V0LgotCi0gICAgQW55IGFkZGl0aW9uYWwga2V5d29y
ZCBhcmd1bWVudHMgYXJlIHBhc3NlZCBvbiB0byB0aGUgYnVpbGRfdXJsCi0gICAgZnVuY3Rpb24u
Ci0gICAgIiIiCi0gICAgZnJvbSAuZml4dHVyZXMgaW1wb3J0IHNlcnZlcl9jb25maWcsIHVybAot
ICAgIGJ1aWxkX3VybCA9IHVybChzZXJ2ZXJfY29uZmlnKCkpCiAKK2RlZiBidWlsZF9pbmxpbmUo
YnVpbGRfdXJsLCBzcmMsIGRvY3R5cGU9Imh0bWwiLCBtaW1lPU5vbmUsIGNoYXJzZXQ9Tm9uZSwg
Kiprd2FyZ3MpOgogICAgIGlmIG1pbWUgaXMgTm9uZToKICAgICAgICAgbWltZSA9IE1JTUVfVFlQ
RVNbZG9jdHlwZV0KICAgICBpZiBjaGFyc2V0IGlzIE5vbmU6CkBAIC02MiwxMSArMzksNiBAQCBk
ZWYgaW5saW5lKHNyYywgZG9jdHlwZT0iaHRtbCIsIG1pbWU9Tm9uZSwgY2hhcnNldD1Ob25lLCAq
Kmt3YXJncyk6CiAgICAgICAgICoqa3dhcmdzKQogCiAKLWRlZiBpZnJhbWUoc3JjLCAqKmt3YXJn
cyk6Ci0gICAgIiIiSW5saW5lcyBkb2N1bWVudCBleHRyYWN0IGFzIHRoZSBzb3VyY2UgZG9jdW1l
bnQgb2YgYW4gPGlmcmFtZT4uIiIiCi0gICAgcmV0dXJuICI8aWZyYW1lIHNyYz0ne30nPjwvaWZy
YW1lPiIuZm9ybWF0KGlubGluZShzcmMsICoqa3dhcmdzKSkKLQotCiBkZWYgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSk6CiAgICAgZG9jID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJkb2MiLCBOb25lKQog
ICAgIG1pbWUgPSByZXF1ZXN0LkdFVC5maXJzdChiIm1pbWUiLCBOb25lKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L21lcmdl
X2RpY3Rpb25hcmllcy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc3VwcG9ydC9tZXJnZV9kaWN0aW9uYXJpZXMucHkKaW5kZXggY2YwNmM5YjQzM2NlLi43
MmYxY2FiMzUyZGUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3VwcG9ydC9tZXJnZV9kaWN0aW9uYXJpZXMucHkKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L21lcmdlX2RpY3Rpb25h
cmllcy5weQpAQCAtMSwxMCArMSwzIEBACi1kZWYgaXRlcml0ZW1zKGQpOgotICAgICIiIkNyZWF0
ZSBhIGtleS12YWx1ZSBpdGVyYXRvciBmb3IgdGhlIGdpdmVuIGRpY3QgaW4gYm90aCBQeXRob24g
Mi54IGFuZAotICAgIFB5dGhvbiAzLnggZW52aXJvbm1lbnRzIiIiCi0gICAgaWYgaGFzYXR0cihk
LCAiaXRlcml0ZW1zIik6Ci0gICAgICAgIHJldHVybiBkLml0ZXJpdGVtcygpCi0gICAgcmV0dXJu
IGQuaXRlbXMoKQotCiBkZWYgbWVyZ2VfZGljdGlvbmFyaWVzKGZpcnN0LCBzZWNvbmQpOgogICAg
ICIiIkdpdmVuIHR3byBkaWN0aW9uYXJpZXMsIGNyZWF0ZSBhIHRoaXJkIHRoYXQgZGVmaW5lcyBh
bGwgc3BlY2lmaWVkCiAgICAga2V5L3ZhbHVlIHBhaXJzLiBUaGlzIG1lcmdlX2RpY3Rpb25hcmll
cyBpcyBwZXJmb3JtZWQgImRlZXBseSIgb24gYW55IG5lc3RlZApAQCAtMTIsNyArNSw3IEBAIGRl
ZiBtZXJnZV9kaWN0aW9uYXJpZXMoZmlyc3QsIHNlY29uZCk6CiAgICAgYW4gZXhjZXB0aW9uIHdp
bGwgYmUgcmFpc2VkLiIiIgogICAgIHJlc3VsdCA9IGRpY3QoZmlyc3QpCiAKLSAgICBmb3Iga2V5
LCB2YWx1ZSBpbiBpdGVyaXRlbXMoc2Vjb25kKToKKyAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzZWNv
bmQuaXRlbXMoKToKICAgICAgICAgaWYga2V5IGluIHJlc3VsdCBhbmQgcmVzdWx0W2tleV0gIT0g
dmFsdWU6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJlc3VsdFtrZXldLCBkaWN0KSBhbmQg
aXNpbnN0YW5jZSh2YWx1ZSwgZGljdCk6CiAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBt
ZXJnZV9kaWN0aW9uYXJpZXMocmVzdWx0W2tleV0sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L3N5bmMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5w
eQppbmRleCBmYTVkMTg1NTBjY2UuLjMwZmY4NzJiNmUxNSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L3N5bmMucHkKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L3N5bmMu
cHkKQEAgLTIsOCArMiw2IEBAIGltcG9ydCBjb2xsZWN0aW9ucwogaW1wb3J0IHN5cwogaW1wb3J0
IHRpbWUKIAotaW1wb3J0IHNpeAotCiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKIAogCkBA
IC0xNDAsNiArMTM4LDYgQEAgY2xhc3MgUG9sbChvYmplY3QpOgogICAgICAgICAgICAgbWVzc2Fn
ZSA9ICJUaW1lZCBvdXQgYWZ0ZXIge30gc2Vjb25kcyIuZm9ybWF0KGVsYXBzZWQpCiAgICAgICAg
ICAgICBpZiBzZWxmLmV4Y19tc2cgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgbWVzc2Fn
ZSA9ICJ7fSB3aXRoIG1lc3NhZ2U6IHt9Ii5mb3JtYXQobWVzc2FnZSwgc2VsZi5leGNfbXNnKQot
ICAgICAgICAgICAgc2l4LnJlcmFpc2Uoc2VsZi5leGNfY2xzLCBzZWxmLmV4Y19jbHMobWVzc2Fn
ZT1tZXNzYWdlKSwgdGIpCisgICAgICAgICAgICByYWlzZSBzZWxmLmV4Y19jbHMobWVzc2FnZT1t
ZXNzYWdlKS53aXRoX3RyYWNlYmFjayh0YikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJl
dHVybiBydgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZl
ci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvY3Jvc3Nfb3JpZ2luLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvY3Jvc3Nfb3JpZ2lu
LnB5CmluZGV4IDkwNWYxZWI1NmRjZS4uNjMzZWJhM2Y0MjQ4IDEwMDY0NAotLS0gYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9jcm9z
c19vcmlnaW4ucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvY3Jvc3Nfb3JpZ2luLnB5CkBAIC0xLDEwICsxLDkgQEAKLWZy
b20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UKK2Zyb20gdXJsbGliLnBh
cnNlIGltcG9ydCB1cmxwYXJzZQogCiBpbXBvcnQgd2ViZHJpdmVyLnByb3RvY29sIGFzIHByb3Rv
Y29sCiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfc3VjY2Vzcwog
ZnJvbSB0ZXN0cy5zdXBwb3J0LmhlbHBlcnMgaW1wb3J0IGRvY3VtZW50X2xvY2F0aW9uCi1mcm9t
IHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJhbWUsIGlubGluZQogCiAKICIiIgpAQCAt
MjcsNyArMjYsNyBAQCBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGZyYW1lKToKICAgICAg
ICAgc2Vzc2lvbj1zZXNzaW9uKQogCiAKLWRlZiB0ZXN0X2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vz
c2lvbiwgc2VydmVyX2NvbmZpZyk6CitkZWYgdGVzdF9jcm9zc19vcmlnaW5faWZyYW1lKHNlc3Np
b24sIHNlcnZlcl9jb25maWcsIGlubGluZSwgaWZyYW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlu
bGluZShpZnJhbWUoIiIsIGRvbWFpbj0iYWx0IikpCiAgICAgZnJhbWVfZWxlbWVudCA9IHNlc3Np
b24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKIApAQCAtMzgsNyArMzcsNyBAQCBkZWYg
dGVzdF9jcm9zc19vcmlnaW5faWZyYW1lKHNlc3Npb24sIHNlcnZlcl9jb25maWcpOgogICAgIGFz
c2VydCBwYXJzZV9yZXN1bHQubmV0bG9jICE9IHNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJd
CiAKIAotZGVmIHRlc3RfbmVzdGVkX2Nyb3NzX29yaWdpbl9pZnJhbWUoc2Vzc2lvbiwgc2VydmVy
X2NvbmZpZyk6CitkZWYgdGVzdF9uZXN0ZWRfY3Jvc3Nfb3JpZ2luX2lmcmFtZShzZXNzaW9uLCBz
ZXJ2ZXJfY29uZmlnLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgZnJhbWUyID0gaWZyYW1lKCIiLCBk
b21haW49ImFsdCIsIHN1YmRvbWFpbj0id3d3IikKICAgICBmcmFtZTEgPSBpZnJhbWUoZnJhbWUy
KQogICAgIHRvcF9kb2MgPSBpbmxpbmUoZnJhbWUxLCBkb21haW49ImFsdCIpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19m
cmFtZS9zd2l0Y2gucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rl
c3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2gucHkKaW5kZXggNzA1ZmE3OWE1ZGUwLi45Y2NhYjJj
NmM5NmQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2gucHkKQEAgLTIs
MTEgKzIsMTAgQEAgaW1wb3J0IHB5dGVzdAogCiBpbXBvcnQgd2ViZHJpdmVyLnByb3RvY29sIGFz
IHByb3RvY29sCiAKLWZyb20gd2ViZHJpdmVyIGltcG9ydCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VF
eGNlcHRpb24KK2Zyb20gd2ViZHJpdmVyIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCiBm
cm9tIHdlYmRyaXZlci50cmFuc3BvcnQgaW1wb3J0IFJlc3BvbnNlCiAKIGZyb20gdGVzdHMuc3Vw
cG9ydC5hc3NlcnRzIGltcG9ydCBhc3NlcnRfZXJyb3IsIGFzc2VydF9zYW1lX2VsZW1lbnQsIGFz
c2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUsIGlm
cmFtZQogCiAKIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpOgpAQCAtMTcsMTgg
KzE2LDEzIEBAIGRlZiBzd2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgZnJhbWUpOgogICAgICAgICBz
ZXNzaW9uPXNlc3Npb24pCiAKIAotZGVmIGZyYW1lc2V0KCpkb2NzKToKLSAgICBmcmFtZXMgPSBs
aXN0KG1hcChsYW1iZGEgZG9jOiAiPGZyYW1lIHNyYz0ne30nPjwvZnJhbWU+Ii5mb3JtYXQoaW5s
aW5lKGRvYykpLCBkb2NzKSkKLSAgICByZXR1cm4gIjxmcmFtZXNldCByb3dzPSd7fSc+XG57fTwv
ZnJhbWVzZXQ+Ii5mb3JtYXQobGVuKGZyYW1lcykgKiAiKiwiLCAiXG4iLmpvaW4oZnJhbWVzKSkK
LQotCiBkZWYgdGVzdF9udWxsX3BhcmFtZXRlcl92YWx1ZShzZXNzaW9uLCBodHRwKToKICAgICBw
YXRoID0gIi9zZXNzaW9uL3tzZXNzaW9uX2lkfS9mcmFtZSIuZm9ybWF0KCoqdmFycyhzZXNzaW9u
KSkKICAgICB3aXRoIGh0dHAucG9zdChwYXRoLCBOb25lKSBhcyByZXNwb25zZToKICAgICAgICAg
YXNzZXJ0X2Vycm9yKFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSksICJpbnZhbGlkIGFyZ3Vt
ZW50IikKIAogCi1kZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24pOgorZGVmIHRl
c3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCI8cD5mb28iKSkKICAgICBmcmFtZSA9IHNlc3Npb24u
ZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKIApAQCAtNDIsNyArMzYsMTYgQEAgZGVmIHRl
c3RfbnVsbF9yZXNwb25zZV92YWx1ZShzZXNzaW9uKToKICAgICAwLAogICAgIHsiZWxlbWVudC02
MDY2LTExZTQtYTUyZS00ZjczNTQ2NmNlY2YiOiAiZm9vIn0sCiBdKQotZGVmIHRlc3Rfbm9fdG9w
X2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX3dpbmRvdywgaWQpOgorZGVmIHRlc3Rf
bm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgdXJsLCBpZCk6CisgICAgc2Vzc2lvbi53
aW5kb3dfaGFuZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKKworICAgIHNlc3Npb24udXJsID0g
dXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9mcmFtZXMuaHRtbCIpCisKKyAgICBz
dWJmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoIiNzdWItZnJhbWUiLCBhbGw9RmFsc2UpCisgICAg
c2Vzc2lvbi5zd2l0Y2hfZnJhbWUoc3ViZnJhbWUpCisKKyAgICBzZXNzaW9uLndpbmRvdy5jbG9z
ZSgpCisKICAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBpZCkKICAgICBh
c3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKQEAgLTYxLDEzICs2NCwx
OCBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNlc3Npb24sIGNsb3NlZF9mcmFtZSwg
aWQpOgogICAgICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAK
IAorZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dF93aGVuX2FscmVhZHlfdG9wX2xldmVsKHNl
c3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNl
c3Npb24sIE5vbmUpCisgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ci
KQorCisKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbImZvbyIsIFRydWUsIFtd
LCB7fV0pCiBkZWYgdGVzdF9mcmFtZV9pZF9pbnZhbGlkX3R5cGVzKHNlc3Npb24sIHZhbHVlKToK
ICAgICByZXNwb25zZSA9IHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCB2YWx1ZSkKICAgICBhc3Nl
cnRfZXJyb3IocmVzcG9uc2UsICJpbnZhbGlkIGFyZ3VtZW50IikKIAogCi1kZWYgdGVzdF9mcmFt
ZV9pZF9udWxsKHNlc3Npb24pOgorZGVmIHRlc3RfZnJhbWVfaWRfbnVsbChzZXNzaW9uLCBpbmxp
bmUsIGlmcmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCJ7fTxkaXY+Zm9v
Ii5mb3JtYXQoaWZyYW1lKCI8cD5iYXIiKSkpKQogCiAgICAgZnJhbWUxID0gc2Vzc2lvbi5maW5k
LmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQpAQCAtODIsMTAgKzkwLDI3IEBAIGRlZiB0ZXN0X2Zy
YW1lX2lkX251bGwoc2Vzc2lvbik6CiAgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vz
c2lvbiwgTm9uZSkKICAgICBhc3NlcnRfc3VjY2VzcyhyZXNwb25zZSkKIAotICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgorICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKICAgICAgICAgZWxlbWVudDIudGV4
dAotICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24p
OgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKICAgICAg
ICAgZWxlbWVudDEudGV4dAogCiAgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUi
LCBhbGw9RmFsc2UpCiAgICAgYXNzZXJ0X3NhbWVfZWxlbWVudChzZXNzaW9uLCBmcmFtZSwgZnJh
bWUxKQorCisKK2RlZiB0ZXN0X2ZpbmRfZWxlbWVudF93aGlsZV9mcmFtZV9pc19zdGlsbF9sb2Fk
aW5nKHNlc3Npb24sIHVybCk6CisgICAgc2Vzc2lvbi50aW1lb3V0cy5pbXBsaWNpdCA9IDUKKwor
ICAgIGZyYW1lX3VybCA9IHVybCgiL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L2h0bWwvc3ViZnJh
bWUuaHRtbD9waXBlPXRyaWNrbGUoZDIpIikKKyAgICBwYWdlX3VybCA9ICI8aHRtbD48Ym9keT48
aWZyYW1lIHNyYz0ne30nPjwvaWZyYW1lPjwvYm9keT48L2h0bWw+Ii5mb3JtYXQoZnJhbWVfdXJs
KQorCisgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgImRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5pbm5lckhUTUwgPSBhcmd1bWVudHNbMF07IiwgYXJncz1bcGFnZV91cmxdKQor
CisgICAgZnJhbWUxID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQorICAg
IHNlc3Npb24uc3dpdGNoX2ZyYW1lKGZyYW1lMSkKKworICAgICMgRW5zdXJlIHRoYXQgdGhlIGlz
IGFsd2F5cyBhIHZhbGlkIGJyb3dzaW5nIGNvbnRleHQsIGFuZCB0aGUgZWxlbWVudAorICAgICMg
Y2FuIGJlIGZvdW5kIGV2ZW50dWFsbHkuCisgICAgc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIs
IGFsbD1GYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF9udW1iZXIucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hf
bnVtYmVyLnB5CmluZGV4IDc3NTI5NTQ0Njc5YS4uYzg4NThlNzdmZjEwIDEwMDY0NAotLS0gYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFt
ZS9zd2l0Y2hfbnVtYmVyLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJk
cml2ZXIvdGVzdHMvc3dpdGNoX3RvX2ZyYW1lL3N3aXRjaF9udW1iZXIucHkKQEAgLTMsNyArMyw2
IEBAIGltcG9ydCBweXRlc3QKIGltcG9ydCB3ZWJkcml2ZXIucHJvdG9jb2wgYXMgcHJvdG9jb2wK
IAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0
X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZSwgaWZyYW1l
CiAKIAogZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CkBAIC0yMSw3ICsyMCw3
IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9vdXRfb2ZfYm91bmRzKHNlc3Npb24sIHZhbHVl
KToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImluZGV4IiwgWzEsIDY1NTM1XSkKLWRl
ZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9vdXRfb2ZfYm91bmRzKHNlc3Npb24sIGluZGV4
KToKK2RlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9pbmRleF9vdXRfb2ZfYm91bmRzKHNlc3Npb24s
IGlubGluZSwgaWZyYW1lLCBpbmRleCk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1l
KCI8cD5mb28iKSkKIAogICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1lKHNlc3Npb24sIGlu
ZGV4KQpAQCAtMjksNyArMjgsNyBAQCBkZWYgdGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXhfb3V0
X29mX2JvdW5kcyhzZXNzaW9uLCBpbmRleCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJpbmRleCwgdmFsdWUiLCBbWzAsICJmb28iXSwgWzEsICJiYXIiXV0pCi1kZWYgdGVzdF9mcmFt
ZV9pZF9udW1iZXJfaW5kZXgoc2Vzc2lvbiwgaW5kZXgsIHZhbHVlKToKK2RlZiB0ZXN0X2ZyYW1l
X2lkX251bWJlcl9pbmRleChzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSwgaW5kZXgsIHZhbHVlKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgie317fSIuZm9ybWF0KGlmcmFtZSgiPHA+Zm9vIiks
IGlmcmFtZSgiPHA+YmFyIikpKQogCiAgICAgcmVzcG9uc2UgPSBzd2l0Y2hfdG9fZnJhbWUoc2Vz
c2lvbiwgaW5kZXgpCkBAIC0zOSw3ICszOCw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX251bWJlcl9p
bmRleChzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgogICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0g
dmFsdWUKIAogCi1kZWYgdGVzdF9mcmFtZV9pZF9udW1iZXJfaW5kZXhfbmVzdGVkKHNlc3Npb24p
OgorZGVmIHRlc3RfZnJhbWVfaWRfbnVtYmVyX2luZGV4X25lc3RlZChzZXNzaW9uLCBpbmxpbmUs
IGlmcmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1lKCJ7fTxwPmZvbyIuZm9y
bWF0KGlmcmFtZSgiPHA+YmFyIikpKSkKIAogICAgIGV4cGVjdGVkX3RleHQgPSBbImZvbyIsICJi
YXIiXQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX3dlYmVsZW1lbnQucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRjaF90b19mcmFtZS9zd2l0Y2hfd2Vi
ZWxlbWVudC5weQppbmRleCA4OTQ4MGI2NmIzYTYuLmEzMGQyZDhkMzM5YyAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJh
bWUvc3dpdGNoX3dlYmVsZW1lbnQucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fZnJhbWUvc3dpdGNoX3dlYmVsZW1lbnQucHkKQEAg
LTMsNyArMyw2IEBAIGltcG9ydCBweXRlc3QKIGltcG9ydCB3ZWJkcml2ZXIucHJvdG9jb2wgYXMg
cHJvdG9jb2wKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJv
ciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZSwgaWZyYW1lCiAKIAogZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CkBAIC0x
NCwxNCArMTMsMTQgQEAgZGVmIHN3aXRjaF90b19mcmFtZShzZXNzaW9uLCBmcmFtZSk6CiAgICAg
ICAgIHNlc3Npb249c2Vzc2lvbikKIAogCi1kZWYgZnJhbWVzZXQoKmRvY3MpOgorZGVmIGZyYW1l
c2V0KGlubGluZSwgKmRvY3MpOgogICAgIGZyYW1lcyA9IGxpc3QobWFwKGxhbWJkYSBkb2M6ICI8
ZnJhbWUgc3JjPSd7fSc+PC9mcmFtZT4iLmZvcm1hdChpbmxpbmUoZG9jKSksIGRvY3MpKQogICAg
IHJldHVybiAiPGZyYW1lc2V0IHJvd3M9J3t9Jz5cbnt9PC9mcmFtZXNldD4iLmZvcm1hdChsZW4o
ZnJhbWVzKSAqICIqLCIsICJcbiIuam9pbihmcmFtZXMpKQogCiAKIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgiaW5kZXgsIHZhbHVlIiwgW1swLCAiZm9vIl0sIFsxLCAiYmFyIl1dKQotZGVmIHRl
c3RfZnJhbWVfaWRfd2ViZWxlbWVudF9mcmFtZShzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgotICAg
IHNlc3Npb24udXJsID0gaW5saW5lKGZyYW1lc2V0KCI8cD5mb28iLCAiPHA+YmFyIikpCitkZWYg
dGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2ZyYW1lKHNlc3Npb24sIGlubGluZSwgaW5kZXgsIHZh
bHVlKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZShmcmFtZXNldChpbmxpbmUsICI8cD5mb28i
LCAiPHA+YmFyIikpCiAgICAgZnJhbWVzID0gc2Vzc2lvbi5maW5kLmNzcygiZnJhbWUiKQogICAg
IGFzc2VydCBsZW4oZnJhbWVzKSA9PSAyCiAKQEAgLTMzLDcgKzMyLDcgQEAgZGVmIHRlc3RfZnJh
bWVfaWRfd2ViZWxlbWVudF9mcmFtZShzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgogCiAKIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiaW5kZXgsIHZhbHVlIiwgW1swLCAiZm9vIl0sIFsxLCAiYmFy
Il1dKQotZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9pZnJhbWUoc2Vzc2lvbiwgaW5kZXgs
IHZhbHVlKToKK2RlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfaWZyYW1lKHNlc3Npb24sIGlu
bGluZSwgaWZyYW1lLCBpbmRleCwgdmFsdWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJ7
fXt9Ii5mb3JtYXQoaWZyYW1lKCI8cD5mb28iKSwgaWZyYW1lKCI8cD5iYXIiKSkpCiAgICAgZnJh
bWVzID0gc2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIikKICAgICBhc3NlcnQgbGVuKGZyYW1lcykg
PT0gMgpAQCAtNDUsNyArNDQsNyBAQCBkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X2lmcmFt
ZShzZXNzaW9uLCBpbmRleCwgdmFsdWUpOgogICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gdmFs
dWUKIAogCi1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25lc3RlZChzZXNzaW9uKToKK2Rl
ZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbmVzdGVkKHNlc3Npb24sIGlubGluZSwgaWZyYW1l
KToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoInt9PHA+Zm9vIi5mb3JtYXQoaWZy
YW1lKCI8cD5iYXIiKSkpKQogCiAgICAgZXhwZWN0ZWRfdGV4dCA9IFsiZm9vIiwgImJhciJdCkBA
IC01OCw3ICs1Nyw3IEBAIGRlZiB0ZXN0X2ZyYW1lX2lkX3dlYmVsZW1lbnRfbmVzdGVkKHNlc3Np
b24pOgogICAgICAgICBhc3NlcnQgZWxlbWVudC50ZXh0ID09IGV4cGVjdGVkX3RleHRbaV0KIAog
Ci1kZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X25vX2VsZW1lbnRfcmVmZXJlbmNlKHNlc3Np
b24pOgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9ub19lbGVtZW50X3JlZmVyZW5jZShz
ZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoaWZyYW1l
KCI8cD5mb28iKSkKICAgICBmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1G
YWxzZSkKICAgICBmcmFtZS5pZCA9ICJiYXIiCkBAIC02Nyw3ICs2Niw3IEBAIGRlZiB0ZXN0X2Zy
YW1lX2lkX3dlYmVsZW1lbnRfbm9fZWxlbWVudF9yZWZlcmVuY2Uoc2Vzc2lvbik6CiAgICAgYXNz
ZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCBlbGVtZW50IikKIAogCi1kZWYgdGVzdF9mcmFt
ZV9pZF93ZWJlbGVtZW50X3N0YWxlX3JlZmVyZW5jZShzZXNzaW9uKToKK2RlZiB0ZXN0X2ZyYW1l
X2lkX3dlYmVsZW1lbnRfc3RhbGVfcmVmZXJlbmNlKHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToK
ICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZyYW1lID0g
c2Vzc2lvbi5maW5kLmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQogCkBAIC03Nyw5ICs3NiwyNyBA
QCBkZWYgdGVzdF9mcmFtZV9pZF93ZWJlbGVtZW50X3N0YWxlX3JlZmVyZW5jZShzZXNzaW9uKToK
ICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpCiAK
IAotZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9ub19mcmFtZV9lbGVtZW50KHNlc3Npb24p
OgorZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9ub19mcmFtZV9lbGVtZW50KHNlc3Npb24s
IGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxwPmZvbyIpCiAgICAgbm9fZnJh
bWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogCiAgICAgcmVzcG9uc2UgPSBz
d2l0Y2hfdG9fZnJhbWUoc2Vzc2lvbiwgbm9fZnJhbWUpCiAgICAgYXNzZXJ0X2Vycm9yKHJlc3Bv
bnNlLCAibm8gc3VjaCBmcmFtZSIpCisKKworZGVmIHRlc3RfZnJhbWVfaWRfd2ViZWxlbWVudF9j
bG9uZWRfaW50b19pZnJhbWUoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgorICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKGlmcmFtZSgiPGJvZHk+PHA+aGVsbG8gd29ybGQ8L3A+PC9ib2R5PiIpKQor
CisgICAgc2Vzc2lvbi5leGVjdXRlX3NjcmlwdCgiIiIKKyAgICAgICAgY29uc3QgaWZyYW1lID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzBdOworICAgICAgICBjb25z
dCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgZGl2LmlubmVy
SFRNTCA9ICdJIGFtIGEgZGl2IGNyZWF0ZWQgaW4gdG9wIHdpbmRvdyBhbmQgYXBwZW5kZWQgaW50
byB0aGUgaWZyYW1lJzsKKyAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChkaXYpOworICAgICIiIikKKworICAgIGZyYW1lID0gc2Vzc2lvbi5maW5k
LmNzcygiaWZyYW1lIiwgYWxsPUZhbHNlKQorICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX2ZyYW1l
KHNlc3Npb24sIGZyYW1lKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgZWxl
bWVudCA9IHNlc3Npb24uZmluZC5jc3MoImRpdiIsIGFsbD1GYWxzZSkKKyAgICBhc3NlcnQgZWxl
bWVudC50ZXh0ID09ICJJIGFtIGEgZGl2IGNyZWF0ZWQgaW4gdG9wIHdpbmRvdyBhbmQgYXBwZW5k
ZWQgaW50byB0aGUgaWZyYW1lIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lL3N3aXRjaC5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX3BhcmVu
dF9mcmFtZS9zd2l0Y2gucHkKaW5kZXggZWYyZGE0NWYxNjI1Li45YzZkYjhkMmNkNjEgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNo
X3RvX3BhcmVudF9mcmFtZS9zd2l0Y2gucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9zd2l0Y2hfdG9fcGFyZW50X2ZyYW1lL3N3aXRjaC5weQpAQCAt
MSw5ICsxLDggQEAKIGltcG9ydCBweXRlc3QKIAotZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IFN0YWxl
RWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbgorZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24KIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2Vy
dF9lcnJvciwgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0
IGlubGluZSwgaWZyYW1lCiAKIAogZGVmIHN3aXRjaF90b19wYXJlbnRfZnJhbWUoc2Vzc2lvbik6
CkBAIC0xMSw3ICsxMCw3IEBAIGRlZiBzd2l0Y2hfdG9fcGFyZW50X2ZyYW1lKHNlc3Npb24pOgog
ICAgICAgICAiUE9TVCIsICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9mcmFtZS9wYXJlbnQiLmZvcm1h
dCgqKnZhcnMoc2Vzc2lvbikpKQogCiAKLWRlZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vz
c2lvbik6CitkZWYgdGVzdF9udWxsX3Jlc3BvbnNlX3ZhbHVlKHNlc3Npb24sIGlubGluZSwgaWZy
YW1lKToKICAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJhbWUoIjxwPmZvbyIpKQogICAgIGZy
YW1lX2VsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCiAgICAg
c2Vzc2lvbi5zd2l0Y2hfZnJhbWUoZnJhbWVfZWxlbWVudCkKQEAgLTIxLDcgKzIwLDE2IEBAIGRl
ZiB0ZXN0X251bGxfcmVzcG9uc2VfdmFsdWUoc2Vzc2lvbik6CiAgICAgYXNzZXJ0IHZhbHVlIGlz
IE5vbmUKIAogCi1kZWYgdGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9z
ZWRfd2luZG93KToKK2RlZiB0ZXN0X25vX3RvcF9icm93c2luZ19jb250ZXh0KHNlc3Npb24sIHVy
bCk6CisgICAgc2Vzc2lvbi53aW5kb3dfaGFuZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KCkKKwor
ICAgIHNlc3Npb24udXJsID0gdXJsKCIvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvaHRtbC9mcmFt
ZXMuaHRtbCIpCisKKyAgICBzdWJmcmFtZSA9IHNlc3Npb24uZmluZC5jc3MoIiNzdWItZnJhbWUi
LCBhbGw9RmFsc2UpCisgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoc3ViZnJhbWUpCisKKyAgICBz
ZXNzaW9uLndpbmRvdy5jbG9zZSgpCisKICAgICByZXNwb25zZSA9IHN3aXRjaF90b19wYXJlbnRf
ZnJhbWUoc2Vzc2lvbikKICAgICBhc3NlcnRfZXJyb3IocmVzcG9uc2UsICJubyBzdWNoIHdpbmRv
dyIpCiAKQEAgLTQ5LDE5ICs1NywyOSBAQCBkZWYgdGVzdF9ub19icm93c2luZ19jb250ZXh0KHNl
c3Npb24sIGNsb3NlZF9mcmFtZSk6CiAgICAgc2Vzc2lvbi5maW5kLmNzcygiI2RlbGV0ZSIsIGFs
bD1GYWxzZSkKIAogCi1kZWYgdGVzdF9zdGFsZV9lbGVtZW50X2Zyb21faWZyYW1lKHNlc3Npb24p
OgorZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dF93aGVuX2FscmVhZHlfdG9wX2xldmVsKHNl
c3Npb24sIGNsb3NlZF93aW5kb3cpOgorICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3BhcmVudF9m
cmFtZShzZXNzaW9uKQorICAgIGFzc2VydF9lcnJvcihyZXNwb25zZSwgIm5vIHN1Y2ggd2luZG93
IikKKworCitkZWYgdGVzdF9zd2l0Y2hfZnJvbV9pZnJhbWUoc2Vzc2lvbiwgaW5saW5lLCBpZnJh
bWUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKGlmcmFtZSgiPHA+Zm9vIikpCiAgICAgZnJh
bWVfZWxlbWVudCA9IHNlc3Npb24uZmluZC5jc3MoImlmcmFtZSIsIGFsbD1GYWxzZSkKICAgICBz
ZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZV9lbGVtZW50KQotICAgIHN0YWxlX2VsZW1lbnQgPSBz
ZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZp
bmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogCiAgICAgcmVzdWx0ID0gc3dpdGNoX3RvX3BhcmVudF9m
cmFtZShzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCkKIAotICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgotICAgICAgICBzdGFs
ZV9lbGVtZW50LnRleHQKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2Vw
dGlvbik6CisgICAgICAgIGVsZW1lbnQudGV4dAorCiAKK2RlZiB0ZXN0X3N3aXRjaF9mcm9tX3Rv
cF9sZXZlbChzZXNzaW9uLCBpbmxpbmUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cD5m
b28iKQorICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQogCi1k
ZWYgdGVzdF9zd2l0Y2hfZnJvbV90b3BfbGV2ZWwoc2Vzc2lvbik6CiAgICAgcmVzdWx0ID0gc3dp
dGNoX3RvX3BhcmVudF9mcmFtZShzZXNzaW9uKQogICAgIGFzc2VydF9zdWNjZXNzKHJlc3VsdCkK
KworICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gImZvbyIKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0
Y2gucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3aXRj
aF90b193aW5kb3cvc3dpdGNoLnB5CmluZGV4IDk4YjRiZWUxNmUyZC4uMjhkNDMyYThiNWI0IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3N3
aXRjaF90b193aW5kb3cvc3dpdGNoLnB5CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWJkcml2ZXIvdGVzdHMvc3dpdGNoX3RvX3dpbmRvdy9zd2l0Y2gucHkKQEAgLTEsMyArMSw2
IEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gd2ViZHJpdmVyLmVycm9yIGltcG9ydCBOb1N1Y2hF
bGVtZW50RXhjZXB0aW9uLCBOb1N1Y2hBbGVydEV4Y2VwdGlvbgogZnJvbSB3ZWJkcml2ZXIudHJh
bnNwb3J0IGltcG9ydCBSZXNwb25zZQogCiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBv
cnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwpAQCAtNTEsMyArNTQsNDcgQEAgZGVmIHRl
c3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCB1cmwpOgogICAgIGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQogCiAgICAgYXNzZXJ0IHNlc3Npb24ud2luZG93X2hhbmRsZSA9PSBuZXdfaGFu
ZGxlCisKKworZGVmIHRlc3Rfc3dpdGNoX3RvX3dpbmRvd19zZXRzX3RvcF9sZXZlbF9jb250ZXh0
KHNlc3Npb24sIGlubGluZSwgaWZyYW1lKToKKyAgICBzZXNzaW9uLnVybCA9IGlubGluZShpZnJh
bWUoIjxwPmZvbyIpKQorCisgICAgZnJhbWUgPSBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBh
bGw9RmFsc2UpCisgICAgc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoZnJhbWUpCisgICAgc2Vzc2lvbi5m
aW5kLmNzcygicCIsIGFsbD1GYWxzZSkKKworICAgIHJlc3BvbnNlID0gc3dpdGNoX3RvX3dpbmRv
dyhzZXNzaW9uLCBzZXNzaW9uLndpbmRvd19oYW5kbGUpCisgICAgYXNzZXJ0X3N1Y2Nlc3MocmVz
cG9uc2UpCisKKyAgICBzZXNzaW9uLmZpbmQuY3NzKCJpZnJhbWUiLCBhbGw9RmFsc2UpCisKKwor
ZGVmIHRlc3RfZWxlbWVudF9ub3RfZm91bmRfYWZ0ZXJfdGFiX3N3aXRjaChzZXNzaW9uLCBpbmxp
bmUpOgorICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8cCBpZD0nYSc+Zm9vIikKKyAgICBwYXJh
Z3JhcGggPSBzZXNzaW9uLmZpbmQuY3NzKCJwIiwgYWxsPUZhbHNlKQorCisgICAgc2Vzc2lvbi53
aW5kb3dfaGFuZGxlID0gc2Vzc2lvbi5uZXdfd2luZG93KHR5cGVfaGludD0idGFiIikKKworICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgcGFy
YWdyYXBoLmF0dHJpYnV0ZSgiaWQiKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGlh
bG9nX3R5cGUiLCBbImFsZXJ0IiwgImNvbmZpcm0iLCAicHJvbXB0Il0pCitkZWYgdGVzdF9maW5k
c19leGlzaW5nX3VzZXJfcHJvbXB0X2FmdGVyX3RhYl9zd2l0Y2goc2Vzc2lvbiwgZGlhbG9nX3R5
cGUpOgorICAgIG9yaWdpbmFsX2hhbmRsZSA9IHNlc3Npb24ud2luZG93X2hhbmRsZQorICAgIG5l
d19oYW5kbGUgPSBzZXNzaW9uLm5ld193aW5kb3coKQorCisgICAgc2Vzc2lvbi5leGVjdXRlX3Nj
cmlwdCgie30oJ2ZvbycpOyIuZm9ybWF0KGRpYWxvZ190eXBlKSkKKworICAgIHJlc3BvbnNlID0g
c3dpdGNoX3RvX3dpbmRvdyhzZXNzaW9uLCBuZXdfaGFuZGxlKQorICAgIGFzc2VydF9zdWNjZXNz
KHJlc3BvbnNlKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEFsZXJ0RXhjZXB0aW9u
KToKKyAgICAgICAgc2Vzc2lvbi5hbGVydC50ZXh0CisKKyAgICBzZXNzaW9uLndpbmRvdy5jbG9z
ZSgpCisKKyAgICByZXNwb25zZSA9IHN3aXRjaF90b193aW5kb3coc2Vzc2lvbiwgb3JpZ2luYWxf
aGFuZGxlKQorICAgIGFzc2VydF9zdWNjZXNzKHJlc3BvbnNlKQorCisgICAgc2Vzc2lvbi5hbGVy
dC5hY2NlcHQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRy
aXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9pZnJhbWUucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90
L2lmcmFtZS5weQppbmRleCA4M2Y1NWRlZmY3NTMuLmU3ZjFiMGM4MDUzZCAxMDA2NDQKLS0tIGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRf
c2NyZWVuc2hvdC9pZnJhbWUucHkKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dl
YmRyaXZlci90ZXN0cy90YWtlX2VsZW1lbnRfc2NyZWVuc2hvdC9pZnJhbWUucHkKQEAgLTIsNyAr
Miw2IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0
IGFzc2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaW1hZ2UgaW1wb3J0IHBuZ19kaW1l
bnNpb25zCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJhbWUsIGlubGluZQog
CiBmcm9tIC4gaW1wb3J0IGVsZW1lbnRfZGltZW5zaW9ucwogCkBAIC02OCw3ICs2Nyw3IEBAIGRl
ZiB0YWtlX2VsZW1lbnRfc2NyZWVuc2hvdChzZXNzaW9uLCBlbGVtZW50X2lkKToKICAgICApCiAK
IAotZGVmIHRlc3RfZnJhbWVfZWxlbWVudChzZXNzaW9uKToKK2RlZiB0ZXN0X2ZyYW1lX2VsZW1l
bnQoc2Vzc2lvbiwgaW5saW5lLCBpZnJhbWUpOgogICAgICMgQ3JlYXRlIGEgcmVmZXJlbmNlIGVs
ZW1lbnQgd2hpY2ggbG9va3MgZXhhY3RseSBsaWtlIHRoZSBmcmFtZSdzIGNvbnRlbnQKICAgICBz
ZXNzaW9uLnVybCA9IGlubGluZSgiezB9ezF9Ii5mb3JtYXQoUkVGRVJFTkNFX1NUWUxFLCBSRUZF
UkVOQ0VfQ09OVEVOVCkpCiAKQEAgLTk3LDcgKzk2LDcgQEAgZGVmIHRlc3RfZnJhbWVfZWxlbWVu
dChzZXNzaW9uKToKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRvbWFpbiIsIFsiIiwg
ImFsdCJdLCBpZHM9WyJzYW1lX29yaWdpbiIsICJjcm9zc19vcmlnaW4iXSkKLWRlZiB0ZXN0X3Nv
dXJjZV9vcmlnaW4oc2Vzc2lvbiwgdXJsLCBkb21haW4pOgorZGVmIHRlc3Rfc291cmNlX29yaWdp
bihzZXNzaW9uLCBpbmxpbmUsIGlmcmFtZSwgZG9tYWluKToKICAgICAjIENyZWF0ZSBhIHJlZmVy
ZW5jZSBlbGVtZW50IHdoaWNoIGxvb2tzIGV4YWN0bHkgbGlrZSB0aGUgaWZyYW1lCiAgICAgc2Vz
c2lvbi51cmwgPSBpbmxpbmUoInswfXsxfSIuZm9ybWF0KFJFRkVSRU5DRV9TVFlMRSwgUkVGRVJF
TkNFX0NPTlRFTlQpKQogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L3NjcmVlbnNob3QucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9z
Y3JlZW5zaG90L3NjcmVlbnNob3QucHkKaW5kZXggNmZmNjM5NmVkYjJhLi40ZDNiZmIwZTVjNjgg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
dGFrZV9lbGVtZW50X3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weQorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2VfZWxlbWVudF9zY3JlZW5zaG90L3Nj
cmVlbnNob3QucHkKQEAgLTEsNiArMSw1IEBACiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBp
bXBvcnQgYXNzZXJ0X2Vycm9yLCBhc3NlcnRfc3VjY2VzcwogZnJvbSB0ZXN0cy5zdXBwb3J0Lmlt
YWdlIGltcG9ydCBwbmdfZGltZW5zaW9ucwotZnJvbSB0ZXN0cy5zdXBwb3J0LmlubGluZSBpbXBv
cnQgaW5saW5lCiAKIGZyb20gLiBpbXBvcnQgZWxlbWVudF9kaW1lbnNpb25zCiAKQEAgLTIwLDcg
KzE5LDcgQEAgZGVmIHRlc3Rfbm9fdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2Vk
X3dpbmRvdyk6CiAgICAgYXNzZXJ0X2Vycm9yKHJlc3BvbnNlLCAibm8gc3VjaCB3aW5kb3ciKQog
CiAKLWRlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lKToK
K2RlZiB0ZXN0X25vX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbiwgY2xvc2VkX2ZyYW1lLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0g
c2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCiAKQEAgLTMwLDcgKzI5LDcgQEAg
ZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgogICAg
IGFzc2VydCBwbmdfZGltZW5zaW9ucyhzY3JlZW5zaG90KSA9PSBlbGVtZW50X2RpbWVuc2lvbnMo
c2Vzc2lvbiwgZWxlbWVudCkKIAogCi1kZWYgdGVzdF9zdGFsZShzZXNzaW9uKToKK2RlZiB0ZXN0
X3N0YWxlKHNlc3Npb24sIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1
dD4iKQogICAgIGVsZW1lbnQgPSBzZXNzaW9uLmZpbmQuY3NzKCJpbnB1dCIsIGFsbD1GYWxzZSkK
ICAgICBzZXNzaW9uLnJlZnJlc2goKQpAQCAtMzksNyArMzgsNyBAQCBkZWYgdGVzdF9zdGFsZShz
ZXNzaW9uKToKICAgICBhc3NlcnRfZXJyb3IocmVzdWx0LCAic3RhbGUgZWxlbWVudCByZWZlcmVu
Y2UiKQogCiAKLWRlZiB0ZXN0X2Zvcm1hdF9hbmRfZGltZW5zaW9ucyhzZXNzaW9uKToKK2RlZiB0
ZXN0X2Zvcm1hdF9hbmRfZGltZW5zaW9ucyhzZXNzaW9uLCBpbmxpbmUpOgogICAgIHNlc3Npb24u
dXJsID0gaW5saW5lKCI8aW5wdXQ+IikKICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygi
aW5wdXQiLCBhbGw9RmFsc2UpCiAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3QvdXNlcl9wcm9tcHRz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX2Vs
ZW1lbnRfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMucHkKaW5kZXggNWQxYjQ5N2ZmMmM0Li4zOWZl
ZmU5MzI1YTkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2
ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3NjcmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvdGFrZV9lbGVtZW50X3Nj
cmVlbnNob3QvdXNlcl9wcm9tcHRzLnB5CkBAIC0zLDcgKzMsNiBAQAogaW1wb3J0IHB5dGVzdAog
CiBmcm9tIHRlc3RzLnN1cHBvcnQuYXNzZXJ0cyBpbXBvcnQgYXNzZXJ0X2RpYWxvZ19oYW5kbGVk
LCBhc3NlcnRfZXJyb3IsIGFzc2VydF9wbmcsIGFzc2VydF9zdWNjZXNzCi1mcm9tIHRlc3RzLnN1
cHBvcnQuaW5saW5lIGltcG9ydCBpbmxpbmUKIAogCiBkZWYgdGFrZV9lbGVtZW50X3NjcmVlbnNo
b3Qoc2Vzc2lvbiwgZWxlbWVudF9pZCk6CkBAIC0xNyw3ICsxNiw3IEBAIGRlZiB0YWtlX2VsZW1l
bnRfc2NyZWVuc2hvdChzZXNzaW9uLCBlbGVtZW50X2lkKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUK
LWRlZiBjaGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oc2Vzc2lvbiwg
Y3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhj
ZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2csIGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3Vz
ZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihkaWFsb2dfdHlwZSwgcmV0dmFsKToK
ICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKICAgICAgICAgZWxlbWVu
dCA9IHNlc3Npb24uZmluZC5jc3MoImlucHV0IiwgYWxsPUZhbHNlKQpAQCAtMzUsNyArMzQsNyBA
QCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24s
IGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJv
bXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBj
aGVja191c2VyX3Byb21wdF9jbG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2Rp
YWxvZywgaW5saW5lKToKICAgICBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhj
ZXB0aW9uKGRpYWxvZ190eXBlLCByZXR2YWwpOgogICAgICAgICBzZXNzaW9uLnVybCA9IGlubGlu
ZSgiPGlucHV0Lz4iKQogICAgICAgICBlbGVtZW50ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQi
LCBhbGw9RmFsc2UpCkBAIC01MSw3ICs1MCw3IEBAIGRlZiBjaGVja191c2VyX3Byb21wdF9jbG9z
ZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CiAKIAogQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2hlY2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKHNl
c3Npb24sIGNyZWF0ZV9kaWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRf
YnV0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBj
aGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1dF9leGNlcHRpb24oZGlhbG9nX3R5cGUpOgog
ICAgICAgICBzZXNzaW9uLnVybCA9IGlubGluZSgiPGlucHV0Lz4iKQogICAgICAgICBlbGVtZW50
ID0gc2Vzc2lvbi5maW5kLmNzcygiaW5wdXQiLCBhbGw9RmFsc2UpCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9p
ZnJhbWUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rh
a2Vfc2NyZWVuc2hvdC9pZnJhbWUucHkKaW5kZXggNjAxYzAzOWQ1NmRlLi44MTg4MWMxZGFlNzMg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
dGFrZV9zY3JlZW5zaG90L2lmcmFtZS5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9pZnJhbWUucHkKQEAgLTIsOSArMiw4
IEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSB0ZXN0cy5zdXBwb3J0LmFzc2VydHMgaW1wb3J0IGFz
c2VydF9zdWNjZXNzCiBmcm9tIHRlc3RzLnN1cHBvcnQuaW1hZ2UgaW1wb3J0IHBuZ19kaW1lbnNp
b25zCi1mcm9tIHRlc3RzLnN1cHBvcnQuaW5saW5lIGltcG9ydCBpZnJhbWUsIGlubGluZQogCi1m
cm9tIC4gaW1wb3J0IGVsZW1lbnRfZGltZW5zaW9ucywgdmlld3BvcnRfZGltZW5zaW9ucworZnJv
bSAuIGltcG9ydCB2aWV3cG9ydF9kaW1lbnNpb25zCiAKIERFRkFVTFRfQ09OVEVOVCA9ICI8ZGl2
IGlkPSdjb250ZW50Jz5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldC48L2Rpdj4iCiAKQEAgLTYz
LDcgKzYyLDcgQEAgZGVmIHRha2Vfc2NyZWVuc2hvdChzZXNzaW9uKToKICAgICAgICAgIkdFVCIs
ICJzZXNzaW9uL3tzZXNzaW9uX2lkfS9zY3JlZW5zaG90Ii5mb3JtYXQoKip2YXJzKHNlc3Npb24p
KSkKIAogCi1kZWYgdGVzdF9hbHdheXNfY2FwdHVyZXNfdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbik6CitkZWYgdGVzdF9hbHdheXNfY2FwdHVyZXNfdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vz
c2lvbiwgaW5saW5lLCBpZnJhbWUpOgogICAgIGlmcmFtZV9jb250ZW50ID0gInswfXsxfSIuZm9y
bWF0KElOTkVSX0lGUkFNRV9TVFlMRSwgREVGQVVMVF9DT05URU5UKQogICAgIHNlc3Npb24udXJs
ID0gaW5saW5lKCIiInswfXsxfSIiIi5mb3JtYXQoT1VURVJfSUZSQU1FX1NUWUxFLCBpZnJhbWUo
aWZyYW1lX2NvbnRlbnQpKSkKIApAQCAtODIsNyArODEsNyBAQCBkZWYgdGVzdF9hbHdheXNfY2Fw
dHVyZXNfdG9wX2Jyb3dzaW5nX2NvbnRleHQoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJkb21haW4iLCBbIiIsICJhbHQiXSwgaWRzPVsic2FtZV9vcmlnaW4iLCAiY3Jv
c3Nfb3JpZ2luIl0pCi1kZWYgdGVzdF9zb3VyY2Vfb3JpZ2luKHNlc3Npb24sIGRvbWFpbik6Citk
ZWYgdGVzdF9zb3VyY2Vfb3JpZ2luKHNlc3Npb24sIGlubGluZSwgaWZyYW1lLCBkb21haW4pOgog
ICAgIHNlc3Npb24udXJsID0gaW5saW5lKCJ7MH17MX0iLmZvcm1hdChSRUZFUkVOQ0VfU1RZTEUs
IFJFRkVSRU5DRV9DT05URU5UKSkKIAogICAgIHJlc3BvbnNlID0gdGFrZV9zY3JlZW5zaG90KHNl
c3Npb24pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVy
L3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3Qvc2NyZWVuc2hvdC5weQpp
bmRleCBkNjEzMDkxOTE2N2EuLjllNzFhNjMzYzcwOCAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy90YWtlX3NjcmVlbnNob3Qvc2NyZWVuc2hv
dC5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rh
a2Vfc2NyZWVuc2hvdC9zY3JlZW5zaG90LnB5CkBAIC0xLDYgKzEsNSBAQAogZnJvbSB0ZXN0cy5z
dXBwb3J0LmFzc2VydHMgaW1wb3J0IGFzc2VydF9lcnJvciwgYXNzZXJ0X3BuZywgYXNzZXJ0X3N1
Y2Nlc3MKIGZyb20gdGVzdHMuc3VwcG9ydC5pbWFnZSBpbXBvcnQgcG5nX2RpbWVuc2lvbnMKLWZy
b20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGluZQogCiBmcm9tIC4gaW1wb3J0IHZp
ZXdwb3J0X2RpbWVuc2lvbnMKIApAQCAtMTUsNyArMTQsNyBAQCBkZWYgdGVzdF9ub190b3BfYnJv
d3NpbmdfY29udGV4dChzZXNzaW9uLCBjbG9zZWRfd2luZG93KToKICAgICBhc3NlcnRfZXJyb3Io
cmVzcG9uc2UsICJubyBzdWNoIHdpbmRvdyIpCiAKIAotZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29u
dGV4dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUpOgorZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4
dChzZXNzaW9uLCBjbG9zZWRfZnJhbWUsIGlubGluZSk6CiAgICAgc2Vzc2lvbi51cmwgPSBpbmxp
bmUoIjxpbnB1dD4iKQogCiAgICAgcmVzcG9uc2UgPSB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbikK
QEAgLTI1LDcgKzI0LDcgQEAgZGVmIHRlc3Rfbm9fYnJvd3NpbmdfY29udGV4dChzZXNzaW9uLCBj
bG9zZWRfZnJhbWUpOgogICAgIGFzc2VydCBwbmdfZGltZW5zaW9ucyh2YWx1ZSkgPT0gdmlld3Bv
cnRfZGltZW5zaW9ucyhzZXNzaW9uKQogCiAKLWRlZiB0ZXN0X2Zvcm1hdF9hbmRfZGltZW5zaW9u
cyhzZXNzaW9uKToKK2RlZiB0ZXN0X2Zvcm1hdF9hbmRfZGltZW5zaW9ucyhzZXNzaW9uLCBpbmxp
bmUpOgogICAgIHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQ+IikKIAogICAgIHJlc3BvbnNl
ID0gdGFrZV9zY3JlZW5zaG90KHNlc3Npb24pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2Ny
ZWVuc2hvdC91c2VyX3Byb21wdHMucHkKaW5kZXggYWQ5ZTM2OTUxNDhkLi43ZDU3ZjhmMjcxNmIg
MTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMv
dGFrZV9zY3JlZW5zaG90L3VzZXJfcHJvbXB0cy5weQorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL3Rha2Vfc2NyZWVuc2hvdC91c2VyX3Byb21wdHMucHkK
QEAgLTMsNyArMyw2IEBACiBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gdGVzdHMuc3VwcG9ydC5hc3Nl
cnRzIGltcG9ydCBhc3NlcnRfZGlhbG9nX2hhbmRsZWQsIGFzc2VydF9lcnJvciwgYXNzZXJ0X3Bu
ZywgYXNzZXJ0X3N1Y2Nlc3MKLWZyb20gdGVzdHMuc3VwcG9ydC5pbmxpbmUgaW1wb3J0IGlubGlu
ZQogCiAKIGRlZiB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbik6CkBAIC0xMiw3ICsxMSw3IEBAIGRl
ZiB0YWtlX3NjcmVlbnNob3Qoc2Vzc2lvbik6CiAKIAogQHB5dGVzdC5maXh0dXJlCi1kZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhvdXRfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9k
aWFsb2cpOgorZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihz
ZXNzaW9uLCBjcmVhdGVfZGlhbG9nLCBpbmxpbmUpOgogICAgIGRlZiBjaGVja191c2VyX3Byb21w
dF9jbG9zZWRfd2l0aG91dF9leGNlcHRpb24oZGlhbG9nX3R5cGUsIHJldHZhbCk6CiAgICAgICAg
IHNlc3Npb24udXJsID0gaW5saW5lKCI8aW5wdXQvPiIpCiAKQEAgLTI5LDcgKzI4LDcgQEAgZGVm
IGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRob3V0X2V4Y2VwdGlvbihzZXNzaW9uLCBjcmVh
dGVfZGlhbG9nKToKIAogCiBAcHl0ZXN0LmZpeHR1cmUKLWRlZiBjaGVja191c2VyX3Byb21wdF9j
bG9zZWRfd2l0aF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZyk6CitkZWYgY2hlY2tf
dXNlcl9wcm9tcHRfY2xvc2VkX3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cs
IGlubGluZSk6CiAgICAgZGVmIGNoZWNrX3VzZXJfcHJvbXB0X2Nsb3NlZF93aXRoX2V4Y2VwdGlv
bihkaWFsb2dfdHlwZSwgcmV0dmFsKToKICAgICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxp
bnB1dC8+IikKIApAQCAtNDQsNyArNDMsNyBAQCBkZWYgY2hlY2tfdXNlcl9wcm9tcHRfY2xvc2Vk
X3dpdGhfZXhjZXB0aW9uKHNlc3Npb24sIGNyZWF0ZV9kaWFsb2cpOgogCiAKIEBweXRlc3QuZml4
dHVyZQotZGVmIGNoZWNrX3VzZXJfcHJvbXB0X25vdF9jbG9zZWRfYnV0X2V4Y2VwdGlvbihzZXNz
aW9uLCBjcmVhdGVfZGlhbG9nKToKK2RlZiBjaGVja191c2VyX3Byb21wdF9ub3RfY2xvc2VkX2J1
dF9leGNlcHRpb24oc2Vzc2lvbiwgY3JlYXRlX2RpYWxvZywgaW5saW5lKToKICAgICBkZWYgY2hl
Y2tfdXNlcl9wcm9tcHRfbm90X2Nsb3NlZF9idXRfZXhjZXB0aW9uKGRpYWxvZ190eXBlKToKICAg
ICAgICAgc2Vzc2lvbi51cmwgPSBpbmxpbmUoIjxpbnB1dC8+IikKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>