<?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>126337</bug_id>
          
          <creation_ts>2013-12-31 06:50:33 -0800</creation_ts>
          <short_desc>Implement `CSS.escape` as per CSSOM</short_desc>
          <delta_ts>2016-08-27 17:23:00 -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>http://dev.w3.org/csswg/cssom/#the-css.escape%28%29-method</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151378</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mathias Bynens">mathias</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>hi</cc>
    
    <cc>hyatt</cc>
    
    <cc>joepeck</cc>
    
    <cc>mail</cc>
    
    <cc>mathias</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963505</commentid>
    <comment_count>0</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2013-12-31 06:50:33 -0800</bug_when>
    <thetext>Spec: http://dev.w3.org/csswg/cssom/#the-css.escape%28%29-method
Polyfill: http://mths.be/cssescape
Tests: https://github.com/mathiasbynens/CSS.escape/blob/master/tests/tests.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125952</commentid>
    <comment_count>1</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2015-09-15 07:31:58 -0700</bug_when>
    <thetext>FWIW, this recently landed in Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142752</commentid>
    <comment_count>2</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-11-17 19:22:52 -0800</bug_when>
    <thetext>*** Bug 149175 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222332</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 11:57:06 -0700</bug_when>
    <thetext>We are considering using the polyfill in Web Inspector at the moment on bug 151378.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222339</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 12:02:25 -0700</bug_when>
    <thetext>The Blink commit that included this looks quite small. It would probably be trivial to port it over to WebKit:
&lt;https://chromium.googlesource.com/chromium/blink/+/c1a5ffdc924b089e70cd33ad2726b58cc8312abe%5E!/&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222387</commentid>
    <comment_count>5</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2016-08-23 13:34:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; The Blink commit that included this looks quite small. It would probably be
&gt; trivial to port it over to WebKit:
&gt; &lt;https://chromium.googlesource.com/chromium/blink/+/
&gt; c1a5ffdc924b089e70cd33ad2726b58cc8312abe%5E!/&gt;

Keep in mind that various follow-up fixes were committed separately, so be sure to base any ports on the latest code in Blink rather than that individual commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222391</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 13:43:43 -0700</bug_when>
    <thetext>I&apos;ll take this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222395</commentid>
    <comment_count>7</comment_count>
      <attachid>286768</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 13:59:15 -0700</bug_when>
    <thetext>Created attachment 286768
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222396</commentid>
    <comment_count>8</comment_count>
      <attachid>286768</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 14:01:27 -0700</bug_when>
    <thetext>Comment on attachment 286768
[PATCH] Proposed Fix

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        (WebCore::serializeIdentifier):
&gt; +        Update serialization to match the latest version of the spec:
&gt; +        &lt;https://drafts.csswg.org/cssom/#serialize-an-identifier&gt;
&gt; +        New handling for 0x0, 0x7f, just &quot;-&quot;, and &quot;--&quot; is now allowed.

Note: WebCore::serializeString can use the same handling updates for 0x0 and 0x7f but I was unsure how to test those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222946</commentid>
    <comment_count>9</comment_count>
      <attachid>286768</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-24 19:42:42 -0700</bug_when>
    <thetext>Comment on attachment 286768
[PATCH] Proposed Fix

Clearing flags on attachment: 286768

Committed r204952: &lt;http://trac.webkit.org/changeset/204952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222947</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-24 19:42:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223987</commentid>
    <comment_count>11</comment_count>
      <attachid>286768</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-27 17:21:56 -0700</bug_when>
    <thetext>Comment on attachment 286768
[PATCH] Proposed Fix

The characterStartingAt plus U16_LENGTH idiom is ugly. I suggest we use StringView::codePoints instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223988</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-27 17:23:00 -0700</bug_when>
    <thetext>In some other tests like this I changed the tests so we could see non-trivial characters in hex. This made it easier to see the tests were correct for unusual characters.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286768</attachid>
            <date>2016-08-23 13:59:15 -0700</date>
            <delta_ts>2016-08-24 19:42:42 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>css-escape-1.patch</filename>
            <type>text/plain</type>
            <size>17487</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NDI4NjhhLi41ODNjYjRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgt
MjMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgYENTUy5lc2NhcGVgIGFzIHBlciBDU1NPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NTLmVzY2FwZSBpcyBwYXJ0IG9mIHRoZSBDU1NPTSBT
cGVjOgorICAgICAgICBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI3RoZS1jc3MuZXNj
YXBlJTI4JTI5LW1ldGhvZAorCisgICAgICAgIFRlc3RzOgorICAgICAgICBodHRwczovL2dpdGh1
Yi5jb20vbWF0aGlhc2J5bmVucy9DU1MuZXNjYXBlL2Jsb2IvbWFzdGVyL3Rlc3RzL3Rlc3RzLmpz
CisKKyAgICAgICAgQ2hhbmdlIGlzIGJhc2VkIG9uIHRoZSBCbGluayBjaGFuZ2UgKHBhdGNoIGJ5
IDxyb2IuYnVpc0BzYW1zdW5nLmNvbT4pIGFuZCBmb2xsb3ctdXBzOgorICAgICAgICA8aHR0cHM6
Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvYzFhNWZmZGM5MjRi
MDg5ZTcwY2QzM2FkMjcyNmI1OGNjODMxMmFiZT4KKworICAgICAgICAqIGNzczMvZXNjYXBlLWRv
bS1hcGktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2VzY2FwZS1kb20tYXBp
Lmh0bWw6IEFkZGVkLgorICAgICAgICBOZXcgdGVzdHMsIHRha2VuIGZyb20gdGhlIHBvbHlmaWxs
LgorCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1jc3Mtbm9uYXNjaWktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctY3NzLW5vbmFzY2lpLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3Mvc2VsZWN0b3ItdGV4dC1lc2NhcGUuaHRtbDoKKyAgICAgICAgVXBkYXRlIGV4
aXN0aW5nIHRlc3RzIG5vdyB0aGF0IDB4N2YgaXMgZXNjYXBlZC4KKworICAgICAgICAqIGpzL2Rv
bS9mdW5jdGlvbi1yZW1vdmVkLWFmdGVyLXBhcnNpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGpzL2RvbS9mdW5jdGlvbi1yZW1vdmVkLWFmdGVyLXBhcnNpbmcuaHRtbDoKKyAgICAgICAgUmVu
YW1lIHVzZSBvZiBgQ1NTLmVzY2FwZWAgaGVyZSBub3cgdGhhdCBgQ1NTLmVzY2FwZWAgZXhpc3Rz
LgorCiAyMDE2LTA4LTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjA0MjI2KTogTGF5b3V0VGVzdCBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1lbXB0eS1saW5lLWJyZWFrcy1hdC1lbmQtb2YtdGV4dGFyZWEuaHRtbCAiY3Jhc2hp
bmciIHdpdGhvdXQgYSBjcmFzaGxvZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9lc2Nh
cGUtZG9tLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2VzY2FwZS1kb20tYXBp
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWY2NWNl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9lc2NhcGUtZG9tLWFwaS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw2OSBAQAorVGVzdCB3aW5kb3cuQ1NTLmVzY2FwZSgpCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENTUy5lc2NhcGUubGVuZ3RoIGlzIDEK
K1BBU1MgQ1NTLmVzY2FwZSgnXDAnKSBpcyAiw6/Cv8K9IgorUEFTUyBDU1MuZXNjYXBlKCdhXDAn
KSBpcyAiYcOvwr/CvSIKK1BBU1MgQ1NTLmVzY2FwZSgnXDBiJykgaXMgIsOvwr/CvWIiCitQQVNT
IENTUy5lc2NhcGUoJ2FcMGInKSBpcyAiYcOvwr/CvWIiCitQQVNTIENTUy5lc2NhcGUoJ8Ovwr/C
vScpIGlzICLDr8K/wr0iCitQQVNTIENTUy5lc2NhcGUoJ2HDr8K/wr0nKSBpcyAiYcOvwr/CvSIK
K1BBU1MgQ1NTLmVzY2FwZSgnw6/Cv8K9YicpIGlzICLDr8K/wr1iIgorUEFTUyBDU1MuZXNjYXBl
KCdhw6/Cv8K9YicpIGlzICJhw6/Cv8K9YiIKK1BBU1MgQ1NTLmVzY2FwZSgpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBDU1MuZXNjYXBlKHVu
ZGVmaW5lZCkgaXMgInVuZGVmaW5lZCIKK1BBU1MgQ1NTLmVzY2FwZSh0cnVlKSBpcyAidHJ1ZSIK
K1BBU1MgQ1NTLmVzY2FwZShmYWxzZSkgaXMgImZhbHNlIgorUEFTUyBDU1MuZXNjYXBlKG51bGwp
IGlzICJudWxsIgorUEFTUyBDU1MuZXNjYXBlKCcnKSBpcyAiIgorUEFTUyBDU1MuZXNjYXBlKCcB
Ah4fJykgaXMgIlxcMSBcXDIgXFwxZSBcXDFmICIKK1BBU1MgQ1NTLmVzY2FwZSgnMGEnKSBpcyAi
XFwzMCBhIgorUEFTUyBDU1MuZXNjYXBlKCcxYScpIGlzICJcXDMxIGEiCitQQVNTIENTUy5lc2Nh
cGUoJzJhJykgaXMgIlxcMzIgYSIKK1BBU1MgQ1NTLmVzY2FwZSgnM2EnKSBpcyAiXFwzMyBhIgor
UEFTUyBDU1MuZXNjYXBlKCc0YScpIGlzICJcXDM0IGEiCitQQVNTIENTUy5lc2NhcGUoJzVhJykg
aXMgIlxcMzUgYSIKK1BBU1MgQ1NTLmVzY2FwZSgnNmEnKSBpcyAiXFwzNiBhIgorUEFTUyBDU1Mu
ZXNjYXBlKCc3YScpIGlzICJcXDM3IGEiCitQQVNTIENTUy5lc2NhcGUoJzhhJykgaXMgIlxcMzgg
YSIKK1BBU1MgQ1NTLmVzY2FwZSgnOWEnKSBpcyAiXFwzOSBhIgorUEFTUyBDU1MuZXNjYXBlKCdh
MGInKSBpcyAiYTBiIgorUEFTUyBDU1MuZXNjYXBlKCdhMWInKSBpcyAiYTFiIgorUEFTUyBDU1Mu
ZXNjYXBlKCdhMmInKSBpcyAiYTJiIgorUEFTUyBDU1MuZXNjYXBlKCdhM2InKSBpcyAiYTNiIgor
UEFTUyBDU1MuZXNjYXBlKCdhNGInKSBpcyAiYTRiIgorUEFTUyBDU1MuZXNjYXBlKCdhNWInKSBp
cyAiYTViIgorUEFTUyBDU1MuZXNjYXBlKCdhNmInKSBpcyAiYTZiIgorUEFTUyBDU1MuZXNjYXBl
KCdhN2InKSBpcyAiYTdiIgorUEFTUyBDU1MuZXNjYXBlKCdhOGInKSBpcyAiYThiIgorUEFTUyBD
U1MuZXNjYXBlKCdhOWInKSBpcyAiYTliIgorUEFTUyBDU1MuZXNjYXBlKCctMGEnKSBpcyAiLVxc
MzAgYSIKK1BBU1MgQ1NTLmVzY2FwZSgnLTFhJykgaXMgIi1cXDMxIGEiCitQQVNTIENTUy5lc2Nh
cGUoJy0yYScpIGlzICItXFwzMiBhIgorUEFTUyBDU1MuZXNjYXBlKCctM2EnKSBpcyAiLVxcMzMg
YSIKK1BBU1MgQ1NTLmVzY2FwZSgnLTRhJykgaXMgIi1cXDM0IGEiCitQQVNTIENTUy5lc2NhcGUo
Jy01YScpIGlzICItXFwzNSBhIgorUEFTUyBDU1MuZXNjYXBlKCctNmEnKSBpcyAiLVxcMzYgYSIK
K1BBU1MgQ1NTLmVzY2FwZSgnLTdhJykgaXMgIi1cXDM3IGEiCitQQVNTIENTUy5lc2NhcGUoJy04
YScpIGlzICItXFwzOCBhIgorUEFTUyBDU1MuZXNjYXBlKCctOWEnKSBpcyAiLVxcMzkgYSIKK1BB
U1MgQ1NTLmVzY2FwZSgnLScpIGlzICJcXC0iCitQQVNTIENTUy5lc2NhcGUoJy1hJykgaXMgIi1h
IgorUEFTUyBDU1MuZXNjYXBlKCctLScpIGlzICItLSIKK1BBU1MgQ1NTLmVzY2FwZSgnLS1hJykg
aXMgIi0tYSIKK1BBU1MgQ1NTLmVzY2FwZSgnw4LCgC1fw4LCqScpIGlzICLDgsKALV/DgsKpIgor
UEFTUyBDU1MuZXNjYXBlKCd/w4LCgMOCwoHDgsKCw4LCg8OCwoTDgsKFw4LChsOCwofDgsKIw4LC
icOCworDgsKLw4LCjMOCwo3DgsKOw4LCj8OCwpDDgsKRw4LCksOCwpPDgsKUw4LClcOCwpbDgsKX
w4LCmMOCwpnDgsKaw4LCm8OCwpzDgsKdw4LCnsOCwp8nKSBpcyAiXFw3ZiDDgsKAw4LCgcOCwoLD
gsKDw4LChMOCwoXDgsKGw4LCh8OCwojDgsKJw4LCisOCwovDgsKMw4LCjcOCwo7DgsKPw4LCkMOC
wpHDgsKSw4LCk8OCwpTDgsKVw4LClsOCwpfDgsKYw4LCmcOCwprDgsKbw4LCnMOCwp3DgsKew4LC
nyIKK1BBU1MgQ1NTLmVzY2FwZSgnw4LCoMOCwqHDgsKiJykgaXMgIsOCwqDDgsKhw4LCoiIKK1BB
U1MgQ1NTLmVzY2FwZSgnYTAxMjM0NTY3ODliJykgaXMgImEwMTIzNDU2Nzg5YiIKK1BBU1MgQ1NT
LmVzY2FwZSgnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonKSBpcyAiYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiCitQQVNTIENTUy5lc2NhcGUoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla
JykgaXMgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgorUEFTUyBDU1MuZXNjYXBlKCcgIXh5
JykgaXMgIlxcIFxcIXh5IgorUEFTUyBDU1MuZXNjYXBlKCfDsMKdwozChicpIGlzICLDsMKdwozC
hiIKK1BBU1MgQ1NTLmVzY2FwZSgnw63CvMKGJykgaXMgIsOtwrzChiIKK1BBU1MgQ1NTLmVzY2Fw
ZSgnw63CoMK0JykgaXMgIsOtwqDCtCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2VzY2FwZS1k
b20tYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2VzY2FwZS1kb20tYXBpLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNkMmUzYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZXNjYXBlLWRvbS1hcGkuaHRtbApAQCAtMCwwICsxLDg2IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIC8v
IFRlc3QgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc2J5bmVucy9DU1MuZXNjYXBlCisg
ICAgZGVzY3JpcHRpb24oIlRlc3Qgd2luZG93LkNTUy5lc2NhcGUoKSIpOworCisgICAgc2hvdWxk
QmUoIkNTUy5lc2NhcGUubGVuZ3RoIiwgIjEiKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiQ1NTLmVzY2FwZSgnXDAnKSIsICJcdWZmZmQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIkNTUy5lc2NhcGUoJ2FcMCcpIiwgImFcdWZmZmQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIkNTUy5lc2NhcGUoJ1wwYicpIiwgIlx1ZmZmZGIiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIkNTUy5lc2NhcGUoJ2FcMGInKSIsICJhXHVmZmZkYiIpOworCisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCdcdWZmZmQnKSIsICJcdWZmZmQiKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIkNTUy5lc2NhcGUoJ2FcdWZmZmQnKSIsICJhXHVmZmZkIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCdcdWZmZmRiJykiLCAiXHVm
ZmZkYiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnYVx1ZmZmZGIn
KSIsICJhXHVmZmZkYiIpOworCisgICAgc2hvdWxkVGhyb3coIkNTUy5lc2NhcGUoKSIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSh1bmRlZmluZWQpIiwgInVuZGVmaW5l
ZCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSh0cnVlKSIsICJ0cnVl
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKGZhbHNlKSIsICJmYWxz
ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZShudWxsKSIsICJudWxs
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCcnKSIsICIiKTsKKwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnXHgwMVx4MDJceDFFXHgxRicp
IiwgIlxcMSBcXDIgXFwxZSBcXDFmICIpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJD
U1MuZXNjYXBlKCcwYScpIiwgIlxcMzAgYSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
Q1NTLmVzY2FwZSgnMWEnKSIsICJcXDMxIGEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
IkNTUy5lc2NhcGUoJzJhJykiLCAiXFwzMiBhIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJDU1MuZXNjYXBlKCczYScpIiwgIlxcMzMgYSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiQ1NTLmVzY2FwZSgnNGEnKSIsICJcXDM0IGEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIkNTUy5lc2NhcGUoJzVhJykiLCAiXFwzNSBhIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJDU1MuZXNjYXBlKCc2YScpIiwgIlxcMzYgYSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiQ1NTLmVzY2FwZSgnN2EnKSIsICJcXDM3IGEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIkNTUy5lc2NhcGUoJzhhJykiLCAiXFwzOCBhIik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJDU1MuZXNjYXBlKCc5YScpIiwgIlxcMzkgYSIpOworCisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJDU1MuZXNjYXBlKCdhMGInKSIsICJhMGIiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIkNTUy5lc2NhcGUoJ2ExYicpIiwgImExYiIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiQ1NTLmVzY2FwZSgnYTJiJykiLCAiYTJiIik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJDU1MuZXNjYXBlKCdhM2InKSIsICJhM2IiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIkNTUy5lc2NhcGUoJ2E0YicpIiwgImE0YiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiQ1NTLmVzY2FwZSgnYTViJykiLCAiYTViIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJDU1MuZXNjYXBlKCdhNmInKSIsICJhNmIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIkNTUy5lc2NhcGUoJ2E3YicpIiwgImE3YiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiQ1NTLmVzY2FwZSgnYThiJykiLCAiYThiIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJDU1MuZXNjYXBlKCdhOWInKSIsICJhOWIiKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiQ1NTLmVzY2FwZSgnLTBhJykiLCAiLVxcMzAgYSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiQ1NTLmVzY2FwZSgnLTFhJykiLCAiLVxcMzEgYSIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiQ1NTLmVzY2FwZSgnLTJhJykiLCAiLVxcMzIgYSIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnLTNhJykiLCAiLVxcMzMgYSIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnLTRhJykiLCAiLVxcMzQgYSIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnLTVhJykiLCAiLVxcMzUgYSIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnLTZhJykiLCAiLVxcMzYgYSIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnLTdhJykiLCAiLVxcMzcgYSIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnLThhJykiLCAiLVxcMzggYSIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnLTlhJykiLCAiLVxcMzkg
YSIpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCctJykiLCAiXFwt
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCctYScpIiwgIi1hIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCctLScpIiwgIi0tIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCctLWEnKSIsICItLWEiKTsKKwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnXHg4MFx4MkRceDVGXHhBOScp
IiwgIlx4ODBceDJEXHg1Rlx4QTkiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIkNTUy5l
c2NhcGUoJ1x4N0ZceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4QVx4
OEJceDhDXHg4RFx4OEVceDhGXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5
OVx4OUFceDlCXHg5Q1x4OURceDlFXHg5RicpIiwgIlxcN2YgXHg4MFx4ODFceDgyXHg4M1x4ODRc
eDg1XHg4Nlx4ODdceDg4XHg4OVx4OEFceDhCXHg4Q1x4OERceDhFXHg4Rlx4OTBceDkxXHg5Mlx4
OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlBXHg5Qlx4OUNceDlEXHg5RVx4OUYiKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIkNTUy5lc2NhcGUoJ1x4QTBceEExXHhBMicpIiwgIlx4
QTBceEExXHhBMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnYTAx
MjM0NTY3ODliJykiLCAiYTAxMjM0NTY3ODliIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJDU1MuZXNjYXBlKCdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicpIiwgImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBl
KCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicpIiwgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZX
WFlaIik7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIkNTUy5lc2NhcGUoJ1x4MjBceDIx
XHg3OFx4NzknKSIsICJcXCBcXCF4eSIpOworCisgICAgLy8gYXN0cmFsIHN5bWJvbCAoVSsxRDMw
NiBURVRSQUdSQU0gRk9SIENFTlRSRSkKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIkNTUy5l
c2NhcGUoJ1x1RDgzNFx1REYwNicpIiwgIlx1RDgzNFx1REYwNiIpOworICAgIC8vIGxvbmUgc3Vy
cm9nYXRlcworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiQ1NTLmVzY2FwZSgnXHVERjA2Jyki
LCAnXHVERjA2Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJDU1MuZXNjYXBlKCdcdUQ4
MzQnKSIsICdcdUQ4MzQnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jc3Mtbm9uYXNjaWktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jc3Mtbm9uYXNjaWktZXhwZWN0ZWQudHh0
CmluZGV4IGZjZDE4NmUuLjgzNGM3MmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3BhcnNpbmctY3NzLW5vbmFzY2lpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9wYXJzaW5nLWNzcy1ub25hc2NpaS1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFNV
Q0NFU1MKIAogUnVsZXMgZnJvbSB0aGUgc3R5bGVzaGVldDoKIAotI2ExMjdfXH8geyBjb2xvcjog
cmVkOyB9CisjYTEyN19cN2YgIHsgY29sb3I6IHJlZDsgfQogI2ExMjhfwoAgeyBjb2xvcjogcmVk
OyB9CiAjYjEyOF/CgCB7IGNvbG9yOiBncmVlbjsgfQogI2ExNTlfwp8geyBjb2xvcjogcmVkOyB9
CkBAIC0xNSw3ICsxNSw3IEBAIFJ1bGVzIGZyb20gdGhlIHN0eWxlc2hlZXQ6CiAjYjM4NF/GgCB7
IGNvbG9yOiBncmVlbjsgfQogRXhwZWN0ZWQgcmVzdWx0OgogCi0jYTEyN19cfyB7IGNvbG9yOiBy
ZWQ7IH0KKyNhMTI3X1w3ZiAgeyBjb2xvcjogcmVkOyB9CiAjYTEyOF/CgCB7IGNvbG9yOiByZWQ7
IH0KICNiMTI4X8KAIHsgY29sb3I6IGdyZWVuOyB9CiAjYTE1OV/CnyB7IGNvbG9yOiByZWQ7IH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctY3NzLW5vbmFzY2lpLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWNzcy1ub25hc2NpaS5odG1sCmluZGV4
IGY3ZmZmZjQuLjcwN2Q1MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNp
bmctY3NzLW5vbmFzY2lpLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1j
c3Mtbm9uYXNjaWkuaHRtbApAQCAtNSw3ICs1LDcgQEAKIC8qCiAgID09PSBXYXJuaW5nID09PQog
Ci0gIFRoaXMgZmlsZSBpbnRlbnRpb25hbGx5IGNvbnRhaW5zIHNjcGVjaWFsIGNoYXJhY3RlcnMg
d2hpY2gKKyAgVGhpcyBmaWxlIGludGVudGlvbmFsbHkgY29udGFpbnMgc3BlY2lhbCBjaGFyYWN0
ZXJzIHdoaWNoCiAgIGNhbm5vdCBiZSBkaXNwbGF5ZWQgYnkgc29tZSB0ZXh0IGVkaXRvcnMuIFBs
ZWFzZQogICBjYXJlZnVsbHkgZWRpdCB0aGUgZmlsZS4KICovCkBAIC02NCw3ICs2NCw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKQogCiA8cD5FeHBlY3RlZCByZXN1bHQ6PC9wPgogCi08cHJlIGlkPSJl
eHBlY3RlZCI+I2ExMjdfXH8geyBjb2xvcjogcmVkOyB9Cis8cHJlIGlkPSJleHBlY3RlZCI+I2Ex
MjdfXDdmICB7IGNvbG9yOiByZWQ7IH0KICNhMTI4X8KAIHsgY29sb3I6IHJlZDsgfQogI2IxMjhf
woAgeyBjb2xvcjogZ3JlZW47IH0KICNhMTU5X8KfIHsgY29sb3I6IHJlZDsgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2VsZWN0b3ItdGV4dC1lc2NhcGUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3NlbGVjdG9yLXRleHQtZXNjYXBlLmh0bWwKaW5kZXggNWQwMGEyNi4u
NGQ3M2FlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2VsZWN0b3ItdGV4dC1l
c2NhcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zZWxlY3Rvci10ZXh0LWVzY2Fw
ZS5odG1sCkBAIC05Myw3ICs5Myw3IEBAIHZhciBleHBlY3RlZFRleHRzID0gWwogICAgICIuXFwz
OSBfY2xhc3MiLAogICAgICIuLVxcMzAgX2NsYXNzIiwKICAgICAiLi1cXDM5IF9jbGFzcyIsCi0g
ICAgIi4tXFwtX2NsYXNzIiwKKyAgICAiLi0tX2NsYXNzIiwKICAgICAiLlx4ODFfY2xhc3MiLAog
ICAgICIu5pel5pys6KqeX2NsYXNzIiwKICAgICAiLvCQkIBfY2xhc3MiLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL2Z1bmN0aW9uLXJlbW92ZWQtYWZ0ZXItcGFyc2luZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZnVuY3Rpb24tcmVtb3ZlZC1hZnRlci1wYXJzaW5n
LWV4cGVjdGVkLnR4dAppbmRleCBhNjQzOGYzLi43NzY5ZmY4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9kb20vZnVuY3Rpb24tcmVtb3ZlZC1hZnRlci1wYXJzaW5nLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZnVuY3Rpb24tcmVtb3ZlZC1hZnRlci1wYXJzaW5nLWV4
cGVjdGVkLnR4dApAQCAtMSwyICsxLDIgQEAKLXdpbmRvdy5DU1MuZXNjYXBlIHN0aWxsIGhlcmUK
K3dpbmRvdy5DU1MubGF5b3V0VGVzdEVzY2FwZSBzdGlsbCBoZXJlCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9mdW5jdGlvbi1yZW1vdmVkLWFmdGVyLXBhcnNpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9mdW5jdGlvbi1yZW1vdmVkLWFmdGVyLXBhcnNpbmcuaHRtbAppbmRl
eCAxMzZiZGRlLi4yZGQzOWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZnVuY3Rp
b24tcmVtb3ZlZC1hZnRlci1wYXJzaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2Z1
bmN0aW9uLXJlbW92ZWQtYWZ0ZXItcGFyc2luZy5odG1sCkBAIC0yLDYgKzIsOSBAQAogPCEtLQog
Tk9URTogVGhpcyBpbnRlbnRpb25hbGx5IGRvZXMgbm90IHVzZSBkZXNjcmlwdGlvbigpIGFuZCBk
b2VzIG5vdCBpbmNsdWRlIGpzLXRlc3QtcG9zdCBiZWNhdXNlCiBkb2luZyBlaXRoZXIgb2YgdGhv
c2UgdGhpbmdzIG1hZGUgdGhlIGJ1ZyBnbyBhd2F5LgorCitOT1RFOiBUaGlzIGludGVudGlvbmFs
bHkgZG9lcyBub3QgdXNlIHRoZSBuYW1lIGBDU1MuZXNjYXBlYCBiZWNhdXNlIHRoYXQgZnVuY3Rp
b24gZXhpc3RzIG5vdyBidXQKK2RpZCBub3Qgd2hlbiB0aGlzIHRlc3Qgd2FzIGFkZGVkLiBUaGUg
bmFtZSB3YXMgY2hhbmdlZCB0byBgQ1NTLmxheW91dFRlc3RFc2NhcGVgIGZvciB0aGlzIHRlc3Qu
CiAtLT4KICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KQEAgLTIwLDkgKzIzLDkg
QEAgZG9pbmcgZWl0aGVyIG9mIHRob3NlIHRoaW5ncyBtYWRlIHRoZSBidWcgZ28gYXdheS4KIAlJ
bnZhbGlkQ2hhcmFjdGVyRXJyb3IucHJvdG90eXBlID0gbmV3IEVycm9yOwogCUludmFsaWRDaGFy
YWN0ZXJFcnJvci5wcm90b3R5cGUubmFtZSA9ICdJbnZhbGlkQ2hhcmFjdGVyRXJyb3InOwogCi0J
aWYgKCFDU1MuZXNjYXBlKSB7CisJaWYgKCFDU1MubGF5b3V0VGVzdEVzY2FwZSkgewogCQkvLyBo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI3NlcmlhbGl6ZS1hbi1pZGVudGlmaWVyCi0J
CUNTUy5lc2NhcGUgPSBmdW5jdGlvbih2YWx1ZSkgeworCQlDU1MubGF5b3V0VGVzdEVzY2FwZSA9
IGZ1bmN0aW9uKHZhbHVlKSB7CiAJCQl2YXIgc3RyaW5nID0gU3RyaW5nKHZhbHVlKTsKIAkJCXZh
ciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoOwogCQkJdmFyIGluZGV4ID0gLTE7CkBAIC0xMDcsMTQg
KzExMCwxNCBAQCBkb2luZyBlaXRoZXIgb2YgdGhvc2UgdGhpbmdzIG1hZGUgdGhlIGJ1ZyBnbyBh
d2F5LgogICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHdpbmRvdy5lbmFibGVQaXhlbFRlc3Rp
bmcpOwogICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfSBjYXRjaCAoZSkg
eyB9Ci0gICAgaWYgKCF3aW5kb3cuQ1NTLmVzY2FwZSkgewotICAgICAgZGVidWcoJ3dpbmRvdy5D
U1MuZXNjYXBlIG5vdCBsb2FkZWQnKTsKKyAgICBpZiAoIXdpbmRvdy5DU1MubGF5b3V0VGVzdEVz
Y2FwZSkgeworICAgICAgZGVidWcoJ3dpbmRvdy5DU1MubGF5b3V0VGVzdEVzY2FwZSBub3QgbG9h
ZGVkJyk7CiAgICAgfQogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAod2lu
ZG93LkNTUy5lc2NhcGUpCi0gICAgICAgIGRlYnVnKCJ3aW5kb3cuQ1NTLmVzY2FwZSBzdGlsbCBo
ZXJlIik7CisgICAgICBpZiAod2luZG93LkNTUy5sYXlvdXRUZXN0RXNjYXBlKQorICAgICAgICBk
ZWJ1Zygid2luZG93LkNTUy5sYXlvdXRUZXN0RXNjYXBlIHN0aWxsIGhlcmUiKTsKICAgICAgIGVs
c2UKLSAgICAgICAgZGVidWcoJ3dpbmRvdy5DU1MuZXNjYXBlIG1pc3NpbmcgaW4gZXZlbnQnKTsK
KyAgICAgICAgZGVidWcoJ3dpbmRvdy5DU1MubGF5b3V0VGVzdEVzY2FwZSBtaXNzaW5nIGluIGV2
ZW50Jyk7CiAgICAgICB0cnkgewogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICAgIH0gY2F0Y2ggKGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2N2I5MjkuLmQ1OTdhMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNi0wOC0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBgQ1NTLmVzY2FwZWAgYXMgcGVy
IENTU09NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjYzMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0OiBjc3MzL2VzY2FwZS1kb20tYXBpLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NPTVV0aWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUlkZW50aWZpZXIpOgorICAgICAgICBV
cGRhdGUgc2VyaWFsaXphdGlvbiB0byBtYXRjaCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHNw
ZWM6CisgICAgICAgIDxodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI3NlcmlhbGl6ZS1h
bi1pZGVudGlmaWVyPgorICAgICAgICBOZXcgaGFuZGxpbmcgZm9yIDB4MCwgMHg3ZiwganVzdCAi
LSIsIGFuZCAiLS0iIGlzIG5vdyBhbGxvd2VkLgorCisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmVzY2FwZSk6Cisg
ICAgICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5oOgorICAgICAgICAqIGNzcy9ET01DU1NOYW1l
c3BhY2UuaWRsOgorICAgICAgICBOZXcgQ1NTLmVzY2FwZSBtZXRob2QuCisKIDIwMTYtMDgtMjMg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSB3
b3JrYXJvdW5kIGZvciBpT1MgRnJhbWV3b3JrcyB0aGF0IGV4cGVjdCBET00gYmluZGluZ3MgdG8g
YmUgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU09NVXRpbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU09NVXRpbHMuY3BwCmluZGV4IDUzODkxY2EuLjY5
MTNjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NPTVV0aWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTT01VdGlscy5jcHAKQEAgLTU3LDExICs1NywxOCBAQCB2
b2lkIHNlcmlhbGl6ZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBTdHJpbmdC
dWlsZGVyJiBhcHBlbmRUbykKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAgd2hpbGUgKGlu
ZGV4IDwgaWRlbnRpZmllci5sZW5ndGgoKSkgewogICAgICAgICBVQ2hhcjMyIGMgPSBpZGVudGlm
aWVyLmNoYXJhY3RlclN0YXJ0aW5nQXQoaW5kZXgpOworICAgICAgICBpZiAoIWMpIHsKKyAgICAg
ICAgICAgIC8vIENoZWNrIGZvciBsb25lIHN1cnJvZ2F0ZSB3aGljaCBjaGFyYWN0ZXJTdGFydGlu
Z0F0IGRvZXMgbm90IHJldHVybi4KKyAgICAgICAgICAgIGMgPSBpZGVudGlmaWVyW2luZGV4XTsK
KyAgICAgICAgfQorCiAgICAgICAgIGluZGV4ICs9IFUxNl9MRU5HVEgoYyk7CiAKLSAgICAgICAg
aWYgKGMgPD0gMHgxZiB8fCAoMHgzMCA8PSBjICYmIGMgPD0gMHgzOSAmJiAoaXNGaXJzdCB8fCAo
aXNTZWNvbmQgJiYgaXNGaXJzdENoYXJIeXBoZW4pKSkpCisgICAgICAgIGlmICghYykKKyAgICAg
ICAgICAgIGFwcGVuZFRvLmFwcGVuZCgweGZmZmQpOworICAgICAgICBlbHNlIGlmIChjIDw9IDB4
MWYgfHwgYyA9PSAweDdmIHx8ICgweDMwIDw9IGMgJiYgYyA8PSAweDM5ICYmIChpc0ZpcnN0IHx8
IChpc1NlY29uZCAmJiBpc0ZpcnN0Q2hhckh5cGhlbikpKSkKICAgICAgICAgICAgIHNlcmlhbGl6
ZUNoYXJhY3RlckFzQ29kZVBvaW50KGMsIGFwcGVuZFRvKTsKLSAgICAgICAgZWxzZSBpZiAoYyA9
PSAweDJkICYmIGlzU2Vjb25kICYmIGlzRmlyc3RDaGFySHlwaGVuKQorICAgICAgICBlbHNlIGlm
IChjID09IDB4MmQgJiYgaXNGaXJzdCAmJiBpbmRleCA9PSBpZGVudGlmaWVyLmxlbmd0aCgpKQog
ICAgICAgICAgICAgc2VyaWFsaXplQ2hhcmFjdGVyKGMsIGFwcGVuZFRvKTsKICAgICAgICAgZWxz
ZSBpZiAoMHg4MCA8PSBjIHx8IGMgPT0gMHgyZCB8fCBjID09IDB4NWYgfHwgKDB4MzAgPD0gYyAm
JiBjIDw9IDB4MzkpIHx8ICgweDQxIDw9IGMgJiYgYyA8PSAweDVhKSB8fCAoMHg2MSA8PSBjICYm
IGMgPD0gMHg3YSkpCiAgICAgICAgICAgICBhcHBlbmRUby5hcHBlbmQoYyk7CkBAIC03Miw5ICs3
OSw4IEBAIHZvaWQgc2VyaWFsaXplSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IFN0cmluZ0J1aWxkZXImIGFwcGVuZFRvKQogICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOwog
ICAgICAgICAgICAgaXNTZWNvbmQgPSB0cnVlOwogICAgICAgICAgICAgaXNGaXJzdENoYXJIeXBo
ZW4gPSAoYyA9PSAweDJkKTsKLSAgICAgICAgfSBlbHNlIGlmIChpc1NlY29uZCkgeworICAgICAg
ICB9IGVsc2UgaWYgKGlzU2Vjb25kKQogICAgICAgICAgICAgaXNTZWNvbmQgPSBmYWxzZTsKLSAg
ICAgICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNT
U05hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApp
bmRleCA3OTFhMzAxLi5kOTYzYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
Q1NTTmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNl
LmNwcApAQCAtMzAsOCArMzAsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJE
T01DU1NOYW1lc3BhY2UuaCIKIAorI2luY2x1ZGUgIkNTU09NVXRpbHMuaCIKICNpbmNsdWRlICJD
U1NQYXJzZXIuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc3LDQgKzc5LDExIEBAIGJvb2wgRE9NQ1NTTmFtZXNw
YWNlOjpzdXBwb3J0cyhjb25zdCBTdHJpbmcmIGNvbmRpdGlvblRleHQpCiAgICAgcmV0dXJuIHBh
cnNlci5wYXJzZVN1cHBvcnRzQ29uZGl0aW9uKGNvbmRpdGlvblRleHQpOwogfQogCitTdHJpbmcg
RE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUoY29uc3QgU3RyaW5nJiBpZGVudCkKK3sKKyAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgc2VyaWFsaXplSWRlbnRpZmllcihpZGVudCwgYnVpbGRl
cik7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTUNTU05hbWVzcGFjZS5oCmluZGV4IDk0Mjk5NWEuLjgwMDJhMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTTmFtZXNwYWNlLmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgRE9NQ1NTTmFtZXNw
YWNlIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NQ1NTTmFtZXNwYWNlPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJiBjb25kaXRp
b25UZXh0KTsKKyAgICBzdGF0aWMgU3RyaW5nIGVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KTsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2Uu
aWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwKaW5kZXggMDY1ZDBh
Ny4uZDUxMGJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFj
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwKQEAgLTMz
LDQgKzMzLDUgQEAKIF0gaW50ZXJmYWNlIERPTUNTU05hbWVzcGFjZSB7CiAgICAgc3RhdGljIGJv
b2xlYW4gc3VwcG9ydHMoRE9NU3RyaW5nIHByb3BlcnR5LCBET01TdHJpbmcgdmFsdWUpOwogICAg
IHN0YXRpYyBib29sZWFuIHN1cHBvcnRzKERPTVN0cmluZyBjb25kaXRpb25UZXh0KTsKKyAgICBz
dGF0aWMgRE9NU3RyaW5nIGVzY2FwZShET01TdHJpbmcgaWRlbnQpOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>