<?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>133601</bug_id>
          
          <creation_ts>2014-06-06 21:36:36 -0700</creation_ts>
          <short_desc>Fix more latched scrolling test flakiness and slowness</short_desc>
          <delta_ts>2014-06-09 10:55:03 -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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1013931</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-06 21:36:36 -0700</bug_when>
    <thetext>Fix more latched scrolling test flakiness and slowness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013934</commentid>
    <comment_count>1</comment_count>
      <attachid>232653</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-06 21:40:03 -0700</bug_when>
    <thetext>Created attachment 232653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014139</commentid>
    <comment_count>2</comment_count>
      <attachid>232653</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-09 10:46:06 -0700</bug_when>
    <thetext>Comment on attachment 232653
Patch

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

r=me. Minor typo in the ChangeLog.

&gt; Source/WebKit2/ChangeLog:13
&gt; +        Secondly, the timer-baed scrolling tree commit could result in the scrolling

timer-based

&gt; Tools/ChangeLog:13
&gt; +        Secondly, the timer-baed scrolling tree commit could result in the scrolling

timer-based

&gt; LayoutTests/ChangeLog:13
&gt; +        Secondly, the timer-baed scrolling tree commit could result in the scrolling

timer-based</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014142</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-09 10:55:03 -0700</bug_when>
    <thetext>https://trac.webkit.org/r169692</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232653</attachid>
            <date>2014-06-06 21:40:03 -0700</date>
            <delta_ts>2014-06-09 10:46:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133601-20140606213941.patch</filename>
            <type>text/plain</type>
            <size>59402</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjMwMjU0OTI1MDUwMWJi
