<?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>166793</bug_id>
          
          <creation_ts>2017-01-06 18:34:44 -0800</creation_ts>
          <short_desc>[WebIDL] Remove custom bindings from CanvasRenderingContext2D</short_desc>
          <delta_ts>2017-01-06 22:20:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1264606</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-01-06 18:34:44 -0800</bug_when>
    <thetext>[WebIDL] Remove custom bindings from CanvasRenderingContext2D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264608</commentid>
    <comment_count>1</comment_count>
      <attachid>298245</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-01-06 18:37:16 -0800</bug_when>
    <thetext>Created attachment 298245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264642</commentid>
    <comment_count>2</comment_count>
      <attachid>298245</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-06 20:33:44 -0800</bug_when>
    <thetext>Comment on attachment 298245
Patch

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

&gt; Source/WebCore/ChangeLog:29
&gt; +        Move existing setStrokeStyle/setFillStyle functions (which take CanvasStyle&apos;s) 
&gt; +        down, and implement new ones that operate on Variants, matching the spec.

What does it mean to &quot;move the existing functions down&quot;? I guess you mean you made them private.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1653
&gt; +void CanvasRenderingContext2D::setStrokeStyle(CanvasStyle style)

Not sure you really need to move these in the source file, especially since I assume you aren’t otherwise changing them in this patch.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1709
&gt; +    if (auto* gradiant = style.canvasGradient())

Spelling error here, gradient has an &quot;e&quot;.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1725
&gt; +        [this] (const RefPtr&lt;CanvasGradient&gt;&amp; gradiant) { this-&gt;setStrokeStyle(CanvasStyle(*gradiant)); },

Spelling error here, gradient has an &quot;e&quot;.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1739
&gt; +        [this] (const RefPtr&lt;CanvasGradient&gt;&amp; gradiant) { this-&gt;setFillStyle(CanvasStyle(*gradiant)); },

Spelling error here, gradient has an &quot;e&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264655</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-01-06 22:20:43 -0800</bug_when>
    <thetext>Committed r210470: &lt;http://trac.webkit.org/changeset/210470&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298245</attachid>
            <date>2017-01-06 18:37:16 -0800</date>
            <delta_ts>2017-01-06 20:33:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166793-20170106183547.patch</filename>
            <type>text/plain</type>
            <size>13392</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMDQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE3LTAxLTA2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIGN1c3RvbSBi
