<?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>144591</bug_id>
          
          <creation_ts>2015-05-04 12:48:13 -0700</creation_ts>
          <short_desc>Add overflow and iframe scroll-snap tests</short_desc>
          <delta_ts>2015-05-05 13:13:27 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=142358</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>144482</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091489</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-04 12:48:13 -0700</bug_when>
    <thetext>The existing handfull of scroll-snap tests are focused on main frame (fast scrolling) scroll-snap points. We need to make sure that the overflow scroll-snap feature does not regress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091797</commentid>
    <comment_count>1</comment_count>
      <attachid>252387</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-05 09:49:39 -0700</bug_when>
    <thetext>Created attachment 252387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091798</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-05 09:52:28 -0700</bug_when>
    <thetext>This patch also includes iframe scroll tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091805</commentid>
    <comment_count>3</comment_count>
      <attachid>252387</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-05-05 10:23:14 -0700</bug_when>
    <thetext>Comment on attachment 252387
Patch

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

&gt; LayoutTests/ChangeLog:16
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources/horizontal-mainframe.html: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources/vertical-mainframe.html: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up-expected.txt: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up.html: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe-expected.txt: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt: Added.
&gt; +        * platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html: Added.

It would be nice to have some WK1-main frame scroll and overflow-scrolling tests too.

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:26
&gt; +        function locationInWindowCoordinates(element) {

Normal JS convention is brace on new line (like C++).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091846</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-05 13:12:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; It would be nice to have some WK1-main frame scroll and overflow-scrolling
&gt; tests too.

Will do!

&gt; &gt; LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:26
&gt; &gt; +        function locationInWindowCoordinates(element) {
&gt; 
&gt; Normal JS convention is brace on new line (like C++).

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091847</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-05 13:13:27 -0700</bug_when>
    <thetext>Committed r183823: &lt;http://trac.webkit.org/changeset/183823&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252387</attachid>
            <date>2015-05-05 09:49:39 -0700</date>
            <delta_ts>2015-05-05 10:23:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144591-20150505094824.patch</filename>
            <type>text/plain</type>
            <size>30912</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4MzgxNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA1LTA1ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBvdmVyZmxvdyBzY3JvbGwtc25hcCB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0
NTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Jlc291
cmNlczogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvaG9yaXpvbnRhbC1tYWluZnJhbWUuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvdmVydGljYWwtbWFpbmZyYW1lLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtZGVzdGluYXRpb24tbG9jay11cC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtZGVzdGluYXRpb24tbG9jay11cC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXNuYXAtaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW92
ZXJmbG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
b3ZlcmZsb3cuaHRtbDogQWRkZWQuCisKIDIwMTUtMDUtMDUgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZywgdW5za2lw
IHBhc3NpbmcgY29tcG9zaXRpbmcgdGVzdHMgc2luY2UgVVNFX05BVElWRV9YRElTUExBWT0xCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRlc3RpbmF0aW9uLWxvY2stdXAtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtZGVzdGluYXRpb24tbG9jay11cC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRlc3RpbmF0
aW9uLWxvY2stdXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjAgQEAK
K1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCB0aW1lIG91dC4KK1Rlc3RzIGluZmluaXRl
IGxvb3AgY2FsY3VsYXRpbmcgc2Nyb2xsIHNuYXAgcG9pbnQgb2Zmc2V0cy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbG9ja1VwU25hcENvb3JkaW5hdGUuc3R5bGVbJy13
ZWJraXQtc2Nyb2xsLXNuYXAtdHlwZSddIGlzICIiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGxvY2tVcFNuYXBDb29yZGluYXRlKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LXNjcm9s
bC1zbmFwLXR5cGUnKSBpcyAibWFuZGF0b3J5IgorUEFTUyBsb2NrVXBTbmFwQ29vcmRpbmF0ZS5z
dHlsZVsnLXdlYmtpdC1zY3JvbGwtc25hcC1wb2ludHMteCddIGlzICIiCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGxvY2tVcFNuYXBDb29yZGluYXRlKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LXNjcm9sbC1zbmFwLXBvaW50cy14JykgaXMgInJlcGVhdCgxMDAlKSIKK1BBU1MgbG9j
a1VwU25hcENvb3JkaW5hdGUuc3R5bGVbJy13ZWJraXQtc2Nyb2xsLXNuYXAtcG9pbnRzLXknXSBp
cyAiIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShsb2NrVXBTbmFwQ29vcmRpbmF0ZSku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1zY3JvbGwtc25hcC1wb2ludHMteScpIGlzICJyZXBl
YXQoMTAwJSkiCitQQVNTIGxvY2tVcFNuYXBDb29yZGluYXRlLnN0eWxlWyctd2Via2l0LXNjcm9s
bC1zbmFwLWRlc3RpbmF0aW9uJ10gaXMgIiIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
bG9ja1VwU25hcENvb3JkaW5hdGUpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtc2Nyb2xsLXNu
YXAtZGVzdGluYXRpb24nKSBpcyAiMTAwJSAxMDAlIgorUEFTUyBsb2NrVXBTbmFwQ29vcmRpbmF0
ZS5zdHlsZVsnLXdlYmtpdC1zY3JvbGwtc25hcC1jb29yZGluYXRlJ10gaXMgIiIKK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUobG9ja1VwU25hcENvb3JkaW5hdGUpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtc2Nyb2xsLXNuYXAtY29vcmRpbmF0ZScpIGlzICJub25lIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtZGVzdGluYXRpb24tbG9jay11cC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtZGVzdGluYXRpb24tbG9jay11cC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC1kZXN0aW5hdGlvbi1sb2NrLXVwLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmhvcml6b250YWxHYWxsZXJ5IHsKKyAgICAg
ICAgICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4Owor
ICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgICAgICAgICAgICAgICBvdmVy
Zmxvdy14OiBhdXRvOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmhvcml6b250YWxHYWxs
ZXJ5RHJhd2VyIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMzAwMHB4OworICAgICAgICAgICAg
ICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJveCB7
CisgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiA0
MDBweDsKKyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLmxvY2tVcFNuYXBDb29yZGluYXRlIHsKKyAgICAgICAgICAgICAgICAtd2Via2l0
LXNjcm9sbC1zbmFwLXR5cGU6IG1hbmRhdG9yeTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LXNj
cm9sbC1zbmFwLXBvaW50cy14OiByZXBlYXQoMTAwJSk7CisgICAgICAgICAgICAgICAgLXdlYmtp
dC1zY3JvbGwtc25hcC1wb2ludHMteTogcmVwZWF0KDEwMCUpOworICAgICAgICAgICAgICAgIC13
ZWJraXQtc2Nyb2xsLXNuYXAtZGVzdGluYXRpb246IDEwMCUgMTAwJTsKKyAgICAgICAgICAgICAg
ICAtd2Via2l0LXNjcm9sbC1zbmFwLWNvb3JkaW5hdGU6IGluaXRpYWw7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICNpdGVtMCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorICAgICAg
ICAgICAgI2l0ZW0xIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAgICNp
dGVtMiB7IGJhY2tncm91bmQtY29sb3I6IGJsdWU7IH0KKyAgICAgICAgICAgICNpdGVtMyB7IGJh
Y2tncm91bmQtY29sb3I6IGFxdWE7IH0KKyAgICAgICAgICAgICNpdGVtNCB7IGJhY2tncm91bmQt
Y29sb3I6IHllbGxvdzsgfQorICAgICAgICAgICAgI2l0ZW01IHsgYmFja2dyb3VuZC1jb2xvcjog
ZnVjaHNpYTsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICAg
ICAgICA8ZGl2IGlkPSJsb2NrVXBTbmFwQ29vcmRpbmF0ZSIgY2xhc3M9Imhvcml6b250YWxHYWxs
ZXJ5IGxvY2tVcFNuYXBDb29yZGluYXRlIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJo
b3Jpem9udGFsR2FsbGVyeURyYXdlciI+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Iml0
ZW0wIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGlk
PSJpdGVtMSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPGRp
diBpZD0iaXRlbTIiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAg
IDxkaXYgaWQ9Iml0ZW0zIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJpdGVtNCIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgICAg
ICAgICAgICAgPGRpdiBpZD0iaXRlbTUiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAg
ICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCB0aW1lIG91dC4KKyAgICAgICAgPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyBpbmZpbml0ZSBsb29wIGNhbGN1bGF0aW5nIHNjcm9sbCBzbmFwIHBvaW50IG9m
ZnNldHMuIik7CisKKyAgICAgICAgdmFyIGxvY2tVcFNuYXBDb29yZGluYXRlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xvY2tVcFNuYXBDb29yZGluYXRlJyk7CisgICAgICAgIHNob3VsZEJl
RW1wdHlTdHJpbmcoImxvY2tVcFNuYXBDb29yZGluYXRlLnN0eWxlWyctd2Via2l0LXNjcm9sbC1z
bmFwLXR5cGUnXSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGxvY2tVcFNuYXBDb29yZGluYXRlKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LXNjcm9sbC1zbmFwLXR5cGUnKSIsICJtYW5kYXRvcnkiKTsKKyAgICAgICAgc2hvdWxkQmVF
bXB0eVN0cmluZygibG9ja1VwU25hcENvb3JkaW5hdGUuc3R5bGVbJy13ZWJraXQtc2Nyb2xsLXNu
YXAtcG9pbnRzLXgnXSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGxvY2tVcFNuYXBDb29yZGluYXRlKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LXNjcm9sbC1zbmFwLXBvaW50cy14JykiLCAicmVwZWF0KDEwMCUpIik7CisgICAgICAg
IHNob3VsZEJlRW1wdHlTdHJpbmcoImxvY2tVcFNuYXBDb29yZGluYXRlLnN0eWxlWyctd2Via2l0
LXNjcm9sbC1zbmFwLXBvaW50cy15J10iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShsb2NrVXBTbmFwQ29vcmRpbmF0ZSkuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1zY3JvbGwtc25hcC1wb2ludHMteScpIiwgInJlcGVhdCgxMDAlKSIp
OworICAgICAgICBzaG91bGRCZUVtcHR5U3RyaW5nKCJsb2NrVXBTbmFwQ29vcmRpbmF0ZS5zdHls
ZVsnLXdlYmtpdC1zY3JvbGwtc25hcC1kZXN0aW5hdGlvbiddIik7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUobG9ja1VwU25hcENvb3JkaW5h
dGUpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtc2Nyb2xsLXNuYXAtZGVzdGluYXRpb24nKSIs
ICIxMDAlIDEwMCUiKTsKKyAgICAgICAgc2hvdWxkQmVFbXB0eVN0cmluZygibG9ja1VwU25hcENv
b3JkaW5hdGUuc3R5bGVbJy13ZWJraXQtc2Nyb2xsLXNuYXAtY29vcmRpbmF0ZSddIik7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUobG9ja1Vw
U25hcENvb3JkaW5hdGUpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtc2Nyb2xsLXNuYXAtY29v
cmRpbmF0ZScpIiwgIm5vbmUiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtaWZyYW1l
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWlmcmFtZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWlmcmFtZS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB0
aGUgc2Nyb2xsLXNuYXAgZmVhdHVyZSB3b3JrcyBwcm9wZXJseSBpbiBpZnJhbWVzLgorIAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUZXN0aW5nIHNj
cm9sbC1zbmFwIGdsaWRlIGZvciBob3Jpem9udGFsVGFyZ2V0OgorUEFTUyBkaXYgc2Nyb2xsZWQg
dG8gbmV4dCB3aW5kb3cuCitUZXN0aW5nIHNjcm9sbC1zbmFwIHNuYXAgZm9yIGhvcml6b250YWxU
YXJnZXQ6CitQQVNTIGRpdiBob25vcmVkIHNuYXAgcG9pbnRzLgorVGVzdGluZyBzY3JvbGwtc25h
cCBnbGlkZSBmb3IgdmVydGljYWxUYXJnZXQ6CitQQVNTIGRpdiBzY3JvbGxlZCB0byBuZXh0IHdp
bmRvdy4KK1Rlc3Rpbmcgc2Nyb2xsLXNuYXAgc25hcCBmb3IgdmVydGljYWxUYXJnZXQ6CitQQVNT
IGRpdiBob25vcmVkIHNuYXAgcG9pbnRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1pZnJhbWUuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5ob3Jpem9udGFsR2FsbGVyeSB7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7Cisg
ICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICAgICAgICAgICAgICAgIG92ZXJm
bG93LXg6IGF1dG87CisgICAgICAgICAgICAgICAgbWFyZ2luOiAycHg7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAudmVydGljYWxHYWxsZXJ5IHsKKyAgICAgICAgICAgICAgICB3aWR0aDog
MzAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgICAgICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVu
OworICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CisgICAgICAgICAgICAgICAgbWFy
Z2luOiAycHg7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB2YXIgaWZyYW1lU2Nyb2xsUG9zaXRpb25CZWZv
cmVHbGlkZTsKKyAgICAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcDsKKworICAg
ICAgICBmdW5jdGlvbiBsb2NhdGlvbkluV2luZG93Q29vcmRpbmF0ZXMoZWxlbWVudCkgeworICAg
ICAgICAgICAgdmFyIHBvc2l0aW9uID0ge307CisgICAgICAgICAgICBwb3NpdGlvbi54ID0gZWxl
bWVudC5vZmZzZXRMZWZ0OworICAgICAgICAgICAgcG9zaXRpb24ueSA9IGVsZW1lbnQub2Zmc2V0
VG9wOworCisgICAgICAgICAgICB3aGlsZSAoZWxlbWVudC5vZmZzZXRQYXJlbnQpIHsKKyAgICAg
ICAgICAgICAgICBwb3NpdGlvbi54ID0gcG9zaXRpb24ueCArIGVsZW1lbnQub2Zmc2V0UGFyZW50
Lm9mZnNldExlZnQ7CisgICAgICAgICAgICAgICAgcG9zaXRpb24ueSA9IHBvc2l0aW9uLnkgKyBl
bGVtZW50Lm9mZnNldFBhcmVudC5vZmZzZXRUb3A7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1l
bnQgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSkKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5v
ZmZzZXRQYXJlbnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBwb3NpdGlv
bjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OyAgICAgICAgICAgIAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3Jv
bGxTbmFwKHRhcmdldExhYmVsKSB7CisgICAgICAgICAgICB2YXIgaWZyYW1lVGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0TGFiZWwpOworCisgICAgICAgICAgICB2YXIgYWN0
dWFsUG9zaXRpb24gPSBpZnJhbWVUYXJnZXQuc2Nyb2xsVG9wOworICAgICAgICAgICAgaWYgKHRh
cmdldExhYmVsID09ICdob3Jpem9udGFsVGFyZ2V0JykKKyAgICAgICAgICAgICAgICBhY3R1YWxQ
b3NpdGlvbiA9IGlmcmFtZVRhcmdldC5zY3JvbGxMZWZ0OworCisgICAgICAgICAgICAvLyBUaGUg
ZGl2IHNob3VsZCBoYXZlIHNuYXBwZWQgYmFjayB0byB0aGUgcHJldmlvdXMgcG9zaXRpb24KKyAg
ICAgICAgICAgIGlmIChhY3R1YWxQb3NpdGlvbiAhPSBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZVNu
YXApCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiZGl2IGRpZCBub3Qgc25hcCBiYWNrIHRv
IHByb3BlciBsb2NhdGlvbiBmb3IgIiArIHRhcmdldExhYmVsICsiLiBFeHBlY3RlZCAiICsgZGl2
U2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwICsgIiwgYnV0IGdvdCAiICsgYWN0dWFsUG9zaXRpb24p
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImRpdiBob25v
cmVkIHNuYXAgcG9pbnRzLiIpOworCisgICAgICAgICAgICBpZiAodGFyZ2V0TGFiZWwgPT0gJ2hv
cml6b250YWxUYXJnZXQnKQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsR2xpZGVU
ZXN0KCd2ZXJ0aWNhbFRhcmdldCcpLCAwKTsKKyAgICAgICAgICAgIGVsc2UgICAKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzY3Jv
bGxTbmFwVGVzdCh0YXJnZXRMYWJlbCkgeworICAgICAgICAgICAgZGVidWcoIlRlc3Rpbmcgc2Ny
b2xsLXNuYXAgc25hcCBmb3IgIiArIHRhcmdldExhYmVsICsgIjoiKTsKKyAgICAgICAgICAgIHZh
ciBpZnJhbWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXRMYWJlbCk7Cisg
CisgICAgICAgICAgICB2YXIgZHggPSAwOworICAgICAgICAgICAgdmFyIGR5ID0gMDsKKyAgICAg
ICAgICAgIGlmICh0YXJnZXRMYWJlbCA9PSAnaG9yaXpvbnRhbFRhcmdldCcpIHsKKyAgICAgICAg
ICAgICAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBpZnJhbWVUYXJnZXQuc2Nyb2xs
TGVmdDsKKyAgICAgICAgICAgICAgICBkeCA9IC0xOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBpZnJhbWVUYXJnZXQu
c2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGR5ID0gLTE7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwor
ICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgKyAyMDsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZ
KTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4
LCBkeSwgJ2JlZ2FuJywgJ25vbmUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcs
ICdub25lJywgZmFsc2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNl
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhmdW5jdGlvbigpIHsgcmV0dXJu
IGNoZWNrRm9yU2Nyb2xsU25hcCh0YXJnZXRMYWJlbCk7IH0pOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGxHbGlkZSh0YXJnZXRMYWJlbCkgeworICAgICAgICAg
ICAgdmFyIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhcmdldExhYmVs
KTsKKyAgICAgICAgICAgIHZhciBpZnJhbWVCb2R5ID0gd2luZG93LmZyYW1lc1t0YXJnZXRMYWJl
bF0uZG9jdW1lbnQuYm9keTsKKworICAgICAgICAgICAgdmFyIGFjdHVhbFBvc2l0aW9uID0gaWZy
YW1lQm9keS5zY3JvbGxUb3A7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRQb3NpdGlvbiA9IGlm
cmFtZVRhcmdldC5jbGllbnRIZWlnaHQ7CisgICAgICAgICAgICBpZiAodGFyZ2V0TGFiZWwgPT0g
J2hvcml6b250YWxUYXJnZXQnKSB7CisgICAgICAgICAgICAgICAgYWN0dWFsUG9zaXRpb24gPSBp
ZnJhbWVCb2R5LnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRQb3NpdGlvbiA9
IGlmcmFtZVRhcmdldC5jbGllbnRXaWR0aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
Ly8gVGhlIGRpdiBzaG91bGQgaGF2ZSBzY3JvbGxlZCAoZ2xpZGVkKSB0byB0aGUgbmV4dCBzbmFw
IHBvaW50LgorICAgICAgICAgICAgaWYgKGFjdHVhbFBvc2l0aW9uID09IGV4cGVjdGVkUG9zaXRp
b24pCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IHNjcm9sbGVkIHRvIG5leHQgd2lu
ZG93LiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImRp
diBkaWQgbm90IGhvbm9yIHNuYXAgcG9pbnRzLiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRQb3NpdGlv
biArICIsIGJ1dCBnb3QgIiArIGFjdHVhbFBvc2l0aW9uKTsKKworICAgICAgICAgICAgc2V0VGlt
ZW91dChzY3JvbGxTbmFwVGVzdCh0YXJnZXRMYWJlbCksIDApOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gc2Nyb2xsR2xpZGVUZXN0KHRhcmdldExhYmVsKSB7CisgICAgICAgICAgICBk
ZWJ1ZygiVGVzdGluZyBzY3JvbGwtc25hcCBnbGlkZSBmb3IgIiArIHRhcmdldExhYmVsICsgIjoi
KTsKKyAgICAgICAgICAgIHZhciBpZnJhbWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCh0YXJnZXRMYWJlbCk7CisgICAgICAgICAgICB2YXIgaWZyYW1lQm9keSA9IHdpbmRvdy5mcmFt
ZXNbdGFyZ2V0TGFiZWxdLmRvY3VtZW50LmJvZHk7CisgCisgICAgICAgICAgICB2YXIgZHggPSAw
OworICAgICAgICAgICAgdmFyIGR5ID0gMDsKKyAgICAgICAgICAgIGlmICh0YXJnZXRMYWJlbCA9
PSAnaG9yaXpvbnRhbFRhcmdldCcpIHsKKyAgICAgICAgICAgICAgICBpZnJhbWVTY3JvbGxQb3Np
dGlvbkJlZm9yZUdsaWRlID0gaWZyYW1lQm9keS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAg
IGR4ID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmcmFtZVNj
cm9sbFBvc2l0aW9uQmVmb3JlR2xpZGUgPSBpZnJhbWVCb2R5LnNjcm9sbFRvcDsKKyAgICAgICAg
ICAgICAgICBkeSA9IC0xOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgd2luZG93
UG9zaXRpb24gPSBsb2NhdGlvbkluV2luZG93Q29vcmRpbmF0ZXMoaWZyYW1lVGFyZ2V0KTsKKwor
ICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IHdpbmRvd1Bvc2l0aW9uLnggKyBpZnJhbWVUYXJn
ZXQuY2xpZW50V2lkdGggLSAxMDsKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSB3aW5kb3dQ
b3NpdGlvbi55ICsgNTA7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFy
dFBvc1gsIHN0YXJ0UG9zWSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnYmVnYW4nLCAnbm9uZScsIGZhbHNl
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcyhkeCwgZHksICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgs
IGR5LCAnY2hhbmdlZCcsICdub25lJywgZmFsc2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2NoYW5nZWQn
LCAnbm9uZScsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIGZhbHNlKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2JlZ2luJywgZmFsc2UpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwg
J25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdjb250
aW51ZScsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2Up
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKGR4LCBkeSwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ25vbmUnLCAnZW5kJywgZmFsc2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFm
dGVyU2Nyb2xsaW5nQ29tcGxldGVzKGZ1bmN0aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3JvbGxH
bGlkZSh0YXJnZXRMYWJlbCk7IH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25M
b2FkKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAg
ICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50
cygpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsR2xpZGVUZXN0KCdob3Jpem9u
dGFsVGFyZ2V0JyksIDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgICAgICAg
IDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDMwMHB4OyI+CisgICAgICAg
ICAgICA8ZGl2PlRlc3RzIHRoYXQgdGhlIHNjcm9sbC1zbmFwIGZlYXR1cmUgd29ya3MgcHJvcGVy
bHkgaW4gaWZyYW1lcy48L2Rpdj4KKyAgICAgICAgICAgIDxpZnJhbWUgaWQ9Imhvcml6b250YWxU
YXJnZXQiIGNsYXNzPSJob3Jpem9udGFsR2FsbGVyeSIgc3JjPSJyZXNvdXJjZXMvaG9yaXpvbnRh
bC1tYWluZnJhbWUuaHRtbCIgc3R5bGU9ImhlaWdodDogMzAwcHg7IHdpZHRoOiAzMDBweCI+PC9p
ZnJhbWU+CisgICAgICAgICAgICA8aWZyYW1lIGlkPSJ2ZXJ0aWNhbFRhcmdldCIgY2xhc3M9InZl
cnRpY2FsR2FsbGVyeSIgc3JjPSJyZXNvdXJjZXMvdmVydGljYWwtbWFpbmZyYW1lLmh0bWwiICBz
dHlsZT0iaGVpZ2h0OiAzMDBweDsgd2lkdGg6IDMwMHB4Ij48L2lmcmFtZT4KKyAgICAgICAgICAg
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1vdmVyZmxvdy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktb3ZlcmZsb3ctZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktb3Zl
cmZsb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3Rz
IHRoYXQgdGhlIHNjcm9sbC1zbmFwIGZlYXR1cmUgd29ya3MgcHJvcGVybHkgaW4gb3ZlcmZsb3cg
cmVnaW9ucy4KKyBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1Rlc3Rpbmcgc2Nyb2xsLXNuYXAgZ2xpZGUgZm9yIGhvcml6b250YWxUYXJnZXQ6CitQQVNT
IGRpdiBzY3JvbGxlZCB0byBuZXh0IHdpbmRvdy4KK1Rlc3Rpbmcgc2Nyb2xsLXNuYXAgc25hcCBm
b3IgaG9yaXpvbnRhbFRhcmdldDoKK1BBU1MgZGl2IGhvbm9yZWQgc25hcCBwb2ludHMuCitUZXN0
aW5nIHNjcm9sbC1zbmFwIGdsaWRlIGZvciB2ZXJ0aWNhbFRhcmdldDoKK1BBU1MgZGl2IHNjcm9s
bGVkIHRvIG5leHQgd2luZG93LgorVGVzdGluZyBzY3JvbGwtc25hcCBzbmFwIGZvciB2ZXJ0aWNh
bFRhcmdldDoKK1BBU1MgZGl2IGhvbm9yZWQgc25hcCBwb2ludHMuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktb3ZlcmZsb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLW1hbmRhdG9yeS1vdmVyZmxvdy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1tYW5kYXRvcnktb3ZlcmZsb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHN0eWxlPgorICAgICAgICAgICAgLmhvcml6b250YWxHYWxsZXJ5IHsKKyAgICAgICAgICAgICAg
ICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAg
ICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgICAgICAgICAgICAgICAgb3ZlcmZsb3cteDog
YXV0bzsKKyAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CisgICAgICAgICAgICAg
ICAgLXdlYmtpdC1zY3JvbGwtc25hcC1wb2ludHMteDogcmVwZWF0KDEwMCUpOworICAgICAgICAg
ICAgICAgIC13ZWJraXQtc2Nyb2xsLXNuYXAtdHlwZTogbWFuZGF0b3J5OworICAgICAgICAgICAg
fQorICAgICAgICAgICAgLmhvcml6b250YWxHYWxsZXJ5RHJhd2VyIHsKKyAgICAgICAgICAgICAg
ICB3aWR0aDogMTgwMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAudmVydGljYWxHYWxsZXJ5IHsKKyAgICAgICAgICAgICAgICB3
aWR0aDogMzAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3cteDog
aGlkZGVuOworICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CisgICAgICAgICAgICAg
ICAgbWFyZ2luLXRvcDogMnB4OworICAgICAgICAgICAgICAgIC13ZWJraXQtc2Nyb2xsLXNuYXAt
cG9pbnRzLXk6IHJlcGVhdCgxMDAlKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LXNjcm9sbC1z
bmFwLXR5cGU6IG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNh
bEdhbGxlcnlEcmF3ZXIgeworICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDE4MDBweDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xv
ckJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgICAgICB3
aWR0aDogMzAwcHg7CisgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAjaXRlbUgwLCAjaXRlbVYwIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9
CisgICAgICAgICAgICAjaXRlbUgxLCAjaXRlbVYxIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
IH0KKyAgICAgICAgICAgICNpdGVtSDIsICNpdGVtVjIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OyB9CisgICAgICAgICAgICAjaXRlbUgzLCAjaXRlbVYzIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1
YTsgfQorICAgICAgICAgICAgI2l0ZW1INCwgI2l0ZW1WNCB7IGJhY2tncm91bmQtY29sb3I6IHll
bGxvdzsgfQorICAgICAgICAgICAgI2l0ZW1INSwgI2l0ZW1WNSB7IGJhY2tncm91bmQtY29sb3I6
IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZUdsaWRlOworICAgICAg
ICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwOworCisgICAgICAgIGZ1bmN0aW9uIGxv
Y2F0aW9uSW5XaW5kb3dDb29yZGluYXRlcyhlbGVtZW50KSB7CisgICAgICAgICAgICB2YXIgcG9z
aXRpb24gPSB7fTsKKyAgICAgICAgICAgIHBvc2l0aW9uLnggPSBlbGVtZW50Lm9mZnNldExlZnQ7
CisgICAgICAgICAgICBwb3NpdGlvbi55ID0gZWxlbWVudC5vZmZzZXRUb3A7CisKKyAgICAgICAg
ICAgIHdoaWxlIChlbGVtZW50Lm9mZnNldFBhcmVudCkgeworICAgICAgICAgICAgICAgIHBvc2l0
aW9uLnggPSBwb3NpdGlvbi54ICsgZWxlbWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdDsKKyAg
ICAgICAgICAgICAgICBwb3NpdGlvbi55ID0gcG9zaXRpb24ueSArIGVsZW1lbnQub2Zmc2V0UGFy
ZW50Lm9mZnNldFRvcDsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdKQorICAgICAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7ICAgICAgICAgICAgCisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbFNuYXAodGFyZ2V0TGFi
ZWwpIHsKKyAgICAgICAgICAgIHZhciBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCh0YXJnZXRMYWJlbCk7CisKKyAgICAgICAgICAgIHZhciBhY3R1YWxQb3NpdGlvbiA9IGRpdlRh
cmdldC5zY3JvbGxUb3A7CisgICAgICAgICAgICBpZiAodGFyZ2V0TGFiZWwgPT0gJ2hvcml6b250
YWxUYXJnZXQnKQorICAgICAgICAgICAgICAgIGFjdHVhbFBvc2l0aW9uID0gZGl2VGFyZ2V0LnNj
cm9sbExlZnQ7CisKKyAgICAgICAgICAgIC8vIFRoZSBkaXYgc2hvdWxkIGhhdmUgc25hcHBlZCBi
YWNrIHRvIHRoZSBwcmV2aW91cyBwb3NpdGlvbgorICAgICAgICAgICAgaWYgKGFjdHVhbFBvc2l0
aW9uICE9IGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJkaXYgZGlkIG5vdCBzbmFwIGJhY2sgdG8gcHJvcGVyIGxvY2F0aW9uIGZvciAiICsg
dGFyZ2V0TGFiZWwgKyIuIEV4cGVjdGVkICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAg
KyAiLCBidXQgZ290ICIgKyBhY3R1YWxQb3NpdGlvbik7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IGhvbm9yZWQgc25hcCBwb2ludHMuIik7CisKKyAg
ICAgICAgICAgIGlmICh0YXJnZXRMYWJlbCA9PSAnaG9yaXpvbnRhbFRhcmdldCcpCisgICAgICAg
ICAgICAgICAgc2V0VGltZW91dChzY3JvbGxHbGlkZVRlc3QoJ3ZlcnRpY2FsVGFyZ2V0JyksIDAp
OworICAgICAgICAgICAgZWxzZSAgIAorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbFNuYXBUZXN0KHRhcmdldExhYmVsKSB7
CisgICAgICAgICAgICBkZWJ1ZygiVGVzdGluZyBzY3JvbGwtc25hcCBzbmFwIGZvciAiICsgdGFy
Z2V0TGFiZWwgKyAiOiIpOworICAgICAgICAgICAgdmFyIGRpdlRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKHRhcmdldExhYmVsKTsKKyAKKyAgICAgICAgICAgIHZhciBkeCA9IDA7Cisg
ICAgICAgICAgICB2YXIgZHkgPSAwOworICAgICAgICAgICAgaWYgKHRhcmdldExhYmVsID09ICdo
b3Jpem9udGFsVGFyZ2V0JykgeworICAgICAgICAgICAgICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVm
b3JlU25hcCA9IGRpdlRhcmdldC5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIGR4ID0gLTE7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRpdlNjcm9sbFBvc2l0aW9u
QmVmb3JlU25hcCA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgZHkgPSAt
MTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdl
dC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gZGl2VGFyZ2V0
Lm9mZnNldFRvcCArIDIwOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUg
aUZyYW1lCisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnYmVnYW4nLCAnbm9uZScsIGZhbHNlKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhk
eCwgZHksICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdl
ZCcsICdub25lJywgZmFsc2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgZmFsc2Up
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGZ1
bmN0aW9uKCkgeyByZXR1cm4gY2hlY2tGb3JTY3JvbGxTbmFwKHRhcmdldExhYmVsKTsgfSk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbEdsaWRlKHRhcmdldExh
YmVsKSB7CisgICAgICAgICAgICB2YXIgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQodGFyZ2V0TGFiZWwpOworCisgICAgICAgICAgICB2YXIgYWN0dWFsUG9zaXRpb24gPSBkaXZU
YXJnZXQuc2Nyb2xsVG9wOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkUG9zaXRpb24gPSBkaXZU
YXJnZXQuY2xpZW50SGVpZ2h0OworICAgICAgICAgICAgaWYgKHRhcmdldExhYmVsID09ICdob3Jp
em9udGFsVGFyZ2V0JykgeworICAgICAgICAgICAgICAgIGFjdHVhbFBvc2l0aW9uID0gZGl2VGFy
Z2V0LnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRQb3NpdGlvbiA9IGRpdlRh
cmdldC5jbGllbnRXaWR0aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhlIGRp
diBzaG91bGQgaGF2ZSBzY3JvbGxlZCAoZ2xpZGVkKSB0byB0aGUgbmV4dCBzbmFwIHBvaW50Lgor
ICAgICAgICAgICAgaWYgKGFjdHVhbFBvc2l0aW9uID09IGV4cGVjdGVkUG9zaXRpb24pCisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IHNjcm9sbGVkIHRvIG5leHQgd2luZG93LiIpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImRpdiBkaWQgbm90
IGhvbm9yIHNuYXAgcG9pbnRzLiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRQb3NpdGlvbiArICIsIGJ1
dCBnb3QgIiArIGFjdHVhbFBvc2l0aW9uKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChzY3Jv
bGxTbmFwVGVzdCh0YXJnZXRMYWJlbCksIDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gc2Nyb2xsR2xpZGVUZXN0KHRhcmdldExhYmVsKSB7CisgICAgICAgICAgICBkZWJ1ZygiVGVz
dGluZyBzY3JvbGwtc25hcCBnbGlkZSBmb3IgIiArIHRhcmdldExhYmVsICsgIjoiKTsKKyAgICAg
ICAgICAgIHZhciBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXRMYWJl
bCk7CisgCisgICAgICAgICAgICB2YXIgZHggPSAwOworICAgICAgICAgICAgdmFyIGR5ID0gMDsK
KyAgICAgICAgICAgIGlmICh0YXJnZXRMYWJlbCA9PSAnaG9yaXpvbnRhbFRhcmdldCcpIHsKKyAg
ICAgICAgICAgICAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZUdsaWRlID0gZGl2VGFyZ2V0LnNj
cm9sbExlZnQ7CisgICAgICAgICAgICAgICAgZHggPSAtMTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmVHbGlkZSA9IGRpdlRhcmdl
dC5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgZHkgPSAtMTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgdmFyIHdpbmRvd1Bvc2l0aW9uID0gbG9jYXRpb25JbldpbmRvd0Nvb3JkaW5h
dGVzKGRpdlRhcmdldCk7CisKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSB3aW5kb3dQb3Np
dGlvbi54ICsgZGl2VGFyZ2V0LmNsaWVudFdpZHRoIC0gMTA7CisgICAgICAgICAgICB2YXIgc3Rh
cnRQb3NZID0gd2luZG93UG9zaXRpb24ueSArIDUwOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOworICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBkeSwgJ2JlZ2Fu
JywgJ25vbmUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnY2hhbmdlZCcsICdub25lJywgZmFs
c2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKGR4LCBkeSwgJ2NoYW5nZWQnLCAnbm9uZScsIGZhbHNlKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhk
eCwgZHksICdjaGFuZ2VkJywgJ25vbmUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywg
J25vbmUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdiZWdpbicsIGZhbHNlKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFsc2UpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGR4LCBk
eSwgJ25vbmUnLCAnY29udGludWUnLCBmYWxzZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoZHgsIGR5LCAnbm9uZScsICdj
b250aW51ZScsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhkeCwgZHksICdub25lJywgJ2NvbnRpbnVlJywgZmFs
c2UpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhmdW5jdGlvbigpIHsgcmV0dXJu
IGNoZWNrRm9yU2Nyb2xsR2xpZGUodGFyZ2V0TGFiZWwpOyB9KTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5t
b25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbEds
aWRlVGVzdCgnaG9yaXpvbnRhbFRhcmdldCcpLCAwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbkggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaXRlbUgwJyk7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9
ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS48YnIvPlRv
IG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAg
ICAgICAgICAgICAgICsgImluc2lkZSB0aGUgcmVkIHJlZ2lvbiBhdCB0aGUgdG9wIG9mIHRoZSBw
YWdlLDxici8+YW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXI8YnIv
PnN3aXBlIHRvIG1ha2UgYSIKKyAgICAgICAgICAgICAgICAgICAgKyAic21hbGwgc3dpcGUgZ2Vz
dHVyZSB3aXRoPGJyLz5zb21lIG1vbWVudHVtLjxici8+PGJyLz4iCisgICAgICAgICAgICAgICAg
ICAgICsgIlRoZSByZWdpb24gc2hvdWxkIHNjcm9sbCB0byBzaG93IGEgZ3JlZW4gcmVnaW9uLjxi
ci8+PGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgIk5leHQsIHBlcmZvcm0gYSBzbWFsbCBz
Y3JvbGwgZ2VzdHVyZSB0aGF0IGRvZXM8YnIvPm5vdCBpbnZvbHZlIG1vbWVudHVtLiBZb3Ugc2hv
dWxkIGJlZ2luIHRvPGJyLz5zZWUgb25lIG9mIHRoZSBjb2xvcnMgIgorICAgICAgICAgICAgICAg
ICAgICArICJ0byB0aGUgc2lkZSBvZiB0aGUgY3VycmVudDxici8+Z3JlZW4gYm94LiBXaGVuIHlv
dSByZWxlYXNlIHRoZSB3aGVlbCwgdGhlPGJyLz5yZWdpb24gc2hvdWxkIHNjcm9sbCBiYWNrIHRv
IGEgc2luZ2xlIGNvbG9yLiI7CisgICAgICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9uSC5hcHBl
bmRDaGlsZChtZXNzYWdlKTsKKworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb25W
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW1WMCcpOworICAgICAgICAgICAgICAgIHZh
ciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAg
ICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+WW91IHNob3VsZCBhbHNvIGJlIGFibGUgdG8gcmVw
ZWF0IHRoZXNlIHRlc3RzIHN0ZXBzIGZvciB0aGlzIHZlcnRpY2FsIHJlZ2lvbi48YnIvPiIKKyAg
ICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb25WLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9u
OiByZWxhdGl2ZTsgd2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICAgIDxkaXY+VGVzdHMgdGhhdCB0
aGUgc2Nyb2xsLXNuYXAgZmVhdHVyZSB3b3JrcyBwcm9wZXJseSBpbiBvdmVyZmxvdyByZWdpb25z
LjwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbEdhbGxlcnkiIGlkPSJo
b3Jpem9udGFsVGFyZ2V0Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
R2FsbGVyeURyYXdlciI+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Iml0ZW1IMCIgY2xh
c3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iaXRlbUgx
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJp
dGVtSDIiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYg
aWQ9Iml0ZW1IMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAg
PGRpdiBpZD0iaXRlbUg0IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJpdGVtSDUiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgICAg
ICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsR2FsbGVyeSIgaWQ9InZlcnRpY2FsVGFyZ2V0Ij4KKyAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJ2ZXJ0aWNhbEdhbGxlcnlEcmF3ZXIiPgorICAgICAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJpdGVtVjAiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgICAgICAgICAg
ICAgIDxkaXYgaWQ9Iml0ZW1WMSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgICAg
ICAgICAgICAgPGRpdiBpZD0iaXRlbVYyIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJpdGVtVjMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+Cisg
ICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Iml0ZW1WNCIgY2xhc3M9ImNvbG9yQm94Ij48L2Rp
dj4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iaXRlbVY1IiBjbGFzcz0iY29sb3JCb3gi
PjwvZGl2PgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAg
ICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvaG9yaXpvbnRhbC1tYWluZnJhbWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL3Njcm9sbC1zbmFwL3Jlc291cmNlcy9ob3Jpem9udGFsLW1haW5mcmFtZS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvaG9yaXpvbnRhbC1tYWluZnJhbWUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuaG9yaXpvbnRhbEdh
bGxlcnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiA2MDB2dzsKKyAgICAgICAgICAgICAgICBo
ZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAg
ICBwYWRkaW5nOiAwOworICAgICAgICAgICAgICAgIC13ZWJraXQtc2Nyb2xsLXNuYXAtcG9pbnRz
LXg6IHJlcGVhdCgxMDB2dyk7CisgICAgICAgICAgICAgICAgLXdlYmtpdC1zY3JvbGwtc25hcC10
eXBlOiBtYW5kYXRvcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuY29sb3JCb3ggewor
ICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEw
MHZ3OworICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI2l0ZW0wIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRl
bTEgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsgfQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1j
b2xvcjogYXF1YTsgfQorICAgICAgICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVs
bG93OyB9CisgICAgICAgICAgICAjaXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IGNsYXNzPSJob3Jpem9u
dGFsR2FsbGVyeSI+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0wIiBjbGFzcz0iY29sb3JCb3giPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0iaXRlbTIiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9Iml0ZW0zIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJp
dGVtNCIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTUiIGNs
YXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvcmVzb3VyY2VzL3ZlcnRpY2FsLW1haW5mcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvcmVzb3VyY2VzL3ZlcnRpY2FsLW1haW5mcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvdmVydGljYWwtbWFpbmZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLnZlcnRp
Y2FsR2FsbGVyeSB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OworICAgICAgICAgICAg
ICAgIGhlaWdodDogNjAwdmg7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAg
ICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgICAgICAgICAgLXdlYmtpdC1zY3JvbGwtc25hcC1w
b2ludHMteTogcmVwZWF0KDEwMHZoKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LXNjcm9sbC1z
bmFwLXR5cGU6IG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJv
eCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0
aDogMTAwdnc7CisgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAg
ICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9y
OiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hz
aWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgY2xhc3M9InZl
cnRpY2FsR2FsbGVyeSI+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0wIiBjbGFzcz0iY29sb3JCb3gi
PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0iaXRlbTIiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAg
IDxkaXYgaWQ9Iml0ZW0zIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlk
PSJpdGVtNCIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTUi
IGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="277239"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>