<?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>229779</bug_id>
          
          <creation_ts>2021-09-01 16:40:35 -0700</creation_ts>
          <short_desc>Rewrite long press and drag tests to be more robust.</short_desc>
          <delta_ts>2021-09-07 11:00:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789531</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-09-01 16:40:35 -0700</bug_when>
    <thetext>Rewrite long press and drag tests to be more robust.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789533</commentid>
    <comment_count>1</comment_count>
      <attachid>437084</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-09-01 16:44:21 -0700</bug_when>
    <thetext>Created attachment 437084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789534</commentid>
    <comment_count>2</comment_count>
      <attachid>437084</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-01 16:49:32 -0700</bug_when>
    <thetext>Comment on attachment 437084
Patch

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

&gt; Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:407
&gt; +            NSNumber *touchX = touch[HIDEventXKey] == [NSNull null] ? 0 : touch[HIDEventXKey];

Nit - `0` should be `nil`

&gt; Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:408
&gt; +            NSNumber *touchY = touch[HIDEventYKey] == [NSNull null] ? 0 : touch[HIDEventYKey];

Ditto.

&gt; LayoutTests/fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text.html:16
&gt; +        

Nit - stray whitespace.

&gt; LayoutTests/fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text.html:73
&gt; +    

Ditto.

&gt; LayoutTests/fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:16
&gt; +        

Ditto.

&gt; LayoutTests/fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:70
&gt; +    

Ditto.

