<?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>42204</bug_id>
          
          <creation_ts>2010-07-13 14:44:30 -0700</creation_ts>
          <short_desc>Fold most WebGL script-tests into .html files</short_desc>
          <delta_ts>2010-07-13 15:03:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>oliver</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250756</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-07-13 14:44:30 -0700</bug_when>
    <thetext>For simplicity, in the Khronos WebGL conformance tests, an attempt has been made to keep most tests to a single file rather than splitting off the logic into a separate .js file. In order to keep these tests in sync in the future, it is strongly desirable to do the same in the WebKit versions of these layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250763</commentid>
    <comment_count>1</comment_count>
      <attachid>61420</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-07-13 14:58:21 -0700</bug_when>
    <thetext>Created attachment 61420
Patch

From the ChangeLog:

For each WebGL script-test layout test which has a corresponding copy in the Khronos repository, folded the .js into the .html. This will make it easier to synchronize these tests between repositories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250770</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-07-13 15:03:02 -0700</bug_when>
    <thetext>Committed r63250: &lt;http://trac.webkit.org/changeset/63250&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61420</attachid>
            <date>2010-07-13 14:58:21 -0700</date>
            <delta_ts>2010-07-13 14:59:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>script-tests.patch</filename>
            <type>text/plain</type>
            <size>71881</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYzMjQ5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDctMTMgIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZvbGQgbW9zdCBXZWJHTCBzY3JpcHQtdGVzdHMgaW50byAuaHRtbCBmaWxlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyMDQKKwor
ICAgICAgICBGb3IgZWFjaCBXZWJHTCBzY3JpcHQtdGVzdCBsYXlvdXQgdGVzdCB3aGljaCBoYXMg
YSBjb3JyZXNwb25kaW5nCisgICAgICAgIGNvcHkgaW4gdGhlIEtocm9ub3MgcmVwb3NpdG9yeSwg
Zm9sZGVkIHRoZSAuanMgaW50byB0aGUgLmh0bWwuIFRoaXMKKyAgICAgICAgd2lsbCBtYWtlIGl0
IGVhc2llciB0byBzeW5jaHJvbml6ZSB0aGVzZSB0ZXN0cyBiZXR3ZWVuIHJlcG9zaXRvcmllcy4K
KworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2Vycm9yLXJlcG9ydGluZy5odG1sOgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC5odG1sOgorICAgICAgICAq
IGZhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9pbmNvcnJlY3QtY29udGV4dC1vYmplY3QtYmVoYXZpb3VyLmh0bWw6
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFsaWRhdGlvbi5odG1sOgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci5odG1sOgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL251bGwtdW5pZm9ybS1sb2NhdGlvbi5odG1sOgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9lcnJvci1yZXBvcnRpbmcuanM6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2dldC1h
Y3RpdmUtdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zY3Jp
cHQtdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvaW5jb3JyZWN0LWNvbnRleHQtb2JqZWN0LWJlaGF2
aW91ci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVz
dHMvaW5kZXgtdmFsaWRhdGlvbi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93
ZWJnbC9zY3JpcHQtdGVzdHMvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9udWxsLXVuaWZvcm0tbG9jYXRp
b24uanM6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3Rz
L3VuaWZvcm0tbG9jYXRpb24uanM6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2Vi
Z2wvdW5pZm9ybS1sb2NhdGlvbi5odG1sOgorCiAyMDEwLTA3LTEzICBLZW5uZXRoIFJ1c3NlbGwg
IDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRpbmcuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRp
bmcuaHRtbAkocmV2aXNpb24gNjMyNDgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9lcnJvci1yZXBvcnRpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDYxIEBACiA8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9lcnJvci1yZXBvcnRpbmcuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBnZW5lcmF0aW9uIG9mIHN5bnRoZXRpYyBhbmQg
cmVhbCBHTCBlcnJvcnMiKTsKKwordmFyIGNvbnRleHQgPSBjcmVhdGUzRENvbnRleHQoKTsKK3Zh
ciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0KTsKKworLy8gT3RoZXIgdGVz
dHMgaW4gdGhpcyBkaXJlY3RvcnkgbGlrZSBnZXRBY3RpdmVUZXN0IGFuZAorLy8gaW5jb3JyZWN0
LWNvbnRleHQtb2JqZWN0LWJlaGF2aW91ciBhbHJlYWR5IHRlc3QgdGhlIHJhaXNpbmcgb2YgbWFu
eQorLy8gc3ludGhldGljIEdMIGVycm9ycy4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSByYWlzaW5n
IG9mIGNlcnRhaW4KKy8vIGtub3duIHJlYWwgR0wgZXJyb3JzLCBhbmQgY29udGFpbnMgYSBmZXcg
cmVncmVzc2lvbiB0ZXN0cyBmb3IgYnVncworLy8gZGlzY292ZXJlZCBpbiB0aGUgc3ludGhldGlj
IGVycm9yIGdlbmVyYXRpb24gYW5kIGluIHRoZSBXZWJHTAorLy8gaW1wbGVtZW50YXRpb24gaXRz
ZWxmLgorCitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKKworZGVidWcoIlRl
c3RpbmcgZ2V0QWN0aXZlQXR0cmliIik7CisvLyBTeW50aGV0aWMgT3BlbkdMIGVycm9yCitzaG91
bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKG51bGwsIDIpIik7CitzaG91bGRCZSgi
Y29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOworLy8gRXJyb3Ig
c3RhdGUgc2hvdWxkIGJlIGNsZWFyIGJ5IHRoaXMgcG9pbnQKK3Nob3VsZEJlKCJjb250ZXh0Lmdl
dEVycm9yKCkiLCAiY29udGV4dC5OT19FUlJPUiIpOworLy8gUmVhbCBPcGVuR0wgZXJyb3IKK3No
b3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikiKTsKK3Nob3Vs
ZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7CisvLyBF
cnJvciBzdGF0ZSBzaG91bGQgYmUgY2xlYXIgYnkgdGhpcyBwb2ludAorc2hvdWxkQmUoImNvbnRl
eHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0Lk5PX0VSUk9SIik7CisKK2RlYnVnKCJUZXN0aW5nIGdl
dEFjdGl2ZVVuaWZvcm0iKTsKKy8vIFN5bnRoZXRpYyBPcGVuR0wgZXJyb3IKK3Nob3VsZEJlTnVs
bCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKG51bGwsIDApIik7CitzaG91bGRCZSgiY29udGV4
dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOworLy8gRXJyb3Igc3RhdGUg
c2hvdWxkIGJlIGNsZWFyIGJ5IHRoaXMgcG9pbnQKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9y
KCkiLCAiY29udGV4dC5OT19FUlJPUiIpOworLy8gUmVhbCBPcGVuR0wgZXJyb3IKK3Nob3VsZEJl
TnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDUwKSIpOworc2hvdWxkQmUo
ImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUiKTsKKy8vIEVycm9y
IHN0YXRlIHNob3VsZCBiZSBjbGVhciBieSB0aGlzIHBvaW50CitzaG91bGRCZSgiY29udGV4dC5n
ZXRFcnJvcigpIiwgImNvbnRleHQuTk9fRVJST1IiKTsKKworZGVidWcoIlRlc3RpbmcgYXR0ZW1w
dHMgdG8gbWFuaXB1bGF0ZSB0aGUgZGVmYXVsdCBmcmFtZWJ1ZmZlciIpOworc2hvdWxkQmVVbmRl
ZmluZWQoImNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIDApIik7
CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuTk9fRVJST1IiKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQu
RlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZG
RVIsIDApIik7CisvLyBTeW50aGV0aWMgT3BlbkdMIGVycm9yCitzaG91bGRCZSgiY29udGV4dC5n
ZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04iKTsKKy8vIEVycm9yIHN0YXRl
IHNob3VsZCBiZSBjbGVhciBieSB0aGlzIHBvaW50CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJv
cigpIiwgImNvbnRleHQuTk9fRVJST1IiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmZy
YW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRU
QUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMCkiKTsKKy8vIFN5bnRoZXRpYyBPcGVu
R0wgZXJyb3IKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElE
X09QRVJBVElPTiIpOworLy8gRXJyb3Igc3RhdGUgc2hvdWxkIGJlIGNsZWFyIGJ5IHRoaXMgcG9p
bnQKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5OT19FUlJPUiIpOwor
CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CiAKIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVz
dC5odG1sCShyZXZpc2lvbiA2MzI0OCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dldC1hY3RpdmUtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsMTAzIEBACiA8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYWN0aXZlLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IG9mIGdldEFjdGl2ZUF0dHJpYiBhbmQgZ2V0QWN0
aXZlVW5pZm9ybSIpOworCit2YXIgY29udGV4dCA9IGNyZWF0ZTNEQ29udGV4dCgpOworc2hvdWxk
QmVOb25OdWxsKCJjb250ZXh0Iik7Cit2YXIgY29udGV4dDIgPSBjcmVhdGUzRENvbnRleHQoKTsK
K3Nob3VsZEJlTm9uTnVsbCgiY29udGV4dDIiKTsKK3ZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJk
UHJvZ3JhbShjb250ZXh0KTsKK3Nob3VsZEJlTm9uTnVsbCgicHJvZ3JhbSIpOwordmFyIHByb2dy
YW0yID0gbG9hZFByb2dyYW0oY29udGV4dDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVzb3VyY2VzL2ludEFycmF5VW5pZm9ybVNoYWRlci52ZXJ0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOworc2hvdWxkQmVO
b25OdWxsKCJwcm9ncmFtMiIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250
ZXh0Lk5PX0VSUk9SIik7CitzaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICJjb250ZXh0
Mi5OT19FUlJPUiIpOworCitzaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dy
YW0sIDApLm5hbWUiLCAiJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCciKTsKK3Nob3VsZEJlKCJjb250
ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkudHlwZSIsICJjb250ZXh0LkZMT0FUX01B
VDQiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkuc2l6
ZSIsICIxIik7CitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFt
LCAxKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURf
VkFMVUUiKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0s
IC0xKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURf
VkFMVUUiKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKG51bGwsIDAp
Iik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxV
RSIpOworCisvLyB3ZSBkb24ndCBrbm93IHRoZSBvcmRlciB0aGUgYXR0cmlicyB3aWxsIGFwcGVh
ci4KK3ZhciBpbmZvID0gWworICAgIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDAp
LAorICAgIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDEpCitdOworZm9yICh2YXIg
aWkgPSAwOyBpaSA8IGluZm8ubGVuZ3RoOyArK2lpKQorICAgIHNob3VsZEJlTm9uTnVsbCgiaW5m
b1tpaV0iKTsKKwordmFyIGV4cGVjdGVkID0gWworICAgIHsgbmFtZTogJ2Ffbm9ybWFsJywgdHlw
ZTogY29udGV4dC5GTE9BVF9WRUMzLCBzaXplOiAxIH0sCisgICAgeyBuYW1lOiAnYV92ZXJ0ZXgn
LCB0eXBlOiBjb250ZXh0LkZMT0FUX1ZFQzQsIHNpemU6IDEgfQorXTsKKworaWYgKGluZm9bMF0u
bmFtZSAhPSBleHBlY3RlZFswXS5uYW1lKSB7CisgICAgdCA9IGluZm9bMF07CisgICAgaW5mb1sw
XSA9IGluZm9bMV07CisgICAgaW5mb1sxXSA9IHQ7Cit9CisKK2ZvciAodmFyIGlpID0gMDsgaWkg
PCBpbmZvLmxlbmd0aDsgKytpaSkgeworICAgIHNob3VsZEJlKCJpbmZvW2lpXS5uYW1lIiwgImV4
cGVjdGVkW2lpXS5uYW1lIik7CisgICAgc2hvdWxkQmUoImluZm9baWldLnR5cGUiLCAiZXhwZWN0
ZWRbaWldLnR5cGUiKTsKKyAgICBzaG91bGRCZSgiaW5mb1tpaV0uc2l6ZSIsICJleHBlY3RlZFtp
aV0uc2l6ZSIpOworfQorCisvLyB3ZSBkb24ndCBrbm93IHRoZSBvcmRlciB0aGUgdW5pZm9ybXMg
d2lsbCBhcHBlYXIuCit2YXIgaW5mbzIgPSBbCisgICAgY29udGV4dDIuZ2V0QWN0aXZlVW5pZm9y
bShwcm9ncmFtMiwgMCksCisgICAgY29udGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtMiwg
MSkKK107Citmb3IgKHZhciBpaSA9IDA7IGlpIDwgaW5mbzIubGVuZ3RoOyArK2lpKQorICAgIHNo
b3VsZEJlTm9uTnVsbCgiaW5mbzJbaWldIik7CisKK3ZhciBleHBlY3RlZDIgPSBbCisgICAgeyBu
YW1lOiAnaXZhbCcsIHR5cGU6IGNvbnRleHQyLklOVCwgc2l6ZTogMSB9LAorICAgIHsgbmFtZTog
J2l2YWwyWzBdJywgdHlwZTogY29udGV4dDIuSU5ULCBzaXplOiAyIH0KK107CisKK2lmIChpbmZv
MlswXS5uYW1lICE9IGV4cGVjdGVkMlswXS5uYW1lKSB7CisgICAgdCA9IGluZm8yWzBdOworICAg
IGluZm8yWzBdID0gaW5mbzJbMV07CisgICAgaW5mbzJbMV0gPSB0OworfQorCitmb3IgKHZhciBp
aSA9IDA7IGlpIDwgaW5mbzIubGVuZ3RoOyArK2lpKSB7CisgICAgc2hvdWxkQmUoImluZm8yW2lp
XS5uYW1lIiwgImV4cGVjdGVkMltpaV0ubmFtZSIpOworICAgIHNob3VsZEJlKCJpbmZvMltpaV0u
dHlwZSIsICJleHBlY3RlZDJbaWldLnR5cGUiKTsKKyAgICBzaG91bGRCZSgiaW5mbzJbaWldLnNp
emUiLCAiZXhwZWN0ZWQyW2lpXS5zaXplIik7Cit9CisKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9y
KCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7CitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0
QWN0aXZlQXR0cmliKHByb2dyYW0sIC0xKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3Io
KSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUiKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRB
Y3RpdmVBdHRyaWIobnVsbCwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAi
Y29udGV4dC5JTlZBTElEX1ZBTFVFIik7CisKK3Nob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigp
IiwgImNvbnRleHQuTk9fRVJST1IiKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dDIuZ2V0QWN0aXZl
QXR0cmliKHByb2dyYW0sIDApIik7CitzaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICJj
b250ZXh0Mi5JTlZBTElEX09QRVJBVElPTiIpOworc2hvdWxkQmVOdWxsKCJjb250ZXh0Mi5nZXRB
Y3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIik7CitzaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3Io
KSIsICJjb250ZXh0Mi5JTlZBTElEX09QRVJBVElPTiIpOworCitjb250ZXh0LmRlbGV0ZVByb2dy
YW0ocHJvZ3JhbSk7CitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9n
cmFtLCAwKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFM
SURfVkFMVUUiKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElE
X1ZBTFVFIik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KIAogPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0LWdl
dC1jYWxscy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAkocmV2aXNpb24gNjMyNDgpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTgsNyArOCwyMzIgQEAKIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KIDxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgogCi08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dsLW9iamVj
dC1nZXQtY2FsbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IG9m
IGdldCBjYWxscyBhZ2FpbnN0IEdMIG9iamVjdHMgbGlrZSBnZXRCdWZmZXJQYXJhbWV0ZXIsIGV0
Yy4iKTsKKwordmFyIGdsID0gY3JlYXRlM0RDb250ZXh0KCk7CisKK3ZhciBlcnJvclZlcnQgPSBn
bC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CitnbC5zaGFkZXJTb3VyY2UoZXJyb3JW
ZXJ0LCAiSSBhbSBhIGJhZCB2ZXJ0ZXggc2hhZGVyIik7CitnbC5jb21waWxlU2hhZGVyKGVycm9y
VmVydCk7CisKK3ZhciBlcnJvckZyYWcgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hB
REVSKTsKK2dsLnNoYWRlclNvdXJjZShlcnJvckZyYWcsICJJIGFtIGEgYmFkIGZyYWdtZW50IHNo
YWRlciIpOworZ2wuY29tcGlsZVNoYWRlcihlcnJvckZyYWcpOworCit2YXIgc3RhbmRhcmRWZXJ0
ID0gbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGdsKTsKK3ZhciBzdGFuZGFyZEZyYWcgPSBsb2Fk
U3RhbmRhcmRGcmFnbWVudFNoYWRlcihnbCk7Cit2YXIgc3RhbmRhcmRQcm9ncmFtID0gZ2wuY3Jl
YXRlUHJvZ3JhbSgpOworZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3JhbSwgc3RhbmRhcmRW
ZXJ0KTsKK2dsLmF0dGFjaFNoYWRlcihzdGFuZGFyZFByb2dyYW0sIHN0YW5kYXJkRnJhZyk7Citn
bC5saW5rUHJvZ3JhbShzdGFuZGFyZFByb2dyYW0pOworCisvLyBUZXN0IHByb2dyYW0gYW5kIHNo
YWRlciBnZXRzCit2YXIgcGFyc2VFcnJvciA9ICJFUlJPUjogMDoxOiAnSScgOiBzeW50YXggZXJy
b3Igc3ludGF4IGVycm9yXG5FUlJPUjogUGFyc2VyIGZvdW5kIG5vIGNvZGUgdG8gY29tcGlsZSBp
biBzb3VyY2Ugc3RyaW5ncy5cbiI7Cit2YXIgZXJyb3JWZXJ0U3RyaW5nID0gIkkgYW0gYSBiYWQg
dmVydGV4IHNoYWRlclxuIjsKK3ZhciBlcnJvckZyYWdTdHJpbmcgPSAiSSBhbSBhIGJhZCBmcmFn
bWVudCBzaGFkZXJcbiI7CitzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbUluZm9Mb2coc3RhbmRhcmRQ
cm9ncmFtKScsICciIicpOworc2hvdWxkQmUoJ2dsLmdldFNoYWRlckluZm9Mb2coZXJyb3JWZXJ0
KScsICdwYXJzZUVycm9yJyk7CitzaG91bGRCZSgnZ2wuZ2V0U2hhZGVySW5mb0xvZyhlcnJvckZy
YWcpJywgJ3BhcnNlRXJyb3InKTsKK3Nob3VsZEJlKCdnbC5nZXRTaGFkZXJTb3VyY2UoZXJyb3JW
ZXJ0KScsICdlcnJvclZlcnRTdHJpbmcnKTsKK3Nob3VsZEJlKCdnbC5nZXRTaGFkZXJTb3VyY2Uo
ZXJyb3JGcmFnKScsICdlcnJvckZyYWdTdHJpbmcnKTsKK3ZhciBzaGFkZXJzID0gZ2wuZ2V0QXR0
YWNoZWRTaGFkZXJzKHN0YW5kYXJkUHJvZ3JhbSk7CitzaG91bGRCZSgnc2hhZGVycy5sZW5ndGgn
LCAnMicpOworc2hvdWxkQmVUcnVlKCdzaGFkZXJzWzBdID09IHN0YW5kYXJkVmVydCAmJiBzaGFk
ZXJzWzFdID09IHN0YW5kYXJkRnJhZyB8fCBzaGFkZXJzWzFdID09IHN0YW5kYXJkVmVydCAmJiBz
aGFkZXJzWzBdID09IHN0YW5kYXJkRnJhZycpOworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAn
Z2wuTk9fRVJST1InKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMo
bnVsbCknKTsKK3Nob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLklOVkFMSURfVkFMVUUnKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KScp
Oworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuSU5WQUxJRF9WQUxVRScpOworCisvLyBU
ZXN0IGdldEJ1ZmZlclBhcmFtZXRlcgordmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwor
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcik7CitnbC5idWZmZXJEYXRhKGds
LkFSUkFZX0JVRkZFUiwgMTYsIGdsLkRZTkFNSUNfRFJBVyk7CitzaG91bGRCZSgnZ2wuZ2V0QnVm
ZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1NJWkUpJywgJzE2Jyk7Citz
aG91bGRCZSgnZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVS
X1VTQUdFKScsICdnbC5EWU5BTUlDX0RSQVcnKTsKKworLy8gVGVzdCBnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIKK3ZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CitnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIDIsIDIsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
CisgICAgICAgICAgICAgIG5ldyBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KFswLCAwLCAwLCAyNTUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1
LCAyNTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1
NSwgMjU1LCAyNTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LCAwLCAwLCAyNTVdKSk7CitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOworZ2wuYmluZFRleHR1cmUoZ2wu
VEVYVFVSRV8yRCwgbnVsbCk7Cit2YXIgZnJhbWVidWZmZXIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpOworZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmcmFtZWJ1ZmZlcik7Citn
bC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVO
VDAsIGdsLlRFWFRVUkVfMkQsIHRleHR1cmUsIDApOwordmFyIHJlbmRlcmJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpOworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnMCcpOworZ2wu
YmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7CitzaG91bGRC
ZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7CitnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIDIsIDIpOworc2hvdWxkQmUoJ2dsLmdldEVy
cm9yKCknLCAnMCcpOworZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsKKy8v
IEZJWE1FOiBvbiBzb21lIG1hY2hpbmVzIChpbiBwYXJ0aWN1bGFyIHRoZSBXZWJLaXQgY29tbWl0
IGJvdHMpIHRoZQorLy8gZnJhbWVidWZmZXIgc3RhdHVzIGlzIEZSQU1FQlVGRkVSX1VOU1VQUE9S
VEVEOyBtb3JlIGludmVzdGlnYXRpb24KKy8vIGlzIG5lZWRlZCB3aHkgdGhpcyBpcyB0aGUgY2Fz
ZSwgYmVjYXVzZSB0aGUgRkJPIGFsbG9jYXRlZAorLy8gaW50ZXJuYWxseSBieSB0aGUgV2ViS2l0
IGltcGxlbWVudGF0aW9uIGhhcyBhbG1vc3QgaWRlbnRpY2FsCisvLyBwYXJhbWV0ZXJzIHRvIHRo
aXMgb25lLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODQz
LgorLy9zaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikn
LCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKK3Nob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5URVhUVVJFJyk7
CitzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9P
QkpFQ1RfTkFNRSknLCAndGV4dHVyZScpOworc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGds
LkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTCknLCAnMCcpOworc2hvdWxkQmUo
J2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJF
X01BUF9GQUNFKScsICcwJyk7CisKK3Nob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLlJFTkRFUkJVRkZFUicpOworc2hv
dWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
TkFNRSknLCAncmVuZGVyYnVmZmVyJyk7CisKKy8vIFRlc3QgZ2V0UHJvZ3JhbVBhcmFtZXRlcgor
c2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5ERUxF
VEVfU1RBVFVTKScsICdmYWxzZScpOworc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIo
c3RhbmRhcmRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOworc2hvdWxkQmUoJ3R5
cGVvZiBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuVkFMSURBVEVf
U1RBVFVTKScsICciYm9vbGVhbiInKTsKK3Nob3VsZEJlKCd0eXBlb2YgZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLklORk9fTE9HX0xFTkdUSCknLCAnIm51bWJlciIn
KTsKK3Nob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wu
QVRUQUNIRURfU0hBREVSUyknLCAnMicpOworc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0
ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BQ1RJVkVfQVRUUklCVVRFUyknLCAnMicpOworc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuQUNU
SVZFX0FUVFJJQlVURV9NQVhfTEVOR1RIKScpOworc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJh
bWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BQ1RJVkVfVU5JRk9STVMpJywgJzEnKTsKK3Nob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkFD
VElWRV9VTklGT1JNX01BWF9MRU5HVEgpJyk7CisKKy8vIFRlc3QgZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyCitzaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKScsICcyJyk7CitzaG91bGRCZSgnZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdI
VCknLCAnMicpOworLy8gTm90ZTogd2UgY2FuJ3QgdGVzdCB0aGUgYWN0dWFsIHZhbHVlIG9mIHRo
ZSBpbnRlcm5hbCBmb3JtYXQgc2luY2UKKy8vIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhbGxvd2Vk
IHRvIGNoYW5nZSBpdC4KK3Nob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCknKTsK
K3Nob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpJyk7Cit2YXIgY29sb3JidWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKK3Nob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJzAnKTsK
K2dsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOworc2hv
dWxkQmUoJ2dsLmdldEVycm9yKCknLCAnMCcpOworZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAyLCAyKTsKK3Nob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9T
SVpFKScpOworc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSknKTsKK3Nob3VsZEJlTm9u
WmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVO
REVSQlVGRkVSX0JMVUVfU0laRSknKTsKK3Nob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUp
Jyk7CisKKy8vIFRlc3QgZ2V0U2hhZGVyUGFyYW1ldGVyCitzaG91bGRCZSgnZ2wuZ2V0U2hhZGVy
UGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuU0hBREVSX1RZUEUpJywgJ2dsLlZFUlRFWF9TSEFE
RVInKTsKK3Nob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRWZXJ0LCBnbC5E
RUxFVEVfU1RBVFVTKScsICdmYWxzZScpOworc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFtZXRl
cihzdGFuZGFyZFZlcnQsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7CitzaG91bGRCZSgn
dHlwZW9mIGdsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZlcnQsIGdsLklORk9fTE9HX0xF
TkdUSCknLCAnIm51bWJlciInKTsKK3Nob3VsZEJlTm9uWmVybygnZ2wuZ2V0U2hhZGVyUGFyYW1l
dGVyKHN0YW5kYXJkVmVydCwgZ2wuU0hBREVSX1NPVVJDRV9MRU5HVEgpJyk7CisKKy8vIFRlc3Qg
Z2V0VGV4UGFyYW1ldGVyCitnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1l
YnVmZmVyKTsKK2dsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJF
U1QpOworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxU
RVIsIGdsLk5FQVJFU1QpOworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKK3Nob3VsZEJlKCdn
bC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSKScs
ICdnbC5ORUFSRVNUJyk7CitzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiknLCAnZ2wuTkVBUkVTVCcpOworc2hvdWxkQmUoJ2ds
LmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUyknLCAnZ2wu
Q0xBTVBfVE9fRURHRScpOworc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfVCknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworCisvLyBUZXN0
IGdldFVuaWZvcm0gd2l0aCBhbGwgdmFyaWFudHMgb2YgZGF0YSB0eXBlcworLy8gQm9vbGVhbiB1
bmlmb3JtIHZhcmlhYmxlcwordmFyIGJvb2xQcm9ncmFtID0gbG9hZFByb2dyYW0oZ2wsICJyZXNv
dXJjZXMvYm9vbFVuaWZvcm1TaGFkZXIudmVydCIsICJyZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFk
ZXIuZnJhZyIpOworc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoYm9vbFByb2dyYW0s
IGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Cit2YXIgYnZhbExvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWwiKTsKK3ZhciBidmFsMkxvYyA9IGdsLmdldFVuaWZv
cm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWwyIik7Cit2YXIgYnZhbDNMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsMyIpOwordmFyIGJ2YWw0TG9jID0gZ2wu
Z2V0VW5pZm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDQiKTsKK2dsLnVzZVByb2dyYW0o
Ym9vbFByb2dyYW0pOworZ2wudW5pZm9ybTFpKGJ2YWxMb2MsIDEpOworZ2wudW5pZm9ybTJpKGJ2
YWwyTG9jLCAxLCAwKTsKK2dsLnVuaWZvcm0zaShidmFsM0xvYywgMSwgMCwgMSk7CitnbC51bmlm
b3JtNGkoYnZhbDRMb2MsIDEsIDAsIDEsIDApOworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAn
MCcpOworc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2YWxMb2MpJywgJ3Ry
dWUnKTsKK3Nob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGJvb2xQcm9ncmFtLCBidmFsMkxvYyknLCAn
WzEsIDBdJyk7CitzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwgYnZhbDNMb2Mp
JywgJ1sxLCAwLCAxXScpOworc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2
YWw0TG9jKScsICdbMSwgMCwgMSwgMF0nKTsKKy8vIEludGVnZXIgdW5pZm9ybSB2YXJpYWJsZXMK
K3ZhciBpbnRQcm9ncmFtID0gbG9hZFByb2dyYW0oZ2wsICJyZXNvdXJjZXMvaW50VW5pZm9ybVNo
YWRlci52ZXJ0IiwgInJlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CitzaG91bGRC
ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAn
dHJ1ZScpOwordmFyIGl2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwg
Iml2YWwiKTsKK3ZhciBpdmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFt
LCAiaXZhbDIiKTsKK3ZhciBpdmFsM0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9n
cmFtLCAiaXZhbDMiKTsKK3ZhciBpdmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQ
cm9ncmFtLCAiaXZhbDQiKTsKK2dsLnVzZVByb2dyYW0oaW50UHJvZ3JhbSk7CitnbC51bmlmb3Jt
MWkoaXZhbExvYywgMSk7CitnbC51bmlmb3JtMmkoaXZhbDJMb2MsIDIsIDMpOworZ2wudW5pZm9y
bTNpKGl2YWwzTG9jLCA0LCA1LCA2KTsKK2dsLnVuaWZvcm00aShpdmFsNExvYywgNywgOCwgOSwg
MTApOworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnMCcpOworc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0oaW50UHJvZ3JhbSwgaXZhbExvYyknLCAnMScpOworc2hvdWxkQmUoJ2dsLmdldFVuaWZv
cm0oaW50UHJvZ3JhbSwgaXZhbDJMb2MpJywgJ1syLCAzXScpOworc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0oaW50UHJvZ3JhbSwgaXZhbDNMb2MpJywgJ1s0LCA1LCA2XScpOworc2hvdWxkQmUoJ2ds
LmdldFVuaWZvcm0oaW50UHJvZ3JhbSwgaXZhbDRMb2MpJywgJ1s3LCA4LCA5LCAxMF0nKTsKKy8v
IEZsb2F0IHVuaWZvcm0gdmFyaWFibGVzCit2YXIgZmxvYXRQcm9ncmFtID0gbG9hZFByb2dyYW0o
Z2wsICJyZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQiLCAicmVzb3VyY2VzL25vb3BV
bmlmb3JtU2hhZGVyLmZyYWciKTsKK3Nob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGZs
b2F0UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKK3ZhciBmdmFsTG9jID0gZ2wu
Z2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWwiKTsKK3ZhciBmdmFsMkxvYyA9
IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJmdmFsMiIpOwordmFyIGZ2YWwz
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWwzIik7Cit2YXIg
ZnZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9ncmFtLCAiZnZhbDQiKTsK
K2dsLnVzZVByb2dyYW0oZmxvYXRQcm9ncmFtKTsKK2dsLnVuaWZvcm0xZihmdmFsTG9jLCAxMSk7
CitnbC51bmlmb3JtMmYoZnZhbDJMb2MsIDEyLCAxMyk7CitnbC51bmlmb3JtM2YoZnZhbDNMb2Ms
IDE0LCAxNSwgMTYpOworZ2wudW5pZm9ybTRmKGZ2YWw0TG9jLCAxNywgMTgsIDE5LCAyMCk7Citz
aG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7CitzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShm
bG9hdFByb2dyYW0sIGZ2YWxMb2MpJywgJzExJyk7CitzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShm
bG9hdFByb2dyYW0sIGZ2YWwyTG9jKScsICdbMTIsIDEzXScpOworc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsM0xvYyknLCAnWzE0LCAxNSwgMTZdJyk7CitzaG91bGRC
ZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWw0TG9jKScsICdbMTcsIDE4LCAxOSwg
MjBdJyk7CisvLyBNYXRyaXggdW5pZm9ybSB2YXJpYWJsZXMKK3ZhciBtYXRQcm9ncmFtID0gbG9h
ZFByb2dyYW0oZ2wsICJyZXNvdXJjZXMvbWF0VW5pZm9ybVNoYWRlci52ZXJ0IiwgInJlc291cmNl
cy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CitzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihtYXRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwordmFyIG12YWwyTG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdFByb2dyYW0sICJtdmFsMiIpOwordmFyIG12YWwz
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdFByb2dyYW0sICJtdmFsMyIpOwordmFyIG12
YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdFByb2dyYW0sICJtdmFsNCIpOworZ2wu
dXNlUHJvZ3JhbShtYXRQcm9ncmFtKTsKK2dsLnVuaWZvcm1NYXRyaXgyZnYobXZhbDJMb2MsIGZh
bHNlLCBbMSwgMiwgMywgNF0pOworZ2wudW5pZm9ybU1hdHJpeDNmdihtdmFsM0xvYywgZmFsc2Us
IFs1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxM10pOworZ2wudW5pZm9ybU1hdHJpeDRmdiht
dmFsNExvYywgZmFsc2UsIFsxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywg
MjQsIDI1LCAyNiwgMjcsIDI4LCAyOV0pOworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnMCcp
Oworc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0UHJvZ3JhbSwgbXZhbDJMb2MpJywgJ1sxLCAy
LCAzLCA0XScpOworc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0UHJvZ3JhbSwgbXZhbDNMb2Mp
JywgJ1s1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxM10nKTsKK3Nob3VsZEJlKCdnbC5nZXRV
bmlmb3JtKG1hdFByb2dyYW0sIG12YWw0TG9jKScsICdbMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwg
MjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjldJyk7CisKKy8vIFRlc3QgZ2V0
VmVydGV4QXR0cmliCit2YXIgYXJyYXkgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0pOworZ2wuYmluZEJ1
ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcik7CitnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgYXJyYXksIGdsLkRZTkFNSUNfRFJBVyk7CisvLyBWZXJ0ZXggYXR0cmlidXRlIDAgaXMg
c3BlY2lhbCBpbiB0aGF0IGl0IGhhcyBubyBjdXJyZW50IHN0YXRlLCBzbworLy8gZmV0Y2hpbmcg
R0xfQ1VSUkVOVF9WRVJURVhfQVRUUklCIGdlbmVyYXRlcyBhbiBlcnJvci4gVXNlIGF0dHJpYnV0
ZQorLy8gMSBmb3IgdGhlc2UgdGVzdHMgaW5zdGVhZC4KK2dsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KDEpOworZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAs
IDApOworc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FS
UkFZX0JVRkZFUl9CSU5ESU5HKScsICdidWZmZXInKTsKK3Nob3VsZEJlKCdnbC5nZXRWZXJ0ZXhB
dHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKScsICd0cnVlJyk7CitzaG91
bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSkn
LCAnNCcpOworc2hvdWxkQmUoJyhnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9TVFJJREUpID09IDApIHx8IChnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVY
X0FUVFJJQl9BUlJBWV9TVFJJREUpID09IDQgKiBnbC5zaXplSW5CeXRlcyhnbC5GTE9BVCkpJywg
J3RydWUnKTsKK3Nob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9UWVBFKScsICdnbC5GTE9BVCcpOworc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJp
YigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQpJywgJ2ZhbHNlJyk7CitnbC5k
aXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CitzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmli
KDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCknLCAnZmFsc2UnKTsKK2dsLnZlcnRl
eEF0dHJpYjRmKDEsIDUsIDYsIDcsIDgpOworc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpJywgJ1s1LCA2LCA3LCA4XScpOworc2hvdWxkQmUo
J2dsLmdldEVycm9yKCknLCAnMCcpOworCisvLyBUZXN0IGNhc2VzIHdoZXJlIG5hbWUgPT0gMAor
Z2wuZGVsZXRlVGV4dHVyZSh0ZXh0dXJlKTsKK3Nob3VsZEJlTnVsbCgnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknKTsKK2dsLmRlbGV0ZVJl
bmRlcmJ1ZmZlcihyZW5kZXJidWZmZXIpOworc2hvdWxkQmVOdWxsKCdnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQs
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJyk7CitnbC5kZWxldGVCdWZm
ZXIoYnVmZmVyKTsKK3Nob3VsZEJlTnVsbCgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRF
WF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpJyk7CitzaG91bGRCZSgnZ2wuZ2V0RXJyb3Io
KScsICcwJyk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KIAogPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5jb3JyZWN0LWNv
bnRleHQtb2JqZWN0LWJlaGF2aW91ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2luY29ycmVjdC1jb250ZXh0LW9iamVjdC1iZWhhdmlvdXIuaHRtbAko
cmV2aXNpb24gNjMyNDgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbmNvcnJl
Y3QtY29udGV4dC1vYmplY3QtYmVoYXZpb3VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyAr
OCw0OSBAQAogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CiAKLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5jb3JyZWN0LWNvbnRleHQtb2Jq
ZWN0LWJlaGF2aW91ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Rz
IGNhbGxpbmcgV2ViR0wgQVBJcyB3aXRoIG9iamVjdHMgZnJvbSBvdGhlciBjb250ZXh0cyIpOwor
Cit2YXIgY29udGV4dEEgPSBjcmVhdGUzRENvbnRleHQoKTsKK3ZhciBjb250ZXh0QiA9IGNyZWF0
ZTNEQ29udGV4dCgpOwordmFyIHByb2dyYW1BID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0
QSk7Cit2YXIgcHJvZ3JhbUIgPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHRCKTsKK3ZhciBz
aGFkZXJBID0gbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGNvbnRleHRBKTsKK3ZhciBzaGFkZXJC
ID0gbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGNvbnRleHRCKTsKK3ZhciB0ZXh0dXJlQSA9IGNv
bnRleHRBLmNyZWF0ZVRleHR1cmUoKTsKK3ZhciB0ZXh0dXJlQiA9IGNvbnRleHRCLmNyZWF0ZVRl
eHR1cmUoKTsKK3ZhciBmcmFtZUJ1ZmZlckEgPSBjb250ZXh0QS5jcmVhdGVGcmFtZWJ1ZmZlcigp
OwordmFyIGZyYW1lQnVmZmVyQiA9IGNvbnRleHRCLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Cit2YXIg
cmVuZGVyQnVmZmVyQSA9IGNvbnRleHRBLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwordmFyIHJlbmRl
ckJ1ZmZlckIgPSBjb250ZXh0Qi5jcmVhdGVSZW5kZXJidWZmZXIoKTsKK3ZhciBsb2NhdGlvbkEg
PSBjb250ZXh0QS5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbUEsICd1X21vZGVsVmlld1Byb2pN
YXRyaXgnKTsKK3ZhciBsb2NhdGlvbkIgPSBjb250ZXh0Qi5nZXRVbmlmb3JtTG9jYXRpb24ocHJv
Z3JhbUIsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKTsKKworc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmNvbXBpbGVT
aGFkZXIoc2hhZGVyQikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29udGV4
dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5saW5rUHJvZ3JhbShwcm9ncmFtQikiKTsK
K3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJ
T04sICJjb250ZXh0QS5hdHRhY2hTaGFkZXIocHJvZ3JhbUEsIHNoYWRlckIpIik7CitzaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29u
dGV4dEEuYXR0YWNoU2hhZGVyKHByb2dyYW1CLCBzaGFkZXJBKSIpOworc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmF0
dGFjaFNoYWRlcihwcm9ncmFtQiwgc2hhZGVyQikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihj
b250ZXh0QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5kZXRhY2hTaGFk
ZXIocHJvZ3JhbUEsIHNoYWRlckIpIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEs
IGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dEEuZGV0YWNoU2hhZGVyKHByb2dy
YW1CLCBzaGFkZXJBKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHRBLCBjb250ZXh0
QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmRldGFjaFNoYWRlcihwcm9ncmFtQiwgc2hh
ZGVyQikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29udGV4dEEuSU5WQUxJ
RF9PUEVSQVRJT04sICJjb250ZXh0QS5zaGFkZXJTb3VyY2Uoc2hhZGVyQiwgJ2ZvbycpIik7Citz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9O
LCAiY29udGV4dEEuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW1CLCAwLCAnZm9vJykiKTsKK3No
b3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04s
ICJjb250ZXh0QS5iaW5kRnJhbWVidWZmZXIoY29udGV4dEEuRlJBTUVCVUZGRVIsIGZyYW1lQnVm
ZmVyQikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29udGV4dEEuSU5WQUxJ
RF9PUEVSQVRJT04sICJjb250ZXh0QS5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHRBLlJFTkRFUkJV
RkZFUiwgcmVuZGVyQnVmZmVyQikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwg
Y29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5iaW5kVGV4dHVyZShjb250ZXh0
QS5URVhUVVJFXzJELCB0ZXh0dXJlQikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0
QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihjb250ZXh0QS5GUkFNRUJVRkZFUiwgY29udGV4dEEuREVQVEhfQVRUQUNITUVOVCwg
Y29udGV4dEEuUkVOREVSQlVGRkVSLCByZW5kZXJCdWZmZXJCKSIpOworc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmZy
YW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHRBLkZSQU1FQlVGRkVSLCBjb250ZXh0QS5DT0xPUl9B
VFRBQ0hNRU5UMCwgY29udGV4dEEuVEVYVFVSRV8yRCwgdGV4dHVyZUIsIDApIik7CitzaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29u
dGV4dEEuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtQiwgMCkiKTsKK3Nob3VsZEdlbmVyYXRl
R0xFcnJvcihjb250ZXh0QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5n
ZXRQcm9ncmFtSW5mb0xvZyhwcm9ncmFtQiwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihj
b250ZXh0QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5nZXRTaGFkZXJQ
YXJhbWV0ZXIoc2hhZGVyQiwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwg
Y29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5nZXRTaGFkZXJJbmZvTG9nKHNo
YWRlckIsIDApIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklO
VkFMSURfT1BFUkFUSU9OLCAiY29udGV4dEEuZ2V0U2hhZGVyU291cmNlKHNoYWRlckIpIik7Citz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9O
LCAiY29udGV4dEEuZ2V0VW5pZm9ybShwcm9ncmFtQiwgbG9jYXRpb25BKSIpOworc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRl
eHRBLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtQiwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcp
Iik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KIAogPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFsaWRhdGlvbi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luZGV4LXZh
bGlkYXRpb24uaHRtbAkocmV2aXNpb24gNjMyNDgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9pbmRleC12YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw4
MiBAQAogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CiAKLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5kZXgtdmFsaWRhdGlvbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qgb2YgdmFsaWRhdGluZyBpbmRpY2Vz
IGZvciBkcmF3RWxlbWVudHMoKS4iKTsKKwordmFyIGdsID0gY3JlYXRlM0RDb250ZXh0KCk7Cit2
YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOworCisvLyAzIHZlcnRpY2VzID0+
IDEgdHJpYW5nbGUsIGludGVybGVhdmVkIGRhdGEKK3ZhciBkYXRhQ29tcGxldGUgPSBuZXcgV2Vi
R0xGbG9hdEFycmF5KFswLCAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMSwgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDEs
IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMV0pOwor
dmFyIGRhdGFJbmNvbXBsZXRlID0gbmV3IFdlYkdMRmxvYXRBcnJheShbMCwgMCwgMCwgMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAxLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDFdKTsKK3ZhciBpbmRpY2VzID0g
bmV3IFdlYkdMVW5zaWduZWRTaG9ydEFycmF5KFswLCAxLCAyXSk7CisKK2RlYnVnKCJUZXN0aW5n
IHdpdGggdmFsaWQgaW5kaWNlcyIpOworCit2YXIgYnVmZmVyQ29tcGxldGUgPSBnbC5jcmVhdGVC
dWZmZXIoKTsKK2dsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWZmZXJDb21wbGV0ZSk7
CitnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgZGF0YUNvbXBsZXRlLCBnbC5TVEFUSUNf
RFJBVyk7Cit2YXIgZWxlbWVudHMgPSBnbC5jcmVhdGVCdWZmZXIoKTsKK2dsLmJpbmRCdWZmZXIo
Z2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGVsZW1lbnRzKTsKK2dsLmJ1ZmZlckRhdGEoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIGluZGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKK2dsLnVzZVByb2dy
YW0ocHJvZ3JhbSk7Cit2YXIgdmVydGV4TG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3Jh
bSwgImFfdmVydGV4Iik7Cit2YXIgbm9ybWFsTG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJv
Z3JhbSwgImFfbm9ybWFsIik7CitnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZlcnRleExvYywgNCwg
Z2wuRkxPQVQsIGZhbHNlLCA3ICogZ2wuc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCAwKTsKK2dsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KHZlcnRleExvYyk7CitnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KG5vcm1hbExvYywgMywgZ2wuRkxPQVQsIGZhbHNlLCA3ICogZ2wuc2l6ZUluQnl0ZXMoZ2wuRkxP
QVQpLCA0ICogZ2wuc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpKTsKK2dsLmVuYWJsZVZlcnRleEF0dHJp
YkFycmF5KG5vcm1hbExvYyk7CitzaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUiknLCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKK3Nob3VsZEJlKCdn
bC5nZXRFcnJvcigpJywgJzAnKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMo
Z2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9TSE9SVCwgMCknKTsKK3Nob3VsZEJlKCdnbC5n
ZXRFcnJvcigpJywgJzAnKTsKKworZGVidWcoIlRlc3Rpbmcgd2l0aCBvdXQtb2YtcmFuZ2UgaW5k
aWNlcyIpOworCit2YXIgYnVmZmVySW5jb21wbGV0ZSA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworZ2wu
YmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlckluY29tcGxldGUpOworZ2wuYnVmZmVy
RGF0YShnbC5BUlJBWV9CVUZGRVIsIGRhdGFJbmNvbXBsZXRlLCBnbC5TVEFUSUNfRFJBVyk7Citn
bC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZlcnRleExvYywgNCwgZ2wuRkxPQVQsIGZhbHNlLCA3ICog
Z2wuc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCAwKTsKK2dsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5
KHZlcnRleExvYyk7CitnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKK2Rl
YnVnKCJFbmFibGUgdmVydGljZXMsIHZhbGlkIik7CitzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScs
ICcwJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywg
MywgZ2wuVU5TSUdORURfU0hPUlQsIDApJyk7CitzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcw
Jyk7CitkZWJ1ZygiRW5hYmxlIG5vcm1hbHMsIG91dC1vZi1yYW5nZSIpOworZ2wudmVydGV4QXR0
cmliUG9pbnRlcihub3JtYWxMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAqIGdsLnNpemVJbkJ5
dGVzKGdsLkZMT0FUKSwgNCAqIGdsLnNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7CitnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheShub3JtYWxMb2MpOworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAn
MCcpOworc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMs
IGdsLlVOU0lHTkVEX1NIT1JULCAwKScpOworc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wu
SU5WQUxJRF9PUEVSQVRJT04nKTsKKworZGVidWcoIlRlc3Qgd2l0aCBlbmFibGVkIGF0dHJpYnV0
ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byBjdXJyZW50IHByb2dyYW0iKTsKKworZ2wuZGlzYWJs
ZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7Cit2YXIgZXh0cmFMb2MgPSBNYXRoLm1heCh2
ZXJ0ZXhMb2MsIG5vcm1hbExvYykgKyAxOworZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoZXh0
cmFMb2MpOworZGVidWcoIkVuYWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBudWxsIik7Citz
aG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJh
d0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfU0hPUlQsIDApJyk7CitzaG91
bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5JTlZBTElEX09QRVJBVElPTicpOworZGVidWcoIkVu
YWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIiKTsK
K2dsLnZlcnRleEF0dHJpYlBvaW50ZXIoZXh0cmFMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAq
IGdsLnNpemVJbkJ5dGVzKGdsLkZMT0FUKSwgNCAqIGdsLnNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7
CitzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7CitzaG91bGRCZVVuZGVmaW5lZCgnZ2wu
ZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfU0hPUlQsIDApJyk7Citz
aG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KIAogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmh0bWwJKHJldmlz
aW9uIDYzMjQ4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3Qt
YmVoYXZpb3VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw0MyBAQAogPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAKLTxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgY2FsbGluZyBXZWJHTCBBUElzIHdpdGhvdXQgcHJv
dmlkaW5nIHRoZSBuZWNlc3Nhcnkgb2JqZWN0cyIpOworCit2YXIgY29udGV4dCA9IGNyZWF0ZTNE
RGVidWdDb250ZXh0KCk7Cit2YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4
dCk7Cit2YXIgc2hhZGVyID0gbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGNvbnRleHQpOworCitz
aG91bGRUaHJvdygiY29udGV4dC5jb21waWxlU2hhZGVyKCkiKTsKK3Nob3VsZFRocm93KCJjb250
ZXh0LmxpbmtQcm9ncmFtKCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmF0dGFjaFNoYWRlcigp
Iik7CitzaG91bGRUaHJvdygiY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdW5kZWZpbmVk
KSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuYXR0YWNoU2hhZGVyKHVuZGVmaW5lZCwgc2hhZGVy
KSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIHVuZGVmaW5l
ZCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmRldGFjaFNoYWRlcih1bmRlZmluZWQsIHNoYWRl
cikiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LnNoYWRlclNvdXJjZSgpIik7CitzaG91bGRUaHJv
dygiY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVkLCAnZm9vJykiKTsKK3Nob3VsZFRocm93
KCJjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbih1bmRlZmluZWQsIDAsICdmb28nKSIpOworc2hv
dWxkQmVVbmRlZmluZWQoImNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwg
MCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCAwKSIpOworc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQuYmluZFJlbmRl
cmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJj
b250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgMCkiKTsKKy8vIFRoZSBmb2xs
b3dpbmcgdHdvIHRocm93IGV4Y2VwdGlvbnMgYmVjYXVzZSBjb25jZXB0dWFsbHkgbm8KKy8vIGZy
YW1lYnVmZmVyIGlzIGJvdW5kIGF0IHRoaXMgcG9pbnQuIEluIHJlYWxpdHkgdGhlIFdlYkdMCisv
LyBpbXBsZW1lbnRhdGlvbidzIGludGVybmFsIGZyYW1lYnVmZmVyIGlzIGJvdW5kLCBidXQgd2Ug
Y2FuJ3QgYWxsb3cKKy8vIHVzZXIgY29kZSB0byBtYW5pcHVsYXRlIGl0Lgorc2hvdWxkVGhyb3co
ImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29u
dGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkiKTsKK3Nob3Vs
ZFRocm93KCJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIs
IGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMCkiKTsK
K3Nob3VsZFRocm93KCJjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIodW5kZWZpbmVkLCAwKSIp
Oworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2codW5kZWZpbmVkLCAwKSIp
Oworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKHVuZGVmaW5lZCwgMCki
KTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmdldFNoYWRlckluZm9Mb2codW5kZWZpbmVkLCAwKSIp
Oworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0U2hhZGVyU291cmNlKHVuZGVmaW5lZCkiKTsKK3No
b3VsZFRocm93KCJjb250ZXh0LmdldFVuaWZvcm0odW5kZWZpbmVkLCAwKSIpOworc2hvdWxkVGhy
b3coImNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuZGVmaW5lZCwgJ2ZvbycpIik7CisKK3N1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KIAogPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC11bmlmb3JtLWxvY2F0aW9uLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC11bmlmb3Jt
LWxvY2F0aW9uLmh0bWwJKHJldmlzaW9uIDYzMjQ4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvbnVsbC11bmlmb3JtLWxvY2F0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgs
NyArOCw2MSBAQAogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CiAKLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbnVsbC11bmlmb3JtLWxvY2F0
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgY2FsbGluZyB0
aGUgdmFyaW91cyB1bmlmb3JtW01hdHJpeF0qIEFQSXMgd2l0aCBhIG51bGwgdW5pZm9ybSBsb2Nh
dGlvbiIpOworCit2YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoKTsKK3ZhciBwcm9ncmFtID0gbG9h
ZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKK3Nob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5P
X0VSUk9SIik7CitzaG91bGRCZVVuZGVmaW5lZCgiZ2wudXNlUHJvZ3JhbShwcm9ncmFtKSIpOwor
dmFyIGZsb2F0QXJyYXkgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsxLCAyLCAzLCA0XSk7Cit2YXIg
aW50QXJyYXkgPSBuZXcgV2ViR0xJbnRBcnJheShbMSwgMiwgMywgNF0pOworCitmdW5jdGlvbiBj
YWxsVW5pZm9ybUZ1bmN0aW9uKG5hbWUpIHsKKyAgICB2YXIgaXNBcnJheVZhcmlhbnQgPSAobmFt
ZS5jaGFyQXQobmFtZS5sZW5ndGggLSAxKSA9PSAndicpOworICAgIHZhciBpc01hdHJpeCA9IChu
YW1lLmluZGV4T2YoIk1hdHJpeCIpICE9IC0xKTsKKyAgICB2YXIgaXNGbG9hdCA9CisgICAgICAg
IChuYW1lLmNoYXJBdChuYW1lLmxlbmd0aCAtIDEpID09ICdmJyB8fAorICAgICAgICAgbmFtZS5j
aGFyQXQobmFtZS5sZW5ndGggLSAyKSA9PSAnZicpOworICAgIHZhciBzaXplSW5kZXggPSAoaXNB
cnJheVZhcmlhbnQgPyBuYW1lLmxlbmd0aCAtIDMgOiBuYW1lLmxlbmd0aCAtIDIpOworICAgIHZh
ciBzaXplID0gcGFyc2VJbnQobmFtZS5zdWJzdHJpbmcoc2l6ZUluZGV4LCBzaXplSW5kZXggKyAx
KSk7CisgICAgLy8gSW5pdGlhbGl6ZSBhcmd1bWVudCBsaXN0IHdpdGggbnVsbCB1bmlmb3JtIGxv
Y2F0aW9uCisgICAgdmFyIGFyZ3MgPSBbIG51bGwgXTsKKyAgICBpZiAoaXNBcnJheVZhcmlhbnQp
IHsKKyAgICAgICAgLy8gQ2FsbCB2YXJpYW50IHdoaWNoIHRha2VzIHZhbHVlcyBhcyBhcnJheQor
ICAgICAgICBpZiAoaXNNYXRyaXgpIHsKKyAgICAgICAgICAgIHNpemUgPSBzaXplICogc2l6ZTsK
KyAgICAgICAgICAgIGFyZ3MucHVzaChmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGFy
cmF5ID0gKGlzRmxvYXQgPyBuZXcgV2ViR0xGbG9hdEFycmF5KHNpemUpIDogbmV3IFdlYkdMSW50
QXJyYXkoc2l6ZSkpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgewor
ICAgICAgICAgICAgYXJyYXlbaV0gPSBpOworICAgICAgICB9CisgICAgICAgIGFyZ3MucHVzaChh
cnJheSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQ2FsbCB2YXJpYW50IHdoaWNoIHRha2Vz
IHZhbHVlcyBhcyBwYXJhbWV0ZXJzCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsg
aSsrKSB7CisgICAgICAgICAgICBhcmdzLnB1c2goaSk7CisgICAgICAgIH0KKyAgICB9CisgICAg
dmFyIGZ1bmMgPSBnbFtuYW1lXTsKKyAgICByZXR1cm4gZnVuYy5hcHBseShnbCwgYXJncyk7Cit9
CisKK3ZhciBmdW5jcyA9IFsgInVuaWZvcm0xZiIsICJ1bmlmb3JtMWZ2IiwgInVuaWZvcm0xaSIs
ICJ1bmlmb3JtMWl2IiwKKyAgICAgICAgICAgICAgInVuaWZvcm0yZiIsICJ1bmlmb3JtMmZ2Iiwg
InVuaWZvcm0yaSIsICJ1bmlmb3JtMml2IiwKKyAgICAgICAgICAgICAgInVuaWZvcm0zZiIsICJ1
bmlmb3JtM2Z2IiwgInVuaWZvcm0zaSIsICJ1bmlmb3JtM2l2IiwKKyAgICAgICAgICAgICAgInVu
aWZvcm00ZiIsICJ1bmlmb3JtNGZ2IiwgInVuaWZvcm00aSIsICJ1bmlmb3JtNGl2IiwKKyAgICAg
ICAgICAgICAgInVuaWZvcm1NYXRyaXgyZnYiLCAidW5pZm9ybU1hdHJpeDNmdiIsICJ1bmlmb3Jt
TWF0cml4NGZ2IiBdOworZm9yICh2YXIgaSA9IDA7IGkgPCBmdW5jcy5sZW5ndGg7IGkrKykgewor
ICAgIGNhbGxTdHJpbmcgPSAiY2FsbFVuaWZvcm1GdW5jdGlvbignIiArIGZ1bmNzW2ldICsgIicp
IjsKKyAgICBzaG91bGRCZVVuZGVmaW5lZChjYWxsU3RyaW5nKTsKKyAgICBzaG91bGRCZSgiZ2wu
Z2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworfQorCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+CiAKIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3VuaWZvcm0tbG9jYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC91bmlmb3JtLWxvY2F0aW9uLmh0bWwJKHJldmlzaW9uIDYzMjQ4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdW5pZm9ybS1sb2NhdGlvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNDYgQEAKIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCi08c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3VuaWZvcm0tbG9jYXRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0cyBXZWJHTCBBUElzIHJlbGF0ZWQgdG8gc2hhZGVyIHVuaWZvcm1zIik7CisKK3ZhciBj
b250ZXh0QSA9IGNyZWF0ZTNERGVidWdDb250ZXh0KCk7Cit2YXIgY29udGV4dEIgPSBjcmVhdGUz
RERlYnVnQ29udGV4dCgpOwordmFyIHByb2dyYW1BMSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29u
dGV4dEEpOwordmFyIHByb2dyYW1BMiA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4dEEpOwor
dmFyIHByb2dyYW1CID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0Qik7Cit2YXIgcHJvZ3Jh
bVMgPSBsb2FkUHJvZ3JhbShjb250ZXh0QSwgInJlc291cmNlcy9zdHJ1Y3RVbmlmb3JtU2hhZGVy
LnZlcnQiLCAicmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVyLmZyYWciKTsKK3ZhciBwcm9ncmFtViA9
IGxvYWRQcm9ncmFtKGNvbnRleHRBLCAicmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0
IiwgInJlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7Cit2YXIgbG9jYXRpb25BID0g
Y29udGV4dEEuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW1BMSwgJ3VfbW9kZWxWaWV3UHJvak1h
dHJpeCcpOwordmFyIGxvY2F0aW9uQiA9IGNvbnRleHRCLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9n
cmFtQiwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcpOwordmFyIGxvY2F0aW9uU3ggPSBjb250ZXh0
QS5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbVMsICJ1X3N0cnVjdC54Iik7Cit2YXIgbG9jYXRp
b25BcnJheTAgPSBjb250ZXh0QS5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbVMsICJ1X2FycmF5
WzBdIik7Cit2YXIgbG9jYXRpb25WZWM0ID0gY29udGV4dEEuZ2V0VW5pZm9ybUxvY2F0aW9uKHBy
b2dyYW1WLCAiZnZhbDQiKTsKKwordmFyIHZlYyA9IFsxLCAyLCAzLCA0XTsKK3ZhciBtYXQgPSBb
MSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdOwor
CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dEEudXNlUHJvZ3JhbShwcm9ncmFtQTIpIik7Citz
aG91bGRUaHJvdygiY29udGV4dEEudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbkEsIGZhbHNlLCBt
YXQpIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dEEudXNlUHJvZ3JhbShwcm9ncmFtQTEp
Iik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dEEudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlv
bkEsIGZhbHNlLCBtYXQpIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dEEudW5pZm9ybU1h
dHJpeDRmdihudWxsLCBmYWxzZSwgbWF0KSIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4
dEEudXNlUHJvZ3JhbShwcm9ncmFtUykiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0QS51
bmlmb3JtMWkobG9jYXRpb25TeCwgMykiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0QS51
bmlmb3JtMWYobG9jYXRpb25BcnJheTAsIDQuMCkiKTsKKworc2hvdWxkQmUoImNvbnRleHRBLmdl
dFVuaWZvcm0ocHJvZ3JhbVMsIGxvY2F0aW9uU3gpIiwgIjMiKTsKK3Nob3VsZEJlKCJjb250ZXh0
QS5nZXRVbmlmb3JtKHByb2dyYW1TLCBsb2NhdGlvbkFycmF5MCkiLCAiNC4wIik7CisKK3Nob3Vs
ZEJlVW5kZWZpbmVkKCJjb250ZXh0QS51c2VQcm9ncmFtKHByb2dyYW1WKSIpOworc2hvdWxkQmVV
bmRlZmluZWQoImNvbnRleHRBLnVuaWZvcm00ZnYobG9jYXRpb25WZWM0LCB2ZWMpIik7CitzaG91
bGRCZSgiY29udGV4dEEuZ2V0VW5pZm9ybShwcm9ncmFtViwgbG9jYXRpb25WZWM0KSIsICJ2ZWMi
KTsKKworc2hvdWxkQmVOdWxsKCJjb250ZXh0QS5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbVYs
IFwiSURvbnRFeGlzdFwiKSIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+CiAKIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Nj
cmlwdC10ZXN0cy9lcnJvci1yZXBvcnRpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2Vycm9yLXJlcG9ydGluZy5qcwkocmV2aXNp
b24gNjMyNDgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMv
ZXJyb3ItcmVwb3J0aW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUzICswLDAgQEAKLWRlc2Ny
aXB0aW9uKCJUZXN0cyBnZW5lcmF0aW9uIG9mIHN5bnRoZXRpYyBhbmQgcmVhbCBHTCBlcnJvcnMi
KTsKLQotdmFyIGNvbnRleHQgPSBjcmVhdGUzRENvbnRleHQoKTsKLXZhciBwcm9ncmFtID0gbG9h
ZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0KTsKLQotLy8gT3RoZXIgdGVzdHMgaW4gdGhpcyBkaXJl
Y3RvcnkgbGlrZSBnZXRBY3RpdmVUZXN0IGFuZAotLy8gaW5jb3JyZWN0LWNvbnRleHQtb2JqZWN0
LWJlaGF2aW91ciBhbHJlYWR5IHRlc3QgdGhlIHJhaXNpbmcgb2YgbWFueQotLy8gc3ludGhldGlj
IEdMIGVycm9ycy4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSByYWlzaW5nIG9mIGNlcnRhaW4KLS8v
IGtub3duIHJlYWwgR0wgZXJyb3JzLCBhbmQgY29udGFpbnMgYSBmZXcgcmVncmVzc2lvbiB0ZXN0
cyBmb3IgYnVncwotLy8gZGlzY292ZXJlZCBpbiB0aGUgc3ludGhldGljIGVycm9yIGdlbmVyYXRp
b24gYW5kIGluIHRoZSBXZWJHTAotLy8gaW1wbGVtZW50YXRpb24gaXRzZWxmLgotCi1zaG91bGRC
ZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKLQotZGVidWcoIlRlc3RpbmcgZ2V0QWN0aXZl
QXR0cmliIik7Ci0vLyBTeW50aGV0aWMgT3BlbkdMIGVycm9yCi1zaG91bGRCZU51bGwoImNvbnRl
eHQuZ2V0QWN0aXZlQXR0cmliKG51bGwsIDIpIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJv
cigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOwotLy8gRXJyb3Igc3RhdGUgc2hvdWxkIGJl
IGNsZWFyIGJ5IHRoaXMgcG9pbnQKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29u
dGV4dC5OT19FUlJPUiIpOwotLy8gUmVhbCBPcGVuR0wgZXJyb3IKLXNob3VsZEJlTnVsbCgiY29u
dGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikiKTsKLXNob3VsZEJlKCJjb250ZXh0Lmdl
dEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7Ci0vLyBFcnJvciBzdGF0ZSBzaG91
bGQgYmUgY2xlYXIgYnkgdGhpcyBwb2ludAotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIs
ICJjb250ZXh0Lk5PX0VSUk9SIik7Ci0KLWRlYnVnKCJUZXN0aW5nIGdldEFjdGl2ZVVuaWZvcm0i
KTsKLS8vIFN5bnRoZXRpYyBPcGVuR0wgZXJyb3IKLXNob3VsZEJlTnVsbCgiY29udGV4dC5nZXRB
Y3RpdmVVbmlmb3JtKG51bGwsIDApIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwg
ImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOwotLy8gRXJyb3Igc3RhdGUgc2hvdWxkIGJlIGNsZWFy
IGJ5IHRoaXMgcG9pbnQKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5O
T19FUlJPUiIpOwotLy8gUmVhbCBPcGVuR0wgZXJyb3IKLXNob3VsZEJlTnVsbCgiY29udGV4dC5n
ZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDUwKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJy
b3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUiKTsKLS8vIEVycm9yIHN0YXRlIHNob3VsZCBi
ZSBjbGVhciBieSB0aGlzIHBvaW50Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNv
bnRleHQuTk9fRVJST1IiKTsKLQotZGVidWcoIlRlc3RpbmcgYXR0ZW1wdHMgdG8gbWFuaXB1bGF0
ZSB0aGUgZGVmYXVsdCBmcmFtZWJ1ZmZlciIpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQu
YmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIDApIik7Ci1zaG91bGRCZSgiY29u
dGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuTk9fRVJST1IiKTsKLXNob3VsZEJlVW5kZWZpbmVk
KCJjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNv
bnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIDApIik7Ci0vLyBT
eW50aGV0aWMgT3BlbkdMIGVycm9yCi1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNv
bnRleHQuSU5WQUxJRF9PUEVSQVRJT04iKTsKLS8vIEVycm9yIHN0YXRlIHNob3VsZCBiZSBjbGVh
ciBieSB0aGlzIHBvaW50Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQu
Tk9fRVJST1IiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRl
eHQuVEVYVFVSRV8yRCwgMCwgMCkiKTsKLS8vIFN5bnRoZXRpYyBPcGVuR0wgZXJyb3IKLXNob3Vs
ZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX09QRVJBVElPTiIpOwot
Ly8gRXJyb3Igc3RhdGUgc2hvdWxkIGJlIGNsZWFyIGJ5IHRoaXMgcG9pbnQKLXNob3VsZEJlKCJj
b250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5OT19FUlJPUiIpOwotCi1zdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0
LXRlc3RzL2dldC1hY3RpdmUtdGVzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0LWFjdGl2ZS10ZXN0LmpzCShyZXZpc2lvbiA2
MzI0OCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nZXQt
YWN0aXZlLXRlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsOTUgKzAsMCBAQAotZGVzY3JpcHRp
b24oIlRlc3Qgb2YgZ2V0QWN0aXZlQXR0cmliIGFuZCBnZXRBY3RpdmVVbmlmb3JtIik7Ci0KLXZh
ciBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KCk7Ci1zaG91bGRCZU5vbk51bGwoImNvbnRleHQi
KTsKLXZhciBjb250ZXh0MiA9IGNyZWF0ZTNEQ29udGV4dCgpOwotc2hvdWxkQmVOb25OdWxsKCJj
b250ZXh0MiIpOwotdmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQpOwot
c2hvdWxkQmVOb25OdWxsKCJwcm9ncmFtIik7Ci12YXIgcHJvZ3JhbTIgPSBsb2FkUHJvZ3JhbShj
b250ZXh0MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZXMvaW50QXJyYXlV
bmlmb3JtU2hhZGVyLnZlcnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNl
cy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7Ci1zaG91bGRCZU5vbk51bGwoInByb2dyYW0yIik7
Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuTk9fRVJST1IiKTsKLXNo
b3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigpIiwgImNvbnRleHQyLk5PX0VSUk9SIik7Ci0KLXNo
b3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkubmFtZSIsICIndV9t
b2RlbFZpZXdQcm9qTWF0cml4JyIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9y
bShwcm9ncmFtLCAwKS50eXBlIiwgImNvbnRleHQuRkxPQVRfTUFUNCIpOwotc2hvdWxkQmUoImNv
bnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5zaXplIiwgIjEiKTsKLXNob3VsZEJl
TnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDEpIik7Ci1zaG91bGRCZSgi
Y29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOwotc2hvdWxkQmVO
dWxsKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIik7Ci1zaG91bGRCZSgi
Y29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOwotc2hvdWxkQmVO
dWxsKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0obnVsbCwgMCkiKTsKLXNob3VsZEJlKCJjb250
ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7Ci0KLS8vIHdlIGRvbid0
IGtub3cgdGhlIG9yZGVyIHRoZSBhdHRyaWJzIHdpbGwgYXBwZWFyLgotdmFyIGluZm8gPSBbCi0g
ICAgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCksCi0gICAgY29udGV4dC5nZXRB
Y3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkKLV07Ci1mb3IgKHZhciBpaSA9IDA7IGlpIDwgaW5mby5s
ZW5ndGg7ICsraWkpCi0gICAgc2hvdWxkQmVOb25OdWxsKCJpbmZvW2lpXSIpOwotCi12YXIgZXhw
ZWN0ZWQgPSBbCi0gICAgeyBuYW1lOiAnYV9ub3JtYWwnLCB0eXBlOiBjb250ZXh0LkZMT0FUX1ZF
QzMsIHNpemU6IDEgfSwKLSAgICB7IG5hbWU6ICdhX3ZlcnRleCcsIHR5cGU6IGNvbnRleHQuRkxP
QVRfVkVDNCwgc2l6ZTogMSB9Ci1dOwotCi1pZiAoaW5mb1swXS5uYW1lICE9IGV4cGVjdGVkWzBd
Lm5hbWUpIHsKLSAgICB0ID0gaW5mb1swXTsKLSAgICBpbmZvWzBdID0gaW5mb1sxXTsKLSAgICBp
bmZvWzFdID0gdDsKLX0KLQotZm9yICh2YXIgaWkgPSAwOyBpaSA8IGluZm8ubGVuZ3RoOyArK2lp
KSB7Ci0gICAgc2hvdWxkQmUoImluZm9baWldLm5hbWUiLCAiZXhwZWN0ZWRbaWldLm5hbWUiKTsK
LSAgICBzaG91bGRCZSgiaW5mb1tpaV0udHlwZSIsICJleHBlY3RlZFtpaV0udHlwZSIpOwotICAg
IHNob3VsZEJlKCJpbmZvW2lpXS5zaXplIiwgImV4cGVjdGVkW2lpXS5zaXplIik7Ci19Ci0KLS8v
IHdlIGRvbid0IGtub3cgdGhlIG9yZGVyIHRoZSB1bmlmb3JtcyB3aWxsIGFwcGVhci4KLXZhciBp
bmZvMiA9IFsKLSAgICBjb250ZXh0Mi5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0yLCAwKSwKLSAg
ICBjb250ZXh0Mi5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0yLCAxKQotXTsKLWZvciAodmFyIGlp
ID0gMDsgaWkgPCBpbmZvMi5sZW5ndGg7ICsraWkpCi0gICAgc2hvdWxkQmVOb25OdWxsKCJpbmZv
MltpaV0iKTsKLQotdmFyIGV4cGVjdGVkMiA9IFsKLSAgICB7IG5hbWU6ICdpdmFsJywgdHlwZTog
Y29udGV4dDIuSU5ULCBzaXplOiAxIH0sCi0gICAgeyBuYW1lOiAnaXZhbDJbMF0nLCB0eXBlOiBj
b250ZXh0Mi5JTlQsIHNpemU6IDIgfQotXTsKLQotaWYgKGluZm8yWzBdLm5hbWUgIT0gZXhwZWN0
ZWQyWzBdLm5hbWUpIHsKLSAgICB0ID0gaW5mbzJbMF07Ci0gICAgaW5mbzJbMF0gPSBpbmZvMlsx
XTsKLSAgICBpbmZvMlsxXSA9IHQ7Ci19Ci0KLWZvciAodmFyIGlpID0gMDsgaWkgPCBpbmZvMi5s
ZW5ndGg7ICsraWkpIHsKLSAgICBzaG91bGRCZSgiaW5mbzJbaWldLm5hbWUiLCAiZXhwZWN0ZWQy
W2lpXS5uYW1lIik7Ci0gICAgc2hvdWxkQmUoImluZm8yW2lpXS50eXBlIiwgImV4cGVjdGVkMltp
aV0udHlwZSIpOwotICAgIHNob3VsZEJlKCJpbmZvMltpaV0uc2l6ZSIsICJleHBlY3RlZDJbaWld
LnNpemUiKTsKLX0KLQotc2hvdWxkQmVOdWxsKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9n
cmFtLCAyKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFM
SURfVkFMVUUiKTsKLXNob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgLTEpIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJ
RF9WQUxVRSIpOwotc2hvdWxkQmVOdWxsKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihudWxsLCAw
KSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFM
VUUiKTsKLQotc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCkiLCAiY29udGV4dC5OT19FUlJP
UiIpOwotc2hvdWxkQmVOdWxsKCJjb250ZXh0Mi5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCki
KTsKLXNob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigpIiwgImNvbnRleHQyLklOVkFMSURfT1BF
UkFUSU9OIik7Ci1zaG91bGRCZU51bGwoImNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3Jh
bSwgMCkiKTsKLXNob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigpIiwgImNvbnRleHQyLklOVkFM
SURfT1BFUkFUSU9OIik7Ci0KLWNvbnRleHQuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKLXNob3Vs
ZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIik7Ci1zaG91bGRC
ZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOwotc2hvdWxk
QmVOdWxsKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKSIpOwotc2hvdWxkQmUo
ImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUiKTsKLQotc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2wtb2JqZWN0LWdldC1j
YWxscy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3Jp
cHQtdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qcwkocmV2aXNpb24gNjMyNDgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxs
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwyMjQgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3Qg
b2YgZ2V0IGNhbGxzIGFnYWluc3QgR0wgb2JqZWN0cyBsaWtlIGdldEJ1ZmZlclBhcmFtZXRlciwg
ZXRjLiIpOwotCi12YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoKTsKLQotdmFyIGVycm9yVmVydCA9
IGdsLmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKTsKLWdsLnNoYWRlclNvdXJjZShlcnJv
clZlcnQsICJJIGFtIGEgYmFkIHZlcnRleCBzaGFkZXIiKTsKLWdsLmNvbXBpbGVTaGFkZXIoZXJy
b3JWZXJ0KTsKLQotdmFyIGVycm9yRnJhZyA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9T
SEFERVIpOwotZ2wuc2hhZGVyU291cmNlKGVycm9yRnJhZywgIkkgYW0gYSBiYWQgZnJhZ21lbnQg
c2hhZGVyIik7Ci1nbC5jb21waWxlU2hhZGVyKGVycm9yRnJhZyk7Ci0KLXZhciBzdGFuZGFyZFZl
cnQgPSBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpOwotdmFyIHN0YW5kYXJkRnJhZyA9IGxv
YWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGdsKTsKLXZhciBzdGFuZGFyZFByb2dyYW0gPSBnbC5j
cmVhdGVQcm9ncmFtKCk7Ci1nbC5hdHRhY2hTaGFkZXIoc3RhbmRhcmRQcm9ncmFtLCBzdGFuZGFy
ZFZlcnQpOwotZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3JhbSwgc3RhbmRhcmRGcmFnKTsK
LWdsLmxpbmtQcm9ncmFtKHN0YW5kYXJkUHJvZ3JhbSk7Ci0KLS8vIFRlc3QgcHJvZ3JhbSBhbmQg
c2hhZGVyIGdldHMKLXZhciBwYXJzZUVycm9yID0gIkVSUk9SOiAwOjE6ICdJJyA6IHN5bnRheCBl
cnJvciBzeW50YXggZXJyb3JcbkVSUk9SOiBQYXJzZXIgZm91bmQgbm8gY29kZSB0byBjb21waWxl
IGluIHNvdXJjZSBzdHJpbmdzLlxuIjsKLXZhciBlcnJvclZlcnRTdHJpbmcgPSAiSSBhbSBhIGJh
ZCB2ZXJ0ZXggc2hhZGVyXG4iOwotdmFyIGVycm9yRnJhZ1N0cmluZyA9ICJJIGFtIGEgYmFkIGZy
YWdtZW50IHNoYWRlclxuIjsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtSW5mb0xvZyhzdGFuZGFy
ZFByb2dyYW0pJywgJyIiJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0U2hhZGVySW5mb0xvZyhlcnJvclZl
cnQpJywgJ3BhcnNlRXJyb3InKTsKLXNob3VsZEJlKCdnbC5nZXRTaGFkZXJJbmZvTG9nKGVycm9y
RnJhZyknLCAncGFyc2VFcnJvcicpOwotc2hvdWxkQmUoJ2dsLmdldFNoYWRlclNvdXJjZShlcnJv
clZlcnQpJywgJ2Vycm9yVmVydFN0cmluZycpOwotc2hvdWxkQmUoJ2dsLmdldFNoYWRlclNvdXJj
ZShlcnJvckZyYWcpJywgJ2Vycm9yRnJhZ1N0cmluZycpOwotdmFyIHNoYWRlcnMgPSBnbC5nZXRB
dHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRQcm9ncmFtKTsKLXNob3VsZEJlKCdzaGFkZXJzLmxlbmd0
aCcsICcyJyk7Ci1zaG91bGRCZVRydWUoJ3NoYWRlcnNbMF0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNo
YWRlcnNbMV0gPT0gc3RhbmRhcmRGcmFnIHx8IHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRWZXJ0ICYm
IHNoYWRlcnNbMF0gPT0gc3RhbmRhcmRGcmFnJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScs
ICdnbC5OT19FUlJPUicpOwotc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmdldEF0dGFjaGVkU2hhZGVy
cyhudWxsKScpOwotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuSU5WQUxJRF9WQUxVRScp
Owotc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFZlcnQp
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5JTlZBTElEX1ZBTFVFJyk7Ci0KLS8v
IFRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVyCi12YXIgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7
Ci1nbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyKTsKLWdsLmJ1ZmZlckRhdGEo
Z2wuQVJSQVlfQlVGRkVSLCAxNiwgZ2wuRFlOQU1JQ19EUkFXKTsKLXNob3VsZEJlKCdnbC5nZXRC
dWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfU0laRSknLCAnMTYnKTsK
LXNob3VsZEJlKCdnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZG
RVJfVVNBR0UpJywgJ2dsLkRZTkFNSUNfRFJBVycpOwotCi0vLyBUZXN0IGdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcgotdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci1n
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLWdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwKLSAgICAgICAgICAgICAgbmV3IFdlYkdMVW5zaWduZWRCeXRlQXJyYXkoWzAsIDAsIDAsIDI1
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAy
NTUsIDI1NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwg
MjU1LCAyNTUsIDI1NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAsIDAsIDAsIDI1NV0pKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci1nbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCBudWxsKTsKLXZhciBmcmFtZWJ1ZmZlciA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCk7Ci1nbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsK
LWdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hN
RU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7Ci12YXIgcmVuZGVyYnVmZmVyID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7Ci1n
bC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsKLXNob3Vs
ZEJlKCdnbC5nZXRFcnJvcigpJywgJzAnKTsKLWdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVO
REVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgMiwgMik7Ci1zaG91bGRCZSgnZ2wuZ2V0
RXJyb3IoKScsICcwJyk7Ci1nbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwot
Ly8gRklYTUU6IG9uIHNvbWUgbWFjaGluZXMgKGluIHBhcnRpY3VsYXIgdGhlIFdlYktpdCBjb21t
aXQgYm90cykgdGhlCi0vLyBmcmFtZWJ1ZmZlciBzdGF0dXMgaXMgRlJBTUVCVUZGRVJfVU5TVVBQ
T1JURUQ7IG1vcmUgaW52ZXN0aWdhdGlvbgotLy8gaXMgbmVlZGVkIHdoeSB0aGlzIGlzIHRoZSBj
YXNlLCBiZWNhdXNlIHRoZSBGQk8gYWxsb2NhdGVkCi0vLyBpbnRlcm5hbGx5IGJ5IHRoZSBXZWJL
aXQgaW1wbGVtZW50YXRpb24gaGFzIGFsbW9zdCBpZGVudGljYWwKLS8vIHBhcmFtZXRlcnMgdG8g
dGhpcyBvbmUuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4
NDMuCi0vL3Nob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOwotc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVO
VDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLlRFWFRVUkUn
KTsKLXNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FKScsICd0ZXh0dXJlJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMKScsICcwJyk7Ci1zaG91bGRC
ZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NV
QkVfTUFQX0ZBQ0UpJywgJzAnKTsKLQotc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7Ci1z
aG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVD
VF9OQU1FKScsICdyZW5kZXJidWZmZXInKTsKLQotLy8gVGVzdCBnZXRQcm9ncmFtUGFyYW1ldGVy
Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkRF
TEVURV9TVEFUVVMpJywgJ2ZhbHNlJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihzdGFuZGFyZFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci1zaG91bGRCZSgn
dHlwZW9mIGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5WQUxJREFU
RV9TVEFUVVMpJywgJyJib29sZWFuIicpOwotc2hvdWxkQmUoJ3R5cGVvZiBnbC5nZXRQcm9ncmFt
UGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuSU5GT19MT0dfTEVOR1RIKScsICcibnVtYmVy
IicpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBn
bC5BVFRBQ0hFRF9TSEFERVJTKScsICcyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkFDVElWRV9BVFRSSUJVVEVTKScsICcyJyk7Ci1zaG91
bGRCZU5vblplcm8oJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5B
Q1RJVkVfQVRUUklCVVRFX01BWF9MRU5HVEgpJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkFDVElWRV9VTklGT1JNUyknLCAnMScpOwotc2hv
dWxkQmVOb25aZXJvKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wu
QUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCknKTsKLQotLy8gVGVzdCBnZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIKLXNob3VsZEJlKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpJywgJzInKTsKLXNob3VsZEJlKCdnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJ
R0hUKScsICcyJyk7Ci0vLyBOb3RlOiB3ZSBjYW4ndCB0ZXN0IHRoZSBhY3R1YWwgdmFsdWUgb2Yg
dGhlIGludGVybmFsIGZvcm1hdCBzaW5jZQotLy8gdGhlIGltcGxlbWVudGF0aW9uIGlzIGFsbG93
ZWQgdG8gY2hhbmdlIGl0Lgotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKScp
Owotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSknKTsKLXZhciBjb2xvcmJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnMCcp
OwotZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7Ci1z
aG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7Ci1nbC5yZW5kZXJidWZmZXJTdG9yYWdlKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDIsIDIpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVE
X1NJWkUpJyk7Ci1zaG91bGRCZU5vblplcm8oJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihn
bC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKScpOwotc2hvdWxkQmVO
b25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5S
RU5ERVJCVUZGRVJfQkxVRV9TSVpFKScpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0la
RSknKTsKLQotLy8gVGVzdCBnZXRTaGFkZXJQYXJhbWV0ZXIKLXNob3VsZEJlKCdnbC5nZXRTaGFk
ZXJQYXJhbWV0ZXIoc3RhbmRhcmRWZXJ0LCBnbC5TSEFERVJfVFlQRSknLCAnZ2wuVkVSVEVYX1NI
QURFUicpOwotc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZlcnQsIGds
LkRFTEVURV9TVEFUVVMpJywgJ2ZhbHNlJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1l
dGVyKHN0YW5kYXJkVmVydCwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3RydWUnKTsKLXNob3VsZEJl
KCd0eXBlb2YgZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuSU5GT19MT0df
TEVOR1RIKScsICcibnVtYmVyIicpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRTaGFkZXJQYXJh
bWV0ZXIoc3RhbmRhcmRWZXJ0LCBnbC5TSEFERVJfU09VUkNFX0xFTkdUSCknKTsKLQotLy8gVGVz
dCBnZXRUZXhQYXJhbWV0ZXIKLWdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJh
bWVidWZmZXIpOwotZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci1nbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVB
UkVTVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTkVBUkVTVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotc2hvdWxkQmUo
J2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIp
JywgJ2dsLk5FQVJFU1QnKTsKLXNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFSRVNUJyk7Ci1zaG91bGRCZSgn
Z2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TKScsICdn
bC5DTEFNUF9UT19FREdFJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9UKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci0KLS8vIFRl
c3QgZ2V0VW5pZm9ybSB3aXRoIGFsbCB2YXJpYW50cyBvZiBkYXRhIHR5cGVzCi0vLyBCb29sZWFu
IHVuaWZvcm0gdmFyaWFibGVzCi12YXIgYm9vbFByb2dyYW0gPSBsb2FkUHJvZ3JhbShnbCwgInJl
c291cmNlcy9ib29sVW5pZm9ybVNoYWRlci52ZXJ0IiwgInJlc291cmNlcy9ub29wVW5pZm9ybVNo
YWRlci5mcmFnIik7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihib29sUHJvZ3Jh
bSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKLXZhciBidmFsTG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbCIpOwotdmFyIGJ2YWwyTG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDIiKTsKLXZhciBidmFsM0xvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWwzIik7Ci12YXIgYnZhbDRMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsNCIpOwotZ2wudXNlUHJvZ3Jh
bShib29sUHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkoYnZhbExvYywgMSk7Ci1nbC51bmlmb3JtMmko
YnZhbDJMb2MsIDEsIDApOwotZ2wudW5pZm9ybTNpKGJ2YWwzTG9jLCAxLCAwLCAxKTsKLWdsLnVu
aWZvcm00aShidmFsNExvYywgMSwgMCwgMSwgMCk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScs
ICcwJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwgYnZhbExvYyknLCAn
dHJ1ZScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2YWwyTG9jKScs
ICdbMSwgMF0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGJvb2xQcm9ncmFtLCBidmFsM0xv
YyknLCAnWzEsIDAsIDFdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwg
YnZhbDRMb2MpJywgJ1sxLCAwLCAxLCAwXScpOwotLy8gSW50ZWdlciB1bmlmb3JtIHZhcmlhYmxl
cwotdmFyIGludFByb2dyYW0gPSBsb2FkUHJvZ3JhbShnbCwgInJlc291cmNlcy9pbnRVbmlmb3Jt
U2hhZGVyLnZlcnQiLCAicmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKLXNob3Vs
ZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGludFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScs
ICd0cnVlJyk7Ci12YXIgaXZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFt
LCAiaXZhbCIpOwotdmFyIGl2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGludFByb2dy
YW0sICJpdmFsMiIpOwotdmFyIGl2YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGludFBy
b2dyYW0sICJpdmFsMyIpOwotdmFyIGl2YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGlu
dFByb2dyYW0sICJpdmFsNCIpOwotZ2wudXNlUHJvZ3JhbShpbnRQcm9ncmFtKTsKLWdsLnVuaWZv
cm0xaShpdmFsTG9jLCAxKTsKLWdsLnVuaWZvcm0yaShpdmFsMkxvYywgMiwgMyk7Ci1nbC51bmlm
b3JtM2koaXZhbDNMb2MsIDQsIDUsIDYpOwotZ2wudW5pZm9ybTRpKGl2YWw0TG9jLCA3LCA4LCA5
LCAxMCk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsTG9jKScsICcxJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5p
Zm9ybShpbnRQcm9ncmFtLCBpdmFsMkxvYyknLCAnWzIsIDNdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsM0xvYyknLCAnWzQsIDUsIDZdJyk7Ci1zaG91bGRCZSgn
Z2wuZ2V0VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsNExvYyknLCAnWzcsIDgsIDksIDEwXScpOwot
Ly8gRmxvYXQgdW5pZm9ybSB2YXJpYWJsZXMKLXZhciBmbG9hdFByb2dyYW0gPSBsb2FkUHJvZ3Jh
bShnbCwgInJlc291cmNlcy9mbG9hdFVuaWZvcm1TaGFkZXIudmVydCIsICJyZXNvdXJjZXMvbm9v
cFVuaWZvcm1TaGFkZXIuZnJhZyIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIo
ZmxvYXRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIGZ2YWxMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9ncmFtLCAiZnZhbCIpOwotdmFyIGZ2YWwyTG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWwyIik7Ci12YXIgZnZh
bDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9ncmFtLCAiZnZhbDMiKTsKLXZh
ciBmdmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJmdmFsNCIp
OwotZ2wudXNlUHJvZ3JhbShmbG9hdFByb2dyYW0pOwotZ2wudW5pZm9ybTFmKGZ2YWxMb2MsIDEx
KTsKLWdsLnVuaWZvcm0yZihmdmFsMkxvYywgMTIsIDEzKTsKLWdsLnVuaWZvcm0zZihmdmFsM0xv
YywgMTQsIDE1LCAxNik7Ci1nbC51bmlmb3JtNGYoZnZhbDRMb2MsIDE3LCAxOCwgMTksIDIwKTsK
LXNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJzAnKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3Jt
KGZsb2F0UHJvZ3JhbSwgZnZhbExvYyknLCAnMTEnKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3Jt
KGZsb2F0UHJvZ3JhbSwgZnZhbDJMb2MpJywgJ1sxMiwgMTNdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwzTG9jKScsICdbMTQsIDE1LCAxNl0nKTsKLXNob3Vs
ZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDRMb2MpJywgJ1sxNywgMTgsIDE5
LCAyMF0nKTsKLS8vIE1hdHJpeCB1bmlmb3JtIHZhcmlhYmxlcwotdmFyIG1hdFByb2dyYW0gPSBs
b2FkUHJvZ3JhbShnbCwgInJlc291cmNlcy9tYXRVbmlmb3JtU2hhZGVyLnZlcnQiLCAicmVzb3Vy
Y2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKG1hdFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci12YXIgbXZhbDJM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwyIik7Ci12YXIgbXZh
bDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwzIik7Ci12YXIg
bXZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWw0Iik7Ci1n
bC51c2VQcm9ncmFtKG1hdFByb2dyYW0pOwotZ2wudW5pZm9ybU1hdHJpeDJmdihtdmFsMkxvYywg
ZmFsc2UsIFsxLCAyLCAzLCA0XSk7Ci1nbC51bmlmb3JtTWF0cml4M2Z2KG12YWwzTG9jLCBmYWxz
ZSwgWzUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXSk7Ci1nbC51bmlmb3JtTWF0cml4NGZ2
KG12YWw0TG9jLCBmYWxzZSwgWzE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XSk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcw
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsMkxvYyknLCAnWzEs
IDIsIDMsIDRdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsM0xv
YyknLCAnWzUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXScpOwotc2hvdWxkQmUoJ2dsLmdl
dFVuaWZvcm0obWF0UHJvZ3JhbSwgbXZhbDRMb2MpJywgJ1sxNCwgMTUsIDE2LCAxNywgMTgsIDE5
LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOV0nKTsKLQotLy8gVGVzdCBn
ZXRWZXJ0ZXhBdHRyaWIKLXZhciBhcnJheSA9IG5ldyBXZWJHTEZsb2F0QXJyYXkoWzEsIDIsIDMs
IDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSk7Ci1nbC5iaW5k
QnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyKTsKLWdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBhcnJheSwgZ2wuRFlOQU1JQ19EUkFXKTsKLS8vIFZlcnRleCBhdHRyaWJ1dGUgMCBp
cyBzcGVjaWFsIGluIHRoYXQgaXQgaGFzIG5vIGN1cnJlbnQgc3RhdGUsIHNvCi0vLyBmZXRjaGlu
ZyBHTF9DVVJSRU5UX1ZFUlRFWF9BVFRSSUIgZ2VuZXJhdGVzIGFuIGVycm9yLiBVc2UgYXR0cmli
dXRlCi0vLyAxIGZvciB0aGVzZSB0ZXN0cyBpbnN0ZWFkLgotZ2wuZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoMSk7Ci1nbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQsIGdsLkZMT0FULCBmYWxzZSwg
MCwgMCk7Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfQlVGRkVSX0JJTkRJTkcpJywgJ2J1ZmZlcicpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRl
eEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpJywgJ3RydWUnKTsKLXNo
b3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpF
KScsICc0Jyk7Ci1zaG91bGRCZSgnKGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1NUUklERSkgPT0gMCkgfHwgKGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJU
RVhfQVRUUklCX0FSUkFZX1NUUklERSkgPT0gNCAqIGdsLnNpemVJbkJ5dGVzKGdsLkZMT0FUKSkn
LCAndHJ1ZScpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1RZUEUpJywgJ2dsLkZMT0FUJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0
cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCknLCAnZmFsc2UnKTsKLWds
LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKLXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRy
aWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKScsICdmYWxzZScpOwotZ2wudmVy
dGV4QXR0cmliNGYoMSwgNSwgNiwgNywgOCk7Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmli
KDEsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQiknLCAnWzUsIDYsIDcsIDhdJyk7Ci1zaG91bGRC
ZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7Ci0KLS8vIFRlc3QgY2FzZXMgd2hlcmUgbmFtZSA9PSAw
Ci1nbC5kZWxldGVUZXh0dXJlKHRleHR1cmUpOwotc2hvdWxkQmVOdWxsKCdnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1F
TlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScpOwotZ2wuZGVsZXRl
UmVuZGVyYnVmZmVyKHJlbmRlcmJ1ZmZlcik7Ci1zaG91bGRCZU51bGwoJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVO
VCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknKTsKLWdsLmRlbGV0ZUJ1
ZmZlcihidWZmZXIpOwotc2hvdWxkQmVOdWxsKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVS
VEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyknKTsKLXNob3VsZEJlKCdnbC5nZXRFcnJv
cigpJywgJzAnKTsKLQotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9pbmNvcnJlY3QtY29udGV4dC1vYmpl
Y3QtYmVoYXZpb3VyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3NjcmlwdC10ZXN0cy9pbmNvcnJlY3QtY29udGV4dC1vYmplY3QtYmVoYXZpb3VyLmpzCShy
ZXZpc2lvbiA2MzI0OCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10
ZXN0cy9pbmNvcnJlY3QtY29udGV4dC1vYmplY3QtYmVoYXZpb3VyLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQxICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0cyBjYWxsaW5nIFdlYkdMIEFQSXMg
d2l0aCBvYmplY3RzIGZyb20gb3RoZXIgY29udGV4dHMiKTsKLQotdmFyIGNvbnRleHRBID0gY3Jl
YXRlM0RDb250ZXh0KCk7Ci12YXIgY29udGV4dEIgPSBjcmVhdGUzRENvbnRleHQoKTsKLXZhciBw
cm9ncmFtQSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4dEEpOwotdmFyIHByb2dyYW1CID0g
bG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0Qik7Ci12YXIgc2hhZGVyQSA9IGxvYWRTdGFuZGFy
ZFZlcnRleFNoYWRlcihjb250ZXh0QSk7Ci12YXIgc2hhZGVyQiA9IGxvYWRTdGFuZGFyZFZlcnRl
eFNoYWRlcihjb250ZXh0Qik7Ci12YXIgdGV4dHVyZUEgPSBjb250ZXh0QS5jcmVhdGVUZXh0dXJl
KCk7Ci12YXIgdGV4dHVyZUIgPSBjb250ZXh0Qi5jcmVhdGVUZXh0dXJlKCk7Ci12YXIgZnJhbWVC
dWZmZXJBID0gY29udGV4dEEuY3JlYXRlRnJhbWVidWZmZXIoKTsKLXZhciBmcmFtZUJ1ZmZlckIg
PSBjb250ZXh0Qi5jcmVhdGVGcmFtZWJ1ZmZlcigpOwotdmFyIHJlbmRlckJ1ZmZlckEgPSBjb250
ZXh0QS5jcmVhdGVSZW5kZXJidWZmZXIoKTsKLXZhciByZW5kZXJCdWZmZXJCID0gY29udGV4dEIu
Y3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci12YXIgbG9jYXRpb25BID0gY29udGV4dEEuZ2V0VW5pZm9y
bUxvY2F0aW9uKHByb2dyYW1BLCAndV9tb2RlbFZpZXdQcm9qTWF0cml4Jyk7Ci12YXIgbG9jYXRp
b25CID0gY29udGV4dEIuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW1CLCAndV9tb2RlbFZpZXdQ
cm9qTWF0cml4Jyk7Ci0KLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29udGV4dEEu
SU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5jb21waWxlU2hhZGVyKHNoYWRlckIpIik7Ci1z
aG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9O
LCAiY29udGV4dEEubGlua1Byb2dyYW0ocHJvZ3JhbUIpIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJy
b3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dEEuYXR0YWNo
U2hhZGVyKHByb2dyYW1BLCBzaGFkZXJCKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRl
eHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmF0dGFjaFNoYWRlcihw
cm9ncmFtQiwgc2hhZGVyQSkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29u
dGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5hdHRhY2hTaGFkZXIocHJvZ3JhbUIs
IHNoYWRlckIpIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklO
VkFMSURfT1BFUkFUSU9OLCAiY29udGV4dEEuZGV0YWNoU2hhZGVyKHByb2dyYW1BLCBzaGFkZXJC
KSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09Q
RVJBVElPTiwgImNvbnRleHRBLmRldGFjaFNoYWRlcihwcm9ncmFtQiwgc2hhZGVyQSkiKTsKLXNo
b3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04s
ICJjb250ZXh0QS5kZXRhY2hTaGFkZXIocHJvZ3JhbUIsIHNoYWRlckIpIik7Ci1zaG91bGRHZW5l
cmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4
dEEuc2hhZGVyU291cmNlKHNoYWRlckIsICdmb28nKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmJpbmRBdHRy
aWJMb2NhdGlvbihwcm9ncmFtQiwgMCwgJ2ZvbycpIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Y29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dEEuYmluZEZyYW1l
YnVmZmVyKGNvbnRleHRBLkZSQU1FQlVGRkVSLCBmcmFtZUJ1ZmZlckIpIik7Ci1zaG91bGRHZW5l
cmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4
dEEuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0QS5SRU5ERVJCVUZGRVIsIHJlbmRlckJ1ZmZlckIp
Iik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BF
UkFUSU9OLCAiY29udGV4dEEuYmluZFRleHR1cmUoY29udGV4dEEuVEVYVFVSRV8yRCwgdGV4dHVy
ZUIpIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURf
T1BFUkFUSU9OLCAiY29udGV4dEEuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dEEuRlJB
TUVCVUZGRVIsIGNvbnRleHRBLkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHRBLlJFTkRFUkJVRkZF
UiwgcmVuZGVyQnVmZmVyQikiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0QSwgY29u
dGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5mcmFtZWJ1ZmZlclRleHR1cmUyRChj
b250ZXh0QS5GUkFNRUJVRkZFUiwgY29udGV4dEEuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHRB
LlRFWFRVUkVfMkQsIHRleHR1cmVCLCAwKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRl
eHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmdldFByb2dyYW1QYXJh
bWV0ZXIocHJvZ3JhbUIsIDApIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNv
bnRleHRBLklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dEEuZ2V0UHJvZ3JhbUluZm9Mb2cocHJv
Z3JhbUIsIDApIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklO
VkFMSURfT1BFUkFUSU9OLCAiY29udGV4dEEuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlckIsIDAp
Iik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dEEsIGNvbnRleHRBLklOVkFMSURfT1BF
UkFUSU9OLCAiY29udGV4dEEuZ2V0U2hhZGVySW5mb0xvZyhzaGFkZXJCLCAwKSIpOwotc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNv
bnRleHRBLmdldFNoYWRlclNvdXJjZShzaGFkZXJCKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGNvbnRleHRBLCBjb250ZXh0QS5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHRBLmdldFVuaWZv
cm0ocHJvZ3JhbUIsIGxvY2F0aW9uQSkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0
QSwgY29udGV4dEEuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0QS5nZXRVbmlmb3JtTG9jYXRp
b24ocHJvZ3JhbUIsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSIpOwotCi1zdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0
LXRlc3RzL2luZGV4LXZhbGlkYXRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2luZGV4LXZhbGlkYXRpb24uanMJKHJldmlzaW9u
IDYzMjQ4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2lu
ZGV4LXZhbGlkYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNzQgKzAsMCBAQAotZGVzY3Jp
cHRpb24oIlRlc3Qgb2YgdmFsaWRhdGluZyBpbmRpY2VzIGZvciBkcmF3RWxlbWVudHMoKS4iKTsK
LQotdmFyIGdsID0gY3JlYXRlM0RDb250ZXh0KCk7Ci12YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFy
ZFByb2dyYW0oZ2wpOwotCi0vLyAzIHZlcnRpY2VzID0+IDEgdHJpYW5nbGUsIGludGVybGVhdmVk
IGRhdGEKLXZhciBkYXRhQ29tcGxldGUgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFswLCAwLCAwLCAx
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMV0pOwotdmFyIGRhdGFJbmNvbXBsZXRlID0gbmV3
IFdlYkdMRmxvYXRBcnJheShbMCwgMCwgMCwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsIDAsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxLCAwLCAwLCAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCwgMCwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEsIDEsIDEsIDFdKTsKLXZhciBpbmRpY2VzID0gbmV3IFdlYkdMVW5zaWduZWRTaG9ydEFy
cmF5KFswLCAxLCAyXSk7Ci0KLWRlYnVnKCJUZXN0aW5nIHdpdGggdmFsaWQgaW5kaWNlcyIpOwot
Ci12YXIgYnVmZmVyQ29tcGxldGUgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLWdsLmJpbmRCdWZmZXIo
Z2wuQVJSQVlfQlVGRkVSLCBidWZmZXJDb21wbGV0ZSk7Ci1nbC5idWZmZXJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgZGF0YUNvbXBsZXRlLCBnbC5TVEFUSUNfRFJBVyk7Ci12YXIgZWxlbWVudHMgPSBn
bC5jcmVhdGVCdWZmZXIoKTsKLWdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IGVsZW1lbnRzKTsKLWdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGlj
ZXMsIGdsLlNUQVRJQ19EUkFXKTsKLWdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci12YXIgdmVydGV4
TG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgImFfdmVydGV4Iik7Ci12YXIgbm9y
bWFsTG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgImFfbm9ybWFsIik7Ci1nbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKHZlcnRleExvYywgNCwgZ2wuRkxPQVQsIGZhbHNlLCA3ICogZ2wu
c2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCAwKTsKLWdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHZl
cnRleExvYyk7Ci1nbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG5vcm1hbExvYywgMywgZ2wuRkxPQVQs
IGZhbHNlLCA3ICogZ2wuc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCA0ICogZ2wuc2l6ZUluQnl0ZXMo
Z2wuRkxPQVQpKTsKLWdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7Ci1zaG91
bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUiknLCAnZ2wuRlJB
TUVCVUZGRVJfQ09NUExFVEUnKTsKLXNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJzAnKTsKLXNo
b3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJ
R05FRF9TSE9SVCwgMCknKTsKLXNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJzAnKTsKLQotZGVi
dWcoIlRlc3Rpbmcgd2l0aCBvdXQtb2YtcmFuZ2UgaW5kaWNlcyIpOwotCi12YXIgYnVmZmVySW5j
b21wbGV0ZSA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZG
RVIsIGJ1ZmZlckluY29tcGxldGUpOwotZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGRh
dGFJbmNvbXBsZXRlLCBnbC5TVEFUSUNfRFJBVyk7Ci1nbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZl
cnRleExvYywgNCwgZ2wuRkxPQVQsIGZhbHNlLCA3ICogZ2wuc2l6ZUluQnl0ZXMoZ2wuRkxPQVQp
LCAwKTsKLWdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHZlcnRleExvYyk7Ci1nbC5kaXNhYmxl
VmVydGV4QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKLWRlYnVnKCJFbmFibGUgdmVydGljZXMsIHZh
bGlkIik7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7Ci1zaG91bGRCZVVuZGVmaW5l
ZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfU0hPUlQsIDAp
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICcwJyk7Ci1kZWJ1ZygiRW5hYmxlIG5vcm1h
bHMsIG91dC1vZi1yYW5nZSIpOwotZ2wudmVydGV4QXR0cmliUG9pbnRlcihub3JtYWxMb2MsIDMs
IGdsLkZMT0FULCBmYWxzZSwgNyAqIGdsLnNpemVJbkJ5dGVzKGdsLkZMT0FUKSwgNCAqIGdsLnNp
emVJbkJ5dGVzKGdsLkZMT0FUKSk7Ci1nbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShub3JtYWxM
b2MpOwotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnMCcpOwotc2hvdWxkQmVVbmRlZmluZWQo
J2dsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX1NIT1JULCAwKScp
Owotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuSU5WQUxJRF9PUEVSQVRJT04nKTsKLQot
ZGVidWcoIlRlc3Qgd2l0aCBlbmFibGVkIGF0dHJpYnV0ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyB0
byBjdXJyZW50IHByb2dyYW0iKTsKLQotZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1h
bExvYyk7Ci12YXIgZXh0cmFMb2MgPSBNYXRoLm1heCh2ZXJ0ZXhMb2MsIG5vcm1hbExvYykgKyAx
OwotZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoZXh0cmFMb2MpOwotZGVidWcoIkVuYWJsZSBh
biBleHRyYSBhdHRyaWJ1dGUgd2l0aCBudWxsIik7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScs
ICcwJyk7Ci1zaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywg
MywgZ2wuVU5TSUdORURfU0hPUlQsIDApJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdn
bC5JTlZBTElEX09QRVJBVElPTicpOwotZGVidWcoIkVuYWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUg
d2l0aCBpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIiKTsKLWdsLnZlcnRleEF0dHJpYlBvaW50ZXIo
ZXh0cmFMb2MsIDMsIGdsLkZMT0FULCBmYWxzZSwgNyAqIGdsLnNpemVJbkJ5dGVzKGdsLkZMT0FU
KSwgNCAqIGdsLnNpemVJbkJ5dGVzKGdsLkZMT0FUKSk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3Io
KScsICcwJyk7Ci1zaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xF
UywgMywgZ2wuVU5TSUdORURfU0hPUlQsIDApJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScs
ICcwJyk7Ci0KLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9u
dWxsLW9iamVjdC1iZWhhdmlvdXIuanMJKHJldmlzaW9uIDYzMjQ4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL251bGwtb2JqZWN0LWJlaGF2aW91ci5qcwko
d29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdHMgY2FsbGlu
ZyBXZWJHTCBBUElzIHdpdGhvdXQgcHJvdmlkaW5nIHRoZSBuZWNlc3Nhcnkgb2JqZWN0cyIpOwot
Ci12YXIgY29udGV4dCA9IGNyZWF0ZTNERGVidWdDb250ZXh0KCk7Ci12YXIgcHJvZ3JhbSA9IGxv
YWRTdGFuZGFyZFByb2dyYW0oY29udGV4dCk7Ci12YXIgc2hhZGVyID0gbG9hZFN0YW5kYXJkVmVy
dGV4U2hhZGVyKGNvbnRleHQpOwotCi1zaG91bGRUaHJvdygiY29udGV4dC5jb21waWxlU2hhZGVy
KCkiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmxpbmtQcm9ncmFtKCkiKTsKLXNob3VsZFRocm93
KCJjb250ZXh0LmF0dGFjaFNoYWRlcigpIik7Ci1zaG91bGRUaHJvdygiY29udGV4dC5hdHRhY2hT
aGFkZXIocHJvZ3JhbSwgdW5kZWZpbmVkKSIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuYXR0YWNo
U2hhZGVyKHVuZGVmaW5lZCwgc2hhZGVyKSIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZGV0YWNo
U2hhZGVyKHByb2dyYW0sIHVuZGVmaW5lZCkiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmRldGFj
aFNoYWRlcih1bmRlZmluZWQsIHNoYWRlcikiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LnNoYWRl
clNvdXJjZSgpIik7Ci1zaG91bGRUaHJvdygiY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVk
LCAnZm9vJykiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbih1bmRl
ZmluZWQsIDAsICdmb28nKSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQuYmluZEJ1ZmZl
cihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0
LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCAwKSIpOwotc2hvdWxkQmVVbmRl
ZmluZWQoImNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCki
KTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVS
RV8yRCwgMCkiKTsKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIHRocm93IGV4Y2VwdGlvbnMgYmVjYXVz
ZSBjb25jZXB0dWFsbHkgbm8KLS8vIGZyYW1lYnVmZmVyIGlzIGJvdW5kIGF0IHRoaXMgcG9pbnQu
IEluIHJlYWxpdHkgdGhlIFdlYkdMCi0vLyBpbXBsZW1lbnRhdGlvbidzIGludGVybmFsIGZyYW1l
YnVmZmVyIGlzIGJvdW5kLCBidXQgd2UgY2FuJ3QgYWxsb3cKLS8vIHVzZXIgY29kZSB0byBtYW5p
cHVsYXRlIGl0Lgotc2hvdWxkVGhyb3coImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
Y29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJF
TkRFUkJVRkZFUiwgMCkiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRl
eHQuVEVYVFVSRV8yRCwgMCwgMCkiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmdldFByb2dyYW1Q
YXJhbWV0ZXIodW5kZWZpbmVkLCAwKSIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0UHJvZ3Jh
bUluZm9Mb2codW5kZWZpbmVkLCAwKSIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0U2hhZGVy
UGFyYW1ldGVyKHVuZGVmaW5lZCwgMCkiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmdldFNoYWRl
ckluZm9Mb2codW5kZWZpbmVkLCAwKSIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0U2hhZGVy
U291cmNlKHVuZGVmaW5lZCkiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmdldFVuaWZvcm0odW5k
ZWZpbmVkLCAwKSIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKHVu
ZGVmaW5lZCwgJ2ZvbycpIik7Ci0KLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvbnVsbC11bmlmb3JtLWxv
Y2F0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Nj
cmlwdC10ZXN0cy9udWxsLXVuaWZvcm0tbG9jYXRpb24uanMJKHJldmlzaW9uIDYzMjQ4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL251bGwtdW5pZm9ybS1s
b2NhdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw1MyArMCwwIEBACi1kZXNjcmlwdGlvbigi
VGVzdHMgY2FsbGluZyB0aGUgdmFyaW91cyB1bmlmb3JtW01hdHJpeF0qIEFQSXMgd2l0aCBhIG51
bGwgdW5pZm9ybSBsb2NhdGlvbiIpOwotCi12YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoKTsKLXZh
ciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7Ci0KLXNob3VsZEJlKCJnbC5nZXRF
cnJvcigpIiwgImdsLk5PX0VSUk9SIik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZ2wudXNlUHJvZ3Jh
bShwcm9ncmFtKSIpOwotdmFyIGZsb2F0QXJyYXkgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsxLCAy
LCAzLCA0XSk7Ci12YXIgaW50QXJyYXkgPSBuZXcgV2ViR0xJbnRBcnJheShbMSwgMiwgMywgNF0p
OwotCi1mdW5jdGlvbiBjYWxsVW5pZm9ybUZ1bmN0aW9uKG5hbWUpIHsKLSAgICB2YXIgaXNBcnJh
eVZhcmlhbnQgPSAobmFtZS5jaGFyQXQobmFtZS5sZW5ndGggLSAxKSA9PSAndicpOwotICAgIHZh
ciBpc01hdHJpeCA9IChuYW1lLmluZGV4T2YoIk1hdHJpeCIpICE9IC0xKTsKLSAgICB2YXIgaXNG
bG9hdCA9Ci0gICAgICAgIChuYW1lLmNoYXJBdChuYW1lLmxlbmd0aCAtIDEpID09ICdmJyB8fAot
ICAgICAgICAgbmFtZS5jaGFyQXQobmFtZS5sZW5ndGggLSAyKSA9PSAnZicpOwotICAgIHZhciBz
aXplSW5kZXggPSAoaXNBcnJheVZhcmlhbnQgPyBuYW1lLmxlbmd0aCAtIDMgOiBuYW1lLmxlbmd0
aCAtIDIpOwotICAgIHZhciBzaXplID0gcGFyc2VJbnQobmFtZS5zdWJzdHJpbmcoc2l6ZUluZGV4
LCBzaXplSW5kZXggKyAxKSk7Ci0gICAgLy8gSW5pdGlhbGl6ZSBhcmd1bWVudCBsaXN0IHdpdGgg
bnVsbCB1bmlmb3JtIGxvY2F0aW9uCi0gICAgdmFyIGFyZ3MgPSBbIG51bGwgXTsKLSAgICBpZiAo
aXNBcnJheVZhcmlhbnQpIHsKLSAgICAgICAgLy8gQ2FsbCB2YXJpYW50IHdoaWNoIHRha2VzIHZh
bHVlcyBhcyBhcnJheQotICAgICAgICBpZiAoaXNNYXRyaXgpIHsKLSAgICAgICAgICAgIHNpemUg
PSBzaXplICogc2l6ZTsKLSAgICAgICAgICAgIGFyZ3MucHVzaChmYWxzZSk7Ci0gICAgICAgIH0K
LSAgICAgICAgdmFyIGFycmF5ID0gKGlzRmxvYXQgPyBuZXcgV2ViR0xGbG9hdEFycmF5KHNpemUp
IDogbmV3IFdlYkdMSW50QXJyYXkoc2l6ZSkpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHNpemU7IGkrKykgewotICAgICAgICAgICAgYXJyYXlbaV0gPSBpOwotICAgICAgICB9Ci0gICAg
ICAgIGFyZ3MucHVzaChhcnJheSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQ2FsbCB2YXJp
YW50IHdoaWNoIHRha2VzIHZhbHVlcyBhcyBwYXJhbWV0ZXJzCi0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICBhcmdzLnB1c2goaSk7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgdmFyIGZ1bmMgPSBnbFtuYW1lXTsKLSAgICByZXR1cm4gZnVuYy5hcHBs
eShnbCwgYXJncyk7Ci19Ci0KLXZhciBmdW5jcyA9IFsgInVuaWZvcm0xZiIsICJ1bmlmb3JtMWZ2
IiwgInVuaWZvcm0xaSIsICJ1bmlmb3JtMWl2IiwKLSAgICAgICAgICAgICAgInVuaWZvcm0yZiIs
ICJ1bmlmb3JtMmZ2IiwgInVuaWZvcm0yaSIsICJ1bmlmb3JtMml2IiwKLSAgICAgICAgICAgICAg
InVuaWZvcm0zZiIsICJ1bmlmb3JtM2Z2IiwgInVuaWZvcm0zaSIsICJ1bmlmb3JtM2l2IiwKLSAg
ICAgICAgICAgICAgInVuaWZvcm00ZiIsICJ1bmlmb3JtNGZ2IiwgInVuaWZvcm00aSIsICJ1bmlm
b3JtNGl2IiwKLSAgICAgICAgICAgICAgInVuaWZvcm1NYXRyaXgyZnYiLCAidW5pZm9ybU1hdHJp
eDNmdiIsICJ1bmlmb3JtTWF0cml4NGZ2IiBdOwotZm9yICh2YXIgaSA9IDA7IGkgPCBmdW5jcy5s
ZW5ndGg7IGkrKykgewotICAgIGNhbGxTdHJpbmcgPSAiY2FsbFVuaWZvcm1GdW5jdGlvbignIiAr
IGZ1bmNzW2ldICsgIicpIjsKLSAgICBzaG91bGRCZVVuZGVmaW5lZChjYWxsU3RyaW5nKTsKLSAg
ICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOwotfQotCi1zdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
c2NyaXB0LXRlc3RzL3VuaWZvcm0tbG9jYXRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL3VuaWZvcm0tbG9jYXRpb24uanMJKHJl
dmlzaW9uIDYzMjQ4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRl
c3RzL3VuaWZvcm0tbG9jYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzAsMCBAQAot
ZGVzY3JpcHRpb24oIlRlc3RzIFdlYkdMIEFQSXMgcmVsYXRlZCB0byBzaGFkZXIgdW5pZm9ybXMi
KTsKLQotdmFyIGNvbnRleHRBID0gY3JlYXRlM0REZWJ1Z0NvbnRleHQoKTsKLXZhciBjb250ZXh0
QiA9IGNyZWF0ZTNERGVidWdDb250ZXh0KCk7Ci12YXIgcHJvZ3JhbUExID0gbG9hZFN0YW5kYXJk
UHJvZ3JhbShjb250ZXh0QSk7Ci12YXIgcHJvZ3JhbUEyID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShj
b250ZXh0QSk7Ci12YXIgcHJvZ3JhbUIgPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHRCKTsK
LXZhciBwcm9ncmFtUyA9IGxvYWRQcm9ncmFtKGNvbnRleHRBLCAicmVzb3VyY2VzL3N0cnVjdFVu
aWZvcm1TaGFkZXIudmVydCIsICJyZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZyIpOwotdmFy
IHByb2dyYW1WID0gbG9hZFByb2dyYW0oY29udGV4dEEsICJyZXNvdXJjZXMvZmxvYXRVbmlmb3Jt
U2hhZGVyLnZlcnQiLCAicmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKLXZhciBs
b2NhdGlvbkEgPSBjb250ZXh0QS5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbUExLCAndV9tb2Rl
bFZpZXdQcm9qTWF0cml4Jyk7Ci12YXIgbG9jYXRpb25CID0gY29udGV4dEIuZ2V0VW5pZm9ybUxv
Y2F0aW9uKHByb2dyYW1CLCAndV9tb2RlbFZpZXdQcm9qTWF0cml4Jyk7Ci12YXIgbG9jYXRpb25T
eCA9IGNvbnRleHRBLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtUywgInVfc3RydWN0LngiKTsK
LXZhciBsb2NhdGlvbkFycmF5MCA9IGNvbnRleHRBLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFt
UywgInVfYXJyYXlbMF0iKTsKLXZhciBsb2NhdGlvblZlYzQgPSBjb250ZXh0QS5nZXRVbmlmb3Jt
TG9jYXRpb24ocHJvZ3JhbVYsICJmdmFsNCIpOwotCi12YXIgdmVjID0gWzEsIDIsIDMsIDRdOwot
dmFyIG1hdCA9IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQs
IDE1LCAxNl07Ci0KLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0QS51c2VQcm9ncmFtKHByb2dy
YW1BMikiKTsKLXNob3VsZFRocm93KCJjb250ZXh0QS51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9u
QSwgZmFsc2UsIG1hdCkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0QS51c2VQcm9ncmFt
KHByb2dyYW1BMSkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0QS51bmlmb3JtTWF0cml4
NGZ2KGxvY2F0aW9uQSwgZmFsc2UsIG1hdCkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0
QS51bmlmb3JtTWF0cml4NGZ2KG51bGwsIGZhbHNlLCBtYXQpIik7Ci0KLXNob3VsZEJlVW5kZWZp
bmVkKCJjb250ZXh0QS51c2VQcm9ncmFtKHByb2dyYW1TKSIpOwotc2hvdWxkQmVVbmRlZmluZWQo
ImNvbnRleHRBLnVuaWZvcm0xaShsb2NhdGlvblN4LCAzKSIpOwotc2hvdWxkQmVVbmRlZmluZWQo
ImNvbnRleHRBLnVuaWZvcm0xZihsb2NhdGlvbkFycmF5MCwgNC4wKSIpOwotCi1zaG91bGRCZSgi
Y29udGV4dEEuZ2V0VW5pZm9ybShwcm9ncmFtUywgbG9jYXRpb25TeCkiLCAiMyIpOwotc2hvdWxk
QmUoImNvbnRleHRBLmdldFVuaWZvcm0ocHJvZ3JhbVMsIGxvY2F0aW9uQXJyYXkwKSIsICI0LjAi
KTsKLQotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHRBLnVzZVByb2dyYW0ocHJvZ3JhbVYpIik7
Ci1zaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dEEudW5pZm9ybTRmdihsb2NhdGlvblZlYzQsIHZl
YykiKTsKLXNob3VsZEJlKCJjb250ZXh0QS5nZXRVbmlmb3JtKHByb2dyYW1WLCBsb2NhdGlvblZl
YzQpIiwgInZlYyIpOwotCi1zaG91bGRCZU51bGwoImNvbnRleHRBLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtViwgXCJJRG9udEV4aXN0XCIpIik7Ci0KLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cg==
</data>
<flag name="review"
          id="49445"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="49446"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>