NGU3NjI5ZDkxYjUxZmFmY2YyZWRhNDYzNC4uMDM3NGVhYTIxYWUyYzFhZTU5NWFjM2UwZDcwNDRh
YmRlZmMzZmIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA2LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBtb3JlIGxh
dGNoZWQgc2Nyb2xsaW5nIHRlc3QgZmxha2luZXNzIGFuZCBzbG93bmVzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjAxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF0Y2hlZCBzY3JvbGxpbmcgdGVz
dHMgd2VyZSBmbGFrZXkgZm9yIHR3byByZWFzb25zLiBGaXJzdCwgdGhlIEV2ZW50U2VuZGVyCisg
ICAgICAgIHdoZWVsIGV2ZW50cyB3ZXJlIGFzeW5jIGZyb20gdGhlIHdlYiB0byB0aGUgVUkgcHJv
Y2VzcywgYW5kIHRoZSByZXN1bHRpbmcKKyAgICAgICAgc3ludGhldGljIGV2ZW50cyBhbHNvIGFz
eW5jIGZyb20gdGhlIFVJIHRvIHRoZSB3ZWIgcHJvY2Vzcy4gTWFrZSB0aGVtIHN5bmMKKyAgICAg
ICAgZm9yIHRlc3RpbmcuCisgICAgICAgIAorICAgICAgICBTZWNvbmRseSwgdGhlIHRpbWVyLWJh
ZWQgc2Nyb2xsaW5nIHRyZWUgY29tbWl0IGNvdWxkIHJlc3VsdCBpbiB0aGUgc2Nyb2xsaW5nCisg
ICAgICAgIHRyZWUgKHNwZWNpZmljYWxseSB0aGUgZnJhbWUgbm9kZSdzIG5vdGlvbiBvZiB0aGUg
c2Nyb2xsYWJsZSBhcmVhIGFuZCBjb250ZW50CisgICAgICAgIHNpemUpIG5vdCBiZWluZyB1cGRh
dGVkIGJlZm9yZSB0aGUgc2Nyb2xsaW5nIHRocmVhZCBzdGFydHMgZ2V0dGluZyB3aGVlbCBldmVu
dHMuCisgICAgICAgIEZpeCBieSBoYXZpbmcgV2ViUGFnZTo6d2hlZWxFdmVudFN5bmNGb3JUZXN0
aW5nKCkgY29tbWl0IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgCisgICAgICAgIEZpbmFsbHkgcmVt
b3ZlIGFsbCB0aGUgbm93LXVubmVjZXNzYXJ5IHRpbWVvdXRzIGZyb20gdGhlIHRlc3RzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjp3aGVlbEV2ZW50U3luY0ZvclRlc3RpbmcpOgorCiAyMDE0LTA2LTA2ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRl
ciA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY5NjU1Pi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzOWVjYTI4MDkyNGZm
OWIyZWM3MGY5NzQ1YjJiMzc2YzRjOWYzNGE1Li44ZTYwOGFhNzRlNmM3Zjg0OTViZjJiNjBiOTAx
OThhYTcwNGI4ZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0xODc5LDYgKzE4NzksOSBAQCB2b2lkIFdlYlBhZ2U6OndoZWVsRXZlbnRT
eW5jRm9yVGVzdGluZyhjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBib29sJiBoYQog
ewogICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQod2hlZWxFdmVudCk7CiAKKyAgICBpZiAo
U2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9wYWdlLT5zY3Jv
bGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+Y29tbWl0
VHJlZVN0YXRlSWZOZWVkZWQoKTsKKwogICAgIGhhbmRsZWQgPSBoYW5kbGVXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQsIG1fcGFnZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxZjlmYjA0MGE0MWYxYmZhNDM3OWYyZGZkOGQ5ZmJk
YzU0ZGZhODRiLi5kZWRlYTRiNjFkODc1YWRjNjc0ZTk0M2UwNGJmOWU3ZDU4YmQxYjM4IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MjkgQEAKIDIwMTQtMDYtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKKyAgICAgICAgRml4IG1vcmUgbGF0Y2hlZCBzY3JvbGxpbmcgdGVzdCBmbGFraW5lc3MgYW5k
IHNsb3duZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzM2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIExhdGNoZWQgc2Nyb2xsaW5nIHRlc3RzIHdlcmUgZmxha2V5IGZvciB0d28gcmVh
c29ucy4gRmlyc3QsIHRoZSBFdmVudFNlbmRlcgorICAgICAgICB3aGVlbCBldmVudHMgd2VyZSBh
c3luYyBmcm9tIHRoZSB3ZWIgdG8gdGhlIFVJIHByb2Nlc3MsIGFuZCB0aGUgcmVzdWx0aW5nCisg
ICAgICAgIHN5bnRoZXRpYyBldmVudHMgYWxzbyBhc3luYyBmcm9tIHRoZSBVSSB0byB0aGUgd2Vi
IHByb2Nlc3MuIE1ha2UgdGhlbSBzeW5jCisgICAgICAgIGZvciB0ZXN0aW5nLgorICAgICAgICAK
KyAgICAgICAgU2Vjb25kbHksIHRoZSB0aW1lci1iYWVkIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBj
b3VsZCByZXN1bHQgaW4gdGhlIHNjcm9sbGluZworICAgICAgICB0cmVlIChzcGVjaWZpY2FsbHkg
dGhlIGZyYW1lIG5vZGUncyBub3Rpb24gb2YgdGhlIHNjcm9sbGFibGUgYXJlYSBhbmQgY29udGVu
dAorICAgICAgICBzaXplKSBub3QgYmVpbmcgdXBkYXRlZCBiZWZvcmUgdGhlIHNjcm9sbGluZyB0
aHJlYWQgc3RhcnRzIGdldHRpbmcgd2hlZWwgZXZlbnRzLgorICAgICAgICBGaXggYnkgaGF2aW5n
IFdlYlBhZ2U6OndoZWVsRXZlbnRTeW5jRm9yVGVzdGluZygpIGNvbW1pdCBpZiBuZWNlc3Nhcnku
CisgICAgICAgIAorICAgICAgICBGaW5hbGx5IHJlbW92ZSBhbGwgdGhlIG5vdy11bm5lY2Vzc2Fy
eSB0aW1lb3V0cyBmcm9tIHRoZSB0ZXN0cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
bWFjL0V2ZW50U2VuZGVyUHJveHkubW06CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlTW92ZVRvKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3Jv
bGxCeSk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6CisKKzIwMTQtMDYtMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgMzItYml0IGJ1aWxkIGZpeC4KIAogICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW06CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQppbmRleCBkNmI5YjU3
YTQ2ZWM3MjA5ZjFiMjRkMTU0NGZmMjRhZGQ4NWNmOWU3Li4yMzk0YjI3OThiNGQ0MmJlZTBhMGYw
YmI4N2VlMWQ5ODFhM2YwM2ZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9FdmVudFNlbmRlclByb3h5Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2
ZW50U2VuZGVyUHJveHkubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlRlc3RDb250cm9s
bGVyLmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tTdHJp
bmcuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1BhZ2VQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAKIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoRGV0YWlscykKQEAgLTIxOCw3
ICsyMTksOSBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSB4LCBk
b3VibGUgeSkKICAgICBOU1ZpZXcgKnRhcmdldFZpZXcgPSBbbV90ZXN0Q29udHJvbGxlci0+bWFp
bldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgaGl0VGVzdDpbZXZlbnQgbG9jYXRpb25JbldpbmRv
d11dOwogICAgIGlmICh0YXJnZXRWaWV3KSB7CiAgICAgICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2
ZW50OmV2ZW50XTsKKyAgICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3Vz
bHkobV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0cnVlKTsKICAgICAg
ICAgW3RhcmdldFZpZXcgbW91c2VNb3ZlZDpldmVudF07CisgICAgICAgIFdLUGFnZVNldFNob3Vs
ZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCkt
PnBhZ2UoKSwgZmFsc2UpOwogICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBbZXZlbnQgbG9j
YXRpb25JbldpbmRvd107CkBAIC00NTUsMTEgKzQ1OCwxMyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6Om1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KQogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQgZXZlbnRXaXRoQ0dFdmVudDpjZ1Njcm9sbEV2ZW50LmdldCgpXTsKICAgICBpZiAoTlNW
aWV3ICp0YXJnZXRWaWV3ID0gW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRm
b3JtVmlldygpIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXSkgewogICAgICAgICBb
TlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudF07CisgICAgICAgIFdLUGFnZVNldFNob3VsZFNl
bmRFdmVudHNTeW5jaHJvbm91c2x5KG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBh
Z2UoKSwgdHJ1ZSk7CiAgICAgICAgIFt0YXJnZXRWaWV3IHNjcm9sbFdoZWVsOmV2ZW50XTsKKyAg
ICAgICAgV0tQYWdlU2V0U2hvdWxkU2VuZEV2ZW50c1N5bmNocm9ub3VzbHkobV90ZXN0Q29udHJv
bGxlci0+bWFpbldlYlZpZXcoKS0+cGFnZSgpLCBmYWxzZSk7CiAgICAgICAgIFtOU0FwcCBfc2V0
Q3VycmVudEV2ZW50Om5pbF07CiAgICAgfSBlbHNlIHsKICAgICAgICAgTlNQb2ludCBsb2NhdGlv
biA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJtb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMgZmFpbGVkIHRvIGZpbmQgdGhlIHRh
cmdldCB2aWV3IGF0ICVmLCVmXG4iLCBsb2NhdGlvbi54LCBsb2NhdGlvbi55KTsKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJtb3VzZVNjcm9sbEJ5IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQgdmll
dyBhdCAlZiwlZlxuIiwgbG9jYXRpb24ueCwgbG9jYXRpb24ueSk7CiAgICAgfQogfQogCkBAIC00
OTIsNyArNDk3LDkgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAgICAvLyBPdXIgZXZlbnQg
c2hvdWxkIGhhdmUgdGhlIGNvcnJlY3Qgc2V0dGluZ3M6CiAgICAgaWYgKE5TVmlldyAqdGFyZ2V0
VmlldyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSBo
aXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV0pIHsKICAgICAgICAgW05TQXBwIF9zZXRD
dXJyZW50RXZlbnQ6ZXZlbnRdOworICAgICAgICBXS1BhZ2VTZXRTaG91bGRTZW5kRXZlbnRzU3lu
Y2hyb25vdXNseShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wYWdlKCksIHRydWUp
OwogICAgICAgICBbdGFyZ2V0VmlldyBzY3JvbGxXaGVlbDpldmVudF07CisgICAgICAgIFdLUGFn
ZVNldFNob3VsZFNlbmRFdmVudHNTeW5jaHJvbm91c2x5KG1fdGVzdENvbnRyb2xsZXItPm1haW5X
ZWJWaWV3KCktPnBhZ2UoKSwgZmFsc2UpOwogICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVu
dDpuaWxdOwogICAgIH0gZWxzZSB7CiAgICAgICAgIE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBb
ZXZlbnQgbG9jYXRpb25JbldpbmRvd107CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGJkNjE2NGNkZWE3MjlhYmE3MzQ3Njgy
M2JlNDc0Y2Y0MzhkYmI5Ny4uMzI1NDgyZjYyZDI5MjFjMmIyNjYyZjFmMjMyYzcyNjZhYzQyYWE3
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTA2LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBtb3JlIGxhdGNoZWQgc2Nyb2xsaW5n
IHRlc3QgZmxha2luZXNzIGFuZCBzbG93bmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTGF0Y2hlZCBzY3JvbGxpbmcgdGVzdHMgd2VyZSBmbGFrZXkg
Zm9yIHR3byByZWFzb25zLiBGaXJzdCwgdGhlIEV2ZW50U2VuZGVyCisgICAgICAgIHdoZWVsIGV2
ZW50cyB3ZXJlIGFzeW5jIGZyb20gdGhlIHdlYiB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHRoZSBy
ZXN1bHRpbmcKKyAgICAgICAgc3ludGhldGljIGV2ZW50cyBhbHNvIGFzeW5jIGZyb20gdGhlIFVJ
IHRvIHRoZSB3ZWIgcHJvY2Vzcy4gTWFrZSB0aGVtIHN5bmMKKyAgICAgICAgZm9yIHRlc3Rpbmcu
CisgICAgICAgIAorICAgICAgICBTZWNvbmRseSwgdGhlIHRpbWVyLWJhZWQgc2Nyb2xsaW5nIHRy
ZWUgY29tbWl0IGNvdWxkIHJlc3VsdCBpbiB0aGUgc2Nyb2xsaW5nCisgICAgICAgIHRyZWUgKHNw
ZWNpZmljYWxseSB0aGUgZnJhbWUgbm9kZSdzIG5vdGlvbiBvZiB0aGUgc2Nyb2xsYWJsZSBhcmVh
IGFuZCBjb250ZW50CisgICAgICAgIHNpemUpIG5vdCBiZWluZyB1cGRhdGVkIGJlZm9yZSB0aGUg
c2Nyb2xsaW5nIHRocmVhZCBzdGFydHMgZ2V0dGluZyB3aGVlbCBldmVudHMuCisgICAgICAgIEZp
eCBieSBoYXZpbmcgV2ViUGFnZTo6d2hlZWxFdmVudFN5bmNGb3JUZXN0aW5nKCkgY29tbWl0IGlm
IG5lY2Vzc2FyeS4KKyAgICAgICAgCisgICAgICAgIEZpbmFsbHkgcmVtb3ZlIGFsbCB0aGUgbm93
LXVubmVjZXNzYXJ5IHRpbWVvdXRzIGZyb20gdGhlIHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1s
YXRjaGVkLWRpdi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3Jv
bGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWlu
ZnJhbWUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5odG1sOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0
Y2hlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxh
dGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9m
YXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLW1haW5mcmFtZS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVy
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
ZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3Qt
bGF0Y2hlZC1zZWxlY3QuaHRtbDoKKwogMjAxNC0wNi0wNiAgRGF2aWQgSHlhdHQgIDxoeWF0dEBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogSGl0IHRlc3Rpbmcgb2YgY29tcG9zaXRl
ZCBlbGVtZW50cyBpcyBicm9rZW4gaW4gbmV3IG11bHRpY29sdW1uIGxheW91dC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9s
bC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1k
aXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAppbmRleCA2NWEyOTdlMWU4NjJkMzlmZDg5OGRi
MGVjMTUzNWI0MmMxYjI2ZDg5Li43MGI4MmM4M2YwZGQ5Y2MxNGQyZDk4MTIwZjUwYThkZDBiMmU5
Mzk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CkBAIC01Nyw3ICs1
Nyw3IEBAIE1vdXNlIG1vdmVkIHRvICgyOCwgNDc1KQogUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZv
cmU6IDU4NgogUGFnZSBhZnRlcjogIDAsIGRpdiBhZnRlcjogNjY2CiBQQVNTIFBhZ2UgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KLURvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3Ig
NCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciA4
IG9mIHRoZSB3aGVlbCBldmVudHMuCiAoR3JhcGhpY3NMYXllcgogICAoYW5jaG9yIDAuMDAgMC4w
MCkKICAgKGJvdW5kcyAyMDA4LjAwIDIzNDEuMDApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2
LXdpdGgtaGFuZGxlci5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXIuaHRtbAppbmRl
eCBlYjI4MGYzOTc3YmJhZjI1MTE4OTIzMDQ5M2E0OWZjOTI1ODRmMTkyLi44NjRjYjc1M2MyNWFi
MWQ2NTBiMmY3ZWU1YzM0NmFhNzc3NTNiZjIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXdp
dGgtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWwKQEAg
LTQ2LDggKzQ2LDggQEAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKIHZhciBkaXZTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKIHZhciBjb250aW51ZUNvdW50ID0gNTsKIAotZnVuY3Rpb24gY2hl
Y2tGb3JTY3JvbGwoKSB7Ci0KK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKK3sKICAgICAvLyBU
aGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCiAgICAgdmFyIHBhZ2VTY3Jv
bGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgdmFyIGRpdlNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOwpAQCAtNzAsNyArNzAsOCBA
QCBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKIH0KIAotZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKQor
ewogICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
OwogCiAgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwpA
QCAtODQsMjYgKzg1LDI1IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CiAgICAgdmFyIHN0YXJ0
UG9zWSA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldFRvcCkgKyBNYXRoLnJvdW5kKGRpdlRh
cmdldC5jbGllbnRIZWlnaHQpIC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCiAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwogICAgIGRl
YnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAi
KSIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25v
bmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVk
JywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVl
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKLSAgICBzZXRUaW1lb3V0
KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVk
JywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRp
bnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsK
KyAgICBjaGVja0ZvclNjcm9sbCgpOwogfQogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgewot
CitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKK3sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLQotICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDAp
OworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50
Jyk7CiAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
ZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwKaW5k
ZXggZWI2YzNjOGY5NzliMDMzNWYxYjc3NjkwMmRmN2Q5NGRkODk5MmI4Yi4uN2M2ZDdiMjM4YzY0
N2EyM2Y4YTdkOTYzMTRhYTQ0MmIzODg0OWM5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbApAQCAtNDAsOCArNDAsOCBAQCB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQmVmb3JlOwogdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwogdmFyIGNv
bnRpbnVlQ291bnQgPSA1OwogCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKLQorZnVuY3Rp
b24gY2hlY2tGb3JTY3JvbGwoKQorewogICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNj
cm9sbGVkIGF0IGFsbC4KICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVu
dC5ib2R5LnNjcm9sbFRvcDsKICAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRh
cmdldC5zY3JvbGxUb3A7CkBAIC02Miw3ICs2Miw4IEBAIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xs
KCkgewogICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCi1mdW5jdGlvbiBzY3JvbGxU
ZXN0KCkgeworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCit7CiAgICAgcGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAKICAgICBkaXZUYXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CkBAIC03NiwyNiArNzcsMjYgQEAgZnVuY3Rp
b24gc2Nyb2xsVGVzdCgpIHsKICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChkaXZUYXJn
ZXQub2Zmc2V0VG9wKSArIE1hdGgucm91bmQoZGl2VGFyZ2V0LmNsaWVudEhlaWdodCkgLSA0Mjsg
Ly8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7CiAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsg
c3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9u
ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25l
JywgJ2VuZCcsIHRydWUpOwotICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnYmVnaW4nKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOworICAgIGNoZWNrRm9yU2Nyb2xsKCk7CiB9
CiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7Ci0KK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwo
KQorewogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi0gICAg
ICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQoc2Ny
b2xsVGVzdCwgMCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1t
YWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUt
d2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAppbmRleCBkZmFkNWMxYmYzZjZhNTNhYzlmNDM1M2Fk
ZTBhNGYyZmNjNWYxNzU0Li41YTZkNjZjNTFjM2Y3MTI3OTYxZDQ3MWY4MzBmOWVkMWM5ZDhiYTM4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
ZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qt
c2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CkBA
IC01Niw3ICs1Niw3IEBAIE1vdXNlIG1vdmVkIHRvICgyOCwgMTI1KQogUGFnZSBiZWZvcmU6IDAs
IGRpdiBiZWZvcmU6IDAKIFBhZ2UgYWZ0ZXI6ICA3MCwgZGl2IGFmdGVyOiAwCiBQQVNTIFNjcm9s
bGFibGUgZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCi1Eb2N1bWVudCB3YXMgaW5p
dGlhbCB0YXJnZXQgZm9yIDQgb2YgdGhlIHdoZWVsIGV2ZW50cy4KK0RvY3VtZW50IHdhcyBpbml0
aWFsIHRhcmdldCBmb3IgOCBvZiB0aGUgd2hlZWwgZXZlbnRzLgogKEdyYXBoaWNzTGF5ZXIKICAg
KGFuY2hvciAwLjAwIDAuMDApCiAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1tYWlu
ZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwKaW5kZXggODdhMDY1Y2YwMzY1MDc0MWVhMzU3NjY5YmVk
NTE5NTBkZTY4MzhkNC4uODQyYTQ2MmU0MTU3YmUyNWRhZDBiNjgyOTI2ZDVkN2FjZTc2MTEzMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2
LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCkBAIC0zNCw2ICszNCw3IEBAIGZ1
bmN0aW9uIG9uU2Nyb2xsV2hlZWwoZXZ0KSB7CiAKIGZ1bmN0aW9uIG9uTG9hZCgpIHsKICAgICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgb25TY3JvbGxXaGVlbCk7Cisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIG9uUGFnZVNjcm9sbCk7CiAgICAg
c2V0dXBUb3BMZXZlbCgpOwogfQogPC9zY3JpcHQ+CkBAIC00Niw4ICs0NywxNCBAQCB2YXIgcGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwogdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwogdmFy
IGNvbnRpbnVlQ291bnQgPSA1OwogCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKK2Z1bmN0
aW9uIG9uUGFnZVNjcm9sbCgpCit7CisgICAgaWYgKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID49
IDcwKQorICAgICAgICBjaGVja0ZvclNjcm9sbCgpOworfQogCitmdW5jdGlvbiBjaGVja0ZvclNj
cm9sbCgpCit7CiAgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxs
LgogICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xs
VG9wOwogICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRv
cDsKQEAgLTcwLDcgKzc3LDggQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CiAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CitmdW5j
dGlvbiBzY3JvbGxUZXN0KCkKK3sKICAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1
bWVudC5ib2R5LnNjcm9sbFRvcDsKIAogICAgIGRpdlRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0YXJnZXQnKTsKQEAgLTgyLDI2ICs5MCwyOCBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0
KCkgewogICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRUb3Ap
IC0gNDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kp
OwogICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFy
dFBvc1kgKyAiKSIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFu
Z2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKLSAgICBz
ZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScs
ICdlbmQnKTsKKworICAgIC8vIFdlIHNob3VsZCBmaW5pc2ggdmlhIHRoZSBzY3JvbGwgZXZlbnQ7
IHRoaXMgd2lsbCBmaXJlIGluIHRoZSBjYXNlIG9mIGZhaWx1cmUgd2hlbiB0aGUgcGFnZSBkb2Vz
bid0IHNjcm9sbC4KKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCA1MDApOwogfQogCi1m
dW5jdGlvbiBzZXR1cFRvcExldmVsKCkgewotCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKK3sK
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAotICAgICAgICBz
ZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRl
c3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CiAgICAgICAgIHZhciBtZXNzYWdlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKaW5kZXggMWU2Y2I0NzhhODQ0NzBj
Y2QxMzM3Zjc1NzVlZTNhNGVhZjZiMTcyYS4uZDRjNjAxOWFkMTFmYTFhZTQyNTJmZjE5ZmIxNjA4
NGFjMDY2MzU4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1tYWluZnJhbWUuaHRtbApAQCAtMjksNiArMjksNyBAQAogPHNjcmlwdD4KIGZ1bmN0
aW9uIG9uTG9hZCgpIHsKICAgICBzZXR1cFRvcExldmVsKCk7CisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoInNjcm9sbCIsIG9uUGFnZVNjcm9sbCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4K
QEAgLTQwLDggKzQxLDE0IEBAIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7CiB2YXIgZGl2
U2Nyb2xsUG9zaXRpb25CZWZvcmU7CiB2YXIgY29udGludWVDb3VudCA9IDU7CiAKLWZ1bmN0aW9u
IGNoZWNrRm9yU2Nyb2xsKCkgeworZnVuY3Rpb24gb25QYWdlU2Nyb2xsKCkKK3sKKyAgICBpZiAo
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPj0gNzApCisgICAgICAgIGNoZWNrRm9yU2Nyb2xsKCk7
Cit9CiAKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKK3sKICAgICAvLyBUaGUgZGl2IHNob3Vs
ZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCiAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFm
dGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOwpAQCAtNjIsNyArNjksOCBAQCBmdW5jdGlvbiBj
aGVja0ZvclNjcm9sbCgpIHsKICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAotZnVu
Y3Rpb24gc2Nyb2xsVGVzdCgpIHsKK2Z1bmN0aW9uIHNjcm9sbFRlc3QoKQorewogICAgIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogCiAgICAgZGl2
VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwpAQCAtNzQsMjYgKzgy
LDI4IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CiAgICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgu
cm91bmQoZGl2VGFyZ2V0Lm9mZnNldFRvcCkgLSA0MjsKICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7CiAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgi
ICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAn
bm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1
ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcsIHRydWUpOwotICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnYmVnaW4nKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOworCisgICAgLy8gV2Ugc2hvdWxkIGZp
bmlzaCB2aWEgdGhlIHNjcm9sbCBldmVudDsgdGhpcyB3aWxsIGZpcmUgaW4gdGhlIGNhc2Ugb2Yg
ZmFpbHVyZSB3aGVuIHRoZSBwYWdlIGRvZXNuJ3Qgc2Nyb2xsLgorICAgIHNldFRpbWVvdXQoY2hl
Y2tGb3JTY3JvbGwsIDUwMCk7CiB9CiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7Ci0KK2Z1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQorewogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogCi0gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7Cisg
ICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
dmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsK
ICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0
LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxh
dGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5odG1sCmluZGV4IDY1MGIzZTk1M2ZlZGUyYmQ4Y2M3
Y2YyMzMyZTgxNGU5MTMzZWI0ZWQuLmI0NmI4ODc0ZjgxOGZhMWYyODBjMjZiN2M0YzE2MTMyODgz
MzNlNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJh
d2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRsZXIuaHRtbApAQCAtMjIsOCArMjIs
OCBAQCB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwogdmFyIGlGcmFtZVNjcm9sbFBvc2l0
aW9uQmVmb3JlOwogdmFyIGNvbnRpbnVlQ291bnQgPSA1OwogCi1mdW5jdGlvbiBjaGVja0ZvclNj
cm9sbCgpIHsKLQorZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorewogICAgIC8vIFRoZSBJRnJh
bWUgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KICAgICB2YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKICAgICB2YXIgaUZyYW1lU2Ny
b2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHku
c2Nyb2xsVG9wOwpAQCAtNDYsOCArNDYsOCBAQCBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsK
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAotZnVuY3Rpb24gc2Nyb2xsVGVzdCgp
IHsKLSAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKK2Z1bmN0aW9uIHNjcm9sbFRl
c3QoKQorewogICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Ny
b2xsVG9wOwogCiAgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rh
cmdldCcpOwpAQCAtNjMsMjYgKzYzLDI2IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CiAgICAg
dmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgKyBpZnJhbWVUYXJnZXQuY2xp
ZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCiAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2Ug
YXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCiAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgi
ICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAn
bm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1
ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcsIHRydWUpOwotICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnYmVnaW4nKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOworICAgIGNoZWNrRm9yU2Nyb2xsKCk7
CiB9CiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7Ci0KK2Z1bmN0aW9uIHNldHVwVG9wTGV2
ZWwoKQorewogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi0g
ICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQo
c2Nyb2xsVGVzdCwgMCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlv
biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKICAgICAgICAgdmFyIG1lc3Nh
Z2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0
Y2hlZC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJh
d2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbAppbmRleCA0MzBhZWI4
YzcyZjE3ZDA4NDJiYWY4YjA4YTY1YmQ2OTU0NmMwZjdlLi4yMWJhNTM3ZDc2YzdjNDhiMmY4MDQ3
NjAzOGQ2M2YxNDc4MDE4NjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5odG1sCkBAIC0xMiw5ICsxMiw4IEBAIHZhciBwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmU7CiB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7CiB2
YXIgY29udGludWVDb3VudCA9IDU7CiAKLWZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgewotCi0g
ICAgLy8gVGhlIElGcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorZnVuY3Rp
b24gY2hlY2tGb3JTY3JvbGwoKQorewogICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogICAgIHZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkFm
dGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAK
QEAgLTM0LDggKzMzLDggQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CiAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7Ci0gICAgLy8g
U2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CitmdW5jdGlvbiBzY3JvbGxUZXN0KCkKK3sKICAg
ICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKIAog
ICAgIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKQEAg
LTQ1LDMyICs0NCwzMSBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkgewogCiAgICAgaUZyYW1lU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBpRnJhbWVCb2R5LnNjcm9sbFRvcDsKIAotICAgIC8vIFNjcm9s
bCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KICAgICB2YXIgc3RhcnRQ
b3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKICAgICBkZWJ1ZygiSUZyYW1lIGRp
c3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQpOwotICAgIHZhciBz
dGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhl
aWdodCAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBq
dXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQu
b2Zmc2V0VG9wICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsKICAgICBkZWJ1ZygiTW91c2Ug
bW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdiZWdhbicsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywg
dHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVl
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Ci0gICAgc2V0VGltZW91dChjaGVja0ZvclNj
cm9sbCwgMTAwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdu
b25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CisgICAgY2hlY2tG
b3JTY3JvbGwoKTsKIH0KIAotZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKLQorZnVuY3Rpb24g
c2V0dXBUb3BMZXZlbCgpCit7CiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAKLSAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICAgICAg
c2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKICAgICB9IGVsc2UgewogICAgICAgICB2YXIgbWVz
c2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwogICAgICAg
ICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFt
ZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CmluZGV4IDQ4MThk
OWUyNDIxODBjZDkxYTRiYjRjYmJjZjIwOWE1YTBjN2JkYzUuLmQwMTA5MGQ1YjIwOTkwNzg1OGI2
OGNiZmRkNTdjNWRlMTMzZjZkZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUt
d2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdp
dGgtaGFuZGxlci1leHBlY3RlZC50eHQKQEAgLTEyLDcgKzEyLDcgQEAgTW91c2UgbW92ZWQgdG8g
KDI4LCA2NikKIFBhZ2UgYmVmb3JlOiAwLCBJRnJhbWUgYmVmb3JlOiAwCiBQYWdlIGFmdGVyOiAg
NzAsIElGcmFtZSBhZnRlcjogMAogUEFTUyBJRnJhbWUgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4KLURvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZl
bnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciA4IG9mIHRoZSB3aGVlbCBldmVu
dHMuCiAoR3JhcGhpY3NMYXllcgogICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgKGJvdW5kcyA3ODUu
MDAgMjMyNi4wMCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5k
bGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCmluZGV4
IGU2NjRlZTk5MThjMzA2NGEzMzgyZDExMzYyNjQyZTVjYWYwZWVlMTkuLjZmNzJjYzZkM2FiN2I3
YmQyNzc2YzRjMjNkMzRjMWVkNTQxZTA1YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWlu
ZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRo
LWhhbmRsZXIuaHRtbApAQCAtMTEsNiArMTEsNyBAQCBmdW5jdGlvbiBvblNjcm9sbFdoZWVsKGV2
dCkgewogCiBmdW5jdGlvbiBvbkxvYWQoKSB7CiAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigibW91c2V3aGVlbCIsIG9uU2Nyb2xsV2hlZWwpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJzY3JvbGwiLCBvblBhZ2VTY3JvbGwpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkBAIC0y
Miw4ICsyMywxNCBAQCB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwogdmFyIGlGcmFtZVNj
cm9sbFBvc2l0aW9uQmVmb3JlOwogdmFyIGNvbnRpbnVlQ291bnQgPSA1OwogCi1mdW5jdGlvbiBj
aGVja0ZvclNjcm9sbCgpIHsKK2Z1bmN0aW9uIG9uUGFnZVNjcm9sbCgpCit7CisgICAgaWYgKGRv
Y3VtZW50LmJvZHkuc2Nyb2xsVG9wID49IDcwKQorICAgICAgICBjaGVja0ZvclNjcm9sbCgpOwor
fQogCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCit7CiAgICAgLy8gVGhlIElGcmFtZSBzaG91
bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgogICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25B
ZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogICAgIHZhciBpRnJhbWVTY3JvbGxQb3Np
dGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keS5zY3JvbGxU
b3A7CkBAIC00NiwzOCArNTMsMzkgQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CiAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7Ci0g
ICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6CitmdW5jdGlvbiBzY3JvbGxUZXN0KCkK
K3sKICAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRv
cDsKICAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHdpbmRvdy5mcmFtZXNbJ3Rhcmdl
dCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogCiAgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogCi0gICAgLy8gU2Nyb2xsIHRoZSAjc291cmNl
IHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgogICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVU
YXJnZXQub2Zmc2V0TGVmdCArIDIwOwotICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQu
b2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3
YXkgZnJvbSB0aGUgSUZyYW1lCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NY
LCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1l
CisgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgLSA0MjsKKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7CiAgICAgZGVidWco
Ik1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScs
IHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAn
bm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwotICAgIHNldFRpbWVvdXQoY2hl
Y2tGb3JTY3JvbGwsIDEwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAn
bm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
Jyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOworCisg
ICAgLy8gV2Ugc2hvdWxkIGZpbmlzaCB2aWEgdGhlIHNjcm9sbCBldmVudDsgdGhpcyB3aWxsIGZp
cmUgaW4gdGhlIGNhc2Ugb2YgZmFpbHVyZSB3aGVuIHRoZSBwYWdlIGRvZXNuJ3Qgc2Nyb2xsLgor
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDUwMCk7CiB9CiAKLWZ1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKSB7Ci0KK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQorewogICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi0gICAgICAgIHNldFRpbWVvdXQoc2Ny
b2xsVGVzdCwgMTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwYXJlbnQnKTsKICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1p
ZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAppbmRleCBlMzhlOGFjYTNiZjFlNDYwZTQ3YTk0
NjZhYzU5NTQ2ZDM5OWM3NDgxLi41NmY1Mzc1ZmNiZDU1YzFiZTgwOWQ3NThlODRiNDc3MTY3NzIy
ZDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1s
YXRjaGVkLW1haW5mcmFtZS5odG1sCkBAIC00LDcgKzQsNyBAQAogPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1XaGVl
bEV2ZW50Ij4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHk+Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CiA8
c2NyaXB0PgogCiB2YXIgaWZyYW1lVGFyZ2V0OwpAQCAtMTIsOCArMTIsMTkgQEAgdmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKIHZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKIHZh
ciBjb250aW51ZUNvdW50ID0gNTsKIAotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CitmdW5j
dGlvbiBvbkxvYWQoKQoreworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBv
blBhZ2VTY3JvbGwpOworfQorCitmdW5jdGlvbiBvblBhZ2VTY3JvbGwoKQoreworICAgIGlmIChk
b2N1bWVudC5ib2R5LnNjcm9sbFRvcCA+PSA3MCkKKyAgICAgICAgY2hlY2tGb3JTY3JvbGwoKTsK
K30KIAorZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorewogICAgIC8vIFRoZSBJRnJhbWUgc2hv
dWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKICAgICB2YXIgaUZyYW1lU2Nyb2xsUG9z
aXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHkuc2Nyb2xs
VG9wOwpAQCAtMzQsMzcgKzQ1LDM5IEBAIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgewogICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCi1mdW5jdGlvbiBzY3JvbGxUZXN0KCkgewor
ZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCit7CiAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0g
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUg
PSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKIAogICAg
IGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKLQotICAg
IC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICAK
ICAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKICAgICB2
YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBt
b3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQogICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsKICAgICBkZWJ1ZygiTW91
c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1
ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25l
JywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0
cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Ci0gICAgc2V0VGltZW91dChjaGVja0Zv
clNjcm9sbCwgMTAwKTsKLX0KKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdu
b25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CiAKLWZ1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisgICAgLy8gV2Ugc2hvdWxkIGZpbmlzaCB2aWEgdGhl
IHNjcm9sbCBldmVudDsgdGhpcyB3aWxsIGZpcmUgaW4gdGhlIGNhc2Ugb2YgZmFpbHVyZSB3aGVu
IHRoZSBwYWdlIGRvZXNuJ3Qgc2Nyb2xsLgorICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGws
IDUwMCk7Cit9CiAKK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQorewogICAgIGlmICh3aW5kb3cu
ZXZlbnRTZW5kZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi0gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xs
VGVzdCwgMTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwYXJlbnQnKTsKICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKQEAgLTc3LDcgKzkwLDcgQEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsK
IH0KIAogPC9zY3JpcHQ+Ci08ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+
Cis8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsiPgogICAgIDxkaXYgaWQ9
InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHgiPgogICAgICAgICBQdXQgbW91c2UgaGVyZSBh
bmQgZmxpY2sgZG93bndhcmRzCiAgICAgPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
bWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZy
YW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQKaW5kZXggODQxNWJlYzYyNjdmYjMxNTdkMDFi
NjkzN2U4Mjc1ODZlNGJkOGNiOS4uZWVkZjBiNmU5NDdjNGJiMDRmMzYwZmU0YzAyYTYzNjlhYjUz
ODA4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3
aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVj
dGVkLnR4dApAQCAtMTQsNyArMTQsNyBAQCBNb3VzZSBtb3ZlZCB0byAoMzAsIDEyNykKIFBhZ2Ug
YmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiAwCiBQYWdlIGFmdGVyOiAgNzAsIHNlbGVjdCBhZnRl
cjogMAogUEFTUyBTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KLURvY3VtZW50
IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQg
d2FzIGluaXRpYWwgdGFyZ2V0IGZvciA4IG9mIHRoZSB3aGVlbCBldmVudHMuCiAoR3JhcGhpY3NM
YXllcgogICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgKGJvdW5kcyAyMDA4LjAwIDIzMjYuMDApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFz
dC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAppbmRleCA2MzZlNjIxMTg1ZDVj
ZGI5YThmNDMwNzU3MGFmYjJmNzAwMTI4MTEyLi40NWMxN2Q0Zjk1MTViYjYzOTUxNDcwMjAwMjQz
YWY3ZWEyODhhZjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFu
ZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwK
QEAgLTM0LDYgKzM0LDcgQEAgZnVuY3Rpb24gb25TY3JvbGxXaGVlbChldnQpIHsKIAogZnVuY3Rp
b24gb25Mb2FkKCkgewogICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwi
LCBvblNjcm9sbFdoZWVsKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwg
b25QYWdlU2Nyb2xsKTsKICAgICBzZXR1cFRvcExldmVsKCk7CiB9CiA8L3NjcmlwdD4KQEAgLTQ2
LDggKzQ3LDE0IEBAIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7CiB2YXIgc2VsZWN0U2Ny
b2xsUG9zaXRpb25CZWZvcmU7CiB2YXIgY29udGludWVDb3VudCA9IDU7CiAKLWZ1bmN0aW9uIGNo
ZWNrRm9yU2Nyb2xsKCkgeworZnVuY3Rpb24gb25QYWdlU2Nyb2xsKCkKK3sKKyAgICBpZiAoZG9j
dW1lbnQuYm9keS5zY3JvbGxUb3AgPj0gNzApCisgICAgICAgIGNoZWNrRm9yU2Nyb2xsKCk7Cit9
CiAKK2Z1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKK3sKICAgICAvLyBUaGUgc2VsZWN0IHNob3Vs
ZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCiAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFm
dGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0
aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOwpAQCAtNzAsMzggKzc3LDQwIEBAIGZ1
bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgewogICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
fQogCi1mdW5jdGlvbiBzY3JvbGxUZXN0KCkgeworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCit7CiAg
ICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAK
ICAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CiAK
ICAgICBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7
CiAKLSAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQu
CiAgICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQp
ICsgMjA7CiAgICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNl
dFRvcCkgLSA0MjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0
UG9zWSk7CiAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiAr
IHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0
cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwot
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9u
ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcpOworCisgICAgLy8gV2Ugc2hvdWxkIGZpbmlzaCB2aWEgdGhlIHNjcm9sbCBl
dmVudDsgdGhpcyB3aWxsIGZpcmUgaW4gdGhlIGNhc2Ugb2YgZmFpbHVyZSB3aGVuIHRoZSBwYWdl
IGRvZXNuJ3Qgc2Nyb2xsLgorICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDUwMCk7CiB9
CiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7Ci0KK2Z1bmN0aW9uIHNldHVwVG9wTGV2ZWwo
KQorewogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi0gICAg
ICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQoc2Ny
b2xsVGVzdCwgMCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1tYWluZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJh
d2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAppbmRleCA2Mjc2
ZDRhZDczN2I3MjljZjQzZTIwMTYzZjA1NzA2Yzg5MmJkYzQyLi41NTI2YTMxNGI4NjA1ZTIwYTcw
YTIwODUyY2M2N2U4NTc2MGI3YTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zh
c3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5odG1sCkBAIC0yOCw2ICsyOCw3IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBvbkxvYWQoKSB7CisgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInNjcm9sbCIsIG9uUGFnZVNjcm9sbCk7CiAgICAgc2V0dXBUb3BMZXZlbCgpOwogfQog
PC9zY3JpcHQ+CkBAIC00MCw4ICs0MSwxNCBAQCB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
OwogdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwogdmFyIGNvbnRpbnVlQ291bnQgPSA1
OwogCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKK2Z1bmN0aW9uIG9uUGFnZVNjcm9sbCgp
Cit7CisgICAgaWYgKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID49IDcwKQorICAgICAgICBjaGVj
a0ZvclNjcm9sbCgpOworfQogCitmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCit7CiAgICAgLy8g
VGhlIHNlbGVjdCBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgogICAgIHZhciBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogICAgIHZhciBz
ZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKQEAgLTYy
LDcgKzY5LDggQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CiAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiB9CiAKLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CitmdW5jdGlvbiBzY3Jv
bGxUZXN0KCkKK3sKICAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5
LnNjcm9sbFRvcDsKIAogICAgIHNlbGVjdFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0YXJnZXQnKTsKQEAgLTc0LDI2ICs4MiwyOCBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkgewog
ICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5vZmZzZXRUb3ApIC0g
NDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwog
ICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBv
c1kgKyAiKSIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2Vk
JywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
LCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKLSAgICBzZXRU
aW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J2VuZGVkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdl
bmQnKTsKKworICAgIC8vIFdlIHNob3VsZCBmaW5pc2ggdmlhIHRoZSBzY3JvbGwgZXZlbnQ7IHRo
aXMgd2lsbCBmaXJlIGluIHRoZSBjYXNlIG9mIGZhaWx1cmUgd2hlbiB0aGUgcGFnZSBkb2Vzbid0
IHNjcm9sbC4KKyAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCA1MDApOwogfQogCi1mdW5j
dGlvbiBzZXR1cFRvcExldmVsKCkgewotCitmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKK3sKICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAotICAgICAgICBzZXRU
aW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOworICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3Qs
IDApOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CiAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0
LXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFu
ZGxlci1leHBlY3RlZC50eHQKaW5kZXggN2RkOWRjM2ZlZjIzZTQ4YjMxZGJmM2JiN2IwNDE5MDE3
NTVjMWVjNy4uZTVjNmZjYTdlOGM3Y2E4YTc5MjlhNzg1NDdhY2ZlMTAxNTAyNzQzMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Ny
b2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dApAQCAtMTUsNyAr
MTUsNyBAQCBNb3VzZSBtb3ZlZCB0byAoMzAsIDIzOCkKIFBhZ2UgYmVmb3JlOiAwLCBzZWxlY3Qg
YmVmb3JlOiA3MAogUGFnZSBhZnRlcjogIDAsIHNlbGVjdCBhZnRlcjogMTQwCiBQQVNTIFBhZ2Ug
ZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KLURvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdl
dCBmb3IgNCBvZiB0aGUgd2hlZWwgZXZlbnRzLgorRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0
IGZvciA4IG9mIHRoZSB3aGVlbCBldmVudHMuCiAoR3JhcGhpY3NMYXllcgogICAoYW5jaG9yIDAu
MDAgMC4wMCkKICAgKGJvdW5kcyAyMDA4LjAwIDIzNDEuMDApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxh
dGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRo
LWhhbmRsZXIuaHRtbAppbmRleCBkYzY3MmEyMTdkMzYzZWM5ZjliOTlkYmQ4NzRlOTM5MTlhMzRi
Y2VkLi5kYzE5ODkwYzMyMzJlMjBhMDMxNmEzNWEyNTZjZjQ3MzFkMGNiZGI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwt
c2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLmh0bWwKQEAgLTQ2LDggKzQ2LDggQEAgdmFyIHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKIHZhciBj
b250aW51ZUNvdW50ID0gNTsKIAotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7Ci0KK2Z1bmN0
aW9uIGNoZWNrRm9yU2Nyb2xsKCkKK3sKICAgICAvLyBUaGUgcGFnZSBzaG91bGQgbm90IGhhdmUg
c2Nyb2xsZWQgYXQgYWxsLgogICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3Vt
ZW50LmJvZHkuc2Nyb2xsVG9wOwogICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0g
c2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKQEAgLTcwLDcgKzcwLDggQEAgZnVuY3Rpb24gY2hlY2tG
b3JTY3JvbGwoKSB7CiAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKLWZ1bmN0aW9u
IHNjcm9sbFRlc3QoKSB7CitmdW5jdGlvbiBzY3JvbGxUZXN0KCkKK3sKICAgICBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKIAogICAgIHNlbGVjdFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKQEAgLTgzLDI2ICs4NCwy
NiBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkgewogICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJv
dW5kKHNlbGVjdFRhcmdldC5vZmZzZXRUb3ApICsgTWF0aC5yb3VuZChzZWxlY3RUYXJnZXQuY2xp
ZW50SGVpZ2h0KSAtIDQyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwg
c3RhcnRQb3NZKTsKICAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAi
LCAiICsgc3RhcnRQb3NZICsgIikiKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywg
dHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdp
bicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1
ZSk7Ci0gICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbics
ICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdu
b25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ25vbmUnLCAnZW5kJyk7CisgICAgY2hlY2tGb3JTY3JvbGwoKTsKIH0KIAotZnVuY3Rpb24g
c2V0dXBUb3BMZXZlbCgpIHsKLQorZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCit7CiAgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKLSAgICAgICAgc2V0VGltZW91
dChzY3JvbGxUZXN0LCAxMDAwKTsKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsK
ICAgICB9IGVsc2UgewogICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwogICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL2Zhc3Qtc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1sCmluZGV4IDBhODhlNmQ2MDk4YzEwMzQ5NmUzNDA0
ZmUxNmM4MTU0YmJlYjE0NmYuLmI5NDRkMWNjNTEzZWI5OWQxZThhNDY0NmY3ODc5OTZjYTg4Y2Ex
NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNo
ZWQtc2VsZWN0Lmh0bWwKQEAgLTQwLDggKzQwLDggQEAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZTsKIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKIHZhciBjb250aW51ZUNvdW50
ID0gNTsKIAotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7Ci0KK2Z1bmN0aW9uIGNoZWNrRm9y
U2Nyb2xsKCkKK3sKICAgICAvLyBUaGUgcGFnZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQg
YWxsLgogICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Ny
b2xsVG9wOwogICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0
LnNjcm9sbFRvcDsKQEAgLTYyLDcgKzYyLDggQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7
CiAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKLWZ1bmN0aW9uIHNjcm9sbFRlc3Qo
KSB7CitmdW5jdGlvbiBzY3JvbGxUZXN0KCkKK3sKICAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKIAogICAgIHNlbGVjdFRhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKQEAgLTc2LDI2ICs3NywyNiBAQCBmdW5jdGlv
biBzY3JvbGxUZXN0KCkgewogICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKHNlbGVjdFRh
cmdldC5vZmZzZXRUb3ApICsgTWF0aC5yb3VuZChzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0KSAt
IDQyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsK
ICAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQ
b3NZICsgIikiKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
JywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Ci0gICAgc2V0
VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdlbmRlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAn
ZW5kJyk7CisgICAgY2hlY2tGb3JTY3JvbGwoKTsKIH0KIAotZnVuY3Rpb24gc2V0dXBUb3BMZXZl
bCgpIHsKLQorZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCit7CiAgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKLSAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0
LCAxMDAwKTsKKyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3BhcmVudCcpOwogICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwo=
</data>
<flag name="review"
          id="257146"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="257198"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>