&gt; LayoutTests/resources/ui-helper.js:822
&gt; +    static  midPointOfRect(rect) {

Nit - it looks like there are two spaces between `static` and `midPointOfRect`.

I&apos;d also write this like `return { x: rect.left + (rect.width / 2), y: rect.top + (rect.height / 2) };`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789536</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-01 16:50:06 -0700</bug_when>
    <thetext>rdar://40917203</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789538</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-01 16:51:00 -0700</bug_when>
    <thetext>&gt; &gt; Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:407
&gt; &gt; +            NSNumber *touchX = touch[HIDEventXKey] == [NSNull null] ? 0 : touch[HIDEventXKey];
&gt; 
&gt; Nit - `0` should be `nil`
&gt; 

(..at least, either `nil` or `@0`).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791091</commentid>
    <comment_count>5</comment_count>
      <attachid>437526</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-09-07 10:25:07 -0700</bug_when>
    <thetext>Created attachment 437526
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791119</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-07 11:00:45 -0700</bug_when>
    <thetext>Committed r282096 (241395@main): &lt;https://commits.webkit.org/241395@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437526.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437084</attachid>
            <date>2021-09-01 16:44:21 -0700</date>
            <delta_ts>2021-09-07 10:25:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229779-20210901164420.patch</filename>
            <type>text/plain</type>
            <size>43216</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzgyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzI5NDEyODU1NWZkMzEzZDJmYmNkNGVhMWZiNjE4MWUx
ZThiNGM3MS4uZmY5NGIyYzQ1MmMxYTU3ZThkMGU1OTEwMjRhYzcyYTAwNDU0ZjdhMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTA5LTAxICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV3cml0ZSBsb25nIHByZXNzIGFuZCBkcmFnIHRlc3RzIHRvIGJlIG1vcmUg
cm9idXN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI5Nzc5CisgICAgICAgIHJkYXI6Ly80MDkxNzIwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvdW5kIGEgY3Jhc2ggd2hlbiBiYWQgZGF0YSB3YXMg
ZW50ZXJlZCBmb3IgZ2VzdHVyZSBlbXVsYXRpb24uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OmNvbnZlcnRD
b29yZGluYXRlcyk6CisKIDIwMjEtMDgtMzAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250ZW50
LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLSogdGVzdHMuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggMzdjYjUxM2Q2MjUz
Yjk5YTBlNDU2MTQ2NDM0Y2JkMTdmYzRjNmRiNS4uZjQ2NjcyMmNlZGRiNzdhZmZkYjkyNjk4OGE1
NDcyOTJmZWI0ZDBjZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlT
Y3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtNDA0LDcgKzQwNCwxMCBAQCB2b2lkIGNvbnZlcnRD
b29yZGluYXRlcyhUZXN0UnVubmVyV0tXZWJWaWV3ICp3ZWJWaWV3LCBOU011dGFibGVEaWN0aW9u
YXJ5ICpldmVudAogewogICAgIGlmIChldmVudFtISURFdmVudFRvdWNoZXNLZXldKSB7CiAgICAg
ICAgIGZvciAoTlNNdXRhYmxlRGljdGlvbmFyeSAqdG91Y2ggaW4gZXZlbnRbSElERXZlbnRUb3Vj
aGVzS2V5XSkgewotICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IGdsb2JhbFRvQ29udGVudENv
b3JkaW5hdGVzKHdlYlZpZXcsIChsb25nKVt0b3VjaFtISURFdmVudFhLZXldIGRvdWJsZVZhbHVl
XSwgKGxvbmcpW3RvdWNoW0hJREV2ZW50WUtleV1kb3VibGVWYWx1ZV0pOworICAgICAgICAgICAg
TlNOdW1iZXIgKnRvdWNoWCA9IHRvdWNoW0hJREV2ZW50WEtleV0gPT0gW05TTnVsbCBudWxsXSA/
IDAgOiB0b3VjaFtISURFdmVudFhLZXldOworICAgICAgICAgICAgTlNOdW1iZXIgKnRvdWNoWSA9
IHRvdWNoW0hJREV2ZW50WUtleV0gPT0gW05TTnVsbCBudWxsXSA/IDAgOiB0b3VjaFtISURFdmVu
dFlLZXldOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gZ2xvYmFs
VG9Db250ZW50Q29vcmRpbmF0ZXMod2ViVmlldywgKGxvbmcpW3RvdWNoWCBkb3VibGVWYWx1ZV0s
IChsb25nKVt0b3VjaFkgZG91YmxlVmFsdWVdKTsKICAgICAgICAgICAgIHRvdWNoW0hJREV2ZW50
WEtleV0gPSBAKGxvY2F0aW9uLngpOwogICAgICAgICAgICAgdG91Y2hbSElERXZlbnRZS2V5XSA9
IEAobG9jYXRpb24ueSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOGFiNjY5MGQyMTY5MjczMGNlN2Qx
ZGUxOWFmNDYwODE4YzRhYjNhLi41ZmY4YmM4Y2NkN2E3ZjYyYjJhYWU2ZTMzMjUwMTNlZjg4Njgx
OGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDktMDEgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXdyaXRlIGxvbmcgcHJlc3MgYW5k
IGRyYWcgdGVzdHMgdG8gYmUgbW9yZSByb2J1c3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3NzkKKyAgICAgICAgcmRhcjovLzQwOTE3MjAzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV3cml0ZSBs
b25nIHByZXNzIGFuZCBkcmFnIHRlc3RzIHRvIHVzZSBtb3JlIG1vZGVybiBtZXRob2RzIGFuZCBt
YWtlIHRoZSB0ZXN0IG1vcmUKKyAgICAgICAgcm9idXN0IHRvIHNtYWxsIGNoYW5nZXMgaW4gVUlL
aXQncyBzZWxlY3Rpb24gY29kZS4gCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1z
ZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5n
ZS1zZWxlY3RlZC10ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xv
bmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVmdC10by1jaGFuZ2Utc2Vs
ZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVmdC10by1jaGFuZ2Ut
c2VsZWN0ZWQtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxl
Y3RlZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1yaWdodC10by1jaGFuZ2Ut
c2VsZWN0ZWQtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9u
Zy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0
ZWQtdGV4dC5odG1sOgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAg
ICh3aW5kb3cuVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QpOgorCiAyMDIxLTA4LTMwICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGRvdWJsZS10
YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy0qIHRlc3RzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mt
b24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1w
cmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBkZTUxYWEzMTU1ZjMyMjU3Yzc4NTY3ODAwY2QxNTNl
NDcyNWE2ZjEyLi41YzA2MTUyNDViODNiZGQxMGRhYWQ5NDc1NmU2NGY4NTgzNjRjNDkxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1l
ZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1w
cmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDUgQEAKLVBBU1M6IENvcnJlY3QgU2VsZWN0
aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBB
U1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29y
cmVjdCBTZWxlY3Rpb24KK1BBU1M6IEhhcyBTZWxlY3Rpb24KK1BBU1M6IFNlbGVjdGlvbiBDaGFu
Z2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0aW9uIERpZCBOb3QgQ2hh
bmdlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVj
dGVkLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXBy
ZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVk
LXRleHQuaHRtbAppbmRleCAyNzQ2MGIyMjU0MWMwYzY4ZmVhN2U4MjU4MTNiOTI1MGFiZjI2N2U3
Li4wYjhlNDA5YTJiZWE4NDU4MWQxNjAxMWUxYzYxMTc5NmI4YzNlODQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1j
b250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUt
Y29udGVudC10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCkBAIC0x
LDggKzEsOCBAQAogPCFET0NUWVBFIGh0bWw+Ci0KIDxodG1sPgogPGhlYWQ+CiAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CkBAIC0xNiw2NCArMTYsNTIgQEAK
ICAgICAgICAgCiAgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJyc7CiAgICAgICAgICAgICB2YXIg
ZWRpdGFibGVUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgZmlyc3RUYXJnZXRSZWN0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0U2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgc2Vjb25kVGFyZ2V0UmVjdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzZWNvbmRTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKLSAgICAgICAgICAgIHZhciB0aGlyZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGhpcmRTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAg
ICAgIHZhciBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbm9uZWRpdGFibGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55IC0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueTsKLSAg
ICAgICAgCi0gICAgICAgICAgICB2YXIgcHJlc3NQb2ludFggPSBmaXJzdFRhcmdldFJlY3QueCAr
IGZpcnN0VGFyZ2V0UmVjdC53aWR0aCAvIDI7Ci0gICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkg
PSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLyAyIC0gZWRpdGFi
bGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdZID0gZmlyc3RUYXJn
ZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxl
T2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdYID0gZmlyc3RUYXJnZXRSZWN0LnggKyBmaXJz
dFRhcmdldFJlY3Qud2lkdGg7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kyID0gc2Vjb25kVGFyZ2V0
UmVjdC55ICsgc2Vjb25kVGFyZ2V0UmVjdC5oZWlnaHQgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVP
ZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kzID0gdGhpcmRUYXJnZXRSZWN0LnkgKyB0aGly
ZFRhcmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAg
ICAgICAgdmFyIGRyYWdZNCA9IGZpcnN0VGFyZ2V0UmVjdC55IC0gZmlyc3RUYXJnZXRSZWN0Lmhl
aWdodCAtIGVkaXRhYmxlVG9Ob25lZGl0YWJsZU9mZnNldDsKKworICAgICAgICAgICAgdmFyIHBy
ZXNzUG9pbnRYID0gZWRpdGFibGVUYXJnZXRSZWN0LnggKyBlZGl0YWJsZVRhcmdldFJlY3Qud2lk
dGggLyAyOworICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRZID0gZWRpdGFibGVUYXJnZXRSZWN0
LnkgKyBlZGl0YWJsZVRhcmdldFJlY3QuaGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgdmFyIGZvbnRIZWlnaHQgPSAzMDsKKworICAgICAgICAgICAgdmFyIHNlbGVjdGlvbkNo
YW5nZWRDb3VudCA9IDA7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJz
ZWxlY3Rpb25jaGFuZ2UiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdl
ZENvdW50Kys7CisgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQgbG9uZ1ByZXNz
QXRQb2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkpOwotICAgICAgICAgICAgaWYgKGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInNlZCIpCi0gICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGEgd29yZCBh
cyBhIHJlc3VsdCBvZiBhIGxvbmcgcHJlc3MuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1
bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8
YnI+JzsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChk
cmFnWCwgZHJhZ1ksIGRyYWdYLCBkcmFnWTIpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlk
dW4iKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24n
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFp
bGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2Vs
ZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9y
U2VsZWN0aW9uVG9BcHBlYXIoKTsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJv
bVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kyLCBkcmFnWCwgZHJhZ1kzKTsKLSAgICAgICAgICAg
IGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hIikKLSAgICAgICAgICAg
ICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlm
IChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpICE9ICIiKQorICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnUEFTUzogSGFzIFNlbGVjdGlvbic7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9u
YWwgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzLic7
CiAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwogCi0gICAgICAgICAgICBhd2FpdCB0b3Vj
aEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWTMsIGRyYWdYLCBkcmFnWTIpOwot
ICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInNl
ZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW4iKQotICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgdmFyIGdyYWJiZXJNaWRw
b2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVyLmdldFNlbGVjdGlv
bkVuZEdyYWJiZXJWaWV3UmVjdCgpKTsKKworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFn
RnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnksIGdy
YWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSArIChmb250SGVpZ2h0ICogMikpOwor
CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID09IDIpCisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gZGVz
ZWxlY3QgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVu
dC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+
JzsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBkaWQgbm90IGNo
YW5nZSA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKworICAgICAgICAgICAgZ3JhYmJl
ck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2Vs
ZWN0aW9uRW5kR3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmRE
cmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50Lnks
IGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMikp
OwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdY
LCBkcmFnWTIsIGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFu
Z2VkQ291bnQgPT0gMykKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlv
biBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3Jy
ZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
RkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENv
dW50OworCisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9m
UmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25FbmRHcmFiYmVyVmlld1JlY3QoKSk7Cisg
ICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRw
b2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRw
b2ludC55IC0gKGZvbnRIZWlnaHQgKiA0KSk7CiAKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBh
d2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRy
YWdZNCk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KSA9PSAicyIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVj
dGlvbic7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID09IDMpCisgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gRGlkIE5vdCBDaGFuZ2UgPC9i
cj4nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDog
ZmFpbGVkIHRvIHJlZHVjZSBzZWxlY3Rpb24gdG8gYSBzaW5nbGUgY2hhcmFjdGVyIGJ5IGRyYWdn
aW5nIHVwLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7Ci0gICAgICAgICAgICBv
dXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0
aW9uIGNoYW5nZWQgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAKLSAgICAgICAgICAg
IHZhciBub25lZGl0YWJsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9uZWRp
dGFibGUnKTsKLSAgICAgICAgICAgIG5vbmVkaXRhYmxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKG5vbmVkaXRhYmxlRWxlbWVudCk7CiAgICAgICAgICAgICB2YXIgZWRpdGFibGVFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJyk7CiAgICAgICAgICAgICBl
ZGl0YWJsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlZGl0YWJsZUVsZW1lbnQpOwog
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRNTCA9
IG91dHB1dDsKQEAgLTgzLDM5ICs3MSwyOSBAQAogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+
Ci0gICAgICAgICNub25lZGl0YWJsZSB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
ICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIGhlaWdodDogNTBweDsKICAgICAgICAgICAgIHdp
ZHRoOiAzMDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAg
ICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICAgICBmb250LXNpemU6IDE4
cHg7CiAgICAgICAgIH0KICAgICAgICAgI2VkaXRhYmxlIHsKLSAgICAgICAgICAgIGhlaWdodDog
MjAwcHg7Ci0gICAgICAgICAgICB3aWR0aDogMzAwcHg7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBzaWx2ZXI7Ci0gICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAg
ICAgICAgICAgZm9udC1zaXplOiAxOHB4OwotICAgICAgICB9Ci0gICAgICAgICN0YXJnZXQgewot
ICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKICAg
ICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNp
bHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAgICAgICAgICBm
b250LXNpemU6IDE4cHg7CisgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAgIH0K
ICAgICA8L3N0eWxlPgogICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiA8L2hlYWQ+CiA8Ym9keT4KLSAgICA8ZGl2
IGlkPSJlZGl0YWJsZSIgY29udGVudGVkaXRhYmxlPgotICAgICAgICA8cD5Mb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQg
ZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBs
YWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC48L3A+Ci0gICAg
PC9kaXY+IAotICAgIDxkaXYgaWQ9Im5vbmVkaXRhYmxlIj4KLSAgICAgICAgPHA+TG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgPHNwYW4gaWQ9
ImZpcnN0U2VsZWN0aW9uIj5zZWQ8L3NwYW4+IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bjxz
cGFuIGlkPSJzZWNvbmRTZWxlY3Rpb24iPjwvc3Bhbj50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFn
PHNwYW4gaWQ9InRoaXJkU2VsZWN0aW9uIj48L3NwYW4+bmEgYWxpcXVhLiBVdCBlbmltIGFkIG1p
bmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlz
aSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LjwvcD4KLSAgICA8L2Rpdj4KICAg
ICA8ZGl2IGlkPSJ0YXJnZXQiPgogICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRD
b250cm9sbGVyIHRvIHJ1bi4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29u
dGVudGVkaXRhYmxlPgorICAgICAgICA8cD5IZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMuIFRoZSBt
aXNmaXRzLiBUaGUgcmViZWxzLiBUaGUgdHJvdWJsZW1ha2Vycy4gVGhlIHJvdW5kIHBlZ3MgaW4g
dGhlIHNxdWFyZSBob2xlcy48L3A+CisgICAgPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1l
ZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1sZWZ0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNz
LW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWxlZnQtdG8tY2hhbmdlLXNlbGVjdGVkLXRl
eHQtZXhwZWN0ZWQudHh0CmluZGV4IGRlNTFhYTMxNTVmMzIyNTdjNzg1Njc4MDBjZDE1M2U0NzI1
YTZmMTIuLmNjN2E0MzU3MTZkOGMwNWU2ZjZkNTkzYmIxYTU5MWZlNjg5MjY3ZDUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRh
YmxlLWNvbnRlbnQtdGhlbi1kcmFnLWxlZnQtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNz
LW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWxlZnQtdG8tY2hhbmdlLXNlbGVjdGVkLXRl
eHQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24K
LVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzog
Q29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0
IFNlbGVjdGlvbgorUEFTUzogSGFzIFNlbGVjdGlvbgorUEFTUzogU2VsZWN0aW9uIENoYW5nZWQK
K1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1l
ZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1sZWZ0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0
YWJsZS1jb250ZW50LXRoZW4tZHJhZy1sZWZ0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwK
aW5kZXggNGU5N2RlZTE5YWI1NDUxMGY2ZmMzZDk3MmQ2NmExYTBjOTE4ODg5Zi4uOTlhZWE2NGRj
OGJjMDJhMDU2MDg5YzcxMjM1Mzc4ZGI4N2IzNWE4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVu
LWRyYWctbGVmdC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhl
bi1kcmFnLWxlZnQtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbApAQCAtMSw4ICsxLDggQEAK
IDwhRE9DVFlQRSBodG1sPgotCiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpAQCAtMTYsNjQgKzE2LDU1IEBACiAgICAgICAgIAog
ICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnOwogICAgICAgICAgICAgdmFyIGVkaXRhYmxlVGFy
Z2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0VGFyZ2V0UmVjdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgICAgICAgICAgdmFyIHNlY29uZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc2Vjb25kU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAg
ICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoaXJk
U2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgZWRp
dGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmVk
aXRhYmxlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSAtIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdlZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7Ci0gICAgICAgIAotICAg
ICAgICAgICAgdmFyIHByZXNzUG9pbnRYID0gZmlyc3RUYXJnZXRSZWN0LnggKyBmaXJzdFRhcmdl
dFJlY3Qud2lkdGggLyAyOwotICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRZID0gZmlyc3RUYXJn
ZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0IC8gMiAtIGVkaXRhYmxlVG9Ob25lZGl0
YWJsZU9mZnNldDsKLSAgICAgICAgICAgIHZhciBkcmFnWSA9IGZpcnN0VGFyZ2V0UmVjdC55IC0g
ZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdYID0gZmly
c3RUYXJnZXRSZWN0Lng7Ci0gICAgICAgICAgICB2YXIgZHJhZ1gyID0gc2Vjb25kVGFyZ2V0UmVj
dC54OwotICAgICAgICAgICAgdmFyIGRyYWdYMyA9IHRoaXJkVGFyZ2V0UmVjdC54OwotICAgICAg
ICAgICAgdmFyIGRyYWdYNCA9IGZpcnN0VGFyZ2V0UmVjdC54ICsgZmlyc3RUYXJnZXRSZWN0Lndp
ZHRoOworCisgICAgICAgICAgICB2YXIgcHJlc3NQb2ludFggPSBlZGl0YWJsZVRhcmdldFJlY3Qu
eCArIGVkaXRhYmxlVGFyZ2V0UmVjdC53aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgcHJlc3NQ
b2ludFkgPSBlZGl0YWJsZVRhcmdldFJlY3QueSArIGVkaXRhYmxlVGFyZ2V0UmVjdC5oZWlnaHQg
KiAuNjU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZhciBkcmFnRGlzdGFuY2UgPSA2MDsK
KworICAgICAgICAgICAgdmFyIHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9IDA7CisgICAgICAgICAg
ICB2YXIgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50OworICAgICAgICAgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgKCkgPT4geworICAgICAgICAgICAgICAg
IHNlbGVjdGlvbkNoYW5nZWRDb3VudCsrOworICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAg
IGF3YWl0IGxvbmdQcmVzc0F0UG9pbnQocHJlc3NQb2ludFgsIHByZXNzUG9pbnRZKTsKLSAgICAg
ICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJhbGlxdWEi
KQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVk
IHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzLiBJbmNvcnJlY3Qg
U2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAg
ICAgICAgIG91dHB1dCArPSAnPGJyPic7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJh
Z0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBkcmFnWDIsIGRyYWdZKTsKLSAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJtYWduYSBhbGlx
dWEiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24n
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFp
bGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIHdvcmQgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2Vs
ZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9y
U2VsZWN0aW9uVG9BcHBlYXIoKTsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJv
bVBvaW50VG9Qb2ludChkcmFnWDIsIGRyYWdZLCBkcmFnWDMsIGRyYWdZKTsKLSAgICAgICAgICAg
IGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJkb2xvcmUgbWFnbmEg
YWxpcXVhIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0
aW9uJzsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
ICE9ICIiKQorICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogSGFzIFNlbGVjdGlvbic7
CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWls
ZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwgd29yZCBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxl
Y3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOworICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1
bHQgb2YgYSBsb25nIHByZXNzLic7CiAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwogCi0g
ICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYMywgZHJh
Z1ksIGRyYWdYMiwgZHJhZ1kpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCkgPT0gIm1hZ25hIGFsaXF1YSIpCi0gICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICB2YXIgZ3JhYmJlck1p
ZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0
aW9uU3RhcnRHcmFiYmVyVmlld1JlY3QoKSk7CisKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5k
RHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55
LCBncmFiYmVyTWlkcG9pbnQueCAtIGRyYWdEaXN0YW5jZSwgZ3JhYmJlck1pZHBvaW50LnkpOwor
CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID49IDIpCisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gZGVz
ZWxlY3Qgd29yZCBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVu
dC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+
JzsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBkaWQgbm90IGNo
YW5nZSA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKyAgICAgICAgICAgIGxhc3RTZWxl
Y3Rpb25DaGFuZ2VDb3VudCA9IHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKworICAgICAgICAgICAg
Z3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIu
Z2V0U2VsZWN0aW9uU3RhcnRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2FpdCB0
b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlk
cG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LnggKyBkcmFnRGlzdGFuY2UsIGdyYWJiZXJNaWRwb2lu
dC55KTsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChk
cmFnWDIsIGRyYWdZLCBkcmFnWCwgZHJhZ1kpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gImFsaXF1YSIpCi0gICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKHNlbGVj
dGlvbkNoYW5nZWRDb3VudCA+PSBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgKyAxKQorICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRv
IGRlc2VsZWN0IHdvcmQgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9j
dW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAn
PGJyPic7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5v
dCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBsYXN0
U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisKKyAgICAgICAg
ICAgIGdyYWJiZXJNaWRwb2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVs
cGVyLmdldFNlbGVjdGlvblN0YXJ0R3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdh
aXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJl
ck1pZHBvaW50LnksIGdyYWJiZXJNaWRwb2ludC54ICsgZHJhZ0Rpc3RhbmNlLCBncmFiYmVyTWlk
cG9pbnQueSk7CiAKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCB0b3VjaEFuZERyYWdG
cm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1g0LCBkcmFnWSk7Ci0gICAgICAgICAg
ICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiYSIpCi0gICAgICAg
ICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAg
ICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID49IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCAr
IDEpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8
L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlM
OiBmYWlsZWQgdG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkgZHJh
Z2dpbmcgcmlnaHQuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKLSAgICAgICAg
ICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBT
ZWxlY3Rpb24gY2hhbmdlZCA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKIAotICAgICAg
ICAgICAgdmFyIG5vbmVkaXRhYmxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdu
b25lZGl0YWJsZScpOwotICAgICAgICAgICAgbm9uZWRpdGFibGVFbGVtZW50LnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQobm9uZWRpdGFibGVFbGVtZW50KTsKICAgICAgICAgICAgIHZhciBlZGl0YWJs
ZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKTsKICAgICAgICAg
ICAgIGVkaXRhYmxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVkaXRhYmxlRWxlbWVu
dCk7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5uZXJI
VE1MID0gb3V0cHV0OwpAQCAtODMsMzkgKzc0LDI5IEBACiAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOwogICAgIDwvc2NyaXB0PgogICAgIDxz
dHlsZT4KLSAgICAgICAgI25vbmVkaXRhYmxlIHsKLSAgICAgICAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgICAg
ICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwog
ICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgICAgIGZvbnQtc2l6
ZTogMThweDsKICAgICAgICAgfQogICAgICAgICAjZWRpdGFibGUgewotICAgICAgICAgICAgaGVp
Z2h0OiAyMDBweDsKLSAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHNpbHZlcjsKLSAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
Ci0gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7Ci0gICAgICAgIH0KLSAgICAgICAgI3Rhcmdl
dCB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4
OwogICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogc2lsdmVyOwogICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLSAgICAgICAg
ICAgIGZvbnQtc2l6ZTogMThweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgICAg
ICAgfQogICAgIDwvc3R5bGU+CiAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KIDwvaGVhZD4KIDxib2R5PgotICAg
IDxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+Ci0gICAgICAgIDxwPkxvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBl
aXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVh
LiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxh
bWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LjwvcD4K
LSAgICA8L2Rpdj4gICAKLSAgICA8ZGl2IGlkPSJub25lZGl0YWJsZSI+Ci0gICAgICAgIDxwPkxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNl
ZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCA8c3BhbiBpZD0idGhp
cmRTZWxlY3Rpb24iPjwvc3Bhbj5kb2xvcmUgPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+PC9z
cGFuPm1hZ25hIDxzcGFuIGlkPSJmaXJzdFNlbGVjdGlvbiI+YWxpcXVhPC9zcGFuPi4gVXQgZW5p
bSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJv
cmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC48L3A+Ci0gICAgPC9k
aXY+CiAgICAgPGRpdiBpZD0idGFyZ2V0Ij4KICAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJ
U2NyaXB0Q29udHJvbGxlciB0byBydW4uCiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iZWRpdGFi
bGUiIGNvbnRlbnRlZGl0YWJsZT4KKyAgICAgICAgPHA+SGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVz
LiBUaGUgbWlzZml0cy4gVGhlIHJlYmVscy4gVGhlIHRyb3VibGUgbWFrZXJzLiBUaGUgcm91bmQg
cGVncyBpbiB0aGUgc3F1YXJlIGhvbGVzLjwvcD4KKyAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXBy
ZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9s
b25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1z
ZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBkZTUxYWEzMTU1ZjMyMjU3Yzc4NTY3ODAw
Y2QxNTNlNDcyNWE2ZjEyLi5jYzdhNDM1NzE2ZDhjMDVlNmY2ZDU5M2JiMWE1OTFmZTY4OTI2N2Q1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVz
cy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1yaWdodC10by1jaGFuZ2Utc2VsZWN0ZWQt
dGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctcmlnaHQtdG8tY2hhbmdl
LXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAotUEFTUzogQ29ycmVj
dCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVj
dGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1Q
QVNTOiBDb3JyZWN0IFNlbGVjdGlvbgorUEFTUzogSGFzIFNlbGVjdGlvbgorUEFTUzogU2VsZWN0
aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hh
bmdlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9u
Zy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1yaWdodC10by1jaGFuZ2Utc2Vs
ZWN0ZWQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmct
cHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctcmlnaHQtdG8tY2hhbmdlLXNlbGVj
dGVkLXRleHQuaHRtbAppbmRleCBjYzVkMzg0ZWVkNTYxMDViNDhhNzkyMWEzZTk4MzlkYmNjZTNl
ZDBmLi5lOTU4NDUyNDQ4ODQzYTZiNTAwYzEzNmU4ZTMwMWRkYTMyNzllYTlhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJs
ZS1jb250ZW50LXRoZW4tZHJhZy1yaWdodC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRh
YmxlLWNvbnRlbnQtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwK
QEAgLTEsOCArMSw4IEBACiA8IURPQ1RZUEUgaHRtbD4KLQogPGh0bWw+CiA8aGVhZD4KICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKQEAgLTEzLDEwOSArMTMs
OTAgQEAKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQogICAgICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAgICAgICAgIHZhciBv
dXRwdXQgPSAnJzsKICAgICAgICAgICAgIHZhciBlZGl0YWJsZVRhcmdldFJlY3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICAgICAgICAgIHZhciBmaXJzdFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Zmlyc3RTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgIHZh
ciBzZWNvbmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZFNlbGVj
dGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHRoaXJkVGFy
Z2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGlyZFNlbGVjdGlvbicpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIGVkaXRhYmxlVG9Ob25lZGl0YWJs
ZU9mZnNldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub25lZGl0YWJsZScpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLnkgLSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55OwogCi0gICAgICAgICAgICB2YXIgcHJlc3NQb2ludFgg
PSBmaXJzdFRhcmdldFJlY3QueCArIGZpcnN0VGFyZ2V0UmVjdC53aWR0aCAvIDI7Ci0gICAgICAg
ICAgICB2YXIgcHJlc3NQb2ludFkgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVj
dC5oZWlnaHQgLyAyIC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAg
dmFyIGRyYWdZID0gZmlyc3RUYXJnZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0IC0g
ZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdYID0gZmly
c3RUYXJnZXRSZWN0LnggKyBmaXJzdFRhcmdldFJlY3Qud2lkdGg7Ci0gICAgICAgICAgICB2YXIg
ZHJhZ1gyID0gc2Vjb25kVGFyZ2V0UmVjdC54OwotICAgICAgICAgICAgdmFyIGRyYWdYMyA9IHRo
aXJkVGFyZ2V0UmVjdC54OwotICAgICAgICAgICAgdmFyIGRyYWdYNCA9IGZpcnN0VGFyZ2V0UmVj
dC54IC0gZmlyc3RUYXJnZXRSZWN0LndpZHRoOwotICAgICAgICAKKyAgICAgICAgICAgIHZhciBw
cmVzc1BvaW50WCA9IGVkaXRhYmxlVGFyZ2V0UmVjdC54ICsgZWRpdGFibGVUYXJnZXRSZWN0Lndp
ZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WSA9IGVkaXRhYmxlVGFyZ2V0UmVj
dC55ICsgZWRpdGFibGVUYXJnZXRSZWN0LmhlaWdodCAqIC42NTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgdmFyIGRyYWdEaXN0YW5jZSA9IDYwOworCisgICAgICAgICAgICB2YXIgc2VsZWN0
aW9uQ2hhbmdlZENvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBsYXN0U2VsZWN0aW9uQ2hhbmdl
Q291bnQ7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25j
aGFuZ2UiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZENvdW50Kys7
CisgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgYXdhaXQgbG9uZ1ByZXNzQXRQb2ludChw
cmVzc1BvaW50WCwgcHJlc3NQb2ludFkpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIm1hZ25hIikKLSAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVz
dWx0IG9mIGEgbG9uZyBwcmVzcy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwog
Ci0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBk
cmFnWSwgZHJhZ1gyLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSA9PSAibWFnbmEgYWxpcXVhLiIpCi0gICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwg
d29yZCBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOwogCi0g
ICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYMiwgZHJh
Z1ksIGRyYWdYMywgZHJhZ1kpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCkgPT0gIm1hZ25hIGFsaXF1YS4gVXQiKQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgIT0gIiIpCisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdQQVNTOiBIYXMgU2VsZWN0aW9uJzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25hbCB3b3Jk
IGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWls
ZWQgdG8gc2VsZWN0IGEgd29yZCBhcyBhIHJlc3VsdCBvZiBhIGxvbmcgcHJlc3MuJzsKICAgICAg
ICAgICAgIG91dHB1dCArPSAnPGJyPic7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJh
Z0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gzLCBkcmFnWSwgZHJhZ1gyLCBkcmFnWSk7Ci0gICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAibWFnbmEgYWxp
cXVhLiIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlv
bic7CisgICAgICAgICAgICB2YXIgZ3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRP
ZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9uRW5kR3JhYmJlclZpZXdSZWN0KCkpOwor
CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJN
aWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LnggKyBkcmFnRGlz
dGFuY2UsIGdyYWJiZXJNaWRwb2ludC55KTsKKworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNo
YW5nZWRDb3VudCA+PSAyKQorICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0
aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IHdvcmQgYWZ0ZXIgYSBkcmFnLiBJbmNv
cnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsK
LSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5vdCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2Vk
Q291bnQ7CisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25D
aGFuZ2VkQ291bnQ7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRv
UG9pbnQoZHJhZ1gyLCBkcmFnWSwgZHJhZ1gsIGRyYWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1
bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJtYWduYSIpCi0gICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBncmFi
YmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRT
ZWxlY3Rpb25FbmRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFu
ZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQu
eSwgZ3JhYmJlck1pZHBvaW50LnggLSBkcmFnRGlzdGFuY2UsIGdyYWJiZXJNaWRwb2ludC55KTsK
KworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+PSBsYXN0U2VsZWN0aW9u
Q2hhbmdlQ291bnQgKyAxKQorICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0
aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IHdvcmQgYWZ0ZXIgYSBkcmFnLiBJbmNv
cnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsK
LSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5vdCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2Vk
Q291bnQ7CisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25D
aGFuZ2VkQ291bnQ7CiAKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCB0b3VjaEFuZERy
YWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1g0LCBkcmFnWSk7Ci0gICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAibSIpCi0gICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAg
ICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhl
bHBlci5nZXRTZWxlY3Rpb25FbmRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2Fp
dCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVy
TWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LnggLSBkcmFnRGlzdGFuY2UsIGdyYWJiZXJNaWRw
b2ludC55KTsKKworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+PSBsYXN0
U2VsZWN0aW9uQ2hhbmdlQ291bnQgKyAxKQorICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFT
UzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHJlZHVjZSBzZWxlY3Rpb24gdG8gYSBz
aW5nbGUgY2hhcmFjdGVyIGJ5IGRyYWdnaW5nIGxlZnQuIEluY29ycmVjdCBTZWxlY3Rpb246ICcg
KyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0
ICs9ICc8YnI+JzsKLSAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gY2hhbmdlZCA8YnI+JyArIHNlbGVjdGlvbkNo
YW5nZWRDb3VudDsKIAotICAgICAgICAgICAgdmFyIG5vbmVkaXRhYmxlRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdub25lZGl0YWJsZScpOwotICAgICAgICAgICAgbm9uZWRpdGFi
bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9uZWRpdGFibGVFbGVtZW50KTsKICAg
ICAgICAgICAgIHZhciBlZGl0YWJsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZWRpdGFibGUnKTsKICAgICAgICAgICAgIGVkaXRhYmxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKGVkaXRhYmxlRWxlbWVudCk7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gb3V0cHV0OwogICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KLQorICAgIAogICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKICAgICA8L3NjcmlwdD4KLSAgICAg
ICAgPHN0eWxlPgotICAgICAgICAjbm9uZWRpdGFibGUgewotICAgICAgICAgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICA8c3R5bGU+CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVpZ2h0
OiA1MHB4OwogICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogc2lsdmVyOwogICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAg
ICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgfQogICAgICAgICAjZWRpdGFibGUg
ewotICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKLSAgICAgICAgICAgIHdpZHRoOiAzMDBweDsK
LSAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKLSAgICAgICAgICAgIGZvbnQt
ZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7Ci0gICAgICAg
IH0KLSAgICAgICAgI3RhcmdldCB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwogICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1v
bm9zcGFjZTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKKyAgICAgICAgICAgIGZvbnQt
c2l6ZTogMzBweDsKICAgICAgICAgfQogICAgIDwvc3R5bGU+CiAgICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KIDwv
aGVhZD4KIDxib2R5PgotICAgIDxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+Ci0g
ICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNj
aW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBk
b2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVk
IGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1v
ZG8gY29uc2VxdWF0LjwvcD4KLSAgICA8L2Rpdj4gCi0gICAgPGRpdiBpZD0ibm9uZWRpdGFibGUi
PgotICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRp
cGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUg
ZXQgZG9sb3JlIDxzcGFuIGlkPSJmaXJzdFNlbGVjdGlvbiI+bWFnbmE8L3NwYW4+IGFsaXF1YS48
c3BhbiBpZD0ic2Vjb25kU2VsZWN0aW9uIj48L3NwYW4+IFV0PHNwYW4gaWQ9InRoaXJkU2VsZWN0
aW9uIj48L3NwYW4+IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0
aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1
YXQuPC9wPgotICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9InRhcmdldCI+CiAgICAgICAgIFRoaXMg
dGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgogICAgIDwvZGl2PgorICAg
IDxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+CisgICAgICAgIDxwPkhlcmUncyB0
byB0aGUgY3Jhenkgb25lcy4gVGhlIG1pc2ZpdHMuIFRoZSByZWJlbHMuIFRoZSB0cm91YmxlIG1h
a2Vycy4gVGhlIHJvdW5kIHBlZ3MgaW4gdGhlIHNxdWFyZSBob2xlcy48L3A+CisgICAgPC9kaXY+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10by1j
aGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10
by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKaW5kZXggZGU1MWFhMzE1NWYzMjI1
N2M3ODU2NzgwMGNkMTUzZTQ3MjVhNmYxMi4uNWMwNjE1MjQ1YjgzYmRkMTBkYWFkOTQ3NTZlNjRm
ODU4MzY0YzQ5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNl
bGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXVwLXRvLWNo
YW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDUgQEAKLVBBU1M6IENv
cnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBT
ZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlv
bgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KK1BBU1M6IEhhcyBTZWxlY3Rpb24KK1BBU1M6IFNl
bGVjdGlvbiBDaGFuZ2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0aW9u
IERpZCBOb3QgQ2hhbmdlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXVwLXRvLWNo
YW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10by1jaGFuZ2Ut
c2VsZWN0ZWQtdGV4dC5odG1sCmluZGV4IDEyMmY4YWRkNGIyMjZkMzM1ZjRkZmNmYjcyMmY0YTE4
ZjIxMDE4ZDcuLjMyOGYxZmNmZjZlYWY2OTZkOWQwMjhhZjRlZTA5NjhkZDgzMGVkOTQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVk
aXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRp
dGFibGUtY29udGVudC10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbApA
QCAtMSw4ICsxLDggQEAKIDwhRE9DVFlQRSBodG1sPgotCiA8aHRtbD4KIDxoZWFkPgogICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpAQCAtMTMsMTA5ICsxMyw4
NyBAQAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotCisgICAgICAgIAogICAgICAgICAgICAgdmFyIG91
dHB1dCA9ICcnOwogICAgICAgICAgICAgdmFyIGVkaXRhYmxlVGFyZ2V0UmVjdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAg
ICAgICAgICAgdmFyIGZpcnN0VGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdm
aXJzdFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFy
IHNlY29uZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kU2VsZWN0
aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgdGhpcmRUYXJn
ZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoaXJkU2VsZWN0aW9uJykuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgZWRpdGFibGVUb05vbmVkaXRhYmxl
T2Zmc2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmVkaXRhYmxlJykuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkueSAtIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7Ci0gICAgICAgIAotICAgICAgICAgICAgdmFyIHByZXNz
UG9pbnRYID0gZmlyc3RUYXJnZXRSZWN0LnggKyBmaXJzdFRhcmdldFJlY3Qud2lkdGggLyAyOwot
ICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRZID0gZmlyc3RUYXJnZXRSZWN0LnkgKyBmaXJzdFRh
cmdldFJlY3QuaGVpZ2h0IC8gMiAtIGVkaXRhYmxlVG9Ob25lZGl0YWJsZU9mZnNldDsKLSAgICAg
ICAgICAgIHZhciBkcmFnWSA9IGZpcnN0VGFyZ2V0UmVjdC55IC0gZWRpdGFibGVUb05vbmVkaXRh
YmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdYID0gZmlyc3RUYXJnZXRSZWN0Lng7Ci0g
ICAgICAgICAgICB2YXIgZHJhZ1kyID0gc2Vjb25kVGFyZ2V0UmVjdC55IC0gZWRpdGFibGVUb05v
bmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdZMyA9IHRoaXJkVGFyZ2V0UmVj
dC55IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdZ
NCA9IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmlyc3RUYXJnZXRSZWN0LmhlaWdodCAtIGVkaXRhYmxl
VG9Ob25lZGl0YWJsZU9mZnNldDsKLSAgICAgICAgCisKKyAgICAgICAgICAgIHZhciBwcmVzc1Bv
aW50WCA9IGVkaXRhYmxlVGFyZ2V0UmVjdC54ICsgZWRpdGFibGVUYXJnZXRSZWN0LndpZHRoIC8g
MjsKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WSA9IGVkaXRhYmxlVGFyZ2V0UmVjdC55ICsg
ZWRpdGFibGVUYXJnZXRSZWN0LmhlaWdodCAqIC42NTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgdmFyIGZvbnRIZWlnaHQgPSAzMDsKKworICAgICAgICAgICAgdmFyIHNlbGVjdGlvbkNoYW5n
ZWRDb3VudCA9IDA7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxl
Y3Rpb25jaGFuZ2UiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZENv
dW50Kys7CisgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgYXdhaXQgbG9uZ1ByZXNzQXRQ
b2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50
LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInV0IikKLSAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEg
cmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50
LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4n
OwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdY
LCBkcmFnWSwgZHJhZ1gsIGRyYWdZMik7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAibyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IikK
LSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0
byBzZWxlY3QgYWRkaXRpb25hbCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlv
bjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBv
dXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVj
dGlvblRvQXBwZWFyKCk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2lu
dFRvUG9pbnQoZHJhZ1gsIGRyYWdZMiwgZHJhZ1gsIGRyYWdZMyk7Ci0gICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiIGFkaXBpc2NpbmcgZWxpdCwg
c2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQiKQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgIT0gIiIpCisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdQQVNTOiBIYXMgU2VsZWN0aW9uJzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25hbCBsaW5l
IGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWls
ZWQgdG8gc2VsZWN0IGEgd29yZCBhcyBhIHJlc3VsdCBvZiBhIGxvbmcgcHJlc3MuJzsKICAgICAg
ICAgICAgIG91dHB1dCArPSAnPGJyPic7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJh
Z0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZMywgZHJhZ1gsIGRyYWdZMik7Ci0gICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAibyBlaXVzbW9k
IHRlbXBvciBpbmNpZGlkdW50IHV0IikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6
IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIHZhciBncmFiYmVyTWlkcG9pbnQgPSBV
SUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFydEdy
YWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2lu
dFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJlck1p
ZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55IC0gKGZvbnRIZWlnaHQgKiAyKSk7CisKKyAgICAg
ICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPT0gMykKKyAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBs
aW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxi
cj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OworCisgICAgICAgICAgICBncmFiYmVyTWlkcG9p
bnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25T
dGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zy
b21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3Jh
YmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAzKSk7Cisg
ICAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVy
TWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMykpOwogCi0gICAgICAgICAgICBhd2FpdCB0b3Vj
aEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWTIsIGRyYWdYLCBkcmFnWSk7Ci0g
ICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAidXQi
KQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwor
ICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9PSA1KQorICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2Vs
ZWN0IGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7
CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5vdCBjaGFu
Z2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGdyYWJiZXJNaWRwb2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVs
cGVyLmdldFNlbGVjdGlvblN0YXJ0R3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdh
aXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJl
ck1pZHBvaW50LnkgLCBncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnkgKyAoZm9u
dEhlaWdodCAqIDIpKTsKIAotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IHRvdWNoQW5k
RHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBkcmFnWCwgZHJhZ1k0KTsKLSAgICAg
ICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJ1dCIpCi0g
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAg
ICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID09IDUpCisgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gRGlkIE5vdCBDaGFuZ2UgPC9icj4nOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHJl
ZHVjZSBzZWxlY3Rpb24gdG8gYSBzaW5nbGUgY2hhcmFjdGVyIGJ5IGRyYWdnaW5nIGRvd24uIElu
Y29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
OwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKLSAgICAgICAgICAgIG91dHB1dCArPSBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gY2hhbmdl
ZCA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKIAotICAgICAgICAgICAgdmFyIG5vbmVk
aXRhYmxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub25lZGl0YWJsZScpOwot
ICAgICAgICAgICAgbm9uZWRpdGFibGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9u
ZWRpdGFibGVFbGVtZW50KTsKICAgICAgICAgICAgIHZhciBlZGl0YWJsZUVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKTsKICAgICAgICAgICAgIGVkaXRhYmxlRWxl
bWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVkaXRhYmxlRWxlbWVudCk7CiAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gb3V0cHV0Owog
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KLQorICAgIAog
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsK
ICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+Ci0gICAgICAgICNub25lZGl0YWJsZSB7Ci0gICAg
ICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIGhl
aWdodDogNTBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
CiAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgIH0KICAgICAgICAgI2VkaXRh
YmxlIHsKLSAgICAgICAgICAgIGhlaWdodDogMjAwcHg7Ci0gICAgICAgICAgICB3aWR0aDogMzAw
cHg7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7Ci0gICAgICAgICAgICBm
b250LWZhbWlseTogbW9ub3NwYWNlOwotICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OwotICAg
ICAgICB9Ci0gICAgICAgICN0YXJnZXQgewotICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAg
ICAgICAgICAgaGVpZ2h0OiAzMDBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5
OiBtb25vc3BhY2U7Ci0gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CisgICAgICAgICAgICBm
b250LXNpemU6IDMwcHg7CiAgICAgICAgIH0KICAgICA8L3N0eWxlPgotICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorICAgIDxtZXRhIG5hbWU9InZp
ZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiA8
L2hlYWQ+CiA8Ym9keT4KLSAgICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29udGVudGVkaXRhYmxlPgot
ICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlz
Y2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQg
ZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1
ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21t
b2RvIGNvbnNlcXVhdC48L3A+Ci0gICAgPC9kaXY+IAotICAgIDxkaXYgaWQ9Im5vbmVkaXRhYmxl
Ij4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyPHNw
YW4gaWQ9InRoaXJkU2VsZWN0aW9uIj48L3NwYW4+IGFkaXBpc2NpbmcgZWxpdCwgc2VkIGQ8c3Bh
biBpZD0ic2Vjb25kU2VsZWN0aW9uIj48L3NwYW4+byBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50
IDxzcGFuIGlkPSJmaXJzdFNlbGVjdGlvbiI+dXQ8L3NwYW4+IGxhYm9yZSBldCBkb2xvcmUgbWFn
bmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRh
dGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2Vx
dWF0LjwvcD4KLSAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJ0YXJnZXQiPgogICAgICAgICBUaGlz
IHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KICAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29udGVudGVkaXRhYmxlPgorICAgICAgICA8cD5IZXJlJ3Mg
dG8gdGhlIGNyYXp5IG9uZXMuIFRoZSBtaXNmaXRzLiBUaGUgcmViZWxzLiBUaGUgdHJvdWJsZSBt
YWtlcnMuIFRoZSByb3VuZCBwZWdzIGluIHRoZSBzcXVhcmUgaG9sZXMuPC9wPgorICAgIDwvZGl2
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggNjVi
NGQ1NDY0ZWIxN2RhOTIxNmJlMDI3NWQyNjliNjVlMGQ5MGIxMC4uOTJjZTRhYzg2ZjdiNTQ1NmQ2
YjI1MzIyYTUzMmQxMmMxYjNmNDlmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBA
IC04MTksNiArODE5LDEwIEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAg
ICAgICAgfSk7CiAgICAgfQogCisgICAgc3RhdGljICBtaWRQb2ludE9mUmVjdChyZWN0KSB7Cisg
ICAgICAgIHJldHVybiB7eDpyZWN0LmxlZnQgKyAocmVjdC53aWR0aCAvIDIpLCB5OnJlY3QudG9w
ICsgKHJlY3QuaGVpZ2h0IC8gMil9OworICAgIH0KKwogICAgIHN0YXRpYyBzZWxlY3Rpb25DYXJl
dEJhY2tncm91bmRDb2xvcigpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437526</attachid>
            <date>2021-09-07 10:25:07 -0700</date>
            <delta_ts>2021-09-07 11:00:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229779-20210907102506.patch</filename>
            <type>text/plain</type>
            <size>43658</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzgyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzI5NDEyODU1NWZkMzEzZDJmYmNkNGVhMWZiNjE4MWUx
ZThiNGM3MS4uNzZhMjQzY2Q2OTlmOTU0NDY4OGQxOTY0YWZmOTYzYjgwYThkMjgzMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTA5LTAxICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV3cml0ZSBsb25nIHByZXNzIGFuZCBkcmFnIHRlc3RzIHRvIGJlIG1vcmUg
cm9idXN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI5Nzc5CisgICAgICAgIHJkYXI6Ly80MDkxNzIwMworCisgICAgICAgIFJldmlld2VkIGJ5IFdl
bnNvbiBIc2llaC4KKworICAgICAgICBGb3VuZCBhIGNyYXNoIHdoZW4gYmFkIGRhdGEgd2FzIGVu
dGVyZWQgZm9yIGdlc3R1cmUgZW11bGF0aW9uLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpjb252ZXJ0Q29v
cmRpbmF0ZXMpOgorCiAyMDIxLTA4LTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IGRvdWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1m
b3Itc2VsZWN0aW9uLXRoZW4tZHJhZy0qIHRlc3RzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IDM3Y2I1MTNkNjI1M2I5
OWEwZTQ1NjE0NjQzNGNiZDE3ZmM0YzZkYjUuLjk1YzM4M2Q1NzJhODEwNWZlNjlkYzAxYmFhNThj
MmQ5ZWExMzY1NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTQwNCw3ICs0MDQsMTAgQEAgdm9pZCBjb252ZXJ0Q29v
cmRpbmF0ZXMoVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldywgTlNNdXRhYmxlRGljdGlvbmFy
eSAqZXZlbnQKIHsKICAgICBpZiAoZXZlbnRbSElERXZlbnRUb3VjaGVzS2V5XSkgewogICAgICAg
ICBmb3IgKE5TTXV0YWJsZURpY3Rpb25hcnkgKnRvdWNoIGluIGV2ZW50W0hJREV2ZW50VG91Y2hl
c0tleV0pIHsKLSAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBnbG9iYWxUb0NvbnRlbnRDb29y
ZGluYXRlcyh3ZWJWaWV3LCAobG9uZylbdG91Y2hbSElERXZlbnRYS2V5XSBkb3VibGVWYWx1ZV0s
IChsb25nKVt0b3VjaFtISURFdmVudFlLZXldZG91YmxlVmFsdWVdKTsKKyAgICAgICAgICAgIE5T
TnVtYmVyICp0b3VjaFggPSB0b3VjaFtISURFdmVudFhLZXldID09IFtOU051bGwgbnVsbF0gPyBu
aWwgOiB0b3VjaFtISURFdmVudFhLZXldOworICAgICAgICAgICAgTlNOdW1iZXIgKnRvdWNoWSA9
IHRvdWNoW0hJREV2ZW50WUtleV0gPT0gW05TTnVsbCBudWxsXSA/IG5pbCA6IHRvdWNoW0hJREV2
ZW50WUtleV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBnbG9i
YWxUb0NvbnRlbnRDb29yZGluYXRlcyh3ZWJWaWV3LCAobG9uZylbdG91Y2hYIGRvdWJsZVZhbHVl
XSwgKGxvbmcpW3RvdWNoWSBkb3VibGVWYWx1ZV0pOwogICAgICAgICAgICAgdG91Y2hbSElERXZl
bnRYS2V5XSA9IEAobG9jYXRpb24ueCk7CiAgICAgICAgICAgICB0b3VjaFtISURFdmVudFlLZXld
ID0gQChsb2NhdGlvbi55KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA4YWI2NjkwZDIxNjkyNzMwY2U3
ZDFkZTE5YWY0NjA4MThjNGFiM2EuLjVjNzk0YTUzNTQzMjE4ZWU0OGZlOGM0NjUxYzNlNzg0YmQx
ZTcyMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wOS0wMSAgTWVnYW4gR2FyZG5lciAg
PG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJld3JpdGUgbG9uZyBwcmVzcyBh
bmQgZHJhZyB0ZXN0cyB0byBiZSBtb3JlIHJvYnVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTc3OQorICAgICAgICByZGFyOi8vNDA5MTcyMDMK
KworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgUmV3cml0ZSBs
b25nIHByZXNzIGFuZCBkcmFnIHRlc3RzIHRvIHVzZSBtb3JlIG1vZGVybiBtZXRob2RzIGFuZCBt
YWtlIHRoZSB0ZXN0IG1vcmUKKyAgICAgICAgcm9idXN0IHRvIHNtYWxsIGNoYW5nZXMgaW4gVUlL
aXQncyBzZWxlY3Rpb24gY29kZS4gCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1z
ZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5n
ZS1zZWxlY3RlZC10ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xv
bmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVmdC10by1jaGFuZ2Utc2Vs
ZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVmdC10by1jaGFuZ2Ut
c2VsZWN0ZWQtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxl
Y3RlZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1yaWdodC10by1jaGFuZ2Ut
c2VsZWN0ZWQtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9u
Zy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0
ZWQtdGV4dC5odG1sOgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAg
ICh3aW5kb3cuVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QpOgorCiAyMDIxLTA4LTMwICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGRvdWJsZS10
YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy0qIHRlc3RzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mt
b24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1w
cmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBkZTUxYWEzMTU1ZjMyMjU3Yzc4NTY3ODAwY2QxNTNl
NDcyNWE2ZjEyLi41YzA2MTUyNDViODNiZGQxMGRhYWQ5NDc1NmU2NGY4NTgzNjRjNDkxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1l
ZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1w
cmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDUgQEAKLVBBU1M6IENvcnJlY3QgU2VsZWN0
aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBB
U1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29y
cmVjdCBTZWxlY3Rpb24KK1BBU1M6IEhhcyBTZWxlY3Rpb24KK1BBU1M6IFNlbGVjdGlvbiBDaGFu
Z2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0aW9uIERpZCBOb3QgQ2hh
bmdlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVj
dGVkLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXBy
ZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVk
LXRleHQuaHRtbAppbmRleCAyNzQ2MGIyMjU0MWMwYzY4ZmVhN2U4MjU4MTNiOTI1MGFiZjI2N2U3
Li41ZTAwNGI4OTFjOTk4YzFmY2Y5YWVjZjY2OGUwZmFiMWEyOGMwNzA1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1j
b250ZW50LXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUt
Y29udGVudC10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCkBAIC0x
LDEyMSArMSw5OSBAQAogPCFET0NUWVBFIGh0bWw+Ci0KIDxodG1sPgogPGhlYWQ+CiAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgfQotICAgIAorCiAgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAg
ICAgICAgICAgdmFyIG91dHB1dCA9ICcnOwogICAgICAgICAgICAgdmFyIGVkaXRhYmxlVGFyZ2V0
UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0VGFyZ2V0UmVjdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdmaXJzdFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwot
ICAgICAgICAgICAgdmFyIHNlY29uZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc2Vjb25kU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAg
ICB2YXIgdGhpcmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoaXJkU2Vs
ZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgZWRpdGFi
bGVUb05vbmVkaXRhYmxlT2Zmc2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmVkaXRh
YmxlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSAtIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdlZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7Ci0gICAgICAgIAotICAgICAg
ICAgICAgdmFyIHByZXNzUG9pbnRYID0gZmlyc3RUYXJnZXRSZWN0LnggKyBmaXJzdFRhcmdldFJl
Y3Qud2lkdGggLyAyOwotICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRZID0gZmlyc3RUYXJnZXRS
ZWN0LnkgKyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0IC8gMiAtIGVkaXRhYmxlVG9Ob25lZGl0YWJs
ZU9mZnNldDsKLSAgICAgICAgICAgIHZhciBkcmFnWSA9IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmly
c3RUYXJnZXRSZWN0LmhlaWdodCAtIGVkaXRhYmxlVG9Ob25lZGl0YWJsZU9mZnNldDsKLSAgICAg
ICAgICAgIHZhciBkcmFnWCA9IGZpcnN0VGFyZ2V0UmVjdC54ICsgZmlyc3RUYXJnZXRSZWN0Lndp
ZHRoOwotICAgICAgICAgICAgdmFyIGRyYWdZMiA9IHNlY29uZFRhcmdldFJlY3QueSArIHNlY29u
ZFRhcmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAg
ICAgICAgdmFyIGRyYWdZMyA9IHRoaXJkVGFyZ2V0UmVjdC55ICsgdGhpcmRUYXJnZXRSZWN0Lmhl
aWdodCAtIGVkaXRhYmxlVG9Ob25lZGl0YWJsZU9mZnNldDsKLSAgICAgICAgICAgIHZhciBkcmFn
WTQgPSBmaXJzdFRhcmdldFJlY3QueSAtIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLSBlZGl0YWJs
ZVRvTm9uZWRpdGFibGVPZmZzZXQ7CisKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IGVk
aXRhYmxlVGFyZ2V0UmVjdC54ICsgZWRpdGFibGVUYXJnZXRSZWN0LndpZHRoIC8gMjsKKyAgICAg
ICAgICAgIHZhciBwcmVzc1BvaW50WSA9IGVkaXRhYmxlVGFyZ2V0UmVjdC55ICsgZWRpdGFibGVU
YXJnZXRSZWN0LmhlaWdodCAvIDI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZhciBmb250
SGVpZ2h0ID0gMzA7CisKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPSAw
OworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdl
IiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWRDb3VudCsrOworICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGF3YWl0IGxvbmdQcmVzc0F0UG9pbnQocHJlc3NQ
b2ludFgsIHByZXNzUG9pbnRZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpID09ICJzZWQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFT
UzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2Yg
YSBsb25nIHByZXNzLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CiAKLSAgICAg
ICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBk
cmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVuIikKLSAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3Qg
YWRkaXRpb25hbCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRv
Y3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0g
Jzxicj4nOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBw
ZWFyKCk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQo
ZHJhZ1gsIGRyYWdZMiwgZHJhZ1gsIGRyYWdZMyk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYSIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0
U2VsZWN0aW9uKCkudG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J1BBU1M6IEhhcyBTZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIg
YSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBz
ZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4nOwogICAgICAgICAgICAg
b3V0cHV0ICs9ICc8YnI+JzsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBv
aW50VG9Qb2ludChkcmFnWCwgZHJhZ1kzLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlm
IChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21vZCB0
ZW1wb3IgaW5jaWRpZHVuIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJl
Y3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIHZhciBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBl
ci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25FbmRHcmFiYmVyVmll
d1JlY3QoKSk7CisKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9p
bnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55LCBncmFiYmVyTWlkcG9pbnQu
eCwgZ3JhYmJlck1pZHBvaW50LnkgKyAoZm9udEhlaWdodCAqIDIpKTsKKworICAgICAgICAgICAg
aWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9PSAyKQorICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IGxpbmUgYWZ0
ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5vdCBjaGFuZ2UgPGJyPicgKyBz
ZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zy
b21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZMiwgZHJhZ1gsIGRyYWdZKTsKLSAgICAgICAgICAg
IGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzZWQiKQotICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAg
ICAgZ3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxw
ZXIuZ2V0U2VsZWN0aW9uRW5kR3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQg
dG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1p
ZHBvaW50LnksIGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVp
Z2h0ICogMikpOworCisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID09IDMp
CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2Jy
Pic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBm
YWlsZWQgdG8gZGVzZWxlY3QgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246
ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0
cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlv
biBkaWQgbm90IGNoYW5nZSA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKIAotICAgICAg
ICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJh
Z1gsIGRyYWdZLCBkcmFnWCwgZHJhZ1k0KTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGdyYWJiZXJNaWRwb2ludCA9
IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVyLmdldFNlbGVjdGlvbkVuZEdy
YWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2lu
dFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55LCBncmFiYmVyTWlk
cG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnkgLSAoZm9udEhlaWdodCAqIDQpKTsKKworICAgICAg
ICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9PSAzKQorICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIERpZCBOb3QgQ2hhbmdlIDwvYnI+JzsKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byByZWR1
Y2Ugc2VsZWN0aW9uIHRvIGEgc2luZ2xlIGNoYXJhY3RlciBieSBkcmFnZ2luZyB1cC4gSW5jb3Jy
ZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwotICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3Vs
dDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBjaGFuZ2VkIDxi
cj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogCi0gICAgICAgICAgICB2YXIgbm9uZWRpdGFi
bGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmVkaXRhYmxlJyk7Ci0gICAg
ICAgICAgICBub25lZGl0YWJsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub25lZGl0
YWJsZUVsZW1lbnQpOwogICAgICAgICAgICAgdmFyIGVkaXRhYmxlRWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpOwogICAgICAgICAgICAgZWRpdGFibGVFbGVtZW50
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWRpdGFibGVFbGVtZW50KTsKICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CiAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQotICAgIAorCiAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOwogICAg
IDwvc2NyaXB0PgogICAgIDxzdHlsZT4KLSAgICAgICAgI25vbmVkaXRhYmxlIHsKLSAgICAgICAg
ICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVpZ2h0
OiA1MHB4OwogICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogc2lsdmVyOwogICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAg
ICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgfQogICAgICAgICAjZWRpdGFibGUg
ewotICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7
CiAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBzaWx2ZXI7CiAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAgICAgICAg
ICAgZm9udC1zaXplOiAxOHB4OwotICAgICAgICB9Ci0gICAgICAgICN0YXJnZXQgewotICAgICAg
ICAgICAgaGVpZ2h0OiA1MHB4OwotICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwotICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1v
bm9zcGFjZTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKKyAgICAgICAgICAgIGZvbnQt
c2l6ZTogMzBweDsKICAgICAgICAgfQogICAgIDwvc3R5bGU+CiAgICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KIDwv
aGVhZD4KIDxib2R5PgotICAgIDxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+Ci0g
ICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNj
aW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBk
b2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVk
IGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1v
ZG8gY29uc2VxdWF0LjwvcD4KLSAgICA8L2Rpdj4gCi0gICAgPGRpdiBpZD0ibm9uZWRpdGFibGUi
PgotICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRp
cGlzY2luZyBlbGl0LCA8c3BhbiBpZD0iZmlyc3RTZWxlY3Rpb24iPnNlZDwvc3Bhbj4gZG8gZWl1
c21vZCB0ZW1wb3IgaW5jaWRpZHVuPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+PC9zcGFuPnQg
dXQgbGFib3JlIGV0IGRvbG9yZSBtYWc8c3BhbiBpZD0idGhpcmRTZWxlY3Rpb24iPjwvc3Bhbj5u
YSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0
aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1
YXQuPC9wPgotICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9InRhcmdldCI+CiAgICAgICAgIFRoaXMg
dGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgogICAgIDwvZGl2PgorICAg
IDxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+CisgICAgICAgIDxwPkhlcmUncyB0
byB0aGUgY3Jhenkgb25lcy4gVGhlIG1pc2ZpdHMuIFRoZSByZWJlbHMuIFRoZSB0cm91YmxlbWFr
ZXJzLiBUaGUgcm91bmQgcGVncyBpbiB0aGUgc3F1YXJlIGhvbGVzLjwvcD4KKyAgICA8L2Rpdj4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWxlZnQtdG8t
Y2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVm
dC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKaW5kZXggZGU1MWFhMzE1NWYz
MjI1N2M3ODU2NzgwMGNkMTUzZTQ3MjVhNmYxMi4uY2M3YTQzNTcxNmQ4YzA1ZTZmNmQ1OTNiYjFh
NTkxZmU2ODkyNjdkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVmdC10by1jaGFu
Z2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVm
dC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw1IEBACi1Q
QVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENv
cnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBT
ZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCitQQVNTOiBIYXMgU2VsZWN0aW9uCitQ
QVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0aW9uIENoYW5nZWQKK1BBU1M6IFNl
bGVjdGlvbiBDaGFuZ2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWxlZnQtdG8t
Y2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLWxlZnQtdG8tY2hh
bmdlLXNlbGVjdGVkLXRleHQuaHRtbAppbmRleCA0ZTk3ZGVlMTlhYjU0NTEwZjZmYzNkOTcyZDY2
YTFhMGM5MTg4ODlmLi5jYzRkOTM4ODU0MTFkMGE2ZjUwZDU5ZDhhOTU3NzQ3NjQ3ZDNiY2FlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1v
bi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1sZWZ0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mt
b24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctbGVmdC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4
dC5odG1sCkBAIC0xLDEyMSArMSwxMDIgQEAKIDwhRE9DVFlQRSBodG1sPgotCiA8aHRtbD4KIDxo
ZWFkPgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVy
ZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KLSAgICAKKwog
ICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgCisKICAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJzsKICAgICAgICAgICAgIHZhciBl
ZGl0YWJsZVRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgIHZhciBmaXJzdFRhcmdldFJlY3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKLSAgICAgICAgICAgIHZhciBzZWNvbmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3NlY29uZFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgICAgICAgICAgdmFyIHRoaXJkVGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0aGlyZFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAg
ICAgdmFyIGVkaXRhYmxlVG9Ob25lZGl0YWJsZU9mZnNldCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdub25lZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgLSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55OwotICAg
ICAgICAKLSAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IGZpcnN0VGFyZ2V0UmVjdC54ICsg
Zmlyc3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WSA9
IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmlyc3RUYXJnZXRSZWN0LmhlaWdodCAvIDIgLSBlZGl0YWJs
ZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kgPSBmaXJzdFRhcmdl
dFJlY3QueSAtIGVkaXRhYmxlVG9Ob25lZGl0YWJsZU9mZnNldDsKLSAgICAgICAgICAgIHZhciBk
cmFnWCA9IGZpcnN0VGFyZ2V0UmVjdC54OwotICAgICAgICAgICAgdmFyIGRyYWdYMiA9IHNlY29u
ZFRhcmdldFJlY3QueDsKLSAgICAgICAgICAgIHZhciBkcmFnWDMgPSB0aGlyZFRhcmdldFJlY3Qu
eDsKLSAgICAgICAgICAgIHZhciBkcmFnWDQgPSBmaXJzdFRhcmdldFJlY3QueCArIGZpcnN0VGFy
Z2V0UmVjdC53aWR0aDsKKworICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRYID0gZWRpdGFibGVU
YXJnZXRSZWN0LnggKyBlZGl0YWJsZVRhcmdldFJlY3Qud2lkdGggLyAyOworICAgICAgICAgICAg
dmFyIHByZXNzUG9pbnRZID0gZWRpdGFibGVUYXJnZXRSZWN0LnkgKyBlZGl0YWJsZVRhcmdldFJl
Y3QuaGVpZ2h0ICogLjY1OworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgZHJhZ0Rpc3Rh
bmNlID0gNjA7CisKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPSAwOwor
ICAgICAgICAgICAgdmFyIGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudDsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsICgpID0+IHsKKyAgICAg
ICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkQ291bnQrKzsKKyAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgICAgICBhd2FpdCBsb25nUHJlc3NBdFBvaW50KHByZXNzUG9pbnRYLCBwcmVzc1BvaW50
WSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9
PSAiYWxpcXVhIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2Vs
ZWN0aW9uJzsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZB
SUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4g
SW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwogCi0gICAgICAgICAgICBhd2FpdCB0
b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1gyLCBkcmFnWSk7
Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAi
bWFnbmEgYWxpcXVhIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3Qg
U2VsZWN0aW9uJzsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25hbCB3b3JkIGFmdGVyIGEgZHJhZy4gSW5j
b3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7
Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNo
QW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gyLCBkcmFnWSwgZHJhZ1gzLCBkcmFnWSk7Ci0g
ICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiZG9s
b3JlIG1hZ25hIGFsaXF1YSIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3Jy
ZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IEhhcyBT
ZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
RkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIHdvcmQgYWZ0ZXIgYSBkcmFnLiBJbmNv
cnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsK
KyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3Jk
IGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4nOwogICAgICAgICAgICAgb3V0cHV0ICs9ICc8
YnI+JzsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChk
cmFnWDMsIGRyYWdZLCBkcmFnWDIsIGRyYWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJtYWduYSBhbGlxdWEiKQotICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgdmFy
IGdyYWJiZXJNaWRwb2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVy
LmdldFNlbGVjdGlvblN0YXJ0R3JhYmJlclZpZXdSZWN0KCkpOworCisgICAgICAgICAgICBhd2Fp
dCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVy
TWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LnggLSBkcmFnRGlzdGFuY2UsIGdyYWJiZXJNaWRw
b2ludC55KTsKKworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+PSAyKQor
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4n
OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFp
bGVkIHRvIGRlc2VsZWN0IHdvcmQgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAn
ICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1
dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24g
ZGlkIG5vdCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAg
ICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAKLSAg
ICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gyLCBkcmFn
WSwgZHJhZ1gsIGRyYWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24o
KS50b1N0cmluZygpID09ICJhbGlxdWEiKQotICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BB
U1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGdyYWJiZXJNaWRwb2ludCA9IFVJ
SGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVyLmdldFNlbGVjdGlvblN0YXJ0R3Jh
YmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50
VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnksIGdyYWJiZXJNaWRw
b2ludC54ICsgZHJhZ0Rpc3RhbmNlLCBncmFiYmVyTWlkcG9pbnQueSk7CisKKyAgICAgICAgICAg
IGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPj0gbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50ICsg
MSkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwv
YnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6
IGZhaWxlZCB0byBkZXNlbGVjdCB3b3JkIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlv
bjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBv
dXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0
aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAg
ICAgICAgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gc2VsZWN0aW9uQ2hhbmdlZENvdW50Owog
Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Q
b2ludChkcmFnWCwgZHJhZ1ksIGRyYWdYNCwgZHJhZ1kpOwotICAgICAgICAgICAgaWYgKGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gImEiKQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgZ3JhYmJlck1p
ZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0
aW9uU3RhcnRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERy
YWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwg
Z3JhYmJlck1pZHBvaW50LnggKyBkcmFnRGlzdGFuY2UsIGdyYWJiZXJNaWRwb2ludC55KTsKKwor
ICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+PSBsYXN0U2VsZWN0aW9uQ2hh
bmdlQ291bnQgKyAxKQorICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9u
IENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnRkFJTDogZmFpbGVkIHRvIHJlZHVjZSBzZWxlY3Rpb24gdG8gYSBzaW5nbGUgY2hhcmFj
dGVyIGJ5IGRyYWdnaW5nIHJpZ2h0LiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7
Ci0gICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnRkFJTDogU2VsZWN0aW9uIGNoYW5nZWQgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7
CiAKLSAgICAgICAgICAgIHZhciBub25lZGl0YWJsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbm9uZWRpdGFibGUnKTsKLSAgICAgICAgICAgIG5vbmVkaXRhYmxlRWxlbWVudC5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vbmVkaXRhYmxlRWxlbWVudCk7CiAgICAgICAgICAgICB2
YXIgZWRpdGFibGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJyk7
CiAgICAgICAgICAgICBlZGl0YWJsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlZGl0
YWJsZUVsZW1lbnQpOwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rhcmdl
dCcpLmlubmVySFRNTCA9IG91dHB1dDsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogICAgICAgICB9Ci0gICAgCisKICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgotICAg
ICAgICAjbm9uZWRpdGFibGUgewotICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAg
I3RhcmdldCB7CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgICB3aWR0aDog
MzAwcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgICAg
ICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4Owog
ICAgICAgICB9CiAgICAgICAgICNlZGl0YWJsZSB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsK
ICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQt
ZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7Ci0gICAgICAg
IH0KLSAgICAgICAgI3RhcmdldCB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7Ci0gICAgICAg
ICAgICB3aWR0aDogMzAwcHg7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7
Ci0gICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAgICAgICAgICAgZm9udC1z
aXplOiAxOHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICAgICB9CiAgICAg
PC9zdHlsZT4KICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgogPC9oZWFkPgogPGJvZHk+Ci0gICAgPGRpdiBpZD0i
ZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVt
cG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0g
YWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3Jp
cyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuPC9wPgotICAgIDwvZGl2
PiAgIAotICAgIDxkaXYgaWQ9Im5vbmVkaXRhYmxlIj4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0g
ZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNt
b2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IDxzcGFuIGlkPSJ0aGlyZFNlbGVjdGlv
biI+PC9zcGFuPmRvbG9yZSA8c3BhbiBpZD0ic2Vjb25kU2VsZWN0aW9uIj48L3NwYW4+bWFnbmEg
PHNwYW4gaWQ9ImZpcnN0U2VsZWN0aW9uIj5hbGlxdWE8L3NwYW4+LiBVdCBlbmltIGFkIG1pbmlt
IHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1
dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LjwvcD4KLSAgICA8L2Rpdj4KICAgICA8
ZGl2IGlkPSJ0YXJnZXQiPgogICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250
cm9sbGVyIHRvIHJ1bi4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29udGVu
dGVkaXRhYmxlPgorICAgICAgICA8cD5IZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMuIFRoZSBtaXNm
aXRzLiBUaGUgcmViZWxzLiBUaGUgdHJvdWJsZSBtYWtlcnMuIFRoZSByb3VuZCBwZWdzIGluIHRo
ZSBzcXVhcmUgaG9sZXMuPC9wPgorICAgIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRp
dGFibGUtY29udGVudC10aGVuLWRyYWctcmlnaHQtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mt
b24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctcmlnaHQtdG8tY2hhbmdlLXNlbGVjdGVkLXRl
eHQtZXhwZWN0ZWQudHh0CmluZGV4IGRlNTFhYTMxNTVmMzIyNTdjNzg1Njc4MDBjZDE1M2U0NzI1
YTZmMTIuLmNjN2E0MzU3MTZkOGMwNWU2ZjZkNTkzYmIxYTU5MWZlNjg5MjY3ZDUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRh
YmxlLWNvbnRlbnQtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVz
cy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1yaWdodC10by1jaGFuZ2Utc2VsZWN0ZWQt
dGV4dC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw1IEBACi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlv
bgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNT
OiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJl
Y3QgU2VsZWN0aW9uCitQQVNTOiBIYXMgU2VsZWN0aW9uCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdl
ZAorUEFTUzogU2VsZWN0aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9u
LWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1l
ZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy1yaWdodC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5o
dG1sCmluZGV4IGNjNWQzODRlZWQ1NjEwNWI0OGE3OTIxYTNlOTgzOWRiY2NlM2VkMGYuLmFmYjQz
YjliZjI2YWY4YmFmNWI5ZDNmZTMwN2VlNGNiZWUyMjQxYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQt
dGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVu
dC10aGVuLWRyYWctcmlnaHQtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbApAQCAtMSwxNCAr
MSwxNCBAQAogPCFET0NUWVBFIGh0bWw+Ci0KIDxodG1sPgogPGhlYWQ+CiAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgfQotICAgIAorCiAgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCkBAIC0xNiw2NCArMTYsNTUgQEAKIAogICAgICAgICAgICAgdmFyIG91dHB1dCA9
ICcnOwogICAgICAgICAgICAgdmFyIGVkaXRhYmxlVGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAg
ICAgdmFyIGZpcnN0VGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNl
bGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHNlY29u
ZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kU2VsZWN0aW9uJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoaXJkU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmVkaXRhYmxlJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkueSAtIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLnk7Ci0KLSAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IGZpcnN0
VGFyZ2V0UmVjdC54ICsgZmlyc3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZh
ciBwcmVzc1BvaW50WSA9IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmlyc3RUYXJnZXRSZWN0LmhlaWdo
dCAvIDIgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJh
Z1kgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLSBlZGl0YWJs
ZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1ggPSBmaXJzdFRhcmdl
dFJlY3QueCArIGZpcnN0VGFyZ2V0UmVjdC53aWR0aDsKLSAgICAgICAgICAgIHZhciBkcmFnWDIg
PSBzZWNvbmRUYXJnZXRSZWN0Lng7Ci0gICAgICAgICAgICB2YXIgZHJhZ1gzID0gdGhpcmRUYXJn
ZXRSZWN0Lng7Ci0gICAgICAgICAgICB2YXIgZHJhZ1g0ID0gZmlyc3RUYXJnZXRSZWN0LnggLSBm
aXJzdFRhcmdldFJlY3Qud2lkdGg7Ci0gICAgICAgIAorCisgICAgICAgICAgICB2YXIgcHJlc3NQ
b2ludFggPSBlZGl0YWJsZVRhcmdldFJlY3QueCArIGVkaXRhYmxlVGFyZ2V0UmVjdC53aWR0aCAv
IDI7CisgICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkgPSBlZGl0YWJsZVRhcmdldFJlY3QueSAr
IGVkaXRhYmxlVGFyZ2V0UmVjdC5oZWlnaHQgKiAuNjU7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIHZhciBkcmFnRGlzdGFuY2UgPSA2MDsKKworICAgICAgICAgICAgdmFyIHNlbGVjdGlvbkNo
YW5nZWRDb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50
OworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdl
IiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWRDb3VudCsrOworICAg
ICAgICAgICAgfSk7CisKICAgICAgICAgICAgIGF3YWl0IGxvbmdQcmVzc0F0UG9pbnQocHJlc3NQ
b2ludFgsIHByZXNzUG9pbnRZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpID09ICJtYWduYSIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQ
QVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGEgd29yZCBhcyBhIHJlc3VsdCBv
ZiBhIGxvbmcgcHJlc3MuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxl
Y3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKIAotICAg
ICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1ks
IGRyYWdYMiwgZHJhZ1kpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgPT0gIm1hZ25hIGFsaXF1YS4iKQotICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIHdvcmQg
YWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKIAotICAgICAg
ICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWDIsIGRyYWdZLCBk
cmFnWDMsIGRyYWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpID09ICJtYWduYSBhbGlxdWEuIFV0IikKLSAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpICE9ICIiKQorICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnUEFTUzogSGFzIFNlbGVjdGlvbic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwgd29yZCBhZnRl
ciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24o
KS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRv
IHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzLic7CiAgICAgICAgICAg
ICBvdXRwdXQgKz0gJzxicj4nOwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9t
UG9pbnRUb1BvaW50KGRyYWdYMywgZHJhZ1ksIGRyYWdYMiwgZHJhZ1kpOwotICAgICAgICAgICAg
aWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIm1hZ25hIGFsaXF1YS4i
KQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwor
ICAgICAgICAgICAgdmFyIGdyYWJiZXJNaWRwb2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0
KGF3YWl0IFVJSGVscGVyLmdldFNlbGVjdGlvbkVuZEdyYWJiZXJWaWV3UmVjdCgpKTsKKworICAg
ICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9p
bnQueCwgZ3JhYmJlck1pZHBvaW50LnksIGdyYWJiZXJNaWRwb2ludC54ICsgZHJhZ0Rpc3RhbmNl
LCBncmFiYmVyTWlkcG9pbnQueSk7CisKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2Vk
Q291bnQgPj0gMikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBD
aGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCB3b3JkIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0
IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAg
ICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50
OworICAgICAgICAgICAgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gc2VsZWN0aW9uQ2hhbmdl
ZENvdW50OwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50
KGRyYWdYMiwgZHJhZ1ksIGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAibWFnbmEiKQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgZ3JhYmJlck1p
ZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0
aW9uRW5kR3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFn
RnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnksIGdy
YWJiZXJNaWRwb2ludC54IC0gZHJhZ0Rpc3RhbmNlLCBncmFiYmVyTWlkcG9pbnQueSk7CisKKyAg
ICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPj0gbGFzdFNlbGVjdGlvbkNoYW5n
ZUNvdW50ICsgMSkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBD
aGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCB3b3JkIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0
IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAg
ICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50
OworICAgICAgICAgICAgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gc2VsZWN0aW9uQ2hhbmdl
ZENvdW50OworCisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2lu
dE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25FbmRHcmFiYmVyVmlld1JlY3QoKSk7
CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJN
aWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LnggLSBkcmFnRGlz
dGFuY2UsIGdyYWJiZXJNaWRwb2ludC55KTsKIAotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3
YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBkcmFnWDQsIGRy
YWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
ID09ICJtIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0
aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPj0gbGFzdFNlbGVj
dGlvbkNoYW5nZUNvdW50ICsgMSkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNl
bGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byByZWR1Y2Ugc2VsZWN0aW9uIHRvIGEgc2luZ2xl
IGNoYXJhY3RlciBieSBkcmFnZ2luZyBsZWZ0LiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9j
dW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAn
PGJyPic7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGNoYW5nZWQgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2Vk
Q291bnQ7CiAKLSAgICAgICAgICAgIHZhciBub25lZGl0YWJsZUVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbm9uZWRpdGFibGUnKTsKLSAgICAgICAgICAgIG5vbmVkaXRhYmxlRWxl
bWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vbmVkaXRhYmxlRWxlbWVudCk7CiAgICAgICAg
ICAgICB2YXIgZWRpdGFibGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRh
YmxlJyk7CiAgICAgICAgICAgICBlZGl0YWJsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChlZGl0YWJsZUVsZW1lbnQpOwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldCcpLmlubmVySFRNTCA9IG91dHB1dDsKQEAgLTgyLDQwICs3MywzMCBAQAogCiAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOwogICAg
IDwvc2NyaXB0PgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICNub25lZGl0YWJsZSB7Ci0gICAg
ICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgIDxzdHlsZT4KKyAgICAgICAgI3RhcmdldCB7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgICAgICBmb250LWZhbWls
eTogbW9ub3NwYWNlOwogICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICB9CiAg
ICAgICAgICNlZGl0YWJsZSB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAzMDBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25v
c3BhY2U7Ci0gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7Ci0gICAgICAgIH0KLSAgICAgICAg
I3RhcmdldCB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7Ci0gICAgICAgICAgICB3aWR0aDog
MzAwcHg7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7Ci0gICAgICAgICAg
ICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4Owor
ICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICAgICB9CiAgICAgPC9zdHlsZT4KICAg
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEiPgogPC9oZWFkPgogPGJvZHk+Ci0gICAgPGRpdiBpZD0iZWRpdGFibGUiIGNv
bnRlbnRlZGl0YWJsZT4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNv
bnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1
bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVu
aWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFs
aXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuPC9wPgotICAgIDwvZGl2PiAKLSAgICA8ZGl2
IGlkPSJub25lZGl0YWJsZSI+Ci0gICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNp
ZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgPHNwYW4gaWQ9ImZpcnN0U2VsZWN0aW9uIj5tYWdu
YTwvc3Bhbj4gYWxpcXVhLjxzcGFuIGlkPSJzZWNvbmRTZWxlY3Rpb24iPjwvc3Bhbj4gVXQ8c3Bh
biBpZD0idGhpcmRTZWxlY3Rpb24iPjwvc3Bhbj4gZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMg
bm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBl
YSBjb21tb2RvIGNvbnNlcXVhdC48L3A+Ci0gICAgPC9kaXY+CiAgICAgPGRpdiBpZD0idGFyZ2V0
Ij4KICAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4u
CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT4KKyAg
ICAgICAgPHA+SGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVzLiBUaGUgbWlzZml0cy4gVGhlIHJlYmVs
cy4gVGhlIHRyb3VibGUgbWFrZXJzLiBUaGUgcm91bmQgcGVncyBpbiB0aGUgc3F1YXJlIGhvbGVz
LjwvcD4KKyAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQt
dGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRl
bnQtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRl
eCBkZTUxYWEzMTU1ZjMyMjU3Yzc4NTY3ODAwY2QxNTNlNDcyNWE2ZjEyLi41YzA2MTUyNDViODNi
ZGQxMGRhYWQ5NDc1NmU2NGY4NTgzNjRjNDkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJh
Zy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10
aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDcg
KzEsNSBAQAotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9u
Ci1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6
IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgorUEFTUzogSGFzIFNl
bGVjdGlvbgorUEFTUzogU2VsZWN0aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2Vk
CitQQVNTOiBTZWxlY3Rpb24gRGlkIE5vdCBDaGFuZ2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10
aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1k
cmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKaW5kZXggMTIyZjhhZGQ0YjIyNmQz
MzVmNGRmY2ZiNzIyZjRhMThmMjEwMThkNy4uMDJkMWNkMWY4ZWQ4NzY1MjBkNWJlZjE5MjFiYmYw
NTU5MmJkNDUwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNl
bGVjdGVkLXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2Vs
ZWN0ZWQtdGV4dC5odG1sCkBAIC0xLDE0ICsxLDE0IEBACiA8IURPQ1RZUEUgaHRtbD4KLQogPGh0
bWw+CiA8aGVhZD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2lj
LWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9Ci0g
ICAgCisKICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKQEAgLTE2LDY0ICsxNiw1MiBAQAog
CiAgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJyc7CiAgICAgICAgICAgICB2YXIgZWRpdGFibGVU
YXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJykuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgZmlyc3RUYXJnZXRSZWN0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0U2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7Ci0gICAgICAgICAgICB2YXIgc2Vjb25kVGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzZWNvbmRTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAg
ICAgICAgIHZhciB0aGlyZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhp
cmRTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgIHZhciBl
ZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9u
ZWRpdGFibGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55IC0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2VkaXRhYmxlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueTsKLSAgICAgICAgCi0g
ICAgICAgICAgICB2YXIgcHJlc3NQb2ludFggPSBmaXJzdFRhcmdldFJlY3QueCArIGZpcnN0VGFy
Z2V0UmVjdC53aWR0aCAvIDI7Ci0gICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkgPSBmaXJzdFRh
cmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLyAyIC0gZWRpdGFibGVUb05vbmVk
aXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdZID0gZmlyc3RUYXJnZXRSZWN0Lnkg
LSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1ggPSBm
aXJzdFRhcmdldFJlY3QueDsKLSAgICAgICAgICAgIHZhciBkcmFnWTIgPSBzZWNvbmRUYXJnZXRS
ZWN0LnkgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJh
Z1kzID0gdGhpcmRUYXJnZXRSZWN0LnkgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0g
ICAgICAgICAgICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJnZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJl
Y3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAKKworICAg
ICAgICAgICAgdmFyIHByZXNzUG9pbnRYID0gZWRpdGFibGVUYXJnZXRSZWN0LnggKyBlZGl0YWJs
ZVRhcmdldFJlY3Qud2lkdGggLyAyOworICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRZID0gZWRp
dGFibGVUYXJnZXRSZWN0LnkgKyBlZGl0YWJsZVRhcmdldFJlY3QuaGVpZ2h0ICogLjY1OworICAg
ICAgICAgICAgCisgICAgICAgICAgICB2YXIgZm9udEhlaWdodCA9IDMwOworCisgICAgICAgICAg
ICB2YXIgc2VsZWN0aW9uQ2hhbmdlZENvdW50ID0gMDsKKyAgICAgICAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsICgpID0+IHsKKyAgICAgICAgICAgICAg
ICBzZWxlY3Rpb25DaGFuZ2VkQ291bnQrKzsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAg
ICBhd2FpdCBsb25nUHJlc3NBdFBvaW50KHByZXNzUG9pbnRYLCBwcmVzc1BvaW50WSk7Ci0gICAg
ICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAidXQiKQot
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRv
IHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzLiBJbmNvcnJlY3QgU2Vs
ZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zy
b21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAg
IGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJvIGVpdXNtb2QgdGVt
cG9yIGluY2lkaWR1bnQgdXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29y
cmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFn
LiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJp
bmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIoKTsKIAotICAgICAgICAgICAgYXdhaXQg
dG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kyLCBkcmFnWCwgZHJhZ1kz
KTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09
ICIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCIp
Ci0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7Cisg
ICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSAhPSAiIikK
KyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IEhhcyBTZWxlY3Rpb24nOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNl
bGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAn
ICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEg
bG9uZyBwcmVzcy4nOwogICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKIAotICAgICAgICAg
ICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kzLCBkcmFn
WCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpID09ICJvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQiKQotICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgdmFy
IGdyYWJiZXJNaWRwb2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVy
LmdldFNlbGVjdGlvblN0YXJ0R3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQg
dG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1p
ZHBvaW50LnkgLCBncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnkgLSAoZm9udEhl
aWdodCAqIDIpKTsKKworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9PSAz
KQorICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9i
cj4nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDog
ZmFpbGVkIHRvIGRlc2VsZWN0IGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9u
OiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91
dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rp
b24gZGlkIG5vdCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAKLSAgICAg
ICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZMiwg
ZHJhZ1gsIGRyYWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpID09ICJ1dCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3Jy
ZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5t
aWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3
UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQo
Z3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50Lngs
IGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAzKSk7CisgICAgICAgICAgICBhd2Fp
dCBsaWZ0VXBBdFBvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChm
b250SGVpZ2h0ICogMykpOworCisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50
ID09IDUpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdl
ZCA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdG
QUlMOiBmYWlsZWQgdG8gZGVzZWxlY3QgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxl
Y3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAg
ICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNl
bGVjdGlvbiBkaWQgbm90IGNoYW5nZSA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgZ3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9p
bnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9uU3RhcnRHcmFiYmVyVmlld1JlY3Qo
KSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJi
ZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAsIGdyYWJiZXJNaWRwb2ludC54LCBncmFi
YmVyTWlkcG9pbnQueSArIChmb250SGVpZ2h0ICogMikpOwogCi0gICAgICAgICAgICB2YXIgcmVz
dWx0ID0gYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1ksIGRy
YWdYLCBkcmFnWTQpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkgPT0gInV0IikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJl
Y3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPT0g
NSkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBEaWQgTm90IENo
YW5nZSA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdGQUlMOiBmYWlsZWQgdG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIg
YnkgZHJhZ2dpbmcgZG93bi4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwotICAg
ICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZB
SUw6IFNlbGVjdGlvbiBjaGFuZ2VkIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogCi0g
ICAgICAgICAgICB2YXIgbm9uZWRpdGFibGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ25vbmVkaXRhYmxlJyk7Ci0gICAgICAgICAgICBub25lZGl0YWJsZUVsZW1lbnQucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChub25lZGl0YWJsZUVsZW1lbnQpOwogICAgICAgICAgICAgdmFyIGVk
aXRhYmxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpOwogICAg
ICAgICAgICAgZWRpdGFibGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWRpdGFibGVF
bGVtZW50KTsKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5p
bm5lckhUTUwgPSBvdXRwdXQ7CkBAIC04MywzOSArNzEsMjkgQEAKICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CiAgICAgPC9zY3JpcHQ+CiAg
ICAgPHN0eWxlPgotICAgICAgICAjbm9uZWRpdGFibGUgewotICAgICAgICAgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICAgICAgI3RhcmdldCB7CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAg
ICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2
ZXI7CiAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgICAgZm9u
dC1zaXplOiAxOHB4OwogICAgICAgICB9CiAgICAgICAgICNlZGl0YWJsZSB7Ci0gICAgICAgICAg
ICBoZWlnaHQ6IDIwMHB4OwotICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwotICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9z
cGFjZTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKLSAgICAgICAgfQotICAgICAgICAj
dGFyZ2V0IHsKLSAgICAgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgICAgIGhlaWdodDog
MzAwcHg7CiAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAg
ICAgICAgICAgZm9udC1zaXplOiAxOHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4Owog
ICAgICAgICB9CiAgICAgPC9zdHlsZT4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0iaW5pdGlhbC1zY2FsZT0xIj4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgogPC9oZWFkPgogPGJvZHk+Ci0g
ICAgPGRpdiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT4KLSAgICAgICAgPHA+TG9yZW0g
aXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRv
IGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlx
dWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVs
bGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuPC9w
PgotICAgIDwvZGl2PiAKLSAgICA8ZGl2IGlkPSJub25lZGl0YWJsZSI+Ci0gICAgICAgIDxwPkxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1cjxzcGFuIGlkPSJ0aGlyZFNlbGVj
dGlvbiI+PC9zcGFuPiBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkPHNwYW4gaWQ9InNlY29uZFNlbGVj
dGlvbiI+PC9zcGFuPm8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCA8c3BhbiBpZD0iZmlyc3RT
ZWxlY3Rpb24iPnV0PC9zcGFuPiBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5p
bSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJv
cmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC48L3A+Ci0gICAgPC9k
aXY+CiAgICAgPGRpdiBpZD0idGFyZ2V0Ij4KICAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJ
U2NyaXB0Q29udHJvbGxlciB0byBydW4uCiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iZWRpdGFi
bGUiIGNvbnRlbnRlZGl0YWJsZT4KKyAgICAgICAgPHA+SGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVz
LiBUaGUgbWlzZml0cy4gVGhlIHJlYmVscy4gVGhlIHRyb3VibGUgbWFrZXJzLiBUaGUgcm91bmQg
cGVncyBpbiB0aGUgc3F1YXJlIGhvbGVzLjwvcD4KKyAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlv
dXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDY1YjRkNTQ2NGViMTdkYTkyMTZi
ZTAyNzVkMjY5YjY1ZTBkOTBiMTAuLjYwYjEyZmYzZDgyMjg1YmNhNTYxMmQyOTc2YmI3MTQzOTZm
YWFmYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysr
IGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtODE5LDYgKzgxOSwxMCBA
QCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0K
IAorICAgIHN0YXRpYyBtaWRQb2ludE9mUmVjdChyZWN0KSB7CisgICAgICAgIHJldHVybiB7IHg6
IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC8gMiksIHk6IHJlY3QudG9wICsgKHJlY3QuaGVpZ2h0
IC8gMikgfTsKKyAgICB9CisKICAgICBzdGF0aWMgc2VsZWN0aW9uQ2FyZXRCYWNrZ3JvdW5kQ29s
b3IoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>