<?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>174049</bug_id>
          
          <creation_ts>2017-06-30 15:14:28 -0700</creation_ts>
          <short_desc>Add a WebRTC example for a blog post</short_desc>
          <delta_ts>2017-06-30 21:53:18 -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>Media</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jond</cc>
    
    <cc>jonlee</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1324571</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-30 15:14:28 -0700</bug_when>
    <thetext>Add a WebRTC example for a blog post</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324577</commentid>
    <comment_count>1</comment_count>
      <attachid>314303</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-30 15:23:56 -0700</bug_when>
    <thetext>Created attachment 314303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324601</commentid>
    <comment_count>2</comment_count>
      <attachid>314308</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-30 16:08:49 -0700</bug_when>
    <thetext>Created attachment 314308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324658</commentid>
    <comment_count>3</comment_count>
      <attachid>314331</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-06-30 17:26:15 -0700</bug_when>
    <thetext>Created attachment 314331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324708</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 18:47:43 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 314331:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324709</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 18:47:44 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 314331:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324771</commentid>
    <comment_count>6</comment_count>
      <attachid>314331</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 21:53:17 -0700</bug_when>
    <thetext>Comment on attachment 314331
Patch

Clearing flags on attachment: 314331

Committed r219040: &lt;http://trac.webkit.org/changeset/219040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324772</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 21:53:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314303</attachid>
            <date>2017-06-30 15:23:56 -0700</date>
            <delta_ts>2017-06-30 16:08:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174049-20170630152355.patch</filename>
            <type>text/plain</type>
            <size>47790</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4OTc5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IGRlMDU2
MmU3ZTM1MjIwZTcxYWFmMmFlMjM2YmY3YmE4ODI1YzdlZWQuLjZiZjExMTRkZjg5ZjNhM2ViMWVi
YTk1YTI1NzU5YWYzODYzYjMyMWMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hh
bmdlTG9nCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTctMDYtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhIFdlYlJUQyBleGFtcGxlIGZvciBhIGJsb2cgcG9zdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDQ5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhhbXBsZSBkb2VzIGEgdHlwaWNhbCBX
ZWJSVEMgdmlkZW8gY2FsbCwgYnV0IHVzZXMgY2FudmFzIHRvIGRvIHNvbWUgaW1hZ2UgZWZmZWN0
cy4KKyAgICAgICAgSW1hZ2UgZWZmZWN0cyB3aWxsIGxhc3QgZm9yIDMwIHNlY29uZHMuCisgICAg
ICAgIEFmdGVyIHRoYXQgdGltZSwgdGhlIHZpZGVvIHN0cmVhbSBpcyBkaXJlY3RseSBzZW50Lgor
ICAgICAgICBUaGlzIGlsbHVzdHJhdGVzIHVzaW5nIFJUQ1BlZXJDb25uZWN0aW9uLCByZXBsYWNl
VHJhY2sgYW5kIGNhbnZhcyBjYXB0dXJlLgorCisgICAgICAgICogYmxvZy1maWxlcy93ZWJydGMv
cGMtd2l0aC1lZmZlY3RzL2NvbW1vbi5qczogQWRkZWQuCisgICAgICAgICogYmxvZy1maWxlcy93
ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2Nzcy9tYWluLmNzczogQWRkZWQuCisgICAgICAgICogYmxv
Zy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2luZGV4Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGJsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9qcy9nbGZ4LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvanMvbWFpbi5qczog
QWRkZWQuCisgICAgICAgICogYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2pzL3Rl
c3QuanM6IEFkZGVkLgorICAgICAgICAqIGJsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0
cy9tYWluLmNzczogQWRkZWQuCisKIDIwMTctMDYtMjggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgT2JqZWN0IHJlc3Qvc3ByZWFkIHRlc3QgdG8gdGhl
IGV4cGVyaW1lbnRhbCBmZWF0dXJlcyB0ZXN0IHBhZ2UKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dl
YmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2NvbW1vbi5qcyBiL1dl
YnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2NvbW1v
bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZDAzM2JmM2VlMDA5YzdhMjVkNTQ4ZmQ5NzE4Mjg3YmUyZTZlNzY5
Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0
Yy9wYy13aXRoLWVmZmVjdHMvY29tbW9uLmpzCkBAIC0wLDAgKzEsNyBAQAorIC8qIGV4cG9ydGVk
IHRyYWNlICovCisKKy8vIExvZ2dpbmcgdXRpbGl0eSBmdW5jdGlvbi4KK2Z1bmN0aW9uIHRyYWNl
KGFyZykgeworICB2YXIgbm93ID0gKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSAvIDEwMDApLnRv
Rml4ZWQoMyk7CisgIGNvbnNvbGUubG9nKG5vdyArICc6ICcsIGFyZyk7Cit9CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9j
c3MvbWFpbi5jc3MgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdp
dGgtZWZmZWN0cy9jc3MvbWFpbi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y3YTI4MTZkYWI0MjEyOTMwNWYz
YzYzNTBjY2EzY2IxYzdiZjYwYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5v
cmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2Nzcy9tYWluLmNzcwpAQCAtMCww
ICsxLDQ2IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxNSBUaGUgV2ViUlRDIHByb2plY3Qg
YXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICog
IHRyZWUuCisgKi8KK2J1dHRvbiB7CisgIG1hcmdpbjogMCAyMHB4IDAgMDsKKyAgd2lkdGg6IDgz
cHg7Cit9CisKK2J1dHRvbiNoYW5ndXBCdXR0b24geworICAgIG1hcmdpbjogMDsKK30KKwordmlk
ZW8geworICB3aWR0aDogNjQwcHg7CisgIG1hcmdpbjogMCAwIDIwcHggMDsKKyAgdmVydGljYWwt
YWxpZ246IHRvcDsKK30KKwordmlkZW8jbG9jYWxWaWRlbyB7CisgIHRyYW5zZm9ybTogcm90YXRl
WSgxODBkZWcpOworICBtYXJnaW46IDAgMjBweCAyMHB4IDA7Cit9CisKK0BtZWRpYSBzY3JlZW4g
YW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7CisgIGJ1dHRvbiB7CisgICAgd2lkdGg6IDgzcHg7Cisg
IH0KKworICBidXR0b24geworICAgIG1hcmdpbjogMCAxMXB4IDEwcHggMDsKKyAgfQorCisKKyAg
dmlkZW8geworICAgIHdpZHRoOiAzMjBweDsKKyAgICBtYXJnaW46IDAgMCAxMHB4IDA7CisgIH0K
KyAgdmlkZW8jbG9jYWxWaWRlbyB7CisgICAgbWFyZ2luOiAwIDEwcHggMjBweCAwOworICB9CisK
K30KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMt
d2l0aC1lZmZlY3RzL2luZGV4Lmh0bWwgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMv
d2VicnRjL3BjLXdpdGgtZWZmZWN0cy9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMjJhZmRkMzAy
MWMwY2FlZTk1OGE0OTE3ODcxMjZjOTk4OTVlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRl
cy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9pbmRleC5odG1s
CkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorICogIENvcHlyaWdodCAo
YykgMjAxNSBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5
bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4g
dGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuCistLT4KKzxodG1sPgorPGhlYWQ+CisK
KyAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29u
dGVudD0iV2ViUlRDIGNvZGUgc2FtcGxlcyI+CisgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIHVzZXItc2NhbGFibGU9eWVzLCBpbml0aWFsLXNjYWxl
PTEsIG1heGltdW0tc2NhbGU9MSI+CisgIDxtZXRhIGl0ZW1wcm9wPSJkZXNjcmlwdGlvbiIgY29u
dGVudD0iQ2xpZW50LXNpZGUgV2ViUlRDIGNvZGUgc2FtcGxlcyI+CisgIDxtZXRhIGl0ZW1wcm9w
PSJuYW1lIiBjb250ZW50PSJXZWJSVEMgY29kZSBzYW1wbGVzIj4KKyAgPG1ldGEgbmFtZT0ibW9i
aWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4KKyAgPG1ldGEgaWQ9InRoZW1lLWNv
bG9yIiBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI2ZmZmZmZiI+CisKKyAgPGJhc2UgdGFy
Z2V0PSJfYmxhbmsiPgorCisgIDx0aXRsZT5BIHplc3Qgb2YgY2FudmFzIGNhcHR1cmUgYW5kIHJl
cGxhY2VUcmFjazwvdGl0bGU+CisKKyAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVh
cGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAiIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiPgorICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Im1haW4u
Y3NzIiAvPgorICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9tYWluLmNzcyIgLz4K
KworPC9oZWFkPgorCis8Ym9keT4KKworICA8ZGl2IGlkPSJjb250YWluZXIiPgorCisgICAgPGgy
PldlYktpdCB0ZXN0IGluc3BpcmVkIGZyb20gd2VsbC1rbm93biA8YSBocmVmPSIvL3dlYnJ0Yy5n
aXRodWIuaW8vc2FtcGxlcy8iIHRpdGxlPSJXZWJSVEMgc2FtcGxlcyBob21lcGFnZSI+V2ViUlRD
IHNhbXBsZXM8L2E+PC9oMj4KKworICAgIDx2aWRlbyBpZD0ibG9jYWxWaWRlbyIgYXV0b3BsYXkg
bXV0ZWQgcGxheXNJbmxpbmU+PC92aWRlbz4KKyAgICA8YnI+CisgICAgPHZpZGVvIGlkPSJyZW1v
dGVWaWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmU+PC92aWRlbz4KKworICAgIDxkaXY+CisgICAg
ICA8YnV0dG9uIGlkPSJzdGFydEJ1dHRvbiI+U3RhcnQ8L2J1dHRvbj4KKyAgICAgIDxidXR0b24g
aWQ9ImNhbGxCdXR0b24iPkNhbGw8L2J1dHRvbj4KKyAgICA8L2Rpdj4KKworICAgIDxwPlRoaXMg
cGFnZSBpbGx1c3RyYXRlcyB1c2Ugb2YgdGhlIGNhbnZhcyBjYXB0dXJlIGFuZCByZXBsYWNlVHJh
Y2suCisgICAgVG8gYWRkIHNwaWNlIHRvIHRoaXMgdHlwaWNhbCBXZWJSVEMgdmlkZW8gZXhjaGFu
Z2UsIHRoZSBjYW1lcmEgdmlkZW8gdHJhY2sgKGRpc3BsYXllZCBpbiB0aGUgZmlyc3QgdmlkZW8g
ZWxlbWVudCkgaXMgc2VudCB0byBhIGNhbnZhcy4KKyAgICBTb21lIHByb2Nlc3NpbmcgaXMgZG9u
ZSB0byBwaXhlbGxhdGUgaXQgaW4gdGhlIGNhbnZhcy4KKyAgICBUaGUgY2FudmFzIHN0cmVhbSBp
cyBjYXB0dXJlZCBhbmQgc2VudCB0byB0aGUgc2Vjb25kIHZpZGVvIGVsZW1lbnQgdGhyb3VnaCBX
ZWJSVEMuCisgICAgVGhlIHBpeGVsbGF0aW9uIHdpbGwgc2xvd2x5IGRlY3JlYXNlIHVwIHRvIG5v
IHBpeGVsbGF0aW9uIGF0IGFsbC4KKyAgICBPbmNlIHRoZXJlIGlzIG5vIG1vcmUgcGl4ZWxsYXRp
b24sIHRoZSBjYW52YXMgY2FwdHVyZSB0cmFjayB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBjYW1l
cmEgdmlkZW8gdHJhY2sgdG8gb3B0aW1pemUgdGhlIHBlcmZvcm1hY2VzLgorICAgIDwvcD4KKwor
ICA8L2Rpdj4KKworICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly93ZWJydGMuZ2l0aHViLmlvL2FkYXB0
ZXIvYWRhcHRlci1sYXRlc3QuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0ianMvZ2xmeC5q
cyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSJjb21tb24uanMiPjwvc2NyaXB0PgorICA8c2Ny
aXB0IHNyYz0ianMvbWFpbi5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0
cy9qcy9nbGZ4LmpzIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13
aXRoLWVmZmVjdHMvanMvZ2xmeC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOGYyOWJhN2VmMDZmODdhMjA3OTc2
MjA4NjI1MDRmNzM1ZmI1Y2M2Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9y
Zy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvanMvZ2xmeC5qcwpAQCAtMCwwICsx
LDU5IEBACisvKgorICogZ2xmeC5qcworICogaHR0cDovL2V2YW53LmdpdGh1Yi5jb20vZ2xmeC5q
cy8KKyAqCisgKiBDb3B5cmlnaHQgMjAxMSBFdmFuIFdhbGxhY2UKKyAqIFJlbGVhc2VkIHVuZGVy
IHRoZSBNSVQgbGljZW5zZQorICovCit2YXIgZng9ZnVuY3Rpb24oKXtmdW5jdGlvbiBxKGEsZCxj
KXtyZXR1cm4gTWF0aC5tYXgoYSxNYXRoLm1pbihkLGMpKX1mdW5jdGlvbiB3KGIpe3JldHVybntf
OmIsbG9hZENvbnRlbnRzT2Y6ZnVuY3Rpb24oYil7YT10aGlzLl8uZ2w7dGhpcy5fLmxvYWRDb250
ZW50c09mKGIpfSxkZXN0cm95OmZ1bmN0aW9uKCl7YT10aGlzLl8uZ2w7dGhpcy5fLmRlc3Ryb3ko
KX19fWZ1bmN0aW9uIEEoYSl7cmV0dXJuIHcoci5mcm9tRWxlbWVudChhKSl9ZnVuY3Rpb24gQihi
LGQpe3ZhciBjPWEuVU5TSUdORURfQllURTtpZihhLmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVf
ZmxvYXQiKSYmYS5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKXt2YXIg
ZT1uZXcgcigxMDAsMTAwLGEuUkdCQSxhLkZMT0FUKTt0cnl7ZS5kcmF3VG8oZnVuY3Rpb24oKXtj
PWEuRkxPQVR9KX1jYXRjaChnKXt9ZS5kZXN0cm95KCl9dGhpcy5fLnRleHR1cmUmJnRoaXMuXy50
ZXh0dXJlLmRlc3Ryb3koKTsKK3RoaXMuXy5zcGFyZVRleHR1cmUmJnRoaXMuXy5zcGFyZVRleHR1
cmUuZGVzdHJveSgpO3RoaXMud2lkdGg9Yjt0aGlzLmhlaWdodD1kO3RoaXMuXy50ZXh0dXJlPW5l
dyByKGIsZCxhLlJHQkEsYyk7dGhpcy5fLnNwYXJlVGV4dHVyZT1uZXcgcihiLGQsYS5SR0JBLGMp
O3RoaXMuXy5leHRyYVRleHR1cmU9dGhpcy5fLmV4dHJhVGV4dHVyZXx8bmV3IHIoMCwwLGEuUkdC
QSxjKTt0aGlzLl8uZmxpcHBlZFNoYWRlcj10aGlzLl8uZmxpcHBlZFNoYWRlcnx8bmV3IGgobnVs
bCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBt
YWluKCl7Z2xfRnJhZ0NvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHZlYzIodGV4Q29vcmQueCwxLjAt
dGV4Q29vcmQueSkpO30iKTt0aGlzLl8uaXNJbml0aWFsaXplZD0hMH1mdW5jdGlvbiBDKGEsZCxj
KXt0aGlzLl8uaXNJbml0aWFsaXplZCYmCithLl8ud2lkdGg9PXRoaXMud2lkdGgmJmEuXy5oZWln
aHQ9PXRoaXMuaGVpZ2h0fHxCLmNhbGwodGhpcyxkP2Q6YS5fLndpZHRoLGM/YzphLl8uaGVpZ2h0
KTthLl8udXNlKCk7dGhpcy5fLnRleHR1cmUuZHJhd1RvKGZ1bmN0aW9uKCl7aC5nZXREZWZhdWx0
U2hhZGVyKCkuZHJhd1JlY3QoKX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIEQoKXt0aGlzLl8udGV4
dHVyZS51c2UoKTt0aGlzLl8uZmxpcHBlZFNoYWRlci5kcmF3UmVjdCgpO3JldHVybiB0aGlzfWZ1
bmN0aW9uIGYoYSxkLGMsZSl7KGN8fHRoaXMuXy50ZXh0dXJlKS51c2UoKTt0aGlzLl8uc3BhcmVU
ZXh0dXJlLmRyYXdUbyhmdW5jdGlvbigpe2EudW5pZm9ybXMoZCkuZHJhd1JlY3QoKX0pO3RoaXMu
Xy5zcGFyZVRleHR1cmUuc3dhcFdpdGgoZXx8dGhpcy5fLnRleHR1cmUpfWZ1bmN0aW9uIEUoYSl7
YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLGEpO2EucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChhKTtyZXR1cm4gdGhpc30KK2Z1bmN0aW9uIEYoKXt2YXIgYj1uZXcgcih0aGlzLl8udGV4dHVy
ZS53aWR0aCx0aGlzLl8udGV4dHVyZS5oZWlnaHQsYS5SR0JBLGEuVU5TSUdORURfQllURSk7dGhp
cy5fLnRleHR1cmUudXNlKCk7Yi5kcmF3VG8oZnVuY3Rpb24oKXtoLmdldERlZmF1bHRTaGFkZXIo
KS5kcmF3UmVjdCgpfSk7cmV0dXJuIHcoYil9ZnVuY3Rpb24gRygpe3ZhciBiPXRoaXMuXy50ZXh0
dXJlLndpZHRoLGQ9dGhpcy5fLnRleHR1cmUuaGVpZ2h0LGM9bmV3IFVpbnQ4QXJyYXkoNCpiKmQp
O3RoaXMuXy50ZXh0dXJlLmRyYXdUbyhmdW5jdGlvbigpe2EucmVhZFBpeGVscygwLDAsYixkLGEu
UkdCQSxhLlVOU0lHTkVEX0JZVEUsYyl9KTtyZXR1cm4gY31mdW5jdGlvbiBrKGIpe3JldHVybiBm
dW5jdGlvbigpe2E9dGhpcy5fLmdsO3JldHVybiBiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVu
Y3Rpb24geChhLGQsYyxlLGcsbCxuLHApe3ZhciBtPWMtZyxoPWUtbCxmPW4tZyxrPXAtbDtnPWEt
YytnLW47bD0KK2QtZStsLXA7dmFyIHE9bSprLWYqaCxmPShnKmstZipsKS9xLG09KG0qbC1nKmgp
L3E7cmV0dXJuW2MtYStmKmMsZS1kK2YqZSxmLG4tYSttKm4scC1kK20qcCxtLGEsZCwxXX1mdW5j
dGlvbiB5KGEpe3ZhciBkPWFbMF0sYz1hWzFdLGU9YVsyXSxnPWFbM10sbD1hWzRdLG49YVs1XSxw
PWFbNl0sbT1hWzddO2E9YVs4XTt2YXIgZj1kKmwqYS1kKm4qbS1jKmcqYStjKm4qcCtlKmcqbS1l
KmwqcDtyZXR1cm5bKGwqYS1uKm0pL2YsKGUqbS1jKmEpL2YsKGMqbi1lKmwpL2YsKG4qcC1nKmEp
L2YsKGQqYS1lKnApL2YsKGUqZy1kKm4pL2YsKGcqbS1sKnApL2YsKGMqcC1kKm0pL2YsKGQqbC1j
KmcpL2ZdfWZ1bmN0aW9uIHooYSl7dmFyIGQ9YS5sZW5ndGg7dGhpcy54YT1bXTt0aGlzLnlhPVtd
O3RoaXMudT1bXTt0aGlzLnkyPVtdO2Euc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJb
MF19KTtmb3IodmFyIGM9MDtjPGQ7YysrKXRoaXMueGEucHVzaChhW2NdWzBdKSx0aGlzLnlhLnB1
c2goYVtjXVsxXSk7Cit0aGlzLnVbMF09MDt0aGlzLnkyWzBdPTA7Zm9yKGM9MTtjPGQtMTsrK2Mp
e2E9dGhpcy54YVtjKzFdLXRoaXMueGFbYy0xXTt2YXIgZT0odGhpcy54YVtjXS10aGlzLnhhW2Mt
MV0pL2EsZz1lKnRoaXMueTJbYy0xXSsyO3RoaXMueTJbY109KGUtMSkvZzt0aGlzLnVbY109KDYq
KCh0aGlzLnlhW2MrMV0tdGhpcy55YVtjXSkvKHRoaXMueGFbYysxXS10aGlzLnhhW2NdKS0odGhp
cy55YVtjXS10aGlzLnlhW2MtMV0pLyh0aGlzLnhhW2NdLXRoaXMueGFbYy0xXSkpL2EtZSp0aGlz
LnVbYy0xXSkvZ310aGlzLnkyW2QtMV09MDtmb3IoYz1kLTI7MDw9YzstLWMpdGhpcy55MltjXT10
aGlzLnkyW2NdKnRoaXMueTJbYysxXSt0aGlzLnVbY119ZnVuY3Rpb24gdShhLGQpe3JldHVybiBu
ZXcgaChudWxsLGErInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSB2ZWMyIHRleFNp
emU7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3ZlYzIgY29vcmQ9dGV4Q29vcmQq
dGV4U2l6ZTsiKworZCsiZ2xfRnJhZ0NvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLGNvb3JkL3RleFNp
emUpO3ZlYzIgY2xhbXBlZENvb3JkPWNsYW1wKGNvb3JkLHZlYzIoMC4wKSx0ZXhTaXplKTtpZihj
b29yZCE9Y2xhbXBlZENvb3JkKXtnbF9GcmFnQ29sb3IuYSo9bWF4KDAuMCwxLjAtbGVuZ3RoKGNv
b3JkLWNsYW1wZWRDb29yZCkpO319Iil9ZnVuY3Rpb24gSChiLGQpe2EuYnJpZ2h0bmVzc0NvbnRy
YXN0PWEuYnJpZ2h0bmVzc0NvbnRyYXN0fHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0
ZXh0dXJlO3VuaWZvcm0gZmxvYXQgYnJpZ2h0bmVzczt1bmlmb3JtIGZsb2F0IGNvbnRyYXN0O3Zh
cnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXRleHR1cmUyRCh0ZXh0
dXJlLHRleENvb3JkKTtjb2xvci5yZ2IrPWJyaWdodG5lc3M7aWYoY29udHJhc3Q+MC4wKXtjb2xv
ci5yZ2I9KGNvbG9yLnJnYi0wLjUpLygxLjAtY29udHJhc3QpKzAuNTt9ZWxzZXtjb2xvci5yZ2I9
KGNvbG9yLnJnYi0wLjUpKigxLjArY29udHJhc3QpKzAuNTt9Z2xfRnJhZ0NvbG9yPWNvbG9yO30i
KTsKK2YuY2FsbCh0aGlzLGEuYnJpZ2h0bmVzc0NvbnRyYXN0LHticmlnaHRuZXNzOnEoLTEsYiwx
KSxjb250cmFzdDpxKC0xLGQsMSl9KTtyZXR1cm4gdGhpc31mdW5jdGlvbiB0KGEpe2E9bmV3IHoo
YSk7Zm9yKHZhciBkPVtdLGM9MDsyNTY+YztjKyspZC5wdXNoKHEoMCxNYXRoLmZsb29yKDI1Niph
LmludGVycG9sYXRlKGMvMjU1KSksMjU1KSk7cmV0dXJuIGR9ZnVuY3Rpb24gSShiLGQsYyl7Yj10
KGIpOzE9PWFyZ3VtZW50cy5sZW5ndGg/ZD1jPWI6KGQ9dChkKSxjPXQoYykpO2Zvcih2YXIgZT1b
XSxnPTA7MjU2Pmc7ZysrKWUuc3BsaWNlKGUubGVuZ3RoLDAsYltnXSxkW2ddLGNbZ10sMjU1KTt0
aGlzLl8uZXh0cmFUZXh0dXJlLmluaXRGcm9tQnl0ZXMoMjU2LDEsZSk7dGhpcy5fLmV4dHJhVGV4
dHVyZS51c2UoMSk7YS5jdXJ2ZXM9YS5jdXJ2ZXN8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxl
cjJEIHRleHR1cmU7dW5pZm9ybSBzYW1wbGVyMkQgbWFwO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2
b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTtjb2xvci5y
PXRleHR1cmUyRChtYXAsdmVjMihjb2xvci5yKSkucjtjb2xvci5nPXRleHR1cmUyRChtYXAsdmVj
Mihjb2xvci5nKSkuZztjb2xvci5iPXRleHR1cmUyRChtYXAsdmVjMihjb2xvci5iKSkuYjtnbF9G
cmFnQ29sb3I9Y29sb3I7fSIpOworYS5jdXJ2ZXMudGV4dHVyZXMoe21hcDoxfSk7Zi5jYWxsKHRo
aXMsYS5jdXJ2ZXMse30pO3JldHVybiB0aGlzfWZ1bmN0aW9uIEooYil7YS5kZW5vaXNlPWEuZGVu
b2lzZXx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIGZsb2F0
IGV4cG9uZW50O3VuaWZvcm0gZmxvYXQgc3RyZW5ndGg7dW5pZm9ybSB2ZWMyIHRleFNpemU7dmFy
eWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3ZlYzQgY2VudGVyPXRleHR1cmUyRCh0ZXh0
dXJlLHRleENvb3JkKTt2ZWM0IGNvbG9yPXZlYzQoMC4wKTtmbG9hdCB0b3RhbD0wLjA7Zm9yKGZs
b2F0IHg9LTQuMDt4PD00LjA7eCs9MS4wKXtmb3IoZmxvYXQgeT0tNC4wO3k8PTQuMDt5Kz0xLjAp
e3ZlYzQgc2FtcGxlPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkK3ZlYzIoeCx5KS90ZXhTaXpl
KTtmbG9hdCB3ZWlnaHQ9MS4wLWFicyhkb3Qoc2FtcGxlLnJnYi1jZW50ZXIucmdiLHZlYzMoMC4y
NSkpKTt3ZWlnaHQ9cG93KHdlaWdodCxleHBvbmVudCk7Y29sb3IrPXNhbXBsZSp3ZWlnaHQ7dG90
YWwrPXdlaWdodDt9fWdsX0ZyYWdDb2xvcj1jb2xvci90b3RhbDt9Iik7Citmb3IodmFyIGQ9MDsy
PmQ7ZCsrKWYuY2FsbCh0aGlzLGEuZGVub2lzZSx7ZXhwb25lbnQ6TWF0aC5tYXgoMCxiKSx0ZXhT
aXplOlt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIEsoYixk
KXthLmh1ZVNhdHVyYXRpb249YS5odWVTYXR1cmF0aW9ufHxuZXcgaChudWxsLCJ1bmlmb3JtIHNh
bXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gZmxvYXQgaHVlO3VuaWZvcm0gZmxvYXQgc2F0dXJhdGlv
bjt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBjb2xvcj10ZXh0dXJlMkQo
dGV4dHVyZSx0ZXhDb29yZCk7ZmxvYXQgYW5nbGU9aHVlKjMuMTQxNTkyNjU7ZmxvYXQgcz1zaW4o
YW5nbGUpLGM9Y29zKGFuZ2xlKTt2ZWMzIHdlaWdodHM9KHZlYzMoMi4wKmMsLXNxcnQoMy4wKSpz
LWMsc3FydCgzLjApKnMtYykrMS4wKS8zLjA7ZmxvYXQgbGVuPWxlbmd0aChjb2xvci5yZ2IpO2Nv
bG9yLnJnYj12ZWMzKGRvdChjb2xvci5yZ2Isd2VpZ2h0cy54eXopLGRvdChjb2xvci5yZ2Isd2Vp
Z2h0cy56eHkpLGRvdChjb2xvci5yZ2Isd2VpZ2h0cy55engpKTtmbG9hdCBhdmVyYWdlPShjb2xv
ci5yK2NvbG9yLmcrY29sb3IuYikvMy4wO2lmKHNhdHVyYXRpb24+MC4wKXtjb2xvci5yZ2IrPShh
dmVyYWdlLWNvbG9yLnJnYikqKDEuMC0xLjAvKDEuMDAxLXNhdHVyYXRpb24pKTt9ZWxzZXtjb2xv
ci5yZ2IrPShhdmVyYWdlLWNvbG9yLnJnYikqKC1zYXR1cmF0aW9uKTt9Z2xfRnJhZ0NvbG9yPWNv
bG9yO30iKTsKK2YuY2FsbCh0aGlzLGEuaHVlU2F0dXJhdGlvbix7aHVlOnEoLTEsYiwxKSxzYXR1
cmF0aW9uOnEoLTEsZCwxKX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIEwoYil7YS5ub2lzZT1hLm5v
aXNlfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gZmxvYXQg
YW1vdW50O3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDtmbG9hdCByYW5kKHZlYzIgY28pe3JldHVybiBm
cmFjdChzaW4oZG90KGNvLnh5LHZlYzIoMTIuOTg5OCw3OC4yMzMpKSkqNDM3NTguNTQ1Myk7fXZv
aWQgbWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQpO2Zsb2F0IGRp
ZmY9KHJhbmQodGV4Q29vcmQpLTAuNSkqYW1vdW50O2NvbG9yLnIrPWRpZmY7Y29sb3IuZys9ZGlm
Zjtjb2xvci5iKz1kaWZmO2dsX0ZyYWdDb2xvcj1jb2xvcjt9Iik7CitmLmNhbGwodGhpcyxhLm5v
aXNlLHthbW91bnQ6cSgwLGIsMSl9KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBNKGIpe2Euc2VwaWE9
YS5zZXBpYXx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIGZs
b2F0IGFtb3VudDt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBjb2xvcj10
ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7ZmxvYXQgcj1jb2xvci5yO2Zsb2F0IGc9Y29sb3Iu
ZztmbG9hdCBiPWNvbG9yLmI7Y29sb3Iucj1taW4oMS4wLChyKigxLjAtKDAuNjA3KmFtb3VudCkp
KSsoZyooMC43NjkqYW1vdW50KSkrKGIqKDAuMTg5KmFtb3VudCkpKTtjb2xvci5nPW1pbigxLjAs
KHIqMC4zNDkqYW1vdW50KSsoZyooMS4wLSgwLjMxNCphbW91bnQpKSkrKGIqMC4xNjgqYW1vdW50
KSk7Y29sb3IuYj1taW4oMS4wLChyKjAuMjcyKmFtb3VudCkrKGcqMC41MzQqYW1vdW50KSsoYioo
MS4wLSgwLjg2OSphbW91bnQpKSkpO2dsX0ZyYWdDb2xvcj1jb2xvcjt9Iik7CitmLmNhbGwodGhp
cyxhLnNlcGlhLHthbW91bnQ6cSgwLGIsMSl9KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBOKGIsZCl7
YS51bnNoYXJwTWFzaz1hLnVuc2hhcnBNYXNrfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIy
RCBibHVycmVkVGV4dHVyZTt1bmlmb3JtIHNhbXBsZXIyRCBvcmlnaW5hbFRleHR1cmU7dW5pZm9y
bSBmbG9hdCBzdHJlbmd0aDt1bmlmb3JtIGZsb2F0IHRocmVzaG9sZDt2YXJ5aW5nIHZlYzIgdGV4
Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBibHVycmVkPXRleHR1cmUyRChibHVycmVkVGV4dHVyZSx0
ZXhDb29yZCk7dmVjNCBvcmlnaW5hbD10ZXh0dXJlMkQob3JpZ2luYWxUZXh0dXJlLHRleENvb3Jk
KTtnbF9GcmFnQ29sb3I9bWl4KGJsdXJyZWQsb3JpZ2luYWwsMS4wK3N0cmVuZ3RoKTt9Iik7Cit0
aGlzLl8uZXh0cmFUZXh0dXJlLmVuc3VyZUZvcm1hdCh0aGlzLl8udGV4dHVyZSk7dGhpcy5fLnRl
eHR1cmUudXNlKCk7dGhpcy5fLmV4dHJhVGV4dHVyZS5kcmF3VG8oZnVuY3Rpb24oKXtoLmdldERl
ZmF1bHRTaGFkZXIoKS5kcmF3UmVjdCgpfSk7dGhpcy5fLmV4dHJhVGV4dHVyZS51c2UoMSk7dGhp
cy50cmlhbmdsZUJsdXIoYik7YS51bnNoYXJwTWFzay50ZXh0dXJlcyh7b3JpZ2luYWxUZXh0dXJl
OjF9KTtmLmNhbGwodGhpcyxhLnVuc2hhcnBNYXNrLHtzdHJlbmd0aDpkfSk7dGhpcy5fLmV4dHJh
VGV4dHVyZS51bnVzZSgxKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBPKGIpe2EudmlicmFuY2U9YS52
aWJyYW5jZXx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIGZs
b2F0IGFtb3VudDt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBjb2xvcj10
ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7ZmxvYXQgYXZlcmFnZT0oY29sb3Iucitjb2xvci5n
K2NvbG9yLmIpLzMuMDtmbG9hdCBteD1tYXgoY29sb3IucixtYXgoY29sb3IuZyxjb2xvci5iKSk7
ZmxvYXQgYW10PShteC1hdmVyYWdlKSooLWFtb3VudCozLjApO2NvbG9yLnJnYj1taXgoY29sb3Iu
cmdiLHZlYzMobXgpLGFtdCk7Z2xfRnJhZ0NvbG9yPWNvbG9yO30iKTsKK2YuY2FsbCh0aGlzLGEu
dmlicmFuY2Use2Ftb3VudDpxKC0xLGIsMSl9KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBQKGIsZCl7
YS52aWduZXR0ZT1hLnZpZ25ldHRlfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0
dXJlO3VuaWZvcm0gZmxvYXQgc2l6ZTt1bmlmb3JtIGZsb2F0IGFtb3VudDt2YXJ5aW5nIHZlYzIg
dGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBjb2xvcj10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29y
ZCk7ZmxvYXQgZGlzdD1kaXN0YW5jZSh0ZXhDb29yZCx2ZWMyKDAuNSwwLjUpKTtjb2xvci5yZ2Iq
PXNtb290aHN0ZXAoMC44LHNpemUqMC43OTksZGlzdCooYW1vdW50K3NpemUpKTtnbF9GcmFnQ29s
b3I9Y29sb3I7fSIpOworZi5jYWxsKHRoaXMsYS52aWduZXR0ZSx7c2l6ZTpxKDAsYiwxKSxhbW91
bnQ6cSgwLGQsMSl9KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBRKGIsZCxjKXthLmxlbnNCbHVyUHJl
UGFzcz1hLmxlbnNCbHVyUHJlUGFzc3x8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4
dHVyZTt1bmlmb3JtIGZsb2F0IHBvd2VyO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4o
KXt2ZWM0IGNvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTtjb2xvcj1wb3coY29sb3Is
dmVjNChwb3dlcikpO2dsX0ZyYWdDb2xvcj12ZWM0KGNvbG9yKTt9Iik7dmFyIGU9InVuaWZvcm0g
c2FtcGxlcjJEIHRleHR1cmUwO3VuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmUxO3VuaWZvcm0gdmVj
MiBkZWx0YTA7dW5pZm9ybSB2ZWMyIGRlbHRhMTt1bmlmb3JtIGZsb2F0IHBvd2VyO3Zhcnlpbmcg
dmVjMiB0ZXhDb29yZDsiKworcysidmVjNCBzYW1wbGUodmVjMiBkZWx0YSl7ZmxvYXQgb2Zmc2V0
PXJhbmRvbSh2ZWMzKGRlbHRhLDE1MS43MTgyKSwwLjApO3ZlYzQgY29sb3I9dmVjNCgwLjApO2Zs
b2F0IHRvdGFsPTAuMDtmb3IoZmxvYXQgdD0wLjA7dDw9MzAuMDt0Kyspe2Zsb2F0IHBlcmNlbnQ9
KHQrb2Zmc2V0KS8zMC4wO2NvbG9yKz10ZXh0dXJlMkQodGV4dHVyZTAsdGV4Q29vcmQrZGVsdGEq
cGVyY2VudCk7dG90YWwrPTEuMDt9cmV0dXJuIGNvbG9yL3RvdGFsO30iOworYS5sZW5zQmx1cjA9
YS5sZW5zQmx1cjB8fG5ldyBoKG51bGwsZSsidm9pZCBtYWluKCl7Z2xfRnJhZ0NvbG9yPXNhbXBs
ZShkZWx0YTApO30iKTthLmxlbnNCbHVyMT1hLmxlbnNCbHVyMXx8bmV3IGgobnVsbCxlKyJ2b2lk
IG1haW4oKXtnbF9GcmFnQ29sb3I9KHNhbXBsZShkZWx0YTApK3NhbXBsZShkZWx0YTEpKSowLjU7
fSIpO2EubGVuc0JsdXIyPWEubGVuc0JsdXIyfHwobmV3IGgobnVsbCxlKyJ2b2lkIG1haW4oKXt2
ZWM0IGNvbG9yPShzYW1wbGUoZGVsdGEwKSsyLjAqdGV4dHVyZTJEKHRleHR1cmUxLHRleENvb3Jk
KSkvMy4wO2dsX0ZyYWdDb2xvcj1wb3coY29sb3IsdmVjNChwb3dlcikpO30iKSkudGV4dHVyZXMo
e3RleHR1cmUxOjF9KTtmb3IodmFyIGU9CitbXSxnPTA7Mz5nO2crKyl7dmFyIGw9YysyKmcqTWF0
aC5QSS8zO2UucHVzaChbYipNYXRoLnNpbihsKS90aGlzLndpZHRoLGIqTWF0aC5jb3MobCkvdGhp
cy5oZWlnaHRdKX1iPU1hdGgucG93KDEwLHEoLTEsZCwxKSk7Zi5jYWxsKHRoaXMsYS5sZW5zQmx1
clByZVBhc3Mse3Bvd2VyOmJ9KTt0aGlzLl8uZXh0cmFUZXh0dXJlLmVuc3VyZUZvcm1hdCh0aGlz
Ll8udGV4dHVyZSk7Zi5jYWxsKHRoaXMsYS5sZW5zQmx1cjAse2RlbHRhMDplWzBdfSx0aGlzLl8u
dGV4dHVyZSx0aGlzLl8uZXh0cmFUZXh0dXJlKTtmLmNhbGwodGhpcyxhLmxlbnNCbHVyMSx7ZGVs
dGEwOmVbMV0sZGVsdGExOmVbMl19LHRoaXMuXy5leHRyYVRleHR1cmUsdGhpcy5fLmV4dHJhVGV4
dHVyZSk7Zi5jYWxsKHRoaXMsYS5sZW5zQmx1cjAse2RlbHRhMDplWzFdfSk7dGhpcy5fLmV4dHJh
VGV4dHVyZS51c2UoMSk7Zi5jYWxsKHRoaXMsYS5sZW5zQmx1cjIse3Bvd2VyOjEvYixkZWx0YTA6
ZVsyXX0pO3JldHVybiB0aGlzfQorZnVuY3Rpb24gUihiLGQsYyxlLGcsbCl7YS50aWx0U2hpZnQ9
YS50aWx0U2hpZnR8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9y
bSBmbG9hdCBibHVyUmFkaXVzO3VuaWZvcm0gZmxvYXQgZ3JhZGllbnRSYWRpdXM7dW5pZm9ybSB2
ZWMyIHN0YXJ0O3VuaWZvcm0gdmVjMiBlbmQ7dW5pZm9ybSB2ZWMyIGRlbHRhO3VuaWZvcm0gdmVj
MiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsiK3MrInZvaWQgbWFpbigpe3ZlYzQgY29s
b3I9dmVjNCgwLjApO2Zsb2F0IHRvdGFsPTAuMDtmbG9hdCBvZmZzZXQ9cmFuZG9tKHZlYzMoMTIu
OTg5OCw3OC4yMzMsMTUxLjcxODIpLDAuMCk7dmVjMiBub3JtYWw9bm9ybWFsaXplKHZlYzIoc3Rh
cnQueS1lbmQueSxlbmQueC1zdGFydC54KSk7ZmxvYXQgcmFkaXVzPXNtb290aHN0ZXAoMC4wLDEu
MCxhYnMoZG90KHRleENvb3JkKnRleFNpemUtc3RhcnQsbm9ybWFsKSkvZ3JhZGllbnRSYWRpdXMp
KmJsdXJSYWRpdXM7Zm9yKGZsb2F0IHQ9LTMwLjA7dDw9MzAuMDt0Kyspe2Zsb2F0IHBlcmNlbnQ9
KHQrb2Zmc2V0LTAuNSkvMzAuMDtmbG9hdCB3ZWlnaHQ9MS4wLWFicyhwZXJjZW50KTt2ZWM0IHNh
bXBsZT10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCtkZWx0YS90ZXhTaXplKnBlcmNlbnQqcmFk
aXVzKTtzYW1wbGUucmdiKj1zYW1wbGUuYTtjb2xvcis9c2FtcGxlKndlaWdodDt0b3RhbCs9d2Vp
Z2h0O31nbF9GcmFnQ29sb3I9Y29sb3IvdG90YWw7Z2xfRnJhZ0NvbG9yLnJnYi89Z2xfRnJhZ0Nv
bG9yLmErMC4wMDAwMTt9Iik7Cit2YXIgbj1jLWIscD1lLWQsbT1NYXRoLnNxcnQobipuK3AqcCk7
Zi5jYWxsKHRoaXMsYS50aWx0U2hpZnQse2JsdXJSYWRpdXM6ZyxncmFkaWVudFJhZGl1czpsLHN0
YXJ0OltiLGRdLGVuZDpbYyxlXSxkZWx0YTpbbi9tLHAvbV0sdGV4U2l6ZTpbdGhpcy53aWR0aCx0
aGlzLmhlaWdodF19KTtmLmNhbGwodGhpcyxhLnRpbHRTaGlmdCx7Ymx1clJhZGl1czpnLGdyYWRp
ZW50UmFkaXVzOmwsc3RhcnQ6W2IsZF0sZW5kOltjLGVdLGRlbHRhOlstcC9tLG4vbV0sdGV4U2l6
ZTpbdGhpcy53aWR0aCx0aGlzLmhlaWdodF19KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBTKGIpe2Eu
dHJpYW5nbGVCbHVyPWEudHJpYW5nbGVCbHVyfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIy
RCB0ZXh0dXJlO3VuaWZvcm0gdmVjMiBkZWx0YTt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7IitzKyJ2
b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXZlYzQoMC4wKTtmbG9hdCB0b3RhbD0wLjA7ZmxvYXQgb2Zm
c2V0PXJhbmRvbSh2ZWMzKDEyLjk4OTgsNzguMjMzLDE1MS43MTgyKSwwLjApO2ZvcihmbG9hdCB0
PS0zMC4wO3Q8PTMwLjA7dCsrKXtmbG9hdCBwZXJjZW50PSh0K29mZnNldC0wLjUpLzMwLjA7Zmxv
YXQgd2VpZ2h0PTEuMC1hYnMocGVyY2VudCk7dmVjNCBzYW1wbGU9dGV4dHVyZTJEKHRleHR1cmUs
dGV4Q29vcmQrZGVsdGEqcGVyY2VudCk7c2FtcGxlLnJnYio9c2FtcGxlLmE7Y29sb3IrPXNhbXBs
ZSp3ZWlnaHQ7dG90YWwrPXdlaWdodDt9Z2xfRnJhZ0NvbG9yPWNvbG9yL3RvdGFsO2dsX0ZyYWdD
b2xvci5yZ2IvPWdsX0ZyYWdDb2xvci5hKzAuMDAwMDE7fSIpOworZi5jYWxsKHRoaXMsYS50cmlh
bmdsZUJsdXIse2RlbHRhOltiL3RoaXMud2lkdGgsMF19KTtmLmNhbGwodGhpcyxhLnRyaWFuZ2xl
Qmx1cix7ZGVsdGE6WzAsYi90aGlzLmhlaWdodF19KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBUKGIs
ZCxjKXthLnpvb21CbHVyPWEuem9vbUJsdXJ8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJE
IHRleHR1cmU7dW5pZm9ybSB2ZWMyIGNlbnRlcjt1bmlmb3JtIGZsb2F0IHN0cmVuZ3RoO3VuaWZv
cm0gdmVjMiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsiK3MrInZvaWQgbWFpbigpe3Zl
YzQgY29sb3I9dmVjNCgwLjApO2Zsb2F0IHRvdGFsPTAuMDt2ZWMyIHRvQ2VudGVyPWNlbnRlci10
ZXhDb29yZCp0ZXhTaXplO2Zsb2F0IG9mZnNldD1yYW5kb20odmVjMygxMi45ODk4LDc4LjIzMywx
NTEuNzE4MiksMC4wKTtmb3IoZmxvYXQgdD0wLjA7dDw9NDAuMDt0Kyspe2Zsb2F0IHBlcmNlbnQ9
KHQrb2Zmc2V0KS80MC4wO2Zsb2F0IHdlaWdodD00LjAqKHBlcmNlbnQtcGVyY2VudCpwZXJjZW50
KTt2ZWM0IHNhbXBsZT10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCt0b0NlbnRlcipwZXJjZW50
KnN0cmVuZ3RoL3RleFNpemUpO3NhbXBsZS5yZ2IqPXNhbXBsZS5hO2NvbG9yKz1zYW1wbGUqd2Vp
Z2h0O3RvdGFsKz13ZWlnaHQ7fWdsX0ZyYWdDb2xvcj1jb2xvci90b3RhbDtnbF9GcmFnQ29sb3Iu
cmdiLz1nbF9GcmFnQ29sb3IuYSswLjAwMDAxO30iKTsKK2YuY2FsbCh0aGlzLGEuem9vbUJsdXIs
e2NlbnRlcjpbYixkXSxzdHJlbmd0aDpjLHRleFNpemU6W3RoaXMud2lkdGgsdGhpcy5oZWlnaHRd
fSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gVShiLGQsYyxlKXthLmNvbG9ySGFsZnRvbmU9YS5jb2xv
ckhhbGZ0b25lfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0g
dmVjMiBjZW50ZXI7dW5pZm9ybSBmbG9hdCBhbmdsZTt1bmlmb3JtIGZsb2F0IHNjYWxlO3VuaWZv
cm0gdmVjMiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDtmbG9hdCBwYXR0ZXJuKGZsb2F0
IGFuZ2xlKXtmbG9hdCBzPXNpbihhbmdsZSksYz1jb3MoYW5nbGUpO3ZlYzIgdGV4PXRleENvb3Jk
KnRleFNpemUtY2VudGVyO3ZlYzIgcG9pbnQ9dmVjMihjKnRleC54LXMqdGV4Lnkscyp0ZXgueCtj
KnRleC55KSpzY2FsZTtyZXR1cm4oc2luKHBvaW50LngpKnNpbihwb2ludC55KSkqNC4wO312b2lk
IG1haW4oKXt2ZWM0IGNvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTt2ZWMzIGNteT0x
LjAtY29sb3IucmdiO2Zsb2F0IGs9bWluKGNteS54LG1pbihjbXkueSxjbXkueikpO2NteT0oY215
LWspLygxLjAtayk7Y215PWNsYW1wKGNteSoxMC4wLTMuMCt2ZWMzKHBhdHRlcm4oYW5nbGUrMC4y
NjE3OSkscGF0dGVybihhbmdsZSsxLjMwODk5KSxwYXR0ZXJuKGFuZ2xlKSksMC4wLDEuMCk7az1j
bGFtcChrKjEwLjAtNS4wK3BhdHRlcm4oYW5nbGUrMC43ODUzOSksMC4wLDEuMCk7Z2xfRnJhZ0Nv
bG9yPXZlYzQoMS4wLWNteS1rLGNvbG9yLmEpO30iKTsKK2YuY2FsbCh0aGlzLGEuY29sb3JIYWxm
dG9uZSx7Y2VudGVyOltiLGRdLGFuZ2xlOmMsc2NhbGU6TWF0aC5QSS9lLHRleFNpemU6W3RoaXMu
d2lkdGgsdGhpcy5oZWlnaHRdfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gVihiLGQsYyxlKXthLmRv
dFNjcmVlbj1hLmRvdFNjcmVlbnx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVy
ZTt1bmlmb3JtIHZlYzIgY2VudGVyO3VuaWZvcm0gZmxvYXQgYW5nbGU7dW5pZm9ybSBmbG9hdCBz
Y2FsZTt1bmlmb3JtIHZlYzIgdGV4U2l6ZTt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7ZmxvYXQgcGF0
dGVybigpe2Zsb2F0IHM9c2luKGFuZ2xlKSxjPWNvcyhhbmdsZSk7dmVjMiB0ZXg9dGV4Q29vcmQq
dGV4U2l6ZS1jZW50ZXI7dmVjMiBwb2ludD12ZWMyKGMqdGV4Lngtcyp0ZXgueSxzKnRleC54K2Mq
dGV4LnkpKnNjYWxlO3JldHVybihzaW4ocG9pbnQueCkqc2luKHBvaW50LnkpKSo0LjA7fXZvaWQg
bWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQpO2Zsb2F0IGF2ZXJh
Z2U9KGNvbG9yLnIrY29sb3IuZytjb2xvci5iKS8zLjA7Z2xfRnJhZ0NvbG9yPXZlYzQodmVjMyhh
dmVyYWdlKjEwLjAtNS4wK3BhdHRlcm4oKSksY29sb3IuYSk7fSIpOworZi5jYWxsKHRoaXMsYS5k
b3RTY3JlZW4se2NlbnRlcjpbYixkXSxhbmdsZTpjLHNjYWxlOk1hdGguUEkvZSx0ZXhTaXplOlt0
aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIFcoYil7YS5lZGdl
V29yazE9YS5lZGdlV29yazF8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7
dW5pZm9ybSB2ZWMyIGRlbHRhO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsiK3MrInZvaWQgbWFpbigp
e3ZlYzIgY29sb3I9dmVjMigwLjApO3ZlYzIgdG90YWw9dmVjMigwLjApO2Zsb2F0IG9mZnNldD1y
YW5kb20odmVjMygxMi45ODk4LDc4LjIzMywxNTEuNzE4MiksMC4wKTtmb3IoZmxvYXQgdD0tMzAu
MDt0PD0zMC4wO3QrKyl7ZmxvYXQgcGVyY2VudD0odCtvZmZzZXQtMC41KS8zMC4wO2Zsb2F0IHdl
aWdodD0xLjAtYWJzKHBlcmNlbnQpO3ZlYzMgc2FtcGxlPXRleHR1cmUyRCh0ZXh0dXJlLHRleENv
b3JkK2RlbHRhKnBlcmNlbnQpLnJnYjtmbG9hdCBhdmVyYWdlPShzYW1wbGUucitzYW1wbGUuZytz
YW1wbGUuYikvMy4wO2NvbG9yLngrPWF2ZXJhZ2Uqd2VpZ2h0O3RvdGFsLngrPXdlaWdodDtpZihh
YnModCk8MTUuMCl7d2VpZ2h0PXdlaWdodCoyLjAtMS4wO2NvbG9yLnkrPWF2ZXJhZ2Uqd2VpZ2h0
O3RvdGFsLnkrPXdlaWdodDt9fWdsX0ZyYWdDb2xvcj12ZWM0KGNvbG9yL3RvdGFsLDAuMCwxLjAp
O30iKTsKK2EuZWRnZVdvcmsyPWEuZWRnZVdvcmsyfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBs
ZXIyRCB0ZXh0dXJlO3VuaWZvcm0gdmVjMiBkZWx0YTt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Iitz
KyJ2b2lkIG1haW4oKXt2ZWMyIGNvbG9yPXZlYzIoMC4wKTt2ZWMyIHRvdGFsPXZlYzIoMC4wKTtm
bG9hdCBvZmZzZXQ9cmFuZG9tKHZlYzMoMTIuOTg5OCw3OC4yMzMsMTUxLjcxODIpLDAuMCk7Zm9y
KGZsb2F0IHQ9LTMwLjA7dDw9MzAuMDt0Kyspe2Zsb2F0IHBlcmNlbnQ9KHQrb2Zmc2V0LTAuNSkv
MzAuMDtmbG9hdCB3ZWlnaHQ9MS4wLWFicyhwZXJjZW50KTt2ZWMyIHNhbXBsZT10ZXh0dXJlMkQo
dGV4dHVyZSx0ZXhDb29yZCtkZWx0YSpwZXJjZW50KS54eTtjb2xvci54Kz1zYW1wbGUueCp3ZWln
aHQ7dG90YWwueCs9d2VpZ2h0O2lmKGFicyh0KTwxNS4wKXt3ZWlnaHQ9d2VpZ2h0KjIuMC0xLjA7
Y29sb3IueSs9c2FtcGxlLnkqd2VpZ2h0O3RvdGFsLnkrPXdlaWdodDt9fWZsb2F0IGM9Y2xhbXAo
MTAwMDAuMCooY29sb3IueS90b3RhbC55LWNvbG9yLngvdG90YWwueCkrMC41LDAuMCwxLjApO2ds
X0ZyYWdDb2xvcj12ZWM0KGMsYyxjLDEuMCk7fSIpOworZi5jYWxsKHRoaXMsYS5lZGdlV29yazEs
e2RlbHRhOltiL3RoaXMud2lkdGgsMF19KTtmLmNhbGwodGhpcyxhLmVkZ2VXb3JrMix7ZGVsdGE6
WzAsYi90aGlzLmhlaWdodF19KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBYKGIsZCxjKXthLmhleGFn
b25hbFBpeGVsYXRlPWEuaGV4YWdvbmFsUGl4ZWxhdGV8fG5ldyBoKG51bGwsInVuaWZvcm0gc2Ft
cGxlcjJEIHRleHR1cmU7dW5pZm9ybSB2ZWMyIGNlbnRlcjt1bmlmb3JtIGZsb2F0IHNjYWxlO3Vu
aWZvcm0gdmVjMiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4oKXt2ZWMy
IHRleD0odGV4Q29vcmQqdGV4U2l6ZS1jZW50ZXIpL3NjYWxlO3RleC55Lz0wLjg2NjAyNTQwNDt0
ZXgueC09dGV4LnkqMC41O3ZlYzIgYTtpZih0ZXgueCt0ZXgueS1mbG9vcih0ZXgueCktZmxvb3Io
dGV4LnkpPDEuMClhPXZlYzIoZmxvb3IodGV4LngpLGZsb29yKHRleC55KSk7ZWxzZSBhPXZlYzIo
Y2VpbCh0ZXgueCksY2VpbCh0ZXgueSkpO3ZlYzIgYj12ZWMyKGNlaWwodGV4LngpLGZsb29yKHRl
eC55KSk7dmVjMiBjPXZlYzIoZmxvb3IodGV4LngpLGNlaWwodGV4LnkpKTt2ZWMzIFRFWD12ZWMz
KHRleC54LHRleC55LDEuMC10ZXgueC10ZXgueSk7dmVjMyBBPXZlYzMoYS54LGEueSwxLjAtYS54
LWEueSk7dmVjMyBCPXZlYzMoYi54LGIueSwxLjAtYi54LWIueSk7dmVjMyBDPXZlYzMoYy54LGMu
eSwxLjAtYy54LWMueSk7ZmxvYXQgYWxlbj1sZW5ndGgoVEVYLUEpO2Zsb2F0IGJsZW49bGVuZ3Ro
KFRFWC1CKTtmbG9hdCBjbGVuPWxlbmd0aChURVgtQyk7dmVjMiBjaG9pY2U7aWYoYWxlbjxibGVu
KXtpZihhbGVuPGNsZW4pY2hvaWNlPWE7ZWxzZSBjaG9pY2U9Yzt9ZWxzZXtpZihibGVuPGNsZW4p
Y2hvaWNlPWI7ZWxzZSBjaG9pY2U9Yzt9Y2hvaWNlLngrPWNob2ljZS55KjAuNTtjaG9pY2UueSo9
MC44NjYwMjU0MDQ7Y2hvaWNlKj1zY2FsZS90ZXhTaXplO2dsX0ZyYWdDb2xvcj10ZXh0dXJlMkQo
dGV4dHVyZSxjaG9pY2UrY2VudGVyL3RleFNpemUpO30iKTsKK2YuY2FsbCh0aGlzLGEuaGV4YWdv
bmFsUGl4ZWxhdGUse2NlbnRlcjpbYixkXSxzY2FsZTpjLHRleFNpemU6W3RoaXMud2lkdGgsdGhp
cy5oZWlnaHRdfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gWShiKXthLmluaz1hLmlua3x8bmV3IGgo
bnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIGZsb2F0IHN0cmVuZ3RoO3Vu
aWZvcm0gdmVjMiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4oKXt2ZWMy
IGR4PXZlYzIoMS4wL3RleFNpemUueCwwLjApO3ZlYzIgZHk9dmVjMigwLjAsMS4wL3RleFNpemUu
eSk7dmVjNCBjb2xvcj10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7ZmxvYXQgYmlnVG90YWw9
MC4wO2Zsb2F0IHNtYWxsVG90YWw9MC4wO3ZlYzMgYmlnQXZlcmFnZT12ZWMzKDAuMCk7dmVjMyBz
bWFsbEF2ZXJhZ2U9dmVjMygwLjApO2ZvcihmbG9hdCB4PS0yLjA7eDw9Mi4wO3grPTEuMCl7Zm9y
KGZsb2F0IHk9LTIuMDt5PD0yLjA7eSs9MS4wKXt2ZWMzIHNhbXBsZT10ZXh0dXJlMkQodGV4dHVy
ZSx0ZXhDb29yZCtkeCp4K2R5KnkpLnJnYjtiaWdBdmVyYWdlKz1zYW1wbGU7YmlnVG90YWwrPTEu
MDtpZihhYnMoeCkrYWJzKHkpPDIuMCl7c21hbGxBdmVyYWdlKz1zYW1wbGU7c21hbGxUb3RhbCs9
MS4wO319fXZlYzMgZWRnZT1tYXgodmVjMygwLjApLGJpZ0F2ZXJhZ2UvYmlnVG90YWwtc21hbGxB
dmVyYWdlL3NtYWxsVG90YWwpO2dsX0ZyYWdDb2xvcj12ZWM0KGNvbG9yLnJnYi1kb3QoZWRnZSxl
ZGdlKSpzdHJlbmd0aCoxMDAwMDAuMCxjb2xvci5hKTt9Iik7CitmLmNhbGwodGhpcyxhLmluayx7
c3RyZW5ndGg6YipiKmIqYipiLHRleFNpemU6W3RoaXMud2lkdGgsdGhpcy5oZWlnaHRdfSk7cmV0
dXJuIHRoaXN9ZnVuY3Rpb24gWihiLGQsYyxlKXthLmJ1bGdlUGluY2g9YS5idWxnZVBpbmNofHx1
KCJ1bmlmb3JtIGZsb2F0IHJhZGl1czt1bmlmb3JtIGZsb2F0IHN0cmVuZ3RoO3VuaWZvcm0gdmVj
MiBjZW50ZXI7IiwiY29vcmQtPWNlbnRlcjtmbG9hdCBkaXN0YW5jZT1sZW5ndGgoY29vcmQpO2lm
KGRpc3RhbmNlPHJhZGl1cyl7ZmxvYXQgcGVyY2VudD1kaXN0YW5jZS9yYWRpdXM7aWYoc3RyZW5n
dGg+MC4wKXtjb29yZCo9bWl4KDEuMCxzbW9vdGhzdGVwKDAuMCxyYWRpdXMvZGlzdGFuY2UscGVy
Y2VudCksc3RyZW5ndGgqMC43NSk7fWVsc2V7Y29vcmQqPW1peCgxLjAscG93KHBlcmNlbnQsMS4w
K3N0cmVuZ3RoKjAuNzUpKnJhZGl1cy9kaXN0YW5jZSwxLjAtcGVyY2VudCk7fX1jb29yZCs9Y2Vu
dGVyOyIpOworZi5jYWxsKHRoaXMsYS5idWxnZVBpbmNoLHtyYWRpdXM6YyxzdHJlbmd0aDpxKC0x
LGUsMSksY2VudGVyOltiLGRdLHRleFNpemU6W3RoaXMud2lkdGgsdGhpcy5oZWlnaHRdfSk7cmV0
dXJuIHRoaXN9ZnVuY3Rpb24gJChiLGQsYyl7YS5tYXRyaXhXYXJwPWEubWF0cml4V2FycHx8dSgi
dW5pZm9ybSBtYXQzIG1hdHJpeDt1bmlmb3JtIGJvb2wgdXNlVGV4dHVyZVNwYWNlOyIsImlmKHVz
ZVRleHR1cmVTcGFjZSljb29yZD1jb29yZC90ZXhTaXplKjIuMC0xLjA7dmVjMyB3YXJwPW1hdHJp
eCp2ZWMzKGNvb3JkLDEuMCk7Y29vcmQ9d2FycC54eS93YXJwLno7aWYodXNlVGV4dHVyZVNwYWNl
KWNvb3JkPShjb29yZCowLjUrMC41KSp0ZXhTaXplOyIpO2I9QXJyYXkucHJvdG90eXBlLmNvbmNh
dC5hcHBseShbXSxiKTtpZig0PT1iLmxlbmd0aCliPQorW2JbMF0sYlsxXSwwLGJbMl0sYlszXSww
LDAsMCwxXTtlbHNlIGlmKDkhPWIubGVuZ3RoKXRocm93ImNhbiBvbmx5IHdhcnAgd2l0aCAyeDIg
b3IgM3gzIG1hdHJpeCI7Zi5jYWxsKHRoaXMsYS5tYXRyaXhXYXJwLHttYXRyaXg6ZD95KGIpOmIs
dGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlzLmhlaWdodF0sdXNlVGV4dHVyZVNwYWNlOmN8MH0pO3Jl
dHVybiB0aGlzfWZ1bmN0aW9uIGFhKGEsZCl7dmFyIGM9eC5hcHBseShudWxsLGQpLGU9eC5hcHBs
eShudWxsLGEpLGM9eShjKTtyZXR1cm4gdGhpcy5tYXRyaXhXYXJwKFtjWzBdKmVbMF0rY1sxXSpl
WzNdK2NbMl0qZVs2XSxjWzBdKmVbMV0rY1sxXSplWzRdK2NbMl0qZVs3XSxjWzBdKmVbMl0rY1sx
XSplWzVdK2NbMl0qZVs4XSxjWzNdKmVbMF0rY1s0XSplWzNdK2NbNV0qZVs2XSxjWzNdKmVbMV0r
Y1s0XSplWzRdK2NbNV0qZVs3XSxjWzNdKmVbMl0rY1s0XSplWzVdK2NbNV0qZVs4XSxjWzZdKmVb
MF0rY1s3XSplWzNdK2NbOF0qZVs2XSwKK2NbNl0qZVsxXStjWzddKmVbNF0rY1s4XSplWzddLGNb
Nl0qZVsyXStjWzddKmVbNV0rY1s4XSplWzhdXSl9ZnVuY3Rpb24gYmEoYixkLGMsZSl7YS5zd2ly
bD1hLnN3aXJsfHx1KCJ1bmlmb3JtIGZsb2F0IHJhZGl1czt1bmlmb3JtIGZsb2F0IGFuZ2xlO3Vu
aWZvcm0gdmVjMiBjZW50ZXI7IiwiY29vcmQtPWNlbnRlcjtmbG9hdCBkaXN0YW5jZT1sZW5ndGgo
Y29vcmQpO2lmKGRpc3RhbmNlPHJhZGl1cyl7ZmxvYXQgcGVyY2VudD0ocmFkaXVzLWRpc3RhbmNl
KS9yYWRpdXM7ZmxvYXQgdGhldGE9cGVyY2VudCpwZXJjZW50KmFuZ2xlO2Zsb2F0IHM9c2luKHRo
ZXRhKTtmbG9hdCBjPWNvcyh0aGV0YSk7Y29vcmQ9dmVjMihjb29yZC54KmMtY29vcmQueSpzLGNv
b3JkLngqcytjb29yZC55KmMpO31jb29yZCs9Y2VudGVyOyIpOworZi5jYWxsKHRoaXMsYS5zd2ly
bCx7cmFkaXVzOmMsY2VudGVyOltiLGRdLGFuZ2xlOmUsdGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlz
LmhlaWdodF19KTtyZXR1cm4gdGhpc312YXIgdj17fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIp
e2lmKCFiLmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfZmxvYXQiKSlyZXR1cm4hMTt2YXIgYz1i
LmNyZWF0ZUZyYW1lYnVmZmVyKCksZT1iLmNyZWF0ZVRleHR1cmUoKTtiLmJpbmRUZXh0dXJlKGIu
VEVYVFVSRV8yRCxlKTtiLnRleFBhcmFtZXRlcmkoYi5URVhUVVJFXzJELGIuVEVYVFVSRV9NQUdf
RklMVEVSLGIuTkVBUkVTVCk7Yi50ZXhQYXJhbWV0ZXJpKGIuVEVYVFVSRV8yRCxiLlRFWFRVUkVf
TUlOX0ZJTFRFUixiLk5FQVJFU1QpO2IudGV4UGFyYW1ldGVyaShiLlRFWFRVUkVfMkQsYi5URVhU
VVJFX1dSQVBfUyxiLkNMQU1QX1RPX0VER0UpO2IudGV4UGFyYW1ldGVyaShiLlRFWFRVUkVfMkQs
Yi5URVhUVVJFX1dSQVBfVCxiLkNMQU1QX1RPX0VER0UpOworYi50ZXhJbWFnZTJEKGIuVEVYVFVS
RV8yRCwwLGIuUkdCQSwxLDEsMCxiLlJHQkEsYi5VTlNJR05FRF9CWVRFLG51bGwpO2IuYmluZEZy
YW1lYnVmZmVyKGIuRlJBTUVCVUZGRVIsYyk7Yi5mcmFtZWJ1ZmZlclRleHR1cmUyRChiLkZSQU1F
QlVGRkVSLGIuQ09MT1JfQVRUQUNITUVOVDAsYi5URVhUVVJFXzJELGUsMCk7Yz1iLmNyZWF0ZVRl
eHR1cmUoKTtiLmJpbmRUZXh0dXJlKGIuVEVYVFVSRV8yRCxjKTtiLnRleFBhcmFtZXRlcmkoYi5U
RVhUVVJFXzJELGIuVEVYVFVSRV9NQUdfRklMVEVSLGIuTElORUFSKTtiLnRleFBhcmFtZXRlcmko
Yi5URVhUVVJFXzJELGIuVEVYVFVSRV9NSU5fRklMVEVSLGIuTElORUFSKTtiLnRleFBhcmFtZXRl
cmkoYi5URVhUVVJFXzJELGIuVEVYVFVSRV9XUkFQX1MsYi5DTEFNUF9UT19FREdFKTtiLnRleFBh
cmFtZXRlcmkoYi5URVhUVVJFXzJELGIuVEVYVFVSRV9XUkFQX1QsYi5DTEFNUF9UT19FREdFKTti
LnRleEltYWdlMkQoYi5URVhUVVJFXzJELAorMCxiLlJHQkEsMiwyLDAsYi5SR0JBLGIuRkxPQVQs
bmV3IEZsb2F0MzJBcnJheShbMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pKTt2YXIg
ZT1iLmNyZWF0ZVByb2dyYW0oKSxkPWIuY3JlYXRlU2hhZGVyKGIuVkVSVEVYX1NIQURFUiksZz1i
LmNyZWF0ZVNoYWRlcihiLkZSQUdNRU5UX1NIQURFUik7Yi5zaGFkZXJTb3VyY2UoZCwiYXR0cmli
dXRlIHZlYzIgdmVydGV4O3ZvaWQgbWFpbigpe2dsX1Bvc2l0aW9uPXZlYzQodmVydGV4LDAuMCwx
LjApO30iKTtiLnNoYWRlclNvdXJjZShnLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3ZvaWQg
bWFpbigpe2dsX0ZyYWdDb2xvcj10ZXh0dXJlMkQodGV4dHVyZSx2ZWMyKDAuNSkpO30iKTtiLmNv
bXBpbGVTaGFkZXIoZCk7Yi5jb21waWxlU2hhZGVyKGcpO2IuYXR0YWNoU2hhZGVyKGUsZCk7Yi5h
dHRhY2hTaGFkZXIoZSwKK2cpO2IubGlua1Byb2dyYW0oZSk7ZD1iLmNyZWF0ZUJ1ZmZlcigpO2Iu
YmluZEJ1ZmZlcihiLkFSUkFZX0JVRkZFUixkKTtiLmJ1ZmZlckRhdGEoYi5BUlJBWV9CVUZGRVIs
bmV3IEZsb2F0MzJBcnJheShbMCwwXSksYi5TVFJFQU1fRFJBVyk7Yi5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgwKTtiLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwyLGIuRkxPQVQsITEsMCwwKTtkPW5l
dyBVaW50OEFycmF5KDQpO2IudXNlUHJvZ3JhbShlKTtiLnZpZXdwb3J0KDAsMCwxLDEpO2IuYmlu
ZFRleHR1cmUoYi5URVhUVVJFXzJELGMpO2IuZHJhd0FycmF5cyhiLlBPSU5UUywwLDEpO2IucmVh
ZFBpeGVscygwLDAsMSwxLGIuUkdCQSxiLlVOU0lHTkVEX0JZVEUsZCk7cmV0dXJuIDEyNz09PWRb
MF18fDEyOD09PWRbMF19ZnVuY3Rpb24gZCgpe31mdW5jdGlvbiBjKGEpeyJPRVNfdGV4dHVyZV9m
bG9hdF9saW5lYXIiPT09YT8odm9pZCAwPT09dGhpcy4kT0VTX3RleHR1cmVfZmxvYXRfbGluZWFy
JCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsCisiJE9FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciQiLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTpuZXcg
ZH0pLGE9dGhpcy4kT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyJCk6YT1uLmNhbGwodGhpcyxhKTty
ZXR1cm4gYX1mdW5jdGlvbiBlKCl7dmFyIGE9Zi5jYWxsKHRoaXMpOy0xPT09YS5pbmRleE9mKCJP
RVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSYmYS5wdXNoKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5l
YXIiKTtyZXR1cm4gYX10cnl7dmFyIGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiku
Z2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIil9Y2F0Y2gobCl7fWlmKGcmJi0xPT09Zy5n
ZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkuaW5kZXhPZigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFy
IikmJmEoZykpe3ZhciBuPVdlYkdMUmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUuZ2V0RXh0ZW5z
aW9uLGY9V2ViR0xSZW5kZXJpbmdDb250ZXh0LnByb3RvdHlwZS5nZXRTdXBwb3J0ZWRFeHRlbnNp
b25zOworV2ViR0xSZW5kZXJpbmdDb250ZXh0LnByb3RvdHlwZS5nZXRFeHRlbnNpb249YztXZWJH
TFJlbmRlcmluZ0NvbnRleHQucHJvdG90eXBlLmdldFN1cHBvcnRlZEV4dGVuc2lvbnM9ZX19KSgp
O3ZhciBhO3YuY2FudmFzPWZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
Y2FudmFzIik7dHJ5e2E9Yi5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLHtwcmVtdWx0
aXBsaWVkQWxwaGE6ITF9KX1jYXRjaChkKXthPW51bGx9aWYoIWEpdGhyb3ciVGhpcyBicm93c2Vy
IGRvZXMgbm90IHN1cHBvcnQgV2ViR0wiO2IuXz17Z2w6YSxpc0luaXRpYWxpemVkOiExLHRleHR1
cmU6bnVsbCxzcGFyZVRleHR1cmU6bnVsbCxmbGlwcGVkU2hhZGVyOm51bGx9O2IudGV4dHVyZT1r
KEEpO2IuZHJhdz1rKEMpO2IudXBkYXRlPWsoRCk7Yi5yZXBsYWNlPWsoRSk7Yi5jb250ZW50cz1r
KEYpO2IuZ2V0UGl4ZWxBcnJheT1rKEcpO2IuYnJpZ2h0bmVzc0NvbnRyYXN0PWsoSCk7CitiLmhl
eGFnb25hbFBpeGVsYXRlPWsoWCk7Yi5odWVTYXR1cmF0aW9uPWsoSyk7Yi5jb2xvckhhbGZ0b25l
PWsoVSk7Yi50cmlhbmdsZUJsdXI9ayhTKTtiLnVuc2hhcnBNYXNrPWsoTik7Yi5wZXJzcGVjdGl2
ZT1rKGFhKTtiLm1hdHJpeFdhcnA9aygkKTtiLmJ1bGdlUGluY2g9ayhaKTtiLnRpbHRTaGlmdD1r
KFIpO2IuZG90U2NyZWVuPWsoVik7Yi5lZGdlV29yaz1rKFcpO2IubGVuc0JsdXI9ayhRKTtiLnpv
b21CbHVyPWsoVCk7Yi5ub2lzZT1rKEwpO2IuZGVub2lzZT1rKEopO2IuY3VydmVzPWsoSSk7Yi5z
d2lybD1rKGJhKTtiLmluaz1rKFkpO2IudmlnbmV0dGU9ayhQKTtiLnZpYnJhbmNlPWsoTyk7Yi5z
ZXBpYT1rKE0pO3JldHVybiBifTt2LnNwbGluZUludGVycG9sYXRlPXQ7dmFyIGg9ZnVuY3Rpb24o
KXtmdW5jdGlvbiBiKGIsYyl7dmFyIGU9YS5jcmVhdGVTaGFkZXIoYik7YS5zaGFkZXJTb3VyY2Uo
ZSxjKTthLmNvbXBpbGVTaGFkZXIoZSk7aWYoIWEuZ2V0U2hhZGVyUGFyYW1ldGVyKGUsCithLkNP
TVBJTEVfU1RBVFVTKSl0aHJvdyJjb21waWxlIGVycm9yOiAiK2EuZ2V0U2hhZGVySW5mb0xvZyhl
KTtyZXR1cm4gZX1mdW5jdGlvbiBkKGQsbCl7dGhpcy50ZXhDb29yZEF0dHJpYnV0ZT10aGlzLnZl
cnRleEF0dHJpYnV0ZT1udWxsO3RoaXMucHJvZ3JhbT1hLmNyZWF0ZVByb2dyYW0oKTtkPWR8fGM7
bD1sfHxlO2w9InByZWNpc2lvbiBoaWdocCBmbG9hdDsiK2w7YS5hdHRhY2hTaGFkZXIodGhpcy5w
cm9ncmFtLGIoYS5WRVJURVhfU0hBREVSLGQpKTthLmF0dGFjaFNoYWRlcih0aGlzLnByb2dyYW0s
YihhLkZSQUdNRU5UX1NIQURFUixsKSk7YS5saW5rUHJvZ3JhbSh0aGlzLnByb2dyYW0pO2lmKCFh
LmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5wcm9ncmFtLGEuTElOS19TVEFUVVMpKXRocm93Imxp
bmsgZXJyb3I6ICIrYS5nZXRQcm9ncmFtSW5mb0xvZyh0aGlzLnByb2dyYW0pO312YXIgYz0iYXR0
cmlidXRlIHZlYzIgdmVydGV4O2F0dHJpYnV0ZSB2ZWMyIF90ZXhDb29yZDt2YXJ5aW5nIHZlYzIg
dGV4Q29vcmQ7dm9pZCBtYWluKCl7dGV4Q29vcmQ9X3RleENvb3JkO2dsX1Bvc2l0aW9uPXZlYzQo
dmVydGV4KjIuMC0xLjAsMC4wLDEuMCk7fSIsCitlPSJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJl
O3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4oKXtnbF9GcmFnQ29sb3I9dGV4dHVyZTJE
KHRleHR1cmUsdGV4Q29vcmQpO30iO2QucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXthLmRl
bGV0ZVByb2dyYW0odGhpcy5wcm9ncmFtKTt0aGlzLnByb2dyYW09bnVsbH07ZC5wcm90b3R5cGUu
dW5pZm9ybXM9ZnVuY3Rpb24oYil7YS51c2VQcm9ncmFtKHRoaXMucHJvZ3JhbSk7Zm9yKHZhciBl
IGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGM9YS5nZXRVbmlmb3JtTG9jYXRpb24o
dGhpcy5wcm9ncmFtLGUpO2lmKG51bGwhPT1jKXt2YXIgZD1iW2VdO2lmKCJbb2JqZWN0IEFycmF5
XSI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSlzd2l0Y2goZC5sZW5ndGgpe2Nh
c2UgMTphLnVuaWZvcm0xZnYoYyxuZXcgRmxvYXQzMkFycmF5KGQpKTticmVhazsKK2Nhc2UgMjph
LnVuaWZvcm0yZnYoYyxuZXcgRmxvYXQzMkFycmF5KGQpKTticmVhaztjYXNlIDM6YS51bmlmb3Jt
M2Z2KGMsbmV3IEZsb2F0MzJBcnJheShkKSk7YnJlYWs7Y2FzZSA0OmEudW5pZm9ybTRmdihjLG5l
dyBGbG9hdDMyQXJyYXkoZCkpO2JyZWFrO2Nhc2UgOTphLnVuaWZvcm1NYXRyaXgzZnYoYywhMSxu
ZXcgRmxvYXQzMkFycmF5KGQpKTticmVhaztjYXNlIDE2OmEudW5pZm9ybU1hdHJpeDRmdihjLCEx
LG5ldyBGbG9hdDMyQXJyYXkoZCkpO2JyZWFrO2RlZmF1bHQ6dGhyb3ciZG9udCd0IGtub3cgaG93
IHRvIGxvYWQgdW5pZm9ybSBcIiIrZSsnIiBvZiBsZW5ndGggJytkLmxlbmd0aDt9ZWxzZSBpZigi
W29iamVjdCBOdW1iZXJdIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpKWEudW5p
Zm9ybTFmKGMsZCk7ZWxzZSB0aHJvdydhdHRlbXB0ZWQgdG8gc2V0IHVuaWZvcm0gIicrZSsnIiB0
byBpbnZhbGlkIHZhbHVlICcrKGR8fCJ1bmRlZmluZWQiKS50b1N0cmluZygpOworfX1yZXR1cm4g
dGhpc307ZC5wcm90b3R5cGUudGV4dHVyZXM9ZnVuY3Rpb24oYil7YS51c2VQcm9ncmFtKHRoaXMu
cHJvZ3JhbSk7Zm9yKHZhciBjIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShjKSYmYS51bmlmb3JtMWko
YS5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5wcm9ncmFtLGMpLGJbY10pO3JldHVybiB0aGlzfTtk
LnByb3RvdHlwZS5kcmF3UmVjdD1mdW5jdGlvbihiLGMsZSxkKXt2YXIgZj1hLmdldFBhcmFtZXRl
cihhLlZJRVdQT1JUKTtjPXZvaWQgMCE9PWM/KGMtZlsxXSkvZlszXTowO2I9dm9pZCAwIT09Yj8o
Yi1mWzBdKS9mWzJdOjA7ZT12b2lkIDAhPT1lPyhlLWZbMF0pL2ZbMl06MTtkPXZvaWQgMCE9PWQ/
KGQtZlsxXSkvZlszXToxO251bGw9PWEudmVydGV4QnVmZmVyJiYoYS52ZXJ0ZXhCdWZmZXI9YS5j
cmVhdGVCdWZmZXIoKSk7YS5iaW5kQnVmZmVyKGEuQVJSQVlfQlVGRkVSLGEudmVydGV4QnVmZmVy
KTthLmJ1ZmZlckRhdGEoYS5BUlJBWV9CVUZGRVIsbmV3IEZsb2F0MzJBcnJheShbYiwKK2MsYixk
LGUsYyxlLGRdKSxhLlNUQVRJQ19EUkFXKTtudWxsPT1hLnRleENvb3JkQnVmZmVyJiYoYS50ZXhD
b29yZEJ1ZmZlcj1hLmNyZWF0ZUJ1ZmZlcigpLGEuYmluZEJ1ZmZlcihhLkFSUkFZX0JVRkZFUixh
LnRleENvb3JkQnVmZmVyKSxhLmJ1ZmZlckRhdGEoYS5BUlJBWV9CVUZGRVIsbmV3IEZsb2F0MzJB
cnJheShbMCwwLDAsMSwxLDAsMSwxXSksYS5TVEFUSUNfRFJBVykpO251bGw9PXRoaXMudmVydGV4
QXR0cmlidXRlJiYodGhpcy52ZXJ0ZXhBdHRyaWJ1dGU9YS5nZXRBdHRyaWJMb2NhdGlvbih0aGlz
LnByb2dyYW0sInZlcnRleCIpLGEuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodGhpcy52ZXJ0ZXhB
dHRyaWJ1dGUpKTtudWxsPT10aGlzLnRleENvb3JkQXR0cmlidXRlJiYodGhpcy50ZXhDb29yZEF0
dHJpYnV0ZT1hLmdldEF0dHJpYkxvY2F0aW9uKHRoaXMucHJvZ3JhbSwiX3RleENvb3JkIiksYS5l
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh0aGlzLnRleENvb3JkQXR0cmlidXRlKSk7CithLnVzZVBy
b2dyYW0odGhpcy5wcm9ncmFtKTthLmJpbmRCdWZmZXIoYS5BUlJBWV9CVUZGRVIsYS52ZXJ0ZXhC
dWZmZXIpO2EudmVydGV4QXR0cmliUG9pbnRlcih0aGlzLnZlcnRleEF0dHJpYnV0ZSwyLGEuRkxP
QVQsITEsMCwwKTthLmJpbmRCdWZmZXIoYS5BUlJBWV9CVUZGRVIsYS50ZXhDb29yZEJ1ZmZlcik7
YS52ZXJ0ZXhBdHRyaWJQb2ludGVyKHRoaXMudGV4Q29vcmRBdHRyaWJ1dGUsMixhLkZMT0FULCEx
LDAsMCk7YS5kcmF3QXJyYXlzKGEuVFJJQU5HTEVfU1RSSVAsMCw0KX07ZC5nZXREZWZhdWx0U2hh
ZGVyPWZ1bmN0aW9uKCl7YS5kZWZhdWx0U2hhZGVyPWEuZGVmYXVsdFNoYWRlcnx8bmV3IGQ7cmV0
dXJuIGEuZGVmYXVsdFNoYWRlcn07cmV0dXJuIGR9KCk7ei5wcm90b3R5cGUuaW50ZXJwb2xhdGU9
ZnVuY3Rpb24oYSl7Zm9yKHZhciBkPTAsYz10aGlzLnlhLmxlbmd0aC0xOzE8Yy1kOyl7dmFyIGU9
YytkPj4xO3RoaXMueGFbZV0+YT9jPWU6ZD1lfXZhciBlPXRoaXMueGFbY10tCit0aGlzLnhhW2Rd
LGc9KHRoaXMueGFbY10tYSkvZTthPShhLXRoaXMueGFbZF0pL2U7cmV0dXJuIGcqdGhpcy55YVtk
XSthKnRoaXMueWFbY10rKChnKmcqZy1nKSp0aGlzLnkyW2RdKyhhKmEqYS1hKSp0aGlzLnkyW2Nd
KSplKmUvNn07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBiKGIsYyxkLGYpe3RoaXMuZ2w9YTt0
aGlzLmlkPWEuY3JlYXRlVGV4dHVyZSgpO3RoaXMud2lkdGg9Yjt0aGlzLmhlaWdodD1jO3RoaXMu
Zm9ybWF0PWQ7dGhpcy50eXBlPWY7YS5iaW5kVGV4dHVyZShhLlRFWFRVUkVfMkQsdGhpcy5pZCk7
YS50ZXhQYXJhbWV0ZXJpKGEuVEVYVFVSRV8yRCxhLlRFWFRVUkVfTUFHX0ZJTFRFUixhLkxJTkVB
Uik7YS50ZXhQYXJhbWV0ZXJpKGEuVEVYVFVSRV8yRCxhLlRFWFRVUkVfTUlOX0ZJTFRFUixhLkxJ
TkVBUik7YS50ZXhQYXJhbWV0ZXJpKGEuVEVYVFVSRV8yRCxhLlRFWFRVUkVfV1JBUF9TLGEuQ0xB
TVBfVE9fRURHRSk7YS50ZXhQYXJhbWV0ZXJpKGEuVEVYVFVSRV8yRCwKK2EuVEVYVFVSRV9XUkFQ
X1QsYS5DTEFNUF9UT19FREdFKTtiJiZjJiZhLnRleEltYWdlMkQoYS5URVhUVVJFXzJELDAsdGhp
cy5mb3JtYXQsYixjLDAsdGhpcy5mb3JtYXQsdGhpcy50eXBlLG51bGwpfWZ1bmN0aW9uIGQoYSl7
bnVsbD09YyYmKGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpO2Mud2lkdGg9YS53
aWR0aDtjLmhlaWdodD1hLmhlaWdodDthPWMuZ2V0Q29udGV4dCgiMmQiKTthLmNsZWFyUmVjdCgw
LDAsYy53aWR0aCxjLmhlaWdodCk7cmV0dXJuIGF9Yi5mcm9tRWxlbWVudD1mdW5jdGlvbihjKXt2
YXIgZD1uZXcgYigwLDAsYS5SR0JBLGEuVU5TSUdORURfQllURSk7ZC5sb2FkQ29udGVudHNPZihj
KTtyZXR1cm4gZH07Yi5wcm90b3R5cGUubG9hZENvbnRlbnRzT2Y9ZnVuY3Rpb24oYil7dGhpcy53
aWR0aD1iLndpZHRofHxiLnZpZGVvV2lkdGg7dGhpcy5oZWlnaHQ9Yi5oZWlnaHR8fGIudmlkZW9I
ZWlnaHQ7YS5iaW5kVGV4dHVyZShhLlRFWFRVUkVfMkQsCit0aGlzLmlkKTthLnRleEltYWdlMkQo
YS5URVhUVVJFXzJELDAsdGhpcy5mb3JtYXQsdGhpcy5mb3JtYXQsdGhpcy50eXBlLGIpfTtiLnBy
b3RvdHlwZS5pbml0RnJvbUJ5dGVzPWZ1bmN0aW9uKGIsYyxkKXt0aGlzLndpZHRoPWI7dGhpcy5o
ZWlnaHQ9Yzt0aGlzLmZvcm1hdD1hLlJHQkE7dGhpcy50eXBlPWEuVU5TSUdORURfQllURTthLmJp
bmRUZXh0dXJlKGEuVEVYVFVSRV8yRCx0aGlzLmlkKTthLnRleEltYWdlMkQoYS5URVhUVVJFXzJE
LDAsYS5SR0JBLGIsYywwLGEuUkdCQSx0aGlzLnR5cGUsbmV3IFVpbnQ4QXJyYXkoZCkpfTtiLnBy
b3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7YS5kZWxldGVUZXh0dXJlKHRoaXMuaWQpO3RoaXMu
aWQ9bnVsbH07Yi5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGIpe2EuYWN0aXZlVGV4dHVyZShhLlRF
WFRVUkUwKyhifHwwKSk7YS5iaW5kVGV4dHVyZShhLlRFWFRVUkVfMkQsdGhpcy5pZCl9O2IucHJv
dG90eXBlLnVudXNlPWZ1bmN0aW9uKGIpe2EuYWN0aXZlVGV4dHVyZShhLlRFWFRVUkUwKworKGJ8
fDApKTthLmJpbmRUZXh0dXJlKGEuVEVYVFVSRV8yRCxudWxsKX07Yi5wcm90b3R5cGUuZW5zdXJl
Rm9ybWF0PWZ1bmN0aW9uKGIsYyxkLGYpe2lmKDE9PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBoPWFy
Z3VtZW50c1swXTtiPWgud2lkdGg7Yz1oLmhlaWdodDtkPWguZm9ybWF0O2Y9aC50eXBlfWlmKGIh
PXRoaXMud2lkdGh8fGMhPXRoaXMuaGVpZ2h0fHxkIT10aGlzLmZvcm1hdHx8ZiE9dGhpcy50eXBl
KXRoaXMud2lkdGg9Yix0aGlzLmhlaWdodD1jLHRoaXMuZm9ybWF0PWQsdGhpcy50eXBlPWYsYS5i
aW5kVGV4dHVyZShhLlRFWFRVUkVfMkQsdGhpcy5pZCksYS50ZXhJbWFnZTJEKGEuVEVYVFVSRV8y
RCwwLHRoaXMuZm9ybWF0LGIsYywwLHRoaXMuZm9ybWF0LHRoaXMudHlwZSxudWxsKX07Yi5wcm90
b3R5cGUuZHJhd1RvPWZ1bmN0aW9uKGIpe2EuZnJhbWVidWZmZXI9YS5mcmFtZWJ1ZmZlcnx8YS5j
cmVhdGVGcmFtZWJ1ZmZlcigpO2EuYmluZEZyYW1lYnVmZmVyKGEuRlJBTUVCVUZGRVIsCithLmZy
YW1lYnVmZmVyKTthLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGEuRlJBTUVCVUZGRVIsYS5DT0xPUl9B
VFRBQ0hNRU5UMCxhLlRFWFRVUkVfMkQsdGhpcy5pZCwwKTtpZihhLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoYS5GUkFNRUJVRkZFUikhPT1hLkZSQU1FQlVGRkVSX0NPTVBMRVRFKXRocm93IEVycm9y
KCJpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7YS52aWV3cG9ydCgwLDAsdGhpcy53aWR0aCx0aGlz
LmhlaWdodCk7YigpO2EuYmluZEZyYW1lYnVmZmVyKGEuRlJBTUVCVUZGRVIsbnVsbCl9O3ZhciBj
PW51bGw7Yi5wcm90b3R5cGUuZmlsbFVzaW5nQ2FudmFzPWZ1bmN0aW9uKGIpe2IoZCh0aGlzKSk7
dGhpcy5mb3JtYXQ9YS5SR0JBO3RoaXMudHlwZT1hLlVOU0lHTkVEX0JZVEU7YS5iaW5kVGV4dHVy
ZShhLlRFWFRVUkVfMkQsdGhpcy5pZCk7YS50ZXhJbWFnZTJEKGEuVEVYVFVSRV8yRCwwLGEuUkdC
QSxhLlJHQkEsYS5VTlNJR05FRF9CWVRFLGMpO3JldHVybiB0aGlzfTsKK2IucHJvdG90eXBlLnRv
SW1hZ2U9ZnVuY3Rpb24oYil7dGhpcy51c2UoKTtoLmdldERlZmF1bHRTaGFkZXIoKS5kcmF3UmVj
dCgpO3ZhciBmPTQqdGhpcy53aWR0aCp0aGlzLmhlaWdodCxrPW5ldyBVaW50OEFycmF5KGYpLG49
ZCh0aGlzKSxwPW4uY3JlYXRlSW1hZ2VEYXRhKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO2EucmVh
ZFBpeGVscygwLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodCxhLlJHQkEsYS5VTlNJR05FRF9CWVRF
LGspO2Zvcih2YXIgbT0wO208ZjttKyspcC5kYXRhW21dPWtbbV07bi5wdXRJbWFnZURhdGEocCww
LDApO2Iuc3JjPWMudG9EYXRhVVJMKCl9O2IucHJvdG90eXBlLnN3YXBXaXRoPWZ1bmN0aW9uKGEp
e3ZhciBiO2I9YS5pZDthLmlkPXRoaXMuaWQ7dGhpcy5pZD1iO2I9YS53aWR0aDthLndpZHRoPXRo
aXMud2lkdGg7dGhpcy53aWR0aD1iO2I9YS5oZWlnaHQ7YS5oZWlnaHQ9dGhpcy5oZWlnaHQ7dGhp
cy5oZWlnaHQ9YjtiPWEuZm9ybWF0O2EuZm9ybWF0PQordGhpcy5mb3JtYXQ7dGhpcy5mb3JtYXQ9
Yn07cmV0dXJuIGJ9KCkscz0iZmxvYXQgcmFuZG9tKHZlYzMgc2NhbGUsZmxvYXQgc2VlZCl7cmV0
dXJuIGZyYWN0KHNpbihkb3QoZ2xfRnJhZ0Nvb3JkLnh5eitzZWVkLHNjYWxlKSkqNDM3NTguNTQ1
MytzZWVkKTt9IjtyZXR1cm4gdn0oKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcv
YmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2pzL21haW4uanMgYi9XZWJzaXRlcy93
ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9qcy9tYWluLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM1OTRjYzZmZmJjODE3N2YwMDUwMmU4YTI5ODJjOGVkNGU4NmI1NmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdp
dGgtZWZmZWN0cy9qcy9tYWluLmpzCkBAIC0wLDAgKzEsMjY5IEBACisvKgorICogIENvcHlyaWdo
dCAoYykgMjAxNSBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt
c3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUg
aW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuCisgKi8KKworJ3VzZSBzdHJpY3Qn
OworCit2YXIgc3RhcnRCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhcnRCdXR0
b24nKTsKK3ZhciBjYWxsQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGxCdXR0
b24nKTsKK2NhbGxCdXR0b24uZGlzYWJsZWQgPSB0cnVlOworc3RhcnRCdXR0b24ub25jbGljayA9
IHN0YXJ0OworY2FsbEJ1dHRvbi5vbmNsaWNrID0gY2FsbDsKKwordmFyIHN0YXJ0VGltZTsKK3Zh
ciBsb2NhbFZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsVmlkZW8nKTsKK3Zh
ciByZW1vdGVWaWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGVWaWRlbycpOwor
dmFyIGNhbnZhcyA9IGZ4LmNhbnZhcygpOworCitsb2NhbFZpZGVvLmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWRlZG1ldGFkYXRhJywgZnVuY3Rpb24oKSB7CisgIHRyYWNlKCdMb2NhbCB2aWRlbyB2aWRl
b1dpZHRoOiAnICsgdGhpcy52aWRlb1dpZHRoICsKKyAgICAncHgsICB2aWRlb0hlaWdodDogJyAr
IHRoaXMudmlkZW9IZWlnaHQgKyAncHgnKTsKK30pOworCityZW1vdGVWaWRlby5hZGRFdmVudExp
c3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsIGZ1bmN0aW9uKCkgeworICB0cmFjZSgnUmVtb3RlIHZp
ZGVvIHZpZGVvV2lkdGg6ICcgKyB0aGlzLnZpZGVvV2lkdGggKworICAgICdweCwgIHZpZGVvSGVp
Z2h0OiAnICsgdGhpcy52aWRlb0hlaWdodCArICdweCcpOworfSk7CisKK3JlbW90ZVZpZGVvLm9u
cmVzaXplID0gZnVuY3Rpb24oKSB7CisgIHRyYWNlKCdSZW1vdGUgdmlkZW8gc2l6ZSBjaGFuZ2Vk
IHRvICcgKworICAgIHJlbW90ZVZpZGVvLnZpZGVvV2lkdGggKyAneCcgKyByZW1vdGVWaWRlby52
aWRlb0hlaWdodCk7CisgIC8vIFdlJ2xsIHVzZSB0aGUgZmlyc3Qgb25zaXplIGNhbGxiYWNrIGFz
IGFuIGluZGljYXRpb24gdGhhdCB2aWRlbyBoYXMgc3RhcnRlZAorICAvLyBwbGF5aW5nIG91dC4K
KyAgaWYgKHN0YXJ0VGltZSkgeworICAgIHZhciBlbGFwc2VkVGltZSA9IHdpbmRvdy5wZXJmb3Jt
YW5jZS5ub3coKSAtIHN0YXJ0VGltZTsKKyAgICB0cmFjZSgnU2V0dXAgdGltZTogJyArIGVsYXBz
ZWRUaW1lLnRvRml4ZWQoMykgKyAnbXMnKTsKKyAgICBzdGFydFRpbWUgPSBudWxsOworICB9Cit9
OworCit2YXIgbG9jYWxTdHJlYW07Cit2YXIgcGMxOwordmFyIHBjMjsKK3ZhciBvZmZlck9wdGlv
bnMgPSB7CisgIG9mZmVyVG9SZWNlaXZlQXVkaW86IDEsCisgIG9mZmVyVG9SZWNlaXZlVmlkZW86
IDEKK307CisKK2Z1bmN0aW9uIGdldE5hbWUocGMpIHsKKyAgcmV0dXJuIChwYyA9PT0gcGMxKSA/
ICdwYzEnIDogJ3BjMic7Cit9CisKK2Z1bmN0aW9uIGdldE90aGVyUGMocGMpIHsKKyAgcmV0dXJu
IChwYyA9PT0gcGMxKSA/IHBjMiA6IHBjMTsKK30KKworZnVuY3Rpb24gZ290U3RyZWFtKHN0cmVh
bSkgeworICB0cmFjZSgnUmVjZWl2ZWQgbG9jYWwgc3RyZWFtJyk7CisgIGxvY2FsVmlkZW8uc3Jj
T2JqZWN0ID0gc3RyZWFtOworICBsb2NhbFN0cmVhbSA9IHN0cmVhbTsKKyAgY2FsbEJ1dHRvbi5k
aXNhYmxlZCA9IGZhbHNlOworfQorCitmdW5jdGlvbiBzdGFydCgpIHsKKyAgdHJhY2UoJ1JlcXVl
c3RpbmcgbG9jYWwgc3RyZWFtJyk7CisgIHN0YXJ0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsKKyAg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeworICAgIGF1ZGlvOiBmYWxzZSwK
KyAgICB2aWRlbzogdHJ1ZX0pCisgIC50aGVuKGdvdFN0cmVhbSkKKyAgLmNhdGNoKGZ1bmN0aW9u
KGUpIHsKKyAgICBhbGVydCgnZ2V0VXNlck1lZGlhKCkgZXJyb3I6ICcgKyBlKTsKKyAgfSk7Cit9
CisKK2Z1bmN0aW9uIGNhbGwoKSB7CisgIGNhbGxCdXR0b24uZGlzYWJsZWQgPSB0cnVlOworICB0
cmFjZSgnU3RhcnRpbmcgY2FsbCcpOworICBzdGFydFRpbWUgPSB3aW5kb3cucGVyZm9ybWFuY2Uu
bm93KCk7CisgIHZhciB2aWRlb1RyYWNrcyA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKCk7
CisgIHZhciBhdWRpb1RyYWNrcyA9IGxvY2FsU3RyZWFtLmdldEF1ZGlvVHJhY2tzKCk7CisgIGlm
ICh2aWRlb1RyYWNrcy5sZW5ndGggPiAwKSB7CisgICAgdHJhY2UoJ1VzaW5nIHZpZGVvIGRldmlj
ZTogJyArIHZpZGVvVHJhY2tzWzBdLmxhYmVsKTsKKyAgfQorICBpZiAoYXVkaW9UcmFja3MubGVu
Z3RoID4gMCkgeworICAgIHRyYWNlKCdVc2luZyBhdWRpbyBkZXZpY2U6ICcgKyBhdWRpb1RyYWNr
c1swXS5sYWJlbCk7CisgIH0KKyAgdmFyIHNlcnZlcnMgPSBudWxsOworICBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oc2VydmVycyk7CisgIHRyYWNlKCdDcmVhdGVkIGxvY2FsIHBlZXIgY29u
bmVjdGlvbiBvYmplY3QgcGMxJyk7CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGZ1bmN0aW9uKGUp
IHsKKyAgICBvbkljZUNhbmRpZGF0ZShwYzEsIGUpOworICB9OworICBwYzIgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oc2VydmVycyk7CisgIHRyYWNlKCdDcmVhdGVkIHJlbW90ZSBwZWVyIGNvbm5l
Y3Rpb24gb2JqZWN0IHBjMicpOworICBwYzIub25pY2VjYW5kaWRhdGUgPSBmdW5jdGlvbihlKSB7
CisgICAgb25JY2VDYW5kaWRhdGUocGMyLCBlKTsKKyAgfTsKKyAgcGMxLm9uaWNlY29ubmVjdGlv
bnN0YXRlY2hhbmdlID0gZnVuY3Rpb24oZSkgeworICAgIG9uSWNlU3RhdGVDaGFuZ2UocGMxLCBl
KTsKKyAgfTsKKyAgcGMyLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gZnVuY3Rpb24oZSkg
eworICAgIG9uSWNlU3RhdGVDaGFuZ2UocGMyLCBlKTsKKyAgfTsKKyAgcGMyLm9udHJhY2sgPSBn
b3RSZW1vdGVUcmFjazsKKworICBzdGFydFVzaW5nRGlzY3JlZXRNb2RlKCk7CisgIHBjMS5hZGRU
cmFjayhjYW52YXNWaWRlb1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCBjYW52YXNWaWRlb1N0
cmVhbSk7CisgIHRyYWNlKCdBZGRlZCBsb2NhbCBzdHJlYW0gdG8gcGMxJyk7CisKKyAgdHJhY2Uo
J3BjMSBjcmVhdGVPZmZlciBzdGFydCcpOworICBwYzEuY3JlYXRlT2ZmZXIoCisgICAgb2ZmZXJP
cHRpb25zCisgICkudGhlbigKKyAgICBvbkNyZWF0ZU9mZmVyU3VjY2VzcywKKyAgICBvbkNyZWF0
ZVNlc3Npb25EZXNjcmlwdGlvbkVycm9yCisgICk7Cit9CisKK2Z1bmN0aW9uIG9uQ3JlYXRlU2Vz
c2lvbkRlc2NyaXB0aW9uRXJyb3IoZXJyb3IpIHsKKyAgdHJhY2UoJ0ZhaWxlZCB0byBjcmVhdGUg
c2Vzc2lvbiBkZXNjcmlwdGlvbjogJyArIGVycm9yLnRvU3RyaW5nKCkpOworfQorCitmdW5jdGlv
biBvbkNyZWF0ZU9mZmVyU3VjY2VzcyhkZXNjKSB7CisgIHRyYWNlKCdPZmZlciBmcm9tIHBjMVxu
JyArIGRlc2Muc2RwKTsKKyAgdHJhY2UoJ3BjMSBzZXRMb2NhbERlc2NyaXB0aW9uIHN0YXJ0Jyk7
CisgIHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGRlc2MpLnRoZW4oCisgICAgZnVuY3Rpb24oKSB7
CisgICAgICBvblNldExvY2FsU3VjY2VzcyhwYzEpOworICAgIH0sCisgICAgb25TZXRTZXNzaW9u
RGVzY3JpcHRpb25FcnJvcgorICApOworICB0cmFjZSgncGMyIHNldFJlbW90ZURlc2NyaXB0aW9u
IHN0YXJ0Jyk7CisgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihkZXNjKS50aGVuKAorICAgIGZ1
bmN0aW9uKCkgeworICAgICAgb25TZXRSZW1vdGVTdWNjZXNzKHBjMik7CisgICAgfSwKKyAgICBv
blNldFNlc3Npb25EZXNjcmlwdGlvbkVycm9yCisgICk7CisgIHRyYWNlKCdwYzIgY3JlYXRlQW5z
d2VyIHN0YXJ0Jyk7CisgIC8vIFNpbmNlIHRoZSAncmVtb3RlJyBzaWRlIGhhcyBubyBtZWRpYSBz
dHJlYW0gd2UgbmVlZAorICAvLyB0byBwYXNzIGluIHRoZSByaWdodCBjb25zdHJhaW50cyBpbiBv
cmRlciBmb3IgaXQgdG8KKyAgLy8gYWNjZXB0IHRoZSBpbmNvbWluZyBvZmZlciBvZiBhdWRpbyBh
bmQgdmlkZW8uCisgIHBjMi5jcmVhdGVBbnN3ZXIoKS50aGVuKAorICAgIG9uQ3JlYXRlQW5zd2Vy
U3VjY2VzcywKKyAgICBvbkNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbkVycm9yCisgICk7Cit9CisK
K2Z1bmN0aW9uIG9uU2V0TG9jYWxTdWNjZXNzKHBjKSB7CisgIHRyYWNlKGdldE5hbWUocGMpICsg
JyBzZXRMb2NhbERlc2NyaXB0aW9uIGNvbXBsZXRlJyk7Cit9CisKK2Z1bmN0aW9uIG9uU2V0UmVt
b3RlU3VjY2VzcyhwYykgeworICB0cmFjZShnZXROYW1lKHBjKSArICcgc2V0UmVtb3RlRGVzY3Jp
cHRpb24gY29tcGxldGUnKTsKK30KKworZnVuY3Rpb24gb25TZXRTZXNzaW9uRGVzY3JpcHRpb25F
cnJvcihlcnJvcikgeworICB0cmFjZSgnRmFpbGVkIHRvIHNldCBzZXNzaW9uIGRlc2NyaXB0aW9u
OiAnICsgZXJyb3IudG9TdHJpbmcoKSk7Cit9CisKK2Z1bmN0aW9uIGdvdFJlbW90ZVRyYWNrKGUp
IHsKKyAgcmVtb3RlVmlkZW8uc3JjT2JqZWN0ID0gZS5zdHJlYW1zWzBdOworICB0cmFjZSgncGMy
IHJlY2VpdmVkIHJlbW90ZSB0cmFjaycpOworfQorCitmdW5jdGlvbiBvbkNyZWF0ZUFuc3dlclN1
Y2Nlc3MoZGVzYykgeworICB0cmFjZSgnQW5zd2VyIGZyb20gcGMyOlxuJyArIGRlc2Muc2RwKTsK
KyAgdHJhY2UoJ3BjMiBzZXRMb2NhbERlc2NyaXB0aW9uIHN0YXJ0Jyk7CisgIHBjMi5zZXRMb2Nh
bERlc2NyaXB0aW9uKGRlc2MpLnRoZW4oCisgICAgZnVuY3Rpb24oKSB7CisgICAgICBvblNldExv
Y2FsU3VjY2VzcyhwYzIpOworICAgIH0sCisgICAgb25TZXRTZXNzaW9uRGVzY3JpcHRpb25FcnJv
cgorICApOworICB0cmFjZSgncGMxIHNldFJlbW90ZURlc2NyaXB0aW9uIHN0YXJ0Jyk7CisgIHBj
MS5zZXRSZW1vdGVEZXNjcmlwdGlvbihkZXNjKS50aGVuKAorICAgIGZ1bmN0aW9uKCkgeworICAg
ICAgb25TZXRSZW1vdGVTdWNjZXNzKHBjMSk7CisgICAgfSwKKyAgICBvblNldFNlc3Npb25EZXNj
cmlwdGlvbkVycm9yCisgICk7Cit9CisKK2Z1bmN0aW9uIG9uSWNlQ2FuZGlkYXRlKHBjLCBldmVu
dCkgeworICBnZXRPdGhlclBjKHBjKS5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKQor
ICAudGhlbigKKyAgICBmdW5jdGlvbigpIHsKKyAgICAgIG9uQWRkSWNlQ2FuZGlkYXRlU3VjY2Vz
cyhwYyk7CisgICAgfSwKKyAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgIG9uQWRkSWNlQ2FuZGlk
YXRlRXJyb3IocGMsIGVycik7CisgICAgfQorICApOworICB0cmFjZShnZXROYW1lKHBjKSArICcg
SUNFIGNhbmRpZGF0ZTogXG4nICsgKGV2ZW50LmNhbmRpZGF0ZSA/CisgICAgICBldmVudC5jYW5k
aWRhdGUuY2FuZGlkYXRlIDogJyhudWxsKScpKTsKK30KKworZnVuY3Rpb24gb25BZGRJY2VDYW5k
aWRhdGVTdWNjZXNzKHBjKSB7CisgIHRyYWNlKGdldE5hbWUocGMpICsgJyBhZGRJY2VDYW5kaWRh
dGUgc3VjY2VzcycpOworfQorCitmdW5jdGlvbiBvbkFkZEljZUNhbmRpZGF0ZUVycm9yKHBjLCBl
cnJvcikgeworICB0cmFjZShnZXROYW1lKHBjKSArICcgZmFpbGVkIHRvIGFkZCBJQ0UgQ2FuZGlk
YXRlOiAnICsgZXJyb3IudG9TdHJpbmcoKSk7Cit9CisKK2Z1bmN0aW9uIG9uSWNlU3RhdGVDaGFu
Z2UocGMsIGV2ZW50KSB7CisgIGlmIChwYykgeworICAgIHRyYWNlKGdldE5hbWUocGMpICsgJyBJ
Q0Ugc3RhdGU6ICcgKyBwYy5pY2VDb25uZWN0aW9uU3RhdGUpOworICAgIGNvbnNvbGUubG9nKCdJ
Q0Ugc3RhdGUgY2hhbmdlIGV2ZW50OiAnLCBldmVudCk7CisgIH0KK30KKwordmFyIGNhbnZhc1Zp
ZGVvU3RyZWFtOwordmFyIGRyYXdDYW52YXMgPSBmYWxzZTsKK3ZhciBoZXhhZ29uU2l6ZSA9IDMw
OworZnVuY3Rpb24gdmlkZW9Ub0NhbnZhcygpCit7CisgICAgdmFyIHRleHR1cmUgPSBjYW52YXMu
dGV4dHVyZShsb2NhbFZpZGVvKTsKKyAgICBjYW52YXMuZHJhdyh0ZXh0dXJlKS5oZXhhZ29uYWxQ
aXhlbGF0ZSgzMjAsIDIzOS41LCBoZXhhZ29uU2l6ZSkudXBkYXRlKCk7CisgICAgaWYgKGRyYXdD
YW52YXMpCisgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodmlkZW9Ub0NhbnZh
cyk7Cit9CisKK3ZhciBpc1VwZGF0aW5nSGV4YWdvblNpemUgPSBmYWxzZTsKK2Z1bmN0aW9uIHVw
ZGF0ZUhleGFnb25TaXplKCkKK3sKKyAgICBpZiAoIWlzVXBkYXRpbmdIZXhhZ29uU2l6ZSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmIChoZXhhZ29uU2l6ZSA8PSAxKSB7CisgICAgICAgIHN0b3BV
c2luZ0Rpc2NyZWV0TW9kZSgpOworICAgICAgICBpc1VwZGF0aW5nSGV4YWdvblNpemUgPSBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBoZXhhZ29uU2l6ZS0tOworICAgIHNldFRp
bWVvdXQodXBkYXRlSGV4YWdvblNpemUsIDMwMCk7Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VXNpbmdE
aXNjcmVldE1vZGUoKQoreworICAgIGhleGFnb25TaXplID0gMzA7CisgICAgaWYgKCFjYW52YXNW
aWRlb1N0cmVhbSkKKyAgICAgICAgY2FudmFzVmlkZW9TdHJlYW0gPSBjYW52YXMuY2FwdHVyZVN0
cmVhbSgpOworCisgICAgaWYgKCFkcmF3Q2FudmFzKSB7CisgICAgICAgIGRyYXdDYW52YXMgPSB0
cnVlOworICAgICAgICB2aWRlb1RvQ2FudmFzKCk7CisgICAgfQorCisgICAgaWYgKCFpc1VwZGF0
aW5nSGV4YWdvblNpemUpIHsKKyAgICAgICAgaXNVcGRhdGluZ0hleGFnb25TaXplID0gdHJ1ZTsK
KyAgICAgICAgdXBkYXRlSGV4YWdvblNpemUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0b3BV
c2luZ0Rpc2NyZWV0TW9kZSgpCit7CisgICAgZm9yKHZhciBzZW5kZXIgb2YgcGMxLmdldFNlbmRl
cnMoKSkgeworICAgICAgICBpZiAoc2VuZGVyLnRyYWNrLmtpbmQgPT09ICJ2aWRlbyIpIHsKKyAg
ICAgICAgICAgIHNlbmRlci5yZXBsYWNlVHJhY2sobG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3Mo
KVswXSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKKwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVm
ZmVjdHMvanMvdGVzdC5qcyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMv
cGMtd2l0aC1lZmZlY3RzL2pzL3Rlc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU2MTgzM2ZkODM2OGQ5NWM0
OGU5YTEyYWVmYTg3ZTFhZDhlNGMwZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtp
dC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2pzL3Rlc3QuanMKQEAgLTAs
MCArMSw1NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFdlYlJUQyBwcm9qZWN0
IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBi
ZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAq
ICB0cmVlLgorICovCisgLyogZXNsaW50LWVudiBub2RlICovCisKKyd1c2Ugc3RyaWN0JzsKKy8v
IFRoaXMgaXMgYSBiYXNpYyB0ZXN0IGZpbGUgZm9yIHVzZSB3aXRoIHRlc3RsaW5nLgorLy8gVGhl
IHRlc3Qgc2NyaXB0IGxhbmd1YWdlIGNvbWVzIGZyb20gdGFwZS4KK3ZhciB0ZXN0ID0gcmVxdWly
ZSgndGFwZScpOworCit2YXIgd2ViZHJpdmVyID0gcmVxdWlyZSgnc2VsZW5pdW0td2ViZHJpdmVy
Jyk7Cit2YXIgc2VsZW5pdW1IZWxwZXJzID0gcmVxdWlyZSgnd2VicnRjLXV0aWxpdGllcycpLnNl
bGVuaXVtTGliOworCit0ZXN0KCdQZWVyQ29ubmVjdGlvbiBwYzEgc2FtcGxlJywgZnVuY3Rpb24o
dCkgeworICB2YXIgZHJpdmVyID0gc2VsZW5pdW1IZWxwZXJzLmJ1aWxkRHJpdmVyKCk7CisKKyAg
ZHJpdmVyLmdldCgnZmlsZTovLycgKyBwcm9jZXNzLmN3ZCgpICsKKyAgICAgICcvc3JjL2NvbnRl
bnQvcGVlcmNvbm5lY3Rpb24vcGMxL2luZGV4Lmh0bWwnKQorICAudGhlbihmdW5jdGlvbigpIHsK
KyAgICB0LnBhc3MoJ3BhZ2UgbG9hZGVkJyk7CisgICAgcmV0dXJuIGRyaXZlci5maW5kRWxlbWVu
dCh3ZWJkcml2ZXIuQnkuaWQoJ3N0YXJ0QnV0dG9uJykpLmNsaWNrKCk7CisgIH0pCisgIC50aGVu
KGZ1bmN0aW9uKCkgeworICAgIHQucGFzcygnZ290IG1lZGlhJyk7CisgICAgcmV0dXJuIGRyaXZl
ci5maW5kRWxlbWVudCh3ZWJkcml2ZXIuQnkuaWQoJ2NhbGxCdXR0b24nKSkuY2xpY2soKTsKKyAg
fSkKKyAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIGRyaXZlci53YWl0KGZ1bmN0aW9u
KCkgeworICAgICAgcmV0dXJuIGRyaXZlci5leGVjdXRlU2NyaXB0KAorICAgICAgICAgICdyZXR1
cm4gcGMyICYmIHBjMi5pY2VDb25uZWN0aW9uU3RhdGUgPT09IFwnY29ubmVjdGVkXCc7Jyk7Cisg
ICAgfSwgMzAgKiAxMDAwKTsKKyAgfSkKKyAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgdC5wYXNz
KCdwYzIgSUNFIGNvbm5lY3RlZCcpOworICAgIHJldHVybiBkcml2ZXIuZmluZEVsZW1lbnQod2Vi
ZHJpdmVyLkJ5LmlkKCdoYW5ndXBCdXR0b24nKSkuY2xpY2soKTsKKyAgfSkKKyAgLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgcmV0dXJuIGRyaXZlci53YWl0KGZ1bmN0aW9uKCkgeworICAgICAgcmV0
dXJuIGRyaXZlci5leGVjdXRlU2NyaXB0KCdyZXR1cm4gcGMxID09PSBudWxsJyk7CisgICAgfSwg
MzAgKiAxMDAwKTsKKyAgfSkKKyAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgdC5wYXNzKCdoYW5n
dXAnKTsKKyAgICB0LmVuZCgpOworICB9KQorICAudGhlbihudWxsLCBmdW5jdGlvbihlcnIpIHsK
KyAgICB0LmZhaWwoZXJyKTsKKyAgICB0LmVuZCgpOworICB9KTsKK30pOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvbWFp
bi5jc3MgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZm
ZWN0cy9tYWluLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWRiNzdiYzA5MDg5Nzk0ZWE1MGI1NTJmMzg3ZDM4
ZTA1NTFiMGIyCi0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZp
bGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvbWFpbi5jc3MKQEAgLTAsMCArMSwyNTggQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4KKyAqLwor
LmhpZGRlbiB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CisKKy5oaWdobGlnaHQgeworICBiYWNrZ3Jv
dW5kLWNvbG9yOiAjZWVlOworICBmb250LXNpemU6IDEuMmVtOworICBtYXJnaW46IDAgMCAzMHB4
IDA7CisgIHBhZGRpbmc6IDAuMmVtIDEuNWVtOworfQorLndhcm5pbmcgeworICBjb2xvcjogcmVk
OworICBmb250LXdlaWdodDogNDAwOworfQorCitkaXYjZXJyb3JNc2cgcCB7CisgIGNvbG9yOiAj
RjAwOworfQorCitib2R5IHsKKyAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOwor
ICBmb250LXdlaWdodDogMzAwOworfQorCithIHsKK2NvbG9yOiAjNmZhOGRjOworZm9udC13ZWln
aHQ6IDMwMDsKK3RleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKworYTpob3ZlciB7Citjb2xvcjog
IzNkODVjNjsKK3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOworfQorCithI3ZpZXdTb3VyY2Ug
eworZGlzcGxheTogYmxvY2s7CittYXJnaW46IDEuM2VtIDAgMCAwOworYm9yZGVyLXRvcDogMXB4
IHNvbGlkICM5OTk7CitwYWRkaW5nOiAxZW0gMCAwIDA7Cit9CisKK2RpdiNsaW5rcyBhIHsKK2Rp
c3BsYXk6IGJsb2NrOworbGluZS1oZWlnaHQ6IDEuM2VtOworbWFyZ2luOiAwIDAgMS41ZW0gMDsK
K30KKworZGl2Lm91dHB1dFNlbGVjdG9yIHsKK21hcmdpbjogLTEuM2VtIDAgMmVtIDA7Cit9CisK
K0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMDBweCkgeworLyogaGFjayEgdG8gZGV0
ZWN0IG5vbi10b3VjaCBkZXZpY2VzICovCisgIGRpdiNsaW5rcyBhIHsKKyAgICBsaW5lLWhlaWdo
dDogMC44ZW07CisgIH0KK30KKworaDEgYSB7Citmb250LXdlaWdodDogMzAwOworbWFyZ2luOiAw
IDEwcHggMCAwOword2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworYXVkaW8geworbWF4LXdpZHRo
OiAxMDAlOworfQorCitib2R5IHsKK2ZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjsK
K21hcmdpbjogMDsKK3BhZGRpbmc6IDFlbTsKK3dvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7Cit9CisK
K2J1dHRvbiB7CitiYWNrZ3JvdW5kLWNvbG9yOiAjZDg0YTM4OworYm9yZGVyOiBub25lOworYm9y
ZGVyLXJhZGl1czogMnB4OworY29sb3I6IHdoaXRlOworZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBz
YW5zLXNlcmlmOworZm9udC1zaXplOiAwLjhlbTsKK21hcmdpbjogMCAwIDFlbSAwOworcGFkZGlu
ZzogMC41ZW0gMC43ZW0gMC42ZW0gMC43ZW07Cit9CisKK2J1dHRvbjphY3RpdmUgeworYmFja2dy
b3VuZC1jb2xvcjogI2NmNDAyZjsKK30KKworYnV0dG9uOmhvdmVyIHsKK2JhY2tncm91bmQtY29s
b3I6ICNjZjQwMmY7Cit9CisKK2J1dHRvbltkaXNhYmxlZF0geworY29sb3I6ICNjY2M7Cit9CisK
K2J1dHRvbltkaXNhYmxlZF06aG92ZXIgeworYmFja2dyb3VuZC1jb2xvcjogI2Q4NGEzODsKK30K
KworY2FudmFzIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKKyAgbWF4LXdpZHRoOiAxMDAl
OworICB3aWR0aDogMTAwJTsKK30KKworY29kZSB7Citmb250LWZhbWlseTogJ1JvYm90bycsIHNh
bnMtc2VyaWY7Citmb250LXdlaWdodDogNDAwOworfQorCitkaXYjY29udGFpbmVyIHsKK21hcmdp
bjogMCBhdXRvIDAgYXV0bzsKK21heC13aWR0aDogNDBlbTsKK3BhZGRpbmc6IDFlbSAxLjVlbSAx
LjNlbSAxLjVlbTsKK30KKworZGl2I2xpbmtzIHsKK3BhZGRpbmc6IDAuNWVtIDAgMCAwOworfQor
CitoMSB7Citib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsKK2ZvbnQtZmFtaWx5OiAnUm9i
b3RvJywgc2Fucy1zZXJpZjsKK2ZvbnQtd2VpZ2h0OiA1MDA7CittYXJnaW46IDAgMCAwLjhlbSAw
OworcGFkZGluZzogMCAwIDAuMmVtIDA7Cit9CisKK2gyIHsKK2NvbG9yOiAjNDQ0OworZm9udC1z
aXplOiAxZW07Citmb250LXdlaWdodDogNTAwOworbGluZS1oZWlnaHQ6IDEuMmVtOworbWFyZ2lu
OiAwIDAgMC44ZW0gMDsKK30KKworaDMgeworYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7Citj
b2xvcjogIzY2NjsKK2ZvbnQtd2VpZ2h0OiA1MDA7CittYXJnaW46IDIwcHggMCAxMHB4IDA7Citw
YWRkaW5nOiAxMHB4IDAgMCAwOword2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworaHRtbCB7Cisv
KiBhdm9pZCBhbm5veWluZyBwYWdlIHdpZHRoIGNoYW5nZQord2hlbiBtb3ZpbmcgZnJvbSB0aGUg
aG9tZSBwYWdlICovCitvdmVyZmxvdy15OiBzY3JvbGw7Cit9CisKK2ltZyB7Citib3JkZXI6IG5v
bmU7CittYXgtd2lkdGg6IDEwMCU7Cit9CisKK2lucHV0W3R5cGU9cmFkaW9dIHsKK3Bvc2l0aW9u
OiByZWxhdGl2ZTsKK3RvcDogLTFweDsKK30KKworcCB7Citjb2xvcjogIzQ0NDsKK2ZvbnQtd2Vp
Z2h0OiAzMDA7CitsaW5lLWhlaWdodDogMS42ZW07Cit9CisKK3AjZGF0YSB7Citib3JkZXItdG9w
OiAxcHggZG90dGVkICM2NjY7Citmb250LWZhbWlseTogQ291cmllciBOZXcsIG1vbm9zcGFjZTsK
K2xpbmUtaGVpZ2h0OiAxLjNlbTsKK21heC1oZWlnaHQ6IDEwMDBweDsKK292ZXJmbG93LXk6IGF1
dG87CitwYWRkaW5nOiAxZW0gMCAwIDA7Cit9CisKK3AuYm9yZGVyQmVsb3cgeworYm9yZGVyLWJv
dHRvbTogMXB4IHNvbGlkICNhYWE7CitwYWRkaW5nOiAwIDAgMjBweCAwOworfQorCitzZWN0aW9u
IHA6bGFzdC1vZi10eXBlIHsKK21hcmdpbjogMDsKK30KKworc2VjdGlvbiB7CisgIGJvcmRlci1i
b3R0b206IDFweCBzb2xpZCAjZWVlOworICBtYXJnaW46IDAgMCAzMHB4IDA7CisgIHBhZGRpbmc6
IDAgMCAyMHB4IDA7Cit9CisKK3NlY3Rpb246bGFzdC1vZi10eXBlIHsKKyAgYm9yZGVyLWJvdHRv
bTogbm9uZTsKKyAgcGFkZGluZzogMCAwIDFlbSAwOworfQorCitzZWxlY3QgeworICBtYXJnaW46
IDAgMWVtIDFlbSAwOworICBwb3NpdGlvbjogcmVsYXRpdmU7CisgIHRvcDogLTFweDsKK30KKwor
aDEgc3BhbiB7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisKK3N0cm9uZyB7CisgIGZvbnQt
d2VpZ2h0OiA1MDA7Cit9CisKK3RleHRhcmVhIHsKKyAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBz
YW5zLXNlcmlmOworfQorCit2aWRlbyB7CisgIGJhY2tncm91bmQ6ICMyMjI7CisgIG1hcmdpbjog
MCAwIDIwcHggMDsKKyAgd2lkdGg6IDEwMCU7Cit9CisKK0BtZWRpYSBzY3JlZW4gYW5kIChtYXgt
d2lkdGg6IDY1MHB4KSB7CisgIC5oaWdobGlnaHQgeworICAgIGZvbnQtc2l6ZTogMWVtOworICAg
IG1hcmdpbjogMCAwIDIwcHggMDsKKyAgICBwYWRkaW5nOiAwLjJlbSAxZW07CisgIH0KKyAgaDEg
eworICAgIGZvbnQtc2l6ZTogMjRweDsKKyAgfQorfQorCitAbWVkaWEgc2NyZWVuIGFuZCAobWF4
LXdpZHRoOiA1NTBweCkgeworICBidXR0b246YWN0aXZlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBkYXJrUmVkOworICB9CisgIGgxIHsKKyAgICBmb250LXNpemU6IDIycHg7CisgIH0KK30KKwor
QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDUwcHgpIHsKKyAgaDEgeworICAgIGZvbnQt
c2l6ZTogMjBweDsKKyAgfQorfQorCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314308</attachid>
            <date>2017-06-30 16:08:49 -0700</date>
            <delta_ts>2017-06-30 17:26:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174049-20170630160848.patch</filename>
            <type>text/plain</type>
            <size>49841</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4OTc5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IGRlMDU2
MmU3ZTM1MjIwZTcxYWFmMmFlMjM2YmY3YmE4ODI1YzdlZWQuLmU4MjYzNjVkMTBkOGVhMDk2Nzk3
M2QyY2E1ZmY0MTcxMTExMTE5ODAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hh
bmdlTG9nCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTctMDYtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhIFdlYlJUQyBleGFtcGxlIGZvciBhIGJsb2cgcG9zdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDQ5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhhbXBsZSBkb2VzIGEgdHlwaWNhbCBX
ZWJSVEMgdmlkZW8gY2FsbCwgYnV0IHVzZXMgY2FudmFzIHRvIGRvIHNvbWUgaW1hZ2UgZWZmZWN0
cy4KKyAgICAgICAgSW1hZ2UgZWZmZWN0cyB3aWxsIGxhc3QgZm9yIDMwIHNlY29uZHMuCisgICAg
ICAgIEFmdGVyIHRoYXQgdGltZSwgdGhlIHZpZGVvIHN0cmVhbSBpcyBkaXJlY3RseSBzZW50Lgor
ICAgICAgICBUaGlzIGlsbHVzdHJhdGVzIHVzaW5nIFJUQ1BlZXJDb25uZWN0aW9uLCByZXBsYWNl
VHJhY2sgYW5kIGNhbnZhcyBjYXB0dXJlLgorCisgICAgICAgICogYmxvZy1maWxlcy93ZWJydGMv
cGMtd2l0aC1lZmZlY3RzL0xJQ0VOU0UubWQ6IEFkZGVkLgorICAgICAgICAqIGJsb2ctZmlsZXMv
d2VicnRjL3BjLXdpdGgtZWZmZWN0cy9jb21tb24uanM6IEFkZGVkLgorICAgICAgICAqIGJsb2ct
ZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9jc3MvbWFpbi5jc3M6IEFkZGVkLgorICAgICAg
ICAqIGJsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9pbmRleC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvanMvZ2xmeC5qczog
QWRkZWQuCisgICAgICAgICogYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2pzL21h
aW4uanM6IEFkZGVkLgorICAgICAgICAqIGJsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0
cy9qcy90ZXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRo
LWVmZmVjdHMvbWFpbi5jc3M6IEFkZGVkLgorCiAyMDE3LTA2LTI4ICBTYWFtIEJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIE9iamVjdCByZXN0L3NwcmVhZCB0ZXN0
IHRvIHRoZSBleHBlcmltZW50YWwgZmVhdHVyZXMgdGVzdCBwYWdlCmRpZmYgLS1naXQgYS9XZWJz
aXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9MSUNFTlNF
Lm1kIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVj
dHMvTElDRU5TRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzY4Y2ZiODFiZWJiNTA3NTY1OTA5YjQyYjg3OWZh
NTNkNzY2MzEzCi0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZp
bGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvTElDRU5TRS5tZApAQCAtMCwwICsxLDI5IEBACitD
b3B5cmlnaHQgKGMpIDIwMTQsIFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKK21ldDoKKworICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorCisgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKyAgICB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgICAgZGlzdHJp
YnV0aW9uLgorCisgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgbm9yIHRoZSBuYW1lcyBv
ZiBpdHMgY29udHJpYnV0b3JzIG1heQorICAgIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgICAgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCitMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKK0EgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCitIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCitTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKK0RBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRo
LWVmZmVjdHMvY29tbW9uLmpzIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0
Yy9wYy13aXRoLWVmZmVjdHMvY29tbW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMDMzYmYzZWUwMDljN2Ey
NWQ1NDhmZDk3MTgyODdiZTJlNmU3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy93ZWJr
aXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9jb21tb24uanMKQEAgLTAs
MCArMSw3IEBACisgLyogZXhwb3J0ZWQgdHJhY2UgKi8KKworLy8gTG9nZ2luZyB1dGlsaXR5IGZ1
bmN0aW9uLgorZnVuY3Rpb24gdHJhY2UoYXJnKSB7CisgIHZhciBub3cgPSAod2luZG93LnBlcmZv
cm1hbmNlLm5vdygpIC8gMTAwMCkudG9GaXhlZCgzKTsKKyAgY29uc29sZS5sb2cobm93ICsgJzog
JywgYXJnKTsKK30KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93
ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2Nzcy9tYWluLmNzcyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcv
YmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2Nzcy9tYWluLmNzcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZjdhMjgxNmRhYjQyMTI5MzA1ZjNjNjM1MGNjYTNjYjFjN2JmNjBiCi0tLSAvZGV2L251bGwK
KysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVj
dHMvY3NzL21haW4uY3NzCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAy
MDE1IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4KKyAqLworYnV0dG9uIHsKKyAgbWFyZ2luOiAw
IDIwcHggMCAwOworICB3aWR0aDogODNweDsKK30KKworYnV0dG9uI2hhbmd1cEJ1dHRvbiB7Cisg
ICAgbWFyZ2luOiAwOworfQorCit2aWRlbyB7CisgIHdpZHRoOiA2NDBweDsKKyAgbWFyZ2luOiAw
IDAgMjBweCAwOworICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworfQorCit2aWRlbyNsb2NhbFZpZGVv
IHsKKyAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7CisgIG1hcmdpbjogMCAyMHB4IDIwcHgg
MDsKK30KKworQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAwcHgpIHsKKyAgYnV0dG9u
IHsKKyAgICB3aWR0aDogODNweDsKKyAgfQorCisgIGJ1dHRvbiB7CisgICAgbWFyZ2luOiAwIDEx
cHggMTBweCAwOworICB9CisKKworICB2aWRlbyB7CisgICAgd2lkdGg6IDMyMHB4OworICAgIG1h
cmdpbjogMCAwIDEwcHggMDsKKyAgfQorICB2aWRlbyNsb2NhbFZpZGVvIHsKKyAgICBtYXJnaW46
IDAgMTBweCAyMHB4IDA7CisgIH0KKworfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9y
Zy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvaW5kZXguaHRtbCBiL1dlYnNpdGVz
L3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2luZGV4Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTU5Yjc4OTZmZDEyODYzNTBiOTI5M2IyNDQ0MTE3NDY3Y2Y5MzdmMwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMt
d2l0aC1lZmZlY3RzL2luZGV4Lmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8IS0tCisgKiAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3Jz
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4K
Ky0tPgorPCEtLSBMSUNFTlNFIGZpbGUgaXMgYXZhaWxhYmxlIGF0IDxhIGhyZWY9IkxJQ0VOU0Uu
bWQiPiwgbmV4dCB0byB0aGlzIGluZGV4Lmh0bWwgZmlsZS0tPgorPGh0bWw+Cis8aGVhZD4KKwor
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250
ZW50PSJXZWJSVEMgY29kZSBzYW1wbGVzIj4KKyAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCwgdXNlci1zY2FsYWJsZT15ZXMsIGluaXRpYWwtc2NhbGU9
MSwgbWF4aW11bS1zY2FsZT0xIj4KKyAgPG1ldGEgaXRlbXByb3A9ImRlc2NyaXB0aW9uIiBjb250
ZW50PSJDbGllbnQtc2lkZSBXZWJSVEMgY29kZSBzYW1wbGVzIj4KKyAgPG1ldGEgaXRlbXByb3A9
Im5hbWUiIGNvbnRlbnQ9IldlYlJUQyBjb2RlIHNhbXBsZXMiPgorICA8bWV0YSBuYW1lPSJtb2Jp
bGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPgorICA8bWV0YSBpZD0idGhlbWUtY29s
b3IiIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KKworICA8YmFzZSB0YXJn
ZXQ9Il9ibGFuayI+CisKKyAgPHRpdGxlPkEgemVzdCBvZiBjYW52YXMgY2FwdHVyZSBhbmQgcmVw
bGFjZVRyYWNrPC90aXRsZT4KKworICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFw
aXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCIgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyI+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWFpbi5j
c3MiIC8+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL21haW4uY3NzIiAvPgor
Cis8L2hlYWQ+CisKKzxib2R5PgorCisgIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisKKyAgICA8aDI+
V2ViS2l0IHRlc3QgaW5zcGlyZWQgZnJvbSB3ZWxsLWtub3duIDxhIGhyZWY9Ii8vd2VicnRjLmdp
dGh1Yi5pby9zYW1wbGVzLyIgdGl0bGU9IldlYlJUQyBzYW1wbGVzIGhvbWVwYWdlIj5XZWJSVEMg
c2FtcGxlczwvYT48L2gyPgorCisgICAgPHZpZGVvIGlkPSJsb2NhbFZpZGVvIiBhdXRvcGxheSBt
dXRlZCBwbGF5c0lubGluZT48L3ZpZGVvPgorICAgIDxicj4KKyAgICA8dmlkZW8gaWQ9InJlbW90
ZVZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZT48L3ZpZGVvPgorCisgICAgPGRpdj4KKyAgICAg
IDxidXR0b24gaWQ9InN0YXJ0QnV0dG9uIj5TdGFydDwvYnV0dG9uPgorICAgICAgPGJ1dHRvbiBp
ZD0iY2FsbEJ1dHRvbiI+Q2FsbDwvYnV0dG9uPgorICAgIDwvZGl2PgorCisgICAgPHA+VGhpcyBw
YWdlIGlsbHVzdHJhdGVzIHVzZSBvZiB0aGUgY2FudmFzIGNhcHR1cmUgYW5kIHJlcGxhY2VUcmFj
ay4KKyAgICBUbyBhZGQgc3BpY2UgdG8gdGhpcyB0eXBpY2FsIFdlYlJUQyB2aWRlbyBleGNoYW5n
ZSwgdGhlIGNhbWVyYSB2aWRlbyB0cmFjayAoZGlzcGxheWVkIGluIHRoZSBmaXJzdCB2aWRlbyBl
bGVtZW50KSBpcyBzZW50IHRvIGEgY2FudmFzLgorICAgIFNvbWUgcHJvY2Vzc2luZyBpcyBkb25l
IHRvIHBpeGVsbGF0ZSBpdCBpbiB0aGUgY2FudmFzLgorICAgIFRoZSBjYW52YXMgc3RyZWFtIGlz
IGNhcHR1cmVkIGFuZCBzZW50IHRvIHRoZSBzZWNvbmQgdmlkZW8gZWxlbWVudCB0aHJvdWdoIFdl
YlJUQy4KKyAgICBUaGUgcGl4ZWxsYXRpb24gd2lsbCBzbG93bHkgZGVjcmVhc2UgdXAgdG8gbm8g
cGl4ZWxsYXRpb24gYXQgYWxsLgorICAgIE9uY2UgdGhlcmUgaXMgbm8gbW9yZSBwaXhlbGxhdGlv
biwgdGhlIGNhbnZhcyBjYXB0dXJlIHRyYWNrIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGNhbWVy
YSB2aWRlbyB0cmFjayB0byBvcHRpbWl6ZSB0aGUgcGVyZm9ybWFjZXMuCisgICAgPC9wPgorCisg
IDwvZGl2PgorCisgIDxzY3JpcHQgc3JjPSJodHRwczovL3dlYnJ0Yy5naXRodWIuaW8vYWRhcHRl
ci9hZGFwdGVyLWxhdGVzdC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSJqcy9nbGZ4Lmpz
Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9ImNvbW1vbi5qcyI+PC9zY3JpcHQ+CisgIDxzY3Jp
cHQgc3JjPSJqcy9tYWluLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3Rz
L2pzL2dsZnguanMgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdp
dGgtZWZmZWN0cy9qcy9nbGZ4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4ZjI5YmE3ZWYwNmY4N2EyMDc5NzYy
MDg2MjUwNGY3MzVmYjVjYzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy93ZWJraXQub3Jn
L2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9qcy9nbGZ4LmpzCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBnbGZ4LmpzCisgKiBodHRwOi8vZXZhbncuZ2l0aHViLmNvbS9nbGZ4Lmpz
LworICoKKyAqIENvcHlyaWdodCAyMDExIEV2YW4gV2FsbGFjZQorICogUmVsZWFzZWQgdW5kZXIg
dGhlIE1JVCBsaWNlbnNlCisgKi8KK3ZhciBmeD1mdW5jdGlvbigpe2Z1bmN0aW9uIHEoYSxkLGMp
e3JldHVybiBNYXRoLm1heChhLE1hdGgubWluKGQsYykpfWZ1bmN0aW9uIHcoYil7cmV0dXJue186
Yixsb2FkQ29udGVudHNPZjpmdW5jdGlvbihiKXthPXRoaXMuXy5nbDt0aGlzLl8ubG9hZENvbnRl
bnRzT2YoYil9LGRlc3Ryb3k6ZnVuY3Rpb24oKXthPXRoaXMuXy5nbDt0aGlzLl8uZGVzdHJveSgp
fX19ZnVuY3Rpb24gQShhKXtyZXR1cm4gdyhyLmZyb21FbGVtZW50KGEpKX1mdW5jdGlvbiBCKGIs
ZCl7dmFyIGM9YS5VTlNJR05FRF9CWVRFO2lmKGEuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9m
bG9hdCIpJiZhLmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpe3ZhciBl
PW5ldyByKDEwMCwxMDAsYS5SR0JBLGEuRkxPQVQpO3RyeXtlLmRyYXdUbyhmdW5jdGlvbigpe2M9
YS5GTE9BVH0pfWNhdGNoKGcpe31lLmRlc3Ryb3koKX10aGlzLl8udGV4dHVyZSYmdGhpcy5fLnRl
eHR1cmUuZGVzdHJveSgpOwordGhpcy5fLnNwYXJlVGV4dHVyZSYmdGhpcy5fLnNwYXJlVGV4dHVy
ZS5kZXN0cm95KCk7dGhpcy53aWR0aD1iO3RoaXMuaGVpZ2h0PWQ7dGhpcy5fLnRleHR1cmU9bmV3
IHIoYixkLGEuUkdCQSxjKTt0aGlzLl8uc3BhcmVUZXh0dXJlPW5ldyByKGIsZCxhLlJHQkEsYyk7
dGhpcy5fLmV4dHJhVGV4dHVyZT10aGlzLl8uZXh0cmFUZXh0dXJlfHxuZXcgcigwLDAsYS5SR0JB
LGMpO3RoaXMuXy5mbGlwcGVkU2hhZGVyPXRoaXMuXy5mbGlwcGVkU2hhZGVyfHxuZXcgaChudWxs
LCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1h
aW4oKXtnbF9GcmFnQ29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdmVjMih0ZXhDb29yZC54LDEuMC10
ZXhDb29yZC55KSk7fSIpO3RoaXMuXy5pc0luaXRpYWxpemVkPSEwfWZ1bmN0aW9uIEMoYSxkLGMp
e3RoaXMuXy5pc0luaXRpYWxpemVkJiYKK2EuXy53aWR0aD09dGhpcy53aWR0aCYmYS5fLmhlaWdo
dD09dGhpcy5oZWlnaHR8fEIuY2FsbCh0aGlzLGQ/ZDphLl8ud2lkdGgsYz9jOmEuXy5oZWlnaHQp
O2EuXy51c2UoKTt0aGlzLl8udGV4dHVyZS5kcmF3VG8oZnVuY3Rpb24oKXtoLmdldERlZmF1bHRT
aGFkZXIoKS5kcmF3UmVjdCgpfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gRCgpe3RoaXMuXy50ZXh0
dXJlLnVzZSgpO3RoaXMuXy5mbGlwcGVkU2hhZGVyLmRyYXdSZWN0KCk7cmV0dXJuIHRoaXN9ZnVu
Y3Rpb24gZihhLGQsYyxlKXsoY3x8dGhpcy5fLnRleHR1cmUpLnVzZSgpO3RoaXMuXy5zcGFyZVRl
eHR1cmUuZHJhd1RvKGZ1bmN0aW9uKCl7YS51bmlmb3JtcyhkKS5kcmF3UmVjdCgpfSk7dGhpcy5f
LnNwYXJlVGV4dHVyZS5zd2FwV2l0aChlfHx0aGlzLl8udGV4dHVyZSl9ZnVuY3Rpb24gRShhKXth
LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsYSk7YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGEpO3JldHVybiB0aGlzfQorZnVuY3Rpb24gRigpe3ZhciBiPW5ldyByKHRoaXMuXy50ZXh0dXJl
LndpZHRoLHRoaXMuXy50ZXh0dXJlLmhlaWdodCxhLlJHQkEsYS5VTlNJR05FRF9CWVRFKTt0aGlz
Ll8udGV4dHVyZS51c2UoKTtiLmRyYXdUbyhmdW5jdGlvbigpe2guZ2V0RGVmYXVsdFNoYWRlcigp
LmRyYXdSZWN0KCl9KTtyZXR1cm4gdyhiKX1mdW5jdGlvbiBHKCl7dmFyIGI9dGhpcy5fLnRleHR1
cmUud2lkdGgsZD10aGlzLl8udGV4dHVyZS5oZWlnaHQsYz1uZXcgVWludDhBcnJheSg0KmIqZCk7
dGhpcy5fLnRleHR1cmUuZHJhd1RvKGZ1bmN0aW9uKCl7YS5yZWFkUGl4ZWxzKDAsMCxiLGQsYS5S
R0JBLGEuVU5TSUdORURfQllURSxjKX0pO3JldHVybiBjfWZ1bmN0aW9uIGsoYil7cmV0dXJuIGZ1
bmN0aW9uKCl7YT10aGlzLl8uZ2w7cmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5j
dGlvbiB4KGEsZCxjLGUsZyxsLG4scCl7dmFyIG09Yy1nLGg9ZS1sLGY9bi1nLGs9cC1sO2c9YS1j
K2ctbjtsPQorZC1lK2wtcDt2YXIgcT1tKmstZipoLGY9KGcqay1mKmwpL3EsbT0obSpsLWcqaCkv
cTtyZXR1cm5bYy1hK2YqYyxlLWQrZiplLGYsbi1hK20qbixwLWQrbSpwLG0sYSxkLDFdfWZ1bmN0
aW9uIHkoYSl7dmFyIGQ9YVswXSxjPWFbMV0sZT1hWzJdLGc9YVszXSxsPWFbNF0sbj1hWzVdLHA9
YVs2XSxtPWFbN107YT1hWzhdO3ZhciBmPWQqbCphLWQqbiptLWMqZyphK2MqbipwK2UqZyptLWUq
bCpwO3JldHVyblsobCphLW4qbSkvZiwoZSptLWMqYSkvZiwoYypuLWUqbCkvZiwobipwLWcqYSkv
ZiwoZCphLWUqcCkvZiwoZSpnLWQqbikvZiwoZyptLWwqcCkvZiwoYypwLWQqbSkvZiwoZCpsLWMq
ZykvZl19ZnVuY3Rpb24geihhKXt2YXIgZD1hLmxlbmd0aDt0aGlzLnhhPVtdO3RoaXMueWE9W107
dGhpcy51PVtdO3RoaXMueTI9W107YS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbMF0tYlsw
XX0pO2Zvcih2YXIgYz0wO2M8ZDtjKyspdGhpcy54YS5wdXNoKGFbY11bMF0pLHRoaXMueWEucHVz
aChhW2NdWzFdKTsKK3RoaXMudVswXT0wO3RoaXMueTJbMF09MDtmb3IoYz0xO2M8ZC0xOysrYyl7
YT10aGlzLnhhW2MrMV0tdGhpcy54YVtjLTFdO3ZhciBlPSh0aGlzLnhhW2NdLXRoaXMueGFbYy0x
XSkvYSxnPWUqdGhpcy55MltjLTFdKzI7dGhpcy55MltjXT0oZS0xKS9nO3RoaXMudVtjXT0oNioo
KHRoaXMueWFbYysxXS10aGlzLnlhW2NdKS8odGhpcy54YVtjKzFdLXRoaXMueGFbY10pLSh0aGlz
LnlhW2NdLXRoaXMueWFbYy0xXSkvKHRoaXMueGFbY10tdGhpcy54YVtjLTFdKSkvYS1lKnRoaXMu
dVtjLTFdKS9nfXRoaXMueTJbZC0xXT0wO2ZvcihjPWQtMjswPD1jOy0tYyl0aGlzLnkyW2NdPXRo
aXMueTJbY10qdGhpcy55MltjKzFdK3RoaXMudVtjXX1mdW5jdGlvbiB1KGEsZCl7cmV0dXJuIG5l
dyBoKG51bGwsYSsidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIHZlYzIgdGV4U2l6
ZTt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjMiBjb29yZD10ZXhDb29yZCp0
ZXhTaXplOyIrCitkKyJnbF9GcmFnQ29sb3I9dGV4dHVyZTJEKHRleHR1cmUsY29vcmQvdGV4U2l6
ZSk7dmVjMiBjbGFtcGVkQ29vcmQ9Y2xhbXAoY29vcmQsdmVjMigwLjApLHRleFNpemUpO2lmKGNv
b3JkIT1jbGFtcGVkQ29vcmQpe2dsX0ZyYWdDb2xvci5hKj1tYXgoMC4wLDEuMC1sZW5ndGgoY29v
cmQtY2xhbXBlZENvb3JkKSk7fX0iKX1mdW5jdGlvbiBIKGIsZCl7YS5icmlnaHRuZXNzQ29udHJh
c3Q9YS5icmlnaHRuZXNzQ29udHJhc3R8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRl
eHR1cmU7dW5pZm9ybSBmbG9hdCBicmlnaHRuZXNzO3VuaWZvcm0gZmxvYXQgY29udHJhc3Q7dmFy
eWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1
cmUsdGV4Q29vcmQpO2NvbG9yLnJnYis9YnJpZ2h0bmVzcztpZihjb250cmFzdD4wLjApe2NvbG9y
LnJnYj0oY29sb3IucmdiLTAuNSkvKDEuMC1jb250cmFzdCkrMC41O31lbHNle2NvbG9yLnJnYj0o
Y29sb3IucmdiLTAuNSkqKDEuMCtjb250cmFzdCkrMC41O31nbF9GcmFnQ29sb3I9Y29sb3I7fSIp
OworZi5jYWxsKHRoaXMsYS5icmlnaHRuZXNzQ29udHJhc3Qse2JyaWdodG5lc3M6cSgtMSxiLDEp
LGNvbnRyYXN0OnEoLTEsZCwxKX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIHQoYSl7YT1uZXcgeihh
KTtmb3IodmFyIGQ9W10sYz0wOzI1Nj5jO2MrKylkLnB1c2gocSgwLE1hdGguZmxvb3IoMjU2KmEu
aW50ZXJwb2xhdGUoYy8yNTUpKSwyNTUpKTtyZXR1cm4gZH1mdW5jdGlvbiBJKGIsZCxjKXtiPXQo
Yik7MT09YXJndW1lbnRzLmxlbmd0aD9kPWM9YjooZD10KGQpLGM9dChjKSk7Zm9yKHZhciBlPVtd
LGc9MDsyNTY+ZztnKyspZS5zcGxpY2UoZS5sZW5ndGgsMCxiW2ddLGRbZ10sY1tnXSwyNTUpO3Ro
aXMuXy5leHRyYVRleHR1cmUuaW5pdEZyb21CeXRlcygyNTYsMSxlKTt0aGlzLl8uZXh0cmFUZXh0
dXJlLnVzZSgxKTthLmN1cnZlcz1hLmN1cnZlc3x8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVy
MkQgdGV4dHVyZTt1bmlmb3JtIHNhbXBsZXIyRCBtYXA7dmFyeWluZyB2ZWMyIHRleENvb3JkO3Zv
aWQgbWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQpO2NvbG9yLnI9
dGV4dHVyZTJEKG1hcCx2ZWMyKGNvbG9yLnIpKS5yO2NvbG9yLmc9dGV4dHVyZTJEKG1hcCx2ZWMy
KGNvbG9yLmcpKS5nO2NvbG9yLmI9dGV4dHVyZTJEKG1hcCx2ZWMyKGNvbG9yLmIpKS5iO2dsX0Zy
YWdDb2xvcj1jb2xvcjt9Iik7CithLmN1cnZlcy50ZXh0dXJlcyh7bWFwOjF9KTtmLmNhbGwodGhp
cyxhLmN1cnZlcyx7fSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gSihiKXthLmRlbm9pc2U9YS5kZW5v
aXNlfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gZmxvYXQg
ZXhwb25lbnQ7dW5pZm9ybSBmbG9hdCBzdHJlbmd0aDt1bmlmb3JtIHZlYzIgdGV4U2l6ZTt2YXJ5
aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBjZW50ZXI9dGV4dHVyZTJEKHRleHR1
cmUsdGV4Q29vcmQpO3ZlYzQgY29sb3I9dmVjNCgwLjApO2Zsb2F0IHRvdGFsPTAuMDtmb3IoZmxv
YXQgeD0tNC4wO3g8PTQuMDt4Kz0xLjApe2ZvcihmbG9hdCB5PS00LjA7eTw9NC4wO3krPTEuMCl7
dmVjNCBzYW1wbGU9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQrdmVjMih4LHkpL3RleFNpemUp
O2Zsb2F0IHdlaWdodD0xLjAtYWJzKGRvdChzYW1wbGUucmdiLWNlbnRlci5yZ2IsdmVjMygwLjI1
KSkpO3dlaWdodD1wb3cod2VpZ2h0LGV4cG9uZW50KTtjb2xvcis9c2FtcGxlKndlaWdodDt0b3Rh
bCs9d2VpZ2h0O319Z2xfRnJhZ0NvbG9yPWNvbG9yL3RvdGFsO30iKTsKK2Zvcih2YXIgZD0wOzI+
ZDtkKyspZi5jYWxsKHRoaXMsYS5kZW5vaXNlLHtleHBvbmVudDpNYXRoLm1heCgwLGIpLHRleFNp
emU6W3RoaXMud2lkdGgsdGhpcy5oZWlnaHRdfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gSyhiLGQp
e2EuaHVlU2F0dXJhdGlvbj1hLmh1ZVNhdHVyYXRpb258fG5ldyBoKG51bGwsInVuaWZvcm0gc2Ft
cGxlcjJEIHRleHR1cmU7dW5pZm9ybSBmbG9hdCBodWU7dW5pZm9ybSBmbG9hdCBzYXR1cmF0aW9u
O3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXRleHR1cmUyRCh0
ZXh0dXJlLHRleENvb3JkKTtmbG9hdCBhbmdsZT1odWUqMy4xNDE1OTI2NTtmbG9hdCBzPXNpbihh
bmdsZSksYz1jb3MoYW5nbGUpO3ZlYzMgd2VpZ2h0cz0odmVjMygyLjAqYywtc3FydCgzLjApKnMt
YyxzcXJ0KDMuMCkqcy1jKSsxLjApLzMuMDtmbG9hdCBsZW49bGVuZ3RoKGNvbG9yLnJnYik7Y29s
b3IucmdiPXZlYzMoZG90KGNvbG9yLnJnYix3ZWlnaHRzLnh5eiksZG90KGNvbG9yLnJnYix3ZWln
aHRzLnp4eSksZG90KGNvbG9yLnJnYix3ZWlnaHRzLnl6eCkpO2Zsb2F0IGF2ZXJhZ2U9KGNvbG9y
LnIrY29sb3IuZytjb2xvci5iKS8zLjA7aWYoc2F0dXJhdGlvbj4wLjApe2NvbG9yLnJnYis9KGF2
ZXJhZ2UtY29sb3IucmdiKSooMS4wLTEuMC8oMS4wMDEtc2F0dXJhdGlvbikpO31lbHNle2NvbG9y
LnJnYis9KGF2ZXJhZ2UtY29sb3IucmdiKSooLXNhdHVyYXRpb24pO31nbF9GcmFnQ29sb3I9Y29s
b3I7fSIpOworZi5jYWxsKHRoaXMsYS5odWVTYXR1cmF0aW9uLHtodWU6cSgtMSxiLDEpLHNhdHVy
YXRpb246cSgtMSxkLDEpfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gTChiKXthLm5vaXNlPWEubm9p
c2V8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSBmbG9hdCBh
bW91bnQ7dmFyeWluZyB2ZWMyIHRleENvb3JkO2Zsb2F0IHJhbmQodmVjMiBjbyl7cmV0dXJuIGZy
YWN0KHNpbihkb3QoY28ueHksdmVjMigxMi45ODk4LDc4LjIzMykpKSo0Mzc1OC41NDUzKTt9dm9p
ZCBtYWluKCl7dmVjNCBjb2xvcj10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7ZmxvYXQgZGlm
Zj0ocmFuZCh0ZXhDb29yZCktMC41KSphbW91bnQ7Y29sb3Iucis9ZGlmZjtjb2xvci5nKz1kaWZm
O2NvbG9yLmIrPWRpZmY7Z2xfRnJhZ0NvbG9yPWNvbG9yO30iKTsKK2YuY2FsbCh0aGlzLGEubm9p
c2Use2Ftb3VudDpxKDAsYiwxKX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIE0oYil7YS5zZXBpYT1h
LnNlcGlhfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gZmxv
YXQgYW1vdW50O3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXRl
eHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTtmbG9hdCByPWNvbG9yLnI7ZmxvYXQgZz1jb2xvci5n
O2Zsb2F0IGI9Y29sb3IuYjtjb2xvci5yPW1pbigxLjAsKHIqKDEuMC0oMC42MDcqYW1vdW50KSkp
KyhnKigwLjc2OSphbW91bnQpKSsoYiooMC4xODkqYW1vdW50KSkpO2NvbG9yLmc9bWluKDEuMCwo
ciowLjM0OSphbW91bnQpKyhnKigxLjAtKDAuMzE0KmFtb3VudCkpKSsoYiowLjE2OCphbW91bnQp
KTtjb2xvci5iPW1pbigxLjAsKHIqMC4yNzIqYW1vdW50KSsoZyowLjUzNCphbW91bnQpKyhiKigx
LjAtKDAuODY5KmFtb3VudCkpKSk7Z2xfRnJhZ0NvbG9yPWNvbG9yO30iKTsKK2YuY2FsbCh0aGlz
LGEuc2VwaWEse2Ftb3VudDpxKDAsYiwxKX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIE4oYixkKXth
LnVuc2hhcnBNYXNrPWEudW5zaGFycE1hc2t8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJE
IGJsdXJyZWRUZXh0dXJlO3VuaWZvcm0gc2FtcGxlcjJEIG9yaWdpbmFsVGV4dHVyZTt1bmlmb3Jt
IGZsb2F0IHN0cmVuZ3RoO3VuaWZvcm0gZmxvYXQgdGhyZXNob2xkO3ZhcnlpbmcgdmVjMiB0ZXhD
b29yZDt2b2lkIG1haW4oKXt2ZWM0IGJsdXJyZWQ9dGV4dHVyZTJEKGJsdXJyZWRUZXh0dXJlLHRl
eENvb3JkKTt2ZWM0IG9yaWdpbmFsPXRleHR1cmUyRChvcmlnaW5hbFRleHR1cmUsdGV4Q29vcmQp
O2dsX0ZyYWdDb2xvcj1taXgoYmx1cnJlZCxvcmlnaW5hbCwxLjArc3RyZW5ndGgpO30iKTsKK3Ro
aXMuXy5leHRyYVRleHR1cmUuZW5zdXJlRm9ybWF0KHRoaXMuXy50ZXh0dXJlKTt0aGlzLl8udGV4
dHVyZS51c2UoKTt0aGlzLl8uZXh0cmFUZXh0dXJlLmRyYXdUbyhmdW5jdGlvbigpe2guZ2V0RGVm
YXVsdFNoYWRlcigpLmRyYXdSZWN0KCl9KTt0aGlzLl8uZXh0cmFUZXh0dXJlLnVzZSgxKTt0aGlz
LnRyaWFuZ2xlQmx1cihiKTthLnVuc2hhcnBNYXNrLnRleHR1cmVzKHtvcmlnaW5hbFRleHR1cmU6
MX0pO2YuY2FsbCh0aGlzLGEudW5zaGFycE1hc2sse3N0cmVuZ3RoOmR9KTt0aGlzLl8uZXh0cmFU
ZXh0dXJlLnVudXNlKDEpO3JldHVybiB0aGlzfWZ1bmN0aW9uIE8oYil7YS52aWJyYW5jZT1hLnZp
YnJhbmNlfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gZmxv
YXQgYW1vdW50O3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXRl
eHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTtmbG9hdCBhdmVyYWdlPShjb2xvci5yK2NvbG9yLmcr
Y29sb3IuYikvMy4wO2Zsb2F0IG14PW1heChjb2xvci5yLG1heChjb2xvci5nLGNvbG9yLmIpKTtm
bG9hdCBhbXQ9KG14LWF2ZXJhZ2UpKigtYW1vdW50KjMuMCk7Y29sb3IucmdiPW1peChjb2xvci5y
Z2IsdmVjMyhteCksYW10KTtnbF9GcmFnQ29sb3I9Y29sb3I7fSIpOworZi5jYWxsKHRoaXMsYS52
aWJyYW5jZSx7YW1vdW50OnEoLTEsYiwxKX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIFAoYixkKXth
LnZpZ25ldHRlPWEudmlnbmV0dGV8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1
cmU7dW5pZm9ybSBmbG9hdCBzaXplO3VuaWZvcm0gZmxvYXQgYW1vdW50O3ZhcnlpbmcgdmVjMiB0
ZXhDb29yZDt2b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3Jk
KTtmbG9hdCBkaXN0PWRpc3RhbmNlKHRleENvb3JkLHZlYzIoMC41LDAuNSkpO2NvbG9yLnJnYio9
c21vb3Roc3RlcCgwLjgsc2l6ZSowLjc5OSxkaXN0KihhbW91bnQrc2l6ZSkpO2dsX0ZyYWdDb2xv
cj1jb2xvcjt9Iik7CitmLmNhbGwodGhpcyxhLnZpZ25ldHRlLHtzaXplOnEoMCxiLDEpLGFtb3Vu
dDpxKDAsZCwxKX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIFEoYixkLGMpe2EubGVuc0JsdXJQcmVQ
YXNzPWEubGVuc0JsdXJQcmVQYXNzfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0
dXJlO3VuaWZvcm0gZmxvYXQgcG93ZXI7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigp
e3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQpO2NvbG9yPXBvdyhjb2xvcix2
ZWM0KHBvd2VyKSk7Z2xfRnJhZ0NvbG9yPXZlYzQoY29sb3IpO30iKTt2YXIgZT0idW5pZm9ybSBz
YW1wbGVyMkQgdGV4dHVyZTA7dW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTE7dW5pZm9ybSB2ZWMy
IGRlbHRhMDt1bmlmb3JtIHZlYzIgZGVsdGExO3VuaWZvcm0gZmxvYXQgcG93ZXI7dmFyeWluZyB2
ZWMyIHRleENvb3JkOyIrCitzKyJ2ZWM0IHNhbXBsZSh2ZWMyIGRlbHRhKXtmbG9hdCBvZmZzZXQ9
cmFuZG9tKHZlYzMoZGVsdGEsMTUxLjcxODIpLDAuMCk7dmVjNCBjb2xvcj12ZWM0KDAuMCk7Zmxv
YXQgdG90YWw9MC4wO2ZvcihmbG9hdCB0PTAuMDt0PD0zMC4wO3QrKyl7ZmxvYXQgcGVyY2VudD0o
dCtvZmZzZXQpLzMwLjA7Y29sb3IrPXRleHR1cmUyRCh0ZXh0dXJlMCx0ZXhDb29yZCtkZWx0YSpw
ZXJjZW50KTt0b3RhbCs9MS4wO31yZXR1cm4gY29sb3IvdG90YWw7fSI7CithLmxlbnNCbHVyMD1h
LmxlbnNCbHVyMHx8bmV3IGgobnVsbCxlKyJ2b2lkIG1haW4oKXtnbF9GcmFnQ29sb3I9c2FtcGxl
KGRlbHRhMCk7fSIpO2EubGVuc0JsdXIxPWEubGVuc0JsdXIxfHxuZXcgaChudWxsLGUrInZvaWQg
bWFpbigpe2dsX0ZyYWdDb2xvcj0oc2FtcGxlKGRlbHRhMCkrc2FtcGxlKGRlbHRhMSkpKjAuNTt9
Iik7YS5sZW5zQmx1cjI9YS5sZW5zQmx1cjJ8fChuZXcgaChudWxsLGUrInZvaWQgbWFpbigpe3Zl
YzQgY29sb3I9KHNhbXBsZShkZWx0YTApKzIuMCp0ZXh0dXJlMkQodGV4dHVyZTEsdGV4Q29vcmQp
KS8zLjA7Z2xfRnJhZ0NvbG9yPXBvdyhjb2xvcix2ZWM0KHBvd2VyKSk7fSIpKS50ZXh0dXJlcyh7
dGV4dHVyZTE6MX0pO2Zvcih2YXIgZT0KK1tdLGc9MDszPmc7ZysrKXt2YXIgbD1jKzIqZypNYXRo
LlBJLzM7ZS5wdXNoKFtiKk1hdGguc2luKGwpL3RoaXMud2lkdGgsYipNYXRoLmNvcyhsKS90aGlz
LmhlaWdodF0pfWI9TWF0aC5wb3coMTAscSgtMSxkLDEpKTtmLmNhbGwodGhpcyxhLmxlbnNCbHVy
UHJlUGFzcyx7cG93ZXI6Yn0pO3RoaXMuXy5leHRyYVRleHR1cmUuZW5zdXJlRm9ybWF0KHRoaXMu
Xy50ZXh0dXJlKTtmLmNhbGwodGhpcyxhLmxlbnNCbHVyMCx7ZGVsdGEwOmVbMF19LHRoaXMuXy50
ZXh0dXJlLHRoaXMuXy5leHRyYVRleHR1cmUpO2YuY2FsbCh0aGlzLGEubGVuc0JsdXIxLHtkZWx0
YTA6ZVsxXSxkZWx0YTE6ZVsyXX0sdGhpcy5fLmV4dHJhVGV4dHVyZSx0aGlzLl8uZXh0cmFUZXh0
dXJlKTtmLmNhbGwodGhpcyxhLmxlbnNCbHVyMCx7ZGVsdGEwOmVbMV19KTt0aGlzLl8uZXh0cmFU
ZXh0dXJlLnVzZSgxKTtmLmNhbGwodGhpcyxhLmxlbnNCbHVyMix7cG93ZXI6MS9iLGRlbHRhMDpl
WzJdfSk7cmV0dXJuIHRoaXN9CitmdW5jdGlvbiBSKGIsZCxjLGUsZyxsKXthLnRpbHRTaGlmdD1h
LnRpbHRTaGlmdHx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3Jt
IGZsb2F0IGJsdXJSYWRpdXM7dW5pZm9ybSBmbG9hdCBncmFkaWVudFJhZGl1czt1bmlmb3JtIHZl
YzIgc3RhcnQ7dW5pZm9ybSB2ZWMyIGVuZDt1bmlmb3JtIHZlYzIgZGVsdGE7dW5pZm9ybSB2ZWMy
IHRleFNpemU7dmFyeWluZyB2ZWMyIHRleENvb3JkOyIrcysidm9pZCBtYWluKCl7dmVjNCBjb2xv
cj12ZWM0KDAuMCk7ZmxvYXQgdG90YWw9MC4wO2Zsb2F0IG9mZnNldD1yYW5kb20odmVjMygxMi45
ODk4LDc4LjIzMywxNTEuNzE4MiksMC4wKTt2ZWMyIG5vcm1hbD1ub3JtYWxpemUodmVjMihzdGFy
dC55LWVuZC55LGVuZC54LXN0YXJ0LngpKTtmbG9hdCByYWRpdXM9c21vb3Roc3RlcCgwLjAsMS4w
LGFicyhkb3QodGV4Q29vcmQqdGV4U2l6ZS1zdGFydCxub3JtYWwpKS9ncmFkaWVudFJhZGl1cykq
Ymx1clJhZGl1cztmb3IoZmxvYXQgdD0tMzAuMDt0PD0zMC4wO3QrKyl7ZmxvYXQgcGVyY2VudD0o
dCtvZmZzZXQtMC41KS8zMC4wO2Zsb2F0IHdlaWdodD0xLjAtYWJzKHBlcmNlbnQpO3ZlYzQgc2Ft
cGxlPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkK2RlbHRhL3RleFNpemUqcGVyY2VudCpyYWRp
dXMpO3NhbXBsZS5yZ2IqPXNhbXBsZS5hO2NvbG9yKz1zYW1wbGUqd2VpZ2h0O3RvdGFsKz13ZWln
aHQ7fWdsX0ZyYWdDb2xvcj1jb2xvci90b3RhbDtnbF9GcmFnQ29sb3IucmdiLz1nbF9GcmFnQ29s
b3IuYSswLjAwMDAxO30iKTsKK3ZhciBuPWMtYixwPWUtZCxtPU1hdGguc3FydChuKm4rcCpwKTtm
LmNhbGwodGhpcyxhLnRpbHRTaGlmdCx7Ymx1clJhZGl1czpnLGdyYWRpZW50UmFkaXVzOmwsc3Rh
cnQ6W2IsZF0sZW5kOltjLGVdLGRlbHRhOltuL20scC9tXSx0ZXhTaXplOlt0aGlzLndpZHRoLHRo
aXMuaGVpZ2h0XX0pO2YuY2FsbCh0aGlzLGEudGlsdFNoaWZ0LHtibHVyUmFkaXVzOmcsZ3JhZGll
bnRSYWRpdXM6bCxzdGFydDpbYixkXSxlbmQ6W2MsZV0sZGVsdGE6Wy1wL20sbi9tXSx0ZXhTaXpl
Olt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIFMoYil7YS50
cmlhbmdsZUJsdXI9YS50cmlhbmdsZUJsdXJ8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJE
IHRleHR1cmU7dW5pZm9ybSB2ZWMyIGRlbHRhO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsiK3MrInZv
aWQgbWFpbigpe3ZlYzQgY29sb3I9dmVjNCgwLjApO2Zsb2F0IHRvdGFsPTAuMDtmbG9hdCBvZmZz
ZXQ9cmFuZG9tKHZlYzMoMTIuOTg5OCw3OC4yMzMsMTUxLjcxODIpLDAuMCk7Zm9yKGZsb2F0IHQ9
LTMwLjA7dDw9MzAuMDt0Kyspe2Zsb2F0IHBlcmNlbnQ9KHQrb2Zmc2V0LTAuNSkvMzAuMDtmbG9h
dCB3ZWlnaHQ9MS4wLWFicyhwZXJjZW50KTt2ZWM0IHNhbXBsZT10ZXh0dXJlMkQodGV4dHVyZSx0
ZXhDb29yZCtkZWx0YSpwZXJjZW50KTtzYW1wbGUucmdiKj1zYW1wbGUuYTtjb2xvcis9c2FtcGxl
KndlaWdodDt0b3RhbCs9d2VpZ2h0O31nbF9GcmFnQ29sb3I9Y29sb3IvdG90YWw7Z2xfRnJhZ0Nv
bG9yLnJnYi89Z2xfRnJhZ0NvbG9yLmErMC4wMDAwMTt9Iik7CitmLmNhbGwodGhpcyxhLnRyaWFu
Z2xlQmx1cix7ZGVsdGE6W2IvdGhpcy53aWR0aCwwXX0pO2YuY2FsbCh0aGlzLGEudHJpYW5nbGVC
bHVyLHtkZWx0YTpbMCxiL3RoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIFQoYixk
LGMpe2Euem9vbUJsdXI9YS56b29tQmx1cnx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQg
dGV4dHVyZTt1bmlmb3JtIHZlYzIgY2VudGVyO3VuaWZvcm0gZmxvYXQgc3RyZW5ndGg7dW5pZm9y
bSB2ZWMyIHRleFNpemU7dmFyeWluZyB2ZWMyIHRleENvb3JkOyIrcysidm9pZCBtYWluKCl7dmVj
NCBjb2xvcj12ZWM0KDAuMCk7ZmxvYXQgdG90YWw9MC4wO3ZlYzIgdG9DZW50ZXI9Y2VudGVyLXRl
eENvb3JkKnRleFNpemU7ZmxvYXQgb2Zmc2V0PXJhbmRvbSh2ZWMzKDEyLjk4OTgsNzguMjMzLDE1
MS43MTgyKSwwLjApO2ZvcihmbG9hdCB0PTAuMDt0PD00MC4wO3QrKyl7ZmxvYXQgcGVyY2VudD0o
dCtvZmZzZXQpLzQwLjA7ZmxvYXQgd2VpZ2h0PTQuMCoocGVyY2VudC1wZXJjZW50KnBlcmNlbnQp
O3ZlYzQgc2FtcGxlPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkK3RvQ2VudGVyKnBlcmNlbnQq
c3RyZW5ndGgvdGV4U2l6ZSk7c2FtcGxlLnJnYio9c2FtcGxlLmE7Y29sb3IrPXNhbXBsZSp3ZWln
aHQ7dG90YWwrPXdlaWdodDt9Z2xfRnJhZ0NvbG9yPWNvbG9yL3RvdGFsO2dsX0ZyYWdDb2xvci5y
Z2IvPWdsX0ZyYWdDb2xvci5hKzAuMDAwMDE7fSIpOworZi5jYWxsKHRoaXMsYS56b29tQmx1cix7
Y2VudGVyOltiLGRdLHN0cmVuZ3RoOmMsdGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlzLmhlaWdodF19
KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBVKGIsZCxjLGUpe2EuY29sb3JIYWxmdG9uZT1hLmNvbG9y
SGFsZnRvbmV8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSB2
ZWMyIGNlbnRlcjt1bmlmb3JtIGZsb2F0IGFuZ2xlO3VuaWZvcm0gZmxvYXQgc2NhbGU7dW5pZm9y
bSB2ZWMyIHRleFNpemU7dmFyeWluZyB2ZWMyIHRleENvb3JkO2Zsb2F0IHBhdHRlcm4oZmxvYXQg
YW5nbGUpe2Zsb2F0IHM9c2luKGFuZ2xlKSxjPWNvcyhhbmdsZSk7dmVjMiB0ZXg9dGV4Q29vcmQq
dGV4U2l6ZS1jZW50ZXI7dmVjMiBwb2ludD12ZWMyKGMqdGV4Lngtcyp0ZXgueSxzKnRleC54K2Mq
dGV4LnkpKnNjYWxlO3JldHVybihzaW4ocG9pbnQueCkqc2luKHBvaW50LnkpKSo0LjA7fXZvaWQg
bWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQpO3ZlYzMgY215PTEu
MC1jb2xvci5yZ2I7ZmxvYXQgaz1taW4oY215LngsbWluKGNteS55LGNteS56KSk7Y215PShjbXkt
aykvKDEuMC1rKTtjbXk9Y2xhbXAoY215KjEwLjAtMy4wK3ZlYzMocGF0dGVybihhbmdsZSswLjI2
MTc5KSxwYXR0ZXJuKGFuZ2xlKzEuMzA4OTkpLHBhdHRlcm4oYW5nbGUpKSwwLjAsMS4wKTtrPWNs
YW1wKGsqMTAuMC01LjArcGF0dGVybihhbmdsZSswLjc4NTM5KSwwLjAsMS4wKTtnbF9GcmFnQ29s
b3I9dmVjNCgxLjAtY215LWssY29sb3IuYSk7fSIpOworZi5jYWxsKHRoaXMsYS5jb2xvckhhbGZ0
b25lLHtjZW50ZXI6W2IsZF0sYW5nbGU6YyxzY2FsZTpNYXRoLlBJL2UsdGV4U2l6ZTpbdGhpcy53
aWR0aCx0aGlzLmhlaWdodF19KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBWKGIsZCxjLGUpe2EuZG90
U2NyZWVuPWEuZG90U2NyZWVufHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJl
O3VuaWZvcm0gdmVjMiBjZW50ZXI7dW5pZm9ybSBmbG9hdCBhbmdsZTt1bmlmb3JtIGZsb2F0IHNj
YWxlO3VuaWZvcm0gdmVjMiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDtmbG9hdCBwYXR0
ZXJuKCl7ZmxvYXQgcz1zaW4oYW5nbGUpLGM9Y29zKGFuZ2xlKTt2ZWMyIHRleD10ZXhDb29yZCp0
ZXhTaXplLWNlbnRlcjt2ZWMyIHBvaW50PXZlYzIoYyp0ZXgueC1zKnRleC55LHMqdGV4LngrYyp0
ZXgueSkqc2NhbGU7cmV0dXJuKHNpbihwb2ludC54KSpzaW4ocG9pbnQueSkpKjQuMDt9dm9pZCBt
YWluKCl7dmVjNCBjb2xvcj10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7ZmxvYXQgYXZlcmFn
ZT0oY29sb3Iucitjb2xvci5nK2NvbG9yLmIpLzMuMDtnbF9GcmFnQ29sb3I9dmVjNCh2ZWMzKGF2
ZXJhZ2UqMTAuMC01LjArcGF0dGVybigpKSxjb2xvci5hKTt9Iik7CitmLmNhbGwodGhpcyxhLmRv
dFNjcmVlbix7Y2VudGVyOltiLGRdLGFuZ2xlOmMsc2NhbGU6TWF0aC5QSS9lLHRleFNpemU6W3Ro
aXMud2lkdGgsdGhpcy5oZWlnaHRdfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gVyhiKXthLmVkZ2VX
b3JrMT1hLmVkZ2VXb3JrMXx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1
bmlmb3JtIHZlYzIgZGVsdGE7dmFyeWluZyB2ZWMyIHRleENvb3JkOyIrcysidm9pZCBtYWluKCl7
dmVjMiBjb2xvcj12ZWMyKDAuMCk7dmVjMiB0b3RhbD12ZWMyKDAuMCk7ZmxvYXQgb2Zmc2V0PXJh
bmRvbSh2ZWMzKDEyLjk4OTgsNzguMjMzLDE1MS43MTgyKSwwLjApO2ZvcihmbG9hdCB0PS0zMC4w
O3Q8PTMwLjA7dCsrKXtmbG9hdCBwZXJjZW50PSh0K29mZnNldC0wLjUpLzMwLjA7ZmxvYXQgd2Vp
Z2h0PTEuMC1hYnMocGVyY2VudCk7dmVjMyBzYW1wbGU9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29v
cmQrZGVsdGEqcGVyY2VudCkucmdiO2Zsb2F0IGF2ZXJhZ2U9KHNhbXBsZS5yK3NhbXBsZS5nK3Nh
bXBsZS5iKS8zLjA7Y29sb3IueCs9YXZlcmFnZSp3ZWlnaHQ7dG90YWwueCs9d2VpZ2h0O2lmKGFi
cyh0KTwxNS4wKXt3ZWlnaHQ9d2VpZ2h0KjIuMC0xLjA7Y29sb3IueSs9YXZlcmFnZSp3ZWlnaHQ7
dG90YWwueSs9d2VpZ2h0O319Z2xfRnJhZ0NvbG9yPXZlYzQoY29sb3IvdG90YWwsMC4wLDEuMCk7
fSIpOworYS5lZGdlV29yazI9YS5lZGdlV29yazJ8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxl
cjJEIHRleHR1cmU7dW5pZm9ybSB2ZWMyIGRlbHRhO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsiK3Mr
InZvaWQgbWFpbigpe3ZlYzIgY29sb3I9dmVjMigwLjApO3ZlYzIgdG90YWw9dmVjMigwLjApO2Zs
b2F0IG9mZnNldD1yYW5kb20odmVjMygxMi45ODk4LDc4LjIzMywxNTEuNzE4MiksMC4wKTtmb3Io
ZmxvYXQgdD0tMzAuMDt0PD0zMC4wO3QrKyl7ZmxvYXQgcGVyY2VudD0odCtvZmZzZXQtMC41KS8z
MC4wO2Zsb2F0IHdlaWdodD0xLjAtYWJzKHBlcmNlbnQpO3ZlYzIgc2FtcGxlPXRleHR1cmUyRCh0
ZXh0dXJlLHRleENvb3JkK2RlbHRhKnBlcmNlbnQpLnh5O2NvbG9yLngrPXNhbXBsZS54KndlaWdo
dDt0b3RhbC54Kz13ZWlnaHQ7aWYoYWJzKHQpPDE1LjApe3dlaWdodD13ZWlnaHQqMi4wLTEuMDtj
b2xvci55Kz1zYW1wbGUueSp3ZWlnaHQ7dG90YWwueSs9d2VpZ2h0O319ZmxvYXQgYz1jbGFtcCgx
MDAwMC4wKihjb2xvci55L3RvdGFsLnktY29sb3IueC90b3RhbC54KSswLjUsMC4wLDEuMCk7Z2xf
RnJhZ0NvbG9yPXZlYzQoYyxjLGMsMS4wKTt9Iik7CitmLmNhbGwodGhpcyxhLmVkZ2VXb3JrMSx7
ZGVsdGE6W2IvdGhpcy53aWR0aCwwXX0pO2YuY2FsbCh0aGlzLGEuZWRnZVdvcmsyLHtkZWx0YTpb
MCxiL3RoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIFgoYixkLGMpe2EuaGV4YWdv
bmFsUGl4ZWxhdGU9YS5oZXhhZ29uYWxQaXhlbGF0ZXx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1w
bGVyMkQgdGV4dHVyZTt1bmlmb3JtIHZlYzIgY2VudGVyO3VuaWZvcm0gZmxvYXQgc2NhbGU7dW5p
Zm9ybSB2ZWMyIHRleFNpemU7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3ZlYzIg
dGV4PSh0ZXhDb29yZCp0ZXhTaXplLWNlbnRlcikvc2NhbGU7dGV4LnkvPTAuODY2MDI1NDA0O3Rl
eC54LT10ZXgueSowLjU7dmVjMiBhO2lmKHRleC54K3RleC55LWZsb29yKHRleC54KS1mbG9vcih0
ZXgueSk8MS4wKWE9dmVjMihmbG9vcih0ZXgueCksZmxvb3IodGV4LnkpKTtlbHNlIGE9dmVjMihj
ZWlsKHRleC54KSxjZWlsKHRleC55KSk7dmVjMiBiPXZlYzIoY2VpbCh0ZXgueCksZmxvb3IodGV4
LnkpKTt2ZWMyIGM9dmVjMihmbG9vcih0ZXgueCksY2VpbCh0ZXgueSkpO3ZlYzMgVEVYPXZlYzMo
dGV4LngsdGV4LnksMS4wLXRleC54LXRleC55KTt2ZWMzIEE9dmVjMyhhLngsYS55LDEuMC1hLngt
YS55KTt2ZWMzIEI9dmVjMyhiLngsYi55LDEuMC1iLngtYi55KTt2ZWMzIEM9dmVjMyhjLngsYy55
LDEuMC1jLngtYy55KTtmbG9hdCBhbGVuPWxlbmd0aChURVgtQSk7ZmxvYXQgYmxlbj1sZW5ndGgo
VEVYLUIpO2Zsb2F0IGNsZW49bGVuZ3RoKFRFWC1DKTt2ZWMyIGNob2ljZTtpZihhbGVuPGJsZW4p
e2lmKGFsZW48Y2xlbiljaG9pY2U9YTtlbHNlIGNob2ljZT1jO31lbHNle2lmKGJsZW48Y2xlbilj
aG9pY2U9YjtlbHNlIGNob2ljZT1jO31jaG9pY2UueCs9Y2hvaWNlLnkqMC41O2Nob2ljZS55Kj0w
Ljg2NjAyNTQwNDtjaG9pY2UqPXNjYWxlL3RleFNpemU7Z2xfRnJhZ0NvbG9yPXRleHR1cmUyRCh0
ZXh0dXJlLGNob2ljZStjZW50ZXIvdGV4U2l6ZSk7fSIpOworZi5jYWxsKHRoaXMsYS5oZXhhZ29u
YWxQaXhlbGF0ZSx7Y2VudGVyOltiLGRdLHNjYWxlOmMsdGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlz
LmhlaWdodF19KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBZKGIpe2EuaW5rPWEuaW5rfHxuZXcgaChu
dWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gZmxvYXQgc3RyZW5ndGg7dW5p
Zm9ybSB2ZWMyIHRleFNpemU7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3ZlYzIg
ZHg9dmVjMigxLjAvdGV4U2l6ZS54LDAuMCk7dmVjMiBkeT12ZWMyKDAuMCwxLjAvdGV4U2l6ZS55
KTt2ZWM0IGNvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTtmbG9hdCBiaWdUb3RhbD0w
LjA7ZmxvYXQgc21hbGxUb3RhbD0wLjA7dmVjMyBiaWdBdmVyYWdlPXZlYzMoMC4wKTt2ZWMzIHNt
YWxsQXZlcmFnZT12ZWMzKDAuMCk7Zm9yKGZsb2F0IHg9LTIuMDt4PD0yLjA7eCs9MS4wKXtmb3Io
ZmxvYXQgeT0tMi4wO3k8PTIuMDt5Kz0xLjApe3ZlYzMgc2FtcGxlPXRleHR1cmUyRCh0ZXh0dXJl
LHRleENvb3JkK2R4KngrZHkqeSkucmdiO2JpZ0F2ZXJhZ2UrPXNhbXBsZTtiaWdUb3RhbCs9MS4w
O2lmKGFicyh4KSthYnMoeSk8Mi4wKXtzbWFsbEF2ZXJhZ2UrPXNhbXBsZTtzbWFsbFRvdGFsKz0x
LjA7fX19dmVjMyBlZGdlPW1heCh2ZWMzKDAuMCksYmlnQXZlcmFnZS9iaWdUb3RhbC1zbWFsbEF2
ZXJhZ2Uvc21hbGxUb3RhbCk7Z2xfRnJhZ0NvbG9yPXZlYzQoY29sb3IucmdiLWRvdChlZGdlLGVk
Z2UpKnN0cmVuZ3RoKjEwMDAwMC4wLGNvbG9yLmEpO30iKTsKK2YuY2FsbCh0aGlzLGEuaW5rLHtz
dHJlbmd0aDpiKmIqYipiKmIsdGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlzLmhlaWdodF19KTtyZXR1
cm4gdGhpc31mdW5jdGlvbiBaKGIsZCxjLGUpe2EuYnVsZ2VQaW5jaD1hLmJ1bGdlUGluY2h8fHUo
InVuaWZvcm0gZmxvYXQgcmFkaXVzO3VuaWZvcm0gZmxvYXQgc3RyZW5ndGg7dW5pZm9ybSB2ZWMy
IGNlbnRlcjsiLCJjb29yZC09Y2VudGVyO2Zsb2F0IGRpc3RhbmNlPWxlbmd0aChjb29yZCk7aWYo
ZGlzdGFuY2U8cmFkaXVzKXtmbG9hdCBwZXJjZW50PWRpc3RhbmNlL3JhZGl1cztpZihzdHJlbmd0
aD4wLjApe2Nvb3JkKj1taXgoMS4wLHNtb290aHN0ZXAoMC4wLHJhZGl1cy9kaXN0YW5jZSxwZXJj
ZW50KSxzdHJlbmd0aCowLjc1KTt9ZWxzZXtjb29yZCo9bWl4KDEuMCxwb3cocGVyY2VudCwxLjAr
c3RyZW5ndGgqMC43NSkqcmFkaXVzL2Rpc3RhbmNlLDEuMC1wZXJjZW50KTt9fWNvb3JkKz1jZW50
ZXI7Iik7CitmLmNhbGwodGhpcyxhLmJ1bGdlUGluY2gse3JhZGl1czpjLHN0cmVuZ3RoOnEoLTEs
ZSwxKSxjZW50ZXI6W2IsZF0sdGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlzLmhlaWdodF19KTtyZXR1
cm4gdGhpc31mdW5jdGlvbiAkKGIsZCxjKXthLm1hdHJpeFdhcnA9YS5tYXRyaXhXYXJwfHx1KCJ1
bmlmb3JtIG1hdDMgbWF0cml4O3VuaWZvcm0gYm9vbCB1c2VUZXh0dXJlU3BhY2U7IiwiaWYodXNl
VGV4dHVyZVNwYWNlKWNvb3JkPWNvb3JkL3RleFNpemUqMi4wLTEuMDt2ZWMzIHdhcnA9bWF0cml4
KnZlYzMoY29vcmQsMS4wKTtjb29yZD13YXJwLnh5L3dhcnAuejtpZih1c2VUZXh0dXJlU3BhY2Up
Y29vcmQ9KGNvb3JkKjAuNSswLjUpKnRleFNpemU7Iik7Yj1BcnJheS5wcm90b3R5cGUuY29uY2F0
LmFwcGx5KFtdLGIpO2lmKDQ9PWIubGVuZ3RoKWI9CitbYlswXSxiWzFdLDAsYlsyXSxiWzNdLDAs
MCwwLDFdO2Vsc2UgaWYoOSE9Yi5sZW5ndGgpdGhyb3ciY2FuIG9ubHkgd2FycCB3aXRoIDJ4MiBv
ciAzeDMgbWF0cml4IjtmLmNhbGwodGhpcyxhLm1hdHJpeFdhcnAse21hdHJpeDpkP3koYik6Yix0
ZXhTaXplOlt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XSx1c2VUZXh0dXJlU3BhY2U6Y3wwfSk7cmV0
dXJuIHRoaXN9ZnVuY3Rpb24gYWEoYSxkKXt2YXIgYz14LmFwcGx5KG51bGwsZCksZT14LmFwcGx5
KG51bGwsYSksYz15KGMpO3JldHVybiB0aGlzLm1hdHJpeFdhcnAoW2NbMF0qZVswXStjWzFdKmVb
M10rY1syXSplWzZdLGNbMF0qZVsxXStjWzFdKmVbNF0rY1syXSplWzddLGNbMF0qZVsyXStjWzFd
KmVbNV0rY1syXSplWzhdLGNbM10qZVswXStjWzRdKmVbM10rY1s1XSplWzZdLGNbM10qZVsxXStj
WzRdKmVbNF0rY1s1XSplWzddLGNbM10qZVsyXStjWzRdKmVbNV0rY1s1XSplWzhdLGNbNl0qZVsw
XStjWzddKmVbM10rY1s4XSplWzZdLAorY1s2XSplWzFdK2NbN10qZVs0XStjWzhdKmVbN10sY1s2
XSplWzJdK2NbN10qZVs1XStjWzhdKmVbOF1dKX1mdW5jdGlvbiBiYShiLGQsYyxlKXthLnN3aXJs
PWEuc3dpcmx8fHUoInVuaWZvcm0gZmxvYXQgcmFkaXVzO3VuaWZvcm0gZmxvYXQgYW5nbGU7dW5p
Zm9ybSB2ZWMyIGNlbnRlcjsiLCJjb29yZC09Y2VudGVyO2Zsb2F0IGRpc3RhbmNlPWxlbmd0aChj
b29yZCk7aWYoZGlzdGFuY2U8cmFkaXVzKXtmbG9hdCBwZXJjZW50PShyYWRpdXMtZGlzdGFuY2Up
L3JhZGl1cztmbG9hdCB0aGV0YT1wZXJjZW50KnBlcmNlbnQqYW5nbGU7ZmxvYXQgcz1zaW4odGhl
dGEpO2Zsb2F0IGM9Y29zKHRoZXRhKTtjb29yZD12ZWMyKGNvb3JkLngqYy1jb29yZC55KnMsY29v
cmQueCpzK2Nvb3JkLnkqYyk7fWNvb3JkKz1jZW50ZXI7Iik7CitmLmNhbGwodGhpcyxhLnN3aXJs
LHtyYWRpdXM6YyxjZW50ZXI6W2IsZF0sYW5nbGU6ZSx0ZXhTaXplOlt0aGlzLndpZHRoLHRoaXMu
aGVpZ2h0XX0pO3JldHVybiB0aGlzfXZhciB2PXt9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7
aWYoIWIuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdCIpKXJldHVybiExO3ZhciBjPWIu
Y3JlYXRlRnJhbWVidWZmZXIoKSxlPWIuY3JlYXRlVGV4dHVyZSgpO2IuYmluZFRleHR1cmUoYi5U
RVhUVVJFXzJELGUpO2IudGV4UGFyYW1ldGVyaShiLlRFWFRVUkVfMkQsYi5URVhUVVJFX01BR19G
SUxURVIsYi5ORUFSRVNUKTtiLnRleFBhcmFtZXRlcmkoYi5URVhUVVJFXzJELGIuVEVYVFVSRV9N
SU5fRklMVEVSLGIuTkVBUkVTVCk7Yi50ZXhQYXJhbWV0ZXJpKGIuVEVYVFVSRV8yRCxiLlRFWFRV
UkVfV1JBUF9TLGIuQ0xBTVBfVE9fRURHRSk7Yi50ZXhQYXJhbWV0ZXJpKGIuVEVYVFVSRV8yRCxi
LlRFWFRVUkVfV1JBUF9ULGIuQ0xBTVBfVE9fRURHRSk7CitiLnRleEltYWdlMkQoYi5URVhUVVJF
XzJELDAsYi5SR0JBLDEsMSwwLGIuUkdCQSxiLlVOU0lHTkVEX0JZVEUsbnVsbCk7Yi5iaW5kRnJh
bWVidWZmZXIoYi5GUkFNRUJVRkZFUixjKTtiLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGIuRlJBTUVC
VUZGRVIsYi5DT0xPUl9BVFRBQ0hNRU5UMCxiLlRFWFRVUkVfMkQsZSwwKTtjPWIuY3JlYXRlVGV4
dHVyZSgpO2IuYmluZFRleHR1cmUoYi5URVhUVVJFXzJELGMpO2IudGV4UGFyYW1ldGVyaShiLlRF
WFRVUkVfMkQsYi5URVhUVVJFX01BR19GSUxURVIsYi5MSU5FQVIpO2IudGV4UGFyYW1ldGVyaShi
LlRFWFRVUkVfMkQsYi5URVhUVVJFX01JTl9GSUxURVIsYi5MSU5FQVIpO2IudGV4UGFyYW1ldGVy
aShiLlRFWFRVUkVfMkQsYi5URVhUVVJFX1dSQVBfUyxiLkNMQU1QX1RPX0VER0UpO2IudGV4UGFy
YW1ldGVyaShiLlRFWFRVUkVfMkQsYi5URVhUVVJFX1dSQVBfVCxiLkNMQU1QX1RPX0VER0UpO2Iu
dGV4SW1hZ2UyRChiLlRFWFRVUkVfMkQsCiswLGIuUkdCQSwyLDIsMCxiLlJHQkEsYi5GTE9BVCxu
ZXcgRmxvYXQzMkFycmF5KFsyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSkpO3ZhciBl
PWIuY3JlYXRlUHJvZ3JhbSgpLGQ9Yi5jcmVhdGVTaGFkZXIoYi5WRVJURVhfU0hBREVSKSxnPWIu
Y3JlYXRlU2hhZGVyKGIuRlJBR01FTlRfU0hBREVSKTtiLnNoYWRlclNvdXJjZShkLCJhdHRyaWJ1
dGUgdmVjMiB2ZXJ0ZXg7dm9pZCBtYWluKCl7Z2xfUG9zaXRpb249dmVjNCh2ZXJ0ZXgsMC4wLDEu
MCk7fSIpO2Iuc2hhZGVyU291cmNlKGcsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dm9pZCBt
YWluKCl7Z2xfRnJhZ0NvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHZlYzIoMC41KSk7fSIpO2IuY29t
cGlsZVNoYWRlcihkKTtiLmNvbXBpbGVTaGFkZXIoZyk7Yi5hdHRhY2hTaGFkZXIoZSxkKTtiLmF0
dGFjaFNoYWRlcihlLAorZyk7Yi5saW5rUHJvZ3JhbShlKTtkPWIuY3JlYXRlQnVmZmVyKCk7Yi5i
aW5kQnVmZmVyKGIuQVJSQVlfQlVGRkVSLGQpO2IuYnVmZmVyRGF0YShiLkFSUkFZX0JVRkZFUixu
ZXcgRmxvYXQzMkFycmF5KFswLDBdKSxiLlNUUkVBTV9EUkFXKTtiLmVuYWJsZVZlcnRleEF0dHJp
YkFycmF5KDApO2IudmVydGV4QXR0cmliUG9pbnRlcigwLDIsYi5GTE9BVCwhMSwwLDApO2Q9bmV3
IFVpbnQ4QXJyYXkoNCk7Yi51c2VQcm9ncmFtKGUpO2Iudmlld3BvcnQoMCwwLDEsMSk7Yi5iaW5k
VGV4dHVyZShiLlRFWFRVUkVfMkQsYyk7Yi5kcmF3QXJyYXlzKGIuUE9JTlRTLDAsMSk7Yi5yZWFk
UGl4ZWxzKDAsMCwxLDEsYi5SR0JBLGIuVU5TSUdORURfQllURSxkKTtyZXR1cm4gMTI3PT09ZFsw
XXx8MTI4PT09ZFswXX1mdW5jdGlvbiBkKCl7fWZ1bmN0aW9uIGMoYSl7Ik9FU190ZXh0dXJlX2Zs
b2F0X2xpbmVhciI9PT1hPyh2b2lkIDA9PT10aGlzLiRPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIk
JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywKKyIkT0VTX3RleHR1cmVfZmxvYXRfbGluZWFy
JCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOm5ldyBk
fSksYT10aGlzLiRPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIkKTphPW4uY2FsbCh0aGlzLGEpO3Jl
dHVybiBhfWZ1bmN0aW9uIGUoKXt2YXIgYT1mLmNhbGwodGhpcyk7LTE9PT1hLmluZGV4T2YoIk9F
U190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpJiZhLnB1c2goIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpO3JldHVybiBhfXRyeXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5n
ZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiKX1jYXRjaChsKXt9aWYoZyYmLTE9PT1nLmdl
dFN1cHBvcnRlZEV4dGVuc2lvbnMoKS5pbmRleE9mKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIi
KSYmYShnKSl7dmFyIG49V2ViR0xSZW5kZXJpbmdDb250ZXh0LnByb3RvdHlwZS5nZXRFeHRlbnNp
b24sZj1XZWJHTFJlbmRlcmluZ0NvbnRleHQucHJvdG90eXBlLmdldFN1cHBvcnRlZEV4dGVuc2lv
bnM7CitXZWJHTFJlbmRlcmluZ0NvbnRleHQucHJvdG90eXBlLmdldEV4dGVuc2lvbj1jO1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucz1lfX0pKCk7
dmFyIGE7di5jYW52YXM9ZnVuY3Rpb24oKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJj
YW52YXMiKTt0cnl7YT1iLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIse3ByZW11bHRp
cGxpZWRBbHBoYTohMX0pfWNhdGNoKGQpe2E9bnVsbH1pZighYSl0aHJvdyJUaGlzIGJyb3dzZXIg
ZG9lcyBub3Qgc3VwcG9ydCBXZWJHTCI7Yi5fPXtnbDphLGlzSW5pdGlhbGl6ZWQ6ITEsdGV4dHVy
ZTpudWxsLHNwYXJlVGV4dHVyZTpudWxsLGZsaXBwZWRTaGFkZXI6bnVsbH07Yi50ZXh0dXJlPWso
QSk7Yi5kcmF3PWsoQyk7Yi51cGRhdGU9ayhEKTtiLnJlcGxhY2U9ayhFKTtiLmNvbnRlbnRzPWso
Rik7Yi5nZXRQaXhlbEFycmF5PWsoRyk7Yi5icmlnaHRuZXNzQ29udHJhc3Q9ayhIKTsKK2IuaGV4
YWdvbmFsUGl4ZWxhdGU9ayhYKTtiLmh1ZVNhdHVyYXRpb249ayhLKTtiLmNvbG9ySGFsZnRvbmU9
ayhVKTtiLnRyaWFuZ2xlQmx1cj1rKFMpO2IudW5zaGFycE1hc2s9ayhOKTtiLnBlcnNwZWN0aXZl
PWsoYWEpO2IubWF0cml4V2FycD1rKCQpO2IuYnVsZ2VQaW5jaD1rKFopO2IudGlsdFNoaWZ0PWso
Uik7Yi5kb3RTY3JlZW49ayhWKTtiLmVkZ2VXb3JrPWsoVyk7Yi5sZW5zQmx1cj1rKFEpO2Iuem9v
bUJsdXI9ayhUKTtiLm5vaXNlPWsoTCk7Yi5kZW5vaXNlPWsoSik7Yi5jdXJ2ZXM9ayhJKTtiLnN3
aXJsPWsoYmEpO2IuaW5rPWsoWSk7Yi52aWduZXR0ZT1rKFApO2IudmlicmFuY2U9ayhPKTtiLnNl
cGlhPWsoTSk7cmV0dXJuIGJ9O3Yuc3BsaW5lSW50ZXJwb2xhdGU9dDt2YXIgaD1mdW5jdGlvbigp
e2Z1bmN0aW9uIGIoYixjKXt2YXIgZT1hLmNyZWF0ZVNoYWRlcihiKTthLnNoYWRlclNvdXJjZShl
LGMpO2EuY29tcGlsZVNoYWRlcihlKTtpZighYS5nZXRTaGFkZXJQYXJhbWV0ZXIoZSwKK2EuQ09N
UElMRV9TVEFUVVMpKXRocm93ImNvbXBpbGUgZXJyb3I6ICIrYS5nZXRTaGFkZXJJbmZvTG9nKGUp
O3JldHVybiBlfWZ1bmN0aW9uIGQoZCxsKXt0aGlzLnRleENvb3JkQXR0cmlidXRlPXRoaXMudmVy
dGV4QXR0cmlidXRlPW51bGw7dGhpcy5wcm9ncmFtPWEuY3JlYXRlUHJvZ3JhbSgpO2Q9ZHx8Yzts
PWx8fGU7bD0icHJlY2lzaW9uIGhpZ2hwIGZsb2F0OyIrbDthLmF0dGFjaFNoYWRlcih0aGlzLnBy
b2dyYW0sYihhLlZFUlRFWF9TSEFERVIsZCkpO2EuYXR0YWNoU2hhZGVyKHRoaXMucHJvZ3JhbSxi
KGEuRlJBR01FTlRfU0hBREVSLGwpKTthLmxpbmtQcm9ncmFtKHRoaXMucHJvZ3JhbSk7aWYoIWEu
Z2V0UHJvZ3JhbVBhcmFtZXRlcih0aGlzLnByb2dyYW0sYS5MSU5LX1NUQVRVUykpdGhyb3cibGlu
ayBlcnJvcjogIithLmdldFByb2dyYW1JbmZvTG9nKHRoaXMucHJvZ3JhbSk7fXZhciBjPSJhdHRy
aWJ1dGUgdmVjMiB2ZXJ0ZXg7YXR0cmlidXRlIHZlYzIgX3RleENvb3JkO3ZhcnlpbmcgdmVjMiB0
ZXhDb29yZDt2b2lkIG1haW4oKXt0ZXhDb29yZD1fdGV4Q29vcmQ7Z2xfUG9zaXRpb249dmVjNCh2
ZXJ0ZXgqMi4wLTEuMCwwLjAsMS4wKTt9IiwKK2U9InVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7
dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe2dsX0ZyYWdDb2xvcj10ZXh0dXJlMkQo
dGV4dHVyZSx0ZXhDb29yZCk7fSI7ZC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2EuZGVs
ZXRlUHJvZ3JhbSh0aGlzLnByb2dyYW0pO3RoaXMucHJvZ3JhbT1udWxsfTtkLnByb3RvdHlwZS51
bmlmb3Jtcz1mdW5jdGlvbihiKXthLnVzZVByb2dyYW0odGhpcy5wcm9ncmFtKTtmb3IodmFyIGUg
aW4gYilpZihiLmhhc093blByb3BlcnR5KGUpKXt2YXIgYz1hLmdldFVuaWZvcm1Mb2NhdGlvbih0
aGlzLnByb2dyYW0sZSk7aWYobnVsbCE9PWMpe3ZhciBkPWJbZV07aWYoIltvYmplY3QgQXJyYXld
Ij09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpKXN3aXRjaChkLmxlbmd0aCl7Y2Fz
ZSAxOmEudW5pZm9ybTFmdihjLG5ldyBGbG9hdDMyQXJyYXkoZCkpO2JyZWFrOworY2FzZSAyOmEu
dW5pZm9ybTJmdihjLG5ldyBGbG9hdDMyQXJyYXkoZCkpO2JyZWFrO2Nhc2UgMzphLnVuaWZvcm0z
ZnYoYyxuZXcgRmxvYXQzMkFycmF5KGQpKTticmVhaztjYXNlIDQ6YS51bmlmb3JtNGZ2KGMsbmV3
IEZsb2F0MzJBcnJheShkKSk7YnJlYWs7Y2FzZSA5OmEudW5pZm9ybU1hdHJpeDNmdihjLCExLG5l
dyBGbG9hdDMyQXJyYXkoZCkpO2JyZWFrO2Nhc2UgMTY6YS51bmlmb3JtTWF0cml4NGZ2KGMsITEs
bmV3IEZsb2F0MzJBcnJheShkKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJkb250J3Qga25vdyBob3cg
dG8gbG9hZCB1bmlmb3JtIFwiIitlKyciIG9mIGxlbmd0aCAnK2QubGVuZ3RoO31lbHNlIGlmKCJb
b2JqZWN0IE51bWJlcl0iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkpYS51bmlm
b3JtMWYoYyxkKTtlbHNlIHRocm93J2F0dGVtcHRlZCB0byBzZXQgdW5pZm9ybSAiJytlKyciIHRv
IGludmFsaWQgdmFsdWUgJysoZHx8InVuZGVmaW5lZCIpLnRvU3RyaW5nKCk7Cit9fXJldHVybiB0
aGlzfTtkLnByb3RvdHlwZS50ZXh0dXJlcz1mdW5jdGlvbihiKXthLnVzZVByb2dyYW0odGhpcy5w
cm9ncmFtKTtmb3IodmFyIGMgaW4gYiliLmhhc093blByb3BlcnR5KGMpJiZhLnVuaWZvcm0xaShh
LmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnByb2dyYW0sYyksYltjXSk7cmV0dXJuIHRoaXN9O2Qu
cHJvdG90eXBlLmRyYXdSZWN0PWZ1bmN0aW9uKGIsYyxlLGQpe3ZhciBmPWEuZ2V0UGFyYW1ldGVy
KGEuVklFV1BPUlQpO2M9dm9pZCAwIT09Yz8oYy1mWzFdKS9mWzNdOjA7Yj12b2lkIDAhPT1iPyhi
LWZbMF0pL2ZbMl06MDtlPXZvaWQgMCE9PWU/KGUtZlswXSkvZlsyXToxO2Q9dm9pZCAwIT09ZD8o
ZC1mWzFdKS9mWzNdOjE7bnVsbD09YS52ZXJ0ZXhCdWZmZXImJihhLnZlcnRleEJ1ZmZlcj1hLmNy
ZWF0ZUJ1ZmZlcigpKTthLmJpbmRCdWZmZXIoYS5BUlJBWV9CVUZGRVIsYS52ZXJ0ZXhCdWZmZXIp
O2EuYnVmZmVyRGF0YShhLkFSUkFZX0JVRkZFUixuZXcgRmxvYXQzMkFycmF5KFtiLAorYyxiLGQs
ZSxjLGUsZF0pLGEuU1RBVElDX0RSQVcpO251bGw9PWEudGV4Q29vcmRCdWZmZXImJihhLnRleENv
b3JkQnVmZmVyPWEuY3JlYXRlQnVmZmVyKCksYS5iaW5kQnVmZmVyKGEuQVJSQVlfQlVGRkVSLGEu
dGV4Q29vcmRCdWZmZXIpLGEuYnVmZmVyRGF0YShhLkFSUkFZX0JVRkZFUixuZXcgRmxvYXQzMkFy
cmF5KFswLDAsMCwxLDEsMCwxLDFdKSxhLlNUQVRJQ19EUkFXKSk7bnVsbD09dGhpcy52ZXJ0ZXhB
dHRyaWJ1dGUmJih0aGlzLnZlcnRleEF0dHJpYnV0ZT1hLmdldEF0dHJpYkxvY2F0aW9uKHRoaXMu
cHJvZ3JhbSwidmVydGV4IiksYS5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh0aGlzLnZlcnRleEF0
dHJpYnV0ZSkpO251bGw9PXRoaXMudGV4Q29vcmRBdHRyaWJ1dGUmJih0aGlzLnRleENvb3JkQXR0
cmlidXRlPWEuZ2V0QXR0cmliTG9jYXRpb24odGhpcy5wcm9ncmFtLCJfdGV4Q29vcmQiKSxhLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KHRoaXMudGV4Q29vcmRBdHRyaWJ1dGUpKTsKK2EudXNlUHJv
Z3JhbSh0aGlzLnByb2dyYW0pO2EuYmluZEJ1ZmZlcihhLkFSUkFZX0JVRkZFUixhLnZlcnRleEJ1
ZmZlcik7YS52ZXJ0ZXhBdHRyaWJQb2ludGVyKHRoaXMudmVydGV4QXR0cmlidXRlLDIsYS5GTE9B
VCwhMSwwLDApO2EuYmluZEJ1ZmZlcihhLkFSUkFZX0JVRkZFUixhLnRleENvb3JkQnVmZmVyKTth
LnZlcnRleEF0dHJpYlBvaW50ZXIodGhpcy50ZXhDb29yZEF0dHJpYnV0ZSwyLGEuRkxPQVQsITEs
MCwwKTthLmRyYXdBcnJheXMoYS5UUklBTkdMRV9TVFJJUCwwLDQpfTtkLmdldERlZmF1bHRTaGFk
ZXI9ZnVuY3Rpb24oKXthLmRlZmF1bHRTaGFkZXI9YS5kZWZhdWx0U2hhZGVyfHxuZXcgZDtyZXR1
cm4gYS5kZWZhdWx0U2hhZGVyfTtyZXR1cm4gZH0oKTt6LnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1m
dW5jdGlvbihhKXtmb3IodmFyIGQ9MCxjPXRoaXMueWEubGVuZ3RoLTE7MTxjLWQ7KXt2YXIgZT1j
K2Q+PjE7dGhpcy54YVtlXT5hP2M9ZTpkPWV9dmFyIGU9dGhpcy54YVtjXS0KK3RoaXMueGFbZF0s
Zz0odGhpcy54YVtjXS1hKS9lO2E9KGEtdGhpcy54YVtkXSkvZTtyZXR1cm4gZyp0aGlzLnlhW2Rd
K2EqdGhpcy55YVtjXSsoKGcqZypnLWcpKnRoaXMueTJbZF0rKGEqYSphLWEpKnRoaXMueTJbY10p
KmUqZS82fTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGIoYixjLGQsZil7dGhpcy5nbD1hO3Ro
aXMuaWQ9YS5jcmVhdGVUZXh0dXJlKCk7dGhpcy53aWR0aD1iO3RoaXMuaGVpZ2h0PWM7dGhpcy5m
b3JtYXQ9ZDt0aGlzLnR5cGU9ZjthLmJpbmRUZXh0dXJlKGEuVEVYVFVSRV8yRCx0aGlzLmlkKTth
LnRleFBhcmFtZXRlcmkoYS5URVhUVVJFXzJELGEuVEVYVFVSRV9NQUdfRklMVEVSLGEuTElORUFS
KTthLnRleFBhcmFtZXRlcmkoYS5URVhUVVJFXzJELGEuVEVYVFVSRV9NSU5fRklMVEVSLGEuTElO
RUFSKTthLnRleFBhcmFtZXRlcmkoYS5URVhUVVJFXzJELGEuVEVYVFVSRV9XUkFQX1MsYS5DTEFN
UF9UT19FREdFKTthLnRleFBhcmFtZXRlcmkoYS5URVhUVVJFXzJELAorYS5URVhUVVJFX1dSQVBf
VCxhLkNMQU1QX1RPX0VER0UpO2ImJmMmJmEudGV4SW1hZ2UyRChhLlRFWFRVUkVfMkQsMCx0aGlz
LmZvcm1hdCxiLGMsMCx0aGlzLmZvcm1hdCx0aGlzLnR5cGUsbnVsbCl9ZnVuY3Rpb24gZChhKXtu
dWxsPT1jJiYoYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSk7Yy53aWR0aD1hLndp
ZHRoO2MuaGVpZ2h0PWEuaGVpZ2h0O2E9Yy5nZXRDb250ZXh0KCIyZCIpO2EuY2xlYXJSZWN0KDAs
MCxjLndpZHRoLGMuaGVpZ2h0KTtyZXR1cm4gYX1iLmZyb21FbGVtZW50PWZ1bmN0aW9uKGMpe3Zh
ciBkPW5ldyBiKDAsMCxhLlJHQkEsYS5VTlNJR05FRF9CWVRFKTtkLmxvYWRDb250ZW50c09mKGMp
O3JldHVybiBkfTtiLnByb3RvdHlwZS5sb2FkQ29udGVudHNPZj1mdW5jdGlvbihiKXt0aGlzLndp
ZHRoPWIud2lkdGh8fGIudmlkZW9XaWR0aDt0aGlzLmhlaWdodD1iLmhlaWdodHx8Yi52aWRlb0hl
aWdodDthLmJpbmRUZXh0dXJlKGEuVEVYVFVSRV8yRCwKK3RoaXMuaWQpO2EudGV4SW1hZ2UyRChh
LlRFWFRVUkVfMkQsMCx0aGlzLmZvcm1hdCx0aGlzLmZvcm1hdCx0aGlzLnR5cGUsYil9O2IucHJv
dG90eXBlLmluaXRGcm9tQnl0ZXM9ZnVuY3Rpb24oYixjLGQpe3RoaXMud2lkdGg9Yjt0aGlzLmhl
aWdodD1jO3RoaXMuZm9ybWF0PWEuUkdCQTt0aGlzLnR5cGU9YS5VTlNJR05FRF9CWVRFO2EuYmlu
ZFRleHR1cmUoYS5URVhUVVJFXzJELHRoaXMuaWQpO2EudGV4SW1hZ2UyRChhLlRFWFRVUkVfMkQs
MCxhLlJHQkEsYixjLDAsYS5SR0JBLHRoaXMudHlwZSxuZXcgVWludDhBcnJheShkKSl9O2IucHJv
dG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXthLmRlbGV0ZVRleHR1cmUodGhpcy5pZCk7dGhpcy5p
ZD1udWxsfTtiLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24oYil7YS5hY3RpdmVUZXh0dXJlKGEuVEVY
VFVSRTArKGJ8fDApKTthLmJpbmRUZXh0dXJlKGEuVEVYVFVSRV8yRCx0aGlzLmlkKX07Yi5wcm90
b3R5cGUudW51c2U9ZnVuY3Rpb24oYil7YS5hY3RpdmVUZXh0dXJlKGEuVEVYVFVSRTArCisoYnx8
MCkpO2EuYmluZFRleHR1cmUoYS5URVhUVVJFXzJELG51bGwpfTtiLnByb3RvdHlwZS5lbnN1cmVG
b3JtYXQ9ZnVuY3Rpb24oYixjLGQsZil7aWYoMT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIGg9YXJn
dW1lbnRzWzBdO2I9aC53aWR0aDtjPWguaGVpZ2h0O2Q9aC5mb3JtYXQ7Zj1oLnR5cGV9aWYoYiE9
dGhpcy53aWR0aHx8YyE9dGhpcy5oZWlnaHR8fGQhPXRoaXMuZm9ybWF0fHxmIT10aGlzLnR5cGUp
dGhpcy53aWR0aD1iLHRoaXMuaGVpZ2h0PWMsdGhpcy5mb3JtYXQ9ZCx0aGlzLnR5cGU9ZixhLmJp
bmRUZXh0dXJlKGEuVEVYVFVSRV8yRCx0aGlzLmlkKSxhLnRleEltYWdlMkQoYS5URVhUVVJFXzJE
LDAsdGhpcy5mb3JtYXQsYixjLDAsdGhpcy5mb3JtYXQsdGhpcy50eXBlLG51bGwpfTtiLnByb3Rv
dHlwZS5kcmF3VG89ZnVuY3Rpb24oYil7YS5mcmFtZWJ1ZmZlcj1hLmZyYW1lYnVmZmVyfHxhLmNy
ZWF0ZUZyYW1lYnVmZmVyKCk7YS5iaW5kRnJhbWVidWZmZXIoYS5GUkFNRUJVRkZFUiwKK2EuZnJh
bWVidWZmZXIpO2EuZnJhbWVidWZmZXJUZXh0dXJlMkQoYS5GUkFNRUJVRkZFUixhLkNPTE9SX0FU
VEFDSE1FTlQwLGEuVEVYVFVSRV8yRCx0aGlzLmlkLDApO2lmKGEuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhhLkZSQU1FQlVGRkVSKSE9PWEuRlJBTUVCVUZGRVJfQ09NUExFVEUpdGhyb3cgRXJyb3Io
ImluY29tcGxldGUgZnJhbWVidWZmZXIiKTthLnZpZXdwb3J0KDAsMCx0aGlzLndpZHRoLHRoaXMu
aGVpZ2h0KTtiKCk7YS5iaW5kRnJhbWVidWZmZXIoYS5GUkFNRUJVRkZFUixudWxsKX07dmFyIGM9
bnVsbDtiLnByb3RvdHlwZS5maWxsVXNpbmdDYW52YXM9ZnVuY3Rpb24oYil7YihkKHRoaXMpKTt0
aGlzLmZvcm1hdD1hLlJHQkE7dGhpcy50eXBlPWEuVU5TSUdORURfQllURTthLmJpbmRUZXh0dXJl
KGEuVEVYVFVSRV8yRCx0aGlzLmlkKTthLnRleEltYWdlMkQoYS5URVhUVVJFXzJELDAsYS5SR0JB
LGEuUkdCQSxhLlVOU0lHTkVEX0JZVEUsYyk7cmV0dXJuIHRoaXN9OworYi5wcm90b3R5cGUudG9J
bWFnZT1mdW5jdGlvbihiKXt0aGlzLnVzZSgpO2guZ2V0RGVmYXVsdFNoYWRlcigpLmRyYXdSZWN0
KCk7dmFyIGY9NCp0aGlzLndpZHRoKnRoaXMuaGVpZ2h0LGs9bmV3IFVpbnQ4QXJyYXkoZiksbj1k
KHRoaXMpLHA9bi5jcmVhdGVJbWFnZURhdGEodGhpcy53aWR0aCx0aGlzLmhlaWdodCk7YS5yZWFk
UGl4ZWxzKDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LGEuUkdCQSxhLlVOU0lHTkVEX0JZVEUs
ayk7Zm9yKHZhciBtPTA7bTxmO20rKylwLmRhdGFbbV09a1ttXTtuLnB1dEltYWdlRGF0YShwLDAs
MCk7Yi5zcmM9Yy50b0RhdGFVUkwoKX07Yi5wcm90b3R5cGUuc3dhcFdpdGg9ZnVuY3Rpb24oYSl7
dmFyIGI7Yj1hLmlkO2EuaWQ9dGhpcy5pZDt0aGlzLmlkPWI7Yj1hLndpZHRoO2Eud2lkdGg9dGhp
cy53aWR0aDt0aGlzLndpZHRoPWI7Yj1hLmhlaWdodDthLmhlaWdodD10aGlzLmhlaWdodDt0aGlz
LmhlaWdodD1iO2I9YS5mb3JtYXQ7YS5mb3JtYXQ9Cit0aGlzLmZvcm1hdDt0aGlzLmZvcm1hdD1i
fTtyZXR1cm4gYn0oKSxzPSJmbG9hdCByYW5kb20odmVjMyBzY2FsZSxmbG9hdCBzZWVkKXtyZXR1
cm4gZnJhY3Qoc2luKGRvdChnbF9GcmFnQ29vcmQueHl6K3NlZWQsc2NhbGUpKSo0Mzc1OC41NDUz
K3NlZWQpO30iO3JldHVybiB2fSgpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9i
bG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvanMvbWFpbi5qcyBiL1dlYnNpdGVzL3dl
YmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2pzL21haW4uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzU5NGNjNmZmYmM4MTc3ZjAwNTAyZThhMjk4MmM4ZWQ0ZTg2YjU2YgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0
aC1lZmZlY3RzL2pzL21haW4uanMKQEAgLTAsMCArMSwyNjkgQEAKKy8qCisgKiAgQ29weXJpZ2h0
IChjKSAyMDE1IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z
dHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBp
biB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4KKyAqLworCisndXNlIHN0cmljdCc7
CisKK3ZhciBzdGFydEJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGFydEJ1dHRv
bicpOwordmFyIGNhbGxCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsbEJ1dHRv
bicpOworY2FsbEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CitzdGFydEJ1dHRvbi5vbmNsaWNrID0g
c3RhcnQ7CitjYWxsQnV0dG9uLm9uY2xpY2sgPSBjYWxsOworCit2YXIgc3RhcnRUaW1lOwordmFy
IGxvY2FsVmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9jYWxWaWRlbycpOwordmFy
IHJlbW90ZVZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW90ZVZpZGVvJyk7Cit2
YXIgY2FudmFzID0gZnguY2FudmFzKCk7CisKK2xvY2FsVmlkZW8uYWRkRXZlbnRMaXN0ZW5lcign
bG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbigpIHsKKyAgdHJhY2UoJ0xvY2FsIHZpZGVvIHZpZGVv
V2lkdGg6ICcgKyB0aGlzLnZpZGVvV2lkdGggKworICAgICdweCwgIHZpZGVvSGVpZ2h0OiAnICsg
dGhpcy52aWRlb0hlaWdodCArICdweCcpOworfSk7CisKK3JlbW90ZVZpZGVvLmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgZnVuY3Rpb24oKSB7CisgIHRyYWNlKCdSZW1vdGUgdmlk
ZW8gdmlkZW9XaWR0aDogJyArIHRoaXMudmlkZW9XaWR0aCArCisgICAgJ3B4LCAgdmlkZW9IZWln
aHQ6ICcgKyB0aGlzLnZpZGVvSGVpZ2h0ICsgJ3B4Jyk7Cit9KTsKKworcmVtb3RlVmlkZW8ub25y
ZXNpemUgPSBmdW5jdGlvbigpIHsKKyAgdHJhY2UoJ1JlbW90ZSB2aWRlbyBzaXplIGNoYW5nZWQg
dG8gJyArCisgICAgcmVtb3RlVmlkZW8udmlkZW9XaWR0aCArICd4JyArIHJlbW90ZVZpZGVvLnZp
ZGVvSGVpZ2h0KTsKKyAgLy8gV2UnbGwgdXNlIHRoZSBmaXJzdCBvbnNpemUgY2FsbGJhY2sgYXMg
YW4gaW5kaWNhdGlvbiB0aGF0IHZpZGVvIGhhcyBzdGFydGVkCisgIC8vIHBsYXlpbmcgb3V0Lgor
ICBpZiAoc3RhcnRUaW1lKSB7CisgICAgdmFyIGVsYXBzZWRUaW1lID0gd2luZG93LnBlcmZvcm1h
bmNlLm5vdygpIC0gc3RhcnRUaW1lOworICAgIHRyYWNlKCdTZXR1cCB0aW1lOiAnICsgZWxhcHNl
ZFRpbWUudG9GaXhlZCgzKSArICdtcycpOworICAgIHN0YXJ0VGltZSA9IG51bGw7CisgIH0KK307
CisKK3ZhciBsb2NhbFN0cmVhbTsKK3ZhciBwYzE7Cit2YXIgcGMyOwordmFyIG9mZmVyT3B0aW9u
cyA9IHsKKyAgb2ZmZXJUb1JlY2VpdmVBdWRpbzogMSwKKyAgb2ZmZXJUb1JlY2VpdmVWaWRlbzog
MQorfTsKKworZnVuY3Rpb24gZ2V0TmFtZShwYykgeworICByZXR1cm4gKHBjID09PSBwYzEpID8g
J3BjMScgOiAncGMyJzsKK30KKworZnVuY3Rpb24gZ2V0T3RoZXJQYyhwYykgeworICByZXR1cm4g
KHBjID09PSBwYzEpID8gcGMyIDogcGMxOworfQorCitmdW5jdGlvbiBnb3RTdHJlYW0oc3RyZWFt
KSB7CisgIHRyYWNlKCdSZWNlaXZlZCBsb2NhbCBzdHJlYW0nKTsKKyAgbG9jYWxWaWRlby5zcmNP
YmplY3QgPSBzdHJlYW07CisgIGxvY2FsU3RyZWFtID0gc3RyZWFtOworICBjYWxsQnV0dG9uLmRp
c2FibGVkID0gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIHN0YXJ0KCkgeworICB0cmFjZSgnUmVxdWVz
dGluZyBsb2NhbCBzdHJlYW0nKTsKKyAgc3RhcnRCdXR0b24uZGlzYWJsZWQgPSB0cnVlOworICBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7CisgICAgYXVkaW86IGZhbHNlLAor
ICAgIHZpZGVvOiB0cnVlfSkKKyAgLnRoZW4oZ290U3RyZWFtKQorICAuY2F0Y2goZnVuY3Rpb24o
ZSkgeworICAgIGFsZXJ0KCdnZXRVc2VyTWVkaWEoKSBlcnJvcjogJyArIGUpOworICB9KTsKK30K
KworZnVuY3Rpb24gY2FsbCgpIHsKKyAgY2FsbEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CisgIHRy
YWNlKCdTdGFydGluZyBjYWxsJyk7CisgIHN0YXJ0VGltZSA9IHdpbmRvdy5wZXJmb3JtYW5jZS5u
b3coKTsKKyAgdmFyIHZpZGVvVHJhY2tzID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKTsK
KyAgdmFyIGF1ZGlvVHJhY2tzID0gbG9jYWxTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKTsKKyAgaWYg
KHZpZGVvVHJhY2tzLmxlbmd0aCA+IDApIHsKKyAgICB0cmFjZSgnVXNpbmcgdmlkZW8gZGV2aWNl
OiAnICsgdmlkZW9UcmFja3NbMF0ubGFiZWwpOworICB9CisgIGlmIChhdWRpb1RyYWNrcy5sZW5n
dGggPiAwKSB7CisgICAgdHJhY2UoJ1VzaW5nIGF1ZGlvIGRldmljZTogJyArIGF1ZGlvVHJhY2tz
WzBdLmxhYmVsKTsKKyAgfQorICB2YXIgc2VydmVycyA9IG51bGw7CisgIHBjMSA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbihzZXJ2ZXJzKTsKKyAgdHJhY2UoJ0NyZWF0ZWQgbG9jYWwgcGVlciBjb25u
ZWN0aW9uIG9iamVjdCBwYzEnKTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZnVuY3Rpb24oZSkg
eworICAgIG9uSWNlQ2FuZGlkYXRlKHBjMSwgZSk7CisgIH07CisgIHBjMiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbihzZXJ2ZXJzKTsKKyAgdHJhY2UoJ0NyZWF0ZWQgcmVtb3RlIHBlZXIgY29ubmVj
dGlvbiBvYmplY3QgcGMyJyk7CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGZ1bmN0aW9uKGUpIHsK
KyAgICBvbkljZUNhbmRpZGF0ZShwYzIsIGUpOworICB9OworICBwYzEub25pY2Vjb25uZWN0aW9u
c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgb25JY2VTdGF0ZUNoYW5nZShwYzEsIGUp
OworICB9OworICBwYzIub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihlKSB7
CisgICAgb25JY2VTdGF0ZUNoYW5nZShwYzIsIGUpOworICB9OworICBwYzIub250cmFjayA9IGdv
dFJlbW90ZVRyYWNrOworCisgIHN0YXJ0VXNpbmdEaXNjcmVldE1vZGUoKTsKKyAgcGMxLmFkZFRy
YWNrKGNhbnZhc1ZpZGVvU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIGNhbnZhc1ZpZGVvU3Ry
ZWFtKTsKKyAgdHJhY2UoJ0FkZGVkIGxvY2FsIHN0cmVhbSB0byBwYzEnKTsKKworICB0cmFjZSgn
cGMxIGNyZWF0ZU9mZmVyIHN0YXJ0Jyk7CisgIHBjMS5jcmVhdGVPZmZlcigKKyAgICBvZmZlck9w
dGlvbnMKKyAgKS50aGVuKAorICAgIG9uQ3JlYXRlT2ZmZXJTdWNjZXNzLAorICAgIG9uQ3JlYXRl
U2Vzc2lvbkRlc2NyaXB0aW9uRXJyb3IKKyAgKTsKK30KKworZnVuY3Rpb24gb25DcmVhdGVTZXNz
aW9uRGVzY3JpcHRpb25FcnJvcihlcnJvcikgeworICB0cmFjZSgnRmFpbGVkIHRvIGNyZWF0ZSBz
ZXNzaW9uIGRlc2NyaXB0aW9uOiAnICsgZXJyb3IudG9TdHJpbmcoKSk7Cit9CisKK2Z1bmN0aW9u
IG9uQ3JlYXRlT2ZmZXJTdWNjZXNzKGRlc2MpIHsKKyAgdHJhY2UoJ09mZmVyIGZyb20gcGMxXG4n
ICsgZGVzYy5zZHApOworICB0cmFjZSgncGMxIHNldExvY2FsRGVzY3JpcHRpb24gc3RhcnQnKTsK
KyAgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oZGVzYykudGhlbigKKyAgICBmdW5jdGlvbigpIHsK
KyAgICAgIG9uU2V0TG9jYWxTdWNjZXNzKHBjMSk7CisgICAgfSwKKyAgICBvblNldFNlc3Npb25E
ZXNjcmlwdGlvbkVycm9yCisgICk7CisgIHRyYWNlKCdwYzIgc2V0UmVtb3RlRGVzY3JpcHRpb24g
c3RhcnQnKTsKKyAgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGRlc2MpLnRoZW4oCisgICAgZnVu
Y3Rpb24oKSB7CisgICAgICBvblNldFJlbW90ZVN1Y2Nlc3MocGMyKTsKKyAgICB9LAorICAgIG9u
U2V0U2Vzc2lvbkRlc2NyaXB0aW9uRXJyb3IKKyAgKTsKKyAgdHJhY2UoJ3BjMiBjcmVhdGVBbnN3
ZXIgc3RhcnQnKTsKKyAgLy8gU2luY2UgdGhlICdyZW1vdGUnIHNpZGUgaGFzIG5vIG1lZGlhIHN0
cmVhbSB3ZSBuZWVkCisgIC8vIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGNvbnN0cmFpbnRzIGluIG9y
ZGVyIGZvciBpdCB0bworICAvLyBhY2NlcHQgdGhlIGluY29taW5nIG9mZmVyIG9mIGF1ZGlvIGFu
ZCB2aWRlby4KKyAgcGMyLmNyZWF0ZUFuc3dlcigpLnRoZW4oCisgICAgb25DcmVhdGVBbnN3ZXJT
dWNjZXNzLAorICAgIG9uQ3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uRXJyb3IKKyAgKTsKK30KKwor
ZnVuY3Rpb24gb25TZXRMb2NhbFN1Y2Nlc3MocGMpIHsKKyAgdHJhY2UoZ2V0TmFtZShwYykgKyAn
IHNldExvY2FsRGVzY3JpcHRpb24gY29tcGxldGUnKTsKK30KKworZnVuY3Rpb24gb25TZXRSZW1v
dGVTdWNjZXNzKHBjKSB7CisgIHRyYWNlKGdldE5hbWUocGMpICsgJyBzZXRSZW1vdGVEZXNjcmlw
dGlvbiBjb21wbGV0ZScpOworfQorCitmdW5jdGlvbiBvblNldFNlc3Npb25EZXNjcmlwdGlvbkVy
cm9yKGVycm9yKSB7CisgIHRyYWNlKCdGYWlsZWQgdG8gc2V0IHNlc3Npb24gZGVzY3JpcHRpb246
ICcgKyBlcnJvci50b1N0cmluZygpKTsKK30KKworZnVuY3Rpb24gZ290UmVtb3RlVHJhY2soZSkg
eworICByZW1vdGVWaWRlby5zcmNPYmplY3QgPSBlLnN0cmVhbXNbMF07CisgIHRyYWNlKCdwYzIg
cmVjZWl2ZWQgcmVtb3RlIHRyYWNrJyk7Cit9CisKK2Z1bmN0aW9uIG9uQ3JlYXRlQW5zd2VyU3Vj
Y2VzcyhkZXNjKSB7CisgIHRyYWNlKCdBbnN3ZXIgZnJvbSBwYzI6XG4nICsgZGVzYy5zZHApOwor
ICB0cmFjZSgncGMyIHNldExvY2FsRGVzY3JpcHRpb24gc3RhcnQnKTsKKyAgcGMyLnNldExvY2Fs
RGVzY3JpcHRpb24oZGVzYykudGhlbigKKyAgICBmdW5jdGlvbigpIHsKKyAgICAgIG9uU2V0TG9j
YWxTdWNjZXNzKHBjMik7CisgICAgfSwKKyAgICBvblNldFNlc3Npb25EZXNjcmlwdGlvbkVycm9y
CisgICk7CisgIHRyYWNlKCdwYzEgc2V0UmVtb3RlRGVzY3JpcHRpb24gc3RhcnQnKTsKKyAgcGMx
LnNldFJlbW90ZURlc2NyaXB0aW9uKGRlc2MpLnRoZW4oCisgICAgZnVuY3Rpb24oKSB7CisgICAg
ICBvblNldFJlbW90ZVN1Y2Nlc3MocGMxKTsKKyAgICB9LAorICAgIG9uU2V0U2Vzc2lvbkRlc2Ny
aXB0aW9uRXJyb3IKKyAgKTsKK30KKworZnVuY3Rpb24gb25JY2VDYW5kaWRhdGUocGMsIGV2ZW50
KSB7CisgIGdldE90aGVyUGMocGMpLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpCisg
IC50aGVuKAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgb25BZGRJY2VDYW5kaWRhdGVTdWNjZXNz
KHBjKTsKKyAgICB9LAorICAgIGZ1bmN0aW9uKGVycikgeworICAgICAgb25BZGRJY2VDYW5kaWRh
dGVFcnJvcihwYywgZXJyKTsKKyAgICB9CisgICk7CisgIHRyYWNlKGdldE5hbWUocGMpICsgJyBJ
Q0UgY2FuZGlkYXRlOiBcbicgKyAoZXZlbnQuY2FuZGlkYXRlID8KKyAgICAgIGV2ZW50LmNhbmRp
ZGF0ZS5jYW5kaWRhdGUgOiAnKG51bGwpJykpOworfQorCitmdW5jdGlvbiBvbkFkZEljZUNhbmRp
ZGF0ZVN1Y2Nlc3MocGMpIHsKKyAgdHJhY2UoZ2V0TmFtZShwYykgKyAnIGFkZEljZUNhbmRpZGF0
ZSBzdWNjZXNzJyk7Cit9CisKK2Z1bmN0aW9uIG9uQWRkSWNlQ2FuZGlkYXRlRXJyb3IocGMsIGVy
cm9yKSB7CisgIHRyYWNlKGdldE5hbWUocGMpICsgJyBmYWlsZWQgdG8gYWRkIElDRSBDYW5kaWRh
dGU6ICcgKyBlcnJvci50b1N0cmluZygpKTsKK30KKworZnVuY3Rpb24gb25JY2VTdGF0ZUNoYW5n
ZShwYywgZXZlbnQpIHsKKyAgaWYgKHBjKSB7CisgICAgdHJhY2UoZ2V0TmFtZShwYykgKyAnIElD
RSBzdGF0ZTogJyArIHBjLmljZUNvbm5lY3Rpb25TdGF0ZSk7CisgICAgY29uc29sZS5sb2coJ0lD
RSBzdGF0ZSBjaGFuZ2UgZXZlbnQ6ICcsIGV2ZW50KTsKKyAgfQorfQorCit2YXIgY2FudmFzVmlk
ZW9TdHJlYW07Cit2YXIgZHJhd0NhbnZhcyA9IGZhbHNlOwordmFyIGhleGFnb25TaXplID0gMzA7
CitmdW5jdGlvbiB2aWRlb1RvQ2FudmFzKCkKK3sKKyAgICB2YXIgdGV4dHVyZSA9IGNhbnZhcy50
ZXh0dXJlKGxvY2FsVmlkZW8pOworICAgIGNhbnZhcy5kcmF3KHRleHR1cmUpLmhleGFnb25hbFBp
eGVsYXRlKDMyMCwgMjM5LjUsIGhleGFnb25TaXplKS51cGRhdGUoKTsKKyAgICBpZiAoZHJhd0Nh
bnZhcykKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh2aWRlb1RvQ2FudmFz
KTsKK30KKwordmFyIGlzVXBkYXRpbmdIZXhhZ29uU2l6ZSA9IGZhbHNlOworZnVuY3Rpb24gdXBk
YXRlSGV4YWdvblNpemUoKQoreworICAgIGlmICghaXNVcGRhdGluZ0hleGFnb25TaXplKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKGhleGFnb25TaXplIDw9IDEpIHsKKyAgICAgICAgc3RvcFVz
aW5nRGlzY3JlZXRNb2RlKCk7CisgICAgICAgIGlzVXBkYXRpbmdIZXhhZ29uU2l6ZSA9IGZhbHNl
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGhleGFnb25TaXplLS07CisgICAgc2V0VGlt
ZW91dCh1cGRhdGVIZXhhZ29uU2l6ZSwgMzAwKTsKK30KKworZnVuY3Rpb24gc3RhcnRVc2luZ0Rp
c2NyZWV0TW9kZSgpCit7CisgICAgaGV4YWdvblNpemUgPSAzMDsKKyAgICBpZiAoIWNhbnZhc1Zp
ZGVvU3RyZWFtKQorICAgICAgICBjYW52YXNWaWRlb1N0cmVhbSA9IGNhbnZhcy5jYXB0dXJlU3Ry
ZWFtKCk7CisKKyAgICBpZiAoIWRyYXdDYW52YXMpIHsKKyAgICAgICAgZHJhd0NhbnZhcyA9IHRy
dWU7CisgICAgICAgIHZpZGVvVG9DYW52YXMoKTsKKyAgICB9CisKKyAgICBpZiAoIWlzVXBkYXRp
bmdIZXhhZ29uU2l6ZSkgeworICAgICAgICBpc1VwZGF0aW5nSGV4YWdvblNpemUgPSB0cnVlOwor
ICAgICAgICB1cGRhdGVIZXhhZ29uU2l6ZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gc3RvcFVz
aW5nRGlzY3JlZXRNb2RlKCkKK3sKKyAgICBmb3IodmFyIHNlbmRlciBvZiBwYzEuZ2V0U2VuZGVy
cygpKSB7CisgICAgICAgIGlmIChzZW5kZXIudHJhY2sua2luZCA9PT0gInZpZGVvIikgeworICAg
ICAgICAgICAgc2VuZGVyLnJlcGxhY2VUcmFjayhsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygp
WzBdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKworCmRpZmYg
LS1naXQgYS9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZm
ZWN0cy9qcy90ZXN0LmpzIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9w
Yy13aXRoLWVmZmVjdHMvanMvdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTYxODMzZmQ4MzY4ZDk1YzQ4
ZTlhMTJhZWZhODdlMWFkOGU0YzBmCi0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0
Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvanMvdGVzdC5qcwpAQCAtMCww
ICsxLDU0IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxNSBUaGUgV2ViUlRDIHByb2plY3Qg
YXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICog
IHRyZWUuCisgKi8KKyAvKiBlc2xpbnQtZW52IG5vZGUgKi8KKworJ3VzZSBzdHJpY3QnOworLy8g
VGhpcyBpcyBhIGJhc2ljIHRlc3QgZmlsZSBmb3IgdXNlIHdpdGggdGVzdGxpbmcuCisvLyBUaGUg
dGVzdCBzY3JpcHQgbGFuZ3VhZ2UgY29tZXMgZnJvbSB0YXBlLgordmFyIHRlc3QgPSByZXF1aXJl
KCd0YXBlJyk7CisKK3ZhciB3ZWJkcml2ZXIgPSByZXF1aXJlKCdzZWxlbml1bS13ZWJkcml2ZXIn
KTsKK3ZhciBzZWxlbml1bUhlbHBlcnMgPSByZXF1aXJlKCd3ZWJydGMtdXRpbGl0aWVzJykuc2Vs
ZW5pdW1MaWI7CisKK3Rlc3QoJ1BlZXJDb25uZWN0aW9uIHBjMSBzYW1wbGUnLCBmdW5jdGlvbih0
KSB7CisgIHZhciBkcml2ZXIgPSBzZWxlbml1bUhlbHBlcnMuYnVpbGREcml2ZXIoKTsKKworICBk
cml2ZXIuZ2V0KCdmaWxlOi8vJyArIHByb2Nlc3MuY3dkKCkgKworICAgICAgJy9zcmMvY29udGVu
dC9wZWVyY29ubmVjdGlvbi9wYzEvaW5kZXguaHRtbCcpCisgIC50aGVuKGZ1bmN0aW9uKCkgewor
ICAgIHQucGFzcygncGFnZSBsb2FkZWQnKTsKKyAgICByZXR1cm4gZHJpdmVyLmZpbmRFbGVtZW50
KHdlYmRyaXZlci5CeS5pZCgnc3RhcnRCdXR0b24nKSkuY2xpY2soKTsKKyAgfSkKKyAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgdC5wYXNzKCdnb3QgbWVkaWEnKTsKKyAgICByZXR1cm4gZHJpdmVy
LmZpbmRFbGVtZW50KHdlYmRyaXZlci5CeS5pZCgnY2FsbEJ1dHRvbicpKS5jbGljaygpOworICB9
KQorICAudGhlbihmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gZHJpdmVyLndhaXQoZnVuY3Rpb24o
KSB7CisgICAgICByZXR1cm4gZHJpdmVyLmV4ZWN1dGVTY3JpcHQoCisgICAgICAgICAgJ3JldHVy
biBwYzIgJiYgcGMyLmljZUNvbm5lY3Rpb25TdGF0ZSA9PT0gXCdjb25uZWN0ZWRcJzsnKTsKKyAg
ICB9LCAzMCAqIDEwMDApOworICB9KQorICAudGhlbihmdW5jdGlvbigpIHsKKyAgICB0LnBhc3Mo
J3BjMiBJQ0UgY29ubmVjdGVkJyk7CisgICAgcmV0dXJuIGRyaXZlci5maW5kRWxlbWVudCh3ZWJk
cml2ZXIuQnkuaWQoJ2hhbmd1cEJ1dHRvbicpKS5jbGljaygpOworICB9KQorICAudGhlbihmdW5j
dGlvbigpIHsKKyAgICByZXR1cm4gZHJpdmVyLndhaXQoZnVuY3Rpb24oKSB7CisgICAgICByZXR1
cm4gZHJpdmVyLmV4ZWN1dGVTY3JpcHQoJ3JldHVybiBwYzEgPT09IG51bGwnKTsKKyAgICB9LCAz
MCAqIDEwMDApOworICB9KQorICAudGhlbihmdW5jdGlvbigpIHsKKyAgICB0LnBhc3MoJ2hhbmd1
cCcpOworICAgIHQuZW5kKCk7CisgIH0pCisgIC50aGVuKG51bGwsIGZ1bmN0aW9uKGVycikgewor
ICAgIHQuZmFpbChlcnIpOworICAgIHQuZW5kKCk7CisgIH0pOworfSk7CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9tYWlu
LmNzcyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZl
Y3RzL21haW4uY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZGI3N2JjMDkwODk3OTRlYTUwYjU1MmYzODdkMzhl
MDU1MWIwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmls
ZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9tYWluLmNzcwpAQCAtMCwwICsxLDI1OCBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLgorICovCisu
aGlkZGVuIHsKKyAgZGlzcGxheTogbm9uZTsKK30KKworLmhpZ2hsaWdodCB7CisgIGJhY2tncm91
bmQtY29sb3I6ICNlZWU7CisgIGZvbnQtc2l6ZTogMS4yZW07CisgIG1hcmdpbjogMCAwIDMwcHgg
MDsKKyAgcGFkZGluZzogMC4yZW0gMS41ZW07Cit9Cisud2FybmluZyB7CisgIGNvbG9yOiByZWQ7
CisgIGZvbnQtd2VpZ2h0OiA0MDA7Cit9CisKK2RpdiNlcnJvck1zZyBwIHsKKyAgY29sb3I6ICNG
MDA7Cit9CisKK2JvZHkgeworICBmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7Cisg
IGZvbnQtd2VpZ2h0OiAzMDA7Cit9CisKK2EgeworY29sb3I6ICM2ZmE4ZGM7Citmb250LXdlaWdo
dDogMzAwOwordGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorCithOmhvdmVyIHsKK2NvbG9yOiAj
M2Q4NWM2OwordGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9CisKK2Ejdmlld1NvdXJjZSB7
CitkaXNwbGF5OiBibG9jazsKK21hcmdpbjogMS4zZW0gMCAwIDA7Citib3JkZXItdG9wOiAxcHgg
c29saWQgIzk5OTsKK3BhZGRpbmc6IDFlbSAwIDAgMDsKK30KKworZGl2I2xpbmtzIGEgeworZGlz
cGxheTogYmxvY2s7CitsaW5lLWhlaWdodDogMS4zZW07CittYXJnaW46IDAgMCAxLjVlbSAwOwor
fQorCitkaXYub3V0cHV0U2VsZWN0b3IgeworbWFyZ2luOiAtMS4zZW0gMCAyZW0gMDsKK30KKwor
QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7CisvKiBoYWNrISB0byBkZXRl
Y3Qgbm9uLXRvdWNoIGRldmljZXMgKi8KKyAgZGl2I2xpbmtzIGEgeworICAgIGxpbmUtaGVpZ2h0
OiAwLjhlbTsKKyAgfQorfQorCitoMSBhIHsKK2ZvbnQtd2VpZ2h0OiAzMDA7CittYXJnaW46IDAg
MTBweCAwIDA7Cit3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCithdWRpbyB7CittYXgtd2lkdGg6
IDEwMCU7Cit9CisKK2JvZHkgeworZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmOwor
bWFyZ2luOiAwOworcGFkZGluZzogMWVtOword29yZC1icmVhazogYnJlYWstd29yZDsKK30KKwor
YnV0dG9uIHsKK2JhY2tncm91bmQtY29sb3I6ICNkODRhMzg7Citib3JkZXI6IG5vbmU7Citib3Jk
ZXItcmFkaXVzOiAycHg7Citjb2xvcjogd2hpdGU7Citmb250LWZhbWlseTogJ1JvYm90bycsIHNh
bnMtc2VyaWY7Citmb250LXNpemU6IDAuOGVtOworbWFyZ2luOiAwIDAgMWVtIDA7CitwYWRkaW5n
OiAwLjVlbSAwLjdlbSAwLjZlbSAwLjdlbTsKK30KKworYnV0dG9uOmFjdGl2ZSB7CitiYWNrZ3Jv
dW5kLWNvbG9yOiAjY2Y0MDJmOworfQorCitidXR0b246aG92ZXIgeworYmFja2dyb3VuZC1jb2xv
cjogI2NmNDAyZjsKK30KKworYnV0dG9uW2Rpc2FibGVkXSB7Citjb2xvcjogI2NjYzsKK30KKwor
YnV0dG9uW2Rpc2FibGVkXTpob3ZlciB7CitiYWNrZ3JvdW5kLWNvbG9yOiAjZDg0YTM4OworfQor
CitjYW52YXMgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOworICBtYXgtd2lkdGg6IDEwMCU7
CisgIHdpZHRoOiAxMDAlOworfQorCitjb2RlIHsKK2ZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fu
cy1zZXJpZjsKK2ZvbnQtd2VpZ2h0OiA0MDA7Cit9CisKK2RpdiNjb250YWluZXIgeworbWFyZ2lu
OiAwIGF1dG8gMCBhdXRvOworbWF4LXdpZHRoOiA0MGVtOworcGFkZGluZzogMWVtIDEuNWVtIDEu
M2VtIDEuNWVtOworfQorCitkaXYjbGlua3MgeworcGFkZGluZzogMC41ZW0gMCAwIDA7Cit9CisK
K2gxIHsKK2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOworZm9udC1mYW1pbHk6ICdSb2Jv
dG8nLCBzYW5zLXNlcmlmOworZm9udC13ZWlnaHQ6IDUwMDsKK21hcmdpbjogMCAwIDAuOGVtIDA7
CitwYWRkaW5nOiAwIDAgMC4yZW0gMDsKK30KKworaDIgeworY29sb3I6ICM0NDQ7Citmb250LXNp
emU6IDFlbTsKK2ZvbnQtd2VpZ2h0OiA1MDA7CitsaW5lLWhlaWdodDogMS4yZW07CittYXJnaW46
IDAgMCAwLjhlbSAwOworfQorCitoMyB7Citib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTsKK2Nv
bG9yOiAjNjY2OworZm9udC13ZWlnaHQ6IDUwMDsKK21hcmdpbjogMjBweCAwIDEwcHggMDsKK3Bh
ZGRpbmc6IDEwcHggMCAwIDA7Cit3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCitodG1sIHsKKy8q
IGF2b2lkIGFubm95aW5nIHBhZ2Ugd2lkdGggY2hhbmdlCit3aGVuIG1vdmluZyBmcm9tIHRoZSBo
b21lIHBhZ2UgKi8KK292ZXJmbG93LXk6IHNjcm9sbDsKK30KKworaW1nIHsKK2JvcmRlcjogbm9u
ZTsKK21heC13aWR0aDogMTAwJTsKK30KKworaW5wdXRbdHlwZT1yYWRpb10geworcG9zaXRpb246
IHJlbGF0aXZlOwordG9wOiAtMXB4OworfQorCitwIHsKK2NvbG9yOiAjNDQ0OworZm9udC13ZWln
aHQ6IDMwMDsKK2xpbmUtaGVpZ2h0OiAxLjZlbTsKK30KKworcCNkYXRhIHsKK2JvcmRlci10b3A6
IDFweCBkb3R0ZWQgIzY2NjsKK2ZvbnQtZmFtaWx5OiBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOwor
bGluZS1oZWlnaHQ6IDEuM2VtOworbWF4LWhlaWdodDogMTAwMHB4Oworb3ZlcmZsb3cteTogYXV0
bzsKK3BhZGRpbmc6IDFlbSAwIDAgMDsKK30KKworcC5ib3JkZXJCZWxvdyB7Citib3JkZXItYm90
dG9tOiAxcHggc29saWQgI2FhYTsKK3BhZGRpbmc6IDAgMCAyMHB4IDA7Cit9CisKK3NlY3Rpb24g
cDpsYXN0LW9mLXR5cGUgeworbWFyZ2luOiAwOworfQorCitzZWN0aW9uIHsKKyAgYm9yZGVyLWJv
dHRvbTogMXB4IHNvbGlkICNlZWU7CisgIG1hcmdpbjogMCAwIDMwcHggMDsKKyAgcGFkZGluZzog
MCAwIDIwcHggMDsKK30KKworc2VjdGlvbjpsYXN0LW9mLXR5cGUgeworICBib3JkZXItYm90dG9t
OiBub25lOworICBwYWRkaW5nOiAwIDAgMWVtIDA7Cit9CisKK3NlbGVjdCB7CisgIG1hcmdpbjog
MCAxZW0gMWVtIDA7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgdG9wOiAtMXB4OworfQorCito
MSBzcGFuIHsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworc3Ryb25nIHsKKyAgZm9udC13
ZWlnaHQ6IDUwMDsKK30KKwordGV4dGFyZWEgeworICBmb250LWZhbWlseTogJ1JvYm90bycsIHNh
bnMtc2VyaWY7Cit9CisKK3ZpZGVvIHsKKyAgYmFja2dyb3VuZDogIzIyMjsKKyAgbWFyZ2luOiAw
IDAgMjBweCAwOworICB3aWR0aDogMTAwJTsKK30KKworQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13
aWR0aDogNjUwcHgpIHsKKyAgLmhpZ2hsaWdodCB7CisgICAgZm9udC1zaXplOiAxZW07CisgICAg
bWFyZ2luOiAwIDAgMjBweCAwOworICAgIHBhZGRpbmc6IDAuMmVtIDFlbTsKKyAgfQorICBoMSB7
CisgICAgZm9udC1zaXplOiAyNHB4OworICB9Cit9CisKK0BtZWRpYSBzY3JlZW4gYW5kIChtYXgt
d2lkdGg6IDU1MHB4KSB7CisgIGJ1dHRvbjphY3RpdmUgeworICAgIGJhY2tncm91bmQtY29sb3I6
IGRhcmtSZWQ7CisgIH0KKyAgaDEgeworICAgIGZvbnQtc2l6ZTogMjJweDsKKyAgfQorfQorCitA
bWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NTBweCkgeworICBoMSB7CisgICAgZm9udC1z
aXplOiAyMHB4OworICB9Cit9CisKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314331</attachid>
            <date>2017-06-30 17:26:15 -0700</date>
            <delta_ts>2017-06-30 21:53:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174049-20170630172614.patch</filename>
            <type>text/plain</type>
            <size>42639</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MDIzCmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IGRlMDU2
MmU3ZTM1MjIwZTcxYWFmMmFlMjM2YmY3YmE4ODI1YzdlZWQuLjRiMjU3NmFlMThjN2Y2YjczYjFi
NmI0YWJlOTAzZjNjMTk2NzIxOGQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hh
bmdlTG9nCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTctMDYtMzAgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBhIFdlYlJUQyBleGFtcGxlIGZvciBhIGJsb2cgcG9zdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhhbXBsZSBkb2VzIGEgdHlwaWNhbCBXZWJSVEMg
dmlkZW8gY2FsbCwgYnV0IHVzZXMgY2FudmFzIHRvIGRvIHNvbWUgaW1hZ2UgZWZmZWN0cy4KKyAg
ICAgICAgSW1hZ2UgZWZmZWN0cyB3aWxsIGxhc3QgZm9yIDMwIHNlY29uZHMuCisgICAgICAgIEFm
dGVyIHRoYXQgdGltZSwgdGhlIHZpZGVvIHN0cmVhbSBpcyBkaXJlY3RseSBzZW50LgorICAgICAg
ICBUaGlzIGlsbHVzdHJhdGVzIHVzaW5nIFJUQ1BlZXJDb25uZWN0aW9uLCByZXBsYWNlVHJhY2sg
YW5kIGNhbnZhcyBjYXB0dXJlLgorCisgICAgICAgICogYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0
aC1lZmZlY3RzL0xJQ0VOU0U6IEFkZGVkLgorICAgICAgICAqIGJsb2ctZmlsZXMvd2VicnRjL3Bj
LXdpdGgtZWZmZWN0cy9nbGZ4LmpzOiBBZGRlZC4KKyAgICAgICAgKiBibG9nLWZpbGVzL3dlYnJ0
Yy9wYy13aXRoLWVmZmVjdHMvaW5kZXguaHRtbDogQWRkZWQuCisgICAgICAgICogYmxvZy1maWxl
cy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL21haW4uY3NzOiBBZGRlZC4KKyAgICAgICAgKiBibG9n
LWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvbWFpbi5qczogQWRkZWQuCisKIDIwMTctMDYt
MjggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgT2Jq
ZWN0IHJlc3Qvc3ByZWFkIHRlc3QgdG8gdGhlIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyB0ZXN0IHBh
Z2UKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMt
d2l0aC1lZmZlY3RzL0xJQ0VOU0UgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2Vi
cnRjL3BjLXdpdGgtZWZmZWN0cy9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5NDk4MTk1MTI5MjNkMzc5
YWE5ZmM4OGM5MGJkMGUzYzgxMGJhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy93ZWJr
aXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9MSUNFTlNFCkBAIC0wLDAg
KzEsMjkgQEAKK0NvcHlyaWdodCAoYykgMjAxNCwgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorbWV0Ogor
CisgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisKKyAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgorICAgIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAgICBkaXN0cmlidXRpb24uCisKKyAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBub3Ig
dGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgICAgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAgICB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKK0xJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKK0hPTERFUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKK1NQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
K0xJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKK09G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvZ2xmeC5qcyBi
L1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL2ds
ZnguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjhmMjliYTdlZjA2Zjg3YTIwNzk3NjIwODYyNTA0ZjczNWZiNWNj
NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJy
dGMvcGMtd2l0aC1lZmZlY3RzL2dsZnguanMKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIGdsZngu
anMKKyAqIGh0dHA6Ly9ldmFudy5naXRodWIuY29tL2dsZnguanMvCisgKgorICogQ29weXJpZ2h0
IDIwMTEgRXZhbiBXYWxsYWNlCisgKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKKyAq
LwordmFyIGZ4PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcShhLGQsYyl7cmV0dXJuIE1hdGgubWF4KGEs
TWF0aC5taW4oZCxjKSl9ZnVuY3Rpb24gdyhiKXtyZXR1cm57XzpiLGxvYWRDb250ZW50c09mOmZ1
bmN0aW9uKGIpe2E9dGhpcy5fLmdsO3RoaXMuXy5sb2FkQ29udGVudHNPZihiKX0sZGVzdHJveTpm
dW5jdGlvbigpe2E9dGhpcy5fLmdsO3RoaXMuXy5kZXN0cm95KCl9fX1mdW5jdGlvbiBBKGEpe3Jl
dHVybiB3KHIuZnJvbUVsZW1lbnQoYSkpfWZ1bmN0aW9uIEIoYixkKXt2YXIgYz1hLlVOU0lHTkVE
X0JZVEU7aWYoYS5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0IikmJmEuZ2V0RXh0ZW5z
aW9uKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSl7dmFyIGU9bmV3IHIoMTAwLDEwMCxhLlJH
QkEsYS5GTE9BVCk7dHJ5e2UuZHJhd1RvKGZ1bmN0aW9uKCl7Yz1hLkZMT0FUfSl9Y2F0Y2goZyl7
fWUuZGVzdHJveSgpfXRoaXMuXy50ZXh0dXJlJiZ0aGlzLl8udGV4dHVyZS5kZXN0cm95KCk7Cit0
aGlzLl8uc3BhcmVUZXh0dXJlJiZ0aGlzLl8uc3BhcmVUZXh0dXJlLmRlc3Ryb3koKTt0aGlzLndp
ZHRoPWI7dGhpcy5oZWlnaHQ9ZDt0aGlzLl8udGV4dHVyZT1uZXcgcihiLGQsYS5SR0JBLGMpO3Ro
aXMuXy5zcGFyZVRleHR1cmU9bmV3IHIoYixkLGEuUkdCQSxjKTt0aGlzLl8uZXh0cmFUZXh0dXJl
PXRoaXMuXy5leHRyYVRleHR1cmV8fG5ldyByKDAsMCxhLlJHQkEsYyk7dGhpcy5fLmZsaXBwZWRT
aGFkZXI9dGhpcy5fLmZsaXBwZWRTaGFkZXJ8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJE
IHRleHR1cmU7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe2dsX0ZyYWdDb2xvcj10
ZXh0dXJlMkQodGV4dHVyZSx2ZWMyKHRleENvb3JkLngsMS4wLXRleENvb3JkLnkpKTt9Iik7dGhp
cy5fLmlzSW5pdGlhbGl6ZWQ9ITB9ZnVuY3Rpb24gQyhhLGQsYyl7dGhpcy5fLmlzSW5pdGlhbGl6
ZWQmJgorYS5fLndpZHRoPT10aGlzLndpZHRoJiZhLl8uaGVpZ2h0PT10aGlzLmhlaWdodHx8Qi5j
YWxsKHRoaXMsZD9kOmEuXy53aWR0aCxjP2M6YS5fLmhlaWdodCk7YS5fLnVzZSgpO3RoaXMuXy50
ZXh0dXJlLmRyYXdUbyhmdW5jdGlvbigpe2guZ2V0RGVmYXVsdFNoYWRlcigpLmRyYXdSZWN0KCl9
KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBEKCl7dGhpcy5fLnRleHR1cmUudXNlKCk7dGhpcy5fLmZs
aXBwZWRTaGFkZXIuZHJhd1JlY3QoKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBmKGEsZCxjLGUpeyhj
fHx0aGlzLl8udGV4dHVyZSkudXNlKCk7dGhpcy5fLnNwYXJlVGV4dHVyZS5kcmF3VG8oZnVuY3Rp
b24oKXthLnVuaWZvcm1zKGQpLmRyYXdSZWN0KCl9KTt0aGlzLl8uc3BhcmVUZXh0dXJlLnN3YXBX
aXRoKGV8fHRoaXMuXy50ZXh0dXJlKX1mdW5jdGlvbiBFKGEpe2EucGFyZW50Tm9kZS5pbnNlcnRC
ZWZvcmUodGhpcyxhKTthLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk7cmV0dXJuIHRoaXN9Citm
dW5jdGlvbiBGKCl7dmFyIGI9bmV3IHIodGhpcy5fLnRleHR1cmUud2lkdGgsdGhpcy5fLnRleHR1
cmUuaGVpZ2h0LGEuUkdCQSxhLlVOU0lHTkVEX0JZVEUpO3RoaXMuXy50ZXh0dXJlLnVzZSgpO2Iu
ZHJhd1RvKGZ1bmN0aW9uKCl7aC5nZXREZWZhdWx0U2hhZGVyKCkuZHJhd1JlY3QoKX0pO3JldHVy
biB3KGIpfWZ1bmN0aW9uIEcoKXt2YXIgYj10aGlzLl8udGV4dHVyZS53aWR0aCxkPXRoaXMuXy50
ZXh0dXJlLmhlaWdodCxjPW5ldyBVaW50OEFycmF5KDQqYipkKTt0aGlzLl8udGV4dHVyZS5kcmF3
VG8oZnVuY3Rpb24oKXthLnJlYWRQaXhlbHMoMCwwLGIsZCxhLlJHQkEsYS5VTlNJR05FRF9CWVRF
LGMpfSk7cmV0dXJuIGN9ZnVuY3Rpb24gayhiKXtyZXR1cm4gZnVuY3Rpb24oKXthPXRoaXMuXy5n
bDtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHgoYSxkLGMsZSxnLGws
bixwKXt2YXIgbT1jLWcsaD1lLWwsZj1uLWcsaz1wLWw7Zz1hLWMrZy1uO2w9CitkLWUrbC1wO3Zh
ciBxPW0qay1mKmgsZj0oZyprLWYqbCkvcSxtPShtKmwtZypoKS9xO3JldHVybltjLWErZipjLGUt
ZCtmKmUsZixuLWErbSpuLHAtZCttKnAsbSxhLGQsMV19ZnVuY3Rpb24geShhKXt2YXIgZD1hWzBd
LGM9YVsxXSxlPWFbMl0sZz1hWzNdLGw9YVs0XSxuPWFbNV0scD1hWzZdLG09YVs3XTthPWFbOF07
dmFyIGY9ZCpsKmEtZCpuKm0tYypnKmErYypuKnArZSpnKm0tZSpsKnA7cmV0dXJuWyhsKmEtbipt
KS9mLChlKm0tYyphKS9mLChjKm4tZSpsKS9mLChuKnAtZyphKS9mLChkKmEtZSpwKS9mLChlKmct
ZCpuKS9mLChnKm0tbCpwKS9mLChjKnAtZCptKS9mLChkKmwtYypnKS9mXX1mdW5jdGlvbiB6KGEp
e3ZhciBkPWEubGVuZ3RoO3RoaXMueGE9W107dGhpcy55YT1bXTt0aGlzLnU9W107dGhpcy55Mj1b
XTthLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYVswXS1iWzBdfSk7Zm9yKHZhciBjPTA7Yzxk
O2MrKyl0aGlzLnhhLnB1c2goYVtjXVswXSksdGhpcy55YS5wdXNoKGFbY11bMV0pOwordGhpcy51
WzBdPTA7dGhpcy55MlswXT0wO2ZvcihjPTE7YzxkLTE7KytjKXthPXRoaXMueGFbYysxXS10aGlz
LnhhW2MtMV07dmFyIGU9KHRoaXMueGFbY10tdGhpcy54YVtjLTFdKS9hLGc9ZSp0aGlzLnkyW2Mt
MV0rMjt0aGlzLnkyW2NdPShlLTEpL2c7dGhpcy51W2NdPSg2KigodGhpcy55YVtjKzFdLXRoaXMu
eWFbY10pLyh0aGlzLnhhW2MrMV0tdGhpcy54YVtjXSktKHRoaXMueWFbY10tdGhpcy55YVtjLTFd
KS8odGhpcy54YVtjXS10aGlzLnhhW2MtMV0pKS9hLWUqdGhpcy51W2MtMV0pL2d9dGhpcy55Mltk
LTFdPTA7Zm9yKGM9ZC0yOzA8PWM7LS1jKXRoaXMueTJbY109dGhpcy55MltjXSp0aGlzLnkyW2Mr
MV0rdGhpcy51W2NdfWZ1bmN0aW9uIHUoYSxkKXtyZXR1cm4gbmV3IGgobnVsbCxhKyJ1bmlmb3Jt
IHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gdmVjMiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhD
b29yZDt2b2lkIG1haW4oKXt2ZWMyIGNvb3JkPXRleENvb3JkKnRleFNpemU7IisKK2QrImdsX0Zy
YWdDb2xvcj10ZXh0dXJlMkQodGV4dHVyZSxjb29yZC90ZXhTaXplKTt2ZWMyIGNsYW1wZWRDb29y
ZD1jbGFtcChjb29yZCx2ZWMyKDAuMCksdGV4U2l6ZSk7aWYoY29vcmQhPWNsYW1wZWRDb29yZCl7
Z2xfRnJhZ0NvbG9yLmEqPW1heCgwLjAsMS4wLWxlbmd0aChjb29yZC1jbGFtcGVkQ29vcmQpKTt9
fSIpfWZ1bmN0aW9uIEgoYixkKXthLmJyaWdodG5lc3NDb250cmFzdD1hLmJyaWdodG5lc3NDb250
cmFzdHx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIGZsb2F0
IGJyaWdodG5lc3M7dW5pZm9ybSBmbG9hdCBjb250cmFzdDt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7
dm9pZCBtYWluKCl7dmVjNCBjb2xvcj10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7Y29sb3Iu
cmdiKz1icmlnaHRuZXNzO2lmKGNvbnRyYXN0PjAuMCl7Y29sb3IucmdiPShjb2xvci5yZ2ItMC41
KS8oMS4wLWNvbnRyYXN0KSswLjU7fWVsc2V7Y29sb3IucmdiPShjb2xvci5yZ2ItMC41KSooMS4w
K2NvbnRyYXN0KSswLjU7fWdsX0ZyYWdDb2xvcj1jb2xvcjt9Iik7CitmLmNhbGwodGhpcyxhLmJy
aWdodG5lc3NDb250cmFzdCx7YnJpZ2h0bmVzczpxKC0xLGIsMSksY29udHJhc3Q6cSgtMSxkLDEp
fSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gdChhKXthPW5ldyB6KGEpO2Zvcih2YXIgZD1bXSxjPTA7
MjU2PmM7YysrKWQucHVzaChxKDAsTWF0aC5mbG9vcigyNTYqYS5pbnRlcnBvbGF0ZShjLzI1NSkp
LDI1NSkpO3JldHVybiBkfWZ1bmN0aW9uIEkoYixkLGMpe2I9dChiKTsxPT1hcmd1bWVudHMubGVu
Z3RoP2Q9Yz1iOihkPXQoZCksYz10KGMpKTtmb3IodmFyIGU9W10sZz0wOzI1Nj5nO2crKyllLnNw
bGljZShlLmxlbmd0aCwwLGJbZ10sZFtnXSxjW2ddLDI1NSk7dGhpcy5fLmV4dHJhVGV4dHVyZS5p
bml0RnJvbUJ5dGVzKDI1NiwxLGUpO3RoaXMuXy5leHRyYVRleHR1cmUudXNlKDEpO2EuY3VydmVz
PWEuY3VydmVzfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0g
c2FtcGxlcjJEIG1hcDt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBjb2xv
cj10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7Y29sb3Iucj10ZXh0dXJlMkQobWFwLHZlYzIo
Y29sb3IucikpLnI7Y29sb3IuZz10ZXh0dXJlMkQobWFwLHZlYzIoY29sb3IuZykpLmc7Y29sb3Iu
Yj10ZXh0dXJlMkQobWFwLHZlYzIoY29sb3IuYikpLmI7Z2xfRnJhZ0NvbG9yPWNvbG9yO30iKTsK
K2EuY3VydmVzLnRleHR1cmVzKHttYXA6MX0pO2YuY2FsbCh0aGlzLGEuY3VydmVzLHt9KTtyZXR1
cm4gdGhpc31mdW5jdGlvbiBKKGIpe2EuZGVub2lzZT1hLmRlbm9pc2V8fG5ldyBoKG51bGwsInVu
aWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSBmbG9hdCBleHBvbmVudDt1bmlmb3JtIGZs
b2F0IHN0cmVuZ3RoO3VuaWZvcm0gdmVjMiB0ZXhTaXplO3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDt2
b2lkIG1haW4oKXt2ZWM0IGNlbnRlcj10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7dmVjNCBj
b2xvcj12ZWM0KDAuMCk7ZmxvYXQgdG90YWw9MC4wO2ZvcihmbG9hdCB4PS00LjA7eDw9NC4wO3gr
PTEuMCl7Zm9yKGZsb2F0IHk9LTQuMDt5PD00LjA7eSs9MS4wKXt2ZWM0IHNhbXBsZT10ZXh0dXJl
MkQodGV4dHVyZSx0ZXhDb29yZCt2ZWMyKHgseSkvdGV4U2l6ZSk7ZmxvYXQgd2VpZ2h0PTEuMC1h
YnMoZG90KHNhbXBsZS5yZ2ItY2VudGVyLnJnYix2ZWMzKDAuMjUpKSk7d2VpZ2h0PXBvdyh3ZWln
aHQsZXhwb25lbnQpO2NvbG9yKz1zYW1wbGUqd2VpZ2h0O3RvdGFsKz13ZWlnaHQ7fX1nbF9GcmFn
Q29sb3I9Y29sb3IvdG90YWw7fSIpOworZm9yKHZhciBkPTA7Mj5kO2QrKylmLmNhbGwodGhpcyxh
LmRlbm9pc2Use2V4cG9uZW50Ok1hdGgubWF4KDAsYiksdGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlz
LmhlaWdodF19KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBLKGIsZCl7YS5odWVTYXR1cmF0aW9uPWEu
aHVlU2F0dXJhdGlvbnx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlm
b3JtIGZsb2F0IGh1ZTt1bmlmb3JtIGZsb2F0IHNhdHVyYXRpb247dmFyeWluZyB2ZWMyIHRleENv
b3JkO3ZvaWQgbWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQpO2Zs
b2F0IGFuZ2xlPWh1ZSozLjE0MTU5MjY1O2Zsb2F0IHM9c2luKGFuZ2xlKSxjPWNvcyhhbmdsZSk7
dmVjMyB3ZWlnaHRzPSh2ZWMzKDIuMCpjLC1zcXJ0KDMuMCkqcy1jLHNxcnQoMy4wKSpzLWMpKzEu
MCkvMy4wO2Zsb2F0IGxlbj1sZW5ndGgoY29sb3IucmdiKTtjb2xvci5yZ2I9dmVjMyhkb3QoY29s
b3IucmdiLHdlaWdodHMueHl6KSxkb3QoY29sb3IucmdiLHdlaWdodHMuenh5KSxkb3QoY29sb3Iu
cmdiLHdlaWdodHMueXp4KSk7ZmxvYXQgYXZlcmFnZT0oY29sb3Iucitjb2xvci5nK2NvbG9yLmIp
LzMuMDtpZihzYXR1cmF0aW9uPjAuMCl7Y29sb3IucmdiKz0oYXZlcmFnZS1jb2xvci5yZ2IpKigx
LjAtMS4wLygxLjAwMS1zYXR1cmF0aW9uKSk7fWVsc2V7Y29sb3IucmdiKz0oYXZlcmFnZS1jb2xv
ci5yZ2IpKigtc2F0dXJhdGlvbik7fWdsX0ZyYWdDb2xvcj1jb2xvcjt9Iik7CitmLmNhbGwodGhp
cyxhLmh1ZVNhdHVyYXRpb24se2h1ZTpxKC0xLGIsMSksc2F0dXJhdGlvbjpxKC0xLGQsMSl9KTty
ZXR1cm4gdGhpc31mdW5jdGlvbiBMKGIpe2Eubm9pc2U9YS5ub2lzZXx8bmV3IGgobnVsbCwidW5p
Zm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIGZsb2F0IGFtb3VudDt2YXJ5aW5nIHZlYzIg
dGV4Q29vcmQ7ZmxvYXQgcmFuZCh2ZWMyIGNvKXtyZXR1cm4gZnJhY3Qoc2luKGRvdChjby54eSx2
ZWMyKDEyLjk4OTgsNzguMjMzKSkpKjQzNzU4LjU0NTMpO312b2lkIG1haW4oKXt2ZWM0IGNvbG9y
PXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTtmbG9hdCBkaWZmPShyYW5kKHRleENvb3JkKS0w
LjUpKmFtb3VudDtjb2xvci5yKz1kaWZmO2NvbG9yLmcrPWRpZmY7Y29sb3IuYis9ZGlmZjtnbF9G
cmFnQ29sb3I9Y29sb3I7fSIpOworZi5jYWxsKHRoaXMsYS5ub2lzZSx7YW1vdW50OnEoMCxiLDEp
fSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gTShiKXthLnNlcGlhPWEuc2VwaWF8fG5ldyBoKG51bGws
InVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSBmbG9hdCBhbW91bnQ7dmFyeWluZyB2
ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4
Q29vcmQpO2Zsb2F0IHI9Y29sb3IucjtmbG9hdCBnPWNvbG9yLmc7ZmxvYXQgYj1jb2xvci5iO2Nv
bG9yLnI9bWluKDEuMCwociooMS4wLSgwLjYwNyphbW91bnQpKSkrKGcqKDAuNzY5KmFtb3VudCkp
KyhiKigwLjE4OSphbW91bnQpKSk7Y29sb3IuZz1taW4oMS4wLChyKjAuMzQ5KmFtb3VudCkrKGcq
KDEuMC0oMC4zMTQqYW1vdW50KSkpKyhiKjAuMTY4KmFtb3VudCkpO2NvbG9yLmI9bWluKDEuMCwo
ciowLjI3MiphbW91bnQpKyhnKjAuNTM0KmFtb3VudCkrKGIqKDEuMC0oMC44NjkqYW1vdW50KSkp
KTtnbF9GcmFnQ29sb3I9Y29sb3I7fSIpOworZi5jYWxsKHRoaXMsYS5zZXBpYSx7YW1vdW50OnEo
MCxiLDEpfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gTihiLGQpe2EudW5zaGFycE1hc2s9YS51bnNo
YXJwTWFza3x8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgYmx1cnJlZFRleHR1cmU7dW5p
Zm9ybSBzYW1wbGVyMkQgb3JpZ2luYWxUZXh0dXJlO3VuaWZvcm0gZmxvYXQgc3RyZW5ndGg7dW5p
Zm9ybSBmbG9hdCB0aHJlc2hvbGQ7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3Zl
YzQgYmx1cnJlZD10ZXh0dXJlMkQoYmx1cnJlZFRleHR1cmUsdGV4Q29vcmQpO3ZlYzQgb3JpZ2lu
YWw9dGV4dHVyZTJEKG9yaWdpbmFsVGV4dHVyZSx0ZXhDb29yZCk7Z2xfRnJhZ0NvbG9yPW1peChi
bHVycmVkLG9yaWdpbmFsLDEuMCtzdHJlbmd0aCk7fSIpOwordGhpcy5fLmV4dHJhVGV4dHVyZS5l
bnN1cmVGb3JtYXQodGhpcy5fLnRleHR1cmUpO3RoaXMuXy50ZXh0dXJlLnVzZSgpO3RoaXMuXy5l
eHRyYVRleHR1cmUuZHJhd1RvKGZ1bmN0aW9uKCl7aC5nZXREZWZhdWx0U2hhZGVyKCkuZHJhd1Jl
Y3QoKX0pO3RoaXMuXy5leHRyYVRleHR1cmUudXNlKDEpO3RoaXMudHJpYW5nbGVCbHVyKGIpO2Eu
dW5zaGFycE1hc2sudGV4dHVyZXMoe29yaWdpbmFsVGV4dHVyZToxfSk7Zi5jYWxsKHRoaXMsYS51
bnNoYXJwTWFzayx7c3RyZW5ndGg6ZH0pO3RoaXMuXy5leHRyYVRleHR1cmUudW51c2UoMSk7cmV0
dXJuIHRoaXN9ZnVuY3Rpb24gTyhiKXthLnZpYnJhbmNlPWEudmlicmFuY2V8fG5ldyBoKG51bGws
InVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSBmbG9hdCBhbW91bnQ7dmFyeWluZyB2
ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigpe3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4
Q29vcmQpO2Zsb2F0IGF2ZXJhZ2U9KGNvbG9yLnIrY29sb3IuZytjb2xvci5iKS8zLjA7ZmxvYXQg
bXg9bWF4KGNvbG9yLnIsbWF4KGNvbG9yLmcsY29sb3IuYikpO2Zsb2F0IGFtdD0obXgtYXZlcmFn
ZSkqKC1hbW91bnQqMy4wKTtjb2xvci5yZ2I9bWl4KGNvbG9yLnJnYix2ZWMzKG14KSxhbXQpO2ds
X0ZyYWdDb2xvcj1jb2xvcjt9Iik7CitmLmNhbGwodGhpcyxhLnZpYnJhbmNlLHthbW91bnQ6cSgt
MSxiLDEpfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gUChiLGQpe2EudmlnbmV0dGU9YS52aWduZXR0
ZXx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIGZsb2F0IHNp
emU7dW5pZm9ybSBmbG9hdCBhbW91bnQ7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigp
e3ZlYzQgY29sb3I9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQpO2Zsb2F0IGRpc3Q9ZGlzdGFu
Y2UodGV4Q29vcmQsdmVjMigwLjUsMC41KSk7Y29sb3IucmdiKj1zbW9vdGhzdGVwKDAuOCxzaXpl
KjAuNzk5LGRpc3QqKGFtb3VudCtzaXplKSk7Z2xfRnJhZ0NvbG9yPWNvbG9yO30iKTsKK2YuY2Fs
bCh0aGlzLGEudmlnbmV0dGUse3NpemU6cSgwLGIsMSksYW1vdW50OnEoMCxkLDEpfSk7cmV0dXJu
IHRoaXN9ZnVuY3Rpb24gUShiLGQsYyl7YS5sZW5zQmx1clByZVBhc3M9YS5sZW5zQmx1clByZVBh
c3N8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSBmbG9hdCBw
b3dlcjt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjNCBjb2xvcj10ZXh0dXJl
MkQodGV4dHVyZSx0ZXhDb29yZCk7Y29sb3I9cG93KGNvbG9yLHZlYzQocG93ZXIpKTtnbF9GcmFn
Q29sb3I9dmVjNChjb2xvcik7fSIpO3ZhciBlPSJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlMDt1
bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlMTt1bmlmb3JtIHZlYzIgZGVsdGEwO3VuaWZvcm0gdmVj
MiBkZWx0YTE7dW5pZm9ybSBmbG9hdCBwb3dlcjt2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7IisKK3Mr
InZlYzQgc2FtcGxlKHZlYzIgZGVsdGEpe2Zsb2F0IG9mZnNldD1yYW5kb20odmVjMyhkZWx0YSwx
NTEuNzE4MiksMC4wKTt2ZWM0IGNvbG9yPXZlYzQoMC4wKTtmbG9hdCB0b3RhbD0wLjA7Zm9yKGZs
b2F0IHQ9MC4wO3Q8PTMwLjA7dCsrKXtmbG9hdCBwZXJjZW50PSh0K29mZnNldCkvMzAuMDtjb2xv
cis9dGV4dHVyZTJEKHRleHR1cmUwLHRleENvb3JkK2RlbHRhKnBlcmNlbnQpO3RvdGFsKz0xLjA7
fXJldHVybiBjb2xvci90b3RhbDt9IjsKK2EubGVuc0JsdXIwPWEubGVuc0JsdXIwfHxuZXcgaChu
dWxsLGUrInZvaWQgbWFpbigpe2dsX0ZyYWdDb2xvcj1zYW1wbGUoZGVsdGEwKTt9Iik7YS5sZW5z
Qmx1cjE9YS5sZW5zQmx1cjF8fG5ldyBoKG51bGwsZSsidm9pZCBtYWluKCl7Z2xfRnJhZ0NvbG9y
PShzYW1wbGUoZGVsdGEwKStzYW1wbGUoZGVsdGExKSkqMC41O30iKTthLmxlbnNCbHVyMj1hLmxl
bnNCbHVyMnx8KG5ldyBoKG51bGwsZSsidm9pZCBtYWluKCl7dmVjNCBjb2xvcj0oc2FtcGxlKGRl
bHRhMCkrMi4wKnRleHR1cmUyRCh0ZXh0dXJlMSx0ZXhDb29yZCkpLzMuMDtnbF9GcmFnQ29sb3I9
cG93KGNvbG9yLHZlYzQocG93ZXIpKTt9IikpLnRleHR1cmVzKHt0ZXh0dXJlMToxfSk7Zm9yKHZh
ciBlPQorW10sZz0wOzM+ZztnKyspe3ZhciBsPWMrMipnKk1hdGguUEkvMztlLnB1c2goW2IqTWF0
aC5zaW4obCkvdGhpcy53aWR0aCxiKk1hdGguY29zKGwpL3RoaXMuaGVpZ2h0XSl9Yj1NYXRoLnBv
dygxMCxxKC0xLGQsMSkpO2YuY2FsbCh0aGlzLGEubGVuc0JsdXJQcmVQYXNzLHtwb3dlcjpifSk7
dGhpcy5fLmV4dHJhVGV4dHVyZS5lbnN1cmVGb3JtYXQodGhpcy5fLnRleHR1cmUpO2YuY2FsbCh0
aGlzLGEubGVuc0JsdXIwLHtkZWx0YTA6ZVswXX0sdGhpcy5fLnRleHR1cmUsdGhpcy5fLmV4dHJh
VGV4dHVyZSk7Zi5jYWxsKHRoaXMsYS5sZW5zQmx1cjEse2RlbHRhMDplWzFdLGRlbHRhMTplWzJd
fSx0aGlzLl8uZXh0cmFUZXh0dXJlLHRoaXMuXy5leHRyYVRleHR1cmUpO2YuY2FsbCh0aGlzLGEu
bGVuc0JsdXIwLHtkZWx0YTA6ZVsxXX0pO3RoaXMuXy5leHRyYVRleHR1cmUudXNlKDEpO2YuY2Fs
bCh0aGlzLGEubGVuc0JsdXIyLHtwb3dlcjoxL2IsZGVsdGEwOmVbMl19KTtyZXR1cm4gdGhpc30K
K2Z1bmN0aW9uIFIoYixkLGMsZSxnLGwpe2EudGlsdFNoaWZ0PWEudGlsdFNoaWZ0fHxuZXcgaChu
dWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gZmxvYXQgYmx1clJhZGl1czt1
bmlmb3JtIGZsb2F0IGdyYWRpZW50UmFkaXVzO3VuaWZvcm0gdmVjMiBzdGFydDt1bmlmb3JtIHZl
YzIgZW5kO3VuaWZvcm0gdmVjMiBkZWx0YTt1bmlmb3JtIHZlYzIgdGV4U2l6ZTt2YXJ5aW5nIHZl
YzIgdGV4Q29vcmQ7IitzKyJ2b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXZlYzQoMC4wKTtmbG9hdCB0
b3RhbD0wLjA7ZmxvYXQgb2Zmc2V0PXJhbmRvbSh2ZWMzKDEyLjk4OTgsNzguMjMzLDE1MS43MTgy
KSwwLjApO3ZlYzIgbm9ybWFsPW5vcm1hbGl6ZSh2ZWMyKHN0YXJ0LnktZW5kLnksZW5kLngtc3Rh
cnQueCkpO2Zsb2F0IHJhZGl1cz1zbW9vdGhzdGVwKDAuMCwxLjAsYWJzKGRvdCh0ZXhDb29yZCp0
ZXhTaXplLXN0YXJ0LG5vcm1hbCkpL2dyYWRpZW50UmFkaXVzKSpibHVyUmFkaXVzO2ZvcihmbG9h
dCB0PS0zMC4wO3Q8PTMwLjA7dCsrKXtmbG9hdCBwZXJjZW50PSh0K29mZnNldC0wLjUpLzMwLjA7
ZmxvYXQgd2VpZ2h0PTEuMC1hYnMocGVyY2VudCk7dmVjNCBzYW1wbGU9dGV4dHVyZTJEKHRleHR1
cmUsdGV4Q29vcmQrZGVsdGEvdGV4U2l6ZSpwZXJjZW50KnJhZGl1cyk7c2FtcGxlLnJnYio9c2Ft
cGxlLmE7Y29sb3IrPXNhbXBsZSp3ZWlnaHQ7dG90YWwrPXdlaWdodDt9Z2xfRnJhZ0NvbG9yPWNv
bG9yL3RvdGFsO2dsX0ZyYWdDb2xvci5yZ2IvPWdsX0ZyYWdDb2xvci5hKzAuMDAwMDE7fSIpOwor
dmFyIG49Yy1iLHA9ZS1kLG09TWF0aC5zcXJ0KG4qbitwKnApO2YuY2FsbCh0aGlzLGEudGlsdFNo
aWZ0LHtibHVyUmFkaXVzOmcsZ3JhZGllbnRSYWRpdXM6bCxzdGFydDpbYixkXSxlbmQ6W2MsZV0s
ZGVsdGE6W24vbSxwL21dLHRleFNpemU6W3RoaXMud2lkdGgsdGhpcy5oZWlnaHRdfSk7Zi5jYWxs
KHRoaXMsYS50aWx0U2hpZnQse2JsdXJSYWRpdXM6ZyxncmFkaWVudFJhZGl1czpsLHN0YXJ0Olti
LGRdLGVuZDpbYyxlXSxkZWx0YTpbLXAvbSxuL21dLHRleFNpemU6W3RoaXMud2lkdGgsdGhpcy5o
ZWlnaHRdfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gUyhiKXthLnRyaWFuZ2xlQmx1cj1hLnRyaWFu
Z2xlQmx1cnx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIHZl
YzIgZGVsdGE7dmFyeWluZyB2ZWMyIHRleENvb3JkOyIrcysidm9pZCBtYWluKCl7dmVjNCBjb2xv
cj12ZWM0KDAuMCk7ZmxvYXQgdG90YWw9MC4wO2Zsb2F0IG9mZnNldD1yYW5kb20odmVjMygxMi45
ODk4LDc4LjIzMywxNTEuNzE4MiksMC4wKTtmb3IoZmxvYXQgdD0tMzAuMDt0PD0zMC4wO3QrKyl7
ZmxvYXQgcGVyY2VudD0odCtvZmZzZXQtMC41KS8zMC4wO2Zsb2F0IHdlaWdodD0xLjAtYWJzKHBl
cmNlbnQpO3ZlYzQgc2FtcGxlPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkK2RlbHRhKnBlcmNl
bnQpO3NhbXBsZS5yZ2IqPXNhbXBsZS5hO2NvbG9yKz1zYW1wbGUqd2VpZ2h0O3RvdGFsKz13ZWln
aHQ7fWdsX0ZyYWdDb2xvcj1jb2xvci90b3RhbDtnbF9GcmFnQ29sb3IucmdiLz1nbF9GcmFnQ29s
b3IuYSswLjAwMDAxO30iKTsKK2YuY2FsbCh0aGlzLGEudHJpYW5nbGVCbHVyLHtkZWx0YTpbYi90
aGlzLndpZHRoLDBdfSk7Zi5jYWxsKHRoaXMsYS50cmlhbmdsZUJsdXIse2RlbHRhOlswLGIvdGhp
cy5oZWlnaHRdfSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gVChiLGQsYyl7YS56b29tQmx1cj1hLnpv
b21CbHVyfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gdmVj
MiBjZW50ZXI7dW5pZm9ybSBmbG9hdCBzdHJlbmd0aDt1bmlmb3JtIHZlYzIgdGV4U2l6ZTt2YXJ5
aW5nIHZlYzIgdGV4Q29vcmQ7IitzKyJ2b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXZlYzQoMC4wKTtm
bG9hdCB0b3RhbD0wLjA7dmVjMiB0b0NlbnRlcj1jZW50ZXItdGV4Q29vcmQqdGV4U2l6ZTtmbG9h
dCBvZmZzZXQ9cmFuZG9tKHZlYzMoMTIuOTg5OCw3OC4yMzMsMTUxLjcxODIpLDAuMCk7Zm9yKGZs
b2F0IHQ9MC4wO3Q8PTQwLjA7dCsrKXtmbG9hdCBwZXJjZW50PSh0K29mZnNldCkvNDAuMDtmbG9h
dCB3ZWlnaHQ9NC4wKihwZXJjZW50LXBlcmNlbnQqcGVyY2VudCk7dmVjNCBzYW1wbGU9dGV4dHVy
ZTJEKHRleHR1cmUsdGV4Q29vcmQrdG9DZW50ZXIqcGVyY2VudCpzdHJlbmd0aC90ZXhTaXplKTtz
YW1wbGUucmdiKj1zYW1wbGUuYTtjb2xvcis9c2FtcGxlKndlaWdodDt0b3RhbCs9d2VpZ2h0O31n
bF9GcmFnQ29sb3I9Y29sb3IvdG90YWw7Z2xfRnJhZ0NvbG9yLnJnYi89Z2xfRnJhZ0NvbG9yLmEr
MC4wMDAwMTt9Iik7CitmLmNhbGwodGhpcyxhLnpvb21CbHVyLHtjZW50ZXI6W2IsZF0sc3RyZW5n
dGg6Yyx0ZXhTaXplOlt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0
aW9uIFUoYixkLGMsZSl7YS5jb2xvckhhbGZ0b25lPWEuY29sb3JIYWxmdG9uZXx8bmV3IGgobnVs
bCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3JtIHZlYzIgY2VudGVyO3VuaWZvcm0g
ZmxvYXQgYW5nbGU7dW5pZm9ybSBmbG9hdCBzY2FsZTt1bmlmb3JtIHZlYzIgdGV4U2l6ZTt2YXJ5
aW5nIHZlYzIgdGV4Q29vcmQ7ZmxvYXQgcGF0dGVybihmbG9hdCBhbmdsZSl7ZmxvYXQgcz1zaW4o
YW5nbGUpLGM9Y29zKGFuZ2xlKTt2ZWMyIHRleD10ZXhDb29yZCp0ZXhTaXplLWNlbnRlcjt2ZWMy
IHBvaW50PXZlYzIoYyp0ZXgueC1zKnRleC55LHMqdGV4LngrYyp0ZXgueSkqc2NhbGU7cmV0dXJu
KHNpbihwb2ludC54KSpzaW4ocG9pbnQueSkpKjQuMDt9dm9pZCBtYWluKCl7dmVjNCBjb2xvcj10
ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCk7dmVjMyBjbXk9MS4wLWNvbG9yLnJnYjtmbG9hdCBr
PW1pbihjbXkueCxtaW4oY215LnksY215LnopKTtjbXk9KGNteS1rKS8oMS4wLWspO2NteT1jbGFt
cChjbXkqMTAuMC0zLjArdmVjMyhwYXR0ZXJuKGFuZ2xlKzAuMjYxNzkpLHBhdHRlcm4oYW5nbGUr
MS4zMDg5OSkscGF0dGVybihhbmdsZSkpLDAuMCwxLjApO2s9Y2xhbXAoayoxMC4wLTUuMCtwYXR0
ZXJuKGFuZ2xlKzAuNzg1MzkpLDAuMCwxLjApO2dsX0ZyYWdDb2xvcj12ZWM0KDEuMC1jbXktayxj
b2xvci5hKTt9Iik7CitmLmNhbGwodGhpcyxhLmNvbG9ySGFsZnRvbmUse2NlbnRlcjpbYixkXSxh
bmdsZTpjLHNjYWxlOk1hdGguUEkvZSx0ZXhTaXplOlt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0p
O3JldHVybiB0aGlzfWZ1bmN0aW9uIFYoYixkLGMsZSl7YS5kb3RTY3JlZW49YS5kb3RTY3JlZW58
fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7dW5pZm9ybSB2ZWMyIGNlbnRl
cjt1bmlmb3JtIGZsb2F0IGFuZ2xlO3VuaWZvcm0gZmxvYXQgc2NhbGU7dW5pZm9ybSB2ZWMyIHRl
eFNpemU7dmFyeWluZyB2ZWMyIHRleENvb3JkO2Zsb2F0IHBhdHRlcm4oKXtmbG9hdCBzPXNpbihh
bmdsZSksYz1jb3MoYW5nbGUpO3ZlYzIgdGV4PXRleENvb3JkKnRleFNpemUtY2VudGVyO3ZlYzIg
cG9pbnQ9dmVjMihjKnRleC54LXMqdGV4Lnkscyp0ZXgueCtjKnRleC55KSpzY2FsZTtyZXR1cm4o
c2luKHBvaW50LngpKnNpbihwb2ludC55KSkqNC4wO312b2lkIG1haW4oKXt2ZWM0IGNvbG9yPXRl
eHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTtmbG9hdCBhdmVyYWdlPShjb2xvci5yK2NvbG9yLmcr
Y29sb3IuYikvMy4wO2dsX0ZyYWdDb2xvcj12ZWM0KHZlYzMoYXZlcmFnZSoxMC4wLTUuMCtwYXR0
ZXJuKCkpLGNvbG9yLmEpO30iKTsKK2YuY2FsbCh0aGlzLGEuZG90U2NyZWVuLHtjZW50ZXI6W2Is
ZF0sYW5nbGU6YyxzY2FsZTpNYXRoLlBJL2UsdGV4U2l6ZTpbdGhpcy53aWR0aCx0aGlzLmhlaWdo
dF19KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBXKGIpe2EuZWRnZVdvcmsxPWEuZWRnZVdvcmsxfHxu
ZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZvcm0gdmVjMiBkZWx0YTt2
YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7IitzKyJ2b2lkIG1haW4oKXt2ZWMyIGNvbG9yPXZlYzIoMC4w
KTt2ZWMyIHRvdGFsPXZlYzIoMC4wKTtmbG9hdCBvZmZzZXQ9cmFuZG9tKHZlYzMoMTIuOTg5OCw3
OC4yMzMsMTUxLjcxODIpLDAuMCk7Zm9yKGZsb2F0IHQ9LTMwLjA7dDw9MzAuMDt0Kyspe2Zsb2F0
IHBlcmNlbnQ9KHQrb2Zmc2V0LTAuNSkvMzAuMDtmbG9hdCB3ZWlnaHQ9MS4wLWFicyhwZXJjZW50
KTt2ZWMzIHNhbXBsZT10ZXh0dXJlMkQodGV4dHVyZSx0ZXhDb29yZCtkZWx0YSpwZXJjZW50KS5y
Z2I7ZmxvYXQgYXZlcmFnZT0oc2FtcGxlLnIrc2FtcGxlLmcrc2FtcGxlLmIpLzMuMDtjb2xvci54
Kz1hdmVyYWdlKndlaWdodDt0b3RhbC54Kz13ZWlnaHQ7aWYoYWJzKHQpPDE1LjApe3dlaWdodD13
ZWlnaHQqMi4wLTEuMDtjb2xvci55Kz1hdmVyYWdlKndlaWdodDt0b3RhbC55Kz13ZWlnaHQ7fX1n
bF9GcmFnQ29sb3I9dmVjNChjb2xvci90b3RhbCwwLjAsMS4wKTt9Iik7CithLmVkZ2VXb3JrMj1h
LmVkZ2VXb3JrMnx8bmV3IGgobnVsbCwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt1bmlmb3Jt
IHZlYzIgZGVsdGE7dmFyeWluZyB2ZWMyIHRleENvb3JkOyIrcysidm9pZCBtYWluKCl7dmVjMiBj
b2xvcj12ZWMyKDAuMCk7dmVjMiB0b3RhbD12ZWMyKDAuMCk7ZmxvYXQgb2Zmc2V0PXJhbmRvbSh2
ZWMzKDEyLjk4OTgsNzguMjMzLDE1MS43MTgyKSwwLjApO2ZvcihmbG9hdCB0PS0zMC4wO3Q8PTMw
LjA7dCsrKXtmbG9hdCBwZXJjZW50PSh0K29mZnNldC0wLjUpLzMwLjA7ZmxvYXQgd2VpZ2h0PTEu
MC1hYnMocGVyY2VudCk7dmVjMiBzYW1wbGU9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQrZGVs
dGEqcGVyY2VudCkueHk7Y29sb3IueCs9c2FtcGxlLngqd2VpZ2h0O3RvdGFsLngrPXdlaWdodDtp
ZihhYnModCk8MTUuMCl7d2VpZ2h0PXdlaWdodCoyLjAtMS4wO2NvbG9yLnkrPXNhbXBsZS55Kndl
aWdodDt0b3RhbC55Kz13ZWlnaHQ7fX1mbG9hdCBjPWNsYW1wKDEwMDAwLjAqKGNvbG9yLnkvdG90
YWwueS1jb2xvci54L3RvdGFsLngpKzAuNSwwLjAsMS4wKTtnbF9GcmFnQ29sb3I9dmVjNChjLGMs
YywxLjApO30iKTsKK2YuY2FsbCh0aGlzLGEuZWRnZVdvcmsxLHtkZWx0YTpbYi90aGlzLndpZHRo
LDBdfSk7Zi5jYWxsKHRoaXMsYS5lZGdlV29yazIse2RlbHRhOlswLGIvdGhpcy5oZWlnaHRdfSk7
cmV0dXJuIHRoaXN9ZnVuY3Rpb24gWChiLGQsYyl7YS5oZXhhZ29uYWxQaXhlbGF0ZT1hLmhleGFn
b25hbFBpeGVsYXRlfHxuZXcgaChudWxsLCJ1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO3VuaWZv
cm0gdmVjMiBjZW50ZXI7dW5pZm9ybSBmbG9hdCBzY2FsZTt1bmlmb3JtIHZlYzIgdGV4U2l6ZTt2
YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjMiB0ZXg9KHRleENvb3JkKnRleFNp
emUtY2VudGVyKS9zY2FsZTt0ZXgueS89MC44NjYwMjU0MDQ7dGV4LngtPXRleC55KjAuNTt2ZWMy
IGE7aWYodGV4LngrdGV4LnktZmxvb3IodGV4LngpLWZsb29yKHRleC55KTwxLjApYT12ZWMyKGZs
b29yKHRleC54KSxmbG9vcih0ZXgueSkpO2Vsc2UgYT12ZWMyKGNlaWwodGV4LngpLGNlaWwodGV4
LnkpKTt2ZWMyIGI9dmVjMihjZWlsKHRleC54KSxmbG9vcih0ZXgueSkpO3ZlYzIgYz12ZWMyKGZs
b29yKHRleC54KSxjZWlsKHRleC55KSk7dmVjMyBURVg9dmVjMyh0ZXgueCx0ZXgueSwxLjAtdGV4
LngtdGV4LnkpO3ZlYzMgQT12ZWMzKGEueCxhLnksMS4wLWEueC1hLnkpO3ZlYzMgQj12ZWMzKGIu
eCxiLnksMS4wLWIueC1iLnkpO3ZlYzMgQz12ZWMzKGMueCxjLnksMS4wLWMueC1jLnkpO2Zsb2F0
IGFsZW49bGVuZ3RoKFRFWC1BKTtmbG9hdCBibGVuPWxlbmd0aChURVgtQik7ZmxvYXQgY2xlbj1s
ZW5ndGgoVEVYLUMpO3ZlYzIgY2hvaWNlO2lmKGFsZW48Ymxlbil7aWYoYWxlbjxjbGVuKWNob2lj
ZT1hO2Vsc2UgY2hvaWNlPWM7fWVsc2V7aWYoYmxlbjxjbGVuKWNob2ljZT1iO2Vsc2UgY2hvaWNl
PWM7fWNob2ljZS54Kz1jaG9pY2UueSowLjU7Y2hvaWNlLnkqPTAuODY2MDI1NDA0O2Nob2ljZSo9
c2NhbGUvdGV4U2l6ZTtnbF9GcmFnQ29sb3I9dGV4dHVyZTJEKHRleHR1cmUsY2hvaWNlK2NlbnRl
ci90ZXhTaXplKTt9Iik7CitmLmNhbGwodGhpcyxhLmhleGFnb25hbFBpeGVsYXRlLHtjZW50ZXI6
W2IsZF0sc2NhbGU6Yyx0ZXhTaXplOlt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0pO3JldHVybiB0
aGlzfWZ1bmN0aW9uIFkoYil7YS5pbms9YS5pbmt8fG5ldyBoKG51bGwsInVuaWZvcm0gc2FtcGxl
cjJEIHRleHR1cmU7dW5pZm9ybSBmbG9hdCBzdHJlbmd0aDt1bmlmb3JtIHZlYzIgdGV4U2l6ZTt2
YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7dm9pZCBtYWluKCl7dmVjMiBkeD12ZWMyKDEuMC90ZXhTaXpl
LngsMC4wKTt2ZWMyIGR5PXZlYzIoMC4wLDEuMC90ZXhTaXplLnkpO3ZlYzQgY29sb3I9dGV4dHVy
ZTJEKHRleHR1cmUsdGV4Q29vcmQpO2Zsb2F0IGJpZ1RvdGFsPTAuMDtmbG9hdCBzbWFsbFRvdGFs
PTAuMDt2ZWMzIGJpZ0F2ZXJhZ2U9dmVjMygwLjApO3ZlYzMgc21hbGxBdmVyYWdlPXZlYzMoMC4w
KTtmb3IoZmxvYXQgeD0tMi4wO3g8PTIuMDt4Kz0xLjApe2ZvcihmbG9hdCB5PS0yLjA7eTw9Mi4w
O3krPTEuMCl7dmVjMyBzYW1wbGU9dGV4dHVyZTJEKHRleHR1cmUsdGV4Q29vcmQrZHgqeCtkeSp5
KS5yZ2I7YmlnQXZlcmFnZSs9c2FtcGxlO2JpZ1RvdGFsKz0xLjA7aWYoYWJzKHgpK2Ficyh5KTwy
LjApe3NtYWxsQXZlcmFnZSs9c2FtcGxlO3NtYWxsVG90YWwrPTEuMDt9fX12ZWMzIGVkZ2U9bWF4
KHZlYzMoMC4wKSxiaWdBdmVyYWdlL2JpZ1RvdGFsLXNtYWxsQXZlcmFnZS9zbWFsbFRvdGFsKTtn
bF9GcmFnQ29sb3I9dmVjNChjb2xvci5yZ2ItZG90KGVkZ2UsZWRnZSkqc3RyZW5ndGgqMTAwMDAw
LjAsY29sb3IuYSk7fSIpOworZi5jYWxsKHRoaXMsYS5pbmsse3N0cmVuZ3RoOmIqYipiKmIqYix0
ZXhTaXplOlt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uIFoo
YixkLGMsZSl7YS5idWxnZVBpbmNoPWEuYnVsZ2VQaW5jaHx8dSgidW5pZm9ybSBmbG9hdCByYWRp
dXM7dW5pZm9ybSBmbG9hdCBzdHJlbmd0aDt1bmlmb3JtIHZlYzIgY2VudGVyOyIsImNvb3JkLT1j
ZW50ZXI7ZmxvYXQgZGlzdGFuY2U9bGVuZ3RoKGNvb3JkKTtpZihkaXN0YW5jZTxyYWRpdXMpe2Zs
b2F0IHBlcmNlbnQ9ZGlzdGFuY2UvcmFkaXVzO2lmKHN0cmVuZ3RoPjAuMCl7Y29vcmQqPW1peCgx
LjAsc21vb3Roc3RlcCgwLjAscmFkaXVzL2Rpc3RhbmNlLHBlcmNlbnQpLHN0cmVuZ3RoKjAuNzUp
O31lbHNle2Nvb3JkKj1taXgoMS4wLHBvdyhwZXJjZW50LDEuMCtzdHJlbmd0aCowLjc1KSpyYWRp
dXMvZGlzdGFuY2UsMS4wLXBlcmNlbnQpO319Y29vcmQrPWNlbnRlcjsiKTsKK2YuY2FsbCh0aGlz
LGEuYnVsZ2VQaW5jaCx7cmFkaXVzOmMsc3RyZW5ndGg6cSgtMSxlLDEpLGNlbnRlcjpbYixkXSx0
ZXhTaXplOlt0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XX0pO3JldHVybiB0aGlzfWZ1bmN0aW9uICQo
YixkLGMpe2EubWF0cml4V2FycD1hLm1hdHJpeFdhcnB8fHUoInVuaWZvcm0gbWF0MyBtYXRyaXg7
dW5pZm9ybSBib29sIHVzZVRleHR1cmVTcGFjZTsiLCJpZih1c2VUZXh0dXJlU3BhY2UpY29vcmQ9
Y29vcmQvdGV4U2l6ZSoyLjAtMS4wO3ZlYzMgd2FycD1tYXRyaXgqdmVjMyhjb29yZCwxLjApO2Nv
b3JkPXdhcnAueHkvd2FycC56O2lmKHVzZVRleHR1cmVTcGFjZSljb29yZD0oY29vcmQqMC41KzAu
NSkqdGV4U2l6ZTsiKTtiPUFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sYik7aWYoND09
Yi5sZW5ndGgpYj0KK1tiWzBdLGJbMV0sMCxiWzJdLGJbM10sMCwwLDAsMV07ZWxzZSBpZig5IT1i
Lmxlbmd0aCl0aHJvdyJjYW4gb25seSB3YXJwIHdpdGggMngyIG9yIDN4MyBtYXRyaXgiO2YuY2Fs
bCh0aGlzLGEubWF0cml4V2FycCx7bWF0cml4OmQ/eShiKTpiLHRleFNpemU6W3RoaXMud2lkdGgs
dGhpcy5oZWlnaHRdLHVzZVRleHR1cmVTcGFjZTpjfDB9KTtyZXR1cm4gdGhpc31mdW5jdGlvbiBh
YShhLGQpe3ZhciBjPXguYXBwbHkobnVsbCxkKSxlPXguYXBwbHkobnVsbCxhKSxjPXkoYyk7cmV0
dXJuIHRoaXMubWF0cml4V2FycChbY1swXSplWzBdK2NbMV0qZVszXStjWzJdKmVbNl0sY1swXSpl
WzFdK2NbMV0qZVs0XStjWzJdKmVbN10sY1swXSplWzJdK2NbMV0qZVs1XStjWzJdKmVbOF0sY1sz
XSplWzBdK2NbNF0qZVszXStjWzVdKmVbNl0sY1szXSplWzFdK2NbNF0qZVs0XStjWzVdKmVbN10s
Y1szXSplWzJdK2NbNF0qZVs1XStjWzVdKmVbOF0sY1s2XSplWzBdK2NbN10qZVszXStjWzhdKmVb
Nl0sCitjWzZdKmVbMV0rY1s3XSplWzRdK2NbOF0qZVs3XSxjWzZdKmVbMl0rY1s3XSplWzVdK2Nb
OF0qZVs4XV0pfWZ1bmN0aW9uIGJhKGIsZCxjLGUpe2Euc3dpcmw9YS5zd2lybHx8dSgidW5pZm9y
bSBmbG9hdCByYWRpdXM7dW5pZm9ybSBmbG9hdCBhbmdsZTt1bmlmb3JtIHZlYzIgY2VudGVyOyIs
ImNvb3JkLT1jZW50ZXI7ZmxvYXQgZGlzdGFuY2U9bGVuZ3RoKGNvb3JkKTtpZihkaXN0YW5jZTxy
YWRpdXMpe2Zsb2F0IHBlcmNlbnQ9KHJhZGl1cy1kaXN0YW5jZSkvcmFkaXVzO2Zsb2F0IHRoZXRh
PXBlcmNlbnQqcGVyY2VudCphbmdsZTtmbG9hdCBzPXNpbih0aGV0YSk7ZmxvYXQgYz1jb3ModGhl
dGEpO2Nvb3JkPXZlYzIoY29vcmQueCpjLWNvb3JkLnkqcyxjb29yZC54KnMrY29vcmQueSpjKTt9
Y29vcmQrPWNlbnRlcjsiKTsKK2YuY2FsbCh0aGlzLGEuc3dpcmwse3JhZGl1czpjLGNlbnRlcjpb
YixkXSxhbmdsZTplLHRleFNpemU6W3RoaXMud2lkdGgsdGhpcy5oZWlnaHRdfSk7cmV0dXJuIHRo
aXN9dmFyIHY9e307KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtpZighYi5nZXRFeHRlbnNpb24o
Ik9FU190ZXh0dXJlX2Zsb2F0IikpcmV0dXJuITE7dmFyIGM9Yi5jcmVhdGVGcmFtZWJ1ZmZlcigp
LGU9Yi5jcmVhdGVUZXh0dXJlKCk7Yi5iaW5kVGV4dHVyZShiLlRFWFRVUkVfMkQsZSk7Yi50ZXhQ
YXJhbWV0ZXJpKGIuVEVYVFVSRV8yRCxiLlRFWFRVUkVfTUFHX0ZJTFRFUixiLk5FQVJFU1QpO2Iu
dGV4UGFyYW1ldGVyaShiLlRFWFRVUkVfMkQsYi5URVhUVVJFX01JTl9GSUxURVIsYi5ORUFSRVNU
KTtiLnRleFBhcmFtZXRlcmkoYi5URVhUVVJFXzJELGIuVEVYVFVSRV9XUkFQX1MsYi5DTEFNUF9U
T19FREdFKTtiLnRleFBhcmFtZXRlcmkoYi5URVhUVVJFXzJELGIuVEVYVFVSRV9XUkFQX1QsYi5D
TEFNUF9UT19FREdFKTsKK2IudGV4SW1hZ2UyRChiLlRFWFRVUkVfMkQsMCxiLlJHQkEsMSwxLDAs
Yi5SR0JBLGIuVU5TSUdORURfQllURSxudWxsKTtiLmJpbmRGcmFtZWJ1ZmZlcihiLkZSQU1FQlVG
RkVSLGMpO2IuZnJhbWVidWZmZXJUZXh0dXJlMkQoYi5GUkFNRUJVRkZFUixiLkNPTE9SX0FUVEFD
SE1FTlQwLGIuVEVYVFVSRV8yRCxlLDApO2M9Yi5jcmVhdGVUZXh0dXJlKCk7Yi5iaW5kVGV4dHVy
ZShiLlRFWFRVUkVfMkQsYyk7Yi50ZXhQYXJhbWV0ZXJpKGIuVEVYVFVSRV8yRCxiLlRFWFRVUkVf
TUFHX0ZJTFRFUixiLkxJTkVBUik7Yi50ZXhQYXJhbWV0ZXJpKGIuVEVYVFVSRV8yRCxiLlRFWFRV
UkVfTUlOX0ZJTFRFUixiLkxJTkVBUik7Yi50ZXhQYXJhbWV0ZXJpKGIuVEVYVFVSRV8yRCxiLlRF
WFRVUkVfV1JBUF9TLGIuQ0xBTVBfVE9fRURHRSk7Yi50ZXhQYXJhbWV0ZXJpKGIuVEVYVFVSRV8y
RCxiLlRFWFRVUkVfV1JBUF9ULGIuQ0xBTVBfVE9fRURHRSk7Yi50ZXhJbWFnZTJEKGIuVEVYVFVS
RV8yRCwKKzAsYi5SR0JBLDIsMiwwLGIuUkdCQSxiLkZMT0FULG5ldyBGbG9hdDMyQXJyYXkoWzIs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdKSk7dmFyIGU9Yi5jcmVhdGVQcm9ncmFtKCks
ZD1iLmNyZWF0ZVNoYWRlcihiLlZFUlRFWF9TSEFERVIpLGc9Yi5jcmVhdGVTaGFkZXIoYi5GUkFH
TUVOVF9TSEFERVIpO2Iuc2hhZGVyU291cmNlKGQsImF0dHJpYnV0ZSB2ZWMyIHZlcnRleDt2b2lk
IG1haW4oKXtnbF9Qb3NpdGlvbj12ZWM0KHZlcnRleCwwLjAsMS4wKTt9Iik7Yi5zaGFkZXJTb3Vy
Y2UoZywidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt2b2lkIG1haW4oKXtnbF9GcmFnQ29sb3I9
dGV4dHVyZTJEKHRleHR1cmUsdmVjMigwLjUpKTt9Iik7Yi5jb21waWxlU2hhZGVyKGQpO2IuY29t
cGlsZVNoYWRlcihnKTtiLmF0dGFjaFNoYWRlcihlLGQpO2IuYXR0YWNoU2hhZGVyKGUsCitnKTti
LmxpbmtQcm9ncmFtKGUpO2Q9Yi5jcmVhdGVCdWZmZXIoKTtiLmJpbmRCdWZmZXIoYi5BUlJBWV9C
VUZGRVIsZCk7Yi5idWZmZXJEYXRhKGIuQVJSQVlfQlVGRkVSLG5ldyBGbG9hdDMyQXJyYXkoWzAs
MF0pLGIuU1RSRUFNX0RSQVcpO2IuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Yi52ZXJ0ZXhB
dHRyaWJQb2ludGVyKDAsMixiLkZMT0FULCExLDAsMCk7ZD1uZXcgVWludDhBcnJheSg0KTtiLnVz
ZVByb2dyYW0oZSk7Yi52aWV3cG9ydCgwLDAsMSwxKTtiLmJpbmRUZXh0dXJlKGIuVEVYVFVSRV8y
RCxjKTtiLmRyYXdBcnJheXMoYi5QT0lOVFMsMCwxKTtiLnJlYWRQaXhlbHMoMCwwLDEsMSxiLlJH
QkEsYi5VTlNJR05FRF9CWVRFLGQpO3JldHVybiAxMjc9PT1kWzBdfHwxMjg9PT1kWzBdfWZ1bmN0
aW9uIGQoKXt9ZnVuY3Rpb24gYyhhKXsiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIj09PWE/KHZv
aWQgMD09PXRoaXMuJE9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciQmJk9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh0aGlzLAorIiRPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIkIix7ZW51bWVyYWJsZTohMSxj
b25maWd1cmFibGU6ITEsd3JpdGFibGU6ITEsdmFsdWU6bmV3IGR9KSxhPXRoaXMuJE9FU190ZXh0
dXJlX2Zsb2F0X2xpbmVhciQpOmE9bi5jYWxsKHRoaXMsYSk7cmV0dXJuIGF9ZnVuY3Rpb24gZSgp
e3ZhciBhPWYuY2FsbCh0aGlzKTstMT09PWEuaW5kZXhPZigiT0VTX3RleHR1cmVfZmxvYXRfbGlu
ZWFyIikmJmEucHVzaCgiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7cmV0dXJuIGF9dHJ5e3Zh
ciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoImV4cGVyaW1l
bnRhbC13ZWJnbCIpfWNhdGNoKGwpe31pZihnJiYtMT09PWcuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9u
cygpLmluZGV4T2YoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpJiZhKGcpKXt2YXIgbj1XZWJH
TFJlbmRlcmluZ0NvbnRleHQucHJvdG90eXBlLmdldEV4dGVuc2lvbixmPVdlYkdMUmVuZGVyaW5n
Q29udGV4dC5wcm90b3R5cGUuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uczsKK1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5wcm90b3R5cGUuZ2V0RXh0ZW5zaW9uPWM7V2ViR0xSZW5kZXJpbmdDb250ZXh0LnBy
b3RvdHlwZS5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zPWV9fSkoKTt2YXIgYTt2LmNhbnZhcz1mdW5j
dGlvbigpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3RyeXthPWIuZ2V0
Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIix7cHJlbXVsdGlwbGllZEFscGhhOiExfSl9Y2F0
Y2goZCl7YT1udWxsfWlmKCFhKXRocm93IlRoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdl
YkdMIjtiLl89e2dsOmEsaXNJbml0aWFsaXplZDohMSx0ZXh0dXJlOm51bGwsc3BhcmVUZXh0dXJl
Om51bGwsZmxpcHBlZFNoYWRlcjpudWxsfTtiLnRleHR1cmU9ayhBKTtiLmRyYXc9ayhDKTtiLnVw
ZGF0ZT1rKEQpO2IucmVwbGFjZT1rKEUpO2IuY29udGVudHM9ayhGKTtiLmdldFBpeGVsQXJyYXk9
ayhHKTtiLmJyaWdodG5lc3NDb250cmFzdD1rKEgpOworYi5oZXhhZ29uYWxQaXhlbGF0ZT1rKFgp
O2IuaHVlU2F0dXJhdGlvbj1rKEspO2IuY29sb3JIYWxmdG9uZT1rKFUpO2IudHJpYW5nbGVCbHVy
PWsoUyk7Yi51bnNoYXJwTWFzaz1rKE4pO2IucGVyc3BlY3RpdmU9ayhhYSk7Yi5tYXRyaXhXYXJw
PWsoJCk7Yi5idWxnZVBpbmNoPWsoWik7Yi50aWx0U2hpZnQ9ayhSKTtiLmRvdFNjcmVlbj1rKFYp
O2IuZWRnZVdvcms9ayhXKTtiLmxlbnNCbHVyPWsoUSk7Yi56b29tQmx1cj1rKFQpO2Iubm9pc2U9
ayhMKTtiLmRlbm9pc2U9ayhKKTtiLmN1cnZlcz1rKEkpO2Iuc3dpcmw9ayhiYSk7Yi5pbms9ayhZ
KTtiLnZpZ25ldHRlPWsoUCk7Yi52aWJyYW5jZT1rKE8pO2Iuc2VwaWE9ayhNKTtyZXR1cm4gYn07
di5zcGxpbmVJbnRlcnBvbGF0ZT10O3ZhciBoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYihiLGMpe3Zh
ciBlPWEuY3JlYXRlU2hhZGVyKGIpO2Euc2hhZGVyU291cmNlKGUsYyk7YS5jb21waWxlU2hhZGVy
KGUpO2lmKCFhLmdldFNoYWRlclBhcmFtZXRlcihlLAorYS5DT01QSUxFX1NUQVRVUykpdGhyb3ci
Y29tcGlsZSBlcnJvcjogIithLmdldFNoYWRlckluZm9Mb2coZSk7cmV0dXJuIGV9ZnVuY3Rpb24g
ZChkLGwpe3RoaXMudGV4Q29vcmRBdHRyaWJ1dGU9dGhpcy52ZXJ0ZXhBdHRyaWJ1dGU9bnVsbDt0
aGlzLnByb2dyYW09YS5jcmVhdGVQcm9ncmFtKCk7ZD1kfHxjO2w9bHx8ZTtsPSJwcmVjaXNpb24g
aGlnaHAgZmxvYXQ7IitsO2EuYXR0YWNoU2hhZGVyKHRoaXMucHJvZ3JhbSxiKGEuVkVSVEVYX1NI
QURFUixkKSk7YS5hdHRhY2hTaGFkZXIodGhpcy5wcm9ncmFtLGIoYS5GUkFHTUVOVF9TSEFERVIs
bCkpO2EubGlua1Byb2dyYW0odGhpcy5wcm9ncmFtKTtpZighYS5nZXRQcm9ncmFtUGFyYW1ldGVy
KHRoaXMucHJvZ3JhbSxhLkxJTktfU1RBVFVTKSl0aHJvdyJsaW5rIGVycm9yOiAiK2EuZ2V0UHJv
Z3JhbUluZm9Mb2codGhpcy5wcm9ncmFtKTt9dmFyIGM9ImF0dHJpYnV0ZSB2ZWMyIHZlcnRleDth
dHRyaWJ1dGUgdmVjMiBfdGV4Q29vcmQ7dmFyeWluZyB2ZWMyIHRleENvb3JkO3ZvaWQgbWFpbigp
e3RleENvb3JkPV90ZXhDb29yZDtnbF9Qb3NpdGlvbj12ZWM0KHZlcnRleCoyLjAtMS4wLDAuMCwx
LjApO30iLAorZT0idW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTt2YXJ5aW5nIHZlYzIgdGV4Q29v
cmQ7dm9pZCBtYWluKCl7Z2xfRnJhZ0NvbG9yPXRleHR1cmUyRCh0ZXh0dXJlLHRleENvb3JkKTt9
IjtkLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7YS5kZWxldGVQcm9ncmFtKHRoaXMucHJv
Z3JhbSk7dGhpcy5wcm9ncmFtPW51bGx9O2QucHJvdG90eXBlLnVuaWZvcm1zPWZ1bmN0aW9uKGIp
e2EudXNlUHJvZ3JhbSh0aGlzLnByb2dyYW0pO2Zvcih2YXIgZSBpbiBiKWlmKGIuaGFzT3duUHJv
cGVydHkoZSkpe3ZhciBjPWEuZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMucHJvZ3JhbSxlKTtpZihu
dWxsIT09Yyl7dmFyIGQ9YltlXTtpZigiW29iamVjdCBBcnJheV0iPT1PYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwoZCkpc3dpdGNoKGQubGVuZ3RoKXtjYXNlIDE6YS51bmlmb3JtMWZ2KGMs
bmV3IEZsb2F0MzJBcnJheShkKSk7YnJlYWs7CitjYXNlIDI6YS51bmlmb3JtMmZ2KGMsbmV3IEZs
b2F0MzJBcnJheShkKSk7YnJlYWs7Y2FzZSAzOmEudW5pZm9ybTNmdihjLG5ldyBGbG9hdDMyQXJy
YXkoZCkpO2JyZWFrO2Nhc2UgNDphLnVuaWZvcm00ZnYoYyxuZXcgRmxvYXQzMkFycmF5KGQpKTti
cmVhaztjYXNlIDk6YS51bmlmb3JtTWF0cml4M2Z2KGMsITEsbmV3IEZsb2F0MzJBcnJheShkKSk7
YnJlYWs7Y2FzZSAxNjphLnVuaWZvcm1NYXRyaXg0ZnYoYywhMSxuZXcgRmxvYXQzMkFycmF5KGQp
KTticmVhaztkZWZhdWx0OnRocm93ImRvbnQndCBrbm93IGhvdyB0byBsb2FkIHVuaWZvcm0gXCIi
K2UrJyIgb2YgbGVuZ3RoICcrZC5sZW5ndGg7fWVsc2UgaWYoIltvYmplY3QgTnVtYmVyXSI9PU9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSlhLnVuaWZvcm0xZihjLGQpO2Vsc2UgdGhy
b3cnYXR0ZW1wdGVkIHRvIHNldCB1bmlmb3JtICInK2UrJyIgdG8gaW52YWxpZCB2YWx1ZSAnKyhk
fHwidW5kZWZpbmVkIikudG9TdHJpbmcoKTsKK319cmV0dXJuIHRoaXN9O2QucHJvdG90eXBlLnRl
eHR1cmVzPWZ1bmN0aW9uKGIpe2EudXNlUHJvZ3JhbSh0aGlzLnByb2dyYW0pO2Zvcih2YXIgYyBp
biBiKWIuaGFzT3duUHJvcGVydHkoYykmJmEudW5pZm9ybTFpKGEuZ2V0VW5pZm9ybUxvY2F0aW9u
KHRoaXMucHJvZ3JhbSxjKSxiW2NdKTtyZXR1cm4gdGhpc307ZC5wcm90b3R5cGUuZHJhd1JlY3Q9
ZnVuY3Rpb24oYixjLGUsZCl7dmFyIGY9YS5nZXRQYXJhbWV0ZXIoYS5WSUVXUE9SVCk7Yz12b2lk
IDAhPT1jPyhjLWZbMV0pL2ZbM106MDtiPXZvaWQgMCE9PWI/KGItZlswXSkvZlsyXTowO2U9dm9p
ZCAwIT09ZT8oZS1mWzBdKS9mWzJdOjE7ZD12b2lkIDAhPT1kPyhkLWZbMV0pL2ZbM106MTtudWxs
PT1hLnZlcnRleEJ1ZmZlciYmKGEudmVydGV4QnVmZmVyPWEuY3JlYXRlQnVmZmVyKCkpO2EuYmlu
ZEJ1ZmZlcihhLkFSUkFZX0JVRkZFUixhLnZlcnRleEJ1ZmZlcik7YS5idWZmZXJEYXRhKGEuQVJS
QVlfQlVGRkVSLG5ldyBGbG9hdDMyQXJyYXkoW2IsCitjLGIsZCxlLGMsZSxkXSksYS5TVEFUSUNf
RFJBVyk7bnVsbD09YS50ZXhDb29yZEJ1ZmZlciYmKGEudGV4Q29vcmRCdWZmZXI9YS5jcmVhdGVC
dWZmZXIoKSxhLmJpbmRCdWZmZXIoYS5BUlJBWV9CVUZGRVIsYS50ZXhDb29yZEJ1ZmZlciksYS5i
dWZmZXJEYXRhKGEuQVJSQVlfQlVGRkVSLG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDEsMSwwLDEs
MV0pLGEuU1RBVElDX0RSQVcpKTtudWxsPT10aGlzLnZlcnRleEF0dHJpYnV0ZSYmKHRoaXMudmVy
dGV4QXR0cmlidXRlPWEuZ2V0QXR0cmliTG9jYXRpb24odGhpcy5wcm9ncmFtLCJ2ZXJ0ZXgiKSxh
LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHRoaXMudmVydGV4QXR0cmlidXRlKSk7bnVsbD09dGhp
cy50ZXhDb29yZEF0dHJpYnV0ZSYmKHRoaXMudGV4Q29vcmRBdHRyaWJ1dGU9YS5nZXRBdHRyaWJM
b2NhdGlvbih0aGlzLnByb2dyYW0sIl90ZXhDb29yZCIpLGEuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkodGhpcy50ZXhDb29yZEF0dHJpYnV0ZSkpOworYS51c2VQcm9ncmFtKHRoaXMucHJvZ3JhbSk7
YS5iaW5kQnVmZmVyKGEuQVJSQVlfQlVGRkVSLGEudmVydGV4QnVmZmVyKTthLnZlcnRleEF0dHJp
YlBvaW50ZXIodGhpcy52ZXJ0ZXhBdHRyaWJ1dGUsMixhLkZMT0FULCExLDAsMCk7YS5iaW5kQnVm
ZmVyKGEuQVJSQVlfQlVGRkVSLGEudGV4Q29vcmRCdWZmZXIpO2EudmVydGV4QXR0cmliUG9pbnRl
cih0aGlzLnRleENvb3JkQXR0cmlidXRlLDIsYS5GTE9BVCwhMSwwLDApO2EuZHJhd0FycmF5cyhh
LlRSSUFOR0xFX1NUUklQLDAsNCl9O2QuZ2V0RGVmYXVsdFNoYWRlcj1mdW5jdGlvbigpe2EuZGVm
YXVsdFNoYWRlcj1hLmRlZmF1bHRTaGFkZXJ8fG5ldyBkO3JldHVybiBhLmRlZmF1bHRTaGFkZXJ9
O3JldHVybiBkfSgpO3oucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKGEpe2Zvcih2YXIg
ZD0wLGM9dGhpcy55YS5sZW5ndGgtMTsxPGMtZDspe3ZhciBlPWMrZD4+MTt0aGlzLnhhW2VdPmE/
Yz1lOmQ9ZX12YXIgZT10aGlzLnhhW2NdLQordGhpcy54YVtkXSxnPSh0aGlzLnhhW2NdLWEpL2U7
YT0oYS10aGlzLnhhW2RdKS9lO3JldHVybiBnKnRoaXMueWFbZF0rYSp0aGlzLnlhW2NdKygoZypn
KmctZykqdGhpcy55MltkXSsoYSphKmEtYSkqdGhpcy55MltjXSkqZSplLzZ9O3ZhciByPWZ1bmN0
aW9uKCl7ZnVuY3Rpb24gYihiLGMsZCxmKXt0aGlzLmdsPWE7dGhpcy5pZD1hLmNyZWF0ZVRleHR1
cmUoKTt0aGlzLndpZHRoPWI7dGhpcy5oZWlnaHQ9Yzt0aGlzLmZvcm1hdD1kO3RoaXMudHlwZT1m
O2EuYmluZFRleHR1cmUoYS5URVhUVVJFXzJELHRoaXMuaWQpO2EudGV4UGFyYW1ldGVyaShhLlRF
WFRVUkVfMkQsYS5URVhUVVJFX01BR19GSUxURVIsYS5MSU5FQVIpO2EudGV4UGFyYW1ldGVyaShh
LlRFWFRVUkVfMkQsYS5URVhUVVJFX01JTl9GSUxURVIsYS5MSU5FQVIpO2EudGV4UGFyYW1ldGVy
aShhLlRFWFRVUkVfMkQsYS5URVhUVVJFX1dSQVBfUyxhLkNMQU1QX1RPX0VER0UpO2EudGV4UGFy
YW1ldGVyaShhLlRFWFRVUkVfMkQsCithLlRFWFRVUkVfV1JBUF9ULGEuQ0xBTVBfVE9fRURHRSk7
YiYmYyYmYS50ZXhJbWFnZTJEKGEuVEVYVFVSRV8yRCwwLHRoaXMuZm9ybWF0LGIsYywwLHRoaXMu
Zm9ybWF0LHRoaXMudHlwZSxudWxsKX1mdW5jdGlvbiBkKGEpe251bGw9PWMmJihjPWRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpKTtjLndpZHRoPWEud2lkdGg7Yy5oZWlnaHQ9YS5oZWln
aHQ7YT1jLmdldENvbnRleHQoIjJkIik7YS5jbGVhclJlY3QoMCwwLGMud2lkdGgsYy5oZWlnaHQp
O3JldHVybiBhfWIuZnJvbUVsZW1lbnQ9ZnVuY3Rpb24oYyl7dmFyIGQ9bmV3IGIoMCwwLGEuUkdC
QSxhLlVOU0lHTkVEX0JZVEUpO2QubG9hZENvbnRlbnRzT2YoYyk7cmV0dXJuIGR9O2IucHJvdG90
eXBlLmxvYWRDb250ZW50c09mPWZ1bmN0aW9uKGIpe3RoaXMud2lkdGg9Yi53aWR0aHx8Yi52aWRl
b1dpZHRoO3RoaXMuaGVpZ2h0PWIuaGVpZ2h0fHxiLnZpZGVvSGVpZ2h0O2EuYmluZFRleHR1cmUo
YS5URVhUVVJFXzJELAordGhpcy5pZCk7YS50ZXhJbWFnZTJEKGEuVEVYVFVSRV8yRCwwLHRoaXMu
Zm9ybWF0LHRoaXMuZm9ybWF0LHRoaXMudHlwZSxiKX07Yi5wcm90b3R5cGUuaW5pdEZyb21CeXRl
cz1mdW5jdGlvbihiLGMsZCl7dGhpcy53aWR0aD1iO3RoaXMuaGVpZ2h0PWM7dGhpcy5mb3JtYXQ9
YS5SR0JBO3RoaXMudHlwZT1hLlVOU0lHTkVEX0JZVEU7YS5iaW5kVGV4dHVyZShhLlRFWFRVUkVf
MkQsdGhpcy5pZCk7YS50ZXhJbWFnZTJEKGEuVEVYVFVSRV8yRCwwLGEuUkdCQSxiLGMsMCxhLlJH
QkEsdGhpcy50eXBlLG5ldyBVaW50OEFycmF5KGQpKX07Yi5wcm90b3R5cGUuZGVzdHJveT1mdW5j
dGlvbigpe2EuZGVsZXRlVGV4dHVyZSh0aGlzLmlkKTt0aGlzLmlkPW51bGx9O2IucHJvdG90eXBl
LnVzZT1mdW5jdGlvbihiKXthLmFjdGl2ZVRleHR1cmUoYS5URVhUVVJFMCsoYnx8MCkpO2EuYmlu
ZFRleHR1cmUoYS5URVhUVVJFXzJELHRoaXMuaWQpfTtiLnByb3RvdHlwZS51bnVzZT1mdW5jdGlv
bihiKXthLmFjdGl2ZVRleHR1cmUoYS5URVhUVVJFMCsKKyhifHwwKSk7YS5iaW5kVGV4dHVyZShh
LlRFWFRVUkVfMkQsbnVsbCl9O2IucHJvdG90eXBlLmVuc3VyZUZvcm1hdD1mdW5jdGlvbihiLGMs
ZCxmKXtpZigxPT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgaD1hcmd1bWVudHNbMF07Yj1oLndpZHRo
O2M9aC5oZWlnaHQ7ZD1oLmZvcm1hdDtmPWgudHlwZX1pZihiIT10aGlzLndpZHRofHxjIT10aGlz
LmhlaWdodHx8ZCE9dGhpcy5mb3JtYXR8fGYhPXRoaXMudHlwZSl0aGlzLndpZHRoPWIsdGhpcy5o
ZWlnaHQ9Yyx0aGlzLmZvcm1hdD1kLHRoaXMudHlwZT1mLGEuYmluZFRleHR1cmUoYS5URVhUVVJF
XzJELHRoaXMuaWQpLGEudGV4SW1hZ2UyRChhLlRFWFRVUkVfMkQsMCx0aGlzLmZvcm1hdCxiLGMs
MCx0aGlzLmZvcm1hdCx0aGlzLnR5cGUsbnVsbCl9O2IucHJvdG90eXBlLmRyYXdUbz1mdW5jdGlv
bihiKXthLmZyYW1lYnVmZmVyPWEuZnJhbWVidWZmZXJ8fGEuY3JlYXRlRnJhbWVidWZmZXIoKTth
LmJpbmRGcmFtZWJ1ZmZlcihhLkZSQU1FQlVGRkVSLAorYS5mcmFtZWJ1ZmZlcik7YS5mcmFtZWJ1
ZmZlclRleHR1cmUyRChhLkZSQU1FQlVGRkVSLGEuQ09MT1JfQVRUQUNITUVOVDAsYS5URVhUVVJF
XzJELHRoaXMuaWQsMCk7aWYoYS5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGEuRlJBTUVCVUZGRVIp
IT09YS5GUkFNRUJVRkZFUl9DT01QTEVURSl0aHJvdyBFcnJvcigiaW5jb21wbGV0ZSBmcmFtZWJ1
ZmZlciIpO2Eudmlld3BvcnQoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO2IoKTthLmJpbmRG
cmFtZWJ1ZmZlcihhLkZSQU1FQlVGRkVSLG51bGwpfTt2YXIgYz1udWxsO2IucHJvdG90eXBlLmZp
bGxVc2luZ0NhbnZhcz1mdW5jdGlvbihiKXtiKGQodGhpcykpO3RoaXMuZm9ybWF0PWEuUkdCQTt0
aGlzLnR5cGU9YS5VTlNJR05FRF9CWVRFO2EuYmluZFRleHR1cmUoYS5URVhUVVJFXzJELHRoaXMu
aWQpO2EudGV4SW1hZ2UyRChhLlRFWFRVUkVfMkQsMCxhLlJHQkEsYS5SR0JBLGEuVU5TSUdORURf
QllURSxjKTtyZXR1cm4gdGhpc307CitiLnByb3RvdHlwZS50b0ltYWdlPWZ1bmN0aW9uKGIpe3Ro
aXMudXNlKCk7aC5nZXREZWZhdWx0U2hhZGVyKCkuZHJhd1JlY3QoKTt2YXIgZj00KnRoaXMud2lk
dGgqdGhpcy5oZWlnaHQsaz1uZXcgVWludDhBcnJheShmKSxuPWQodGhpcykscD1uLmNyZWF0ZUlt
YWdlRGF0YSh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KTthLnJlYWRQaXhlbHMoMCwwLHRoaXMud2lk
dGgsdGhpcy5oZWlnaHQsYS5SR0JBLGEuVU5TSUdORURfQllURSxrKTtmb3IodmFyIG09MDttPGY7
bSsrKXAuZGF0YVttXT1rW21dO24ucHV0SW1hZ2VEYXRhKHAsMCwwKTtiLnNyYz1jLnRvRGF0YVVS
TCgpfTtiLnByb3RvdHlwZS5zd2FwV2l0aD1mdW5jdGlvbihhKXt2YXIgYjtiPWEuaWQ7YS5pZD10
aGlzLmlkO3RoaXMuaWQ9YjtiPWEud2lkdGg7YS53aWR0aD10aGlzLndpZHRoO3RoaXMud2lkdGg9
YjtiPWEuaGVpZ2h0O2EuaGVpZ2h0PXRoaXMuaGVpZ2h0O3RoaXMuaGVpZ2h0PWI7Yj1hLmZvcm1h
dDthLmZvcm1hdD0KK3RoaXMuZm9ybWF0O3RoaXMuZm9ybWF0PWJ9O3JldHVybiBifSgpLHM9ImZs
b2F0IHJhbmRvbSh2ZWMzIHNjYWxlLGZsb2F0IHNlZWQpe3JldHVybiBmcmFjdChzaW4oZG90KGds
X0ZyYWdDb29yZC54eXorc2VlZCxzY2FsZSkpKjQzNzU4LjU0NTMrc2VlZCk7fSI7cmV0dXJuIHZ9
KCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3Bj
LXdpdGgtZWZmZWN0cy9pbmRleC5odG1sIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVz
L3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjhiOTUwMzI4
YjQ4ZmY3OWVmMzdiNThlMzA1ZGFmNGMwYzJmMzVjCi0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0
ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvaW5kZXguaHRt
bApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KKyAqICBDb3B5cmlnaHQg
KGMpIDIwMTUgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGlu
IHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgor
CisgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNv
bnRlbnQ9IkEgemVzdCBvZiBjYW52YXMgY2FwdHVyZSBhbmQgcmVwbGFjZVRyYWNrIj4KKyAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgdXNlci1zY2Fs
YWJsZT15ZXMsIGluaXRpYWwtc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xIj4KKworICA8dGl0bGU+
QSB6ZXN0IG9mIGNhbnZhcyBjYXB0dXJlIGFuZCByZXBsYWNlVHJhY2s8L3RpdGxlPgorCisgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ibWFpbi5jc3MiIC8+CisKKzwvaGVhZD4KKworPGJv
ZHk+CisKKyAgPGgxPkEgemVzdCBvZiBjYW52YXMgY2FwdHVyZSBhbmQgcmVwbGFjZVRyYWNrPC9o
MT4KKyAgPGgyPkluc3BpcmVkIGJ5IHdlbGwta25vd24gPGEgaHJlZj0iLy93ZWJydGMuZ2l0aHVi
LmlvL3NhbXBsZXMvIiB0aXRsZT0iV2ViUlRDIHNhbXBsZXMgaG9tZXBhZ2UiPldlYlJUQyBzYW1w
bGVzPC9hPjwvaDI+CisKKyAgPHZpZGVvIGlkPSJsb2NhbFZpZGVvIiBhdXRvcGxheSBtdXRlZCBw
bGF5c0lubGluZT48L3ZpZGVvPgorICA8YnI+CisgIDx2aWRlbyBpZD0icmVtb3RlVmlkZW8iIGF1
dG9wbGF5IHBsYXlzSW5saW5lPjwvdmlkZW8+CisKKyAgPGRpdj4KKyAgICA8YnV0dG9uIGlkPSJz
dGFydEJ1dHRvbiI+U3RhcnQ8L2J1dHRvbj4KKyAgICA8YnV0dG9uIGlkPSJjYWxsQnV0dG9uIj5D
YWxsPC9idXR0b24+CisgIDwvZGl2PgorCisgIDxwPlRoaXMgcGFnZSBpbGx1c3RyYXRlcyB1c2Ug
b2YgdGhlIGNhbnZhcyBjYXB0dXJlIGFuZCByZXBsYWNlVHJhY2suCisgIFRvIGFkZCBzcGljZSB0
byB0aGlzIHR5cGljYWwgV2ViUlRDIHZpZGVvIGV4Y2hhbmdlLCB0aGUgY2FtZXJhIHZpZGVvIHRy
YWNrIChkaXNwbGF5ZWQgaW4gdGhlIGZpcnN0IHZpZGVvIGVsZW1lbnQpIGlzIHNlbnQgdG8gYSBj
YW52YXMuCisgIFNvbWUgcHJvY2Vzc2luZyBpcyBkb25lIHRvIHBpeGVsbGF0ZSBpdCBpbiB0aGUg
Y2FudmFzLgorICBUaGUgY2FudmFzIHN0cmVhbSBpcyBjYXB0dXJlZCBhbmQgc2VudCB0byB0aGUg
c2Vjb25kIHZpZGVvIGVsZW1lbnQgdGhyb3VnaCBXZWJSVEMuCisgIFRoZSBwaXhlbGxhdGlvbiB3
aWxsIHNsb3dseSBkZWNyZWFzZSB1cCB0byBubyBwaXhlbGxhdGlvbiBhdCBhbGwuCisgIE9uY2Ug
dGhlcmUgaXMgbm8gbW9yZSBwaXhlbGxhdGlvbiwgdGhlIGNhbnZhcyBjYXB0dXJlIHRyYWNrIHdp
bGwgYmUgcmVwbGFjZWQgYnkgdGhlIGNhbWVyYSB2aWRlbyB0cmFjayB0byBvcHRpbWl6ZSB0aGUg
cGVyZm9ybWFjZXMuCisgIDwvcD4KKworICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly93ZWJydGMuZ2l0
aHViLmlvL2FkYXB0ZXIvYWRhcHRlci1sYXRlc3QuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNy
Yz0iZ2xmeC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSJtYWluLmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1m
aWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3RzL21haW4uY3NzIGIvV2Vic2l0ZXMvd2Via2l0Lm9y
Zy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvbWFpbi5jc3MKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2IwMTUxNjVkY2JiNDVmMThjNmQzNWE1YTc0NDA1NjIyOTlkYWVmOQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvYmxvZy1maWxlcy93ZWJydGMvcGMtd2l0aC1lZmZlY3Rz
L21haW4uY3NzCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE1IFRo
ZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
CisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlCisgKiAgdHJlZS4KKyAqLworCithIHsKKyAgdGV4dC1kZWNvcmF0aW9uOiBu
b25lOworfQorCithOmhvdmVyIHsKKyAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9CisK
K2F1ZGlvIHsKKyAgbWF4LXdpZHRoOiAxMDAlOworfQorCitjYW52YXMgeworICBiYWNrZ3JvdW5k
LWNvbG9yOiAjY2NjOworICBtYXgtd2lkdGg6IDEwMCU7CisgIHdpZHRoOiAxMDAlOworfQorCit2
aWRlbyB7CisgIGJhY2tncm91bmQ6ICMyMjI7CisgIHdpZHRoOiA2NDBweDsKKyAgbWFyZ2luOiAw
IDAgMjBweCAwOworICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworfQorCitidXR0b24geworICBtYXJn
aW46IDAgMjBweCAwIDA7CisgIHdpZHRoOiA4M3B4OworfQorCitAbWVkaWEgc2NyZWVuIGFuZCAo
bWF4LXdpZHRoOiA0MDBweCkgeworICBidXR0b24geworICAgIHdpZHRoOiA4M3B4OworICAgIG1h
cmdpbjogMCAxMXB4IDEwcHggMDsKKyAgfQorCisgIHZpZGVvIHsKKyAgICB3aWR0aDogMzIwcHg7
CisgICAgbWFyZ2luOiAwIDAgMTBweCAwOworICB9Cit9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy93
ZWJraXQub3JnL2Jsb2ctZmlsZXMvd2VicnRjL3BjLXdpdGgtZWZmZWN0cy9tYWluLmpzIGIvV2Vi
c2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9wYy13aXRoLWVmZmVjdHMvbWFpbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MDBmYTRjMTJjMjQzOGJmYWQyMjIwZDA2MmZjYWU3MTE2N2YyMDAyCi0t
LSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9ibG9nLWZpbGVzL3dlYnJ0Yy9w
Yy13aXRoLWVmZmVjdHMvbWFpbi5qcwpAQCAtMCwwICsxLDI3NCBAQAorLyoKKyAqICBDb3B5cmln
aHQgKGMpIDIwMTUgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE
LXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLgorICovCisKKyd1c2Ugc3RyaWN0
JzsKKwordmFyIHN0YXJ0QnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0QnV0
dG9uJyk7Cit2YXIgY2FsbEJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxsQnV0
dG9uJyk7CitjYWxsQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsKK3N0YXJ0QnV0dG9uLm9uY2xpY2sg
PSBzdGFydDsKK2NhbGxCdXR0b24ub25jbGljayA9IGNhbGw7CisKK3ZhciBzdGFydFRpbWU7Cit2
YXIgbG9jYWxWaWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2NhbFZpZGVvJyk7Cit2
YXIgcmVtb3RlVmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlVmlkZW8nKTsK
K3ZhciBjYW52YXMgPSBmeC5jYW52YXMoKTsKKworbG9jYWxWaWRlby5hZGRFdmVudExpc3RlbmVy
KCdsb2FkZWRtZXRhZGF0YScsIGZ1bmN0aW9uKCkgeworICB0cmFjZSgnTG9jYWwgdmlkZW8gdmlk
ZW9XaWR0aDogJyArIHRoaXMudmlkZW9XaWR0aCArCisgICAgJ3B4LCAgdmlkZW9IZWlnaHQ6ICcg
KyB0aGlzLnZpZGVvSGVpZ2h0ICsgJ3B4Jyk7Cit9KTsKKworcmVtb3RlVmlkZW8uYWRkRXZlbnRM
aXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbigpIHsKKyAgdHJhY2UoJ1JlbW90ZSB2
aWRlbyB2aWRlb1dpZHRoOiAnICsgdGhpcy52aWRlb1dpZHRoICsKKyAgICAncHgsICB2aWRlb0hl
aWdodDogJyArIHRoaXMudmlkZW9IZWlnaHQgKyAncHgnKTsKK30pOworCityZW1vdGVWaWRlby5v
bnJlc2l6ZSA9IGZ1bmN0aW9uKCkgeworICB0cmFjZSgnUmVtb3RlIHZpZGVvIHNpemUgY2hhbmdl
ZCB0byAnICsKKyAgICByZW1vdGVWaWRlby52aWRlb1dpZHRoICsgJ3gnICsgcmVtb3RlVmlkZW8u
dmlkZW9IZWlnaHQpOworICAvLyBXZSdsbCB1c2UgdGhlIGZpcnN0IG9uc2l6ZSBjYWxsYmFjayBh
cyBhbiBpbmRpY2F0aW9uIHRoYXQgdmlkZW8gaGFzIHN0YXJ0ZWQKKyAgLy8gcGxheWluZyBvdXQu
CisgIGlmIChzdGFydFRpbWUpIHsKKyAgICB2YXIgZWxhcHNlZFRpbWUgPSB3aW5kb3cucGVyZm9y
bWFuY2Uubm93KCkgLSBzdGFydFRpbWU7CisgICAgdHJhY2UoJ1NldHVwIHRpbWU6ICcgKyBlbGFw
c2VkVGltZS50b0ZpeGVkKDMpICsgJ21zJyk7CisgICAgc3RhcnRUaW1lID0gbnVsbDsKKyAgfQor
fTsKKwordmFyIGxvY2FsU3RyZWFtOwordmFyIHBjMTsKK3ZhciBwYzI7Cit2YXIgb2ZmZXJPcHRp
b25zID0geworICBvZmZlclRvUmVjZWl2ZUF1ZGlvOiAxLAorICBvZmZlclRvUmVjZWl2ZVZpZGVv
OiAxCit9OworCitmdW5jdGlvbiBnZXROYW1lKHBjKSB7CisgIHJldHVybiAocGMgPT09IHBjMSkg
PyAncGMxJyA6ICdwYzInOworfQorCitmdW5jdGlvbiBnZXRPdGhlclBjKHBjKSB7CisgIHJldHVy
biAocGMgPT09IHBjMSkgPyBwYzIgOiBwYzE7Cit9CisKK2Z1bmN0aW9uIGdvdFN0cmVhbShzdHJl
YW0pIHsKKyAgdHJhY2UoJ1JlY2VpdmVkIGxvY2FsIHN0cmVhbScpOworICBsb2NhbFZpZGVvLnNy
Y09iamVjdCA9IHN0cmVhbTsKKyAgbG9jYWxTdHJlYW0gPSBzdHJlYW07CisgIGNhbGxCdXR0b24u
ZGlzYWJsZWQgPSBmYWxzZTsKK30KKworZnVuY3Rpb24gc3RhcnQoKSB7CisgIHRyYWNlKCdSZXF1
ZXN0aW5nIGxvY2FsIHN0cmVhbScpOworICBzdGFydEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7Cisg
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsKKyAgICBhdWRpbzogZmFsc2Us
CisgICAgdmlkZW86IHRydWV9KQorICAudGhlbihnb3RTdHJlYW0pCisgIC5jYXRjaChmdW5jdGlv
bihlKSB7CisgICAgYWxlcnQoJ2dldFVzZXJNZWRpYSgpIGVycm9yOiAnICsgZSk7CisgIH0pOwor
fQorCitmdW5jdGlvbiBjYWxsKCkgeworICBjYWxsQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsKKyAg
dHJhY2UoJ1N0YXJ0aW5nIGNhbGwnKTsKKyAgc3RhcnRUaW1lID0gd2luZG93LnBlcmZvcm1hbmNl
Lm5vdygpOworICB2YXIgdmlkZW9UcmFja3MgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygp
OworICB2YXIgYXVkaW9UcmFja3MgPSBsb2NhbFN0cmVhbS5nZXRBdWRpb1RyYWNrcygpOworICBp
ZiAodmlkZW9UcmFja3MubGVuZ3RoID4gMCkgeworICAgIHRyYWNlKCdVc2luZyB2aWRlbyBkZXZp
Y2U6ICcgKyB2aWRlb1RyYWNrc1swXS5sYWJlbCk7CisgIH0KKyAgaWYgKGF1ZGlvVHJhY2tzLmxl
bmd0aCA+IDApIHsKKyAgICB0cmFjZSgnVXNpbmcgYXVkaW8gZGV2aWNlOiAnICsgYXVkaW9UcmFj
a3NbMF0ubGFiZWwpOworICB9CisgIHZhciBzZXJ2ZXJzID0gbnVsbDsKKyAgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKHNlcnZlcnMpOworICB0cmFjZSgnQ3JlYXRlZCBsb2NhbCBwZWVyIGNv
bm5lY3Rpb24gb2JqZWN0IHBjMScpOworICBwYzEub25pY2VjYW5kaWRhdGUgPSBmdW5jdGlvbihl
KSB7CisgICAgb25JY2VDYW5kaWRhdGUocGMxLCBlKTsKKyAgfTsKKyAgcGMyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKHNlcnZlcnMpOworICB0cmFjZSgnQ3JlYXRlZCByZW1vdGUgcGVlciBjb25u
ZWN0aW9uIG9iamVjdCBwYzInKTsKKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZnVuY3Rpb24oZSkg
eworICAgIG9uSWNlQ2FuZGlkYXRlKHBjMiwgZSk7CisgIH07CisgIHBjMS5vbmljZWNvbm5lY3Rp
b25zdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICBvbkljZVN0YXRlQ2hhbmdlKHBjMSwg
ZSk7CisgIH07CisgIHBjMi5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGUp
IHsKKyAgICBvbkljZVN0YXRlQ2hhbmdlKHBjMiwgZSk7CisgIH07CisgIHBjMi5vbnRyYWNrID0g
Z290UmVtb3RlVHJhY2s7CisKKyAgc3RhcnRVc2luZ0Rpc2NyZWV0TW9kZSgpOworICBwYzEuYWRk
VHJhY2soY2FudmFzVmlkZW9TdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgY2FudmFzVmlkZW9T
dHJlYW0pOworICB0cmFjZSgnQWRkZWQgbG9jYWwgc3RyZWFtIHRvIHBjMScpOworCisgIHRyYWNl
KCdwYzEgY3JlYXRlT2ZmZXIgc3RhcnQnKTsKKyAgcGMxLmNyZWF0ZU9mZmVyKAorICAgIG9mZmVy
T3B0aW9ucworICApLnRoZW4oCisgICAgb25DcmVhdGVPZmZlclN1Y2Nlc3MsCisgICAgb25DcmVh
dGVTZXNzaW9uRGVzY3JpcHRpb25FcnJvcgorICApOworfQorCitmdW5jdGlvbiBvbkNyZWF0ZVNl
c3Npb25EZXNjcmlwdGlvbkVycm9yKGVycm9yKSB7CisgIHRyYWNlKCdGYWlsZWQgdG8gY3JlYXRl
IHNlc3Npb24gZGVzY3JpcHRpb246ICcgKyBlcnJvci50b1N0cmluZygpKTsKK30KKworZnVuY3Rp
b24gb25DcmVhdGVPZmZlclN1Y2Nlc3MoZGVzYykgeworICB0cmFjZSgnT2ZmZXIgZnJvbSBwYzFc
bicgKyBkZXNjLnNkcCk7CisgIHRyYWNlKCdwYzEgc2V0TG9jYWxEZXNjcmlwdGlvbiBzdGFydCcp
OworICBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihkZXNjKS50aGVuKAorICAgIGZ1bmN0aW9uKCkg
eworICAgICAgb25TZXRMb2NhbFN1Y2Nlc3MocGMxKTsKKyAgICB9LAorICAgIG9uU2V0U2Vzc2lv
bkRlc2NyaXB0aW9uRXJyb3IKKyAgKTsKKyAgdHJhY2UoJ3BjMiBzZXRSZW1vdGVEZXNjcmlwdGlv
biBzdGFydCcpOworICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oZGVzYykudGhlbigKKyAgICBm
dW5jdGlvbigpIHsKKyAgICAgIG9uU2V0UmVtb3RlU3VjY2VzcyhwYzIpOworICAgIH0sCisgICAg
b25TZXRTZXNzaW9uRGVzY3JpcHRpb25FcnJvcgorICApOworICB0cmFjZSgncGMyIGNyZWF0ZUFu
c3dlciBzdGFydCcpOworICAvLyBTaW5jZSB0aGUgJ3JlbW90ZScgc2lkZSBoYXMgbm8gbWVkaWEg
c3RyZWFtIHdlIG5lZWQKKyAgLy8gdG8gcGFzcyBpbiB0aGUgcmlnaHQgY29uc3RyYWludHMgaW4g
b3JkZXIgZm9yIGl0IHRvCisgIC8vIGFjY2VwdCB0aGUgaW5jb21pbmcgb2ZmZXIgb2YgYXVkaW8g
YW5kIHZpZGVvLgorICBwYzIuY3JlYXRlQW5zd2VyKCkudGhlbigKKyAgICBvbkNyZWF0ZUFuc3dl
clN1Y2Nlc3MsCisgICAgb25DcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25FcnJvcgorICApOworfQor
CitmdW5jdGlvbiBvblNldExvY2FsU3VjY2VzcyhwYykgeworICB0cmFjZShnZXROYW1lKHBjKSAr
ICcgc2V0TG9jYWxEZXNjcmlwdGlvbiBjb21wbGV0ZScpOworfQorCitmdW5jdGlvbiBvblNldFJl
bW90ZVN1Y2Nlc3MocGMpIHsKKyAgdHJhY2UoZ2V0TmFtZShwYykgKyAnIHNldFJlbW90ZURlc2Ny
aXB0aW9uIGNvbXBsZXRlJyk7Cit9CisKK2Z1bmN0aW9uIG9uU2V0U2Vzc2lvbkRlc2NyaXB0aW9u
RXJyb3IoZXJyb3IpIHsKKyAgdHJhY2UoJ0ZhaWxlZCB0byBzZXQgc2Vzc2lvbiBkZXNjcmlwdGlv
bjogJyArIGVycm9yLnRvU3RyaW5nKCkpOworfQorCitmdW5jdGlvbiBnb3RSZW1vdGVUcmFjayhl
KSB7CisgIHJlbW90ZVZpZGVvLnNyY09iamVjdCA9IGUuc3RyZWFtc1swXTsKKyAgdHJhY2UoJ3Bj
MiByZWNlaXZlZCByZW1vdGUgdHJhY2snKTsKK30KKworZnVuY3Rpb24gb25DcmVhdGVBbnN3ZXJT
dWNjZXNzKGRlc2MpIHsKKyAgdHJhY2UoJ0Fuc3dlciBmcm9tIHBjMjpcbicgKyBkZXNjLnNkcCk7
CisgIHRyYWNlKCdwYzIgc2V0TG9jYWxEZXNjcmlwdGlvbiBzdGFydCcpOworICBwYzIuc2V0TG9j
YWxEZXNjcmlwdGlvbihkZXNjKS50aGVuKAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgb25TZXRM
b2NhbFN1Y2Nlc3MocGMyKTsKKyAgICB9LAorICAgIG9uU2V0U2Vzc2lvbkRlc2NyaXB0aW9uRXJy
b3IKKyAgKTsKKyAgdHJhY2UoJ3BjMSBzZXRSZW1vdGVEZXNjcmlwdGlvbiBzdGFydCcpOworICBw
YzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oZGVzYykudGhlbigKKyAgICBmdW5jdGlvbigpIHsKKyAg
ICAgIG9uU2V0UmVtb3RlU3VjY2VzcyhwYzEpOworICAgIH0sCisgICAgb25TZXRTZXNzaW9uRGVz
Y3JpcHRpb25FcnJvcgorICApOworfQorCitmdW5jdGlvbiBvbkljZUNhbmRpZGF0ZShwYywgZXZl
bnQpIHsKKyAgZ2V0T3RoZXJQYyhwYykuYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSkK
KyAgLnRoZW4oCisgICAgZnVuY3Rpb24oKSB7CisgICAgICBvbkFkZEljZUNhbmRpZGF0ZVN1Y2Nl
c3MocGMpOworICAgIH0sCisgICAgZnVuY3Rpb24oZXJyKSB7CisgICAgICBvbkFkZEljZUNhbmRp
ZGF0ZUVycm9yKHBjLCBlcnIpOworICAgIH0KKyAgKTsKKyAgdHJhY2UoZ2V0TmFtZShwYykgKyAn
IElDRSBjYW5kaWRhdGU6IFxuJyArIChldmVudC5jYW5kaWRhdGUgPworICAgICAgZXZlbnQuY2Fu
ZGlkYXRlLmNhbmRpZGF0ZSA6ICcobnVsbCknKSk7Cit9CisKK2Z1bmN0aW9uIG9uQWRkSWNlQ2Fu
ZGlkYXRlU3VjY2VzcyhwYykgeworICB0cmFjZShnZXROYW1lKHBjKSArICcgYWRkSWNlQ2FuZGlk
YXRlIHN1Y2Nlc3MnKTsKK30KKworZnVuY3Rpb24gb25BZGRJY2VDYW5kaWRhdGVFcnJvcihwYywg
ZXJyb3IpIHsKKyAgdHJhY2UoZ2V0TmFtZShwYykgKyAnIGZhaWxlZCB0byBhZGQgSUNFIENhbmRp
ZGF0ZTogJyArIGVycm9yLnRvU3RyaW5nKCkpOworfQorCitmdW5jdGlvbiBvbkljZVN0YXRlQ2hh
bmdlKHBjLCBldmVudCkgeworICBpZiAocGMpIHsKKyAgICB0cmFjZShnZXROYW1lKHBjKSArICcg
SUNFIHN0YXRlOiAnICsgcGMuaWNlQ29ubmVjdGlvblN0YXRlKTsKKyAgICBjb25zb2xlLmxvZygn
SUNFIHN0YXRlIGNoYW5nZSBldmVudDogJywgZXZlbnQpOworICB9Cit9CisKK3ZhciBjYW52YXNW
aWRlb1N0cmVhbTsKK3ZhciBkcmF3Q2FudmFzID0gZmFsc2U7Cit2YXIgaGV4YWdvblNpemUgPSAz
MDsKK2Z1bmN0aW9uIHZpZGVvVG9DYW52YXMoKQoreworICAgIHZhciB0ZXh0dXJlID0gY2FudmFz
LnRleHR1cmUobG9jYWxWaWRlbyk7CisgICAgY2FudmFzLmRyYXcodGV4dHVyZSkuaGV4YWdvbmFs
UGl4ZWxhdGUoMzIwLCAyMzkuNSwgaGV4YWdvblNpemUpLnVwZGF0ZSgpOworICAgIGlmIChkcmF3
Q2FudmFzKQorICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHZpZGVvVG9DYW52
YXMpOworfQorCit2YXIgaXNVcGRhdGluZ0hleGFnb25TaXplID0gZmFsc2U7CitmdW5jdGlvbiB1
cGRhdGVIZXhhZ29uU2l6ZSgpCit7CisgICAgaWYgKCFpc1VwZGF0aW5nSGV4YWdvblNpemUpCisg
ICAgICAgIHJldHVybjsKKyAgICBpZiAoaGV4YWdvblNpemUgPD0gMSkgeworICAgICAgICBzdG9w
VXNpbmdEaXNjcmVldE1vZGUoKTsKKyAgICAgICAgaXNVcGRhdGluZ0hleGFnb25TaXplID0gZmFs
c2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaGV4YWdvblNpemUtLTsKKyAgICBzZXRU
aW1lb3V0KHVwZGF0ZUhleGFnb25TaXplLCAzMDApOworfQorCitmdW5jdGlvbiBzdGFydFVzaW5n
RGlzY3JlZXRNb2RlKCkKK3sKKyAgICBoZXhhZ29uU2l6ZSA9IDMwOworICAgIGlmICghY2FudmFz
VmlkZW9TdHJlYW0pCisgICAgICAgIGNhbnZhc1ZpZGVvU3RyZWFtID0gY2FudmFzLmNhcHR1cmVT
dHJlYW0oKTsKKworICAgIGlmICghZHJhd0NhbnZhcykgeworICAgICAgICBkcmF3Q2FudmFzID0g
dHJ1ZTsKKyAgICAgICAgdmlkZW9Ub0NhbnZhcygpOworICAgIH0KKworICAgIGlmICghaXNVcGRh
dGluZ0hleGFnb25TaXplKSB7CisgICAgICAgIGlzVXBkYXRpbmdIZXhhZ29uU2l6ZSA9IHRydWU7
CisgICAgICAgIHVwZGF0ZUhleGFnb25TaXplKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBzdG9w
VXNpbmdEaXNjcmVldE1vZGUoKQoreworICAgIGZvcih2YXIgc2VuZGVyIG9mIHBjMS5nZXRTZW5k
ZXJzKCkpIHsKKyAgICAgICAgaWYgKHNlbmRlci50cmFjay5raW5kID09PSAidmlkZW8iKSB7Cisg
ICAgICAgICAgICBzZW5kZXIucmVwbGFjZVRyYWNrKGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tz
KClbMF0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCitmdW5j
dGlvbiB0cmFjZShhcmcpIHsKKyAgdmFyIG5vdyA9ICh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkg
LyAxMDAwKS50b0ZpeGVkKDMpOworICBjb25zb2xlLmxvZyhub3cgKyAnOiAnLCBhcmcpOworfQor
CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>