<?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>116999</bug_id>
          
          <creation_ts>2013-05-29 14:30:06 -0700</creation_ts>
          <short_desc>Remove leftover files for ENABLE_PAGE_POPUP and ENABLE_CALENDAR_PICKER</short_desc>
          <delta_ts>2013-05-29 15:16:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>895217</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-05-29 14:30:06 -0700</bug_when>
    <thetext>Remove leftover files for ENABLE_PAGE_POPUP and ENABLE_CALENDAR_PICKER</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895218</commentid>
    <comment_count>1</comment_count>
      <attachid>203278</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-05-29 14:30:29 -0700</bug_when>
    <thetext>Created attachment 203278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895237</commentid>
    <comment_count>2</comment_count>
      <attachid>203278</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 15:16:31 -0700</bug_when>
    <thetext>Comment on attachment 203278
Patch

Clearing flags on attachment: 203278

Committed r150934: &lt;http://trac.webkit.org/changeset/150934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895238</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 15:16:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203278</attachid>
            <date>2013-05-29 14:30:29 -0700</date>
            <delta_ts>2013-05-29 15:16:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116999-20130530062906.patch</filename>
            <type>text/plain</type>
            <size>66559</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwOTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhhZTZkMDhkNGEyODEy
YWVmNmU3YTg5ZWRkZjQ0Mzg2ZjNlMDU1ZC4uZmEzYmRiNjc5OTY4NTY3MTU1NzJiMTVlZjFlZjYx
ZmM3YTVjYzg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA1LTI5ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgbGVmdG92ZXIg
ZmlsZXMgZm9yIEVOQUJMRV9QQUdFX1BPUFVQIGFuZCBFTkFCTEVfQ0FMRU5EQVJfUElDS0VSCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY5OTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFJlc291cmNl
cy9wYWdlcG9wdXBzL2NvbG9yU3VnZ2VzdGlvblBpY2tlci5jc3M6IFJlbW92ZWQuCisgICAgICAg
ICogUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY29sb3JTdWdnZXN0aW9uUGlja2VyLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBzL3BpY2tlckNvbW1vbi5jc3M6IFJlbW92
ZWQuCisgICAgICAgICogUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvcGlja2VyQ29tbW9uLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBzL3N1Z2dlc3Rpb25QaWNrZXIuY3Nz
OiBSZW1vdmVkLgorICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBzL3N1Z2dlc3Rpb25QaWNr
ZXIuanM6IFJlbW92ZWQuCisKIDIwMTMtMDUtMjkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01hY10gU2NydWJiaW5nIGxvbmcgbW92aWUgZmlsZXMgcmVzdWx0
cyBpbiB0aW1lbGluZSBzbmFwcGluZyBiYWNrIHRvIDAgZHVyaW5nIHNjcnViLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY29sb3JTdWdnZXN0aW9uUGlj
a2VyLmNzcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NvbG9yU3VnZ2Vz
dGlvblBpY2tlci5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmODQ3ZmViY2Fl
ZWE3Njk1NWFiNWZiNTg3MWM0NzIxYjk5YjRiZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMv
Y29sb3JTdWdnZXN0aW9uUGlja2VyLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi1ib2R5IHsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAgIGJh
Y2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgIGZvbnQ6IC13ZWJraXQtc21hbGwtY29udHJvbDsK
LSAgICBtYXJnaW46IDA7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLX0KLQotI21haW4gewotICAg
IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgIGJvcmRlcjogc29saWQgMXB4ICM4ODk5YWE7
Ci0gICAgYm94LXNoYWRvdzogaW5zZXQgMnB4IDJweCAycHggd2hpdGUsCi0gICAgICAgIGluc2V0
IC0ycHggLTJweCAxcHggcmdiYSgwLDAsMCwwLjEpOwotICAgIHBhZGRpbmc6IDZweDsKLSAgICBm
bG9hdDogbGVmdDsKLX0KLQotLmNvbG9yLXN3YXRjaCB7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAg
d2lkdGg6IDIwcHg7Ci0gICAgaGVpZ2h0OiAyMHB4OwotICAgIG1hcmdpbjogMXB4OwotICAgIHBh
ZGRpbmc6IDA7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDsKLSAgICBib3gtc2l6aW5n
OiBjb250ZW50LWJveDsKLX0KLQotLmNvbG9yLXN3YXRjaDpmb2N1cyB7Ci0gICAgYm9yZGVyOiAx
cHggc29saWQgIzAwMDAwMDsKLSAgICBvdXRsaW5lOiBub25lOwotfQotCi0uY29sb3Itc3dhdGNo
LWNvbnRhaW5lciB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgbWF4LWhlaWdodDogMTA0cHg7Ci0g
ICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICAgIC13ZWJr
aXQtZmxleC1mbG93OiByb3cgd3JhcDsKLSAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7
Ci19Ci0KLS5vdGhlci1jb2xvciB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgbWFyZ2luOiA0cHgg
MCAwIDA7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVw
cy9jb2xvclN1Z2dlc3Rpb25QaWNrZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFn
ZXBvcHVwcy9jb2xvclN1Z2dlc3Rpb25QaWNrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU1OWI5ZTZkYzgyYjNjYWE0NTM3YmIwNjMwMTM2ZmJlYTNhOGU3ZGQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3BhZ2Vwb3B1cHMvY29sb3JTdWdnZXN0aW9uUGlja2VyLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTg5ICswLDAgQEAKLSJ1c2Ugc3RyaWN0IjsKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi12YXIgZ2xvYmFsID0g
ewotICAgIGFyZ3VtZW50c1JlY2VpdmVkOiBmYWxzZSwKLSAgICBwYXJhbXM6IG51bGwKLX07Ci0K
LS8qKgotICogQHBhcmFtIHtFdmVudH0gZXZlbnQKLSAqLwotZnVuY3Rpb24gaGFuZGxlTWVzc2Fn
ZShldmVudCkgewotICAgIGluaXRpYWxpemUoSlNPTi5wYXJzZShldmVudC5kYXRhKSk7Ci0gICAg
Z2xvYmFsLmFyZ3VtZW50c1JlY2VpdmVkID0gdHJ1ZTsKLX0KLQotLyoqCi0gKiBAcGFyYW0geyFP
YmplY3R9IGFyZ3MKLSAqLwotZnVuY3Rpb24gaW5pdGlhbGl6ZShhcmdzKSB7IAotICAgIGdsb2Jh
bC5wYXJhbXMgPSBhcmdzOwotICAgIHZhciBtYWluID0gJCgibWFpbiIpOwotICAgIG1haW4uaW5u
ZXJIVE1MID0gIiI7Ci0gICAgdmFyIGVycm9yU3RyaW5nID0gdmFsaWRhdGVBcmd1bWVudHMoYXJn
cyk7Ci0gICAgaWYgKGVycm9yU3RyaW5nKSB7Ci0gICAgICAgIG1haW4udGV4dENvbnRlbnQgPSAi
SW50ZXJuYWwgZXJyb3I6ICIgKyBlcnJvclN0cmluZzsKLSAgICAgICAgcmVzaXplV2luZG93KG1h
aW4ub2Zmc2V0V2lkdGgsIG1haW4ub2Zmc2V0SGVpZ2h0KTsKLSAgICB9IGVsc2UKLSAgICAgICAg
bmV3IENvbG9yUGlja2VyKG1haW4sIGFyZ3MpOwotfQotCi0vLyBUaGUgRGVmYXVsdENvbG9yUGFs
ZXR0ZSBpcyB1c2VkIHdoZW4gdGhlIGxpc3Qgb2YgdmFsdWVzIGFyZSBlbXB0eS4gCi12YXIgRGVm
YXVsdENvbG9yUGFsZXR0ZSA9IFsiIzAwMDAwMCIsICIjNDA0MDQwIiwgIiM4MDgwODAiLCAiI2Mw
YzBjMCIsCi0gICAgIiNmZmZmZmYiLCAiIzk4MDAwMCIsICIjZmYwMDAwIiwgIiNmZjk5MDAiLCAi
I2ZmZmYwMCIsICIjMDBmZjAwIiwgIiMwMGZmZmYiLAotICAgICIjNGE4NmU4IiwgIiMwMDAwZmYi
LCAiIzk5MDBmZiIsICIjZmYwMGZmIl07Ci0KLWZ1bmN0aW9uIGhhbmRsZUFyZ3VtZW50c1RpbWVv
dXQoKSB7Ci0gICAgaWYgKGdsb2JhbC5hcmd1bWVudHNSZWNlaXZlZCkKLSAgICAgICAgcmV0dXJu
OwotICAgIHZhciBhcmdzID0gewotICAgICAgICB2YWx1ZXMgOiBEZWZhdWx0Q29sb3JQYWxldHRl
LAotICAgICAgICBvdGhlckNvbG9yTGFiZWw6ICJPdGhlci4uLiIKLSAgICB9OwotICAgIGluaXRp
YWxpemUoYXJncyk7Ci19Ci0KLS8qKgotICogQHBhcmFtIHshT2JqZWN0fSBhcmdzCi0gKiBAcmV0
dXJuIHs/c3RyaW5nfSBBbiBlcnJvciBtZXNzYWdlLCBvciBudWxsIGlmIHRoZSBhcmd1bWVudCBo
YXMgbm8gZXJyb3JzLgotICovCi1mdW5jdGlvbiB2YWxpZGF0ZUFyZ3VtZW50cyhhcmdzKSB7Ci0g
ICAgaWYgKCFhcmdzLnZhbHVlcykKLSAgICAgICAgcmV0dXJuICJObyB2YWx1ZXMuIjsKLSAgICBp
ZiAoIWFyZ3Mub3RoZXJDb2xvckxhYmVsKQotICAgICAgICByZXR1cm4gIk5vIG90aGVyQ29sb3JM
YWJlbC4iOwotICAgIHJldHVybiBudWxsOwotfQotCi1mdW5jdGlvbiBDb2xvclBpY2tlcihlbGVt
ZW50LCBjb25maWcpIHsKLSAgICBQaWNrZXIuY2FsbCh0aGlzLCBlbGVtZW50LCBjb25maWcpOwot
ICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZzsKLSAgICBpZiAodGhpcy5fY29uZmlnLnZhbHVlcy5s
ZW5ndGggPT09IDApCi0gICAgICAgIHRoaXMuX2NvbmZpZy52YWx1ZXMgPSBEZWZhdWx0Q29sb3JQ
YWxldHRlOwotICAgIHRoaXMuX2NvbnRhaW5lciA9IG51bGw7Ci0gICAgdGhpcy5fbGF5b3V0KCk7
Ci0gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5faGFu
ZGxlS2V5RG93bi5iaW5kKHRoaXMpKTsKLSAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlbW92ZSIsIHRoaXMuX2hhbmRsZU1vdXNlTW92ZS5iaW5kKHRoaXMpKTsKLSAgICB0
aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2hhbmRsZU1v
dXNlRG93bi5iaW5kKHRoaXMpKTsKLX0KLUNvbG9yUGlja2VyLnByb3RvdHlwZSA9IE9iamVjdC5j
cmVhdGUoUGlja2VyLnByb3RvdHlwZSk7Ci0KLXZhciBTd2F0Y2hCb3JkZXJCb3hXaWR0aCA9IDI0
OyAvLyBrZWVwIGluIHN5bmMgd2l0aCBDU1MKLXZhciBTd2F0Y2hCb3JkZXJCb3hIZWlnaHQgPSAy
NDsgLy8ga2VlcCBpbiBzeW5jIHdpdGggQ1NTCi12YXIgU3dhdGNoZXNQZXJSb3cgPSA1OwotdmFy
IFN3YXRjaGVzTWF4Um93ID0gNDsKLQotQ29sb3JQaWNrZXIucHJvdG90eXBlLl9sYXlvdXQgPSBm
dW5jdGlvbigpIHsKLSAgICB2YXIgY29udGFpbmVyID0gY3JlYXRlRWxlbWVudCgiZGl2IiwgImNv
bG9yLXN3YXRjaC1jb250YWluZXIiKTsKLSAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl9oYW5kbGVTd2F0Y2hDbGljay5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb25maWcudmFsdWVzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgIHZhciBzd2F0Y2ggPSBjcmVhdGVFbGVtZW50KCJidXR0b24iLCAiY29sb3Itc3dhdGNo
Iik7Ci0gICAgICAgIHN3YXRjaC5kYXRhc2V0LmluZGV4ID0gaTsKLSAgICAgICAgc3dhdGNoLmRh
dGFzZXQudmFsdWUgPSB0aGlzLl9jb25maWcudmFsdWVzW2ldOwotICAgICAgICBzd2F0Y2gudGl0
bGUgPSB0aGlzLl9jb25maWcudmFsdWVzW2ldOwotICAgICAgICBzd2F0Y2guc3R5bGUuYmFja2dy
b3VuZENvbG9yID0gdGhpcy5fY29uZmlnLnZhbHVlc1tpXTsKLSAgICAgICAgY29udGFpbmVyLmFw
cGVuZENoaWxkKHN3YXRjaCk7Ci0gICAgfQotICAgIHZhciBjb250YWluZXJXaWR0aCA9IFN3YXRj
aEJvcmRlckJveFdpZHRoICogU3dhdGNoZXNQZXJSb3c7Ci0gICAgaWYgKHRoaXMuX2NvbmZpZy52
YWx1ZXMubGVuZ3RoID4gU3dhdGNoZXNQZXJSb3cgKiBTd2F0Y2hlc01heFJvdykKLSAgICAgICAg
Y29udGFpbmVyV2lkdGggKz0gZ2V0U2Nyb2xsYmFyV2lkdGgoKTsKLSAgICBjb250YWluZXIuc3R5
bGUud2lkdGggPSBjb250YWluZXJXaWR0aCArICJweCI7Ci0gICAgY29udGFpbmVyLnN0eWxlLm1h
eEhlaWdodCA9IChTd2F0Y2hCb3JkZXJCb3hIZWlnaHQgKiBTd2F0Y2hlc01heFJvdykgKyAicHgi
OwotICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLSAgICB2YXIgb3Ro
ZXJCdXR0b24gPSBjcmVhdGVFbGVtZW50KCJidXR0b24iLCAib3RoZXItY29sb3IiLCB0aGlzLl9j
b25maWcub3RoZXJDb2xvckxhYmVsKTsKLSAgICBvdGhlckJ1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuY2hvb3NlT3RoZXJDb2xvci5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAg
dGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChvdGhlckJ1dHRvbik7Ci0gICAgdGhpcy5fY29udGFp
bmVyID0gY29udGFpbmVyOwotICAgIHRoaXMuX290aGVyQnV0dG9uID0gb3RoZXJCdXR0b247Ci0g
ICAgdmFyIGVsZW1lbnRXaWR0aCA9IHRoaXMuX2VsZW1lbnQub2Zmc2V0V2lkdGg7Ci0gICAgdmFy
IGVsZW1lbnRIZWlnaHQgPSB0aGlzLl9lbGVtZW50Lm9mZnNldEhlaWdodDsKLSAgICByZXNpemVX
aW5kb3coZWxlbWVudFdpZHRoLCBlbGVtZW50SGVpZ2h0KTsKLX07Ci0KLUNvbG9yUGlja2VyLnBy
b3RvdHlwZS5zZWxlY3RDb2xvckF0SW5kZXggPSBmdW5jdGlvbihpbmRleCkgewotICAgIGluZGV4
ID0gTWF0aC5tYXgoTWF0aC5taW4odGhpcy5fY29udGFpbmVyLmNoaWxkTm9kZXMubGVuZ3RoIC0g
MSwgaW5kZXgpLCAwKTsKLSAgICB0aGlzLl9jb250YWluZXIuY2hpbGROb2Rlc1tpbmRleF0uZm9j
dXMoKTsKLX07Ci0KLUNvbG9yUGlja2VyLnByb3RvdHlwZS5faGFuZGxlTW91c2VNb3ZlID0gZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygi
Y29sb3Itc3dhdGNoIikpCi0gICAgICAgIGV2ZW50LnRhcmdldC5mb2N1cygpOwotfTsKLQotQ29s
b3JQaWNrZXIucHJvdG90eXBlLl9oYW5kbGVNb3VzZURvd24gPSBmdW5jdGlvbihldmVudCkgewot
ICAgIC8vIFByZXZlbnQgYmx1ci4KLSAgICBpZiAoZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250
YWlucygiY29sb3Itc3dhdGNoIikpCi0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci19
OwotCi1Db2xvclBpY2tlci5wcm90b3R5cGUuX2hhbmRsZUtleURvd24gPSBmdW5jdGlvbihldmVu
dCkgewotICAgIHZhciBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVyOwotICAgIGlmIChrZXkgPT09
ICJVKzAwMUIiKSAvLyBFU0MKLSAgICAgICAgdGhpcy5oYW5kbGVDYW5jZWwoKTsKLSAgICBlbHNl
IGlmIChrZXkgPT0gIkxlZnQiIHx8IGtleSA9PSAiVXAiIHx8IGtleSA9PSAiUmlnaHQiIHx8IGtl
eSA9PSAiRG93biIpIHsKLSAgICAgICAgdmFyIHNlbGVjdGVkRWxlbWVudCA9IGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQ7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0gICAgICAgIGlmIChzZWxlY3Rl
ZEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJvdGhlci1jb2xvciIpKSB7Ci0gICAgICAgICAg
ICBpZiAoa2V5ICE9ICJSaWdodCIgJiYga2V5ICE9ICJVcCIpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgaW5kZXggPSB0aGlzLl9jb250YWluZXIuY2hpbGROb2Rlcy5sZW5n
dGggLSAxOwotICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkRWxlbWVudC5jbGFzc0xpc3QuY29u
dGFpbnMoImNvbG9yLXN3YXRjaCIpKSB7Ci0gICAgICAgICAgICBpbmRleCA9IHBhcnNlSW50KHNl
bGVjdGVkRWxlbWVudC5kYXRhc2V0LmluZGV4LCAxMCk7Ci0gICAgICAgICAgICBzd2l0Y2ggKGtl
eSkgewotICAgICAgICAgICAgY2FzZSAiTGVmdCI6Ci0gICAgICAgICAgICAgICAgaW5kZXgtLTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgIlJpZ2h0IjoKLSAgICAg
ICAgICAgICAgICBpbmRleCsrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSAiVXAiOgotICAgICAgICAgICAgICAgIGluZGV4IC09IFN3YXRjaGVzUGVyUm93OwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAiRG93biI6Ci0gICAgICAgICAg
ICAgICAgaW5kZXggKz0gU3dhdGNoZXNQZXJSb3c7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaW5kZXggPiB0aGlzLl9jb250YWluZXIuY2hp
bGROb2Rlcy5sZW5ndGggLSAxKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fb3RoZXJCdXR0b24u
Zm9jdXMoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgdGhpcy5zZWxlY3RDb2xvckF0SW5kZXgoaW5kZXgpOwotICAgIH0KLSAgICBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpOwotfTsKLQotQ29sb3JQaWNrZXIucHJvdG90eXBlLl9oYW5k
bGVTd2F0Y2hDbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYgKGV2ZW50LnRhcmdldC5j
bGFzc0xpc3QuY29udGFpbnMoImNvbG9yLXN3YXRjaCIpKQotICAgICAgICB0aGlzLnN1Ym1pdFZh
bHVlKGV2ZW50LnRhcmdldC5kYXRhc2V0LnZhbHVlKTsKLX07Ci0KLWlmICh3aW5kb3cuZGlhbG9n
QXJndW1lbnRzKSB7Ci0gICAgaW5pdGlhbGl6ZShkaWFsb2dBcmd1bWVudHMpOwotfSBlbHNlIHsK
LSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGhhbmRsZU1lc3NhZ2UsIGZh
bHNlKTsKLSAgICB3aW5kb3cuc2V0VGltZW91dChoYW5kbGVBcmd1bWVudHNUaW1lb3V0LCAxMDAw
KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3Bp
Y2tlckNvbW1vbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNr
ZXJDb21tb24uY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTY3NTFhNDE5MzY0
MTM1NWY2MjYyYzFlZGYzM2VjZDk5YTg1NWRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3Bp
Y2tlckNvbW1vbi5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
Ym9keSB7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICBiYWNrZ3JvdW5kLWNv
bG9yOiB3aGl0ZTsKLSAgICBmb250OiAtd2Via2l0LXNtYWxsLWNvbnRyb2w7Ci0gICAgbWFyZ2lu
OiAwOwotICAgIG92ZXJmbG93OiBoaWRkZW47Ci19Ci0KLS5ydGwgewotICAgIGRpcmVjdGlvbjog
cnRsOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMv
cGlja2VyQ29tbW9uLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvcGlj
a2VyQ29tbW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDM0MzI5ZjgzMGY3
NWVlZTRhNWVhM2ZkMzcwOTkzMzczZTFmNDNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3Bp
Y2tlckNvbW1vbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1NyArMCwwIEBACi0idXNlIHN0cmlj
dCI7Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwot
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotLyoqCi0gKiBAcGFyYW0geyFzdHJpbmd9IGlkCi0gKi8KLWZ1bmN0aW9u
ICQoaWQpIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotfQotCi0v
KioKLSAqIEBwYXJhbSB7IXN0cmluZ30gdGFnTmFtZQotICogQHBhcmFtIHtzdHJpbmc9fSBvcHRf
Y2xhc3MKLSAqIEBwYXJhbSB7c3RyaW5nPX0gb3B0X3RleHQKLSAqIEByZXR1cm4geyFFbGVtZW50
fQotICovCi1mdW5jdGlvbiBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG9wdF9jbGFzcywgb3B0X3Rl
eHQpIHsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7
Ci0gICAgaWYgKG9wdF9jbGFzcykKLSAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImNsYXNz
Iiwgb3B0X2NsYXNzKTsKLSAgICBpZiAob3B0X3RleHQpCi0gICAgICAgIGVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUob3B0X3RleHQpKTsKLSAgICByZXR1cm4gZWxl
bWVudDsKLX0KLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7IW51bWJlcnxSZWN0
YW5nbGV8T2JqZWN0fSB4T3JSZWN0Ci0gKiBAcGFyYW0geyFudW1iZXJ9IHkKLSAqIEBwYXJhbSB7
IW51bWJlcn0gd2lkdGgKLSAqIEBwYXJhbSB7IW51bWJlcn0gaGVpZ2h0Ci0gKi8KLWZ1bmN0aW9u
IFJlY3RhbmdsZSh4T3JSZWN0LCB5LCB3aWR0aCwgaGVpZ2h0KSB7Ci0gICAgaWYgKHR5cGVvZiB4
T3JSZWN0ID09PSAib2JqZWN0IikgewotICAgICAgICB5ID0geE9yUmVjdC55OwotICAgICAgICB3
aWR0aCA9IHhPclJlY3Qud2lkdGg7Ci0gICAgICAgIGhlaWdodCA9IHhPclJlY3QuaGVpZ2h0Owot
ICAgICAgICB4T3JSZWN0ID0geE9yUmVjdC54OwotICAgIH0KLSAgICB0aGlzLnggPSB4T3JSZWN0
OwotICAgIHRoaXMueSA9IHk7Ci0gICAgdGhpcy53aWR0aCA9IHdpZHRoOwotICAgIHRoaXMuaGVp
Z2h0ID0gaGVpZ2h0OwotfQotCi1SZWN0YW5nbGUucHJvdG90eXBlID0gewotICAgIGdldCBtYXhY
KCkgeyByZXR1cm4gdGhpcy54ICsgdGhpcy53aWR0aDsgfSwKLSAgICBnZXQgbWF4WSgpIHsgcmV0
dXJuIHRoaXMueSArIHRoaXMuaGVpZ2h0OyB9LAotICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsg
cmV0dXJuICJSZWN0YW5nbGUoIiArIHRoaXMueCArICIsIiArIHRoaXMueSArICIsIiArIHRoaXMu
d2lkdGggKyAiLCIgKyB0aGlzLmhlaWdodCArICIpIjsgfQotfTsKLQotLyoqCi0gKiBAcGFyYW0g
eyFSZWN0YW5nbGV9IHJlY3QxCi0gKiBAcGFyYW0geyFSZWN0YW5nbGV9IHJlY3QyCi0gKiBAcmV0
dXJuIHs/UmVjdGFuZ2xlfQotICovCi1SZWN0YW5nbGUuaW50ZXJzZWN0aW9uID0gZnVuY3Rpb24o
cmVjdDEsIHJlY3QyKSB7Ci0gICAgdmFyIHggPSBNYXRoLm1heChyZWN0MS54LCByZWN0Mi54KTsK
LSAgICB2YXIgbWF4WCA9IE1hdGgubWluKHJlY3QxLm1heFgsIHJlY3QyLm1heFgpOwotICAgIHZh
ciB5ID0gTWF0aC5tYXgocmVjdDEueSwgcmVjdDIueSk7Ci0gICAgdmFyIG1heFkgPSBNYXRoLm1p
bihyZWN0MS5tYXhZLCByZWN0Mi5tYXhZKTsKLSAgICB2YXIgd2lkdGggPSBtYXhYIC0geDsKLSAg
ICB2YXIgaGVpZ2h0ID0gbWF4WSAtIHk7Ci0gICAgaWYgKHdpZHRoIDwgMCB8fCBoZWlnaHQgPCAw
KQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICByZXR1cm4gbmV3IFJlY3RhbmdsZSh4LCB5LCB3
aWR0aCwgaGVpZ2h0KTsKLX07Ci0KLS8qKgotICogQHBhcmFtIHshbnVtYmVyfSB3aWR0aAotICog
QHBhcmFtIHshbnVtYmVyfSBoZWlnaHQKLSAqLwotZnVuY3Rpb24gcmVzaXplV2luZG93KHdpZHRo
LCBoZWlnaHQpIHsKLSAgICBzZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3Qod2lkdGgsIGhl
aWdodCwgd2lkdGgsIGhlaWdodCkpOwotfQotCi0vKioKLSAqIEBwYXJhbSB7IW51bWJlcn0gd2lk
dGgKLSAqIEBwYXJhbSB7IW51bWJlcn0gaGVpZ2h0Ci0gKiBAcGFyYW0gez9udW1iZXJ9IG1pbldp
ZHRoCi0gKiBAcGFyYW0gez9udW1iZXJ9IG1pbkhlaWdodAotICogQHJldHVybiB7IVJlY3Rhbmds
ZX0KLSAqLwotZnVuY3Rpb24gYWRqdXN0V2luZG93UmVjdCh3aWR0aCwgaGVpZ2h0LCBtaW5XaWR0
aCwgbWluSGVpZ2h0KSB7Ci0gICAgaWYgKHR5cGVvZiBtaW5XaWR0aCAhPT0gIm51bWJlciIpCi0g
ICAgICAgIG1pbldpZHRoID0gMDsKLSAgICBpZiAodHlwZW9mIG1pbkhlaWdodCAhPT0gIm51bWJl
ciIpCi0gICAgICAgIG1pbkhlaWdodCA9IDA7Ci0KLSAgICB2YXIgd2luZG93UmVjdCA9IG5ldyBS
ZWN0YW5nbGUoMCwgMCwgd2lkdGgsIGhlaWdodCk7Ci0KLSAgICBpZiAoIWdsb2JhbC5wYXJhbXMu
YW5jaG9yUmVjdEluU2NyZWVuKQotICAgICAgICByZXR1cm4gd2luZG93UmVjdDsKLQotICAgIHZh
ciBhbmNob3JSZWN0ID0gbmV3IFJlY3RhbmdsZShnbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNj
cmVlbik7Ci0gICAgdmFyIGF2YWlsUmVjdCA9IG5ldyBSZWN0YW5nbGUod2luZG93LnNjcmVlbi5h
dmFpbExlZnQsIHdpbmRvdy5zY3JlZW4uYXZhaWxUb3AsIHdpbmRvdy5zY3JlZW4uYXZhaWxXaWR0
aCwgd2luZG93LnNjcmVlbi5hdmFpbEhlaWdodCk7Ci0KLSAgICBfYWRqdXN0V2luZG93UmVjdFZl
cnRpY2FsbHkod2luZG93UmVjdCwgYXZhaWxSZWN0LCBhbmNob3JSZWN0LCBtaW5IZWlnaHQpOwot
ICAgIF9hZGp1c3RXaW5kb3dSZWN0SG9yaXpvbnRhbGx5KHdpbmRvd1JlY3QsIGF2YWlsUmVjdCwg
YW5jaG9yUmVjdCwgbWluV2lkdGgpOwotCi0gICAgcmV0dXJuIHdpbmRvd1JlY3Q7Ci19Ci0KLWZ1
bmN0aW9uIF9hZGp1c3RXaW5kb3dSZWN0VmVydGljYWxseSh3aW5kb3dSZWN0LCBhdmFpbFJlY3Qs
IGFuY2hvclJlY3QsIG1pbkhlaWdodCkgewotICAgIHZhciBhdmFpbGFibGVTcGFjZUFib3ZlID0g
YW5jaG9yUmVjdC55IC0gYXZhaWxSZWN0Lnk7Ci0gICAgYXZhaWxhYmxlU3BhY2VBYm92ZSA9IE1h
dGgubWF4KDAsIE1hdGgubWluKGF2YWlsUmVjdC5oZWlnaHQsIGF2YWlsYWJsZVNwYWNlQWJvdmUp
KTsKLQotICAgIHZhciBhdmFpbGFibGVTcGFjZUJlbG93ID0gYXZhaWxSZWN0Lm1heFkgLSBhbmNo
b3JSZWN0Lm1heFk7Ci0gICAgYXZhaWxhYmxlU3BhY2VCZWxvdyA9IE1hdGgubWF4KDAsIE1hdGgu
bWluKGF2YWlsUmVjdC5oZWlnaHQsIGF2YWlsYWJsZVNwYWNlQmVsb3cpKTsKLQotICAgIGlmICh3
aW5kb3dSZWN0LmhlaWdodCA+IGF2YWlsYWJsZVNwYWNlQmVsb3cgJiYgYXZhaWxhYmxlU3BhY2VC
ZWxvdyA8IGF2YWlsYWJsZVNwYWNlQWJvdmUpIHsKLSAgICAgICAgd2luZG93UmVjdC5oZWlnaHQg
PSBNYXRoLm1pbih3aW5kb3dSZWN0LmhlaWdodCwgYXZhaWxhYmxlU3BhY2VBYm92ZSk7Ci0gICAg
ICAgIHdpbmRvd1JlY3QuaGVpZ2h0ID0gTWF0aC5tYXgod2luZG93UmVjdC5oZWlnaHQsIG1pbkhl
aWdodCk7Ci0gICAgICAgIHdpbmRvd1JlY3QueSA9IGFuY2hvclJlY3QueSAtIHdpbmRvd1JlY3Qu
aGVpZ2h0OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHdpbmRvd1JlY3QuaGVpZ2h0ID0gTWF0aC5t
aW4od2luZG93UmVjdC5oZWlnaHQsIGF2YWlsYWJsZVNwYWNlQmVsb3cpOwotICAgICAgICB3aW5k
b3dSZWN0LmhlaWdodCA9IE1hdGgubWF4KHdpbmRvd1JlY3QuaGVpZ2h0LCBtaW5IZWlnaHQpOwot
ICAgICAgICB3aW5kb3dSZWN0LnkgPSBhbmNob3JSZWN0Lm1heFk7Ci0gICAgfQotICAgIHdpbmRv
d1JlY3QueSA9IE1hdGgubWluKHdpbmRvd1JlY3QueSwgYXZhaWxSZWN0Lm1heFkgLSB3aW5kb3dS
ZWN0LmhlaWdodCk7Ci0gICAgd2luZG93UmVjdC55ID0gTWF0aC5tYXgod2luZG93UmVjdC55LCBh
dmFpbFJlY3QueSk7Ci19Ci0KLWZ1bmN0aW9uIF9hZGp1c3RXaW5kb3dSZWN0SG9yaXpvbnRhbGx5
KHdpbmRvd1JlY3QsIGF2YWlsUmVjdCwgYW5jaG9yUmVjdCwgbWluV2lkdGgpIHsKLSAgICB3aW5k
b3dSZWN0LndpZHRoID0gTWF0aC5taW4od2luZG93UmVjdC53aWR0aCwgYXZhaWxSZWN0LndpZHRo
KTsKLSAgICB3aW5kb3dSZWN0LndpZHRoID0gTWF0aC5tYXgod2luZG93UmVjdC53aWR0aCwgbWlu
V2lkdGgpOwotICAgIHdpbmRvd1JlY3QueCA9IGFuY2hvclJlY3QueDsKLSAgICBpZiAoZ2xvYmFs
LnBhcmFtcy5pc1JUTCkKLSAgICAgICAgd2luZG93UmVjdC54ICs9IGFuY2hvclJlY3Qud2lkdGgg
LSB3aW5kb3dSZWN0LndpZHRoOwotICAgIHdpbmRvd1JlY3QueCA9IE1hdGgubWluKHdpbmRvd1Jl
Y3QueCwgYXZhaWxSZWN0Lm1heFggLSB3aW5kb3dSZWN0LndpZHRoKTsKLSAgICB3aW5kb3dSZWN0
LnggPSBNYXRoLm1heCh3aW5kb3dSZWN0LngsIGF2YWlsUmVjdC54KTsKLX0KLQotLyoqCi0gKiBA
cGFyYW0geyFSZWN0YW5nbGV9IHJlY3QKLSAqLwotZnVuY3Rpb24gc2V0V2luZG93UmVjdChyZWN0
KSB7Ci0gICAgaWYgKHdpbmRvdy5mcmFtZUVsZW1lbnQpIHsKLSAgICAgICAgd2luZG93LmZyYW1l
RWxlbWVudC5zdHlsZS53aWR0aCA9IHJlY3Qud2lkdGggKyAicHgiOwotICAgICAgICB3aW5kb3cu
ZnJhbWVFbGVtZW50LnN0eWxlLmhlaWdodCA9IHJlY3QuaGVpZ2h0ICsgInB4IjsKLSAgICB9IGVs
c2UgewotICAgICAgICBpZiAoaXNXaW5kb3dIaWRkZW4oKSkgewotICAgICAgICAgICAgd2luZG93
Lm1vdmVUbyhyZWN0LnggLSB3aW5kb3cuc2NyZWVuLmF2YWlsTGVmdCwgcmVjdC55IC0gd2luZG93
LnNjcmVlbi5hdmFpbFRvcCk7Ci0gICAgICAgICAgICB3aW5kb3cucmVzaXplVG8ocmVjdC53aWR0
aCwgcmVjdC5oZWlnaHQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgd2luZG93LnJl
c2l6ZVRvKHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTsKLSAgICAgICAgICAgIHdpbmRvdy5tb3Zl
VG8ocmVjdC54IC0gd2luZG93LnNjcmVlbi5hdmFpbExlZnQsIHJlY3QueSAtIHdpbmRvdy5zY3Jl
ZW4uYXZhaWxUb3ApOwotICAgICAgICB9Ci0gICAgfQotfQotCi1mdW5jdGlvbiBoaWRlV2luZG93
KCkgewotICAgIHJlc2l6ZVdpbmRvdygxLCAxKTsKLX0KLQotLyoqCi0gKiBAcmV0dXJuIHshYm9v
bGVhbn0KLSAqLwotZnVuY3Rpb24gaXNXaW5kb3dIaWRkZW4oKSB7Ci0gICAgcmV0dXJuIHdpbmRv
dy5pbm5lcldpZHRoID09PSAxICYmIHdpbmRvdy5pbm5lckhlaWdodCA9PT0gMTsKLX0KLQotd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uKCkgewotICAgIGlmIChpc1dp
bmRvd0hpZGRlbigpKQotICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZl
bnQoImRpZEhpZGUiKSk7Ci0gICAgZWxzZQotICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChu
ZXcgQ3VzdG9tRXZlbnQoImRpZE9wZW5QaWNrZXIiKSk7Ci19LCBmYWxzZSk7Ci0KLS8qKgotICog
QHJldHVybiB7IW51bWJlcn0KLSAqLwotZnVuY3Rpb24gZ2V0U2Nyb2xsYmFyV2lkdGgoKSB7Ci0g
ICAgaWYgKHR5cGVvZiB3aW5kb3cuc2Nyb2xsYmFyV2lkdGggPT09ICJ1bmRlZmluZWQiKSB7Ci0g
ICAgICAgIHZhciBzY3JvbGxEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAg
ICAgICAgc2Nyb2xsRGl2LnN0eWxlLm9wYWNpdHkgPSAiMCI7Ci0gICAgICAgIHNjcm9sbERpdi5z
dHlsZS5vdmVyZmxvdyA9ICJzY3JvbGwiOwotICAgICAgICBzY3JvbGxEaXYuc3R5bGUud2lkdGgg
PSAiNTBweCI7Ci0gICAgICAgIHNjcm9sbERpdi5zdHlsZS5oZWlnaHQgPSAiNTBweCI7Ci0gICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2Nyb2xsRGl2KTsKLSAgICAgICAgd2luZG93
LnNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVu
dFdpZHRoOwotICAgICAgICBzY3JvbGxEaXYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JvbGxE
aXYpOwotICAgIH0KLSAgICByZXR1cm4gd2luZG93LnNjcm9sbGJhcldpZHRoOwotfQotCi0vKioK
LSAqIEBwYXJhbSB7IXN0cmluZ30gY2xhc3NOYW1lCi0gKiBAcmV0dXJuIHs/RWxlbWVudH0KLSAq
LwotZnVuY3Rpb24gZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhzZWxmTm9kZSwgY2xhc3NO
YW1lKQotewotICAgIGZvciAodmFyIG5vZGUgPSBzZWxmTm9kZTsgbm9kZSAmJiBub2RlICE9PSBz
ZWxmTm9kZS5vd25lckRvY3VtZW50OyBub2RlID0gbm9kZS5wYXJlbnROb2RlKSB7Ci0gICAgICAg
IGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBub2RlLmNsYXNzTGlz
dC5jb250YWlucyhjbGFzc05hbWUpKQotICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQot
ICAgIHJldHVybiBudWxsOwotfTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7
IUVsZW1lbnR9IGVsZW1lbnQKLSAqIEBwYXJhbSB7IU9iamVjdH0gY29uZmlnCi0gKi8KLWZ1bmN0
aW9uIFBpY2tlcihlbGVtZW50LCBjb25maWcpIHsKLSAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVu
dDsKLSAgICB0aGlzLl9jb25maWcgPSBjb25maWc7Ci19Ci0KLS8qKgotICogQGVudW0ge251bWJl
cn0KLSAqLwotUGlja2VyLkFjdGlvbnMgPSB7Ci0gICAgU2V0VmFsdWU6IDAsCi0gICAgQ2FuY2Vs
OiAtMSwKLSAgICBDaG9vc2VPdGhlckNvbG9yOiAtMgotfTsKLQotLyoqCi0gKiBAcGFyYW0geyFz
dHJpbmd9IHZhbHVlCi0gKi8KLVBpY2tlci5wcm90b3R5cGUuc3VibWl0VmFsdWUgPSBmdW5jdGlv
bih2YWx1ZSkgewotICAgIHdpbmRvdy5wYWdlUG9wdXBDb250cm9sbGVyLnNldFZhbHVlKHZhbHVl
KTsKLSAgICB3aW5kb3cucGFnZVBvcHVwQ29udHJvbGxlci5jbG9zZVBvcHVwKCk7Ci19Ci0KLVBp
Y2tlci5wcm90b3R5cGUuaGFuZGxlQ2FuY2VsID0gZnVuY3Rpb24oKSB7Ci0gICAgd2luZG93LnBh
Z2VQb3B1cENvbnRyb2xsZXIuY2xvc2VQb3B1cCgpOwotfQotCi1QaWNrZXIucHJvdG90eXBlLmNo
b29zZU90aGVyQ29sb3IgPSBmdW5jdGlvbigpIHsKLSAgICB3aW5kb3cucGFnZVBvcHVwQ29udHJv
bGxlci5zZXRWYWx1ZUFuZENsb3NlUG9wdXAoUGlja2VyLkFjdGlvbnMuQ2hvb3NlT3RoZXJDb2xv
ciwgIiIpOwotfQotCi1QaWNrZXIucHJvdG90eXBlLmNsZWFudXAgPSBmdW5jdGlvbigpIHt9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlv
blBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0
aW9uUGlja2VyLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI4MWQwZGY1YmZh
MDRiMGFjMjNjYTg2YTY4MWRlYzhjNTQwNjA0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9z
dWdnZXN0aW9uUGlja2VyLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS5zdWdn
ZXN0aW9uLWxpc3QgewotICAgIGxpc3Qtc3R5bGU6IG5vbmU7Ci0gICAgcGFkZGluZzogMDsKLSAg
ICBtYXJnaW46IDA7Ci0gICAgZm9udDogLXdlYmtpdC1zbWFsbC1jb250cm9sOwotICAgIGJvcmRl
cjogMXB4IHNvbGlkICM3ZjlkYjk7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Ci0gICAg
b3ZlcmZsb3c6IGhpZGRlbjsKLX0KLQotLnN1Z2dlc3Rpb24tbGlzdC1lbnRyeSB7Ci0gICAgd2hp
dGUtc3BhY2U6IG5vd3JhcDsKLSAgICBoZWlnaHQ6IDEuNzNlbTsKLSAgICBsaW5lLWhlaWdodDog
MS43M2VtOwotICAgIC13ZWJraXQtc2VsZWN0OiBub25lOwotICAgIGN1cnNvcjogZGVmYXVsdDsK
LX0KLQotLnN1Z2dlc3Rpb24tbGlzdC1lbnRyeTpmb2N1cyB7Ci0gICAgb3V0bGluZTogbm9uZTsK
LX0KLQotLnN1Z2dlc3Rpb24tbGlzdC1lbnRyeSAuY29udGVudCB7Ci0gICAgcGFkZGluZzogMCA0
cHg7Ci19Ci0KLS5zdWdnZXN0aW9uLWxpc3QtZW50cnkgLmxhYmVsIHsKLSAgICB0ZXh0LWFsaWdu
OiByaWdodDsKLSAgICBjb2xvcjogIzczNzM3MzsKLSAgICBmbG9hdDogcmlnaHQ7Ci0gICAgcGFk
ZGluZzogMCA0cHggMCAyMHB4OwotfQotCi0ucnRsIC5zdWdnZXN0aW9uLWxpc3QtZW50cnkgLmxh
YmVsIHsKLSAgICBmbG9hdDogbGVmdDsKLSAgICBwYWRkaW5nOiAwIDIwcHggMCA0cHg7Ci19Ci0K
LS5zdWdnZXN0aW9uLWxpc3QtZW50cnkgLnRpdGxlIHsKLSAgICBkaXJlY3Rpb246IGx0cjsKLSAg
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci19Ci0KLS5sb2NhbGUtcnRsIC5zdWdnZXN0aW9uLWxp
c3QtZW50cnkgLnRpdGxlIHsKLSAgICBkaXJlY3Rpb246IHJ0bDsKLX0KLQotLm1lYXN1cmluZy13
aWR0aCAuc3VnZ2VzdGlvbi1saXN0LWVudHJ5IC5sYWJlbCB7Ci0gICAgZmxvYXQ6IG5vbmU7Ci0g
ICAgbWFyZ2luLXJpZ2h0OiAwOwotfQotCi0uc3VnZ2VzdGlvbi1saXN0IC5zZXBhcmF0b3Igewot
ICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjOwotICAgIGhlaWdodDogMDsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3N1Z2dlc3Rpb25Q
aWNrZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9u
UGlja2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDRiYWRhNDFiZmFkYzc5
ZWY3NjNlYzFhODY3ODhkZjhlMmUyY2NkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3N1Z2dl
c3Rpb25QaWNrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjUgKzAsMCBAQAotInVzZSBzdHJp
Y3QiOwotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
LSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0geyFFbGVtZW50
fSBlbGVtZW50Ci0gKiBAcGFyYW0geyFPYmplY3R9IGNvbmZpZwotICovCi1mdW5jdGlvbiBTdWdn
ZXN0aW9uUGlja2VyKGVsZW1lbnQsIGNvbmZpZykgewotICAgIFBpY2tlci5jYWxsKHRoaXMsIGVs
ZW1lbnQsIGNvbmZpZyk7Ci0gICAgdGhpcy5faXNGb2N1c0J5TW91c2UgPSBmYWxzZTsKLSAgICB0
aGlzLl9jb250YWluZXJFbGVtZW50ID0gbnVsbDsKLSAgICB0aGlzLl9zZXRDb2xvcnMoKTsKLSAg
ICB0aGlzLl9sYXlvdXQoKTsKLSAgICB0aGlzLl9maXhXaW5kb3dTaXplKCk7Ci0gICAgdGhpcy5f
aGFuZGxlQm9keUtleURvd25Cb3VuZCA9IHRoaXMuX2hhbmRsZUJvZHlLZXlEb3duLmJpbmQodGhp
cyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5f
aGFuZGxlQm9keUtleURvd25Cb3VuZCk7Ci0gICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZW91dCIsIHRoaXMuX2hhbmRsZU1vdXNlT3V0LmJpbmQodGhpcyksIGZhbHNlKTsK
LX07Ci1TdWdnZXN0aW9uUGlja2VyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoUGlja2VyLnBy
b3RvdHlwZSk7Ci0KLVN1Z2dlc3Rpb25QaWNrZXIuTnVtYmVyT2ZWaXNpYmxlRW50cmllcyA9IDIw
OwotCi0vLyBBbiBlbnRyeSBuZWVkcyB0byBiZSBhdCBsZWFzdCB0aGlzIG1hbnkgcGl4ZWxzIHZp
c2libGUgZm9yIGl0IHRvIGJlIGEgdmlzaWJsZSBlbnRyeS4KLVN1Z2dlc3Rpb25QaWNrZXIuVmlz
aWJsZUVudHJ5VGhyZXNob2xkSGVpZ2h0ID0gNDsKLQotU3VnZ2VzdGlvblBpY2tlci5BY3Rpb25O
YW1lcyA9IHsKLSAgICBPcGVuQ2FsZW5kYXJQaWNrZXI6ICJvcGVuQ2FsZW5kYXJQaWNrZXIiCi19
OwotCi1TdWdnZXN0aW9uUGlja2VyLkxpc3RFbnRyeUNsYXNzID0gInN1Z2dlc3Rpb24tbGlzdC1l
bnRyeSI7Ci0KLVN1Z2dlc3Rpb25QaWNrZXIudmFsaWRhdGVDb25maWcgPSBmdW5jdGlvbihjb25m
aWcpIHsKLSAgICBpZiAoY29uZmlnLnNob3dPdGhlckRhdGVFbnRyeSAmJiAhY29uZmlnLm90aGVy
RGF0ZUxhYmVsKQotICAgICAgICByZXR1cm4gIk5vIG90aGVyRGF0ZUxhYmVsLiI7Ci0gICAgaWYg
KGNvbmZpZy5zdWdnZXN0aW9uSGlnaGxpZ2h0Q29sb3IgJiYgIWNvbmZpZy5zdWdnZXN0aW9uSGln
aGxpZ2h0Q29sb3IpCi0gICAgICAgIHJldHVybiAiTm8gc3VnZ2VzdGlvbkhpZ2hsaWdodENvbG9y
LiI7Ci0gICAgaWYgKGNvbmZpZy5zdWdnZXN0aW9uSGlnaGxpZ2h0VGV4dENvbG9yICYmICFjb25m
aWcuc3VnZ2VzdGlvbkhpZ2hsaWdodFRleHRDb2xvcikKLSAgICAgICAgcmV0dXJuICJObyBzdWdn
ZXN0aW9uSGlnaGxpZ2h0VGV4dENvbG9yLiI7Ci0gICAgaWYgKGNvbmZpZy5zdWdnZXN0aW9uVmFs
dWVzLmxlbmd0aCAhPT0gY29uZmlnLmxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXMubGVuZ3RoKQot
ICAgICAgICByZXR1cm4gImxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXMubGVuZ3RoIG11c3QgZXF1
YWwgc3VnZ2VzdGlvblZhbHVlcy5sZW5ndGguIjsKLSAgICBpZiAoY29uZmlnLnN1Z2dlc3Rpb25W
YWx1ZXMubGVuZ3RoICE9PSBjb25maWcuc3VnZ2VzdGlvbkxhYmVscy5sZW5ndGgpCi0gICAgICAg
IHJldHVybiAic3VnZ2VzdGlvbkxhYmVscy5sZW5ndGggbXVzdCBlcXVhbCBzdWdnZXN0aW9uVmFs
dWVzLmxlbmd0aC4iOwotICAgIGlmICh0eXBlb2YgY29uZmlnLmlucHV0V2lkdGggPT09ICJ1bmRl
ZmluZWQiKQotICAgICAgICByZXR1cm4gIk5vIGlucHV0V2lkdGguIjsKLSAgICByZXR1cm4gbnVs
bDsKLX07Ci0KLVN1Z2dlc3Rpb25QaWNrZXIucHJvdG90eXBlLl9zZXRDb2xvcnMgPSBmdW5jdGlv
bigpIHsKLSAgICB2YXIgdGV4dCA9ICIuIiArIFN1Z2dlc3Rpb25QaWNrZXIuTGlzdEVudHJ5Q2xh
c3MgKyAiOmZvY3VzIHtcCi0gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICIgKyB0aGlzLl9jb25m
aWcuc3VnZ2VzdGlvbkhpZ2hsaWdodENvbG9yICsgIjtcCi0gICAgICAgIGNvbG9yOiAiICsgdGhp
cy5fY29uZmlnLnN1Z2dlc3Rpb25IaWdobGlnaHRUZXh0Q29sb3IgKyAiOyB9IjsKLSAgICB0ZXh0
ICs9ICIuIiArIFN1Z2dlc3Rpb25QaWNrZXIuTGlzdEVudHJ5Q2xhc3MgKyAiOmZvY3VzIC5sYWJl
bCB7IGNvbG9yOiAiICsgdGhpcy5fY29uZmlnLnN1Z2dlc3Rpb25IaWdobGlnaHRUZXh0Q29sb3Ig
KyAiOyB9IjsKLSAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoInN0
eWxlIiwgbnVsbCwgdGV4dCkpOwotfTsKLQotU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuY2xl
YW51cCA9IGZ1bmN0aW9uKCkgewotICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5l
cigia2V5ZG93biIsIHRoaXMuX2hhbmRsZUJvZHlLZXlEb3duQm91bmQsIGZhbHNlKTsKLX07Ci0K
LS8qKgotICogQHBhcmFtIHshc3RyaW5nfSB0aXRsZQotICogQHBhcmFtIHshc3RyaW5nfSBsYWJl
bAotICogQHBhcmFtIHshc3RyaW5nfSB2YWx1ZQotICogQHJldHVybiB7IUVsZW1lbnR9Ci0gKi8K
LVN1Z2dlc3Rpb25QaWNrZXIucHJvdG90eXBlLl9jcmVhdGVTdWdnZXN0aW9uRW50cnlFbGVtZW50
ID0gZnVuY3Rpb24odGl0bGUsIGxhYmVsLCB2YWx1ZSkgewotICAgIHZhciBlbnRyeUVsZW1lbnQg
PSBjcmVhdGVFbGVtZW50KCJsaSIsIFN1Z2dlc3Rpb25QaWNrZXIuTGlzdEVudHJ5Q2xhc3MpOwot
ICAgIGVudHJ5RWxlbWVudC50YWJJbmRleCA9IDA7Ci0gICAgZW50cnlFbGVtZW50LmRhdGFzZXQu
dmFsdWUgPSB2YWx1ZTsKLSAgICB2YXIgY29udGVudCA9IGNyZWF0ZUVsZW1lbnQoInNwYW4iLCAi
Y29udGVudCIpOwotICAgIGVudHJ5RWxlbWVudC5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICB2
YXIgdGl0bGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudCgic3BhbiIsICJ0aXRsZSIsIHRpdGxlKTsK
LSAgICBjb250ZW50LmFwcGVuZENoaWxkKHRpdGxlRWxlbWVudCk7Ci0gICAgaWYgKGxhYmVsKSB7
Ci0gICAgICAgIHZhciBsYWJlbEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCJzcGFuIiwgImxhYmVs
IiwgbGFiZWwpOwotICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGxhYmVsRWxlbWVudCk7Ci0g
ICAgfQotICAgIGVudHJ5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCB0aGlz
Ll9oYW5kbGVFbnRyeU1vdXNlT3Zlci5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgcmV0dXJuIGVu
dHJ5RWxlbWVudDsKLX07Ci0KLS8qKgotICogQHBhcmFtIHshc3RyaW5nfSB0aXRsZQotICogQHBh
cmFtIHshc3RyaW5nfSBhY3Rpb25OYW1lCi0gKiBAcmV0dXJuIHshRWxlbWVudH0KLSAqLwotU3Vn
Z2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2NyZWF0ZUFjdGlvbkVudHJ5RWxlbWVudCA9IGZ1bmN0
aW9uKHRpdGxlLCBhY3Rpb25OYW1lKSB7Ci0gICAgdmFyIGVudHJ5RWxlbWVudCA9IGNyZWF0ZUVs
ZW1lbnQoImxpIiwgU3VnZ2VzdGlvblBpY2tlci5MaXN0RW50cnlDbGFzcyk7Ci0gICAgZW50cnlF
bGVtZW50LnRhYkluZGV4ID0gMDsKLSAgICBlbnRyeUVsZW1lbnQuZGF0YXNldC5hY3Rpb24gPSBh
Y3Rpb25OYW1lOwotICAgIHZhciBjb250ZW50ID0gY3JlYXRlRWxlbWVudCgic3BhbiIsICJjb250
ZW50Iik7Ci0gICAgZW50cnlFbGVtZW50LmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHZhciB0
aXRsZUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCJzcGFuIiwgInRpdGxlIiwgdGl0bGUpOwotICAg
IGNvbnRlbnQuYXBwZW5kQ2hpbGQodGl0bGVFbGVtZW50KTsKLSAgICBlbnRyeUVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5faGFuZGxlRW50cnlNb3VzZU92ZXIuYmlu
ZCh0aGlzKSwgZmFsc2UpOwotICAgIHJldHVybiBlbnRyeUVsZW1lbnQ7Ci19OwotCi0vKioKLSog
QHJldHVybiB7IW51bWJlcn0KLSovCi1TdWdnZXN0aW9uUGlja2VyLnByb3RvdHlwZS5fbWVhc3Vy
ZU1heENvbnRlbnRXaWR0aCA9IGZ1bmN0aW9uKCkgewotICAgIC8vIFRvIG1lYXN1cmUgdGhlIHJl
cXVpcmVkIHdpZHRoLCB3ZSBmaXJzdCBzZXQgdGhlIGNsYXNzIHRvICJtZWFzdXJpbmctd2lkdGgi
IHdoaWNoCi0gICAgLy8gbGVmdCBhbGlnbnMgYWxsIHRoZSBjb250ZW50IGluY2x1ZGluZyBsYWJl
bC4KLSAgICB0aGlzLl9jb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1lYXN1cmluZy13
aWR0aCIpOwotICAgIHZhciBtYXhDb250ZW50V2lkdGggPSAwOwotICAgIHZhciBjb250ZW50RWxl
bWVudHMgPSB0aGlzLl9jb250YWluZXJFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNv
bnRlbnQiKTsKLSAgICBmb3IgKHZhciBpPTA7IGkgPCBjb250ZW50RWxlbWVudHMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgbWF4Q29udGVudFdpZHRoID0gTWF0aC5tYXgobWF4Q29udGVudFdpZHRo
LCBjb250ZW50RWxlbWVudHNbaV0ub2Zmc2V0V2lkdGgpOwotICAgIH0KLSAgICB0aGlzLl9jb250
YWluZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm1lYXN1cmluZy13aWR0aCIpOwotICAgIHJl
dHVybiBtYXhDb250ZW50V2lkdGg7Ci19OwotCi1TdWdnZXN0aW9uUGlja2VyLnByb3RvdHlwZS5f
Zml4V2luZG93U2l6ZSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBMaXN0Qm9yZGVyID0gMjsKLSAg
ICB2YXIgZGVzaXJlZFdpbmRvd1dpZHRoID0gdGhpcy5fbWVhc3VyZU1heENvbnRlbnRXaWR0aCgp
ICsgTGlzdEJvcmRlcjsKLSAgICBpZiAodHlwZW9mIHRoaXMuX2NvbmZpZy5pbnB1dFdpZHRoID09
PSAibnVtYmVyIikKLSAgICAgICAgZGVzaXJlZFdpbmRvd1dpZHRoID0gTWF0aC5tYXgodGhpcy5f
Y29uZmlnLmlucHV0V2lkdGgsIGRlc2lyZWRXaW5kb3dXaWR0aCk7Ci0gICAgdmFyIHRvdGFsSGVp
Z2h0ID0gTGlzdEJvcmRlcjsKLSAgICB2YXIgbWF4SGVpZ2h0ID0gMDsKLSAgICB2YXIgZW50cnlD
b3VudCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb250YWluZXJFbGVtZW50
LmNoaWxkTm9kZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9jb250
YWluZXJFbGVtZW50LmNoaWxkTm9kZXNbaV07Ci0gICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5j
b250YWlucyhTdWdnZXN0aW9uUGlja2VyLkxpc3RFbnRyeUNsYXNzKSkKLSAgICAgICAgICAgIGVu
dHJ5Q291bnQrKzsKLSAgICAgICAgdG90YWxIZWlnaHQgKz0gbm9kZS5vZmZzZXRIZWlnaHQ7Ci0g
ICAgICAgIGlmIChtYXhIZWlnaHQgPT09IDAgJiYgZW50cnlDb3VudCA9PSBTdWdnZXN0aW9uUGlj
a2VyLk51bWJlck9mVmlzaWJsZUVudHJpZXMpCi0gICAgICAgICAgICBtYXhIZWlnaHQgPSB0b3Rh
bEhlaWdodDsKLSAgICB9Ci0gICAgdmFyIGRlc2lyZWRXaW5kb3dIZWlnaHQgPSB0b3RhbEhlaWdo
dDsKLSAgICBpZiAobWF4SGVpZ2h0ICE9PSAwICYmIHRvdGFsSGVpZ2h0ID4gbWF4SGVpZ2h0KSB7
Ci0gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gKG1heEhl
aWdodCAtIExpc3RCb3JkZXIpICsgInB4IjsKLSAgICAgICAgZGVzaXJlZFdpbmRvd1dpZHRoICs9
IGdldFNjcm9sbGJhcldpZHRoKCk7Ci0gICAgICAgIGRlc2lyZWRXaW5kb3dIZWlnaHQgPSBtYXhI
ZWlnaHQ7Ci0gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuc3R5bGUub3ZlcmZsb3dZID0g
InNjcm9sbCI7Ci0gICAgfQotCi0gICAgdmFyIHdpbmRvd1JlY3QgPSBhZGp1c3RXaW5kb3dSZWN0
KGRlc2lyZWRXaW5kb3dXaWR0aCwgZGVzaXJlZFdpbmRvd0hlaWdodCwgZGVzaXJlZFdpbmRvd1dp
ZHRoLCAwKTsKLSAgICB0aGlzLl9jb250YWluZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9ICh3aW5k
b3dSZWN0LmhlaWdodCAtIExpc3RCb3JkZXIpICsgInB4IjsKLSAgICBzZXRXaW5kb3dSZWN0KHdp
bmRvd1JlY3QpOwotfTsKLQotU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2xheW91dCA9IGZ1
bmN0aW9uKCkgewotICAgIGlmICh0aGlzLl9jb25maWcuaXNSVEwpCi0gICAgICAgIHRoaXMuX2Vs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgicnRsIik7Ci0gICAgaWYgKHRoaXMuX2NvbmZpZy5pc0xvY2Fs
ZVJUTCkKLSAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJsb2NhbGUtcnRsIik7
Ci0gICAgdGhpcy5fY29udGFpbmVyRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoInVsIiwgInN1Z2dl
c3Rpb24tbGlzdCIpOwotICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCB0aGlzLl9oYW5kbGVFbnRyeUNsaWNrLmJpbmQodGhpcyksIGZhbHNlKTsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2NvbmZpZy5zdWdnZXN0aW9uVmFsdWVzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fY3JlYXRlU3VnZ2VzdGlvbkVudHJ5RWxlbWVudCh0aGlzLl9jb25maWcubG9jYWxpemVkU3Vn
Z2VzdGlvblZhbHVlc1tpXSwgdGhpcy5fY29uZmlnLnN1Z2dlc3Rpb25MYWJlbHNbaV0sIHRoaXMu
X2NvbmZpZy5zdWdnZXN0aW9uVmFsdWVzW2ldKSk7Ci0gICAgfQotICAgIGlmICh0aGlzLl9jb25m
aWcuc2hvd090aGVyRGF0ZUVudHJ5KSB7Ci0gICAgICAgIC8vIEFkZCBzZXBhcmF0b3IKLSAgICAg
ICAgdmFyIHNlcGFyYXRvciA9IGNyZWF0ZUVsZW1lbnQoImRpdiIsICJzZXBhcmF0b3IiKTsKLSAg
ICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZChzZXBhcmF0b3IpOwotCi0g
ICAgICAgIC8vIEFkZCAiT3RoZXIuLi4iIGVudHJ5Ci0gICAgICAgIHZhciBvdGhlckVudHJ5ID0g
dGhpcy5fY3JlYXRlQWN0aW9uRW50cnlFbGVtZW50KHRoaXMuX2NvbmZpZy5vdGhlckRhdGVMYWJl
bCwgU3VnZ2VzdGlvblBpY2tlci5BY3Rpb25OYW1lcy5PcGVuQ2FsZW5kYXJQaWNrZXIpOwotICAg
ICAgICB0aGlzLl9jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKG90aGVyRW50cnkpOwotICAg
IH0KLSAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQp
OwotfTsKLQotLyoqCi0gKiBAcGFyYW0geyFFbGVtZW50fSBlbnRyeQotICovCi1TdWdnZXN0aW9u
UGlja2VyLnByb3RvdHlwZS5zZWxlY3RFbnRyeSA9IGZ1bmN0aW9uKGVudHJ5KSB7Ci0gICAgaWYg
KHR5cGVvZiBlbnRyeS5kYXRhc2V0LnZhbHVlICE9PSAidW5kZWZpbmVkIikgewotICAgICAgICB0
aGlzLnN1Ym1pdFZhbHVlKGVudHJ5LmRhdGFzZXQudmFsdWUpOwotICAgIH0gZWxzZSBpZiAoZW50
cnkuZGF0YXNldC5hY3Rpb24gPT09IFN1Z2dlc3Rpb25QaWNrZXIuQWN0aW9uTmFtZXMuT3BlbkNh
bGVuZGFyUGlja2VyKSB7Ci0gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJkaWRIaWRl
IiwgU3VnZ2VzdGlvblBpY2tlci5faGFuZGxlV2luZG93RGlkSGlkZSwgZmFsc2UpOwotICAgICAg
ICBoaWRlV2luZG93KCk7Ci0gICAgfQotfTsKLQotU3VnZ2VzdGlvblBpY2tlci5faGFuZGxlV2lu
ZG93RGlkSGlkZSA9IGZ1bmN0aW9uKCkgewotICAgIG9wZW5DYWxlbmRhclBpY2tlcigpOwotICAg
IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJkaWRIaWRlIiwgU3VnZ2VzdGlvblBpY2tlci5f
aGFuZGxlV2luZG93RGlkSGlkZSk7Ci19OwotCi0vKioKLSAqIEBwYXJhbSB7IUV2ZW50fSBldmVu
dAotICovCi1TdWdnZXN0aW9uUGlja2VyLnByb3RvdHlwZS5faGFuZGxlRW50cnlDbGljayA9IGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgdmFyIGVudHJ5ID0gZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhD
bGFzcyhldmVudC50YXJnZXQsIFN1Z2dlc3Rpb25QaWNrZXIuTGlzdEVudHJ5Q2xhc3MpOwotICAg
IGlmICghZW50cnkpCi0gICAgICAgIHJldHVybjsKLSAgICB0aGlzLnNlbGVjdEVudHJ5KGVudHJ5
KTsKLSAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotfTsKLQotLyoqCi0gKiBAcmV0dXJuIHs/
RWxlbWVudH0KLSAqLwotU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2ZpbmRGaXJzdFZpc2li
bGVFbnRyeSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBzY3JvbGxUb3AgPSB0aGlzLl9jb250YWlu
ZXJFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgY2hpbGROb2RlcyA9IHRoaXMuX2NvbnRhaW5l
ckVsZW1lbnQuY2hpbGROb2RlczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkTm9kZXMu
bGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG5vZGUgPSBjaGlsZE5vZGVzW2ldOwotICAgICAg
ICBpZiAobm9kZS5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUgfHwgIW5vZGUuY2xhc3NM
aXN0LmNvbnRhaW5zKFN1Z2dlc3Rpb25QaWNrZXIuTGlzdEVudHJ5Q2xhc3MpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIGlmIChub2RlLm9mZnNldFRvcCArIG5vZGUub2Zmc2V0SGVp
Z2h0IC0gc2Nyb2xsVG9wID4gU3VnZ2VzdGlvblBpY2tlci5WaXNpYmxlRW50cnlUaHJlc2hvbGRI
ZWlnaHQpCi0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci0gICAgcmV0dXJuIG51bGw7
Ci19OwotCi0vKioKLSAqIEByZXR1cm4gez9FbGVtZW50fQotICovCi1TdWdnZXN0aW9uUGlja2Vy
LnByb3RvdHlwZS5fZmluZExhc3RWaXNpYmxlRW50cnkgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIg
c2Nyb2xsQm90dG9tID0gdGhpcy5fY29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3AgKyB0aGlzLl9j
b250YWluZXJFbGVtZW50Lm9mZnNldEhlaWdodDsKLSAgICB2YXIgY2hpbGROb2RlcyA9IHRoaXMu
X2NvbnRhaW5lckVsZW1lbnQuY2hpbGROb2RlczsKLSAgICBmb3IgKHZhciBpID0gY2hpbGROb2Rl
cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSl7Ci0gICAgICAgIHZhciBub2RlID0gY2hpbGROb2Rl
c1tpXTsKLSAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFIHx8
ICFub2RlLmNsYXNzTGlzdC5jb250YWlucyhTdWdnZXN0aW9uUGlja2VyLkxpc3RFbnRyeUNsYXNz
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoc2Nyb2xsQm90dG9tIC0gbm9k
ZS5vZmZzZXRUb3AgPiBTdWdnZXN0aW9uUGlja2VyLlZpc2libGVFbnRyeVRocmVzaG9sZEhlaWdo
dCkKLSAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLSAgICByZXR1cm4gbnVsbDsKLX07
Ci0KLS8qKgotICogQHBhcmFtIHshRXZlbnR9IGV2ZW50Ci0gKi8KLVN1Z2dlc3Rpb25QaWNrZXIu
cHJvdG90eXBlLl9oYW5kbGVCb2R5S2V5RG93biA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgdmFy
IGV2ZW50SGFuZGxlZCA9IGZhbHNlOwotICAgIHZhciBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVy
OwotICAgIGlmIChrZXkgPT09ICJVKzAwMUIiKSB7IC8vIEVTQwotICAgICAgICB0aGlzLmhhbmRs
ZUNhbmNlbCgpOwotICAgICAgICBldmVudEhhbmRsZWQgPSB0cnVlOwotICAgIH0gZWxzZSBpZiAo
a2V5ID09ICJVcCIpIHsKLSAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoU3VnZ2VzdGlvblBpY2tlci5M
aXN0RW50cnlDbGFzcykpIHsKLSAgICAgICAgICAgIGZvciAodmFyIG5vZGUgPSBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7IG5vZGU7IG5vZGUgPSBub2RlLnBy
ZXZpb3VzRWxlbWVudFNpYmxpbmcpIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5jbGFzc0xp
c3QuY29udGFpbnMoU3VnZ2VzdGlvblBpY2tlci5MaXN0RW50cnlDbGFzcykpIHsKLSAgICAgICAg
ICAgICAgICAgICAgdGhpcy5faXNGb2N1c0J5TW91c2UgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICAgICAgbm9kZS5mb2N1cygpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0
aGlzLl9lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iICsgU3VnZ2VzdGlvblBpY2tlci5MaXN0RW50
cnlDbGFzcyArICI6bGFzdC1jaGlsZCIpLmZvY3VzKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZXZl
bnRIYW5kbGVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKGtleSA9PSAiRG93biIpIHsKLSAgICAg
ICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5j
bGFzc0xpc3QuY29udGFpbnMoU3VnZ2VzdGlvblBpY2tlci5MaXN0RW50cnlDbGFzcykpIHsKLSAg
ICAgICAgICAgIGZvciAodmFyIG5vZGUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lm5leHRFbGVt
ZW50U2libGluZzsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dEVsZW1lbnRTaWJsaW5nKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFN1Z2dlc3Rpb25QaWNrZXIu
TGlzdEVudHJ5Q2xhc3MpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzRm9jdXNCeU1v
dXNlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUuZm9jdXMoKTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIu
IiArIFN1Z2dlc3Rpb25QaWNrZXIuTGlzdEVudHJ5Q2xhc3MgKyAiOmZpcnN0LWNoaWxkIikuZm9j
dXMoKTsKLSAgICAgICAgfQotICAgICAgICBldmVudEhhbmRsZWQgPSB0cnVlOwotICAgIH0gZWxz
ZSBpZiAoa2V5ID09PSAiRW50ZXIiKSB7Ci0gICAgICAgIHRoaXMuc2VsZWN0RW50cnkoZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCk7Ci0gICAgICAgIGV2ZW50SGFuZGxlZCA9IHRydWU7Ci0gICAgfSBl
bHNlIGlmIChrZXkgPT09ICJQYWdlVXAiKSB7Ci0gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1l
bnQuc2Nyb2xsVG9wIC09IHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuY2xpZW50SGVpZ2h0OwotICAg
ICAgICAvLyBTY3JvbGxpbmcgY2F1c2VzIG1vdXNlb3ZlciBldmVudCB0byBiZSBjYWxsZWQgYW5k
IHRoYXQgdHJpZXMgdG8gbW92ZSB0aGUgZm9jdXMgdG9vLgotICAgICAgICAvLyBUbyBwcmV2ZW50
IGZsaWNrZXJpbmcgd2Ugd29uJ3QgZm9jdXMgaWYgdGhlIGN1cnJlbnQgZm9jdXMgd2FzIGNhdXNl
ZCBieSB0aGUgbW91c2UuCi0gICAgICAgIGlmICghdGhpcy5faXNGb2N1c0J5TW91c2UpCi0gICAg
ICAgICAgICB0aGlzLl9maW5kRmlyc3RWaXNpYmxlRW50cnkoKS5mb2N1cygpOwotICAgICAgICBl
dmVudEhhbmRsZWQgPSB0cnVlOwotICAgIH0gZWxzZSBpZiAoa2V5ID09PSAiUGFnZURvd24iKSB7
Ci0gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wICs9IHRoaXMuX2NvbnRh
aW5lckVsZW1lbnQuY2xpZW50SGVpZ2h0OwotICAgICAgICBpZiAoIXRoaXMuX2lzRm9jdXNCeU1v
dXNlKQotICAgICAgICAgICAgdGhpcy5fZmluZExhc3RWaXNpYmxlRW50cnkoKS5mb2N1cygpOwot
ICAgICAgICBldmVudEhhbmRsZWQgPSB0cnVlOwotICAgIH0KLSAgICBpZiAoZXZlbnRIYW5kbGVk
KQotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotfTsKLQotLyoqCi0gKiBAcGFyYW0g
eyFFdmVudH0gZXZlbnQKLSAqLwotU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2hhbmRsZUVu
dHJ5TW91c2VPdmVyID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICB2YXIgZW50cnkgPSBlbmNsb3Np
bmdOb2RlT3JTZWxmV2l0aENsYXNzKGV2ZW50LnRhcmdldCwgU3VnZ2VzdGlvblBpY2tlci5MaXN0
RW50cnlDbGFzcyk7Ci0gICAgaWYgKCFlbnRyeSkKLSAgICAgICAgcmV0dXJuOwotICAgIHRoaXMu
X2lzRm9jdXNCeU1vdXNlID0gdHJ1ZTsKLSAgICBlbnRyeS5mb2N1cygpOwotICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7Ci19OwotCi0vKioKLSAqIEBwYXJhbSB7IUV2ZW50fSBldmVudAotICov
Ci1TdWdnZXN0aW9uUGlja2VyLnByb3RvdHlwZS5faGFuZGxlTW91c2VPdXQgPSBmdW5jdGlvbihl
dmVudCkgewotICAgIGlmICghZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFp
bnMoU3VnZ2VzdGlvblBpY2tlci5MaXN0RW50cnlDbGFzcykpCi0gICAgICAgIHJldHVybjsKLSAg
ICB0aGlzLl9pc0ZvY3VzQnlNb3VzZSA9IGZhbHNlOwotICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuYmx1cigpOwotICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci19OwpkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGJjMzNlMTVhMjI3MDdlOGExMmRhZWQ1MzY4NDVi
NDVkNjAwYjBhOTUuLjBmMzQxNDA1ZTM0MjA0OWMwYzEzNGUxNDMyMjVhMmUxYmMxYmM5YjIgMTAw
NjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
My0wNS0yOSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVt
b3ZlIGxlZnRvdmVyIGZpbGVzIGZvciBFTkFCTEVfUEFHRV9QT1BVUCBhbmQgRU5BQkxFX0NBTEVO
REFSX1BJQ0tFUgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE2OTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBNYW51YWxUZXN0cy9mb3Jtcy9jYWxlbmRhci1waWNrZXItY3Jhc2gtYnktdHlwZS1jaGFu
Z2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNYW51YWxUZXN0cy9mb3Jtcy9jYWxlbmRhci1w
aWNrZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNYW51YWxUZXN0cy9mb3Jtcy9jb2xvci1z
dWdnZXN0aW9uLXBpY2tlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIE1hbnVhbFRlc3RzL2Zv
cm1zL2RhdGUtc3VnZ2VzdGlvbi1waWNrZXIuaHRtbDogUmVtb3ZlZC4KKwogMjAxMy0wNS0yOSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IG1v
cmUgQ01ha2UgR1RLKyBidWlsZCBpc3N1ZXMgYWZ0ZXIgcjE1MDMzNgpkaWZmIC0tZ2l0IGEvTWFu
dWFsVGVzdHMvZm9ybXMvY2FsZW5kYXItcGlja2VyLWNyYXNoLWJ5LXR5cGUtY2hhbmdlLmh0bWwg
Yi9NYW51YWxUZXN0cy9mb3Jtcy9jYWxlbmRhci1waWNrZXItY3Jhc2gtYnktdHlwZS1jaGFuZ2Uu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2JlOTAxYjYzMzNjMmY3NjZlZGRk
NWVjMTRkMDkxNjQ2MTRhNzM1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9NYW51YWxUZXN0cy9mb3Jtcy9jYWxlbmRhci1waWNrZXItY3Jhc2gtYnktdHlw
ZS1jaGFuZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPHNjcmlwdD4KLXZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0
JykKLWlucHV0LnR5cGUgPSAnZGF0ZScKLXZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50
KCdLZXlib2FyZEV2ZW50JykKLWV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZmFs
c2UsIGZhbHNlLCBudWxsLCAnRG93bicpCi1pbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KQotaW5w
dXQudHlwZSA9ICdjb2xvcicKLTwvc2NyaXB0PgotPHA+U3VjY2VzcyBpZiB0aGUgYnJvd3NlciBk
aWRuJ3QgY3Jhc2guPC9wPgpkaWZmIC0tZ2l0IGEvTWFudWFsVGVzdHMvZm9ybXMvY2FsZW5kYXIt
cGlja2VyLmh0bWwgYi9NYW51YWxUZXN0cy9mb3Jtcy9jYWxlbmRhci1waWNrZXIuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMyNmUyMDljZjRmMTUxNDhiNzg4NjZjZWJkN2Y3
OTg5ZDJhOTNlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9NYW51YWxUZXN0cy9mb3Jtcy9jYWxlbmRhci1waWNrZXIuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDM1OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBj
aGFyc2V0PXV0Zi04PgotPHRpdGxlPkNhbGVuZGFyIFBpY2tlciB0ZXN0PC90aXRsZT4KLTxzdHls
ZT4KLWJvZHkgewotICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWZmZmY7Ci0gICAgbGluZS1oZWln
aHQ6IDEuNGVtOwotICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Ci19Ci1s
YWJlbCB7Ci0gICAgd2lkdGg6IDE2MHB4OwotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0K
LWlmcmFtZSB7Ci0gICAgei1pbmRleDogMjE0NzQ4MzY0NzsKLSAgICB3aWR0aDogMTAwcHg7Ci0g
ICAgaGVpZ2h0OiAxMDBweDsKLSAgICBib3JkZXI6IDA7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsK
LX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+VGhpcyBpcyBhIHRlc3RiZWQgZm9y
IGEgY2FsZW5kYXIgcGlja2VyLjwvcD4KLQotPGgyPlByZXZpZXc8L2gyPgotCi08aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImRhdGUiIHN0eWxlPSJtYXJnaW46IDA7Ij48YnI+Ci08aWZyYW1lPjwvaWZy
YW1lPgotCi08aDI+Q29uc29sZTwvaDI+Ci0KLTxvbCBpZD0iY29uc29sZSIgc3R5bGU9ImZvbnQt
ZmFtaWx5Om1vbm9zcGFjZTsiPjwvb2w+Ci0KLTxoMj5Db25maWc8L2gyPgotPGZvcm0gYWN0aW9u
PSIiIG1ldGhvZD0iR0VUIj4KLSAgICA8ZmllbGRzZXQ+Ci0gICAgICAgIDxsZWdlbmQ+TG9jYWxl
PC9sZWdlbmQ+Ci0gICAgICAgIAotICAgICAgICA8bGFiZWwgZm9yPSJsb2NhbGUiPkxvY2FsZTwv
bGFiZWw+Ci0gICAgICAgIDxzZWxlY3QgbmFtZT0ibG9jYWxlIiBpZD0iY29uZmlnX2xvY2FsZSI+
Ci0gICAgICAgICAgICA8IS0tIFBvcHVsYXRlZCBmcm9tIGxvY2FsZV9kYXRhLiAtLT4KLSAgICAg
ICAgPC9zZWxlY3Q+Ci0gICAgICAgIDxiciAvPgotICAgICAgICA8bGFiZWwgZm9yPSJsb2NhbGVf
cnRsIj5Mb2NhbGUgUlRMPC9sYWJlbD4KLSAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBu
YW1lPSJsb2NhbGVfcnRsIiBpZD0iY29uZmlnX2xvY2FsZV9ydGwiIHZhbHVlPSJ0cnVlIj4KLSAg
ICAgICAgPGJyIC8+Ci0gICAgICAgIDxsYWJlbCBmb3I9IndlZWtfc3RhcnRfZGF5Ij5XZWVrIHN0
YXJ0IGRheTwvbGFiZWw+Ci0gICAgICAgIDxzZWxlY3QgbmFtZT0id2Vla19zdGFydF9kYXkiIGlk
PSJjb25maWdfd2Vla19zdGFydF9kYXkiPgotICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMCI+
U3VuZGF5PC9vcHRpb24+Ci0gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxIj5Nb25kYXk8L29w
dGlvbj4KLSAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiPlR1ZXNkYXk8L29wdGlvbj4KLSAg
ICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMiPldlZG5lc2RheTwvb3B0aW9uPgotICAgICAgICAg
ICAgPG9wdGlvbiB2YWx1ZT0iNCI+VGh1cnNkYXk8L29wdGlvbj4KLSAgICAgICAgICAgIDxvcHRp
b24gdmFsdWU9IjUiPkZyaWRheTwvb3B0aW9uPgotICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i
NiI+U2F0dXJkYXk8L29wdGlvbj4KLSAgICAgICAgPC9zZWxlY3Q+Ci0gICAgPC9maWVsZHNldD4K
LQotICAgIDxmaWVsZHNldD4KLSAgICAgICAgPGxlZ2VuZD5BdHRyaWJ1dGVzPC9sZWdlbmQ+Ci0g
ICAgICAgIAotICAgICAgICA8bGFiZWwgZm9yPSJ0eXBlIj5bdHlwZV08L2xhYmVsPgotICAgICAg
ICA8c2VsZWN0IG5hbWU9InR5cGUiIGlkPSJjb25maWdfdHlwZSI+Ci0gICAgICAgICAgICA8b3B0
aW9uPmRhdGU8L29wdGlvbj4KLSAgICAgICAgICAgIDxvcHRpb24+d2Vlazwvb3B0aW9uPgotICAg
ICAgICAgICAgPG9wdGlvbj5tb250aDwvb3B0aW9uPgotICAgICAgICA8L3NlbGVjdD4KLSAgICAg
ICAgPGJyIC8+Ci0gICAgICAgIDxsYWJlbCBmb3I9InZhbHVlIj5bdmFsdWVdPC9sYWJlbD4KLSAg
ICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InZhbHVlIiBpZD0iY29uZmlnX3ZhbHVlIj4K
LSAgICAgICAgPGJyIC8+Ci0gICAgICAgIDxsYWJlbCBmb3I9Im1pbiI+W21pbl08L2xhYmVsPgot
ICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibWluIiBpZD0iY29uZmlnX21pbiI+Ci0g
ICAgICAgIDxiciAvPgotICAgICAgICA8bGFiZWwgZm9yPSJtYXgiPlttYXhdPC9sYWJlbD4KLSAg
ICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im1heCIgaWQ9ImNvbmZpZ19tYXgiPgotICAg
ICAgICA8YnIgLz4KLSAgICAgICAgPGxhYmVsIGZvcj0ic3RlcCI+W3N0ZXBdPC9sYWJlbD4KLSAg
ICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbmFtZT0ic3RlcCIgaWQ9ImNvbmZpZ19zdGVwIj4K
LSAgICA8L2ZpZWxkc2V0PgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQi
PgotPC9mb3JtPgotCi08c2NyaXB0PgotZnVuY3Rpb24gZ2V0UGFyYW0oa2V5KSB7Ci0gICAga2V5
ID0ga2V5LnJlcGxhY2UoL1tcW10vLCAiXFxcWyIpLnJlcGxhY2UoL1tcXV0vLCAiXFxcXSIpOwot
ICAgIHZhciBwYXR0ZXJuID0gIltcXD8mXSIgKyBrZXkgKyAiPShbXiYjXSopIjsKLSAgICB2YXIg
cmVnZXggPSBuZXcgUmVnRXhwKHBhdHRlcm4pOwotICAgIHZhciByZXN1bHRzID0gcmVnZXguZXhl
Yyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKLSAgICBpZiAoIXJlc3VsdHMpCi0gICAgICAgIHJl
dHVybiAiIjsKLSAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdHNbMV0ucmVwbGFj
ZSgvXCsvZywgIiAiKSk7Ci19Ci0KLWZ1bmN0aW9uIHNldFBhcmFtKGtleSwgdmFsdWUpIHsKLSAg
ICBrZXkgPSBlc2NhcGUoa2V5KTsKLSAgICB2YWx1ZSA9IGVzY2FwZSh2YWx1ZSk7Ci0KLSAgICB2
YXIga3ZwID0gZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoLnN1YnN0cigxKS5zcGxpdCgnJicpOwot
Ci0gICAgZm9yICh2YXIgaSA9IGt2cC5sZW5ndGggLSAxOyBpID49IDA7IC0taSl7Ci0gICAgICAg
IGt2cFtpXQotICAgICAgICB2YXIgeCA9IGt2cFtpXS5zcGxpdCgnPScpOwotICAgICAgICBpZiAo
eFswXSA9PT0ga2V5KSB7Ci0gICAgICAgICAgICB4WzFdID0gdmFsdWU7Ci0gICAgICAgICAgICBr
dnBbaV0gPSB4LmpvaW4oJz0nKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgaWYgKGkgPCAwKQotICAgICAgICBrdnBba3ZwLmxlbmd0aF0gPSBrZXkgKyAiPSIg
KyB2YWx1ZTsKLQotICAgIGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9IGt2cC5qb2luKCcmJyk7
Ci19Ci0KLWZ1bmN0aW9uICQoaWQpIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpOwotfQotCi12YXIgY29uZmlnID0ge307Ci1mdW5jdGlvbiBpbml0aWFsaXplQ29uZmln
KCkgewotICAgIGZvciAobG9jYWxlIGluIGxvY2FsZV9kYXRhKSB7Ci0gICAgICAgIHZhciBvcHRp
b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgb3B0aW9uLnNl
dEF0dHJpYnV0ZSgibGFiZWwiLCBsb2NhbGVfZGF0YVtsb2NhbGVdLmRpc3BsYXlOYW1lKTsKLSAg
ICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCBsb2NhbGUpOwotICAgICAgICAkKCJj
b25maWdfbG9jYWxlIikuYXBwZW5kQ2hpbGQob3B0aW9uKTsKLSAgICB9Ci0gICAgCi0gICAgY29u
ZmlnLmxvY2FsZSA9IGdldFBhcmFtKCJsb2NhbGUiKSB8fCAiZW5fVVMiOwotICAgIGNvbmZpZy5p
c0xvY2FsZVJUTCA9IGdldFBhcmFtKCJsb2NhbGVfcnRsIikgPT09ICJ0cnVlIjsKLSAgICBjb25m
aWcud2Vla1N0YXJ0RGF5ID0gcGFyc2VJbnQoZ2V0UGFyYW0oIndlZWtTdGFydERheSIpIHx8ICIw
IiwgMTApOwotICAgIGNvbmZpZy50eXBlID0gZ2V0UGFyYW0oInR5cGUiKSB8fCAiZGF0ZSI7Ci0g
ICAgY29uZmlnLnZhbHVlID0gZ2V0UGFyYW0oInZhbHVlIikgfHwgIiI7Ci0gICAgY29uZmlnLm1p
biA9IGdldFBhcmFtKCJtaW4iKSB8fCAiIjsKLSAgICBjb25maWcubWF4ID0gZ2V0UGFyYW0oIm1h
eCIpIHx8ICIiOwotICAgIGNvbmZpZy5zdGVwID0gZ2V0UGFyYW0oInN0ZXAiKSB8fCAiMSI7Ci0K
LSAgICAkKCJjb25maWdfbG9jYWxlIikudmFsdWUgPSBjb25maWcubG9jYWxlOwotICAgICQoImNv
bmZpZ19sb2NhbGVfcnRsIikuY2hlY2tlZCA9IGNvbmZpZy5pc0xvY2FsZVJUTDsKLSAgICAkKCJj
b25maWdfd2Vla19zdGFydF9kYXkiKS52YWx1ZSA9IGNvbmZpZy53ZWVrU3RhcnREYXk7Ci0gICAg
JCgiY29uZmlnX3R5cGUiKS52YWx1ZSA9IGNvbmZpZy50eXBlOwotICAgICQoImNvbmZpZ192YWx1
ZSIpLnZhbHVlID0gY29uZmlnLnZhbHVlOwotICAgICQoImNvbmZpZ19taW4iKS52YWx1ZSA9IGNv
bmZpZy5taW47Ci0gICAgJCgiY29uZmlnX21heCIpLnZhbHVlID0gY29uZmlnLm1heDsKLSAgICAk
KCJjb25maWdfc3RlcCIpLnZhbHVlID0gY29uZmlnLnN0ZXA7Ci19OwotCi12YXIgbG9jYWxlX2Rh
dGEgPSB7Ci0gICAgImVuX1VTIjogewotICAgICAgICAiZGlzcGxheU5hbWUiOiAiRW5nbGlzaCAo
VW5pdGVkIFN0YXRlcykiLAotICAgICAgICAic2hvcnRNb250aExhYmVscyI6IFsKLSAgICAgICAg
IkphbiIsCi0gICAgICAgICJGZWIiLAotICAgICAgICAiTWFyIiwKLSAgICAgICAgIkFwciIsCi0g
ICAgICAgICJNYXkiLAotICAgICAgICAiSnVuIiwKLSAgICAgICAgIkp1bCIsCi0gICAgICAgICJB
dWciLAotICAgICAgICAiU2VwIiwKLSAgICAgICAgIk9jdCIsCi0gICAgICAgICJOb3YiLAotICAg
ICAgICAiRGVjIgotICAgICAgICBdLAotICAgICAgICAiZGF5TGFiZWxzIjogWwotICAgICAgICAi
UyIsCi0gICAgICAgICJNIiwKLSAgICAgICAgIlQiLAotICAgICAgICAiVyIsCi0gICAgICAgICJU
IiwKLSAgICAgICAgIkYiLAotICAgICAgICAiUyIKLSAgICAgICAgXSwKLSAgICB9LAotICAgICJq
YSI6IHsKLSAgICAgICAgImRpc3BsYXlOYW1lIjogIkphcGFuZXNlIiwKLSAgICAgICAgInNob3J0
TW9udGhMYWJlbHMiOiBbCi0gICAgICAgICIx5pyIIiwKLSAgICAgICAgIjLmnIgiLAotICAgICAg
ICAiM+aciCIsCi0gICAgICAgICI05pyIIiwKLSAgICAgICAgIjXmnIgiLAotICAgICAgICAiNuac
iCIsCi0gICAgICAgICI35pyIIiwKLSAgICAgICAgIjjmnIgiLAotICAgICAgICAiOeaciCIsCi0g
ICAgICAgICIxMOaciCIsCi0gICAgICAgICIxMeaciCIsCi0gICAgICAgICIxMuaciCIKLSAgICAg
ICAgXSwKLSAgICAgICAgImRheUxhYmVscyI6IFsKLSAgICAgICAgIuaXpSIsCi0gICAgICAgICLm
nIgiLAotICAgICAgICAi54GrIiwKLSAgICAgICAgIuawtCIsCi0gICAgICAgICLmnKgiLAotICAg
ICAgICAi6YeRIiwKLSAgICAgICAgIuWcnyIKLSAgICAgICAgXSwKLSAgICB9LAotICAgICJhciI6
IHsKLSAgICAgICAgImRpc3BsYXlOYW1lIjogIkFyYWJpYyIsCi0gICAgICAgICJzaG9ydE1vbnRo
TGFiZWxzIjogWwotICAgICAgICAi2YrZhtin2YrYsSIsCi0gICAgICAgICLZgdio2LHYp9mK2LEi
LAotICAgICAgICAi2YXYp9ix2LMiLAotICAgICAgICAi2KPYqNix2YrZhCIsCi0gICAgICAgICLZ
hdin2YrZiCIsCi0gICAgICAgICLZitmI2YbZitmIIiwKLSAgICAgICAgItmK2YjZhNmK2YgiLAot
ICAgICAgICAi2KPYutiz2LfYsyIsCi0gICAgICAgICLYs9io2KrZhdio2LEiLAotICAgICAgICAi
2KPZg9iq2YjYqNixIiwKLSAgICAgICAgItmG2YjZgdmF2KjYsSIsCi0gICAgICAgICLYr9mK2LPZ
hdio2LEiCi0gICAgICAgIF0sCi0gICAgICAgICJkYXlMYWJlbHMiOiBbCi0gICAgICAgICLYrSIs
Ci0gICAgICAgICLZhiIsCi0gICAgICAgICLYqyIsCi0gICAgICAgICLYsSIsCi0gICAgICAgICLY
riIsCi0gICAgICAgICLYrCIsCi0gICAgICAgICLYsyIKLSAgICAgICAgXSwKLSAgICB9LAotICAg
ICJ2aSI6IHsKLSAgICAgICAgImRpc3BsYXlOYW1lIjogIlZpZXRuYW1lc2UiLAotICAgICAgICAi
c2hvcnRNb250aExhYmVscyI6IFsKLSAgICAgICAgInRoZyAxIiwKLSAgICAgICAgInRoZyAyIiwK
LSAgICAgICAgInRoZyAzIiwKLSAgICAgICAgInRoZyA0IiwKLSAgICAgICAgInRoZyA1IiwKLSAg
ICAgICAgInRoZyA2IiwKLSAgICAgICAgInRoZyA3IiwKLSAgICAgICAgInRoZyA4IiwKLSAgICAg
ICAgInRoZyA5IiwKLSAgICAgICAgInRoZyAxMCIsCi0gICAgICAgICJ0aGcgMTEiLAotICAgICAg
ICAidGhnIDEyIgotICAgICAgICBdLAotICAgICAgICAiZGF5TGFiZWxzIjogWwotICAgICAgICAi
Q04iLAotICAgICAgICAiVDIiLAotICAgICAgICAiVDMiLAotICAgICAgICAiVDQiLAotICAgICAg
ICAiVDUiLAotICAgICAgICAiVDYiLAotICAgICAgICAiVDciCi0gICAgICAgIF0sCi0gICAgfSwK
LX07Ci0KLWZ1bmN0aW9uIGNyZWF0ZVBhcmFtKCkgewotICAgIHJldHVybiB7Ci0gICAgICAgIG1v
ZGU6IGNvbmZpZy50eXBlLAotICAgICAgICBsb2NhbGU6IGNvbmZpZy5sb2NhbGUsCi0gICAgICAg
IHdlZWtTdGFydERheTogY29uZmlnLndlZWtTdGFydERheSwKLSAgICAgICAgaXNMb2NhbGVSVEw6
IGNvbmZpZy5pc0xvY2FsZVJUTCwKLSAgICAgICAgZGF5TGFiZWxzOiBsb2NhbGVfZGF0YVtjb25m
aWcubG9jYWxlXS5kYXlMYWJlbHMsCi0gICAgICAgIHNob3J0TW9udGhMYWJlbHM6IGxvY2FsZV9k
YXRhW2NvbmZpZy5sb2NhbGVdLnNob3J0TW9udGhMYWJlbHMsCi0gICAgICAgIG1heDogY29uZmln
Lm1heCwKLSAgICAgICAgbWluOiBjb25maWcubWluLAotICAgICAgICBzdGVwOiBjb25maWcuc3Rl
cCAqIChjb25maWcudHlwZSA9PT0gIm1vbnRoIiA/IDEgOiA4NjQwMDAwMCksCi0gICAgICAgIHN0
ZXBCYXNlOiAiMCIsCi0gICAgICAgIGN1cnJlbnRWYWx1ZTogY29uZmlnLnZhbHVlCi0gICAgfQot
fTsKLQotZnVuY3Rpb24gb3BlbkNhbGVuZGFyKCkgewotICAgIHZhciBmcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKLSAgICB2YXIgZG9jID0gZnJhbWUu
Y29udGVudERvY3VtZW50OwotICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gJzxo
ZWFkPjwvaGVhZD48Ym9keT48ZGl2IGlkPW1haW4+TG9hZGluZy4uLjwvZGl2PjwvYm9keT4nOwot
ICAgIHZhciBjb21tb25Dc3NMaW5rID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICBj
b21tb25Dc3NMaW5rLnJlbCA9ICdzdHlsZXNoZWV0JzsKLSAgICBjb21tb25Dc3NMaW5rLmhyZWYg
PSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvcGlja2VyQ29tbW9u
LmNzcz8nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKLSAgICBkb2MuaGVhZC5hcHBlbmRDaGls
ZChjb21tb25Dc3NMaW5rKTsKLSAgICB2YXIgY29tbW9uQ2hyb21pdW1Dc3NMaW5rID0gZG9jLmNy
ZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICBjb21tb25DaHJvbWl1bUNzc0xpbmsucmVsID0gJ3N0
eWxlc2hlZXQnOwotICAgIGNvbW1vbkNocm9taXVtQ3NzTGluay5ocmVmID0gJy4uLy4uL1NvdXJj
ZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2Nocm9taXVtL3BpY2tlckNvbW1vbkNocm9t
aXVtLmNzcz8nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKLSAgICBkb2MuaGVhZC5hcHBlbmRD
aGlsZChjb21tb25DaHJvbWl1bUNzc0xpbmspOwotICAgIHZhciBzdWdnZXN0aW9uUGlja2VyQ3Nz
TGluayA9IGRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci0gICAgc3VnZ2VzdGlvblBpY2tlckNz
c0xpbmsucmVsID0gJ3N0eWxlc2hlZXQnOwotICAgIHN1Z2dlc3Rpb25QaWNrZXJDc3NMaW5rLmhy
ZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlv
blBpY2tlci5jc3M/JyArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAgZG9jLmhlYWQuYXBw
ZW5kQ2hpbGQoc3VnZ2VzdGlvblBpY2tlckNzc0xpbmspOwotICAgIHZhciBsaW5rID0gZG9jLmNy
ZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JzsKLSAgICBs
aW5rLmhyZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2Fs
ZW5kYXJQaWNrZXIuY3NzPycgKyAobmV3IERhdGUoKSkuZ2V0VGltZSgpOwotICAgIGRvYy5oZWFk
LmFwcGVuZENoaWxkKGxpbmspOwotICAgIHZhciBjYWxlbmRhclBpY2tlckNocm9taXVtQ3NzTGlu
ayA9IGRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci0gICAgY2FsZW5kYXJQaWNrZXJDaHJvbWl1
bUNzc0xpbmsucmVsID0gJ3N0eWxlc2hlZXQnOwotICAgIGNhbGVuZGFyUGlja2VyQ2hyb21pdW1D
c3NMaW5rLmhyZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMv
Y2hyb21pdW0vY2FsZW5kYXJQaWNrZXJDaHJvbWl1bS5jc3M/JyArIChuZXcgRGF0ZSgpKS5nZXRU
aW1lKCk7Ci0gICAgZG9jLmhlYWQuYXBwZW5kQ2hpbGQoY2FsZW5kYXJQaWNrZXJDaHJvbWl1bUNz
c0xpbmspOwotICAgIHZhciBjb21tb25Kc1NjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCdzY3Jp
cHQnKTsKLSAgICBjb21tb25Kc1NjcmlwdC5zcmMgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3BhZ2Vwb3B1cHMvcGlja2VyQ29tbW9uLmpzPycgKyAobmV3IERhdGUoKSkuZ2V0VGlt
ZSgpOwotICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNvbW1vbkpzU2NyaXB0KTsKLSAgICB2YXIg
c3VnZ2VzdGlvblBpY2tlckpzU2NyaXB0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwot
ICAgIHN1Z2dlc3Rpb25QaWNrZXJKc1NjcmlwdC5zcmMgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUv
UmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBpY2tlci5qcz8nICsgKG5ldyBEYXRlKCkp
LmdldFRpbWUoKTsKLSAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChzdWdnZXN0aW9uUGlja2VySnNT
Y3JpcHQpOwotICAgIHZhciBzY3JpcHQgPSBkb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7Ci0g
ICAgc2NyaXB0LnNyYyA9ICcuLi8uLi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVw
cy9jYWxlbmRhclBpY2tlci5qcz8nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKLSAgICBkb2Mu
Ym9keS5hcHBlbmRDaGlsZChzY3JpcHQpOwotCi0gICAgdmFyIHBhZ2VQb3B1cENvbnRyb2xsZXIg
PSB7Ci0gICAgICAgIHNldFZhbHVlQW5kQ2xvc2VQb3B1cDogZnVuY3Rpb24obnVtVmFsdWUsIHN0
cmluZ1ZhbHVlKSB7Ci0gICAgICAgICAgICB3aW5kb3cubG9nKCdudW1iZXI9JyArIG51bVZhbHVl
ICsgJywgc3RyaW5nPSInICsgc3RyaW5nVmFsdWUgKyAnIicpOwotICAgICAgICAgICAgaWYgKG51
bVZhbHVlID09IDApCi0gICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkYXRlJykudmFsdWUgPSBzdHJpbmdWYWx1ZTsKLSAgICAgICAgfSwKLSAgICAgICAgc2V0
VmFsdWU6IGZ1bmN0aW9uKHN0cmluZ1ZhbHVlKSB7Ci0gICAgICAgICAgICB3aW5kb3cubG9nKCdz
dHJpbmc9IicgKyBzdHJpbmdWYWx1ZSArICciJyk7Ci0gICAgICAgICAgICB3aW5kb3cuZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2RhdGUnKS52YWx1ZSA9IHN0cmluZ1ZhbHVlOwotICAgICAgICB9
LAotICAgICAgICBjbG9zZVBvcHVwOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHdpbmRvdy5s
b2coJ2Nsb3NlUG9wdXAnKTsKLSAgICAgICAgfSwKLSAgICAgICAgbG9jYWxpemVOdW1iZXJTdHJp
bmc6IGZ1bmN0aW9uKG51bVN0cmluZykgewotICAgICAgICAgICAgaWYgKHR5cGVvZiBudW1TdHJp
bmcgPT0gIm51bWJlciIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG51bVN0cmluZy50b0xvY2Fs
ZVN0cmluZygpOwotICAgICAgICAgICAgcmV0dXJuIG51bVN0cmluZy50b1N0cmluZygpOwotICAg
ICAgICB9LAotICAgICAgICBoaXN0b2dyYW1FbnVtZXJhdGlvbjogZnVuY3Rpb24oKSB7fSwKLSAg
ICAgICAgZm9ybWF0TW9udGg6IGZ1bmN0aW9uKHllYXIsIHplcm9CYXNlTW9udGgpIHsKLSAgICAg
ICAgICAgIHZhciBtb250aExhYmVscyA9IFsnPEphbnVhcnk+JywgJzxGZWJydWFyeT4nLCAnPE1h
cmNoPicsICc8QXByaWw+JywgJzxNYXk+JywgJzxKdW5lPicsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJzxKdWx5PicsICc8QXVndXN0PicsICc8U2VwdGVtYmVyPicsICc8T2N0b2Jl
cj4nLCAnPE5vdmVtYmVyPicsICc8RGVjZW1iZXI+J107Ci0gICAgICAgICAgICByZXR1cm4gbW9u
dGhMYWJlbHNbemVyb0Jhc2VNb250aF0gKyAiICIgKyB5ZWFyOwotICAgICAgICB9LAotICAgICAg
ICBmb3JtYXRTaG9ydE1vbnRoOiBmdW5jdGlvbih5ZWFyLCB6ZXJvQmFzZU1vbnRoKSB7Ci0gICAg
ICAgICAgICB2YXIgbW9udGhMYWJlbHMgPSBbJzxKYW4+JywgJzxGZWI+JywgJzxNYXI+JywgJzxB
cHI+JywgJzxNYXk+JywgJzxKdW4+JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
PEp1bD4nLCAnPEF1Zz4nLCAnPFNlcHQ+JywgJzxPY3Q+JywgJzxOb3Y+JywgJzxEZWM+J107Ci0g
ICAgICAgICAgICByZXR1cm4gbW9udGhMYWJlbHNbemVyb0Jhc2VNb250aF0gKyAiICIgKyB5ZWFy
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAg
ICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShjcmVhdGVQ
YXJhbSgpKSwgIioiKTsKLSAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wYWdlUG9wdXBDb250
cm9sbGVyID0gcGFnZVBvcHVwQ29udHJvbGxlcjsKLSAgICB9LCAxMDApOwotfQotCi1mdW5jdGlv
biBsb2coc3RyKSB7Ci0gICAgdmFyIGVudHJ5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGkn
KTsKLSAgICBlbnRyeS5pbm5lclRleHQgPSBzdHI7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChlbnRyeSk7Ci19Ci0KLXdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKLSAgICBpbml0aWFsaXplQ29uZmlnKCk7Ci0gICAgb3BlbkNhbGVuZGFyKCk7
Ci19OwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9NYW51YWxUZXN0
cy9mb3Jtcy9jb2xvci1zdWdnZXN0aW9uLXBpY2tlci5odG1sIGIvTWFudWFsVGVzdHMvZm9ybXMv
Y29sb3Itc3VnZ2VzdGlvbi1waWNrZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODkzNGFlMTExOTU5YjM1MmU4MDM4YTg3YzA2MjdjNmNjYTQ4OTJkZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9NYW51YWxUZXN0cy9mb3Jtcy9jb2xv
ci1zdWdnZXN0aW9uLXBpY2tlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0
aXRsZT5Db2xvciBTdWdnZXN0aW9uIFBpY2tlciB0ZXN0PC90aXRsZT4KLTxzdHlsZT4KLWJvZHkg
ewotICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWZmZmY7Ci19Ci1pZnJhbWUgewotICAgIHotaW5k
ZXg6IDIxNDc0ODM2NDc7Ci0gICAgd2lkdGg6IDE4MHB4OwotICAgIGhlaWdodDogMjQwcHg7Ci0g
ICAgYm9yZGVyOiAwOwotICAgIG92ZXJmbG93OiBoaWRkZW47Ci19Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHk+Ci0KLTxwPlRoaXMgaXMgYSB0ZXN0YmVkIGZvciBhIGNvbG9yIHN1Z2dlc3Rpb24g
cGlja2VyLjwvcD4KLQotPGRpdj48aW5wdXQgdHlwZT0iY29sb3IiIGlkPSJjb2xvciI+PC9kaXY+
Ci08aWZyYW1lPjwvaWZyYW1lPgotCi08b2wgaWQ9ImNvbnNvbGUiIHN0eWxlPSJmb250LWZhbWls
eTptb25vc3BhY2U7Ij4KLTwvb2w+Ci0KLTxzY3JpcHQ+Ci12YXIgYXJndW1lbnRzID0gewotICAg
IHZhbHVlcyA6IFsnIzAwMDAwMCcsICcjNDA0MDQwJywgJyM4MDgwODAnLCAnI2MwYzBjMCcsICcj
ZmZmZmZmJywgJyM5ODAwMDAnLCAnI2ZmMDAwMCcsICcjZmY5OTAwJywgJyNmZmZmMDAnLCAnIzAw
ZmYwMCcsICcjMDBmZmZmJywgJyM0YTg2ZTgnLCAnIzAwMDBmZicsICcjOTkwMGZmJywgJyNmZjAw
ZmYnLCAnIzQwNDA0MCcsICcjODA4MDgwJywgJyNjMGMwYzAnLCAnI2ZmZmZmZicsICcjOTgwMDAw
JywgJyNmZjAwMDAnLCAnI2ZmOTkwMCcsICcjZmZmZjAwJywgJyMwMGZmMDAnLCAnIzAwZmZmZics
ICcjNGE4NmU4JywgJyMwMDAwZmYnLCAnIzk5MDBmZicsICcjZmYwMGZmJ10sCi0gICAgb3RoZXJD
b2xvckxhYmVsOiAnT3RoZXIuLi4nCi19OwotCi1mdW5jdGlvbiBvcGVuQ29sb3JQaWNrZXIoYXJn
cykgewotICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJh
bWUnKVswXTsKLSAgICB2YXIgZG9jID0gZnJhbWUuY29udGVudERvY3VtZW50OwotICAgIGRvYy5k
b2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gJzxoZWFkPjwvaGVhZD48Ym9keT48ZGl2IGlkPW1h
aW4+TG9hZGluZy4uLjwvZGl2PjwvYm9keT4nOwotICAgIHZhciBjb21tb25Dc3NMaW5rID0gZG9j
LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICBjb21tb25Dc3NMaW5rLnJlbCA9ICdzdHlsZXNo
ZWV0JzsKLSAgICBjb21tb25Dc3NMaW5rLmhyZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3BhZ2Vwb3B1cHMvcGlja2VyQ29tbW9uLmNzcz8nICsgKG5ldyBEYXRlKCkpLmdldFRp
bWUoKTsKLSAgICBkb2MuaGVhZC5hcHBlbmRDaGlsZChjb21tb25Dc3NMaW5rKTsKLSAgICB2YXIg
bGluayA9IGRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci0gICAgbGluay5yZWwgPSAnc3R5bGVz
aGVldCc7Ci0gICAgbGluay5ocmVmID0gJy4uLy4uL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9w
YWdlcG9wdXBzL2NvbG9yU3VnZ2VzdGlvblBpY2tlci5jc3M/JyArIChuZXcgRGF0ZSgpKS5nZXRU
aW1lKCk7Ci0gICAgZG9jLmhlYWQuYXBwZW5kQ2hpbGQobGluayk7Ci0gICAgdmFyIGNvbW1vbkpz
U2NyaXB0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwotICAgIGNvbW1vbkpzU2NyaXB0
LnNyYyA9ICcuLi8uLi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJD
b21tb24uanM/JyArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAgZG9jLmJvZHkuYXBwZW5k
Q2hpbGQoY29tbW9uSnNTY3JpcHQpOwotICAgIHZhciBzY3JpcHQgPSBkb2MuY3JlYXRlRWxlbWVu
dCgnc2NyaXB0Jyk7Ci0gICAgc2NyaXB0LnNyYyA9ICcuLi8uLi9Tb3VyY2UvV2ViQ29yZS9SZXNv
dXJjZXMvcGFnZXBvcHVwcy9jb2xvclN1Z2dlc3Rpb25QaWNrZXIuanM/JyArIChuZXcgRGF0ZSgp
KS5nZXRUaW1lKCk7Ci0gICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKLQotICAgIHZh
ciBwYWdlUG9wdXBDb250cm9sbGVyID0gewotICAgICAgICBzZXRWYWx1ZUFuZENsb3NlUG9wdXA6
IGZ1bmN0aW9uKG51bVZhbHVlLCBzdHJpbmdWYWx1ZSkgewotICAgICAgICAgICAgd2luZG93Lmxv
ZygnbnVtYmVyPScgKyBudW1WYWx1ZSArICcsIHN0cmluZz0iJyArIHN0cmluZ1ZhbHVlICsgJyIn
KTsKLSAgICAgICAgICAgIGlmIChudW1WYWx1ZSA9PT0gMCkKLSAgICAgICAgICAgICAgICB3aW5k
b3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbG9yJykudmFsdWUgPSBzdHJpbmdWYWx1ZTsK
LSAgICAgICAgfSwKLSAgICAgICAgc2V0VmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAg
ICAgICB3aW5kb3cubG9nKCd2YWx1ZT0iJyArIHZhbHVlICsgJyInKTsKLSAgICAgICAgICAgIHdp
bmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29sb3InKS52YWx1ZSA9IHZhbHVlOwotICAg
ICAgICB9LAotICAgICAgICBjbG9zZVBvcHVwOiBmdW5jdGlvbigpIHsKLSAgICAgICAgfSwKLSAg
ICB9Ci0KLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBmcmFtZS5jb250ZW50
V2luZG93LnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGFyZ3MpLCAiKiIpOwotICAgICAgICBm
cmFtZS5jb250ZW50V2luZG93LnBhZ2VQb3B1cENvbnRyb2xsZXIgPSBwYWdlUG9wdXBDb250cm9s
bGVyOwotICAgIH0sIDEwMCk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgZW50
cnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwotICAgIGVudHJ5LmlubmVyVGV4dCA9
IHN0cjsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxk
KGVudHJ5KTsKLX0KLQotb3BlbkNvbG9yUGlja2VyKGFyZ3VtZW50cyk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9N
YW51YWxUZXN0cy9mb3Jtcy9kYXRlLXN1Z2dlc3Rpb24tcGlja2VyLmh0bWwgYi9NYW51YWxUZXN0
cy9mb3Jtcy9kYXRlLXN1Z2dlc3Rpb24tcGlja2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI2MWEyOTZlZWE4NGFiOGUyODE1MzQ0YjFkN2JiYWFjZmE5YjNiN2YuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTWFudWFsVGVzdHMvZm9y
bXMvZGF0ZS1zdWdnZXN0aW9uLXBpY2tlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjc5ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9dXRm
LTg+Ci08dGl0bGU+Q2FsZW5kYXIgUGlja2VyIHRlc3Q8L3RpdGxlPgotPHN0eWxlPgotYm9keSB7
Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZmZmZjsKLX0KLWlmcmFtZSB7Ci0gICAgei1pbmRl
eDogMjE0NzQ4MzY0NzsKLSAgICB3aWR0aDogMTAwcHg7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAg
ICBib3JkZXI6IDA7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+
Ci08Ym9keT4KLQotPHA+VGhpcyBpcyBhIHRlc3RiZWQgZm9yIGRhdGUgc3VnZ2VzdGlvbiBwaWNr
ZXIuPC9wPgotPHNlbGVjdCBvbmNoYW5nZT0ic2VsZWN0ZWQodGhpcykiPgotIDxvcHRpb24+d2l0
aCBkYXRhbGlzdDwvb3B0aW9uPgotIDxvcHRpb24+d2l0aCBsb25nIGRhdGFsaXN0PC9vcHRpb24+
Ci0gPG9wdGlvbj5BcmFiaWMgd2l0aCBkYXRhbGlzdDwvb3B0aW9uPgotIDxvcHRpb24+QXJhYmlj
IHdpdGggbG9uZyBkYXRhbGlzdDwvb3B0aW9uPgotPC9zZWxlY3Q+Ci0KLTxkaXY+PGlucHV0IHR5
cGU9InRleHQiIGlkPSJkYXRlIj48L2Rpdj4KLTxpZnJhbWU+PC9pZnJhbWU+Ci0KLTxvbCBpZD0i
Y29uc29sZSIgc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZTsiPgotPC9vbD4KLQotPHNjcmlw
dD4KLXZhciBkYXRhbGlzdEFyZ3VtZW50cyA9IHsKLSAgICBsb2NhbGU6ICdlbi1VUycsCi0gICAg
ZGF5TGFiZWxzIDogWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdT
YXQnXSwKLSAgICB0b2RheUxhYmVsIDogJ1RvZGF5JywKLSAgICBjbGVhckxhYmVsIDogJ0NsZWFy
JywKLSAgICBjYW5jZWxMYWJlbCA6ICdDYW5jZWwnLAotICAgIHdlZWtTdGFydERheSA6IDAsCi0g
ICAgc3RlcCA6ICI4NjQwMDAwMCIsCi0gICAgc3RlcEJhc2U6ICIwIiwKLSAgICBtYXggOiAnMjA5
OS0xMi0zMScsCi0gICAgc3VnZ2VzdGlvblZhbHVlcyA6IFsnMjAxMi0wMS0wMScsICcyMDEyLTA2
LTAzJywgJzIwMTItMDktMDYnLCAnMjAxMi0xMi0yNCddLAotICAgIGxvY2FsaXplZFN1Z2dlc3Rp
b25WYWx1ZXMgOiBbJzEvMS8xMicsICc2LzMvMTInLCAnOS82LzEyJywgJzEyLzI0LzEyJ10sCi0g
ICAgc3VnZ2VzdGlvbkxhYmVscyA6IFsnJywgJ0JpcnRoZGF5JywgJycsICdDaHJpc3RtYXMnXSwK
LSAgICBzaG93T3RoZXJEYXRlRW50cnk6IHRydWUsCi0gICAgb3RoZXJEYXRlTGFiZWw6ICdPdGhl
ci4uLicsCi0gICAgaW5wdXRXaWR0aDogMTI3LAotICAgIHN1Z2dlc3Rpb25IaWdobGlnaHRDb2xv
cjogIiMwMDAwZmYiLAotICAgIHN1Z2dlc3Rpb25IaWdobGlnaHRUZXh0Q29sb3I6ICIjZmZmZmZm
IgotfTsKLXZhciBsb25nRGF0YWxpc3RBcmd1bWVudHMgPSB7Ci0gICAgbG9jYWxlOiAnZW4tVVMn
LAotICAgIGRheUxhYmVscyA6IFsnU3VuJywgJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdG
cmknLCAnU2F0J10sCi0gICAgdG9kYXlMYWJlbCA6ICdUb2RheScsCi0gICAgY2xlYXJMYWJlbCA6
ICdDbGVhcicsCi0gICAgY2FuY2VsTGFiZWwgOiAnQ2FuY2VsJywKLSAgICB3ZWVrU3RhcnREYXkg
OiAwLAotICAgIHN0ZXAgOiAiODY0MDAwMDAiLAotICAgIHN0ZXBCYXNlOiAiMCIsCi0gICAgbWF4
IDogJzIwOTktMTItMzEnLAotICAgIHN1Z2dlc3Rpb25WYWx1ZXM6IFsiMjAxMi0wMS0wMSIsICIy
MDEyLTAxLTAyIiwgIjIwMTItMDEtMDMiLCAiMjAxMi0wMS0wNCIsCi0gICAgICAgICIyMDEyLTAx
LTA1IiwgIjIwMTItMDEtMDYiLCAiMjAxMi0wMS0wNyIsICIyMDEyLTAxLTA4IiwgIjIwMTItMDEt
MDkiLAotICAgICAgICAiMjAxMi0wMS0xMCIsICIyMDEyLTAxLTExIiwgIjIwMTItMDEtMTIiLCAi
MjAxMi0wMS0xMyIsICIyMDEyLTAxLTE0IiwKLSAgICAgICAgIjIwMTItMDEtMTUiLCAiMjAxMi0w
MS0xNiIsICIyMDEyLTAxLTE3IiwgIjIwMTItMDEtMTgiLCAiMjAxMi0wMS0xOSIsCi0gICAgICAg
ICIyMDEyLTAxLTIwIiwgIjIwMTItMDEtMjEiLCAiMjAxMi0wMS0yMiIsICIyMDEyLTAxLTIzIiwg
IjIwMTItMDEtMjQiLAotICAgICAgICAiMjAxMi0wMS0yNSIsICIyMDEyLTAxLTI2IiwgIjIwMTIt
MDEtMjciLCAiMjAxMi0wMS0yOCIsICIyMDEyLTAxLTI5IiwKLSAgICAgICAgIjIwMTItMDEtMzAi
LCAiMjAxMi0wMS0zMSIsICIyMDEyLTAyLTAxIiwgIjIwMTItMDItMDIiLCAiMjAxMi0wMi0wMyIs
Ci0gICAgICAgICIyMDEyLTAyLTA0IiwgIjIwMTItMDItMDUiLCAiMjAxMi0wMi0wNiIsICIyMDEy
LTAyLTA3IiwgIjIwMTItMDItMDgiLAotICAgICAgICAiMjAxMi0wMi0wOSIsICIyMDEyLTAyLTEw
IiwgIjIwMTItMDItMTEiLCAiMjAxMi0wMi0xMiIsICIyMDEyLTAyLTEzIiwKLSAgICAgICAgIjIw
MTItMDItMTQiLCAiMjAxMi0wMi0xNSIsICIyMDEyLTAyLTE2IiwgIjIwMTItMDItMTciLCAiMjAx
Mi0wMi0xOCIsCi0gICAgICAgICIyMDEyLTAyLTE5IiwgIjIwMTItMDItMjAiLCAiMjAxMi0wMi0y
MSIsICIyMDEyLTAyLTIyIiwgIjIwMTItMDItMjMiLAotICAgICAgICAiMjAxMi0wMi0yNCIsICIy
MDEyLTAyLTI1IiwgIjIwMTItMDItMjYiLCAiMjAxMi0wMi0yNyIsICIyMDEyLTAyLTI4IiwKLSAg
ICAgICAgIjIwMTItMDItMjkiLCAiMjAxMi0wMy0wMSIsICIyMDEyLTAzLTAyIiwgIjIwMTItMDMt
MDMiLCAiMjAxMi0wMy0wNCIsCi0gICAgICAgICIyMDEyLTAzLTA1IiwgIjIwMTItMDMtMDYiLCAi
MjAxMi0wMy0wNyIsICIyMDEyLTAzLTA4IiwgIjIwMTItMDMtMDkiLAotICAgICAgICAiMjAxMi0w
My0xMCIsICIyMDEyLTAzLTExIiwgIjIwMTItMDMtMTIiLCAiMjAxMi0wMy0xMyIsICIyMDEyLTAz
LTE0IiwKLSAgICAgICAgIjIwMTItMDMtMTUiLCAiMjAxMi0wMy0xNiIsICIyMDEyLTAzLTE3Iiwg
IjIwMTItMDMtMTgiLCAiMjAxMi0wMy0xOSIsCi0gICAgICAgICIyMDEyLTAzLTIwIiwgIjIwMTIt
MDMtMjEiLCAiMjAxMi0wMy0yMiIsICIyMDEyLTAzLTIzIiwgIjIwMTItMDMtMjQiLAotICAgICAg
ICAiMjAxMi0wMy0yNSIsICIyMDEyLTAzLTI2IiwgIjIwMTItMDMtMjciLCAiMjAxMi0wMy0yOCIs
ICIyMDEyLTAzLTI5IiwKLSAgICAgICAgIjIwMTItMDMtMzAiLCAiMjAxMi0wMy0zMSJdLAotICAg
IGxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXM6IFsiMS8xLzEyIiwgIjEvMi8xMiIsICIxLzMvMTIi
LCAiMS80LzEyIiwKLSAgICAgICAgIjEvNS8xMiIsICIxLzYvMTIiLCAiMS83LzEyIiwgIjEvOC8x
MiIsICIxLzkvMTIiLCAiMS8xMC8xMiIsICIxLzExLzEyIiwKLSAgICAgICAgIjEvMTIvMTIiLCAi
MS8xMy8xMiIsICIxLzE0LzEyIiwgIjEvMTUvMTIiLCAiMS8xNi8xMiIsICIxLzE3LzEyIiwKLSAg
ICAgICAgIjEvMTgvMTIiLCAiMS8xOS8xMiIsICIxLzIwLzEyIiwgIjEvMjEvMTIiLCAiMS8yMi8x
MiIsICIxLzIzLzEyIiwKLSAgICAgICAgIjEvMjQvMTIiLCAiMS8yNS8xMiIsICIxLzI2LzEyIiwg
IjEvMjcvMTIiLCAiMS8yOC8xMiIsICIxLzI5LzEyIiwKLSAgICAgICAgIjEvMzAvMTIiLCAiMS8z
MS8xMiIsICIyLzEvMTIiLCAiMi8yLzEyIiwgIjIvMy8xMiIsICIyLzQvMTIiLCAiMi81LzEyIiwK
LSAgICAgICAgIjIvNi8xMiIsICIyLzcvMTIiLCAiMi84LzEyIiwgIjIvOS8xMiIsICIyLzEwLzEy
IiwgIjIvMTEvMTIiLCAiMi8xMi8xMiIsCi0gICAgICAgICIyLzEzLzEyIiwgIjIvMTQvMTIiLCAi
Mi8xNS8xMiIsICIyLzE2LzEyIiwgIjIvMTcvMTIiLCAiMi8xOC8xMiIsCi0gICAgICAgICIyLzE5
LzEyIiwgIjIvMjAvMTIiLCAiMi8yMS8xMiIsICIyLzIyLzEyIiwgIjIvMjMvMTIiLCAiMi8yNC8x
MiIsCi0gICAgICAgICIyLzI1LzEyIiwgIjIvMjYvMTIiLCAiMi8yNy8xMiIsICIyLzI4LzEyIiwg
IjIvMjkvMTIiLCAiMy8xLzEyIiwKLSAgICAgICAgIjMvMi8xMiIsICIzLzMvMTIiLCAiMy80LzEy
IiwgIjMvNS8xMiIsICIzLzYvMTIiLCAiMy83LzEyIiwgIjMvOC8xMiIsCi0gICAgICAgICIzLzkv
MTIiLCAiMy8xMC8xMiIsICIzLzExLzEyIiwgIjMvMTIvMTIiLCAiMy8xMy8xMiIsICIzLzE0LzEy
IiwgCi0gICAgICAgICIzLzE1LzEyIiwgIjMvMTYvMTIiLCAiMy8xNy8xMiIsICIzLzE4LzEyIiwg
IjMvMTkvMTIiLCAiMy8yMC8xMiIsCi0gICAgICAgICIzLzIxLzEyIiwgIjMvMjIvMTIiLCAiMy8y
My8xMiIsICIzLzI0LzEyIiwgIjMvMjUvMTIiLCAiMy8yNi8xMiIsCi0gICAgICAgICIzLzI3LzEy
IiwgIjMvMjgvMTIiLCAiMy8yOS8xMiIsICIzLzMwLzEyIiwgIjMvMzEvMTIiXSwKLSAgICBzdWdn
ZXN0aW9uTGFiZWxzOiBbIlRvZGF5IiwgIlRvbW9ycm93IiwgIiIsICIiLCAiIiwgIiIsICIiLCAi
IiwgIiIsICIiLCAiIiwKLSAgICAgICAgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAi
IiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwKLSAgICAgICAgIiIsICIiLCAi
IiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIi
LCAiIiwKLSAgICAgICAgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIi
LCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwKLSAgICAgICAgIiIsICIiLCAiIiwgIiIsICIi
LCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwKLSAg
ICAgICAgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiXSwKLSAgICBzaG93T3RoZXJEYXRl
RW50cnk6IHRydWUsCi0gICAgb3RoZXJEYXRlTGFiZWw6ICdPdGhlci4uLicsCi0gICAgaW5wdXRX
aWR0aDogMTI3LAotICAgIHN1Z2dlc3Rpb25IaWdobGlnaHRDb2xvcjogIiMwMDAwZmYiLAotICAg
IHN1Z2dlc3Rpb25IaWdobGlnaHRUZXh0Q29sb3I6ICIjZmZmZmZmIgotfTsKLQotdmFyIGFyYWJp
Y0RhdGFsaXN0QXJndW1lbnRzID0gewotICAgIGxvY2FsZTogJ2FyJywKLSAgICBpc1JUTDogdHJ1
ZSwKLSAgICBpc0NhbGVuZGFyUlRMOiB0cnVlLAotICAgIGRheUxhYmVscyA6IFsn2K0nLCAn2YYn
LCAn2KsnLCAn2LEnLCAn2K4nLCAn2KwnLCAn2LMnXSwKLSAgICB0b2RheUxhYmVsIDogJ9in2YTZ
itmI2YUnLAotICAgIGNsZWFyTGFiZWwgOiAn2YXYs9itJywKLSAgICB3ZWVrU3RhcnREYXkgOiA1
LAotICAgIHN0ZXAgOiAiODY0MDAwMDAiLAotICAgIHN0ZXBCYXNlOiAiMCIsCi0gICAgbWF4IDog
JzIwMjAtMDUtMTUnLAotICAgIHN1Z2dlc3Rpb25WYWx1ZXMgOiBbJzIwMTItMDEtMDEnLCAnMjAx
Mi0wNi0wMycsICcyMDEyLTA5LTA2JywgJzIwMTItMTItMjQnXSwKLSAgICBsb2NhbGl6ZWRTdWdn
ZXN0aW9uVmFsdWVzIDogWycxLzEvMTInLCAnNi8zLzEyJywgJzkvNi8xMicsICcxMi8yNC8xMidd
LAotICAgIHN1Z2dlc3Rpb25MYWJlbHMgOiBbJycsICdCaXJ0aGRheScsICcnLCAnQ2hyaXN0bWFz
J10sCi0gICAgc2hvd090aGVyRGF0ZUVudHJ5OiB0cnVlLAotICAgIG90aGVyRGF0ZUxhYmVsOiAn
T3RoZXIuLi4nLAotICAgIGlucHV0V2lkdGg6IDEyNywKLSAgICBzdWdnZXN0aW9uSGlnaGxpZ2h0
Q29sb3I6ICIjMDAwMGZmIiwKLSAgICBzdWdnZXN0aW9uSGlnaGxpZ2h0VGV4dENvbG9yOiAiI2Zm
ZmZmZiIKLX07Ci0KLXZhciBhcmFiaWNMb25nRGF0YWxpc3RBcmd1bWVudHMgPSB7Ci0gICAgbG9j
YWxlOiAnYXInLAotICAgIGlzUlRMOiB0cnVlLAotICAgIGlzQ2FsZW5kYXJSVEw6IHRydWUsCi0g
ICAgZGF5TGFiZWxzIDogWyfYrScsICfZhicsICfYqycsICfYsScsICfYricsICfYrCcsICfYsydd
LAotICAgIHRvZGF5TGFiZWwgOiAn2KfZhNmK2YjZhScsCi0gICAgY2xlYXJMYWJlbCA6ICfZhdiz
2K0nLAotICAgIHdlZWtTdGFydERheSA6IDUsCi0gICAgc3RlcCA6ICI4NjQwMDAwMCIsCi0gICAg
c3RlcEJhc2U6ICIwIiwKLSAgICBtYXggOiAnMjAyMC0wNS0xNScsCi0gICAgc3VnZ2VzdGlvblZh
bHVlczogWyIyMDEyLTAxLTAxIiwgIjIwMTItMDEtMDIiLCAiMjAxMi0wMS0wMyIsICIyMDEyLTAx
LTA0IiwKLSAgICAgICAgIjIwMTItMDEtMDUiLCAiMjAxMi0wMS0wNiIsICIyMDEyLTAxLTA3Iiwg
IjIwMTItMDEtMDgiLCAiMjAxMi0wMS0wOSIsCi0gICAgICAgICIyMDEyLTAxLTEwIiwgIjIwMTIt
MDEtMTEiLCAiMjAxMi0wMS0xMiIsICIyMDEyLTAxLTEzIiwgIjIwMTItMDEtMTQiLAotICAgICAg
ICAiMjAxMi0wMS0xNSIsICIyMDEyLTAxLTE2IiwgIjIwMTItMDEtMTciLCAiMjAxMi0wMS0xOCIs
ICIyMDEyLTAxLTE5IiwKLSAgICAgICAgIjIwMTItMDEtMjAiLCAiMjAxMi0wMS0yMSIsICIyMDEy
LTAxLTIyIiwgIjIwMTItMDEtMjMiLCAiMjAxMi0wMS0yNCIsCi0gICAgICAgICIyMDEyLTAxLTI1
IiwgIjIwMTItMDEtMjYiLCAiMjAxMi0wMS0yNyIsICIyMDEyLTAxLTI4IiwgIjIwMTItMDEtMjki
LAotICAgICAgICAiMjAxMi0wMS0zMCIsICIyMDEyLTAxLTMxIiwgIjIwMTItMDItMDEiLCAiMjAx
Mi0wMi0wMiIsICIyMDEyLTAyLTAzIiwKLSAgICAgICAgIjIwMTItMDItMDQiLCAiMjAxMi0wMi0w
NSIsICIyMDEyLTAyLTA2IiwgIjIwMTItMDItMDciLCAiMjAxMi0wMi0wOCIsCi0gICAgICAgICIy
MDEyLTAyLTA5IiwgIjIwMTItMDItMTAiLCAiMjAxMi0wMi0xMSIsICIyMDEyLTAyLTEyIiwgIjIw
MTItMDItMTMiLAotICAgICAgICAiMjAxMi0wMi0xNCIsICIyMDEyLTAyLTE1IiwgIjIwMTItMDIt
MTYiLCAiMjAxMi0wMi0xNyIsICIyMDEyLTAyLTE4IiwKLSAgICAgICAgIjIwMTItMDItMTkiLCAi
MjAxMi0wMi0yMCIsICIyMDEyLTAyLTIxIiwgIjIwMTItMDItMjIiLCAiMjAxMi0wMi0yMyIsCi0g
ICAgICAgICIyMDEyLTAyLTI0IiwgIjIwMTItMDItMjUiLCAiMjAxMi0wMi0yNiIsICIyMDEyLTAy
LTI3IiwgIjIwMTItMDItMjgiLAotICAgICAgICAiMjAxMi0wMi0yOSIsICIyMDEyLTAzLTAxIiwg
IjIwMTItMDMtMDIiLCAiMjAxMi0wMy0wMyIsICIyMDEyLTAzLTA0IiwKLSAgICAgICAgIjIwMTIt
MDMtMDUiLCAiMjAxMi0wMy0wNiIsICIyMDEyLTAzLTA3IiwgIjIwMTItMDMtMDgiLCAiMjAxMi0w
My0wOSIsCi0gICAgICAgICIyMDEyLTAzLTEwIiwgIjIwMTItMDMtMTEiLCAiMjAxMi0wMy0xMiIs
ICIyMDEyLTAzLTEzIiwgIjIwMTItMDMtMTQiLAotICAgICAgICAiMjAxMi0wMy0xNSIsICIyMDEy
LTAzLTE2IiwgIjIwMTItMDMtMTciLCAiMjAxMi0wMy0xOCIsICIyMDEyLTAzLTE5IiwKLSAgICAg
ICAgIjIwMTItMDMtMjAiLCAiMjAxMi0wMy0yMSIsICIyMDEyLTAzLTIyIiwgIjIwMTItMDMtMjMi
LCAiMjAxMi0wMy0yNCIsCi0gICAgICAgICIyMDEyLTAzLTI1IiwgIjIwMTItMDMtMjYiLCAiMjAx
Mi0wMy0yNyIsICIyMDEyLTAzLTI4IiwgIjIwMTItMDMtMjkiLAotICAgICAgICAiMjAxMi0wMy0z
MCIsICIyMDEyLTAzLTMxIl0sCi0gICAgbG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlczogWyIxLzEv
MTIiLCAiMS8yLzEyIiwgIjEvMy8xMiIsICIxLzQvMTIiLAotICAgICAgICAiMS81LzEyIiwgIjEv
Ni8xMiIsICIxLzcvMTIiLCAiMS84LzEyIiwgIjEvOS8xMiIsICIxLzEwLzEyIiwgIjEvMTEvMTIi
LAotICAgICAgICAiMS8xMi8xMiIsICIxLzEzLzEyIiwgIjEvMTQvMTIiLCAiMS8xNS8xMiIsICIx
LzE2LzEyIiwgIjEvMTcvMTIiLAotICAgICAgICAiMS8xOC8xMiIsICIxLzE5LzEyIiwgIjEvMjAv
MTIiLCAiMS8yMS8xMiIsICIxLzIyLzEyIiwgIjEvMjMvMTIiLAotICAgICAgICAiMS8yNC8xMiIs
ICIxLzI1LzEyIiwgIjEvMjYvMTIiLCAiMS8yNy8xMiIsICIxLzI4LzEyIiwgIjEvMjkvMTIiLAot
ICAgICAgICAiMS8zMC8xMiIsICIxLzMxLzEyIiwgIjIvMS8xMiIsICIyLzIvMTIiLCAiMi8zLzEy
IiwgIjIvNC8xMiIsICIyLzUvMTIiLAotICAgICAgICAiMi82LzEyIiwgIjIvNy8xMiIsICIyLzgv
MTIiLCAiMi85LzEyIiwgIjIvMTAvMTIiLCAiMi8xMS8xMiIsICIyLzEyLzEyIiwKLSAgICAgICAg
IjIvMTMvMTIiLCAiMi8xNC8xMiIsICIyLzE1LzEyIiwgIjIvMTYvMTIiLCAiMi8xNy8xMiIsICIy
LzE4LzEyIiwKLSAgICAgICAgIjIvMTkvMTIiLCAiMi8yMC8xMiIsICIyLzIxLzEyIiwgIjIvMjIv
MTIiLCAiMi8yMy8xMiIsICIyLzI0LzEyIiwKLSAgICAgICAgIjIvMjUvMTIiLCAiMi8yNi8xMiIs
ICIyLzI3LzEyIiwgIjIvMjgvMTIiLCAiMi8yOS8xMiIsICIzLzEvMTIiLAotICAgICAgICAiMy8y
LzEyIiwgIjMvMy8xMiIsICIzLzQvMTIiLCAiMy81LzEyIiwgIjMvNi8xMiIsICIzLzcvMTIiLCAi
My84LzEyIiwKLSAgICAgICAgIjMvOS8xMiIsICIzLzEwLzEyIiwgIjMvMTEvMTIiLCAiMy8xMi8x
MiIsICIzLzEzLzEyIiwgIjMvMTQvMTIiLCAKLSAgICAgICAgIjMvMTUvMTIiLCAiMy8xNi8xMiIs
ICIzLzE3LzEyIiwgIjMvMTgvMTIiLCAiMy8xOS8xMiIsICIzLzIwLzEyIiwKLSAgICAgICAgIjMv
MjEvMTIiLCAiMy8yMi8xMiIsICIzLzIzLzEyIiwgIjMvMjQvMTIiLCAiMy8yNS8xMiIsICIzLzI2
LzEyIiwKLSAgICAgICAgIjMvMjcvMTIiLCAiMy8yOC8xMiIsICIzLzI5LzEyIiwgIjMvMzAvMTIi
LCAiMy8zMS8xMiJdLAotICAgIHN1Z2dlc3Rpb25MYWJlbHM6IFsiVG9kYXkiLCAiVG9tb3Jyb3ci
LCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLAotICAgICAgICAiIiwgIiIsICIi
LCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIs
ICIiLAotICAgICAgICAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIs
ICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLAotICAgICAgICAiIiwgIiIsICIiLCAiIiwgIiIs
ICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLAotICAg
ICAgICAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwg
IiIsICIiLCAiIiwgIiIsICIiLAotICAgICAgICAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwg
IiJdLAotICAgIHNob3dPdGhlckRhdGVFbnRyeTogdHJ1ZSwKLSAgICBvdGhlckRhdGVMYWJlbDog
J090aGVyLi4uJywKLSAgICBpbnB1dFdpZHRoOiAxMjcsCi0gICAgc3VnZ2VzdGlvbkhpZ2hsaWdo
dENvbG9yOiAiIzAwMDBmZiIsCi0gICAgc3VnZ2VzdGlvbkhpZ2hsaWdodFRleHRDb2xvcjogIiNm
ZmZmZmYiCi19OwotCi1mdW5jdGlvbiBvcGVuQ2FsZW5kYXIoYXJncykgewotICAgIHZhciBmcmFt
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKLSAgICB2YXIg
ZG9jID0gZnJhbWUuY29udGVudERvY3VtZW50OwotICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuaW5u
ZXJIVE1MID0gJzxoZWFkPjwvaGVhZD48Ym9keT48ZGl2IGlkPW1haW4+TG9hZGluZy4uLjwvZGl2
PjwvYm9keT4nOwotICAgIHZhciBjb21tb25Dc3NMaW5rID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2xp
bmsnKTsKLSAgICBjb21tb25Dc3NMaW5rLnJlbCA9ICdzdHlsZXNoZWV0JzsKLSAgICBjb21tb25D
c3NMaW5rLmhyZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMv
cGlja2VyQ29tbW9uLmNzcz8nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKLSAgICBkb2MuaGVh
ZC5hcHBlbmRDaGlsZChjb21tb25Dc3NMaW5rKTsKLSAgICB2YXIgY29tbW9uQ2hyb21pdW1Dc3NM
aW5rID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICBjb21tb25DaHJvbWl1bUNzc0xp
bmsucmVsID0gJ3N0eWxlc2hlZXQnOwotICAgIGNvbW1vbkNocm9taXVtQ3NzTGluay5ocmVmID0g
Jy4uLy4uL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2Nocm9taXVtL3BpY2tl
ckNvbW1vbkNocm9taXVtLmNzcz8nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKLSAgICBkb2Mu
aGVhZC5hcHBlbmRDaGlsZChjb21tb25DaHJvbWl1bUNzc0xpbmspOwotICAgIHZhciBzdWdnZXN0
aW9uUGlja2VyQ3NzTGluayA9IGRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci0gICAgc3VnZ2Vz
dGlvblBpY2tlckNzc0xpbmsucmVsID0gJ3N0eWxlc2hlZXQnOwotICAgIHN1Z2dlc3Rpb25QaWNr
ZXJDc3NMaW5rLmhyZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1
cHMvc3VnZ2VzdGlvblBpY2tlci5jc3M/JyArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAg
ZG9jLmhlYWQuYXBwZW5kQ2hpbGQoc3VnZ2VzdGlvblBpY2tlckNzc0xpbmspOwotICAgIHZhciBs
aW5rID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICBsaW5rLnJlbCA9ICdzdHlsZXNo
ZWV0JzsKLSAgICBsaW5rLmhyZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3Bh
Z2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuY3NzPycgKyAobmV3IERhdGUoKSkuZ2V0VGltZSgpOwot
ICAgIGRvYy5oZWFkLmFwcGVuZENoaWxkKGxpbmspOwotICAgIHZhciBjYWxlbmRhclBpY2tlckNo
cm9taXVtQ3NzTGluayA9IGRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci0gICAgY2FsZW5kYXJQ
aWNrZXJDaHJvbWl1bUNzc0xpbmsucmVsID0gJ3N0eWxlc2hlZXQnOwotICAgIGNhbGVuZGFyUGlj
a2VyQ2hyb21pdW1Dc3NMaW5rLmhyZWYgPSAnLi4vLi4vU291cmNlL1dlYkNvcmUvUmVzb3VyY2Vz
L3BhZ2Vwb3B1cHMvY2hyb21pdW0vY2FsZW5kYXJQaWNrZXJDaHJvbWl1bS5jc3M/JyArIChuZXcg
RGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAgZG9jLmhlYWQuYXBwZW5kQ2hpbGQoY2FsZW5kYXJQaWNr
ZXJDaHJvbWl1bUNzc0xpbmspOwotICAgIHZhciBjb21tb25Kc1NjcmlwdCA9IGRvYy5jcmVhdGVF
bGVtZW50KCdzY3JpcHQnKTsKLSAgICBjb21tb25Kc1NjcmlwdC5zcmMgPSAnLi4vLi4vU291cmNl
L1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvcGlja2VyQ29tbW9uLmpzPycgKyAobmV3IERh
dGUoKSkuZ2V0VGltZSgpOwotICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNvbW1vbkpzU2NyaXB0
KTsKLSAgICB2YXIgc3VnZ2VzdGlvblBpY2tlckpzU2NyaXB0ID0gZG9jLmNyZWF0ZUVsZW1lbnQo
J3NjcmlwdCcpOwotICAgIHN1Z2dlc3Rpb25QaWNrZXJKc1NjcmlwdC5zcmMgPSAnLi4vLi4vU291
cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBpY2tlci5qcz8nICsg
KG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKLSAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChzdWdnZXN0
aW9uUGlja2VySnNTY3JpcHQpOwotICAgIHZhciBzY3JpcHQgPSBkb2MuY3JlYXRlRWxlbWVudCgn
c2NyaXB0Jyk7Ci0gICAgc2NyaXB0LnNyYyA9ICcuLi8uLi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJj
ZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcz8nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUo
KTsKLSAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOwotCi0gICAgdmFyIHBhZ2VQb3B1
cENvbnRyb2xsZXIgPSB7Ci0gICAgICAgIHNldFZhbHVlQW5kQ2xvc2VQb3B1cDogZnVuY3Rpb24o
bnVtVmFsdWUsIHN0cmluZ1ZhbHVlKSB7Ci0gICAgICAgICAgICB3aW5kb3cubG9nKCdudW1iZXI9
JyArIG51bVZhbHVlICsgJywgc3RyaW5nPSInICsgc3RyaW5nVmFsdWUgKyAnIicpOwotICAgICAg
ICAgICAgaWYgKG51bVZhbHVlID09IDApCi0gICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdkYXRlJykudmFsdWUgPSBzdHJpbmdWYWx1ZTsKLSAgICAgICAgfSwK
LSAgICAgICAgbG9jYWxpemVOdW1iZXJTdHJpbmc6IGZ1bmN0aW9uKG51bVN0cmluZykgewotICAg
ICAgICAgICAgaWYgKHR5cGVvZiBudW1TdHJpbmcgPT0gIm51bWJlciIpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG51bVN0cmluZy50b0xvY2FsZVN0cmluZygpOwotICAgICAgICAgICAgcmV0dXJu
IG51bVN0cmluZy50b1N0cmluZygpOwotICAgICAgICB9LAotICAgICAgICBoaXN0b2dyYW1FbnVt
ZXJhdGlvbjogZnVuY3Rpb24oKSB7fSwKLSAgICAgICAgZm9ybWF0TW9udGg6IGZ1bmN0aW9uKHll
YXIsIHplcm9CYXNlTW9udGgpIHsKLSAgICAgICAgICAgIHZhciBtb250aExhYmVscyA9IFsnPEph
bnVhcnk+JywgJzxGZWJydWFyeT4nLCAnPE1hcmNoPicsICc8QXByaWw+JywgJzxNYXk+JywgJzxK
dW5lPicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxKdWx5PicsICc8QXVndXN0
PicsICc8U2VwdGVtYmVyPicsICc8T2N0b2Jlcj4nLCAnPE5vdmVtYmVyPicsICc8RGVjZW1iZXI+
J107Ci0gICAgICAgICAgICByZXR1cm4gbW9udGhMYWJlbHNbemVyb0Jhc2VNb250aF0gKyAiICIg
KyB5ZWFyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
LSAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShh
cmdzKSwgIioiKTsKLSAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wYWdlUG9wdXBDb250cm9s
bGVyID0gcGFnZVBvcHVwQ29udHJvbGxlcjsKLSAgICB9LCAxMDApOwotfQotCi1mdW5jdGlvbiBz
ZWxlY3RlZChzZWxlY3QpIHsKLSAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnaWZyYW1lJylbMF07Ci0gICAgZnJhbWUuc3R5bGUud2lkdGggPSAnMTAwcHgnOwot
ICAgIGZyYW1lLnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0gICAgc3dpdGNoIChzZWxlY3Quc2Vs
ZWN0ZWRJbmRleCkgewotICAgIGNhc2UgMDoKLSAgICAgICAgb3BlbkNhbGVuZGFyKGRhdGFsaXN0
QXJndW1lbnRzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICBvcGVuQ2Fs
ZW5kYXIobG9uZ0RhdGFsaXN0QXJndW1lbnRzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAy
OgotICAgICAgICBvcGVuQ2FsZW5kYXIoYXJhYmljRGF0YWxpc3RBcmd1bWVudHMpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIDM6Ci0gICAgICAgIG9wZW5DYWxlbmRhcihhcmFiaWNMb25nRGF0
YWxpc3RBcmd1bWVudHMpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGxv
ZyhzdHIpIHsKLSAgICB2YXIgZW50cnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwot
ICAgIGVudHJ5LmlubmVyVGV4dCA9IHN0cjsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpLmFwcGVuZENoaWxkKGVudHJ5KTsKLX0KLQotb3BlbkNhbGVuZGFyKGVuZ2xpc2hB
cmd1bWVudHMpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>