<?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>96669</bug_id>
          
          <creation_ts>2012-09-13 10:48:17 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Add shape-inside tests for rounded rectangles</short_desc>
          <delta_ts>2012-10-05 15:01:01 -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>CSS</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>
          
          <blocked>89256</blocked>
    
    <blocked>89707</blocked>
    
    <blocked>98462</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>giles_joplin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>719662</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-13 10:48:17 -0700</bug_when>
    <thetext>Shape-inside should work for rounded rectangles. Support should mostly be in with the addition of the shapes module, but it needs testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733142</commentid>
    <comment_count>1</comment_count>
      <attachid>166763</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-10-02 15:23:24 -0700</bug_when>
    <thetext>Created attachment 166763
Adding rounded rectangle tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733858</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-03 11:12:30 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=166763) [details]
&gt; Adding rounded rectangle tests

These tests look good to me although you might want make the height of one of the test case shapes greater than its width.  Likewise for the corner radii.

And it would simple and useful to verify that setting either corner radius value to zero produced the same results as a simple rectangle.

&gt; &quot;The expected results use float &quot;sandbags&quot; to mark off the shape-inside area.&quot;
You might qualify this, since shape-inside-rounded-rectangle-001-expected.html doesn&apos;t use sandbags, just carefully placed breaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735115</commentid>
    <comment_count>3</comment_count>
      <attachid>167201</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-10-04 16:33:12 -0700</bug_when>
    <thetext>Created attachment 167201
Updating tests

Incorporating feedback from Hans.
* Making one of the test cases have height &gt; width and cornerRadiusY &gt; cornerRadiusX
* Testing the case where cornerRadiusX or cornerRadiusY is 0
* Fixing up the comments to be more specific about only some of the tests using float sandbags
Corner radii greater than half their dimension (shape width or height) currently produce odd results. Linking to new bug 98462.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735776</commentid>
    <comment_count>4</comment_count>
      <attachid>167353</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-10-05 11:05:08 -0700</bug_when>
    <thetext>Created attachment 167353
Adding shape outline

Updating patch to use the ::before pseudo element to represent the outline of the shape inside.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735877</commentid>
    <comment_count>5</comment_count>
      <attachid>167353</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-05 12:22:54 -0700</bug_when>
    <thetext>Comment on attachment 167353
Adding shape outline

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

&gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-rounded-rectangle-002-expected.html:15
&gt; +    function createSimulatedShapeElement() {
&gt; +        var stylesheet = document.getElementById(&quot;stylesheet&quot;);
&gt; +        var dimensions = {  width: 200, height: 300,
&gt; +                            shapeX: 25, shapeY: 45,
&gt; +                            shapeWidth: 100, shapeHeight: 200,
&gt; +                            shapeRadiusX: 0, shapeRadiusY: 55 };
&gt; +        generateSimulatedShapeElement(&quot;shape-inside1&quot;, stylesheet.sheet, dimensions, 9);
&gt; +        dimensions.shapeRadiusX = 55;
&gt; +        dimensions.shapeRadiusY = 0;
&gt; +        generateSimulatedShapeElement(&quot;shape-inside2&quot;, stylesheet.sheet, dimensions, 9);

Super cool way to do ref expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735981</commentid>
    <comment_count>6</comment_count>
      <attachid>167353</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-05 14:47:49 -0700</bug_when>
    <thetext>Comment on attachment 167353
Adding shape outline

Just setting cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736000</commentid>
    <comment_count>7</comment_count>
      <attachid>167353</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 15:00:56 -0700</bug_when>
    <thetext>Comment on attachment 167353
Adding shape outline

Clearing flags on attachment: 167353

Committed r130557: &lt;http://trac.webkit.org/changeset/130557&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736002</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 15:01:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166763</attachid>
            <date>2012-10-02 15:23:24 -0700</date>
            <delta_ts>2012-10-04 16:33:10 -0700</delta_ts>
            <desc>Adding rounded rectangle tests</desc>
            <filename>bug-96669-20121002152237.patch</filename>
            <type>text/plain</type>
            <size>16367</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTk3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjU1YzVlYmY3ZGI3NGIwNDMyNDBm
NWFhZTM0M2E4YmI1N2JlMWU2ZS4uZDMzMGE3NjhkOTYxYTA3MjUyZjQ5MjZhZGEyZDMzODc1YWY3
NTU4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEwLTAyICBCZWFyIFRyYXZpcyAgPGJl
dHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEFkZCBzaGFwZS1p
bnNpZGUgdGVzdHMgZm9yIHJvdW5kZWQgcmVjdGFuZ2xlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgbXVsdGlwbGUgcm91bmRlZCByZWN0YW5n
bGUgdGVzdHMuIFRoZSBleHBlY3RlZCByZXN1bHRzIHVzZSBmbG9hdCAic2FuZGJhZ3MiCisgICAg
ICAgIHRvIG1hcmsgb2ZmIHRoZSBzaGFwZS1pbnNpZGUgYXJlYS4KKyAgICAgICAgKFNlZSBodHRw
Oi8vd3d3LmFsaXN0YXBhcnQuY29tL2FydGljbGVzL3NhbmRiYWdzLykKKyAgICAgICAgVGhlIHNh
bmRiYWdzIHVzZSB0aGUgc2FtZSBsaW5lSGVpZ2h0IGFzIHRoZSBpbmxpbmUgY29udGVudCwgdG8g
bWFrZSBzdXJlIHRoZSBsYXlvdXQKKyAgICAgICAgbWF0Y2hlcyBmb3Igc2hhcGUtaW5zaWRlLgor
CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5q
czogQ29udGFpbnMgZnVuY3Rpb25hbGl0eSBmb3IgZ2VuZXJhdGluZworICAgICAgICBhIHNoYXBl
LWluc2lkZSwgc2ltdWxhdGluZyBvbmUsIGFuZCBnZW5lcmF0aW5nIGNvbnRlbnQgdGhhdCBzaG91
bGQgcm91Z2hseSBmaWxsIHRoZQorICAgICAgICBzaGFwZS1pbnNpZGUuCisgICAgICAgICh4RnJv
bUVsbGlwc2VDZW50ZXIpOiBUaGUgeCBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2YgYW4gZWxs
aXBzZSwgYmFzZWQgb24gaXRzIHkKKyAgICAgICAgZGlzdGFuY2UgZnJvbSBjZW50ZXIuCisgICAg
ICAgICh4SW5zZXQpOiBUaGUgaW5zZXQgb2YgYSByb3VuZGVkIHJlY3RhbmdsZSBmcm9tIGl0cyBi
b3VuZGluZyBib3guCisgICAgICAgIChnZW5lcmF0ZVN0cmluZyk6IEdlbmVyYXRlIGEgc3RyaW5n
IHRoYXQgcm91Z2hseSBmaWxscyBhIHNoYXBlLWluc2lkZSdzIGNvbnRlbnQgYXJlYS4KKyAgICAg
ICAgKHNpbXVsYXRlU2hhcGUpOiBDcmVhdGUgZmxvYXRzIHRvIHNpbXVsYXRlIGEgc2hhcGUtaW5z
aWRlIGFyZWEuCisgICAgICAgIChnZW5lcmF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCk6IFNpbXVs
YXRlIGEgc2hhcGUtaW5zaWRlIGFuZCBhcHByb3ByaWF0ZWx5IGZpbGwgaXQKKyAgICAgICAgd2l0
aCBjb250ZW50LgorICAgICAgICAoZ2VuZXJhdGVTaGFwZUVsZW1lbnQpOiBDcmVhdGUgYSBzaGFw
ZS1pbnNpZGUgYW5kIGZpbGwgaXQgd2l0aCBjb250ZW50LgorICAgICAgICAqIGZhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS1leHBl
Y3RlZC5odG1sOiAKKyAgICAgICAgUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVk
Lmh0bWwuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAxLmh0bWw6IAorICAgICAgICBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRl
ZC1yZWN0YW5nbGUuaHRtbC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDItZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91
bmRlZC1yZWN0YW5nbGUtMDAyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMy1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDMuaHRtbDogQWRkZWQuCisKIDIwMTItMTAt
MDIgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gTWFrZSBzdXJlIHRoZSB0b3VjaC1wb2ludHMgaW4gdGhlIHRvdWNoLWV2
ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHN0YXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5nbGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjA1MTZmYTQyMmQ4MzAxMTZhZGVhODBmOTUxOGUyYTczZjc4ZjFiNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvcm91bmRlZC1yZWN0
YW5nbGUuanMKQEAgLTAsMCArMSw4OSBAQAorZnVuY3Rpb24geEZyb21FbGxpcHNlQ2VudGVyKHlG
cm9tRWxsaXBzZUNlbnRlciwgcmFkaXVzWCwgcmFkaXVzWSkgeworICAgIHJldHVybiByYWRpdXNY
ICogTWF0aC5zcXJ0KDEgLSBNYXRoLnBvdyh5RnJvbUVsbGlwc2VDZW50ZXIgLyByYWRpdXNZLCAy
KSk7Cit9CisKK2Z1bmN0aW9uIHhJbnNldChkaW1lbnNpb25zLCBsaW5lVG9wLCBsaW5lQm90dG9t
KSB7CisgICAgdmFyIGxlZnQ7CisgICAgaWYgKGxpbmVUb3AgPCBkaW1lbnNpb25zLnNoYXBlSGVp
Z2h0ICYmIGxpbmVCb3R0b20gPiBkaW1lbnNpb25zLnNoYXBlSGVpZ2h0KQorICAgICAgICBsaW5l
Qm90dG9tID0gZGltZW5zaW9ucy5zaGFwZUhlaWdodDsKKyAgICBpZiAobGluZVRvcCA+PSBkaW1l
bnNpb25zLnNoYXBlSGVpZ2h0IHx8IChsaW5lVG9wID49IGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNZ
ICYmIGxpbmVCb3R0b20gPD0gZGltZW5zaW9ucy5zaGFwZUhlaWdodCAtIGRpbWVuc2lvbnMuc2hh
cGVSYWRpdXNZKSkgeworICAgICAgICBsZWZ0ID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICB2
YXIgeUZyb21FbGxpcHNlQ2VudGVyID0gTWF0aC5tYXgoKGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNZ
IC0gbGluZVRvcCksIGxpbmVCb3R0b20gLSAoZGltZW5zaW9ucy5zaGFwZUhlaWdodCAtIGRpbWVu
c2lvbnMuc2hhcGVSYWRpdXNZKSk7CisgICAgICAgIGxlZnQgPSBkaW1lbnNpb25zLnNoYXBlUmFk
aXVzWCAtIHhGcm9tRWxsaXBzZUNlbnRlcih5RnJvbUVsbGlwc2VDZW50ZXIsIGRpbWVuc2lvbnMu
c2hhcGVSYWRpdXNYLCBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSk7CisgICAgfQorICAgIHJldHVy
biBsZWZ0OworfQorCitmdW5jdGlvbiBnZW5lcmF0ZVN0cmluZyhkaW1lbnNpb25zLCBsaW5lSGVp
Z2h0KSB7CisgICAgdmFyIHJlc3VsdCA9ICIiOworICAgIGZvciAodmFyIGxpbmVUb3AgPSAwOyBs
aW5lVG9wIDwgZGltZW5zaW9ucy5zaGFwZUhlaWdodDsgbGluZVRvcCArPSBsaW5lSGVpZ2h0KSB7
CisgICAgICAgIHZhciB3aWR0aCA9IGRpbWVuc2lvbnMuc2hhcGVXaWR0aCAtIDIgKiB4SW5zZXQo
ZGltZW5zaW9ucywgbGluZVRvcCwgbGluZVRvcCArIGxpbmVIZWlnaHQpOworICAgICAgICByZXN1
bHQgKz0gKG5ldyBBcnJheShNYXRoLmNlaWwod2lkdGggLyBsaW5lSGVpZ2h0IC8gMikgKyAxKSku
am9pbigieCAiKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVuY3Rpb24gc2lt
dWxhdGVTaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQsIGRpbWVuc2lvbnMsIGxpbmVIZWlnaHQp
IHsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVudElkICsgIiB7IHdpZHRo
OiAiICsgZGltZW5zaW9ucy53aWR0aCArICJweDsgaGVpZ2h0OiAiICsgZGltZW5zaW9ucy5oZWln
aHQgKyAicHg7IGZvbnQ6ICIgKyBsaW5lSGVpZ2h0ICsgInB4LzEgQWhlbSwgc2Fucy1zZXJpZjsg
fSIpOworICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQgKyAiIC5mbG9h
dCB7IGhlaWdodDogIiArIGxpbmVIZWlnaHQgKyAicHg7IH0iKTsKKyAgICBzdHlsZXNoZWV0Lmlu
c2VydFJ1bGUoIiMiICsgZWxlbWVudElkICsgIiAubGVmdCB7IGZsb2F0OiBsZWZ0OyBjbGVhcjog
bGVmdDsgfSIpOworICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQgKyAi
IC5yaWdodCB7IGZsb2F0OiByaWdodDsgY2xlYXI6IHJpZ2h0OyB9Iik7CisgICAgc3R5bGVzaGVl
dC5pbnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJZCArICIgcCB7IC13ZWJraXQtbWFyZ2luLWJlZm9y
ZTogMDsgd29yZC13cmFwOiBicmVhay13b3JkOyBsZXR0ZXItc3BhY2luZzogMDsgfSIpOworCisg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAg
IGlmIChkaW1lbnNpb25zLnNoYXBlWSA+IDApIHsKKyAgICAgICAgdmFyIHBhZGRpbmdUb3AgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgcGFkZGluZ1RvcC5zZXRBdHRy
aWJ1dGUoImNsYXNzIiwgImZsb2F0IGxlZnQiKTsKKyAgICAgICAgcGFkZGluZ1RvcC5zdHlsZS53
aWR0aCA9IGRpbWVuc2lvbnMud2lkdGggKyAicHgiOworICAgICAgICBwYWRkaW5nVG9wLnN0eWxl
LmhlaWdodCA9IGRpbWVuc2lvbnMuc2hhcGVZICsgInB4IjsKKyAgICAgICAgZWxlbWVudC5hcHBl
bmRDaGlsZChwYWRkaW5nVG9wKTsKKyAgICB9CisKKyAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGRp
bWVuc2lvbnMuc2hhcGVIZWlnaHQ7IHkrPSBsaW5lSGVpZ2h0KSB7CisgICAgICAgIHZhciBpbnNl
dCA9IHhJbnNldChkaW1lbnNpb25zLCB5LCB5ICsgbGluZUhlaWdodCk7CisKKyAgICAgICAgdmFy
IHBhZGRpbmdMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHBh
ZGRpbmdMZWZ0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiZmxvYXQgbGVmdCIpOworICAgICAgICBw
YWRkaW5nTGVmdC5zdHlsZS53aWR0aCA9IGRpbWVuc2lvbnMuc2hhcGVYICsgaW5zZXQgKyAicHgi
OworICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHBhZGRpbmdMZWZ0KTsKKworICAgICAgICB2
YXIgcGFkZGluZ1JpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
IHBhZGRpbmdSaWdodC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImZsb2F0IHJpZ2h0Iik7CisgICAg
ICAgIHBhZGRpbmdSaWdodC5zdHlsZS53aWR0aCA9IE1hdGguZmxvb3IoKGRpbWVuc2lvbnMud2lk
dGggLSBkaW1lbnNpb25zLnNoYXBlV2lkdGggLSBkaW1lbnNpb25zLnNoYXBlWCkgKyBpbnNldCkg
KyAicHgiOworICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHBhZGRpbmdSaWdodCk7CisgICAg
fQorfQorCitmdW5jdGlvbiBnZW5lcmF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudChlbGVtZW50SWQs
IHN0eWxlc2hlZXQsIGRpbWVuc2lvbnMsIGxpbmVIZWlnaHQpIHsKKyAgICBzaW11bGF0ZVNoYXBl
KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgZGltZW5zaW9ucywgbGluZUhlaWdodCk7CisgICAgdmFy
IHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZW5lcmF0ZVN0cmluZyhkaW1lbnNpb25z
LCBsaW5lSGVpZ2h0KSk7CisgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7
CisgICAgcC5hcHBlbmRDaGlsZCh0ZXh0KTsKKworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICBlbGVtZW50LmFwcGVuZENoaWxkKHApOwor
fQorCitmdW5jdGlvbiBnZW5lcmF0ZVNoYXBlRWxlbWVudChlbGVtZW50SWQsIHN0eWxlc2hlZXQs
IGRpbWVuc2lvbnMsIGxpbmVIZWlnaHQpIHsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIiMi
ICsgZWxlbWVudElkICsgIiB7ICIKKyAgICAgICAgKyAiLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJl
Y3RhbmdsZSgiCisgICAgICAgICsgZGltZW5zaW9ucy5zaGFwZVggKyAicHgsICIKKyAgICAgICAg
KyBkaW1lbnNpb25zLnNoYXBlWSArICJweCwgIgorICAgICAgICArIGRpbWVuc2lvbnMuc2hhcGVX
aWR0aCArICJweCwgIgorICAgICAgICArIGRpbWVuc2lvbnMuc2hhcGVIZWlnaHQgKyAicHgsICIK
KyAgICAgICAgKyBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWCArICJweCwgIgorICAgICAgICArIGRp
bWVuc2lvbnMuc2hhcGVSYWRpdXNZICsgInB4KTsgIgorICAgICAgICArICJ3aWR0aDogIiArIGRp
bWVuc2lvbnMud2lkdGggKyAicHg7ICIKKyAgICAgICAgKyAiaGVpZ2h0OiAiICsgZGltZW5zaW9u
cy5oZWlnaHQgKyAicHg7ICIKKyAgICAgICAgKyAiZm9udDogIiArIGxpbmVIZWlnaHQgKyAicHgv
MSBBaGVtLCBzYW5zLXNlcmlmOyAiCisgICAgICAgICsgIndvcmQtd3JhcDogYnJlYWstd29yZDsg
fSIpOworICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQgKyAiIHAgeyAt
d2Via2l0LW1hcmdpbi1iZWZvcmU6IDA7IHdvcmQtd3JhcDogYnJlYWstd29yZDsgbGV0dGVyLXNw
YWNpbmc6IDA7IH0iKTsKKworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
Z2VuZXJhdGVTdHJpbmcoZGltZW5zaW9ucywgbGluZUhlaWdodCkpOworICAgIHZhciBwID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgIHAuYXBwZW5kQ2hpbGQodGV4dCk7CisKKyAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAg
ZWxlbWVudC5hcHBlbmRDaGlsZChwKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAw
MS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAxLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTA5NTFlMDA0ZmJmMTQ3ZWI1NjRkMWJmZGNhNzIwZmIxZDU0MTdhNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjc2hhcGUt
aW5zaWRlIHsKKyAgICAgICAgZm9udDogMTAwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAg
ICB3aGl0ZS1zcGFjZTogcHJlOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIHdpZHRo
OiAzMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+CisgICAgUmVxdWlyZXMgQWhlbSBmb250LiBUZXN0cyB0aGF0IGlubGluZSBjb250
ZW50IGF2b2lkcyB0aGUgYm9yZGVyIHJhZGl1cyBvZiBhIHJvdW5kZWQgcmVjdGFuZ2xlLgorICAg
IFNob3VsZCBkaXNwbGF5IGZpdmUgZ3JlZW4gYm94ZXMgaW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4K
KyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPiBYIDxici8+WFhYPGJyLz4gWCA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRl
ZC1yZWN0YW5nbGUtMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk3YmQ4NzFhNzFkYzc1OGFhNzhjMjU2
NDkyNmNkYTA3YWFiNmM0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS5o
dG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxz
dHlsZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgZm9udDogMTAwcHgvMSBBaGVtLCBz
YW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIHdvcmQtd3JhcDogYnJl
YWstd29yZDsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBoZWlnaHQ6IDMwMHB4Owor
ICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDAsIDAsIDMwMHB4LCAzMDBw
eCwgMTAwcHgsIDEwMHB4KTsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
UmVxdWlyZXMgQWhlbSBmb250LiBUZXN0cyB0aGF0IGlubGluZSBjb250ZW50IGF2b2lkcyB0aGUg
Ym9yZGVyIHJhZGl1cyBvZiBhIHJvdW5kZWQgcmVjdGFuZ2xlLgorICAgIFNob3VsZCBkaXNwbGF5
IGZpdmUgZ3JlZW4gYm94ZXMgaW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4KKyAgICA8ZGl2IGlkPSJz
aGFwZS1pbnNpZGUiPlhYWFhYPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3Vu
ZGVkLXJlY3RhbmdsZS0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMi1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNDMyMTg5NjNkYWUwY2VmZmVhNDBmYjA2ZDY3NDFhNmNj
YWZjZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDItZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisgICAgZnVuY3Rpb24gY3JlYXRlU2ltdWxhdGVkU2hhcGVFbGVtZW50KCkgeworICAg
ICAgICB2YXIgc3R5bGVzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZXNoZWV0
Iik7CisgICAgICAgIHZhciBkaW1lbnNpb25zID0geyB3aWR0aDogNjAwLCBoZWlnaHQ6IDQwMCwg
c2hhcGVYOiAyNSwgc2hhcGVZOiA0NSwgc2hhcGVXaWR0aDogNTAwLCBzaGFwZUhlaWdodDogMzAw
LCBzaGFwZVJhZGl1c1g6IDU1LCBzaGFwZVJhZGl1c1k6IDc1IH07CisgICAgICAgIGdlbmVyYXRl
U2ltdWxhdGVkU2hhcGVFbGVtZW50KCJzaGFwZS1pbnNpZGUiLCBzdHlsZXNoZWV0LnNoZWV0LCBk
aW1lbnNpb25zLCA5KTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+
CisgICAgYm9keSB7IG1hcmdpbjogMDsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0iY3JlYXRlU2ltdWxhdGVkU2hhcGVFbGVtZW50KCkiPgorPGRpdiBpZD0ic2hhcGUtaW5zaWRl
Ij48L2Rpdj4KKzxkaXY+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0
IGNyZWF0ZXMgYSByb3VuZGVkIHJlY3RhbmdsZSBzaGFwZS1pbnNpZGUgYW5kIGZpbGxzIGl0Cisg
ICAgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQgd2hpdGUgc3F1YXJlcyBhcyBpbmxpbmUgY29u
dGVudC4gVGhlIGVudGlyZSBzaGFwZS1pbnNpZGUgc2hvdWxkCisgICAgYmUgZmlsbGVkLCB3aXRo
IGEgc21hbGwgYW1vdW50IG9mIG92ZXJmbG93LgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU3NzliMDEzMWIxZjZjODQzNjY0NDM4OThhNzliMTQ4NjVmNWY0MTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDIuaHRtbApAQCAtMCwwICsxLDI3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVTaGFwZUVs
ZW1lbnQoKSB7CisgICAgICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInN0eWxlc2hlZXQiKTsKKyAgICAgICAgdmFyIGRpbWVuc2lvbnMgPSB7IHdpZHRoOiA2MDAs
IGhlaWdodDogNDAwLCBzaGFwZVg6IDI1LCBzaGFwZVk6IDQ1LCBzaGFwZVdpZHRoOiA1MDAsIHNo
YXBlSGVpZ2h0OiAzMDAsIHNoYXBlUmFkaXVzWDogNTUsIHNoYXBlUmFkaXVzWTogNzUgfTsKKyAg
ICAgICAgZ2VuZXJhdGVTaGFwZUVsZW1lbnQoInNoYXBlLWluc2lkZSIsIHN0eWxlc2hlZXQuc2hl
ZXQsIGRpbWVuc2lvbnMsIDkpOworICAgIH0KKzwvc2NyaXB0PgorPHN0eWxlIGlkPSJzdHlsZXNo
ZWV0Ij4KKyAgICBib2R5IHsgbWFyZ2luOiAwOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJjcmVhdGVTaGFwZUVsZW1lbnQoKSI+Cis8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPjwv
ZGl2PgorPGRpdj4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3Jl
YXRlcyBhIHJvdW5kZWQgcmVjdGFuZ2xlIHNoYXBlLWluc2lkZSBhbmQgZmlsbHMgaXQKKyAgICB3
aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZCB3aGl0ZSBzcXVhcmVzIGFzIGlubGluZSBjb250ZW50
LiBUaGUgZW50aXJlIHNoYXBlLWluc2lkZSBzaG91bGQKKyAgICBiZSBmaWxsZWQsIHdpdGggYSBz
bWFsbCBhbW91bnQgb2Ygb3ZlcmZsb3cuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUt
MDAzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY0ZGM4MzY1MGQ4NmY5ZmE0ZDBlNmI5MjU0
YWYzMzdiMDI0ODNiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMy1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5nbGUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBjcmVhdGVTaW11bGF0ZWRTaGFwZUVsZW1lbnQo
KSB7CisgICAgICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
eWxlc2hlZXQiKTsKKyAgICAgICAgdmFyIGRpbWVuc2lvbnMgPSB7IHdpZHRoOiA3MDAsIGhlaWdo
dDogNTAwLCBzaGFwZVg6IDI1LCBzaGFwZVk6IDQ1LCBzaGFwZVdpZHRoOiA2MDAsIHNoYXBlSGVp
Z2h0OiAzMDAsIHNoYXBlUmFkaXVzWDogMTAwLCBzaGFwZVJhZGl1c1k6IDE1MCB9OworICAgICAg
ICBnZW5lcmF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCgic2hhcGUtaW5zaWRlIiwgc3R5bGVzaGVl
dC5zaGVldCwgZGltZW5zaW9ucywgOTApOworICAgIH0KKzwvc2NyaXB0PgorPHN0eWxlIGlkPSJz
dHlsZXNoZWV0Ij4KKyAgICBib2R5IHsgbWFyZ2luOiAwOyB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJjcmVhdGVTaW11bGF0ZWRTaGFwZUVsZW1lbnQoKSI+Cis8ZGl2IGlkPSJz
aGFwZS1pbnNpZGUiPjwvZGl2PgorPGRpdj4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFo
ZW0gZm9udC4gSXQgY3JlYXRlcyBhIHJvdW5kZWQgcmVjdGFuZ2xlIHNoYXBlLWluc2lkZSBhbmQg
ZmlsbHMgaXQKKyAgICB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZCB3aGl0ZSBzcXVhcmVzIGFz
IGlubGluZSBjb250ZW50LiBUaGUgZW50aXJlIHNoYXBlLWluc2lkZSBzaG91bGQKKyAgICBiZSBm
aWxsZWQsIHdpdGggYSBzbWFsbCBhbW91bnQgb2Ygb3ZlcmZsb3cuCis8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0
YW5nbGUtMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTllNTkzMTNkZjgzMGQ2OTc1ZWIxYTFiYTczYzM2
YjE5NGExZGUwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMy5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5nbGUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGNy
ZWF0ZVNoYXBlRWxlbWVudCgpIHsKKyAgICAgICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICB2YXIgZGltZW5zaW9ucyA9IHsg
d2lkdGg6IDcwMCwgaGVpZ2h0OiA1MDAsIHNoYXBlWDogMjUsIHNoYXBlWTogNDUsIHNoYXBlV2lk
dGg6IDYwMCwgc2hhcGVIZWlnaHQ6IDMwMCwgc2hhcGVSYWRpdXNYOiAxMDAsIHNoYXBlUmFkaXVz
WTogMTUwIH07CisgICAgICAgIGdlbmVyYXRlU2hhcGVFbGVtZW50KCJzaGFwZS1pbnNpZGUiLCBz
dHlsZXNoZWV0LnNoZWV0LCBkaW1lbnNpb25zLCA5MCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c3R5
bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImNyZWF0ZVNoYXBlRWxlbWVudCgpIj4KKzxkaXYgaWQ9InNo
YXBlLWluc2lkZSI+PC9kaXY+Cis8ZGl2PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhl
bSBmb250LiBJdCBjcmVhdGVzIGEgcm91bmRlZCByZWN0YW5nbGUgc2hhcGUtaW5zaWRlIGFuZCBm
aWxscyBpdAorICAgIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kIHdoaXRlIHNxdWFyZXMgYXMg
aW5saW5lIGNvbnRlbnQuIFRoZSBlbnRpcmUgc2hhcGUtaW5zaWRlIHNob3VsZAorICAgIGJlIGZp
bGxlZCwgd2l0aCBhIHNtYWxsIGFtb3VudCBvZiBvdmVyZmxvdy4KKzwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQt
cmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUw
OTUxZTAwNGZiZjE0N2ViNTY0ZDFiZmRjYTcyMGZiMWQ1NDE3YTUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzdHlsZT4KLSAgICAjc2hhcGUtaW5zaWRlIHsKLSAgICAgICAgZm9udDogMTAw
cHgvMSBBaGVtLCBzYW5zLXNlcmlmOwotICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOwotICAgICAg
ICBjb2xvcjogZ3JlZW47Ci0gICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgaGVpZ2h0OiAz
MDBweDsKLSAgICB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gICAgUmVxdWlyZXMgQWhl
bSBmb250LiBUZXN0cyB0aGF0IGlubGluZSBjb250ZW50IGF2b2lkcyB0aGUgYm9yZGVyIHJhZGl1
cyBvZiBhIHJvdW5kZWQgcmVjdGFuZ2xlLgotICAgIFNob3VsZCBkaXNwbGF5IGZpdmUgZ3JlZW4g
Ym94ZXMgaW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4KLSAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUi
PiBYIDxici8+WFhYPGJyLz4gWCA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJv
dW5kZWQtcmVjdGFuZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5OTdiZDg3MWE3MWRjNzU4YWE3OGMyNTY0OTI2Y2RhMDdhYWI2YzQ3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVj
dGFuZ2xlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVk
KHRydWUpOwotPC9zY3JpcHQ+Ci08c3R5bGU+Ci0gICAgI3NoYXBlLWluc2lkZSB7Ci0gICAgICAg
IGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKLSAgICAgICAgY29sb3I6IGdyZWVuOwot
ICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7Ci0gICAgICAgIHdpZHRoOiAzMDBweDsKLSAg
ICAgICAgaGVpZ2h0OiAzMDBweDsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3Rh
bmdsZSgwLCAwLCAzMDBweCwgMzAwcHgsIDEwMHB4LCAxMDBweCk7Ci0gICAgfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5PgotICAgIFJlcXVpcmVzIEFoZW0gZm9udC4gVGVzdHMgdGhhdCBpbmxp
bmUgY29udGVudCBhdm9pZHMgdGhlIGJvcmRlciByYWRpdXMgb2YgYSByb3VuZGVkIHJlY3Rhbmds
ZS4KLSAgICBTaG91bGQgZGlzcGxheSBmaXZlIGdyZWVuIGJveGVzIGluIHRoZSBzaGFwZSBvZiBh
IHBsdXMuCi0gICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj5YWFhYWDwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167201</attachid>
            <date>2012-10-04 16:33:12 -0700</date>
            <delta_ts>2012-10-05 11:05:05 -0700</delta_ts>
            <desc>Updating tests</desc>
            <filename>bug-96669-20121004163221.patch</filename>
            <type>text/plain</type>
            <size>20879</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDEwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDZiNDI4MWIxZTNjZGFmZTg5ZDBi
MTUwZDNkYjJmZjQ0YTczN2QyNy4uMjRhNzk2MGNlM2I3YWQ2MWQ5MzExYjIxYjU3NDIxMGEyZjA1
MGI0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTEwLTA0ICBCZWFyIFRyYXZpcyAgPGJl
dHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEFkZCBzaGFwZS1p
bnNpZGUgdGVzdHMgZm9yIHJvdW5kZWQgcmVjdGFuZ2xlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgbXVsdGlwbGUgcm91bmRlZCByZWN0YW5n
bGUgdGVzdHMuIFRoZSBtb3JlIGNvbXBsZXggdGVzdHMgdXNlIGZsb2F0ICJzYW5kYmFncyIKKyAg
ICAgICAgdG8gc2ltdWxhdGUgdGhlIHNoYXBlLWluc2lkZSBhcmVhIGluIHRoZSB0ZXN0IGV4cGVj
dGF0aW9ucy4KKyAgICAgICAgKFNlZSBodHRwOi8vd3d3LmFsaXN0YXBhcnQuY29tL2FydGljbGVz
L3NhbmRiYWdzLykKKyAgICAgICAgSW4gZ2VuZXJhbCwgZWFjaCBsaW5lIGhhcyBpdHMgb3duIHBh
aXIgb2YgbGVmdCBhbmQgcmlnaHQgZmxvYXRzIChib3RoIGxpbmVIZWlnaHQgdGFsbCksCisgICAg
ICAgIHRvIHBvc2l0aW9uIHRoZSB0ZXh0IGFuZCBhcHByb3ByaWF0ZWx5IGxpbWl0IGl0cyB3aWR0
aC4gSW4gdGhlIHNpbXBsZSwgMCBjb3JuZXIgcmFkaXVzCisgICAgICAgIGNhc2VzLCB0aGVzZSBm
bG9hdHMgY2FuIGJlIG1lcmdlZCBiZWNhdXNlIHRoZXkgYWxsIGhhdmUgdGhlIHNhbWUgd2lkdGgg
b24gdGhlIGxlZnQgYW5kCisgICAgICAgIHJpZ2h0LgorCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qczogQ29udGFpbnMgZnVuY3Rpb25hbGl0
eSBmb3IgZ2VuZXJhdGluZworICAgICAgICBhIHNoYXBlLWluc2lkZSwgc2ltdWxhdGluZyBvbmUs
IGFuZCBnZW5lcmF0aW5nIGNvbnRlbnQgdGhhdCBzaG91bGQgcm91Z2hseSBmaWxsIHRoZQorICAg
ICAgICBzaGFwZS1pbnNpZGUuCisgICAgICAgICh4RnJvbUVsbGlwc2VDZW50ZXIpOiBUaGUgeCBk
aXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2YgYW4gZWxsaXBzZSwgYmFzZWQgb24gaXRzIHkKKyAg
ICAgICAgZGlzdGFuY2UgZnJvbSBjZW50ZXIuCisgICAgICAgICh4SW5zZXQpOiBUaGUgaW5zZXQg
b2YgYSByb3VuZGVkIHJlY3RhbmdsZSBmcm9tIGl0cyBib3VuZGluZyBib3guCisgICAgICAgIChn
ZW5lcmF0ZVN0cmluZyk6IEdlbmVyYXRlIGEgc3RyaW5nIHRoYXQgcm91Z2hseSBmaWxscyBhIHNo
YXBlLWluc2lkZSdzIGNvbnRlbnQgYXJlYS4KKyAgICAgICAgKHNpbXVsYXRlU2hhcGUpOiBDcmVh
dGUgZmxvYXRzIHRvIHNpbXVsYXRlIGEgc2hhcGUtaW5zaWRlIGFyZWEuCisgICAgICAgIChnZW5l
cmF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCk6IFNpbXVsYXRlIGEgc2hhcGUtaW5zaWRlIGFuZCBh
cHByb3ByaWF0ZWx5IGZpbGwgaXQKKyAgICAgICAgd2l0aCBjb250ZW50LgorICAgICAgICAoZ2Vu
ZXJhdGVTaGFwZUVsZW1lbnQpOiBDcmVhdGUgYSBzaGFwZS1pbnNpZGUgYW5kIGZpbGwgaXQgd2l0
aCBjb250ZW50LgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS1leHBlY3RlZC5odG1sOiAKKyAgICAgICAgUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwuCisgICAgICAgICogZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAx
Lmh0bWw6IAorICAgICAgICBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJl
Y3RhbmdsZS0wMDItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3Rh
bmdsZS0wMDMuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMDQgIFRvbnkgQ2hhbmcgIDx0b255QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggZmxleGJveC1iYXNlbGluZS5o
dG1sIHRvIHRlc3QgdGhlIG5ldyBiZWhhdmlvciBhZnRlciByMTMwNDA5LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5n
bGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTgxNjMwOGI0OTkzZWJlMmUxOTcxY2VhNjVmNjI4ZjU4ODFhOTYw
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJj
ZXMvcm91bmRlZC1yZWN0YW5nbGUuanMKQEAgLTAsMCArMSw5NiBAQAorZnVuY3Rpb24geEZyb21F
bGxpcHNlQ2VudGVyKHlGcm9tRWxsaXBzZUNlbnRlciwgcmFkaXVzWCwgcmFkaXVzWSkgeworICAg
IHJldHVybiByYWRpdXNYICogTWF0aC5zcXJ0KDEgLSBNYXRoLnBvdyh5RnJvbUVsbGlwc2VDZW50
ZXIgLyByYWRpdXNZLCAyKSk7Cit9CisKK2Z1bmN0aW9uIHhJbnNldChkaW1lbnNpb25zLCBsaW5l
VG9wLCBsaW5lQm90dG9tKSB7CisgICAgdmFyIGxlZnQ7CisgICAgaWYgKGxpbmVUb3AgPCBkaW1l
bnNpb25zLnNoYXBlSGVpZ2h0ICYmIGxpbmVCb3R0b20gPiBkaW1lbnNpb25zLnNoYXBlSGVpZ2h0
KQorICAgICAgICBsaW5lQm90dG9tID0gZGltZW5zaW9ucy5zaGFwZUhlaWdodDsKKyAgICBpZiAo
bGluZVRvcCA+PSBkaW1lbnNpb25zLnNoYXBlSGVpZ2h0IHx8IChsaW5lVG9wID49IGRpbWVuc2lv
bnMuc2hhcGVSYWRpdXNZICYmIGxpbmVCb3R0b20gPD0gZGltZW5zaW9ucy5zaGFwZUhlaWdodCAt
IGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNZKSkgeworICAgICAgICBsZWZ0ID0gMDsKKyAgICB9IGVs
c2UgeworICAgICAgICB2YXIgeUZyb21FbGxpcHNlQ2VudGVyID0gTWF0aC5tYXgoKGRpbWVuc2lv
bnMuc2hhcGVSYWRpdXNZIC0gbGluZVRvcCksIGxpbmVCb3R0b20gLSAoZGltZW5zaW9ucy5zaGFw
ZUhlaWdodCAtIGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNZKSk7CisgICAgICAgIGxlZnQgPSBkaW1l
bnNpb25zLnNoYXBlUmFkaXVzWCAtIHhGcm9tRWxsaXBzZUNlbnRlcih5RnJvbUVsbGlwc2VDZW50
ZXIsIGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNYLCBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSk7Cisg
ICAgfQorICAgIHJldHVybiBsZWZ0OworfQorCitmdW5jdGlvbiBnZW5lcmF0ZVN0cmluZyhkaW1l
bnNpb25zLCBsaW5lSGVpZ2h0KSB7CisgICAgdmFyIHJlc3VsdExlbmd0aCA9IDA7CisgICAgaWYg
KGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNYID09IDAgfHwgZGltZW5zaW9ucy5zaGFwZVJhZGl1c1kg
PT0gMCkKKyAgICAgICAgcmVzdWx0TGVuZ3RoID0gZGltZW5zaW9ucy5zaGFwZVdpZHRoICogZGlt
ZW5zaW9ucy5zaGFwZUhlaWdodCAvIChsaW5lSGVpZ2h0ICogbGluZUhlaWdodCk7CisgICAgZWxz
ZSB7CisgICAgICAgIGZvciAodmFyIGxpbmVUb3AgPSAwOyBsaW5lVG9wIDwgZGltZW5zaW9ucy5z
aGFwZUhlaWdodDsgbGluZVRvcCArPSBsaW5lSGVpZ2h0KSB7CisgICAgICAgICAgICB2YXIgd2lk
dGggPSBkaW1lbnNpb25zLnNoYXBlV2lkdGggLSAyICogeEluc2V0KGRpbWVuc2lvbnMsIGxpbmVU
b3AsIGxpbmVUb3AgKyBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIHJlc3VsdExlbmd0aCArPSB3
aWR0aCAvIGxpbmVIZWlnaHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIChuZXcgQXJy
YXkoTWF0aC5jZWlsKHJlc3VsdExlbmd0aCAvIDIpKS5qb2luKCJ4ICIpKTsKK30KKworZnVuY3Rp
b24gc2ltdWxhdGVTaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQsIGRpbWVuc2lvbnMsIGxpbmVI
ZWlnaHQpIHsKKyAgICB2YXIgc2ltcGxlUmVjdGFuZ2xlID0gZGltZW5zaW9ucy5zaGFwZVJhZGl1
c1ggPT0gMCB8fCBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSA9PSAwOworICAgIHZhciBmbG9hdEhl
aWdodCA9IHNpbXBsZVJlY3RhbmdsZSA/IGRpbWVuc2lvbnMuc2hhcGVIZWlnaHQgOiBsaW5lSGVp
Z2h0OworCisgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJZCArICIgeyB3
aWR0aDogIiArIGRpbWVuc2lvbnMud2lkdGggKyAicHg7IGhlaWdodDogIiArIGRpbWVuc2lvbnMu
aGVpZ2h0ICsgInB4OyBmb250OiAiICsgbGluZUhlaWdodCArICJweC8xIEFoZW0sIHNhbnMtc2Vy
aWY7IH0iKTsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVudElkICsgIiAu
ZmxvYXQgeyBoZWlnaHQ6ICIgKyBmbG9hdEhlaWdodCArICJweDsgfSIpOworICAgIHN0eWxlc2hl
ZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQgKyAiIC5sZWZ0IHsgZmxvYXQ6IGxlZnQ7IGNs
ZWFyOiBsZWZ0OyB9Iik7CisgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJ
ZCArICIgLnJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyBjbGVhcjogcmlnaHQ7IH0iKTsKKyAgICBzdHls
ZXNoZWV0Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVudElkICsgIiBwIHsgLXdlYmtpdC1tYXJnaW4t
YmVmb3JlOiAwOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IGxldHRlci1zcGFjaW5nOiAwOyB9Iik7
CisKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7
CisgICAgaWYgKGRpbWVuc2lvbnMuc2hhcGVZID4gMCkgeworICAgICAgICB2YXIgcGFkZGluZ1Rv
cCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBwYWRkaW5nVG9wLnNl
dEF0dHJpYnV0ZSgiY2xhc3MiLCAiZmxvYXQgbGVmdCIpOworICAgICAgICBwYWRkaW5nVG9wLnN0
eWxlLndpZHRoID0gZGltZW5zaW9ucy53aWR0aCArICJweCI7CisgICAgICAgIHBhZGRpbmdUb3Au
c3R5bGUuaGVpZ2h0ID0gZGltZW5zaW9ucy5zaGFwZVkgKyAicHgiOworICAgICAgICBlbGVtZW50
LmFwcGVuZENoaWxkKHBhZGRpbmdUb3ApOworICAgIH0KKworICAgIGZvciAodmFyIHkgPSAwOyB5
IDwgZGltZW5zaW9ucy5zaGFwZUhlaWdodDsgeSs9IGZsb2F0SGVpZ2h0KSB7CisgICAgICAgIHZh
ciBpbnNldCA9IHNpbXBsZVJlY3RhbmdsZSA/IDAgOiB4SW5zZXQoZGltZW5zaW9ucywgeSwgeSAr
IGxpbmVIZWlnaHQpOworCisgICAgICAgIHZhciBwYWRkaW5nTGVmdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBwYWRkaW5nTGVmdC5zZXRBdHRyaWJ1dGUoImNsYXNz
IiwgImZsb2F0IGxlZnQiKTsKKyAgICAgICAgcGFkZGluZ0xlZnQuc3R5bGUud2lkdGggPSBkaW1l
bnNpb25zLnNoYXBlWCArIGluc2V0ICsgInB4IjsKKyAgICAgICAgZWxlbWVudC5hcHBlbmRDaGls
ZChwYWRkaW5nTGVmdCk7CisKKyAgICAgICAgdmFyIHBhZGRpbmdSaWdodCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBwYWRkaW5nUmlnaHQuc2V0QXR0cmlidXRlKCJj
bGFzcyIsICJmbG9hdCByaWdodCIpOworICAgICAgICBwYWRkaW5nUmlnaHQuc3R5bGUud2lkdGgg
PSBNYXRoLmZsb29yKChkaW1lbnNpb25zLndpZHRoIC0gZGltZW5zaW9ucy5zaGFwZVdpZHRoIC0g
ZGltZW5zaW9ucy5zaGFwZVgpICsgaW5zZXQpICsgInB4IjsKKyAgICAgICAgZWxlbWVudC5hcHBl
bmRDaGlsZChwYWRkaW5nUmlnaHQpOworICAgIH0KK30KKworZnVuY3Rpb24gZ2VuZXJhdGVTaW11
bGF0ZWRTaGFwZUVsZW1lbnQoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBkaW1lbnNpb25zLCBsaW5l
SGVpZ2h0KSB7CisgICAgc2ltdWxhdGVTaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQsIGRpbWVu
c2lvbnMsIGxpbmVIZWlnaHQpOworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoZ2VuZXJhdGVTdHJpbmcoZGltZW5zaW9ucywgbGluZUhlaWdodCkpOworICAgIHZhciBwID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgIHAuYXBwZW5kQ2hpbGQodGV4dCk7CisK
KyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Cisg
ICAgZWxlbWVudC5hcHBlbmRDaGlsZChwKTsKK30KKworZnVuY3Rpb24gZ2VuZXJhdGVTaGFwZUVs
ZW1lbnQoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBkaW1lbnNpb25zLCBsaW5lSGVpZ2h0KSB7Cisg
ICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJZCArICIgeyAiCisgICAgICAg
ICsgIi13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoIgorICAgICAgICArIGRpbWVuc2lv
bnMuc2hhcGVYICsgInB4LCAiCisgICAgICAgICsgZGltZW5zaW9ucy5zaGFwZVkgKyAicHgsICIK
KyAgICAgICAgKyBkaW1lbnNpb25zLnNoYXBlV2lkdGggKyAicHgsICIKKyAgICAgICAgKyBkaW1l
bnNpb25zLnNoYXBlSGVpZ2h0ICsgInB4LCAiCisgICAgICAgICsgZGltZW5zaW9ucy5zaGFwZVJh
ZGl1c1ggKyAicHgsICIKKyAgICAgICAgKyBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSArICJweCk7
ICIKKyAgICAgICAgKyAid2lkdGg6ICIgKyBkaW1lbnNpb25zLndpZHRoICsgInB4OyAiCisgICAg
ICAgICsgImhlaWdodDogIiArIGRpbWVuc2lvbnMuaGVpZ2h0ICsgInB4OyAiCisgICAgICAgICsg
ImZvbnQ6ICIgKyBsaW5lSGVpZ2h0ICsgInB4LzEgQWhlbSwgc2Fucy1zZXJpZjsgIgorICAgICAg
ICArICJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH0iKTsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1
bGUoIiMiICsgZWxlbWVudElkICsgIiBwIHsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlOiAwOyB3b3Jk
LXdyYXA6IGJyZWFrLXdvcmQ7IGxldHRlci1zcGFjaW5nOiAwOyB9Iik7CisKKyAgICB2YXIgdGV4
dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGdlbmVyYXRlU3RyaW5nKGRpbWVuc2lvbnMsIGxp
bmVIZWlnaHQpKTsKKyAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAg
ICBwLmFwcGVuZENoaWxkKHRleHQpOworCisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQocCk7Cit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFu
Z2xlLTAwMS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwOTUxZTAwNGZiZjE0N2ViNTY0ZDFi
ZmRjYTcyMGZiMWQ1NDE3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDEt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIGZvbnQ6IDEwMHB4
LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKKyAgICAgICAg
Y29sb3I6IGdyZWVuOworICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgIGhlaWdodDogMzAw
cHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIFJlcXVpcmVzIEFoZW0g
Zm9udC4gVGVzdHMgdGhhdCBpbmxpbmUgY29udGVudCBhdm9pZHMgdGhlIGJvcmRlciByYWRpdXMg
b2YgYSByb3VuZGVkIHJlY3RhbmdsZS4KKyAgICBTaG91bGQgZGlzcGxheSBmaXZlIGdyZWVuIGJv
eGVzIGluIHRoZSBzaGFwZSBvZiBhIHBsdXMuCisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4g
WCA8YnIvPlhYWDxici8+IFggPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3Vu
ZGVkLXJlY3RhbmdsZS0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk5N2JkODcxYTcxZGM3NThhYTc4YzI1NjQ5MjZjZGEwN2FhYjZjNDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDEuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNF
bmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7Cisg
ICAgICAgIGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6IGdy
ZWVuOworICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CisgICAgICAgIHdpZHRoOiAzMDBw
eDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6
IHJlY3RhbmdsZSgwLCAwLCAzMDBweCwgMzAwcHgsIDEwMHB4LCAxMDBweCk7CisgICAgfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIFJlcXVpcmVzIEFoZW0gZm9udC4gVGVzdHMgdGhh
dCBpbmxpbmUgY29udGVudCBhdm9pZHMgdGhlIGJvcmRlciByYWRpdXMgb2YgYSByb3VuZGVkIHJl
Y3RhbmdsZS4KKyAgICBTaG91bGQgZGlzcGxheSBmaXZlIGdyZWVuIGJveGVzIGluIHRoZSBzaGFw
ZSBvZiBhIHBsdXMuCisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj5YWFhYWDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAyLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGU5NjMy
OTc0NGIzODY1YmZhNGIzNWFhOWI3YTgzMzJhYTQ1ZmIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRl
ZC1yZWN0YW5nbGUtMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9yb3VuZGVk
LXJlY3RhbmdsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGNyZWF0ZVNp
bXVsYXRlZFNoYXBlRWxlbWVudCgpIHsKKyAgICAgICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICB2YXIgZGltZW5zaW9ucyA9
IHsgIHdpZHRoOiAyMDAsIGhlaWdodDogMzAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNoYXBlWDogMjUsIHNoYXBlWTogNDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hh
cGVXaWR0aDogMTAwLCBzaGFwZUhlaWdodDogMjAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNoYXBlUmFkaXVzWDogMCwgc2hhcGVSYWRpdXNZOiA1NSB9OworICAgICAgICBnZW5lcmF0
ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCgic2hhcGUtaW5zaWRlMSIsIHN0eWxlc2hlZXQuc2hlZXQs
IGRpbWVuc2lvbnMsIDkpOworICAgICAgICBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWCA9IDU1Owor
ICAgICAgICBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSA9IDA7CisgICAgICAgIGdlbmVyYXRlU2lt
dWxhdGVkU2hhcGVFbGVtZW50KCJzaGFwZS1pbnNpZGUyIiwgc3R5bGVzaGVldC5zaGVldCwgZGlt
ZW5zaW9ucywgOSk7CisgICAgfQorPC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgor
ICAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
ImNyZWF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCgpIj4KKzxkaXYgaWQ9InNoYXBlLWluc2lkZTEi
IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+PC9kaXY+Cis8ZGl2IGlkPSJzaGFwZS1pbnNp
ZGUyIiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2siPjwvZGl2PgorPGRpdj4KKyAgICBUaGlz
IHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyB0d28gcmVjdGFuZ3VsYXIg
c2hhcGUtaW5zaWRlcyB3aXRoIG9uZSBvZgorICAgIGNvcm5lciByYWRpdXMgWCBvciBjb3JuZXIg
cmFkaXVzIFkgZXF1YWwgdG8gemVyby4gVGhlIGNvbnRlbnQgc2hvdWxkIGZpbGwgYW5kIHNsaWdo
dGx5CisgICAgb3ZlcmZsb3cgdGhlc2UgdHdvIHJlY3Rhbmd1bGFyIGFyZWFzIHdpdGggYWx0ZXJu
YXRpbmcgYmxhY2sgYW5kIHdoaXRlIGJveGVzLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZlZDk0OTIyMjhmZTIzYTFhM2U5ZTNiMWRjMTI4NGFiNzMxOTc0YzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDIuaHRtbApAQCAtMCwwICsxLDM0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVTaGFwZUVs
ZW1lbnQoKSB7CisgICAgICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInN0eWxlc2hlZXQiKTsKKyAgICAgICAgdmFyIGRpbWVuc2lvbnMgPSB7ICB3aWR0aDogMjAw
LCBoZWlnaHQ6IDMwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZVg6IDI1LCBz
aGFwZVk6IDQ1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlV2lkdGg6IDEwMCwg
c2hhcGVIZWlnaHQ6IDIwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZVJhZGl1
c1g6IDU1LCBzaGFwZVJhZGl1c1k6IDAgfTsKKyAgICAgICAgZ2VuZXJhdGVTaGFwZUVsZW1lbnQo
InNoYXBlLWluc2lkZTEiLCBzdHlsZXNoZWV0LnNoZWV0LCBkaW1lbnNpb25zLCA5KTsKKyAgICAg
ICAgZGltZW5zaW9ucy5zaGFwZVJhZGl1c1ggPSA1NTsKKyAgICAgICAgZGltZW5zaW9ucy5zaGFw
ZVJhZGl1c1kgPSAwOworICAgICAgICBnZW5lcmF0ZVNoYXBlRWxlbWVudCgic2hhcGUtaW5zaWRl
MiIsIHN0eWxlc2hlZXQuc2hlZXQsIGRpbWVuc2lvbnMsIDkpOworICAgIH0KKzwvc2NyaXB0Pgor
PHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICBib2R5IHsgbWFyZ2luOiAwOyB9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJjcmVhdGVTaGFwZUVsZW1lbnQoKSI+Cis8ZGl2IGlk
PSJzaGFwZS1pbnNpZGUxIiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2siPjwvZGl2PgorPGRp
diBpZD0ic2hhcGUtaW5zaWRlMiIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrIj48L2Rpdj4K
KzxkaXY+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMg
dHdvIHJlY3Rhbmd1bGFyIHNoYXBlLWluc2lkZXMgd2l0aCBvbmUgb2YKKyAgICBjb3JuZXIgcmFk
aXVzIFggb3IgY29ybmVyIHJhZGl1cyBZIGVxdWFsIHRvIHplcm8uIFRoZSBjb250ZW50IHNob3Vs
ZCBmaWxsIGFuZCBzbGlnaHRseQorICAgIG92ZXJmbG93IHRoZXNlIHR3byByZWN0YW5ndWxhciBh
cmVhcyB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZCB3aGl0ZSBib3hlcy4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAzLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDU4ZWM1
NzdkOTlkZWMyMGVhZmQ3YzYyNDgyMTY2MWRlYTk3YTc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRl
ZC1yZWN0YW5nbGUtMDAzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9yb3VuZGVk
LXJlY3RhbmdsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGNyZWF0ZVNp
bXVsYXRlZFNoYXBlRWxlbWVudCgpIHsKKyAgICAgICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICB2YXIgZGltZW5zaW9ucyA9
IHsgIHdpZHRoOiA0MDAsIGhlaWdodDogNjAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNoYXBlWDogNDUsIHNoYXBlWTogMjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hh
cGVXaWR0aDogMzAwLCBzaGFwZUhlaWdodDogNTAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNoYXBlUmFkaXVzWDogNzUsIHNoYXBlUmFkaXVzWTogNTUgfTsKKyAgICAgICAgZ2VuZXJh
dGVTaW11bGF0ZWRTaGFwZUVsZW1lbnQoInNoYXBlLWluc2lkZSIsIHN0eWxlc2hlZXQuc2hlZXQs
IGRpbWVuc2lvbnMsIDIyKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzdHlsZSBpZD0ic3R5bGVzaGVl
dCI+CisgICAgYm9keSB7IG1hcmdpbjogMDsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0iY3JlYXRlU2ltdWxhdGVkU2hhcGVFbGVtZW50KCkiPgorPGRpdiBpZD0ic2hhcGUtaW5z
aWRlIj48L2Rpdj4KKzxkaXY+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQu
IEl0IGNyZWF0ZXMgYSByb3VuZGVkIHJlY3RhbmdsZSBzaGFwZS1pbnNpZGUgYW5kIGZpbGxzIGl0
CisgICAgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQgd2hpdGUgc3F1YXJlcyBhcyBpbmxpbmUg
Y29udGVudC4gVGhlIGVudGlyZSBzaGFwZS1pbnNpZGUgc2hvdWxkCisgICAgYmUgZmlsbGVkLCB3
aXRoIGEgc21hbGwgYW1vdW50IG9mIG92ZXJmbG93LgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAw
My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkzMjgzOGNlOGM3OThiZWRjZTY5MDRhMzkzM2RhZDI5MDU3OTZk
NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDMuaHRtbApAQCAtMCwwICsx
LDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVTaGFw
ZUVsZW1lbnQoKSB7CisgICAgICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInN0eWxlc2hlZXQiKTsKKyAgICAgICAgdmFyIGRpbWVuc2lvbnMgPSB7ICB3aWR0aDog
NDAwLCBoZWlnaHQ6IDYwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZVg6IDQ1
LCBzaGFwZVk6IDI1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlV2lkdGg6IDMw
MCwgc2hhcGVIZWlnaHQ6IDUwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZVJh
ZGl1c1g6IDc1LCBzaGFwZVJhZGl1c1k6IDU1IH07CisgICAgICAgIGdlbmVyYXRlU2hhcGVFbGVt
ZW50KCJzaGFwZS1pbnNpZGUiLCBzdHlsZXNoZWV0LnNoZWV0LCBkaW1lbnNpb25zLCAyMik7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgIGJvZHkgeyBtYXJn
aW46IDA7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImNyZWF0ZVNoYXBlRWxl
bWVudCgpIj4KKzxkaXYgaWQ9InNoYXBlLWluc2lkZSI+PC9kaXY+Cis8ZGl2PgorICAgIFRoaXMg
dGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcm91bmRlZCByZWN0YW5n
bGUgc2hhcGUtaW5zaWRlIGFuZCBmaWxscyBpdAorICAgIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sg
YW5kIHdoaXRlIHNxdWFyZXMgYXMgaW5saW5lIGNvbnRlbnQuIFRoZSBlbnRpcmUgc2hhcGUtaW5z
aWRlIHNob3VsZAorICAgIGJlIGZpbGxlZCwgd2l0aCBhIHNtYWxsIGFtb3VudCBvZiBvdmVyZmxv
dy4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUt
MDA0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDQtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYzNlOTJiODJiNDU0YzMyNDY5Njc0MDRkMTNmNmYwZjljYWU1ZTVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDA0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGZ1
bmN0aW9uIGNyZWF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCgpIHsKKyAgICAgICAgdmFyIHN0eWxl
c2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICB2
YXIgZGltZW5zaW9ucyA9IHsgIHdpZHRoOiA3MDAsIGhlaWdodDogNTAwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNoYXBlWDogMjUsIHNoYXBlWTogNDUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hhcGVXaWR0aDogNjAwLCBzaGFwZUhlaWdodDogMzAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNoYXBlUmFkaXVzWDogMTAwLCBzaGFwZVJhZGl1c1k6IDE1MCB9
OworICAgICAgICBnZW5lcmF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCgic2hhcGUtaW5zaWRlIiwg
c3R5bGVzaGVldC5zaGVldCwgZGltZW5zaW9ucywgOTApOworICAgIH0KKzwvc2NyaXB0PgorPHN0
eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICBib2R5IHsgbWFyZ2luOiAwOyB9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJjcmVhdGVTaW11bGF0ZWRTaGFwZUVsZW1lbnQoKSI+Cis8
ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPjwvZGl2PgorPGRpdj4KKyAgICBUaGlzIHRlc3QgcmVxdWly
ZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHJvdW5kZWQgcmVjdGFuZ2xlIHNoYXBlLWlu
c2lkZSBhbmQgZmlsbHMgaXQKKyAgICB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZCB3aGl0ZSBz
cXVhcmVzIGFzIGlubGluZSBjb250ZW50LiBUaGUgbWlkZGxlIGxpbmUgb3ZlcmxhcHMgdGhlIHRv
cAorICAgIGFuZCBib3R0b20gcm91bmRlZCBjb3JuZXIgYXJlYS4gVGhlIGVudGlyZSBzaGFwZS1p
bnNpZGUgc2hvdWxkIGJlIGZpbGxlZCwgd2l0aCBhIHNtYWxsIGFtb3VudAorICAgIG9mIG92ZXJm
bG93LgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3Rhbmds
ZS0wMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMTAyMmM2
ZDMyZTQxNmJkODFmODNiNjA5ZjdhNDNkNTUzNzU2ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVk
LXJlY3RhbmdsZS0wMDQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1
ZSk7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVTaGFwZUVsZW1lbnQoKSB7CisgICAgICAgIHZhciBz
dHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlc2hlZXQiKTsKKyAgICAg
ICAgdmFyIGRpbWVuc2lvbnMgPSB7ICB3aWR0aDogNzAwLCBoZWlnaHQ6IDUwMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaGFwZVg6IDI1LCBzaGFwZVk6IDQ1LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNoYXBlV2lkdGg6IDYwMCwgc2hhcGVIZWlnaHQ6IDMwMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaGFwZVJhZGl1c1g6IDEwMCwgc2hhcGVSYWRpdXNZOiAx
NTAgfTsKKyAgICAgICAgZ2VuZXJhdGVTaGFwZUVsZW1lbnQoInNoYXBlLWluc2lkZSIsIHN0eWxl
c2hlZXQuc2hlZXQsIGRpbWVuc2lvbnMsIDkwKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzdHlsZSBp
ZD0ic3R5bGVzaGVldCI+CisgICAgYm9keSB7IG1hcmdpbjogMDsgfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0iY3JlYXRlU2hhcGVFbGVtZW50KCkiPgorPGRpdiBpZD0ic2hhcGUt
aW5zaWRlIj48L2Rpdj4KKzxkaXY+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZv
bnQuIEl0IGNyZWF0ZXMgYSByb3VuZGVkIHJlY3RhbmdsZSBzaGFwZS1pbnNpZGUgYW5kIGZpbGxz
IGl0CisgICAgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQgd2hpdGUgc3F1YXJlcyBhcyBpbmxp
bmUgY29udGVudC4gVGhlIG1pZGRsZSBsaW5lIG92ZXJsYXBzIHRoZSB0b3AKKyAgICBhbmQgYm90
dG9tIHJvdW5kZWQgY29ybmVyIGFyZWEuIFRoZSBlbnRpcmUgc2hhcGUtaW5zaWRlIHNob3VsZCBi
ZSBmaWxsZWQsIHdpdGggYSBzbWFsbCBhbW91bnQKKyAgICBvZiBvdmVyZmxvdy4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDUwOTUxZTAwNGZiZjE0N2ViNTY0ZDFiZmRjYTcyMGZiMWQ1NDE3YTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhw
ZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSAgICAjc2hhcGUtaW5zaWRlIHsKLSAgICAgICAg
Zm9udDogMTAwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOwotICAgICAgICB3aGl0ZS1zcGFjZTogcHJl
OwotICAgICAgICBjb2xvcjogZ3JlZW47Ci0gICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAg
aGVpZ2h0OiAzMDBweDsKLSAgICB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gICAgUmVx
dWlyZXMgQWhlbSBmb250LiBUZXN0cyB0aGF0IGlubGluZSBjb250ZW50IGF2b2lkcyB0aGUgYm9y
ZGVyIHJhZGl1cyBvZiBhIHJvdW5kZWQgcmVjdGFuZ2xlLgotICAgIFNob3VsZCBkaXNwbGF5IGZp
dmUgZ3JlZW4gYm94ZXMgaW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4KLSAgICA8ZGl2IGlkPSJzaGFw
ZS1pbnNpZGUiPiBYIDxici8+WFhYPGJyLz4gWCA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTdiZDg3MWE3MWRjNzU4YWE3OGMyNTY0OTI2Y2Rh
MDdhYWI2YzQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJv
dW5kZWQtcmVjdGFuZ2xlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lv
bnNFbmFibGVkKHRydWUpOwotPC9zY3JpcHQ+Ci08c3R5bGU+Ci0gICAgI3NoYXBlLWluc2lkZSB7
Ci0gICAgICAgIGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKLSAgICAgICAgY29sb3I6
IGdyZWVuOwotICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7Ci0gICAgICAgIHdpZHRoOiAz
MDBweDsKLSAgICAgICAgaGVpZ2h0OiAzMDBweDsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNp
ZGU6IHJlY3RhbmdsZSgwLCAwLCAzMDBweCwgMzAwcHgsIDEwMHB4LCAxMDBweCk7Ci0gICAgfQot
PC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICAgIFJlcXVpcmVzIEFoZW0gZm9udC4gVGVzdHMg
dGhhdCBpbmxpbmUgY29udGVudCBhdm9pZHMgdGhlIGJvcmRlciByYWRpdXMgb2YgYSByb3VuZGVk
IHJlY3RhbmdsZS4KLSAgICBTaG91bGQgZGlzcGxheSBmaXZlIGdyZWVuIGJveGVzIGluIHRoZSBz
aGFwZSBvZiBhIHBsdXMuCi0gICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj5YWFhYWDwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167353</attachid>
            <date>2012-10-05 11:05:08 -0700</date>
            <delta_ts>2012-10-05 15:00:56 -0700</delta_ts>
            <desc>Adding shape outline</desc>
            <filename>bug-96669-20121005110416.patch</filename>
            <type>text/plain</type>
            <size>22117</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDEwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDZiNDI4MWIxZTNjZGFmZTg5ZDBi
MTUwZDNkYjJmZjQ0YTczN2QyNy4uMWQ5MTZmMWQwYmU0MzYyMDU5ZTNiYzgyYWNkMmMyYTYwODBm
NDVlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTA1ICBCZWFyIFRyYXZpcyAgPGJl
dHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEFkZCBzaGFwZS1p
bnNpZGUgdGVzdHMgZm9yIHJvdW5kZWQgcmVjdGFuZ2xlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgbXVsdGlwbGUgcm91bmRlZCByZWN0YW5n
bGUgdGVzdHMuIFRoZSBtb3JlIGNvbXBsZXggdGVzdHMgdXNlIGZsb2F0ICJzYW5kYmFncyIKKyAg
ICAgICAgdG8gc2ltdWxhdGUgdGhlIHNoYXBlLWluc2lkZSBhcmVhIGluIHRoZSB0ZXN0IGV4cGVj
dGF0aW9ucy4KKyAgICAgICAgKFNlZSBodHRwOi8vd3d3LmFsaXN0YXBhcnQuY29tL2FydGljbGVz
L3NhbmRiYWdzLykKKyAgICAgICAgSW4gZ2VuZXJhbCwgZWFjaCBsaW5lIGhhcyBpdHMgb3duIHBh
aXIgb2YgbGVmdCBhbmQgcmlnaHQgZmxvYXRzIChib3RoIGxpbmVIZWlnaHQgdGFsbCksCisgICAg
ICAgIHRvIHBvc2l0aW9uIHRoZSB0ZXh0IGFuZCBhcHByb3ByaWF0ZWx5IGxpbWl0IGl0cyB3aWR0
aC4gSW4gdGhlIHNpbXBsZSwgMCBjb3JuZXIgcmFkaXVzCisgICAgICAgIGNhc2VzLCB0aGVzZSBm
bG9hdHMgY2FuIGJlIG1lcmdlZCBiZWNhdXNlIHRoZXkgYWxsIGhhdmUgdGhlIHNhbWUgd2lkdGgg
b24gdGhlIGxlZnQgYW5kCisgICAgICAgIHJpZ2h0LgorCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qczogQ29udGFpbnMgZnVuY3Rpb25hbGl0
eSBmb3IgZ2VuZXJhdGluZworICAgICAgICBhIHNoYXBlLWluc2lkZSwgc2ltdWxhdGluZyBvbmUs
IGFuZCBnZW5lcmF0aW5nIGNvbnRlbnQgdGhhdCBzaG91bGQgcm91Z2hseSBmaWxsIHRoZQorICAg
ICAgICBzaGFwZS1pbnNpZGUuCisgICAgICAgICh4RnJvbUVsbGlwc2VDZW50ZXIpOiBUaGUgeCBk
aXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2YgYW4gZWxsaXBzZSwgYmFzZWQgb24gaXRzIHkKKyAg
ICAgICAgZGlzdGFuY2UgZnJvbSBjZW50ZXIuCisgICAgICAgICh4SW5zZXQpOiBUaGUgaW5zZXQg
b2YgYSByb3VuZGVkIHJlY3RhbmdsZSBmcm9tIGl0cyBib3VuZGluZyBib3guCisgICAgICAgIChn
ZW5lcmF0ZVN0cmluZyk6IEdlbmVyYXRlIGEgc3RyaW5nIHRoYXQgcm91Z2hseSBmaWxscyBhIHNo
YXBlLWluc2lkZSdzIGNvbnRlbnQgYXJlYS4KKyAgICAgICAgKHNpbXVsYXRlU2hhcGUpOiBDcmVh
dGUgZmxvYXRzIHRvIHNpbXVsYXRlIGEgc2hhcGUtaW5zaWRlIGFyZWEuCisgICAgICAgIChzaW11
bGF0ZVNoYXBlT3V0bGluZSk6IENyZWF0ZSBhbiBvdXRsaW5lIGZvciB0aGUgcm91bmRlZCByZWN0
YW5nbGUgc2hhcGUtaW5zaWRlLgorICAgICAgICAoZ2VuZXJhdGVTaW11bGF0ZWRTaGFwZUVsZW1l
bnQpOiBTaW11bGF0ZSBhIHNoYXBlLWluc2lkZSBhbmQgYXBwcm9wcmlhdGVseSBmaWxsIGl0Cisg
ICAgICAgIHdpdGggY29udGVudC4KKyAgICAgICAgKGdlbmVyYXRlU2hhcGVFbGVtZW50KTogQ3Jl
YXRlIGEgc2hhcGUtaW5zaWRlIGFuZCBmaWxsIGl0IHdpdGggY29udGVudC4KKyAgICAgICAgKiBm
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3Rhbmds
ZS0wMDEtZXhwZWN0ZWQuaHRtbDogCisgICAgICAgIFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3Rhbmds
ZS1leHBlY3RlZC5odG1sLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS5odG1sOiAKKyAgICAgICAgUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAyLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0w
MDMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5k
ZWQtcmVjdGFuZ2xlLTAwNC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDQu
aHRtbDogQWRkZWQuCisKKwogMjAxMi0xMC0wNCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBmbGV4Ym94LWJhc2VsaW5lLmh0bWwgdG8g
dGVzdCB0aGUgbmV3IGJlaGF2aW9yIGFmdGVyIHIxMzA0MDkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMDliNjQ0NzQ2MmNkMzFmODk1ZDY5NzdlMDcxOTM0M2NlOWQ0YzVhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9yb3Vu
ZGVkLXJlY3RhbmdsZS5qcwpAQCAtMCwwICsxLDExMSBAQAorZnVuY3Rpb24geEZyb21FbGxpcHNl
Q2VudGVyKHlGcm9tRWxsaXBzZUNlbnRlciwgcmFkaXVzWCwgcmFkaXVzWSkgeworICAgIHJldHVy
biByYWRpdXNYICogTWF0aC5zcXJ0KDEgLSBNYXRoLnBvdyh5RnJvbUVsbGlwc2VDZW50ZXIgLyBy
YWRpdXNZLCAyKSk7Cit9CisKK2Z1bmN0aW9uIHhJbnNldChkaW1lbnNpb25zLCBsaW5lVG9wLCBs
aW5lQm90dG9tKSB7CisgICAgdmFyIGxlZnQ7CisgICAgaWYgKGxpbmVUb3AgPCBkaW1lbnNpb25z
LnNoYXBlSGVpZ2h0ICYmIGxpbmVCb3R0b20gPiBkaW1lbnNpb25zLnNoYXBlSGVpZ2h0KQorICAg
ICAgICBsaW5lQm90dG9tID0gZGltZW5zaW9ucy5zaGFwZUhlaWdodDsKKyAgICBpZiAobGluZVRv
cCA+PSBkaW1lbnNpb25zLnNoYXBlSGVpZ2h0IHx8IChsaW5lVG9wID49IGRpbWVuc2lvbnMuc2hh
cGVSYWRpdXNZICYmIGxpbmVCb3R0b20gPD0gZGltZW5zaW9ucy5zaGFwZUhlaWdodCAtIGRpbWVu
c2lvbnMuc2hhcGVSYWRpdXNZKSkgeworICAgICAgICBsZWZ0ID0gMDsKKyAgICB9IGVsc2Ugewor
ICAgICAgICB2YXIgeUZyb21FbGxpcHNlQ2VudGVyID0gTWF0aC5tYXgoKGRpbWVuc2lvbnMuc2hh
cGVSYWRpdXNZIC0gbGluZVRvcCksIGxpbmVCb3R0b20gLSAoZGltZW5zaW9ucy5zaGFwZUhlaWdo
dCAtIGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNZKSk7CisgICAgICAgIGxlZnQgPSBkaW1lbnNpb25z
LnNoYXBlUmFkaXVzWCAtIHhGcm9tRWxsaXBzZUNlbnRlcih5RnJvbUVsbGlwc2VDZW50ZXIsIGRp
bWVuc2lvbnMuc2hhcGVSYWRpdXNYLCBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSk7CisgICAgfQor
ICAgIHJldHVybiBsZWZ0OworfQorCitmdW5jdGlvbiBnZW5lcmF0ZVN0cmluZyhkaW1lbnNpb25z
LCBsaW5lSGVpZ2h0KSB7CisgICAgdmFyIHJlc3VsdExlbmd0aCA9IDA7CisgICAgaWYgKGRpbWVu
c2lvbnMuc2hhcGVSYWRpdXNYID09IDAgfHwgZGltZW5zaW9ucy5zaGFwZVJhZGl1c1kgPT0gMCkK
KyAgICAgICAgcmVzdWx0TGVuZ3RoID0gZGltZW5zaW9ucy5zaGFwZVdpZHRoICogZGltZW5zaW9u
cy5zaGFwZUhlaWdodCAvIChsaW5lSGVpZ2h0ICogbGluZUhlaWdodCk7CisgICAgZWxzZSB7Cisg
ICAgICAgIGZvciAodmFyIGxpbmVUb3AgPSAwOyBsaW5lVG9wIDwgZGltZW5zaW9ucy5zaGFwZUhl
aWdodDsgbGluZVRvcCArPSBsaW5lSGVpZ2h0KSB7CisgICAgICAgICAgICB2YXIgd2lkdGggPSBk
aW1lbnNpb25zLnNoYXBlV2lkdGggLSAyICogeEluc2V0KGRpbWVuc2lvbnMsIGxpbmVUb3AsIGxp
bmVUb3AgKyBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIHJlc3VsdExlbmd0aCArPSB3aWR0aCAv
IGxpbmVIZWlnaHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIChuZXcgQXJyYXkoTWF0
aC5jZWlsKHJlc3VsdExlbmd0aCAvIDIpKS5qb2luKCJ4ICIpKTsKK30KKworZnVuY3Rpb24gc2lt
dWxhdGVTaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQsIGRpbWVuc2lvbnMsIGxpbmVIZWlnaHQp
IHsKKyAgICB2YXIgc2ltcGxlUmVjdGFuZ2xlID0gZGltZW5zaW9ucy5zaGFwZVJhZGl1c1ggPT0g
MCB8fCBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSA9PSAwOworICAgIHZhciBmbG9hdEhlaWdodCA9
IHNpbXBsZVJlY3RhbmdsZSA/IGRpbWVuc2lvbnMuc2hhcGVIZWlnaHQgOiBsaW5lSGVpZ2h0Owor
CisgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJZCArICIgeyB3aWR0aDog
IiArIGRpbWVuc2lvbnMud2lkdGggKyAicHg7IGhlaWdodDogIiArIGRpbWVuc2lvbnMuaGVpZ2h0
ICsgInB4OyBmb250OiAiICsgbGluZUhlaWdodCArICJweC8xIEFoZW0sIHNhbnMtc2VyaWY7IH0i
KTsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVudElkICsgIiAuZmxvYXQg
eyBoZWlnaHQ6ICIgKyBmbG9hdEhlaWdodCArICJweDsgfSIpOworICAgIHN0eWxlc2hlZXQuaW5z
ZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQgKyAiIC5sZWZ0IHsgZmxvYXQ6IGxlZnQ7IGNsZWFyOiBs
ZWZ0OyB9Iik7CisgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJZCArICIg
LnJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyBjbGVhcjogcmlnaHQ7IH0iKTsKKyAgICBzdHlsZXNoZWV0
Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVudElkICsgIiBwIHsgLXdlYmtpdC1tYXJnaW4tYmVmb3Jl
OiAwOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IGxldHRlci1zcGFjaW5nOiAwOyB9Iik7CisKKyAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAg
aWYgKGRpbWVuc2lvbnMuc2hhcGVZID4gMCkgeworICAgICAgICB2YXIgcGFkZGluZ1RvcCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBwYWRkaW5nVG9wLnNldEF0dHJp
YnV0ZSgiY2xhc3MiLCAiZmxvYXQgbGVmdCIpOworICAgICAgICBwYWRkaW5nVG9wLnN0eWxlLndp
ZHRoID0gZGltZW5zaW9ucy53aWR0aCArICJweCI7CisgICAgICAgIHBhZGRpbmdUb3Auc3R5bGUu
aGVpZ2h0ID0gZGltZW5zaW9ucy5zaGFwZVkgKyAicHgiOworICAgICAgICBlbGVtZW50LmFwcGVu
ZENoaWxkKHBhZGRpbmdUb3ApOworICAgIH0KKworICAgIGZvciAodmFyIHkgPSAwOyB5IDwgZGlt
ZW5zaW9ucy5zaGFwZUhlaWdodDsgeSs9IGZsb2F0SGVpZ2h0KSB7CisgICAgICAgIHZhciBpbnNl
dCA9IHNpbXBsZVJlY3RhbmdsZSA/IDAgOiB4SW5zZXQoZGltZW5zaW9ucywgeSwgeSArIGxpbmVI
ZWlnaHQpOworCisgICAgICAgIHZhciBwYWRkaW5nTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgICAgICBwYWRkaW5nTGVmdC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImZs
b2F0IGxlZnQiKTsKKyAgICAgICAgcGFkZGluZ0xlZnQuc3R5bGUud2lkdGggPSBkaW1lbnNpb25z
LnNoYXBlWCArIGluc2V0ICsgInB4IjsKKyAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChwYWRk
aW5nTGVmdCk7CisKKyAgICAgICAgdmFyIHBhZGRpbmdSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgICAgICBwYWRkaW5nUmlnaHQuc2V0QXR0cmlidXRlKCJjbGFzcyIs
ICJmbG9hdCByaWdodCIpOworICAgICAgICBwYWRkaW5nUmlnaHQuc3R5bGUud2lkdGggPSBNYXRo
LmZsb29yKChkaW1lbnNpb25zLndpZHRoIC0gZGltZW5zaW9ucy5zaGFwZVdpZHRoIC0gZGltZW5z
aW9ucy5zaGFwZVgpICsgaW5zZXQpICsgInB4IjsKKyAgICAgICAgZWxlbWVudC5hcHBlbmRDaGls
ZChwYWRkaW5nUmlnaHQpOworICAgIH0KK30KKworZnVuY3Rpb24gc2ltdWxhdGVTaGFwZU91dGxp
bmUoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBkaW1lbnNpb25zKSB7CisgICAgc3R5bGVzaGVldC5p
bnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJZCArICJ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfSIpOwor
ICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQgKyAiOjpiZWZvcmUgeyAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiY29udGVudDogJyAnOyAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKyAiZGlzcGxheTogYmxvY2s7ICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICArICJwb3NpdGlvbjogYWJzb2x1dGU7ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICArICJ0b3A6ICIgKyAoZGltZW5zaW9ucy5zaGFwZVkgLSAxKSArICJweDsgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImxlZnQ6ICIgKyAoZGltZW5zaW9ucy5zaGFw
ZVggLSAxKSArICJweDsgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIndpZHRoOiAi
ICsgZGltZW5zaW9ucy5zaGFwZVdpZHRoICsgInB4OyAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKyAiaGVpZ2h0OiAiICsgZGltZW5zaW9ucy5zaGFwZUhlaWdodCArICJweDsgIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICsgImJvcmRlcjogMXB4IHNvbGlkIGJsdWU7ICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICArICJib3JkZXItcmFkaXVzOiAiICsgZGltZW5zaW9u
cy5zaGFwZVJhZGl1c1ggKyAicHggLyAiICsgZGltZW5zaW9ucy5zaGFwZVJhZGl1c1kgKyAicHg7
IH0iKTsKK30KKworZnVuY3Rpb24gZ2VuZXJhdGVTaW11bGF0ZWRTaGFwZUVsZW1lbnQoZWxlbWVu
dElkLCBzdHlsZXNoZWV0LCBkaW1lbnNpb25zLCBsaW5lSGVpZ2h0KSB7CisgICAgc2ltdWxhdGVT
aGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQsIGRpbWVuc2lvbnMsIGxpbmVIZWlnaHQpOworICAg
IHNpbXVsYXRlU2hhcGVPdXRsaW5lKGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgZGltZW5zaW9ucyk7
CisgICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZW5lcmF0ZVN0cmluZyhk
aW1lbnNpb25zLCBsaW5lSGVpZ2h0KSk7CisgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJwIik7CisgICAgcC5hcHBlbmRDaGlsZCh0ZXh0KTsKKworICAgIHZhciBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICBlbGVtZW50LmFwcGVuZENo
aWxkKHApOworfQorCitmdW5jdGlvbiBnZW5lcmF0ZVNoYXBlRWxlbWVudChlbGVtZW50SWQsIHN0
eWxlc2hlZXQsIGRpbWVuc2lvbnMsIGxpbmVIZWlnaHQpIHsKKyAgICBzdHlsZXNoZWV0Lmluc2Vy
dFJ1bGUoIiMiICsgZWxlbWVudElkICsgIiB7ICIKKyAgICAgICAgKyAiLXdlYmtpdC1zaGFwZS1p
bnNpZGU6IHJlY3RhbmdsZSgiCisgICAgICAgICsgZGltZW5zaW9ucy5zaGFwZVggKyAicHgsICIK
KyAgICAgICAgKyBkaW1lbnNpb25zLnNoYXBlWSArICJweCwgIgorICAgICAgICArIGRpbWVuc2lv
bnMuc2hhcGVXaWR0aCArICJweCwgIgorICAgICAgICArIGRpbWVuc2lvbnMuc2hhcGVIZWlnaHQg
KyAicHgsICIKKyAgICAgICAgKyBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWCArICJweCwgIgorICAg
ICAgICArIGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNZICsgInB4KTsgIgorICAgICAgICArICJ3aWR0
aDogIiArIGRpbWVuc2lvbnMud2lkdGggKyAicHg7ICIKKyAgICAgICAgKyAiaGVpZ2h0OiAiICsg
ZGltZW5zaW9ucy5oZWlnaHQgKyAicHg7ICIKKyAgICAgICAgKyAiZm9udDogIiArIGxpbmVIZWln
aHQgKyAicHgvMSBBaGVtLCBzYW5zLXNlcmlmOyAiCisgICAgICAgICsgIndvcmQtd3JhcDogYnJl
YWstd29yZDsgfSIpOworICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQg
KyAiIHAgeyAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDA7IHdvcmQtd3JhcDogYnJlYWstd29yZDsg
bGV0dGVyLXNwYWNpbmc6IDA7IH0iKTsKKyAgICBzaW11bGF0ZVNoYXBlT3V0bGluZShlbGVtZW50
SWQsIHN0eWxlc2hlZXQsIGRpbWVuc2lvbnMpOworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoZ2VuZXJhdGVTdHJpbmcoZGltZW5zaW9ucywgbGluZUhlaWdodCkpOworICAg
IHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgIHAuYXBwZW5kQ2hpbGQo
dGV4dCk7CisKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZCk7CisgICAgZWxlbWVudC5hcHBlbmRDaGlsZChwKTsKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQt
cmVjdGFuZ2xlLTAwMS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAxLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTA5NTFlMDA0ZmJmMTQ3ZWI1NjRkMWJmZGNhNzIwZmIxZDU0MTdh
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMS1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
KyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgZm9udDogMTAwcHgvMSBBaGVtLCBzYW5zLXNl
cmlmOworICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOworICAgICAgICBjb2xvcjogZ3JlZW47Cisg
ICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICB9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgUmVxdWlyZXMgQWhlbSBmb250LiBUZXN0cyB0aGF0
IGlubGluZSBjb250ZW50IGF2b2lkcyB0aGUgYm9yZGVyIHJhZGl1cyBvZiBhIHJvdW5kZWQgcmVj
dGFuZ2xlLgorICAgIFNob3VsZCBkaXNwbGF5IGZpdmUgZ3JlZW4gYm94ZXMgaW4gdGhlIHNoYXBl
IG9mIGEgcGx1cy4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPiBYIDxici8+WFhYPGJyLz4g
WCA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAw
MS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk3YmQ4NzFhNzFk
Yzc1OGFhNzhjMjU2NDkyNmNkYTA3YWFiNmM0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVj
dGFuZ2xlLTAwMS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8
L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgZm9udDogMTAw
cHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIHdv
cmQtd3JhcDogYnJlYWstd29yZDsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBoZWln
aHQ6IDMwMHB4OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDAsIDAs
IDMwMHB4LCAzMDBweCwgMTAwcHgsIDEwMHB4KTsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisgICAgUmVxdWlyZXMgQWhlbSBmb250LiBUZXN0cyB0aGF0IGlubGluZSBjb250ZW50
IGF2b2lkcyB0aGUgYm9yZGVyIHJhZGl1cyBvZiBhIHJvdW5kZWQgcmVjdGFuZ2xlLgorICAgIFNo
b3VsZCBkaXNwbGF5IGZpdmUgZ3JlZW4gYm94ZXMgaW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4KKyAg
ICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPlhYWFhYPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFu
Z2xlLTAwMi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4ZTk2MzI5NzQ0YjM4NjViZmE0YjM1
YWE5YjdhODMzMmFhNDVmYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDIt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gY3JlYXRlU2ltdWxhdGVkU2hhcGVFbGVt
ZW50KCkgeworICAgICAgICB2YXIgc3R5bGVzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzdHlsZXNoZWV0Iik7CisgICAgICAgIHZhciBkaW1lbnNpb25zID0geyAgd2lkdGg6IDIwMCwg
aGVpZ2h0OiAzMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVYOiAyNSwgc2hh
cGVZOiA0NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZVdpZHRoOiAxMDAsIHNo
YXBlSGVpZ2h0OiAyMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVSYWRpdXNY
OiAwLCBzaGFwZVJhZGl1c1k6IDU1IH07CisgICAgICAgIGdlbmVyYXRlU2ltdWxhdGVkU2hhcGVF
bGVtZW50KCJzaGFwZS1pbnNpZGUxIiwgc3R5bGVzaGVldC5zaGVldCwgZGltZW5zaW9ucywgOSk7
CisgICAgICAgIGRpbWVuc2lvbnMuc2hhcGVSYWRpdXNYID0gNTU7CisgICAgICAgIGRpbWVuc2lv
bnMuc2hhcGVSYWRpdXNZID0gMDsKKyAgICAgICAgZ2VuZXJhdGVTaW11bGF0ZWRTaGFwZUVsZW1l
bnQoInNoYXBlLWluc2lkZTIiLCBzdHlsZXNoZWV0LnNoZWV0LCBkaW1lbnNpb25zLCA5KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+CisgICAgYm9keSB7IG1hcmdp
bjogMDsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iY3JlYXRlU2ltdWxhdGVk
U2hhcGVFbGVtZW50KCkiPgorPGRpdiBpZD0ic2hhcGUtaW5zaWRlMSIgc3R5bGU9ImRpc3BsYXk6
aW5saW5lLWJsb2NrIj48L2Rpdj4KKzxkaXYgaWQ9InNoYXBlLWluc2lkZTIiIHN0eWxlPSJkaXNw
bGF5OmlubGluZS1ibG9jayI+PC9kaXY+Cis8ZGl2PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0
aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIHR3byByZWN0YW5ndWxhciBzaGFwZS1pbnNpZGVzIHdp
dGggb25lIG9mCisgICAgY29ybmVyIHJhZGl1cyBYIG9yIGNvcm5lciByYWRpdXMgWSBlcXVhbCB0
byB6ZXJvLiBUaGUgY29udGVudCBzaG91bGQgZmlsbCBhbmQgc2xpZ2h0bHkKKyAgICBvdmVyZmxv
dyB0aGVzZSB0d28gcmVjdGFuZ3VsYXIgYXJlYXMgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQg
d2hpdGUgYm94ZXMuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQt
cmVjdGFuZ2xlLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmVkOTQ5MjIyOGZlMjNhMWEzZTllM2IxZGMxMjg0YWI3MzE5NzRjOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLTAwMi5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcm91bmRlZC1y
ZWN0YW5nbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5h
YmxlZCh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlRWxlbWVudCgpIHsKKyAgICAg
ICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIp
OworICAgICAgICB2YXIgZGltZW5zaW9ucyA9IHsgIHdpZHRoOiAyMDAsIGhlaWdodDogMzAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlWDogMjUsIHNoYXBlWTogNDUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVXaWR0aDogMTAwLCBzaGFwZUhlaWdodDogMjAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlUmFkaXVzWDogNTUsIHNoYXBlUmFk
aXVzWTogMCB9OworICAgICAgICBnZW5lcmF0ZVNoYXBlRWxlbWVudCgic2hhcGUtaW5zaWRlMSIs
IHN0eWxlc2hlZXQuc2hlZXQsIGRpbWVuc2lvbnMsIDkpOworICAgICAgICBkaW1lbnNpb25zLnNo
YXBlUmFkaXVzWCA9IDU1OworICAgICAgICBkaW1lbnNpb25zLnNoYXBlUmFkaXVzWSA9IDA7Cisg
ICAgICAgIGdlbmVyYXRlU2hhcGVFbGVtZW50KCJzaGFwZS1pbnNpZGUyIiwgc3R5bGVzaGVldC5z
aGVldCwgZGltZW5zaW9ucywgOSk7CisgICAgfQorPC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InN0eWxl
c2hlZXQiPgorICAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9ImNyZWF0ZVNoYXBlRWxlbWVudCgpIj4KKzxkaXYgaWQ9InNoYXBlLWluc2lkZTEi
IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+PC9kaXY+Cis8ZGl2IGlkPSJzaGFwZS1pbnNp
ZGUyIiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2siPjwvZGl2PgorPGRpdj4KKyAgICBUaGlz
IHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyB0d28gcmVjdGFuZ3VsYXIg
c2hhcGUtaW5zaWRlcyB3aXRoIG9uZSBvZgorICAgIGNvcm5lciByYWRpdXMgWCBvciBjb3JuZXIg
cmFkaXVzIFkgZXF1YWwgdG8gemVyby4gVGhlIGNvbnRlbnQgc2hvdWxkIGZpbGwgYW5kIHNsaWdo
dGx5CisgICAgb3ZlcmZsb3cgdGhlc2UgdHdvIHJlY3Rhbmd1bGFyIGFyZWFzIHdpdGggYWx0ZXJu
YXRpbmcgYmxhY2sgYW5kIHdoaXRlIGJveGVzLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFu
Z2xlLTAwMy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NThlYzU3N2Q5OWRlYzIwZWFmZDdj
NjI0ODIxNjYxZGVhOTdhNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDMt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gY3JlYXRlU2ltdWxhdGVkU2hhcGVFbGVt
ZW50KCkgeworICAgICAgICB2YXIgc3R5bGVzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzdHlsZXNoZWV0Iik7CisgICAgICAgIHZhciBkaW1lbnNpb25zID0geyAgd2lkdGg6IDQwMCwg
aGVpZ2h0OiA2MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVYOiA0NSwgc2hh
cGVZOiAyNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZVdpZHRoOiAzMDAsIHNo
YXBlSGVpZ2h0OiA1MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVSYWRpdXNY
OiA3NSwgc2hhcGVSYWRpdXNZOiA1NSB9OworICAgICAgICBnZW5lcmF0ZVNpbXVsYXRlZFNoYXBl
RWxlbWVudCgic2hhcGUtaW5zaWRlIiwgc3R5bGVzaGVldC5zaGVldCwgZGltZW5zaW9ucywgMjIp
OworICAgIH0KKzwvc2NyaXB0PgorPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICBib2R5IHsg
bWFyZ2luOiAwOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJjcmVhdGVTaW11
bGF0ZWRTaGFwZUVsZW1lbnQoKSI+Cis8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPjwvZGl2PgorPGRp
dj4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHJv
dW5kZWQgcmVjdGFuZ2xlIHNoYXBlLWluc2lkZSBhbmQgZmlsbHMgaXQKKyAgICB3aXRoIGFsdGVy
bmF0aW5nIGJsYWNrIGFuZCB3aGl0ZSBzcXVhcmVzIGFzIGlubGluZSBjb250ZW50LiBUaGUgZW50
aXJlIHNoYXBlLWluc2lkZSBzaG91bGQKKyAgICBiZSBmaWxsZWQsIHdpdGggYSBzbWFsbCBhbW91
bnQgb2Ygb3ZlcmZsb3cuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5k
ZWQtcmVjdGFuZ2xlLTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtMDAzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTMyODM4Y2U4Yzc5OGJlZGNlNjkwNGEzOTMzZGFkMjkwNTc5NmQ3NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwMy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcm91bmRl
ZC1yZWN0YW5nbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25z
RW5hYmxlZCh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlRWxlbWVudCgpIHsKKyAg
ICAgICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVl
dCIpOworICAgICAgICB2YXIgZGltZW5zaW9ucyA9IHsgIHdpZHRoOiA0MDAsIGhlaWdodDogNjAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlWDogNDUsIHNoYXBlWTogMjUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGVXaWR0aDogMzAwLCBzaGFwZUhlaWdodDog
NTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlUmFkaXVzWDogNzUsIHNoYXBl
UmFkaXVzWTogNTUgfTsKKyAgICAgICAgZ2VuZXJhdGVTaGFwZUVsZW1lbnQoInNoYXBlLWluc2lk
ZSIsIHN0eWxlc2hlZXQuc2hlZXQsIGRpbWVuc2lvbnMsIDIyKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+CisgICAgYm9keSB7IG1hcmdpbjogMDsgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iY3JlYXRlU2hhcGVFbGVtZW50KCkiPgorPGRpdiBp
ZD0ic2hhcGUtaW5zaWRlIj48L2Rpdj4KKzxkaXY+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRo
ZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSByb3VuZGVkIHJlY3RhbmdsZSBzaGFwZS1pbnNpZGUg
YW5kIGZpbGxzIGl0CisgICAgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQgd2hpdGUgc3F1YXJl
cyBhcyBpbmxpbmUgY29udGVudC4gVGhlIGVudGlyZSBzaGFwZS1pbnNpZGUgc2hvdWxkCisgICAg
YmUgZmlsbGVkLCB3aXRoIGEgc21hbGwgYW1vdW50IG9mIG92ZXJmbG93LgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS0wMDQtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLTAwNC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjM2U5MmI4
MmI0NTRjMzI0Njk2NzQwNGQxM2Y2ZjBmOWNhZTVlNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVk
LXJlY3RhbmdsZS0wMDQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3JvdW5kZWQt
cmVjdGFuZ2xlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gY3JlYXRlU2lt
dWxhdGVkU2hhcGVFbGVtZW50KCkgeworICAgICAgICB2YXIgc3R5bGVzaGVldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdHlsZXNoZWV0Iik7CisgICAgICAgIHZhciBkaW1lbnNpb25zID0g
eyAgd2lkdGg6IDcwMCwgaGVpZ2h0OiA1MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hhcGVYOiAyNSwgc2hhcGVZOiA0NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFw
ZVdpZHRoOiA2MDAsIHNoYXBlSGVpZ2h0OiAzMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2hhcGVSYWRpdXNYOiAxMDAsIHNoYXBlUmFkaXVzWTogMTUwIH07CisgICAgICAgIGdlbmVy
YXRlU2ltdWxhdGVkU2hhcGVFbGVtZW50KCJzaGFwZS1pbnNpZGUiLCBzdHlsZXNoZWV0LnNoZWV0
LCBkaW1lbnNpb25zLCA5MCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InN0eWxlc2hl
ZXQiPgorICAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9ImNyZWF0ZVNpbXVsYXRlZFNoYXBlRWxlbWVudCgpIj4KKzxkaXYgaWQ9InNoYXBlLWlu
c2lkZSI+PC9kaXY+Cis8ZGl2PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250
LiBJdCBjcmVhdGVzIGEgcm91bmRlZCByZWN0YW5nbGUgc2hhcGUtaW5zaWRlIGFuZCBmaWxscyBp
dAorICAgIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kIHdoaXRlIHNxdWFyZXMgYXMgaW5saW5l
IGNvbnRlbnQuIFRoZSBtaWRkbGUgbGluZSBvdmVybGFwcyB0aGUgdG9wCisgICAgYW5kIGJvdHRv
bSByb3VuZGVkIGNvcm5lciBhcmVhLiBUaGUgZW50aXJlIHNoYXBlLWluc2lkZSBzaG91bGQgYmUg
ZmlsbGVkLCB3aXRoIGEgc21hbGwgYW1vdW50CisgICAgb2Ygb3ZlcmZsb3cuCis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwNC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRl
ZC1yZWN0YW5nbGUtMDA0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGIxMDIyYzZkMzJlNDE2YmQ4MWY4M2I2
MDlmN2E0M2Q1NTM3NTZmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLTAwNC5o
dG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5nbGUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIGZ1bmN0
aW9uIGNyZWF0ZVNoYXBlRWxlbWVudCgpIHsKKyAgICAgICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICB2YXIgZGltZW5zaW9u
cyA9IHsgIHdpZHRoOiA3MDAsIGhlaWdodDogNTAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNoYXBlWDogMjUsIHNoYXBlWTogNDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hhcGVXaWR0aDogNjAwLCBzaGFwZUhlaWdodDogMzAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNoYXBlUmFkaXVzWDogMTAwLCBzaGFwZVJhZGl1c1k6IDE1MCB9OworICAgICAgICBn
ZW5lcmF0ZVNoYXBlRWxlbWVudCgic2hhcGUtaW5zaWRlIiwgc3R5bGVzaGVldC5zaGVldCwgZGlt
ZW5zaW9ucywgOTApOworICAgIH0KKzwvc2NyaXB0PgorPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4K
KyAgICBib2R5IHsgbWFyZ2luOiAwOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJjcmVhdGVTaGFwZUVsZW1lbnQoKSI+Cis8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPjwvZGl2Pgor
PGRpdj4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBh
IHJvdW5kZWQgcmVjdGFuZ2xlIHNoYXBlLWluc2lkZSBhbmQgZmlsbHMgaXQKKyAgICB3aXRoIGFs
dGVybmF0aW5nIGJsYWNrIGFuZCB3aGl0ZSBzcXVhcmVzIGFzIGlubGluZSBjb250ZW50LiBUaGUg
bWlkZGxlIGxpbmUgb3ZlcmxhcHMgdGhlIHRvcAorICAgIGFuZCBib3R0b20gcm91bmRlZCBjb3Ju
ZXIgYXJlYS4gVGhlIGVudGlyZSBzaGFwZS1pbnNpZGUgc2hvdWxkIGJlIGZpbGxlZCwgd2l0aCBh
IHNtYWxsIGFtb3VudAorICAgIG9mIG92ZXJmbG93LgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5n
bGUtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA5NTFlMDA0
ZmJmMTQ3ZWI1NjRkMWJmZGNhNzIwZmIxZDU0MTdhNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1leHBlY3RlZC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotICAgICNzaGFwZS1pbnNpZGUgewotICAgICAgICBmb250OiAxMDBweC8xIEFo
ZW0sIHNhbnMtc2VyaWY7Ci0gICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7Ci0gICAgICAgIGNvbG9y
OiBncmVlbjsKLSAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAgICBoZWlnaHQ6IDMwMHB4Owot
ICAgIH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICBSZXF1aXJlcyBBaGVtIGZvbnQu
IFRlc3RzIHRoYXQgaW5saW5lIGNvbnRlbnQgYXZvaWRzIHRoZSBib3JkZXIgcmFkaXVzIG9mIGEg
cm91bmRlZCByZWN0YW5nbGUuCi0gICAgU2hvdWxkIGRpc3BsYXkgZml2ZSBncmVlbiBib3hlcyBp
biB0aGUgc2hhcGUgb2YgYSBwbHVzLgotICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+IFggPGJy
Lz5YWFg8YnIvPiBYIDwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1y
ZWN0YW5nbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDk5N2JkODcxYTcxZGM3NThhYTc4YzI1NjQ5MjZjZGEwN2FhYjZjNDcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7
Ci08L3NjcmlwdD4KLTxzdHlsZT4KLSAgICAjc2hhcGUtaW5zaWRlIHsKLSAgICAgICAgZm9udDog
MTAwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOwotICAgICAgICBjb2xvcjogZ3JlZW47Ci0gICAgICAg
IHdvcmQtd3JhcDogYnJlYWstd29yZDsKLSAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAgICBo
ZWlnaHQ6IDMwMHB4OwotICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDAs
IDAsIDMwMHB4LCAzMDBweCwgMTAwcHgsIDEwMHB4KTsKLSAgICB9Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHk+Ci0gICAgUmVxdWlyZXMgQWhlbSBmb250LiBUZXN0cyB0aGF0IGlubGluZSBjb250
ZW50IGF2b2lkcyB0aGUgYm9yZGVyIHJhZGl1cyBvZiBhIHJvdW5kZWQgcmVjdGFuZ2xlLgotICAg
IFNob3VsZCBkaXNwbGF5IGZpdmUgZ3JlZW4gYm94ZXMgaW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4K
LSAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPlhYWFhYPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>