aW5kaW5ncyBmcm9tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NzkzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgIE1vdmUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20u
Y3BwIHRvIHRoZSBHQyBvbmx5IGdyb3VwLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxDYW52YXNTdHlsZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlU3R5
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnNldFN0cm9rZVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZpbGxTdHlsZSk6IERlbGV0ZWQuCisg
ICAgICAgIFJlbW92ZSBub24tR0MgcmVsYXRlZCBjdXN0b20gYmluZGluZ3MuCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZpbGxTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjp0b1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6c3Ryb2tlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmaWxsU3R5bGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5pZGw6CisgICAgICAgIE1vdmUgZXhpc3Rpbmcgc2V0U3Ryb2tlU3R5bGUvc2V0
RmlsbFN0eWxlIGZ1bmN0aW9ucyAod2hpY2ggdGFrZSBDYW52YXNTdHlsZSdzKSAKKyAgICAgICAg
ZG93biwgYW5kIGltcGxlbWVudCBuZXcgb25lcyB0aGF0IG9wZXJhdGUgb24gVmFyaWFudHMsIG1h
dGNoaW5nIHRoZSBzcGVjLgorCiAyMDE3LTAxLTA2ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGV4dCBoaWdobGlnaHQgY2F1c2VzIFlvb24gR290aGljIHdlYmZv
bnQgdG8gcmVmbG93LgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjEwNDY0KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODMx
NSw2ICsxODMxNSw3IEBACiAJCQkJQkMyRUQ2QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1
c3RvbS5jcHAgKi8sCiAJCQkJQkU2REY3MTAxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9UcmFj
a0xpc3RDdXN0b20uY3BwICovLAogCQkJCTg5MzFERTVBMTRDNDRDNDQwMDBEQzlEMiAvKiBKU0Js
b2JDdXN0b20uY3BwICovLAorCQkJCTQ5RUVEMTRCMTA1MTk3MTkwMDA5OUZBQiAvKiBKU0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgKi8sCiAJCQkJQkM0NkMxRUQwQzBEREJERjAw
MjBDRkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJQUQ3MjZGRTkxNkQ5RjQwQTAw
M0E0RTZEIC8qIEpTQ1NTUnVsZUN1c3RvbS5oICovLAogCQkJCTkzOTIyNjJFMTAzMjEwODQwMDZF
N0Q1RCAvKiBKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCAqLywKQEAgLTIyMDc0LDcgKzIyMDc1LDYg
QEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdDM0Q4RUU0MUUwOEJBQkUwMDIzQjA4NCAvKiBHQyAv
IFdyYXBwaW5nIE9ubHkgKi8sCiAJCQkJQkU2REY3MEUxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVk
aW9UcmFja0N1c3RvbS5jcHAgKi8sCi0JCQkJNDlFRUQxNEIxMDUxOTcxOTAwMDk5RkFCIC8qIEpT
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCAqLywKIAkJCQlBNTg0RkUzNzE4NjRE
QUMxMDA4NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwICovLAogCQkJCTdD
RUYyNjE4MUQ2QTkyRTMwMEJFOTA1RCAvKiBKU0NyeXB0b0N1c3RvbS5jcHAgKi8sCiAJCQkJRTE1
N0E4RTYxODE4NEM2NzAwOUY4MjFEIC8qIEpTQ3J5cHRvS2V5Q3VzdG9tLmNwcCAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAJKHJldmlzaW9uIDIxMDQ2NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTAsNTUgKzUwLDQgQEAgdm9pZCBKU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6dmlzaXRBZAogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KHdyYXBw
ZWQoKS5jYW52YXMoKSkpOwogfQogCi1zdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhl
YywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQ2FudmFzU3R5bGUmIHN0
eWxlKQotewotICAgIGlmIChzdHlsZS5jYW52YXNHcmFkaWVudCgpKQotICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0eWxlLmNhbnZhc0dyYWRpZW50KCkpOwotICAgIGlm
IChzdHlsZS5jYW52YXNQYXR0ZXJuKCkpCi0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3R5bGUuY2FudmFzUGF0dGVybigpKTsKLSAgICByZXR1cm4ganNTdHJpbmdXaXRo
Q2FjaGUoZXhlYywgc3R5bGUuY29sb3IoKSk7Ci19Ci0KLXN0YXRpYyBDYW52YXNTdHlsZSB0b0hU
TUxDYW52YXNTdHlsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICghdmFs
dWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7Ci0gICAgSlNPYmpl
Y3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhK
U0NhbnZhc0dyYWRpZW50OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FudmFz
R3JhZGllbnQqPihvYmplY3QpLT53cmFwcGVkKCk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHMo
SlNDYW52YXNQYXR0ZXJuOjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FudmFz
UGF0dGVybio+KG9iamVjdCktPndyYXBwZWQoKTsKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsK
LX0KLQotSlNWYWx1ZSBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlU3R5bGUoRXhl
Y1N0YXRlJiBzdGF0ZSkgY29uc3QKLXsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9i
amVjdCgpLCB3cmFwcGVkKCkuc3Ryb2tlU3R5bGUoKSk7Ci19Ci0KLXZvaWQgSlNDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OnNldFN0cm9rZVN0eWxlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUg
dmFsdWUpCi17Ci0gICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEJiBjb250ZXh0ID0gd3JhcHBl
ZCgpOwotICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKSB7Ci0gICAgICAgIGNvbnRleHQuc2V0U3Ry
b2tlQ29sb3IoYXNTdHJpbmcodmFsdWUpLT52YWx1ZSgmc3RhdGUpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvSFRNTENhbnZhc1N0eWxlKCZz
dGF0ZSwgdmFsdWUpKTsKLX0KLQotSlNWYWx1ZSBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZmlsbFN0eWxlKEV4ZWNTdGF0ZSYgc3RhdGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmZpbGxTdHlsZSgpKTsKLX0KLQotdm9pZCBK
U0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0RmlsbFN0eWxlKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEJiBjb250ZXh0
ID0gd3JhcHBlZCgpOwotICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKSB7Ci0gICAgICAgIGNvbnRl
eHQuc2V0RmlsbENvbG9yKGFzU3RyaW5nKHZhbHVlKS0+dmFsdWUoJnN0YXRlKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgY29udGV4dC5zZXRGaWxsU3R5bGUodG9IVE1MQ2FudmFzU3R5
bGUoJnN0YXRlLCB2YWx1ZSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAJKHJldmlzaW9uIDIxMDQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5NCw2
MCArMzk0LDYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc3RvcmUoKQogICAg
IGMtPnJlc3RvcmUoKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldFN0
cm9rZVN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQotewotICAgIGlmICghc3R5bGUuaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoc3RhdGUoKS5zdHJva2VTdHlsZS5pc1ZhbGlk
KCkgJiYgc3RhdGUoKS5zdHJva2VTdHlsZS5pc0VxdWl2YWxlbnRDb2xvcihzdHlsZSkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChzdHlsZS5pc0N1cnJlbnRDb2xvcigpKSB7Ci0gICAgICAg
IGlmIChzdHlsZS5oYXNPdmVycmlkZUFscGhhKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBT
aG91bGQgbm90IHVzZSBSR0JBMzIgaGVyZS4KLSAgICAgICAgICAgIHN0eWxlID0gQ2FudmFzU3R5
bGUoY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjdXJyZW50Q29sb3IoJmNhbnZhcygpKS5yZ2IoKSwg
c3R5bGUub3ZlcnJpZGVBbHBoYSgpKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3R5
bGUgPSBDYW52YXNTdHlsZShjdXJyZW50Q29sb3IoJmNhbnZhcygpKSk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIGNoZWNrT3JpZ2luKHN0eWxlLmNhbnZhc1BhdHRlcm4oKSk7Ci0KLSAgICByZWFsaXpl
U2F2ZXMoKTsKLSAgICBTdGF0ZSYgc3RhdGUgPSBtb2RpZmlhYmxlU3RhdGUoKTsKLSAgICBzdGF0
ZS5zdHJva2VTdHlsZSA9IHN0eWxlOwotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdD
b250ZXh0KCk7Ci0gICAgaWYgKCFjKQotICAgICAgICByZXR1cm47Ci0gICAgc3RhdGUuc3Ryb2tl
U3R5bGUuYXBwbHlTdHJva2VDb2xvcigqYyk7Ci0gICAgc3RhdGUudW5wYXJzZWRTdHJva2VDb2xv
ciA9IFN0cmluZygpOwotfQotCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rmls
bFN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQotewotICAgIGlmICghc3R5bGUuaXNWYWxpZCgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoc3RhdGUoKS5maWxsU3R5bGUuaXNWYWxpZCgpICYm
IHN0YXRlKCkuZmlsbFN0eWxlLmlzRXF1aXZhbGVudENvbG9yKHN0eWxlKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaWYgKHN0eWxlLmlzQ3VycmVudENvbG9yKCkpIHsKLSAgICAgICAgaWYgKHN0
eWxlLmhhc092ZXJyaWRlQWxwaGEoKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCBu
b3QgdXNlIFJHQkEzMiBoZXJlLgotICAgICAgICAgICAgc3R5bGUgPSBDYW52YXNTdHlsZShjb2xv
cldpdGhPdmVycmlkZUFscGhhKGN1cnJlbnRDb2xvcigmY2FudmFzKCkpLnJnYigpLCBzdHlsZS5v
dmVycmlkZUFscGhhKCkpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzdHlsZSA9IENh
bnZhc1N0eWxlKGN1cnJlbnRDb2xvcigmY2FudmFzKCkpKTsKLSAgICB9IGVsc2UKLSAgICAgICAg
Y2hlY2tPcmlnaW4oc3R5bGUuY2FudmFzUGF0dGVybigpKTsKLQotICAgIHJlYWxpemVTYXZlcygp
OwotICAgIFN0YXRlJiBzdGF0ZSA9IG1vZGlmaWFibGVTdGF0ZSgpOwotICAgIHN0YXRlLmZpbGxT
dHlsZSA9IHN0eWxlOwotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7
Ci0gICAgaWYgKCFjKQotICAgICAgICByZXR1cm47Ci0gICAgc3RhdGUuZmlsbFN0eWxlLmFwcGx5
RmlsbENvbG9yKCpjKTsKLSAgICBzdGF0ZS51bnBhcnNlZEZpbGxDb2xvciA9IFN0cmluZygpOwot
fQotCiBmbG9hdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmxpbmVXaWR0aCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHN0YXRlKCkubGluZVdpZHRoOwpAQCAtMTcwNCw2ICsxNjUwLDk3IEBAIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwcmVwYXJlR3IKICNlbmRpZgogfQogCit2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUoQ2FudmFzU3R5bGUgc3R5
bGUpCit7CisgICAgaWYgKCFzdHlsZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChzdGF0ZSgpLnN0cm9rZVN0eWxlLmlzVmFsaWQoKSAmJiBzdGF0ZSgpLnN0cm9rZVN0eWxl
LmlzRXF1aXZhbGVudENvbG9yKHN0eWxlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHN0
eWxlLmlzQ3VycmVudENvbG9yKCkpIHsKKyAgICAgICAgaWYgKHN0eWxlLmhhc092ZXJyaWRlQWxw
aGEoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJl
LgorICAgICAgICAgICAgc3R5bGUgPSBDYW52YXNTdHlsZShjb2xvcldpdGhPdmVycmlkZUFscGhh
KGN1cnJlbnRDb2xvcigmY2FudmFzKCkpLnJnYigpLCBzdHlsZS5vdmVycmlkZUFscGhhKCkpKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdHlsZSA9IENhbnZhc1N0eWxlKGN1cnJlbnRD
b2xvcigmY2FudmFzKCkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY2hlY2tPcmlnaW4oc3R5bGUu
Y2FudmFzUGF0dGVybigpKTsKKworICAgIHJlYWxpemVTYXZlcygpOworICAgIFN0YXRlJiBzdGF0
ZSA9IG1vZGlmaWFibGVTdGF0ZSgpOworICAgIHN0YXRlLnN0cm9rZVN0eWxlID0gc3R5bGU7Cisg
ICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBpZiAoIWMpCisg
ICAgICAgIHJldHVybjsKKyAgICBzdGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0cm9rZUNvbG9yKCpj
KTsKKyAgICBzdGF0ZS51bnBhcnNlZFN0cm9rZUNvbG9yID0gU3RyaW5nKCk7Cit9CisKK3ZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUoQ2FudmFzU3R5bGUgc3R5bGUp
Cit7CisgICAgaWYgKCFzdHlsZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChzdGF0ZSgpLmZpbGxTdHlsZS5pc1ZhbGlkKCkgJiYgc3RhdGUoKS5maWxsU3R5bGUuaXNFcXVp
dmFsZW50Q29sb3Ioc3R5bGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3R5bGUuaXND
dXJyZW50Q29sb3IoKSkgeworICAgICAgICBpZiAoc3R5bGUuaGFzT3ZlcnJpZGVBbHBoYSgpKSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIG5vdCB1c2UgUkdCQTMyIGhlcmUuCisgICAg
ICAgICAgICBzdHlsZSA9IENhbnZhc1N0eWxlKGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY3VycmVu
dENvbG9yKCZjYW52YXMoKSkucmdiKCksIHN0eWxlLm92ZXJyaWRlQWxwaGEoKSkpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHN0eWxlID0gQ2FudmFzU3R5bGUoY3VycmVudENvbG9yKCZj
YW52YXMoKSkpOworICAgIH0gZWxzZQorICAgICAgICBjaGVja09yaWdpbihzdHlsZS5jYW52YXNQ
YXR0ZXJuKCkpOworCisgICAgcmVhbGl6ZVNhdmVzKCk7CisgICAgU3RhdGUmIHN0YXRlID0gbW9k
aWZpYWJsZVN0YXRlKCk7CisgICAgc3RhdGUuZmlsbFN0eWxlID0gc3R5bGU7CisgICAgR3JhcGhp
Y3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBpZiAoIWMpCisgICAgICAgIHJl
dHVybjsKKyAgICBzdGF0ZS5maWxsU3R5bGUuYXBwbHlGaWxsQ29sb3IoKmMpOworICAgIHN0YXRl
LnVucGFyc2VkRmlsbENvbG9yID0gU3RyaW5nKCk7Cit9CisKK3N0YXRpYyBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OlN0eWxlIHRvU3R5bGUoY29uc3QgQ2FudmFzU3R5bGUmIHN0eWxlKQorewor
ICAgIGlmIChhdXRvKiBncmFkaWFudCA9IHN0eWxlLmNhbnZhc0dyYWRpZW50KCkpCisgICAgICAg
IHJldHVybiBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+IHsgZ3JhZGlhbnQgfTsKKyAgICBpZiAoYXV0
byogcGF0dGVybiA9IHN0eWxlLmNhbnZhc1BhdHRlcm4oKSkKKyAgICAgICAgcmV0dXJuIFJlZlB0
cjxDYW52YXNQYXR0ZXJuPiB7IHBhdHRlcm4gfTsKKyAgICByZXR1cm4gc3R5bGUuY29sb3IoKTsK
K30KKworQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdHlsZSBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnN0cm9rZVN0eWxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9TdHlsZShzdGF0ZSgp
LnN0cm9rZVN0eWxlKTsKK30KKwordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldFN0
cm9rZVN0eWxlKENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3R5bGUmJiBzdHlsZSkKK3sKKyAg
ICBXVEY6OnN3aXRjaE9uKHN0eWxlLAorICAgICAgICBbdGhpc10gKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKSB7IHRoaXMtPnNldFN0cm9rZUNvbG9yKHN0cmluZyk7IH0sCisgICAgICAgIFt0aGlzXSAo
Y29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3JhZGlhbnQpIHsgdGhpcy0+c2V0U3Ryb2tl
U3R5bGUoQ2FudmFzU3R5bGUoKmdyYWRpYW50KSk7IH0sCisgICAgICAgIFt0aGlzXSAoY29uc3Qg
UmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7IHRoaXMtPnNldFN0cm9rZVN0eWxlKENh
bnZhc1N0eWxlKCpwYXR0ZXJuKSk7IH0KKyAgICApOworfQorCitDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OlN0eWxlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbFN0eWxlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdG9TdHlsZShzdGF0ZSgpLmZpbGxTdHlsZSk7Cit9CisKK3ZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUoQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpTdHlsZSYmIHN0eWxlKQoreworICAgIFdURjo6c3dpdGNoT24oc3R5bGUsCisgICAgICAg
IFt0aGlzXSAoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgdGhpcy0+c2V0RmlsbENvbG9yKHN0cmlu
Zyk7IH0sCisgICAgICAgIFt0aGlzXSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3Jh
ZGlhbnQpIHsgdGhpcy0+c2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlKCpncmFkaWFudCkpOyB9LAor
ICAgICAgICBbdGhpc10gKGNvbnN0IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiYgcGF0dGVybikgeyB0
aGlzLT5zZXRGaWxsU3R5bGUoQ2FudmFzU3R5bGUoKnBhdHRlcm4pKTsgfQorICAgICk7Cit9CisK
IEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6Y3JlYXRlTGluZWFyR3JhZGllbnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxv
YXQgeTEpCiB7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKHgwKSB8fCAhc3RkOjppc2Zpbml0ZSh5
MCkgfHwgIXN0ZDo6aXNmaW5pdGUoeDEpIHx8ICFzdGQ6OmlzZmluaXRlKHkxKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oCShyZXZpc2lvbiAyMTA0NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsMTIgKzY2LDYg
QEAgcHVibGljOgogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChIVE1MQ2FudmFzRWxlbWVu
dCYsIGJvb2wgdXNlc0NTU0NvbXBhdGliaWxpdHlQYXJzZU1vZGUsIGJvb2wgdXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlKTsKICAgICB2aXJ0dWFsIH5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQoKTsKIAotICAgIGNvbnN0IENhbnZhc1N0eWxlJiBzdHJva2VTdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRlKCkuc3Ryb2tlU3R5bGU7IH0KLSAgICB2b2lkIHNldFN0cm9rZVN0eWxlKENhbnZh
c1N0eWxlKTsKLQotICAgIGNvbnN0IENhbnZhc1N0eWxlJiBmaWxsU3R5bGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0ZSgpLmZpbGxTdHlsZTsgfQotICAgIHZvaWQgc2V0RmlsbFN0eWxlKENhbnZhc1N0
eWxlKTsKLQogICAgIGZsb2F0IGxpbmVXaWR0aCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TGluZVdp
ZHRoKGZsb2F0KTsKIApAQCAtMTcyLDYgKzE2NiwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dENvbXBvc2l0ZU9wZXJhdGlvbihjb25zdCBTdHJpbmcmKTsKIAorICAgIHVzaW5nIFN0eWxlID0g
VmFyaWFudDxTdHJpbmcsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4sIFJlZlB0cjxDYW52YXNQYXR0
ZXJuPj47CisgICAgU3R5bGUgc3Ryb2tlU3R5bGUoKSBjb25zdDsKKyAgICB2b2lkIHNldFN0cm9r
ZVN0eWxlKFN0eWxlJiYpOworICAgIFN0eWxlIGZpbGxTdHlsZSgpIGNvbnN0OworICAgIHZvaWQg
c2V0RmlsbFN0eWxlKFN0eWxlJiYpOworCiAgICAgRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRp
ZW50Pj4gY3JlYXRlTGluZWFyR3JhZGllbnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwg
ZmxvYXQgeTEpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IGNyZWF0ZVJh
ZGlhbEdyYWRpZW50KGZsb2F0IHgwLCBmbG9hdCB5MCwgZmxvYXQgcjAsIGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgcjEpOwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4g
Y3JlYXRlUGF0dGVybihDYW52YXNJbWFnZVNvdXJjZSYmLCBjb25zdCBTdHJpbmcmIHJlcGV0aXRp
b24pOwpAQCAtMzIxLDYgKzMyMSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBseVN0cm9rZVBh
dHRlcm4oKTsKICAgICB2b2lkIGFwcGx5RmlsbFBhdHRlcm4oKTsKIAorICAgIHZvaWQgc2V0U3Ry
b2tlU3R5bGUoQ2FudmFzU3R5bGUpOworICAgIHZvaWQgc2V0RmlsbFN0eWxlKENhbnZhc1N0eWxl
KTsKKwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4gY3JlYXRlUGF0dGVy
bihIVE1MSW1hZ2VFbGVtZW50JiwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpOwogICAgIEV4
Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4gY3JlYXRlUGF0dGVybihIVE1MQ2FudmFz
RWxlbWVudCYsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZKTsKICNpZiBFTkFCTEUoVklERU8p
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5pZGwJKHJldmlzaW9uIDIxMDQ2NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTE2Niw4ICsxNjYsOCBAQCB0eXBlZGVmIChIVE1MSW1hZ2VFbGVtZW50IG9yIEhUTUxDYW52
YXNFCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBJbWFnZURhdGEgY3JlYXRlSW1hZ2VEYXRhKElt
YWdlRGF0YT8gaW1hZ2VkYXRhKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIEltYWdlRGF0YSBj
cmVhdGVJbWFnZURhdGEoZmxvYXQgc3csIGZsb2F0IHNoKTsKIAotICAgIFtDdXN0b21dIGF0dHJp
YnV0ZSBjdXN0b20gc3Ryb2tlU3R5bGU7Ci0gICAgW0N1c3RvbV0gYXR0cmlidXRlIGN1c3RvbSBm
aWxsU3R5bGU7CisgICAgYXR0cmlidXRlIChET01TdHJpbmcgb3IgQ2FudmFzR3JhZGllbnQgb3Ig
Q2FudmFzUGF0dGVybikgc3Ryb2tlU3R5bGU7CisgICAgYXR0cmlidXRlIChET01TdHJpbmcgb3Ig
Q2FudmFzR3JhZGllbnQgb3IgQ2FudmFzUGF0dGVybikgZmlsbFN0eWxlOwogICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gQ2FudmFzR3JhZGllbnQgY3JlYXRlTGluZWFyR3JhZGllbnQoZmxvYXQgeDAs
IGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
Q2FudmFzR3JhZGllbnQgY3JlYXRlUmFkaWFsR3JhZGllbnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBm
bG9hdCByMCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCByMSk7CiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSBDYW52YXNQYXR0ZXJuPyBjcmVhdGVQYXR0ZXJuKENhbnZhc0ltYWdlU291cmNlIGlt
YWdlLCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyByZXBldGl0aW9uKTsK
</data>
<flag name="review"
          id="320454"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>